@math.gl/crs 4.2.0-alpha.5 → 4.2.0-alpha.6

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 CHANGED
@@ -31,6 +31,26 @@ const wkt = parseWKTCRS('GEOGCRS["WGS 84",ID["EPSG",4326]]');
31
31
  const proj = parsePROJString('+proj=longlat +datum=WGS84 +no_defs');
32
32
  ```
33
33
 
34
+ `SpatialReference` adds format-neutral discovery state around those definitions. It distinguishes
35
+ explicit definitions, specification defaults, explicitly unknown CRS values, and absent metadata;
36
+ it can also retain alternate representations, coordinate epoch, coordinate frame, stored
37
+ component order, and units.
38
+
39
+ ```ts
40
+ import {createSpatialReference} from '@math.gl/crs';
41
+
42
+ const spatialReference = createSpatialReference({
43
+ crs: {
44
+ state: 'explicit',
45
+ definition: 'EPSG:4326',
46
+ representation: 'identifier',
47
+ provenance: 'metadata'
48
+ },
49
+ coordinateFrame: 'geographic',
50
+ coordinateOrder: ['x', 'y']
51
+ });
52
+ ```
53
+
34
54
  The official PROJJSON v0.7 JSON Schema is vendored unchanged under its MIT license and exported as
35
55
  `@math.gl/crs/projjson.schema.json`. It is the source of truth for the checked-in generated
36
56
  TypeScript declarations. This package has no runtime dependencies. Its runtime APIs parse, encode,
@@ -38,3 +58,5 @@ and validate serialization syntax only: they do not perform registry lookup, sem
38
58
  coordinate transformation, or general conversion between WKT, PROJ, and PROJJSON.
39
59
 
40
60
  See the [PROJJSON specification](https://proj.org/en/stable/specifications/projjson.html).
61
+ See the math.gl [Coordinate Reference Systems guide](https://math.gl/docs/developer-guide/geospatial/coordinate-reference-systems)
62
+ for representations, epochs, axis order, vertical CRS, and transformation guidance.
package/dist/index.cjs CHANGED
@@ -24,8 +24,10 @@ __export(index_exports, {
24
24
  PROJStringSyntaxError: () => PROJStringSyntaxError,
25
25
  WKTCRSSyntaxError: () => WKTCRSSyntaxError,
26
26
  WKTCRSValidationError: () => WKTCRSValidationError,
27
+ createSpatialReference: () => createSpatialReference,
27
28
  encodePROJString: () => encodePROJString,
28
29
  encodeWKTCRS: () => encodeWKTCRS,
30
+ inferCRSRepresentation: () => inferCRSRepresentation,
29
31
  parsePROJString: () => parsePROJString,
30
32
  parseWKTCRS: () => parseWKTCRS,
31
33
  validateWKTCRS: () => validateWKTCRS
@@ -36,6 +38,62 @@ module.exports = __toCommonJS(index_exports);
36
38
  var PROJJSON_SCHEMA_VERSION = "0.7";
37
39
  var PROJJSON_SCHEMA_URL = "https://proj.org/schemas/v0.7/projjson.schema.json";
38
40
 
41
+ // dist/spatial-reference.js
42
+ function createSpatialReference(options = {}) {
43
+ if (options.coordinateEpoch !== void 0 && !Number.isFinite(options.coordinateEpoch)) {
44
+ throw new Error("Spatial reference coordinate epoch must be a finite decimal year");
45
+ }
46
+ return Object.freeze({
47
+ crs: freezeCRSReference(options.crs || { state: "absent", provenance: "unknown" }),
48
+ vertical: options.vertical ? freezeCRSReference(options.vertical) : void 0,
49
+ coordinateEpoch: options.coordinateEpoch,
50
+ coordinateFrame: options.coordinateFrame || "unknown",
51
+ coordinateOrder: Object.freeze([...options.coordinateOrder || []]),
52
+ units: options.units ? Object.freeze([...options.units]) : void 0
53
+ });
54
+ }
55
+ function inferCRSRepresentation(definition) {
56
+ if (typeof definition === "object") {
57
+ return "projjson";
58
+ }
59
+ const text = definition.trim();
60
+ if (/^[A-Z][A-Z0-9_]*\s*[\[(]/i.test(text)) {
61
+ return "wkt";
62
+ }
63
+ if (/(?:^|\s)\+?proj=/i.test(text)) {
64
+ return "proj-string";
65
+ }
66
+ if (/^[A-Z][A-Z0-9._-]*(?::[A-Z0-9._-]+)+$/i.test(text) || /^urn:ogc:def:crs:/i.test(text) || /^https?:\/\//i.test(text) || /^[A-Z][A-Z0-9._-]*$/i.test(text)) {
67
+ return "identifier";
68
+ }
69
+ return "opaque";
70
+ }
71
+ function freezeCRSReference(reference) {
72
+ if (reference.state === "explicit" || reference.state === "default") {
73
+ return Object.freeze({
74
+ ...reference,
75
+ definition: cloneAndFreezeDefinition(reference.definition),
76
+ alternatives: reference.alternatives ? Object.freeze(reference.alternatives.map((alternative) => Object.freeze({
77
+ ...alternative,
78
+ definition: cloneAndFreezeDefinition(alternative.definition)
79
+ }))) : void 0
80
+ });
81
+ }
82
+ return Object.freeze({ ...reference });
83
+ }
84
+ function cloneAndFreezeDefinition(definition) {
85
+ return typeof definition === "string" ? definition : cloneAndFreezeJsonValue(definition);
86
+ }
87
+ function cloneAndFreezeJsonValue(value) {
88
+ if (Array.isArray(value)) {
89
+ return Object.freeze(value.map((item) => cloneAndFreezeJsonValue(item)));
90
+ }
91
+ if (value && typeof value === "object") {
92
+ return Object.freeze(Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneAndFreezeJsonValue(item)])));
93
+ }
94
+ return value;
95
+ }
96
+
39
97
  // dist/wkt-crs.js
40
98
  var WKTCRSSyntaxError = class extends SyntaxError {
41
99
  /** Create a WKT syntax error at a source location. */
@@ -368,13 +426,16 @@ var WKTParser = class {
368
426
  return this.parseString();
369
427
  }
370
428
  const start = this.offset;
371
- while (this.offset < this.source.length && !/[\s,\[\]()]/.test(this.source[this.offset])) {
429
+ while (this.offset < this.source.length && !/[\s,\[\]()"]/.test(this.source[this.offset])) {
372
430
  this.offset++;
373
431
  }
374
432
  if (start === this.offset) {
375
433
  this.fail("Expected a WKT value");
376
434
  }
377
435
  const value = this.source.slice(start, this.offset);
436
+ if (this.source[this.offset] === '"') {
437
+ this.fail("Unexpected quote in unquoted WKT value");
438
+ }
378
439
  this.skipWhitespace();
379
440
  if (this.source[this.offset] === "[" || this.source[this.offset] === "(") {
380
441
  if (!/^[A-Za-z][A-Za-z0-9_]*$/.test(value)) {
@@ -672,7 +733,11 @@ function validateRawParameterValue(rawValue) {
672
733
  }
673
734
  return;
674
735
  }
736
+ if (rawValue.length < 2) {
737
+ throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
738
+ }
675
739
  let escaped = false;
740
+ let closingQuoteFound = false;
676
741
  for (let index = 1; index < rawValue.length; index++) {
677
742
  const character = rawValue[index];
678
743
  if (escaped) {
@@ -686,8 +751,11 @@ function validateRawParameterValue(rawValue) {
686
751
  if (character === first && index !== rawValue.length - 1) {
687
752
  throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
688
753
  }
754
+ if (character === first) {
755
+ closingQuoteFound = true;
756
+ }
689
757
  }
690
- if (escaped || rawValue[rawValue.length - 1] !== first) {
758
+ if (escaped || !closingQuoteFound || rawValue[rawValue.length - 1] !== first) {
691
759
  throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
692
760
  }
693
761
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/projjson-schema-constants.ts", "../src/wkt-crs.ts", "../src/proj-string.ts"],
4
- "mappings": "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",
3
+ "sources": ["../src/index.ts", "../src/projjson-schema-constants.ts", "../src/spatial-reference.ts", "../src/wkt-crs.ts", "../src/proj-string.ts"],
4
+ "mappings": "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;EACA;CACD;AAED,IAAM,0BAA0B,oBAAI,IAAI;EACtC,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;CACD;AAID,IAAM,gBAAgB,oBAAI,IAAI;EAC5B,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AAED,IAAM,8BAA8B,oBAAI,IAAI;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AAED,IAAM,qBAAqB,IAAI,IAC7B,CAAC,GAAG,aAAa,EAAE,OAAO,aAAW,CAAC,4BAA4B,IAAI,OAAO,CAAC,CAAC;AAGjF,IAAM,wBAAoE;EACxE,MAAM;EACN,MAAM;EACN,MAAM;EACN,aAAa;EACb,aAAa;;AAGf,IAAM,mBAA+D;EACnE,MAAM;EACN,MAAM;EACN,MAAM;EACN,aAAa;EACb,aAAa;;AAIT,SAAU,YAAY,MAAc,SAA4B;AACpE,QAAM,SAAS,IAAI,UAAU,IAAI;AACjC,QAAM,MAAiB,EAAC,MAAM,WAAW,MAAM,OAAO,MAAK,EAAE;AAE7D,MAAI,mCAAS,QAAQ;AACnB,UAAM,SAAS,eAAe,KAAK;MACjC,SAAS,QAAQ;MACjB,iBAAiB;KAClB;AACD,QAAI,OAAO,SAAS,GAAG;AACrB,YAAM,IAAI,sBAAsB,MAAM;IACxC;EACF;AAEA,SAAO;AACT;AAGM,SAAU,aAAa,KAAgB,SAA6B;AAnU1E;AAoUE,MAAI,CAAC,OAAO,IAAI,SAAS,eAAa,SAAI,SA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",
5
5
  "names": ["getSourceLocation"]
6
6
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export { PROJJSON_SCHEMA_URL, PROJJSON_SCHEMA_VERSION } from "./projjson-schema-constants.js";
2
2
  export type { CRSDefinition, CRSIdentifier, CRSStringDefinition, PROJJSONCRS, PROJJSONCRSByType, PROJJSONCRSType, PROJStringDefinition, WKTCRSDefinition } from "./crs.js";
3
+ export type { CreateSpatialReferenceOptions, CRSReference, KnownCRSReference, ReadonlyCRSDefinition, ReadonlyPROJJSONCRS, SpatialReference, SpatialReferenceAlternative, SpatialReferenceCoordinateFrame, SpatialReferenceProvenance, SpatialReferenceRepresentation, SpatialReferenceState, UnresolvedCRSReference } from "./spatial-reference.js";
4
+ export { createSpatialReference, inferCRSRepresentation } from "./spatial-reference.js";
3
5
  export type { EncodeWKTCRSOptions, ParseWKTCRSOptions, ValidateWKTCRSOptions, WKTCRSAst, WKTCRSDelimiter, WKTCRSEnumeration, WKTCRSNode, WKTCRSNumber, WKTCRSProfile, WKTCRSString, WKTCRSValidationIssue, WKTCRSValidationIssueCode, WKTCRSValue } from "./wkt-crs.js";
4
6
  export { encodeWKTCRS, parseWKTCRS, validateWKTCRS, WKTCRSSyntaxError, WKTCRSValidationError } from "./wkt-crs.js";
5
7
  export type { EncodePROJStringOptions, PROJParameter, PROJStringAst } from "./proj-string.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AACrC,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,iBAAc;AACf,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACZ,qBAAkB;AACnB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AACnB,YAAY,EAAC,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAC,yBAAsB;AACzF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AACrC,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,iBAAc;AACf,YAAY,EACV,6BAA6B,EAC7B,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACvB,+BAA4B;AAC7B,OAAO,EAAC,sBAAsB,EAAE,sBAAsB,EAAC,+BAA4B;AACnF,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACZ,qBAAkB;AACnB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AACnB,YAAY,EAAC,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAC,yBAAsB;AACzF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  export { PROJJSON_SCHEMA_URL, PROJJSON_SCHEMA_VERSION } from "./projjson-schema-constants.js";
5
+ export { createSpatialReference, inferCRSRepresentation } from "./spatial-reference.js";
5
6
  export { encodeWKTCRS, parseWKTCRS, validateWKTCRS, WKTCRSSyntaxError, WKTCRSValidationError } from "./wkt-crs.js";
6
7
  export { encodePROJString, parsePROJString, PROJStringSyntaxError } from "./proj-string.js";
7
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AA0BrC,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AAEnB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AAyBrC,OAAO,EAAC,sBAAsB,EAAE,sBAAsB,EAAC,+BAA4B;AAgBnF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AAEnB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB"}
@@ -61,7 +61,11 @@ function validateRawParameterValue(rawValue) {
61
61
  }
62
62
  return;
63
63
  }
64
+ if (rawValue.length < 2) {
65
+ throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
66
+ }
64
67
  let escaped = false;
68
+ let closingQuoteFound = false;
65
69
  for (let index = 1; index < rawValue.length; index++) {
66
70
  const character = rawValue[index];
67
71
  if (escaped) {
@@ -75,8 +79,11 @@ function validateRawParameterValue(rawValue) {
75
79
  if (character === first && index !== rawValue.length - 1) {
76
80
  throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
77
81
  }
82
+ if (character === first) {
83
+ closingQuoteFound = true;
84
+ }
78
85
  }
79
- if (escaped || rawValue[rawValue.length - 1] !== first) {
86
+ if (escaped || !closingQuoteFound || rawValue[rawValue.length - 1] !== first) {
80
87
  throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
81
88
  }
82
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"proj-string.js","sourceRoot":"","sources":["../src/proj-string.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proj-string.js","sourceRoot":"","sources":["../src/proj-string.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import type { CRSStringDefinition, PROJJSONCRS } from "./crs.js";
2
+ /** Recursively readonly view of a JSON-compatible type. */
3
+ type DeepReadonly<T> = T extends readonly (infer Item)[] ? readonly DeepReadonly<Item>[] : T extends object ? {
4
+ readonly [Key in keyof T]: DeepReadonly<T[Key]>;
5
+ } : T;
6
+ /** A deeply readonly PROJJSON CRS object. */
7
+ export type ReadonlyPROJJSONCRS<T extends PROJJSONCRS = PROJJSONCRS> = DeepReadonly<T>;
8
+ /** A serialized CRS definition or deeply readonly PROJJSON CRS object. */
9
+ export type ReadonlyCRSDefinition<T extends PROJJSONCRS = PROJJSONCRS> = CRSStringDefinition | ReadonlyPROJJSONCRS<T>;
10
+ /** Serialization or naming form in which a CRS definition was supplied. */
11
+ export type SpatialReferenceRepresentation = 'identifier' | 'wkt' | 'proj-string' | 'projjson' | 'opaque';
12
+ /** Whether a CRS was declared, supplied by a specification default, unknown, or absent. */
13
+ export type SpatialReferenceState = 'explicit' | 'default' | 'unknown' | 'absent';
14
+ /** Origin of a normalized CRS reference. */
15
+ export type SpatialReferenceProvenance = 'metadata' | 'format-default' | 'caller-override' | 'legacy-assumption' | 'unknown';
16
+ /** Broad coordinate frame used by a spatial dataset. */
17
+ export type SpatialReferenceCoordinateFrame = 'geographic' | 'geocentric' | 'projected' | 'local' | 'unknown';
18
+ /** One alternate serialization of the same CRS retained by the source. */
19
+ export type SpatialReferenceAlternative = Readonly<{
20
+ /** Original alternate CRS definition. */
21
+ definition: ReadonlyCRSDefinition;
22
+ /** Representation used by the alternate definition. */
23
+ representation: SpatialReferenceRepresentation;
24
+ }>;
25
+ /** A known CRS and its source representation. */
26
+ export type KnownCRSReference = Readonly<{
27
+ /** A known definition is either explicitly declared or established by a specification default. */
28
+ state: 'explicit' | 'default';
29
+ /** Preferred definition selected without discarding alternate source representations. */
30
+ definition: ReadonlyCRSDefinition;
31
+ /** Representation used by the preferred definition. */
32
+ representation: SpatialReferenceRepresentation;
33
+ /** How the preferred definition was established. */
34
+ provenance: SpatialReferenceProvenance;
35
+ /** Additional equivalent serializations carried by the source metadata. */
36
+ alternatives?: readonly SpatialReferenceAlternative[];
37
+ }>;
38
+ /** An unknown or absent CRS that must not be replaced by an implicit WGS84 assumption. */
39
+ export type UnresolvedCRSReference = Readonly<{
40
+ /** `unknown` preserves an explicit unknown value; `absent` means no value was supplied. */
41
+ state: 'unknown' | 'absent';
42
+ /** How the unresolved state was established. */
43
+ provenance: SpatialReferenceProvenance;
44
+ }>;
45
+ /** Normalized CRS state, discriminated without comparing definition strings. */
46
+ export type CRSReference = KnownCRSReference | UnresolvedCRSReference;
47
+ /**
48
+ * Format-neutral spatial-reference metadata.
49
+ *
50
+ * The descriptor reports how source coordinates are defined. It does not claim that coordinates,
51
+ * bounds, or heights have been transformed. Format-specific metadata remains responsible for
52
+ * lossless preservation of fields that cannot be represented here.
53
+ */
54
+ export type SpatialReference = Readonly<{
55
+ /** Primary horizontal or compound CRS state. */
56
+ crs: CRSReference;
57
+ /** Independently declared vertical CRS state. */
58
+ vertical?: CRSReference;
59
+ /** Coordinate epoch associated with source coordinates, expressed as a decimal year. */
60
+ coordinateEpoch?: number;
61
+ /** Broad frame in which source coordinates are stored. */
62
+ coordinateFrame: SpatialReferenceCoordinateFrame;
63
+ /** Component order used by stored arrays, independent of authoritative CRS axis order. */
64
+ coordinateOrder: readonly string[];
65
+ /** Per-component units when declared by the source. */
66
+ units?: readonly string[];
67
+ }>;
68
+ /** Values accepted by {@link createSpatialReference}. */
69
+ export type CreateSpatialReferenceOptions = Readonly<{
70
+ /** Primary horizontal or compound CRS state. Defaults to absent. */
71
+ crs?: CRSReference;
72
+ /** Independently declared vertical CRS state. */
73
+ vertical?: CRSReference;
74
+ /** Coordinate epoch associated with source coordinates. */
75
+ coordinateEpoch?: number;
76
+ /** Broad stored coordinate frame. Defaults to unknown. */
77
+ coordinateFrame?: SpatialReferenceCoordinateFrame;
78
+ /** Stored component order. Defaults to an empty, unknown order. */
79
+ coordinateOrder?: readonly string[];
80
+ /** Per-component units. */
81
+ units?: readonly string[];
82
+ }>;
83
+ /**
84
+ * Creates an immutable format-neutral spatial-reference descriptor.
85
+ *
86
+ * PROJJSON definitions and descriptor-owned arrays are cloned and recursively frozen. The
87
+ * function does not parse definitions, resolve identifiers, or determine semantic equivalence.
88
+ *
89
+ * @param options - Spatial-reference discovery results to normalize.
90
+ * @returns A readonly descriptor with cloned definitions and arrays.
91
+ */
92
+ export declare function createSpatialReference(options?: CreateSpatialReferenceOptions): SpatialReference;
93
+ /**
94
+ * Infers a CRS representation from runtime syntax without resolving its meaning.
95
+ *
96
+ * Format adapters should pass an explicit representation when their metadata identifies one.
97
+ * Unrecognized free-form strings are classified as `opaque`, not assumed to be identifiers.
98
+ *
99
+ * @param definition - CRS definition to classify syntactically.
100
+ * @returns The apparent serialized representation.
101
+ */
102
+ export declare function inferCRSRepresentation(definition: ReadonlyCRSDefinition): SpatialReferenceRepresentation;
103
+ export {};
104
+ //# sourceMappingURL=spatial-reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatial-reference.d.ts","sourceRoot":"","sources":["../src/spatial-reference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /**
5
+ * Creates an immutable format-neutral spatial-reference descriptor.
6
+ *
7
+ * PROJJSON definitions and descriptor-owned arrays are cloned and recursively frozen. The
8
+ * function does not parse definitions, resolve identifiers, or determine semantic equivalence.
9
+ *
10
+ * @param options - Spatial-reference discovery results to normalize.
11
+ * @returns A readonly descriptor with cloned definitions and arrays.
12
+ */
13
+ export function createSpatialReference(options = {}) {
14
+ if (options.coordinateEpoch !== undefined && !Number.isFinite(options.coordinateEpoch)) {
15
+ throw new Error('Spatial reference coordinate epoch must be a finite decimal year');
16
+ }
17
+ return Object.freeze({
18
+ crs: freezeCRSReference(options.crs || { state: 'absent', provenance: 'unknown' }),
19
+ vertical: options.vertical ? freezeCRSReference(options.vertical) : undefined,
20
+ coordinateEpoch: options.coordinateEpoch,
21
+ coordinateFrame: options.coordinateFrame || 'unknown',
22
+ coordinateOrder: Object.freeze([...(options.coordinateOrder || [])]),
23
+ units: options.units ? Object.freeze([...options.units]) : undefined
24
+ });
25
+ }
26
+ /**
27
+ * Infers a CRS representation from runtime syntax without resolving its meaning.
28
+ *
29
+ * Format adapters should pass an explicit representation when their metadata identifies one.
30
+ * Unrecognized free-form strings are classified as `opaque`, not assumed to be identifiers.
31
+ *
32
+ * @param definition - CRS definition to classify syntactically.
33
+ * @returns The apparent serialized representation.
34
+ */
35
+ export function inferCRSRepresentation(definition) {
36
+ if (typeof definition === 'object') {
37
+ return 'projjson';
38
+ }
39
+ const text = definition.trim();
40
+ if (/^[A-Z][A-Z0-9_]*\s*[\[(]/i.test(text)) {
41
+ return 'wkt';
42
+ }
43
+ if (/(?:^|\s)\+?proj=/i.test(text)) {
44
+ return 'proj-string';
45
+ }
46
+ if (/^[A-Z][A-Z0-9._-]*(?::[A-Z0-9._-]+)+$/i.test(text) ||
47
+ /^urn:ogc:def:crs:/i.test(text) ||
48
+ /^https?:\/\//i.test(text) ||
49
+ /^[A-Z][A-Z0-9._-]*$/i.test(text)) {
50
+ return 'identifier';
51
+ }
52
+ return 'opaque';
53
+ }
54
+ /** Clone and freeze one CRS reference without mutating caller-owned objects. */
55
+ function freezeCRSReference(reference) {
56
+ if (reference.state === 'explicit' || reference.state === 'default') {
57
+ return Object.freeze({
58
+ ...reference,
59
+ definition: cloneAndFreezeDefinition(reference.definition),
60
+ alternatives: reference.alternatives
61
+ ? Object.freeze(reference.alternatives.map(alternative => Object.freeze({
62
+ ...alternative,
63
+ definition: cloneAndFreezeDefinition(alternative.definition)
64
+ })))
65
+ : undefined
66
+ });
67
+ }
68
+ return Object.freeze({ ...reference });
69
+ }
70
+ /** Clone and recursively freeze a JSON CRS object while leaving string definitions unchanged. */
71
+ function cloneAndFreezeDefinition(definition) {
72
+ return typeof definition === 'string'
73
+ ? definition
74
+ : cloneAndFreezeJsonValue(definition);
75
+ }
76
+ /** Clone and freeze the JSON-compatible values used by PROJJSON definitions. */
77
+ function cloneAndFreezeJsonValue(value) {
78
+ if (Array.isArray(value)) {
79
+ return Object.freeze(value.map(item => cloneAndFreezeJsonValue(item)));
80
+ }
81
+ if (value && typeof value === 'object') {
82
+ return Object.freeze(Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneAndFreezeJsonValue(item)])));
83
+ }
84
+ return value;
85
+ }
86
+ //# sourceMappingURL=spatial-reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatial-reference.js","sourceRoot":"","sources":["../src/spatial-reference.ts"],"names":[],"mappings":"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"}
package/dist/wkt-crs.js CHANGED
@@ -336,13 +336,16 @@ class WKTParser {
336
336
  return this.parseString();
337
337
  }
338
338
  const start = this.offset;
339
- while (this.offset < this.source.length && !/[\s,\[\]()]/.test(this.source[this.offset])) {
339
+ while (this.offset < this.source.length && !/[\s,\[\]()"]/.test(this.source[this.offset])) {
340
340
  this.offset++;
341
341
  }
342
342
  if (start === this.offset) {
343
343
  this.fail('Expected a WKT value');
344
344
  }
345
345
  const value = this.source.slice(start, this.offset);
346
+ if (this.source[this.offset] === '"') {
347
+ this.fail('Unexpected quote in unquoted WKT value');
348
+ }
346
349
  this.skipWhitespace();
347
350
  if (this.source[this.offset] === '[' || this.source[this.offset] === '(') {
348
351
  if (!/^[A-Za-z][A-Za-z0-9_]*$/.test(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"wkt-crs.js","sourceRoot":"","sources":["../src/wkt-crs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wkt-crs.js","sourceRoot":"","sources":["../src/wkt-crs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "name": "@math.gl/crs",
3
- "description": "Standards-based coordinate reference system types for math.gl",
3
+ "description": "Coordinate reference system types, syntax codecs, and metadata descriptors for math.gl",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
- "version": "4.2.0-alpha.5",
9
+ "version": "4.2.0-alpha.6",
10
10
  "keywords": [
11
11
  "geospatial",
12
12
  "coordinate reference system",
13
13
  "CRS",
14
14
  "WKT",
15
+ "PROJ",
15
16
  "PROJJSON"
16
17
  ],
17
18
  "repository": {
@@ -36,5 +37,5 @@
36
37
  "README.md"
37
38
  ],
38
39
  "sideEffects": false,
39
- "gitHead": "9c13785761867748e2edb167b5f2749dce803039"
40
+ "gitHead": "b1d477a0afa7033ce6ac837bb4c811b425e99566"
40
41
  }
package/src/index.ts CHANGED
@@ -16,6 +16,21 @@ export type {
16
16
  PROJStringDefinition,
17
17
  WKTCRSDefinition
18
18
  } from './crs';
19
+ export type {
20
+ CreateSpatialReferenceOptions,
21
+ CRSReference,
22
+ KnownCRSReference,
23
+ ReadonlyCRSDefinition,
24
+ ReadonlyPROJJSONCRS,
25
+ SpatialReference,
26
+ SpatialReferenceAlternative,
27
+ SpatialReferenceCoordinateFrame,
28
+ SpatialReferenceProvenance,
29
+ SpatialReferenceRepresentation,
30
+ SpatialReferenceState,
31
+ UnresolvedCRSReference
32
+ } from './spatial-reference';
33
+ export {createSpatialReference, inferCRSRepresentation} from './spatial-reference';
19
34
  export type {
20
35
  EncodeWKTCRSOptions,
21
36
  ParseWKTCRSOptions,
@@ -92,7 +92,11 @@ function validateRawParameterValue(rawValue: string): void {
92
92
  }
93
93
  return;
94
94
  }
95
+ if (rawValue.length < 2) {
96
+ throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
97
+ }
95
98
  let escaped = false;
99
+ let closingQuoteFound = false;
96
100
  for (let index = 1; index < rawValue.length; index++) {
97
101
  const character = rawValue[index];
98
102
  if (escaped) {
@@ -106,8 +110,11 @@ function validateRawParameterValue(rawValue: string): void {
106
110
  if (character === first && index !== rawValue.length - 1) {
107
111
  throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
108
112
  }
113
+ if (character === first) {
114
+ closingQuoteFound = true;
115
+ }
109
116
  }
110
- if (escaped || rawValue[rawValue.length - 1] !== first) {
117
+ if (escaped || !closingQuoteFound || rawValue[rawValue.length - 1] !== first) {
111
118
  throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
112
119
  }
113
120
  }
@@ -0,0 +1,221 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {CRSStringDefinition, PROJJSONCRS} from './crs';
6
+
7
+ /** Recursively readonly view of a JSON-compatible type. */
8
+ type DeepReadonly<T> = T extends readonly (infer Item)[]
9
+ ? readonly DeepReadonly<Item>[]
10
+ : T extends object
11
+ ? {readonly [Key in keyof T]: DeepReadonly<T[Key]>}
12
+ : T;
13
+
14
+ /** A deeply readonly PROJJSON CRS object. */
15
+ export type ReadonlyPROJJSONCRS<T extends PROJJSONCRS = PROJJSONCRS> = DeepReadonly<T>;
16
+
17
+ /** A serialized CRS definition or deeply readonly PROJJSON CRS object. */
18
+ export type ReadonlyCRSDefinition<T extends PROJJSONCRS = PROJJSONCRS> =
19
+ | CRSStringDefinition
20
+ | ReadonlyPROJJSONCRS<T>;
21
+
22
+ /** Serialization or naming form in which a CRS definition was supplied. */
23
+ export type SpatialReferenceRepresentation =
24
+ | 'identifier'
25
+ | 'wkt'
26
+ | 'proj-string'
27
+ | 'projjson'
28
+ | 'opaque';
29
+
30
+ /** Whether a CRS was declared, supplied by a specification default, unknown, or absent. */
31
+ export type SpatialReferenceState = 'explicit' | 'default' | 'unknown' | 'absent';
32
+
33
+ /** Origin of a normalized CRS reference. */
34
+ export type SpatialReferenceProvenance =
35
+ | 'metadata'
36
+ | 'format-default'
37
+ | 'caller-override'
38
+ | 'legacy-assumption'
39
+ | 'unknown';
40
+
41
+ /** Broad coordinate frame used by a spatial dataset. */
42
+ export type SpatialReferenceCoordinateFrame =
43
+ | 'geographic'
44
+ | 'geocentric'
45
+ | 'projected'
46
+ | 'local'
47
+ | 'unknown';
48
+
49
+ /** One alternate serialization of the same CRS retained by the source. */
50
+ export type SpatialReferenceAlternative = Readonly<{
51
+ /** Original alternate CRS definition. */
52
+ definition: ReadonlyCRSDefinition;
53
+ /** Representation used by the alternate definition. */
54
+ representation: SpatialReferenceRepresentation;
55
+ }>;
56
+
57
+ /** A known CRS and its source representation. */
58
+ export type KnownCRSReference = Readonly<{
59
+ /** A known definition is either explicitly declared or established by a specification default. */
60
+ state: 'explicit' | 'default';
61
+ /** Preferred definition selected without discarding alternate source representations. */
62
+ definition: ReadonlyCRSDefinition;
63
+ /** Representation used by the preferred definition. */
64
+ representation: SpatialReferenceRepresentation;
65
+ /** How the preferred definition was established. */
66
+ provenance: SpatialReferenceProvenance;
67
+ /** Additional equivalent serializations carried by the source metadata. */
68
+ alternatives?: readonly SpatialReferenceAlternative[];
69
+ }>;
70
+
71
+ /** An unknown or absent CRS that must not be replaced by an implicit WGS84 assumption. */
72
+ export type UnresolvedCRSReference = Readonly<{
73
+ /** `unknown` preserves an explicit unknown value; `absent` means no value was supplied. */
74
+ state: 'unknown' | 'absent';
75
+ /** How the unresolved state was established. */
76
+ provenance: SpatialReferenceProvenance;
77
+ }>;
78
+
79
+ /** Normalized CRS state, discriminated without comparing definition strings. */
80
+ export type CRSReference = KnownCRSReference | UnresolvedCRSReference;
81
+
82
+ /**
83
+ * Format-neutral spatial-reference metadata.
84
+ *
85
+ * The descriptor reports how source coordinates are defined. It does not claim that coordinates,
86
+ * bounds, or heights have been transformed. Format-specific metadata remains responsible for
87
+ * lossless preservation of fields that cannot be represented here.
88
+ */
89
+ export type SpatialReference = Readonly<{
90
+ /** Primary horizontal or compound CRS state. */
91
+ crs: CRSReference;
92
+ /** Independently declared vertical CRS state. */
93
+ vertical?: CRSReference;
94
+ /** Coordinate epoch associated with source coordinates, expressed as a decimal year. */
95
+ coordinateEpoch?: number;
96
+ /** Broad frame in which source coordinates are stored. */
97
+ coordinateFrame: SpatialReferenceCoordinateFrame;
98
+ /** Component order used by stored arrays, independent of authoritative CRS axis order. */
99
+ coordinateOrder: readonly string[];
100
+ /** Per-component units when declared by the source. */
101
+ units?: readonly string[];
102
+ }>;
103
+
104
+ /** Values accepted by {@link createSpatialReference}. */
105
+ export type CreateSpatialReferenceOptions = Readonly<{
106
+ /** Primary horizontal or compound CRS state. Defaults to absent. */
107
+ crs?: CRSReference;
108
+ /** Independently declared vertical CRS state. */
109
+ vertical?: CRSReference;
110
+ /** Coordinate epoch associated with source coordinates. */
111
+ coordinateEpoch?: number;
112
+ /** Broad stored coordinate frame. Defaults to unknown. */
113
+ coordinateFrame?: SpatialReferenceCoordinateFrame;
114
+ /** Stored component order. Defaults to an empty, unknown order. */
115
+ coordinateOrder?: readonly string[];
116
+ /** Per-component units. */
117
+ units?: readonly string[];
118
+ }>;
119
+
120
+ /**
121
+ * Creates an immutable format-neutral spatial-reference descriptor.
122
+ *
123
+ * PROJJSON definitions and descriptor-owned arrays are cloned and recursively frozen. The
124
+ * function does not parse definitions, resolve identifiers, or determine semantic equivalence.
125
+ *
126
+ * @param options - Spatial-reference discovery results to normalize.
127
+ * @returns A readonly descriptor with cloned definitions and arrays.
128
+ */
129
+ export function createSpatialReference(
130
+ options: CreateSpatialReferenceOptions = {}
131
+ ): SpatialReference {
132
+ if (options.coordinateEpoch !== undefined && !Number.isFinite(options.coordinateEpoch)) {
133
+ throw new Error('Spatial reference coordinate epoch must be a finite decimal year');
134
+ }
135
+
136
+ return Object.freeze({
137
+ crs: freezeCRSReference(options.crs || {state: 'absent', provenance: 'unknown'}),
138
+ vertical: options.vertical ? freezeCRSReference(options.vertical) : undefined,
139
+ coordinateEpoch: options.coordinateEpoch,
140
+ coordinateFrame: options.coordinateFrame || 'unknown',
141
+ coordinateOrder: Object.freeze([...(options.coordinateOrder || [])]),
142
+ units: options.units ? Object.freeze([...options.units]) : undefined
143
+ });
144
+ }
145
+
146
+ /**
147
+ * Infers a CRS representation from runtime syntax without resolving its meaning.
148
+ *
149
+ * Format adapters should pass an explicit representation when their metadata identifies one.
150
+ * Unrecognized free-form strings are classified as `opaque`, not assumed to be identifiers.
151
+ *
152
+ * @param definition - CRS definition to classify syntactically.
153
+ * @returns The apparent serialized representation.
154
+ */
155
+ export function inferCRSRepresentation(
156
+ definition: ReadonlyCRSDefinition
157
+ ): SpatialReferenceRepresentation {
158
+ if (typeof definition === 'object') {
159
+ return 'projjson';
160
+ }
161
+
162
+ const text = definition.trim();
163
+ if (/^[A-Z][A-Z0-9_]*\s*[\[(]/i.test(text)) {
164
+ return 'wkt';
165
+ }
166
+ if (/(?:^|\s)\+?proj=/i.test(text)) {
167
+ return 'proj-string';
168
+ }
169
+ if (
170
+ /^[A-Z][A-Z0-9._-]*(?::[A-Z0-9._-]+)+$/i.test(text) ||
171
+ /^urn:ogc:def:crs:/i.test(text) ||
172
+ /^https?:\/\//i.test(text) ||
173
+ /^[A-Z][A-Z0-9._-]*$/i.test(text)
174
+ ) {
175
+ return 'identifier';
176
+ }
177
+ return 'opaque';
178
+ }
179
+
180
+ /** Clone and freeze one CRS reference without mutating caller-owned objects. */
181
+ function freezeCRSReference(reference: CRSReference): CRSReference {
182
+ if (reference.state === 'explicit' || reference.state === 'default') {
183
+ return Object.freeze({
184
+ ...reference,
185
+ definition: cloneAndFreezeDefinition(reference.definition),
186
+ alternatives: reference.alternatives
187
+ ? Object.freeze(
188
+ reference.alternatives.map(alternative =>
189
+ Object.freeze({
190
+ ...alternative,
191
+ definition: cloneAndFreezeDefinition(alternative.definition)
192
+ })
193
+ )
194
+ )
195
+ : undefined
196
+ });
197
+ }
198
+ return Object.freeze({...reference});
199
+ }
200
+
201
+ /** Clone and recursively freeze a JSON CRS object while leaving string definitions unchanged. */
202
+ function cloneAndFreezeDefinition(definition: ReadonlyCRSDefinition): ReadonlyCRSDefinition {
203
+ return typeof definition === 'string'
204
+ ? definition
205
+ : (cloneAndFreezeJsonValue(definition) as ReadonlyCRSDefinition);
206
+ }
207
+
208
+ /** Clone and freeze the JSON-compatible values used by PROJJSON definitions. */
209
+ function cloneAndFreezeJsonValue(value: unknown): unknown {
210
+ if (Array.isArray(value)) {
211
+ return Object.freeze(value.map(item => cloneAndFreezeJsonValue(item)));
212
+ }
213
+ if (value && typeof value === 'object') {
214
+ return Object.freeze(
215
+ Object.fromEntries(
216
+ Object.entries(value).map(([key, item]) => [key, cloneAndFreezeJsonValue(item)])
217
+ )
218
+ );
219
+ }
220
+ return value;
221
+ }
package/src/wkt-crs.ts CHANGED
@@ -463,13 +463,16 @@ class WKTParser {
463
463
  }
464
464
 
465
465
  const start = this.offset;
466
- while (this.offset < this.source.length && !/[\s,\[\]()]/.test(this.source[this.offset])) {
466
+ while (this.offset < this.source.length && !/[\s,\[\]()"]/.test(this.source[this.offset])) {
467
467
  this.offset++;
468
468
  }
469
469
  if (start === this.offset) {
470
470
  this.fail('Expected a WKT value');
471
471
  }
472
472
  const value = this.source.slice(start, this.offset);
473
+ if (this.source[this.offset] === '"') {
474
+ this.fail('Unexpected quote in unquoted WKT value');
475
+ }
473
476
  this.skipWhitespace();
474
477
  if (this.source[this.offset] === '[' || this.source[this.offset] === '(') {
475
478
  if (!/^[A-Za-z][A-Za-z0-9_]*$/.test(value)) {