@opsregistry/adapter-cdek 0.0.1 → 0.0.4
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/README.md +29 -3
- package/dist/adapter.d.ts +17 -7
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +124 -12
- package/dist/adapter.js.map +1 -1
- package/dist/contracts.d.ts +10 -11
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +7 -5
- package/dist/contracts.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -9,14 +9,40 @@
|
|
|
9
9
|
- минимальные Zod-схемы для `delivery.quote` и `delivery.createShipment`;
|
|
10
10
|
- типы входа и выхода этих операций;
|
|
11
11
|
- поддержка operation-level метаданных `accessModeUsed` и `pricingScope` через общий пакет `@opsregistry/contracts`;
|
|
12
|
+
- поддержка IAM-операции `it.identity.authenticate` через общий пакет `@opsregistry/contracts`;
|
|
12
13
|
- фабрика `createAdapter(...)`;
|
|
13
14
|
- разделение `delivery.quote` на public и authorized branch;
|
|
15
|
+
- выбор режима доступа через `requestedAccessMode: auto | public | authorized`;
|
|
14
16
|
- stub-реализация методов, которая пока явно сообщает, что интеграция не реализована.
|
|
15
17
|
|
|
18
|
+
Пример IAM-потока:
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
import { createAdapter } from '@opsregistry/adapter-cdek';
|
|
22
|
+
|
|
23
|
+
const cdek = createAdapter({
|
|
24
|
+
clientId: process.env.CDEK_CLIENT_ID,
|
|
25
|
+
clientSecret: process.env.CDEK_CLIENT_SECRET
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const auth = await cdek.authenticate({
|
|
29
|
+
requestedAccessMode: 'auto',
|
|
30
|
+
requestedScopes: ['delivery.quote']
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const quote = await cdek.quoteDelivery(input, { auth });
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
В текущем skeleton-е `authenticate({ requestedAccessMode: 'authorized' })`
|
|
37
|
+
проверяет наличие `clientId/clientSecret` и возвращает нормализованный
|
|
38
|
+
`IdentityAuthenticateResult`. Реальный OAuth token exchange еще должен быть
|
|
39
|
+
реализован в transport-слое.
|
|
40
|
+
|
|
16
41
|
Что нужно делать дальше:
|
|
17
42
|
|
|
18
43
|
1. Уточнить реальные поля входа и выхода по операциям.
|
|
19
44
|
2. Реализовать transport для `quoteDeliveryPublic(...)`.
|
|
20
|
-
3. Реализовать OAuth/token flow
|
|
21
|
-
4.
|
|
22
|
-
5.
|
|
45
|
+
3. Реализовать OAuth/token flow внутри `authenticate(...)`.
|
|
46
|
+
4. Использовать полученный credential в `quoteDeliveryAuthorized(...)`.
|
|
47
|
+
5. Реализовать `createShipmentAuthorized(...)`.
|
|
48
|
+
6. Покрыть адаптер тестами на нормализацию данных и ошибок.
|
package/dist/adapter.d.ts
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
import { type AdapterConfig, type CreateShipmentInput, type CreateShipmentResult, type
|
|
1
|
+
import { type AdapterConfig, type CreateShipmentInput, type CreateShipmentResult, type DeliveryQuoteInput, type DeliveryQuoteResult, type IdentityAuthenticateInput, type IdentityAuthenticateResult, providerCode, type RequestedAccessMode } from './contracts.js';
|
|
2
|
+
export type AdapterOperationOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* Opsregistry IAM selector. `auto` prefers authorized access when the
|
|
5
|
+
* adapter has credentials, otherwise falls back to public access when the
|
|
6
|
+
* operation supports it.
|
|
7
|
+
*/
|
|
8
|
+
requestedAccessMode?: RequestedAccessMode;
|
|
9
|
+
/**
|
|
10
|
+
* Result of `it.identity.authenticate`. When provided, the operation uses
|
|
11
|
+
* its `accessModeUsed` instead of resolving access mode again.
|
|
12
|
+
*/
|
|
13
|
+
auth?: IdentityAuthenticateResult;
|
|
14
|
+
};
|
|
2
15
|
export type ProviderAdapter = {
|
|
3
16
|
providerCode: typeof providerCode;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
createShipment: (input: CreateShipmentInput, options?: {
|
|
8
|
-
authMode?: AuthMode;
|
|
9
|
-
}) => Promise<CreateShipmentResult>;
|
|
17
|
+
authenticate: (input?: Partial<IdentityAuthenticateInput>) => Promise<IdentityAuthenticateResult>;
|
|
18
|
+
quoteDelivery: (input: DeliveryQuoteInput, options?: AdapterOperationOptions) => Promise<DeliveryQuoteResult>;
|
|
19
|
+
createShipment: (input: CreateShipmentInput, options?: AdapterOperationOptions) => Promise<CreateShipmentResult>;
|
|
10
20
|
};
|
|
11
21
|
export declare const createAdapter: (config?: AdapterConfig) => ProviderAdapter;
|
|
12
22
|
//# sourceMappingURL=adapter.d.ts.map
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,aAAa,EAIlB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,aAAa,EAIlB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAIzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAIxB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,YAAY,EAEZ,KAAK,mBAAmB,EAIxB,MAAM,gBAAgB,CAAC;AAuNxB,MAAM,MAAM,uBAAuB,GAAG;IACrC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;;OAGG;IACH,IAAI,CAAC,EAAE,0BAA0B,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAClG,aAAa,EAAE,CACd,KAAK,EAAE,kBAAkB,EACzB,OAAO,CAAC,EAAE,uBAAuB,KAC7B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClC,cAAc,EAAE,CACf,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,uBAAuB,KAC7B,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,aAAa,YAAY,aAAa,KAAQ,eAgF1D,CAAC"}
|
package/dist/adapter.js
CHANGED
|
@@ -1,14 +1,27 @@
|
|
|
1
|
-
import { adapterConfigSchema,
|
|
1
|
+
import { adapterConfigSchema, accessModeSchema, createShipmentInputSchema, createShipmentOperationCode, deliveryQuoteInputSchema, deliveryQuoteOperationCode, identityAuthenticateInputSchema, identityAuthenticateOperationCode, identityAuthenticateResultSchema, providerCode, requestedAccessModeSchema, supportedAuthenticateAccessModes, supportedCreateShipmentAccessModes, supportedQuoteAccessModes } from './contracts.js';
|
|
2
2
|
const notImplemented = (operationCode) => {
|
|
3
3
|
throw new Error(`Adapter ${providerCode} does not implement ${operationCode} yet. This package is only a skeleton.`);
|
|
4
4
|
};
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
throw new Error(`Adapter ${providerCode} does not support auth mode ${resolvedAuthMode} for ${operationCode}.`);
|
|
5
|
+
const assertSupportedAccessMode = (operationCode, supportedAccessModes, accessMode) => {
|
|
6
|
+
const resolvedAccessMode = accessModeSchema.parse(accessMode);
|
|
7
|
+
if (!supportedAccessModes.includes(resolvedAccessMode)) {
|
|
8
|
+
throw new Error(`Adapter ${providerCode} does not support access mode ${resolvedAccessMode} for ${operationCode}.`);
|
|
10
9
|
}
|
|
11
|
-
return
|
|
10
|
+
return resolvedAccessMode;
|
|
11
|
+
};
|
|
12
|
+
const readString = (value) => (typeof value === 'string' && value ? value : undefined);
|
|
13
|
+
const hasAuthorizedCredentials = (transport, credentials = {}) => Boolean((readString(credentials.clientId) ?? transport.clientId) &&
|
|
14
|
+
(readString(credentials.clientSecret) ?? transport.clientSecret));
|
|
15
|
+
const resolveRequestedAccessMode = (operationCode, supportedAccessModes, requestedAccessMode, hasCredentials) => {
|
|
16
|
+
const requested = requestedAccessModeSchema.parse(requestedAccessMode ?? 'auto');
|
|
17
|
+
if (requested === 'auto') {
|
|
18
|
+
if (hasCredentials && supportedAccessModes.includes('authorized'))
|
|
19
|
+
return 'authorized';
|
|
20
|
+
if (supportedAccessModes.includes('public'))
|
|
21
|
+
return 'public';
|
|
22
|
+
return assertSupportedAccessMode(operationCode, supportedAccessModes, 'authorized');
|
|
23
|
+
}
|
|
24
|
+
return assertSupportedAccessMode(operationCode, supportedAccessModes, requested);
|
|
12
25
|
};
|
|
13
26
|
const createTransportContext = (config) => ({
|
|
14
27
|
timeoutMs: config.timeoutMs,
|
|
@@ -76,25 +89,124 @@ const createShipmentAuthorized = async (transport, input) => {
|
|
|
76
89
|
void input;
|
|
77
90
|
return notImplemented(`${createShipmentOperationCode} [authorized]`);
|
|
78
91
|
};
|
|
92
|
+
const authenticatePublic = () => identityAuthenticateResultSchema.parse({
|
|
93
|
+
operationCode: identityAuthenticateOperationCode,
|
|
94
|
+
status: 'anonymous',
|
|
95
|
+
subject: {
|
|
96
|
+
kind: 'anonymous',
|
|
97
|
+
providerCode,
|
|
98
|
+
roles: [],
|
|
99
|
+
permissions: [],
|
|
100
|
+
scopes: [],
|
|
101
|
+
claims: {}
|
|
102
|
+
},
|
|
103
|
+
accessModeUsed: 'public',
|
|
104
|
+
credential: {
|
|
105
|
+
kind: 'none',
|
|
106
|
+
transport: 'none',
|
|
107
|
+
scopes: [],
|
|
108
|
+
metadata: {}
|
|
109
|
+
},
|
|
110
|
+
metadata: {
|
|
111
|
+
providerCode,
|
|
112
|
+
operationStatus: 'ready',
|
|
113
|
+
reason: 'CDEK public quote branch does not require credentials.'
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
const authenticateAuthorized = (transport, input) => {
|
|
117
|
+
const clientId = readString(input.credentials.clientId) ?? transport.clientId;
|
|
118
|
+
const clientSecret = readString(input.credentials.clientSecret) ?? transport.clientSecret;
|
|
119
|
+
const accessToken = readString(input.credentials.accessToken);
|
|
120
|
+
if (!clientId || !clientSecret) {
|
|
121
|
+
throw new Error(`Adapter ${providerCode} requires clientId and clientSecret for authorized access.`);
|
|
122
|
+
}
|
|
123
|
+
return identityAuthenticateResultSchema.parse({
|
|
124
|
+
operationCode: identityAuthenticateOperationCode,
|
|
125
|
+
status: 'authenticated',
|
|
126
|
+
subject: {
|
|
127
|
+
kind: 'providerAccount',
|
|
128
|
+
id: clientId,
|
|
129
|
+
externalId: clientId,
|
|
130
|
+
providerCode,
|
|
131
|
+
roles: [],
|
|
132
|
+
permissions: [],
|
|
133
|
+
scopes: input.requestedScopes,
|
|
134
|
+
claims: {}
|
|
135
|
+
},
|
|
136
|
+
accessModeUsed: 'authorized',
|
|
137
|
+
credential: {
|
|
138
|
+
kind: 'accessToken',
|
|
139
|
+
transport: 'header',
|
|
140
|
+
scheme: 'Bearer',
|
|
141
|
+
name: 'Authorization',
|
|
142
|
+
value: accessToken,
|
|
143
|
+
scopes: input.requestedScopes,
|
|
144
|
+
metadata: {
|
|
145
|
+
providerCode,
|
|
146
|
+
baseUrl: transport.authorizedBaseUrl,
|
|
147
|
+
implementationStatus: 'stub',
|
|
148
|
+
tokenExchangeRequired: !accessToken,
|
|
149
|
+
clientSecretPresent: Boolean(clientSecret)
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
metadata: {
|
|
153
|
+
providerCode,
|
|
154
|
+
operationStatus: 'stub',
|
|
155
|
+
note: 'Runtime should exchange client credentials for a real CDEK OAuth access token before HTTP calls.'
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
};
|
|
79
159
|
export const createAdapter = (config = {}) => {
|
|
80
160
|
const resolvedConfig = adapterConfigSchema.parse(config);
|
|
81
161
|
const transport = createTransportContext(resolvedConfig);
|
|
82
162
|
return {
|
|
83
163
|
providerCode,
|
|
164
|
+
async authenticate(input = {}) {
|
|
165
|
+
const normalizedInput = identityAuthenticateInputSchema.parse({
|
|
166
|
+
subject: {
|
|
167
|
+
kind: input.subject?.kind ?? 'providerAccount',
|
|
168
|
+
providerCode,
|
|
169
|
+
...(input.subject ?? {})
|
|
170
|
+
},
|
|
171
|
+
method: input.method ??
|
|
172
|
+
(input.requestedAccessMode === 'public' ? 'none' : 'oauth2ClientCredentials'),
|
|
173
|
+
credentials: {
|
|
174
|
+
clientId: transport.clientId,
|
|
175
|
+
clientSecret: transport.clientSecret,
|
|
176
|
+
apiKey: transport.apiKey,
|
|
177
|
+
...(input.credentials ?? {})
|
|
178
|
+
},
|
|
179
|
+
requestedAccessMode: input.requestedAccessMode ?? 'auto',
|
|
180
|
+
requestedScopes: input.requestedScopes ?? [],
|
|
181
|
+
context: input.context
|
|
182
|
+
});
|
|
183
|
+
const accessMode = resolveRequestedAccessMode(identityAuthenticateOperationCode, supportedAuthenticateAccessModes, normalizedInput.requestedAccessMode, hasAuthorizedCredentials(transport, normalizedInput.credentials));
|
|
184
|
+
return accessMode === 'public'
|
|
185
|
+
? authenticatePublic()
|
|
186
|
+
: authenticateAuthorized(transport, normalizedInput);
|
|
187
|
+
},
|
|
84
188
|
async quoteDelivery(input, options = {}) {
|
|
85
189
|
deliveryQuoteInputSchema.parse(input);
|
|
86
|
-
const
|
|
87
|
-
|
|
190
|
+
const accessMode = options.auth
|
|
191
|
+
? assertSupportedAccessMode(deliveryQuoteOperationCode, supportedQuoteAccessModes, options.auth.accessModeUsed)
|
|
192
|
+
: assertSupportedAccessMode(deliveryQuoteOperationCode, supportedQuoteAccessModes, (await this.authenticate({
|
|
193
|
+
requestedAccessMode: options.requestedAccessMode ?? 'auto'
|
|
194
|
+
})).accessModeUsed);
|
|
195
|
+
return accessMode === 'public'
|
|
88
196
|
? quoteDeliveryPublic(transport, input)
|
|
89
197
|
: quoteDeliveryAuthorized(transport, input);
|
|
90
198
|
},
|
|
91
199
|
async createShipment(input, options = {}) {
|
|
92
200
|
createShipmentInputSchema.parse(input);
|
|
93
|
-
const
|
|
94
|
-
|
|
201
|
+
const accessMode = options.auth
|
|
202
|
+
? assertSupportedAccessMode(createShipmentOperationCode, supportedCreateShipmentAccessModes, options.auth.accessModeUsed)
|
|
203
|
+
: assertSupportedAccessMode(createShipmentOperationCode, supportedCreateShipmentAccessModes, (await this.authenticate({
|
|
204
|
+
requestedAccessMode: options.requestedAccessMode ?? 'auto'
|
|
205
|
+
})).accessModeUsed);
|
|
206
|
+
if (accessMode === 'authorized') {
|
|
95
207
|
return createShipmentAuthorized(transport, input);
|
|
96
208
|
}
|
|
97
|
-
return notImplemented(`${createShipmentOperationCode} [${
|
|
209
|
+
return notImplemented(`${createShipmentOperationCode} [${accessMode}]`);
|
|
98
210
|
}
|
|
99
211
|
};
|
|
100
212
|
};
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EAEnB,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/contracts.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { createShipmentInputSchema, createShipmentResultSchema, type CreateShipmentInput, type CreateShipmentResult, operationCode as createShipmentOperationCode } from '@opsregistry/contracts/delivery/create-shipment';
|
|
3
3
|
import { deliveryQuoteInputSchema, deliveryQuoteResultSchema, type DeliveryQuoteInput, type DeliveryQuoteResult, operationCode as deliveryQuoteOperationCode } from '@opsregistry/contracts/delivery/quote';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const supportedCreateShipmentAuthModes: readonly ["authorized"];
|
|
4
|
+
import { identityAuthenticateInputSchema, identityAuthenticateResultSchema, type IdentityAuthenticateInput, type IdentityAuthenticateResult, operationCode as identityAuthenticateOperationCode } from '@opsregistry/contracts/it/identity-authenticate';
|
|
5
|
+
import { accessModeSchema, requestedAccessModeSchema, type AccessMode, type RequestedAccessMode } from '@opsregistry/contracts/it/iam-common';
|
|
6
|
+
export declare const providerCode: 'cdek';
|
|
7
|
+
export declare const supportedQuoteAccessModes: readonly ['public', 'authorized'];
|
|
8
|
+
export declare const supportedCreateShipmentAccessModes: readonly ['authorized'];
|
|
9
|
+
export declare const supportedAuthenticateAccessModes: readonly ['public', 'authorized'];
|
|
11
10
|
export declare const adapterConfigSchema: z.ZodObject<{
|
|
12
11
|
baseUrl: z.ZodOptional<z.ZodURL>;
|
|
13
12
|
publicBaseUrl: z.ZodOptional<z.ZodURL>;
|
|
@@ -17,9 +16,9 @@ export declare const adapterConfigSchema: z.ZodObject<{
|
|
|
17
16
|
clientSecret: z.ZodOptional<z.ZodString>;
|
|
18
17
|
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
19
18
|
}, z.core.$strip>;
|
|
20
|
-
export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema };
|
|
21
|
-
export { createShipmentOperationCode, deliveryQuoteOperationCode };
|
|
19
|
+
export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, accessModeSchema, requestedAccessModeSchema };
|
|
20
|
+
export { createShipmentOperationCode, deliveryQuoteOperationCode, identityAuthenticateOperationCode };
|
|
22
21
|
export type AdapterConfig = z.input<typeof adapterConfigSchema>;
|
|
23
|
-
export type
|
|
24
|
-
export type { CreateShipmentInput, CreateShipmentResult, DeliveryQuoteInput, DeliveryQuoteResult };
|
|
22
|
+
export type { AccessMode, RequestedAccessMode };
|
|
23
|
+
export type { CreateShipmentInput, CreateShipmentResult, DeliveryQuoteInput, DeliveryQuoteResult, IdentityAuthenticateInput, IdentityAuthenticateResult };
|
|
25
24
|
//# sourceMappingURL=contracts.d.ts.map
|
package/dist/contracts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,aAAa,IAAI,2BAA2B,EAC5C,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,aAAa,IAAI,0BAA0B,EAC3C,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,aAAa,IAAI,2BAA2B,EAC5C,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,aAAa,IAAI,0BAA0B,EAC3C,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACN,+BAA+B,EAC/B,gCAAgC,EAChC,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,aAAa,IAAI,iCAAiC,EAClD,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACN,gBAAgB,EAChB,yBAAyB,EACzB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,MAAM,sCAAsC,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAG,MAAe,CAAC;AAC5C,eAAO,MAAM,yBAAyB,YAAI,QAAQ,EAAE,YAAY,CAAU,CAAC;AAC3E,eAAO,MAAM,kCAAkC,YAAI,YAAY,CAAU,CAAC;AAC1E,eAAO,MAAM,gCAAgC,YAAI,QAAQ,EAAE,YAAY,CAAU,CAAC;AAElF,eAAO,MAAM,mBAAmB;;;;;;;;iBAQ9B,CAAC;AAEH,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,gBAAgB,EAChB,yBAAyB,EACzB,CAAC;AACF,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,iCAAiC,EAAE,CAAC;AAEtG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;AAChD,YAAY,EACX,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,CAAC"}
|
package/dist/contracts.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { createShipmentInputSchema, createShipmentResultSchema, operationCode as createShipmentOperationCode } from '@opsregistry/contracts/delivery/create-shipment';
|
|
3
3
|
import { deliveryQuoteInputSchema, deliveryQuoteResultSchema, operationCode as deliveryQuoteOperationCode } from '@opsregistry/contracts/delivery/quote';
|
|
4
|
+
import { identityAuthenticateInputSchema, identityAuthenticateResultSchema, operationCode as identityAuthenticateOperationCode } from '@opsregistry/contracts/it/identity-authenticate';
|
|
5
|
+
import { accessModeSchema, requestedAccessModeSchema } from '@opsregistry/contracts/it/iam-common';
|
|
4
6
|
export const providerCode = 'cdek';
|
|
5
|
-
export const
|
|
6
|
-
export const
|
|
7
|
-
export const
|
|
7
|
+
export const supportedQuoteAccessModes = ['public', 'authorized'];
|
|
8
|
+
export const supportedCreateShipmentAccessModes = ['authorized'];
|
|
9
|
+
export const supportedAuthenticateAccessModes = ['public', 'authorized'];
|
|
8
10
|
export const adapterConfigSchema = z.object({
|
|
9
11
|
baseUrl: z.url().optional(),
|
|
10
12
|
publicBaseUrl: z.url().optional(),
|
|
@@ -14,6 +16,6 @@ export const adapterConfigSchema = z.object({
|
|
|
14
16
|
clientSecret: z.string().min(1).optional(),
|
|
15
17
|
timeoutMs: z.number().int().positive().default(30_000)
|
|
16
18
|
});
|
|
17
|
-
export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema };
|
|
18
|
-
export { createShipmentOperationCode, deliveryQuoteOperationCode };
|
|
19
|
+
export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, accessModeSchema, requestedAccessModeSchema };
|
|
20
|
+
export { createShipmentOperationCode, deliveryQuoteOperationCode, identityAuthenticateOperationCode };
|
|
19
21
|
//# sourceMappingURL=contracts.js.map
|
package/dist/contracts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAG1B,aAAa,IAAI,2BAA2B,EAC5C,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EAGzB,aAAa,IAAI,0BAA0B,EAC3C,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAG1B,aAAa,IAAI,2BAA2B,EAC5C,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EAGzB,aAAa,IAAI,0BAA0B,EAC3C,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACN,+BAA+B,EAC/B,gCAAgC,EAGhC,aAAa,IAAI,iCAAiC,EAClD,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACN,gBAAgB,EAChB,yBAAyB,EAGzB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,MAAe,CAAC;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAU,CAAC;AAC3E,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,YAAY,CAAU,CAAC;AAC1E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAU,CAAC;AAElF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,aAAa,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACjC,iBAAiB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;CACtD,CAAC,CAAC;AAEH,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,gBAAgB,EAChB,yBAAyB,EACzB,CAAC;AACF,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,iCAAiC,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opsregistry/adapter-cdek",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Runtime adapter skeleton for mapping CDEK APIs to opsregistry delivery operations.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"check": "tsc -p tsconfig.json --noEmit"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@opsregistry/contracts": "
|
|
20
|
-
"zod": "
|
|
19
|
+
"@opsregistry/contracts": "0.0.6",
|
|
20
|
+
"zod": "4.4.3"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"typescript": "
|
|
23
|
+
"typescript": "7.0.2"
|
|
24
24
|
}
|
|
25
25
|
}
|