kiriminaja 0.1.7 → 0.1.9
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 +44 -0
- package/dist/adapters/h3.cjs +105 -299
- package/dist/adapters/h3.cjs.map +1 -1
- package/dist/adapters/h3.d.cts +135 -0
- package/dist/adapters/h3.d.mts +135 -0
- package/dist/adapters/h3.mjs +103 -296
- package/dist/adapters/h3.mjs.map +1 -1
- package/dist/client-CRP4vtI2.d.cts +362 -0
- package/dist/client-CSvAclmS.d.mts +362 -0
- package/dist/index.cjs +12 -292
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +64 -0
- package/dist/index.d.mts +64 -0
- package/dist/index.mjs +8 -288
- package/dist/index.mjs.map +1 -1
- package/dist/services-BC1TUDpA.cjs +242 -0
- package/dist/services-BC1TUDpA.cjs.map +1 -0
- package/dist/services-DfjK804A.mjs +219 -0
- package/dist/services-DfjK804A.mjs.map +1 -0
- package/package.json +23 -11
- package/dist/adapters/h3.d.ts +0 -120
- package/dist/adapters/h3.d.ts.map +0 -1
- package/dist/config/api.d.ts +0 -6
- package/dist/config/api.d.ts.map +0 -1
- package/dist/config/client.d.ts +0 -20
- package/dist/config/client.d.ts.map +0 -1
- package/dist/http/request.d.ts +0 -13
- package/dist/http/request.d.ts.map +0 -1
- package/dist/index.d.ts +0 -50
- package/dist/index.d.ts.map +0 -1
- package/dist/services/address/city.d.ts +0 -3
- package/dist/services/address/city.d.ts.map +0 -1
- package/dist/services/address/district-by-name.d.ts +0 -3
- package/dist/services/address/district-by-name.d.ts.map +0 -1
- package/dist/services/address/district.d.ts +0 -3
- package/dist/services/address/district.d.ts.map +0 -1
- package/dist/services/address/index.d.ts +0 -8
- package/dist/services/address/index.d.ts.map +0 -1
- package/dist/services/address/province.d.ts +0 -3
- package/dist/services/address/province.d.ts.map +0 -1
- package/dist/services/address/sub-district.d.ts +0 -3
- package/dist/services/address/sub-district.d.ts.map +0 -1
- package/dist/services/courier/detail.d.ts +0 -3
- package/dist/services/courier/detail.d.ts.map +0 -1
- package/dist/services/courier/group.d.ts +0 -3
- package/dist/services/courier/group.d.ts.map +0 -1
- package/dist/services/courier/index.d.ts +0 -7
- package/dist/services/courier/index.d.ts.map +0 -1
- package/dist/services/courier/list.d.ts +0 -3
- package/dist/services/courier/list.d.ts.map +0 -1
- package/dist/services/courier/set-whitelist-services.d.ts +0 -3
- package/dist/services/courier/set-whitelist-services.d.ts.map +0 -1
- package/dist/services/coverage-area/index.d.ts +0 -10
- package/dist/services/coverage-area/index.d.ts.map +0 -1
- package/dist/services/coverage-area/pricing-express.d.ts +0 -11
- package/dist/services/coverage-area/pricing-express.d.ts.map +0 -1
- package/dist/services/coverage-area/pricing-instant.d.ts +0 -20
- package/dist/services/coverage-area/pricing-instant.d.ts.map +0 -1
- package/dist/services/index.d.ts +0 -45
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/order/express/cancel.d.ts +0 -3
- package/dist/services/order/express/cancel.d.ts.map +0 -1
- package/dist/services/order/express/request-pickup-v5.d.ts +0 -3
- package/dist/services/order/express/request-pickup-v5.d.ts.map +0 -1
- package/dist/services/order/express/request-pickup-v61.d.ts +0 -3
- package/dist/services/order/express/request-pickup-v61.d.ts.map +0 -1
- package/dist/services/order/express/track.d.ts +0 -3
- package/dist/services/order/express/track.d.ts.map +0 -1
- package/dist/services/order/express.d.ts +0 -5
- package/dist/services/order/express.d.ts.map +0 -1
- package/dist/services/order/index.d.ts +0 -15
- package/dist/services/order/index.d.ts.map +0 -1
- package/dist/services/order/instant/cancel.d.ts +0 -3
- package/dist/services/order/instant/cancel.d.ts.map +0 -1
- package/dist/services/order/instant/create.d.ts +0 -2
- package/dist/services/order/instant/create.d.ts.map +0 -1
- package/dist/services/order/instant/find-new-driver.d.ts +0 -2
- package/dist/services/order/instant/find-new-driver.d.ts.map +0 -1
- package/dist/services/order/instant/track.d.ts +0 -3
- package/dist/services/order/instant/track.d.ts.map +0 -1
- package/dist/services/order/instant.d.ts +0 -5
- package/dist/services/order/instant.d.ts.map +0 -1
- package/dist/services/payment/get-payment.d.ts +0 -3
- package/dist/services/payment/get-payment.d.ts.map +0 -1
- package/dist/services/payment/index.d.ts +0 -4
- package/dist/services/payment/index.d.ts.map +0 -1
- package/dist/services/pickup/index.d.ts +0 -4
- package/dist/services/pickup/index.d.ts.map +0 -1
- package/dist/services/pickup/schedules.d.ts +0 -3
- package/dist/services/pickup/schedules.d.ts.map +0 -1
- package/dist/types/address.d.ts +0 -7
- package/dist/types/address.d.ts.map +0 -1
- package/dist/types/api-response.d.ts +0 -12
- package/dist/types/api-response.d.ts.map +0 -1
- package/dist/types/courier.d.ts +0 -39
- package/dist/types/courier.d.ts.map +0 -1
- package/dist/types/coverage-area.d.ts +0 -22
- package/dist/types/coverage-area.d.ts.map +0 -1
- package/dist/types/coverage-area.responses.d.ts +0 -19
- package/dist/types/coverage-area.responses.d.ts.map +0 -1
- package/dist/types/order.responses.d.ts +0 -146
- package/dist/types/order.responses.d.ts.map +0 -1
- package/dist/types/payment.responses.d.ts +0 -46
- package/dist/types/payment.responses.d.ts.map +0 -1
- package/dist/types/pickup.responses.d.ts +0 -11
- package/dist/types/pickup.responses.d.ts.map +0 -1
- package/dist/types/region.d.ts +0 -5
- package/dist/types/region.d.ts.map +0 -1
- package/dist/types/response.d.ts +0 -7
- package/dist/types/response.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -255,6 +255,50 @@ Calls made without `{ apiKey }` fall back to the key set in `defineKiriminAjaPlu
|
|
|
255
255
|
|
|
256
256
|
---
|
|
257
257
|
|
|
258
|
+
## Runtime Overrides (env & baseUrl)
|
|
259
|
+
|
|
260
|
+
Besides `apiKey`, `useKiriminAja()` also accepts `env` and `baseUrl` to override the config set by the plugin — useful for internal proxies, staging servers, or switching environments per-request.
|
|
261
|
+
|
|
262
|
+
| Option | Type | Description |
|
|
263
|
+
| --------- | ------- | ------------------------------------------------- |
|
|
264
|
+
| `apiKey` | `string` | Override the Authorization header |
|
|
265
|
+
| `env` | `KAEnv` | Switch between `KAEnv.SANDBOX` and `KAEnv.PRODUCTION` |
|
|
266
|
+
| `baseUrl` | `string` | Point all requests to a custom URL |
|
|
267
|
+
|
|
268
|
+
```ts
|
|
269
|
+
// Route requests through an internal proxy
|
|
270
|
+
import { useKiriminAja } from "kiriminaja/adapters/h3";
|
|
271
|
+
|
|
272
|
+
export default defineEventHandler(async (event) => {
|
|
273
|
+
const { coverageArea } = useKiriminAja({
|
|
274
|
+
baseUrl: "https://internal-proxy.local",
|
|
275
|
+
});
|
|
276
|
+
return coverageArea.pricingExpress(await readBody(event));
|
|
277
|
+
});
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
```ts
|
|
281
|
+
// Switch to production for a specific request
|
|
282
|
+
import { useKiriminAja, KAEnv } from "kiriminaja/adapters/h3";
|
|
283
|
+
|
|
284
|
+
export default defineEventHandler(async (event) => {
|
|
285
|
+
const { coverageArea } = useKiriminAja({ env: KAEnv.PRODUCTION });
|
|
286
|
+
return coverageArea.pricingExpress(await readBody(event));
|
|
287
|
+
});
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
Options can be combined freely:
|
|
291
|
+
|
|
292
|
+
```ts
|
|
293
|
+
const { order } = useKiriminAja({
|
|
294
|
+
apiKey: user.kiriminajaApiKey,
|
|
295
|
+
baseUrl: "https://internal-proxy.local",
|
|
296
|
+
});
|
|
297
|
+
await order.express.track("AWB123");
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
258
302
|
## Development
|
|
259
303
|
|
|
260
304
|
```bash
|
package/dist/adapters/h3.cjs
CHANGED
|
@@ -1,302 +1,108 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// src/services/address/city.ts
|
|
106
|
-
var getCities = (provinsiId) => {
|
|
107
|
-
return postJson("/api/mitra/city", {
|
|
108
|
-
provinsi_id: provinsiId
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
// src/services/address/district.ts
|
|
113
|
-
var getDistricts = (kabupatenId) => {
|
|
114
|
-
return postJson("/api/mitra/kecamatan", {
|
|
115
|
-
kabupaten_id: kabupatenId
|
|
116
|
-
});
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
// src/services/address/sub-district.ts
|
|
120
|
-
var getSubDistricts = (kecamatanId) => {
|
|
121
|
-
return postJson("/api/mitra/kelurahan", {
|
|
122
|
-
kecamatan_id: kecamatanId
|
|
123
|
-
});
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
// src/services/address/district-by-name.ts
|
|
127
|
-
var getDistrictsByName = (search) => {
|
|
128
|
-
return postJson(
|
|
129
|
-
"/api/mitra/v2/get_address_by_name",
|
|
130
|
-
{
|
|
131
|
-
search
|
|
132
|
-
}
|
|
133
|
-
);
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
// src/services/address/index.ts
|
|
137
|
-
var address = {
|
|
138
|
-
provinces: getProvinces,
|
|
139
|
-
cities: getCities,
|
|
140
|
-
districts: getDistricts,
|
|
141
|
-
subDistricts: getSubDistricts,
|
|
142
|
-
districtsByName: getDistrictsByName
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
// src/services/coverage-area/pricing-express.ts
|
|
146
|
-
var getPricingExpress = (payload) => {
|
|
147
|
-
return postJson(
|
|
148
|
-
"/api/mitra/v6.1/shipping_price",
|
|
149
|
-
payload
|
|
150
|
-
);
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
// src/services/coverage-area/pricing-instant.ts
|
|
154
|
-
var getPricingInstant = (payload) => {
|
|
155
|
-
return postJson(
|
|
156
|
-
"/api/mitra/v4/instant/pricing",
|
|
157
|
-
payload
|
|
158
|
-
);
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
// src/services/coverage-area/index.ts
|
|
162
|
-
var coverageArea = {
|
|
163
|
-
...address,
|
|
164
|
-
pricingExpress: getPricingExpress,
|
|
165
|
-
pricingInstant: getPricingInstant
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
// src/services/order/express/cancel.ts
|
|
169
|
-
var cancelExpressOrder = (awb, reason) => requestJson("/api/mitra/v3/cancel_shipment", {
|
|
170
|
-
method: "POST",
|
|
171
|
-
query: {
|
|
172
|
-
awb,
|
|
173
|
-
reason
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
// src/services/order/express/request-pickup-v5.ts
|
|
178
|
-
var requestPickupV5 = (payload) => postJson("/api/mitra/v5/request_pickup", payload);
|
|
179
|
-
|
|
180
|
-
// src/services/order/express/request-pickup-v61.ts
|
|
181
|
-
var requestPickupV61 = (payload) => postJson("/api/mitra/v6.1/request_pickup", payload);
|
|
182
|
-
|
|
183
|
-
// src/services/order/express/track.ts
|
|
184
|
-
var trackExpressOrder = (orderId) => postJson("/api/mitra/tracking", {
|
|
185
|
-
order_id: orderId
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
// src/services/order/instant/cancel.ts
|
|
189
|
-
var cancelInstantOrder = (orderId) => deleteJson(
|
|
190
|
-
`/api/mitra/v4/instant/pickup/void/${orderId}`
|
|
191
|
-
);
|
|
192
|
-
|
|
193
|
-
// src/services/order/instant/create.ts
|
|
194
|
-
var createInstantPickup = (payload) => postJson(
|
|
195
|
-
"/api/mitra/v4/instant/pickup/request",
|
|
196
|
-
payload
|
|
197
|
-
);
|
|
198
|
-
|
|
199
|
-
// src/services/order/instant/find-new-driver.ts
|
|
200
|
-
var findNewInstantDriver = (orderId) => postJson(
|
|
201
|
-
"/api/mitra/v4/instant/pickup/find-new-driver",
|
|
202
|
-
{
|
|
203
|
-
order_id: orderId
|
|
204
|
-
}
|
|
205
|
-
);
|
|
206
|
-
|
|
207
|
-
// src/services/order/instant/track.ts
|
|
208
|
-
var trackInstantOrder = (orderId) => getJson(
|
|
209
|
-
`/api/mitra/v4/instant/tracking/${orderId}`
|
|
210
|
-
);
|
|
211
|
-
|
|
212
|
-
// src/services/order/index.ts
|
|
213
|
-
var order = {
|
|
214
|
-
express: {
|
|
215
|
-
track: trackExpressOrder,
|
|
216
|
-
cancel: cancelExpressOrder,
|
|
217
|
-
requestPickupV5,
|
|
218
|
-
requestPickupV61
|
|
219
|
-
},
|
|
220
|
-
instant: {
|
|
221
|
-
create: createInstantPickup,
|
|
222
|
-
findNewDriver: findNewInstantDriver,
|
|
223
|
-
cancel: cancelInstantOrder,
|
|
224
|
-
track: trackInstantOrder
|
|
225
|
-
}
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
// src/services/pickup/schedules.ts
|
|
229
|
-
var getPickupSchedules = () => postJson("/api/mitra/v2/schedules");
|
|
230
|
-
|
|
231
|
-
// src/services/pickup/index.ts
|
|
232
|
-
var pickup = {
|
|
233
|
-
schedules: getPickupSchedules
|
|
234
|
-
};
|
|
235
|
-
|
|
236
|
-
// src/services/payment/get-payment.ts
|
|
237
|
-
var getPayment = (paymentId) => postJson("/api/mitra/v2/get_payment", {
|
|
238
|
-
payment_id: paymentId
|
|
239
|
-
});
|
|
240
|
-
|
|
241
|
-
// src/services/payment/index.ts
|
|
242
|
-
var payment = {
|
|
243
|
-
getPayment
|
|
244
|
-
};
|
|
245
|
-
|
|
246
|
-
// src/services/courier/detail.ts
|
|
247
|
-
var getCourierDetail = (courierCode) => postJson("/api/mitra/courier_services", {
|
|
248
|
-
courier_code: courierCode
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
// src/services/courier/group.ts
|
|
252
|
-
var getCourierGroups = () => postJson("/api/mitra/couriers_group");
|
|
253
|
-
|
|
254
|
-
// src/services/courier/list.ts
|
|
255
|
-
var listCouriers = () => postJson("/api/mitra/couriers");
|
|
256
|
-
|
|
257
|
-
// src/services/courier/set-whitelist-services.ts
|
|
258
|
-
var setWhitelistServices = (services2) => postJson(
|
|
259
|
-
"/api/mitra/v3/set_whitelist_services",
|
|
260
|
-
{
|
|
261
|
-
services: services2
|
|
262
|
-
}
|
|
263
|
-
);
|
|
264
|
-
|
|
265
|
-
// src/services/courier/index.ts
|
|
266
|
-
var courier = {
|
|
267
|
-
list: listCouriers,
|
|
268
|
-
group: getCourierGroups,
|
|
269
|
-
detail: getCourierDetail,
|
|
270
|
-
setWhitelistServices
|
|
271
|
-
};
|
|
272
|
-
|
|
273
|
-
// src/services/index.ts
|
|
274
|
-
var services = {
|
|
275
|
-
address,
|
|
276
|
-
coverageArea,
|
|
277
|
-
order,
|
|
278
|
-
pickup,
|
|
279
|
-
payment,
|
|
280
|
-
courier
|
|
281
|
-
};
|
|
282
|
-
|
|
283
|
-
// src/adapters/h3.ts
|
|
284
|
-
var defineKiriminAjaPlugin = (options) => {
|
|
285
|
-
return () => {
|
|
286
|
-
const resolved = typeof options === "function" ? options() : options;
|
|
287
|
-
init(resolved);
|
|
288
|
-
};
|
|
289
|
-
};
|
|
290
|
-
var useKiriminAja = (options) => {
|
|
291
|
-
if (options?.apiKey) {
|
|
292
|
-
const current = getConfig();
|
|
293
|
-
init({ ...current, apiKey: options.apiKey });
|
|
294
|
-
}
|
|
295
|
-
return services;
|
|
296
|
-
};
|
|
297
|
-
|
|
298
|
-
exports.KAEnv = KAEnv;
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_services = require("../services-BC1TUDpA.cjs");
|
|
3
|
+
//#region src/adapters/h3.ts
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Nitro/h3 server plugin that initializes the KiriminAja SDK.
|
|
6
|
+
*
|
|
7
|
+
* Accepts either a plain options object or a factory function — use the
|
|
8
|
+
* factory form when you need to read Nuxt runtime config lazily (i.e. inside
|
|
9
|
+
* the plugin callback where `useRuntimeConfig()` is available).
|
|
10
|
+
*
|
|
11
|
+
* @example Plain options (shared API key)
|
|
12
|
+
* ```ts
|
|
13
|
+
* // server/plugins/kiriminaja.ts
|
|
14
|
+
* import { defineKiriminAjaPlugin, KAEnv } from 'kiriminaja/adapters/h3'
|
|
15
|
+
*
|
|
16
|
+
* export default defineKiriminAjaPlugin({
|
|
17
|
+
* apiKey: process.env.KIRIMINAJA_API_KEY,
|
|
18
|
+
* env: KAEnv.PRODUCTION,
|
|
19
|
+
* })
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example With Nuxt runtime config
|
|
23
|
+
* ```ts
|
|
24
|
+
* // server/plugins/kiriminaja.ts
|
|
25
|
+
* import { defineKiriminAjaPlugin, KAEnv } from 'kiriminaja/adapters/h3'
|
|
26
|
+
* import { useRuntimeConfig } from '#imports'
|
|
27
|
+
*
|
|
28
|
+
* export default defineKiriminAjaPlugin(() => ({
|
|
29
|
+
* apiKey: useRuntimeConfig().kiriminajaApiKey,
|
|
30
|
+
* env: KAEnv.PRODUCTION,
|
|
31
|
+
* }))
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
const defineKiriminAjaPlugin = (options) => {
|
|
35
|
+
return () => {
|
|
36
|
+
require_services.init(typeof options === "function" ? options() : options);
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Returns the KiriminAja service methods for use inside Nitro/h3 event
|
|
41
|
+
* handlers or Nuxt server routes.
|
|
42
|
+
*
|
|
43
|
+
* - **No arguments** — uses the config set via `defineKiriminAjaPlugin`.
|
|
44
|
+
* - **`{ apiKey }`** — overrides the Authorization header for every service
|
|
45
|
+
* call made on the returned object.
|
|
46
|
+
* - **`{ env }`** — switches between sandbox and production environments.
|
|
47
|
+
* - **`{ baseUrl }`** — points all requests to a custom URL (e.g. an internal
|
|
48
|
+
* proxy or staging server).
|
|
49
|
+
*
|
|
50
|
+
* The SDK **must** have been initialized (via `defineKiriminAjaPlugin`) before
|
|
51
|
+
* any service method is called.
|
|
52
|
+
*
|
|
53
|
+
* @example Shared API key (from plugin)
|
|
54
|
+
* ```ts
|
|
55
|
+
* // server/api/rates.post.ts
|
|
56
|
+
* import { useKiriminAja } from 'kiriminaja/adapters/h3'
|
|
57
|
+
*
|
|
58
|
+
* export default defineEventHandler(async (event) => {
|
|
59
|
+
* const { coverageArea } = useKiriminAja()
|
|
60
|
+
* const body = await readBody(event)
|
|
61
|
+
* return coverageArea.pricingExpress(body)
|
|
62
|
+
* })
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @example Per-user API key
|
|
66
|
+
* ```ts
|
|
67
|
+
* // server/api/rates.post.ts
|
|
68
|
+
* import { useKiriminAja } from 'kiriminaja/adapters/h3'
|
|
69
|
+
*
|
|
70
|
+
* export default defineEventHandler(async (event) => {
|
|
71
|
+
* const user = await requireAuthUser(event)
|
|
72
|
+
* const body = await readBody(event)
|
|
73
|
+
* const { coverageArea } = useKiriminAja({ apiKey: user.kiriminajaApiKey })
|
|
74
|
+
* return coverageArea.pricingExpress(body)
|
|
75
|
+
* })
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @example Custom base URL (internal proxy)
|
|
79
|
+
* ```ts
|
|
80
|
+
* import { useKiriminAja } from 'kiriminaja/adapters/h3'
|
|
81
|
+
*
|
|
82
|
+
* export default defineEventHandler(async (event) => {
|
|
83
|
+
* const { coverageArea } = useKiriminAja({ baseUrl: 'https://internal-proxy.local' })
|
|
84
|
+
* return coverageArea.pricingExpress(await readBody(event))
|
|
85
|
+
* })
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
const useKiriminAja = (options) => {
|
|
89
|
+
if (options?.apiKey || options?.env || options?.baseUrl) {
|
|
90
|
+
let current = {};
|
|
91
|
+
try {
|
|
92
|
+
current = { ...require_services.getConfig() };
|
|
93
|
+
} catch {}
|
|
94
|
+
const merged = {
|
|
95
|
+
...current,
|
|
96
|
+
...options
|
|
97
|
+
};
|
|
98
|
+
if (options.env && !options.baseUrl) delete merged.baseUrl;
|
|
99
|
+
require_services.init(merged);
|
|
100
|
+
} else require_services.getConfig();
|
|
101
|
+
return require_services.services;
|
|
102
|
+
};
|
|
103
|
+
//#endregion
|
|
104
|
+
exports.KAEnv = require_services.KAEnv;
|
|
299
105
|
exports.defineKiriminAjaPlugin = defineKiriminAjaPlugin;
|
|
300
106
|
exports.useKiriminAja = useKiriminAja;
|
|
301
|
-
|
|
107
|
+
|
|
302
108
|
//# sourceMappingURL=h3.cjs.map
|
package/dist/adapters/h3.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/api.ts","../../src/config/client.ts","../../src/http/request.ts","../../src/services/address/province.ts","../../src/services/address/city.ts","../../src/services/address/district.ts","../../src/services/address/sub-district.ts","../../src/services/address/district-by-name.ts","../../src/services/address/index.ts","../../src/services/coverage-area/pricing-express.ts","../../src/services/coverage-area/pricing-instant.ts","../../src/services/coverage-area/index.ts","../../src/services/order/express/cancel.ts","../../src/services/order/express/request-pickup-v5.ts","../../src/services/order/express/request-pickup-v61.ts","../../src/services/order/express/track.ts","../../src/services/order/instant/cancel.ts","../../src/services/order/instant/create.ts","../../src/services/order/instant/find-new-driver.ts","../../src/services/order/instant/track.ts","../../src/services/order/index.ts","../../src/services/pickup/schedules.ts","../../src/services/pickup/index.ts","../../src/services/payment/get-payment.ts","../../src/services/payment/index.ts","../../src/services/courier/detail.ts","../../src/services/courier/group.ts","../../src/services/courier/list.ts","../../src/services/courier/set-whitelist-services.ts","../../src/services/courier/index.ts","../../src/services/index.ts","../../src/adapters/h3.ts"],"names":["KAEnv","services"],"mappings":"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","file":"h3.cjs","sourcesContent":["export enum KAEnv {\n SANDBOX = \"sandbox\",\n PRODUCTION = \"production\",\n}\n\nexport const KA_ENV_URL: Record<KAEnv, string> = {\n [KAEnv.SANDBOX]: \"https://tdev.kiriminaja.com\",\n [KAEnv.PRODUCTION]: \"https://client.kiriminaja.com\",\n};\n","import { KA_ENV_URL, KAEnv } from \"./api.js\";\n\nexport type FetchLike = (\n input: Parameters<typeof fetch>[0],\n init?: Parameters<typeof fetch>[1],\n) => ReturnType<typeof fetch>;\n\nexport type HeadersInitLike =\n | Record<string, string>\n | Array<[string, string]>\n | Parameters<typeof fetch>[1];\n\nexport type InitOptions = {\n env?: KAEnv;\n baseUrl?: string;\n apiKey?: string;\n fetch?: FetchLike;\n headers?: HeadersInitLike;\n};\n\nexport type ClientConfig = {\n env: KAEnv;\n baseUrl: string;\n apiKey?: string;\n fetch: FetchLike;\n headers?: HeadersInitLike;\n};\n\nlet singletonConfig: ClientConfig | undefined;\n\nexport const init = ({\n env = KAEnv.SANDBOX,\n baseUrl,\n apiKey,\n fetch: fetchImpl,\n headers,\n}: InitOptions = {}): ClientConfig => {\n const resolvedFetch = fetchImpl ?? (globalThis as Record<string, unknown>).fetch as FetchLike | undefined;\n if (!resolvedFetch) {\n throw new Error(\n \"Global fetch is not available. Provide Init({ fetch }) or use a runtime with fetch (Node 18+/Bun).\",\n );\n }\n\n const resolvedBaseUrl = baseUrl ?? KA_ENV_URL[env];\n singletonConfig = {\n env,\n baseUrl: resolvedBaseUrl,\n apiKey,\n fetch: resolvedFetch,\n headers,\n };\n\n return singletonConfig;\n};\n\nexport const getConfig = (): ClientConfig => {\n if (!singletonConfig) {\n throw new Error(\n \"KiriminAja.Init() must be called before using any API methods.\",\n );\n }\n return singletonConfig;\n};\n","import { getConfig } from \"../config/client.js\";\n\ntype RequestMethod = \"GET\" | \"POST\" | \"DELETE\";\n\ntype RequestOptions = {\n method?: RequestMethod;\n query?: Record<string, string | number | boolean | undefined | null>;\n body?: unknown;\n headers?: Record<string, string>;\n};\n\nconst buildUrl = (path: string, baseUrl: string) => {\n const normalizedPath = path.startsWith(\"/\") ? path : `/${path}`;\n return new URL(normalizedPath, baseUrl);\n};\n\nexport const requestJson = async <T>(\n path: string,\n options: RequestOptions = {},\n): Promise<T> => {\n const config = getConfig();\n const url = buildUrl(path, config.baseUrl);\n\n if (options.query) {\n for (const [key, value] of Object.entries(options.query)) {\n if (value === undefined || value === null) continue;\n url.searchParams.set(key, String(value));\n }\n }\n\n const method: RequestMethod = options.method ?? \"POST\";\n const hasJsonBody =\n options.body !== undefined && method !== \"GET\" && method !== \"DELETE\";\n\n const headers = new Headers();\n headers.set(\"Accept\", \"application/json\");\n if (hasJsonBody) headers.set(\"Content-Type\", \"application/json\");\n if (config.apiKey) headers.set(\"Authorization\", `Bearer ${config.apiKey}`);\n\n if (config.headers) {\n new Headers(config.headers as any).forEach((value, key) => {\n headers.set(key, value);\n });\n }\n\n if (options.headers) {\n for (const [key, value] of Object.entries(options.headers)) {\n headers.set(key, value);\n }\n }\n\n const response = await config.fetch(url.toString(), {\n method,\n headers,\n ...(hasJsonBody ? { body: JSON.stringify(options.body) } : {}),\n });\n\n if (!response.ok) {\n throw new Error(\n `Request failed: ${response.status} ${response.statusText}`,\n );\n }\n\n return (await response.json()) as T;\n};\n\nexport const postJson = async <T>(\n path: string,\n body?: unknown,\n options: Omit<RequestOptions, \"method\" | \"body\"> = {},\n): Promise<T> => {\n return requestJson<T>(path, { ...options, method: \"POST\", body });\n};\n\nexport const getJson = async <T>(\n path: string,\n options: Omit<RequestOptions, \"method\" | \"body\"> = {},\n): Promise<T> => {\n return requestJson<T>(path, { ...options, method: \"GET\" });\n};\n\nexport const deleteJson = async <T>(\n path: string,\n options: Omit<RequestOptions, \"method\" | \"body\"> = {},\n): Promise<T> => {\n return requestJson<T>(path, { ...options, method: \"DELETE\" });\n};\n","import type { ProvinceListResponse } from \"../../types/coverage-area.responses.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const getProvinces = () => {\n return postJson<ProvinceListResponse>(\"/api/mitra/province\");\n};\n","import type { CityListResponse } from \"../../types/coverage-area.responses.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const getCities = (provinsiId: number) => {\n return postJson<CityListResponse>(\"/api/mitra/city\", {\n provinsi_id: provinsiId,\n });\n};\n","import type { DistrictListResponse } from \"../../types/coverage-area.responses.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const getDistricts = (kabupatenId: number) => {\n return postJson<DistrictListResponse>(\"/api/mitra/kecamatan\", {\n kabupaten_id: kabupatenId,\n });\n};\n","import type { SubDistrictListResponse } from \"../../types/coverage-area.responses.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const getSubDistricts = (kecamatanId: number) => {\n return postJson<SubDistrictListResponse>(\"/api/mitra/kelurahan\", {\n kecamatan_id: kecamatanId,\n });\n};\n","import type { DistrictByNameResponse } from \"../../types/coverage-area.responses.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const getDistrictsByName = (search: string) => {\n return postJson<DistrictByNameResponse>(\n \"/api/mitra/v2/get_address_by_name\",\n {\n search,\n },\n );\n};\n","import { getProvinces } from \"./province.js\";\nimport { getCities } from \"./city.js\";\nimport { getDistricts } from \"./district.js\";\nimport { getSubDistricts } from \"./sub-district.js\";\nimport { getDistrictsByName } from \"./district-by-name.js\";\n\nexport const address = {\n provinces: getProvinces,\n cities: getCities,\n districts: getDistricts,\n subDistricts: getSubDistricts,\n districtsByName: getDistrictsByName,\n};\n","import type { KAResponse } from \"../../types/api-response.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport type PricingExpressPayload = {\n origin: number;\n destination: number;\n weight: number;\n item_value: string | number;\n insurance: number;\n courier: string[];\n};\n\nexport const getPricingExpress = <T = unknown>(\n payload: PricingExpressPayload,\n) => {\n return postJson<KAResponse<unknown>>(\n \"/api/mitra/v6.1/shipping_price\",\n payload,\n );\n};\n","import type { KAResponse } from \"../../types/api-response.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport type PricingInstantPayload = {\n service: string[];\n item_price: number;\n origin: {\n lat: number;\n long: number;\n address: string;\n };\n destination: {\n lat: number;\n long: number;\n address: string;\n };\n weight: number;\n vehicle: string;\n timezone: string;\n};\n\nexport const getPricingInstant = <T = unknown>(\n payload: PricingInstantPayload,\n) => {\n return postJson<KAResponse<unknown>>(\n \"/api/mitra/v4/instant/pricing\",\n payload,\n );\n};\n","import { getPricingExpress } from \"./pricing-express.js\";\nimport { getPricingInstant } from \"./pricing-instant.js\";\nimport { address } from \"../address/index.js\";\n\nexport const coverageArea = {\n ...address,\n pricingExpress: getPricingExpress,\n pricingInstant: getPricingInstant,\n};\n","import type { CancelExpressOrderResponse } from \"../../../types/order.responses.js\";\nimport { requestJson } from \"../../../http/request.js\";\n\nexport const cancelExpressOrder = (awb: string, reason: string) =>\n requestJson<CancelExpressOrderResponse>(\"/api/mitra/v3/cancel_shipment\", {\n method: \"POST\",\n query: {\n awb,\n reason,\n },\n });\n","import type { KAResponse } from \"../../../types/api-response.js\";\nimport { postJson } from \"../../../http/request.js\";\n\nexport const requestPickupV5 = (payload: unknown) =>\n postJson<KAResponse<unknown>>(\"/api/mitra/v5/request_pickup\", payload);\n","import type { KAResponse } from \"../../../types/api-response.js\";\nimport { postJson } from \"../../../http/request.js\";\n\nexport const requestPickupV61 = (payload: unknown) =>\n postJson<KAResponse<unknown>>(\"/api/mitra/v6.1/request_pickup\", payload);\n","import type { ExpressTrackingResponse } from \"../../../types/order.responses.js\";\nimport { postJson } from \"../../../http/request.js\";\n\nexport const trackExpressOrder = (orderId: string) =>\n postJson<ExpressTrackingResponse>(\"/api/mitra/tracking\", {\n order_id: orderId,\n });\n","import type { CancelInstantOrderResponse } from \"../../../types/order.responses.js\";\nimport { deleteJson } from \"../../../http/request.js\";\n\nexport const cancelInstantOrder = (orderId: string) =>\n deleteJson<CancelInstantOrderResponse>(\n `/api/mitra/v4/instant/pickup/void/${orderId}`,\n );\n","import type { CreateInstantPickupResponse } from \"../../../types/order.responses.js\";\nimport { postJson } from \"../../../http/request.js\";\n\nexport const createInstantPickup = (payload: unknown) =>\n postJson<CreateInstantPickupResponse>(\n \"/api/mitra/v4/instant/pickup/request\",\n payload,\n );\n","import type { FindNewInstantDriverResponse } from \"../../../types/order.responses.js\";\nimport { postJson } from \"../../../http/request.js\";\n\nexport const findNewInstantDriver = (orderId: string) =>\n postJson<FindNewInstantDriverResponse>(\n \"/api/mitra/v4/instant/pickup/find-new-driver\",\n {\n order_id: orderId,\n },\n );\n","import type { InstantTrackingResponse } from \"../../../types/order.responses.js\";\nimport { getJson } from \"../../../http/request.js\";\n\nexport const trackInstantOrder = (orderId: string) =>\n getJson<InstantTrackingResponse>(\n `/api/mitra/v4/instant/tracking/${orderId}`,\n );\n","import {\n cancelExpressOrder,\n requestPickupV5,\n requestPickupV61,\n trackExpressOrder,\n} from \"./express.js\";\nimport {\n cancelInstantOrder,\n createInstantPickup,\n findNewInstantDriver,\n trackInstantOrder,\n} from \"./instant.js\";\n\nexport const order = {\n express: {\n track: trackExpressOrder,\n cancel: cancelExpressOrder,\n requestPickupV5,\n requestPickupV61,\n },\n instant: {\n create: createInstantPickup,\n findNewDriver: findNewInstantDriver,\n cancel: cancelInstantOrder,\n track: trackInstantOrder,\n },\n};\n","import type { PickupSchedulesResponse } from \"../../types/pickup.responses.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const getPickupSchedules = () =>\n postJson<PickupSchedulesResponse>(\"/api/mitra/v2/schedules\");\n","import { getPickupSchedules } from \"./schedules.js\";\n\nexport const pickup = {\n schedules: getPickupSchedules,\n};\n","import type { GetPaymentResponse } from \"../../types/payment.responses.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const getPayment = (paymentId: string) =>\n postJson<GetPaymentResponse>(\"/api/mitra/v2/get_payment\", {\n payment_id: paymentId,\n });\n","import { getPayment } from \"./get-payment.js\";\n\nexport const payment = {\n getPayment,\n};\n","import type { CourierDetailResponse } from \"../../types/courier.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const getCourierDetail = (courierCode: string) =>\n postJson<CourierDetailResponse>(\"/api/mitra/courier_services\", {\n courier_code: courierCode,\n });\n","import type { CourierGroupResponse } from \"../../types/courier.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const getCourierGroups = () =>\n postJson<CourierGroupResponse>(\"/api/mitra/couriers_group\");\n","import type { CourierListResponse } from \"../../types/courier.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const listCouriers = () =>\n postJson<CourierListResponse>(\"/api/mitra/couriers\");\n","import type { SetCourierPreferenceResponse } from \"../../types/courier.js\";\nimport { postJson } from \"../../http/request.js\";\n\nexport const setWhitelistServices = (services: string[]) =>\n postJson<SetCourierPreferenceResponse>(\n \"/api/mitra/v3/set_whitelist_services\",\n {\n services,\n },\n );\n","import { getCourierDetail } from \"./detail.js\";\nimport { getCourierGroups } from \"./group.js\";\nimport { listCouriers } from \"./list.js\";\nimport { setWhitelistServices } from \"./set-whitelist-services.js\";\n\nexport const courier = {\n list: listCouriers,\n group: getCourierGroups,\n detail: getCourierDetail,\n setWhitelistServices,\n};\n","import { address } from \"./address/index.js\";\nimport { coverageArea } from \"./coverage-area/index.js\";\nimport { order } from \"./order/index.js\";\nimport { pickup } from \"./pickup/index.js\";\nimport { payment } from \"./payment/index.js\";\nimport { courier } from \"./courier/index.js\";\n\nexport const services = {\n address,\n coverageArea,\n order,\n pickup,\n payment,\n courier,\n};\n","import { init, getConfig, type InitOptions } from \"../config/client.js\";\nimport { services } from \"../services/index.js\";\nimport { KAEnv } from \"../config/api.js\";\n\nexport { KAEnv };\n\n/**\n * Creates a Nitro/h3 server plugin that initializes the KiriminAja SDK.\n *\n * Accepts either a plain options object or a factory function — use the\n * factory form when you need to read Nuxt runtime config lazily (i.e. inside\n * the plugin callback where `useRuntimeConfig()` is available).\n *\n * @example Plain options (shared API key)\n * ```ts\n * // server/plugins/kiriminaja.ts\n * import { defineKiriminAjaPlugin, KAEnv } from 'kiriminaja/adapters/h3'\n *\n * export default defineKiriminAjaPlugin({\n * apiKey: process.env.KIRIMINAJA_API_KEY,\n * env: KAEnv.PRODUCTION,\n * })\n * ```\n *\n * @example With Nuxt runtime config\n * ```ts\n * // server/plugins/kiriminaja.ts\n * import { defineKiriminAjaPlugin, KAEnv } from 'kiriminaja/adapters/h3'\n * import { useRuntimeConfig } from '#imports'\n *\n * export default defineKiriminAjaPlugin(() => ({\n * apiKey: useRuntimeConfig().kiriminajaApiKey,\n * env: KAEnv.PRODUCTION,\n * }))\n * ```\n */\nexport const defineKiriminAjaPlugin = (\n options: InitOptions | (() => InitOptions),\n) => {\n return () => {\n const resolved = typeof options === \"function\" ? options() : options;\n init(resolved);\n };\n};\n\nexport type UseKiriminAjaOptions = {\n apiKey?: string;\n};\n\n/**\n * Returns the KiriminAja service methods for use inside Nitro/h3 event\n * handlers or Nuxt server routes.\n *\n * - **No arguments** — uses the API key configured via `defineKiriminAjaPlugin`.\n * - **`{ apiKey }`** — overrides the Authorization header for every service\n * call made on the returned object. Safe for concurrent requests; each call\n * runs in its own `AsyncLocalStorage` context so keys never bleed across\n * requests.\n *\n * The SDK **must** have been initialized (via `defineKiriminAjaPlugin`) before\n * any service method is called.\n *\n * @example Shared API key (from plugin)\n * ```ts\n * // server/api/rates.post.ts\n * import { useKiriminAja } from 'kiriminaja/adapters/h3'\n *\n * export default defineEventHandler(async (event) => {\n * const { coverageArea } = useKiriminAja()\n * const body = await readBody(event)\n * return coverageArea.pricingExpress(body)\n * })\n * ```\n *\n * @example Per-user API key\n * ```ts\n * // server/api/rates.post.ts\n * import { useKiriminAja } from 'kiriminaja/adapters/h3'\n *\n * export default defineEventHandler(async (event) => {\n * const user = await requireAuthUser(event)\n * const body = await readBody(event)\n * const { coverageArea } = useKiriminAja({ apiKey: user.kiriminajaApiKey })\n * return coverageArea.pricingExpress(body)\n * })\n * ```\n */\nexport const useKiriminAja = (options?: UseKiriminAjaOptions) => {\n if (options?.apiKey) {\n const current = getConfig();\n init({ ...current, apiKey: options.apiKey });\n }\n return services;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"h3.cjs","names":["getConfig","services"],"sources":["../../src/adapters/h3.ts"],"sourcesContent":["import { init, getConfig, type InitOptions } from \"../config/client\";\nimport { services } from \"../services/index\";\nimport { KAEnv } from \"../config/api\";\n\nexport { KAEnv };\n\n/**\n * Creates a Nitro/h3 server plugin that initializes the KiriminAja SDK.\n *\n * Accepts either a plain options object or a factory function — use the\n * factory form when you need to read Nuxt runtime config lazily (i.e. inside\n * the plugin callback where `useRuntimeConfig()` is available).\n *\n * @example Plain options (shared API key)\n * ```ts\n * // server/plugins/kiriminaja.ts\n * import { defineKiriminAjaPlugin, KAEnv } from 'kiriminaja/adapters/h3'\n *\n * export default defineKiriminAjaPlugin({\n * apiKey: process.env.KIRIMINAJA_API_KEY,\n * env: KAEnv.PRODUCTION,\n * })\n * ```\n *\n * @example With Nuxt runtime config\n * ```ts\n * // server/plugins/kiriminaja.ts\n * import { defineKiriminAjaPlugin, KAEnv } from 'kiriminaja/adapters/h3'\n * import { useRuntimeConfig } from '#imports'\n *\n * export default defineKiriminAjaPlugin(() => ({\n * apiKey: useRuntimeConfig().kiriminajaApiKey,\n * env: KAEnv.PRODUCTION,\n * }))\n * ```\n */\nexport const defineKiriminAjaPlugin = (\n options: InitOptions | (() => InitOptions),\n) => {\n return () => {\n const resolved = typeof options === \"function\" ? options() : options;\n init(resolved);\n };\n};\n\nexport type UseKiriminAjaOptions = {\n apiKey?: string;\n env?: KAEnv;\n baseUrl?: string;\n};\n\n/**\n * Returns the KiriminAja service methods for use inside Nitro/h3 event\n * handlers or Nuxt server routes.\n *\n * - **No arguments** — uses the config set via `defineKiriminAjaPlugin`.\n * - **`{ apiKey }`** — overrides the Authorization header for every service\n * call made on the returned object.\n * - **`{ env }`** — switches between sandbox and production environments.\n * - **`{ baseUrl }`** — points all requests to a custom URL (e.g. an internal\n * proxy or staging server).\n *\n * The SDK **must** have been initialized (via `defineKiriminAjaPlugin`) before\n * any service method is called.\n *\n * @example Shared API key (from plugin)\n * ```ts\n * // server/api/rates.post.ts\n * import { useKiriminAja } from 'kiriminaja/adapters/h3'\n *\n * export default defineEventHandler(async (event) => {\n * const { coverageArea } = useKiriminAja()\n * const body = await readBody(event)\n * return coverageArea.pricingExpress(body)\n * })\n * ```\n *\n * @example Per-user API key\n * ```ts\n * // server/api/rates.post.ts\n * import { useKiriminAja } from 'kiriminaja/adapters/h3'\n *\n * export default defineEventHandler(async (event) => {\n * const user = await requireAuthUser(event)\n * const body = await readBody(event)\n * const { coverageArea } = useKiriminAja({ apiKey: user.kiriminajaApiKey })\n * return coverageArea.pricingExpress(body)\n * })\n * ```\n *\n * @example Custom base URL (internal proxy)\n * ```ts\n * import { useKiriminAja } from 'kiriminaja/adapters/h3'\n *\n * export default defineEventHandler(async (event) => {\n * const { coverageArea } = useKiriminAja({ baseUrl: 'https://internal-proxy.local' })\n * return coverageArea.pricingExpress(await readBody(event))\n * })\n * ```\n */\nexport const useKiriminAja = (options?: UseKiriminAjaOptions) => {\n if (options?.apiKey || options?.env || options?.baseUrl) {\n let current: Record<string, unknown> = {};\n try {\n current = { ...getConfig() };\n } catch {\n // No prior init — that's fine, we'll bootstrap from options alone.\n }\n const merged = { ...current, ...options };\n // When env changes but no explicit baseUrl was given, clear baseUrl\n // so init() derives it from the new env.\n if (options.env && !options.baseUrl) {\n delete merged.baseUrl;\n }\n init(merged as Parameters<typeof init>[0]);\n } else {\n // Ensure the SDK was initialized — will throw if not.\n getConfig();\n }\n return services;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAa,0BACT,YACC;AACD,cAAa;AAET,mBAAA,KADiB,OAAO,YAAY,aAAa,SAAS,GAAG,QAC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DtB,MAAa,iBAAiB,YAAmC;AAC7D,KAAI,SAAS,UAAU,SAAS,OAAO,SAAS,SAAS;EACrD,IAAI,UAAmC,EAAE;AACzC,MAAI;AACA,aAAU,EAAE,GAAGA,iBAAAA,WAAW,EAAE;UACxB;EAGR,MAAM,SAAS;GAAE,GAAG;GAAS,GAAG;GAAS;AAGzC,MAAI,QAAQ,OAAO,CAAC,QAAQ,QACxB,QAAO,OAAO;AAElB,mBAAA,KAAK,OAAqC;OAG1C,kBAAA,WAAW;AAEf,QAAOC,iBAAAA"}
|