@opsregistry/adapter-cdek 0.0.4 → 0.2.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/README.md CHANGED
@@ -1,21 +1,14 @@
1
1
  # @opsregistry/adapter-cdek
2
2
 
3
- Каркас runtime-адаптера для CDEK.
3
+ Runtime-адаптер CDEK для операций `opsregistry`.
4
4
 
5
- Пакет предназначен для будущей реализации универсальных операций `opsregistry` поверх API CDEK.
5
+ Реализовано:
6
6
 
7
- Что уже есть:
8
-
9
- - минимальные Zod-схемы для `delivery.quote` и `delivery.createShipment`;
10
- - типы входа и выхода этих операций;
11
- - поддержка operation-level метаданных `accessModeUsed` и `pricingScope` через общий пакет `@opsregistry/contracts`;
12
- - поддержка IAM-операции `it.identity.authenticate` через общий пакет `@opsregistry/contracts`;
13
- - фабрика `createAdapter(...)`;
14
- - разделение `delivery.quote` на public и authorized branch;
15
- - выбор режима доступа через `requestedAccessMode: auto | public | authorized`;
16
- - stub-реализация методов, которая пока явно сообщает, что интеграция не реализована.
17
-
18
- Пример IAM-потока:
7
+ - `it.identity.authenticate` через OAuth 2.0 Client Credentials с кешированием токена;
8
+ - `logistics.shipment.quote` через официальный метод `/v2/calculator/tarifflist`;
9
+ - поиск кодов городов CDEK по названию;
10
+ - расчет нескольких грузовых мест;
11
+ - фильтрация тарифов по `deliveryMode` и `serviceCodes`.
19
12
 
20
13
  ```ts
21
14
  import { createAdapter } from '@opsregistry/adapter-cdek';
@@ -25,24 +18,21 @@ const cdek = createAdapter({
25
18
  clientSecret: process.env.CDEK_CLIENT_SECRET
26
19
  });
27
20
 
28
- const auth = await cdek.authenticate({
29
- requestedAccessMode: 'auto',
30
- requestedScopes: ['delivery.quote']
21
+ const result = await cdek.quoteShipment({
22
+ origin: { city: 'Самара' },
23
+ destination: { city: 'Москва' },
24
+ packages: [{ weightKg: 2, lengthCm: 30, widthCm: 20, heightCm: 10 }],
25
+ deliveryMode: 'terminal_terminal'
31
26
  });
32
-
33
- const quote = await cdek.quoteDelivery(input, { auth });
34
27
  ```
35
28
 
36
- В текущем skeleton-е `authenticate({ requestedAccessMode: 'authorized' })`
37
- проверяет наличие `clientId/clientSecret` и возвращает нормализованный
38
- `IdentityAuthenticateResult`. Реальный OAuth token exchange еще должен быть
39
- реализован в transport-слое.
29
+ Если код города уже известен, его можно передать без дополнительного поиска:
40
30
 
41
- Что нужно делать дальше:
31
+ ```ts
32
+ const origin = {
33
+ city: 'Самара',
34
+ externalIds: { cdekCityCode: '430' }
35
+ };
36
+ ```
42
37
 
43
- 1. Уточнить реальные поля входа и выхода по операциям.
44
- 2. Реализовать transport для `quoteDeliveryPublic(...)`.
45
- 3. Реализовать OAuth/token flow внутри `authenticate(...)`.
46
- 4. Использовать полученный credential в `quoteDeliveryAuthorized(...)`.
47
- 5. Реализовать `createShipmentAuthorized(...)`.
48
- 6. Покрыть адаптер тестами на нормализацию данных и ошибок.
38
+ `logistics.shipment.create` пока не реализована.
package/dist/adapter.d.ts CHANGED
@@ -1,22 +1,13 @@
1
- import { type AdapterConfig, type CreateShipmentInput, type CreateShipmentResult, type DeliveryQuoteInput, type DeliveryQuoteResult, type IdentityAuthenticateInput, type IdentityAuthenticateResult, providerCode, type RequestedAccessMode } from './contracts.js';
1
+ import { type AdapterConfig, type ShipmentCreateInput, type ShipmentCreateResult, type ShipmentQuoteInput, type ShipmentQuoteResult, type IdentityAuthenticateInput, type IdentityAuthenticateResult, providerCode, type RequestedAccessMode } from './contracts.js';
2
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
3
  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
4
  auth?: IdentityAuthenticateResult;
14
5
  };
