From b72678f558cef73468084e313cb654666775634b Mon Sep 17 00:00:00 2001 From: Nitzan Morr Date: Sun, 19 Apr 2026 17:31:00 +0300 Subject: [PATCH 01/37] fix: package json version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7a2f4db..944a085 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "7.10.2", + "version": "7.11.0-alpha", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From 4f6ef366cd25b1c4668371e7bb0f59d63148d9b6 Mon Sep 17 00:00:00 2001 From: Nitzan Morr Date: Sun, 19 Apr 2026 18:21:25 +0300 Subject: [PATCH 02/37] feat: add resolution threshold check to thresholds schema --- src/schemas/ingestion/validationTask.schema.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/schemas/ingestion/validationTask.schema.ts b/src/schemas/ingestion/validationTask.schema.ts index 930ddd7..b3e1824 100644 --- a/src/schemas/ingestion/validationTask.schema.ts +++ b/src/schemas/ingestion/validationTask.schema.ts @@ -22,6 +22,7 @@ export const thresholdsSchema = z.object({ count: counterSchema, }), smallGeometries: thresholdCheckSchema.describe('Small geometries threshold check result'), + resolution: thresholdCheckSchema.describe('Resolution threshold check result'), }); export const validationAggregatedErrorsSchema = z.object({ From e726f0dc061e058131ebda051cc11907de1f6d97 Mon Sep 17 00:00:00 2001 From: Nitzan Morr Date: Sun, 19 Apr 2026 18:22:22 +0300 Subject: [PATCH 03/37] fix: bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 944a085..d3848dc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "7.11.0-alpha", + "version": "7.11.0-alpha-1", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From 2587722796704dce3bef9b84228835c6c852a7cd Mon Sep 17 00:00:00 2001 From: Shimon Cohen <33935191+shimoncohen@users.noreply.github.com> Date: Sun, 26 Apr 2026 16:55:44 +0300 Subject: [PATCH 04/37] refactor!: change polygon part validation error to new format (MAPCO-10506) (#183) Co-authored-by: Copilot Co-authored-by: RonitKissis --- src/types/ingestion/report.type.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/types/ingestion/report.type.ts b/src/types/ingestion/report.type.ts index 3de23c8..ebd0c47 100644 --- a/src/types/ingestion/report.type.ts +++ b/src/types/ingestion/report.type.ts @@ -7,9 +7,20 @@ export type PolygonPartValidationErrorsType = Pick< 'RESOLUTION' | 'GEOMETRY_VALIDITY' | 'SMALL_GEOMETRY' | 'SMALL_HOLES' | 'UNKNOWN' >[keyof Pick]; +export interface PolygonPartValidationResolutionErrorItem { + code: (typeof ValidationErrorType)['RESOLUTION']; + isExceeded: boolean; +} + +export interface PolygonPartValidationGeneralErrorItem { + code: Exclude; +} + +export type PolygonPartValidationErrorItem = PolygonPartValidationResolutionErrorItem | PolygonPartValidationGeneralErrorItem; + export interface PolygonPartValidationError { id: string; - errors: PolygonPartValidationErrorsType[]; + errors: PolygonPartValidationErrorItem[]; } export interface PolygonPartsChunkValidationResult { parts: PolygonPartValidationError[]; From 61e08f4785b32f66fa4fed485d9507306dcf4598 Mon Sep 17 00:00:00 2001 From: RonitKissis Date: Sun, 26 Apr 2026 17:08:11 +0300 Subject: [PATCH 05/37] feat: update package --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d3848dc..d6e5323 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "7.11.0-alpha-1", + "version": "8.0.0-alpha", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From af9d32bb601dd535b3bb2d49e253103c7390fb39 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Mon, 27 Apr 2026 10:28:26 +0300 Subject: [PATCH 06/37] refactor: add ingestion job types schema and update polygon parts schema (#184) --- src/schemas/ingestion/job.schema.ts | 4 +++- src/schemas/ingestion/polygonParts.schema.ts | 3 ++- src/types/ingestion/job.type.ts | 9 ++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/schemas/ingestion/job.schema.ts b/src/schemas/ingestion/job.schema.ts index a2d1cc7..e475147 100644 --- a/src/schemas/ingestion/job.schema.ts +++ b/src/schemas/ingestion/job.schema.ts @@ -1,10 +1,12 @@ import z from 'zod'; -import { CORE_VALIDATIONS } from '../../constants'; +import { CORE_VALIDATIONS, JobTypes } from '../../constants'; import { urlsArraySchema } from '../core'; import { newAdditionalParamsSchema, swapUpdateAdditionalParamsSchema, updateAdditionalParamsSchema } from './additionalParams.schema'; import { inputFilesSchema } from './inputFiles.schema'; import { newRasterLayerMetadataSchema, updateRasterLayerMetadataSchema } from './metadata.schema'; +export const ingestionJobTypeSchema = z.enum([JobTypes.Ingestion_New, JobTypes.Ingestion_Swap_Update, JobTypes.Ingestion_Update]); + export const ingestionResolutionSchema = z .number({ message: 'Resolution degree should be a number' }) .min(CORE_VALIDATIONS.resolutionDeg.min, { diff --git a/src/schemas/ingestion/polygonParts.schema.ts b/src/schemas/ingestion/polygonParts.schema.ts index f65a918..f7fb3be 100644 --- a/src/schemas/ingestion/polygonParts.schema.ts +++ b/src/schemas/ingestion/polygonParts.schema.ts @@ -10,6 +10,7 @@ import { resourceIdSchema, versionSchema, } from '../core'; +import { ingestionJobTypeSchema } from './job.schema'; import { polygonPartsEntityPatternSchema } from './layerNameFormats.schema'; export const partSchema = z @@ -89,7 +90,7 @@ export const polygonPartsFeatureSchema = featureSchema(polygonSchema.or(multiPol export const polygonPartsFeatureCollectionSchema = featureCollectionSchema(polygonPartsFeatureSchema); export const polygonPartsPayloadSchema = z.object({ - jobType: z.string(), + jobType: ingestionJobTypeSchema, productType: rasterProductTypeSchema, catalogId: z.string().uuid({ message: 'Catalog ID should be a valid UUID' }), productId: resourceIdSchema, diff --git a/src/types/ingestion/job.type.ts b/src/types/ingestion/job.type.ts index 5925f90..ebd9f16 100644 --- a/src/types/ingestion/job.type.ts +++ b/src/types/ingestion/job.type.ts @@ -1,8 +1,15 @@ import { z } from 'zod'; -import { ingestionNewJobParamsSchema, ingestionSwapUpdateJobParamsSchema, ingestionUpdateJobParamsSchema } from '../../schemas'; +import { + ingestionNewJobParamsSchema, + ingestionSwapUpdateJobParamsSchema, + ingestionUpdateJobParamsSchema, + type ingestionJobTypeSchema, +} from '../../schemas'; //#region IngestionJobParams export type IngestionNewJobParams = z.infer; export type IngestionUpdateJobParams = z.infer; export type IngestionSwapUpdateJobParams = z.infer; //#endregion + +export type IngestionJobType = z.infer; From 908bcfd6ec4adcdf7eba5d8e08853f2a0b4fd3f6 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Wed, 29 Apr 2026 18:13:50 +0300 Subject: [PATCH 07/37] refactor: set release-please initial version (#185) --- release-please-config-alpha.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-please-config-alpha.json b/release-please-config-alpha.json index 96e15e0..2b05749 100644 --- a/release-please-config-alpha.json +++ b/release-please-config-alpha.json @@ -5,7 +5,7 @@ "release-type": "node", "include-component-in-tag": false, "include-v-in-tag": true, - "initial-version": "0.0.1-alpha.1", + "initial-version": "8.0.0-alpha", "prerelease": true, "prerelease-type": "alpha", "versioning": "prerelease" From 3769756998f8c903730c1d0dde249a45083a4b95 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Wed, 29 Apr 2026 18:33:57 +0300 Subject: [PATCH 08/37] refactor: set release-please initial version (#186) Release-As: 8.0.0-alpha.0 --- release-please-config-alpha.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-please-config-alpha.json b/release-please-config-alpha.json index 2b05749..ce764e4 100644 --- a/release-please-config-alpha.json +++ b/release-please-config-alpha.json @@ -5,7 +5,7 @@ "release-type": "node", "include-component-in-tag": false, "include-v-in-tag": true, - "initial-version": "8.0.0-alpha", + "initial-version": "8.0.0-alpha.0", "prerelease": true, "prerelease-type": "alpha", "versioning": "prerelease" From 19b49ff12fd01d2cc41bdd4623c26ffbfef58e7f Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Thu, 30 Apr 2026 12:10:59 +0300 Subject: [PATCH 09/37] chore(alpha): release 8.0.0-alpha.0 (#182) --- .release-please-manifest.json | 2 +- CHANGELOG.md | 25 +++++++++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 1c3fc07..95bf4a8 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "7.10.2" + ".": "8.0.0-alpha.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 66c114e..ff413ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,31 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [8.0.0-alpha.0](https://github.com/MapColonies/raster-shared/compare/v7.10.2...v8.0.0-alpha.0) (2026-04-29) + + +### ⚠ BREAKING CHANGES + +* change polygon part validation error to new format (MAPCO-10506) ([#183](https://github.com/MapColonies/raster-shared/issues/183)) + +### Features + +* add optional errors summary to ingestion validation schema ([#180](https://github.com/MapColonies/raster-shared/issues/180)) ([5b6f644](https://github.com/MapColonies/raster-shared/commit/5b6f644d0ff2cc7fff26ee6e26f5337b0e1eeb56)) +* add resolution threshold check to thresholds schema ([4f6ef36](https://github.com/MapColonies/raster-shared/commit/4f6ef366cd25b1c4668371e7bb0f59d63148d9b6)) +* update package ([61e08f4](https://github.com/MapColonies/raster-shared/commit/61e08f4785b32f66fa4fed485d9507306dcf4598)) + + +### Bug Fixes + +* bump version ([e726f0d](https://github.com/MapColonies/raster-shared/commit/e726f0dc061e058131ebda051cc11907de1f6d97)) +* package json version ([b72678f](https://github.com/MapColonies/raster-shared/commit/b72678f558cef73468084e313cb654666775634b)) + + +### Code Refactoring + +* change polygon part validation error to new format (MAPCO-10506) ([#183](https://github.com/MapColonies/raster-shared/issues/183)) ([2587722](https://github.com/MapColonies/raster-shared/commit/2587722796704dce3bef9b84228835c6c852a7cd)) +* set release-please initial version ([#186](https://github.com/MapColonies/raster-shared/issues/186)) ([3769756](https://github.com/MapColonies/raster-shared/commit/3769756998f8c903730c1d0dde249a45083a4b95)) + ## [7.10.2](https://github.com/MapColonies/raster-shared/compare/v7.10.1...v7.10.2) (2026-03-17) diff --git a/package-lock.json b/package-lock.json index 9834e17..56f697a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "7.10.2", + "version": "8.0.0-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "7.10.2", + "version": "8.0.0-alpha.0", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index d6e5323..b02c6c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "8.0.0-alpha", + "version": "8.0.0-alpha.0", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From f92cfb682b71c9ce63cd95a5983e0756ef504772 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Thu, 30 Apr 2026 16:56:52 +0300 Subject: [PATCH 10/37] ci: adjust publish for alpha release (#187) --- .github/workflows/publish.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 879db5b..8a36d91 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -24,8 +24,11 @@ jobs: echo "branch=$BRANCH" >> $GITHUB_OUTPUT - name: Publish to npm run: | - if [ "${{ github.ref_name }}" == "alpha" ]; then - npm publish --access public --tag alpha - else - npm publish --access public - fi + echo "is pre-release: ${{ github.event.release.prerelease }}" + if [[ "${{ github.event.release.prerelease }}" == "true" ]] && [[ "${{ github.ref_name }}" == "${{ steps.package-info.outputs.version }}" ]]; then + echo "publishing prerelease with alpha tag" + # npm publish --access public --tag alpha + else + echo "publishing standard release" + # npm publish --access public + fi From 5ec4eb58e2c9bd1aaecc9a83f6a67c558004cd62 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:30:29 +0300 Subject: [PATCH 11/37] ci: adjust publish for alpha release (#188) --- .github/workflows/publish.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 8a36d91..cd43adc 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -25,8 +25,15 @@ jobs: - name: Publish to npm run: | echo "is pre-release: ${{ github.event.release.prerelease }}" - if [[ "${{ github.event.release.prerelease }}" == "true" ]] && [[ "${{ github.ref_name }}" == "${{ steps.package-info.outputs.version }}" ]]; then - echo "publishing prerelease with alpha tag" + echo "publish triggered on: ${{ github.ref_type }}" + if [[ "${{ github.ref_type }}" == "tag" ]] && + [[ "${{ github.event.release.prerelease }}" == "true" ]] && + [[ "${{ github.ref_name }}" == "${{ steps.package-info.outputs.version }}" ]]; then + echo "publishing prerelease with alpha tag from tag" + # npm publish --access public --tag alpha + elif [[ "${{ github.ref_type }}" == "branch" ]] && + [[ "${{ github.ref_name }}" == *"alpha"* ]]; then + echo "publishing prerelease with alpha tag from branch" # npm publish --access public --tag alpha else echo "publishing standard release" From b5c342d96ff202c022c30daf19332833315a78e0 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:53:47 +0300 Subject: [PATCH 12/37] ci: adjust publish for alpha release (#189) --- .github/workflows/publish.yaml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index cd43adc..cc0c0b1 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -26,14 +26,12 @@ jobs: run: | echo "is pre-release: ${{ github.event.release.prerelease }}" echo "publish triggered on: ${{ github.ref_type }}" - if [[ "${{ github.ref_type }}" == "tag" ]] && + if ([[ "${{ github.ref_type }}" == "tag" ]] && [[ "${{ github.event.release.prerelease }}" == "true" ]] && - [[ "${{ github.ref_name }}" == "${{ steps.package-info.outputs.version }}" ]]; then - echo "publishing prerelease with alpha tag from tag" - # npm publish --access public --tag alpha - elif [[ "${{ github.ref_type }}" == "branch" ]] && - [[ "${{ github.ref_name }}" == *"alpha"* ]]; then - echo "publishing prerelease with alpha tag from branch" + [[ "${{ github.ref_name }}" == "${{ steps.package-info.outputs.version }}" ]]) || + ([[ "${{ github.ref_type }}" == "branch" ]] && + [[ "${{ github.ref_name }}" == *"alpha"* ]]); then + echo "publishing prerelease with alpha tag from ${{ github.ref_type }}" # npm publish --access public --tag alpha else echo "publishing standard release" From 8ee3e0ffbe7b30378b8c1bd380de507fb189fde2 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Thu, 30 Apr 2026 18:02:17 +0300 Subject: [PATCH 13/37] ci: adjust publish for alpha release (#190) --- .github/workflows/publish.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index cc0c0b1..58685fb 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -30,10 +30,10 @@ jobs: [[ "${{ github.event.release.prerelease }}" == "true" ]] && [[ "${{ github.ref_name }}" == "${{ steps.package-info.outputs.version }}" ]]) || ([[ "${{ github.ref_type }}" == "branch" ]] && - [[ "${{ github.ref_name }}" == *"alpha"* ]]); then + [[ "${{ github.ref_name }}" == "alpha" ]]); then echo "publishing prerelease with alpha tag from ${{ github.ref_type }}" - # npm publish --access public --tag alpha + npm publish --access public --tag alpha else echo "publishing standard release" - # npm publish --access public + npm publish --access public fi From c87c428efdd98ced15972e6d487d6bb4acce95e9 Mon Sep 17 00:00:00 2001 From: almog8k <60139576+almog8k@users.noreply.github.com> Date: Mon, 4 May 2026 16:51:34 +0300 Subject: [PATCH 14/37] feat: add tile deletion schemas and types, refactor source type (#191) Co-authored-by: Copilot Co-authored-by: razbroc <77406876+razbroc@users.noreply.github.com> --- src/constants/core/constants.ts | 12 ++++++++++++ src/constants/export/constants.ts | 7 ------- src/schemas/core/tile.schema.ts | 29 +++++++++++++++++++++++++++++ src/types/core/tile.type.ts | 5 +++++ 4 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 src/schemas/core/tile.schema.ts create mode 100644 src/types/core/tile.type.ts diff --git a/src/constants/core/constants.ts b/src/constants/core/constants.ts index 9f2f477..911e951 100644 --- a/src/constants/core/constants.ts +++ b/src/constants/core/constants.ts @@ -54,3 +54,15 @@ export const CORE_VALIDATIONS = { export const HASH_ALGORITHMS = ['XXH64'] as const; export type HashAlgorithm = (typeof HASH_ALGORITHMS)[number]; + +export const MAX_ZOOM_LEVEL = 22; + +/* eslint-disable @typescript-eslint/naming-convention */ +export const SourceType = { + S3: 'S3', + GPKG: 'GPKG', + FS: 'FS', +} as const; +/* eslint-enable @typescript-eslint/naming-convention */ + +export type SourceType = (typeof SourceType)[keyof typeof SourceType]; diff --git a/src/constants/export/constants.ts b/src/constants/export/constants.ts index b5a6ac8..26c58b4 100644 --- a/src/constants/export/constants.ts +++ b/src/constants/export/constants.ts @@ -9,18 +9,11 @@ export const TileFormatStrategy = { MIXED: 'mixed', } as const; -export const SourceType = { - S3: 'S3', - GPKG: 'GPKG', - FS: 'FS', -} as const; - export const ExportFinalizeType = { Full_Processing: 'FullProcessing', Error_Callback: 'ErrorCallback', } as const; export type TileFormatStrategy = (typeof TileFormatStrategy)[keyof typeof TileFormatStrategy]; -export type SourceType = (typeof SourceType)[keyof typeof SourceType]; export type ExportFinalizeType = (typeof ExportFinalizeType)[keyof typeof ExportFinalizeType]; /* eslint-disable @typescript-eslint/naming-convention */ diff --git a/src/schemas/core/tile.schema.ts b/src/schemas/core/tile.schema.ts new file mode 100644 index 0000000..e04087e --- /dev/null +++ b/src/schemas/core/tile.schema.ts @@ -0,0 +1,29 @@ +import { z } from 'zod'; +import { MAX_ZOOM_LEVEL, SourceType, TileOutputFormat } from '../../constants'; + +export const tileRangeSchema = z.object({ + zoom: z.number().int().min(0).max(MAX_ZOOM_LEVEL), + minX: z.number().int().min(0), + maxX: z.number().int().min(0), + minY: z.number().int().min(0), + maxY: z.number().int().min(0), +}); + +export const tilesDeletionParamsBaseSchema = z.object({ + tilesPath: z.string().min(1), // Base path for the tiles to be deleted + ranges: z.array(tileRangeSchema).min(1), // Array of tile ranges to be deleted + fileExtension: z + .literal(TileOutputFormat.PNG) + .transform((val) => val.toLowerCase()) + .or(z.literal(TileOutputFormat.JPEG).transform((val) => val.toLowerCase())), // File extension of the tiles (e.g., 'png', 'jpeg') +}); + +export const s3TilesDeletionParamsSchema = tilesDeletionParamsBaseSchema.extend({ + sourceProvider: z.literal(SourceType.S3), +}); + +export const fsTilesDeletionParamsSchema = tilesDeletionParamsBaseSchema.extend({ + sourceProvider: z.literal(SourceType.FS), +}); + +export const tilesDeletionParamsSchema = z.discriminatedUnion('sourceProvider', [s3TilesDeletionParamsSchema, fsTilesDeletionParamsSchema]); diff --git a/src/types/core/tile.type.ts b/src/types/core/tile.type.ts new file mode 100644 index 0000000..15570f7 --- /dev/null +++ b/src/types/core/tile.type.ts @@ -0,0 +1,5 @@ +import z from 'zod'; +import { tileRangeSchema, tilesDeletionParamsSchema } from '../../schemas/core/tile.schema'; + +export type TilesDeletionParams = z.infer; +export type TileRange = z.infer; From 8aee6a9395e3ef590d0b238eb0d4d364c7d63c7e Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Mon, 4 May 2026 16:54:30 +0300 Subject: [PATCH 15/37] chore(alpha): release 8.1.0-alpha.0 (#192) --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 95bf4a8..27320d4 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "8.0.0-alpha.0" + ".": "8.1.0-alpha.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index ff413ae..a7e894f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [8.1.0-alpha.0](https://github.com/MapColonies/raster-shared/compare/v8.0.0-alpha.0...v8.1.0-alpha.0) (2026-05-04) + + +### Features + +* add tile deletion schemas and types, refactor source type ([#191](https://github.com/MapColonies/raster-shared/issues/191)) ([c87c428](https://github.com/MapColonies/raster-shared/commit/c87c428efdd98ced15972e6d487d6bb4acce95e9)) + ## [8.0.0-alpha.0](https://github.com/MapColonies/raster-shared/compare/v7.10.2...v8.0.0-alpha.0) (2026-04-29) diff --git a/package-lock.json b/package-lock.json index 56f697a..b40a214 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "8.0.0-alpha.0", + "version": "8.1.0-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "8.0.0-alpha.0", + "version": "8.1.0-alpha.0", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index b02c6c7..8bff6a9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "8.0.0-alpha.0", + "version": "8.1.0-alpha.0", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From 440f0c52714a559747be55da3eadf76459dfdc3d Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Tue, 5 May 2026 09:49:36 +0300 Subject: [PATCH 16/37] feat: add polygon parts schema and types for intersection api (#193) --- src/schemas/core/index.ts | 1 + src/schemas/core/polygonParts.schema.ts | 90 ++++++++++++++++++++ src/schemas/ingestion/polygonParts.schema.ts | 69 +-------------- src/types/core/index.ts | 1 + src/types/core/polygonParts.type.ts | 20 +++++ 5 files changed, 113 insertions(+), 68 deletions(-) create mode 100644 src/schemas/core/polygonParts.schema.ts create mode 100644 src/types/core/polygonParts.type.ts diff --git a/src/schemas/core/index.ts b/src/schemas/core/index.ts index 3a73c9e..16b0b2a 100644 --- a/src/schemas/core/index.ts +++ b/src/schemas/core/index.ts @@ -6,3 +6,4 @@ export * from './aggregation.schema'; export * from './callback.schema'; export * from './link.schema'; export * from './file.schema'; +export * from './polygonParts.schema'; diff --git a/src/schemas/core/polygonParts.schema.ts b/src/schemas/core/polygonParts.schema.ts new file mode 100644 index 0000000..7a6d458 --- /dev/null +++ b/src/schemas/core/polygonParts.schema.ts @@ -0,0 +1,90 @@ +import { z } from 'zod'; +import { CORE_VALIDATIONS, INGESTION_VALIDATIONS } from '../../constants'; +import { featureCollectionSchema, featureSchema, multiPolygonSchema, polygonSchema } from './geo.schema'; + +const polygonalGeometrySchema = polygonSchema.or(multiPolygonSchema).describe('polygonalGeometrySchema'); + +export const partSchema = z + .object({ + id: z.string(), + sourceId: z.string({ message: 'Source id should be a string' }).optional(), + sourceName: z.string({ message: 'Source name should be a string' }).min(1, { message: 'Source name should have length of at least 1' }), + description: z.string({ message: 'Description should be a string' }).optional(), + imagingTimeBeginUTC: z.coerce.date({ message: 'Imaging time begin UTC should be a datetime' }), + imagingTimeEndUTC: z.coerce.date({ message: 'Imaging time end UTC should be a datetime' }), + resolutionDegree: z + .number({ message: 'Resolution degree should be a number' }) + .min(CORE_VALIDATIONS.resolutionDeg.min, { + message: `Resolution degree should not be less than ${CORE_VALIDATIONS.resolutionDeg.min}`, + }) + .max(CORE_VALIDATIONS.resolutionDeg.max, { + message: `Resolution degree should not be larger than ${CORE_VALIDATIONS.resolutionDeg.max}`, + }), + resolutionMeter: z + .number({ message: 'Resolution meter should be a number' }) + .min(INGESTION_VALIDATIONS.resolutionMeter.min, { + message: `Resolution meter should not be less than ${INGESTION_VALIDATIONS.resolutionMeter.min}`, + }) + .max(INGESTION_VALIDATIONS.resolutionMeter.max, { + message: `Resolution meter should not be larger than ${INGESTION_VALIDATIONS.resolutionMeter.max}`, + }), + sourceResolutionMeter: z + .number({ message: 'Source resolution meter should be a number' }) + .min(INGESTION_VALIDATIONS.resolutionMeter.min, { + message: `Source resolution meter should not be less than ${INGESTION_VALIDATIONS.resolutionMeter.min}`, + }) + .max(INGESTION_VALIDATIONS.resolutionMeter.max, { + message: `Source resolution meter should not be larger than ${INGESTION_VALIDATIONS.resolutionMeter.max}`, + }), + horizontalAccuracyCE90: z + .number({ message: 'Horizontal accuracy CE90 should be a number' }) + .min(INGESTION_VALIDATIONS.horizontalAccuracyCE90.min, { + message: `Horizontal accuracy CE90 should not be less than ${INGESTION_VALIDATIONS.horizontalAccuracyCE90.min}`, + }) + .max(INGESTION_VALIDATIONS.horizontalAccuracyCE90.max, { + message: `Horizontal accuracy CE90 should not be larger than ${INGESTION_VALIDATIONS.horizontalAccuracyCE90.max}`, + }), + sensors: z + .array( + z.string({ message: 'Sensors should be an array of strings' }).regex(new RegExp(INGESTION_VALIDATIONS.sensor.pattern), { + message: 'Sensors should be an array with items not starting or ending with whitespace characters', + }), + { message: 'Sensors should be an array' } + ) + .min(1, { message: 'Sensors should have an array length of at least 1' }), + countries: z + .array(z.string({ message: 'Countries should be an array of strings' }).min(1, { message: 'Countries should have length of at least 1' }), { + message: 'Countries should be an array', + }) + .optional(), + cities: z + .array(z.string({ message: 'Cities should be an array of strings' }).min(1, { message: 'Cities should have length of at least 1' }), { + message: 'Cities should be an array', + }) + .optional(), + }) + .refine((part) => part.imagingTimeBeginUTC <= part.imagingTimeEndUTC && part.imagingTimeEndUTC <= new Date(), { + message: 'Imaging time begin UTC should be less than or equal to imaging time end UTC and both less than or equal to current timestamp', + }) + .describe('partSchema'); +export const partsSchema = z.array(partSchema).describe('partsSchema'); + +//#region intersection +export const intersectionFeaturePropertiesSchema = partSchema._def.schema + .pick({ resolutionDegree: true }) + .describe('intersectionFeaturePropertiesSchema'); +export const intersectionFeatureGeometrySchema = polygonalGeometrySchema.describe('intersectionFeatureGeometrySchema'); +export const intersectionFeatureSchema = featureSchema(intersectionFeatureGeometrySchema, intersectionFeaturePropertiesSchema).describe( + 'intersectionFeatureGeometrySchema' +); +export const intersectionFeatureCollectionSchema = featureCollectionSchema(intersectionFeatureSchema) + .and(z.object({ features: intersectionFeatureSchema.array().length(1) })) + .describe('intersectionFeatureCollectionSchema'); + +export const intersectedFeaturePropertiesSchema = z.object({}).strict().describe('intersectedFeaturePropertiesSchema'); +export const intersectedFeatureGeometrySchema = polygonalGeometrySchema.describe('intersectedFeatureGeometrySchema'); +export const intersectedFeatureSchema = featureSchema(intersectedFeatureGeometrySchema, intersectedFeaturePropertiesSchema).describe( + 'intersectedFeatureSchema' +); +export const intersectedFeatureCollectionSchema = featureCollectionSchema(intersectedFeatureSchema).describe('intersectedFeatureCollectionSchema'); +//#endregion diff --git a/src/schemas/ingestion/polygonParts.schema.ts b/src/schemas/ingestion/polygonParts.schema.ts index f7fb3be..5a1cef0 100644 --- a/src/schemas/ingestion/polygonParts.schema.ts +++ b/src/schemas/ingestion/polygonParts.schema.ts @@ -1,6 +1,4 @@ import { z } from 'zod'; -import { CORE_VALIDATIONS } from '../../constants'; -import { INGESTION_VALIDATIONS } from '../../constants/ingestion/constants'; import { featureCollectionSchema, featureSchema, @@ -10,75 +8,10 @@ import { resourceIdSchema, versionSchema, } from '../core'; +import { partSchema } from '../core/polygonParts.schema'; import { ingestionJobTypeSchema } from './job.schema'; import { polygonPartsEntityPatternSchema } from './layerNameFormats.schema'; -export const partSchema = z - .object({ - id: z.string(), - sourceId: z.string({ message: 'Source id should be a string' }).optional(), - sourceName: z.string({ message: 'Source name should be a string' }).min(1, { message: 'Source name should have length of at least 1' }), - description: z.string({ message: 'Description should be a string' }).optional(), - imagingTimeBeginUTC: z.coerce.date({ message: 'Imaging time begin UTC should be a datetime' }), - imagingTimeEndUTC: z.coerce.date({ message: 'Imaging time end UTC should be a datetime' }), - resolutionDegree: z - .number({ message: 'Resolution degree should be a number' }) - .min(CORE_VALIDATIONS.resolutionDeg.min, { - message: `Resolution degree should not be less than ${CORE_VALIDATIONS.resolutionDeg.min}`, - }) - .max(CORE_VALIDATIONS.resolutionDeg.max, { - message: `Resolution degree should not be larger than ${CORE_VALIDATIONS.resolutionDeg.max}`, - }), - resolutionMeter: z - .number({ message: 'Resolution meter should be a number' }) - .min(INGESTION_VALIDATIONS.resolutionMeter.min, { - message: `Resolution meter should not be less than ${INGESTION_VALIDATIONS.resolutionMeter.min}`, - }) - .max(INGESTION_VALIDATIONS.resolutionMeter.max, { - message: `Resolution meter should not be larger than ${INGESTION_VALIDATIONS.resolutionMeter.max}`, - }), - sourceResolutionMeter: z - .number({ message: 'Source resolution meter should be a number' }) - .min(INGESTION_VALIDATIONS.resolutionMeter.min, { - message: `Source resolution meter should not be less than ${INGESTION_VALIDATIONS.resolutionMeter.min}`, - }) - .max(INGESTION_VALIDATIONS.resolutionMeter.max, { - message: `Source resolution meter should not be larger than ${INGESTION_VALIDATIONS.resolutionMeter.max}`, - }), - horizontalAccuracyCE90: z - .number({ message: 'Horizontal accuracy CE90 should be a number' }) - .min(INGESTION_VALIDATIONS.horizontalAccuracyCE90.min, { - message: `Horizontal accuracy CE90 should not be less than ${INGESTION_VALIDATIONS.horizontalAccuracyCE90.min}`, - }) - .max(INGESTION_VALIDATIONS.horizontalAccuracyCE90.max, { - message: `Horizontal accuracy CE90 should not be larger than ${INGESTION_VALIDATIONS.horizontalAccuracyCE90.max}`, - }), - sensors: z - .array( - z.string({ message: 'Sensors should be an array of strings' }).regex(new RegExp(INGESTION_VALIDATIONS.sensor.pattern), { - message: 'Sensors should be an array with items not starting or ending with whitespace characters', - }), - { message: 'Sensors should be an array' } - ) - .min(1, { message: 'Sensors should have an array length of at least 1' }), - countries: z - .array(z.string({ message: 'Countries should be an array of strings' }).min(1, { message: 'Countries should have length of at least 1' }), { - message: 'Countries should be an array', - }) - .optional(), - cities: z - .array(z.string({ message: 'Cities should be an array of strings' }).min(1, { message: 'Cities should have length of at least 1' }), { - message: 'Cities should be an array', - }) - .optional(), - }) - .refine((part) => part.imagingTimeBeginUTC <= part.imagingTimeEndUTC && part.imagingTimeEndUTC <= new Date(), { - message: 'Imaging time begin UTC should be less than or equal to imaging time end UTC and both less than or equal to current timestamp', - }) - .describe('partSchema'); - -export const partsSchema = z.array(partSchema).describe('partsSchema'); - export const polygonPartsEntityNameSchema = z .object({ polygonPartsEntityName: polygonPartsEntityPatternSchema, diff --git a/src/types/core/index.ts b/src/types/core/index.ts index 044b5f9..8e8f7b8 100644 --- a/src/types/core/index.ts +++ b/src/types/core/index.ts @@ -6,3 +6,4 @@ export * from './part.type'; export * from './link.type'; export * from './file.type'; export * from './callback.type'; +export * from './polygonParts.type'; diff --git a/src/types/core/polygonParts.type.ts b/src/types/core/polygonParts.type.ts new file mode 100644 index 0000000..4cdd8f1 --- /dev/null +++ b/src/types/core/polygonParts.type.ts @@ -0,0 +1,20 @@ +import { z } from 'zod'; +import type { + intersectionFeaturePropertiesSchema, + intersectionFeatureGeometrySchema, + intersectionFeatureSchema, + intersectionFeatureCollectionSchema, + intersectedFeaturePropertiesSchema, + intersectedFeatureGeometrySchema, + intersectedFeatureSchema, + intersectedFeatureCollectionSchema, +} from '../../schemas/core/polygonParts.schema'; + +export type IntersectionFeatureProperties = z.infer; +export type IntersectionFeatureGeometry = z.infer; +export type IntersectionFeature = z.infer; +export type IntersectionFeatureCollection = z.infer; +export type IntersectedFeatureProperties = z.infer; +export type IntersectedFeatureGeometry = z.infer; +export type IntersectedFeature = z.infer; +export type IntersectedFeatureCollection = z.infer; From 7ea17337502dcacbf4984aeae24d52b8f8e1768e Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Tue, 5 May 2026 10:33:07 +0300 Subject: [PATCH 17/37] ci: modify release-please (#195) --- .github/workflows/release-please.yaml | 1 - release-please-config.json | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/release-please.yaml b/.github/workflows/release-please.yaml index 0e88203..356639d 100644 --- a/.github/workflows/release-please.yaml +++ b/.github/workflows/release-please.yaml @@ -46,6 +46,5 @@ jobs: token: ${{ secrets.GH_PAT }} # this is a built-in strategy in release-please, see "Action Inputs" # for more options - release-type: node target-branch: ${{ github.ref_name }} config-file: ${{ steps.prerelease.outputs.prerelease_type_config }} diff --git a/release-please-config.json b/release-please-config.json index f8dddcc..1546977 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -2,6 +2,5 @@ "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", "release-type": "node", "include-component-in-tag": false, - "include-v-in-tag": true, - "packages": {} + "include-v-in-tag": true } From 714075552787fa548fe3200264e5bcfde307355a Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Tue, 5 May 2026 10:35:03 +0300 Subject: [PATCH 18/37] chore(alpha): release 8.1.0-alpha.1 (#194) --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 27320d4..6353efd 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "8.1.0-alpha.0" + ".": "8.1.0-alpha.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index a7e894f..d0222d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [8.1.0-alpha.1](https://github.com/MapColonies/raster-shared/compare/v8.1.0-alpha.0...v8.1.0-alpha.1) (2026-05-05) + + +### Features + +* add polygon parts schema and types for intersection api ([#193](https://github.com/MapColonies/raster-shared/issues/193)) ([440f0c5](https://github.com/MapColonies/raster-shared/commit/440f0c52714a559747be55da3eadf76459dfdc3d)) + ## [8.1.0-alpha.0](https://github.com/MapColonies/raster-shared/compare/v8.0.0-alpha.0...v8.1.0-alpha.0) (2026-05-04) diff --git a/package-lock.json b/package-lock.json index b40a214..dba6e46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.0", + "version": "8.1.0-alpha.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.0", + "version": "8.1.0-alpha.1", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index 8bff6a9..7ab5ffb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.0", + "version": "8.1.0-alpha.1", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From 772d90b646095d2a0287dfe45c26910c6a2f9948 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Tue, 5 May 2026 10:47:13 +0300 Subject: [PATCH 19/37] ci: correct version reference for prerelease publishing in workflow (#196) --- .github/workflows/publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 58685fb..1b82b3e 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -28,7 +28,7 @@ jobs: echo "publish triggered on: ${{ github.ref_type }}" if ([[ "${{ github.ref_type }}" == "tag" ]] && [[ "${{ github.event.release.prerelease }}" == "true" ]] && - [[ "${{ github.ref_name }}" == "${{ steps.package-info.outputs.version }}" ]]) || + [[ "${{ github.ref_name }}" == "v${{ steps.package-info.outputs.version }}" ]]) || ([[ "${{ github.ref_type }}" == "branch" ]] && [[ "${{ github.ref_name }}" == "alpha" ]]); then echo "publishing prerelease with alpha tag from ${{ github.ref_type }}" From 921db4dbd25f0c3dc04e08c460b6544bad562ef1 Mon Sep 17 00:00:00 2001 From: almog8k <60139576+almog8k@users.noreply.github.com> Date: Tue, 5 May 2026 11:09:27 +0300 Subject: [PATCH 20/37] feat: add tile schema and type exports to core index files (#197) Co-authored-by: Copilot --- src/schemas/core/index.ts | 1 + src/types/core/index.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/schemas/core/index.ts b/src/schemas/core/index.ts index 16b0b2a..6438621 100644 --- a/src/schemas/core/index.ts +++ b/src/schemas/core/index.ts @@ -7,3 +7,4 @@ export * from './callback.schema'; export * from './link.schema'; export * from './file.schema'; export * from './polygonParts.schema'; +export * from './tile.schema'; diff --git a/src/types/core/index.ts b/src/types/core/index.ts index 8e8f7b8..b27df06 100644 --- a/src/types/core/index.ts +++ b/src/types/core/index.ts @@ -7,3 +7,4 @@ export * from './link.type'; export * from './file.type'; export * from './callback.type'; export * from './polygonParts.type'; +export * from './tile.type'; From 25785dfb78bc0000c6fff6d22e030edf6dca81d0 Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Tue, 5 May 2026 11:11:08 +0300 Subject: [PATCH 21/37] chore(alpha): release 8.1.0-alpha.2 (#198) --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 6353efd..69abfd2 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "8.1.0-alpha.1" + ".": "8.1.0-alpha.2" } diff --git a/CHANGELOG.md b/CHANGELOG.md index d0222d3..40db4e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [8.1.0-alpha.2](https://github.com/MapColonies/raster-shared/compare/v8.1.0-alpha.1...v8.1.0-alpha.2) (2026-05-05) + + +### Features + +* add tile schema and type exports to core index files ([#197](https://github.com/MapColonies/raster-shared/issues/197)) ([921db4d](https://github.com/MapColonies/raster-shared/commit/921db4dbd25f0c3dc04e08c460b6544bad562ef1)) + ## [8.1.0-alpha.1](https://github.com/MapColonies/raster-shared/compare/v8.1.0-alpha.0...v8.1.0-alpha.1) (2026-05-05) diff --git a/package-lock.json b/package-lock.json index dba6e46..6e173e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.1", + "version": "8.1.0-alpha.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.1", + "version": "8.1.0-alpha.2", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index 7ab5ffb..cdaaf36 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.1", + "version": "8.1.0-alpha.2", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From 383ac1988824947cd6ae3c8cb4402a881b0124c9 Mon Sep 17 00:00:00 2001 From: almog8k <60139576+almog8k@users.noreply.github.com> Date: Tue, 5 May 2026 12:54:28 +0300 Subject: [PATCH 22/37] fix: simplify file extension handling in tilesDeletionParamsBaseSchema (#199) --- src/schemas/core/tile.schema.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/schemas/core/tile.schema.ts b/src/schemas/core/tile.schema.ts index e04087e..3e46911 100644 --- a/src/schemas/core/tile.schema.ts +++ b/src/schemas/core/tile.schema.ts @@ -12,10 +12,7 @@ export const tileRangeSchema = z.object({ export const tilesDeletionParamsBaseSchema = z.object({ tilesPath: z.string().min(1), // Base path for the tiles to be deleted ranges: z.array(tileRangeSchema).min(1), // Array of tile ranges to be deleted - fileExtension: z - .literal(TileOutputFormat.PNG) - .transform((val) => val.toLowerCase()) - .or(z.literal(TileOutputFormat.JPEG).transform((val) => val.toLowerCase())), // File extension of the tiles (e.g., 'png', 'jpeg') + fileExtension: z.literal(TileOutputFormat.PNG.toLowerCase()).or(z.literal(TileOutputFormat.JPEG.toLowerCase())), // File extension of the tiles (e.g., 'png', 'jpeg') }); export const s3TilesDeletionParamsSchema = tilesDeletionParamsBaseSchema.extend({ From b8901f986cd94fc3e47abb4d54cff92d327870c3 Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Tue, 5 May 2026 12:56:17 +0300 Subject: [PATCH 23/37] chore(alpha): release 8.1.0-alpha.3 (#200) --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 69abfd2..5a4e564 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "8.1.0-alpha.2" + ".": "8.1.0-alpha.3" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 40db4e0..e244ce9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [8.1.0-alpha.3](https://github.com/MapColonies/raster-shared/compare/v8.1.0-alpha.2...v8.1.0-alpha.3) (2026-05-05) + + +### Bug Fixes + +* simplify file extension handling in tilesDeletionParamsBaseSchema ([#199](https://github.com/MapColonies/raster-shared/issues/199)) ([383ac19](https://github.com/MapColonies/raster-shared/commit/383ac1988824947cd6ae3c8cb4402a881b0124c9)) + ## [8.1.0-alpha.2](https://github.com/MapColonies/raster-shared/compare/v8.1.0-alpha.1...v8.1.0-alpha.2) (2026-05-05) diff --git a/package-lock.json b/package-lock.json index 6e173e6..0b1f069 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.2", + "version": "8.1.0-alpha.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.2", + "version": "8.1.0-alpha.3", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index cdaaf36..4fa5f87 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.2", + "version": "8.1.0-alpha.3", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From be9953e07bd87d637a9fa03f5ec52d111d7d1999 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Mon, 18 May 2026 15:01:05 +0300 Subject: [PATCH 24/37] fix: update productId pattern (#201) --- src/constants/ingestion/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants/ingestion/constants.ts b/src/constants/ingestion/constants.ts index e300677..16d550a 100644 --- a/src/constants/ingestion/constants.ts +++ b/src/constants/ingestion/constants.ts @@ -49,7 +49,7 @@ export const INGESTION_VALIDATIONS = { max: 4000, }, productId: { - pattern: '^[A-Za-z]{1}[A-Za-z0-9_]{0,37}$', + pattern: '^[A-Za-z]{1}[A-Za-z0-9_]{0,36}$', description: 'Product ID must start with a letter and contain only letters, numbers and underscores', }, productVersion: { From 191b61ed0708a7d612812291d449ccee62dbc1c5 Mon Sep 17 00:00:00 2001 From: almog8k Date: Thu, 25 Jun 2026 13:07:32 +0300 Subject: [PATCH 25/37] chore: set alpha version to 8.3.0-alpha.0 for layerDeletion epic --- .release-please-manifest.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 5a4e564..cb2226d 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "8.1.0-alpha.3" + ".": "8.3.0-alpha.0" } diff --git a/package-lock.json b/package-lock.json index 0b1f069..77eab08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.3", + "version": "8.3.0-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.3", + "version": "8.3.0-alpha.0", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index 4fa5f87..a42437a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "8.1.0-alpha.3", + "version": "8.3.0-alpha.0", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From 8d50c52d45a0012b00ccfaca4381e3e5bfdf51e2 Mon Sep 17 00:00:00 2001 From: almog8k <60139576+almog8k@users.noreply.github.com> Date: Mon, 29 Jun 2026 13:41:17 +0300 Subject: [PATCH 26/37] feat: add layer deletion schemas, types and constants (MAPCO-7285) (#210) --- src/constants/deletion/constants.ts | 15 +++++++++++++++ src/constants/deletion/index.ts | 1 + src/constants/index.ts | 1 + src/schemas/deletion/index.ts | 2 ++ src/schemas/deletion/job.schema.ts | 7 +++++++ src/schemas/deletion/task.schema.ts | 30 +++++++++++++++++++++++++++++ src/schemas/index.ts | 1 + src/types/deletion/index.ts | 2 ++ src/types/deletion/job.type.ts | 4 ++++ src/types/deletion/task.type.ts | 6 ++++++ src/types/index.ts | 1 + 11 files changed, 70 insertions(+) create mode 100644 src/constants/deletion/constants.ts create mode 100644 src/constants/deletion/index.ts create mode 100644 src/schemas/deletion/index.ts create mode 100644 src/schemas/deletion/job.schema.ts create mode 100644 src/schemas/deletion/task.schema.ts create mode 100644 src/types/deletion/index.ts create mode 100644 src/types/deletion/job.type.ts create mode 100644 src/types/deletion/task.type.ts diff --git a/src/constants/deletion/constants.ts b/src/constants/deletion/constants.ts new file mode 100644 index 0000000..67b29d3 --- /dev/null +++ b/src/constants/deletion/constants.ts @@ -0,0 +1,15 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +export const DeletionJobTypes = { + Delete_Layer: 'Delete_Layer', +} as const; + +export type DeletionJobTypes = (typeof DeletionJobTypes)[keyof typeof DeletionJobTypes]; + +export const DeletionTaskTypes = { + Delete: 'delete', + LayerTilesDeletion: 'tiles-deletion', + ArtifactsDeletion: 'artifacts-deletion', +} as const; + +export type DeletionTaskTypes = (typeof DeletionTaskTypes)[keyof typeof DeletionTaskTypes]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/constants/deletion/index.ts b/src/constants/deletion/index.ts new file mode 100644 index 0000000..c94f80f --- /dev/null +++ b/src/constants/deletion/index.ts @@ -0,0 +1 @@ +export * from './constants'; diff --git a/src/constants/index.ts b/src/constants/index.ts index 88e754e..73ddaf1 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -1,3 +1,4 @@ export * from './core'; export * from './ingestion'; export * from './export'; +export * from './deletion'; diff --git a/src/schemas/deletion/index.ts b/src/schemas/deletion/index.ts new file mode 100644 index 0000000..5e69007 --- /dev/null +++ b/src/schemas/deletion/index.ts @@ -0,0 +1,2 @@ +export * from './task.schema'; +export * from './job.schema'; diff --git a/src/schemas/deletion/job.schema.ts b/src/schemas/deletion/job.schema.ts new file mode 100644 index 0000000..59a74b8 --- /dev/null +++ b/src/schemas/deletion/job.schema.ts @@ -0,0 +1,7 @@ +import { z } from 'zod'; + +export const deleteLayerJobParamsSchema = z + .object({ + approver: z.string(), + }) + .describe('deleteLayerJobParamsSchema'); diff --git a/src/schemas/deletion/task.schema.ts b/src/schemas/deletion/task.schema.ts new file mode 100644 index 0000000..b5371fb --- /dev/null +++ b/src/schemas/deletion/task.schema.ts @@ -0,0 +1,30 @@ +import { z } from 'zod'; +import { SourceType } from '../../constants/core/constants'; + +export const sourceProviderSchema = z.union([z.literal(SourceType.S3), z.literal(SourceType.FS)]); + +export const deleteTaskParamsSchema = z + .object({ + deleteFromCatalog: z.boolean().default(false), + deleteFromMapproxy: z.boolean().default(false), + deleteFromGeoserver: z.boolean().default(false), + deletePolygonParts: z.boolean().default(false), + }) + .describe('deleteTaskParamsSchema'); + +export const deletionParamsBaseSchema = z.object({ + sourceProvider: sourceProviderSchema, + bucket: z.string().optional(), +}); + +export const layerTilesDeletionParamsSchema = deletionParamsBaseSchema + .extend({ + catalogId: z.string().uuid(), + }) + .describe('layerTilesDeletionParamsSchema'); + +export const artifactsDeletionParamsSchema = deletionParamsBaseSchema + .extend({ + paths: z.array(z.string().min(1)).min(1), // explicit thumbnail/legend object keys (s3) or file paths (fs) + }) + .describe('artifactsDeletionParamsSchema'); diff --git a/src/schemas/index.ts b/src/schemas/index.ts index 88e754e..73ddaf1 100644 --- a/src/schemas/index.ts +++ b/src/schemas/index.ts @@ -1,3 +1,4 @@ export * from './core'; export * from './ingestion'; export * from './export'; +export * from './deletion'; diff --git a/src/types/deletion/index.ts b/src/types/deletion/index.ts new file mode 100644 index 0000000..164369b --- /dev/null +++ b/src/types/deletion/index.ts @@ -0,0 +1,2 @@ +export * from './task.type'; +export * from './job.type'; diff --git a/src/types/deletion/job.type.ts b/src/types/deletion/job.type.ts new file mode 100644 index 0000000..e4f67e4 --- /dev/null +++ b/src/types/deletion/job.type.ts @@ -0,0 +1,4 @@ +import z from 'zod'; +import { deleteLayerJobParamsSchema } from '../../schemas/deletion/job.schema'; + +export type DeleteLayerJobParams = z.infer; diff --git a/src/types/deletion/task.type.ts b/src/types/deletion/task.type.ts new file mode 100644 index 0000000..afe8c6e --- /dev/null +++ b/src/types/deletion/task.type.ts @@ -0,0 +1,6 @@ +import z from 'zod'; +import { deleteTaskParamsSchema, layerTilesDeletionParamsSchema, artifactsDeletionParamsSchema } from '../../schemas/deletion/task.schema'; + +export type DeleteTaskParams = z.infer; +export type LayerTilesDeletionParams = z.infer; +export type ArtifactsDeletionParams = z.infer; diff --git a/src/types/index.ts b/src/types/index.ts index 88e754e..73ddaf1 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,3 +1,4 @@ export * from './core'; export * from './ingestion'; export * from './export'; +export * from './deletion'; From 74cd66c9ea23e6e1b57615dd70288e5cf38f79bf Mon Sep 17 00:00:00 2001 From: Roi Cohen <213414225+roicohen326@users.noreply.github.com> Date: Tue, 30 Jun 2026 13:48:32 +0300 Subject: [PATCH 27/37] feat: add keywords field to base raster layer metadata schema (MAPCO-8284) (#208) Co-authored-by: razbroc <77406876+razbroc@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 --- src/openapi/core/layerMetadata.yaml | 3 +++ src/schemas/ingestion/metadata.schema.ts | 1 + src/types/core/metadata.type.ts | 1 + 3 files changed, 5 insertions(+) diff --git a/src/openapi/core/layerMetadata.yaml b/src/openapi/core/layerMetadata.yaml index e11293b..aef8ad8 100644 --- a/src/openapi/core/layerMetadata.yaml +++ b/src/openapi/core/layerMetadata.yaml @@ -15,6 +15,9 @@ components: Description: type: string description: Layer's description + Keywords: + type: string + description: Layer's keywords Footprint: type: object oneOf: diff --git a/src/schemas/ingestion/metadata.schema.ts b/src/schemas/ingestion/metadata.schema.ts index deae894..ffd92a8 100644 --- a/src/schemas/ingestion/metadata.schema.ts +++ b/src/schemas/ingestion/metadata.schema.ts @@ -9,6 +9,7 @@ export const baseRasterLayerMetadataSchema = z classification: z .string() .regex(new RegExp(INGESTION_VALIDATIONS.classification.pattern), { message: 'Classification value must be between 0 and 100' }), + keywords: z.string().optional(), }) .describe('baseRasterLayerMetadataSchema'); diff --git a/src/types/core/metadata.type.ts b/src/types/core/metadata.type.ts index b7b8e64..665b775 100644 --- a/src/types/core/metadata.type.ts +++ b/src/types/core/metadata.type.ts @@ -24,6 +24,7 @@ export type RasterLayerMetadata = { minResolutionMeter: number; productSubType?: string; productBoundingBox?: string; + keywords?: string; displayPath: string; transparency: Transparency; tileMimeFormat: TilesMimeFormat; From 0249907f87803ae1b1c8b274d66506d7d6fc3474 Mon Sep 17 00:00:00 2001 From: vitaligi <54726763+vitaligi@users.noreply.github.com> Date: Tue, 7 Jul 2026 11:07:09 +0300 Subject: [PATCH 28/37] feat: handle resource deletion (#213) --- src/schemas/core/index.ts | 1 + src/schemas/core/storage.schema.ts | 13 +++++++++++++ src/schemas/deletion/task.schema.ts | 23 ++++++----------------- src/types/core/index.ts | 1 + src/types/core/storage.type.ts | 6 ++++++ src/types/deletion/task.type.ts | 5 ++--- 6 files changed, 29 insertions(+), 20 deletions(-) create mode 100644 src/schemas/core/storage.schema.ts create mode 100644 src/types/core/storage.type.ts diff --git a/src/schemas/core/index.ts b/src/schemas/core/index.ts index 6438621..ee5ad72 100644 --- a/src/schemas/core/index.ts +++ b/src/schemas/core/index.ts @@ -8,3 +8,4 @@ export * from './link.schema'; export * from './file.schema'; export * from './polygonParts.schema'; export * from './tile.schema'; +export * from './storage.schema'; diff --git a/src/schemas/core/storage.schema.ts b/src/schemas/core/storage.schema.ts new file mode 100644 index 0000000..d56f4c3 --- /dev/null +++ b/src/schemas/core/storage.schema.ts @@ -0,0 +1,13 @@ +import { z } from 'zod'; +import { SourceType } from '../../constants/core/constants'; + +export const fsStorageSchema = z.object({ + storageProvider: z.literal(SourceType.FS), +}); + +export const s3StorageSchema = z.object({ + storageProvider: z.literal(SourceType.S3), + bucket: z.string().min(1), +}); + +export const storageSchema = z.discriminatedUnion('storageProvider', [fsStorageSchema, s3StorageSchema]); diff --git a/src/schemas/deletion/task.schema.ts b/src/schemas/deletion/task.schema.ts index b5371fb..27c89dc 100644 --- a/src/schemas/deletion/task.schema.ts +++ b/src/schemas/deletion/task.schema.ts @@ -1,7 +1,5 @@ import { z } from 'zod'; -import { SourceType } from '../../constants/core/constants'; - -export const sourceProviderSchema = z.union([z.literal(SourceType.S3), z.literal(SourceType.FS)]); +import { storageSchema } from '../core'; export const deleteTaskParamsSchema = z .object({ @@ -12,19 +10,10 @@ export const deleteTaskParamsSchema = z }) .describe('deleteTaskParamsSchema'); -export const deletionParamsBaseSchema = z.object({ - sourceProvider: sourceProviderSchema, - bucket: z.string().optional(), +export const deleteStoredResourcesParamsBaseSchema = z.object({ + paths: z.array(z.string().min(1)).min(1), }); -export const layerTilesDeletionParamsSchema = deletionParamsBaseSchema - .extend({ - catalogId: z.string().uuid(), - }) - .describe('layerTilesDeletionParamsSchema'); - -export const artifactsDeletionParamsSchema = deletionParamsBaseSchema - .extend({ - paths: z.array(z.string().min(1)).min(1), // explicit thumbnail/legend object keys (s3) or file paths (fs) - }) - .describe('artifactsDeletionParamsSchema'); +export const deleteStoredResourcesParamsSchema = deleteStoredResourcesParamsBaseSchema + .and(storageSchema) + .describe('deleteStoredResourcesParamsSchema'); diff --git a/src/types/core/index.ts b/src/types/core/index.ts index b27df06..53328de 100644 --- a/src/types/core/index.ts +++ b/src/types/core/index.ts @@ -8,3 +8,4 @@ export * from './file.type'; export * from './callback.type'; export * from './polygonParts.type'; export * from './tile.type'; +export * from './storage.type'; diff --git a/src/types/core/storage.type.ts b/src/types/core/storage.type.ts new file mode 100644 index 0000000..ebb6bb6 --- /dev/null +++ b/src/types/core/storage.type.ts @@ -0,0 +1,6 @@ +import type { z } from 'zod'; +import type { fsStorageSchema, s3StorageSchema, storageSchema } from '../../schemas'; + +export type FsStorage = z.infer; +export type S3Storage = z.infer; +export type Storage = z.infer; diff --git a/src/types/deletion/task.type.ts b/src/types/deletion/task.type.ts index afe8c6e..0a1e256 100644 --- a/src/types/deletion/task.type.ts +++ b/src/types/deletion/task.type.ts @@ -1,6 +1,5 @@ import z from 'zod'; -import { deleteTaskParamsSchema, layerTilesDeletionParamsSchema, artifactsDeletionParamsSchema } from '../../schemas/deletion/task.schema'; +import { deleteTaskParamsSchema, deleteStoredResourcesParamsSchema } from '../../schemas/deletion/task.schema'; export type DeleteTaskParams = z.infer; -export type LayerTilesDeletionParams = z.infer; -export type ArtifactsDeletionParams = z.infer; +export type DeleteStoredResourcesParams = z.infer; From 55a5359b3fb17bb48eae65a890f4c1c13a2402ca Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Tue, 7 Jul 2026 13:16:05 +0300 Subject: [PATCH 29/37] chore(alpha): release 8.3.0-alpha.1 (#215) --- .release-please-manifest.json | 2 +- CHANGELOG.md | 9 +++++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index cb2226d..f5de52e 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "8.3.0-alpha.0" + ".": "8.3.0-alpha.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index e244ce9..8b8302a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [8.3.0-alpha.1](https://github.com/MapColonies/raster-shared/compare/v8.3.0-alpha.0...v8.3.0-alpha.1) (2026-07-07) + + +### Features + +* add keywords field to base raster layer metadata schema (MAPCO-8284) ([#208](https://github.com/MapColonies/raster-shared/issues/208)) ([74cd66c](https://github.com/MapColonies/raster-shared/commit/74cd66c9ea23e6e1b57615dd70288e5cf38f79bf)) +* add layer deletion schemas, types and constants (MAPCO-7285) ([#210](https://github.com/MapColonies/raster-shared/issues/210)) ([8d50c52](https://github.com/MapColonies/raster-shared/commit/8d50c52d45a0012b00ccfaca4381e3e5bfdf51e2)) +* handle resource deletion ([#213](https://github.com/MapColonies/raster-shared/issues/213)) ([0249907](https://github.com/MapColonies/raster-shared/commit/0249907f87803ae1b1c8b274d66506d7d6fc3474)) + ## [8.1.0-alpha.3](https://github.com/MapColonies/raster-shared/compare/v8.1.0-alpha.2...v8.1.0-alpha.3) (2026-05-05) diff --git a/package-lock.json b/package-lock.json index 77eab08..826e846 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "8.3.0-alpha.0", + "version": "8.3.0-alpha.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "8.3.0-alpha.0", + "version": "8.3.0-alpha.1", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index a42437a..01a27b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "8.3.0-alpha.0", + "version": "8.3.0-alpha.1", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From c832749354c6e4b73fc3cc22cf3584e0ee5daec3 Mon Sep 17 00:00:00 2001 From: almog8k <60139576+almog8k@users.noreply.github.com> Date: Mon, 27 Jul 2026 11:28:10 +0300 Subject: [PATCH 30/37] feat: add subpath field to fsStorageSchema (#216) --- src/schemas/core/storage.schema.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/schemas/core/storage.schema.ts b/src/schemas/core/storage.schema.ts index d56f4c3..0b45ff1 100644 --- a/src/schemas/core/storage.schema.ts +++ b/src/schemas/core/storage.schema.ts @@ -3,6 +3,7 @@ import { SourceType } from '../../constants/core/constants'; export const fsStorageSchema = z.object({ storageProvider: z.literal(SourceType.FS), + subPath: z.string().min(1), }); export const s3StorageSchema = z.object({ From 3ef1047aa4df9323dd57138ff6ebf0537d08a81d Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Mon, 27 Jul 2026 11:29:49 +0300 Subject: [PATCH 31/37] chore(alpha): release 8.3.0-alpha.2 (#217) --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f5de52e..12950c1 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "8.3.0-alpha.1" + ".": "8.3.0-alpha.2" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b8302a..2810f35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [8.3.0-alpha.2](https://github.com/MapColonies/raster-shared/compare/v8.3.0-alpha.1...v8.3.0-alpha.2) (2026-07-27) + + +### Features + +* add subpath field to fsStorageSchema ([#216](https://github.com/MapColonies/raster-shared/issues/216)) ([c832749](https://github.com/MapColonies/raster-shared/commit/c832749354c6e4b73fc3cc22cf3584e0ee5daec3)) + ## [8.3.0-alpha.1](https://github.com/MapColonies/raster-shared/compare/v8.3.0-alpha.0...v8.3.0-alpha.1) (2026-07-07) diff --git a/package-lock.json b/package-lock.json index 826e846..9e07fee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "8.3.0-alpha.1", + "version": "8.3.0-alpha.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "8.3.0-alpha.1", + "version": "8.3.0-alpha.2", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index 01a27b3..0b5d2a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "8.3.0-alpha.1", + "version": "8.3.0-alpha.2", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From c0f972a5c42da250f4e2281806b110332de588b5 Mon Sep 17 00:00:00 2001 From: almog8k <60139576+almog8k@users.noreply.github.com> Date: Thu, 6 Aug 2026 14:05:22 +0300 Subject: [PATCH 32/37] feat!: consolidate storage schemas and add Redis provider (MAPCO-11262) (#218) --- .github/workflows/pull-request.yaml | 41 +++++++++++++++++++++++---- src/constants/core/constants.ts | 9 ++++++ src/constants/deletion/constants.ts | 3 +- src/constants/export/constants.ts | 2 +- src/schemas/core/storage.schema.ts | 36 +++++++++++++++++------ src/schemas/core/tile.schema.ts | 18 +++++------- src/schemas/deletion/task.schema.ts | 44 ++++++++++++++++++++++++++--- src/types/core/storage.type.ts | 3 +- src/types/core/tile.type.ts | 3 +- src/types/deletion/task.type.ts | 27 +++++++++++++++++- 10 files changed, 152 insertions(+), 34 deletions(-) diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml index b4c3341..79cafbc 100644 --- a/.github/workflows/pull-request.yaml +++ b/.github/workflows/pull-request.yaml @@ -14,12 +14,10 @@ jobs: steps: - name: Check out TS Project Git repository uses: actions/checkout@v4 - - name: Init nodejs uses: ./.github/actions/init-npm with: node-version: ${{ matrix.node }} - - name: Run TS Project linters uses: wearerequired/lint-action@v2 with: @@ -40,14 +38,47 @@ jobs: steps: - name: Check out TS Project Git repository uses: actions/checkout@v4 - - name: Init nodejs uses: ./.github/actions/init-npm - - name: Run tests run: npm run test - - uses: actions/upload-artifact@v4 with: name: Test Reporters ${{ matrix.node }} path: ./reports/** + + upload_package: + needs: [eslint, tests] + continue-on-error: true + runs-on: ubuntu-latest + steps: + - name: Check out TS Project Git repository + uses: actions/checkout@v6 + - name: Init nodejs + uses: ./.github/actions/init-npm + - name: Pack the package + run: npm pack + - name: get properties + id: json_properties + uses: ActionsTools/read-json-action@main + with: + file_path: 'package.json' + - uses: azure/CLI@v2 + with: + inlineScript: | + az storage blob upload --name raster-shared-${{ github.sha }}.tgz --account-name ghatmpstorage --container-name=npm-packages --file map-colonies-raster-shared-${{steps.json_properties.outputs.version}}.tgz --sas-token "${{ secrets.SAS_TOKEN }}" + - name: Comment on PR + uses: thollander/actions-comment-pull-request@v3 + with: + message: | + Hi it is me, your friendly bot helper! :wave: + I've packed this commit for you :blush: + You can install it like this: + ```json + { + "dependencies": { + "@map-colonies/raster-shared": "https://ghatmpstorage.blob.core.windows.net/npm-packages/raster-shared-${{ github.sha }}.tgz" + } + } + ``` + The link will expire in a week :hourglass: diff --git a/src/constants/core/constants.ts b/src/constants/core/constants.ts index e0296c1..5bbc3df 100644 --- a/src/constants/core/constants.ts +++ b/src/constants/core/constants.ts @@ -67,6 +67,15 @@ export const SourceType = { export type SourceType = (typeof SourceType)[keyof typeof SourceType]; +/* eslint-disable @typescript-eslint/naming-convention */ +export const StorageProvider = { + ...pickEnum(SourceType, ['FS', 'S3']), + REDIS: 'REDIS', +} as const; +/* eslint-enable @typescript-eslint/naming-convention */ + +export type StorageProvider = (typeof StorageProvider)[keyof typeof StorageProvider]; + /* eslint-disable @typescript-eslint/naming-convention */ export const InstanceType = { INGESTION: 'ingestion', diff --git a/src/constants/deletion/constants.ts b/src/constants/deletion/constants.ts index 67b29d3..8b0a81e 100644 --- a/src/constants/deletion/constants.ts +++ b/src/constants/deletion/constants.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/naming-convention */ export const DeletionJobTypes = { Delete_Layer: 'Delete_Layer', + Delete_Cache: 'Delete_Cache', } as const; export type DeletionJobTypes = (typeof DeletionJobTypes)[keyof typeof DeletionJobTypes]; @@ -9,7 +10,7 @@ export const DeletionTaskTypes = { Delete: 'delete', LayerTilesDeletion: 'tiles-deletion', ArtifactsDeletion: 'artifacts-deletion', + CacheDeletion: 'cache-deletion', } as const; export type DeletionTaskTypes = (typeof DeletionTaskTypes)[keyof typeof DeletionTaskTypes]; -/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/constants/export/constants.ts b/src/constants/export/constants.ts index 26c58b4..bedc881 100644 --- a/src/constants/export/constants.ts +++ b/src/constants/export/constants.ts @@ -1,5 +1,5 @@ import { ArtifactRasterType } from '@map-colonies/types'; -import { pickEnum } from '../../utils'; +import { pickEnum } from '../../utils/helpers.utils'; /* eslint-disable @typescript-eslint/naming-convention */ export const ExportArtifactType = pickEnum(ArtifactRasterType, ['GPKG', 'METADATA']); diff --git a/src/schemas/core/storage.schema.ts b/src/schemas/core/storage.schema.ts index 0b45ff1..43d5796 100644 --- a/src/schemas/core/storage.schema.ts +++ b/src/schemas/core/storage.schema.ts @@ -1,14 +1,34 @@ import { z } from 'zod'; -import { SourceType } from '../../constants/core/constants'; +import { StorageProvider } from '../../constants/core/constants'; -export const fsStorageSchema = z.object({ - storageProvider: z.literal(SourceType.FS), - subPath: z.string().min(1), +export const s3BucketSchema = z.object({ + bucket: z.string().min(1), }); -export const s3StorageSchema = z.object({ - storageProvider: z.literal(SourceType.S3), - bucket: z.string().min(1), +export const redisPrefixSchema = z.object({ + prefix: z.string().min(1), // Full Redis key prefix, e.g. `myLayer-redis_WorldCRS84` }); -export const storageSchema = z.discriminatedUnion('storageProvider', [fsStorageSchema, s3StorageSchema]); +export const fsSubPathSchema = z.object({ + subPath: z.string().min(1), +}); + +export const fsStorageSchema = z + .object({ + storageProvider: z.literal(StorageProvider.FS), + }) + .merge(fsSubPathSchema); + +export const s3StorageSchema = z + .object({ + storageProvider: z.literal(StorageProvider.S3), + }) + .merge(s3BucketSchema); + +export const redisStorageSchema = z + .object({ + storageProvider: z.literal(StorageProvider.REDIS), + }) + .merge(redisPrefixSchema); + +export const storageSchema = z.discriminatedUnion('storageProvider', [fsStorageSchema, s3StorageSchema, redisStorageSchema]); diff --git a/src/schemas/core/tile.schema.ts b/src/schemas/core/tile.schema.ts index 3e46911..f912c7b 100644 --- a/src/schemas/core/tile.schema.ts +++ b/src/schemas/core/tile.schema.ts @@ -1,5 +1,5 @@ import { z } from 'zod'; -import { MAX_ZOOM_LEVEL, SourceType, TileOutputFormat } from '../../constants'; +import { MAX_ZOOM_LEVEL, TileOutputFormat } from '../../constants/core/constants'; export const tileRangeSchema = z.object({ zoom: z.number().int().min(0).max(MAX_ZOOM_LEVEL), @@ -9,18 +9,14 @@ export const tileRangeSchema = z.object({ maxY: z.number().int().min(0), }); -export const tilesDeletionParamsBaseSchema = z.object({ - tilesPath: z.string().min(1), // Base path for the tiles to be deleted +export const tileRangesSchema = z.object({ ranges: z.array(tileRangeSchema).min(1), // Array of tile ranges to be deleted - fileExtension: z.literal(TileOutputFormat.PNG.toLowerCase()).or(z.literal(TileOutputFormat.JPEG.toLowerCase())), // File extension of the tiles (e.g., 'png', 'jpeg') }); -export const s3TilesDeletionParamsSchema = tilesDeletionParamsBaseSchema.extend({ - sourceProvider: z.literal(SourceType.S3), +/** Fields that only make sense for path-based tile stores. */ +export const tilesInfoSchema = z.object({ + tilesRelativePath: z.string().min(1), // Base path for the tiles to be deleted + fileExtension: z.literal(TileOutputFormat.PNG.toLowerCase()).or(z.literal(TileOutputFormat.JPEG.toLowerCase())), // e.g. 'png', 'jpeg' }); -export const fsTilesDeletionParamsSchema = tilesDeletionParamsBaseSchema.extend({ - sourceProvider: z.literal(SourceType.FS), -}); - -export const tilesDeletionParamsSchema = z.discriminatedUnion('sourceProvider', [s3TilesDeletionParamsSchema, fsTilesDeletionParamsSchema]); +export const tilePyramidSchema = tileRangesSchema.merge(tilesInfoSchema).describe('tilePyramidSchema'); diff --git a/src/schemas/deletion/task.schema.ts b/src/schemas/deletion/task.schema.ts index 27c89dc..9fdc2d1 100644 --- a/src/schemas/deletion/task.schema.ts +++ b/src/schemas/deletion/task.schema.ts @@ -1,6 +1,16 @@ import { z } from 'zod'; -import { storageSchema } from '../core'; +import { fsStorageSchema, redisStorageSchema, s3StorageSchema } from '../core/storage.schema'; +import { tilePyramidSchema, tileRangesSchema } from '../core/tile.schema'; +/** + * Shared by every Redis deletion shape: the key prefix that locates the entries, plus an + * optional wait for a mapproxy reload to settle before the keys are removed. + */ +const redisDeletionBaseSchema = redisStorageSchema.extend({ + delaySeconds: z.number().int().nonnegative().optional(), +}); + +//#region DeleteTaskParams export const deleteTaskParamsSchema = z .object({ deleteFromCatalog: z.boolean().default(false), @@ -9,11 +19,37 @@ export const deleteTaskParamsSchema = z deletePolygonParts: z.boolean().default(false), }) .describe('deleteTaskParamsSchema'); +//#endregion DeleteTaskParams + +//#region TilesDeletionParams +export const s3TilesDeletionParamsSchema = s3StorageSchema.merge(tilePyramidSchema).strict(); + +export const fsTilesDeletionParamsSchema = fsStorageSchema.merge(tilePyramidSchema).strict(); + +export const redisTilesDeletionParamsSchema = redisDeletionBaseSchema.merge(tileRangesSchema).strict(); -export const deleteStoredResourcesParamsBaseSchema = z.object({ +export const tilesDeletionParamsSchema = z + .discriminatedUnion('storageProvider', [s3TilesDeletionParamsSchema, fsTilesDeletionParamsSchema, redisTilesDeletionParamsSchema]) + .describe('tilesDeletionParamsSchema'); +//#endregion TilesDeletionParams + +//#region DeleteStoredResourcesParams +export const resourcePathsSchema = z.object({ paths: z.array(z.string().min(1)).min(1), }); -export const deleteStoredResourcesParamsSchema = deleteStoredResourcesParamsBaseSchema - .and(storageSchema) +export const s3DeleteStoredResourcesParamsSchema = s3StorageSchema.merge(resourcePathsSchema); + +export const fsDeleteStoredResourcesParamsSchema = fsStorageSchema.merge(resourcePathsSchema); + +// The prefix IS the locator for a key-value store. +export const redisDeleteStoredResourcesParamsSchema = redisDeletionBaseSchema.strict(); + +export const deleteStoredResourcesParamsSchema = z + .discriminatedUnion('storageProvider', [ + s3DeleteStoredResourcesParamsSchema, + fsDeleteStoredResourcesParamsSchema, + redisDeleteStoredResourcesParamsSchema, + ]) .describe('deleteStoredResourcesParamsSchema'); +//#endregion DeleteStoredResourcesParams diff --git a/src/types/core/storage.type.ts b/src/types/core/storage.type.ts index ebb6bb6..577b49d 100644 --- a/src/types/core/storage.type.ts +++ b/src/types/core/storage.type.ts @@ -1,6 +1,7 @@ import type { z } from 'zod'; -import type { fsStorageSchema, s3StorageSchema, storageSchema } from '../../schemas'; +import type { fsStorageSchema, redisStorageSchema, s3StorageSchema, storageSchema } from '../../schemas'; export type FsStorage = z.infer; export type S3Storage = z.infer; +export type RedisStorage = z.infer; export type Storage = z.infer; diff --git a/src/types/core/tile.type.ts b/src/types/core/tile.type.ts index 15570f7..7c833a6 100644 --- a/src/types/core/tile.type.ts +++ b/src/types/core/tile.type.ts @@ -1,5 +1,4 @@ import z from 'zod'; -import { tileRangeSchema, tilesDeletionParamsSchema } from '../../schemas/core/tile.schema'; +import { tileRangeSchema } from '../../schemas/core/tile.schema'; -export type TilesDeletionParams = z.infer; export type TileRange = z.infer; diff --git a/src/types/deletion/task.type.ts b/src/types/deletion/task.type.ts index 0a1e256..a803893 100644 --- a/src/types/deletion/task.type.ts +++ b/src/types/deletion/task.type.ts @@ -1,5 +1,30 @@ import z from 'zod'; -import { deleteTaskParamsSchema, deleteStoredResourcesParamsSchema } from '../../schemas/deletion/task.schema'; +import { + deleteStoredResourcesParamsSchema, + deleteTaskParamsSchema, + fsDeleteStoredResourcesParamsSchema, + fsTilesDeletionParamsSchema, + redisDeleteStoredResourcesParamsSchema, + redisTilesDeletionParamsSchema, + s3DeleteStoredResourcesParamsSchema, + s3TilesDeletionParamsSchema, + tilesDeletionParamsSchema, +} from '../../schemas/deletion/task.schema'; +//#region DeleteTaskParams export type DeleteTaskParams = z.infer; +//#endregion DeleteTaskParams + +//#region TilesDeletionParams +export type TilesDeletionParams = z.infer; +export type S3TilesDeletionParams = z.infer; +export type FsTilesDeletionParams = z.infer; +export type RedisTilesDeletionParams = z.infer; +//#endregion TilesDeletionParams + +//#region DeleteStoredResourcesParams export type DeleteStoredResourcesParams = z.infer; +export type S3DeleteStoredResourcesParams = z.infer; +export type FsDeleteStoredResourcesParams = z.infer; +export type RedisDeleteStoredResourcesParams = z.infer; +//#endregion DeleteStoredResourcesParams From 1a09e5656cbe46622f78e6d9f8a07febab7fceef Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Thu, 6 Aug 2026 14:15:22 +0300 Subject: [PATCH 33/37] chore(alpha): release 9.0.0-alpha.0 (#221) Co-authored-by: almog8k <60139576+almog8k@users.noreply.github.com> Co-authored-by: almog8k --- .release-please-manifest.json | 2 +- CHANGELOG.md | 11 +++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 12950c1..1a65765 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "8.3.0-alpha.2" + ".": "9.0.0-alpha.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 2810f35..2b9cc23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,17 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [9.0.0-alpha.0](https://github.com/MapColonies/raster-shared/compare/v8.3.0-alpha.2...v9.0.0-alpha.0) (2026-08-06) + + +### ⚠ BREAKING CHANGES + +* consolidate storage schemas and add Redis provider (MAPCO-11262) ([#218](https://github.com/MapColonies/raster-shared/issues/218)) + +### Features + +* consolidate storage schemas and add Redis provider (MAPCO-11262) ([#218](https://github.com/MapColonies/raster-shared/issues/218)) ([c0f972a](https://github.com/MapColonies/raster-shared/commit/c0f972a5c42da250f4e2281806b110332de588b5)) + ## [8.3.0-alpha.2](https://github.com/MapColonies/raster-shared/compare/v8.3.0-alpha.1...v8.3.0-alpha.2) (2026-07-27) diff --git a/package-lock.json b/package-lock.json index 9e07fee..58b9317 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "8.3.0-alpha.2", + "version": "9.0.0-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "8.3.0-alpha.2", + "version": "9.0.0-alpha.0", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index 0b5d2a1..1e5b0bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "8.3.0-alpha.2", + "version": "9.0.0-alpha.0", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From 5395ed7b0589f216e1ae61a09d04bc4eeae630d9 Mon Sep 17 00:00:00 2001 From: razbroc <77406876+razbroc@users.noreply.github.com> Date: Thu, 3 Sep 2026 16:05:17 +0300 Subject: [PATCH 34/37] feat: support cache deletion parameters for swap and update (#223) Co-authored-by: almog8k --- src/constants/core/constants.ts | 2 ++ src/constants/deletion/constants.ts | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/constants/core/constants.ts b/src/constants/core/constants.ts index 5bbc3df..2d32804 100644 --- a/src/constants/core/constants.ts +++ b/src/constants/core/constants.ts @@ -18,6 +18,8 @@ export const RasterProductTypes = pickEnum(ProductType, [ 'RASTER_VECTOR_BEST', ]); +export const GEODETIC_GRIDS: readonly string[] = ['WorldCRS84']; + export type RasterProductTypes = (typeof RasterProductTypes)[keyof typeof RasterProductTypes]; export const RASTER_PRODUCT_TYPE_LIST = Object.values(RasterProductTypes); diff --git a/src/constants/deletion/constants.ts b/src/constants/deletion/constants.ts index 8b0a81e..23e6f1b 100644 --- a/src/constants/deletion/constants.ts +++ b/src/constants/deletion/constants.ts @@ -1,7 +1,8 @@ /* eslint-disable @typescript-eslint/naming-convention */ export const DeletionJobTypes = { Delete_Layer: 'Delete_Layer', - Delete_Cache: 'Delete_Cache', + Swap_Delete_Cache: 'Swap_Delete_Cache', + Update_Delete_Cache: 'Update_Delete_Cache', } as const; export type DeletionJobTypes = (typeof DeletionJobTypes)[keyof typeof DeletionJobTypes]; @@ -10,7 +11,6 @@ export const DeletionTaskTypes = { Delete: 'delete', LayerTilesDeletion: 'tiles-deletion', ArtifactsDeletion: 'artifacts-deletion', - CacheDeletion: 'cache-deletion', } as const; export type DeletionTaskTypes = (typeof DeletionTaskTypes)[keyof typeof DeletionTaskTypes]; From ecf0ba644569ea529b9778ba40e10cdb15c456b9 Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Thu, 3 Sep 2026 16:07:37 +0300 Subject: [PATCH 35/37] chore(alpha): release 9.0.0-alpha.1 (#224) --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 1a65765..4810b4b 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "9.0.0-alpha.0" + ".": "9.0.0-alpha.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b9cc23..52dd4dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [9.0.0-alpha.1](https://github.com/MapColonies/raster-shared/compare/v9.0.0-alpha.0...v9.0.0-alpha.1) (2026-09-03) + + +### Features + +* support cache deletion parameters for swap and update ([#223](https://github.com/MapColonies/raster-shared/issues/223)) ([5395ed7](https://github.com/MapColonies/raster-shared/commit/5395ed7b0589f216e1ae61a09d04bc4eeae630d9)) + ## [9.0.0-alpha.0](https://github.com/MapColonies/raster-shared/compare/v8.3.0-alpha.2...v9.0.0-alpha.0) (2026-08-06) diff --git a/package-lock.json b/package-lock.json index 58b9317..dfd41df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "9.0.0-alpha.0", + "version": "9.0.0-alpha.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "9.0.0-alpha.0", + "version": "9.0.0-alpha.1", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index 1e5b0bf..af00fa5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "9.0.0-alpha.0", + "version": "9.0.0-alpha.1", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": { From 720c24f20d328af82adaa35b207818687e94091b Mon Sep 17 00:00:00 2001 From: almog8k <60139576+almog8k@users.noreply.github.com> Date: Wed, 23 Sep 2026 09:26:20 +0300 Subject: [PATCH 36/37] feat: add cache-deletion job params schema (MAPCO-11779) (#225) --- src/schemas/deletion/job.schema.ts | 9 +++++++++ src/types/deletion/job.type.ts | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/schemas/deletion/job.schema.ts b/src/schemas/deletion/job.schema.ts index 59a74b8..e6351e2 100644 --- a/src/schemas/deletion/job.schema.ts +++ b/src/schemas/deletion/job.schema.ts @@ -5,3 +5,12 @@ export const deleteLayerJobParamsSchema = z approver: z.string(), }) .describe('deleteLayerJobParamsSchema'); + +//#region CacheDeletionJobParams +export const cacheDeletionJobParamsSchema = z + .object({ + ingestionJobId: z.string().uuid(), + tasksCreationCompleted: z.boolean(), + }) + .describe('cacheDeletionJobParamsSchema'); +//#endregion CacheDeletionJobParams diff --git a/src/types/deletion/job.type.ts b/src/types/deletion/job.type.ts index e4f67e4..01572b4 100644 --- a/src/types/deletion/job.type.ts +++ b/src/types/deletion/job.type.ts @@ -1,4 +1,6 @@ import z from 'zod'; -import { deleteLayerJobParamsSchema } from '../../schemas/deletion/job.schema'; +import { cacheDeletionJobParamsSchema, deleteLayerJobParamsSchema } from '../../schemas/deletion/job.schema'; export type DeleteLayerJobParams = z.infer; + +export type CacheDeletionJobParams = z.infer; From 16c3d96de31625abfcbf111e0bc80557f6cfd510 Mon Sep 17 00:00:00 2001 From: mapcolonies-devops <143094402+mapcolonies-devops@users.noreply.github.com> Date: Wed, 23 Sep 2026 09:35:34 +0300 Subject: [PATCH 37/37] chore(alpha): release 9.0.0-alpha.2 (#226) --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 4810b4b..9565682 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "9.0.0-alpha.1" + ".": "9.0.0-alpha.2" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 52dd4dd..0860b74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [9.0.0-alpha.2](https://github.com/MapColonies/raster-shared/compare/v9.0.0-alpha.1...v9.0.0-alpha.2) (2026-09-23) + + +### Features + +* add cache-deletion job params schema (MAPCO-11779) ([#225](https://github.com/MapColonies/raster-shared/issues/225)) ([720c24f](https://github.com/MapColonies/raster-shared/commit/720c24f20d328af82adaa35b207818687e94091b)) + ## [9.0.0-alpha.1](https://github.com/MapColonies/raster-shared/compare/v9.0.0-alpha.0...v9.0.0-alpha.1) (2026-09-03) diff --git a/package-lock.json b/package-lock.json index dfd41df..ee5abed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@map-colonies/raster-shared", - "version": "9.0.0-alpha.1", + "version": "9.0.0-alpha.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@map-colonies/raster-shared", - "version": "9.0.0-alpha.1", + "version": "9.0.0-alpha.2", "license": "ISC", "dependencies": { "@map-colonies/mc-priority-queue": "^9.1.0", diff --git a/package.json b/package.json index af00fa5..9093147 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@map-colonies/raster-shared", - "version": "9.0.0-alpha.1", + "version": "9.0.0-alpha.2", "description": "This is template for map colonies typescript packages", "main": "./dist/index.js", "exports": {