@ehrenkind/shopify-lib 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +2 -34
  2. package/dist/generated-api-types/2025-04/admin.generated.d.ts +209 -0
  3. package/dist/generated-api-types/2025-04/admin.generated.d.ts.map +1 -0
  4. package/dist/generated-api-types/2025-04/admin.generated.js +5 -0
  5. package/dist/generated-api-types/2025-04/admin.generated.js.map +1 -0
  6. package/dist/generated-api-types/2025-04/admin.types.d.ts +60044 -0
  7. package/dist/generated-api-types/2025-04/admin.types.d.ts.map +1 -0
  8. package/dist/generated-api-types/2025-04/admin.types.js +11451 -0
  9. package/dist/generated-api-types/2025-04/admin.types.js.map +1 -0
  10. package/dist/index.cjs +96 -37
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +168 -49
  13. package/dist/index.d.ts +5 -18816
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +5 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/index.mjs +95 -37
  18. package/dist/index.mjs.map +1 -1
  19. package/dist/mutations/customers/deleteCustomerById.d.ts +4 -0
  20. package/dist/mutations/customers/deleteCustomerById.d.ts.map +1 -0
  21. package/dist/mutations/customers/deleteCustomerById.js +38 -0
  22. package/dist/mutations/customers/deleteCustomerById.js.map +1 -0
  23. package/dist/mutations/customers/deleteCustomerById.mock.d.ts +4 -0
  24. package/dist/mutations/customers/deleteCustomerById.mock.d.ts.map +1 -0
  25. package/dist/mutations/customers/deleteCustomerById.mock.js +8 -0
  26. package/dist/mutations/customers/deleteCustomerById.mock.js.map +1 -0
  27. package/dist/mutations/customers/deleteCustomerById.test.d.ts +2 -0
  28. package/dist/mutations/customers/deleteCustomerById.test.d.ts.map +1 -0
  29. package/dist/mutations/customers/deleteCustomerById.test.js +10 -0
  30. package/dist/mutations/customers/deleteCustomerById.test.js.map +1 -0
  31. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.d.ts +4 -0
  32. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.d.ts.map +1 -0
  33. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.js +56 -0
  34. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.js.map +1 -0
  35. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.mock.d.ts +3 -0
  36. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.mock.d.ts.map +1 -0
  37. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.mock.js +11 -0
  38. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.mock.js.map +1 -0
  39. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.test.d.ts +2 -0
  40. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.test.d.ts.map +1 -0
  41. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.test.js +11 -0
  42. package/dist/mutations/productVariantsBulkUpdate/connectMetaObjectToProductVariant.test.js.map +1 -0
  43. package/dist/queries/orders/getOrderByName.d.ts +72 -0
  44. package/dist/queries/orders/getOrderByName.d.ts.map +1 -0
  45. package/dist/queries/orders/getOrderByName.js +117 -0
  46. package/dist/queries/orders/getOrderByName.js.map +1 -0
  47. package/dist/queries/orders/getOrderByName.mock.d.ts +21 -0
  48. package/dist/queries/orders/getOrderByName.mock.d.ts.map +1 -0
  49. package/dist/queries/orders/getOrderByName.mock.js +55 -0
  50. package/dist/queries/orders/getOrderByName.mock.js.map +1 -0
  51. package/dist/queries/orders/getOrderByName.queries.d.ts +3 -0
  52. package/dist/queries/orders/getOrderByName.queries.d.ts.map +1 -0
  53. package/dist/queries/orders/getOrderByName.queries.js +335 -0
  54. package/dist/queries/orders/getOrderByName.queries.js.map +1 -0
  55. package/dist/queries/orders/getOrderByName.test.d.ts +2 -0
  56. package/dist/queries/orders/getOrderByName.test.d.ts.map +1 -0
  57. package/dist/queries/orders/getOrderByName.test.js +28 -0
  58. package/dist/queries/orders/getOrderByName.test.js.map +1 -0
  59. package/dist/queries/orders/getOrderPaymentDetails.d.ts +130 -0
  60. package/dist/queries/orders/getOrderPaymentDetails.d.ts.map +1 -0
  61. package/dist/queries/orders/getOrderPaymentDetails.js +45 -0
  62. package/dist/queries/orders/getOrderPaymentDetails.js.map +1 -0
  63. package/dist/queries/orders/getOrderPaymentDetails.queries.d.ts +2 -0
  64. package/dist/queries/orders/getOrderPaymentDetails.queries.d.ts.map +1 -0
  65. package/dist/queries/orders/getOrderPaymentDetails.queries.js +21 -0
  66. package/dist/queries/orders/getOrderPaymentDetails.queries.js.map +1 -0
  67. package/dist/queries/productVariants/getLeanProductVariants.d.ts +33 -0
  68. package/dist/queries/productVariants/getLeanProductVariants.d.ts.map +1 -0
  69. package/dist/queries/productVariants/getLeanProductVariants.js +81 -0
  70. package/dist/queries/productVariants/getLeanProductVariants.js.map +1 -0
  71. package/dist/queries/productVariants/getLeanProductVariants.mock.d.ts +3 -0
  72. package/dist/queries/productVariants/getLeanProductVariants.mock.d.ts.map +1 -0
  73. package/dist/queries/productVariants/getLeanProductVariants.mock.js +33 -0
  74. package/dist/queries/productVariants/getLeanProductVariants.mock.js.map +1 -0
  75. package/dist/queries/productVariants/getLeanProductVariants.test.d.ts +2 -0
  76. package/dist/queries/productVariants/getLeanProductVariants.test.d.ts.map +1 -0
  77. package/dist/queries/productVariants/getLeanProductVariants.test.js +38 -0
  78. package/dist/queries/productVariants/getLeanProductVariants.test.js.map +1 -0
  79. package/dist/utils/logger.d.ts +11 -0
  80. package/dist/utils/logger.d.ts.map +1 -0
  81. package/dist/utils/logger.js +50 -0
  82. package/dist/utils/logger.js.map +1 -0
  83. package/dist/utils/mswHandlers.d.ts +2 -0
  84. package/dist/utils/mswHandlers.d.ts.map +1 -0
  85. package/dist/utils/mswHandlers.js +41 -0
  86. package/dist/utils/mswHandlers.js.map +1 -0
  87. package/dist/utils/shopifyClient.d.ts +6 -0
  88. package/dist/utils/shopifyClient.d.ts.map +1 -0
  89. package/dist/utils/shopifyClient.js +82 -0
  90. package/dist/utils/shopifyClient.js.map +1 -0
  91. package/dist/utils/shopifyClient.mock.d.ts +3 -0
  92. package/dist/utils/shopifyClient.mock.d.ts.map +1 -0
  93. package/dist/utils/shopifyClient.mock.js +19 -0
  94. package/dist/utils/shopifyClient.mock.js.map +1 -0
  95. package/dist/utils/shopifyClient.test.d.ts +2 -0
  96. package/dist/utils/shopifyClient.test.d.ts.map +1 -0
  97. package/dist/utils/shopifyClient.test.js +27 -0
  98. package/dist/utils/shopifyClient.test.js.map +1 -0
  99. package/dist/utils/shopifyFetch.d.ts +24 -0
  100. package/dist/utils/shopifyFetch.d.ts.map +1 -0
  101. package/dist/utils/shopifyFetch.js +67 -0
  102. package/dist/utils/shopifyFetch.js.map +1 -0
  103. package/dist/utils/shopifyFetch.test.d.ts +2 -0
  104. package/dist/utils/shopifyFetch.test.d.ts.map +1 -0
  105. package/dist/utils/shopifyFetch.test.js +17 -0
  106. package/dist/utils/shopifyFetch.test.js.map +1 -0
  107. package/dist/utils/test-setup.d.ts +2 -0
  108. package/dist/utils/test-setup.d.ts.map +1 -0
  109. package/dist/utils/test-setup.js +13 -0
  110. package/dist/utils/test-setup.js.map +1 -0
  111. package/dist/utils/zod.d.ts +3 -0
  112. package/dist/utils/zod.d.ts.map +1 -0
  113. package/dist/utils/zod.js +19 -0
  114. package/dist/utils/zod.js.map +1 -0
  115. package/package.json +3 -2