15
6
  export type ProviderAdapter = {
16
7
  providerCode: typeof providerCode;
17
8
  authenticate: (input?: Partial<IdentityAuthenticateInput>) => Promise<IdentityAuthenticateResult>;
18
- quoteDelivery: (input: DeliveryQuoteInput, options?: AdapterOperationOptions) => Promise<DeliveryQuoteResult>;
19
- createShipment: (input: CreateShipmentInput, options?: AdapterOperationOptions) => Promise<CreateShipmentResult>;
9
+ quoteShipment: (input: ShipmentQuoteInput, options?: AdapterOperationOptions) => Promise<ShipmentQuoteResult>;
10
+ createShipment: (input: ShipmentCreateInput, options?: AdapterOperationOptions) => Promise<ShipmentCreateResult>;
20
11
  };
21
12
  export declare const createAdapter: (config?: AdapterConfig) => ProviderAdapter;
22
13
  //# sourceMappingURL=adapter.d.ts.map
@@ -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,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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,aAAa,EAGlB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAKzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAKxB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,YAAY,EACZ,KAAK,mBAAmB,EACxB,MAAM,gBAAgB,CAAC;AAwPxB,MAAM,MAAM,uBAAuB,GAAG;IACrC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,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,eAmC1D,CAAC"}
package/dist/adapter.js CHANGED
@@ -1,132 +1,184 @@
1
- import { adapterConfigSchema, accessModeSchema, createShipmentInputSchema, createShipmentOperationCode, deliveryQuoteInputSchema, deliveryQuoteOperationCode, identityAuthenticateInputSchema, identityAuthenticateOperationCode, identityAuthenticateResultSchema, providerCode, requestedAccessModeSchema, supportedAuthenticateAccessModes, supportedCreateShipmentAccessModes, supportedQuoteAccessModes } from './contracts.js';
1
+ import { adapterConfigSchema, shipmentCreateInputSchema, shipmentCreateOperationCode, shipmentQuoteInputSchema, shipmentQuoteOperationCode, shipmentQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateOperationCode, identityAuthenticateResultSchema, providerCode } from './contracts.js';
2
+ const tokenCache = new Map();
2
3
  const notImplemented = (operationCode) => {
3
- throw new Error(`Adapter ${providerCode} does not implement ${operationCode} yet. This package is only a skeleton.`);
4
- };
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}.`);
9
- }
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);
4
+ throw new Error(`Adapter ${providerCode} does not implement ${operationCode} yet.`);
25
5
  };
26
6
  const createTransportContext = (config) => ({
27
7
  timeoutMs: config.timeoutMs,
28
- publicBaseUrl: config.publicBaseUrl ?? config.baseUrl ?? 'https://api.cdek.ru',
29
- authorizedBaseUrl: config.authorizedBaseUrl ?? config.baseUrl ?? 'https://api.cdek.ru',
30
- apiKey: config.apiKey,
8
+ baseUrl: (config.baseUrl ?? 'https://api.cdek.ru').replace(/\/+$/, ''),
31
9
  clientId: config.clientId,
32
10
  clientSecret: config.clientSecret
33
11
  });
34
- const buildQuoteStubOption = (input, overrides) => ({
35
- providerCode,
36
- serviceCode: overrides.serviceCode,
37
- serviceName: overrides.serviceName,
38
- price: overrides.price,
39
- currency: 'RUB',
40
- etaMinDays: overrides.etaMinDays,
41
- etaMaxDays: overrides.etaMaxDays,
42
- notes: [
43
- `Stub quote for route ${input.origin.city} -> ${input.destination.city}.`,
44
- ...(overrides.notes ?? [])
45
- ]
46
- });
47
- const quoteDeliveryPublic = async (transport, input) => {
48
- return {
49
- operationCode: deliveryQuoteOperationCode,
50
- accessModeUsed: 'public',
51
- pricingScope: 'public',
52
- options: [
53
- buildQuoteStubOption(input, {
54
- serviceCode: input.serviceCodes[0] ?? 'cdek-public',
55
- serviceName: 'CDEK Public Calculator',
56
- price: 950,
57
- etaMinDays: 3,
58
- etaMaxDays: 5,
59
- notes: [
60
- `Uses public branch ${transport.publicBaseUrl}.`,
61
- 'No contract pricing is applied in this stub.'
62
- ]
63
- })
64
- ]
65
- };
12
+ const request = async (transport, path, options = {}) => {
13
+ const controller = new AbortController();
14
+ const timer = setTimeout(() => controller.abort(), transport.timeoutMs);
15
+ const headers = new Headers({ Accept: 'application/json' });
16
+ if (options.accessToken)
17
+ headers.set('Authorization', `Bearer ${options.accessToken}`);
18
+ let body;
19
+ if (options.body instanceof URLSearchParams) {
20
+ headers.set('Content-Type', 'application/x-www-form-urlencoded');
21
+ body = options.body.toString();
22
+ }
23
+ else if (options.body) {
24
+ headers.set('Content-Type', 'application/json');
25
+ body = JSON.stringify(options.body);
26
+ }
27
+ try {
28
+ const response = await fetch(`${transport.baseUrl}${path}`, {
29
+ method: options.method ?? 'GET',
30
+ headers,
31
+ body,
32
+ signal: controller.signal
33
+ });
34
+ const payload = await response.json().catch(() => ({}));
35
+ if (!response.ok) {
36
+ const source = payload && typeof payload === 'object' ? payload : {};
37
+ const errors = Array.isArray(source.errors) ? source.errors : [];
38
+ const first = errors[0] && typeof errors[0] === 'object' ? errors[0] : {};
39
+ throw new Error(typeof first.message === 'string'
40
+ ? first.message
41
+ : `CDEK API request failed with status ${response.status}`);
42
+ }
43
+ return payload;
44
+ }
45
+ catch (error) {
46
+ if (error instanceof Error && error.name === 'AbortError') {
47
+ throw new Error(`CDEK API request timed out after ${transport.timeoutMs} ms.`);
48
+ }
49
+ throw error;
50
+ }
51
+ finally {
52
+ clearTimeout(timer);
53
+ }
66
54
  };
67
- const quoteDeliveryAuthorized = async (transport, input) => {
55
+ const getAccessToken = async (transport) => {
56
+ if (!transport.clientId || !transport.clientSecret) {
57
+ throw new Error(`Adapter ${providerCode} requires clientId and clientSecret.`);
58
+ }
59
+ const cacheKey = `${transport.baseUrl}|${transport.clientId}`;
60
+ const cached = tokenCache.get(cacheKey);
61
+ if (cached && cached.expiresAt > Date.now() + 60_000)
62
+ return cached.accessToken;
63
+ const payload = (await request(transport, '/v2/oauth/token', {
64
+ method: 'POST',
65
+ body: new URLSearchParams({
66
+ grant_type: 'client_credentials',
67
+ client_id: transport.clientId,
68
+ client_secret: transport.clientSecret
69
+ })
70
+ }));
71
+ const accessToken = typeof payload.access_token === 'string' ? payload.access_token.trim() : '';
72
+ if (!accessToken)
73
+ throw new Error('CDEK OAuth response does not contain access_token.');
74
+ const expiresIn = Number(payload.expires_in);
75
+ tokenCache.set(cacheKey, {
76
+ accessToken,
77
+ expiresAt: Date.now() + (Number.isFinite(expiresIn) ? expiresIn : 3600) * 1000
78
+ });
79
+ return accessToken;
80
+ };
81
+ const readCredentialToken = (auth) => auth?.credential?.kind === 'accessToken' ? auth.credential.value : undefined;
82
+ const normalizeCity = (value) => value
83
+ .toLocaleLowerCase('ru')
84
+ .replace(/ё/g, 'е')
85
+ .replace(/[^а-яa-z0-9]+/giu, ' ')
86
+ .trim();
87
+ const resolveLocation = async (transport, accessToken, location) => {
88
+ const externalCode = location.externalIds.cdekCityCode;
89
+ if (externalCode && /^\d+$/.test(externalCode)) {
90
+ return {
91
+ code: Number(externalCode),
92
+ ...(location.addressLine ? { address: location.addressLine } : {})
93
+ };
94
+ }
95
+ const params = new URLSearchParams({
96
+ city: location.city,
97
+ size: '20',
98
+ ...(location.countryCode ? { country_codes: location.countryCode.toUpperCase() } : {})
99
+ });
100
+ const payload = await request(transport, `/v2/location/cities?${params}`, { accessToken });
101
+ const rows = Array.isArray(payload) ? payload : [];
102
+ const expected = normalizeCity(location.city);
103
+ const match = rows.find((row) => normalizeCity(String(row.city ?? '')) === expected) ??
104
+ rows.find((row) => normalizeCity(String(row.city ?? '')).includes(expected)) ??
105
+ rows[0];
106
+ const code = Number(match?.code);
107
+ if (!Number.isInteger(code) || code <= 0) {
108
+ throw new Error(`CDEK city "${location.city}" was not found.`);
109
+ }
68
110
  return {
69
- operationCode: deliveryQuoteOperationCode,
70
- accessModeUsed: 'authorized',
71
- pricingScope: 'personal',
72
- options: [
73
- buildQuoteStubOption(input, {
74
- serviceCode: input.serviceCodes[0] ?? 'cdek-contract',
75
- serviceName: 'CDEK Contract Tariff',
76
- price: 790,
77
- etaMinDays: 2,
78
- etaMaxDays: 4,
79
- notes: [
80
- `Uses authorized branch ${transport.authorizedBaseUrl}.`,
81
- 'Personal tariff branch is selected in this stub.'
82
- ]
83
- })
84
- ]
111
+ code,
112
+ ...(location.addressLine ? { address: location.addressLine } : {})
85
113
  };
86
114
  };
87
- const createShipmentAuthorized = async (transport, input) => {
88
- void transport;
89
- void input;
90
- return notImplemented(`${createShipmentOperationCode} [authorized]`);
115
+ const deliveryModeCodes = {
116
+ address_address: 1,
117
+ address_terminal: 2,
118
+ terminal_address: 3,
119
+ terminal_terminal: 4
91
120
  };
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: {
121
+ const quoteShipment = async (transport, input, accessToken) => {
122
+ const [fromLocation, toLocation] = await Promise.all([
123
+ resolveLocation(transport, accessToken, input.origin),
124
+ resolveLocation(transport, accessToken, input.destination)
125
+ ]);
126
+ const packages = input.packages.flatMap((item) => Array.from({ length: item.quantity }, (_, index) => ({
127
+ number: `${input.packages.indexOf(item) + 1}-${index + 1}`,
128
+ weight: Math.max(1, Math.round(item.weightKg * 1000)),
129
+ length: item.lengthCm ? Math.max(1, Math.round(item.lengthCm)) : undefined,
130
+ width: item.widthCm ? Math.max(1, Math.round(item.widthCm)) : undefined,
131
+ height: item.heightCm ? Math.max(1, Math.round(item.heightCm)) : undefined
132
+ })));
133
+ const payload = (await request(transport, '/v2/calculator/tarifflist', {
134
+ method: 'POST',
135
+ accessToken,
136
+ body: {
137
+ date: input.requestedDate,
138
+ type: 2,
139
+ currency: 1,
140
+ lang: 'rus',
141
+ from_location: fromLocation,
142
+ to_location: toLocation,
143
+ packages
144
+ }
145
+ }));
146
+ const rows = Array.isArray(payload.tariff_codes) ? payload.tariff_codes : [];
147
+ const requestedServices = new Set(input.serviceCodes);
148
+ const requestedMode = deliveryModeCodes[input.deliveryMode];
149
+ const options = rows
150
+ .filter((row) => !requestedServices.size || requestedServices.has(String(row.tariff_code ?? '')))
151
+ .filter((row) => !row.delivery_mode || Number(row.delivery_mode) === requestedMode)
152
+ .map((row) => ({
111
153
  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.`);
