@mailwoman/geographic-model 10.0.0 → 10.2.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.
Files changed (62) hide show
  1. package/README.md +32 -32
  2. package/data/geographic-model.json +5 -5
  3. package/data/model/concepts.json +5 -5
  4. package/lib/artifact.ts +37 -65
  5. package/lib/compile.ts +55 -70
  6. package/lib/index.ts +22 -35
  7. package/lib/load.ts +60 -72
  8. package/lib/lookup.ts +12 -28
  9. package/lib/packaged.ts +50 -0
  10. package/lib/schema.ts +104 -97
  11. package/lib/validate.ts +32 -56
  12. package/lib/validation/issues.ts +32 -36
  13. package/lib/validation/references.ts +24 -27
  14. package/out/artifact.d.ts +28 -45
  15. package/out/artifact.d.ts.map +1 -1
  16. package/out/artifact.js +25 -52
  17. package/out/artifact.js.map +1 -1
  18. package/out/compile.d.ts +27 -41
  19. package/out/compile.d.ts.map +1 -1
  20. package/out/compile.js +42 -64
  21. package/out/compile.js.map +1 -1
  22. package/out/index.d.ts +22 -35
  23. package/out/index.d.ts.map +1 -1
  24. package/out/index.js +22 -35
  25. package/out/index.js.map +1 -1
  26. package/out/load.d.ts +30 -39
  27. package/out/load.d.ts.map +1 -1
  28. package/out/load.js +42 -56
  29. package/out/load.js.map +1 -1
  30. package/out/lookup.d.ts +12 -28
  31. package/out/lookup.d.ts.map +1 -1
  32. package/out/lookup.js +4 -16
  33. package/out/lookup.js.map +1 -1
  34. package/out/packaged.d.ts +24 -0
  35. package/out/packaged.d.ts.map +1 -0
  36. package/out/packaged.js +42 -0
  37. package/out/packaged.js.map +1 -0
  38. package/out/schema.d.ts +104 -97
  39. package/out/schema.d.ts.map +1 -1
  40. package/out/schema.js +37 -52
  41. package/out/schema.js.map +1 -1
  42. package/out/tools/build-artifact.d.ts +27 -0
  43. package/out/tools/build-artifact.d.ts.map +1 -0
  44. package/out/tools/build-artifact.js +44 -0
  45. package/out/tools/build-artifact.js.map +1 -0
  46. package/out/validate.d.ts +29 -50
  47. package/out/validate.d.ts.map +1 -1
  48. package/out/validate.js +12 -35
  49. package/out/validate.js.map +1 -1
  50. package/out/validation/issues.d.ts +17 -20
  51. package/out/validation/issues.d.ts.map +1 -1
  52. package/out/validation/issues.js +25 -29
  53. package/out/validation/issues.js.map +1 -1
  54. package/out/validation/references.d.ts.map +1 -1
  55. package/out/validation/references.js +20 -23
  56. package/out/validation/references.js.map +1 -1
  57. package/package.json +35 -76
  58. package/tools/build-artifact.ts +56 -0
  59. package/out/scripts/build-artifact.d.ts +0 -51
  60. package/out/scripts/build-artifact.d.ts.map +0 -1
  61. package/out/scripts/build-artifact.js +0 -85
  62. package/out/scripts/build-artifact.js.map +0 -1
package/out/schema.js CHANGED
@@ -3,101 +3,83 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * The authored-record schema for `@mailwoman/geographic-model`: the stable identifiers, the closed
7
- * vocabularies, and the record shapes for concepts, relations, external-vocabulary mappings, source
8
- * observations, and derived facts.
6
+ * Defines the authored record schema for `@mailwoman/geographic-model`: identifiers, closed
7
+ * vocabularies and the shapes of concepts, relations, mappings, observations and derived facts.
9
8
  *
10
- * Three properties hold by construction, and they are why the file reads the way it does.
9
+ * The schema has no numeric fields. {@link Modality} is a vocabulary of words with no exported order,
10
+ * because ranking weights belong to `@mailwoman/resolver` and `@mailwoman/neural`.
11
11
  *
