@map-colonies/mc-utils 3.4.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/files/shapefile/core/chunkBuilder.d.ts.map +1 -1
- package/dist/files/shapefile/core/chunkBuilder.js +8 -2
- package/dist/files/shapefile/core/chunkBuilder.js.map +1 -1
- package/dist/files/shapefile/core/shapeFileReader.d.ts +1 -1
- package/dist/files/shapefile/core/shapeFileReader.d.ts.map +1 -1
- package/dist/files/shapefile/core/shapeFileReader.js +11 -3
- package/dist/files/shapefile/core/shapeFileReader.js.map +1 -1
- package/dist/files/shapefile/types/index.d.ts +7 -1
- package/dist/files/shapefile/types/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/validation.d.ts +9 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +13 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -93,6 +93,7 @@ const processor: ChunkProcessor = {
|
|
|
93
93
|
// Configure the reader
|
|
94
94
|
const options: ReaderOptions = {
|
|
95
95
|
maxVerticesPerChunk: 10000,
|
|
96
|
+
generateFeatureId: false, // Optional: for generating an UUID v4 for missing IDs
|
|
96
97
|
logger: myLogger,
|
|
97
98
|
stateManager: myStateManager, // Optional: for resumable processing
|
|
98
99
|
metricsCollector: myMetricsCollector, // Optional: for performance monitoring
|
|
@@ -163,6 +164,7 @@ const metricsCollector: MetricsCollector = {
|
|
|
163
164
|
| Option | Type | Default | Description |
|
|
164
165
|
|--------|------|---------|-------------|
|
|
165
166
|
| `maxVerticesPerChunk` | number | Required | Maximum vertices per chunk to control memory usage |
|
|
167
|
+
| `generateFeatureId` | boolean | false | Optional determines whether a unique feature identifier should be automatically generated for each feature missing an indentifier |
|
|
166
168
|
| `logger` | Logger | undefined | Optional logger for debugging and monitoring |
|
|
167
169
|
| `stateManager` | StateManager | undefined | Optional state manager for resumable processing |
|
|
168
170
|
| `metricsCollector` | MetricsCollector | undefined | Optional metrics collector for performance monitoring |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkBuilder.d.ts","sourceRoot":"","sources":["../../../../src/files/shapefile/core/chunkBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"chunkBuilder.d.ts","sourceRoot":"","sources":["../../../../src/files/shapefile/core/chunkBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD,qBAAa,YAAY;IAKJ,OAAO,CAAC,QAAQ,CAAC,WAAW;IAAU,OAAO,CAAC,UAAU;IAJ3E,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,oBAAoB,CAAS;gBAED,WAAW,EAAE,MAAM,EAAU,UAAU,GAAE,MAAU;IAMvF,IAAW,OAAO,IAAI,MAAM,CAE3B;IAEM,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAaxC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASlC,KAAK,IAAI,cAAc;IASvB,SAAS,IAAI,IAAI;IAOxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,iBAAiB;CAM1B"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ChunkBuilder = void 0;
|
|
4
4
|
const vertices_1 = require("../../../geo/vertices");
|
|
5
|
+
const validation_1 = require("../../../utils/validation");
|
|
5
6
|
class ChunkBuilder {
|
|
6
7
|
maxVertices;
|
|
7
8
|
chunkIndex;
|
|
@@ -50,10 +51,15 @@ class ChunkBuilder {
|
|
|
50
51
|
this.chunkIndex++;
|
|
51
52
|
}
|
|
52
53
|
withinSkipped(feature) {
|
|
53
|
-
|
|
54
|
+
const featureId = validation_1.featurePropertiesSchema.safeParse(feature.properties).data?.id;
|
|
55
|
+
return this.skippedFeatures.some((skipped) => {
|
|
56
|
+
const skippedId = validation_1.featurePropertiesSchema.safeParse(skipped.properties).data?.id;
|
|
57
|
+
return skippedId === featureId;
|
|
58
|
+
});
|
|
54
59
|
}
|
|
55
60
|
validateFeatureId(feature) {
|
|
56
|
-
|
|
61
|
+
const parsed = validation_1.featurePropertiesSchema.safeParse(feature.properties);
|
|
62
|
+
if (!parsed.success) {
|
|
57
63
|
throw new Error('Feature must have an id');
|
|
58
64
|
}
|
|
59
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkBuilder.js","sourceRoot":"","sources":["../../../../src/files/shapefile/core/chunkBuilder.ts"],"names":[],"mappings":";;;AAEA,oDAAsD;
|
|
1
|
+
{"version":3,"file":"chunkBuilder.js","sourceRoot":"","sources":["../../../../src/files/shapefile/core/chunkBuilder.ts"],"names":[],"mappings":";;;AAEA,oDAAsD;AACtD,0DAAoE;AAEpE,MAAa,YAAY;IAKa;IAA6B;IAJzD,QAAQ,CAAY;IACpB,eAAe,CAAY;IAC3B,oBAAoB,CAAS;IAErC,YAAoC,WAAmB,EAAU,aAAqB,CAAC;QAAnD,gBAAW,GAAX,WAAW,CAAQ;QAAU,eAAU,GAAV,UAAU,CAAY;QACrF,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,aAAa,CAAC,OAAgB;QACnC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEhC,MAAM,eAAe,GAAG,IAAA,wBAAa,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE;YACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,oBAAoB,GAAG,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC;IACzE,CAAC;IAEM,UAAU,CAAC,OAAgB;QAChC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;YAC/B,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,oBAAoB,IAAI,IAAA,wBAAa,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK;QACV,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,UAAU;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa,EAAE,IAAI,CAAC,oBAAoB;SACzC,CAAC;IACJ,CAAC;IAEM,SAAS;QACd,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,aAAa,CAAC,OAAgB;QACpC,MAAM,SAAS,GAAG,oCAAuB,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,oCAAuB,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACjF,OAAO,SAAS,KAAK,SAAS,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,OAAgB;QACxC,MAAM,MAAM,GAAG,oCAAuB,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;IACH,CAAC;CACF;AAnED,oCAmEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shapeFileReader.d.ts","sourceRoot":"","sources":["../../../../src/files/shapefile/core/shapeFileReader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shapeFileReader.d.ts","sourceRoot":"","sources":["../../../../src/files/shapefile/core/shapeFileReader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAmB,YAAY,EAAE,aAAa,EAAkB,MAAM,UAAU,CAAC;AAKxG,qBAAa,oBAAoB;IAKZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ3C,OAAO,CAAC,cAAc,CAAC,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,SAAS,CAAgC;gBAEb,OAAO,EAAE,aAAa;IAE1D;;;;OAIG;IACU,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0E5F;;;;OAIG;IACU,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC;YAyCvG,YAAY;IA6B1B;;;OAGG;YACW,mBAAmB;YAenB,iBAAiB;IAuB/B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;CAG5B"}
|
|
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ShapefileChunkReader = void 0;
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-magic-numbers */
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-unnecessary-condition */
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
7
|
const shapefile_1 = require("shapefile");
|
|
7
8
|
const vertices_1 = require("../../../geo/vertices");
|
|
8
9
|
const chunkBuilder_1 = require("./chunkBuilder");
|
|
9
|
-
const progressTracker_1 = require("./progressTracker");
|
|
10
10
|
const metricsManager_1 = require("./metricsManager");
|
|
11
|
+
const progressTracker_1 = require("./progressTracker");
|
|
11
12
|
class ShapefileChunkReader {
|
|
12
13
|
options;
|
|
13
14
|
metricsManager;
|
|
@@ -26,12 +27,15 @@ class ShapefileChunkReader {
|
|
|
26
27
|
let readFeatureIndex = -1;
|
|
27
28
|
const chunkBuilder = new chunkBuilder_1.ChunkBuilder(this.options.maxVerticesPerChunk, chunkIndex);
|
|
28
29
|
try {
|
|
29
|
-
const
|
|
30
|
+
const dbfPath = shapefilePath.replace(/\.shp$/i, '.dbf');
|
|
31
|
+
//support feature properties with hebrew characters by setting encoding to 'utf-8'
|
|
32
|
+
const reader = await (0, shapefile_1.open)(shapefilePath, dbfPath, { encoding: 'utf-8' });
|
|
30
33
|
this.options.logger?.info({ msg: 'Reading started' });
|
|
34
|
+
const generateFeatureId = this.options.generateFeatureId ?? false;
|
|
31
35
|
let readStart = performance.now();
|
|
32
36
|
// eslint-disable-next-line no-constant-condition
|
|
33
37
|
while (true) {
|
|
34
|
-
const { done, value:
|
|
38
|
+
const { done, value: shapeFeature } = await reader.read();
|
|
35
39
|
if (done) {
|
|
36
40
|
break;
|
|
37
41
|
}
|
|
@@ -39,6 +43,10 @@ class ShapefileChunkReader {
|
|
|
39
43
|
if (this.shouldSkipFeature(readFeatureIndex)) {
|
|
40
44
|
continue;
|
|
41
45
|
}
|
|
46
|
+
const feature = { ...(generateFeatureId && { id: (0, node_crypto_1.randomUUID)() }), ...shapeFeature };
|
|
47
|
+
if (feature.id !== undefined) {
|
|
48
|
+
this.options.logger?.debug({ msg: `Feature ID: ${feature.id}` });
|
|
49
|
+
}
|
|
42
50
|
if (!chunkBuilder.canAddFeature(feature)) {
|
|
43
51
|
const readTime = performance.now() - readStart;
|
|
44
52
|
const chunk = chunkBuilder.build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shapeFileReader.js","sourceRoot":"","sources":["../../../../src/files/shapefile/core/shapeFileReader.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,gEAAgE;AAChE,yCAAiC;
|
|
1
|
+
{"version":3,"file":"shapeFileReader.js","sourceRoot":"","sources":["../../../../src/files/shapefile/core/shapeFileReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,15 @@ export interface ChunkProcessor {
|
|
|
14
14
|
process: (chunk: ShapefileChunk) => Promise<void>;
|
|
15
15
|
}
|
|
16
16
|
export interface ReaderOptions {
|
|
17
|
-
|
|
17
|
+
/** Maximum vertices per chunk to control memory usage */
|
|
18
18
|
maxVerticesPerChunk: number;
|
|
19
|
+
/** Determines whether a unique feature identifier should be automatically generated for each feature missing an indentifier */
|
|
20
|
+
generateFeatureId?: boolean;
|
|
21
|
+
/** Logger for debugging and monitoring */
|
|
22
|
+
logger?: Logger;
|
|
23
|
+
/** State manager for resumable processing */
|
|
19
24
|
stateManager?: StateManager;
|
|
25
|
+
/** Metrics collector for performance monitoring */
|
|
20
26
|
metricsCollector?: MetricsCollector;
|
|
21
27
|
}
|
|
22
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/files/shapefile/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/files/shapefile/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,+HAA+H;IAC/H,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./timeout"), exports);
|
|
18
|
+
__exportStar(require("./validation"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
export declare const featurePropertiesSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
4
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
5
|
+
id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
6
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
7
|
+
id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
|
8
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
9
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,uBAAuB;;;;;;gCAOpB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.featurePropertiesSchema = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
exports.featurePropertiesSchema = zod_1.default
|
|
9
|
+
.object({
|
|
10
|
+
id: zod_1.default.string().or(zod_1.default.number()).describe('Feature ID'),
|
|
11
|
+
}, { message: 'error(ShapeFileReader): Feature must have an id' })
|
|
12
|
+
.passthrough();
|
|
13
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEP,QAAA,uBAAuB,GAAG,aAAC;KACrC,MAAM,CACL;IACE,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;CACrD,EACD,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAC/D;KACA,WAAW,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@map-colonies/mc-utils",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "This is template for map colonies typescript packages",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -73,7 +73,8 @@
|
|
|
73
73
|
"http-status-codes": "^2.2.0",
|
|
74
74
|
"lodash": "^4.17.21",
|
|
75
75
|
"ngeohash": "^0.6.3",
|
|
76
|
-
"shapefile": "^0.6.6"
|
|
76
|
+
"shapefile": "^0.6.6",
|
|
77
|
+
"zod": "^3.24.1"
|
|
77
78
|
},
|
|
78
79
|
"peerDependencies": {
|
|
79
80
|
"@map-colonies/error-types": "^1.3.1",
|