154
+ serviceCode: String(row.tariff_code ?? ''),
155
+ serviceName: String(row.tariff_name ?? row.tariff_description ?? row.tariff_code ?? ''),
156
+ price: Math.max(0, Number(row.total_sum ?? row.delivery_sum ?? 0)),
157
+ currency: 'RUB',
158
+ etaMinDays: Number(row.period_min) > 0 ? Math.round(Number(row.period_min)) : undefined,
159
+ etaMaxDays: Number(row.period_max) > 0 ? Math.round(Number(row.period_max)) : undefined,
160
+ notes: []
161
+ }))
162
+ .filter((option) => option.serviceCode && option.serviceName && Number.isFinite(option.price));
163
+ return shipmentQuoteResultSchema.parse({
164
+ operationCode: shipmentQuoteOperationCode,
165
+ accessModeUsed: 'authorized',
166
+ pricingScope: 'personal',
167
+ options
168
+ });
169
+ };
170
+ const authenticate = async (transport, input) => {
171
+ if (input.requestedAccessMode === 'public') {
172
+ throw new Error(`Adapter ${providerCode} does not support public access.`);
122
173
  }
174
+ const accessToken = await getAccessToken(transport);
123
175
  return identityAuthenticateResultSchema.parse({
124
176
  operationCode: identityAuthenticateOperationCode,
125
177
  status: 'authenticated',
126
178
  subject: {
127
179
  kind: 'providerAccount',
128
- id: clientId,
129
- externalId: clientId,
180
+ id: transport.clientId,
181
+ externalId: transport.clientId,
130
182
  providerCode,
131
183
  roles: [],
132
184
  permissions: [],
@@ -141,72 +193,42 @@ const authenticateAuthorized = (transport, input) => {
141
193
  name: 'Authorization',
142
194
  value: accessToken,
143
195
  scopes: input.requestedScopes,
144
- metadata: {
145
- providerCode,
146
- baseUrl: transport.authorizedBaseUrl,
147
- implementationStatus: 'stub',
148
- tokenExchangeRequired: !accessToken,
149
- clientSecretPresent: Boolean(clientSecret)
150
- }
196
+ metadata: { providerCode, baseUrl: transport.baseUrl }
151
197
  },
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
- }
198
+ metadata: { providerCode, operationStatus: 'ready' }
157
199
  });
158
200
  };
