@flaks/onerecord 0.1.2 → 0.3.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 +324 -5
- package/MIGRATING.md +191 -5
- package/README.md +94 -34
- package/dist/booking-flow/index.d.ts +1 -1
- package/dist/booking-flow/index.d.ts.map +1 -1
- package/dist/booking-flow/index.js +1 -1
- package/dist/booking-flow/index.js.map +1 -1
- package/dist/booking-flow/transitions.d.ts +21 -0
- package/dist/booking-flow/transitions.d.ts.map +1 -1
- package/dist/booking-flow/transitions.js +57 -5
- package/dist/booking-flow/transitions.js.map +1 -1
- package/dist/classes/account-number/schema.d.ts +2 -7
- package/dist/classes/account-number/schema.d.ts.map +1 -1
- package/dist/classes/account-number/schema.js +7 -4
- package/dist/classes/account-number/schema.js.map +1 -1
- package/dist/classes/co2-emissions/codec.d.ts +4 -0
- package/dist/classes/co2-emissions/codec.d.ts.map +1 -0
- package/dist/classes/co2-emissions/codec.js +11 -0
- package/dist/classes/co2-emissions/codec.js.map +1 -0
- package/dist/classes/co2-emissions/deserialize.d.ts +5 -0
- package/dist/classes/co2-emissions/deserialize.d.ts.map +1 -0
- package/dist/classes/co2-emissions/deserialize.js +64 -0
- package/dist/classes/co2-emissions/deserialize.js.map +1 -0
- package/dist/classes/co2-emissions/index.d.ts +6 -0
- package/dist/classes/co2-emissions/index.d.ts.map +1 -0
- package/dist/classes/co2-emissions/index.js +5 -0
- package/dist/classes/co2-emissions/index.js.map +1 -0
- package/dist/classes/co2-emissions/schema.d.ts +18 -0
- package/dist/classes/co2-emissions/schema.d.ts.map +1 -0
- package/dist/classes/co2-emissions/schema.js +12 -0
- package/dist/classes/co2-emissions/schema.js.map +1 -0
- package/dist/classes/co2-emissions/serialize.d.ts +6 -0
- package/dist/classes/co2-emissions/serialize.d.ts.map +1 -0
- package/dist/classes/co2-emissions/serialize.js +28 -0
- package/dist/classes/co2-emissions/serialize.js.map +1 -0
- package/dist/classes/company/codec.d.ts +4 -0
- package/dist/classes/company/codec.d.ts.map +1 -0
- package/dist/classes/company/codec.js +11 -0
- package/dist/classes/company/codec.js.map +1 -0
- package/dist/classes/company/deserialize.d.ts +5 -0
- package/dist/classes/company/deserialize.d.ts.map +1 -0
- package/dist/classes/company/deserialize.js +64 -0
- package/dist/classes/company/deserialize.js.map +1 -0
- package/dist/classes/company/index.d.ts +6 -0
- package/dist/classes/company/index.d.ts.map +1 -0
- package/dist/classes/company/index.js +5 -0
- package/dist/classes/company/index.js.map +1 -0
- package/dist/classes/company/schema.d.ts +23 -0
- package/dist/classes/company/schema.d.ts.map +1 -0
- package/dist/classes/company/schema.js +23 -0
- package/dist/classes/company/schema.js.map +1 -0
- package/dist/classes/company/serialize.d.ts +6 -0
- package/dist/classes/company/serialize.d.ts.map +1 -0
- package/dist/classes/company/serialize.js +28 -0
- package/dist/classes/company/serialize.js.map +1 -0
- package/dist/classes/customs-information/codec.d.ts +4 -0
- package/dist/classes/customs-information/codec.d.ts.map +1 -0
- package/dist/classes/customs-information/codec.js +11 -0
- package/dist/classes/customs-information/codec.js.map +1 -0
- package/dist/classes/customs-information/deserialize.d.ts +5 -0
- package/dist/classes/customs-information/deserialize.d.ts.map +1 -0
- package/dist/classes/customs-information/deserialize.js +64 -0
- package/dist/classes/customs-information/deserialize.js.map +1 -0
- package/dist/classes/customs-information/index.d.ts +6 -0
- package/dist/classes/customs-information/index.d.ts.map +1 -0
- package/dist/classes/customs-information/index.js +5 -0
- package/dist/classes/customs-information/index.js.map +1 -0
- package/dist/classes/customs-information/schema.d.ts +18 -0
- package/dist/classes/customs-information/schema.d.ts.map +1 -0
- package/dist/classes/customs-information/schema.js +17 -0
- package/dist/classes/customs-information/schema.js.map +1 -0
- package/dist/classes/customs-information/serialize.d.ts +6 -0
- package/dist/classes/customs-information/serialize.d.ts.map +1 -0
- package/dist/classes/customs-information/serialize.js +28 -0
- package/dist/classes/customs-information/serialize.js.map +1 -0
- package/dist/classes/insurance/codec.d.ts +4 -0
- package/dist/classes/insurance/codec.d.ts.map +1 -0
- package/dist/classes/insurance/codec.js +11 -0
- package/dist/classes/insurance/codec.js.map +1 -0
- package/dist/classes/insurance/deserialize.d.ts +5 -0
- package/dist/classes/insurance/deserialize.d.ts.map +1 -0
- package/dist/classes/insurance/deserialize.js +64 -0
- package/dist/classes/insurance/deserialize.js.map +1 -0
- package/dist/classes/insurance/index.d.ts +6 -0
- package/dist/classes/insurance/index.d.ts.map +1 -0
- package/dist/classes/insurance/index.js +5 -0
- package/dist/classes/insurance/index.js.map +1 -0
- package/dist/classes/insurance/schema.d.ts +17 -0
- package/dist/classes/insurance/schema.d.ts.map +1 -0
- package/dist/classes/insurance/schema.js +11 -0
- package/dist/classes/insurance/schema.js.map +1 -0
- package/dist/classes/insurance/serialize.d.ts +6 -0
- package/dist/classes/insurance/serialize.d.ts.map +1 -0
- package/dist/classes/insurance/serialize.js +28 -0
- package/dist/classes/insurance/serialize.js.map +1 -0
- package/dist/classes/line-item-package/codec.d.ts +4 -0
- package/dist/classes/line-item-package/codec.d.ts.map +1 -0
- package/dist/classes/line-item-package/codec.js +11 -0
- package/dist/classes/line-item-package/codec.js.map +1 -0
- package/dist/classes/line-item-package/deserialize.d.ts +5 -0
- package/dist/classes/line-item-package/deserialize.d.ts.map +1 -0
- package/dist/classes/line-item-package/deserialize.js +64 -0
- package/dist/classes/line-item-package/deserialize.js.map +1 -0
- package/dist/classes/line-item-package/index.d.ts +6 -0
- package/dist/classes/line-item-package/index.d.ts.map +1 -0
- package/dist/classes/line-item-package/index.js +5 -0
- package/dist/classes/line-item-package/index.js.map +1 -0
- package/dist/classes/line-item-package/schema.d.ts +22 -0
- package/dist/classes/line-item-package/schema.d.ts.map +1 -0
- package/dist/classes/line-item-package/schema.js +12 -0
- package/dist/classes/line-item-package/schema.js.map +1 -0
- package/dist/classes/line-item-package/serialize.d.ts +6 -0
- package/dist/classes/line-item-package/serialize.d.ts.map +1 -0
- package/dist/classes/line-item-package/serialize.js +28 -0
- package/dist/classes/line-item-package/serialize.js.map +1 -0
- package/dist/classes/other-charge/codec.d.ts +4 -0
- package/dist/classes/other-charge/codec.d.ts.map +1 -0
- package/dist/classes/other-charge/codec.js +11 -0
- package/dist/classes/other-charge/codec.js.map +1 -0
- package/dist/classes/other-charge/deserialize.d.ts +5 -0
- package/dist/classes/other-charge/deserialize.d.ts.map +1 -0
- package/dist/classes/other-charge/deserialize.js +64 -0
- package/dist/classes/other-charge/deserialize.js.map +1 -0
- package/dist/classes/other-charge/index.d.ts +6 -0
- package/dist/classes/other-charge/index.d.ts.map +1 -0
- package/dist/classes/other-charge/index.js +5 -0
- package/dist/classes/other-charge/index.js.map +1 -0
- package/dist/classes/other-charge/schema.d.ts +27 -0
- package/dist/classes/other-charge/schema.d.ts.map +1 -0
- package/dist/classes/other-charge/schema.js +14 -0
- package/dist/classes/other-charge/schema.js.map +1 -0
- package/dist/classes/other-charge/serialize.d.ts +6 -0
- package/dist/classes/other-charge/serialize.d.ts.map +1 -0
- package/dist/classes/other-charge/serialize.js +28 -0
- package/dist/classes/other-charge/serialize.js.map +1 -0
- package/dist/classes/party/schema.d.ts +9 -1
- package/dist/classes/party/schema.d.ts.map +1 -1
- package/dist/classes/party/schema.js +5 -2
- package/dist/classes/party/schema.js.map +1 -1
- package/dist/classes/piece/schema.d.ts +11 -0
- package/dist/classes/piece/schema.d.ts.map +1 -1
- package/dist/classes/piece/schema.js +10 -0
- package/dist/classes/piece/schema.js.map +1 -1
- package/dist/classes/regulated-entity/codec.d.ts +4 -0
- package/dist/classes/regulated-entity/codec.d.ts.map +1 -0
- package/dist/classes/regulated-entity/codec.js +11 -0
- package/dist/classes/regulated-entity/codec.js.map +1 -0
- package/dist/classes/regulated-entity/deserialize.d.ts +5 -0
- package/dist/classes/regulated-entity/deserialize.d.ts.map +1 -0
- package/dist/classes/regulated-entity/deserialize.js +64 -0
- package/dist/classes/regulated-entity/deserialize.js.map +1 -0
- package/dist/classes/regulated-entity/index.d.ts +6 -0
- package/dist/classes/regulated-entity/index.d.ts.map +1 -0
- package/dist/classes/regulated-entity/index.js +5 -0
- package/dist/classes/regulated-entity/index.js.map +1 -0
- package/dist/classes/regulated-entity/schema.d.ts +19 -0
- package/dist/classes/regulated-entity/schema.d.ts.map +1 -0
- package/dist/classes/regulated-entity/schema.js +12 -0
- package/dist/classes/regulated-entity/schema.js.map +1 -0
- package/dist/classes/regulated-entity/serialize.d.ts +6 -0
- package/dist/classes/regulated-entity/serialize.d.ts.map +1 -0
- package/dist/classes/regulated-entity/serialize.js +28 -0
- package/dist/classes/regulated-entity/serialize.js.map +1 -0
- package/dist/classes/security-declaration/codec.d.ts +4 -0
- package/dist/classes/security-declaration/codec.d.ts.map +1 -0
- package/dist/classes/security-declaration/codec.js +11 -0
- package/dist/classes/security-declaration/codec.js.map +1 -0
- package/dist/classes/security-declaration/deserialize.d.ts +5 -0
- package/dist/classes/security-declaration/deserialize.d.ts.map +1 -0
- package/dist/classes/security-declaration/deserialize.js +64 -0
- package/dist/classes/security-declaration/deserialize.js.map +1 -0
- package/dist/classes/security-declaration/index.d.ts +6 -0
- package/dist/classes/security-declaration/index.d.ts.map +1 -0
- package/dist/classes/security-declaration/index.js +5 -0
- package/dist/classes/security-declaration/index.js.map +1 -0
- package/dist/classes/security-declaration/schema.d.ts +44 -0
- package/dist/classes/security-declaration/schema.d.ts.map +1 -0
- package/dist/classes/security-declaration/schema.js +21 -0
- package/dist/classes/security-declaration/schema.js.map +1 -0
- package/dist/classes/security-declaration/serialize.d.ts +6 -0
- package/dist/classes/security-declaration/serialize.d.ts.map +1 -0
- package/dist/classes/security-declaration/serialize.js +28 -0
- package/dist/classes/security-declaration/serialize.js.map +1 -0
- package/dist/classes/shared/value.d.ts +44 -0
- package/dist/classes/shared/value.d.ts.map +1 -0
- package/dist/classes/shared/value.js +39 -0
- package/dist/classes/shared/value.js.map +1 -0
- package/dist/classes/shipment/schema.d.ts +31 -8
- package/dist/classes/shipment/schema.d.ts.map +1 -1
- package/dist/classes/shipment/schema.js +15 -5
- package/dist/classes/shipment/schema.js.map +1 -1
- package/dist/classes/transport-movement/schema.d.ts +22 -0
- package/dist/classes/transport-movement/schema.d.ts.map +1 -1
- package/dist/classes/transport-movement/schema.js +7 -0
- package/dist/classes/transport-movement/schema.js.map +1 -1
- package/dist/classes/uld/codec.d.ts +4 -0
- package/dist/classes/uld/codec.d.ts.map +1 -0
- package/dist/classes/uld/codec.js +11 -0
- package/dist/classes/uld/codec.js.map +1 -0
- package/dist/classes/uld/deserialize.d.ts +5 -0
- package/dist/classes/uld/deserialize.d.ts.map +1 -0
- package/dist/classes/uld/deserialize.js +64 -0
- package/dist/classes/uld/deserialize.js.map +1 -0
- package/dist/classes/uld/index.d.ts +6 -0
- package/dist/classes/uld/index.d.ts.map +1 -0
- package/dist/classes/uld/index.js +5 -0
- package/dist/classes/uld/index.js.map +1 -0
- package/dist/classes/uld/schema.d.ts +31 -0
- package/dist/classes/uld/schema.d.ts.map +1 -0
- package/dist/classes/uld/schema.js +29 -0
- package/dist/classes/uld/schema.js.map +1 -0
- package/dist/classes/uld/serialize.d.ts +6 -0
- package/dist/classes/uld/serialize.d.ts.map +1 -0
- package/dist/classes/uld/serialize.js +28 -0
- package/dist/classes/uld/serialize.js.map +1 -0
- package/dist/classes/waybill/schema.d.ts +45 -5
- package/dist/classes/waybill/schema.d.ts.map +1 -1
- package/dist/classes/waybill/schema.js +28 -7
- package/dist/classes/waybill/schema.js.map +1 -1
- package/dist/classes/waybill-line-item/codec.d.ts +4 -0
- package/dist/classes/waybill-line-item/codec.d.ts.map +1 -0
- package/dist/classes/waybill-line-item/codec.js +11 -0
- package/dist/classes/waybill-line-item/codec.js.map +1 -0
- package/dist/classes/waybill-line-item/deserialize.d.ts +5 -0
- package/dist/classes/waybill-line-item/deserialize.d.ts.map +1 -0
- package/dist/classes/waybill-line-item/deserialize.js +64 -0
- package/dist/classes/waybill-line-item/deserialize.js.map +1 -0
- package/dist/classes/waybill-line-item/index.d.ts +6 -0
- package/dist/classes/waybill-line-item/index.d.ts.map +1 -0
- package/dist/classes/waybill-line-item/index.js +5 -0
- package/dist/classes/waybill-line-item/index.js.map +1 -0
- package/dist/classes/waybill-line-item/schema.d.ts +44 -0
- package/dist/classes/waybill-line-item/schema.d.ts.map +1 -0
- package/dist/classes/waybill-line-item/schema.js +22 -0
- package/dist/classes/waybill-line-item/schema.js.map +1 -0
- package/dist/classes/waybill-line-item/serialize.d.ts +6 -0
- package/dist/classes/waybill-line-item/serialize.d.ts.map +1 -0
- package/dist/classes/waybill-line-item/serialize.js +28 -0
- package/dist/classes/waybill-line-item/serialize.js.map +1 -0
- package/dist/codecs.d.ts +10 -1
- package/dist/codecs.d.ts.map +1 -1
- package/dist/codecs.js +10 -1
- package/dist/codecs.js.map +1 -1
- package/dist/codes/enums.d.ts +35 -0
- package/dist/codes/enums.d.ts.map +1 -1
- package/dist/codes/enums.js +4 -0
- package/dist/codes/enums.js.map +1 -1
- package/dist/codes/fsu-event-codes.d.ts +6 -6
- package/dist/codes/fsu-event-codes.d.ts.map +1 -1
- package/dist/codes/fsu-event-codes.js +11 -9
- package/dist/codes/fsu-event-codes.js.map +1 -1
- package/dist/codes/index.d.ts +1 -1
- package/dist/codes/index.d.ts.map +1 -1
- package/dist/codes/index.js +1 -1
- package/dist/codes/index.js.map +1 -1
- package/dist/dispatch/context-order.d.ts +28 -0
- package/dist/dispatch/context-order.d.ts.map +1 -0
- package/dist/dispatch/context-order.js +21 -0
- package/dist/dispatch/context-order.js.map +1 -0
- package/dist/dispatch/domain-constraints.d.ts +49 -0
- package/dist/dispatch/domain-constraints.d.ts.map +1 -0
- package/dist/dispatch/domain-constraints.js +59 -0
- package/dist/dispatch/domain-constraints.js.map +1 -0
- package/dist/dispatch/field-types.d.ts +29 -0
- package/dist/dispatch/field-types.d.ts.map +1 -0
- package/dist/dispatch/field-types.js +135 -0
- package/dist/dispatch/field-types.js.map +1 -0
- package/dist/dispatch/graph-walk.d.ts +23 -0
- package/dist/dispatch/graph-walk.d.ts.map +1 -0
- package/dist/dispatch/graph-walk.js +207 -0
- package/dist/dispatch/graph-walk.js.map +1 -0
- package/dist/dispatch/index.d.ts +30 -0
- package/dist/dispatch/index.d.ts.map +1 -0
- package/dist/dispatch/index.js +36 -0
- package/dist/dispatch/index.js.map +1 -0
- package/dist/dispatch/iri-canonical.d.ts +28 -0
- package/dist/dispatch/iri-canonical.d.ts.map +1 -0
- package/dist/dispatch/iri-canonical.js +55 -0
- package/dist/dispatch/iri-canonical.js.map +1 -0
- package/dist/error/format.d.ts.map +1 -1
- package/dist/error/format.js +8 -0
- package/dist/error/format.js.map +1 -1
- package/dist/facade.d.ts +53 -2
- package/dist/facade.d.ts.map +1 -1
- package/dist/facade.js +8 -0
- package/dist/facade.js.map +1 -1
- package/dist/factory-classes.d.ts +27 -6
- package/dist/factory-classes.d.ts.map +1 -1
- package/dist/factory-classes.js +27 -6
- package/dist/factory-classes.js.map +1 -1
- package/dist/factory.d.ts +12 -0
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +10 -1
- package/dist/factory.js.map +1 -1
- package/dist/index.d.ts +32 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -3
- package/dist/index.js.map +1 -1
- package/dist/iri/dereference.d.ts +42 -0
- package/dist/iri/dereference.d.ts.map +1 -0
- package/dist/iri/dereference.js +75 -0
- package/dist/iri/dereference.js.map +1 -0
- package/dist/iri/zod-safe-iri.d.ts +18 -2
- package/dist/iri/zod-safe-iri.d.ts.map +1 -1
- package/dist/iri/zod-safe-iri.js +14 -2
- package/dist/iri/zod-safe-iri.js.map +1 -1
- package/dist/result.d.ts +27 -1
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +9 -0
- package/dist/result.js.map +1 -1
- package/dist/safety/blank-node.d.ts +20 -0
- package/dist/safety/blank-node.d.ts.map +1 -0
- package/dist/safety/blank-node.js +59 -0
- package/dist/safety/blank-node.js.map +1 -0
- package/dist/safety/pre-validate.d.ts.map +1 -1
- package/dist/safety/pre-validate.js +12 -72
- package/dist/safety/pre-validate.js.map +1 -1
- package/dist/safety/walk-graph.d.ts +30 -0
- package/dist/safety/walk-graph.d.ts.map +1 -0
- package/dist/safety/walk-graph.js +100 -0
- package/dist/safety/walk-graph.js.map +1 -0
- package/dist/types/index.d.ts +10 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/version.d.ts +9 -4
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +18 -6
- package/dist/version.js.map +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# @flaks/onerecord
|
|
2
2
|
|
|
3
|
-
Zero-dependency Zod-first TypeScript mapper for the IATA OneRecord cargo data model 3.2 and API spec 2.2.0.
|
|
3
|
+
Zero-dependency Zod-first TypeScript mapper for the IATA OneRecord cargo data model 3.2.0 and API spec 2.2.0.
|
|
4
4
|
|
|
5
5
|
## What it is
|
|
6
6
|
|
|
7
7
|
`@flaks/onerecord` provides round-trip-safe serialization and deserialization for
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
primitives (depth, node,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
so callers handle every
|
|
8
|
+
the OneRecord cargo data model class set (Ring 1–5, booking-flow, and FWB-equivalence
|
|
9
|
+
classes added in v0.3.0). Each class ships with a Zod schema, an application-layer
|
|
10
|
+
TypeScript type, a `JsonLd<T>` brand, `serialize` / `serializeStrict` / `deserialize`
|
|
11
|
+
functions, and a `Codec` bundle. A factory (`createMapper`) and a namespaced facade
|
|
12
|
+
(`onerecord`) cover the two main consumption patterns. Safety primitives (depth, node,
|
|
13
|
+
string, array, payload limits; prototype-pollution defense; IRI validation) run before
|
|
14
|
+
Zod so that invalid JSON-LD graphs never reach schema evaluation. All parse-error
|
|
15
|
+
variants are typed as a discriminated union (`ParseError`) so callers handle every
|
|
16
|
+
failure mode exhaustively.
|
|
16
17
|
|
|
17
18
|
## Why use this library?
|
|
18
19
|
|
|
@@ -30,37 +31,96 @@ Use this library if you're building cargo software that needs to:
|
|
|
30
31
|
- **Refuse** malformed graphs early — depth bombs, prototype-pollution
|
|
31
32
|
attempts, empty arrays on the wire, circular references — before they
|
|
32
33
|
reach Zod or your downstream code.
|
|
33
|
-
- **
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
- **Catch cross-node graph violations** with `createMapper({ graphWalk: true })`
|
|
35
|
+
or the `onerecord.dispatch.deserialize.<Class>` namespace —
|
|
36
|
+
`duplicate_id_in_graph`, `missing_id`, `wrong_type_for_endpoint`,
|
|
37
|
+
`missing_type`, all surfaced as typed `ParseError` variants. Default
|
|
38
|
+
per-class deserializers stay structural-only for v0.1.x compatibility;
|
|
39
|
+
graph-walk is opt-in.
|
|
40
|
+
- **Type-check** every parse-failure path: `ParseError` is a discriminated
|
|
41
|
+
union, so the compiler tells you when you've forgotten a failure mode.
|
|
36
42
|
|
|
37
43
|
Skip it if you want a generic JSON-LD or RDF toolkit; this is purpose-built
|
|
38
44
|
for the IATA cargo ontology and the ONE Record API spec 2.2.0.
|
|
39
45
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
`v0.1.0` covers the 32 canonical cargo data model classes (Ring 1–5 plus
|
|
43
|
-
the booking-flow classes) with full round-trip codecs, Zod schemas,
|
|
44
|
-
snapshot tests, property-based round-trip tests, and pre-Zod safety
|
|
45
|
-
primitives. The library is Apache-2.0 and ready for use within the v0.x
|
|
46
|
-
stability policy described in [`MIGRATING.md`](MIGRATING.md).
|
|
46
|
+
### Conformance and verifiability
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
This library is **3.2.0-conformant for the covered class set, with documented
|
|
49
|
+
deviations and 3.2.1-forward extensions**. Specifically:
|
|
50
|
+
`Shipment.securityDeclarations` is accepted as a documented 3.2.1-forward
|
|
51
|
+
extension (deviation #12). Every deviation is recorded in
|
|
52
|
+
[`docs/spec-deviations.md`](docs/spec-deviations.md) — read that before
|
|
52
53
|
adopting if your integration must match the spec verbatim.
|
|
53
54
|
|
|
55
|
+
This library publishes verifiable artifacts so consumers can audit the
|
|
56
|
+
conformance claim independently:
|
|
57
|
+
|
|
58
|
+
- All releases are GPG-signed git tags + signed npm tarballs (per
|
|
59
|
+
[`MAINTENANCE.md`](MAINTENANCE.md)).
|
|
60
|
+
- Every spec deviation is documented in [`docs/spec-deviations.md`](docs/spec-deviations.md)
|
|
61
|
+
with status banners (CLOSED, PARTIAL, deferred) and explicit guidance
|
|
62
|
+
on what consumers should do today.
|
|
63
|
+
- A [`docs/conformance-matrix.md`](docs/conformance-matrix.md) maps each
|
|
64
|
+
class and field to its binding authority in `IATA-1R-DM-Ontology.ttl`.
|
|
65
|
+
- Property-based round-trip tests for the Ring 1+2 classes
|
|
66
|
+
— `serialize(deserialize(x))` is field-equivalent for any value an
|
|
67
|
+
`Arbitrary` produces.
|
|
68
|
+
- Contract tests at `test/contract/` exercise the wire format
|
|
69
|
+
end-to-end against the OLF-hosted reference NE:ONE Server (the IATA
|
|
70
|
+
OneRecord reference implementation). See [`CONTRIBUTING.md`](CONTRIBUTING.md)
|
|
71
|
+
for how to run them.
|
|
72
|
+
|
|
73
|
+
## Status
|
|
74
|
+
|
|
75
|
+
`v0.3.0` ships:
|
|
76
|
+
|
|
77
|
+
- The canonical cargo data model class set (Ring 1–5, booking-flow, plus
|
|
78
|
+
10 new FWB-equivalence classes in v0.3.0) with full round-trip codecs,
|
|
79
|
+
Zod schemas, snapshot tests, and pre-Zod safety primitives.
|
|
80
|
+
- Opt-in **graph-walk dispatcher** (`createMapper({ graphWalk: true })` or
|
|
81
|
+
`onerecord.dispatch.deserialize.<Class>`) emitting all four cross-node
|
|
82
|
+
integrity ParseError kinds.
|
|
83
|
+
- Spec-correct **`acceptBookingOptionViaRequest`** transition that returns
|
|
84
|
+
the `BookingOptionRequest` intermediate per spec §5.4. The legacy
|
|
85
|
+
`acceptBookingOption` is `@deprecated` (removal v0.3 unless IATA §5.4
|
|
86
|
+
reconciliation restores the §5.2 shortcut).
|
|
87
|
+
- Property-based round-trip tests for **all 8 Ring 1+2 classes**.
|
|
88
|
+
- FSU code fixture regenerated with a real `sha256:` blob hash, sourced
|
|
89
|
+
from upstream IATA-Cargo via the sibling
|
|
90
|
+
[`tjo099/onerecord-xlsx-tools`](https://github.com/tjo099/onerecord-xlsx-tools)
|
|
91
|
+
tool. Library no longer carries the `xlsx` devDep — closes the two
|
|
92
|
+
high-severity Prototype Pollution + ReDoS advisories.
|
|
93
|
+
- See [`docs/roadmap.md`](docs/roadmap.md) for what's next.
|
|
94
|
+
|
|
95
|
+
The library is Apache-2.0 and ready for use within the v0.x stability
|
|
96
|
+
policy described in [`MIGRATING.md`](MIGRATING.md).
|
|
97
|
+
|
|
98
|
+
Spec compliance: cargo data model **3.2.0 (2025-07 endorsed standard, 3.2-rc2 file)**,
|
|
99
|
+
API spec **2.2.0**. The library is 3.2.0-conformant for the covered class set,
|
|
100
|
+
with documented deviations and 3.2.1-forward extensions. See
|
|
101
|
+
[`docs/spec-deviations.md`](docs/spec-deviations.md) and
|
|
102
|
+
[`docs/conformance-matrix.md`](docs/conformance-matrix.md) for the full picture.
|
|
103
|
+
|
|
54
104
|
## Install
|
|
55
105
|
|
|
56
106
|
```bash
|
|
57
|
-
|
|
107
|
+
npm install @flaks/onerecord
|
|
108
|
+
# or
|
|
109
|
+
bun add @flaks/onerecord
|
|
110
|
+
# or
|
|
111
|
+
pnpm add @flaks/onerecord
|
|
58
112
|
```
|
|
59
113
|
|
|
60
|
-
Pin
|
|
61
|
-
versions may introduce breaking changes
|
|
62
|
-
patch versions will not.
|
|
63
|
-
|
|
114
|
+
Pin a minor range in production (e.g. `"@flaks/onerecord": "^0.2.0"`).
|
|
115
|
+
Per `MIGRATING.md`, minor versions may introduce breaking changes
|
|
116
|
+
documented in `CHANGELOG.md`; patch versions will not.
|
|
117
|
+
|
|
118
|
+
Installing from a git tag is also supported for testing forks or
|
|
119
|
+
unreleased branches:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
bun add git+https://github.com/tjo099/onerecord-mapper#v0.2.0
|
|
123
|
+
```
|
|
64
124
|
|
|
65
125
|
## Usage
|
|
66
126
|
|
|
@@ -111,7 +171,7 @@ const jsonLd = onerecord.serialize.Piece(piece)
|
|
|
111
171
|
|
|
112
172
|
### Per-class exports
|
|
113
173
|
|
|
114
|
-
Each
|
|
174
|
+
Each registered class exposes:
|
|
115
175
|
|
|
116
176
|
| Export | Description |
|
|
117
177
|
|---|---|
|
|
@@ -144,9 +204,9 @@ No bound state; suitable for one-off operations and tree-shake-friendly imports.
|
|
|
144
204
|
|
|
145
205
|
### Errors
|
|
146
206
|
|
|
147
|
-
- `ParseError` —
|
|
148
|
-
`
|
|
149
|
-
`prototype_pollution_attempt`, `invalid_pointer`, and
|
|
207
|
+
- `ParseError` — discriminated union on `kind`; covers `zod_validation`,
|
|
208
|
+
`cardinality_violation`, `invalid_iri`, `depth_limit_exceeded`,
|
|
209
|
+
`prototype_pollution_attempt`, `invalid_pointer`, and more
|
|
150
210
|
- `SerializationError` — `code: 'invalid_application_object' | 'iri_construction_failed'`
|
|
151
211
|
- `formatError(e: ParseError): string` — human-readable message
|
|
152
212
|
- `redactError(e: ParseError): ParseError` — strips PII from error payloads before logging
|
|
@@ -236,14 +296,14 @@ import type { Waybill, ParseError } from '@flaks/onerecord/types'
|
|
|
236
296
|
|
|
237
297
|
| Spec | Version |
|
|
238
298
|
|---|---|
|
|
239
|
-
| Cargo data model | 3.2 (2025-07 endorsed standard) |
|
|
299
|
+
| Cargo data model | 3.2.0 (2025-07 endorsed standard, 3.2-rc2 ontology file) |
|
|
240
300
|
| API spec | 2.2.0 |
|
|
241
301
|
|
|
242
302
|
## Development
|
|
243
303
|
|
|
244
304
|
```bash
|
|
245
305
|
bun install
|
|
246
|
-
bun run test #
|
|
306
|
+
bun run test # see CI for current count
|
|
247
307
|
bun run lint # Biome
|
|
248
308
|
bun run typecheck # tsc --noEmit
|
|
249
309
|
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { canTransition } from './can-transition.js';
|
|
2
2
|
export { STATE_DIAGRAM } from './state-diagram.js';
|
|
3
3
|
export type { BookingAction, BookingType, StateDiagram, Transition, } from './state-diagram.js';
|
|
4
|
-
export { acceptBookingOption, acceptBookingRequest, rejectBookingOption, revokeBookingOption, } from './transitions.js';
|
|
4
|
+
export { acceptBookingOption, acceptBookingOptionViaRequest, acceptBookingRequest, rejectBookingOption, revokeBookingOption, } from './transitions.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/booking-flow/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EACV,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,GACX,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/booking-flow/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EACV,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,GACX,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/booking-flow/index.ts
|
|
2
2
|
export { canTransition } from './can-transition.js';
|
|
3
3
|
export { STATE_DIAGRAM } from './state-diagram.js';
|
|
4
|
-
export { acceptBookingOption, acceptBookingRequest, rejectBookingOption, revokeBookingOption, } from './transitions.js';
|
|
4
|
+
export { acceptBookingOption, acceptBookingOptionViaRequest, acceptBookingRequest, rejectBookingOption, revokeBookingOption, } from './transitions.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/booking-flow/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAOlD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/booking-flow/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAOlD,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA"}
|
|
@@ -1,9 +1,30 @@
|
|
|
1
|
+
import type { BookingOptionRequest } from '../classes/booking-option-request/schema.js';
|
|
1
2
|
import type { BookingOption } from '../classes/booking-option/schema.js';
|
|
2
3
|
import type { BookingRequest } from '../classes/booking-request/schema.js';
|
|
3
4
|
import type { Booking } from '../classes/booking/schema.js';
|
|
4
5
|
import type { ParseResult } from '../result.js';
|
|
5
6
|
export declare function acceptBookingRequest(req: BookingRequest): ParseResult<BookingOption>;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated v0.2 deprecation; removal in v0.3.
|
|
9
|
+
*
|
|
10
|
+
* Skips the `BookingOptionRequest` intermediate state per spec §5.4
|
|
11
|
+
* STATE_DIAGRAM. Use `acceptBookingOptionViaRequest(opt)` instead and
|
|
12
|
+
* chain to your persistence layer's BookingOptionRequest -> Booking
|
|
13
|
+
* transition. If the IATA §5.4 reconciliation accepts the §5.2
|
|
14
|
+
* shortcut, this annotation will be relaxed.
|
|
15
|
+
*/
|
|
6
16
|
export declare function acceptBookingOption(opt: BookingOption): ParseResult<Booking>;
|
|
7
17
|
export declare function rejectBookingOption(opt: BookingOption, _reason?: string): ParseResult<BookingOption>;
|
|
8
18
|
export declare function revokeBookingOption(opt: BookingOption, _reason?: string): ParseResult<BookingOption>;
|
|
19
|
+
/**
|
|
20
|
+
* Accept a BookingOption per spec §5.4 STATE_DIAGRAM. Returns the
|
|
21
|
+
* intermediate `BookingOptionRequest` resource (not directly a Booking).
|
|
22
|
+
*
|
|
23
|
+
* The carrier-side decision step (BookingOptionRequest.REQUEST_PENDING ->
|
|
24
|
+
* REQUEST_ACCEPTED -> Booking) is modelled separately in v0.3.0. v0.2.0
|
|
25
|
+
* only models the forwarder->carrier request transition.
|
|
26
|
+
*
|
|
27
|
+
* Source-state hardcode: see top-of-file comment + deviation #11.
|
|
28
|
+
*/
|
|
29
|
+
export declare function acceptBookingOptionViaRequest(opt: BookingOption): ParseResult<BookingOptionRequest>;
|
|
9
30
|
//# sourceMappingURL=transitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../src/booking-flow/transitions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../src/booking-flow/transitions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AA+B/C,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,WAAW,CAAC,aAAa,CAAC,CAoBpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAqB5E;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,WAAW,CAAC,aAAa,CAAC,CAmB5B;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,WAAW,CAAC,aAAa,CAAC,CAa5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,aAAa,GACjB,WAAW,CAAC,oBAAoB,CAAC,CAoBnC"}
|
|
@@ -3,11 +3,23 @@ import { randomUUID } from 'node:crypto';
|
|
|
3
3
|
import { CARGO_CONTEXT_IRI } from '../version.js';
|
|
4
4
|
import { canTransition } from './can-transition.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* v0.2 booking-flow status:
|
|
7
|
+
* - `acceptBookingOptionViaRequest` (below) returns the spec-§5.4
|
|
8
|
+
* intermediate `BookingOptionRequest` — the spec-correct path.
|
|
9
|
+
* - `acceptBookingOption` (legacy, @deprecated) continues to return
|
|
10
|
+
* `Booking` directly per spec §5.2 signature; removal v0.3 unless
|
|
11
|
+
* IATA §5.4 reconciliation restores the §5.2 shortcut.
|
|
12
|
+
*
|
|
13
|
+
* Source-state hardcode: all four BookingOption transition functions
|
|
14
|
+
* (acceptBookingOption, rejectBookingOption, revokeBookingOption,
|
|
15
|
+
* acceptBookingOptionViaRequest) pass the constant `'REQUEST_PENDING'`
|
|
16
|
+
* as the source state to `canTransition` rather than reading
|
|
17
|
+
* `opt.optionStatus`. This is intentional — see deviation #11 in
|
|
18
|
+
* `docs/spec-deviations.md`. The schema's optionStatus enum
|
|
19
|
+
* (OPTION_PROPOSED/_ACCEPTED/_REJECTED) does not align with
|
|
20
|
+
* STATE_DIAGRAM.BookingOption's source-state keys (REQUEST_PENDING).
|
|
21
|
+
* Reading `opt.optionStatus` would make every transition fail.
|
|
22
|
+
* Reconciliation deferred to v0.3.
|
|
11
23
|
*/
|
|
12
24
|
const TENANT = 'transitions';
|
|
13
25
|
const HOST = 'flaks.example';
|
|
@@ -35,6 +47,15 @@ export function acceptBookingRequest(req) {
|
|
|
35
47
|
};
|
|
36
48
|
return { ok: true, value: opt };
|
|
37
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* @deprecated v0.2 deprecation; removal in v0.3.
|
|
52
|
+
*
|
|
53
|
+
* Skips the `BookingOptionRequest` intermediate state per spec §5.4
|
|
54
|
+
* STATE_DIAGRAM. Use `acceptBookingOptionViaRequest(opt)` instead and
|
|
55
|
+
* chain to your persistence layer's BookingOptionRequest -> Booking
|
|
56
|
+
* transition. If the IATA §5.4 reconciliation accepts the §5.2
|
|
57
|
+
* shortcut, this annotation will be relaxed.
|
|
58
|
+
*/
|
|
38
59
|
export function acceptBookingOption(opt) {
|
|
39
60
|
const t = canTransition('BookingOption', 'REQUEST_PENDING', 'accept');
|
|
40
61
|
if (!t)
|
|
@@ -91,4 +112,35 @@ export function revokeBookingOption(opt, _reason) {
|
|
|
91
112
|
};
|
|
92
113
|
return { ok: true, value: { ...opt, optionStatus: 'OPTION_REJECTED' } };
|
|
93
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Accept a BookingOption per spec §5.4 STATE_DIAGRAM. Returns the
|
|
117
|
+
* intermediate `BookingOptionRequest` resource (not directly a Booking).
|
|
118
|
+
*
|
|
119
|
+
* The carrier-side decision step (BookingOptionRequest.REQUEST_PENDING ->
|
|
120
|
+
* REQUEST_ACCEPTED -> Booking) is modelled separately in v0.3.0. v0.2.0
|
|
121
|
+
* only models the forwarder->carrier request transition.
|
|
122
|
+
*
|
|
123
|
+
* Source-state hardcode: see top-of-file comment + deviation #11.
|
|
124
|
+
*/
|
|
125
|
+
export function acceptBookingOptionViaRequest(opt) {
|
|
126
|
+
const t = canTransition('BookingOption', 'REQUEST_PENDING', 'accept');
|
|
127
|
+
if (!t)
|
|
128
|
+
return {
|
|
129
|
+
ok: false,
|
|
130
|
+
error: {
|
|
131
|
+
kind: 'forbidden_state_transition',
|
|
132
|
+
from: 'BookingOption.REQUEST_PENDING',
|
|
133
|
+
to: 'accept',
|
|
134
|
+
path: '$',
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
const req = {
|
|
138
|
+
'@context': CARGO_CONTEXT_IRI,
|
|
139
|
+
'@type': 'BookingOptionRequest',
|
|
140
|
+
'@id': makeId('BookingOptionRequest'),
|
|
141
|
+
forBookingOption: opt['@id'],
|
|
142
|
+
requestStatus: 'REQUEST_PENDING',
|
|
143
|
+
};
|
|
144
|
+
return { ok: true, value: req };
|
|
145
|
+
}
|
|
94
146
|
//# sourceMappingURL=transitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/booking-flow/transitions.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/booking-flow/transitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,8 @@ export declare const AccountNumberSchema: z.ZodObject<{
|
|
|
4
4
|
'@context': z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
5
5
|
'@id': z.ZodString;
|
|
6
6
|
'@type': z.ZodLiteral<"AccountNumber">;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
accountType: z.ZodOptional<z.ZodEnum<{
|
|
10
|
-
IATA_CASS: "IATA_CASS";
|
|
11
|
-
INTERNAL: "INTERNAL";
|
|
12
|
-
OTHER: "OTHER";
|
|
13
|
-
}>>;
|
|
7
|
+
accountNumberType: z.ZodOptional<z.ZodString>;
|
|
8
|
+
textualValue: z.ZodOptional<z.ZodString>;
|
|
14
9
|
}, z.core.$strict>;
|
|
15
10
|
export type AccountNumber = z.infer<typeof AccountNumberSchema>;
|
|
16
11
|
export type JsonLdAccountNumber = JsonLd<'AccountNumber'>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/classes/account-number/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/classes/account-number/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAGvD,eAAO,MAAM,mBAAmB;;;;;;kBASrB,CAAA;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { safeIri } from '../../iri/zod-safe-iri.js';
|
|
3
2
|
import { LogisticsObjectSchema } from '../shared/logistics-object.js';
|
|
4
3
|
export const AccountNumberSchema = LogisticsObjectSchema.extend({
|
|
5
4
|
'@type': z.literal('AccountNumber'),
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
// :accountNumberType → :AccountType, owl:maxCardinality 1 (TTL DM 4780/4784-4785).
|
|
6
|
+
// String per open-codelist idiom — :AccountType is rdfs:subClassOf :CodeListElement,
|
|
7
|
+
// no owl:oneOf in DM or CL ontology (DM TTL 4801-4805).
|
|
8
|
+
accountNumberType: z.string().min(1).max(16).optional(),
|
|
9
|
+
// :textualValue → xsd:string, owl:maxCardinality 1 (TTL DM 4788/4791-4793). .max(35) = FWB account
|
|
10
|
+
// field width (editorial — the ontology has no length facet).
|
|
11
|
+
textualValue: z.string().min(1).max(35).optional(),
|
|
9
12
|
}).strict();
|
|
10
13
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/classes/account-number/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/classes/account-number/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAErE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAC9D,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IACnC,mFAAmF;IACnF,qFAAqF;IACrF,wDAAwD;IACxD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvD,mGAAmG;IACnG,8DAA8D;IAC9D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/classes/co2-emissions/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAInE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,YAAY,EAAE,kBAAkB,EAAE,cAAc,CAOzE,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { deserializeCO2Emissions } from './deserialize.js';
|
|
2
|
+
import { CO2EmissionsSchema } from './schema.js';
|
|
3
|
+
import { serializeCO2Emissions, serializeCO2EmissionsStrict } from './serialize.js';
|
|
4
|
+
export const CO2EmissionsCodec = Object.freeze({
|
|
5
|
+
schema: CO2EmissionsSchema,
|
|
6
|
+
serialize: serializeCO2Emissions,
|
|
7
|
+
serializeStrict: serializeCO2EmissionsStrict,
|
|
8
|
+
deserialize: deserializeCO2Emissions,
|
|
9
|
+
type: 'CO2Emissions',
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/classes/co2-emissions/codec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;AAEnF,MAAM,CAAC,MAAM,iBAAiB,GAC5B,MAAM,CAAC,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB;IAC1B,SAAS,EAAE,qBAAqB;IAChC,eAAe,EAAE,2BAA2B;IAC5C,WAAW,EAAE,uBAAuB;IACpC,IAAI,EAAE,cAAc;CACZ,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ParseResult } from '../../result.js';
|
|
2
|
+
import type { DeserializeOpts } from '../../safety/limits.js';
|
|
3
|
+
import type { CO2Emissions } from './schema.js';
|
|
4
|
+
export declare function deserializeCO2Emissions(input: unknown, opts?: DeserializeOpts): ParseResult<CO2Emissions>;
|
|
5
|
+
//# sourceMappingURL=deserialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../../src/classes/co2-emissions/deserialize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAG7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG/C,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,eAAoB,GACzB,WAAW,CAAC,YAAY,CAAC,CA2D3B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { assertContextAllowed } from '../../context.js';
|
|
2
|
+
import { findInvalidIriInIssues } from '../../iri/zod-safe-iri.js';
|
|
3
|
+
import { preValidate } from '../../safety/pre-validate.js';
|
|
4
|
+
import { findFirstEmptyArray, nullProtoClone, withMeta } from '../shared/parse-utils.js';
|
|
5
|
+
import { CO2EmissionsSchema } from './schema.js';
|
|
6
|
+
export function deserializeCO2Emissions(input, opts = {}) {
|
|
7
|
+
// 1. Pre-Zod sanity (depth/nodes/string/array/payload/pollution/cycle)
|
|
8
|
+
const preOpts = {};
|
|
9
|
+
if (opts.limits !== undefined)
|
|
10
|
+
preOpts.limits = opts.limits;
|
|
11
|
+
if (opts.payloadByteLength !== undefined)
|
|
12
|
+
preOpts.payloadByteLength = opts.payloadByteLength;
|
|
13
|
+
if (opts.meta !== undefined)
|
|
14
|
+
preOpts.meta = opts.meta;
|
|
15
|
+
const pre = preValidate(input, preOpts);
|
|
16
|
+
if (!pre.ok)
|
|
17
|
+
return pre;
|
|
18
|
+
// 2. v2 (A3-B2, A1-M4): @context allowlist enforced before Zod
|
|
19
|
+
if (pre.value && typeof pre.value === 'object' && '@context' in pre.value) {
|
|
20
|
+
const ctxOpts = {};
|
|
21
|
+
if (opts.allowedContexts !== undefined)
|
|
22
|
+
ctxOpts.allowedContexts = opts.allowedContexts;
|
|
23
|
+
if (opts.meta !== undefined)
|
|
24
|
+
ctxOpts.meta = opts.meta;
|
|
25
|
+
const ctxR = assertContextAllowed(pre.value['@context'], ctxOpts);
|
|
26
|
+
if (!ctxR.ok)
|
|
27
|
+
return ctxR;
|
|
28
|
+
}
|
|
29
|
+
// 3. v3 plan correction: empty-array rejection BEFORE Zod
|
|
30
|
+
const empty = findFirstEmptyArray(pre.value, '$');
|
|
31
|
+
if (empty) {
|
|
32
|
+
return {
|
|
33
|
+
ok: false,
|
|
34
|
+
error: withMeta({
|
|
35
|
+
kind: 'cardinality_violation',
|
|
36
|
+
field: empty.field,
|
|
37
|
+
expected: '>=1 or omit',
|
|
38
|
+
got: 0,
|
|
39
|
+
path: empty.path,
|
|
40
|
+
}, opts.meta),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// 4. Zod parse — lift safeIri-tagged issues to invalid_iri
|
|
44
|
+
const r = CO2EmissionsSchema.safeParse(pre.value);
|
|
45
|
+
if (!r.success) {
|
|
46
|
+
const iriErr = findInvalidIriInIssues(r.error.issues, '$');
|
|
47
|
+
if (iriErr)
|
|
48
|
+
return { ok: false, error: withMeta(iriErr, opts.meta) };
|
|
49
|
+
return {
|
|
50
|
+
ok: false,
|
|
51
|
+
error: withMeta({
|
|
52
|
+
kind: 'zod_validation',
|
|
53
|
+
issues: r.error.issues.map((i) => ({
|
|
54
|
+
path: i.path.length === 0 ? '$' : i.path.join('.'),
|
|
55
|
+
message: i.message,
|
|
56
|
+
code: i.code,
|
|
57
|
+
})),
|
|
58
|
+
}, opts.meta),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// 5. v2 (A1-M5, A3-M4): null-prototype clone the output graph
|
|
62
|
+
return { ok: true, value: nullProtoClone(r.data) };
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=deserialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../../../src/classes/co2-emissions/deserialize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { CO2EmissionsCodec } from './codec.js';
|
|
2
|
+
export { deserializeCO2Emissions } from './deserialize.js';
|
|
3
|
+
export { CO2EmissionsSchema } from './schema.js';
|
|
4
|
+
export type { CO2Emissions, JsonLdCO2Emissions } from './schema.js';
|
|
5
|
+
export { serializeCO2Emissions, serializeCO2EmissionsStrict } from './serialize.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/co2-emissions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { CO2EmissionsCodec } from './codec.js';
|
|
2
|
+
export { deserializeCO2Emissions } from './deserialize.js';
|
|
3
|
+
export { CO2EmissionsSchema } from './schema.js';
|
|
4
|
+
export { serializeCO2Emissions, serializeCO2EmissionsStrict } from './serialize.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/co2-emissions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { JsonLd } from '../shared/jsonld-brand.js';
|
|
3
|
+
export declare const CO2EmissionsSchema: z.ZodObject<{
|
|
4
|
+
'@context': z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
5
|
+
'@id': z.ZodString;
|
|
6
|
+
'@type': z.ZodLiteral<"CO2Emissions">;
|
|
7
|
+
calculatedEmissions: z.ZodOptional<z.ZodObject<{
|
|
8
|
+
'@type': z.ZodOptional<z.ZodLiteral<"Value">>;
|
|
9
|
+
numericalValue: z.ZodNumber;
|
|
10
|
+
unit: z.ZodString;
|
|
11
|
+
}, z.core.$strict>>;
|
|
12
|
+
calculationFor: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
|
|
13
|
+
methodName: z.ZodOptional<z.ZodString>;
|
|
14
|
+
methodVersion: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, z.core.$strict>;
|
|
16
|
+
export type CO2Emissions = z.infer<typeof CO2EmissionsSchema>;
|
|
17
|
+
export type JsonLdCO2Emissions = JsonLd<'CO2Emissions'>;
|
|
18
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/classes/co2-emissions/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;kBAMpB,CAAA;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { safeIri } from '../../iri/zod-safe-iri.js';
|
|
3
|
+
import { LogisticsObjectSchema } from '../shared/logistics-object.js';
|
|
4
|
+
import { ValueSchema } from '../shared/value.js';
|
|
5
|
+
export const CO2EmissionsSchema = LogisticsObjectSchema.extend({
|
|
6
|
+
'@type': z.literal('CO2Emissions'),
|
|
7
|
+
calculatedEmissions: ValueSchema.optional(),
|
|
8
|
+
calculationFor: safeIri().optional(),
|
|
9
|
+
methodName: z.string().min(1).max(128).optional(),
|
|
10
|
+
methodVersion: z.string().min(1).max(64).optional(),
|
|
11
|
+
}).strict();
|
|
12
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/classes/co2-emissions/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAClC,mBAAmB,EAAE,WAAW,CAAC,QAAQ,EAAE;IAC3C,cAAc,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACjD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ParseResult } from '../../result.js';
|
|
2
|
+
import type { SerializeOpts } from '../../safety/limits.js';
|
|
3
|
+
import type { CO2Emissions, JsonLdCO2Emissions } from './schema.js';
|
|
4
|
+
export declare function serializeCO2Emissions(input: CO2Emissions, _opts?: SerializeOpts): JsonLdCO2Emissions;
|
|
5
|
+
export declare function serializeCO2EmissionsStrict(input: CO2Emissions, _opts?: SerializeOpts): ParseResult<JsonLdCO2Emissions>;
|
|
6
|
+
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/classes/co2-emissions/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGnE,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE,aAAa,GACpB,kBAAkB,CAUpB;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE,aAAa,GACpB,WAAW,CAAC,kBAAkB,CAAC,CAgBjC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SerializationError } from '../../result.js';
|
|
2
|
+
import { omitEmpty } from '../shared/parse-utils.js';
|
|
3
|
+
import { CO2EmissionsSchema } from './schema.js';
|
|
4
|
+
export function serializeCO2Emissions(input, _opts) {
|
|
5
|
+
const r = CO2EmissionsSchema.safeParse(input);
|
|
6
|
+
if (!r.success) {
|
|
7
|
+
throw new SerializationError('invalid_application_object', 'SerializationError[invalid_application_object]: serializeCO2Emissions: invalid input', r.error.issues);
|
|
8
|
+
}
|
|
9
|
+
return omitEmpty(r.data);
|
|
10
|
+
}
|
|
11
|
+
export function serializeCO2EmissionsStrict(input, _opts) {
|
|
12
|
+
const r = CO2EmissionsSchema.safeParse(input);
|
|
13
|
+
if (!r.success) {
|
|
14
|
+
return {
|
|
15
|
+
ok: false,
|
|
16
|
+
error: {
|
|
17
|
+
kind: 'zod_validation',
|
|
18
|
+
issues: r.error.issues.map((i) => ({
|
|
19
|
+
path: i.path.length === 0 ? '$' : i.path.join('.'),
|
|
20
|
+
message: i.message,
|
|
21
|
+
code: i.code,
|
|
22
|
+
})),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return { ok: true, value: omitEmpty(r.data) };
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../src/classes/co2-emissions/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,UAAU,qBAAqB,CACnC,KAAmB,EACnB,KAAqB;IAErB,MAAM,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7C,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,kBAAkB,CAC1B,4BAA4B,EAC5B,sFAAsF,EACtF,CAAC,CAAC,KAAK,CAAC,MAAM,CACf,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAkC,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAmB,EACnB,KAAqB;IAErB,MAAM,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7C,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBAClD,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;aACJ;SACF,CAAA;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAkC,EAAE,CAAA;AAChF,CAAC"}
|