@flaks/onerecord 0.4.0 → 0.6.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 (149) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/MIGRATING.md +108 -0
  3. package/README.md +7 -0
  4. package/dist/api/index.d.ts +296 -0
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/index.js +197 -0
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/booking-flow/can-transition.d.ts +3 -0
  9. package/dist/booking-flow/can-transition.d.ts.map +1 -1
  10. package/dist/booking-flow/can-transition.js +3 -0
  11. package/dist/booking-flow/can-transition.js.map +1 -1
  12. package/dist/booking-flow/state-diagram.d.ts +5 -1
  13. package/dist/booking-flow/state-diagram.d.ts.map +1 -1
  14. package/dist/booking-flow/state-diagram.js +5 -1
  15. package/dist/booking-flow/state-diagram.js.map +1 -1
  16. package/dist/booking-flow/transitions.d.ts +14 -1
  17. package/dist/booking-flow/transitions.d.ts.map +1 -1
  18. package/dist/booking-flow/transitions.js +73 -18
  19. package/dist/booking-flow/transitions.js.map +1 -1
  20. package/dist/classes/booking/schema.d.ts +94 -4
  21. package/dist/classes/booking/schema.d.ts.map +1 -1
  22. package/dist/classes/booking/schema.js +43 -2
  23. package/dist/classes/booking/schema.js.map +1 -1
  24. package/dist/classes/booking-option/schema.d.ts +58 -4
  25. package/dist/classes/booking-option/schema.d.ts.map +1 -1
  26. package/dist/classes/booking-option/schema.js +24 -2
  27. package/dist/classes/booking-option/schema.js.map +1 -1
  28. package/dist/classes/booking-request/schema.d.ts +17 -4
  29. package/dist/classes/booking-request/schema.d.ts.map +1 -1
  30. package/dist/classes/booking-request/schema.js +20 -7
  31. package/dist/classes/booking-request/schema.js.map +1 -1
  32. package/dist/classes/party/schema.d.ts +1 -1
  33. package/dist/classes/price/codec.d.ts +4 -0
  34. package/dist/classes/price/codec.d.ts.map +1 -0
  35. package/dist/classes/price/codec.js +11 -0
  36. package/dist/classes/price/codec.js.map +1 -0
  37. package/dist/classes/price/deserialize.d.ts +5 -0
  38. package/dist/classes/price/deserialize.d.ts.map +1 -0
  39. package/dist/classes/{organization → price}/deserialize.js +3 -3
  40. package/dist/classes/price/deserialize.js.map +1 -0
  41. package/dist/classes/price/index.d.ts +6 -0
  42. package/dist/classes/price/index.d.ts.map +1 -0
  43. package/dist/classes/price/index.js +5 -0
  44. package/dist/classes/price/index.js.map +1 -0
  45. package/dist/classes/price/schema.d.ts +14 -0
  46. package/dist/classes/price/schema.d.ts.map +1 -0
  47. package/dist/classes/price/schema.js +12 -0
  48. package/dist/classes/price/schema.js.map +1 -0
  49. package/dist/classes/price/serialize.d.ts +6 -0
  50. package/dist/classes/price/serialize.d.ts.map +1 -0
  51. package/dist/classes/{organization → price}/serialize.js +6 -6
  52. package/dist/classes/price/serialize.js.map +1 -0
  53. package/dist/classes/ratings/codec.d.ts +4 -0
  54. package/dist/classes/ratings/codec.d.ts.map +1 -0
  55. package/dist/classes/ratings/codec.js +11 -0
  56. package/dist/classes/ratings/codec.js.map +1 -0
  57. package/dist/classes/ratings/deserialize.d.ts +5 -0
  58. package/dist/classes/ratings/deserialize.d.ts.map +1 -0
  59. package/dist/classes/ratings/deserialize.js +64 -0
  60. package/dist/classes/ratings/deserialize.js.map +1 -0
  61. package/dist/classes/ratings/index.d.ts +6 -0
  62. package/dist/classes/ratings/index.d.ts.map +1 -0
  63. package/dist/classes/ratings/index.js +5 -0
  64. package/dist/classes/ratings/index.js.map +1 -0
  65. package/dist/classes/ratings/schema.d.ts +60 -0
  66. package/dist/classes/ratings/schema.d.ts.map +1 -0
  67. package/dist/classes/ratings/schema.js +23 -0
  68. package/dist/classes/ratings/schema.js.map +1 -0
  69. package/dist/classes/ratings/serialize.d.ts +6 -0
  70. package/dist/classes/ratings/serialize.d.ts.map +1 -0
  71. package/dist/classes/ratings/serialize.js +28 -0
  72. package/dist/classes/ratings/serialize.js.map +1 -0
  73. package/dist/classes/shared/distribution.d.ts +109 -0
  74. package/dist/classes/shared/distribution.d.ts.map +1 -0
  75. package/dist/classes/shared/distribution.js +97 -0
  76. package/dist/classes/shared/distribution.js.map +1 -0
  77. package/dist/classes/transport-legs/codec.d.ts +4 -0
  78. package/dist/classes/transport-legs/codec.d.ts.map +1 -0
  79. package/dist/classes/transport-legs/codec.js +11 -0
  80. package/dist/classes/transport-legs/codec.js.map +1 -0
  81. package/dist/classes/transport-legs/deserialize.d.ts +5 -0
  82. package/dist/classes/transport-legs/deserialize.d.ts.map +1 -0
  83. package/dist/classes/transport-legs/deserialize.js +64 -0
  84. package/dist/classes/transport-legs/deserialize.js.map +1 -0
  85. package/dist/classes/transport-legs/index.d.ts +6 -0
  86. package/dist/classes/transport-legs/index.d.ts.map +1 -0
  87. package/dist/classes/transport-legs/index.js +5 -0
  88. package/dist/classes/transport-legs/index.js.map +1 -0
  89. package/dist/classes/transport-legs/schema.d.ts +25 -0
  90. package/dist/classes/transport-legs/schema.d.ts.map +1 -0
  91. package/dist/classes/transport-legs/schema.js +19 -0
  92. package/dist/classes/transport-legs/schema.js.map +1 -0
  93. package/dist/classes/transport-legs/serialize.d.ts +6 -0
  94. package/dist/classes/transport-legs/serialize.d.ts.map +1 -0
  95. package/dist/classes/transport-legs/serialize.js +28 -0
  96. package/dist/classes/transport-legs/serialize.js.map +1 -0
  97. package/dist/classes/transport-movement/schema.d.ts +1 -1
  98. package/dist/codecs.d.ts +3 -0
  99. package/dist/codecs.d.ts.map +1 -1
  100. package/dist/codecs.js +3 -0
  101. package/dist/codecs.js.map +1 -1
  102. package/dist/codes/enums.d.ts +59 -8
  103. package/dist/codes/enums.d.ts.map +1 -1
  104. package/dist/codes/enums.js +45 -10
  105. package/dist/codes/enums.js.map +1 -1
  106. package/dist/codes/index.d.ts +1 -1
  107. package/dist/codes/index.d.ts.map +1 -1
  108. package/dist/codes/index.js +1 -1
  109. package/dist/codes/index.js.map +1 -1
  110. package/dist/dispatch/field-types.d.ts.map +1 -1
  111. package/dist/dispatch/field-types.js +30 -1
  112. package/dist/dispatch/field-types.js.map +1 -1
  113. package/dist/dispatch/iri-canonical.d.ts +5 -1
  114. package/dist/dispatch/iri-canonical.d.ts.map +1 -1
  115. package/dist/dispatch/iri-canonical.js +6 -2
  116. package/dist/dispatch/iri-canonical.js.map +1 -1
  117. package/dist/facade.d.ts +7 -4
  118. package/dist/facade.d.ts.map +1 -1
  119. package/dist/factory-classes.d.ts +6 -0
  120. package/dist/factory-classes.d.ts.map +1 -1
  121. package/dist/factory-classes.js +6 -0
  122. package/dist/factory-classes.js.map +1 -1
  123. package/dist/index.d.ts +9 -1
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +11 -1
  126. package/dist/index.js.map +1 -1
  127. package/dist/types/index.d.ts +5 -0
  128. package/dist/types/index.d.ts.map +1 -1
  129. package/dist/version.d.ts +1 -1
  130. package/dist/version.js +1 -1
  131. package/package.json +10 -5
  132. package/dist/classes/organization/codec.d.ts +0 -4
  133. package/dist/classes/organization/codec.d.ts.map +0 -1
  134. package/dist/classes/organization/codec.js +0 -11
  135. package/dist/classes/organization/codec.js.map +0 -1
  136. package/dist/classes/organization/deserialize.d.ts +0 -5
  137. package/dist/classes/organization/deserialize.d.ts.map +0 -1
  138. package/dist/classes/organization/deserialize.js.map +0 -1
  139. package/dist/classes/organization/index.d.ts +0 -6
  140. package/dist/classes/organization/index.d.ts.map +0 -1
  141. package/dist/classes/organization/index.js +0 -5
  142. package/dist/classes/organization/index.js.map +0 -1
  143. package/dist/classes/organization/schema.d.ts +0 -14
  144. package/dist/classes/organization/schema.d.ts.map +0 -1
  145. package/dist/classes/organization/schema.js +0 -11
  146. package/dist/classes/organization/schema.js.map +0 -1
  147. package/dist/classes/organization/serialize.d.ts +0 -6
  148. package/dist/classes/organization/serialize.d.ts.map +0 -1
  149. package/dist/classes/organization/serialize.js.map +0 -1