159
201
  export const createAdapter = (config = {}) => {
160
- const resolvedConfig = adapterConfigSchema.parse(config);
161
- const transport = createTransportContext(resolvedConfig);
202
+ const transport = createTransportContext(adapterConfigSchema.parse(config));
162
203
  return {
163
204
  providerCode,
164
205
  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
- },
206
+ const normalized = identityAuthenticateInputSchema.parse({
207
+ subject: { kind: 'providerAccount', providerCode, ...(input.subject ?? {}) },
208
+ method: input.method ?? 'oauth2ClientCredentials',
209
+ credentials: input.credentials ?? {},
179
210
  requestedAccessMode: input.requestedAccessMode ?? 'auto',
180
211
  requestedScopes: input.requestedScopes ?? [],
181
212
  context: input.context
182
213
  });
183
- const accessMode = resolveRequestedAccessMode(identityAuthenticateOperationCode, supportedAuthenticateAccessModes, normalizedInput.requestedAccessMode, hasAuthorizedCredentials(transport, normalizedInput.credentials));
184
- return accessMode === 'public'
185
- ? authenticatePublic()
186
- : authenticateAuthorized(transport, normalizedInput);
214
+ return authenticate(transport, normalized);
187
215
  },
188
- async quoteDelivery(input, options = {}) {
189
- deliveryQuoteInputSchema.parse(input);
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'
196
- ? quoteDeliveryPublic(transport, input)
197
- : quoteDeliveryAuthorized(transport, input);
198
- },
199
- async createShipment(input, options = {}) {
200
- createShipmentInputSchema.parse(input);
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') {
207
- return createShipmentAuthorized(transport, input);
216
+ async quoteShipment(input, options = {}) {
217
+ const normalized = shipmentQuoteInputSchema.parse(input);
218
+ const auth = options.auth ??
219
+ (await this.authenticate({
220
+ requestedAccessMode: options.requestedAccessMode ?? 'auto',
221
+ requestedScopes: [shipmentQuoteOperationCode]
222
+ }));
223
+ if (auth.accessModeUsed !== 'authorized') {
224
+ throw new Error(`Adapter ${providerCode} requires authorized access for logistics.shipment.quote.`);
208
225
  }
209
- return notImplemented(`${createShipmentOperationCode} [${accessMode}]`);
226
+ const accessToken = readCredentialToken(auth) ?? (await getAccessToken(transport));
227
+ return quoteShipment(transport, normalized, accessToken);
228
+ },
229
+ async createShipment(input) {
230
+ shipmentCreateInputSchema.parse(input);
231
+ return notImplemented(shipmentCreateOperationCode);
210
232
  }
211
233
  };
