@ehrenkind/shopify-lib 0.1.0 → 0.2.1
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/generated-api-types/2025-04/admin.generated.d.ts +74 -0
- package/dist/generated-api-types/2025-04/admin.generated.d.ts.map +1 -1
- package/dist/generated-api-types/2025-04/admin.types.d.ts +4 -4
- package/dist/generated-api-types/2025-04/admin.types.d.ts.map +1 -1
- package/dist/generated-api-types/2025-04/admin.types.js +4 -4
- package/dist/generated-api-types/2025-04/admin.types.js.map +1 -1
- package/dist/index.cjs +365 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +256 -10
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +361 -38
- package/dist/index.mjs.map +1 -1
- package/dist/queries/orders/getOrderById.d.ts +136 -0
- package/dist/queries/orders/getOrderById.d.ts.map +1 -0
- package/dist/queries/orders/getOrderById.js +126 -0
- package/dist/queries/orders/getOrderById.js.map +1 -0
- package/dist/queries/orders/getOrderById.mock.d.ts +82 -0
- package/dist/queries/orders/getOrderById.mock.d.ts.map +1 -0
- package/dist/queries/orders/getOrderById.mock.js +204 -0
- package/dist/queries/orders/getOrderById.mock.js.map +1 -0
- package/dist/queries/orders/getOrderById.queries.d.ts +3 -0
- package/dist/queries/orders/getOrderById.queries.d.ts.map +1 -0
- package/dist/queries/orders/getOrderById.queries.js +174 -0
- package/dist/queries/orders/getOrderById.queries.js.map +1 -0
- package/dist/queries/orders/getOrderById.test.d.ts +2 -0
- package/dist/queries/orders/getOrderById.test.d.ts.map +1 -0
- package/dist/queries/orders/getOrderById.test.js +46 -0
- package/dist/queries/orders/getOrderById.test.js.map +1 -0
- package/dist/queries/orders/getOrderByName.d.ts +5 -5
- package/dist/queries/orders/getOrderByName.d.ts.map +1 -1
- package/dist/queries/orders/getOrderByName.js +1 -1
- package/dist/queries/orders/getOrderByName.js.map +1 -1
- package/dist/queries/orders/getOrderByName.test.js +6 -4
- package/dist/queries/orders/getOrderByName.test.js.map +1 -1
- package/dist/queries/orders/getOrderPaymentDetails.mock.d.ts +12 -0
- package/dist/queries/orders/getOrderPaymentDetails.mock.d.ts.map +1 -0
- package/dist/queries/orders/getOrderPaymentDetails.mock.js +24 -0
- package/dist/queries/orders/getOrderPaymentDetails.mock.js.map +1 -0
- package/dist/queries/orders/getOrderPaymentDetails.test.d.ts +2 -0
- package/dist/queries/orders/getOrderPaymentDetails.test.d.ts.map +1 -0
- package/dist/queries/orders/getOrderPaymentDetails.test.js +19 -0
- package/dist/queries/orders/getOrderPaymentDetails.test.js.map +1 -0
- package/dist/utils/mswHandlers.d.ts.map +1 -1
- package/dist/utils/mswHandlers.js +5 -0
- package/dist/utils/mswHandlers.js.map +1 -1
- package/dist/utils/parseGid.d.ts +9 -0
- package/dist/utils/parseGid.d.ts.map +1 -0
- package/dist/utils/parseGid.js +12 -0
- package/dist/utils/parseGid.js.map +1 -0
- package/dist/utils/parseGid.test.d.ts +2 -0
- package/dist/utils/parseGid.test.d.ts.map +1 -0
- package/dist/utils/parseGid.test.js +26 -0
- package/dist/utils/parseGid.test.js.map +1 -0
- package/package.json +6 -4
package/dist/index.mjs
CHANGED
|
@@ -244,9 +244,287 @@ async function deleteCustomerById(customerId) {
|
|
|
244
244
|
);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
-
// src/queries/orders/
|
|
247
|
+
// src/queries/orders/getOrderById.ts
|
|
248
248
|
import z4 from "zod";
|
|
249
249
|
|
|
250
|
+
// src/queries/orders/getOrderById.queries.ts
|
|
251
|
+
var queryOrderById = gql`#graphql
|
|
252
|
+
query orderById($id: ID!) {
|
|
253
|
+
order(id: $id) {
|
|
254
|
+
id
|
|
255
|
+
name
|
|
256
|
+
createdAt
|
|
257
|
+
updatedAt
|
|
258
|
+
cancelledAt
|
|
259
|
+
cancelReason
|
|
260
|
+
totalPriceSet {
|
|
261
|
+
shopMoney {
|
|
262
|
+
amount
|
|
263
|
+
currencyCode
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
customer {
|
|
267
|
+
id
|
|
268
|
+
lastName
|
|
269
|
+
defaultEmailAddress {
|
|
270
|
+
emailAddress
|
|
271
|
+
}
|
|
272
|
+
displayName
|
|
273
|
+
firstName
|
|
274
|
+
}
|
|
275
|
+
displayFinancialStatus
|
|
276
|
+
displayFulfillmentStatus
|
|
277
|
+
shippingAddress {
|
|
278
|
+
firstName
|
|
279
|
+
lastName
|
|
280
|
+
address1
|
|
281
|
+
address2
|
|
282
|
+
city
|
|
283
|
+
province
|
|
284
|
+
country
|
|
285
|
+
zip
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
`;
|
|
290
|
+
var queryOrderByIdFull = gql`#graphql
|
|
291
|
+
query orderByIdFull($id: ID!) {
|
|
292
|
+
order(id: $id) {
|
|
293
|
+
id
|
|
294
|
+
name
|
|
295
|
+
createdAt
|
|
296
|
+
updatedAt
|
|
297
|
+
processedAt
|
|
298
|
+
closedAt
|
|
299
|
+
cancelledAt
|
|
300
|
+
cancelReason
|
|
301
|
+
totalPriceSet {
|
|
302
|
+
shopMoney {
|
|
303
|
+
amount
|
|
304
|
+
currencyCode
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
customer {
|
|
308
|
+
id
|
|
309
|
+
firstName
|
|
310
|
+
lastName
|
|
311
|
+
email
|
|
312
|
+
phone
|
|
313
|
+
}
|
|
314
|
+
displayFinancialStatus
|
|
315
|
+
displayFulfillmentStatus
|
|
316
|
+
shippingAddress {
|
|
317
|
+
firstName
|
|
318
|
+
lastName
|
|
319
|
+
address1
|
|
320
|
+
address2
|
|
321
|
+
city
|
|
322
|
+
province
|
|
323
|
+
country
|
|
324
|
+
zip
|
|
325
|
+
}
|
|
326
|
+
billingAddress {
|
|
327
|
+
firstName
|
|
328
|
+
lastName
|
|
329
|
+
address1
|
|
330
|
+
address2
|
|
331
|
+
city
|
|
332
|
+
province
|
|
333
|
+
country
|
|
334
|
+
zip
|
|
335
|
+
}
|
|
336
|
+
lineItems(first: 100) {
|
|
337
|
+
edges {
|
|
338
|
+
node {
|
|
339
|
+
id
|
|
340
|
+
sku
|
|
341
|
+
title
|
|
342
|
+
variantTitle
|
|
343
|
+
quantity
|
|
344
|
+
customAttributes {
|
|
345
|
+
key
|
|
346
|
+
value
|
|
347
|
+
}
|
|
348
|
+
originalUnitPriceSet {
|
|
349
|
+
shopMoney {
|
|
350
|
+
amount
|
|
351
|
+
currencyCode
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
vendor
|
|
355
|
+
image {
|
|
356
|
+
url
|
|
357
|
+
width
|
|
358
|
+
height
|
|
359
|
+
altText
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
fulfillments {
|
|
365
|
+
id
|
|
366
|
+
name
|
|
367
|
+
totalQuantity
|
|
368
|
+
status
|
|
369
|
+
createdAt
|
|
370
|
+
estimatedDeliveryAt
|
|
371
|
+
deliveredAt
|
|
372
|
+
trackingInfo {
|
|
373
|
+
company
|
|
374
|
+
number
|
|
375
|
+
url
|
|
376
|
+
}
|
|
377
|
+
fulfillmentLineItems(first: 100) {
|
|
378
|
+
edges {
|
|
379
|
+
node {
|
|
380
|
+
id
|
|
381
|
+
quantity
|
|
382
|
+
lineItem {
|
|
383
|
+
id
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
shippingLine {
|
|
390
|
+
originalPriceSet {
|
|
391
|
+
shopMoney {
|
|
392
|
+
amount
|
|
393
|
+
currencyCode
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
taxLines {
|
|
398
|
+
priceSet {
|
|
399
|
+
shopMoney {
|
|
400
|
+
amount
|
|
401
|
+
currencyCode
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
totalDiscountsSet {
|
|
406
|
+
shopMoney {
|
|
407
|
+
amount
|
|
408
|
+
currencyCode
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
discountCodes
|
|
412
|
+
refunds {
|
|
413
|
+
totalRefundedSet {
|
|
414
|
+
shopMoney {
|
|
415
|
+
amount
|
|
416
|
+
currencyCode
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
`;
|
|
423
|
+
|
|
424
|
+
// src/queries/orders/getOrderById.ts
|
|
425
|
+
var AddressSchema = z4.object({
|
|
426
|
+
firstName: z4.string().nullable(),
|
|
427
|
+
lastName: z4.string().nullable(),
|
|
428
|
+
address1: z4.string().nullable(),
|
|
429
|
+
address2: z4.string().nullable(),
|
|
430
|
+
city: z4.string().nullable(),
|
|
431
|
+
province: z4.string().nullable(),
|
|
432
|
+
country: z4.string().nullable(),
|
|
433
|
+
zip: z4.string().nullable()
|
|
434
|
+
}).nullable();
|
|
435
|
+
var GetLeanOrderByIdReturn = z4.object({
|
|
436
|
+
id: z4.string(),
|
|
437
|
+
name: z4.string(),
|
|
438
|
+
createdAt: z4.string(),
|
|
439
|
+
updatedAt: z4.string(),
|
|
440
|
+
cancelledAt: z4.string().nullable(),
|
|
441
|
+
cancelReason: z4.string().nullable(),
|
|
442
|
+
totalPrice: z4.object({
|
|
443
|
+
amount: z4.string(),
|
|
444
|
+
currencyCode: z4.string()
|
|
445
|
+
}),
|
|
446
|
+
customer: z4.object({
|
|
447
|
+
id: z4.string(),
|
|
448
|
+
displayName: z4.string(),
|
|
449
|
+
firstName: z4.string().nullable(),
|
|
450
|
+
lastName: z4.string().nullable(),
|
|
451
|
+
emailAddress: z4.string().nullable()
|
|
452
|
+
}).nullable(),
|
|
453
|
+
financialStatus: z4.string().nullable(),
|
|
454
|
+
fulfillmentStatus: z4.string().nullable(),
|
|
455
|
+
shippingAddress: AddressSchema
|
|
456
|
+
}).nullable();
|
|
457
|
+
async function getOrderById(id, detailLevel = "lean") {
|
|
458
|
+
const bigIntId = typeof id === "number" ? BigInt(id) : id;
|
|
459
|
+
if (detailLevel === "lean") {
|
|
460
|
+
return getLeanOrderById(bigIntId);
|
|
461
|
+
}
|
|
462
|
+
return getFullOrderById(bigIntId);
|
|
463
|
+
}
|
|
464
|
+
async function getLeanOrderById(id) {
|
|
465
|
+
const variables = {
|
|
466
|
+
id: convertIdIntoGid(id, "Order")
|
|
467
|
+
};
|
|
468
|
+
const response = await fetchShopifyGraphql({
|
|
469
|
+
query: queryOrderById,
|
|
470
|
+
variables
|
|
471
|
+
});
|
|
472
|
+
if (!response.order) {
|
|
473
|
+
logger.debug(`No order found with ID: ${id}`);
|
|
474
|
+
return null;
|
|
475
|
+
}
|
|
476
|
+
const order = response.order;
|
|
477
|
+
const leanOrder = {
|
|
478
|
+
id: order.id,
|
|
479
|
+
name: order.name,
|
|
480
|
+
createdAt: order.createdAt,
|
|
481
|
+
updatedAt: order.updatedAt,
|
|
482
|
+
cancelledAt: order.cancelledAt ?? null,
|
|
483
|
+
cancelReason: order.cancelReason ?? null,
|
|
484
|
+
totalPrice: {
|
|
485
|
+
amount: order.totalPriceSet?.shopMoney?.amount ?? "",
|
|
486
|
+
currencyCode: order.totalPriceSet?.shopMoney?.currencyCode ?? ""
|
|
487
|
+
},
|
|
488
|
+
customer: order.customer ? {
|
|
489
|
+
id: order.customer.id,
|
|
490
|
+
displayName: order.customer.displayName,
|
|
491
|
+
firstName: order.customer.firstName ?? null,
|
|
492
|
+
lastName: order.customer.lastName ?? null,
|
|
493
|
+
emailAddress: order.customer.defaultEmailAddress?.emailAddress ?? null
|
|
494
|
+
} : null,
|
|
495
|
+
financialStatus: order.displayFinancialStatus ?? null,
|
|
496
|
+
fulfillmentStatus: order.displayFulfillmentStatus ?? null,
|
|
497
|
+
shippingAddress: order.shippingAddress ? {
|
|
498
|
+
firstName: order.shippingAddress.firstName ?? null,
|
|
499
|
+
lastName: order.shippingAddress.lastName ?? null,
|
|
500
|
+
address1: order.shippingAddress.address1 ?? null,
|
|
501
|
+
address2: order.shippingAddress.address2 ?? null,
|
|
502
|
+
city: order.shippingAddress.city ?? null,
|
|
503
|
+
province: order.shippingAddress.province ?? null,
|
|
504
|
+
country: order.shippingAddress.country ?? null,
|
|
505
|
+
zip: order.shippingAddress.zip ?? null
|
|
506
|
+
} : null
|
|
507
|
+
};
|
|
508
|
+
return await returnOutputParsed(leanOrder, GetLeanOrderByIdReturn);
|
|
509
|
+
}
|
|
510
|
+
async function getFullOrderById(id) {
|
|
511
|
+
const variables = {
|
|
512
|
+
id: convertIdIntoGid(id, "Order")
|
|
513
|
+
};
|
|
514
|
+
const response = await fetchShopifyGraphql({
|
|
515
|
+
query: queryOrderByIdFull,
|
|
516
|
+
variables
|
|
517
|
+
});
|
|
518
|
+
if (!response.order) {
|
|
519
|
+
logger.debug(`No order found with ID: ${id}`);
|
|
520
|
+
return null;
|
|
521
|
+
}
|
|
522
|
+
return response.order;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
// src/queries/orders/getOrderByName.ts
|
|
526
|
+
import z5 from "zod";
|
|
527
|
+
|
|
250
528
|
// src/queries/orders/getOrderByName.queries.ts
|
|
251
529
|
var queryOrdersByName = gql`#graphql
|
|
252
530
|
query ordersByName($first: Int!, $queryFilter: String!) {
|
|
@@ -583,22 +861,22 @@ var queryOrdersByNameFull = gql`#graphql
|
|
|
583
861
|
`;
|
|
584
862
|
|
|
585
863
|
// src/queries/orders/getOrderByName.ts
|
|
586
|
-
var GetLeanOrderByNameReturn =
|
|
587
|
-
id:
|
|
588
|
-
name:
|
|
589
|
-
createdAt:
|
|
590
|
-
updatedAt:
|
|
591
|
-
totalPrice:
|
|
592
|
-
amount:
|
|
593
|
-
currencyCode:
|
|
864
|
+
var GetLeanOrderByNameReturn = z5.object({
|
|
865
|
+
id: z5.string(),
|
|
866
|
+
name: z5.string(),
|
|
867
|
+
createdAt: z5.string(),
|
|
868
|
+
updatedAt: z5.string(),
|
|
869
|
+
totalPrice: z5.object({
|
|
870
|
+
amount: z5.string(),
|
|
871
|
+
currencyCode: z5.string()
|
|
594
872
|
}),
|
|
595
|
-
customer:
|
|
596
|
-
id:
|
|
597
|
-
displayName:
|
|
598
|
-
emailAddress:
|
|
873
|
+
customer: z5.object({
|
|
874
|
+
id: z5.string(),
|
|
875
|
+
displayName: z5.string(),
|
|
876
|
+
emailAddress: z5.string().nullable()
|
|
599
877
|
}).nullable(),
|
|
600
|
-
financialStatus:
|
|
601
|
-
fulfillmentStatus:
|
|
878
|
+
financialStatus: z5.string().nullable(),
|
|
879
|
+
fulfillmentStatus: z5.string().nullable()
|
|
602
880
|
}).nullable();
|
|
603
881
|
async function getOrderByName(orderName, detailLevel = "lean") {
|
|
604
882
|
if (detailLevel === "lean") {
|
|
@@ -689,14 +967,14 @@ async function getFullOrderByName(orderName) {
|
|
|
689
967
|
}
|
|
690
968
|
|
|
691
969
|
// src/queries/productVariants/getLeanProductVariants.ts
|
|
692
|
-
import
|
|
693
|
-
var GetLeanProductVariantsReturn =
|
|
694
|
-
|
|
695
|
-
productId:
|
|
696
|
-
productTitle:
|
|
697
|
-
variantId:
|
|
698
|
-
variantTitle:
|
|
699
|
-
sku:
|
|
970
|
+
import z6 from "zod";
|
|
971
|
+
var GetLeanProductVariantsReturn = z6.array(
|
|
972
|
+
z6.object({
|
|
973
|
+
productId: z6.string(),
|
|
974
|
+
productTitle: z6.string(),
|
|
975
|
+
variantId: z6.string(),
|
|
976
|
+
variantTitle: z6.string(),
|
|
977
|
+
sku: z6.string()
|
|
700
978
|
})
|
|
701
979
|
);
|
|
702
980
|
async function getLeanProductVariants(skus) {
|
|
@@ -765,7 +1043,7 @@ async function getLeanProductVariants(skus) {
|
|
|
765
1043
|
}
|
|
766
1044
|
|
|
767
1045
|
// src/queries/orders/getOrderPaymentDetails.ts
|
|
768
|
-
import
|
|
1046
|
+
import z7 from "zod";
|
|
769
1047
|
|
|
770
1048
|
// src/queries/orders/getOrderPaymentDetails.queries.ts
|
|
771
1049
|
var queryOrderPaymentDetails = gql`#graphql
|
|
@@ -789,21 +1067,21 @@ var queryOrderPaymentDetails = gql`#graphql
|
|
|
789
1067
|
`;
|
|
790
1068
|
|
|
791
1069
|
// src/queries/orders/getOrderPaymentDetails.ts
|
|
792
|
-
var GetOrderPaymentDetailsByIdReturn =
|
|
793
|
-
order:
|
|
794
|
-
transactions:
|
|
795
|
-
|
|
796
|
-
amountSet:
|
|
797
|
-
shopMoney:
|
|
798
|
-
amount:
|
|
799
|
-
currencyCode:
|
|
1070
|
+
var GetOrderPaymentDetailsByIdReturn = z7.object({
|
|
1071
|
+
order: z7.object({
|
|
1072
|
+
transactions: z7.array(
|
|
1073
|
+
z7.object({
|
|
1074
|
+
amountSet: z7.object({
|
|
1075
|
+
shopMoney: z7.object({
|
|
1076
|
+
amount: z7.string(),
|
|
1077
|
+
currencyCode: z7.string()
|
|
800
1078
|
})
|
|
801
1079
|
}),
|
|
802
|
-
createdAt:
|
|
803
|
-
gateway:
|
|
804
|
-
formattedGateway:
|
|
805
|
-
kind:
|
|
806
|
-
paymentId:
|
|
1080
|
+
createdAt: z7.string(),
|
|
1081
|
+
gateway: z7.string(),
|
|
1082
|
+
formattedGateway: z7.string(),
|
|
1083
|
+
kind: z7.string(),
|
|
1084
|
+
paymentId: z7.string()
|
|
807
1085
|
})
|
|
808
1086
|
)
|
|
809
1087
|
})
|
|
@@ -822,10 +1100,55 @@ async function getOrderPaymentDetailsById(id) {
|
|
|
822
1100
|
}
|
|
823
1101
|
return await returnOutputParsed(response, GetOrderPaymentDetailsByIdReturn);
|
|
824
1102
|
}
|
|
1103
|
+
|
|
1104
|
+
// src/utils/toRestFormat.ts
|
|
1105
|
+
function camelToSnake(str) {
|
|
1106
|
+
return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
1107
|
+
}
|
|
1108
|
+
function extractNumericId(gid) {
|
|
1109
|
+
const match = gid.match(/\d+$/);
|
|
1110
|
+
return match ? parseInt(match[0], 10) : 0;
|
|
1111
|
+
}
|
|
1112
|
+
function toRestFormat(obj) {
|
|
1113
|
+
if (obj === null || obj === void 0) {
|
|
1114
|
+
return obj;
|
|
1115
|
+
}
|
|
1116
|
+
if (Array.isArray(obj)) {
|
|
1117
|
+
return obj.map(toRestFormat);
|
|
1118
|
+
}
|
|
1119
|
+
if (typeof obj === "object") {
|
|
1120
|
+
const record = obj;
|
|
1121
|
+
const result = {};
|
|
1122
|
+
for (const [key, value] of Object.entries(record)) {
|
|
1123
|
+
if (key === "edges" && Array.isArray(value) && value.every(
|
|
1124
|
+
(item) => typeof item === "object" && item !== null && "node" in item
|
|
1125
|
+
)) {
|
|
1126
|
+
return value.map((edge) => toRestFormat(edge.node));
|
|
1127
|
+
}
|
|
1128
|
+
if (key === "id" && typeof value === "string" && value.startsWith("gid://")) {
|
|
1129
|
+
result[key] = extractNumericId(value);
|
|
1130
|
+
continue;
|
|
1131
|
+
}
|
|
1132
|
+
const snakeKey = camelToSnake(key);
|
|
1133
|
+
result[snakeKey] = toRestFormat(value);
|
|
1134
|
+
}
|
|
1135
|
+
return result;
|
|
1136
|
+
}
|
|
1137
|
+
return obj;
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
// src/utils/parseGid.ts
|
|
1141
|
+
function parseGid(gid) {
|
|
1142
|
+
const match = gid.match(/\d+$/);
|
|
1143
|
+
return match ? parseInt(match[0], 10) : 0;
|
|
1144
|
+
}
|
|
825
1145
|
export {
|
|
826
1146
|
deleteCustomerById,
|
|
827
1147
|
getLeanProductVariants,
|
|
1148
|
+
getOrderById,
|
|
828
1149
|
getOrderByName,
|
|
829
|
-
getOrderPaymentDetailsById
|
|
1150
|
+
getOrderPaymentDetailsById,
|
|
1151
|
+
parseGid,
|
|
1152
|
+
toRestFormat
|
|
830
1153
|
};
|
|
831
1154
|
//# sourceMappingURL=index.mjs.map
|