@flaks/onerecord 0.3.0 → 0.4.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 (87) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/MIGRATING.md +15 -0
  3. package/dist/classes/composing/codec.d.ts +4 -0
  4. package/dist/classes/composing/codec.d.ts.map +1 -0
  5. package/dist/classes/composing/codec.js +11 -0
  6. package/dist/classes/composing/codec.js.map +1 -0
  7. package/dist/classes/composing/deserialize.d.ts +5 -0
  8. package/dist/classes/composing/deserialize.d.ts.map +1 -0
  9. package/dist/classes/composing/deserialize.js +64 -0
  10. package/dist/classes/composing/deserialize.js.map +1 -0
  11. package/dist/classes/composing/index.d.ts +6 -0
  12. package/dist/classes/composing/index.d.ts.map +1 -0
  13. package/dist/classes/composing/index.js +5 -0
  14. package/dist/classes/composing/index.js.map +1 -0
  15. package/dist/classes/composing/schema.d.ts +27 -0
  16. package/dist/classes/composing/schema.d.ts.map +1 -0
  17. package/dist/classes/composing/schema.js +19 -0
  18. package/dist/classes/composing/schema.js.map +1 -0
  19. package/dist/classes/composing/serialize.d.ts +6 -0
  20. package/dist/classes/composing/serialize.d.ts.map +1 -0
  21. package/dist/classes/composing/serialize.js +28 -0
  22. package/dist/classes/composing/serialize.js.map +1 -0
  23. package/dist/classes/loading-material/codec.d.ts +4 -0
  24. package/dist/classes/loading-material/codec.d.ts.map +1 -0
  25. package/dist/classes/loading-material/codec.js +11 -0
  26. package/dist/classes/loading-material/codec.js.map +1 -0
  27. package/dist/classes/loading-material/deserialize.d.ts +5 -0
  28. package/dist/classes/loading-material/deserialize.d.ts.map +1 -0
  29. package/dist/classes/loading-material/deserialize.js +64 -0
  30. package/dist/classes/loading-material/deserialize.js.map +1 -0
  31. package/dist/classes/loading-material/index.d.ts +6 -0
  32. package/dist/classes/loading-material/index.d.ts.map +1 -0
  33. package/dist/classes/loading-material/index.js +5 -0
  34. package/dist/classes/loading-material/index.js.map +1 -0
  35. package/dist/classes/loading-material/schema.d.ts +20 -0
  36. package/dist/classes/loading-material/schema.d.ts.map +1 -0
  37. package/dist/classes/loading-material/schema.js +14 -0
  38. package/dist/classes/loading-material/schema.js.map +1 -0
  39. package/dist/classes/loading-material/serialize.d.ts +6 -0
  40. package/dist/classes/loading-material/serialize.d.ts.map +1 -0
  41. package/dist/classes/loading-material/serialize.js +28 -0
  42. package/dist/classes/loading-material/serialize.js.map +1 -0
  43. package/dist/classes/unit-composition/codec.d.ts +4 -0
  44. package/dist/classes/unit-composition/codec.d.ts.map +1 -0
  45. package/dist/classes/unit-composition/codec.js +11 -0
  46. package/dist/classes/unit-composition/codec.js.map +1 -0
  47. package/dist/classes/unit-composition/deserialize.d.ts +5 -0
  48. package/dist/classes/unit-composition/deserialize.d.ts.map +1 -0
  49. package/dist/classes/unit-composition/deserialize.js +64 -0
  50. package/dist/classes/unit-composition/deserialize.js.map +1 -0
  51. package/dist/classes/unit-composition/index.d.ts +6 -0
  52. package/dist/classes/unit-composition/index.d.ts.map +1 -0
  53. package/dist/classes/unit-composition/index.js +5 -0
  54. package/dist/classes/unit-composition/index.js.map +1 -0
  55. package/dist/classes/unit-composition/schema.d.ts +15 -0
  56. package/dist/classes/unit-composition/schema.d.ts.map +1 -0
  57. package/dist/classes/unit-composition/schema.js +12 -0
  58. package/dist/classes/unit-composition/schema.js.map +1 -0
  59. package/dist/classes/unit-composition/serialize.d.ts +6 -0
  60. package/dist/classes/unit-composition/serialize.d.ts.map +1 -0
  61. package/dist/classes/unit-composition/serialize.js +28 -0
  62. package/dist/classes/unit-composition/serialize.js.map +1 -0
  63. package/dist/codecs.d.ts +4 -1
  64. package/dist/codecs.d.ts.map +1 -1
  65. package/dist/codecs.js +4 -1
  66. package/dist/codecs.js.map +1 -1
  67. package/dist/codes/enums.d.ts +5 -0
  68. package/dist/codes/enums.d.ts.map +1 -1
  69. package/dist/codes/enums.js +1 -0
  70. package/dist/codes/enums.js.map +1 -1
  71. package/dist/codes/index.d.ts +1 -1
  72. package/dist/codes/index.d.ts.map +1 -1
  73. package/dist/codes/index.js +1 -1
  74. package/dist/codes/index.js.map +1 -1
  75. package/dist/facade.d.ts +5 -2
  76. package/dist/facade.d.ts.map +1 -1
  77. package/dist/factory-classes.d.ts +6 -0
  78. package/dist/factory-classes.d.ts.map +1 -1
  79. package/dist/factory-classes.js +6 -0
  80. package/dist/factory-classes.js.map +1 -1
  81. package/dist/index.d.ts +7 -1
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +7 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/version.d.ts +1 -1
  86. package/dist/version.js +1 -1
  87. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,42 @@ All notable changes are documented here. Format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/), versioning follows