212
234
  };
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EAEnB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAG3B,wBAAwB,EACxB,0BAA0B,EAI1B,+BAA+B,EAC/B,iCAAiC,EACjC,gCAAgC,EAGhC,YAAY,EACZ,yBAAyB,EAEzB,gCAAgC,EAChC,kCAAkC,EAClC,yBAAyB,EACzB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,cAAc,GAAG,CAAC,aAAqB,EAAS,EAAE;IACvD,MAAM,IAAI,KAAK,CACd,WAAW,YAAY,uBAAuB,aAAa,wCAAwC,CACnG,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CACjC,aAAqB,EACrB,oBAA2C,EAC3C,UAAsB,EACrB,EAAE;IACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACd,WAAW,YAAY,iCAAiC,kBAAkB,QAAQ,aAAa,GAAG,CAClG,CAAC;IACH,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAEhG,MAAM,wBAAwB,GAAG,CAChC,SAAoD,EACpD,WAAW,GAA4B,EAAE,EACxC,EAAE,CACH,OAAO,CACN,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC;IACvD,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,CACjE,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAClC,aAAqB,EACrB,oBAA2C,EAC3C,mBAAoD,EACpD,cAAuB,EACV,EAAE;IACf,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,CAAC,mBAAmB,IAAI,MAAM,CAAC,CAAC;IACjF,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,cAAc,IAAI,oBAAoB,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAC;QACvF,IAAI,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC7D,OAAO,yBAAyB,CAAC,aAAa,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,yBAAyB,CAAC,aAAa,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,MAA6B,EAAE,EAAE,CAAC,CAAC;IAClE,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,IAAI,qBAAqB;IAC9E,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,OAAO,IAAI,qBAAqB;IACtF,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,YAAY,EAAE,MAAM,CAAC,YAAY;CACjC,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAC5B,KAAyB,EACzB,SAOC,EACA,EAAE,CAAC,CAAC;IACL,YAAY;IACZ,WAAW,EAAE,SAAS,CAAC,WAAW;IAClC,WAAW,EAAE,SAAS,CAAC,WAAW;IAClC,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,QAAQ,EAAE,KAAc;IACxB,UAAU,EAAE,SAAS,CAAC,UAAU;IAChC,UAAU,EAAE,SAAS,CAAC,UAAU;IAChC,KAAK,EAAE;QACN,wBAAwB,KAAK,CAAC,MAAM,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG;QACzE,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;KAC1B;CACD,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,KAAK,EAChC,SAAoD,EACpD,KAAyB,EACM,EAAE;IACjC,OAAO;QACN,aAAa,EAAE,0BAA0B;QACzC,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE;YACR,oBAAoB,CAAC,KAAK,EAAE;gBAC3B,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,aAAa;gBACnD,WAAW,EAAE,wBAAwB;gBACrC,KAAK,EAAE,GAAG;gBACV,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,CAAC;gBACb,KAAK,EAAE;oBACN,sBAAsB,SAAS,CAAC,aAAa,GAAG;oBAChD,8CAA8C;iBAC9C;aACD,CAAC;SACF;KACD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,KAAK,EACpC,SAAoD,EACpD,KAAyB,EACM,EAAE;IACjC,OAAO;QACN,aAAa,EAAE,0BAA0B;QACzC,cAAc,EAAE,YAAY;QAC5B,YAAY,EAAE,UAAU;QACxB,OAAO,EAAE;YACR,oBAAoB,CAAC,KAAK,EAAE;gBAC3B,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,eAAe;gBACrD,WAAW,EAAE,sBAAsB;gBACnC,KAAK,EAAE,GAAG;gBACV,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,CAAC;gBACb,KAAK,EAAE;oBACN,0BAA0B,SAAS,CAAC,iBAAiB,GAAG;oBACxD,kDAAkD;iBAClD;aACD,CAAC;SACF;KACD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,KAAK,EACrC,SAAoD,EACpD,KAA0B,EACM,EAAE;IAClC,KAAK,SAAS,CAAC;IACf,KAAK,KAAK,CAAC;IACX,OAAO,cAAc,CAAC,GAAG,2BAA2B,eAAe,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,GAA+B,EAAE,CAC3D,gCAAgC,CAAC,KAAK,CAAC;IACtC,aAAa,EAAE,iCAAiC;IAChD,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,YAAY;QACZ,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;KACV;IACD,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE;QACX,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,MAAM;QACjB,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;KACZ;IACD,QAAQ,EAAE;QACT,YAAY;QACZ,eAAe,EAAE,OAAO;QACxB,MAAM,EAAE,wDAAwD;KAChE;CACD,CAAC,CAAC;AAEJ,MAAM,sBAAsB,GAAG,CAC9B,SAAoD,EACpD,KAAgC,EACH,EAAE;IAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC;IAC9E,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC;IAC1F,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,WAAW,YAAY,4DAA4D,CAAC,CAAC;IACtG,CAAC;IAED,OAAO,gCAAgC,CAAC,KAAK,CAAC;QAC7C,aAAa,EAAE,iCAAiC;QAChD,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE;YACR,IAAI,EAAE,iBAAiB;YACvB,EAAE,EAAE,QAAQ;YACZ,UAAU,EAAE,QAAQ;YACpB,YAAY;YACZ,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,KAAK,CAAC,eAAe;YAC7B,MAAM,EAAE,EAAE;SACV;QACD,cAAc,EAAE,YAAY;QAC5B,UAAU,EAAE;YACX,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,KAAK,CAAC,eAAe;YAC7B,QAAQ,EAAE;gBACT,YAAY;gBACZ,OAAO,EAAE,SAAS,CAAC,iBAAiB;gBACpC,oBAAoB,EAAE,MAAM;gBAC5B,qBAAqB,EAAE,CAAC,WAAW;gBACnC,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC;aAC1C;SACD;QACD,QAAQ,EAAE;YACT,YAAY;YACZ,eAAe,EAAE,MAAM;YACvB,IAAI,EACH,kGAAkG;SACnG;KACD,CAAC,CAAC;AACJ,CAAC,CAAC;AA6BF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,GAAkB,EAAE,EAAmB,EAAE;IAC5E,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAEzD,OAAO;QACN,YAAY;QACZ,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE;YAC5B,MAAM,eAAe,GAAG,+BAA+B,CAAC,KAAK,CAAC;gBAC7D,OAAO,EAAE;oBACR,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,iBAAiB;oBAC9C,YAAY;oBACZ,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;iBACxB;gBACD,MAAM,EACL,KAAK,CAAC,MAAM;oBACZ,CAAC,KAAK,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC;gBAC9E,WAAW,EAAE;oBACZ,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;iBAC5B;gBACD,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,MAAM;gBACxD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;gBAC5C,OAAO,EAAE,KAAK,CAAC,OAAO;aACtB,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,0BAA0B,CAC5C,iCAAiC,EACjC,gCAAgC,EAChC,eAAe,CAAC,mBAAmB,EACnC,wBAAwB,CAAC,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC,CAChE,CAAC;YACF,OAAO,UAAU,KAAK,QAAQ;gBAC7B,CAAC,CAAC,kBAAkB,EAAE;gBACtB,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE;YACtC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI;gBAC9B,CAAC,CAAC,yBAAyB,CACzB,0BAA0B,EAC1B,yBAAyB,EACzB,OAAO,CAAC,IAAI,CAAC,cAAc,CAC3B;gBACF,CAAC,CAAC,yBAAyB,CACzB,0BAA0B,EAC1B,yBAAyB,EACzB,CACC,MAAM,IAAI,CAAC,YAAY,CAAC;oBACvB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,MAAM;iBAC1D,CAAC,CACF,CAAC,cAAc,CAChB,CAAC;YACJ,OAAO,UAAU,KAAK,QAAQ;gBAC7B,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC;gBACvC,CAAC,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE;YACvC,yBAAyB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI;gBAC9B,CAAC,CAAC,yBAAyB,CACzB,2BAA2B,EAC3B,kCAAkC,EAClC,OAAO,CAAC,IAAI,CAAC,cAAc,CAC3B;gBACF,CAAC,CAAC,yBAAyB,CACzB,2BAA2B,EAC3B,kCAAkC,EAClC,CACC,MAAM,IAAI,CAAC,YAAY,CAAC;oBACvB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,MAAM;iBAC1D,CAAC,CACF,CAAC,cAAc,CAChB,CAAC;YACJ,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBACjC,OAAO,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,cAAc,CAAC,GAAG,2BAA2B,KAAK,UAAU,GAAG,CAAC,CAAC;QACzE,CAAC;KACD,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,21 @@
1
1
  import { z } from 'zod';
