@empressaio/atom-contract 1.10.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +7 -2
  3. package/dist/conformance/common.d.ts +1 -1
  4. package/dist/conformance/common.js +1 -1
  5. package/dist/property/building-footprint.d.ts +649 -0
  6. package/dist/property/building-footprint.d.ts.map +1 -0
  7. package/dist/property/building-footprint.js +86 -0
  8. package/dist/property/building-footprint.js.map +1 -0
  9. package/dist/property/common.d.ts +164 -0
  10. package/dist/property/common.d.ts.map +1 -1
  11. package/dist/property/common.js +93 -0
  12. package/dist/property/common.js.map +1 -1
  13. package/dist/property/fixtures.d.ts +90 -0
  14. package/dist/property/fixtures.d.ts.map +1 -1
  15. package/dist/property/fixtures.js +281 -0
  16. package/dist/property/fixtures.js.map +1 -1
  17. package/dist/property/index.d.ts +3 -0
  18. package/dist/property/index.d.ts.map +1 -1
  19. package/dist/property/index.js +3 -0
  20. package/dist/property/index.js.map +1 -1
  21. package/dist/property/road-node.d.ts +694 -0
  22. package/dist/property/road-node.d.ts.map +1 -0
  23. package/dist/property/road-node.js +81 -0
  24. package/dist/property/road-node.js.map +1 -0
  25. package/dist/property/setback-rule.d.ts +16 -16
  26. package/dist/property/utility-easement.d.ts +724 -0
  27. package/dist/property/utility-easement.d.ts.map +1 -0
  28. package/dist/property/utility-easement.js +81 -0
  29. package/dist/property/utility-easement.js.map +1 -0
  30. package/dist/temporal/common.d.ts +2 -2
  31. package/dist/temporal/common.d.ts.map +1 -1
  32. package/dist/temporal/common.js +2 -0
  33. package/dist/temporal/common.js.map +1 -1
  34. package/dist/workspace/workspace-attachment.d.ts +4 -4
  35. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ import { z } from "zod";
2
+ import { REASONING_CHAIN_OBSERVED_SCHEMA } from "../reasoning-chain.js";
3
+ import { GEO_COORD_SCHEMA, PROPERTY_ACCESS_POLICY_SCHEMA, PROPERTY_ATOM_TIER, PROPERTY_QUALITY_GATE_FIELDS, PROPERTY_READ_CONTRACT_SCHEMA, ROAD_NODE_ID_PATTERN, } from "./common.js";
4
+ export const ROAD_CLASSIFICATION_VALUES = [
5
+ "highway",
6
+ "major_collector",
7
+ "minor_collector",
8
+ "residential",
9
+ "alley",
10
+ "gravel",
11
+ "unclassified",
12
+ ];
13
+ export const ROAD_CLASSIFICATION_SCHEMA = z.enum([
14
+ "highway",
15
+ "major_collector",
16
+ "minor_collector",
17
+ "residential",
18
+ "alley",
19
+ "gravel",
20
+ "unclassified",
21
+ ]);
22
+ export const ROAD_CENTERLINE_SCHEMA = z.object({
23
+ type: z.literal("LineString"),
24
+ coordinates: z.array(GEO_COORD_SCHEMA).min(2),
25
+ });
26
+ export const ROW_PROVENANCE_KIND = "approximate-assumed-per-class";
27
+ export const ROW_PROVENANCE_SCHEMA = z.object({
28
+ kind: z.literal(ROW_PROVENANCE_KIND),
29
+ /** Descriptor table key used for assumed width (jurisdiction knowledge). */
30
+ assumedWidthTableKey: z.string().min(1),
31
+ osmHighwayTag: z.string().min(1),
32
+ note: z.string().min(1).optional(),
33
+ });
34
+ export const ROAD_ROW_SCHEMA = z.object({
35
+ assumedWidthFt: z.number().positive(),
36
+ provenance: ROW_PROVENANCE_SCHEMA,
37
+ /** Offset polylines from centerline + assumed half-width (v1 approximate). */
38
+ leftEdge: ROAD_CENTERLINE_SCHEMA,
39
+ rightEdge: ROAD_CENTERLINE_SCHEMA,
40
+ });
41
+ /** Digital-twin-ready attach slot — no infra atoms in R1 scope. */
42
+ export const ROAD_ATTACH_POINT_SCHEMA = z.object({
43
+ kind: z.literal("infra-slot"),
44
+ refKey: z.string().min(1),
45
+ position: GEO_COORD_SCHEMA,
46
+ note: z.string().min(1).optional(),
47
+ });
48
+ export const ROAD_NODE_SCHEMA = z.object({
49
+ entityType: z.literal("road-node"),
50
+ atomDid: z
51
+ .string()
52
+ .min(1)
53
+ .refine((val) => /^rnode_[0-9a-f]{16}$/.test(val), {
54
+ message: "atomDid must be in format rnode_<16-hex-chars>",
55
+ }),
56
+ roadNodeId: z
57
+ .string()
58
+ .min(1)
59
+ .refine((val) => ROAD_NODE_ID_PATTERN.test(val), {
60
+ message: "roadNodeId must match {county_fips}:road:{osm_way_id}",
61
+ }),
62
+ displayName: z.string().min(1).optional(),
63
+ countyFips: z.string().regex(/^\d{5}$/),
64
+ osmWayId: z.number().int().positive(),
65
+ classification: ROAD_CLASSIFICATION_SCHEMA,
66
+ centerline: ROAD_CENTERLINE_SCHEMA,
67
+ row: ROAD_ROW_SCHEMA,
68
+ attachPoints: z.array(ROAD_ATTACH_POINT_SCHEMA),
69
+ reasoningChain: REASONING_CHAIN_OBSERVED_SCHEMA,
70
+ accessPolicy: PROPERTY_ACCESS_POLICY_SCHEMA,
71
+ ...PROPERTY_QUALITY_GATE_FIELDS,
72
+ atomTier: z.literal(PROPERTY_ATOM_TIER),
73
+ readContract: PROPERTY_READ_CONTRACT_SCHEMA.optional(),
74
+ });
75
+ export function createRoadNode(input) {
76
+ return ROAD_NODE_SCHEMA.parse(input);
77
+ }
78
+ export function roadNodeIdFromParts(countyFips, osmWayId) {
79
+ return `${countyFips}:road:${osmWayId}`;
80
+ }
81
+ //# sourceMappingURL=road-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"road-node.js","sourceRoot":"","sources":["../../src/property/road-node.ts"],"names":[],"mappings":"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"}
@@ -561,6 +561,10 @@ export declare const SETBACK_RULE_SCHEMA: z.ZodEffects<z.ZodObject<{
561
561
  retrievedAtomSetId: string;
562
562
  }> | undefined;