5
5
  [SemVer](https://semver.org/) per the policy in `MIGRATING.md`.
6
6
 
7
+ ## [0.4.0] - 2026-05-19
8
+
9
+ ULD composition classes: the `:UnitComposition` / `:Composing` /
10
+ `:LoadingMaterial` ULD-build model plus the `CompositionType` code list.
11
+ Purely **additive** — no breaking changes, no schema rewrites. Every
12
+ modelling deviation is non-breaking and documented in
13
+ `docs/spec-deviations.md` §17. No migration required (see `MIGRATING.md`).
14
+
15
+ ### Added
16
+
17
+ - **`CompositionType`** code list — `COMPOSITION` | `DECOMPOSITION`
18
+ (`:CompositionType` individuals); the action sense of a `Composing` record.
19
+ - **`LoadingMaterial`** class — `:LoadingMaterial` (dunnage / securing /
20
+ load-distribution material used in a ULD build).
21
+ - **`UnitComposition`** class — `:UnitComposition` (the assembled ULD-load
22
+ record grouping a `ULD` with its constituent `Piece`s and loading material).
23
+ - **`Composing`** class — `:Composing` (the `:LogisticsActivity`-derived
24
+ loading/unloading action that produces or breaks a `UnitComposition`;
25
+ carries `compositionType`).
26
+ - **`ULD.inUnitComposition`** property — back-reference from a `ULD` to the
27
+ `UnitComposition` it participates in.
28
+ - Codecs, schemas, and `serialize*` / `serialize*Strict` / `deserialize*`
29
+ helpers for `LoadingMaterial`, `UnitComposition`, and `Composing`
30
+ (`*Codec`, `*Schema`, `serializeComposing`, `serializeComposingStrict`,
31
+ `deserializeComposing`, and the `UnitComposition` / `LoadingMaterial`
32
+ equivalents).
33
+
34
+ ### Notes
35
+
36
+ - Several inherited optional `:LogisticsActivity` / `:LogisticsObject`
37
+ properties are intentionally omitted from `Composing` / `UnitComposition`
38
+ (e.g. `actionTimeType`, `contactDetails`, `executionStatus`,
39
+ `checkActions`, `servedServices`). All are optional in the 3.2-rc2
40
+ ontology and can be added non-breakingly later — see
41
+ `docs/spec-deviations.md` §17 for the per-property rationale.
42
+
7
43
  ## [0.3.0] - 2026-05-17
8
44
 
9
45
  FWB-equivalence Path A: 10 new classes, schema rewrites for the core FWB
package/MIGRATING.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  This file documents one entry per minor release.
4
4
 
5
+ ## Migrating from v0.3.x to v0.4.0
6
+
7
+ **No action required.** v0.4.0 is purely additive: it introduces the ULD
8
+ composition model (`UnitComposition`, `Composing`, `LoadingMaterial`, the
9
+ `CompositionType` code list, and the `ULD.inUnitComposition` back-reference).
10
+
11
+ - No classes removed, no fields renamed, no schema shapes changed.
12
+ - Existing v0.3.x wire payloads validate and round-trip unchanged.
13
+ - Adopt the new classes only if you produce or consume ULD-build records;
14
+ otherwise upgrading is transparent.
15
+
16
+ Per the SemVer policy below, this minor bump carries no breaking changes
17
+ (it could have, but does not). Every modelling deviation in the new classes
18
+ is non-breaking and documented in `docs/spec-deviations.md` §17.
19
+
5
20
  ## Migrating from v0.2.x to v0.3.0
6
21
 
7
22
  v0.3.0 is a **breaking release**. Review every item below before upgrading.
@@ -0,0 +1,4 @@
1
+ import type { Codec } from '../shared/codec.js';
2
+ import type { Composing, JsonLdComposing } from './schema.js';
3
+ export declare const ComposingCodec: Codec<Composing, JsonLdComposing, 'Composing'>;
4
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/classes/composing/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7D,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,WAAW,CAM/D,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { deserializeComposing } from './deserialize.js';
2
+ import { ComposingSchema } from './schema.js';
3
+ import { serializeComposing, serializeComposingStrict } from './serialize.js';
4
+ export const ComposingCodec = Object.freeze({
5
+ schema: ComposingSchema,
6
+ serialize: serializeComposing,
7
+ serializeStrict: serializeComposingStrict,
8
+ deserialize: deserializeComposing,
9
+ type: 'Composing',
10
+ });
11
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/classes/composing/codec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAE7E,MAAM,CAAC,MAAM,cAAc,GAAmD,MAAM,CAAC,MAAM,CAAC;IAC1F,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,kBAAkB;IAC7B,eAAe,EAAE,wBAAwB;IACzC,WAAW,EAAE,oBAAoB;IACjC,IAAI,EAAE,WAAW;CACT,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { ParseResult } from '../../result.js';
2
+ import type { DeserializeOpts } from '../../safety/limits.js';
3
+ import type { Composing } from './schema.js';
4
+ export declare function deserializeComposing(input: unknown, opts?: DeserializeOpts): ParseResult<Composing>;
5
+ //# sourceMappingURL=deserialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../../src/classes/composing/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,SAAS,EAAE,MAAM,aAAa,CAAA;AAG5C,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,eAAoB,GACzB,WAAW,CAAC,SAAS,CAAC,CA2DxB"}
@@ -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 { ComposingSchema } from './schema.js';
6
+ export function deserializeComposing(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 = ComposingSchema.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/composing/deserialize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { ComposingCodec } from './codec.js';
2
+ export { deserializeComposing } from './deserialize.js';
3
+ export { ComposingSchema } from './schema.js';
4
+ export type { JsonLdComposing, Composing } from './schema.js';
5
+ export { serializeComposing, serializeComposingStrict } from './serialize.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/composing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { ComposingCodec } from './codec.js';
2
+ export { deserializeComposing } from './deserialize.js';
3
+ export { ComposingSchema } from './schema.js';
4
+ export { serializeComposing, serializeComposingStrict } from './serialize.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/composing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ import type { JsonLd } from '../shared/jsonld-brand.js';
3
+ export declare const ComposingSchema: z.ZodObject<{
4
+ '@context': z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
5
+ '@id': z.ZodString;
6
+ '@type': z.ZodLiteral<"Composing">;
7
+ composedPieces: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>>;
8
+ composedMaterials: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>>;
9
+ compositionType: z.ZodOptional<z.ZodEnum<{
10
+ COMPOSITION: "COMPOSITION";
11
+ DECOMPOSITION: "DECOMPOSITION";
12
+ }>>;
13
+ loadingUnit: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
14
+ actionStartTime: z.ZodOptional<z.ZodString>;
15
+ actionEndTime: z.ZodOptional<z.ZodString>;
16
+ performedAt: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
17
+ servedActivity: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
18
+ contactPersons: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>>;
19
+ otherIdentifiers: z.ZodOptional<z.ZodArray<z.ZodObject<{
20
+ '@type': z.ZodOptional<z.ZodLiteral<"OtherIdentifier">>;
21
+ otherIdentifierType: z.ZodString;
22
+ textualValue: z.ZodString;
23
+ }, z.core.$strict>>>;
24
+ }, z.core.$strict>;
25
+ export type Composing = z.infer<typeof ComposingSchema>;
26
+ export type JsonLdComposing = JsonLd<'Composing'>;
27
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/classes/composing/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;kBAYjB,CAAA;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import { CompositionType } from '../../codes/index.js';
3
+ import { safeIri } from '../../iri/zod-safe-iri.js';
4
+ import { LogisticsObjectSchema } from '../shared/logistics-object.js';
5
+ import { OtherIdentifierSchema } from '../shared/value.js';
6
+ export const ComposingSchema = LogisticsObjectSchema.extend({
7
+ '@type': z.literal('Composing'),
8
+ composedPieces: z.array(safeIri()).optional(), // → :Piece[]
9
+ composedMaterials: z.array(safeIri()).optional(), // → :LoadingMaterial[]
10
+ compositionType: CompositionType.optional(), // max1
11
+ loadingUnit: safeIri().optional(), // → :LoadingUnit max1
12
+ actionStartTime: z.string().datetime({ offset: true }).optional(),
13
+ actionEndTime: z.string().datetime({ offset: true }).optional(),
14
+ performedAt: safeIri().optional(), // → :Location max1
15
+ servedActivity: safeIri().optional(), // → :UnitComposition max1
16
+ contactPersons: z.array(safeIri()).optional(),
17
+ otherIdentifiers: z.array(OtherIdentifierSchema).optional(),
18
+ }).strict();
19
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/classes/composing/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAC1D,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC/B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,aAAa;IAC5D,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,uBAAuB;IACzE,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE,EAAE,OAAO;IACpD,WAAW,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,sBAAsB;IACzD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/D,WAAW,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,mBAAmB;IACtD,cAAc,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,0BAA0B;IAChE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;CAC5D,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 { Composing, JsonLdComposing } from './schema.js';
4
+ export declare function serializeComposing(input: Composing, _opts?: SerializeOpts): JsonLdComposing;
5
+ export declare function serializeComposingStrict(input: Composing, _opts?: SerializeOpts): ParseResult<JsonLdComposing>;
6
+ //# sourceMappingURL=serialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/classes/composing/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,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,eAAe,CAU3F;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,EAChB,KAAK,CAAC,EAAE,aAAa,GACpB,WAAW,CAAC,eAAe,CAAC,CAgB9B"}
@@ -0,0 +1,28 @@
1
+ import { SerializationError } from '../../result.js';
2
+ import { omitEmpty } from '../shared/parse-utils.js';
3
+ import { ComposingSchema } from './schema.js';
4
+ export function serializeComposing(input, _opts) {
5
+ const r = ComposingSchema.safeParse(input);
6
+ if (!r.success) {
7
+ throw new SerializationError('invalid_application_object', 'SerializationError[invalid_application_object]: serializeComposing: invalid input', r.error.issues);
8
+ }
9
+ return omitEmpty(r.data);
10
+ }
11
+ export function serializeComposingStrict(input, _opts) {
12
+ const r = ComposingSchema.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/composing/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,UAAU,kBAAkB,CAAC,KAAgB,EAAE,KAAqB;IACxE,MAAM,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,kBAAkB,CAC1B,4BAA4B,EAC5B,mFAAmF,EACnF,CAAC,CAAC,KAAK,CAAC,MAAM,CACf,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAA+B,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAgB,EAChB,KAAqB;IAErB,MAAM,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC1C,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,CAA+B,EAAE,CAAA;AAC7E,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Codec } from '../shared/codec.js';
2
+ import type { JsonLdLoadingMaterial, LoadingMaterial } from './schema.js';
3
+ export declare const LoadingMaterialCodec: Codec<LoadingMaterial, JsonLdLoadingMaterial, 'LoadingMaterial'>;
4
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/classes/loading-material/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAIzE,eAAO,MAAM,oBAAoB,EAAE,KAAK,CACtC,eAAe,EACf,qBAAqB,EACrB,iBAAiB,CAOR,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { deserializeLoadingMaterial } from './deserialize.js';
2
+ import { LoadingMaterialSchema } from './schema.js';
3
+ import { serializeLoadingMaterial, serializeLoadingMaterialStrict } from './serialize.js';
4
+ export const LoadingMaterialCodec = Object.freeze({
5
+ schema: LoadingMaterialSchema,
6
+ serialize: serializeLoadingMaterial,
7
+ serializeStrict: serializeLoadingMaterialStrict,
8
+ deserialize: deserializeLoadingMaterial,
9
+ type: 'LoadingMaterial',
10
+ });
11
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/classes/loading-material/codec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAI7B,MAAM,CAAC,MAAM,CAAC;IAChB,MAAM,EAAE,qBAAqB;IAC7B,SAAS,EAAE,wBAAwB;IACnC,eAAe,EAAE,8BAA8B;IAC/C,WAAW,EAAE,0BAA0B;IACvC,IAAI,EAAE,iBAAiB;CACf,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { ParseResult } from '../../result.js';
2
+ import type { DeserializeOpts } from '../../safety/limits.js';
3
+ import type { LoadingMaterial } from './schema.js';
4
+ export declare function deserializeLoadingMaterial(input: unknown, opts?: DeserializeOpts): ParseResult<LoadingMaterial>;
5
+ //# sourceMappingURL=deserialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../../src/classes/loading-material/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,eAAe,EAAE,MAAM,aAAa,CAAA;AAGlD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,eAAoB,GACzB,WAAW,CAAC,eAAe,CAAC,CA2D9B"}
@@ -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 { LoadingMaterialSchema } from './schema.js';
6
+ export function deserializeLoadingMaterial(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 = LoadingMaterialSchema.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/loading-material/deserialize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { LoadingMaterialCodec } from './codec.js';
2
+ export { deserializeLoadingMaterial } from './deserialize.js';
3
+ export { LoadingMaterialSchema } from './schema.js';
4
+ export type { JsonLdLoadingMaterial, LoadingMaterial } from './schema.js';
5
+ export { serializeLoadingMaterial, serializeLoadingMaterialStrict } from './serialize.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/loading-material/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { LoadingMaterialCodec } from './codec.js';
2
+ export { deserializeLoadingMaterial } from './deserialize.js';
3
+ export { LoadingMaterialSchema } from './schema.js';
4
+ export { serializeLoadingMaterial, serializeLoadingMaterialStrict } from './serialize.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/loading-material/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ import type { JsonLd } from '../shared/jsonld-brand.js';
3
+ export declare const LoadingMaterialSchema: z.ZodObject<{
4
+ '@context': z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
5
+ '@id': z.ZodString;
6
+ '@type': z.ZodLiteral<"LoadingMaterial">;
7
+ description: z.ZodOptional<z.ZodString>;
8
+ materialType: z.ZodOptional<z.ZodString>;
9
+ materialModel: z.ZodOptional<z.ZodString>;
10
+ serialNumber: z.ZodOptional<z.ZodString>;
11
+ manufacturer: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
12
+ otherIdentifiers: z.ZodOptional<z.ZodArray<z.ZodObject<{
13
+ '@type': z.ZodOptional<z.ZodLiteral<"OtherIdentifier">>;
14
+ otherIdentifierType: z.ZodString;
15
+ textualValue: z.ZodString;
16
+ }, z.core.$strict>>>;
17
+ }, z.core.$strict>;
18
+ export type LoadingMaterial = z.infer<typeof LoadingMaterialSchema>;
19
+ export type JsonLdLoadingMaterial = JsonLd<'LoadingMaterial'>;
20
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/classes/loading-material/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIvD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;kBAQvB,CAAA;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACnE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { safeIri } from '../../iri/zod-safe-iri.js';
3
+ import { LogisticsObjectSchema } from '../shared/logistics-object.js';
4
+ import { OtherIdentifierSchema } from '../shared/value.js';
5
+ export const LoadingMaterialSchema = LogisticsObjectSchema.extend({
6
+ '@type': z.literal('LoadingMaterial'),
7
+ description: z.string().min(1).max(512).optional(), // :description xsd:string max1
8
+ materialType: z.string().min(1).max(64).optional(), // :materialType xsd:string max1
9
+ materialModel: z.string().min(1).max(64).optional(), // :materialModel xsd:string max1
10
+ serialNumber: z.string().min(1).max(64).optional(), // :serialNumber xsd:string max1
11
+ manufacturer: safeIri().optional(), // :manufacturer → :Organization max1
12
+ otherIdentifiers: z.array(OtherIdentifierSchema).optional(),
13
+ }).strict();
14
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/classes/loading-material/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,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAChE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,+BAA+B;IACnF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,gCAAgC;IACpF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,iCAAiC;IACtF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,gCAAgC;IACpF,YAAY,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,qCAAqC;IACzE,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;CAC5D,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 { JsonLdLoadingMaterial, LoadingMaterial } from './schema.js';
4
+ export declare function serializeLoadingMaterial(input: LoadingMaterial, _opts?: SerializeOpts): JsonLdLoadingMaterial;
5
+ export declare function serializeLoadingMaterialStrict(input: LoadingMaterial, _opts?: SerializeOpts): ParseResult<JsonLdLoadingMaterial>;
6
+ //# sourceMappingURL=serialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/classes/loading-material/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,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAGzE,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,KAAK,CAAC,EAAE,aAAa,GACpB,qBAAqB,CAUvB;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,eAAe,EACtB,KAAK,CAAC,EAAE,aAAa,GACpB,WAAW,CAAC,qBAAqB,CAAC,CAgBpC"}
@@ -0,0 +1,28 @@
1
+ import { SerializationError } from '../../result.js';
2
+ import { omitEmpty } from '../shared/parse-utils.js';
3
+ import { LoadingMaterialSchema } from './schema.js';
4
+ export function serializeLoadingMaterial(input, _opts) {
5
+ const r = LoadingMaterialSchema.safeParse(input);
6
+ if (!r.success) {
7
+ throw new SerializationError('invalid_application_object', 'SerializationError[invalid_application_object]: serializeLoadingMaterial: invalid input', r.error.issues);
8
+ }
9
+ return omitEmpty(r.data);
10
+ }
11
+ export function serializeLoadingMaterialStrict(input, _opts) {
12
+ const r = LoadingMaterialSchema.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/loading-material/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,MAAM,UAAU,wBAAwB,CACtC,KAAsB,EACtB,KAAqB;IAErB,MAAM,CAAC,GAAG,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAChD,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,kBAAkB,CAC1B,4BAA4B,EAC5B,yFAAyF,EACzF,CAAC,CAAC,KAAK,CAAC,MAAM,CACf,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAqC,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAsB,EACtB,KAAqB;IAErB,MAAM,CAAC,GAAG,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAChD,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,CAAqC,EAAE,CAAA;AACnF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Codec } from '../shared/codec.js';
2
+ import type { JsonLdUnitComposition, UnitComposition } from './schema.js';
3
+ export declare const UnitCompositionCodec: Codec<UnitComposition, JsonLdUnitComposition, 'UnitComposition'>;
4
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/classes/unit-composition/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAIzE,eAAO,MAAM,oBAAoB,EAAE,KAAK,CACtC,eAAe,EACf,qBAAqB,EACrB,iBAAiB,CAOR,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { deserializeUnitComposition } from './deserialize.js';
2
+ import { UnitCompositionSchema } from './schema.js';
3
+ import { serializeUnitComposition, serializeUnitCompositionStrict } from './serialize.js';
4
+ export const UnitCompositionCodec = Object.freeze({
5
+ schema: UnitCompositionSchema,
6
+ serialize: serializeUnitComposition,
7
+ serializeStrict: serializeUnitCompositionStrict,
8
+ deserialize: deserializeUnitComposition,
9
+ type: 'UnitComposition',
10
+ });
11
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../src/classes/unit-composition/codec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAI7B,MAAM,CAAC,MAAM,CAAC;IAChB,MAAM,EAAE,qBAAqB;IAC7B,SAAS,EAAE,wBAAwB;IACnC,eAAe,EAAE,8BAA8B;IAC/C,WAAW,EAAE,0BAA0B;IACvC,IAAI,EAAE,iBAAiB;CACf,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { ParseResult } from '../../result.js';
2
+ import type { DeserializeOpts } from '../../safety/limits.js';
3
+ import type { UnitComposition } from './schema.js';
4
+ export declare function deserializeUnitComposition(input: unknown, opts?: DeserializeOpts): ParseResult<UnitComposition>;
5
+ //# sourceMappingURL=deserialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserialize.d.ts","sourceRoot":"","sources":["../../../src/classes/unit-composition/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,eAAe,EAAE,MAAM,aAAa,CAAA;AAGlD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,eAAoB,GACzB,WAAW,CAAC,eAAe,CAAC,CA2D9B"}