@@ -0,0 +1,197 @@
1
+ import { z } from 'zod';
2
+ import { safeIri } from '../iri/zod-safe-iri.js';
3
+ /**
4
+ * Endorsed ONE Record production baseline (28 July 2025).
5
+ *
6
+ * The development specification is deliberately not used as the default wire
7
+ * contract. Development versions can be advertised in addition to this
8
+ * baseline once a product implements them completely.
9
+ */
10
+ export const ONE_RECORD_API_VERSION = '2.2.0';
11
+ export const ONE_RECORD_CARGO_ONTOLOGY_VERSION = '3.2.0';
12
+ export const ONE_RECORD_ORCHESTRATION_VERSION = '1.1.0';
13
+ export const ONE_RECORD_API_ONTOLOGY = 'https://onerecord.iata.org/ns/api';
14
+ export const ONE_RECORD_CARGO_ONTOLOGY = 'https://onerecord.iata.org/ns/cargo';
15
+ export const ONE_RECORD_API_ONTOLOGY_VERSION = `${ONE_RECORD_API_ONTOLOGY}/${ONE_RECORD_API_VERSION}`;
16
+ export const ONE_RECORD_CARGO_ONTOLOGY_VERSION_IRI = `${ONE_RECORD_CARGO_ONTOLOGY}/${ONE_RECORD_CARGO_ONTOLOGY_VERSION}`;
17
+ const nonEmptyArray = (schema) => z.array(schema).min(1);
18
+ const oneRecordIri = z.union([
19
+ safeIri(),
20
+ z.string().regex(/^(?:api|cargo):[A-Za-z][A-Za-z0-9_-]*$/),
21
+ ]);
22
+ export const JsonLdContextSchema = z.union([
23
+ z.string().min(1),
24
+ nonEmptyArray(z.union([z.string().min(1), z.record(z.string(), z.unknown())])),
25
+ z.record(z.string(), z.unknown()),
26
+ ]);
27
+ export const OneRecordReferenceSchema = z
28
+ .object({
29
+ '@id': oneRecordIri,
30
+ '@type': z.string().min(1).optional(),
31
+ })
32
+ .passthrough();
33
+ export const OneRecordTypedValueSchema = z
34
+ .object({
35
+ '@value': z.string(),
36
+ '@type': z.string().min(1).optional(),
37
+ })
38
+ .strict();
39
+ export const OneRecordRequestStatusSchema = z.enum([
40
+ 'api:REQUEST_PENDING',
41
+ 'api:REQUEST_ACCEPTED',
42
+ 'api:REQUEST_REJECTED',
43
+ 'api:REQUEST_FAILED',
44
+ 'api:REQUEST_REVOKED',
45
+ 'api:REQUEST_ACKNOWLEDGED',
46
+ ]);
47
+ export const OneRecordServerInformationSchema = z
48
+ .object({
49
+ '@context': JsonLdContextSchema,
50
+ '@id': safeIri(),
51
+ '@type': z.union([
52
+ z.literal('api:ServerInformation'),
53
+ z.literal('https://onerecord.iata.org/ns/api#ServerInformation'),
54
+ ]),
55
+ 'api:hasDataHolder': OneRecordReferenceSchema,
56
+ 'api:hasServerEndpoint': safeIri(),
57
+ 'api:hasSupportedApiVersion': nonEmptyArray(z.string().min(1)),
58
+ 'api:hasSupportedContentType': nonEmptyArray(z.string().min(1)),
59
+ 'api:hasSupportedLanguage': nonEmptyArray(z.string().min(1)),
60
+ 'api:hasSupportedOntology': nonEmptyArray(safeIri()),
61
+ 'api:hasSupportedOntologyVersion': nonEmptyArray(safeIri()),
62
+ 'api:hasSupportedEncoding': z.array(z.string().min(1)).optional(),
63
+ })
64
+ .strict()
65
+ .superRefine((value, ctx) => {
66
+ if (!value['api:hasSupportedContentType'].includes('application/ld+json')) {
67
+ ctx.addIssue({
68
+ code: 'custom',
69
+ path: ['api:hasSupportedContentType'],
70
+ message: 'ONE Record servers must support application/ld+json',
71
+ });
72
+ }
73
+ for (const ontology of value['api:hasSupportedOntology']) {
74
+ if (/\/\d+\.\d+(?:\.\d+)?$/.test(ontology)) {
75
+ ctx.addIssue({
76
+ code: 'custom',
77
+ path: ['api:hasSupportedOntology'],
78
+ message: 'Supported ontology identifiers must be non-versioned IRIs',
79
+ });
80
+ }
81
+ }
82
+ for (const ontology of value['api:hasSupportedOntologyVersion']) {
83
+ if (!/\/\d+\.\d+(?:\.\d+)?$/.test(ontology)) {
84
+ ctx.addIssue({
85
+ code: 'custom',
86
+ path: ['api:hasSupportedOntologyVersion'],
87
+ message: 'Supported ontology-version identifiers must be versioned IRIs',
88
+ });
89
+ }
90
+ }
91
+ });
92
+ const ActionRequestFields = {
93
+ '@context': JsonLdContextSchema,
94
+ '@id': safeIri(),
95
+ 'api:hasRequestStatus': OneRecordReferenceSchema,
96
+ 'api:isRequestedBy': OneRecordReferenceSchema,
97
+ 'api:isRequestedAt': OneRecordTypedValueSchema,
98
+ 'api:hasRequestStatusSince': OneRecordTypedValueSchema.optional(),
99
+ 'api:isRevokedBy': OneRecordReferenceSchema.optional(),
100
+ 'api:isRevokedAt': OneRecordTypedValueSchema.optional(),
101
+ 'api:hasError': z.array(z.record(z.string(), z.unknown())).optional(),
102
+ };
103
+ export const OneRecordChangeRequestSchema = z
104
+ .object({
105
+ ...ActionRequestFields,
106
+ '@type': z.literal('api:ChangeRequest'),
107
+ 'api:hasChange': z.union([OneRecordReferenceSchema, z.record(z.string(), z.unknown())]),
108
+ })
109
+ .strict();
110
+ export const OneRecordSubscriptionSchema = z
111
+ .object({
112
+ '@id': safeIri().optional(),
113
+ '@type': z.literal('api:Subscription'),
114
+ 'api:hasContentType': z.string().min(1).optional(),
115
+ 'api:hasSubscriber': OneRecordReferenceSchema,
116
+ 'api:hasTopicType': OneRecordReferenceSchema,
117
+ 'api:includeSubscriptionEventType': nonEmptyArray(OneRecordReferenceSchema),
118
+ 'api:hasTopic': z.union([safeIri(), OneRecordTypedValueSchema]),
119
+ 'api:expiresAt': OneRecordTypedValueSchema.optional(),
120
+ 'api:hasDescription': z.string().optional(),
121
+ 'api:notifyRequestStatusChange': z.boolean().optional(),
122
+ 'api:sendLogisticsObjectBody': z.boolean().optional(),
123
+ })
124
+ .strict();
125
+ export const OneRecordSubscriptionRequestSchema = z
126
+ .object({
127
+ ...ActionRequestFields,
128
+ '@type': z.literal('api:SubscriptionRequest'),
129
+ 'api:hasSubscription': OneRecordSubscriptionSchema,
130
+ })
131
+ .strict();
132
+ export const OneRecordAccessDelegationSchema = z
133
+ .object({
134
+ '@id': safeIri().optional(),
135
+ '@type': z.literal('api:AccessDelegation'),
136
+ 'api:hasDescription': z.string().optional(),
137
+ 'api:hasPermission': nonEmptyArray(OneRecordReferenceSchema),
138
+ 'api:isRequestedFor': nonEmptyArray(OneRecordReferenceSchema),
139
+ 'api:hasLogisticsObject': nonEmptyArray(OneRecordReferenceSchema),
140
+ 'api:notifyRequestStatusChange': z.boolean(),
141
+ })
142
+ .strict();
143
+ export const OneRecordAccessDelegationRequestSchema = z
144
+ .object({
145
+ ...ActionRequestFields,
146
+ '@type': z.literal('api:AccessDelegationRequest'),
147
+ 'api:hasAccessDelegation': OneRecordAccessDelegationSchema,
148
+ })
149
+ .strict();
150
+ export const OneRecordNotificationSchema = z
151
+ .object({
152
+ '@context': JsonLdContextSchema,
153
+ '@id': safeIri().optional(),
154
+ '@type': z.literal('api:Notification'),
155
+ 'api:hasEventType': OneRecordReferenceSchema,
156
+ 'api:hasLogisticsObject': OneRecordReferenceSchema.optional(),
157
+ 'api:hasLogisticsEvent': OneRecordReferenceSchema.optional(),
158
+ 'api:hasLogisticsObjectType': z.union([safeIri(), OneRecordTypedValueSchema]).optional(),
159
+ 'api:hasChangedProperty': z.array(z.union([safeIri(), OneRecordTypedValueSchema])).optional(),
160
+ 'api:hasTopic': z.union([safeIri(), OneRecordTypedValueSchema]).optional(),
161
+ 'api:isTriggeredBy': OneRecordReferenceSchema.optional(),
162
+ })
163
+ .strict();
164
+ export const OneRecordOidcProfileSchema = z
165
+ .object({
166
+ issuer: safeIri(),
167
+ token_endpoint: safeIri(),
168
+ jwks_uri: safeIri(),
169
+ grant_types_supported: z.array(z.literal('client_credentials')).min(1),
170
+ })
171
+ .strict();
172
+ /**
173
+ * Flaks Connect carries this standards-only peer metadata alongside its
174
+ * optimized application-specific channels. It contains no plaintext secret.
175
+ */
176
+ export const OneRecordPeerProfileSchema = z
177
+ .object({
178
+ server_endpoint: safeIri(),
179
+ server_information: safeIri(),
180
+ oidc_discovery: safeIri(),
181
+ jwks_uri: safeIri(),
182
+ data_holder: safeIri(),
183
+ api_version: z.literal(ONE_RECORD_API_VERSION),
184
+ cargo_ontology_version: z.literal(ONE_RECORD_CARGO_ONTOLOGY_VERSION),
185
+ })
186
+ .strict();
187
+ export function assertEndorsedServerInformation(value) {
188
+ const parsed = OneRecordServerInformationSchema.parse(value);
189
+ if (!parsed['api:hasSupportedApiVersion'].includes(ONE_RECORD_API_VERSION)) {
190
+ throw new Error(`Server does not advertise ONE Record API ${ONE_RECORD_API_VERSION}`);
191
+ }
192
+ if (!parsed['api:hasSupportedOntologyVersion'].some((ontology) => ontology === ONE_RECORD_CARGO_ONTOLOGY_VERSION_IRI)) {
193
+ throw new Error(`Server does not advertise cargo ontology ${ONE_RECORD_CARGO_ONTOLOGY_VERSION}`);
194
+ }
195
+ return parsed;
196
+ }
197
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  import { type BookingAction, type BookingType, type Transition } from './state-diagram.js';
2
+ /**
3
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
4
+ */
2
5
  export declare function canTransition(fromType: BookingType, fromStatus: string, action: BookingAction): Transition | null;
