@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.
- package/CHANGELOG.md +21 -0
- package/dist/absence/absence-verdict.d.ts +32 -0
- package/dist/absence/absence-verdict.d.ts.map +1 -0
- package/dist/absence/absence-verdict.js +55 -0
- package/dist/absence/absence-verdict.js.map +1 -0
- package/dist/absence/index.d.ts +3 -0
- package/dist/absence/index.d.ts.map +1 -0
- package/dist/absence/index.js +2 -0
- package/dist/absence/index.js.map +1 -0
- package/dist/access/access-pair.d.ts +29 -0
- package/dist/access/access-pair.d.ts.map +1 -0
- package/dist/access/access-pair.js +106 -0
- package/dist/access/access-pair.js.map +1 -0
- package/dist/access/index.d.ts +3 -0
- package/dist/access/index.d.ts.map +1 -0
- package/dist/access/index.js +2 -0
- package/dist/access/index.js.map +1 -0
- package/dist/conformance/index.d.ts +1 -0
- package/dist/conformance/index.d.ts.map +1 -1
- package/dist/conformance/index.js +1 -0
- package/dist/conformance/index.js.map +1 -1
- package/dist/conformance/track2-absence.d.ts +8 -0
- package/dist/conformance/track2-absence.d.ts.map +1 -0
- package/dist/conformance/track2-absence.js +19 -0
- package/dist/conformance/track2-absence.js.map +1 -0
- package/dist/conformance/track2-access.d.ts +6 -0
- package/dist/conformance/track2-access.d.ts.map +1 -0
- package/dist/conformance/track2-access.js +10 -0
- package/dist/conformance/track2-access.js.map +1 -0
- package/dist/conformance/track2-alias.d.ts +7 -0
- package/dist/conformance/track2-alias.d.ts.map +1 -0
- package/dist/conformance/track2-alias.js +21 -0
- package/dist/conformance/track2-alias.js.map +1 -0
- package/dist/conformance/track2-derivation.d.ts +6 -0
- package/dist/conformance/track2-derivation.d.ts.map +1 -0
- package/dist/conformance/track2-derivation.js +15 -0
- package/dist/conformance/track2-derivation.js.map +1 -0
- package/dist/conformance/track2-node-id.d.ts +7 -0
- package/dist/conformance/track2-node-id.d.ts.map +1 -0
- package/dist/conformance/track2-node-id.js +9 -0
- package/dist/conformance/track2-node-id.js.map +1 -0
- package/dist/conformance/track2-provenance.d.ts +11 -0
- package/dist/conformance/track2-provenance.d.ts.map +1 -0
- package/dist/conformance/track2-provenance.js +39 -0
- package/dist/conformance/track2-provenance.js.map +1 -0
- package/dist/conformance/track2-selector.d.ts +12 -0
- package/dist/conformance/track2-selector.d.ts.map +1 -0
- package/dist/conformance/track2-selector.js +12 -0
- package/dist/conformance/track2-selector.js.map +1 -0
- package/dist/conformance/track2-supersession.d.ts +6 -0
- package/dist/conformance/track2-supersession.d.ts.map +1 -0
- package/dist/conformance/track2-supersession.js +12 -0
- package/dist/conformance/track2-supersession.js.map +1 -0
- package/dist/derivation/derivation.d.ts +30 -0
- package/dist/derivation/derivation.d.ts.map +1 -0
- package/dist/derivation/derivation.js +61 -0
- package/dist/derivation/derivation.js.map +1 -0
- package/dist/derivation/index.d.ts +3 -0
- package/dist/derivation/index.d.ts.map +1 -0
- package/dist/derivation/index.js +2 -0
- package/dist/derivation/index.js.map +1 -0
- package/dist/identity/alias.d.ts +53 -0
- package/dist/identity/alias.d.ts.map +1 -0
- package/dist/identity/alias.js +99 -0
- package/dist/identity/alias.js.map +1 -0
- package/dist/identity/index.d.ts +7 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +7 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/node-id.d.ts +56 -0
- package/dist/identity/node-id.d.ts.map +1 -0
- package/dist/identity/node-id.js +82 -0
- package/dist/identity/node-id.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lineage/index.d.ts +3 -0
- package/dist/lineage/index.d.ts.map +1 -0
- package/dist/lineage/index.js +2 -0
- package/dist/lineage/index.js.map +1 -0
- package/dist/lineage/supersession.d.ts +34 -0
- package/dist/lineage/supersession.d.ts.map +1 -0
- package/dist/lineage/supersession.js +48 -0
- package/dist/lineage/supersession.js.map +1 -0
- package/dist/property/flood-hazard-fact.d.ts +4 -4
- package/dist/provenance/index.d.ts +3 -0
- package/dist/provenance/index.d.ts.map +1 -0
- package/dist/provenance/index.js +2 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/provenance/provenance-class.d.ts +52 -0
- package/dist/provenance/provenance-class.d.ts.map +1 -0
- package/dist/provenance/provenance-class.js +91 -0
- package/dist/provenance/provenance-class.js.map +1 -0
- package/dist/selector/index.d.ts +3 -0
- package/dist/selector/index.d.ts.map +1 -0
- package/dist/selector/index.js +2 -0
- package/dist/selector/index.js.map +1 -0
- package/dist/selector/selector-predicate.d.ts +101 -0
- package/dist/selector/selector-predicate.d.ts.map +1 -0
- package/dist/selector/selector-predicate.js +104 -0
- package/dist/selector/selector-predicate.js.map +1 -0
- package/package.json +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@empressaio/atom-contract` (formerly `@hauska/atom-contract`) are documented here.
|
|
4
4
|
|
|
5
|
+
## [1.23.0] - 2026-08-27
|
|
6
|
+
|
|
7
|
+
Additive minor — Track 2.1 branded `NodeId` (F-15). Constructible only by
|
|
8
|
+
`mint()` or validating `parse()`. A raw string does not type-check as a
|
|
9
|
+
node id. `parse("48021:34137")` refuses as a node id; that grammar is an
|
|
10
|
+
alias key only.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`NodeId`** branded type on `.` and `./identity`.
|
|
15
|
+
- `mint`, `parse`, `isNodeId`, `isCountyPropAliasKey`, `bindNodeIdForWrite`,
|
|
16
|
+
`NODE_ID_PATTERN`, `NodeIdParseError`.
|
|
17
|
+
- Conformance fixture `src/conformance/track2-node-id.ts`.
|
|
18
|
+
- Type-level test: a string literal is not `NodeId`.
|
|
19
|
+
|
|
20
|
+
### Explicitly NOT in 1.23.0
|
|
21
|
+
|
|
22
|
+
- AliasAtom, lineage edges, provenance, derivation, absence, supersession,
|
|
23
|
+
selector, two-field access (later F-15 minors).
|
|
24
|
+
- Merge of PR #22 (accessPolicy CHECK emitter stays on that PR).
|
|
25
|
+
|
|
5
26
|
## [1.15.0] - 2026-08-09
|
|
6
27
|
|
|
7
28
|
Additive minor — first-class typed absence for `buildable-envelope`, closing the
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Absence verdicts — instrument contract item 2.4.
|
|
3
|
+
*
|
|
4
|
+
* A bare verdict string does not compile. Each verdict carries its
|
|
5
|
+
* required reference fields.
|
|
6
|
+
*/
|
|
7
|
+
export type AbsentVerified = {
|
|
8
|
+
readonly verdict: "absent-verified";
|
|
9
|
+
readonly sourceId: string;
|
|
10
|
+
readonly responseRef: string;
|
|
11
|
+
readonly sourceResponded: true;
|
|
12
|
+
};
|
|
13
|
+
export type LookupFailed = {
|
|
14
|
+
readonly verdict: "lookup-failed";
|
|
15
|
+
readonly failureRef: string;
|
|
16
|
+
};
|
|
17
|
+
export type NotApplicable = {
|
|
18
|
+
readonly verdict: "not-applicable";
|
|
19
|
+
readonly excludingRule: string;
|
|
20
|
+
};
|
|
21
|
+
export type AbsenceVerdict = AbsentVerified | LookupFailed | NotApplicable;
|
|
22
|
+
export declare class AbsenceParseError extends Error {
|
|
23
|
+
readonly input: unknown;
|
|
24
|
+
readonly code: "ABSENCE_VERDICT";
|
|
25
|
+
constructor(message: string, input: unknown);
|
|
26
|
+
}
|
|
27
|
+
export declare function parseAbsenceVerdict(input: unknown): AbsenceVerdict;
|
|
28
|
+
/** Runtime export so the Factory shim check observes `AbsenceVerdict` on the module. */
|
|
29
|
+
export declare const AbsenceVerdict: Readonly<{
|
|
30
|
+
parse: typeof parseAbsenceVerdict;
|
|
31
|
+
}>;
|
|
32
|
+
//# sourceMappingURL=absence-verdict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"absence-verdict.d.ts","sourceRoot":"","sources":["../../src/absence/absence-verdict.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC;AAE3E,qBAAa,iBAAkB,SAAQ,KAAK;IAKxC,QAAQ,CAAC,KAAK,EAAE,OAAO;IAJzB,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAU;gBAGzC,OAAO,EAAE,MAAM,EACN,KAAK,EAAE,OAAO;CAK1B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAuClE;AAED,wFAAwF;AACxF,eAAO,MAAM,cAAc;;EAEzB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Absence verdicts — instrument contract item 2.4.
|
|
3
|
+
*
|
|
4
|
+
* A bare verdict string does not compile. Each verdict carries its
|
|
5
|
+
* required reference fields.
|
|
6
|
+
*/
|
|
7
|
+
export class AbsenceParseError extends Error {
|
|
8
|
+
input;
|
|
9
|
+
code = "ABSENCE_VERDICT";
|
|
10
|
+
constructor(message, input) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.input = input;
|
|
13
|
+
this.name = "AbsenceParseError";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function parseAbsenceVerdict(input) {
|
|
17
|
+
if (!input || typeof input !== "object") {
|
|
18
|
+
throw new AbsenceParseError("absence verdict required", input);
|
|
19
|
+
}
|
|
20
|
+
const row = input;
|
|
21
|
+
const verdict = row.verdict;
|
|
22
|
+
if (verdict === "absent-verified") {
|
|
23
|
+
if (row.sourceResponded !== true ||
|
|
24
|
+
typeof row.sourceId !== "string" ||
|
|
25
|
+
row.sourceId.length === 0 ||
|
|
26
|
+
typeof row.responseRef !== "string" ||
|
|
27
|
+
row.responseRef.length === 0) {
|
|
28
|
+
throw new AbsenceParseError("absent-verified requires a source that responded (sourceId plus responseRef)", input);
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
verdict: "absent-verified",
|
|
32
|
+
sourceId: row.sourceId,
|
|
33
|
+
responseRef: row.responseRef,
|
|
34
|
+
sourceResponded: true,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (verdict === "lookup-failed") {
|
|
38
|
+
if (typeof row.failureRef !== "string" || row.failureRef.length === 0) {
|
|
39
|
+
throw new AbsenceParseError("lookup-failed requires the failure reference", input);
|
|
40
|
+
}
|
|
41
|
+
return { verdict: "lookup-failed", failureRef: row.failureRef };
|
|
42
|
+
}
|
|
43
|
+
if (verdict === "not-applicable") {
|
|
44
|
+
if (typeof row.excludingRule !== "string" || row.excludingRule.length === 0) {
|
|
45
|
+
throw new AbsenceParseError("not-applicable requires the rule that excludes", input);
|
|
46
|
+
}
|
|
47
|
+
return { verdict: "not-applicable", excludingRule: row.excludingRule };
|
|
48
|
+
}
|
|
49
|
+
throw new AbsenceParseError(`unknown absence verdict ${String(verdict)}`, input);
|
|
50
|
+
}
|
|
51
|
+
/** Runtime export so the Factory shim check observes `AbsenceVerdict` on the module. */
|
|
52
|
+
export const AbsenceVerdict = Object.freeze({
|
|
53
|
+
parse: parseAbsenceVerdict,
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=absence-verdict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"absence-verdict.js","sourceRoot":"","sources":["../../src/absence/absence-verdict.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAK/B;IAJF,IAAI,GAAG,iBAA0B,CAAC;IAE3C,YACE,OAAe,EACN,KAAc;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,UAAK,GAAL,KAAK,CAAS;QAGvB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;QAClC,IACE,GAAG,CAAC,eAAe,KAAK,IAAI;YAC5B,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAChC,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;YACnC,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAC5B,CAAC;YACD,MAAM,IAAI,iBAAiB,CACzB,8EAA8E,EAC9E,KAAK,CACN,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,iBAAiB;YAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,eAAe,EAAE,IAAI;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,iBAAiB,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;QACjC,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,iBAAiB,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC;IACzE,CAAC;IACD,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,mBAAmB;CAC3B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/absence/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,cAAc,EACd,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/absence/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Access as two fields — instrument contract item 2.12.
|
|
3
|
+
*
|
|
4
|
+
* discoverability and entitlement sit alongside the existing AccessPolicy
|
|
5
|
+
* string, which stays exported and mapped until F-10 migrates the column.
|
|
6
|
+
* Neither field is defaulted.
|
|
7
|
+
*/
|
|
8
|
+
import type { AccessPolicy } from "../registration.js";
|
|
9
|
+
export type Discoverability = "catalog-listed" | "unlisted" | "hidden";
|
|
10
|
+
export type Entitlement = "anyone-free" | "anyone-paid" | "named-parties" | "owner-only" | "platform-only";
|
|
11
|
+
export type AccessPair = {
|
|
12
|
+
readonly discoverability: Discoverability;
|
|
13
|
+
readonly entitlement: Entitlement;
|
|
14
|
+
readonly accessPolicy?: AccessPolicy;
|
|
15
|
+
};
|
|
16
|
+
export declare class AccessParseError extends Error {
|
|
17
|
+
readonly input: unknown;
|
|
18
|
+
readonly code: string;
|
|
19
|
+
constructor(message: string, input: unknown, code?: string);
|
|
20
|
+
}
|
|
21
|
+
export declare function parseAccessPair(input: unknown): AccessPair;
|
|
22
|
+
/** Map the surviving ADR-017 string until F-10 migrates the column. */
|
|
23
|
+
export declare function mapAccessPolicy(policy: AccessPolicy): AccessPair;
|
|
24
|
+
/** Runtime export so the Factory shim check observes `AccessPair` on the module. */
|
|
25
|
+
export declare const AccessPair: Readonly<{
|
|
26
|
+
parse: typeof parseAccessPair;
|
|
27
|
+
mapPolicy: typeof mapAccessPolicy;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=access-pair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-pair.d.ts","sourceRoot":"","sources":["../../src/access/access-pair.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvE,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,aAAa,GACb,eAAe,GACf,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,KAAK;IAKvC,QAAQ,CAAC,KAAK,EAAE,OAAO;IAJzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGpB,OAAO,EAAE,MAAM,EACN,KAAK,EAAE,OAAO,EACvB,IAAI,SAAoB;CAM3B;AAgBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAwC1D;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAwChE;AAED,oFAAoF;AACpF,eAAO,MAAM,UAAU;;;EAGrB,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Access as two fields — instrument contract item 2.12.
|
|
3
|
+
*
|
|
4
|
+
* discoverability and entitlement sit alongside the existing AccessPolicy
|
|
5
|
+
* string, which stays exported and mapped until F-10 migrates the column.
|
|
6
|
+
* Neither field is defaulted.
|
|
7
|
+
*/
|
|
8
|
+
export class AccessParseError extends Error {
|
|
9
|
+
input;
|
|
10
|
+
code;
|
|
11
|
+
constructor(message, input, code = "ACCESS_REQUIRED") {
|
|
12
|
+
super(message);
|
|
13
|
+
this.input = input;
|
|
14
|
+
this.name = "AccessParseError";
|
|
15
|
+
this.code = code;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const DISCOVERABILITY = new Set([
|
|
19
|
+
"catalog-listed",
|
|
20
|
+
"unlisted",
|
|
21
|
+
"hidden",
|
|
22
|
+
]);
|
|
23
|
+
const ENTITLEMENT = new Set([
|
|
24
|
+
"anyone-free",
|
|
25
|
+
"anyone-paid",
|
|
26
|
+
"named-parties",
|
|
27
|
+
"owner-only",
|
|
28
|
+
"platform-only",
|
|
29
|
+
]);
|
|
30
|
+
export function parseAccessPair(input) {
|
|
31
|
+
if (!input || typeof input !== "object") {
|
|
32
|
+
throw new AccessParseError("access is two fields, never defaulted", input);
|
|
33
|
+
}
|
|
34
|
+
const row = input;
|
|
35
|
+
const hasDiscoverability = row.discoverability != null;
|
|
36
|
+
const hasEntitlement = row.entitlement != null;
|
|
37
|
+
if (typeof row.accessPolicy === "string" && !hasDiscoverability && !hasEntitlement) {
|
|
38
|
+
throw new AccessParseError("single accessPolicy string is not two-field access", input, "ACCESS_SINGLE_FIELD");
|
|
39
|
+
}
|
|
40
|
+
if (hasDiscoverability !== hasEntitlement) {
|
|
41
|
+
throw new AccessParseError("parse refuses an atom carrying one access field without the other", input);
|
|
42
|
+
}
|
|
43
|
+
if (!hasDiscoverability || !hasEntitlement) {
|
|
44
|
+
throw new AccessParseError("access requires discoverability and entitlement", input);
|
|
45
|
+
}
|
|
46
|
+
if (typeof row.discoverability !== "string" ||
|
|
47
|
+
!DISCOVERABILITY.has(row.discoverability)) {
|
|
48
|
+
throw new AccessParseError("unknown discoverability", input);
|
|
49
|
+
}
|
|
50
|
+
if (typeof row.entitlement !== "string" || !ENTITLEMENT.has(row.entitlement)) {
|
|
51
|
+
throw new AccessParseError("unknown entitlement", input);
|
|
52
|
+
}
|
|
53
|
+
const pair = {
|
|
54
|
+
discoverability: row.discoverability,
|
|
55
|
+
entitlement: row.entitlement,
|
|
56
|
+
};
|
|
57
|
+
if (row.accessPolicy != null) {
|
|
58
|
+
return { ...pair, accessPolicy: row.accessPolicy };
|
|
59
|
+
}
|
|
60
|
+
return pair;
|
|
61
|
+
}
|
|
62
|
+
/** Map the surviving ADR-017 string until F-10 migrates the column. */
|
|
63
|
+
export function mapAccessPolicy(policy) {
|
|
64
|
+
switch (policy) {
|
|
65
|
+
case "public-free":
|
|
66
|
+
return {
|
|
67
|
+
discoverability: "catalog-listed",
|
|
68
|
+
entitlement: "anyone-free",
|
|
69
|
+
accessPolicy: policy,
|
|
70
|
+
};
|
|
71
|
+
case "public-paid":
|
|
72
|
+
return {
|
|
73
|
+
discoverability: "catalog-listed",
|
|
74
|
+
entitlement: "anyone-paid",
|
|
75
|
+
accessPolicy: policy,
|
|
76
|
+
};
|
|
77
|
+
case "platform-internal":
|
|
78
|
+
return {
|
|
79
|
+
discoverability: "hidden",
|
|
80
|
+
entitlement: "platform-only",
|
|
81
|
+
accessPolicy: policy,
|
|
82
|
+
};
|
|
83
|
+
case "tenant-private":
|
|
84
|
+
return {
|
|
85
|
+
discoverability: "unlisted",
|
|
86
|
+
entitlement: "owner-only",
|
|
87
|
+
accessPolicy: policy,
|
|
88
|
+
};
|
|
89
|
+
case "tenant-shared":
|
|
90
|
+
return {
|
|
91
|
+
discoverability: "unlisted",
|
|
92
|
+
entitlement: "named-parties",
|
|
93
|
+
accessPolicy: policy,
|
|
94
|
+
};
|
|
95
|
+
default: {
|
|
96
|
+
const _exhaustive = policy;
|
|
97
|
+
throw new AccessParseError(`unmapped accessPolicy ${String(_exhaustive)}`, policy);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/** Runtime export so the Factory shim check observes `AccessPair` on the module. */
|
|
102
|
+
export const AccessPair = Object.freeze({
|
|
103
|
+
parse: parseAccessPair,
|
|
104
|
+
mapPolicy: mapAccessPolicy,
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=access-pair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-pair.js","sourceRoot":"","sources":["../../src/access/access-pair.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/access/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/access/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC"}
|
|
@@ -8,4 +8,5 @@ export { ATOM_CONFORMANCE_TARGET_VERSION, REASONING_CONFORMANCE_TARGET_VERSION,
|
|
|
8
8
|
export { verifyEventChain, type VerifyChainError, type VerifyChainErrorKind, type VerifyChainResult, } from "./verify-chain.js";
|
|
9
9
|
export { validateAtomConformance, type AtomConformanceError, type AtomConformanceErrorCode, type AtomConformanceTarget, type AtomConformanceValidationResult, type ValidateAtomConformanceInput, } from "./validate.js";
|
|
10
10
|
export { buildValidSignedEventChain, SAMPLE_APP_CONFORMANCE_TARGET, SAMPLE_DATA_CONFORMANCE_EVENTS, SAMPLE_DATA_CONFORMANCE_TARGET, } from "./fixtures.js";
|
|
11
|
+
export { TRACK2_NODE_ID_FIXTURE, track2NodeIdRoundTrip, } from "./track2-node-id.js";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,GAClC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,4BAA4B,EACjC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,4BAA4B,GAClC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC"}
|
|
@@ -8,4 +8,5 @@ export { ATOM_CONFORMANCE_TARGET_VERSION, REASONING_CONFORMANCE_TARGET_VERSION,
|
|
|
8
8
|
export { verifyEventChain, } from "./verify-chain.js";
|
|
9
9
|
export { validateAtomConformance, } from "./validate.js";
|
|
10
10
|
export { buildValidSignedEventChain, SAMPLE_APP_CONFORMANCE_TARGET, SAMPLE_DATA_CONFORMANCE_EVENTS, SAMPLE_DATA_CONFORMANCE_TARGET, } from "./fixtures.js";
|
|
11
|
+
export { TRACK2_NODE_ID_FIXTURE, track2NodeIdRoundTrip, } from "./track2-node-id.js";
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,GAMxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conformance/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,GAIjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,uBAAuB,GAMxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixtures — Track 2.4 absence verdicts.
|
|
3
|
+
*/
|
|
4
|
+
import { type AbsenceVerdict } from "../absence/absence-verdict.js";
|
|
5
|
+
export declare const TRACK2_ABSENT_VERIFIED: AbsenceVerdict;
|
|
6
|
+
export declare const TRACK2_LOOKUP_FAILED: AbsenceVerdict;
|
|
7
|
+
export declare const TRACK2_NOT_APPLICABLE: AbsenceVerdict;
|
|
8
|
+
//# sourceMappingURL=track2-absence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-absence.d.ts","sourceRoot":"","sources":["../../src/conformance/track2-absence.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,sBAAsB,EAAE,cAKnC,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,cAGjC,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,cAGlC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixtures — Track 2.4 absence verdicts.
|
|
3
|
+
*/
|
|
4
|
+
import { parseAbsenceVerdict, } from "../absence/absence-verdict.js";
|
|
5
|
+
export const TRACK2_ABSENT_VERIFIED = parseAbsenceVerdict({
|
|
6
|
+
verdict: "absent-verified",
|
|
7
|
+
sourceId: "fema-nfhl",
|
|
8
|
+
responseRef: "https://hazards.fema.gov/nfhl/48021",
|
|
9
|
+
sourceResponded: true,
|
|
10
|
+
});
|
|
11
|
+
export const TRACK2_LOOKUP_FAILED = parseAbsenceVerdict({
|
|
12
|
+
verdict: "lookup-failed",
|
|
13
|
+
failureRef: "http-403:williamson-tylerhost",
|
|
14
|
+
});
|
|
15
|
+
export const TRACK2_NOT_APPLICABLE = parseAbsenceVerdict({
|
|
16
|
+
verdict: "not-applicable",
|
|
17
|
+
excludingRule: "shape:parcel has no flood layer",
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=track2-absence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-absence.js","sourceRoot":"","sources":["../../src/conformance/track2-absence.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,mBAAmB,GAEpB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,MAAM,sBAAsB,GAAmB,mBAAmB,CAAC;IACxE,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,qCAAqC;IAClD,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAmB,mBAAmB,CAAC;IACtE,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,+BAA+B;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAmB,mBAAmB,CAAC;IACvE,OAAO,EAAE,gBAAgB;IACzB,aAAa,EAAE,iCAAiC;CACjD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-access.d.ts","sourceRoot":"","sources":["../../src/conformance/track2-access.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE5E,eAAO,MAAM,qBAAqB,EAAE,UAIlC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixture — Track 2.12 two-field access.
|
|
3
|
+
*/
|
|
4
|
+
import { parseAccessPair } from "../access/access-pair.js";
|
|
5
|
+
export const TRACK2_ACCESS_FIXTURE = parseAccessPair({
|
|
6
|
+
discoverability: "catalog-listed",
|
|
7
|
+
entitlement: "anyone-free",
|
|
8
|
+
accessPolicy: "public-free",
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=track2-access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-access.js","sourceRoot":"","sources":["../../src/conformance/track2-access.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAmB,MAAM,0BAA0B,CAAC;AAE5E,MAAM,CAAC,MAAM,qBAAqB,GAAe,eAAe,CAAC;IAC/D,eAAe,EAAE,gBAAgB;IACjC,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa;CAC5B,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixture — Track 2.10 alias atom and lineage edges.
|
|
3
|
+
*/
|
|
4
|
+
import { type AliasAtom, type LineageEdge } from "../identity/alias.js";
|
|
5
|
+
export declare const TRACK2_ALIAS_FIXTURE: AliasAtom;
|
|
6
|
+
export declare const TRACK2_LINEAGE_MERGED: LineageEdge;
|
|
7
|
+
//# sourceMappingURL=track2-alias.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-alias.d.ts","sourceRoot":"","sources":["../../src/conformance/track2-alias.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAI9B,eAAO,MAAM,oBAAoB,EAAE,SAQjC,CAAC;AAEH,eAAO,MAAM,qBAAqB,EAAE,WAIlC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixture — Track 2.10 alias atom and lineage edges.
|
|
3
|
+
*/
|
|
4
|
+
import { parse } from "../identity/node-id.js";
|
|
5
|
+
import { parseAliasAtom, parseLineageEdge, } from "../identity/alias.js";
|
|
6
|
+
const nodeId = parse("nid_0123456789abcdef0123456789abcdef");
|
|
7
|
+
export const TRACK2_ALIAS_FIXTURE = parseAliasAtom({
|
|
8
|
+
entityType: "identity.alias",
|
|
9
|
+
aliasKey: "48021:34137",
|
|
10
|
+
nodeId,
|
|
11
|
+
authority: "bastrop-cad",
|
|
12
|
+
validFrom: "2026-01-01T00:00:00.000Z",
|
|
13
|
+
validTo: null,
|
|
14
|
+
knowledgeAt: "2026-08-27T00:00:00.000Z",
|
|
15
|
+
});
|
|
16
|
+
export const TRACK2_LINEAGE_MERGED = parseLineageEdge({
|
|
17
|
+
kind: "mergedInto",
|
|
18
|
+
from: nodeId,
|
|
19
|
+
to: parse("nid_abcdef0123456789abcdef0123456789"),
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=track2-alias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-alias.js","sourceRoot":"","sources":["../../src/conformance/track2-alias.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,gBAAgB,GAGjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,GAAG,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAc,cAAc,CAAC;IAC5D,UAAU,EAAE,gBAAgB;IAC5B,QAAQ,EAAE,aAAa;IACvB,MAAM;IACN,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,0BAA0B;IACrC,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,0BAA0B;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAgB,gBAAgB,CAAC;IACjE,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,KAAK,CAAC,sCAAsC,CAAC;CAClD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-derivation.d.ts","sourceRoot":"","sources":["../../src/conformance/track2-derivation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE/E,eAAO,MAAM,yBAAyB,EAAE,UAStC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixture — Track 2.3 Derivation / derivesFrom.
|
|
3
|
+
*/
|
|
4
|
+
import { parseDerivation } from "../derivation/derivation.js";
|
|
5
|
+
export const TRACK2_DERIVATION_FIXTURE = parseDerivation({
|
|
6
|
+
class: "Derivation",
|
|
7
|
+
formula: "materialise(selector, storeVersion, method)",
|
|
8
|
+
inputs: ["flood-hazard-selector:AE"],
|
|
9
|
+
derivesFrom: {
|
|
10
|
+
selectorAtomId: "1fcfca7db0dc4f1bd8a4f99f18a0d2587c66ee3d45799baba34d2a50efc676c4",
|
|
11
|
+
storeVersion: "NFHL_48_20260101",
|
|
12
|
+
method: "closed-union",
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=track2-derivation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-derivation.js","sourceRoot":"","sources":["../../src/conformance/track2-derivation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAmB,MAAM,6BAA6B,CAAC;AAE/E,MAAM,CAAC,MAAM,yBAAyB,GAAe,eAAe,CAAC;IACnE,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,6CAA6C;IACtD,MAAM,EAAE,CAAC,0BAA0B,CAAC;IACpC,WAAW,EAAE;QACX,cAAc,EAAE,kEAAkE;QAClF,YAAY,EAAE,kBAAkB;QAChC,MAAM,EAAE,cAAc;KACvB;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixture — Track 2.1 branded NodeId.
|
|
3
|
+
*/
|
|
4
|
+
import { type NodeId } from "../identity/node-id.js";
|
|
5
|
+
export declare const TRACK2_NODE_ID_FIXTURE: NodeId;
|
|
6
|
+
export declare function track2NodeIdRoundTrip(): NodeId;
|
|
7
|
+
//# sourceMappingURL=track2-node-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-node-id.d.ts","sourceRoot":"","sources":["../../src/conformance/track2-node-id.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAElE,eAAO,MAAM,sBAAsB,EAAE,MAEpC,CAAC;AAEF,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixture — Track 2.1 branded NodeId.
|
|
3
|
+
*/
|
|
4
|
+
import { mint, parse } from "../identity/node-id.js";
|
|
5
|
+
export const TRACK2_NODE_ID_FIXTURE = parse("nid_0123456789abcdef0123456789abcdef");
|
|
6
|
+
export function track2NodeIdRoundTrip() {
|
|
7
|
+
return parse(String(mint()));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=track2-node-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-node-id.js","sourceRoot":"","sources":["../../src/conformance/track2-node-id.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAC;AAElE,MAAM,CAAC,MAAM,sBAAsB,GAAW,KAAK,CACjD,sCAAsC,CACvC,CAAC;AAEF,MAAM,UAAU,qBAAqB;IACnC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixtures — Track 2.2 provenance classes.
|
|
3
|
+
*/
|
|
4
|
+
import { type ProvenanceClass } from "../provenance/provenance-class.js";
|
|
5
|
+
export declare const TRACK2_PROVENANCE_RECORD: ProvenanceClass;
|
|
6
|
+
export declare const TRACK2_PROVENANCE_DERIVATION: ProvenanceClass;
|
|
7
|
+
export declare const TRACK2_PROVENANCE_ASSERTION: ProvenanceClass;
|
|
8
|
+
export declare const TRACK2_PROVENANCE_ABSENCE: ProvenanceClass;
|
|
9
|
+
export declare const TRACK2_PROVENANCE_OBSERVATION: ProvenanceClass;
|
|
10
|
+
export declare const TRACK2_PROVENANCE_SYNTHESIS: ProvenanceClass;
|
|
11
|
+
//# sourceMappingURL=track2-provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-provenance.d.ts","sourceRoot":"","sources":["../../src/conformance/track2-provenance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAE1F,eAAO,MAAM,wBAAwB,EAAE,eAIrC,CAAC;AAEH,eAAO,MAAM,4BAA4B,EAAE,eASzC,CAAC;AAEH,eAAO,MAAM,2BAA2B,EAAE,eAGxC,CAAC;AAEH,eAAO,MAAM,yBAAyB,EAAE,eAMtC,CAAC;AAEH,eAAO,MAAM,6BAA6B,EAAE,eAG1C,CAAC;AAEH,eAAO,MAAM,2BAA2B,EAAE,eAGxC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixtures — Track 2.2 provenance classes.
|
|
3
|
+
*/
|
|
4
|
+
import { parseProvenance } from "../provenance/provenance-class.js";
|
|
5
|
+
export const TRACK2_PROVENANCE_RECORD = parseProvenance({
|
|
6
|
+
class: "Record",
|
|
7
|
+
sourceId: "bastrop-cad",
|
|
8
|
+
fetchRef: "landing:cad_property:48021:2026",
|
|
9
|
+
});
|
|
10
|
+
export const TRACK2_PROVENANCE_DERIVATION = parseProvenance({
|
|
11
|
+
class: "Derivation",
|
|
12
|
+
formula: "materialise(selector, storeVersion, method)",
|
|
13
|
+
inputs: ["flood-hazard-selector:A"],
|
|
14
|
+
derivesFrom: {
|
|
15
|
+
selectorAtomId: "1fcfca7db0dc4f1bd8a4f99f18a0d2587c66ee3d45799baba34d2a50efc676c4",
|
|
16
|
+
storeVersion: "NFHL_48_20260101",
|
|
17
|
+
method: "closed-union",
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
export const TRACK2_PROVENANCE_ASSERTION = parseProvenance({
|
|
21
|
+
class: "Assertion",
|
|
22
|
+
asserter: "operator:property-seat",
|
|
23
|
+
});
|
|
24
|
+
export const TRACK2_PROVENANCE_ABSENCE = parseProvenance({
|
|
25
|
+
class: "Absence",
|
|
26
|
+
verdict: "absent-verified",
|
|
27
|
+
sourceId: "fema-nfhl",
|
|
28
|
+
responseRef: "https://hazards.fema.gov/nfhl/48021",
|
|
29
|
+
sourceResponded: true,
|
|
30
|
+
});
|
|
31
|
+
export const TRACK2_PROVENANCE_OBSERVATION = parseProvenance({
|
|
32
|
+
class: "Observation",
|
|
33
|
+
measurement: "centroid captured from county GIS",
|
|
34
|
+
});
|
|
35
|
+
export const TRACK2_PROVENANCE_SYNTHESIS = parseProvenance({
|
|
36
|
+
class: "Synthesis",
|
|
37
|
+
citations: ["record:cad", "derivation:flood"],
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=track2-provenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-provenance.js","sourceRoot":"","sources":["../../src/conformance/track2-provenance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAwB,MAAM,mCAAmC,CAAC;AAE1F,MAAM,CAAC,MAAM,wBAAwB,GAAoB,eAAe,CAAC;IACvE,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,iCAAiC;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAoB,eAAe,CAAC;IAC3E,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,6CAA6C;IACtD,MAAM,EAAE,CAAC,yBAAyB,CAAC;IACnC,WAAW,EAAE;QACX,cAAc,EAAE,kEAAkE;QAClF,YAAY,EAAE,kBAAkB;QAChC,MAAM,EAAE,cAAc;KACvB;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAoB,eAAe,CAAC;IAC1E,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,wBAAwB;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAoB,eAAe,CAAC;IACxE,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,qCAAqC;IAClD,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAoB,eAAe,CAAC;IAC5E,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,mCAAmC;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAoB,eAAe,CAAC;IAC1E,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;CAC9C,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixture — Track 2.11 selector predicate, including the
|
|
3
|
+
* Factory flood selectors from F-16/F-18 close item 8.
|
|
4
|
+
*/
|
|
5
|
+
import { type SelectorPredicate } from "../selector/selector-predicate.js";
|
|
6
|
+
export declare const TRACK2_FLOOD_SELECTORS: {
|
|
7
|
+
readonly A: SelectorPredicate;
|
|
8
|
+
readonly AE: SelectorPredicate;
|
|
9
|
+
readonly AO: SelectorPredicate;
|
|
10
|
+
readonly X: SelectorPredicate;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=track2-selector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-selector.d.ts","sourceRoot":"","sources":["../../src/conformance/track2-selector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,mCAAmC,CAAC;AAE3C,eAAO,MAAM,sBAAsB,EAAE;IACnC,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC;CAM/B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixture — Track 2.11 selector predicate, including the
|
|
3
|
+
* Factory flood selectors from F-16/F-18 close item 8.
|
|
4
|
+
*/
|
|
5
|
+
import { FLOOD_ZONE_SELECTORS, parseSelector, } from "../selector/selector-predicate.js";
|
|
6
|
+
export const TRACK2_FLOOD_SELECTORS = {
|
|
7
|
+
A: parseSelector(FLOOD_ZONE_SELECTORS.A),
|
|
8
|
+
AE: parseSelector(FLOOD_ZONE_SELECTORS.AE),
|
|
9
|
+
AO: parseSelector(FLOOD_ZONE_SELECTORS.AO),
|
|
10
|
+
X: parseSelector(FLOOD_ZONE_SELECTORS.X),
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=track2-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-selector.js","sourceRoot":"","sources":["../../src/conformance/track2-selector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,EACpB,aAAa,GAEd,MAAM,mCAAmC,CAAC;AAE3C,MAAM,CAAC,MAAM,sBAAsB,GAK/B;IACF,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACxC,EAAE,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAAE,CAAC;IAC1C,EAAE,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAAE,CAAC;IAC1C,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;CACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"track2-supersession.d.ts","sourceRoot":"","sources":["../../src/conformance/track2-supersession.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,2BAA2B,EAAE,gBAKxC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conformance fixture — Track 2.8 supersession edge.
|
|
3
|
+
*/
|
|
4
|
+
import { parse } from "../identity/node-id.js";
|
|
5
|
+
import { parseSupersessionEdge, } from "../lineage/supersession.js";
|
|
6
|
+
export const TRACK2_SUPERSESSION_FIXTURE = parseSupersessionEdge({
|
|
7
|
+
link_type: "SUPERSEDED_BY",
|
|
8
|
+
from: parse("nid_0123456789abcdef0123456789abcdef"),
|
|
9
|
+
to: parse("nid_abcdef0123456789abcdef0123456789"),
|
|
10
|
+
closedAt: "2026-08-27T15:00:00.000Z",
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=track2-supersession.js.map
|