@empressaio/atom-contract 1.22.0 → 1.23.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 (103) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/absence/absence-verdict.d.ts +32 -0
  3. package/dist/absence/absence-verdict.d.ts.map +1 -0
  4. package/dist/absence/absence-verdict.js +55 -0
  5. package/dist/absence/absence-verdict.js.map +1 -0
  6. package/dist/absence/index.d.ts +3 -0
  7. package/dist/absence/index.d.ts.map +1 -0
  8. package/dist/absence/index.js +2 -0
  9. package/dist/absence/index.js.map +1 -0
  10. package/dist/access/access-pair.d.ts +29 -0
  11. package/dist/access/access-pair.d.ts.map +1 -0
  12. package/dist/access/access-pair.js +106 -0
  13. package/dist/access/access-pair.js.map +1 -0
  14. package/dist/access/index.d.ts +3 -0
  15. package/dist/access/index.d.ts.map +1 -0
  16. package/dist/access/index.js +2 -0
  17. package/dist/access/index.js.map +1 -0
  18. package/dist/conformance/index.d.ts +1 -0
  19. package/dist/conformance/index.d.ts.map +1 -1
  20. package/dist/conformance/index.js +1 -0
  21. package/dist/conformance/index.js.map +1 -1
  22. package/dist/conformance/track2-absence.d.ts +8 -0
  23. package/dist/conformance/track2-absence.d.ts.map +1 -0
  24. package/dist/conformance/track2-absence.js +19 -0
  25. package/dist/conformance/track2-absence.js.map +1 -0
  26. package/dist/conformance/track2-access.d.ts +6 -0
  27. package/dist/conformance/track2-access.d.ts.map +1 -0
  28. package/dist/conformance/track2-access.js +10 -0
  29. package/dist/conformance/track2-access.js.map +1 -0
  30. package/dist/conformance/track2-alias.d.ts +7 -0
  31. package/dist/conformance/track2-alias.d.ts.map +1 -0
  32. package/dist/conformance/track2-alias.js +21 -0
  33. package/dist/conformance/track2-alias.js.map +1 -0
  34. package/dist/conformance/track2-derivation.d.ts +6 -0
  35. package/dist/conformance/track2-derivation.d.ts.map +1 -0
  36. package/dist/conformance/track2-derivation.js +15 -0
  37. package/dist/conformance/track2-derivation.js.map +1 -0
  38. package/dist/conformance/track2-node-id.d.ts +7 -0
  39. package/dist/conformance/track2-node-id.d.ts.map +1 -0
  40. package/dist/conformance/track2-node-id.js +9 -0
  41. package/dist/conformance/track2-node-id.js.map +1 -0
  42. package/dist/conformance/track2-provenance.d.ts +11 -0
  43. package/dist/conformance/track2-provenance.d.ts.map +1 -0
  44. package/dist/conformance/track2-provenance.js +39 -0
  45. package/dist/conformance/track2-provenance.js.map +1 -0
  46. package/dist/conformance/track2-selector.d.ts +12 -0
  47. package/dist/conformance/track2-selector.d.ts.map +1 -0
  48. package/dist/conformance/track2-selector.js +12 -0
  49. package/dist/conformance/track2-selector.js.map +1 -0
  50. package/dist/conformance/track2-supersession.d.ts +6 -0
  51. package/dist/conformance/track2-supersession.d.ts.map +1 -0
  52. package/dist/conformance/track2-supersession.js +12 -0
  53. package/dist/conformance/track2-supersession.js.map +1 -0
  54. package/dist/derivation/derivation.d.ts +30 -0
  55. package/dist/derivation/derivation.d.ts.map +1 -0
  56. package/dist/derivation/derivation.js +61 -0
  57. package/dist/derivation/derivation.js.map +1 -0
  58. package/dist/derivation/index.d.ts +3 -0
  59. package/dist/derivation/index.d.ts.map +1 -0
  60. package/dist/derivation/index.js +2 -0
  61. package/dist/derivation/index.js.map +1 -0
  62. package/dist/identity/alias.d.ts +53 -0
  63. package/dist/identity/alias.d.ts.map +1 -0
  64. package/dist/identity/alias.js +99 -0
  65. package/dist/identity/alias.js.map +1 -0
  66. package/dist/identity/index.d.ts +7 -0
  67. package/dist/identity/index.d.ts.map +1 -0
  68. package/dist/identity/index.js +7 -0
  69. package/dist/identity/index.js.map +1 -0
  70. package/dist/identity/node-id.d.ts +56 -0
  71. package/dist/identity/node-id.d.ts.map +1 -0
  72. package/dist/identity/node-id.js +82 -0
  73. package/dist/identity/node-id.js.map +1 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +1 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/lineage/index.d.ts +3 -0
  79. package/dist/lineage/index.d.ts.map +1 -0
  80. package/dist/lineage/index.js +2 -0
  81. package/dist/lineage/index.js.map +1 -0
  82. package/dist/lineage/supersession.d.ts +34 -0
  83. package/dist/lineage/supersession.d.ts.map +1 -0
  84. package/dist/lineage/supersession.js +48 -0
  85. package/dist/lineage/supersession.js.map +1 -0
  86. package/dist/property/flood-hazard-fact.d.ts +4 -4
  87. package/dist/provenance/index.d.ts +3 -0
  88. package/dist/provenance/index.d.ts.map +1 -0
  89. package/dist/provenance/index.js +2 -0
  90. package/dist/provenance/index.js.map +1 -0
  91. package/dist/provenance/provenance-class.d.ts +52 -0
  92. package/dist/provenance/provenance-class.d.ts.map +1 -0
  93. package/dist/provenance/provenance-class.js +91 -0
  94. package/dist/provenance/provenance-class.js.map +1 -0
  95. package/dist/selector/index.d.ts +3 -0
  96. package/dist/selector/index.d.ts.map +1 -0
  97. package/dist/selector/index.js +2 -0
  98. package/dist/selector/index.js.map +1 -0
  99. package/dist/selector/selector-predicate.d.ts +101 -0
  100. package/dist/selector/selector-predicate.d.ts.map +1 -0
  101. package/dist/selector/selector-predicate.js +104 -0
  102. package/dist/selector/selector-predicate.js.map +1 -0
  103. package/package.json +5 -1
