From e05271ce23d09120ac2a013454be43cde6813c82 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 12 Oct 2026 13:02:03 +0300 Subject: [PATCH 01/31] feat: common enums --- src/enums/common/metadata/linkType.ts | 47 +++++++++++++++++++++++ src/enums/common/metadata/protocolType.ts | 28 ++++++++++++++ src/enums/common/metadata/sourceType.ts | 4 ++ 3 files changed, 79 insertions(+) create mode 100644 src/enums/common/metadata/linkType.ts create mode 100644 src/enums/common/metadata/protocolType.ts create mode 100644 src/enums/common/metadata/sourceType.ts diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts new file mode 100644 index 0000000..29006b7 --- /dev/null +++ b/src/enums/common/metadata/linkType.ts @@ -0,0 +1,47 @@ +import { ProtocolType } from './protocolType'; + +export type LinkType = RasterLinkType | ThreeDLinkType | DemLinkType | VectorLinkType; + +export enum AssetLinkType{ + THUMBNAIL_S = 'THUMBNAIL_S', + THUMBNAIL_M = 'THUMBNAIL_M', + THUMBNAIL_L = 'THUMBNAIL_L', + LEGEND_DOC = 'LEGEND_DOC', + LEGEND_IMG = 'LEGEND_IMG', +} + +export enum RasterLinkType { + WMTS_KVP = 'WMTS_KVP', + WMTS_BASE = 'WMTS_BASE', + WMS_BASE = 'WMS_BASE', + WMTS = ProtocolType.WMTS, + WMS = ProtocolType.WMS, + WCS = ProtocolType.WCS, + WFS = ProtocolType.WFS, + THUMBNAIL_S = AssetLinkType.THUMBNAIL_S, + THUMBNAIL_M = AssetLinkType.THUMBNAIL_M, + THUMBNAIL_L = AssetLinkType.THUMBNAIL_L, + LEGEND_DOC = AssetLinkType.LEGEND_DOC, + LEGEND_IMG = AssetLinkType.LEGEND_IMG, +} + +export enum ThreeDLinkType { + THREE_D_TILES = '3DTiles', + TERRAIN_QMESH = 'TERRAIN_QMESH', + THUMBNAIL_S = AssetLinkType.THUMBNAIL_S, + THUMBNAIL_M = AssetLinkType.THUMBNAIL_M, + THUMBNAIL_L = AssetLinkType.THUMBNAIL_L, +} + +export enum DemLinkType { + WMTS = ProtocolType.WMTS, + TERRAIN_QMESH = ProtocolType.TERRAIN_QMESH, + THUMBNAIL_S = AssetLinkType.THUMBNAIL_S, + THUMBNAIL_M = AssetLinkType.THUMBNAIL_M, + THUMBNAIL_L = AssetLinkType.THUMBNAIL_L, +} + +export enum VectorLinkType { + WMTS = ProtocolType.WMTS, + WFS = ProtocolType.WFS, +} diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts new file mode 100644 index 0000000..1ef17f4 --- /dev/null +++ b/src/enums/common/metadata/protocolType.ts @@ -0,0 +1,28 @@ +export enum ProtocolType { + WMS = 'WMS', + WMTS = 'WMTS', + XYZ = 'XYZ', + OSM = 'OSM', + WFS = 'WFS', + WCS = 'WCS', + COPC = 'COPC', + THREE_D_TILES = '3DTiles', + TERRAIN_QMESH = 'TERRAIN_QMESH', + VECTOR_TILES = 'VECTOR_TILES', +} + +export const PROTOCOL_SCHEMAS = { + [ProtocolType.WMS]: { + mandatory:'http://www.opengis.net/wms_req', + optional: 'http://www.opengis.net/wms_opt', + }, + [ProtocolType.WMTS]: 'http://www.opengis.net/wmts', + [ProtocolType.XYZ]: 'http://www.opengis.net/xyz', + [ProtocolType.OSM]: 'http://www.opengis.net/osm', + [ProtocolType.WFS]: 'http://www.opengis.net/wfs', + [ProtocolType.WCS]: 'http://www.opengis.net/wcs', + [ProtocolType.COPC]: 'http://www.opengis.net/copc', + [ProtocolType.THREE_D_TILES]: 'http://www.opengis.net/3dtiles', + [ProtocolType.TERRAIN_QMESH]: 'http://www.opengis.net/terrain_qmesh', + [ProtocolType.VECTOR_TILES]: 'http://www.opengis.net/vector_tiles', +} diff --git a/src/enums/common/metadata/sourceType.ts b/src/enums/common/metadata/sourceType.ts new file mode 100644 index 0000000..726b46f --- /dev/null +++ b/src/enums/common/metadata/sourceType.ts @@ -0,0 +1,4 @@ +export enum SourceType { + RASTER = 'RASTER', + EXTERNAL = 'EXTERNAL', +} From 9588a9df2414ad6ad01ced2c336c94e563c6b1ef Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Thu, 15 Oct 2026 10:51:33 +0300 Subject: [PATCH 02/31] fix: code review --- src/enums/common/metadata/protocolType.ts | 16 ---------------- src/enums/common/metadata/sourceType.ts | 6 ++++-- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 1ef17f4..5dd32ff 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -10,19 +10,3 @@ export enum ProtocolType { TERRAIN_QMESH = 'TERRAIN_QMESH', VECTOR_TILES = 'VECTOR_TILES', } - -export const PROTOCOL_SCHEMAS = { - [ProtocolType.WMS]: { - mandatory:'http://www.opengis.net/wms_req', - optional: 'http://www.opengis.net/wms_opt', - }, - [ProtocolType.WMTS]: 'http://www.opengis.net/wmts', - [ProtocolType.XYZ]: 'http://www.opengis.net/xyz', - [ProtocolType.OSM]: 'http://www.opengis.net/osm', - [ProtocolType.WFS]: 'http://www.opengis.net/wfs', - [ProtocolType.WCS]: 'http://www.opengis.net/wcs', - [ProtocolType.COPC]: 'http://www.opengis.net/copc', - [ProtocolType.THREE_D_TILES]: 'http://www.opengis.net/3dtiles', - [ProtocolType.TERRAIN_QMESH]: 'http://www.opengis.net/terrain_qmesh', - [ProtocolType.VECTOR_TILES]: 'http://www.opengis.net/vector_tiles', -} diff --git a/src/enums/common/metadata/sourceType.ts b/src/enums/common/metadata/sourceType.ts index 726b46f..46e487f 100644 --- a/src/enums/common/metadata/sourceType.ts +++ b/src/enums/common/metadata/sourceType.ts @@ -1,4 +1,6 @@ export enum SourceType { - RASTER = 'RASTER', - EXTERNAL = 'EXTERNAL', + EXTERNAL = 'EXTERNAL', + RASTER_RESOURCE = 'RASTER_RESOURCE', + RESOLVED_RASTER_RESOURCE = 'RESOLVED_RASTER_RESOURCE', + UNRESOLVED_RASTER_RESOURCE = 'UNRESOLVED_RASTER_RESOURCE', } From d5ec3dcc87e09156c5ebacb48b07aff249834cf0 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Thu, 15 Oct 2026 10:52:05 +0300 Subject: [PATCH 03/31] chore: fix --- src/enums/common/metadata/sourceType.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/enums/common/metadata/sourceType.ts b/src/enums/common/metadata/sourceType.ts index 46e487f..9ba37c4 100644 --- a/src/enums/common/metadata/sourceType.ts +++ b/src/enums/common/metadata/sourceType.ts @@ -1,5 +1,5 @@ export enum SourceType { - EXTERNAL = 'EXTERNAL', + EXTERNAL = 'EXTERNAL', RASTER_RESOURCE = 'RASTER_RESOURCE', RESOLVED_RASTER_RESOURCE = 'RESOLVED_RASTER_RESOURCE', UNRESOLVED_RASTER_RESOURCE = 'UNRESOLVED_RASTER_RESOURCE', From ecbb8fc78fe7c9afbad223ae905cef2dbebe17f4 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Thu, 15 Oct 2026 10:58:12 +0300 Subject: [PATCH 04/31] chore: fix --- src/enums/common/metadata/linkType.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index 29006b7..670f48f 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -2,7 +2,7 @@ import { ProtocolType } from './protocolType'; export type LinkType = RasterLinkType | ThreeDLinkType | DemLinkType | VectorLinkType; -export enum AssetLinkType{ +export enum AssetLinkType { THUMBNAIL_S = 'THUMBNAIL_S', THUMBNAIL_M = 'THUMBNAIL_M', THUMBNAIL_L = 'THUMBNAIL_L', From 622593c08b9b3a666e14c52cae4bd97274625a2e Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Thu, 15 Oct 2026 12:23:52 +0300 Subject: [PATCH 05/31] fix: not permitted computed values --- src/enums/common/metadata/linkType.ts | 38 +++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index 670f48f..155bc27 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -14,34 +14,34 @@ export enum RasterLinkType { WMTS_KVP = 'WMTS_KVP', WMTS_BASE = 'WMTS_BASE', WMS_BASE = 'WMS_BASE', - WMTS = ProtocolType.WMTS, - WMS = ProtocolType.WMS, - WCS = ProtocolType.WCS, - WFS = ProtocolType.WFS, - THUMBNAIL_S = AssetLinkType.THUMBNAIL_S, - THUMBNAIL_M = AssetLinkType.THUMBNAIL_M, - THUMBNAIL_L = AssetLinkType.THUMBNAIL_L, - LEGEND_DOC = AssetLinkType.LEGEND_DOC, - LEGEND_IMG = AssetLinkType.LEGEND_IMG, + WMTS = 'WMTS', + WMS = 'WMS', + WCS = 'WCS', + WFS = 'WFS', + THUMBNAIL_S = 'THUMBNAIL_S', + THUMBNAIL_M = 'THUMBNAIL_M', + THUMBNAIL_L = 'THUMBNAIL_L', + LEGEND_DOC = 'LEGEND_DOC', + LEGEND_IMG = 'LEGEND_IMG', } export enum ThreeDLinkType { THREE_D_TILES = '3DTiles', TERRAIN_QMESH = 'TERRAIN_QMESH', - THUMBNAIL_S = AssetLinkType.THUMBNAIL_S, - THUMBNAIL_M = AssetLinkType.THUMBNAIL_M, - THUMBNAIL_L = AssetLinkType.THUMBNAIL_L, + THUMBNAIL_S = 'THUMBNAIL_S', + THUMBNAIL_M = 'THUMBNAIL_M', + THUMBNAIL_L = 'THUMBNAIL_L', } export enum DemLinkType { - WMTS = ProtocolType.WMTS, - TERRAIN_QMESH = ProtocolType.TERRAIN_QMESH, - THUMBNAIL_S = AssetLinkType.THUMBNAIL_S, - THUMBNAIL_M = AssetLinkType.THUMBNAIL_M, - THUMBNAIL_L = AssetLinkType.THUMBNAIL_L, + WMTS = 'WMTS', + TERRAIN_QMESH = 'TERRAIN_QMESH', + THUMBNAIL_S = 'THUMBNAIL_S', + THUMBNAIL_M = 'THUMBNAIL_M', + THUMBNAIL_L = 'THUMBNAIL_L', } export enum VectorLinkType { - WMTS = ProtocolType.WMTS, - WFS = ProtocolType.WFS, + WMTS = 'WMTS', + WFS = 'WFS', } From 7f9e0cde3c6a2d2abca4bf4f6f17c88e89b4338a Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Thu, 15 Oct 2026 12:24:25 +0300 Subject: [PATCH 06/31] chore: remove unused --- src/enums/common/metadata/linkType.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index 155bc27..7dc3869 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -1,5 +1,3 @@ -import { ProtocolType } from './protocolType'; - export type LinkType = RasterLinkType | ThreeDLinkType | DemLinkType | VectorLinkType; export enum AssetLinkType { From abe7fe3b3cfce2f2e0d8255d2ebcb101f7423ee9 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Thu, 15 Oct 2026 15:22:29 +0300 Subject: [PATCH 07/31] chore: fix --- src/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/index.ts b/src/index.ts index aada08d..52f0d6a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,11 @@ export * from './enums/common/domain'; export * from './enums/common/artifact'; +export * from './enums/common/metadata/linkType'; export * from './enums/common/metadata/productType'; +export * from './enums/common/metadata/protocolType'; export * from './enums/common/metadata/recordStatus'; export * from './enums/common/metadata/recordType'; +export * from './enums/common/metadata/sourceType'; export * from './enums/common/metadata/transparency'; export * from './enums/geo/epsg'; export * from './helpers/mime'; From 904641f822bed50cc9356c4a79858258f1360c72 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Sun, 18 Oct 2026 19:38:20 +0300 Subject: [PATCH 08/31] chore: fix enum union --- src/enums/common/metadata/linkType.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index 7dc3869..bc5f250 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -1,4 +1,13 @@ -export type LinkType = RasterLinkType | ThreeDLinkType | DemLinkType | VectorLinkType; +export enum ThumbnailLinkType { + THUMBNAIL_S = 'THUMBNAIL_S', + THUMBNAIL_M = 'THUMBNAIL_M', + THUMBNAIL_L = 'THUMBNAIL_L', +} + +export enum LegendLinkType { + LEGEND_DOC = 'LEGEND_DOC', + LEGEND_IMG = 'LEGEND_IMG', +} export enum AssetLinkType { THUMBNAIL_S = 'THUMBNAIL_S', @@ -43,3 +52,12 @@ export enum VectorLinkType { WMTS = 'WMTS', WFS = 'WFS', } + +export const LinkType = { + ...RasterLinkType, + ...ThreeDLinkType, + ...DemLinkType, + ...VectorLinkType, +} as const; + +export type LinkType = RasterLinkType | ThreeDLinkType | DemLinkType | VectorLinkType; From a9c90d723d7a40df4300f104a6afa0a162967d57 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 19 Oct 2026 13:12:06 +0300 Subject: [PATCH 09/31] fix: for Assaf --- src/enums/common/metadata/linkType.ts | 104 ++++++++++------------ src/enums/common/metadata/protocolType.ts | 23 ++++- 2 files changed, 71 insertions(+), 56 deletions(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index bc5f250..d7a77a9 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -1,57 +1,52 @@ -export enum ThumbnailLinkType { - THUMBNAIL_S = 'THUMBNAIL_S', - THUMBNAIL_M = 'THUMBNAIL_M', - THUMBNAIL_L = 'THUMBNAIL_L', -} - -export enum LegendLinkType { - LEGEND_DOC = 'LEGEND_DOC', - LEGEND_IMG = 'LEGEND_IMG', -} - -export enum AssetLinkType { - THUMBNAIL_S = 'THUMBNAIL_S', - THUMBNAIL_M = 'THUMBNAIL_M', - THUMBNAIL_L = 'THUMBNAIL_L', - LEGEND_DOC = 'LEGEND_DOC', - LEGEND_IMG = 'LEGEND_IMG', -} - -export enum RasterLinkType { - WMTS_KVP = 'WMTS_KVP', - WMTS_BASE = 'WMTS_BASE', - WMS_BASE = 'WMS_BASE', - WMTS = 'WMTS', - WMS = 'WMS', - WCS = 'WCS', - WFS = 'WFS', - THUMBNAIL_S = 'THUMBNAIL_S', - THUMBNAIL_M = 'THUMBNAIL_M', - THUMBNAIL_L = 'THUMBNAIL_L', - LEGEND_DOC = 'LEGEND_DOC', - LEGEND_IMG = 'LEGEND_IMG', -} - -export enum ThreeDLinkType { - THREE_D_TILES = '3DTiles', - TERRAIN_QMESH = 'TERRAIN_QMESH', - THUMBNAIL_S = 'THUMBNAIL_S', - THUMBNAIL_M = 'THUMBNAIL_M', - THUMBNAIL_L = 'THUMBNAIL_L', -} - -export enum DemLinkType { - WMTS = 'WMTS', - TERRAIN_QMESH = 'TERRAIN_QMESH', - THUMBNAIL_S = 'THUMBNAIL_S', - THUMBNAIL_M = 'THUMBNAIL_M', - THUMBNAIL_L = 'THUMBNAIL_L', -} - -export enum VectorLinkType { - WMTS = 'WMTS', - WFS = 'WFS', -} +import { DemProtocolType, RasterProtocolType, ThreeDProtocolType, VectorProtocolType } from './protocolType'; + +export const ThumbnailLinkType = { + THUMBNAIL_S: 'THUMBNAIL_S', + THUMBNAIL_M: 'THUMBNAIL_M', + THUMBNAIL_L: 'THUMBNAIL_L', +} as const; +export type ThumbnailLinkType = (typeof ThumbnailLinkType)[keyof typeof ThumbnailLinkType]; + +export const LegendLinkType = { + LEGEND_DOC: 'LEGEND_DOC', + LEGEND_IMG: 'LEGEND_IMG', +} as const; +export type LegendLinkType = (typeof LegendLinkType)[keyof typeof LegendLinkType]; + +export const AssetLinkType = { + ...ThumbnailLinkType, + ...LegendLinkType, +} as const; +export type AssetLinkType = (typeof AssetLinkType)[keyof typeof AssetLinkType]; + +export const RasterLinkType = { + WMTS_KVP: 'WMTS_KVP', + WMTS_BASE: 'WMTS_BASE', + WMS_BASE: 'WMS_BASE', + WMTS: RasterProtocolType.WMTS, + WMS: RasterProtocolType.WMS, + WCS: RasterProtocolType.WCS, + WFS: RasterProtocolType.WFS, + ...AssetLinkType, +} as const; +export type RasterLinkType = (typeof RasterLinkType)[keyof typeof RasterLinkType]; + +export const ThreeDLinkType = { + ...ThreeDProtocolType, + ...ThumbnailLinkType, +} as const; +export type ThreeDLinkType = (typeof ThreeDLinkType)[keyof typeof ThreeDLinkType]; + +export const DemLinkType = { + ...DemProtocolType, + ...ThumbnailLinkType, +} as const; +export type DemLinkType = (typeof DemLinkType)[keyof typeof DemLinkType]; + +export const VectorLinkType = { + ...VectorProtocolType, +} as const; +export type VectorLinkType = (typeof VectorLinkType)[keyof typeof VectorLinkType]; export const LinkType = { ...RasterLinkType, @@ -59,5 +54,4 @@ export const LinkType = { ...DemLinkType, ...VectorLinkType, } as const; - export type LinkType = RasterLinkType | ThreeDLinkType | DemLinkType | VectorLinkType; diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 5dd32ff..89c8911 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -1,12 +1,33 @@ -export enum ProtocolType { +export enum RasterProtocolType { WMS = 'WMS', WMTS = 'WMTS', XYZ = 'XYZ', OSM = 'OSM', WFS = 'WFS', WCS = 'WCS', +} + +export enum ThreeDProtocolType { COPC = 'COPC', THREE_D_TILES = '3DTiles', TERRAIN_QMESH = 'TERRAIN_QMESH', +} + +export enum DemProtocolType { + WMTS = 'WMTS', + TERRAIN_QMESH = 'TERRAIN_QMESH', +} + +export enum VectorProtocolType { + WMTS = 'WMTS', + WFS = 'WFS', VECTOR_TILES = 'VECTOR_TILES', } + +export const ProtocolType = { + ...RasterProtocolType, + ...ThreeDProtocolType, + ...DemProtocolType, + ...VectorProtocolType, +} as const; +export type ProtocolType = RasterProtocolType | ThreeDProtocolType | DemProtocolType | VectorProtocolType; From e9c463354a9a40945a39e8439295320487b0fead Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 19 Oct 2026 13:27:04 +0300 Subject: [PATCH 10/31] fix: for 3D --- src/enums/common/metadata/linkType.ts | 1 + src/enums/common/metadata/protocolType.ts | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index d7a77a9..9474a06 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -34,6 +34,7 @@ export type RasterLinkType = (typeof RasterLinkType)[keyof typeof RasterLinkType export const ThreeDLinkType = { ...ThreeDProtocolType, ...ThumbnailLinkType, + DOWNLOAD: 'DOWNLOAD', } as const; export type ThreeDLinkType = (typeof ThreeDLinkType)[keyof typeof ThreeDLinkType]; diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 89c8911..e40384a 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -11,11 +11,15 @@ export enum ThreeDProtocolType { COPC = 'COPC', THREE_D_TILES = '3DTiles', TERRAIN_QMESH = 'TERRAIN_QMESH', + WFS = 'WFS', + } export enum DemProtocolType { WMTS = 'WMTS', TERRAIN_QMESH = 'TERRAIN_QMESH', + WFS = 'WFS', + WCS = 'WCS', } export enum VectorProtocolType { From 4f8edb979684de8f4c54046c304156ab3da06cf5 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 19 Oct 2026 15:01:29 +0300 Subject: [PATCH 11/31] fix: for vitali --- src/enums/common/metadata/protocolType.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index e40384a..68d6ede 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -4,7 +4,6 @@ export enum RasterProtocolType { XYZ = 'XYZ', OSM = 'OSM', WFS = 'WFS', - WCS = 'WCS', } export enum ThreeDProtocolType { From 788ceb0166b700db815c49c819722efb6b01c714 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 19 Oct 2026 16:11:09 +0300 Subject: [PATCH 12/31] fix: wcs --- src/enums/common/metadata/linkType.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index 9474a06..a1cc779 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -25,7 +25,6 @@ export const RasterLinkType = { WMS_BASE: 'WMS_BASE', WMTS: RasterProtocolType.WMTS, WMS: RasterProtocolType.WMS, - WCS: RasterProtocolType.WCS, WFS: RasterProtocolType.WFS, ...AssetLinkType, } as const; From aca06a05cfda8a33793f71a5dd66a3b0cb124363 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 19 Oct 2026 16:40:53 +0300 Subject: [PATCH 13/31] chore: fix --- src/enums/common/metadata/protocolType.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 68d6ede..31fece5 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -11,7 +11,6 @@ export enum ThreeDProtocolType { THREE_D_TILES = '3DTiles', TERRAIN_QMESH = 'TERRAIN_QMESH', WFS = 'WFS', - } export enum DemProtocolType { From 308eade8447b198f08767635ddeb2e53d34dcdb9 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 19 Oct 2026 16:48:56 +0300 Subject: [PATCH 14/31] chore: add UT --- tests/unit/linkType.spec.ts | 70 +++++++++++++++++++++++++++++++++ tests/unit/protocolType.spec.ts | 28 +++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 tests/unit/linkType.spec.ts create mode 100644 tests/unit/protocolType.spec.ts diff --git a/tests/unit/linkType.spec.ts b/tests/unit/linkType.spec.ts new file mode 100644 index 0000000..3409d0f --- /dev/null +++ b/tests/unit/linkType.spec.ts @@ -0,0 +1,70 @@ +import { DemLinkType, LinkType, RasterLinkType, ThreeDLinkType, VectorLinkType } from '../../src/enums/common/metadata/linkType'; + +const sorted = (values: string[]): string[] => [...values].sort((a, b) => a.localeCompare(b)); + +describe('LinkType (combined enum-like construct)', () => { + it('exposes exactly the union of unique values across all four source enums', () => { + const expected = new Set([ + ...Object.values(RasterLinkType), + ...Object.values(ThreeDLinkType), + ...Object.values(DemLinkType), + ...Object.values(VectorLinkType), + ]); + expect(sorted(Object.values(LinkType))).toEqual(sorted(Array.from(expected))); + }); + + it('deduplicates overlapping keys without losing information (same string value either way)', () => { + // WMTS appears in RasterLinkType, DemLinkType and VectorLinkType - all with the same value. + expect(LinkType.WMTS).toBe('WMTS'); + // WFS appears in RasterLinkType and VectorLinkType. + expect(LinkType.WFS).toBe('WFS'); + // TERRAIN_QMESH appears in ThreeDLinkType and DemLinkType. + expect(LinkType.TERRAIN_QMESH).toBe('TERRAIN_QMESH'); + // THUMBNAIL_S/M/L appear in RasterLinkType, ThreeDLinkType and DemLinkType. + expect(LinkType.THUMBNAIL_S).toBe('THUMBNAIL_S'); + }); + + it('supports direct member (dot) access for values unique to a single source enum', () => { + expect(LinkType.WMTS_KVP).toBe('WMTS_KVP'); // raster-only + expect(LinkType.THREE_D_TILES).toBe('3DTiles'); // 3D-only + expect(LinkType.LEGEND_DOC).toBe('LEGEND_DOC'); // raster-only + }); + + it('accepts every source enum member as a value of the LinkType type (compile-time contract)', () => { + // These assignments are the actual test: this file must compile. If the combined type were + // derived as `(typeof LinkType)[keyof typeof LinkType]` instead of the explicit union, some + // of these would fail to compile with TS2820 (verified during implementation) because + // object-spread keeps only one source enum's nominal type per overlapping key. + const a: LinkType = RasterLinkType.WMTS; + const b: LinkType = DemLinkType.WMTS; + const c: LinkType = VectorLinkType.WMTS; + const d: LinkType = RasterLinkType.WFS; + const e: LinkType = VectorLinkType.WFS; + const f: LinkType = ThreeDLinkType.TERRAIN_QMESH; + const g: LinkType = DemLinkType.TERRAIN_QMESH; + const h: LinkType = RasterLinkType.THUMBNAIL_S; + const i: LinkType = ThreeDLinkType.THUMBNAIL_S; + const j: LinkType = DemLinkType.THUMBNAIL_S; + const k: LinkType = RasterLinkType.LEGEND_DOC; + const l: LinkType = ThreeDLinkType.THREE_D_TILES; + + expect([a, b, c, d, e, f, g, h, i, j, k, l]).toEqual([ + 'WMTS', + 'WMTS', + 'WMTS', + 'WFS', + 'WFS', + 'TERRAIN_QMESH', + 'TERRAIN_QMESH', + 'THUMBNAIL_S', + 'THUMBNAIL_S', + 'THUMBNAIL_S', + 'LEGEND_DOC', + '3DTiles', + ]); + }); + + it('rejects a value that belongs to none of the four source enums', () => { + expect(Object.values(LinkType)).not.toContain('NOT_A_REAL_LINK_TYPE'); + }); +}); diff --git a/tests/unit/protocolType.spec.ts b/tests/unit/protocolType.spec.ts new file mode 100644 index 0000000..8aaa507 --- /dev/null +++ b/tests/unit/protocolType.spec.ts @@ -0,0 +1,28 @@ +import { ProtocolType } from '../../src/enums/common/metadata/protocolType'; + +const sorted = (values: string[]): string[] => [...values].sort((a, b) => a.localeCompare(b)); + +/** + * Locks down the public wire contract - consumers validate these values through + * `z.nativeEnum(ProtocolType)`. Also guards against `ProtocolType` losing its TypeScript type + * (it must remain usable both as a value and as a type, like any other enum in this file). + */ +describe('protocolType', () => { + it('exposes exactly the expected values', () => { + expect(sorted(Object.values(ProtocolType))).toEqual( + sorted(['WMS', 'WMTS', 'XYZ', 'OSM', 'WFS', 'WCS', 'COPC', '3DTiles', 'TERRAIN_QMESH', 'VECTOR_TILES']) + ); + }); + + it('supports direct member (dot) access', () => { + expect(ProtocolType.WMS).toBe('WMS'); + expect(ProtocolType.THREE_D_TILES).toBe('3DTiles'); + expect(ProtocolType.TERRAIN_QMESH).toBe('TERRAIN_QMESH'); + expect(ProtocolType.VECTOR_TILES).toBe('VECTOR_TILES'); + }); + + it('is usable as a TypeScript type (not value-only)', () => { + const accept = (p: ProtocolType): ProtocolType => p; + expect(accept(ProtocolType.COPC)).toBe('COPC'); + }); +}); From d474a4c597e6593835071a2313b52a6d0c189694 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 19 Oct 2026 17:07:42 +0300 Subject: [PATCH 15/31] fix: eslint --- src/enums/common/metadata/linkType.ts | 4 ++++ src/enums/common/metadata/protocolType.ts | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index a1cc779..69cf130 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -1,5 +1,7 @@ import { DemProtocolType, RasterProtocolType, ThreeDProtocolType, VectorProtocolType } from './protocolType'; +/* eslint-disable @typescript-eslint/naming-convention */ + export const ThumbnailLinkType = { THUMBNAIL_S: 'THUMBNAIL_S', THUMBNAIL_M: 'THUMBNAIL_M', @@ -55,3 +57,5 @@ export const LinkType = { ...VectorLinkType, } as const; export type LinkType = RasterLinkType | ThreeDLinkType | DemLinkType | VectorLinkType; + +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 31fece5..0348afe 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -32,4 +32,6 @@ export const ProtocolType = { ...DemProtocolType, ...VectorProtocolType, } as const; +/* eslint-disable @typescript-eslint/naming-convention */ export type ProtocolType = RasterProtocolType | ThreeDProtocolType | DemProtocolType | VectorProtocolType; +/* eslint-enable @typescript-eslint/naming-convention */ From 4a81350688711659ae3d1571ba6c9d5b4cdca313 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 19 Oct 2026 17:11:39 +0300 Subject: [PATCH 16/31] fix: eslint --- src/enums/common/metadata/protocolType.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 0348afe..47ebfc5 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -26,12 +26,11 @@ export enum VectorProtocolType { VECTOR_TILES = 'VECTOR_TILES', } +// eslint-disable-next-line @typescript-eslint/naming-convention export const ProtocolType = { ...RasterProtocolType, ...ThreeDProtocolType, ...DemProtocolType, ...VectorProtocolType, } as const; -/* eslint-disable @typescript-eslint/naming-convention */ export type ProtocolType = RasterProtocolType | ThreeDProtocolType | DemProtocolType | VectorProtocolType; -/* eslint-enable @typescript-eslint/naming-convention */ From 2fdf85532c7c8f07a5ceca4c37d406f256311f91 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 09:35:14 +0300 Subject: [PATCH 17/31] fix: code review --- src/enums/common/metadata/linkType.ts | 11 ++-- src/enums/common/metadata/protocolType.ts | 64 ++++++++++++++--------- 2 files changed, 46 insertions(+), 29 deletions(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index 2d14f02..f8be25a 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -1,4 +1,9 @@ -import { DemProtocolType, RasterProtocolType, ThreeDProtocolType, VectorProtocolType } from './protocolType'; +import { + DemProtocolType, + RasterProtocolType, + ThreeDProtocolType, + VectorProtocolType +} from './protocolType'; /* eslint-disable @typescript-eslint/naming-convention */ @@ -25,9 +30,7 @@ export const RasterLinkType = { WMTS_KVP: 'WMTS_KVP', WMTS_BASE: 'WMTS_BASE', WMS_BASE: 'WMS_BASE', - WMTS: RasterProtocolType.WMTS, - WMS: RasterProtocolType.WMS, - WFS: RasterProtocolType.WFS, + ...RasterProtocolType, ...AssetLinkType, } as const; export type RasterLinkType = (typeof RasterLinkType)[keyof typeof RasterLinkType]; diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 47ebfc5..d3547c3 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -1,30 +1,43 @@ -export enum RasterProtocolType { - WMS = 'WMS', - WMTS = 'WMTS', - XYZ = 'XYZ', - OSM = 'OSM', - WFS = 'WFS', -} +export const ImageryProtocolType = { + WMS: 'WMS', + WMTS: 'WMTS', +} as const; +export type ImageryProtocolType = (typeof ImageryProtocolType)[keyof typeof ImageryProtocolType]; + +export const UnsupportedProtocolType = { + XYZ: 'XYZ', + OSM: 'OSM', +} as const; +export type UnsupportedProtocolType = (typeof UnsupportedProtocolType)[keyof typeof UnsupportedProtocolType]; + +export const VectorProtocolType = { + WMTS: ImageryProtocolType.WMTS, + WFS: 'WFS', + VECTOR_TILES: 'VECTOR_TILES', +} as const; +export type VectorProtocolType = (typeof VectorProtocolType)[keyof typeof VectorProtocolType]; -export enum ThreeDProtocolType { - COPC = 'COPC', - THREE_D_TILES = '3DTiles', - TERRAIN_QMESH = 'TERRAIN_QMESH', - WFS = 'WFS', -} +export const DemProtocolType = { + WMTS: ImageryProtocolType.WMTS, + TERRAIN_QMESH: 'TERRAIN_QMESH', + WFS: VectorProtocolType.WFS, + WCS: 'WCS', +} as const; +export type DemProtocolType = (typeof DemProtocolType)[keyof typeof DemProtocolType]; -export enum DemProtocolType { - WMTS = 'WMTS', - TERRAIN_QMESH = 'TERRAIN_QMESH', - WFS = 'WFS', - WCS = 'WCS', -} +export const ThreeDProtocolType = { + COPC: 'COPC', + THREE_D_TILES: '3DTiles', + TERRAIN_QMESH: DemProtocolType.TERRAIN_QMESH, + WFS: VectorProtocolType.WFS, +} as const; +export type ThreeDProtocolType = (typeof ThreeDProtocolType)[keyof typeof ThreeDProtocolType]; -export enum VectorProtocolType { - WMTS = 'WMTS', - WFS = 'WFS', - VECTOR_TILES = 'VECTOR_TILES', -} +export const RasterProtocolType = { + ...ImageryProtocolType, + WFS: VectorProtocolType.WFS, +} as const; +export type RasterProtocolType = (typeof RasterProtocolType)[keyof typeof RasterProtocolType]; // eslint-disable-next-line @typescript-eslint/naming-convention export const ProtocolType = { @@ -32,5 +45,6 @@ export const ProtocolType = { ...ThreeDProtocolType, ...DemProtocolType, ...VectorProtocolType, + ...UnsupportedProtocolType, } as const; -export type ProtocolType = RasterProtocolType | ThreeDProtocolType | DemProtocolType | VectorProtocolType; +export type ProtocolType = RasterProtocolType | ThreeDProtocolType | DemProtocolType | VectorProtocolType | UnsupportedProtocolType; From 6b314b76a1737d99454ee148a75691b56fbe6eb9 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 11:21:33 +0300 Subject: [PATCH 18/31] fix: split into files --- src/enums/common/metadata/linkType.ts | 75 +++++-------------- .../common/metadata/linkType/DemLinkType.ts | 10 +++ .../metadata/linkType/RasterLinkType.ts | 12 +++ .../metadata/linkType/ThreeDLinkType.ts | 9 +++ .../metadata/linkType/VectorLinkType.ts | 7 ++ src/enums/common/metadata/linkType/common.ts | 20 +++++ src/enums/common/metadata/protocolType.ts | 60 +++++---------- .../metadata/protocolType/DemProtocolType.ts | 9 +++ .../protocolType/RasterProtocolType.ts | 8 ++ .../protocolType/ThreeDProtocolType.ts | 10 +++ .../protocolType/VectorProtocolType.ts | 8 ++ .../common/metadata/protocolType/common.ts | 17 +++++ 12 files changed, 146 insertions(+), 99 deletions(-) create mode 100644 src/enums/common/metadata/linkType/DemLinkType.ts create mode 100644 src/enums/common/metadata/linkType/RasterLinkType.ts create mode 100644 src/enums/common/metadata/linkType/ThreeDLinkType.ts create mode 100644 src/enums/common/metadata/linkType/VectorLinkType.ts create mode 100644 src/enums/common/metadata/linkType/common.ts create mode 100644 src/enums/common/metadata/protocolType/DemProtocolType.ts create mode 100644 src/enums/common/metadata/protocolType/RasterProtocolType.ts create mode 100644 src/enums/common/metadata/protocolType/ThreeDProtocolType.ts create mode 100644 src/enums/common/metadata/protocolType/VectorProtocolType.ts create mode 100644 src/enums/common/metadata/protocolType/common.ts diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index f8be25a..66e4dc0 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -1,64 +1,23 @@ -import { - DemProtocolType, - RasterProtocolType, - ThreeDProtocolType, - VectorProtocolType -} from './protocolType'; - -/* eslint-disable @typescript-eslint/naming-convention */ - -export const ThumbnailLinkType = { - THUMBNAIL_S: 'THUMBNAIL_S', - THUMBNAIL_M: 'THUMBNAIL_M', - THUMBNAIL_L: 'THUMBNAIL_L', -} as const; -export type ThumbnailLinkType = (typeof ThumbnailLinkType)[keyof typeof ThumbnailLinkType]; - -export const LegendLinkType = { - LEGEND_DOC: 'LEGEND_DOC', - LEGEND_IMG: 'LEGEND_IMG', -} as const; -export type LegendLinkType = (typeof LegendLinkType)[keyof typeof LegendLinkType]; - -export const AssetLinkType = { - ...ThumbnailLinkType, - ...LegendLinkType, -} as const; -export type AssetLinkType = (typeof AssetLinkType)[keyof typeof AssetLinkType]; - -export const RasterLinkType = { - WMTS_KVP: 'WMTS_KVP', - WMTS_BASE: 'WMTS_BASE', - WMS_BASE: 'WMS_BASE', - ...RasterProtocolType, - ...AssetLinkType, -} as const; -export type RasterLinkType = (typeof RasterLinkType)[keyof typeof RasterLinkType]; - -export const ThreeDLinkType = { - ...ThreeDProtocolType, - ...ThumbnailLinkType, -} as const; -export type ThreeDLinkType = (typeof ThreeDLinkType)[keyof typeof ThreeDLinkType]; - -export const DemLinkType = { - ...DemProtocolType, - ...ThumbnailLinkType, - DOWNLOAD: 'DOWNLOAD', -} as const; -export type DemLinkType = (typeof DemLinkType)[keyof typeof DemLinkType]; - -export const VectorLinkType = { - ...VectorProtocolType, -} as const; -export type VectorLinkType = (typeof VectorLinkType)[keyof typeof VectorLinkType]; - +export { ThumbnailLinkType, LegendLinkType, AssetLinkType } from './linkType/common'; +export { DemLinkType } from './linkType/DemLinkType'; +export { RasterLinkType } from './linkType/RasterLinkType'; +export { ThreeDLinkType } from './linkType/ThreeDLinkType'; +export { VectorLinkType } from './linkType/VectorLinkType'; + +import { DemLinkType } from './linkType/DemLinkType'; +import { RasterLinkType } from './linkType/RasterLinkType'; +import { ThreeDLinkType } from './linkType/ThreeDLinkType'; +import { VectorLinkType } from './linkType/VectorLinkType'; + +// eslint-disable-next-line @typescript-eslint/naming-convention export const LinkType = { ...RasterLinkType, ...ThreeDLinkType, ...DemLinkType, ...VectorLinkType, } as const; -export type LinkType = RasterLinkType | ThreeDLinkType | DemLinkType | VectorLinkType; - -/* eslint-enable @typescript-eslint/naming-convention */ +export type LinkType = + import('./linkType/RasterLinkType').RasterLinkType | + import('./linkType/ThreeDLinkType').ThreeDLinkType | + import('./linkType/DemLinkType').DemLinkType | + import('./linkType/VectorLinkType').VectorLinkType; diff --git a/src/enums/common/metadata/linkType/DemLinkType.ts b/src/enums/common/metadata/linkType/DemLinkType.ts new file mode 100644 index 0000000..1660c85 --- /dev/null +++ b/src/enums/common/metadata/linkType/DemLinkType.ts @@ -0,0 +1,10 @@ +import { DemProtocolType } from '../protocolType/DemProtocolType'; +import { ThumbnailLinkType } from './common'; + +// eslint-disable-next-line @typescript-eslint/naming-convention +export const DemLinkType = { + ...DemProtocolType, + ...ThumbnailLinkType, + DOWNLOAD: 'DOWNLOAD', +} as const; +export type DemLinkType = (typeof DemLinkType)[keyof typeof DemLinkType]; diff --git a/src/enums/common/metadata/linkType/RasterLinkType.ts b/src/enums/common/metadata/linkType/RasterLinkType.ts new file mode 100644 index 0000000..72739df --- /dev/null +++ b/src/enums/common/metadata/linkType/RasterLinkType.ts @@ -0,0 +1,12 @@ +import { RasterProtocolType } from '../protocolType/RasterProtocolType'; +import { AssetLinkType } from './common'; + +// eslint-disable-next-line @typescript-eslint/naming-convention +export const RasterLinkType = { + WMTS_KVP: 'WMTS_KVP', + WMTS_BASE: 'WMTS_BASE', + WMS_BASE: 'WMS_BASE', + ...RasterProtocolType, + ...AssetLinkType, +} as const; +export type RasterLinkType = (typeof RasterLinkType)[keyof typeof RasterLinkType]; diff --git a/src/enums/common/metadata/linkType/ThreeDLinkType.ts b/src/enums/common/metadata/linkType/ThreeDLinkType.ts new file mode 100644 index 0000000..8c4787f --- /dev/null +++ b/src/enums/common/metadata/linkType/ThreeDLinkType.ts @@ -0,0 +1,9 @@ +import { ThreeDProtocolType } from '../protocolType/ThreeDProtocolType'; +import { ThumbnailLinkType } from './common'; + +// eslint-disable-next-line @typescript-eslint/naming-convention +export const ThreeDLinkType = { + ...ThreeDProtocolType, + ...ThumbnailLinkType, +} as const; +export type ThreeDLinkType = (typeof ThreeDLinkType)[keyof typeof ThreeDLinkType]; diff --git a/src/enums/common/metadata/linkType/VectorLinkType.ts b/src/enums/common/metadata/linkType/VectorLinkType.ts new file mode 100644 index 0000000..9f19ed0 --- /dev/null +++ b/src/enums/common/metadata/linkType/VectorLinkType.ts @@ -0,0 +1,7 @@ +import { VectorProtocolType } from '../protocolType/VectorProtocolType'; + +// eslint-disable-next-line @typescript-eslint/naming-convention +export const VectorLinkType = { + ...VectorProtocolType, +} as const; +export type VectorLinkType = (typeof VectorLinkType)[keyof typeof VectorLinkType]; diff --git a/src/enums/common/metadata/linkType/common.ts b/src/enums/common/metadata/linkType/common.ts new file mode 100644 index 0000000..b825f70 --- /dev/null +++ b/src/enums/common/metadata/linkType/common.ts @@ -0,0 +1,20 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +export const ThumbnailLinkType = { + THUMBNAIL_S: 'THUMBNAIL_S', + THUMBNAIL_M: 'THUMBNAIL_M', + THUMBNAIL_L: 'THUMBNAIL_L', +} as const; +export type ThumbnailLinkType = (typeof ThumbnailLinkType)[keyof typeof ThumbnailLinkType]; + +export const LegendLinkType = { + LEGEND_DOC: 'LEGEND_DOC', + LEGEND_IMG: 'LEGEND_IMG', +} as const; +export type LegendLinkType = (typeof LegendLinkType)[keyof typeof LegendLinkType]; + +export const AssetLinkType = { + ...ThumbnailLinkType, + ...LegendLinkType, +} as const; +export type AssetLinkType = (typeof AssetLinkType)[keyof typeof AssetLinkType]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index d3547c3..9c5da9d 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -1,43 +1,14 @@ -export const ImageryProtocolType = { - WMS: 'WMS', - WMTS: 'WMTS', -} as const; -export type ImageryProtocolType = (typeof ImageryProtocolType)[keyof typeof ImageryProtocolType]; - -export const UnsupportedProtocolType = { - XYZ: 'XYZ', - OSM: 'OSM', -} as const; -export type UnsupportedProtocolType = (typeof UnsupportedProtocolType)[keyof typeof UnsupportedProtocolType]; - -export const VectorProtocolType = { - WMTS: ImageryProtocolType.WMTS, - WFS: 'WFS', - VECTOR_TILES: 'VECTOR_TILES', -} as const; -export type VectorProtocolType = (typeof VectorProtocolType)[keyof typeof VectorProtocolType]; +export { OGCImageryProtocolType, OGCVectorProtocolType, ProprietaryImageryProtocolType } from './protocolType/common'; +export { DemProtocolType } from './protocolType/DemProtocolType'; +export { RasterProtocolType } from './protocolType/RasterProtocolType'; +export { ThreeDProtocolType } from './protocolType/ThreeDProtocolType'; +export { VectorProtocolType } from './protocolType/VectorProtocolType'; -export const DemProtocolType = { - WMTS: ImageryProtocolType.WMTS, - TERRAIN_QMESH: 'TERRAIN_QMESH', - WFS: VectorProtocolType.WFS, - WCS: 'WCS', -} as const; -export type DemProtocolType = (typeof DemProtocolType)[keyof typeof DemProtocolType]; - -export const ThreeDProtocolType = { - COPC: 'COPC', - THREE_D_TILES: '3DTiles', - TERRAIN_QMESH: DemProtocolType.TERRAIN_QMESH, - WFS: VectorProtocolType.WFS, -} as const; -export type ThreeDProtocolType = (typeof ThreeDProtocolType)[keyof typeof ThreeDProtocolType]; - -export const RasterProtocolType = { - ...ImageryProtocolType, - WFS: VectorProtocolType.WFS, -} as const; -export type RasterProtocolType = (typeof RasterProtocolType)[keyof typeof RasterProtocolType]; +import { OGCImageryProtocolType, ProprietaryImageryProtocolType } from './protocolType/common'; +import { DemProtocolType } from './protocolType/DemProtocolType'; +import { RasterProtocolType } from './protocolType/RasterProtocolType'; +import { ThreeDProtocolType } from './protocolType/ThreeDProtocolType'; +import { VectorProtocolType } from './protocolType/VectorProtocolType'; // eslint-disable-next-line @typescript-eslint/naming-convention export const ProtocolType = { @@ -45,6 +16,13 @@ export const ProtocolType = { ...ThreeDProtocolType, ...DemProtocolType, ...VectorProtocolType, - ...UnsupportedProtocolType, + ...OGCImageryProtocolType, + ...ProprietaryImageryProtocolType, } as const; -export type ProtocolType = RasterProtocolType | ThreeDProtocolType | DemProtocolType | VectorProtocolType | UnsupportedProtocolType; +export type ProtocolType = + import('./protocolType/RasterProtocolType').RasterProtocolType | + import('./protocolType/ThreeDProtocolType').ThreeDProtocolType | + import('./protocolType/DemProtocolType').DemProtocolType | + import('./protocolType/VectorProtocolType').VectorProtocolType | + import('./protocolType/common').OGCImageryProtocolType | + import('./protocolType/common').ProprietaryImageryProtocolType; diff --git a/src/enums/common/metadata/protocolType/DemProtocolType.ts b/src/enums/common/metadata/protocolType/DemProtocolType.ts new file mode 100644 index 0000000..8a4380a --- /dev/null +++ b/src/enums/common/metadata/protocolType/DemProtocolType.ts @@ -0,0 +1,9 @@ +import { OGCImageryProtocolType, OGCVectorProtocolType } from './common'; + +export const DemProtocolType = { + WMTS: OGCImageryProtocolType.WMTS, + TERRAIN_QMESH: 'TERRAIN_QMESH', + WFS: OGCVectorProtocolType.WFS, + WCS: OGCImageryProtocolType.WCS, +} as const; +export type DemProtocolType = (typeof DemProtocolType)[keyof typeof DemProtocolType]; diff --git a/src/enums/common/metadata/protocolType/RasterProtocolType.ts b/src/enums/common/metadata/protocolType/RasterProtocolType.ts new file mode 100644 index 0000000..5fbfdf9 --- /dev/null +++ b/src/enums/common/metadata/protocolType/RasterProtocolType.ts @@ -0,0 +1,8 @@ +import { OGCImageryProtocolType, OGCVectorProtocolType } from './common'; + +export const RasterProtocolType = { + WMTS: OGCImageryProtocolType.WMTS, + WMS: OGCImageryProtocolType.WMS, + WFS: OGCVectorProtocolType.WFS, +} as const; +export type RasterProtocolType = (typeof RasterProtocolType)[keyof typeof RasterProtocolType]; diff --git a/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts new file mode 100644 index 0000000..91494bf --- /dev/null +++ b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts @@ -0,0 +1,10 @@ +import { OGCVectorProtocolType } from './common'; +import { DemProtocolType } from './DemProtocolType'; + +export const ThreeDProtocolType = { + COPC: 'COPC', + THREE_D_TILES: '3DTiles', + TERRAIN_QMESH: DemProtocolType.TERRAIN_QMESH, + WFS: OGCVectorProtocolType.WFS, +} as const; +export type ThreeDProtocolType = (typeof ThreeDProtocolType)[keyof typeof ThreeDProtocolType]; diff --git a/src/enums/common/metadata/protocolType/VectorProtocolType.ts b/src/enums/common/metadata/protocolType/VectorProtocolType.ts new file mode 100644 index 0000000..99d27a3 --- /dev/null +++ b/src/enums/common/metadata/protocolType/VectorProtocolType.ts @@ -0,0 +1,8 @@ +import { OGCImageryProtocolType, OGCVectorProtocolType } from './common'; + +export const VectorProtocolType = { + WMTS: OGCImageryProtocolType.WMTS, + WFS: OGCVectorProtocolType.WFS, + VECTOR_TILES: 'VECTOR_TILES', +} as const; +export type VectorProtocolType = (typeof VectorProtocolType)[keyof typeof VectorProtocolType]; diff --git a/src/enums/common/metadata/protocolType/common.ts b/src/enums/common/metadata/protocolType/common.ts new file mode 100644 index 0000000..f45ae9d --- /dev/null +++ b/src/enums/common/metadata/protocolType/common.ts @@ -0,0 +1,17 @@ +export const OGCImageryProtocolType = { + WMS: 'WMS', + WMTS: 'WMTS', + XYZ: 'XYZ', + WCS: 'WCS', +} as const; +export type OGCImageryProtocolType = (typeof OGCImageryProtocolType)[keyof typeof OGCImageryProtocolType]; + +export const ProprietaryImageryProtocolType = { + OSM: 'OSM', +} as const; +export type ProprietaryImageryProtocolType = (typeof ProprietaryImageryProtocolType)[keyof typeof ProprietaryImageryProtocolType]; + +export const OGCVectorProtocolType = { + WFS: 'WFS', +} as const; +export type OGCVectorProtocolType = (typeof OGCVectorProtocolType)[keyof typeof OGCVectorProtocolType]; From 719d5f655dcc3cb1e543d77f996e3cb7aa0ea40e Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 12:26:17 +0300 Subject: [PATCH 19/31] fix: eslint --- src/enums/common/metadata/linkType.ts | 12 ++++++------ src/enums/common/metadata/protocolType.ts | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index 66e4dc0..0a697b9 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -1,9 +1,3 @@ -export { ThumbnailLinkType, LegendLinkType, AssetLinkType } from './linkType/common'; -export { DemLinkType } from './linkType/DemLinkType'; -export { RasterLinkType } from './linkType/RasterLinkType'; -export { ThreeDLinkType } from './linkType/ThreeDLinkType'; -export { VectorLinkType } from './linkType/VectorLinkType'; - import { DemLinkType } from './linkType/DemLinkType'; import { RasterLinkType } from './linkType/RasterLinkType'; import { ThreeDLinkType } from './linkType/ThreeDLinkType'; @@ -21,3 +15,9 @@ export type LinkType = import('./linkType/ThreeDLinkType').ThreeDLinkType | import('./linkType/DemLinkType').DemLinkType | import('./linkType/VectorLinkType').VectorLinkType; + +export { ThumbnailLinkType, LegendLinkType, AssetLinkType } from './linkType/common'; +export { DemLinkType } from './linkType/DemLinkType'; +export { RasterLinkType } from './linkType/RasterLinkType'; +export { ThreeDLinkType } from './linkType/ThreeDLinkType'; +export { VectorLinkType } from './linkType/VectorLinkType'; diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 9c5da9d..6a56fba 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -1,9 +1,3 @@ -export { OGCImageryProtocolType, OGCVectorProtocolType, ProprietaryImageryProtocolType } from './protocolType/common'; -export { DemProtocolType } from './protocolType/DemProtocolType'; -export { RasterProtocolType } from './protocolType/RasterProtocolType'; -export { ThreeDProtocolType } from './protocolType/ThreeDProtocolType'; -export { VectorProtocolType } from './protocolType/VectorProtocolType'; - import { OGCImageryProtocolType, ProprietaryImageryProtocolType } from './protocolType/common'; import { DemProtocolType } from './protocolType/DemProtocolType'; import { RasterProtocolType } from './protocolType/RasterProtocolType'; @@ -26,3 +20,9 @@ export type ProtocolType = import('./protocolType/VectorProtocolType').VectorProtocolType | import('./protocolType/common').OGCImageryProtocolType | import('./protocolType/common').ProprietaryImageryProtocolType; + +export { OGCImageryProtocolType, OGCVectorProtocolType, ProprietaryImageryProtocolType } from './protocolType/common'; +export { DemProtocolType } from './protocolType/DemProtocolType'; +export { RasterProtocolType } from './protocolType/RasterProtocolType'; +export { ThreeDProtocolType } from './protocolType/ThreeDProtocolType'; +export { VectorProtocolType } from './protocolType/VectorProtocolType'; From f5246e5942a85e59f9c33e68247c3a4f31b62252 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 12:28:41 +0300 Subject: [PATCH 20/31] fix: eslint --- src/enums/common/metadata/protocolType/DemProtocolType.ts | 1 + src/enums/common/metadata/protocolType/RasterProtocolType.ts | 1 + src/enums/common/metadata/protocolType/ThreeDProtocolType.ts | 1 + src/enums/common/metadata/protocolType/VectorProtocolType.ts | 1 + 4 files changed, 4 insertions(+) diff --git a/src/enums/common/metadata/protocolType/DemProtocolType.ts b/src/enums/common/metadata/protocolType/DemProtocolType.ts index 8a4380a..d46efca 100644 --- a/src/enums/common/metadata/protocolType/DemProtocolType.ts +++ b/src/enums/common/metadata/protocolType/DemProtocolType.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { OGCImageryProtocolType, OGCVectorProtocolType } from './common'; export const DemProtocolType = { diff --git a/src/enums/common/metadata/protocolType/RasterProtocolType.ts b/src/enums/common/metadata/protocolType/RasterProtocolType.ts index 5fbfdf9..83dbf07 100644 --- a/src/enums/common/metadata/protocolType/RasterProtocolType.ts +++ b/src/enums/common/metadata/protocolType/RasterProtocolType.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { OGCImageryProtocolType, OGCVectorProtocolType } from './common'; export const RasterProtocolType = { diff --git a/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts index 91494bf..db2b9fb 100644 --- a/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts +++ b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { OGCVectorProtocolType } from './common'; import { DemProtocolType } from './DemProtocolType'; diff --git a/src/enums/common/metadata/protocolType/VectorProtocolType.ts b/src/enums/common/metadata/protocolType/VectorProtocolType.ts index 99d27a3..293bf83 100644 --- a/src/enums/common/metadata/protocolType/VectorProtocolType.ts +++ b/src/enums/common/metadata/protocolType/VectorProtocolType.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { OGCImageryProtocolType, OGCVectorProtocolType } from './common'; export const VectorProtocolType = { From 7c1c41fc6a5676be00c861b1f3586e2eb1ced7f4 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 13:16:41 +0300 Subject: [PATCH 21/31] fix: prettier --- src/enums/common/metadata/linkType.ts | 8 ++++---- src/enums/common/metadata/protocolType.ts | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index 0a697b9..ae1c7d2 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -11,10 +11,10 @@ export const LinkType = { ...VectorLinkType, } as const; export type LinkType = - import('./linkType/RasterLinkType').RasterLinkType | - import('./linkType/ThreeDLinkType').ThreeDLinkType | - import('./linkType/DemLinkType').DemLinkType | - import('./linkType/VectorLinkType').VectorLinkType; + | import('./linkType/RasterLinkType').RasterLinkType + | import('./linkType/ThreeDLinkType').ThreeDLinkType + | import('./linkType/DemLinkType').DemLinkType + | import('./linkType/VectorLinkType').VectorLinkType; export { ThumbnailLinkType, LegendLinkType, AssetLinkType } from './linkType/common'; export { DemLinkType } from './linkType/DemLinkType'; diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 6a56fba..85deec2 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -13,13 +13,13 @@ export const ProtocolType = { ...OGCImageryProtocolType, ...ProprietaryImageryProtocolType, } as const; -export type ProtocolType = - import('./protocolType/RasterProtocolType').RasterProtocolType | - import('./protocolType/ThreeDProtocolType').ThreeDProtocolType | - import('./protocolType/DemProtocolType').DemProtocolType | - import('./protocolType/VectorProtocolType').VectorProtocolType | - import('./protocolType/common').OGCImageryProtocolType | - import('./protocolType/common').ProprietaryImageryProtocolType; +export type ProtocolType = + | import('./protocolType/RasterProtocolType').RasterProtocolType + | import('./protocolType/ThreeDProtocolType').ThreeDProtocolType + | import('./protocolType/DemProtocolType').DemProtocolType + | import('./protocolType/VectorProtocolType').VectorProtocolType + | import('./protocolType/common').OGCImageryProtocolType + | import('./protocolType/common').ProprietaryImageryProtocolType; export { OGCImageryProtocolType, OGCVectorProtocolType, ProprietaryImageryProtocolType } from './protocolType/common'; export { DemProtocolType } from './protocolType/DemProtocolType'; From 0d2295b07cab63acf2df54bd3735db95e827c5a3 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 13:34:05 +0300 Subject: [PATCH 22/31] fix: eslint --- src/enums/common/metadata/linkType/DemLinkType.ts | 3 ++- src/enums/common/metadata/linkType/RasterLinkType.ts | 3 ++- src/enums/common/metadata/linkType/ThreeDLinkType.ts | 3 ++- src/enums/common/metadata/linkType/VectorLinkType.ts | 3 ++- src/enums/common/metadata/protocolType/DemProtocolType.ts | 5 +++-- .../common/metadata/protocolType/RasterProtocolType.ts | 1 + .../common/metadata/protocolType/ThreeDProtocolType.ts | 6 +++--- .../common/metadata/protocolType/VectorProtocolType.ts | 1 + src/enums/common/metadata/protocolType/common.ts | 7 +++++++ 9 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/enums/common/metadata/linkType/DemLinkType.ts b/src/enums/common/metadata/linkType/DemLinkType.ts index 1660c85..553a468 100644 --- a/src/enums/common/metadata/linkType/DemLinkType.ts +++ b/src/enums/common/metadata/linkType/DemLinkType.ts @@ -1,10 +1,11 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { DemProtocolType } from '../protocolType/DemProtocolType'; import { ThumbnailLinkType } from './common'; -// eslint-disable-next-line @typescript-eslint/naming-convention export const DemLinkType = { ...DemProtocolType, ...ThumbnailLinkType, DOWNLOAD: 'DOWNLOAD', } as const; export type DemLinkType = (typeof DemLinkType)[keyof typeof DemLinkType]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/linkType/RasterLinkType.ts b/src/enums/common/metadata/linkType/RasterLinkType.ts index 72739df..ca3f766 100644 --- a/src/enums/common/metadata/linkType/RasterLinkType.ts +++ b/src/enums/common/metadata/linkType/RasterLinkType.ts @@ -1,7 +1,7 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { RasterProtocolType } from '../protocolType/RasterProtocolType'; import { AssetLinkType } from './common'; -// eslint-disable-next-line @typescript-eslint/naming-convention export const RasterLinkType = { WMTS_KVP: 'WMTS_KVP', WMTS_BASE: 'WMTS_BASE', @@ -10,3 +10,4 @@ export const RasterLinkType = { ...AssetLinkType, } as const; export type RasterLinkType = (typeof RasterLinkType)[keyof typeof RasterLinkType]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/linkType/ThreeDLinkType.ts b/src/enums/common/metadata/linkType/ThreeDLinkType.ts index 8c4787f..7eb68fc 100644 --- a/src/enums/common/metadata/linkType/ThreeDLinkType.ts +++ b/src/enums/common/metadata/linkType/ThreeDLinkType.ts @@ -1,9 +1,10 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { ThreeDProtocolType } from '../protocolType/ThreeDProtocolType'; import { ThumbnailLinkType } from './common'; -// eslint-disable-next-line @typescript-eslint/naming-convention export const ThreeDLinkType = { ...ThreeDProtocolType, ...ThumbnailLinkType, } as const; export type ThreeDLinkType = (typeof ThreeDLinkType)[keyof typeof ThreeDLinkType]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/linkType/VectorLinkType.ts b/src/enums/common/metadata/linkType/VectorLinkType.ts index 9f19ed0..196a420 100644 --- a/src/enums/common/metadata/linkType/VectorLinkType.ts +++ b/src/enums/common/metadata/linkType/VectorLinkType.ts @@ -1,7 +1,8 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { VectorProtocolType } from '../protocolType/VectorProtocolType'; -// eslint-disable-next-line @typescript-eslint/naming-convention export const VectorLinkType = { ...VectorProtocolType, } as const; export type VectorLinkType = (typeof VectorLinkType)[keyof typeof VectorLinkType]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType/DemProtocolType.ts b/src/enums/common/metadata/protocolType/DemProtocolType.ts index d46efca..95cb1bb 100644 --- a/src/enums/common/metadata/protocolType/DemProtocolType.ts +++ b/src/enums/common/metadata/protocolType/DemProtocolType.ts @@ -1,10 +1,11 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { OGCImageryProtocolType, OGCVectorProtocolType } from './common'; +import { OGCImageryProtocolType, OGCVectorProtocolType, ProprietaryDemProtocolType } from './common'; export const DemProtocolType = { WMTS: OGCImageryProtocolType.WMTS, - TERRAIN_QMESH: 'TERRAIN_QMESH', + TERRAIN_QMESH: ProprietaryDemProtocolType.TERRAIN_QMESH, WFS: OGCVectorProtocolType.WFS, WCS: OGCImageryProtocolType.WCS, } as const; export type DemProtocolType = (typeof DemProtocolType)[keyof typeof DemProtocolType]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType/RasterProtocolType.ts b/src/enums/common/metadata/protocolType/RasterProtocolType.ts index 83dbf07..32b4887 100644 --- a/src/enums/common/metadata/protocolType/RasterProtocolType.ts +++ b/src/enums/common/metadata/protocolType/RasterProtocolType.ts @@ -7,3 +7,4 @@ export const RasterProtocolType = { WFS: OGCVectorProtocolType.WFS, } as const; export type RasterProtocolType = (typeof RasterProtocolType)[keyof typeof RasterProtocolType]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts index db2b9fb..9f9eba6 100644 --- a/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts +++ b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { OGCVectorProtocolType } from './common'; -import { DemProtocolType } from './DemProtocolType'; +import { OGCVectorProtocolType, ProprietaryDemProtocolType } from './common'; export const ThreeDProtocolType = { COPC: 'COPC', THREE_D_TILES: '3DTiles', - TERRAIN_QMESH: DemProtocolType.TERRAIN_QMESH, + TERRAIN_QMESH: ProprietaryDemProtocolType.TERRAIN_QMESH, WFS: OGCVectorProtocolType.WFS, } as const; export type ThreeDProtocolType = (typeof ThreeDProtocolType)[keyof typeof ThreeDProtocolType]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType/VectorProtocolType.ts b/src/enums/common/metadata/protocolType/VectorProtocolType.ts index 293bf83..1e6f940 100644 --- a/src/enums/common/metadata/protocolType/VectorProtocolType.ts +++ b/src/enums/common/metadata/protocolType/VectorProtocolType.ts @@ -7,3 +7,4 @@ export const VectorProtocolType = { VECTOR_TILES: 'VECTOR_TILES', } as const; export type VectorProtocolType = (typeof VectorProtocolType)[keyof typeof VectorProtocolType]; +/* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType/common.ts b/src/enums/common/metadata/protocolType/common.ts index f45ae9d..3316786 100644 --- a/src/enums/common/metadata/protocolType/common.ts +++ b/src/enums/common/metadata/protocolType/common.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ export const OGCImageryProtocolType = { WMS: 'WMS', WMTS: 'WMTS', @@ -15,3 +16,9 @@ export const OGCVectorProtocolType = { WFS: 'WFS', } as const; export type OGCVectorProtocolType = (typeof OGCVectorProtocolType)[keyof typeof OGCVectorProtocolType]; + +export const ProprietaryDemProtocolType = { + TERRAIN_QMESH: 'TERRAIN_QMESH', +} as const; +export type ProprietaryDemProtocolType = (typeof ProprietaryDemProtocolType)[keyof typeof ProprietaryDemProtocolType]; +/* eslint-enable @typescript-eslint/naming-convention */ From 7c90393550d49092e66c6dcbb4dfcd9304ecd15d Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 13:41:45 +0300 Subject: [PATCH 23/31] fix: sync export with new enums --- src/enums/common/artifact.ts | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/enums/common/artifact.ts b/src/enums/common/artifact.ts index e858e72..59a7e4c 100644 --- a/src/enums/common/artifact.ts +++ b/src/enums/common/artifact.ts @@ -1,3 +1,5 @@ +import { LegendLinkType, ThumbnailLinkType } from './metadata/linkType'; + export enum ArtifactDEMType { MODEL = 'MODEL', METADATA = 'METADATA', @@ -5,19 +7,17 @@ export enum ArtifactDEMType { LEGEND = 'LEGEND', } -export enum ArtifactRasterType { - GPKG = 'GPKG', - LEGEND = 'LEGEND', - METADATA = 'METADATA', - THUMBNAILS_SMALL = 'THUMBNAILS_SMALL', - THUMBNAILS_MEDIUM = 'THUMBNAILS_MEDIUM', - THUMBNAILS_LARGE = 'THUMBNAILS_LARGE', -} +export const ArtifactRasterType = { + GPKG: 'GPKG', + METADATA: 'METADATA', + ...LegendLinkType, + ...ThumbnailLinkType, +} as const; +export type ArtifactRasterType = (typeof ArtifactRasterType)[keyof typeof ArtifactRasterType]; -export enum Artifact3DType { - MODEL_3D = 'MODEL_3D', - METADATA = 'METADATA', - THUMBNAILS_SMALL = 'THUMBNAILS_SMALL', - THUMBNAILS_MEDIUM = 'THUMBNAILS_MEDIUM', - THUMBNAILS_LARGE = 'THUMBNAILS_LARGE', -} +export const Artifact3DType = { + MODEL_3D:'MODEL_3D', + METADATA: 'METADATA', + ...ThumbnailLinkType, +} as const; +export type Artifact3DType = (typeof Artifact3DType)[keyof typeof Artifact3DType]; From fbf80b07aba468f8774b3957885943494f063298 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 14:54:18 +0300 Subject: [PATCH 24/31] fix: naming convention and 2 new protocols --- src/enums/common/metadata/linkType.ts | 10 ++--- src/enums/common/metadata/protocolType.ts | 20 +++++----- .../metadata/protocolType/DemProtocolType.ts | 14 ++++--- .../protocolType/RasterProtocolType.ts | 8 ++-- .../protocolType/ThreeDProtocolType.ts | 15 ++++--- .../protocolType/VectorProtocolType.ts | 6 +-- .../common/metadata/protocolType/common.ts | 39 +++++++++++++++---- tests/unit/protocolType.spec.ts | 2 +- 8 files changed, 73 insertions(+), 41 deletions(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index ae1c7d2..e2f9829 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -16,8 +16,8 @@ export type LinkType = | import('./linkType/DemLinkType').DemLinkType | import('./linkType/VectorLinkType').VectorLinkType; -export { ThumbnailLinkType, LegendLinkType, AssetLinkType } from './linkType/common'; -export { DemLinkType } from './linkType/DemLinkType'; -export { RasterLinkType } from './linkType/RasterLinkType'; -export { ThreeDLinkType } from './linkType/ThreeDLinkType'; -export { VectorLinkType } from './linkType/VectorLinkType'; +export * from './linkType/common'; +export * from './linkType/DemLinkType'; +export * from './linkType/RasterLinkType'; +export * from './linkType/ThreeDLinkType'; +export * from './linkType/VectorLinkType'; diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index 85deec2..a73963f 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -1,4 +1,4 @@ -import { OGCImageryProtocolType, ProprietaryImageryProtocolType } from './protocolType/common'; +import { OGC_ImageryProtocolType, PROPRIETARY_ImageryProtocolType } from './protocolType/common'; import { DemProtocolType } from './protocolType/DemProtocolType'; import { RasterProtocolType } from './protocolType/RasterProtocolType'; import { ThreeDProtocolType } from './protocolType/ThreeDProtocolType'; @@ -10,19 +10,19 @@ export const ProtocolType = { ...ThreeDProtocolType, ...DemProtocolType, ...VectorProtocolType, - ...OGCImageryProtocolType, - ...ProprietaryImageryProtocolType, + ...OGC_ImageryProtocolType, + ...PROPRIETARY_ImageryProtocolType, } as const; export type ProtocolType = | import('./protocolType/RasterProtocolType').RasterProtocolType | import('./protocolType/ThreeDProtocolType').ThreeDProtocolType | import('./protocolType/DemProtocolType').DemProtocolType | import('./protocolType/VectorProtocolType').VectorProtocolType - | import('./protocolType/common').OGCImageryProtocolType - | import('./protocolType/common').ProprietaryImageryProtocolType; + | import('./protocolType/common').OGC_ImageryProtocolType + | import('./protocolType/common').PROPRIETARY_ImageryProtocolType; -export { OGCImageryProtocolType, OGCVectorProtocolType, ProprietaryImageryProtocolType } from './protocolType/common'; -export { DemProtocolType } from './protocolType/DemProtocolType'; -export { RasterProtocolType } from './protocolType/RasterProtocolType'; -export { ThreeDProtocolType } from './protocolType/ThreeDProtocolType'; -export { VectorProtocolType } from './protocolType/VectorProtocolType'; +export * from './protocolType/common'; +export * from './protocolType/DemProtocolType'; +export * from './protocolType/RasterProtocolType'; +export * from './protocolType/ThreeDProtocolType'; +export * from './protocolType/VectorProtocolType'; diff --git a/src/enums/common/metadata/protocolType/DemProtocolType.ts b/src/enums/common/metadata/protocolType/DemProtocolType.ts index 95cb1bb..28b74fb 100644 --- a/src/enums/common/metadata/protocolType/DemProtocolType.ts +++ b/src/enums/common/metadata/protocolType/DemProtocolType.ts @@ -1,11 +1,15 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { OGCImageryProtocolType, OGCVectorProtocolType, ProprietaryDemProtocolType } from './common'; +import { + OGC_ImageryProtocolType, + OGC_VectorProtocolType, + PROPRIETARY_DemProtocolType +} from './common'; export const DemProtocolType = { - WMTS: OGCImageryProtocolType.WMTS, - TERRAIN_QMESH: ProprietaryDemProtocolType.TERRAIN_QMESH, - WFS: OGCVectorProtocolType.WFS, - WCS: OGCImageryProtocolType.WCS, + WMTS: OGC_ImageryProtocolType.WMTS, + TERRAIN_QMESH: PROPRIETARY_DemProtocolType.TERRAIN_QMESH, + WFS: OGC_VectorProtocolType.WFS, + WCS: OGC_ImageryProtocolType.WCS, } as const; export type DemProtocolType = (typeof DemProtocolType)[keyof typeof DemProtocolType]; /* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType/RasterProtocolType.ts b/src/enums/common/metadata/protocolType/RasterProtocolType.ts index 32b4887..b0d3bba 100644 --- a/src/enums/common/metadata/protocolType/RasterProtocolType.ts +++ b/src/enums/common/metadata/protocolType/RasterProtocolType.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { OGCImageryProtocolType, OGCVectorProtocolType } from './common'; +import { OGC_ImageryProtocolType, OGC_VectorProtocolType } from './common'; export const RasterProtocolType = { - WMTS: OGCImageryProtocolType.WMTS, - WMS: OGCImageryProtocolType.WMS, - WFS: OGCVectorProtocolType.WFS, + WMTS: OGC_ImageryProtocolType.WMTS, + WMS: OGC_ImageryProtocolType.WMS, + WFS: OGC_VectorProtocolType.WFS, } as const; export type RasterProtocolType = (typeof RasterProtocolType)[keyof typeof RasterProtocolType]; /* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts index 9f9eba6..4e1888d 100644 --- a/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts +++ b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts @@ -1,11 +1,16 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { OGCVectorProtocolType, ProprietaryDemProtocolType } from './common'; +import { + OGC_ThreeDProtocolType, + OGC_VectorProtocolType, + OPEN_ThreeDProtocolType, + PROPRIETARY_DemProtocolType +} from './common'; export const ThreeDProtocolType = { - COPC: 'COPC', - THREE_D_TILES: '3DTiles', - TERRAIN_QMESH: ProprietaryDemProtocolType.TERRAIN_QMESH, - WFS: OGCVectorProtocolType.WFS, + COPC: OPEN_ThreeDProtocolType.COPC, + THREE_D_TILES: OGC_ThreeDProtocolType.THREE_D_TILES, + TERRAIN_QMESH: PROPRIETARY_DemProtocolType.TERRAIN_QMESH, + WFS: OGC_VectorProtocolType.WFS, } as const; export type ThreeDProtocolType = (typeof ThreeDProtocolType)[keyof typeof ThreeDProtocolType]; /* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType/VectorProtocolType.ts b/src/enums/common/metadata/protocolType/VectorProtocolType.ts index 1e6f940..cf30cf4 100644 --- a/src/enums/common/metadata/protocolType/VectorProtocolType.ts +++ b/src/enums/common/metadata/protocolType/VectorProtocolType.ts @@ -1,9 +1,9 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { OGCImageryProtocolType, OGCVectorProtocolType } from './common'; +import { OGC_ImageryProtocolType, OGC_VectorProtocolType } from './common'; export const VectorProtocolType = { - WMTS: OGCImageryProtocolType.WMTS, - WFS: OGCVectorProtocolType.WFS, + WMTS: OGC_ImageryProtocolType.WMTS, + WFS: OGC_VectorProtocolType.WFS, VECTOR_TILES: 'VECTOR_TILES', } as const; export type VectorProtocolType = (typeof VectorProtocolType)[keyof typeof VectorProtocolType]; diff --git a/src/enums/common/metadata/protocolType/common.ts b/src/enums/common/metadata/protocolType/common.ts index 3316786..be04305 100644 --- a/src/enums/common/metadata/protocolType/common.ts +++ b/src/enums/common/metadata/protocolType/common.ts @@ -1,24 +1,47 @@ /* eslint-disable @typescript-eslint/naming-convention */ -export const OGCImageryProtocolType = { + +/* +Category Reference Guide: + +OGC: Open Geospatial Consortium Certified Open Industry Standard. +STD: Ubiquitous/De Facto Web Specification Standard. +OPEN: Open-Source or Open-Access Specification Format. +PROPRIETARY: Proprietary Corporate API / Enterprise Network Service Protocol. +INTERNAL: Embedded Cesium Core Debugging or Algorithmic Runtime Component. +*/ + +export const OGC_ImageryProtocolType = { WMS: 'WMS', WMTS: 'WMTS', XYZ: 'XYZ', WCS: 'WCS', } as const; -export type OGCImageryProtocolType = (typeof OGCImageryProtocolType)[keyof typeof OGCImageryProtocolType]; +export type OGC_ImageryProtocolType = (typeof OGC_ImageryProtocolType)[keyof typeof OGC_ImageryProtocolType]; -export const ProprietaryImageryProtocolType = { +export const PROPRIETARY_ImageryProtocolType = { OSM: 'OSM', + MAPBOX_STYLE: 'MAPBOX_STYLE', + BING_MAPS: 'BING_MAPS', } as const; -export type ProprietaryImageryProtocolType = (typeof ProprietaryImageryProtocolType)[keyof typeof ProprietaryImageryProtocolType]; +export type PROPRIETARY_ImageryProtocolType = (typeof PROPRIETARY_ImageryProtocolType)[keyof typeof PROPRIETARY_ImageryProtocolType]; -export const OGCVectorProtocolType = { +export const OGC_VectorProtocolType = { WFS: 'WFS', } as const; -export type OGCVectorProtocolType = (typeof OGCVectorProtocolType)[keyof typeof OGCVectorProtocolType]; +export type OGC_VectorProtocolType = (typeof OGC_VectorProtocolType)[keyof typeof OGC_VectorProtocolType]; + +export const OGC_ThreeDProtocolType = { + THREE_D_TILES: '3DTiles', +} as const; +export type OGC_ThreeDProtocolType = (typeof OGC_ThreeDProtocolType)[keyof typeof OGC_ThreeDProtocolType]; + +export const OPEN_ThreeDProtocolType = { + COPC: 'COPC', +} as const; +export type OPEN_ThreeDProtocolType = (typeof OPEN_ThreeDProtocolType)[keyof typeof OPEN_ThreeDProtocolType]; -export const ProprietaryDemProtocolType = { +export const PROPRIETARY_DemProtocolType = { TERRAIN_QMESH: 'TERRAIN_QMESH', } as const; -export type ProprietaryDemProtocolType = (typeof ProprietaryDemProtocolType)[keyof typeof ProprietaryDemProtocolType]; +export type PROPRIETARY_DemProtocolType = (typeof PROPRIETARY_DemProtocolType)[keyof typeof PROPRIETARY_DemProtocolType]; /* eslint-enable @typescript-eslint/naming-convention */ diff --git a/tests/unit/protocolType.spec.ts b/tests/unit/protocolType.spec.ts index 8aaa507..8157a31 100644 --- a/tests/unit/protocolType.spec.ts +++ b/tests/unit/protocolType.spec.ts @@ -10,7 +10,7 @@ const sorted = (values: string[]): string[] => [...values].sort((a, b) => a.loca describe('protocolType', () => { it('exposes exactly the expected values', () => { expect(sorted(Object.values(ProtocolType))).toEqual( - sorted(['WMS', 'WMTS', 'XYZ', 'OSM', 'WFS', 'WCS', 'COPC', '3DTiles', 'TERRAIN_QMESH', 'VECTOR_TILES']) + sorted(['WMS', 'WMTS', 'XYZ', 'OSM', 'MAPBOX_STYLE', 'BING_MAPS', 'WFS', 'WCS', 'COPC', '3DTiles', 'TERRAIN_QMESH', 'VECTOR_TILES']) ); }); From 8ed619d56e898567c81b86403b2f1e65d48931d9 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 14:59:25 +0300 Subject: [PATCH 25/31] fix: eslint --- src/enums/common/artifact.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/enums/common/artifact.ts b/src/enums/common/artifact.ts index 59a7e4c..5556d6a 100644 --- a/src/enums/common/artifact.ts +++ b/src/enums/common/artifact.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { LegendLinkType, ThumbnailLinkType } from './metadata/linkType'; export enum ArtifactDEMType { @@ -21,3 +22,4 @@ export const Artifact3DType = { ...ThumbnailLinkType, } as const; export type Artifact3DType = (typeof Artifact3DType)[keyof typeof Artifact3DType]; +/* eslint-enable @typescript-eslint/naming-convention */ From 654cbf511e14a620475e1e178d7ee188d81aaf0f Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 20 Oct 2026 15:00:25 +0300 Subject: [PATCH 26/31] fix: prettier --- src/enums/common/artifact.ts | 2 +- src/enums/common/metadata/protocolType/DemProtocolType.ts | 6 +----- .../common/metadata/protocolType/ThreeDProtocolType.ts | 7 +------ 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/enums/common/artifact.ts b/src/enums/common/artifact.ts index 5556d6a..bb6b2d4 100644 --- a/src/enums/common/artifact.ts +++ b/src/enums/common/artifact.ts @@ -17,7 +17,7 @@ export const ArtifactRasterType = { export type ArtifactRasterType = (typeof ArtifactRasterType)[keyof typeof ArtifactRasterType]; export const Artifact3DType = { - MODEL_3D:'MODEL_3D', + MODEL_3D: 'MODEL_3D', METADATA: 'METADATA', ...ThumbnailLinkType, } as const; diff --git a/src/enums/common/metadata/protocolType/DemProtocolType.ts b/src/enums/common/metadata/protocolType/DemProtocolType.ts index 28b74fb..0380923 100644 --- a/src/enums/common/metadata/protocolType/DemProtocolType.ts +++ b/src/enums/common/metadata/protocolType/DemProtocolType.ts @@ -1,9 +1,5 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { - OGC_ImageryProtocolType, - OGC_VectorProtocolType, - PROPRIETARY_DemProtocolType -} from './common'; +import { OGC_ImageryProtocolType, OGC_VectorProtocolType, PROPRIETARY_DemProtocolType } from './common'; export const DemProtocolType = { WMTS: OGC_ImageryProtocolType.WMTS, diff --git a/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts index 4e1888d..3f831d3 100644 --- a/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts +++ b/src/enums/common/metadata/protocolType/ThreeDProtocolType.ts @@ -1,10 +1,5 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { - OGC_ThreeDProtocolType, - OGC_VectorProtocolType, - OPEN_ThreeDProtocolType, - PROPRIETARY_DemProtocolType -} from './common'; +import { OGC_ThreeDProtocolType, OGC_VectorProtocolType, OPEN_ThreeDProtocolType, PROPRIETARY_DemProtocolType } from './common'; export const ThreeDProtocolType = { COPC: OPEN_ThreeDProtocolType.COPC, From 91710323541c69fa063aa243a4abf2c24ada75b3 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Wed, 21 Oct 2026 18:15:17 +0300 Subject: [PATCH 27/31] fix: vector tiles --- src/enums/common/metadata/protocolType/VectorProtocolType.ts | 4 ++-- src/enums/common/metadata/protocolType/common.ts | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/enums/common/metadata/protocolType/VectorProtocolType.ts b/src/enums/common/metadata/protocolType/VectorProtocolType.ts index cf30cf4..eac23b2 100644 --- a/src/enums/common/metadata/protocolType/VectorProtocolType.ts +++ b/src/enums/common/metadata/protocolType/VectorProtocolType.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { OGC_ImageryProtocolType, OGC_VectorProtocolType } from './common'; +import { OGC_ImageryProtocolType, OGC_VectorProtocolType, OPEN_VectorProtocolType } from './common'; export const VectorProtocolType = { WMTS: OGC_ImageryProtocolType.WMTS, WFS: OGC_VectorProtocolType.WFS, - VECTOR_TILES: 'VECTOR_TILES', + VECTOR_TILES: OPEN_VectorProtocolType.VECTOR_TILES, } as const; export type VectorProtocolType = (typeof VectorProtocolType)[keyof typeof VectorProtocolType]; /* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/enums/common/metadata/protocolType/common.ts b/src/enums/common/metadata/protocolType/common.ts index be04305..14231d0 100644 --- a/src/enums/common/metadata/protocolType/common.ts +++ b/src/enums/common/metadata/protocolType/common.ts @@ -30,6 +30,11 @@ export const OGC_VectorProtocolType = { } as const; export type OGC_VectorProtocolType = (typeof OGC_VectorProtocolType)[keyof typeof OGC_VectorProtocolType]; +export const OPEN_VectorProtocolType = { + VECTOR_TILES: 'VECTOR_TILES', +} as const; +export type OPEN_VectorProtocolType = (typeof OPEN_VectorProtocolType)[keyof typeof OPEN_VectorProtocolType]; + export const OGC_ThreeDProtocolType = { THREE_D_TILES: '3DTiles', } as const; From 2576a405d139911615e6007810e98ffaff471999 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Sun, 25 Oct 2026 11:28:12 +0200 Subject: [PATCH 28/31] chore: fix --- src/enums/common/artifact.ts | 13 ++++---- src/enums/common/metadata/protocolType.ts | 38 ++++++++++++----------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/enums/common/artifact.ts b/src/enums/common/artifact.ts index bb6b2d4..4314e41 100644 --- a/src/enums/common/artifact.ts +++ b/src/enums/common/artifact.ts @@ -1,12 +1,13 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { LegendLinkType, ThumbnailLinkType } from './metadata/linkType'; -export enum ArtifactDEMType { - MODEL = 'MODEL', - METADATA = 'METADATA', - ROI = 'ROI', - LEGEND = 'LEGEND', -} +export const ArtifactDEMType = { + MODEL: 'MODEL', + METADATA: 'METADATA', + ROI: 'ROI', + ...LegendLinkType, +} as const; +export type ArtifactDEMType = (typeof ArtifactDEMType)[keyof typeof ArtifactDEMType]; export const ArtifactRasterType = { GPKG: 'GPKG', diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index a73963f..d94604d 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -1,28 +1,30 @@ -import { OGC_ImageryProtocolType, PROPRIETARY_ImageryProtocolType } from './protocolType/common'; -import { DemProtocolType } from './protocolType/DemProtocolType'; -import { RasterProtocolType } from './protocolType/RasterProtocolType'; -import { ThreeDProtocolType } from './protocolType/ThreeDProtocolType'; -import { VectorProtocolType } from './protocolType/VectorProtocolType'; +import { + OGC_ImageryProtocolType, + OGC_ThreeDProtocolType, + OGC_VectorProtocolType, + OPEN_ThreeDProtocolType, + OPEN_VectorProtocolType, + PROPRIETARY_DemProtocolType, + PROPRIETARY_ImageryProtocolType +} from './protocolType/common'; // eslint-disable-next-line @typescript-eslint/naming-convention export const ProtocolType = { - ...RasterProtocolType, - ...ThreeDProtocolType, - ...DemProtocolType, - ...VectorProtocolType, ...OGC_ImageryProtocolType, ...PROPRIETARY_ImageryProtocolType, + ...OGC_VectorProtocolType, + ...OPEN_VectorProtocolType, + ...OGC_ThreeDProtocolType, + ...OPEN_ThreeDProtocolType, + ...PROPRIETARY_DemProtocolType, } as const; export type ProtocolType = - | import('./protocolType/RasterProtocolType').RasterProtocolType - | import('./protocolType/ThreeDProtocolType').ThreeDProtocolType - | import('./protocolType/DemProtocolType').DemProtocolType - | import('./protocolType/VectorProtocolType').VectorProtocolType | import('./protocolType/common').OGC_ImageryProtocolType - | import('./protocolType/common').PROPRIETARY_ImageryProtocolType; + | import('./protocolType/common').PROPRIETARY_ImageryProtocolType + | import('./protocolType/common').OGC_VectorProtocolType + | import('./protocolType/common').OPEN_VectorProtocolType + | import('./protocolType/common').OGC_ThreeDProtocolType + | import('./protocolType/common').OPEN_ThreeDProtocolType + | import('./protocolType/common').PROPRIETARY_DemProtocolType; export * from './protocolType/common'; -export * from './protocolType/DemProtocolType'; -export * from './protocolType/RasterProtocolType'; -export * from './protocolType/ThreeDProtocolType'; -export * from './protocolType/VectorProtocolType'; From 15263ea84a7f92d203d9b1014cf7eb9e8c61ddec Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 26 Oct 2026 14:24:17 +0200 Subject: [PATCH 29/31] fix: should move to mc-models --- src/enums/common/metadata/linkType.ts | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/src/enums/common/metadata/linkType.ts b/src/enums/common/metadata/linkType.ts index e2f9829..112a988 100644 --- a/src/enums/common/metadata/linkType.ts +++ b/src/enums/common/metadata/linkType.ts @@ -1,23 +1 @@ -import { DemLinkType } from './linkType/DemLinkType'; -import { RasterLinkType } from './linkType/RasterLinkType'; -import { ThreeDLinkType } from './linkType/ThreeDLinkType'; -import { VectorLinkType } from './linkType/VectorLinkType'; - -// eslint-disable-next-line @typescript-eslint/naming-convention -export const LinkType = { - ...RasterLinkType, - ...ThreeDLinkType, - ...DemLinkType, - ...VectorLinkType, -} as const; -export type LinkType = - | import('./linkType/RasterLinkType').RasterLinkType - | import('./linkType/ThreeDLinkType').ThreeDLinkType - | import('./linkType/DemLinkType').DemLinkType - | import('./linkType/VectorLinkType').VectorLinkType; - export * from './linkType/common'; -export * from './linkType/DemLinkType'; -export * from './linkType/RasterLinkType'; -export * from './linkType/ThreeDLinkType'; -export * from './linkType/VectorLinkType'; From 64d4d24f53be241f21cebea06d5d946dfa1e7a9a Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 26 Oct 2026 14:35:44 +0200 Subject: [PATCH 30/31] fix: unit test --- tests/unit/linkType.spec.ts | 86 +++++++++++++------------------------ 1 file changed, 30 insertions(+), 56 deletions(-) diff --git a/tests/unit/linkType.spec.ts b/tests/unit/linkType.spec.ts index 3409d0f..1691167 100644 --- a/tests/unit/linkType.spec.ts +++ b/tests/unit/linkType.spec.ts @@ -1,70 +1,44 @@ -import { DemLinkType, LinkType, RasterLinkType, ThreeDLinkType, VectorLinkType } from '../../src/enums/common/metadata/linkType'; +import * as linkTypeModule from '../../src/enums/common/metadata/linkType'; +import { AssetLinkType, LegendLinkType, ThumbnailLinkType } from '../../src/enums/common/metadata/linkType'; const sorted = (values: string[]): string[] => [...values].sort((a, b) => a.localeCompare(b)); -describe('LinkType (combined enum-like construct)', () => { - it('exposes exactly the union of unique values across all four source enums', () => { - const expected = new Set([ - ...Object.values(RasterLinkType), - ...Object.values(ThreeDLinkType), - ...Object.values(DemLinkType), - ...Object.values(VectorLinkType), - ]); - expect(sorted(Object.values(LinkType))).toEqual(sorted(Array.from(expected))); +describe('linkType', () => { + it('exposes exactly the expected thumbnail values', () => { + expect(sorted(Object.values(ThumbnailLinkType))).toEqual(sorted(['THUMBNAIL_S', 'THUMBNAIL_M', 'THUMBNAIL_L'])); }); - it('deduplicates overlapping keys without losing information (same string value either way)', () => { - // WMTS appears in RasterLinkType, DemLinkType and VectorLinkType - all with the same value. - expect(LinkType.WMTS).toBe('WMTS'); - // WFS appears in RasterLinkType and VectorLinkType. - expect(LinkType.WFS).toBe('WFS'); - // TERRAIN_QMESH appears in ThreeDLinkType and DemLinkType. - expect(LinkType.TERRAIN_QMESH).toBe('TERRAIN_QMESH'); - // THUMBNAIL_S/M/L appear in RasterLinkType, ThreeDLinkType and DemLinkType. - expect(LinkType.THUMBNAIL_S).toBe('THUMBNAIL_S'); + it('exposes exactly the expected legend values', () => { + expect(sorted(Object.values(LegendLinkType))).toEqual(sorted(['LEGEND_DOC', 'LEGEND_IMG'])); }); - it('supports direct member (dot) access for values unique to a single source enum', () => { - expect(LinkType.WMTS_KVP).toBe('WMTS_KVP'); // raster-only - expect(LinkType.THREE_D_TILES).toBe('3DTiles'); // 3D-only - expect(LinkType.LEGEND_DOC).toBe('LEGEND_DOC'); // raster-only + it('composes AssetLinkType as exactly the union of thumbnail and legend values', () => { + const expected = new Set([...Object.values(ThumbnailLinkType), ...Object.values(LegendLinkType)]); + expect(sorted(Object.values(AssetLinkType))).toEqual(sorted(Array.from(expected))); }); - it('accepts every source enum member as a value of the LinkType type (compile-time contract)', () => { - // These assignments are the actual test: this file must compile. If the combined type were - // derived as `(typeof LinkType)[keyof typeof LinkType]` instead of the explicit union, some - // of these would fail to compile with TS2820 (verified during implementation) because - // object-spread keeps only one source enum's nominal type per overlapping key. - const a: LinkType = RasterLinkType.WMTS; - const b: LinkType = DemLinkType.WMTS; - const c: LinkType = VectorLinkType.WMTS; - const d: LinkType = RasterLinkType.WFS; - const e: LinkType = VectorLinkType.WFS; - const f: LinkType = ThreeDLinkType.TERRAIN_QMESH; - const g: LinkType = DemLinkType.TERRAIN_QMESH; - const h: LinkType = RasterLinkType.THUMBNAIL_S; - const i: LinkType = ThreeDLinkType.THUMBNAIL_S; - const j: LinkType = DemLinkType.THUMBNAIL_S; - const k: LinkType = RasterLinkType.LEGEND_DOC; - const l: LinkType = ThreeDLinkType.THREE_D_TILES; + it('supports direct member (dot) access', () => { + expect(ThumbnailLinkType.THUMBNAIL_S).toBe('THUMBNAIL_S'); + expect(LegendLinkType.LEGEND_DOC).toBe('LEGEND_DOC'); + expect(AssetLinkType.THUMBNAIL_L).toBe('THUMBNAIL_L'); + expect(AssetLinkType.LEGEND_IMG).toBe('LEGEND_IMG'); + }); + + it('is usable as a TypeScript type (not value-only)', () => { + const accept = (a: AssetLinkType): AssetLinkType => a; + const thumbnail: ThumbnailLinkType = ThumbnailLinkType.THUMBNAIL_M; + const legend: LegendLinkType = LegendLinkType.LEGEND_DOC; + + // Both source enums must stay assignable to the composed type. + expect(accept(thumbnail)).toBe('THUMBNAIL_M'); + expect(accept(legend)).toBe('LEGEND_DOC'); + }); - expect([a, b, c, d, e, f, g, h, i, j, k, l]).toEqual([ - 'WMTS', - 'WMTS', - 'WMTS', - 'WFS', - 'WFS', - 'TERRAIN_QMESH', - 'TERRAIN_QMESH', - 'THUMBNAIL_S', - 'THUMBNAIL_S', - 'THUMBNAIL_S', - 'LEGEND_DOC', - '3DTiles', - ]); + it('rejects a value that belongs to none of the exported enums', () => { + expect(Object.values(AssetLinkType)).not.toContain('NOT_A_REAL_LINK_TYPE'); }); - it('rejects a value that belongs to none of the four source enums', () => { - expect(Object.values(LinkType)).not.toContain('NOT_A_REAL_LINK_TYPE'); + it('no longer re-exports the domain-specific link enums (moved to mc-models)', () => { + expect(sorted(Object.keys(linkTypeModule))).toEqual(sorted(['ThumbnailLinkType', 'LegendLinkType', 'AssetLinkType'])); }); }); From 0994cd514bff22bc9c6d61e850c03faa9a03d507 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 26 Oct 2026 14:39:05 +0200 Subject: [PATCH 31/31] fix: prettier --- src/enums/common/metadata/protocolType.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/enums/common/metadata/protocolType.ts b/src/enums/common/metadata/protocolType.ts index d94604d..c7ca6c0 100644 --- a/src/enums/common/metadata/protocolType.ts +++ b/src/enums/common/metadata/protocolType.ts @@ -5,7 +5,7 @@ import { OPEN_ThreeDProtocolType, OPEN_VectorProtocolType, PROPRIETARY_DemProtocolType, - PROPRIETARY_ImageryProtocolType + PROPRIETARY_ImageryProtocolType, } from './protocolType/common'; // eslint-disable-next-line @typescript-eslint/naming-convention