2
- import { createShipmentInputSchema, createShipmentResultSchema, type CreateShipmentInput, type CreateShipmentResult, operationCode as createShipmentOperationCode } from '@opsregistry/contracts/delivery/create-shipment';
3
- import { deliveryQuoteInputSchema, deliveryQuoteResultSchema, type DeliveryQuoteInput, type DeliveryQuoteResult, operationCode as deliveryQuoteOperationCode } from '@opsregistry/contracts/delivery/quote';
2
+ import { shipmentCreateInputSchema, shipmentCreateResultSchema, type ShipmentCreateInput, type ShipmentCreateResult, operationCode as shipmentCreateOperationCode } from '@opsregistry/contracts/logistics/shipment-create';
3
+ import { shipmentQuoteInputSchema, shipmentQuoteResultSchema, type ShipmentLocation, type ShipmentQuoteInput, type NormalizedShipmentQuoteInput, type ShipmentQuoteResult, operationCode as shipmentQuoteOperationCode } from '@opsregistry/contracts/logistics/shipment-quote';
4
4
  import { identityAuthenticateInputSchema, identityAuthenticateResultSchema, type IdentityAuthenticateInput, type IdentityAuthenticateResult, operationCode as identityAuthenticateOperationCode } from '@opsregistry/contracts/it/identity-authenticate';