@@ -339,7 +339,7 @@ export declare const FLOOD_HAZARD_FACT_SCHEMA: z.ZodEffects<z.ZodObject<{
339
339
  reasoningKind: "observed";
340
340
  };
341
341
  atomTier: AtomTier;
342
- sourceTier: "absent" | "fema-nfhl";
342
+ sourceTier: "fema-nfhl" | "absent";
343
343
  asOf?: string | undefined;
344
344
  readContract?: Readonly<{
345
345
  axes: Readonly<{
@@ -409,7 +409,7 @@ export declare const FLOOD_HAZARD_FACT_SCHEMA: z.ZodEffects<z.ZodObject<{
409
409
  reasoningKind: "observed";
410
410
  };
411
411
  atomTier: AtomTier;
412
- sourceTier: "absent" | "fema-nfhl";
412
+ sourceTier: "fema-nfhl" | "absent";
413
413
  asOf?: string | undefined;
414
414
  readContract?: Readonly<{
415
415
  axes: Readonly<{
@@ -479,7 +479,7 @@ export declare const FLOOD_HAZARD_FACT_SCHEMA: z.ZodEffects<z.ZodObject<{
479
479
  reasoningKind: "observed";
480
480
  };
481
481
  atomTier: AtomTier;
482
- sourceTier: "absent" | "fema-nfhl";
482
+ sourceTier: "fema-nfhl" | "absent";
483
483
  asOf?: string | undefined;
484
484
  readContract?: Readonly<{
485
485
  axes: Readonly<{
@@ -549,7 +549,7 @@ export declare const FLOOD_HAZARD_FACT_SCHEMA: z.ZodEffects<z.ZodObject<{
549
549
  reasoningKind: "observed";
550
550
  };
551
551
  atomTier: AtomTier;
552
- sourceTier: "absent" | "fema-nfhl";
552
+ sourceTier: "fema-nfhl" | "absent";
553
553
  asOf?: string | undefined;
554
554
  readContract?: Readonly<{
555
555
  axes: Readonly<{
@@ -0,0 +1,3 @@
1
+ export { PROVENANCE_CLASSES, ProvenanceClass, ProvenanceParseError, parseProvenance, } from "./provenance-class.js";
2
+ export type { ProvenanceAbsence, ProvenanceAssertion, ProvenanceClassName, ProvenanceDerivation, ProvenanceObservation, ProvenanceRecord, ProvenanceSynthesis, } from "./provenance-class.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provenance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { PROVENANCE_CLASSES, ProvenanceClass, ProvenanceParseError, parseProvenance, } from "./provenance-class.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provenance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Provenance class as a discriminated union — instrument contract item 2.2.
3
+ *
4
+ * Factory shim four: Record, Derivation, Assertion, Absence.
5
+ * Model (19) adds Observation and Synthesis. Attention and Judgment are
6
+ * reserved and are not constructible here.
7
+ */
8
+ import type { AbsenceVerdict } from "../absence/absence-verdict.js";
9
+ import type { DerivesFrom } from "../derivation/derivation.js";
10
+ export declare const PROVENANCE_CLASSES: readonly ["Record", "Derivation", "Assertion", "Absence", "Observation", "Synthesis"];
11
+ export type ProvenanceClassName = (typeof PROVENANCE_CLASSES)[number];
12
+ export type ProvenanceRecord = {
13
+ readonly class: "Record";
14
+ readonly sourceId: string;
15
+ readonly fetchRef: string;
16
+ readonly derivesFrom?: never;
17
+ };
18
+ export type ProvenanceDerivation = {
19
+ readonly class: "Derivation";
20
+ readonly formula: string;
21
+ readonly inputs: readonly string[];
22
+ readonly derivesFrom: DerivesFrom;
23
+ };
24
+ export type ProvenanceAssertion = {
25
+ readonly class: "Assertion";
26
+ readonly asserter: string;
27
+ };
28
+ export type ProvenanceAbsence = {
29
+ readonly class: "Absence";
30
+ readonly verdict: AbsenceVerdict;
31
+ };
32
+ export type ProvenanceObservation = {
33
+ readonly class: "Observation";
34
+ readonly measurement: string;
35
+ };
36
+ export type ProvenanceSynthesis = {
37
+ readonly class: "Synthesis";
38
+ readonly citations: readonly string[];
39
+ };
40
+ export type ProvenanceClass = ProvenanceRecord | ProvenanceDerivation | ProvenanceAssertion | ProvenanceAbsence | ProvenanceObservation | ProvenanceSynthesis;
41
+ export declare class ProvenanceParseError extends Error {
42
+ readonly input: unknown;
43
+ readonly code: string;
44
+ constructor(message: string, input: unknown, code?: string);
45
+ }
46
+ export declare function parseProvenance(input: unknown): ProvenanceClass;
47
+ /** Runtime export so the Factory shim check observes `ProvenanceClass` on the module. */
48
+ export declare const ProvenanceClass: Readonly<{
49
+ names: readonly ["Record", "Derivation", "Assertion", "Absence", "Observation", "Synthesis"];
50
+ parse: typeof parseProvenance;
51
+ }>;
52
+ //# sourceMappingURL=provenance-class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance-class.d.ts","sourceRoot":"","sources":["../../src/provenance/provenance-class.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D,eAAO,MAAM,kBAAkB,uFAOrB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,gBAAgB,GAChB,oBAAoB,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,mBAAmB,CAAC;AAExB,qBAAa,oBAAqB,SAAQ,KAAK;IAK3C,QAAQ,CAAC,KAAK,EAAE,OAAO;IAJzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGpB,OAAO,EAAE,MAAM,EACN,KAAK,EAAE,OAAO,EACvB,IAAI,SAAqB;CAM5B;AASD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CA2D/D;AAED,yFAAyF;AACzF,eAAO,MAAM,eAAe;;;EAG1B,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Provenance class as a discriminated union — instrument contract item 2.2.
3
+ *
4
+ * Factory shim four: Record, Derivation, Assertion, Absence.
5
+ * Model (19) adds Observation and Synthesis. Attention and Judgment are
6
+ * reserved and are not constructible here.
7
+ */
8
+ import { parseAbsenceVerdict } from "../absence/absence-verdict.js";
9
+ import { parseDerivesFrom } from "../derivation/derivation.js";
10
+ export const PROVENANCE_CLASSES = [
11
+ "Record",
12
+ "Derivation",
13
+ "Assertion",
14
+ "Absence",
15
+ "Observation",
16
+ "Synthesis",
17
+ ];
18
+ export class ProvenanceParseError extends Error {
19
+ input;
20
+ code;
21
+ constructor(message, input, code = "PROVENANCE_FIELD") {
22
+ super(message);
23
+ this.input = input;
24
+ this.name = "ProvenanceParseError";
25
+ this.code = code;
26
+ }
27
+ }
28
+ function asRecord(input) {
29
+ if (!input || typeof input !== "object") {
30
+ throw new ProvenanceParseError("provenance class required", input, "PROVENANCE_REQUIRED");
31
+ }
32
+ return input;
33
+ }
34
+ export function parseProvenance(input) {
35
+ const row = asRecord(input);
36
+ const cls = row.class;
37
+ if (cls === "Record") {
38
+ if (row.derivesFrom != null) {
39
+ throw new ProvenanceParseError("Record must not carry derivesFrom", input, "DERIVES_FROM_ON_RECORD");
40
+ }
41
+ if (typeof row.sourceId !== "string" || row.sourceId.length === 0) {
42
+ throw new ProvenanceParseError("Record requires sourceId", input);
43
+ }
44
+ if (typeof row.fetchRef !== "string" || row.fetchRef.length === 0) {
45
+ throw new ProvenanceParseError("Record requires fetchRef", input);
46
+ }
47
+ return { class: "Record", sourceId: row.sourceId, fetchRef: row.fetchRef };
48
+ }
49
+ if (cls === "Derivation") {
50
+ if (typeof row.formula !== "string" || row.formula.length === 0) {
51
+ throw new ProvenanceParseError("Derivation requires formula", input);
52
+ }
53
+ if (!Array.isArray(row.inputs)) {
54
+ throw new ProvenanceParseError("Derivation requires inputs", input);
55
+ }
56
+ return {
57
+ class: "Derivation",
58
+ formula: row.formula,
59
+ inputs: row.inputs.map(String),
60
+ derivesFrom: parseDerivesFrom(row.derivesFrom),
61
+ };
62
+ }
63
+ if (cls === "Assertion") {
64
+ if (typeof row.asserter !== "string" || row.asserter.length === 0) {
65
+ throw new ProvenanceParseError("Assertion requires asserter", input);
66
+ }
67
+ return { class: "Assertion", asserter: row.asserter };
68
+ }
69
+ if (cls === "Absence") {
70
+ return { class: "Absence", verdict: parseAbsenceVerdict(row) };
71
+ }
72
+ if (cls === "Observation") {
73
+ if (typeof row.measurement !== "string" || row.measurement.length === 0) {
74
+ throw new ProvenanceParseError("Observation requires measurement", input);
75
+ }
76
+ return { class: "Observation", measurement: row.measurement };
77
+ }
78
+ if (cls === "Synthesis") {
79
+ if (!Array.isArray(row.citations) || row.citations.length === 0) {
80
+ throw new ProvenanceParseError("Synthesis requires citations", input);
81
+ }
82
+ return { class: "Synthesis", citations: row.citations.map(String) };
83
+ }
84
+ throw new ProvenanceParseError(`unknown provenance class ${String(cls)}`, input, "PROVENANCE_CLASS");
85
+ }
86
+ /** Runtime export so the Factory shim check observes `ProvenanceClass` on the module. */
87
+ export const ProvenanceClass = Object.freeze({
88
+ names: PROVENANCE_CLASSES,
89
+ parse: parseProvenance,
90
+ });
91
+ //# sourceMappingURL=provenance-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance-class.js","sourceRoot":"","sources":["../../src/provenance/provenance-class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { FLOOD_ZONE_SELECTORS, SELECTOR_KINDS, SelectorParseError, SelectorPredicate, match, parseSelector, } from "./selector-predicate.js";
2
+ export type { And, Composition, Equality, Or, Range, SelectorHandlers, SelectorKind, SetMember, SpatialContains, } from "./selector-predicate.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,GAAG,EACH,WAAW,EACX,QAAQ,EACR,EAAE,EACF,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,eAAe,GAChB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { FLOOD_ZONE_SELECTORS, SELECTOR_KINDS, SelectorParseError, SelectorPredicate, match, parseSelector, } from "./selector-predicate.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,aAAa,GACd,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Selector predicate — instrument contract item 2.11.
3
+ *
4
+ * Closed discriminated union: spatial containment, set membership,
5
+ * equality, range, and composition. `match` is exhaustive.
6
+ */
7
+ export type SpatialContains = {
8
+ readonly kind: "spatial-contains";
9
+ readonly geom: unknown;
10
+ };
11
+ export type SetMember = {
12
+ readonly kind: "set-member";
13
+ readonly set: readonly unknown[];
14
+ };
15
+ export type Equality = {
16
+ readonly kind: "eq";
17
+ readonly field: string;
18
+ readonly value: unknown;
19
+ };
20
+ export type Range = {
21
+ readonly kind: "range";
22
+ readonly field: string;
23
+ readonly min: unknown;
24
+ readonly max: unknown;
25
+ };
26
+ export type And = {
27
+ readonly kind: "and";
28
+ readonly clauses: readonly SelectorPredicate[];
29
+ };
30
+ export type Or = {
31
+ readonly kind: "or";
32
+ readonly clauses: readonly SelectorPredicate[];
33
+ };
34
+ export type Composition = And | Or;
35
+ export type SelectorPredicate = SpatialContains | SetMember | Equality | Range | And | Or;
36
+ export declare const SELECTOR_KINDS: readonly ["spatial-contains", "set-member", "eq", "range", "and", "or"];
37
+ export type SelectorKind = (typeof SELECTOR_KINDS)[number];
38
+ export type SelectorHandlers<T> = {
39
+ [K in SelectorPredicate["kind"]]: (pred: Extract<SelectorPredicate, {
40
+ kind: K;
41
+ }>) => T;
42
+ };
43
+ export declare class SelectorParseError extends Error {
44
+ readonly input: unknown;
45
+ readonly code: string;
46
+ constructor(message: string, input: unknown, code?: string);
47
+ }
48
+ export declare function parseSelector(input: unknown): SelectorPredicate;
49
+ export declare function match<T>(pred: SelectorPredicate, handlers: SelectorHandlers<T>): T;
50
+ /** Factory flood selectors from F-16/F-18 close item 8. */
51
+ export declare const FLOOD_ZONE_SELECTORS: {
52
+ readonly A: {
53
+ readonly kind: "eq";
54
+ readonly field: "fld_zone";
55
+ readonly value: "A";
56
+ };
57
+ readonly AE: {
58
+ readonly kind: "eq";
59
+ readonly field: "fld_zone";
60
+ readonly value: "AE";
61
+ };
62
+ readonly AO: {
63
+ readonly kind: "eq";
64
+ readonly field: "fld_zone";
65
+ readonly value: "AO";
66
+ };
67
+ readonly X: {
68
+ readonly kind: "eq";
69
+ readonly field: "fld_zone";
70
+ readonly value: "X";
71
+ };
72
+ };
73
+ /** Runtime export so the Factory shim check observes `SelectorPredicate` on the module. */
74
+ export declare const SelectorPredicate: Readonly<{
75
+ kinds: readonly ["spatial-contains", "set-member", "eq", "range", "and", "or"];
76
+ parse: typeof parseSelector;
77
+ match: typeof match;
78
+ floodZones: {
79
+ readonly A: {
80
+ readonly kind: "eq";
81
+ readonly field: "fld_zone";
82
+ readonly value: "A";
83
+ };
84
+ readonly AE: {
85
+ readonly kind: "eq";
86
+ readonly field: "fld_zone";
87
+ readonly value: "AE";
88
+ };
89
+ readonly AO: {
90
+ readonly kind: "eq";
91
+ readonly field: "fld_zone";
92
+ readonly value: "AO";
93
+ };
94
+ readonly X: {
95
+ readonly kind: "eq";
96
+ readonly field: "fld_zone";
97
+ readonly value: "X";
98
+ };
99
+ };
100
+ }>;
101
+ //# sourceMappingURL=selector-predicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-predicate.d.ts","sourceRoot":"","sources":["../../src/selector/selector-predicate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,EAAE,GAAG;IACf,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,EAAE,CAAC;AAEnC,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,SAAS,GACT,QAAQ,GACR,KAAK,GACL,GAAG,GACH,EAAE,CAAC;AAEP,eAAO,MAAM,cAAc,yEAOjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAChC,IAAI,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,KAC1C,CAAC;CACP,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,KAAK;IAKzC,QAAQ,CAAC,KAAK,EAAE,OAAO;IAJzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGpB,OAAO,EAAE,MAAM,EACN,KAAK,EAAE,OAAO,EACvB,IAAI,SAAmB;CAM1B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAoD/D;AAED,wBAAgB,KAAK,CAAC,CAAC,EACrB,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC5B,CAAC,CAuBH;AAED,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;CAK6B,CAAC;AAE/D,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;EAK5B,CAAC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Selector predicate — instrument contract item 2.11.
3
+ *
4
+ * Closed discriminated union: spatial containment, set membership,
5
+ * equality, range, and composition. `match` is exhaustive.
6
+ */
7
+ export const SELECTOR_KINDS = [
8
+ "spatial-contains",
9
+ "set-member",
10
+ "eq",
11
+ "range",
12
+ "and",
13
+ "or",
14
+ ];
15
+ export class SelectorParseError extends Error {
16
+ input;
17
+ code;
18
+ constructor(message, input, code = "SELECTOR_FIELD") {
19
+ super(message);
20
+ this.input = input;
21
+ this.name = "SelectorParseError";
22
+ this.code = code;
23
+ }
24
+ }
25
+ export function parseSelector(input) {
26
+ if (!input || typeof input !== "object") {
27
+ throw new SelectorParseError("selector predicate is not a closed-union kind", input, "SELECTOR_KIND");
28
+ }
29
+ const pred = input;
30
+ const kind = pred.kind;
31
+ if (kind === "spatial-contains") {
32
+ if (pred.geom == null) {
33
+ throw new SelectorParseError("spatial-contains requires geom", input);
34
+ }
35
+ return { kind: "spatial-contains", geom: pred.geom };
36
+ }
37
+ if (kind === "set-member") {
38
+ if (!Array.isArray(pred.set)) {
39
+ throw new SelectorParseError("set-member requires set", input);
40
+ }
41
+ return { kind: "set-member", set: pred.set };
42
+ }
43
+ if (kind === "eq") {
44
+ if (pred.field == null || pred.value === undefined) {
45
+ throw new SelectorParseError("eq requires field and value", input);
46
+ }
47
+ return { kind: "eq", field: String(pred.field), value: pred.value };
48
+ }
49
+ if (kind === "range") {
50
+ if (pred.field == null || pred.min === undefined || pred.max === undefined) {
51
+ throw new SelectorParseError("range requires field, min, max", input);
52
+ }
53
+ return {
54
+ kind: "range",
55
+ field: String(pred.field),
56
+ min: pred.min,
57
+ max: pred.max,
58
+ };
59
+ }
60
+ if (kind === "and" || kind === "or") {
61
+ if (!Array.isArray(pred.clauses)) {
62
+ throw new SelectorParseError(`${kind} requires clauses`, input);
63
+ }
64
+ return kind === "and"
65
+ ? { kind: "and", clauses: pred.clauses.map((c) => parseSelector(c)) }
66
+ : { kind: "or", clauses: pred.clauses.map((c) => parseSelector(c)) };
67
+ }
68
+ throw new SelectorParseError("selector predicate is not a closed-union kind", input, "SELECTOR_KIND");
69
+ }
70
+ export function match(pred, handlers) {
71
+ switch (pred.kind) {
72
+ case "spatial-contains":
73
+ return handlers["spatial-contains"](pred);
74
+ case "set-member":
75
+ return handlers["set-member"](pred);
76
+ case "eq":
77
+ return handlers.eq(pred);
78
+ case "range":
79
+ return handlers.range(pred);
80
+ case "and":
81
+ return handlers.and(pred);
82
+ case "or":
83
+ return handlers.or(pred);
84
+ default: {
85
+ const _exhaustive = pred;
86
+ throw new SelectorParseError(`unhandled selector kind ${String(_exhaustive)}`, pred, "SELECTOR_KIND");
87
+ }
88
+ }
89
+ }
90
+ /** Factory flood selectors from F-16/F-18 close item 8. */
91
+ export const FLOOD_ZONE_SELECTORS = {
92
+ A: { kind: "eq", field: "fld_zone", value: "A" },
93
+ AE: { kind: "eq", field: "fld_zone", value: "AE" },
94
+ AO: { kind: "eq", field: "fld_zone", value: "AO" },
95
+ X: { kind: "eq", field: "fld_zone", value: "X" },
96
+ };
97
+ /** Runtime export so the Factory shim check observes `SelectorPredicate` on the module. */
98
+ export const SelectorPredicate = Object.freeze({
99
+ kinds: SELECTOR_KINDS,
100
+ parse: parseSelector,
101
+ match,
102
+ floodZones: FLOOD_ZONE_SELECTORS,
103
+ });
104
+ //# sourceMappingURL=selector-predicate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-predicate.js","sourceRoot":"","sources":["../../src/selector/selector-predicate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empressaio/atom-contract",
3
- "version": "1.22.0",
3
+ "version": "1.23.0",
4
4
  "description": "The typed-data substrate every Empressa atom satisfies: identity, context interface, composition declaration, and history anchoring. Peer to the Hauska SDK (`@hauska-sdk/*`); consumed directly by every product surface and MCP server.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -50,6 +50,10 @@
50
50
  "types": "./dist/property/index.d.ts",
51
51
  "import": "./dist/property/index.js"
52
52
  },
53
+ "./identity": {
54
+ "types": "./dist/identity/index.d.ts",
55
+ "import": "./dist/identity/index.js"
56
+ },
53
57
  "./package.json": "./package.json"
54
58
  },
55
59
  "files": [