563
563
  }> | undefined;
564
+ absence?: {
565
+ kind: "setback-fallback";
566
+ reason: string;
567
+ } | undefined;
564
568
  fieldProvenance?: {
565
569
  front?: {
566
570
  confidence: Readonly<{
@@ -590,10 +594,6 @@ export declare const SETBACK_RULE_SCHEMA: z.ZodEffects<z.ZodObject<{
590
594
  atomDid: string;
591
595
  } | undefined;
592
596
  } | undefined;
593
- absence?: {
594
- kind: "setback-fallback";
595
- reason: string;
596
- } | undefined;
597
597
  }, {
598
598
  accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
599
599
  entityType: "setback-rule";
@@ -657,6 +657,10 @@ export declare const SETBACK_RULE_SCHEMA: z.ZodEffects<z.ZodObject<{
657
657
  retrievedAtomSetId: string;
658
658
  }> | undefined;
659
659
  }> | undefined;
660
+ absence?: {
661
+ kind: "setback-fallback";
662
+ reason: string;
663
+ } | undefined;
660
664
  fieldProvenance?: {
661
665
  front?: {
662
666
  confidence: Readonly<{
@@ -686,10 +690,6 @@ export declare const SETBACK_RULE_SCHEMA: z.ZodEffects<z.ZodObject<{
686
690
  atomDid: string;
687
691
  } | undefined;
688
692
  } | undefined;
689
- absence?: {
690
- kind: "setback-fallback";
691
- reason: string;
692
- } | undefined;
693
693
  }>, {
694
694
  accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
695
695
  entityType: "setback-rule";
@@ -753,6 +753,10 @@ export declare const SETBACK_RULE_SCHEMA: z.ZodEffects<z.ZodObject<{
753
753
  retrievedAtomSetId: string;
754
754
  }> | undefined;
755
755
  }> | undefined;
756
+ absence?: {
757
+ kind: "setback-fallback";
758
+ reason: string;
759
+ } | undefined;
756
760
  fieldProvenance?: {
757
761
  front?: {
758
762
  confidence: Readonly<{
@@ -782,10 +786,6 @@ export declare const SETBACK_RULE_SCHEMA: z.ZodEffects<z.ZodObject<{
782
786
  atomDid: string;
783
787
  } | undefined;
784
788
  } | undefined;
785
- absence?: {
786
- kind: "setback-fallback";
787
- reason: string;
788
- } | undefined;
789
789
  }, {
790
790
  accessPolicy: "public-free" | "public-paid" | "platform-internal" | "tenant-private" | "tenant-shared";
791
791
  entityType: "setback-rule";
@@ -849,6 +849,10 @@ export declare const SETBACK_RULE_SCHEMA: z.ZodEffects<z.ZodObject<{
849
849
  retrievedAtomSetId: string;
850
850
  }> | undefined;
851
851
  }> | undefined;
852
+ absence?: {
853
+ kind: "setback-fallback";
854
+ reason: string;
855
+ } | undefined;
852
856
  fieldProvenance?: {
853
857
  front?: {
854
858
  confidence: Readonly<{
@@ -878,10 +882,6 @@ export declare const SETBACK_RULE_SCHEMA: z.ZodEffects<z.ZodObject<{
878
882
  atomDid: string;
879
883
  } | undefined;
880
884
  } | undefined;
881
- absence?: {
882
- kind: "setback-fallback";
883
- reason: string;
884
- } | undefined;
885
885
  }>;
886
886
  export declare function createSetbackRule(input: z.input<typeof SETBACK_RULE_SCHEMA>): SetbackRuleAtomInstance;
887
887
  //# sourceMappingURL=setback-rule.d.ts.map