5
5
  import { accessModeSchema, requestedAccessModeSchema, type AccessMode, type RequestedAccessMode } from '@opsregistry/contracts/it/iam-common';
6
6
  export declare const providerCode: 'cdek';
7
- export declare const supportedQuoteAccessModes: readonly ['public', 'authorized'];
7
+ export declare const supportedQuoteAccessModes: readonly ['authorized'];
8
8
  export declare const supportedCreateShipmentAccessModes: readonly ['authorized'];
9
- export declare const supportedAuthenticateAccessModes: readonly ['public', 'authorized'];
9
+ export declare const supportedAuthenticateAccessModes: readonly ['authorized'];
10
10
  export declare const adapterConfigSchema: z.ZodObject<{
11
11
  baseUrl: z.ZodOptional<z.ZodURL>;
12
- publicBaseUrl: z.ZodOptional<z.ZodURL>;
13
- authorizedBaseUrl: z.ZodOptional<z.ZodURL>;
14
- apiKey: z.ZodOptional<z.ZodString>;
15
12
  clientId: z.ZodOptional<z.ZodString>;
16
13
  clientSecret: z.ZodOptional<z.ZodString>;
17
14
  timeoutMs: z.ZodDefault<z.ZodNumber>;
18
15
  }, z.core.$strip>;
19
- export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, accessModeSchema, requestedAccessModeSchema };
20
- export { createShipmentOperationCode, deliveryQuoteOperationCode, identityAuthenticateOperationCode };
16
+ export { shipmentCreateInputSchema, shipmentCreateResultSchema, shipmentQuoteInputSchema, shipmentQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, accessModeSchema, requestedAccessModeSchema };
17
+ export { shipmentCreateOperationCode, shipmentQuoteOperationCode, identityAuthenticateOperationCode };
21
18
  export type AdapterConfig = z.input<typeof adapterConfigSchema>;
22
19
  export type { AccessMode, RequestedAccessMode };
23
- export type { CreateShipmentInput, CreateShipmentResult, DeliveryQuoteInput, DeliveryQuoteResult, IdentityAuthenticateInput, IdentityAuthenticateResult };
20
+ export type { ShipmentCreateInput, ShipmentCreateResult, ShipmentQuoteInput, ShipmentQuoteResult, ShipmentLocation, NormalizedShipmentQuoteInput, IdentityAuthenticateInput, IdentityAuthenticateResult };
24
21
  //# sourceMappingURL=contracts.d.ts.map
