kiriminaja 0.1.6 → 0.1.7
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/dist/adapters/h3.cjs +302 -0
- package/dist/adapters/h3.cjs.map +1 -0
- package/dist/adapters/h3.mjs +298 -0
- package/dist/adapters/h3.mjs.map +1 -0
- package/dist/config/client.d.ts +1 -1
- package/dist/config/client.d.ts.map +1 -1
- package/dist/index.cjs +296 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +27 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +291 -0
- package/dist/index.mjs.map +1 -0
- package/dist/services/address/city.d.ts +1 -1
- package/dist/services/address/city.d.ts.map +1 -1
- package/dist/services/address/district-by-name.d.ts +1 -1
- package/dist/services/address/district-by-name.d.ts.map +1 -1
- package/dist/services/address/district.d.ts +1 -1
- package/dist/services/address/district.d.ts.map +1 -1
- package/dist/services/address/index.d.ts +5 -5
- package/dist/services/address/province.d.ts +1 -1
- package/dist/services/address/province.d.ts.map +1 -1
- package/dist/services/address/sub-district.d.ts +1 -1
- package/dist/services/address/sub-district.d.ts.map +1 -1
- package/dist/services/courier/detail.d.ts +1 -1
- package/dist/services/courier/detail.d.ts.map +1 -1
- package/dist/services/courier/group.d.ts +1 -1
- package/dist/services/courier/group.d.ts.map +1 -1
- package/dist/services/courier/index.d.ts +4 -4
- package/dist/services/courier/list.d.ts +1 -1
- package/dist/services/courier/list.d.ts.map +1 -1
- package/dist/services/courier/set-whitelist-services.d.ts +1 -1
- package/dist/services/courier/set-whitelist-services.d.ts.map +1 -1
- package/dist/services/coverage-area/index.d.ts +7 -7
- package/dist/services/coverage-area/pricing-express.d.ts +1 -1
- package/dist/services/coverage-area/pricing-express.d.ts.map +1 -1
- package/dist/services/coverage-area/pricing-instant.d.ts +1 -1
- package/dist/services/coverage-area/pricing-instant.d.ts.map +1 -1
- package/dist/services/index.d.ts +24 -24
- package/dist/services/order/express/cancel.d.ts +1 -1
- package/dist/services/order/express/cancel.d.ts.map +1 -1
- package/dist/services/order/express/request-pickup-v5.d.ts +1 -1
- package/dist/services/order/express/request-pickup-v5.d.ts.map +1 -1
- package/dist/services/order/express/request-pickup-v61.d.ts +1 -1
- package/dist/services/order/express/request-pickup-v61.d.ts.map +1 -1
- package/dist/services/order/express/track.d.ts +1 -1
- package/dist/services/order/express/track.d.ts.map +1 -1
- package/dist/services/order/express.d.ts +4 -4
- package/dist/services/order/express.d.ts.map +1 -1
- package/dist/services/order/index.d.ts +6 -6
- package/dist/services/order/instant/cancel.d.ts +1 -1
- package/dist/services/order/instant/cancel.d.ts.map +1 -1
- package/dist/services/order/instant/track.d.ts +1 -1
- package/dist/services/order/instant/track.d.ts.map +1 -1
- package/dist/services/order/instant.d.ts +4 -4
- package/dist/services/order/instant.d.ts.map +1 -1
- package/dist/services/payment/get-payment.d.ts +1 -1
- package/dist/services/payment/get-payment.d.ts.map +1 -1
- package/dist/services/payment/index.d.ts +1 -1
- package/dist/services/pickup/index.d.ts +1 -1
- package/dist/services/pickup/schedules.d.ts +1 -1
- package/dist/services/pickup/schedules.d.ts.map +1 -1
- package/dist/types/address.d.ts +7 -0
- package/dist/types/address.d.ts.map +1 -0
- package/dist/types/api-response.d.ts +12 -0
- package/dist/types/api-response.d.ts.map +1 -0
- package/dist/types/courier.d.ts +39 -0
- package/dist/types/courier.d.ts.map +1 -0
- package/dist/types/coverage-area.d.ts +22 -0
- package/dist/types/coverage-area.d.ts.map +1 -0
- package/dist/types/coverage-area.responses.d.ts +19 -0
- package/dist/types/coverage-area.responses.d.ts.map +1 -0
- package/dist/types/order.responses.d.ts +146 -0
- package/dist/types/order.responses.d.ts.map +1 -0
- package/dist/types/payment.responses.d.ts +46 -0
- package/dist/types/payment.responses.d.ts.map +1 -0
- package/dist/types/pickup.responses.d.ts +11 -0
- package/dist/types/pickup.responses.d.ts.map +1 -0
- package/dist/types/region.d.ts +5 -0
- package/dist/types/region.d.ts.map +1 -0
- package/dist/types/response.d.ts +7 -0
- package/dist/types/response.d.ts.map +1 -0
- package/package.json +13 -8
- package/dist/adapters/h3.js +0 -86
- package/dist/adapters/h3.js.map +0 -1
- package/dist/config/api.js +0 -10
- package/dist/config/api.js.map +0 -1
- package/dist/config/client.js +0 -24
- package/dist/config/client.js.map +0 -1
- package/dist/http/request.js +0 -53
- package/dist/http/request.js.map +0 -1
- package/dist/index.js +0 -11
- package/dist/index.js.map +0 -1
- package/dist/services/address/city.js +0 -7
- package/dist/services/address/city.js.map +0 -1
- package/dist/services/address/district-by-name.js +0 -7
- package/dist/services/address/district-by-name.js.map +0 -1
- package/dist/services/address/district.js +0 -7
- package/dist/services/address/district.js.map +0 -1
- package/dist/services/address/index.js +0 -13
- package/dist/services/address/index.js.map +0 -1
- package/dist/services/address/province.js +0 -5
- package/dist/services/address/province.js.map +0 -1
- package/dist/services/address/sub-district.js +0 -7
- package/dist/services/address/sub-district.js.map +0 -1
- package/dist/services/courier/detail.js +0 -5
- package/dist/services/courier/detail.js.map +0 -1
- package/dist/services/courier/group.js +0 -3
- package/dist/services/courier/group.js.map +0 -1
- package/dist/services/courier/index.js +0 -11
- package/dist/services/courier/index.js.map +0 -1
- package/dist/services/courier/list.js +0 -3
- package/dist/services/courier/list.js.map +0 -1
- package/dist/services/courier/set-whitelist-services.js +0 -5
- package/dist/services/courier/set-whitelist-services.js.map +0 -1
- package/dist/services/coverage-area/index.js +0 -9
- package/dist/services/coverage-area/index.js.map +0 -1
- package/dist/services/coverage-area/pricing-express.js +0 -5
- package/dist/services/coverage-area/pricing-express.js.map +0 -1
- package/dist/services/coverage-area/pricing-instant.js +0 -5
- package/dist/services/coverage-area/pricing-instant.js.map +0 -1
- package/dist/services/index.js +0 -15
- package/dist/services/index.js.map +0 -1
- package/dist/services/order/express/cancel.js +0 -9
- package/dist/services/order/express/cancel.js.map +0 -1
- package/dist/services/order/express/request-pickup-v5.js +0 -3
- package/dist/services/order/express/request-pickup-v5.js.map +0 -1
- package/dist/services/order/express/request-pickup-v61.js +0 -3
- package/dist/services/order/express/request-pickup-v61.js.map +0 -1
- package/dist/services/order/express/track.js +0 -5
- package/dist/services/order/express/track.js.map +0 -1
- package/dist/services/order/express.js +0 -5
- package/dist/services/order/express.js.map +0 -1
- package/dist/services/order/index.js +0 -17
- package/dist/services/order/index.js.map +0 -1
- package/dist/services/order/instant/cancel.js +0 -3
- package/dist/services/order/instant/cancel.js.map +0 -1
- package/dist/services/order/instant/create.js +0 -3
- package/dist/services/order/instant/create.js.map +0 -1
- package/dist/services/order/instant/find-new-driver.js +0 -5
- package/dist/services/order/instant/find-new-driver.js.map +0 -1
- package/dist/services/order/instant/track.js +0 -3
- package/dist/services/order/instant/track.js.map +0 -1
- package/dist/services/order/instant.js +0 -5
- package/dist/services/order/instant.js.map +0 -1
- package/dist/services/payment/get-payment.js +0 -5
- package/dist/services/payment/get-payment.js.map +0 -1
- package/dist/services/payment/index.js +0 -5
- package/dist/services/payment/index.js.map +0 -1
- package/dist/services/pickup/index.js +0 -5
- package/dist/services/pickup/index.js.map +0 -1
- package/dist/services/pickup/schedules.js +0 -3
- package/dist/services/pickup/schedules.js.map +0 -1
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/config/api.ts
|
|
4
|
+
var KAEnv = /* @__PURE__ */ ((KAEnv2) => {
|
|
5
|
+
KAEnv2["SANDBOX"] = "sandbox";
|
|
6
|
+
KAEnv2["PRODUCTION"] = "production";
|
|
7
|
+
return KAEnv2;
|
|
8
|
+
})(KAEnv || {});
|
|
9
|
+
var KA_ENV_URL = {
|
|
10
|
+
["sandbox" /* SANDBOX */]: "https://tdev.kiriminaja.com",
|
|
11
|
+
["production" /* PRODUCTION */]: "https://client.kiriminaja.com"
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
// src/config/client.ts
|
|
15
|
+
var singletonConfig;
|
|
16
|
+
var init = ({
|
|
17
|
+
env = "sandbox" /* SANDBOX */,
|
|
18
|
+
baseUrl,
|
|
19
|
+
apiKey,
|
|
20
|
+
fetch: fetchImpl,
|
|
21
|
+
headers
|
|
22
|
+
} = {}) => {
|
|
23
|
+
const resolvedFetch = fetchImpl ?? globalThis.fetch;
|
|
24
|
+
if (!resolvedFetch) {
|
|
25
|
+
throw new Error(
|
|
26
|
+
"Global fetch is not available. Provide Init({ fetch }) or use a runtime with fetch (Node 18+/Bun)."
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
const resolvedBaseUrl = baseUrl ?? KA_ENV_URL[env];
|
|
30
|
+
singletonConfig = {
|
|
31
|
+
env,
|
|
32
|
+
baseUrl: resolvedBaseUrl,
|
|
33
|
+
apiKey,
|
|
34
|
+
fetch: resolvedFetch,
|
|
35
|
+
headers
|
|
36
|
+
};
|
|
37
|
+
return singletonConfig;
|
|
38
|
+
};
|
|
39
|
+
var getConfig = () => {
|
|
40
|
+
if (!singletonConfig) {
|
|
41
|
+
throw new Error(
|
|
42
|
+
"KiriminAja.Init() must be called before using any API methods."
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
return singletonConfig;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// src/http/request.ts
|
|
49
|
+
var buildUrl = (path, baseUrl) => {
|
|
50
|
+
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
|
|
51
|
+
return new URL(normalizedPath, baseUrl);
|
|
52
|
+
};
|
|
53
|
+
var requestJson = async (path, options = {}) => {
|
|
54
|
+
const config = getConfig();
|
|
55
|
+
const url = buildUrl(path, config.baseUrl);
|
|
56
|
+
if (options.query) {
|
|
57
|
+
for (const [key, value] of Object.entries(options.query)) {
|
|
58
|
+
if (value === void 0 || value === null) continue;
|
|
59
|
+
url.searchParams.set(key, String(value));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const method = options.method ?? "POST";
|
|
63
|
+
const hasJsonBody = options.body !== void 0 && method !== "GET" && method !== "DELETE";
|
|
64
|
+
const headers = new Headers();
|
|
65
|
+
headers.set("Accept", "application/json");
|
|
66
|
+
if (hasJsonBody) headers.set("Content-Type", "application/json");
|
|
67
|
+
if (config.apiKey) headers.set("Authorization", `Bearer ${config.apiKey}`);
|
|
68
|
+
if (config.headers) {
|
|
69
|
+
new Headers(config.headers).forEach((value, key) => {
|
|
70
|
+
headers.set(key, value);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
if (options.headers) {
|
|
74
|
+
for (const [key, value] of Object.entries(options.headers)) {
|
|
75
|
+
headers.set(key, value);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const response = await config.fetch(url.toString(), {
|
|
79
|
+
method,
|
|
80
|
+
headers,
|
|
81
|
+
...hasJsonBody ? { body: JSON.stringify(options.body) } : {}
|
|
82
|
+
});
|
|
83
|
+
if (!response.ok) {
|
|
84
|
+
throw new Error(
|
|
85
|
+
`Request failed: ${response.status} ${response.statusText}`
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
return await response.json();
|
|
89
|
+
};
|
|
90
|
+
var postJson = async (path, body, options = {}) => {
|
|
91
|
+
return requestJson(path, { ...options, method: "POST", body });
|
|
92
|
+
};
|
|
93
|
+
var getJson = async (path, options = {}) => {
|
|
94
|
+
return requestJson(path, { ...options, method: "GET" });
|
|
95
|
+
};
|
|
96
|
+
var deleteJson = async (path, options = {}) => {
|
|
97
|
+
return requestJson(path, { ...options, method: "DELETE" });
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
// src/services/address/province.ts
|
|
101
|
+
var getProvinces = () => {
|
|
102
|
+
return postJson("/api/mitra/province");
|
|
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;
|
|
299
|
+
exports.defineKiriminAjaPlugin = defineKiriminAjaPlugin;
|
|
300
|
+
exports.useKiriminAja = useKiriminAja;
|
|
301
|
+
//# sourceMappingURL=h3.cjs.map
|
|
302
|
+
//# sourceMappingURL=h3.cjs.map
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
// src/config/api.ts
|
|
2
|
+
var KAEnv = /* @__PURE__ */ ((KAEnv2) => {
|
|
3
|
+
KAEnv2["SANDBOX"] = "sandbox";
|
|
4
|
+
KAEnv2["PRODUCTION"] = "production";
|
|
5
|
+
return KAEnv2;
|
|
6
|
+
})(KAEnv || {});
|
|
7
|
+
var KA_ENV_URL = {
|
|
8
|
+
["sandbox" /* SANDBOX */]: "https://tdev.kiriminaja.com",
|
|
9
|
+
["production" /* PRODUCTION */]: "https://client.kiriminaja.com"
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
// src/config/client.ts
|
|
13
|
+
var singletonConfig;
|
|
14
|
+
var init = ({
|
|
15
|
+
env = "sandbox" /* SANDBOX */,
|
|
16
|
+
baseUrl,
|
|
17
|
+
apiKey,
|
|
18
|
+
fetch: fetchImpl,
|
|
19
|
+
headers
|
|
20
|
+
} = {}) => {
|
|
21
|
+
const resolvedFetch = fetchImpl ?? globalThis.fetch;
|
|
22
|
+
if (!resolvedFetch) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
"Global fetch is not available. Provide Init({ fetch }) or use a runtime with fetch (Node 18+/Bun)."
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
const resolvedBaseUrl = baseUrl ?? KA_ENV_URL[env];
|
|
28
|
+
singletonConfig = {
|
|
29
|
+
env,
|
|
30
|
+
baseUrl: resolvedBaseUrl,
|
|
31
|
+
apiKey,
|
|
32
|
+
fetch: resolvedFetch,
|
|
33
|
+
headers
|
|
34
|
+
};
|
|
35
|
+
return singletonConfig;
|
|
36
|
+
};
|
|
37
|
+
var getConfig = () => {
|
|
38
|
+
if (!singletonConfig) {
|
|
39
|
+
throw new Error(
|
|
40
|
+
"KiriminAja.Init() must be called before using any API methods."
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
return singletonConfig;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// src/http/request.ts
|
|
47
|
+
var buildUrl = (path, baseUrl) => {
|
|
48
|
+
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
|
|
49
|
+
return new URL(normalizedPath, baseUrl);
|
|
50
|
+
};
|
|
51
|
+
var requestJson = async (path, options = {}) => {
|
|
52
|
+
const config = getConfig();
|
|
53
|
+
const url = buildUrl(path, config.baseUrl);
|
|
54
|
+
if (options.query) {
|
|
55
|
+
for (const [key, value] of Object.entries(options.query)) {
|
|
56
|
+
if (value === void 0 || value === null) continue;
|
|
57
|
+
url.searchParams.set(key, String(value));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const method = options.method ?? "POST";
|
|
61
|
+
const hasJsonBody = options.body !== void 0 && method !== "GET" && method !== "DELETE";
|
|
62
|
+
const headers = new Headers();
|
|
63
|
+
headers.set("Accept", "application/json");
|
|
64
|
+
if (hasJsonBody) headers.set("Content-Type", "application/json");
|
|
65
|
+
if (config.apiKey) headers.set("Authorization", `Bearer ${config.apiKey}`);
|
|
66
|
+
if (config.headers) {
|
|
67
|
+
new Headers(config.headers).forEach((value, key) => {
|
|
68
|
+
headers.set(key, value);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (options.headers) {
|
|
72
|
+
for (const [key, value] of Object.entries(options.headers)) {
|
|
73
|
+
headers.set(key, value);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const response = await config.fetch(url.toString(), {
|
|
77
|
+
method,
|
|
78
|
+
headers,
|
|
79
|
+
...hasJsonBody ? { body: JSON.stringify(options.body) } : {}
|
|
80
|
+
});
|
|
81
|
+
if (!response.ok) {
|
|
82
|
+
throw new Error(
|
|
83
|
+
`Request failed: ${response.status} ${response.statusText}`
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
return await response.json();
|
|
87
|
+
};
|
|
88
|
+
var postJson = async (path, body, options = {}) => {
|
|
89
|
+
return requestJson(path, { ...options, method: "POST", body });
|
|
90
|
+
};
|
|
91
|
+
var getJson = async (path, options = {}) => {
|
|
92
|
+
return requestJson(path, { ...options, method: "GET" });
|
|
93
|
+
};
|
|
94
|
+
var deleteJson = async (path, options = {}) => {
|
|
95
|
+
return requestJson(path, { ...options, method: "DELETE" });
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// src/services/address/province.ts
|
|
99
|
+
var getProvinces = () => {
|
|
100
|
+
return postJson("/api/mitra/province");
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// src/services/address/city.ts
|
|
104
|
+
var getCities = (provinsiId) => {
|
|
105
|
+
return postJson("/api/mitra/city", {
|
|
106
|
+
provinsi_id: provinsiId
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
// src/services/address/district.ts
|
|
111
|
+
var getDistricts = (kabupatenId) => {
|
|
112
|
+
return postJson("/api/mitra/kecamatan", {
|
|
113
|
+
kabupaten_id: kabupatenId
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
// src/services/address/sub-district.ts
|
|
118
|
+
var getSubDistricts = (kecamatanId) => {
|
|
119
|
+
return postJson("/api/mitra/kelurahan", {
|
|
120
|
+
kecamatan_id: kecamatanId
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
// src/services/address/district-by-name.ts
|
|
125
|
+
var getDistrictsByName = (search) => {
|
|
126
|
+
return postJson(
|
|
127
|
+
"/api/mitra/v2/get_address_by_name",
|
|
128
|
+
{
|
|
129
|
+
search
|
|
130
|
+
}
|
|
131
|
+
);
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
// src/services/address/index.ts
|
|
135
|
+
var address = {
|
|
136
|
+
provinces: getProvinces,
|
|
137
|
+
cities: getCities,
|
|
138
|
+
districts: getDistricts,
|
|
139
|
+
subDistricts: getSubDistricts,
|
|
140
|
+
districtsByName: getDistrictsByName
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
// src/services/coverage-area/pricing-express.ts
|
|
144
|
+
var getPricingExpress = (payload) => {
|
|
145
|
+
return postJson(
|
|
146
|
+
"/api/mitra/v6.1/shipping_price",
|
|
147
|
+
payload
|
|
148
|
+
);
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
// src/services/coverage-area/pricing-instant.ts
|
|
152
|
+
var getPricingInstant = (payload) => {
|
|
153
|
+
return postJson(
|
|
154
|
+
"/api/mitra/v4/instant/pricing",
|
|
155
|
+
payload
|
|
156
|
+
);
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
// src/services/coverage-area/index.ts
|
|
160
|
+
var coverageArea = {
|
|
161
|
+
...address,
|
|
162
|
+
pricingExpress: getPricingExpress,
|
|
163
|
+
pricingInstant: getPricingInstant
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
// src/services/order/express/cancel.ts
|
|
167
|
+
var cancelExpressOrder = (awb, reason) => requestJson("/api/mitra/v3/cancel_shipment", {
|
|
168
|
+
method: "POST",
|
|
169
|
+
query: {
|
|
170
|
+
awb,
|
|
171
|
+
reason
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
// src/services/order/express/request-pickup-v5.ts
|
|
176
|
+
var requestPickupV5 = (payload) => postJson("/api/mitra/v5/request_pickup", payload);
|
|
177
|
+
|
|
178
|
+
// src/services/order/express/request-pickup-v61.ts
|
|
179
|
+
var requestPickupV61 = (payload) => postJson("/api/mitra/v6.1/request_pickup", payload);
|
|
180
|
+
|
|
181
|
+
// src/services/order/express/track.ts
|
|
182
|
+
var trackExpressOrder = (orderId) => postJson("/api/mitra/tracking", {
|
|
183
|
+
order_id: orderId
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
// src/services/order/instant/cancel.ts
|
|
187
|
+
var cancelInstantOrder = (orderId) => deleteJson(
|
|
188
|
+
`/api/mitra/v4/instant/pickup/void/${orderId}`
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
// src/services/order/instant/create.ts
|
|
192
|
+
var createInstantPickup = (payload) => postJson(
|
|
193
|
+
"/api/mitra/v4/instant/pickup/request",
|
|
194
|
+
payload
|
|
195
|
+
);
|
|
196
|
+
|
|
197
|
+
// src/services/order/instant/find-new-driver.ts
|
|
198
|
+
var findNewInstantDriver = (orderId) => postJson(
|
|
199
|
+
"/api/mitra/v4/instant/pickup/find-new-driver",
|
|
200
|
+
{
|
|
201
|
+
order_id: orderId
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
|
|
205
|
+
// src/services/order/instant/track.ts
|
|
206
|
+
var trackInstantOrder = (orderId) => getJson(
|
|
207
|
+
`/api/mitra/v4/instant/tracking/${orderId}`
|
|
208
|
+
);
|
|
209
|
+
|
|
210
|
+
// src/services/order/index.ts
|
|
211
|
+
var order = {
|
|
212
|
+
express: {
|
|
213
|
+
track: trackExpressOrder,
|
|
214
|
+
cancel: cancelExpressOrder,
|
|
215
|
+
requestPickupV5,
|
|
216
|
+
requestPickupV61
|
|
217
|
+
},
|
|
218
|
+
instant: {
|
|
219
|
+
create: createInstantPickup,
|
|
220
|
+
findNewDriver: findNewInstantDriver,
|
|
221
|
+
cancel: cancelInstantOrder,
|
|
222
|
+
track: trackInstantOrder
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
// src/services/pickup/schedules.ts
|
|
227
|
+
var getPickupSchedules = () => postJson("/api/mitra/v2/schedules");
|
|
228
|
+
|
|
229
|
+
// src/services/pickup/index.ts
|
|
230
|
+
var pickup = {
|
|
231
|
+
schedules: getPickupSchedules
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
// src/services/payment/get-payment.ts
|
|
235
|
+
var getPayment = (paymentId) => postJson("/api/mitra/v2/get_payment", {
|
|
236
|
+
payment_id: paymentId
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
// src/services/payment/index.ts
|
|
240
|
+
var payment = {
|
|
241
|
+
getPayment
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
// src/services/courier/detail.ts
|
|
245
|
+
var getCourierDetail = (courierCode) => postJson("/api/mitra/courier_services", {
|
|
246
|
+
courier_code: courierCode
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
// src/services/courier/group.ts
|
|
250
|
+
var getCourierGroups = () => postJson("/api/mitra/couriers_group");
|
|
251
|
+
|
|
252
|
+
// src/services/courier/list.ts
|
|
253
|
+
var listCouriers = () => postJson("/api/mitra/couriers");
|
|
254
|
+
|
|
255
|
+
// src/services/courier/set-whitelist-services.ts
|
|
256
|
+
var setWhitelistServices = (services2) => postJson(
|
|
257
|
+
"/api/mitra/v3/set_whitelist_services",
|
|
258
|
+
{
|
|
259
|
+
services: services2
|
|
260
|
+
}
|
|
261
|
+
);
|
|
262
|
+
|
|
263
|
+
// src/services/courier/index.ts
|
|
264
|
+
var courier = {
|
|
265
|
+
list: listCouriers,
|
|
266
|
+
group: getCourierGroups,
|
|
267
|
+
detail: getCourierDetail,
|
|
268
|
+
setWhitelistServices
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
// src/services/index.ts
|
|
272
|
+
var services = {
|
|
273
|
+
address,
|
|
274
|
+
coverageArea,
|
|
275
|
+
order,
|
|
276
|
+
pickup,
|
|
277
|
+
payment,
|
|
278
|
+
courier
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
// src/adapters/h3.ts
|
|
282
|
+
var defineKiriminAjaPlugin = (options) => {
|
|
283
|
+
return () => {
|
|
284
|
+
const resolved = typeof options === "function" ? options() : options;
|
|
285
|
+
init(resolved);
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
var useKiriminAja = (options) => {
|
|
289
|
+
if (options?.apiKey) {
|
|
290
|
+
const current = getConfig();
|
|
291
|
+
init({ ...current, apiKey: options.apiKey });
|
|
292
|
+
}
|
|
293
|
+
return services;
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
export { KAEnv, defineKiriminAjaPlugin, useKiriminAja };
|
|
297
|
+
//# sourceMappingURL=h3.mjs.map
|
|
298
|
+
//# sourceMappingURL=h3.mjs.map
|