@@ -0,0 +1,72 @@
1
+ import z from 'zod';
2
+ import type { OrdersByNameFullQuery } from '../../generated-api-types/2025-04/admin.generated.js';
3
+ declare const GetLeanOrderByNameReturn: z.ZodNullable<z.ZodObject<{
4
+ id: z.ZodString;
5
+ name: z.ZodString;
6
+ createdAt: z.ZodString;
7
+ updatedAt: z.ZodString;
8
+ totalPrice: z.ZodObject<{
9
+ amount: z.ZodString;
10
+ currencyCode: z.ZodString;
11
+ }, "strip", z.ZodTypeAny, {
12
+ currencyCode: string;
13
+ amount: string;
14
+ }, {
15
+ currencyCode: string;
16
+ amount: string;
17
+ }>;
18
+ customer: z.ZodNullable<z.ZodObject<{
19
+ id: z.ZodString;
20
+ displayName: z.ZodString;
21
+ emailAddress: z.ZodNullable<z.ZodString>;
22
+ }, "strip", z.ZodTypeAny, {
23
+ id: string;
24
+ displayName: string;
25
+ emailAddress: string | null;
26
+ }, {
27
+ id: string;
28
+ displayName: string;
29
+ emailAddress: string | null;
30
+ }>>;
31
+ financialStatus: z.ZodNullable<z.ZodString>;
32
+ fulfillmentStatus: z.ZodNullable<z.ZodString>;
33
+ }, "strip", z.ZodTypeAny, {
34
+ id: string;
35
+ createdAt: string;
36
+ updatedAt: string;
37
+ name: string;
38
+ customer: {
39
+ id: string;
40
+ displayName: string;
41
+ emailAddress: string | null;
42
+ } | null;
43
+ totalPrice: {
44
+ currencyCode: string;
45
+ amount: string;
46
+ };
47
+ fulfillmentStatus: string | null;
48
+ financialStatus: string | null;
49
+ }, {
50
+ id: string;
51
+ createdAt: string;
52
+ updatedAt: string;
53
+ name: string;
54
+ customer: {
55
+ id: string;
56
+ displayName: string;
57
+ emailAddress: string | null;
58
+ } | null;
59
+ totalPrice: {
60
+ currencyCode: string;
61
+ amount: string;
62
+ };
63
+ fulfillmentStatus: string | null;
64
+ financialStatus: string | null;
65
+ }>>;
66
+ type GetLeanOrderByNameReturnType = z.infer<typeof GetLeanOrderByNameReturn>;
67
+ type GetFullOrderByNameReturnType = NonNullable<NonNullable<OrdersByNameFullQuery['orders']>['edges'][number]['node']> | null;
68
+ export declare function getOrderByName(orderName: string, detailLevel: 'lean'): Promise<GetLeanOrderByNameReturnType>;
69
+ export declare function getOrderByName(orderName: string, detailLevel: 'full'): Promise<GetFullOrderByNameReturnType>;
70
+ export declare function getOrderByName(orderName: string): Promise<GetLeanOrderByNameReturnType>;
71
+ export {};
72
+ //# sourceMappingURL=getOrderByName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrderByName.d.ts","sourceRoot":"","sources":["../../../src/queries/orders/getOrderByName.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,sDAAsD,CAAA;AAS7D,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBjB,CAAA;AAEb,KAAK,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE5E,KAAK,4BAA4B,GAAG,WAAW,CAC7C,WAAW,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACtE,GAAG,IAAI,CAAA;AAKR,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,4BAA4B,CAAC,CAAA;AACxC,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,4BAA4B,CAAC,CAAA;AACxC,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,4BAA4B,CAAC,CAAA"}
@@ -0,0 +1,117 @@
1
+ import z from 'zod';
2
+ import { logger } from '../../utils/logger.js';
3
+ import { fetchShopifyGraphql } from '../../utils/shopifyFetch.js';
4
+ import { returnOutputParsed } from '../../utils/zod.js';
5
+ import { queryOrdersByName, queryOrdersByNameFull, } from './getOrderByName.queries.js';
6
+ const GetLeanOrderByNameReturn = z
7
+ .object({
8
+ id: z.string(),
9
+ name: z.string(),
10
+ createdAt: z.string(),
11
+ updatedAt: z.string(),
12
+ totalPrice: z.object({
13
+ amount: z.string(),
14
+ currencyCode: z.string(),
15
+ }),
16
+ customer: z
17
+ .object({
18
+ id: z.string(),
19
+ displayName: z.string(),
20
+ emailAddress: z.string().nullable(),
21
+ })
22
+ .nullable(),
23
+ financialStatus: z.string().nullable(),
24
+ fulfillmentStatus: z.string().nullable(),
25
+ })
26
+ .nullable();
27
+ /**
28
+ * Retrieves a single order from Shopify by its order name (e.g., "B12345").
29
+ * Returns null if no order is found with the specified name.
30
+ *
31
+ * @param {string} orderName - The order name to search for (e.g., "B12345").
32
+ * @param {OrderDetailLevel} detailLevel - The level of detail to return ('lean' or 'full'). Defaults to 'lean'.
33
+ * @returns {Promise<GetLeanOrderByNameReturnType | GetFullOrderByNameReturnType>} A promise that resolves to the order data or null if not found.
34
+ * @throws {Error} If the GraphQL query fails or if the response structure is invalid.
35
+ */
36
+ export async function getOrderByName(orderName, detailLevel = 'lean') {
37
+ if (detailLevel === 'lean') {
38
+ return getLeanOrderByName(orderName);
39
+ }
40
+ return getFullOrderByName(orderName);
41
+ }
42
+ async function getLeanOrderByName(orderName) {
43
+ const variables = {
44
+ first: 1,
45
+ queryFilter: `name:${orderName}`,
46
+ };
47
+ const extractedNodes = await fetchShopifyGraphql({
48
+ query: queryOrdersByName,
49
+ variables,
50
+ dataExtractor: (pageData) => {
51
+ if (!pageData.orders) {
52
+ throw new Error("GraphQL response for orders is missing the 'orders' field.");
53
+ }
54
+ const nodes = pageData.orders.edges.map((edge) => edge.node);
55
+ return {
56
+ nodes,
57
+ };
58
+ },
59
+ fetchAllPages: false,
60
+ });
61
+ const order = extractedNodes[0];
62
+ if (!order) {
63
+ logger.debug(`No order found with name: ${orderName}`);
64
+ return null;
65
+ }
66
+ const leanOrder = {
67
+ id: order.id,
68
+ name: order.name,
69
+ createdAt: order.createdAt,
70
+ updatedAt: order.updatedAt,
71
+ totalPrice: {
72
+ amount: order.totalPriceSet?.shopMoney?.amount ?? '',
73
+ currencyCode: order.totalPriceSet?.shopMoney?.currencyCode ?? '',
74
+ },
75
+ customer: order.customer
76
+ ? {
77
+ id: order.customer.id,
78
+ displayName: order.customer.displayName,
79
+ emailAddress: order.customer.defaultEmailAddress?.emailAddress ?? null,
80
+ }
81
+ : null,
82
+ financialStatus: order.displayFinancialStatus ?? null,
83
+ fulfillmentStatus: order.displayFulfillmentStatus ?? null,
84
+ };
85
+ return await returnOutputParsed(leanOrder, GetLeanOrderByNameReturn);
86
+ }
87
+ async function getFullOrderByName(orderName) {
88
+ const variables = {
89
+ first: 1,
90
+ queryFilter: `name:${orderName}`,
91
+ };
92
+ const extractedNodes = await fetchShopifyGraphql({
93
+ query: queryOrdersByNameFull,
94
+ variables,
95
+ dataExtractor: (pageData) => {
96
+ if (!pageData.orders) {
97
+ throw new Error("GraphQL response for orders is missing the 'orders' field.");
98
+ }
99
+ const nodes = pageData.orders.edges.map((edge) => edge.node);
100
+ return {
101
+ nodes,
102
+ };
103
+ },
104
+ fetchAllPages: false,
105
+ });
106
+ if (extractedNodes.length === 0) {
107
+ logger.debug(`No order found with name: ${orderName}`);
108
+ return null;
109
+ }
110
+ const order = extractedNodes[0];
111
+ if (!order) {
112
+ logger.debug(`No order found with name: ${orderName}`);
113
+ return null;
114
+ }
115
+ return order;
116
+ }
117
+ //# sourceMappingURL=getOrderByName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrderByName.js","sourceRoot":"","sources":["../../../src/queries/orders/getOrderByName.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { OrdersByNameQuery } from '../../generated-api-types/2025-04/admin.generated';
2
+ import { CurrencyCode, OrderDisplayFulfillmentStatus } from '../../generated-api-types/2025-04/admin.types';
3
+ export declare const ordersByNameMock: OrdersByNameQuery;
4
+ export declare const expectedLeanOrder: {
5
+ id: string;
6
+ name: string;
7
+ createdAt: string;
8
+ updatedAt: string;
9
+ totalPrice: {
10
+ amount: string;
11
+ currencyCode: CurrencyCode;
12
+ };
13
+ customer: {
14
+ id: string;
15
+ displayName: string;
16
+ emailAddress: string;
17
+ };
18
+ financialStatus: null;
19
+ fulfillmentStatus: OrderDisplayFulfillmentStatus;
20
+ };
21
+ //# sourceMappingURL=getOrderByName.mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrderByName.mock.d.ts","sourceRoot":"","sources":["../../../src/queries/orders/getOrderByName.mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAA;AAC1F,OAAO,EACL,YAAY,EACZ,6BAA6B,EAC9B,MAAM,+CAA+C,CAAA;AA0BtD,eAAO,MAAM,gBAAgB,EAAE,iBAY9B,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAgB7B,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { CurrencyCode, OrderDisplayFulfillmentStatus, } from '../../generated-api-types/2025-04/admin.types';
2
+ const order = {
3
+ id: 'gid://shopify/Order/12345',
4
+ name: 'B12345',
5
+ createdAt: '2024-01-15T10:30:00Z',
6
+ updatedAt: '2024-01-15T14:45:00Z',
7
+ totalPriceSet: {
8
+ shopMoney: {
9
+ amount: '99.99',
10
+ currencyCode: CurrencyCode.Usd,
11
+ },
12
+ },
13
+ customer: {
14
+ id: 'gid://shopify/Customer/67890',
15
+ displayName: 'John Doe',
16
+ firstName: 'John',
17
+ lastName: 'Doe',
18
+ defaultEmailAddress: {
19
+ emailAddress: 'john.doe@example.com',
20
+ },
21
+ },
22
+ displayFulfillmentStatus: OrderDisplayFulfillmentStatus.Fulfilled,
23
+ displayFinancialStatus: null,
24
+ };
25
+ export const ordersByNameMock = {
26
+ orders: {
27
+ edges: [
28
+ {
29
+ node: order,
30
+ },
31
+ ],
32
+ pageInfo: {
33
+ hasNextPage: false,
34
+ endCursor: 'eyJsYXN0X2lkIjoxMjM0NX0=',
35
+ },
36
+ },
37
+ };
38
+ export const expectedLeanOrder = {
39
+ id: order.id,
40
+ name: order.name,
41
+ createdAt: order.createdAt,
42
+ updatedAt: order.updatedAt,
43
+ totalPrice: {
44
+ amount: order.totalPriceSet.shopMoney.amount,
45
+ currencyCode: order.totalPriceSet.shopMoney.currencyCode,
46
+ },
47
+ customer: {
48
+ id: order.customer.id,
49
+ displayName: order.customer.displayName,
50
+ emailAddress: order.customer.defaultEmailAddress.emailAddress,
51
+ },
52
+ financialStatus: order.displayFinancialStatus,
53
+ fulfillmentStatus: order.displayFulfillmentStatus,
54
+ };
55
+ //# sourceMappingURL=getOrderByName.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrderByName.mock.js","sourceRoot":"","sources":["../../../src/queries/orders/getOrderByName.mock.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,6BAA6B,GAC9B,MAAM,+CAA+C,CAAA;AAEtD,MAAM,KAAK,GAAG;IACZ,EAAE,EAAE,2BAA2B;IAC/B,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,sBAAsB;IACjC,aAAa,EAAE;QACb,SAAS,EAAE;YACT,MAAM,EAAE,OAAO;YACf,YAAY,EAAE,YAAY,CAAC,GAAG;SAC/B;KACF;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,8BAA8B;QAClC,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,KAAK;QACf,mBAAmB,EAAE;YACnB,YAAY,EAAE,sBAAsB;SACrC;KACF;IACD,wBAAwB,EAAE,6BAA6B,CAAC,SAAS;IACjE,sBAAsB,EAAE,IAAI;CAC7B,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,MAAM,EAAE;QACN,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,KAAK;aACZ;SACF;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,0BAA0B;SACtC;KACF;CACF,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,KAAK,CAAC,EAAE;IACZ,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,UAAU,EAAE;QACV,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM;QAC5C,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY;KACzD;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;QACrB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;QACvC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY;KAC9D;IACD,eAAe,EAAE,KAAK,CAAC,sBAAsB;IAC7C,iBAAiB,EAAE,KAAK,CAAC,wBAAwB;CAClD,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const queryOrdersByName: string;
2
+ export declare const queryOrdersByNameFull: string;
3
+ //# sourceMappingURL=getOrderByName.queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrderByName.queries.d.ts","sourceRoot":"","sources":["../../../src/queries/orders/getOrderByName.queries.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,QAkC7B,CAAA;AAED,eAAO,MAAM,qBAAqB,QAySjC,CAAA"}
@@ -0,0 +1,335 @@
1
+ import { gql } from '../../utils/logger';
2
+ export const queryOrdersByName = gql `#graphql
3
+ query ordersByName($first: Int!, $queryFilter: String!) {
4
+ orders(first: $first, query: $queryFilter) {
5
+ edges {
6
+ node {
7
+ id
8
+ name
9
+ createdAt
10
+ updatedAt
11
+ totalPriceSet {
12
+ shopMoney {
13
+ amount
14
+ currencyCode
15
+ }
16
+ }
17
+ customer {
18
+ id
19
+ lastName
20
+ defaultEmailAddress {
21
+ emailAddress
22
+ }
23
+ displayName
24
+ firstName
25
+ }
26
+ displayFinancialStatus
27
+ displayFulfillmentStatus
28
+ }
29
+ }
30
+ pageInfo {
31
+ hasNextPage
32
+ endCursor
33
+ }
34
+ }
35
+ }
36
+ `;
37
+ export const queryOrdersByNameFull = gql `#graphql
38
+ query ordersByNameFull($first: Int!, $queryFilter: String!) {
39
+ orders(first: $first, query: $queryFilter) {
40
+ edges {
41
+ node {
42
+ billingAddress {
43
+ address1
44
+ address2
45
+ city
46
+ company
47
+ country
48
+ countryCodeV2
49
+ firstName
50
+ formattedArea
51
+ id
52
+ lastName
53
+ name
54
+ phone
55
+ province
56
+ provinceCode
57
+ timeZone
58
+ zip
59
+ }
60
+ billingAddressMatchesShippingAddress
61
+ cancelReason
62
+ cancellation {
63
+ staffNote
64
+ }
65
+ cancelledAt
66
+ capturable
67
+ clientIp
68
+ closed
69
+ closedAt
70
+ confirmed
71
+ createdAt
72
+ currencyCode
73
+ currentCartDiscountAmountSet {
74
+ presentmentMoney {
75
+ amount
76
+ currencyCode
77
+ }
78
+ shopMoney {
79
+ amount
80
+ currencyCode
81
+ }
82
+ }
83
+ currentShippingPriceSet {
84
+ presentmentMoney {
85
+ amount
86
+ currencyCode
87
+ }
88
+ shopMoney {
89
+ amount
90
+ currencyCode
91
+ }
92
+ }
93
+ currentSubtotalLineItemsQuantity
94
+ currentSubtotalPriceSet {
95
+ presentmentMoney {
96
+ amount
97
+ currencyCode
98
+ }
99
+ shopMoney {
100
+ amount
101
+ currencyCode
102
+ }
103
+ }
104
+ currentTaxLines {
105
+ channelLiable
106
+ rate
107
+ ratePercentage
108
+ source
109
+ title
110
+ priceSet {
111
+ presentmentMoney {
112
+ amount
113
+ currencyCode
114
+ }
115
+ shopMoney {
116
+ amount
117
+ currencyCode
118
+ }
119
+ }
120
+ }
121
+ currentTotalAdditionalFeesSet {
122
+ presentmentMoney {
123
+ amount
124
+ currencyCode
125
+ }
126
+ shopMoney {
127
+ amount
128
+ currencyCode
129
+ }
130
+ }
131
+ currentTotalDiscountsSet {
132
+ presentmentMoney {
133
+ amount
134
+ currencyCode
135
+ currencyCode
136
+ }
137
+ shopMoney {
138
+ amount
139
+ currencyCode
140
+ }
141
+ }
142
+ currentTotalDutiesSet {
143
+ presentmentMoney {
144
+ amount
145
+ currencyCode
146
+ }
147
+ shopMoney {
148
+ amount
149
+ currencyCode
150
+ }
151
+ }
152
+ currentTotalPriceSet {
153
+ presentmentMoney {
154
+ amount
155
+ currencyCode
156
+ }
157
+ shopMoney {
158
+ amount
159
+ currencyCode
160
+ }
161
+ }
162
+ currentTotalTaxSet {
163
+ presentmentMoney {
164
+ amount
165
+ currencyCode
166
+ }
167
+ shopMoney {
168
+ amount
169
+ currencyCode
170
+ }
171
+ }
172
+ currentTotalWeight
173
+ customer {
174
+ id
175
+ lastName
176
+ defaultEmailAddress {
177
+ emailAddress
178
+ }
179
+ displayName
180
+ firstName
181
+ }
182
+ customerAcceptsMarketing
183
+ discountCodes
184
+ discountCode
185
+ displayAddress {
186
+ address1
187
+ address2
188
+ city
189
+ company
190
+ country
191
+ countryCodeV2
192
+ firstName
193
+ formattedArea
194
+ id
195
+ lastName
196
+ name
197
+ phone
198
+ province
199
+ provinceCode
200
+ timeZone
201
+ zip
202
+ }
203
+ displayFinancialStatus
204
+ displayFulfillmentStatus
205
+ dutiesIncluded
206
+ edited
207
+ email
208
+ estimatedTaxes
209
+ fulfillable
210
+ fulfillments(first: 20) {
211
+ createdAt
212
+ deliveredAt
213
+ displayStatus
214
+ estimatedDeliveryAt
215
+ updatedAt
216
+ trackingInfo(first: 10) {
217
+ company
218
+ url
219
+ }
220
+ totalQuantity
221
+ status
222
+ name
223
+ id
224
+ }
225
+ fullyPaid
226
+ id
227
+ lineItems(first: 50) {
228
+ edges {
229
+ node {
230
+ id
231
+ name
232
+ originalUnitPriceSet {
233
+ presentmentMoney {
234
+ amount
235
+ currencyCode
236
+ }
237
+ shopMoney {
238
+ amount
239
+ currencyCode
240
+ }
241
+ }
242
+ quantity
243
+ requiresShipping
244
+ sku
245
+ title
246
+ variantTitle
247
+ }
248
+ }
249
+ }
250
+ name
251
+ note
252
+ processedAt
253
+ shippingAddress {
254
+ address1
255
+ address2
256
+ city
257
+ company
258
+ country
259
+ countryCodeV2
260
+ firstName
261
+ formattedArea
262
+ id
263
+ lastName
264
+ name
265
+ phone
266
+ province
267
+ provinceCode
268
+ timeZone
269
+ zip
270
+ }
271
+ statusPageUrl
272
+ tags
273
+ totalPriceSet {
274
+ presentmentMoney {
275
+ amount
276
+ currencyCode
277
+ }
278
+ shopMoney {
279
+ amount
280
+ currencyCode
281
+ }
282
+ }
283
+ totalReceivedSet {
284
+ presentmentMoney {
285
+ amount
286
+ currencyCode
287
+ }
288
+ shopMoney {
289
+ amount
290
+ currencyCode
291
+ }
292
+ }
293
+ totalRefundedSet {
294
+ presentmentMoney {
295
+ amount
296
+ currencyCode
297
+ }
298
+ shopMoney {
299
+ amount
300
+ currencyCode
301
+ }
302
+ }
303
+ totalShippingPriceSet {
304
+ presentmentMoney {
305
+ amount
306
+ currencyCode
307
+ }
308
+ shopMoney {
309
+ amount
310
+ currencyCode
311
+ }
312
+ }
313
+ totalTaxSet {
314
+ presentmentMoney {
315
+ amount
316
+ currencyCode
317
+ }
318
+ shopMoney {
319
+ amount
320
+ currencyCode
321
+ }
322
+ }
323
+ totalWeight
324
+ unpaid
325
+ updatedAt
326
+ }
327
+ }
328
+ pageInfo {
329
+ hasNextPage
330
+ endCursor
331
+ }
332
+ }
333
+ }
334
+ `;
335
+ //# sourceMappingURL=getOrderByName.queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrderByName.queries.js","sourceRoot":"","sources":["../../../src/queries/orders/getOrderByName.queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCnC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAySvC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getOrderByName.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrderByName.test.d.ts","sourceRoot":"","sources":["../../../src/queries/orders/getOrderByName.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { graphql, passthrough } from 'msw';
2
+ import { describe, expect, it } from 'vitest';
3
+ import { server } from '../../utils/mswHandlers';
4
+ import { getOrderByName } from './getOrderByName';
5
+ import { expectedLeanOrder } from './getOrderByName.mock';
6
+ describe('getOrderByName - Using Mock Infrastructure', () => {
7
+ it('should return lean order when found', async () => {
8
+ const result = await getOrderByName('B12345');
9
+ expect(result).toEqual(expectedLeanOrder);
10
+ });
11
+ it('should return lean order when explicitly requesting lean detail', async () => {
12
+ const result = await getOrderByName('B12345', 'lean');
13
+ expect(result).toEqual(expectedLeanOrder);
14
+ });
15
+ it('should return full order when requesting full detail', async () => {
16
+ const result = await getOrderByName('B12345', 'full');
17
+ expect(result).not.toBeNull();
18
+ expect(result?.name).toBe('B12345');
19
+ expect(result?.id).toBe('gid://shopify/Order/12345');
20
+ expect(result?.customer?.displayName).toBe('John Doe');
21
+ });
22
+ it('should return null when order not found', async () => {
23
+ server.use(graphql.query('ordersByName', () => passthrough()));
24
+ const result = await getOrderByName('NONEXISTENT');
25
+ expect(result).toBeNull();
26
+ });
27
+ });
28
+ //# sourceMappingURL=getOrderByName.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrderByName.test.js","sourceRoot":"","sources":["../../../src/queries/orders/getOrderByName.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzD,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAErD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAA;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}