@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.
- package/CHANGELOG.md +98 -0
- package/MIGRATING.md +108 -0
- package/README.md +7 -0
- package/dist/api/index.d.ts +296 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +197 -0
- package/dist/api/index.js.map +1 -0
- package/dist/booking-flow/can-transition.d.ts +3 -0
- package/dist/booking-flow/can-transition.d.ts.map +1 -1
- package/dist/booking-flow/can-transition.js +3 -0
- package/dist/booking-flow/can-transition.js.map +1 -1
- package/dist/booking-flow/state-diagram.d.ts +5 -1
- package/dist/booking-flow/state-diagram.d.ts.map +1 -1
- package/dist/booking-flow/state-diagram.js +5 -1
- package/dist/booking-flow/state-diagram.js.map +1 -1
- package/dist/booking-flow/transitions.d.ts +14 -1
- package/dist/booking-flow/transitions.d.ts.map +1 -1
- package/dist/booking-flow/transitions.js +73 -18
- package/dist/booking-flow/transitions.js.map +1 -1
- package/dist/classes/booking/schema.d.ts +94 -4
- package/dist/classes/booking/schema.d.ts.map +1 -1
- package/dist/classes/booking/schema.js +43 -2
- package/dist/classes/booking/schema.js.map +1 -1
- package/dist/classes/booking-option/schema.d.ts +58 -4
- package/dist/classes/booking-option/schema.d.ts.map +1 -1
- package/dist/classes/booking-option/schema.js +24 -2
- package/dist/classes/booking-option/schema.js.map +1 -1
- package/dist/classes/booking-request/schema.d.ts +17 -4
- package/dist/classes/booking-request/schema.d.ts.map +1 -1
- package/dist/classes/booking-request/schema.js +20 -7
- package/dist/classes/booking-request/schema.js.map +1 -1
- package/dist/classes/party/schema.d.ts +1 -1
- package/dist/classes/price/codec.d.ts +4 -0
- package/dist/classes/price/codec.d.ts.map +1 -0
- package/dist/classes/price/codec.js +11 -0
- package/dist/classes/price/codec.js.map +1 -0
- package/dist/classes/price/deserialize.d.ts +5 -0
- package/dist/classes/price/deserialize.d.ts.map +1 -0
- package/dist/classes/{organization → price}/deserialize.js +3 -3
- package/dist/classes/price/deserialize.js.map +1 -0
- package/dist/classes/price/index.d.ts +6 -0
- package/dist/classes/price/index.d.ts.map +1 -0
- package/dist/classes/price/index.js +5 -0
- package/dist/classes/price/index.js.map +1 -0
- package/dist/classes/price/schema.d.ts +14 -0
- package/dist/classes/price/schema.d.ts.map +1 -0
- package/dist/classes/price/schema.js +12 -0
- package/dist/classes/price/schema.js.map +1 -0
- package/dist/classes/price/serialize.d.ts +6 -0
- package/dist/classes/price/serialize.d.ts.map +1 -0
- package/dist/classes/{organization → price}/serialize.js +6 -6
- package/dist/classes/price/serialize.js.map +1 -0
- package/dist/classes/ratings/codec.d.ts +4 -0
- package/dist/classes/ratings/codec.d.ts.map +1 -0
- package/dist/classes/ratings/codec.js +11 -0
- package/dist/classes/ratings/codec.js.map +1 -0
- package/dist/classes/ratings/deserialize.d.ts +5 -0
- package/dist/classes/ratings/deserialize.d.ts.map +1 -0
- package/dist/classes/ratings/deserialize.js +64 -0
- package/dist/classes/ratings/deserialize.js.map +1 -0
- package/dist/classes/ratings/index.d.ts +6 -0
- package/dist/classes/ratings/index.d.ts.map +1 -0
- package/dist/classes/ratings/index.js +5 -0
- package/dist/classes/ratings/index.js.map +1 -0
- package/dist/classes/ratings/schema.d.ts +60 -0
- package/dist/classes/ratings/schema.d.ts.map +1 -0
- package/dist/classes/ratings/schema.js +23 -0
- package/dist/classes/ratings/schema.js.map +1 -0
- package/dist/classes/ratings/serialize.d.ts +6 -0
- package/dist/classes/ratings/serialize.d.ts.map +1 -0
- package/dist/classes/ratings/serialize.js +28 -0
- package/dist/classes/ratings/serialize.js.map +1 -0
- package/dist/classes/shared/distribution.d.ts +109 -0
- package/dist/classes/shared/distribution.d.ts.map +1 -0
- package/dist/classes/shared/distribution.js +97 -0
- package/dist/classes/shared/distribution.js.map +1 -0
- package/dist/classes/transport-legs/codec.d.ts +4 -0
- package/dist/classes/transport-legs/codec.d.ts.map +1 -0
- package/dist/classes/transport-legs/codec.js +11 -0
- package/dist/classes/transport-legs/codec.js.map +1 -0
- package/dist/classes/transport-legs/deserialize.d.ts +5 -0
- package/dist/classes/transport-legs/deserialize.d.ts.map +1 -0
- package/dist/classes/transport-legs/deserialize.js +64 -0
- package/dist/classes/transport-legs/deserialize.js.map +1 -0
- package/dist/classes/transport-legs/index.d.ts +6 -0
- package/dist/classes/transport-legs/index.d.ts.map +1 -0
- package/dist/classes/transport-legs/index.js +5 -0
- package/dist/classes/transport-legs/index.js.map +1 -0
- package/dist/classes/transport-legs/schema.d.ts +25 -0
- package/dist/classes/transport-legs/schema.d.ts.map +1 -0
- package/dist/classes/transport-legs/schema.js +19 -0
- package/dist/classes/transport-legs/schema.js.map +1 -0
- package/dist/classes/transport-legs/serialize.d.ts +6 -0
- package/dist/classes/transport-legs/serialize.d.ts.map +1 -0
- package/dist/classes/transport-legs/serialize.js +28 -0
- package/dist/classes/transport-legs/serialize.js.map +1 -0
- package/dist/classes/transport-movement/schema.d.ts +1 -1
- package/dist/codecs.d.ts +3 -0
- package/dist/codecs.d.ts.map +1 -1
- package/dist/codecs.js +3 -0
- package/dist/codecs.js.map +1 -1
- package/dist/codes/enums.d.ts +59 -8
- package/dist/codes/enums.d.ts.map +1 -1
- package/dist/codes/enums.js +45 -10
- package/dist/codes/enums.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/field-types.d.ts.map +1 -1
- package/dist/dispatch/field-types.js +30 -1
- package/dist/dispatch/field-types.js.map +1 -1
- package/dist/dispatch/iri-canonical.d.ts +5 -1
- package/dist/dispatch/iri-canonical.d.ts.map +1 -1
- package/dist/dispatch/iri-canonical.js +6 -2
- package/dist/dispatch/iri-canonical.js.map +1 -1
- package/dist/facade.d.ts +7 -4
- package/dist/facade.d.ts.map +1 -1
- package/dist/factory-classes.d.ts +6 -0
- package/dist/factory-classes.d.ts.map +1 -1
- package/dist/factory-classes.js +6 -0
- package/dist/factory-classes.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +10 -5
- package/dist/classes/organization/codec.d.ts +0 -4
- package/dist/classes/organization/codec.d.ts.map +0 -1
- package/dist/classes/organization/codec.js +0 -11
- package/dist/classes/organization/codec.js.map +0 -1
- package/dist/classes/organization/deserialize.d.ts +0 -5
- package/dist/classes/organization/deserialize.d.ts.map +0 -1
- package/dist/classes/organization/deserialize.js.map +0 -1
- package/dist/classes/organization/index.d.ts +0 -6
- package/dist/classes/organization/index.d.ts.map +0 -1
- package/dist/classes/organization/index.js +0 -5
- package/dist/classes/organization/index.js.map +0 -1
- package/dist/classes/organization/schema.d.ts +0 -14
- package/dist/classes/organization/schema.d.ts.map +0 -1
- package/dist/classes/organization/schema.js +0 -11
- package/dist/classes/organization/schema.js.map +0 -1
- package/dist/classes/organization/serialize.d.ts +0 -6
- package/dist/classes/organization/serialize.d.ts.map +0 -1
- 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
|
-
/**
|
|
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
|
|
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
|
-
/**
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* - `
|
|
10
|
-
*
|
|
11
|
-
*
|
|
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:
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
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
|
|
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":"AAAA,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAOxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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"}
|