12
- * **No numeric field exists anywhere in this schema** — not a strength, not a confidence, not a
13
- * count. {@link Modality} is an ordinal vocabulary of WORDS and this module exports no order over
14
- * it, because a number attached to an authored relationship is a ranking weight whatever it is
15
- * called, and ranking belongs to `@mailwoman/resolver` and `@mailwoman/neural`.
12
+ * Authored assertions, source observations and derived facts are separate types with separately
13
+ * branded identifiers. A derived fact has no {@link SourceProvenance}. Its `derivation` and `inputs`
14
+ * serve as its provenance.
16
15
  *
17
- * **An authored assertion, a source observation, and a derived fact are three different types.** A
18
- * {@link RelationAssertion} is authored by a curator and lives on the concept it is about; a
19
- * {@link SourceObservationRecord} records what a named external source states and never enters the
20
- * concept table; a {@link DerivedFactRecord} names the procedure that produced it and every input
21
- * that procedure read. Their identifiers are separately branded, so one is not assignable where
22
- * another is expected.
23
- *
24
- * **Every record carries provenance, and a derived fact carries it structurally.** A derived fact
25
- * has no {@link SourceProvenance} of its own: its `derivation` plus its resolved `inputs` ARE its
26
- * provenance, and each input carries source provenance in turn.
27
- *
28
- * Identifier namespaces are per-table. A {@link ConceptID} and a {@link RelationID} may read the
29
- * same string without colliding; the brands are what keep them apart in a consumer.
30
- *
31
- * Consumed by `./validate.ts` (which refuses a document violating any rule above), by #1926's
32
- * deterministic compiler, and by the first authored document in #1927.
33
- *
34
- * Boundary record: `docs/superpowers/specs/2026-08-26-geographic-model-boundaries.md` (#1917).
16
+ * Each table has its own identifier namespace, so a {@link ConceptID} and a {@link RelationID} may hold
17
+ * the same string.
35
18
  */
36
19
  /**
37
- * Brand a raw string as a {@link ConceptID}. Purely a compile-time assertion; the string is unchanged.
20
+ * Brands a string as a {@link ConceptID} without changing it.
38
21
  */
39
22
  export function toConceptID(id) {
40
23
  return id;
41
24
  }
42
25
  /**
43
- * Brand a raw string as a {@link RelationID}. Purely a compile-time assertion; the string is unchanged.
26
+ * Brands a string as a {@link RelationID} without changing it.
44
27
  */
45
28
  export function toRelationID(id) {
46
29
  return id;
47
30
  }
48
31
  /**
49
- * Brand a raw string as a {@link RuleID}. Purely a compile-time assertion; the string is unchanged.
32
+ * Brands a string as a {@link RuleID} without changing it.
50
33
  */
51
34
  export function toRuleID(id) {
52
35
  return id;
53
36
  }
54
37
  /**
55
- * Brand a raw string as a {@link MappingID}. Purely a compile-time assertion; the string is unchanged.
38
+ * Brands a string as a {@link MappingID} without changing it.
56
39
  */
57
40
  export function toMappingID(id) {
58
41
  return id;
59
42
  }
60
43
  /**
61
- * Brand a raw string as an {@link ObservationID}. Purely a compile-time assertion; the string is unchanged.
44
+ * Brands a string as an {@link ObservationID} without changing it.
62
45
  */
63
46
  export function toObservationID(id) {
64
47
  return id;
65
48
  }
66
49
  /**
67
- * Brand a raw string as a {@link DerivedFactID}. Purely a compile-time assertion; the string is unchanged.
50
+ * Brands a string as a {@link DerivedFactID} without changing it.
68
51
  */
69
52
  export function toDerivedFactID(id) {
70
53
  return id;
71
54
  }
72
55
  /**
73
- * The complete set of concept kinds. Three, deliberately: the first executable slice needs an establishment class, an
74
- * activity, and the place class an establishment is sited in. Widening this vocabulary is a reviewed schema revision,
75
- * which is the review cost the program accepted in exchange for refusing speculative upper-ontology breadth.
56
+ * The concept kinds.
57
+ * A new kind requires a reviewed schema revision.
76
58
  */
77
59
  export const ConceptKind = {
78
60
  /**
79
- * A geographic place — an area or a point that other things are sited in or near.
61
+ * A geographic area or point where other things are located.
80
62
  */
81
63
  Place: "place",
82
64
  /**
83
- * A class of premises a person can go to, e.g. `pharmacy`.
65
+ * A class of premises that a person can visit, such as `pharmacy`.
84
66
  */
85
67
  Establishment: "establishment",
86
68
  /**
87
- * Something a person does, e.g. `obtain_medication`. The identifier is owned here; any statistics fitted against it
88
- * are owned by #1683.
69
+ * A kind of activity, such as `obtain_medication`.
89
70
  */
90
71
  Activity: "activity",
91
72
  };
92
73
  /**
93
- * How strongly an assertion, an observation, or a derived fact claims its proposition holds.
74
+ * How strongly an assertion, observation or derived fact claims that its proposition holds.
94
75
  *
95
- * The vocabulary is ordinal in meaning and this module exports no order over it, on purpose. An exported rank would be
96
- * one arithmetic step from a weight, and an authored weight is the single thing the package boundary forbids.
76
+ * The values are ordinal in meaning, but the module exports no order
77
+ * so callers do not convert them into weights.
97
78
  */
98
79
  export const Modality = {
99
80
  /**
100
- * Holds in every instance; a counter-example falsifies the record rather than qualifying it.
81
+ * Holds in every instance.
82
+ * A counterexample falsifies the record.
101
83
  */
102
84
  Necessary: "necessary",
103
85
  /**
@@ -108,7 +90,7 @@ export const Modality = {
108
90
  Expected: "expected",
109
91
  WeaklyExpected: "weakly_expected",
110
92
  /**
111
- * Consistent with the concept and asserts nothing about how often it holds.
93
+ * Consistent with the concept, with no claim about frequency.
112
94
  */
113
95
  Possible: "possible",
114
96
  Unusual: "unusual",
@@ -128,32 +110,35 @@ export const RelationSemantics = {
128
110
  Defeasible: "defeasible",
129
111
  };
130
112
  /**
131
- * A concept's authoring lifecycle. It says whether a consumer should read the record, and nothing about how much the
132
- * record is worth.
113
+ * A concept's review status.
114
+ * It tells consumers whether to use the record.
133
115
  */
134
116
  export const ConceptStatus = {
135
117
  /**
136
- * Authored, not yet reviewed. A compiler may refuse to emit it.
118
+ * Authored but not yet reviewed.
137
119
  */
138
120
  Draft: "draft",
139
121
  Active: "active",
140
122
  /**
141
- * Kept so existing references resolve; no new reference should be authored against it.
123
+ * Retained so that existing references resolve.
124
+ * New references should avoid it.
142
125
  */
143
126
  Deprecated: "deprecated",
144
127
  };
145
128
  /**
146
- * The external vocabularies a concept can be mapped into. One today, and the mapping record below is typed against it
147
- * directly; a second vocabulary turns {@link ExternalMappingRecord} into a union discriminated on `vocabulary`.
129
+ * External vocabularies that concepts can map to.
130
+ *
131
+ * {@link ExternalMappingRecord} assumes a single vocabulary.
132
+ * A second vocabulary would require a union discriminated on `vocabulary`.
148
133
  */
149
134
  export const ExternalVocabulary = {
150
135
  /**
151
- * `@mailwoman/poi-taxonomy` category identifiers — the owner of external and curated POI categories.
136
+ * Category identifiers from `@mailwoman/poi-taxonomy`.
152
137
  */
153
138
  POITaxonomy: "poi-taxonomy",
154
139
  };
155
140
  /**
156
- * Which table a {@link DerivationInput} points into.
141
+ * The table that a {@link DerivationInput} refers to.
157
142
  */
158
143
  export const DerivationInputKind = {
159
144
  Concept: "concept",
package/out/schema.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../lib/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAUH;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACrC,OAAO,EAAe,CAAA;AACvB,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU;IACtC,OAAO,EAAgB,CAAA;AACxB,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAU;IAClC,OAAO,EAAY,CAAA;AACpB,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACrC,OAAO,EAAe,CAAA;AACvB,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU;IACzC,OAAO,EAAmB,CAAA;AAC3B,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU;IACzC,OAAO,EAAmB,CAAA;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B;;OAEG;IACH,KAAK,EAAE,OAAO;IACd;;OAEG;IACH,aAAa,EAAE,eAAe;IAC9B;;;OAGG;IACH,QAAQ,EAAE,UAAU;CACX,CAAA;AAIV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACvB;;OAEG;IACH,SAAS,EAAE,WAAW;IACtB;;OAEG;IACH,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,mBAAmB;IACrC,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,iBAAiB;IACjC;;OAEG;IACH,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,kBAAkB;CAC1B,CAAA;AAIV;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM;IACZ;;OAEG;IACH,UAAU,EAAE,YAAY;CACf,CAAA;AAIV;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B;;OAEG;IACH,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB;;OAEG;IACH,UAAU,EAAE,YAAY;CACf,CAAA;AAIV;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC;;OAEG;IACH,WAAW,EAAE,cAAc;CAClB,CAAA;AA6HV;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,cAAc;CAClB,CAAA"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../lib/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACrC,OAAO,EAAe,CAAA;AACvB,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU;IACtC,OAAO,EAAgB,CAAA;AACxB,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAU;IAClC,OAAO,EAAY,CAAA;AACpB,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACrC,OAAO,EAAe,CAAA;AACvB,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU;IACzC,OAAO,EAAmB,CAAA;AAC3B,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU;IACzC,OAAO,EAAmB,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B;;OAEG;IACH,KAAK,EAAE,OAAO;IACd;;OAEG;IACH,aAAa,EAAE,eAAe;IAC9B;;OAEG;IACH,QAAQ,EAAE,UAAU;CACX,CAAA;AAOV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACvB;;;OAGG;IACH,SAAS,EAAE,WAAW;IACtB;;OAEG;IACH,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,mBAAmB;IACrC,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,iBAAiB;IACjC;;OAEG;IACH,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,kBAAkB;CAC1B,CAAA;AAOV;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM;IACZ;;OAEG;IACH,UAAU,EAAE,YAAY;CACf,CAAA;AAOV;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B;;OAEG;IACH,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB;;;OAGG;IACH,UAAU,EAAE,YAAY;CACf,CAAA;AAOV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC;;OAEG;IACH,WAAW,EAAE,cAAc;CAClB,CAAA;AAqIV;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,cAAc;CAClB,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Generator for `data/geographic-model.json` — the committed compiled artifact, built from the
7
+ * authored records under `data/model/`.
8
+ *
9
+ * A committed artifact is these bytes run through `oxfmt`, which inlines short arrays that
10
+ * `JSON.stringify` cannot reproduce, so the freshness check compares the parsed artifact against a
11
+ * fresh compile and asserts byte equality between two compiles instead.
12
+ */
13
+ import type { CompiledGeographicModel } from "#artifact";
14
+ /**
15
+ * The command that rewrites the committed artifact, quoted by the freshness test's
16
+ * failure message so a reader who trips it is told what to run.
17
+ */
18
+ export declare const REGENERATE_ARTIFACT_COMMAND = "node packages/geographic-model/tools/build-artifact.ts && npx oxfmt packages/geographic-model/data/geographic-model.json";
19
+ /**
20
+ * Load the authored records and compile them.
21
+ * No partial result is returned.
22
+ *
23
+ * @throws with every validation violation when the authored tables fail to load.
24
+ * @throws with every compilation issue when loading succeeds but compilation fails.
25
+ */
26
+ export declare function compileAuthoredGeographicModel(): Promise<CompiledGeographicModel>;
27
+ //# sourceMappingURL=build-artifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-artifact.d.ts","sourceRoot":"","sources":["../../tools/build-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AAKxD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,6HACmF,CAAA;AAE3H;;;;;;GAMG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAIvF"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Generator for `data/geographic-model.json` — the committed compiled artifact, built from the
7
+ * authored records under `data/model/`.
8
+ *
9
+ * A committed artifact is these bytes run through `oxfmt`, which inlines short arrays that
10
+ * `JSON.stringify` cannot reproduce, so the freshness check compares the parsed artifact against a
11
+ * fresh compile and asserts byte equality between two compiles instead.
12
+ */
13
+ import { writeLocalJSONFile } from "@mailwoman/core/fs/writers";
14
+ import { compileGeographicModel } from "#compile";
15
+ import { loadGeographicModelDirectory } from "#load";
16
+ import { packagedModelPaths } from "#packaged";
17
+ /**
18
+ * The command that rewrites the committed artifact, quoted by the freshness test's
19
+ * failure message so a reader who trips it is told what to run.
20
+ */
21
+ export const REGENERATE_ARTIFACT_COMMAND = "node packages/geographic-model/tools/build-artifact.ts && npx oxfmt packages/geographic-model/data/geographic-model.json";
22
+ /**
23
+ * Load the authored records and compile them.
24
+ * No partial result is returned.
25
+ *
26
+ * @throws with every validation violation when the authored tables fail to load.
27
+ * @throws with every compilation issue when loading succeeds but compilation fails.
28
+ */
29
+ export async function compileAuthoredGeographicModel() {
30
+ const { source } = await packagedModelPaths();
31
+ return compileGeographicModel(await loadGeographicModelDirectory(source));
32
+ }
33
+ async function main() {
34
+ const { artifact } = await packagedModelPaths();
35
+ const model = await compileAuthoredGeographicModel();
36
+ await writeLocalJSONFile(model, artifact);
37
+ console.log(`wrote ${artifact}: ${model.concepts.length} concepts, ${model.relations.length} relations, ${model.mappings.length} mappings, ${model.observations.length} observations, ${model.derivedFacts.length} derived facts (model ${model.modelVersion})`);
38
+ }
39
+ // `import.meta.main` is undefined under a Vite/vitest module graph, so importing this
40
+ // module from a test stays side-effect-free and never rewrites the committed artifact.
41
+ if (import.meta.main) {
42
+ await main();
43
+ }
44
+ //# sourceMappingURL=build-artifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-artifact.js","sourceRoot":"","sources":["../../tools/build-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACvC,0HAA0H,CAAA;AAE3H;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B;IACnD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAA;IAE7C,OAAO,sBAAsB,CAAC,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED,KAAK,UAAU,IAAI;IAClB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAA;IAC/C,MAAM,KAAK,GAAG,MAAM,8BAA8B,EAAE,CAAA;IAEpD,MAAM,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAEzC,OAAO,CAAC,GAAG,CACV,SAAS,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,cAAc,KAAK,CAAC,SAAS,CAAC,MAAM,eAAe,KAAK,CAAC,QAAQ,CAAC,MAAM,cAAc,KAAK,CAAC,YAAY,CAAC,MAAM,kBAAkB,KAAK,CAAC,YAAY,CAAC,MAAM,yBAAyB,KAAK,CAAC,YAAY,GAAG,CACnP,CAAA;AACF,CAAC;AAED,sFAAsF;AACtF,uFAAuF;AACvF,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,MAAM,IAAI,EAAE,CAAA;AACb,CAAC"}
package/out/validate.d.ts CHANGED
@@ -3,32 +3,14 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Deterministic validation of a {@link GeographicModelDocument}. Plain TypeScript: no reasoner, no
7
- * query engine, no schema library, and no I/O — the same input always produces the same issue list.
6
+ * Deterministically validate a {@link GeographicModelDocument} without I/O or external schema libraries. Report all
7
+ * issues in traversal order and return either the complete valid document or the full issue list.
8
8
  *
9
- * The validator reports EVERY violation it finds. A record set is authored by hand and read by a
10
- * compiler, so a validator that stops at the first problem hands its author one defect per run. It
11
- * also never returns a partial document: either the input satisfies every rule and is returned
12
- * whole, or nothing is returned and every issue is named with the path it was found at. There is no
13
- * third answer in which some records were dropped quietly, because a dropped record is
14
- * indistinguishable from a world that does not contain it.
15
- *
16
- * Two passes, in this order, and both always run:
17
- *
18
- * 1. **Shape.** Field presence, field types, closed-vocabulary membership, and unknown keys. An
19
- * unknown key whose name announces ranking policy — a boost, a penalty, a weight, a rank, a
20
- * score — is reported under its own code rather than as an anonymous stray field, because that
21
- * is the one authoring mistake this package exists to refuse.
22
- * 2. **Whole-table references.** Duplicate identifiers, `isA` self-reference and cycles, relation
23
- * and concept resolution, relation domain and range kinds, inverse reciprocity, and derivation
24
- * inputs. These are answerable only once every table has been read, which is why they are
25
- * reported after the shape issues rather than interleaved with them.
26
- *
27
- * Consumed by #1926's compiler, which validates before it emits, and by #1927's authored document.
9
+ * Validate record shapes first, then whole-table references such as duplicate IDs, inheritance cycles, relation
10
+ * constraints, inverses and derivation inputs.
28
11
  */
29
12
  import { ConceptKind, DerivationInputKind, type GeographicModelDocument } from "#schema";
30
13
  import { type ValidationIssue } from "#validation/issues";
31
- export { type ValidationIssue, ValidationIssueCode } from "#validation/issues";
32
14
  /**
33
15
  * The whole document, or every reason it is not one.
34
16
  */
@@ -41,42 +23,42 @@ export type ValidationResult = {
41
23
  };
42
24
  export interface AssertionView {
43
25
  path: string;
44
- id?: string;
45
- relation?: string;
46
- target?: string;
26
+ id: string | null;
27
+ relation: string | null;
28
+ target: string | null;
47
29
  }
48
30
  export interface ConceptView {
49
31
  path: string;
50
- id?: string;
51
- kind?: ConceptKind;
52
- isA?: string[];
32
+ id: string | null;
33
+ kind: ConceptKind | null;
34
+ isA: string[] | null;
53
35
  assertions: AssertionView[];
54
36
  }
55
37
  export interface RelationView {
56
38
  path: string;
57
- id?: string;
58
- domainKinds?: ConceptKind[];
59
- rangeKinds?: ConceptKind[];
60
- transitive?: boolean;
61
- symmetric?: boolean;
62
- inverse?: string;
39
+ id: string | null;
40
+ domainKinds: ConceptKind[] | null;
41
+ rangeKinds: ConceptKind[] | null;
42
+ transitive: boolean | null;
43
+ symmetric: boolean | null;
44
+ inverse: string | null;
63
45
  }
64
46
  export interface MappingView {
65
47
  path: string;
66
- id?: string;
67
- concept?: string;
48
+ id: string | null;
49
+ concept: string | null;
68
50
  }
69
51
  export interface TripleView {
70
52
  path: string;
71
- id?: string;
72
- subject?: string;
73
- relation?: string;
74
- object?: string;
53
+ id: string | null;
54
+ subject: string | null;
55
+ relation: string | null;
56
+ object: string | null;
75
57
  }
76
58
  export interface DerivationInputView {
77
59
  path: string;
78
- kind?: DerivationInputKind;
79
- id?: string;
60
+ kind: DerivationInputKind | null;
61
+ id: string | null;
80
62
  }
81
63
  export interface DerivedFactView extends TripleView {
82
64
  inputs: DerivationInputView[];
@@ -99,26 +81,23 @@ export interface ReferenceTables {
99
81
  /**
100
82
  * Validate an authored geographic-model document.
101
83
  *
102
- * Returns the document whole, or every reason it is not one. Issues arrive in traversal order — shape issues per record
103
- * in table order, then whole-table reference issues — so two runs over the same input produce the same list.
84
+ * @returns The full document or every validation issue in deterministic order.
104
85
  */
105
86
  export declare function validateGeographicModelDocument(input: unknown): ValidationResult;
106
87
  /**
107
- * Render every issue as one line, `path: message [code]`, in the order the validator produced them.
88
+ * Format issues as `path: message [code]`, preserving their order.
108
89
  */
109
90
  export declare function formatValidationIssues(issues: readonly ValidationIssue[]): string;
110
91
  /**
111
- * Thrown by {@link parseGeographicModelDocument}. Carries the whole issue list, and states the whole issue list in its
112
- * message, so a caller that only ever prints `error.message` still sees every violation.
92
+ * Validation error carrying the complete issue list in both `issues` and `message`.
113
93
  */
114
94
  export declare class GeographicModelValidationError extends Error {
115
95
  readonly issues: readonly ValidationIssue[];
116
96
  constructor(issues: readonly ValidationIssue[]);
117
97
  }
118
98
  /**
119
- * Validate and return an authored document, throwing {@link GeographicModelValidationError} with every violation if it
120
- * does not validate. The throwing form is for callers with no partial-result behavior to offer — a compiler, a build
121
- * step, a test.
99
+ * Validate and return the document, or throw with all issues.
100
+ * Use when partial results are not meaningful.
122
101
  */
123
102
  export declare function parseGeographicModelDocument(input: unknown): GeographicModelDocument;
124
103
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../lib/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,EACN,WAAW,EAEX,mBAAmB,EAEnB,KAAK,uBAAuB,EAG5B,MAAM,SAAS,CAAA;AAChB,OAAO,EASN,KAAK,eAAe,EAEpB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,KAAK,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE9E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAA;CAAE,GAC/C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,CAAA;AA0C3C,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,UAAU,EAAE,aAAa,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,WAAW,EAAE,CAAA;IAC3B,UAAU,CAAC,EAAE,WAAW,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,mBAAmB,CAAA;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IAClD,MAAM,EAAE,mBAAmB,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,YAAY,EAAE,UAAU,EAAE,CAAA;IAC1B,YAAY,EAAE,eAAe,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAClC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACpC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C;AA0RD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAQhF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAEjF;AAED;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAA;IAE3C,YAAY,MAAM,EAAE,SAAS,eAAe,EAAE,EAK7C;CACD;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAMpF"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../lib/validate.ts"],"names":[],"mappings":"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"}
package/out/validate.js CHANGED
@@ -3,34 +3,16 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Deterministic validation of a {@link GeographicModelDocument}. Plain TypeScript: no reasoner, no
7
- * query engine, no schema library, and no I/O — the same input always produces the same issue list.
6
+ * Deterministically validate a {@link GeographicModelDocument} without I/O or external schema libraries. Report all
7
+ * issues in traversal order and return either the complete valid document or the full issue list.
8
8
  *
9
- * The validator reports EVERY violation it finds. A record set is authored by hand and read by a
10
- * compiler, so a validator that stops at the first problem hands its author one defect per run. It
11
- * also never returns a partial document: either the input satisfies every rule and is returned
12
- * whole, or nothing is returned and every issue is named with the path it was found at. There is no
13
- * third answer in which some records were dropped quietly, because a dropped record is
14
- * indistinguishable from a world that does not contain it.
15
- *
16
- * Two passes, in this order, and both always run:
17
- *
18
- * 1. **Shape.** Field presence, field types, closed-vocabulary membership, and unknown keys. An
19
- * unknown key whose name announces ranking policy — a boost, a penalty, a weight, a rank, a
20
- * score — is reported under its own code rather than as an anonymous stray field, because that
21
- * is the one authoring mistake this package exists to refuse.
22
- * 2. **Whole-table references.** Duplicate identifiers, `isA` self-reference and cycles, relation
23
- * and concept resolution, relation domain and range kinds, inverse reciprocity, and derivation
24
- * inputs. These are answerable only once every table has been read, which is why they are
25
- * reported after the shape issues rather than interleaved with them.
26
- *
27
- * Consumed by #1926's compiler, which validates before it emits, and by #1927's authored document.
9
+ * Validate record shapes first, then whole-table references such as duplicate IDs, inheritance cycles, relation
10
+ * constraints, inverses and derivation inputs.
28
11
  */
29
12
  import { isPlainObject } from "@mailwoman/core/objects";
30
13
  import { ConceptKind, ConceptStatus, DerivationInputKind, ExternalVocabulary, Modality, RelationSemantics, } from "#schema";
31
14
  import { add, checkFieldNames, readArray, readBoolean, readString, readStringArray, readVocabularyArray, readVocabularyValue, ValidationIssueCode, } from "#validation/issues";
32
15
  import { checkReferences } from "#validation/references";
33
- export { ValidationIssueCode } from "#validation/issues";
34
16
  const DOCUMENT_FIELDS = ["version", "relations", "concepts", "mappings", "observations", "derivedFacts"];
35
17
  const PROVENANCE_FIELDS = ["source", "sourceVersion", "sourceRecord", "sourceURL", "authoredAt", "notes"];
36
18
  const OPTIONAL_PROVENANCE_FIELDS = ["sourceVersion", "sourceRecord", "sourceURL", "authoredAt", "notes"];
@@ -61,8 +43,7 @@ const DERIVED_FACT_FIELDS = [
61
43
  ];
62
44
  const DERIVATION_INPUT_FIELDS = ["kind", "id"];
63
45
  /**
64
- * ISO 3166-1 alpha-2, upper case. A lower-case or three-letter value is an authoring mistake that would otherwise scope
65
- * a claim to a country nothing else in the system names.
46
+ * Uppercase ISO 3166-1 alpha-2 country code.
66
47
  */
67
48
  const COUNTRY_PATTERN = /^[A-Z]{2}$/;
68
49
  function readCountries(issues, path, container) {
@@ -93,7 +74,7 @@ function readProvenance(issues, path, container) {
93
74
  }
94
75
  }
95
76
  /**
96
- * Read the `label` and `description` an authored record carries.
77
+ * Read required label and description fields.
97
78
  */
98
79
  function readNarration(issues, path, value) {
99
80
  readString(issues, path, value, "label", true);
@@ -224,26 +205,23 @@ function collectIssues(input) {
224
205
  /**
225
206
  * Validate an authored geographic-model document.
226
207
  *
227
- * Returns the document whole, or every reason it is not one. Issues arrive in traversal order — shape issues per record
228
- * in table order, then whole-table reference issues — so two runs over the same input produce the same list.
208
+ * @returns The full document or every validation issue in deterministic order.
229
209
  */
230
210
  export function validateGeographicModelDocument(input) {
231
211
  const issues = collectIssues(input);
232
212
  if (issues.length)
233
213
  return { ok: false, issues };
234
- // A clean input IS the document — the validator reads, it never rewrites. Keeping the assertion in this function,
235
- // where `input` is still `unknown`, is what makes it a single step rather than a cast through `unknown`.
214
+ // Return the original document without rewriting it.
236
215
  return { ok: true, document: input };
237
216
  }
238
217
  /**
239
- * Render every issue as one line, `path: message [code]`, in the order the validator produced them.
218
+ * Format issues as `path: message [code]`, preserving their order.
240
219
  */
241
220
  export function formatValidationIssues(issues) {
242
221
  return issues.map((issue) => `${issue.path}: ${issue.message} [${issue.code}]`).join("\n");
243
222
  }
244
223
  /**
245
- * Thrown by {@link parseGeographicModelDocument}. Carries the whole issue list, and states the whole issue list in its
246
- * message, so a caller that only ever prints `error.message` still sees every violation.
224
+ * Validation error carrying the complete issue list in both `issues` and `message`.
247
225
  */
248
226
  export class GeographicModelValidationError extends Error {
249
227
  issues;
@@ -254,9 +232,8 @@ export class GeographicModelValidationError extends Error {
254
232
  }
255
233
  }
256
234
  /**
257
- * Validate and return an authored document, throwing {@link GeographicModelValidationError} with every violation if it
258
- * does not validate. The throwing form is for callers with no partial-result behavior to offer — a compiler, a build
259
- * step, a test.
235
+ * Validate and return the document, or throw with all issues.
236
+ * Use when partial results are not meaningful.
260
237
  */
261
238
  export function parseGeographicModelDocument(input) {
262
239
  const result = validateGeographicModelDocument(input);
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../lib/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../lib/validate.ts"],"names":[],"mappings":"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"}