@empressaio/atom-contract 1.11.0 → 1.12.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility-easement.d.ts","sourceRoot":"","sources":["../../src/property/utility-easement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,EAcL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC/B,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,aAAa,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IACvE,aAAa,EAAE,oBAAoB,CAAC;IACpC,UAAU,EAAE,yBAAyB,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,qBAAqB,CAAC;CACtC;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EhC,CAAC;AAEL,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAC7C,2BAA2B,CAE7B"}
@@ -0,0 +1,81 @@
1
+ import { z } from "zod";
2
+ import { REASONING_CHAIN_OBSERVED_SCHEMA } from "../reasoning-chain.js";
3
+ import { EASEMENT_RECORDING_REF_SCHEMA, PARCEL_NODE_ID_PATTERN, PROPERTY_ACCESS_POLICY_SCHEMA, PROPERTY_ATOM_TIER, PROPERTY_DEFAULT_ACCESS_POLICY, PROPERTY_QUALITY_GATE_FIELDS, PROPERTY_READ_CONTRACT_SCHEMA, SITE_LAYER_PROVENANCE_FIELDS, SITE_LAYER_VERIFIED_ABSENCE_SCHEMA, UTILITY_EASEMENT_ABSENCE_SCHEMA, UTILITY_EASEMENT_CLASS_SCHEMA, UTILITY_EASEMENT_SOURCE_TIER_SCHEMA, EASEMENT_GEOMETRY_SCHEMA, } from "./common.js";
4
+ export const UTILITY_EASEMENT_SCHEMA = z
5
+ .object({
6
+ entityType: z.literal("utility-easement"),
7
+ atomDid: z
8
+ .string()
9
+ .min(1)
10
+ .refine((val) => /^ueasm_[0-9a-f]{16}$/.test(val), {
11
+ message: "atomDid must be in format ueasm_<16-hex-chars>",
12
+ }),
13
+ parcelNodeId: z
14
+ .string()
15
+ .min(1)
16
+ .refine((val) => PARCEL_NODE_ID_PATTERN.test(val), {
17
+ message: "parcelNodeId must match {county_fips}:{prop_id}",
18
+ }),
19
+ easementId: z.string().min(1),
20
+ reasoningChain: REASONING_CHAIN_OBSERVED_SCHEMA,
21
+ easementClass: UTILITY_EASEMENT_CLASS_SCHEMA,
22
+ sourceTier: UTILITY_EASEMENT_SOURCE_TIER_SCHEMA,
23
+ easementGeometry: EASEMENT_GEOMETRY_SCHEMA.optional(),
24
+ absence: UTILITY_EASEMENT_ABSENCE_SCHEMA.optional(),
25
+ verifiedAbsence: SITE_LAYER_VERIFIED_ABSENCE_SCHEMA.optional(),
26
+ accessPolicy: PROPERTY_ACCESS_POLICY_SCHEMA,
27
+ ...PROPERTY_QUALITY_GATE_FIELDS,
28
+ ...SITE_LAYER_PROVENANCE_FIELDS,
29
+ holderLabel: z.string().min(1).optional(),
30
+ recordingRef: EASEMENT_RECORDING_REF_SCHEMA.optional(),
31
+ corridorWidthFt: z.number().positive().optional(),
32
+ linkedInstrumentDid: z.string().min(1).optional(),
33
+ atomTier: z.literal(PROPERTY_ATOM_TIER),
34
+ readContract: PROPERTY_READ_CONTRACT_SCHEMA.optional(),
35
+ })
36
+ .superRefine((data, ctx) => {
37
+ const hasGeometry = data.easementGeometry !== undefined;
38
+ const hasAbsence = data.absence !== undefined;
39
+ const isAbsentTier = data.sourceTier === "absent";
40
+ if (data.accessPolicy !== PROPERTY_DEFAULT_ACCESS_POLICY) {
41
+ ctx.addIssue({
42
+ code: z.ZodIssueCode.custom,
43
+ message: "utility-easement must use accessPolicy public-free",
44
+ path: ["accessPolicy"],
45
+ });
46
+ }
47
+ if (hasGeometry && hasAbsence) {
48
+ ctx.addIssue({
49
+ code: z.ZodIssueCode.custom,
50
+ message: "easementGeometry and absence are mutually exclusive",
51
+ path: ["easementGeometry"],
52
+ });
53
+ }
54
+ if (hasGeometry && isAbsentTier) {
55
+ ctx.addIssue({
56
+ code: z.ZodIssueCode.custom,
57
+ message: "sourceTier absent must not carry easementGeometry",
58
+ path: ["sourceTier"],
59
+ });
60
+ }
61
+ if (isAbsentTier) {
62
+ if (!data.verifiedAbsence) {
63
+ ctx.addIssue({
64
+ code: z.ZodIssueCode.custom,
65
+ message: "sourceTier absent requires verifiedAbsence (evaluated + provenanceScope)",
66
+ path: ["verifiedAbsence"],
67
+ });
68
+ }
69
+ }
70
+ else if (!hasGeometry && !hasAbsence) {
71
+ ctx.addIssue({
72
+ code: z.ZodIssueCode.custom,
73
+ message: "utility-easement requires easementGeometry OR per-parcel absence when sourceTier is not absent",
74
+ path: ["easementGeometry"],
75
+ });
76
+ }
77
+ });
78
+ export function createUtilityEasement(input) {
79
+ return UTILITY_EASEMENT_SCHEMA.parse(input);
80
+ }
81
+ //# sourceMappingURL=utility-easement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility-easement.js","sourceRoot":"","sources":["../../src/property/utility-easement.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.11.0",
3
+ "version": "1.12.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",