@opsregistry/adapter-cdek 0.0.4 → 0.1.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 +20 -30
- package/dist/adapter.d.ts +0 -9
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +182 -160
- package/dist/adapter.js.map +1 -1
- package/dist/contracts.d.ts +3 -4
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +1 -2
- package/dist/contracts.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
# @opsregistry/adapter-cdek
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Runtime-адаптер CDEK для операций `opsregistry`.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Реализовано:
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
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
|
+
- `delivery.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
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
const result = await cdek.quoteDelivery({
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
2. Реализовать transport для `quoteDeliveryPublic(...)`.
|
|
45
|
-
3. Реализовать OAuth/token flow внутри `authenticate(...)`.
|
|
46
|
-
4. Использовать полученный credential в `quoteDeliveryAuthorized(...)`.
|
|
47
|
-
5. Реализовать `createShipmentAuthorized(...)`.
|
|
48
|
-
6. Покрыть адаптер тестами на нормализацию данных и ошибок.
|
|
38
|
+
`delivery.createShipment` пока не реализована.
|
package/dist/adapter.d.ts
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
import { type AdapterConfig, type CreateShipmentInput, type CreateShipmentResult, type DeliveryQuoteInput, type DeliveryQuoteResult, 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 = {
|
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,
|
|
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,
|
|
1
|
+
import { adapterConfigSchema, createShipmentInputSchema, createShipmentOperationCode, deliveryQuoteInputSchema, deliveryQuoteOperationCode, deliveryQuoteResultSchema, 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
|
|
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
|
-
|
|
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
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
+
}
|
|
54
|
+
};
|
|
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
|
+
}
|
|
48
110
|
return {
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
]
|
|
111
|
+
code,
|
|
112
|
+
...(location.addressLine ? { address: location.addressLine } : {})
|
|
65
113
|
};
|
|
66
114
|
};
|
|
67
|
-
const
|
|
68
|
-
|
|
115
|
+
const deliveryModeCodes = {
|
|
116
|
+
address_address: 1,
|
|
117
|
+
address_terminal: 2,
|
|
118
|
+
terminal_address: 3,
|
|
119
|
+
terminal_terminal: 4
|
|
120
|
+
};
|
|
121
|
+
const quoteDelivery = 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) => ({
|
|
153
|
+
providerCode,
|
|
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 deliveryQuoteResultSchema.parse({
|
|
69
164
|
operationCode: deliveryQuoteOperationCode,
|
|
70
165
|
accessModeUsed: 'authorized',
|
|
71
166
|
pricingScope: 'personal',
|
|
72
|
-
options
|
|
73
|
-
|
|
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
|
-
]
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
|
-
const createShipmentAuthorized = async (transport, input) => {
|
|
88
|
-
void transport;
|
|
89
|
-
void input;
|
|
90
|
-
return notImplemented(`${createShipmentOperationCode} [authorized]`);
|
|
167
|
+
options
|
|
168
|
+
});
|
|
91
169
|
};
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
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.`);
|
|
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
|
|
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
|
|
166
|
-
subject: {
|
|
167
|
-
|
|
168
|
-
|
|
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
|
-
|
|
184
|
-
return accessMode === 'public'
|
|
185
|
-
? authenticatePublic()
|
|
186
|
-
: authenticateAuthorized(transport, normalizedInput);
|
|
214
|
+
return authenticate(transport, normalized);
|
|
187
215
|
},
|
|
188
216
|
async quoteDelivery(input, options = {}) {
|
|
189
|
-
deliveryQuoteInputSchema.parse(input);
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}))
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
217
|
+
const normalized = deliveryQuoteInputSchema.parse(input);
|
|
218
|
+
const auth = options.auth ??
|
|
219
|
+
(await this.authenticate({
|
|
220
|
+
requestedAccessMode: options.requestedAccessMode ?? 'auto',
|
|
221
|
+
requestedScopes: [deliveryQuoteOperationCode]
|
|
222
|
+
}));
|
|
223
|
+
if (auth.accessModeUsed !== 'authorized') {
|
|
224
|
+
throw new Error(`Adapter ${providerCode} requires authorized access for delivery.quote.`);
|
|
225
|
+
}
|
|
226
|
+
const accessToken = readCredentialToken(auth) ?? (await getAccessToken(transport));
|
|
227
|
+
return quoteDelivery(transport, normalized, accessToken);
|
|
198
228
|
},
|
|
199
|
-
async createShipment(input
|
|
229
|
+
async createShipment(input) {
|
|
200
230
|
createShipmentInputSchema.parse(input);
|
|
201
|
-
|
|
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);
|
|
208
|
-
}
|
|
209
|
-
return notImplemented(`${createShipmentOperationCode} [${accessMode}]`);
|
|
231
|
+
return notImplemented(createShipmentOperationCode);
|
|
210
232
|
}
|
|
211
233
|
};
|
|
212
234
|
};
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/contracts.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
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
|
-
import { deliveryQuoteInputSchema, deliveryQuoteResultSchema, type DeliveryQuoteInput, type DeliveryQuoteResult, operationCode as deliveryQuoteOperationCode } from '@opsregistry/contracts/delivery/quote';
|
|
3
|
+
import { deliveryQuoteInputSchema, deliveryQuoteResultSchema, type DeliveryLocation, type DeliveryQuoteInput, type NormalizedDeliveryQuoteInput, type DeliveryQuoteResult, operationCode as deliveryQuoteOperationCode } from '@opsregistry/contracts/delivery/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 ['
|
|
7
|
+
export declare const supportedQuoteAccessModes: readonly ['authorized'];
|
|
8
8
|
export declare const supportedCreateShipmentAccessModes: readonly ['authorized'];
|
|
9
9
|
export declare const supportedAuthenticateAccessModes: readonly ['public', 'authorized'];
|
|
10
10
|
export declare const adapterConfigSchema: z.ZodObject<{
|
|
11
11
|
baseUrl: z.ZodOptional<z.ZodURL>;
|
|
12
12
|
publicBaseUrl: z.ZodOptional<z.ZodURL>;
|
|
13
13
|
authorizedBaseUrl: z.ZodOptional<z.ZodURL>;
|
|
14
|
-
apiKey: z.ZodOptional<z.ZodString>;
|
|
15
14
|
clientId: z.ZodOptional<z.ZodString>;
|
|
16
15
|
clientSecret: z.ZodOptional<z.ZodString>;
|
|
17
16
|
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
@@ -20,5 +19,5 @@ export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInp
|
|
|
20
19
|
export { createShipmentOperationCode, deliveryQuoteOperationCode, identityAuthenticateOperationCode };
|
|
21
20
|
export type AdapterConfig = z.input<typeof adapterConfigSchema>;
|
|
22
21
|
export type { AccessMode, RequestedAccessMode };
|
|
23
|
-
export type { CreateShipmentInput, CreateShipmentResult, DeliveryQuoteInput, DeliveryQuoteResult, IdentityAuthenticateInput, IdentityAuthenticateResult };
|
|
22
|
+
export type { CreateShipmentInput, CreateShipmentResult, DeliveryQuoteInput, DeliveryQuoteResult, DeliveryLocation, NormalizedDeliveryQuoteInput, IdentityAuthenticateInput, IdentityAuthenticateResult };
|
|
24
23
|
//# 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;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,
|
|
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,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,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,YAAY,CAAU,CAAC;AACjE,eAAO,MAAM,kCAAkC,YAAI,YAAY,CAAU,CAAC;AAC1E,eAAO,MAAM,gCAAgC,YAAI,QAAQ,EAAE,YAAY,CAAU,CAAC;AAElF,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,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
|
@@ -4,14 +4,13 @@ import { deliveryQuoteInputSchema, deliveryQuoteResultSchema, operationCode as d
|
|
|
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 = ['
|
|
7
|
+
export const supportedQuoteAccessModes = ['authorized'];
|
|
8
8
|
export const supportedCreateShipmentAccessModes = ['authorized'];
|
|
9
9
|
export const supportedAuthenticateAccessModes = ['public', 'authorized'];
|
|
10
10
|
export const adapterConfigSchema = z.object({
|
|
11
11
|
baseUrl: z.url().optional(),
|
|
12
12
|
publicBaseUrl: z.url().optional(),
|
|
13
13
|
authorizedBaseUrl: z.url().optional(),
|
|
14
|
-
apiKey: z.string().min(1).optional(),
|
|
15
14
|
clientId: z.string().min(1).optional(),
|
|
16
15
|
clientSecret: z.string().min(1).optional(),
|
|
17
16
|
timeoutMs: z.number().int().positive().default(30_000)
|
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,
|
|
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,EAKzB,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,YAAY,CAAU,CAAC;AACjE,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,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
|
-
"description": "
|
|
3
|
+
"version": "0.1.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",
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "tsc -p tsconfig.json",
|
|
16
|
-
"check": "tsc -p tsconfig.json --noEmit"
|
|
16
|
+
"check": "tsc -p tsconfig.json --noEmit",
|
|
17
|
+
"test": "bun test"
|
|
17
18
|
},
|
|
18
19
|
"dependencies": {
|
|
19
|
-
"@opsregistry/contracts": "0.0.
|
|
20
|
+
"@opsregistry/contracts": "0.0.9",
|
|
20
21
|
"zod": "4.4.3"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|