@@ -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;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"}
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,kDAAkD,CAAC;AAC1D,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,aAAa,IAAI,0BAA0B,EAC3C,MAAM,iDAAiD,CAAC;AACzD,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,YAAY,CAAU,CAAC;AACjE,eAAO,MAAM,kCAAkC,YAAI,YAAY,CAAU,CAAC;AAC1E,eAAO,MAAM,gCAAgC,YAAI,YAAY,CAAU,CAAC;AAExE,eAAO,MAAM,mBAAmB;;;;;iBAK9B,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,gBAAgB,EAChB,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,CAAC"}
package/dist/contracts.js CHANGED
@@ -1,21 +1,18 @@
1
1
  import { z } from 'zod';
2
- import { createShipmentInputSchema, createShipmentResultSchema, operationCode as createShipmentOperationCode } from '@opsregistry/contracts/delivery/create-shipment';
3
- import { deliveryQuoteInputSchema, deliveryQuoteResultSchema, operationCode as deliveryQuoteOperationCode } from '@opsregistry/contracts/delivery/quote';
2
+ import { shipmentCreateInputSchema, shipmentCreateResultSchema, operationCode as shipmentCreateOperationCode } from '@opsregistry/contracts/logistics/shipment-create';
3
+ import { shipmentQuoteInputSchema, shipmentQuoteResultSchema, operationCode as shipmentQuoteOperationCode } from '@opsregistry/contracts/logistics/shipment-quote';
4
4
  import { identityAuthenticateInputSchema, identityAuthenticateResultSchema, operationCode as identityAuthenticateOperationCode } from '@opsregistry/contracts/it/identity-authenticate';
5
5
  import { accessModeSchema, requestedAccessModeSchema } from '@opsregistry/contracts/it/iam-common';
6
6
  export const providerCode = 'cdek';
7
- export const supportedQuoteAccessModes = ['public', 'authorized'];
7
+ export const supportedQuoteAccessModes = ['authorized'];
8
8
  export const supportedCreateShipmentAccessModes = ['authorized'];
9
- export const supportedAuthenticateAccessModes = ['public', 'authorized'];
9
+ export const supportedAuthenticateAccessModes = ['authorized'];
10
10
  export const adapterConfigSchema = z.object({
11
11
  baseUrl: z.url().optional(),
12
- publicBaseUrl: z.url().optional(),
13
- authorizedBaseUrl: z.url().optional(),
14
- apiKey: z.string().min(1).optional(),
15
12
  clientId: z.string().min(1).optional(),
16
13
  clientSecret: z.string().min(1).optional(),
17
14
  timeoutMs: z.number().int().positive().default(30_000)
18
15
  });
19
- export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, accessModeSchema, requestedAccessModeSchema };
20
- export { createShipmentOperationCode, deliveryQuoteOperationCode, identityAuthenticateOperationCode };
16
+ export { shipmentCreateInputSchema, shipmentCreateResultSchema, shipmentQuoteInputSchema, shipmentQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, accessModeSchema, requestedAccessModeSchema };
17
+ export { shipmentCreateOperationCode, shipmentQuoteOperationCode, identityAuthenticateOperationCode };
21
18
  //# sourceMappingURL=contracts.js.map
@@ -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;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"}
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,kDAAkD,CAAC;AAC1D,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EAKzB,aAAa,IAAI,0BAA0B,EAC3C,MAAM,iDAAiD,CAAC;AACzD,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,YAAY,CAAU,CAAC;AACjE,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,YAAY,CAAU,CAAC;AAC1E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,YAAY,CAAU,CAAC;AAExE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,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,7 +1,7 @@
1
1
  {
2
2
  "name": "@opsregistry/adapter-cdek",
3
- "version": "0.0.4",
4
- "description": "Runtime adapter skeleton for mapping CDEK APIs to opsregistry delivery operations.",
3
+ "version": "0.2.0",
4
+ "description": "CDEK runtime adapter for opsregistry delivery operations.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "packageManager": "bun@1.3.13",
@@ -12,11 +12,12 @@
12
12
  "README.md"
13
13
  ],
14
14
  "scripts": {
15
- "build": "tsc -p tsconfig.json",
16
- "check": "tsc -p tsconfig.json --noEmit"
15
+ "build": "rm -rf dist && tsc -p tsconfig.json",
16
+ "check": "tsc -p tsconfig.json --noEmit",
17
+ "test": "bun test"
17
18
  },
18
19
  "dependencies": {
19
- "@opsregistry/contracts": "0.0.6",
20
+ "@opsregistry/contracts": "0.1.2",
20
21
  "zod": "4.4.3"
21
22
  },
22
23
  "devDependencies": {