@opsregistry/adapter-cdek 0.0.3 → 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 +1 -14
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +182 -165
- package/dist/adapter.js.map +1 -1
- package/dist/contracts.d.ts +7 -13
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +3 -5
- 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
|
-
- выбор режима доступа через старый `authMode` или новый `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,19 +1,6 @@
|
|
|
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
2
|
export type AdapterOperationOptions = {
|
|
3
|
-
/**
|
|
4
|
-
* Legacy operation-level selector kept for existing callers.
|
|
5
|
-
*/
|
|
6
|
-
authMode?: AuthMode;
|
|
7
|
-
/**
|
|
8
|
-
* Opsregistry IAM selector. `auto` prefers authorized access when the
|
|
9
|
-
* adapter has credentials, otherwise falls back to public access when the
|
|
10
|
-
* operation supports it.
|
|
11
|
-
*/
|
|
12
3
|
requestedAccessMode?: RequestedAccessMode;
|
|
13
|
-
/**
|
|
14
|
-
* Result of `it.identity.authenticate`. When provided, the operation uses
|
|
15
|
-
* its `accessModeUsed` instead of resolving access mode again.
|
|
16
|
-
*/
|
|
17
4
|
auth?: IdentityAuthenticateResult;
|
|
18
5
|
};
|
|
19
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,133 +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 assertSupportedAuthMode = (operationCode, supportedAuthModes, authMode) => {
|
|
6
|
-
const resolvedAuthMode = authMode ?? supportedAuthModes[0];
|
|
7
|
-
authModeSchema.parse(resolvedAuthMode);
|
|
8
|
-
if (!supportedAuthModes.includes(resolvedAuthMode)) {
|
|
9
|
-
throw new Error(`Adapter ${providerCode} does not support auth mode ${resolvedAuthMode} for ${operationCode}.`);
|
|
10
|
-
}
|
|
11
|
-
return resolvedAuthMode;
|
|
12
|
-
};
|
|
13
|
-
const readString = (value) => (typeof value === 'string' && value ? value : undefined);
|
|
14
|
-
const hasAuthorizedCredentials = (transport, credentials = {}) => Boolean((readString(credentials.clientId) ?? transport.clientId) &&
|
|
15
|
-
(readString(credentials.clientSecret) ?? transport.clientSecret));
|
|
16
|
-
const resolveRequestedAccessMode = (operationCode, supportedAuthModes, requestedAccessMode, hasCredentials) => {
|
|
17
|
-
const requested = requestedAccessModeSchema.parse(requestedAccessMode ?? 'auto');
|
|
18
|
-
if (requested === 'auto') {
|
|
19
|
-
if (hasCredentials && supportedAuthModes.includes('authorized'))
|
|
20
|
-
return 'authorized';
|
|
21
|
-
if (supportedAuthModes.includes('public'))
|
|
22
|
-
return 'public';
|
|
23
|
-
return assertSupportedAuthMode(operationCode, supportedAuthModes, 'authorized');
|
|
24
|
-
}
|
|
25
|
-
return assertSupportedAuthMode(operationCode, supportedAuthModes, requested);
|
|
4
|
+
throw new Error(`Adapter ${providerCode} does not implement ${operationCode} yet.`);
|
|
26
5
|
};
|
|
27
6
|
const createTransportContext = (config) => ({
|
|
28
7
|
timeoutMs: config.timeoutMs,
|
|
29
|
-
|
|
30
|
-
authorizedBaseUrl: config.authorizedBaseUrl ?? config.baseUrl ?? 'https://api.cdek.ru',
|
|
31
|
-
apiKey: config.apiKey,
|
|
8
|
+
baseUrl: (config.baseUrl ?? 'https://api.cdek.ru').replace(/\/+$/, ''),
|
|
32
9
|
clientId: config.clientId,
|
|
33
10
|
clientSecret: config.clientSecret
|
|
34
11
|
});
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
+
}
|
|
49
110
|
return {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
pricingScope: 'public',
|
|
53
|
-
options: [
|
|
54
|
-
buildQuoteStubOption(input, {
|
|
55
|
-
serviceCode: input.serviceCodes[0] ?? 'cdek-public',
|
|
56
|
-
serviceName: 'CDEK Public Calculator',
|
|
57
|
-
price: 950,
|
|
58
|
-
etaMinDays: 3,
|
|
59
|
-
etaMaxDays: 5,
|
|
60
|
-
notes: [
|
|
61
|
-
`Uses public branch ${transport.publicBaseUrl}.`,
|
|
62
|
-
'No contract pricing is applied in this stub.'
|
|
63
|
-
]
|
|
64
|
-
})
|
|
65
|
-
]
|
|
111
|
+
code,
|
|
112
|
+
...(location.addressLine ? { address: location.addressLine } : {})
|
|
66
113
|
};
|
|
67
114
|
};
|
|
68
|
-
const
|
|
69
|
-
|
|
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({
|
|
70
164
|
operationCode: deliveryQuoteOperationCode,
|
|
71
165
|
accessModeUsed: 'authorized',
|
|
72
166
|
pricingScope: 'personal',
|
|
73
|
-
options
|
|
74
|
-
|
|
75
|
-
serviceCode: input.serviceCodes[0] ?? 'cdek-contract',
|
|
76
|
-
serviceName: 'CDEK Contract Tariff',
|
|
77
|
-
price: 790,
|
|
78
|
-
etaMinDays: 2,
|
|
79
|
-
etaMaxDays: 4,
|
|
80
|
-
notes: [
|
|
81
|
-
`Uses authorized branch ${transport.authorizedBaseUrl}.`,
|
|
82
|
-
'Personal tariff branch is selected in this stub.'
|
|
83
|
-
]
|
|
84
|
-
})
|
|
85
|
-
]
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
const createShipmentAuthorized = async (transport, input) => {
|
|
89
|
-
void transport;
|
|
90
|
-
void input;
|
|
91
|
-
return notImplemented(`${createShipmentOperationCode} [authorized]`);
|
|
167
|
+
options
|
|
168
|
+
});
|
|
92
169
|
};
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
subject: {
|
|
97
|
-
kind: 'anonymous',
|
|
98
|
-
providerCode,
|
|
99
|
-
roles: [],
|
|
100
|
-
permissions: [],
|
|
101
|
-
scopes: [],
|
|
102
|
-
claims: {}
|
|
103
|
-
},
|
|
104
|
-
accessModeUsed: 'public',
|
|
105
|
-
credential: {
|
|
106
|
-
kind: 'none',
|
|
107
|
-
transport: 'none',
|
|
108
|
-
scopes: [],
|
|
109
|
-
metadata: {}
|
|
110
|
-
},
|
|
111
|
-
metadata: {
|
|
112
|
-
providerCode,
|
|
113
|
-
operationStatus: 'ready',
|
|
114
|
-
reason: 'CDEK public quote branch does not require credentials.'
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
const authenticateAuthorized = (transport, input) => {
|
|
118
|
-
const clientId = readString(input.credentials.clientId) ?? transport.clientId;
|
|
119
|
-
const clientSecret = readString(input.credentials.clientSecret) ?? transport.clientSecret;
|
|
120
|
-
const accessToken = readString(input.credentials.accessToken);
|
|
121
|
-
if (!clientId || !clientSecret) {
|
|
122
|
-
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.`);
|
|
123
173
|
}
|
|
174
|
+
const accessToken = await getAccessToken(transport);
|
|
124
175
|
return identityAuthenticateResultSchema.parse({
|
|
125
176
|
operationCode: identityAuthenticateOperationCode,
|
|
126
177
|
status: 'authenticated',
|
|
127
178
|
subject: {
|
|
128
179
|
kind: 'providerAccount',
|
|
129
|
-
id: clientId,
|
|
130
|
-
externalId: clientId,
|
|
180
|
+
id: transport.clientId,
|
|
181
|
+
externalId: transport.clientId,
|
|
131
182
|
providerCode,
|
|
132
183
|
roles: [],
|
|
133
184
|
permissions: [],
|
|
@@ -142,76 +193,42 @@ const authenticateAuthorized = (transport, input) => {
|
|
|
142
193
|
name: 'Authorization',
|
|
143
194
|
value: accessToken,
|
|
144
195
|
scopes: input.requestedScopes,
|
|
145
|
-
metadata: {
|
|
146
|
-
providerCode,
|
|
147
|
-
baseUrl: transport.authorizedBaseUrl,
|
|
148
|
-
implementationStatus: 'stub',
|
|
149
|
-
tokenExchangeRequired: !accessToken,
|
|
150
|
-
clientSecretPresent: Boolean(clientSecret)
|
|
151
|
-
}
|
|
196
|
+
metadata: { providerCode, baseUrl: transport.baseUrl }
|
|
152
197
|
},
|
|
153
|
-
metadata: {
|
|
154
|
-
providerCode,
|
|
155
|
-
operationStatus: 'stub',
|
|
156
|
-
note: 'Runtime should exchange client credentials for a real CDEK OAuth access token before HTTP calls.'
|
|
157
|
-
}
|
|
198
|
+
metadata: { providerCode, operationStatus: 'ready' }
|
|
158
199
|
});
|
|
159
200
|
};
|
|
160
201
|
export const createAdapter = (config = {}) => {
|
|
161
|
-
const
|
|
162
|
-
const transport = createTransportContext(resolvedConfig);
|
|
202
|
+
const transport = createTransportContext(adapterConfigSchema.parse(config));
|
|
163
203
|
return {
|
|
164
204
|
providerCode,
|
|
165
205
|
async authenticate(input = {}) {
|
|
166
|
-
const
|
|
167
|
-
subject: {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
...(input.subject ?? {})
|
|
171
|
-
},
|
|
172
|
-
method: input.method ??
|
|
173
|
-
(input.requestedAccessMode === 'public' ? 'none' : 'oauth2ClientCredentials'),
|
|
174
|
-
credentials: {
|
|
175
|
-
clientId: transport.clientId,
|
|
176
|
-
clientSecret: transport.clientSecret,
|
|
177
|
-
apiKey: transport.apiKey,
|
|
178
|
-
...(input.credentials ?? {})
|
|
179
|
-
},
|
|
206
|
+
const normalized = identityAuthenticateInputSchema.parse({
|
|
207
|
+
subject: { kind: 'providerAccount', providerCode, ...(input.subject ?? {}) },
|
|
208
|
+
method: input.method ?? 'oauth2ClientCredentials',
|
|
209
|
+
credentials: input.credentials ?? {},
|
|
180
210
|
requestedAccessMode: input.requestedAccessMode ?? 'auto',
|
|
181
211
|
requestedScopes: input.requestedScopes ?? [],
|
|
182
212
|
context: input.context
|
|
183
213
|
});
|
|
184
|
-
|
|
185
|
-
return accessMode === 'public'
|
|
186
|
-
? authenticatePublic()
|
|
187
|
-
: authenticateAuthorized(transport, normalizedInput);
|
|
214
|
+
return authenticate(transport, normalized);
|
|
188
215
|
},
|
|
189
216
|
async quoteDelivery(input, options = {}) {
|
|
190
|
-
deliveryQuoteInputSchema.parse(input);
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
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);
|
|
201
228
|
},
|
|
202
|
-
async createShipment(input
|
|
229
|
+
async createShipment(input) {
|
|
203
230
|
createShipmentInputSchema.parse(input);
|
|
204
|
-
|
|
205
|
-
? assertSupportedAuthMode(createShipmentOperationCode, supportedCreateShipmentAuthModes, options.auth.accessModeUsed)
|
|
206
|
-
: options.requestedAccessMode
|
|
207
|
-
? (await this.authenticate({
|
|
208
|
-
requestedAccessMode: options.requestedAccessMode
|
|
209
|
-
})).accessModeUsed
|
|
210
|
-
: assertSupportedAuthMode(createShipmentOperationCode, supportedCreateShipmentAuthModes, options.authMode);
|
|
211
|
-
if (authMode === 'authorized') {
|
|
212
|
-
return createShipmentAuthorized(transport, input);
|
|
213
|
-
}
|
|
214
|
-
return notImplemented(`${createShipmentOperationCode} [${authMode}]`);
|
|
231
|
+
return notImplemented(createShipmentOperationCode);
|
|
215
232
|
}
|
|
216
233
|
};
|
|
217
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,29 +1,23 @@
|
|
|
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
|
-
import { requestedAccessModeSchema, type AccessMode, type RequestedAccessMode } from '@opsregistry/contracts/it/iam-common';
|
|
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
|
|
8
|
-
|
|
9
|
-
authorized: "authorized";
|
|
10
|
-
}>;
|
|
11
|
-
export declare const supportedQuoteAuthModes: readonly ['public', 'authorized'];
|
|
12
|
-
export declare const supportedCreateShipmentAuthModes: readonly ['authorized'];
|
|
7
|
+
export declare const supportedQuoteAccessModes: readonly ['authorized'];
|
|
8
|
+
export declare const supportedCreateShipmentAccessModes: readonly ['authorized'];
|
|
13
9
|
export declare const supportedAuthenticateAccessModes: readonly ['public', 'authorized'];
|
|
14
10
|
export declare const adapterConfigSchema: z.ZodObject<{
|
|
15
11
|
baseUrl: z.ZodOptional<z.ZodURL>;
|
|
16
12
|
publicBaseUrl: z.ZodOptional<z.ZodURL>;
|
|
17
13
|
authorizedBaseUrl: z.ZodOptional<z.ZodURL>;
|
|
18
|
-
apiKey: z.ZodOptional<z.ZodString>;
|
|
19
14
|
clientId: z.ZodOptional<z.ZodString>;
|
|
20
15
|
clientSecret: z.ZodOptional<z.ZodString>;
|
|
21
16
|
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
22
17
|
}, z.core.$strip>;
|
|
23
|
-
export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, requestedAccessModeSchema };
|
|
18
|
+
export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, accessModeSchema, requestedAccessModeSchema };
|
|
24
19
|
export { createShipmentOperationCode, deliveryQuoteOperationCode, identityAuthenticateOperationCode };
|
|
25
20
|
export type AdapterConfig = z.input<typeof adapterConfigSchema>;
|
|
26
|
-
export type
|
|
27
|
-
export type {
|
|
28
|
-
export type { CreateShipmentInput, CreateShipmentResult, DeliveryQuoteInput, DeliveryQuoteResult, IdentityAuthenticateInput, IdentityAuthenticateResult };
|
|
21
|
+
export type { AccessMode, RequestedAccessMode };
|
|
22
|
+
export type { CreateShipmentInput, CreateShipmentResult, DeliveryQuoteInput, DeliveryQuoteResult, DeliveryLocation, NormalizedDeliveryQuoteInput, IdentityAuthenticateInput, IdentityAuthenticateResult };
|
|
29
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,
|
|
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,19 +4,17 @@ 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
|
|
8
|
-
export const
|
|
9
|
-
export const supportedCreateShipmentAuthModes = ['authorized'];
|
|
7
|
+
export const supportedQuoteAccessModes = ['authorized'];
|
|
8
|
+
export const supportedCreateShipmentAccessModes = ['authorized'];
|
|
10
9
|
export const supportedAuthenticateAccessModes = ['public', 'authorized'];
|
|
11
10
|
export const adapterConfigSchema = z.object({
|
|
12
11
|
baseUrl: z.url().optional(),
|
|
13
12
|
publicBaseUrl: z.url().optional(),
|
|
14
13
|
authorizedBaseUrl: z.url().optional(),
|
|
15
|
-
apiKey: z.string().min(1).optional(),
|
|
16
14
|
clientId: z.string().min(1).optional(),
|
|
17
15
|
clientSecret: z.string().min(1).optional(),
|
|
18
16
|
timeoutMs: z.number().int().positive().default(30_000)
|
|
19
17
|
});
|
|
20
|
-
export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, requestedAccessModeSchema };
|
|
18
|
+
export { createShipmentInputSchema, createShipmentResultSchema, deliveryQuoteInputSchema, deliveryQuoteResultSchema, identityAuthenticateInputSchema, identityAuthenticateResultSchema, accessModeSchema, requestedAccessModeSchema };
|
|
21
19
|
export { createShipmentOperationCode, deliveryQuoteOperationCode, identityAuthenticateOperationCode };
|
|
22
20
|
//# 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,
|
|
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": {
|