@tiledev/sdk-shopify 0.9.1 → 0.10.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 (143) hide show
  1. package/README.md +650 -50
  2. package/dist/alertSettings.d.ts.map +1 -1
  3. package/dist/alertSettings.js +2 -0
  4. package/dist/alertSettings.js.map +1 -1
  5. package/dist/attribution.d.ts +21 -0
  6. package/dist/attribution.d.ts.map +1 -1
  7. package/dist/attribution.js +17 -0
  8. package/dist/attribution.js.map +1 -1
  9. package/dist/auth/pkce.d.ts +30 -0
  10. package/dist/auth/pkce.d.ts.map +1 -0
  11. package/dist/auth/pkce.js +128 -0
  12. package/dist/auth/pkce.js.map +1 -0
  13. package/dist/auth/session.d.ts +118 -0
  14. package/dist/auth/session.d.ts.map +1 -0
  15. package/dist/auth/session.js +896 -0
  16. package/dist/auth/session.js.map +1 -0
  17. package/dist/auth/storeCredit.d.ts +64 -0
  18. package/dist/auth/storeCredit.d.ts.map +1 -0
  19. package/dist/auth/storeCredit.js +274 -0
  20. package/dist/auth/storeCredit.js.map +1 -0
  21. package/dist/cart.d.ts +25 -1
  22. package/dist/cart.d.ts.map +1 -1
  23. package/dist/cart.js +95 -2
  24. package/dist/cart.js.map +1 -1
  25. package/dist/cartPolicy.js +4 -4
  26. package/dist/checkout.d.ts +123 -0
  27. package/dist/checkout.d.ts.map +1 -0
  28. package/dist/checkout.js +205 -0
  29. package/dist/checkout.js.map +1 -0
  30. package/dist/customer.d.ts.map +1 -1
  31. package/dist/customer.js +8 -0
  32. package/dist/customer.js.map +1 -1
  33. package/dist/index.d.ts +12 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +74 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/messages.d.ts.map +1 -1
  38. package/dist/messages.js +2 -0
  39. package/dist/messages.js.map +1 -1
  40. package/dist/money.d.ts +16 -0
  41. package/dist/money.d.ts.map +1 -1
  42. package/dist/money.js +55 -0
  43. package/dist/money.js.map +1 -1
  44. package/dist/orders.d.ts +99 -0
  45. package/dist/orders.d.ts.map +1 -0
  46. package/dist/orders.js +439 -0
  47. package/dist/orders.js.map +1 -0
  48. package/dist/productPage.d.ts +100 -0
  49. package/dist/productPage.d.ts.map +1 -0
  50. package/dist/productPage.js +298 -0
  51. package/dist/productPage.js.map +1 -0
  52. package/dist/productStore.d.ts +1 -1
  53. package/dist/productStore.d.ts.map +1 -1
  54. package/dist/productStore.js +63 -5
  55. package/dist/productStore.js.map +1 -1
  56. package/dist/products.d.ts.map +1 -1
  57. package/dist/products.js +15 -3
  58. package/dist/products.js.map +1 -1
  59. package/dist/purchaseRules.d.ts +74 -0
  60. package/dist/purchaseRules.d.ts.map +1 -0
  61. package/dist/purchaseRules.js +73 -0
  62. package/dist/purchaseRules.js.map +1 -0
  63. package/dist/queries.d.ts +15 -13
  64. package/dist/queries.d.ts.map +1 -1
  65. package/dist/queries.js +43 -7
  66. package/dist/queries.js.map +1 -1
  67. package/dist/react/ShopifyProvider.d.ts +167 -25
  68. package/dist/react/ShopifyProvider.d.ts.map +1 -1
  69. package/dist/react/ShopifyProvider.js +352 -207
  70. package/dist/react/ShopifyProvider.js.map +1 -1
  71. package/dist/react/appForeground.d.ts +6 -0
  72. package/dist/react/appForeground.d.ts.map +1 -0
  73. package/dist/react/appForeground.js +19 -0
  74. package/dist/react/appForeground.js.map +1 -0
  75. package/dist/react/appForeground.native.d.ts +2 -0
  76. package/dist/react/appForeground.native.d.ts.map +1 -0
  77. package/dist/react/appForeground.native.js +23 -0
  78. package/dist/react/appForeground.native.js.map +1 -0
  79. package/dist/react/index.d.ts +7 -1
  80. package/dist/react/index.d.ts.map +1 -1
  81. package/dist/react/index.js +23 -1
  82. package/dist/react/index.js.map +1 -1
  83. package/dist/react/tileCreditClient.d.ts +4 -0
  84. package/dist/react/tileCreditClient.d.ts.map +1 -0
  85. package/dist/react/tileCreditClient.js +27 -0
  86. package/dist/react/tileCreditClient.js.map +1 -0
  87. package/dist/react/useAppDiscountCode.d.ts +19 -0
  88. package/dist/react/useAppDiscountCode.d.ts.map +1 -0
  89. package/dist/react/useAppDiscountCode.js +44 -0
  90. package/dist/react/useAppDiscountCode.js.map +1 -0
  91. package/dist/react/useCartStoreCredit.d.ts +25 -0
  92. package/dist/react/useCartStoreCredit.d.ts.map +1 -0
  93. package/dist/react/useCartStoreCredit.js +292 -0
  94. package/dist/react/useCartStoreCredit.js.map +1 -0
  95. package/dist/react/useOrders.d.ts +104 -0
  96. package/dist/react/useOrders.d.ts.map +1 -0
  97. package/dist/react/useOrders.js +287 -0
  98. package/dist/react/useOrders.js.map +1 -0
  99. package/dist/react/useProduct.d.ts.map +1 -1
  100. package/dist/react/useProduct.js +1 -9
  101. package/dist/react/useProduct.js.map +1 -1
  102. package/dist/react/useProductPage.d.ts +148 -0
  103. package/dist/react/useProductPage.d.ts.map +1 -0
  104. package/dist/react/useProductPage.js +178 -0
  105. package/dist/react/useProductPage.js.map +1 -0
  106. package/dist/react/useProductRecommendations.d.ts +27 -0
  107. package/dist/react/useProductRecommendations.d.ts.map +1 -0
  108. package/dist/react/useProductRecommendations.js +76 -0
  109. package/dist/react/useProductRecommendations.js.map +1 -0
  110. package/dist/react/useStoreCredit.d.ts +58 -0
  111. package/dist/react/useStoreCredit.d.ts.map +1 -0
  112. package/dist/react/useStoreCredit.js +209 -0
  113. package/dist/react/useStoreCredit.js.map +1 -0
  114. package/dist/react/useTileCredit.d.ts +4 -3
  115. package/dist/react/useTileCredit.d.ts.map +1 -1
  116. package/dist/react/useTileCredit.js +63 -55
  117. package/dist/react/useTileCredit.js.map +1 -1
  118. package/dist/shopify.d.ts.map +1 -1
  119. package/dist/shopify.js +2 -0
  120. package/dist/shopify.js.map +1 -1
  121. package/dist/storedList.d.ts +27 -0
  122. package/dist/storedList.d.ts.map +1 -0
  123. package/dist/storedList.js +152 -0
  124. package/dist/storedList.js.map +1 -0
  125. package/dist/tileCredit.d.ts +25 -10
  126. package/dist/tileCredit.d.ts.map +1 -1
  127. package/dist/tileCredit.js +97 -45
  128. package/dist/tileCredit.js.map +1 -1
  129. package/dist/types.d.ts +407 -34
  130. package/dist/types.d.ts.map +1 -1
  131. package/dist/types.js +1 -2
  132. package/dist/types.js.map +1 -1
  133. package/dist/variants.d.ts.map +1 -1
  134. package/dist/variants.js +4 -3
  135. package/dist/variants.js.map +1 -1
  136. package/dist/waitlist.d.ts +4 -0
  137. package/dist/waitlist.d.ts.map +1 -0
  138. package/dist/waitlist.js +213 -0
  139. package/dist/waitlist.js.map +1 -0
  140. package/dist/wishlist.d.ts.map +1 -1
  141. package/dist/wishlist.js +70 -47
  142. package/dist/wishlist.js.map +1 -1
  143. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/auth/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { AccountRequest } from '../orders';