3
6
  //# sourceMappingURL=can-transition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"can-transition.d.ts","sourceRoot":"","sources":["../../src/booking-flow/can-transition.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAA;AAE3B,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,GACpB,UAAU,GAAG,IAAI,CAGnB"}
1
+ {"version":3,"file":"can-transition.d.ts","sourceRoot":"","sources":["../../src/booking-flow/can-transition.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAA;AAE3B;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,GACpB,UAAU,GAAG,IAAI,CAGnB"}
@@ -1,5 +1,8 @@
1
1
  // src/booking-flow/can-transition.ts
2
2
  import { STATE_DIAGRAM, } from './state-diagram.js';
3
+ /**
4
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
5
+ */
3
6
  export function canTransition(fromType, fromStatus, action) {
4
7
  const t = STATE_DIAGRAM[fromType]?.[fromStatus]?.[action];
5
8
  return t ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"can-transition.js","sourceRoot":"","sources":["../../src/booking-flow/can-transition.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAGL,aAAa,GAEd,MAAM,oBAAoB,CAAA;AAE3B,MAAM,UAAU,aAAa,CAC3B,QAAqB,EACrB,UAAkB,EAClB,MAAqB;IAErB,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IACzD,OAAO,CAAC,IAAI,IAAI,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"can-transition.js","sourceRoot":"","sources":["../../src/booking-flow/can-transition.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAGL,aAAa,GAEd,MAAM,oBAAoB,CAAA;AAE3B;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAqB,EACrB,UAAkB,EAClB,MAAqB;IAErB,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IACzD,OAAO,CAAC,IAAI,IAAI,CAAA;AAClB,CAAC"}
@@ -13,7 +13,11 @@ export interface StateDiagram {
13
13
  };
14
14
  };
15
15
  }
16
- /** v2 (A1 risk #2): deepFreeze covers leaf Transition objects so STATE_DIAGRAM.X.Y.Z.accept.nextType = '...' fails at runtime. */
16
+ /**
17
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
18
+ *
19
+ * v2 (A1 risk #2): deepFreeze covers leaf Transition objects so STATE_DIAGRAM.X.Y.Z.accept.nextType = '...' fails at runtime.
20
+ */
17
21
  export declare const STATE_DIAGRAM: StateDiagram;
18
22
  export {};
19
23
  //# sourceMappingURL=state-diagram.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-diagram.d.ts","sourceRoot":"","sources":["../../src/booking-flow/state-diagram.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,eAAe,GAAG,sBAAsB,GAAG,SAAS,CAAA;AACjG,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAErE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,KAAK,IAAI,GAAG,UAAU,GAAG,SAAS,CAAA;AAElC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG;QAC3B,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG;YAC7B,QAAQ,EAAE,MAAM,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI;SAC1C,CAAA;KACF,CAAA;CACF;AAED,kIAAkI;AAClI,eAAO,MAAM,aAAa,EAAE,YA6B1B,CAAA"}
1
+ {"version":3,"file":"state-diagram.d.ts","sourceRoot":"","sources":["../../src/booking-flow/state-diagram.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,eAAe,GAAG,sBAAsB,GAAG,SAAS,CAAA;AACjG,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAErE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,KAAK,IAAI,GAAG,UAAU,GAAG,SAAS,CAAA;AAElC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG;QAC3B,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG;YAC7B,QAAQ,EAAE,MAAM,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI;SAC1C,CAAA;KACF,CAAA;CACF;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,YA6B1B,CAAA"}
@@ -1,6 +1,10 @@
1
1
  // src/booking-flow/state-diagram.ts
2
2
  import { deepFreeze } from '../util/deep-freeze.js';
3
- /** v2 (A1 risk #2): deepFreeze covers leaf Transition objects so STATE_DIAGRAM.X.Y.Z.accept.nextType = '...' fails at runtime. */
3
+ /**
4
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
5
+ *
6
+ * v2 (A1 risk #2): deepFreeze covers leaf Transition objects so STATE_DIAGRAM.X.Y.Z.accept.nextType = '...' fails at runtime.
7
+ */
4
8
  export const STATE_DIAGRAM = deepFreeze({
5
9
  BookingRequest: {
6
10
  REQUEST_PENDING: {
@@ -1 +1 @@
1
- {"version":3,"file":"state-diagram.js","sourceRoot":"","sources":["../../src/booking-flow/state-diagram.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAqBnD,kIAAkI;AAClI,MAAM,CAAC,MAAM,aAAa,GAAiB,UAAU,CAAC;IACpD,cAAc,EAAE;QACd,eAAe,EAAE;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE;YACpE,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACtF,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;SACtF;KACF;IACD,aAAa,EAAE;QACb,eAAe,EAAE;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE;YAC3E,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACrF,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACpF,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE;SACrE;KACF;IACD,oBAAoB,EAAE;QACpB,eAAe,EAAE;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE;YAC/D,MAAM,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5F,MAAM,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3F,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE;SACrE;KACF;IACD,OAAO,EAAE;QACP,gBAAgB,EAAE;YAChB,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC/E;KACF;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"state-diagram.js","sourceRoot":"","sources":["../../src/booking-flow/state-diagram.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAqBnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiB,UAAU,CAAC;IACpD,cAAc,EAAE;QACd,eAAe,EAAE;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE;YACpE,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACtF,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;SACtF;KACF;IACD,aAAa,EAAE;QACb,eAAe,EAAE;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE;YAC3E,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACrF,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YACpF,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE;SACrE;KACF;IACD,oBAAoB,EAAE;QACpB,eAAe,EAAE;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE;YAC/D,MAAM,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5F,MAAM,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3F,MAAM,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE;SACrE;KACF;IACD,OAAO,EAAE;QACP,gBAAgB,EAAE;YAChB,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC/E;KACF;CACF,CAAC,CAAA"}
@@ -3,9 +3,14 @@ import type { BookingOption } from '../classes/booking-option/schema.js';
3
3
  import type { BookingRequest } from '../classes/booking-request/schema.js';
4
4
  import type { Booking } from '../classes/booking/schema.js';
5
5
  import type { ParseResult } from '../result.js';
6
+ /**
7
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
8
+ */
6
9
  export declare function acceptBookingRequest(req: BookingRequest): ParseResult<BookingOption>;
7
10
  /**
8
- * @deprecated v0.2 deprecation; removal in v0.3.
11
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
12
+ *
13
+ * (Earlier v0.2 deprecation: skips the intermediate state.)
9
14
  *
10
15
  * Skips the `BookingOptionRequest` intermediate state per spec §5.4
11
16
  * STATE_DIAGRAM. Use `acceptBookingOptionViaRequest(opt)` instead and
@@ -14,7 +19,13 @@ export declare function acceptBookingRequest(req: BookingRequest): ParseResult<B
14
19
  * shortcut, this annotation will be relaxed.
15
20
  */
16
21
  export declare function acceptBookingOption(opt: BookingOption): ParseResult<Booking>;
22
+ /**
23
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
24
+ */
17
25
  export declare function rejectBookingOption(opt: BookingOption, _reason?: string): ParseResult<BookingOption>;
26
+ /**
27
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
28
+ */
18
29
  export declare function revokeBookingOption(opt: BookingOption, _reason?: string): ParseResult<BookingOption>;
19
30
  /**
20
31
  * Accept a BookingOption per spec §5.4 STATE_DIAGRAM. Returns the
@@ -25,6 +36,8 @@ export declare function revokeBookingOption(opt: BookingOption, _reason?: string
25
36
  * only models the forwarder->carrier request transition.
26
37
  *
27
38
  * Source-state hardcode: see top-of-file comment + deviation #11.
39
+ *
40
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
28
41
  */
29
42
  export declare function acceptBookingOptionViaRequest(opt: BookingOption): ParseResult<BookingOptionRequest>;
30
43
  //# 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,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"}
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,EAAc,WAAW,EAAE,MAAM,cAAc,CAAA;AAuD3D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,WAAW,CAAC,aAAa,CAAC,CA+BpF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAuB5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,WAAW,CAAC,aAAa,CAAC,CAqB5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,WAAW,CAAC,aAAa,CAAC,CAe5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,aAAa,GACjB,WAAW,CAAC,oBAAoB,CAAC,CAsBnC"}
@@ -3,30 +3,63 @@ 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
- * 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.
6
+ * Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation
7
+ * #21). These helpers neither read nor write ontology keys: they work only
8
+ * on the legacy `optionStatus` / `requestStatus` state model and refuse
9
+ * ontology-shaped inputs (`statusBookingOption` present, or the legacy
10
+ * status absent) with a `forbidden_state_transition` error carrying a
11
+ * `reason`. Every 0.5.0-valid input behaves exactly as before.
12
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.
13
+ * Source-state hardcode: the four BookingOption helpers still pass the
14
+ * constant `'REQUEST_PENDING'` to `canTransition` rather than mapping
15
+ * `opt.optionStatus` onto STATE_DIAGRAM keys (deviation #11). They only
16
+ * check that `optionStatus` is present.
23
17
  */
24
18
  const TENANT = 'transitions';
25
19
  const HOST = 'flaks.example';
26
20
  function makeId(type) {
27
21
  return `https://${HOST}/${TENANT}/${type.toLowerCase()}/${randomUUID()}`;
28
22
  }
23
+ function refuseOptionInput(opt, to) {
24
+ if (opt.statusBookingOption !== undefined)
25
+ return {
26
+ ok: false,
27
+ error: {
28
+ kind: 'forbidden_state_transition',
29
+ from: `BookingOption.${opt.statusBookingOption}`,
30
+ to,
31
+ reason: 'ontology_status_present',
32
+ path: '$',
33
+ },
34
+ };
35
+ if (opt.optionStatus === undefined)
36
+ return {
37
+ ok: false,
38
+ error: {
39
+ kind: 'forbidden_state_transition',
40
+ from: 'BookingOption.(absent)',
41
+ to,
42
+ reason: 'legacy_status_absent',
43
+ path: '$',
44
+ },
45
+ };
46
+ return null;
47
+ }
48
+ /**
49
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
50
+ */
29
51
  export function acceptBookingRequest(req) {
52
+ if (req.requestStatus === undefined)
53
+ return {
54
+ ok: false,
55
+ error: {
56
+ kind: 'forbidden_state_transition',
57
+ from: 'BookingRequest.(absent)',
58
+ to: 'accept',
59
+ reason: 'legacy_status_absent',
60
+ path: '$',
61
+ },
62
+ };
30
63
  const t = canTransition('BookingRequest', req.requestStatus, 'accept');
31
64
  if (!t)
32
65
  return {
@@ -48,7 +81,9 @@ export function acceptBookingRequest(req) {
48
81
  return { ok: true, value: opt };
49
82
  }
50
83
  /**
51
- * @deprecated v0.2 deprecation; removal in v0.3.
84
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
85
+ *
86
+ * (Earlier v0.2 deprecation: skips the intermediate state.)
52
87
  *
53
88
  * Skips the `BookingOptionRequest` intermediate state per spec §5.4
54
89
  * STATE_DIAGRAM. Use `acceptBookingOptionViaRequest(opt)` instead and
@@ -57,6 +92,9 @@ export function acceptBookingRequest(req) {
57
92
  * shortcut, this annotation will be relaxed.
58
93
  */
59
94
  export function acceptBookingOption(opt) {
95
+ const refused = refuseOptionInput(opt, 'accept');
96
+ if (refused)
97
+ return refused;
60
98
  const t = canTransition('BookingOption', 'REQUEST_PENDING', 'accept');
61
99
  if (!t)
62
100
  return {
@@ -73,12 +111,18 @@ export function acceptBookingOption(opt) {
73
111
  '@type': 'Booking',
74
112
  '@id': makeId('Booking'),
75
113
  bookingStatus: 'REQUEST_ACCEPTED',
76
- forBookingRequest: opt.forBookingRequest,
114
+ ...(opt.forBookingRequest !== undefined && { forBookingRequest: opt.forBookingRequest }),
77
115
  forBookingOption: opt['@id'],
78
116
  };
79
117
  return { ok: true, value: booking };
80
118
  }
119
+ /**
120
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
121
+ */
81
122
  export function rejectBookingOption(opt, _reason) {
123
+ const refused = refuseOptionInput(opt, 'reject');
124
+ if (refused)
125
+ return refused;
82
126
  const t = canTransition('BookingOption', 'REQUEST_PENDING', 'reject');
83
127
  if (!t)
84
128
  return {
@@ -98,7 +142,13 @@ export function rejectBookingOption(opt, _reason) {
98
142
  },
99
143
  };
100
144
  }
145
+ /**
146
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
147
+ */
101
148
  export function revokeBookingOption(opt, _reason) {
149
+ const refused = refuseOptionInput(opt, 'revoke');
150
+ if (refused)
151
+ return refused;
102
152
  const t = canTransition('BookingOption', 'REQUEST_PENDING', 'revoke');
103
153
  if (!t)
104
154
  return {
@@ -121,8 +171,13 @@ export function revokeBookingOption(opt, _reason) {
121
171
  * only models the forwarder->carrier request transition.
122
172
  *
123
173
  * Source-state hardcode: see top-of-file comment + deviation #11.
174
+ *
175
+ * @deprecated Legacy pre-ontology booking flow (roles swapped vs ONE Record, deviation #21). Replacement: booking Path A.
124
176
  */
125
177
  export function acceptBookingOptionViaRequest(opt) {
178
+ const refused = refuseOptionInput(opt, 'accept');
179
+ if (refused)
180
+ return refused;
126
181
  const t = canTransition('BookingOption', 'REQUEST_PENDING', 'accept');
127
182
  if (!t)
128
183
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/booking-flow/transitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/booking-flow/transitions.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,103 @@ export declare const BookingSchema: z.ZodObject<{
4
4
  '@context': z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
5
5
  '@id': z.ZodString;
6
6
  '@type': z.ZodLiteral<"Booking">;
7
- bookingStatus: z.ZodEnum<{
7
+ bookingStatus: z.ZodOptional<z.ZodEnum<{
8
8
  REQUEST_ACCEPTED: "REQUEST_ACCEPTED";
9
9
  REQUEST_REVOKED: "REQUEST_REVOKED";
10
- }>;
11
- forBookingRequest: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>;
10
+ CONFIRMED: "CONFIRMED";
11
+ DELETED: "DELETED";
12
+ QUEUED: "QUEUED";
13
+ REJECTED: "REJECTED";
14
+ }>>;
15
+ forBookingRequest: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
12
16
  forBookingOption: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
17
+ additionalInformation: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
+ arrivalLocation: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
19
+ departureLocation: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
20
+ bookingRequest: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
21
+ bookingSegments: z.ZodOptional<z.ZodArray<z.ZodObject<{
22
+ '@type': z.ZodOptional<z.ZodLiteral<"BookingSegment">>;
23
+ allotmentCode: z.ZodOptional<z.ZodString>;
24
+ pieceGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
25
+ '@type': z.ZodOptional<z.ZodLiteral<"PieceGroup">>;
26
+ dryIceWeight: z.ZodOptional<z.ZodObject<{
27
+ '@type': z.ZodOptional<z.ZodLiteral<"Value">>;
28
+ numericalValue: z.ZodNumber;
29
+ unit: z.ZodString;
30
+ }, z.core.$strict>>;
31
+ pieceGroupCount: z.ZodOptional<z.ZodNumber>;
32
+ pieceGroupGrossWeight: z.ZodOptional<z.ZodObject<{
33
+ '@type': z.ZodOptional<z.ZodLiteral<"Value">>;
34
+ numericalValue: z.ZodNumber;
35
+ unit: z.ZodString;
36
+ }, z.core.$strict>>;
37
+ pieceGroupId: z.ZodOptional<z.ZodNumber>;
38
+ }, z.core.$strict>>>;
39
+ spaceAllocationCode: z.ZodOptional<z.ZodEnum<{
40
+ CN: "CN";
41
+ CA: "CA";
42
+ HK: "HK";
43
+ HL: "HL";
44
+ HN: "HN";
45
+ KK: "KK";
46
+ LL: "LL";
47
+ NA: "NA";
48
+ NL: "NL";
49
+ NN: "NN";
50
+ SS: "SS";
51
+ UN: "UN";
52
+ UU: "UU";
53
+ XX: "XX";
54
+ }>>;
55
+ transportLegs: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
56
+ }, z.core.$strict>>>;
57
+ bookingShipmentDetails: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
58
+ bookingTimes: z.ZodOptional<z.ZodArray<z.ZodObject<{
59
+ '@type': z.ZodOptional<z.ZodLiteral<"BookingTimes">>;
60
+ earliestAcceptanceTime: z.ZodOptional<z.ZodString>;
61
+ latestAcceptanceTime: z.ZodOptional<z.ZodString>;
62
+ latestArrivalTime: z.ZodOptional<z.ZodString>;
63
+ timeOfAvailability: z.ZodOptional<z.ZodString>;
64
+ totalTransitTime: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$strict>>>;
66
+ carrier: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
67
+ carrierProduct: z.ZodOptional<z.ZodObject<{
68
+ '@type': z.ZodOptional<z.ZodLiteral<"CarrierProduct">>;
69
+ productCode: z.ZodOptional<z.ZodString>;
70
+ serviceLevelCode: z.ZodOptional<z.ZodString>;
71
+ productDescription: z.ZodOptional<z.ZodString>;
72
+ }, z.core.$strict>>;
73
+ issuedForWaybill: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
74
+ shippingInfo: z.ZodOptional<z.ZodString>;
75
+ shippingRefNo: z.ZodOptional<z.ZodString>;
76
+ stationRemarks: z.ZodOptional<z.ZodArray<z.ZodObject<{
77
+ '@type': z.ZodOptional<z.ZodLiteral<"StationRemarks">>;
78
+ station: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
79
+ remarksText: z.ZodOptional<z.ZodString>;
80
+ }, z.core.$strict>>>;
81
+ transportLegs: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>>;
82
+ updateBookingOptionRequests: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>>;
83
+ waybillNumber: z.ZodOptional<z.ZodString>;
84
+ waybillPrefix: z.ZodOptional<z.ZodString>;
85
+ activitySequences: z.ZodOptional<z.ZodArray<z.ZodObject<{
86
+ '@type': z.ZodOptional<z.ZodLiteral<"ActivitySequence">>;
87
+ activity: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>;
88
+ sequenceNumber: z.ZodOptional<z.ZodString>;
89
+ }, z.core.$strict>>>;
90
+ contactDetails: z.ZodOptional<z.ZodArray<z.ZodObject<{
91
+ '@type': z.ZodOptional<z.ZodLiteral<"ContactDetail">>;
92
+ contactDetailType: z.ZodOptional<z.ZodString>;
93
+ textualValue: z.ZodOptional<z.ZodString>;
94
+ }, z.core.$strict>>>;
95
+ contactPersons: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../index.js").SafeIri, string>>>>;
13
96
  }, z.core.$strict>;
14
- export type Booking = z.infer<typeof BookingSchema>;
97
+ type BookingInferred = z.infer<typeof BookingSchema>;
98
+ export type Booking = Omit<BookingInferred, 'forBookingRequest' | 'forBookingOption'> & {
99
+ /** @deprecated Not a ONE Record property of Booking. Use `bookingRequest`. Removal: booking Path A (deviation #18). */
100
+ forBookingRequest?: BookingInferred['forBookingRequest'];
101
+ /** @deprecated Not a ONE Record property of Booking (chain is Booking → BookingRequest → BookingOption). Removal: booking Path A (deviation #18). */
102
+ forBookingOption?: BookingInferred['forBookingOption'];
103
+ };
15
104
  export type JsonLdBooking = JsonLd<'Booking'>;
105
+ export {};
16
106
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/classes/booking/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAGvD,eAAO,MAAM,aAAa;;;;;;;;;;kBAKf,CAAA;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AACnD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/classes/booking/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAKvD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0Cf,CAAA;AAEX,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AACpD,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,mBAAmB,GAAG,kBAAkB,CAAC,GAAG;IACtF,uHAAuH;IACvH,iBAAiB,CAAC,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAA;IACxD,qJAAqJ;IACrJ,gBAAgB,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAA;CACvD,CAAA;AACD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA"}