2
+ import type { Money, StoreCreditEntry, TileCreditAPI, TileCreditLedgerEntry } from '../types';
3
+ /**
4
+ * `first: 10` because the accounts are per currency: a customer can hold several, and asking for one
5
+ * would silently pick whichever Shopify ordered first.
6
+ */
7
+ export declare const STORE_CREDIT_QUERY = "\n query StoreCredit {\n customer {\n storeCreditAccounts(first: 10) {\n nodes { id balance { amount currencyCode } }\n }\n }\n }\n";
8
+ export interface StoreCreditAccountNode {
9
+ id: string;
10
+ balance: {
11
+ amount: string;
12
+ currencyCode: string;
13
+ } | null;
14
+ }
15
+ /**
16
+ * The shopper's Shopify store credit as one figure: the accounts summed, in the currency of the
17
+ * first one holding a balance. Summed rather than first-of-list so it can never show less than the
18
+ * shopper has. No accounts reads as zero, in `fallbackCurrency` (the shop's).
19
+ */
20
+ export declare function sumStoreCredit(nodes: StoreCreditAccountNode[], fallbackCurrency: string): Money;
21
+ /** History lines per page, unless `useStoreCreditHistory({ pageSize })` says otherwise. */
22
+ export declare const STORE_CREDIT_HISTORY_PAGE_SIZE = 25;
23
+ export interface StoreCreditHistoryPage {
24
+ /** Newest first. */
25
+ entries: StoreCreditEntry[];
26
+ /** Hand back to `page` for the next page; null on the last one. */
27
+ nextCursor: string | null;
28
+ }
29
+ /** The signed-in shopper's store-credit history, from the source the app chose, a page at a time. */
30
+ export interface StoreCreditHistorySource {
31
+ /** `cursor`: the previous page's `nextCursor`; null for the newest page. */
32
+ page(pageSize: number, cursor: string | null): Promise<StoreCreditHistoryPage>;
33
+ }
34
+ /**
35
+ * One Tile Credit ledger line. Which way it moved the balance comes from what it was: earned credit
36
+ * adds; a redemption, an expiry and a manual deduction take away, and so does any line with a
37
+ * negative amount. (Old Amore counted every `adjust` as credit, which showed a deduction as "+".)
38
+ */
39
+ export declare function tileCreditEntry(entry: TileCreditLedgerEntry, fallbackCurrency: string): StoreCreditEntry;
40
+ /**
41
+ * Tile Credit's ledger (`GET /public/me/ledger`), which pages by its own cursor. The ledger alone:
42
+ * the gift cards a redemption minted only decorate a line, and `getHistory`'s join fails the whole
43
+ * read when that second call does (old Amore's ENG-609).
44
+ */
45
+ export declare function tileCreditHistory(client: Pick<TileCreditAPI, 'getLedger'>, fallbackCurrency: string): StoreCreditHistorySource;
46
+ /**
47
+ * The newest page of every store-credit account (one per currency; `first: 10` as the balance).
48
+ * Each account's cursor, in `edges`, is what reads that one account again on later pages.
49
+ */
50
+ export declare const STORE_CREDIT_HISTORY_QUERY = "\n query StoreCreditHistory($first: Int!) {\n customer {\n storeCreditAccounts(first: 10) {\n edges {\n cursor\n node { id transactions(first: $first, sortKey: CREATED_AT, reverse: true) { \n pageInfo { hasNextPage endCursor }\n edges {\n cursor\n node {\n __typename\n amount { amount currencyCode }\n createdAt\n event\n ... on StoreCreditAccountCreditTransaction { expiresAt }\n }\n }\n } }\n }\n }\n }\n }\n";
51
+ /**
52
+ * The next page of each account that has more. The API has no way to read one account by id, so
53
+ * each is read as "the one account after the account before it" (`storeCreditAccounts(first: 1,
54
+ * after:)`), under an alias of its own.
55
+ */
56
+ export declare function storeCreditHistoryNextQuery(accounts: number): string;
57
+ /**
58
+ * Shopify's store credit, for a Shopify sign-in: every account's transactions, newest first. A
59
+ * shopper has one account per currency, so almost always one; with several, each page holds the
60
+ * next `pageSize` of every account that has more, merged by date (`useStoreCreditHistory` keeps the
61
+ * whole list in date order as pages arrive).
62
+ */
63
+ export declare function shopifyStoreCreditHistory(request: AccountRequest, fallbackCurrency: string): StoreCreditHistorySource;
64
+ //# sourceMappingURL=storeCredit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storeCredit.d.ts","sourceRoot":"","sources":["../../src/auth/storeCredit.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAwB,aAAa,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEpH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iKAQ9B,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,sBAAsB,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,KAAK,CAK/F;AAID,2FAA2F;AAC3F,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,oBAAoB;IACpB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,mEAAmE;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,qGAAqG;AACrG,MAAM,WAAW,wBAAwB;IACvC,4EAA4E;IAC5E,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAChF;AAgDD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAuBxG;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,MAAM,GAAG,wBAAwB,CAU9H;AAkBD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,ufAWtC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUpE;AAwDD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,GAAG,wBAAwB,CAqDrH"}
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STORE_CREDIT_HISTORY_QUERY = exports.STORE_CREDIT_HISTORY_PAGE_SIZE = exports.STORE_CREDIT_QUERY = void 0;
4
+ exports.sumStoreCredit = sumStoreCredit;
5
+ exports.tileCreditEntry = tileCreditEntry;
6
+ exports.tileCreditHistory = tileCreditHistory;
7
+ exports.storeCreditHistoryNextQuery = storeCreditHistoryNextQuery;
8
+ exports.shopifyStoreCreditHistory = shopifyStoreCreditHistory;
9
+ /**
10
+ * Store credit, from the source each app picks on `ShopifyProvider` (`StoreCreditOptions`):
11
+ * Shopify's own store credit, or Tile Credit. The balance is read by `useStoreCredit`, the history
12
+ * behind it by `useStoreCreditHistory`.
13
+ */
14
+ const tileCredit_1 = require("../tileCredit");
15
+ /**
16
+ * `first: 10` because the accounts are per currency: a customer can hold several, and asking for one
17
+ * would silently pick whichever Shopify ordered first.
18
+ */
19
+ exports.STORE_CREDIT_QUERY = `
20
+ query StoreCredit {
21
+ customer {
22
+ storeCreditAccounts(first: 10) {
23
+ nodes { id balance { amount currencyCode } }
24
+ }
25
+ }
26
+ }
27
+ `;
28
+ /**
29
+ * The shopper's Shopify store credit as one figure: the accounts summed, in the currency of the
30
+ * first one holding a balance. Summed rather than first-of-list so it can never show less than the
31
+ * shopper has. No accounts reads as zero, in `fallbackCurrency` (the shop's).
32
+ */
33
+ function sumStoreCredit(nodes, fallbackCurrency) {
34
+ var _a, _b, _c, _d, _e;
35
+ let cents = 0;
36
+ for (const node of nodes)
37
+ cents += Math.round((Number.parseFloat((_b = (_a = node.balance) === null || _a === void 0 ? void 0 : _a.amount) !== null && _b !== void 0 ? _b : '0') || 0) * 100);
38
+ const currencyCode = (_e = (_d = (_c = nodes.find((node) => node.balance)) === null || _c === void 0 ? void 0 : _c.balance) === null || _d === void 0 ? void 0 : _d.currencyCode) !== null && _e !== void 0 ? _e : fallbackCurrency;
39
+ return { amount: (cents / 100).toFixed(2), currencyCode };
40
+ }
41
+ // ── History ────────────────────────────────────────────────────────────────
42
+ /** History lines per page, unless `useStoreCreditHistory({ pageSize })` says otherwise. */
43
+ exports.STORE_CREDIT_HISTORY_PAGE_SIZE = 25;
44
+ /** Whole cents, never negative, from a decimal amount ("-12.50" → 1250). */
45
+ const centsOf = (amount) => Math.abs(Math.round((Number.parseFloat(amount !== null && amount !== void 0 ? amount : '0') || 0) * 100));
46
+ const newestFirst = (a, b) => (Date.parse(b.createdAt) || 0) - (Date.parse(a.createdAt) || 0);
47
+ // Tile Credit
48
+ /** Tile Credit's sources, each the kind it is. A source this doesn't know reads by its type. */
49
+ const TILE_CREDIT_KINDS = {
50
+ signup: 'signupBonus',
51
+ 'live-join': 'liveShowReward',
52
+ 'order-fulfilled': 'orderReward',
53
+ 'manual-grant': 'addedByStore',
54
+ 'manual-deduct': 'removedByStore',
55
+ redemption: 'spent',
56
+ 'expiry-sweep': 'expired',
57
+ };
58
+ /** The sources whose `reason` is the service's own reference, never words the store wrote. */
59
+ const MACHINE_REASONS = new Set(['signup', 'live-join', 'order-fulfilled', 'redemption', 'expiry-sweep']);
60
+ /** An order's name in free text: `#1043`. A Shopify id isn't one; the shopper has never seen it. */
61
+ function orderNameIn(text) {
62
+ const match = text ? /#(\d+)\b/.exec(text) : null;
63
+ return match ? `#${match[1]}` : null;
64
+ }
65
+ /**
66
+ * Whether a `reason` reads as words a shopper can use. The field is free text, and the grant paths
67
+ * often put a reference there (an order id, a `dispenser-<uuid>` key, a gid), which on a statement
68
+ * looks like a fault. So it has to be short prose with no reference in it (old Amore's rule, its
69
+ * `readsAsProse`); an order's name goes to `orderName` instead.
70
+ */
71
+ function readsAsSentence(reason) {
72
+ const text = reason.trim();
73
+ if (text.length === 0 || text.length > 48)
74
+ return false;
75
+ if (/gid:\/\//i.test(text))
76
+ return false;
77
+ if (/[0-9a-f]{8}-[0-9a-f]{4}/i.test(text))
78
+ return false;
79
+ if (/[0-9a-f]{12,}/i.test(text))
80
+ return false;
81
+ if (/#\d/.test(text))
82
+ return false;
83
+ if (/^\d[\d\s-]*$/.test(text))
84
+ return false;
85
+ if (/\b(?:order|dispenser|transaction|txn|ref|id)[\s:_-]*#?\w*\d{3,}/i.test(text))
86
+ return false;
87
+ // At least two words of language.
88
+ return /[a-z]{3,}(?:\s+\S+)+/i.test(text);
89
+ }
90
+ /**
91
+ * One Tile Credit ledger line. Which way it moved the balance comes from what it was: earned credit
92
+ * adds; a redemption, an expiry and a manual deduction take away, and so does any line with a
93
+ * negative amount. (Old Amore counted every `adjust` as credit, which showed a deduction as "+".)
94
+ */
95
+ function tileCreditEntry(entry, fallbackCurrency) {
96
+ var _a, _b, _c;
97
+ const takesCredit = entry.amountCents < 0 ||
98
+ entry.type === 'redeem' ||
99
+ entry.type === 'expire' ||
100
+ entry.source === 'manual-deduct' ||
101
+ entry.source === 'redemption' ||
102
+ entry.source === 'expiry-sweep';
103
+ const isCredit = !takesCredit;
104
+ const kind = (_a = TILE_CREDIT_KINDS[entry.source]) !== null && _a !== void 0 ? _a : (entry.type === 'expire' ? 'expired' : entry.type === 'redeem' ? 'spent' : isCredit ? 'added' : 'removed');
105
+ const storeWords = !MACHINE_REASONS.has(entry.source) && !!entry.reason && readsAsSentence(entry.reason);
106
+ return {
107
+ id: entry.id,
108
+ kind,
109
+ isCredit,
110
+ amount: { amount: (0, tileCredit_1.centsToMoney)(Math.abs(entry.amountCents)), currencyCode: entry.currencyCode || fallbackCurrency },
111
+ createdAt: entry.createdAt,
112
+ expiresAt: isCredit ? (_b = entry.expiresAt) !== null && _b !== void 0 ? _b : null : null,
113
+ note: storeWords ? entry.reason.trim() : null,
114
+ orderName: (_c = orderNameIn(entry.sourceRef)) !== null && _c !== void 0 ? _c : orderNameIn(entry.reason),
115
+ };
116
+ }
117
+ /**
118
+ * Tile Credit's ledger (`GET /public/me/ledger`), which pages by its own cursor. The ledger alone:
119
+ * the gift cards a redemption minted only decorate a line, and `getHistory`'s join fails the whole
120
+ * read when that second call does (old Amore's ENG-609).
121
+ */
122
+ function tileCreditHistory(client, fallbackCurrency) {
123
+ return {
124
+ async page(pageSize, cursor) {
125
+ const ledger = await client.getLedger({ limit: pageSize, before: cursor !== null && cursor !== void 0 ? cursor : undefined });
126
+ return {
127
+ entries: ledger.entries.map((entry) => tileCreditEntry(entry, fallbackCurrency)),
128
+ nextCursor: ledger.nextCursor,
129
+ };
130
+ },
131
+ };
132
+ }
133
+ // Shopify store credit (Customer Account API)
134
+ const TRANSACTIONS = /* GraphQL */ `
135
+ pageInfo { hasNextPage endCursor }
136
+ edges {
137
+ cursor
138
+ node {
139
+ __typename
140
+ amount { amount currencyCode }
141
+ createdAt
142
+ event
143
+ ... on StoreCreditAccountCreditTransaction { expiresAt }
144
+ }
145
+ }
146
+ `;
147
+ /**
148
+ * The newest page of every store-credit account (one per currency; `first: 10` as the balance).
149
+ * Each account's cursor, in `edges`, is what reads that one account again on later pages.
150
+ */
151
+ exports.STORE_CREDIT_HISTORY_QUERY = `
152
+ query StoreCreditHistory($first: Int!) {
153
+ customer {
154
+ storeCreditAccounts(first: 10) {
155
+ edges {
156
+ cursor
157
+ node { id transactions(first: $first, sortKey: CREATED_AT, reverse: true) { ${TRANSACTIONS} } }
158
+ }
159
+ }
160
+ }
161
+ }
162
+ `;
163
+ /**
164
+ * The next page of each account that has more. The API has no way to read one account by id, so
165
+ * each is read as "the one account after the account before it" (`storeCreditAccounts(first: 1,
166
+ * after:)`), under an alias of its own.
167
+ */
168
+ function storeCreditHistoryNextQuery(accounts) {
169
+ const variables = ['$first: Int!'];
170
+ const reads = [];
171
+ for (let i = 0; i < accounts; i++) {
172
+ variables.push(`$account${i}: String`, `$after${i}: String!`);
173
+ reads.push(`account${i}: storeCreditAccounts(first: 1, after: $account${i}) {
174
+ edges { cursor node { id transactions(first: $first, after: $after${i}, sortKey: CREATED_AT, reverse: true) { ${TRANSACTIONS} } } }
175
+ }`);
176
+ }
177
+ return `query StoreCreditHistoryMore(${variables.join(', ')}) { customer { ${reads.join('\n')} } }`;
178
+ }
179
+ /** One Shopify store-credit transaction. Its type says which way it went; its event, why. */
180
+ function shopifyEntry(accountId, cursor, node, fallbackCurrency) {
181
+ var _a, _b, _c, _d, _e, _f, _g;
182
+ const type = (_a = node.__typename) !== null && _a !== void 0 ? _a : '';
183
+ const signed = Number.parseFloat((_c = (_b = node.amount) === null || _b === void 0 ? void 0 : _b.amount) !== null && _c !== void 0 ? _c : '0') || 0;
184
+ const isCredit = type === 'StoreCreditAccountCreditTransaction' || type === 'StoreCreditAccountDebitRevertTransaction'
185
+ ? true
186
+ : type === 'StoreCreditAccountDebitTransaction' || type === 'StoreCreditAccountExpirationTransaction'
187
+ ? false
188
+ : signed >= 0;
189
+ let kind;
190
+ if (type === 'StoreCreditAccountExpirationTransaction')
191
+ kind = 'expired';
192
+ else if (type === 'StoreCreditAccountDebitRevertTransaction')
193
+ kind = 'refunded';
194
+ else if (node.event === 'ADJUSTMENT')
195
+ kind = isCredit ? 'addedByStore' : 'removedByStore';
196
+ else if (type === 'StoreCreditAccountCreditTransaction')
197
+ kind = node.event === 'ORDER_REFUND' ? 'refunded' : 'added';
198
+ else if (type === 'StoreCreditAccountDebitTransaction')
199
+ kind = 'spent';
200
+ else
201
+ kind = isCredit ? 'added' : 'removed';
202
+ return {
203
+ id: `${accountId}:${cursor}`,
204
+ kind,
205
+ isCredit,
206
+ amount: { amount: (0, tileCredit_1.centsToMoney)(centsOf((_d = node.amount) === null || _d === void 0 ? void 0 : _d.amount)), currencyCode: ((_e = node.amount) === null || _e === void 0 ? void 0 : _e.currencyCode) || fallbackCurrency },
207
+ createdAt: (_f = node.createdAt) !== null && _f !== void 0 ? _f : '',
208
+ expiresAt: isCredit ? (_g = node.expiresAt) !== null && _g !== void 0 ? _g : null : null,
209
+ note: null,
210
+ orderName: null,
211
+ };
212
+ }
213
+ /**
214
+ * Shopify's store credit, for a Shopify sign-in: every account's transactions, newest first. A
215
+ * shopper has one account per currency, so almost always one; with several, each page holds the
216
+ * next `pageSize` of every account that has more, merged by date (`useStoreCreditHistory` keeps the
217
+ * whole list in date order as pages arrive).
218
+ */
219
+ function shopifyStoreCreditHistory(request, fallbackCurrency) {
220
+ function read(accounts, before) {
221
+ const entries = [];
222
+ const more = [];
223
+ accounts.forEach((edge, i) => {
224
+ var _a, _b, _c, _d;
225
+ const account = edge === null || edge === void 0 ? void 0 : edge.node;
226
+ if (!account)
227
+ return;
228
+ for (const transaction of (_b = (_a = account.transactions) === null || _a === void 0 ? void 0 : _a.edges) !== null && _b !== void 0 ? _b : []) {
229
+ if (transaction === null || transaction === void 0 ? void 0 : transaction.node)
230
+ entries.push(shopifyEntry(account.id, transaction.cursor, transaction.node, fallbackCurrency));
231
+ }
232
+ const end = (_c = account.transactions) === null || _c === void 0 ? void 0 : _c.pageInfo;
233
+ if ((end === null || end === void 0 ? void 0 : end.hasNextPage) && end.endCursor)
234
+ more.push({ id: account.id, account: (_d = before[i]) !== null && _d !== void 0 ? _d : null, after: end.endCursor });
235
+ });
236
+ entries.sort(newestFirst);
237
+ return { entries, nextCursor: more.length ? JSON.stringify(more) : null };
238
+ }
239
+ return {
240
+ async page(pageSize, cursor) {
241
+ var _a, _b;
242
+ if (!cursor) {
243
+ const data = await request(exports.STORE_CREDIT_HISTORY_QUERY, { first: pageSize });
244
+ const edges = (_b = (_a = data.customer) === null || _a === void 0 ? void 0 : _a.storeCreditAccounts.edges) !== null && _b !== void 0 ? _b : [];
245
+ // Each account's place in the list: the cursor of the one before it (none for the first).
246
+ return read(edges, edges.map((_, i) => (i === 0 ? null : edges[i - 1].cursor)));
247
+ }
248
+ let places;
249
+ try {
250
+ places = JSON.parse(cursor);
251
+ }
252
+ catch {
253
+ return { entries: [], nextCursor: null };
254
+ }
255
+ if (!Array.isArray(places) || places.length === 0)
256
+ return { entries: [], nextCursor: null };
257
+ const variables = { first: pageSize };
258
+ places.forEach((place, i) => {
259
+ variables[`account${i}`] = place.account;
260
+ variables[`after${i}`] = place.after;
261
+ });
262
+ const data = await request(storeCreditHistoryNextQuery(places.length), variables);
263
+ // An account list that changed since the first page (one added or closed) puts another account
264
+ // at that place: its transactions aren't this account's next page, so that account stops there.
265
+ const accounts = places.map((place, i) => {
266
+ var _a, _b, _c, _d;
267
+ const edge = (_c = (_b = (_a = data.customer) === null || _a === void 0 ? void 0 : _a[`account${i}`]) === null || _b === void 0 ? void 0 : _b.edges) === null || _c === void 0 ? void 0 : _c[0];
268
+ return ((_d = edge === null || edge === void 0 ? void 0 : edge.node) === null || _d === void 0 ? void 0 : _d.id) === place.id ? edge : null;
269
+ });
270
+ return read(accounts, places.map((place) => place.account));
271
+ },
272
+ };
273
+ }
274
+ //# sourceMappingURL=storeCredit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storeCredit.js","sourceRoot":"","sources":["../../src/auth/storeCredit.ts"],"names":[],"mappings":"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"}
package/dist/cart.d.ts CHANGED
@@ -1,9 +1,33 @@
1
- import type { Cart, CartLineSnapshot, ShopifyCartAPI } from './types';
1
+ import type { AppliedGiftCard, Cart, CartLineSnapshot, ShopifyCartAPI } from './types';
2
2
  /**
3
3
  * The lines of `cart` in the shape a new cart can be created from. Shopify has no copy-cart API
4
4
  * and an expired cart cannot be read, so this is the only way its lines outlive it. Attributes are
5
5
  * copied verbatim: other apps' tags ride on them.
6
6
  */
7
7
  export declare function toLineSnapshot(cart: Cart): CartLineSnapshot[];
8
+ /** The gift cards on `cart` whose last characters match one of `endings` (a code, or its last four). */
9
+ export declare function giftCardsEndingIn(cart: Cart | null, endings: string[]): AppliedGiftCard[];
10
+ /** The codes no gift card on `cart` ends like: what Shopify didn't apply. */
11
+ export declare function giftCardCodesNotOnCart(cart: Cart, codes: string[]): string[];
8
12
  export declare const cart: ShopifyCartAPI;
13
+ /**
14
+ * Adds gift-card codes to `current` so they can pay for it:
15
+ *
16
+ * 1. **A country first, only when the cart has none** (Shopify takes a gift card only on a cart with
17
+ * `buyerIdentity.countryCode`). `cartBuyerIdentityUpdate` REPLACES the identity, so the cart's email
18
+ * is sent again, and the shopper's token (`customerAccessToken`) keeps it linked to them. A cart that
19
+ * already has a country isn't touched: the identity can't be read back whole (the token), so the
20
+ * safest identity write is none.
21
+ * 2. **`cartGiftCardCodesAdd`**, which keeps the cart's other gift cards.
22
+ *
23
+ * `notApplied` lists the codes no card on the returned cart ends like: Shopify answered without
24
+ * applying them (it does that without an error for a code it doesn't take).
25
+ */
26
+ export declare function addGiftCardsKeepingBuyer(current: Cart, codes: string[], options: {
27
+ countryCode: () => Promise<string>;
28
+ customerAccessToken?: string | null;
29
+ }): Promise<{
30
+ cart: Cart;
31
+ notApplied: string[];
32
+ }>;
9
33
  //# sourceMappingURL=cart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart.d.ts","sourceRoot":"","sources":["../src/cart.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,IAAI,EAEJ,gBAAgB,EAEhB,cAAc,EAIf,MAAM,SAAS,CAAC;AA6CjB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,EAAE,CAS7D;AAUD,eAAO,MAAM,IAAI,EAAE,cAyGlB,CAAC"}
1
+ {"version":3,"file":"cart.d.ts","sourceRoot":"","sources":["../src/cart.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EAGJ,gBAAgB,EAEhB,cAAc,EAKf,MAAM,SAAS,CAAC;AA4EjB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,EAAE,CAS7D;AAiBD,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAGzF;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE5E;AAOD,eAAO,MAAM,IAAI,EAAE,cAoHlB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnF,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAW/C"}
package/dist/cart.js CHANGED
@@ -2,8 +2,43 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cart = void 0;
4
4
  exports.toLineSnapshot = toLineSnapshot;
5
+ exports.giftCardsEndingIn = giftCardsEndingIn;
6
+ exports.giftCardCodesNotOnCart = giftCardCodesNotOnCart;
7
+ exports.addGiftCardsKeepingBuyer = addGiftCardsKeepingBuyer;
5
8
  const client_1 = require("./client");
6
9
  const queries_1 = require("./queries");
10
+ /**
11
+ * `money` times a whole number, worked in the amount's own smallest unit so `0.1 × 3` is `0.3`, and
12
+ * written with as many decimals as Shopify gave. Null in, null out.
13
+ */
14
+ function timesQuantity(money, quantity) {
15
+ var _a, _b;
16
+ if (!money || typeof money.amount !== 'string')
17
+ return null;
18
+ const decimals = (_b = (_a = money.amount.split('.')[1]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
19
+ const scale = 10 ** decimals;
20
+ const smallestUnits = Math.round(Number(money.amount) * scale) * quantity;
21
+ if (!Number.isFinite(smallestUnits))
22
+ return null;
23
+ return { amount: (smallestUnits / scale).toFixed(decimals), currencyCode: money.currencyCode };
24
+ }
25
+ /**
26
+ * A line's selling-plan allocation as `CartLine.sellingPlan`: the plan, and its two amounts for the
27
+ * whole line. Shopify gives the amounts per unit (a line of 2 at $250 said $250 left to pay,
28
+ * 2026-10-05), so they are multiplied by the quantity here. Null for a line bought outright.
29
+ */
30
+ function lineSellingPlan(allocation, quantity) {
31
+ var _a;
32
+ const plan = allocation === null || allocation === void 0 ? void 0 : allocation.sellingPlan;
33
+ if (!(plan === null || plan === void 0 ? void 0 : plan.id))
34
+ return null;
35
+ return {
36
+ id: plan.id,
37
+ name: (_a = plan.name) !== null && _a !== void 0 ? _a : '',
38
+ checkoutCharge: timesQuantity(allocation.checkoutChargeAmount, quantity),
39
+ remainingBalance: timesQuantity(allocation.remainingBalanceChargeAmount, quantity),
40
+ };
41
+ }
7
42
  function normalize(c) {
8
43
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
9
44
  return {
@@ -26,6 +61,7 @@ function normalize(c) {
26
61
  quantity: line.quantity,
27
62
  attributes: (_a = line.attributes) !== null && _a !== void 0 ? _a : [],
28
63
  sellingPlanId: (_d = (_c = (_b = line.sellingPlanAllocation) === null || _b === void 0 ? void 0 : _b.sellingPlan) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : null,
64
+ sellingPlan: lineSellingPlan(line.sellingPlanAllocation, line.quantity),
29
65
  merchandise: line.merchandise,
30
66
  product: (_f = (_e = line.merchandise) === null || _e === void 0 ? void 0 : _e.product) !== null && _f !== void 0 ? _f : null,
31
67
  cost: line.cost,
@@ -56,8 +92,29 @@ function toLineSnapshot(cart) {
56
92
  });
57
93
  });
58
94
  }
59
- // Shopify rejects an unknown CartLineInput field, so the SDK-only `source` never goes on the wire.
60
- const toShopifyLines = (lines) => lines === null || lines === void 0 ? void 0 : lines.map(({ source: _source, ...line }) => line);
95
+ // Shopify rejects an unknown CartLineInput field, so the SDK-only `source` and `maxQuantity` never go on the wire.
96
+ const toShopifyLines = (lines) => lines === null || lines === void 0 ? void 0 : lines.map(({ source: _source, maxQuantity: _ceiling, ...line }) => line);
97
+ /**
98
+ * Whether a gift card's last characters (`AppliedGiftCard.lastCharacters`, `TileCreditRedeemResult.last4`)
99
+ * are the end of a code or of another card's last characters. Codes are case-insensitive. At least four
100
+ * characters must match, so an empty ending matches nothing.
101
+ */
102
+ function sameEnding(a, b) {
103
+ const one = a.trim().toLowerCase();
104
+ const other = b.trim().toLowerCase();
105
+ const shorter = one.length <= other.length ? one : other;
106
+ return shorter.length >= 4 && (one.endsWith(other) || other.endsWith(one));
107
+ }
108
+ /** The gift cards on `cart` whose last characters match one of `endings` (a code, or its last four). */
109
+ function giftCardsEndingIn(cart, endings) {
110
+ if (!cart)
111
+ return [];
112
+ return cart.appliedGiftCards.filter((card) => endings.some((ending) => sameEnding(card.lastCharacters, ending)));
113
+ }
114
+ /** The codes no gift card on `cart` ends like: what Shopify didn't apply. */
115
+ function giftCardCodesNotOnCart(cart, codes) {
116
+ return codes.filter((code) => giftCardsEndingIn(cart, [code]).length === 0);
117
+ }
61
118
  /** A cart's line-image transform: the call's own, else the provider-wide `imageTransforms.cart`. */
62
119
  function cartImages(opts) {
63
120
  var _a, _b;
@@ -122,6 +179,7 @@ exports.cart = {
122
179
  (0, client_1.assertNoUserErrors)('cartBuyerIdentityUpdate', data.cartBuyerIdentityUpdate.userErrors);
123
180
  return normalize(data.cartBuyerIdentityUpdate.cart);
124
181
  },
182
+ /** REPLACES the cart's gift cards: a card not in `codes` comes off. Adding one is `addGiftCardCodes`. */
125
183
  async applyGiftCardCodes(cartId, codes, opts) {
126
184
  const data = await (0, client_1.request)(queries_1.CART_GIFT_CARD_CODES_UPDATE_MUTATION, {
127
185
  cartId,
@@ -130,6 +188,15 @@ exports.cart = {
130
188
  (0, client_1.assertNoUserErrors)('cartGiftCardCodesUpdate', data.cartGiftCardCodesUpdate.userErrors);
131
189
  return normalize(data.cartGiftCardCodesUpdate.cart);
132
190
  },
191
+ /** Adds codes and keeps the cards already on the cart. Shopify can skip a code without an error. */
192
+ async addGiftCardCodes(cartId, codes, opts) {
193
+ const data = await (0, client_1.request)(queries_1.CART_GIFT_CARD_CODES_ADD_MUTATION, {
194
+ cartId,
195
+ giftCardCodes: codes,
196
+ }, cartImages(opts));
197
+ (0, client_1.assertNoUserErrors)('cartGiftCardCodesAdd', data.cartGiftCardCodesAdd.userErrors);
198
+ return normalize(data.cartGiftCardCodesAdd.cart);
199
+ },
133
200
  /**
134
201
  * The shopper's order note — the free-text box on the cart, read by the merchant on the order.
135
202
  *
@@ -159,4 +226,30 @@ exports.cart = {
159
226
  return normalize(data.cartGiftCardCodesRemove.cart);
160
227
  },
161
228
  };
229
+ /**
230
+ * Adds gift-card codes to `current` so they can pay for it:
231
+ *
232
+ * 1. **A country first, only when the cart has none** (Shopify takes a gift card only on a cart with
233
+ * `buyerIdentity.countryCode`). `cartBuyerIdentityUpdate` REPLACES the identity, so the cart's email
234
+ * is sent again, and the shopper's token (`customerAccessToken`) keeps it linked to them. A cart that
235
+ * already has a country isn't touched: the identity can't be read back whole (the token), so the
236
+ * safest identity write is none.
237
+ * 2. **`cartGiftCardCodesAdd`**, which keeps the cart's other gift cards.
238
+ *
239
+ * `notApplied` lists the codes no card on the returned cart ends like: Shopify answered without
240
+ * applying them (it does that without an error for a code it doesn't take).
241
+ */
242
+ async function addGiftCardsKeepingBuyer(current, codes, options) {
243
+ var _a, _b;
244
+ let next = current;
245
+ if (!((_a = next.buyerIdentity) === null || _a === void 0 ? void 0 : _a.countryCode)) {
246
+ next = await exports.cart.setBuyerIdentity(next.id, {
247
+ countryCode: await options.countryCode(),
248
+ ...(((_b = next.buyerIdentity) === null || _b === void 0 ? void 0 : _b.email) ? { email: next.buyerIdentity.email } : {}),
249
+ ...(options.customerAccessToken ? { customerAccessToken: options.customerAccessToken } : {}),
250
+ });
251
+ }
252
+ next = await exports.cart.addGiftCardCodes(next.id, codes);
253
+ return { cart: next, notApplied: giftCardCodesNotOnCart(next, codes) };
254
+ }
162
255
  //# sourceMappingURL=cart.js.map