@rebuy/rebuy 2.24.0 → 2.25.0-rc.2
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/gwp/getValidGwpProductIds.d.ts +8 -0
- package/dist/gwp/getValidGwpProductIds.d.ts.map +1 -0
- package/dist/gwp/hasUnsupportedRuleTypes.d.ts +7 -0
- package/dist/gwp/hasUnsupportedRuleTypes.d.ts.map +1 -0
- package/dist/gwp/index.d.ts +5 -0
- package/dist/gwp/index.d.ts.map +1 -0
- package/dist/gwp/index.js +43 -0
- package/dist/gwp/index.js.map +7 -0
- package/dist/gwp/index.mjs +20 -0
- package/dist/gwp/index.mjs.map +7 -0
- package/dist/gwp/shouldRemoveGift.d.ts +9 -0
- package/dist/gwp/shouldRemoveGift.d.ts.map +1 -0
- package/dist/gwp/types.d.ts +35 -0
- package/dist/gwp/types.d.ts.map +1 -0
- package/dist/index.js +887 -535
- package/dist/index.js.map +4 -4
- package/dist/index.mjs +886 -534
- package/dist/index.mjs.map +4 -4
- package/dist/pricing/amountToCents.d.ts +7 -0
- package/dist/pricing/amountToCents.d.ts.map +1 -0
- package/dist/pricing/computeCompareAtPrice.d.ts +10 -0
- package/dist/pricing/computeCompareAtPrice.d.ts.map +1 -0
- package/dist/pricing/computeDisplayPrice.d.ts +10 -0
- package/dist/pricing/computeDisplayPrice.d.ts.map +1 -0
- package/dist/pricing/index.d.ts +6 -0
- package/dist/pricing/index.d.ts.map +1 -0
- package/dist/pricing/index.js +79 -0
- package/dist/pricing/index.js.map +7 -0
- package/dist/pricing/index.mjs +56 -0
- package/dist/pricing/index.mjs.map +7 -0
- package/dist/pricing/priceVariant.d.ts +8 -0
- package/dist/pricing/priceVariant.d.ts.map +1 -0
- package/dist/pricing/types.d.ts +27 -0
- package/dist/pricing/types.d.ts.map +1 -0
- package/dist/routes.d.ts +36 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +41 -0
- package/dist/routes.js.map +7 -0
- package/dist/routes.mjs +20 -0
- package/dist/routes.mjs.map +7 -0
- package/dist/schema/checkout-and-beyond/index.js +332 -26
- package/dist/schema/checkout-and-beyond/index.js.map +4 -4
- package/dist/schema/checkout-and-beyond/index.mjs +332 -26
- package/dist/schema/checkout-and-beyond/index.mjs.map +4 -4
- package/dist/schema/smartCart.d.ts +189 -0
- package/dist/schema/smartCart.d.ts.map +1 -0
- package/dist/schema/user-config.js +48 -4
- package/dist/schema/user-config.js.map +4 -4
- package/dist/schema/user-config.mjs +48 -4
- package/dist/schema/user-config.mjs.map +4 -4
- package/dist/schema/userConfig.d.ts +44 -1
- package/dist/schema/userConfig.d.ts.map +1 -1
- package/dist/schema/widget-data.js +331 -27
- package/dist/schema/widget-data.js.map +4 -4
- package/dist/schema/widget-data.mjs +331 -27
- package/dist/schema/widget-data.mjs.map +4 -4
- package/dist/schema/widgetData.d.ts +12 -0
- package/dist/schema/widgetData.d.ts.map +1 -1
- package/dist/schema/widgets/checkout-and-beyond/banner.d.ts +2 -1
- package/dist/schema/widgets/checkout-and-beyond/banner.d.ts.map +1 -1
- package/dist/schema/widgets/checkout-and-beyond/progressBar.d.ts +132 -128
- package/dist/schema/widgets/checkout-and-beyond/progressBar.d.ts.map +1 -1
- package/dist/schema/widgets/checkout-and-beyond/root.d.ts +19 -0
- package/dist/schema/widgets/checkout-and-beyond/root.d.ts.map +1 -1
- package/dist/schema/widgets/checkout-and-beyond/text.d.ts +2 -23
- package/dist/schema/widgets/checkout-and-beyond/text.d.ts.map +1 -1
- package/dist/schema/widgets/checkout-and-beyond/utils.d.ts.map +1 -1
- package/dist/schema/widgets/contentBlock.d.ts +6 -0
- package/dist/schema/widgets/contentBlock.d.ts.map +1 -1
- package/dist/schema/widgets/rebuyButton.d.ts +6 -0
- package/dist/schema/widgets/rebuyButton.d.ts.map +1 -1
- package/dist/server/adsEngine.d.ts +31 -0
- package/dist/server/adsEngine.d.ts.map +1 -0
- package/dist/server/analytics.d.ts +26 -0
- package/dist/server/analytics.d.ts.map +1 -0
- package/dist/server/composeOffer.d.ts +11 -0
- package/dist/server/composeOffer.d.ts.map +1 -0
- package/dist/server/dataSourceResults.d.ts +17 -0
- package/dist/server/dataSourceResults.d.ts.map +1 -0
- package/dist/server/giftValidation.d.ts +11 -0
- package/dist/server/giftValidation.d.ts.map +1 -0
- package/dist/server/index.d.ts +10 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +2342 -0
- package/dist/server/index.js.map +7 -0
- package/dist/server/index.mjs +2319 -0
- package/dist/server/index.mjs.map +7 -0
- package/dist/server/monetizeOffers.d.ts +11 -0
- package/dist/server/monetizeOffers.d.ts.map +1 -0
- package/dist/server/shared.d.ts +119 -0
- package/dist/server/shared.d.ts.map +1 -0
- package/dist/server/userConfig.d.ts +8 -0
- package/dist/server/userConfig.d.ts.map +1 -0
- package/dist/server/widgetSettings.d.ts +16 -0
- package/dist/server/widgetSettings.d.ts.map +1 -0
- package/dist/transforms/contentBlockV1/convertContentBlockImageToV2.d.ts +3 -3
- package/dist/transforms/contentBlockV1/convertContentBlockTextToV2.d.ts +2 -2
- package/dist/transforms/contentBlockV1/convertContentBlockToV2.d.ts +2 -2
- package/dist/transforms/contentBlockV1/convertTextToTiptapParagraph.d.ts +1 -1
- package/dist/transforms/experiments/resolveExperiment.d.ts +20 -0
- package/dist/transforms/experiments/resolveExperiment.d.ts.map +1 -0
- package/dist/transforms/htmlToTiptap/buildDefaultTextStyleMark.d.ts +2 -2
- package/dist/transforms/htmlToTiptap/buildLinkMark.d.ts +1 -1
- package/dist/transforms/htmlToTiptap/closeTag.d.ts +1 -1
- package/dist/transforms/htmlToTiptap/flushParagraph.d.ts +1 -1
- package/dist/transforms/htmlToTiptap/htmlToTiptap.d.ts +2 -2
- package/dist/transforms/htmlToTiptap/isSkipping.d.ts +1 -1
- package/dist/transforms/htmlToTiptap/makeDoc.d.ts +2 -2
- package/dist/transforms/htmlToTiptap/makeParagraph.d.ts +1 -1
- package/dist/transforms/htmlToTiptap/openTag.d.ts +1 -1
- package/dist/transforms/htmlToTiptap/pushText.d.ts +1 -1
- package/dist/transforms/htmlToTiptap/types.d.ts +1 -1
- package/dist/transforms/index.d.ts +22 -12
- package/dist/transforms/index.d.ts.map +1 -1
- package/dist/transforms/index.js +841 -308
- package/dist/transforms/index.js.map +4 -4
- package/dist/transforms/index.mjs +841 -308
- package/dist/transforms/index.mjs.map +4 -4
- package/dist/transforms/isCABRootSection.d.ts +2 -1
- package/dist/transforms/isCABRootSection.d.ts.map +1 -1
- package/dist/transforms/lineItemEditorV1/convertLineItemEditorToV2.d.ts +4 -0
- package/dist/transforms/lineItemEditorV1/convertLineItemEditorToV2.d.ts.map +1 -0
- package/dist/transforms/lineItemEditorV1/switchLabels.d.ts +93 -0
- package/dist/transforms/lineItemEditorV1/switchLabels.d.ts.map +1 -0
- package/dist/transforms/lineItemEditorV1/types.d.ts +25 -0
- package/dist/transforms/lineItemEditorV1/types.d.ts.map +1 -0
- package/dist/transforms/normalizeTextContent.d.ts +7 -6
- package/dist/transforms/normalizeTextContent.d.ts.map +1 -1
- package/dist/transforms/normalizeTokens.d.ts.map +1 -1
- package/dist/transforms/offerV1/convertOfferToV2.d.ts +16 -0
- package/dist/transforms/offerV1/convertOfferToV2.d.ts.map +1 -0
- package/dist/transforms/offerV1/offerCard.d.ts +17 -0
- package/dist/transforms/offerV1/offerCard.d.ts.map +1 -0
- package/dist/transforms/offerV1/types.d.ts +84 -0
- package/dist/transforms/offerV1/types.d.ts.map +1 -0
- package/dist/transforms/progressBarV1/convertProgressBarToV2.d.ts +25 -0
- package/dist/transforms/progressBarV1/convertProgressBarToV2.d.ts.map +1 -0
- package/dist/transforms/progressBarV1/types.d.ts +42 -0
- package/dist/transforms/progressBarV1/types.d.ts.map +1 -0
- package/dist/transforms/smartCart/convertSmartCartProgressBarToV2.d.ts +17 -0
- package/dist/transforms/smartCart/convertSmartCartProgressBarToV2.d.ts.map +1 -0
- package/dist/transforms/smartCart/extractSmartCartBars.d.ts +15 -0
- package/dist/transforms/smartCart/extractSmartCartBars.d.ts.map +1 -0
- package/package.json +23 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type MatchedRule } from '../gwp/types';
|
|
2
|
+
/**
|
|
3
|
+
* The product ids a widget's matched rules currently qualify — ported from the React
|
|
4
|
+
* extension's `getValidGwpProductIds` (camelCased engine shape). A gift whose product is
|
|
5
|
+
* not in this set no longer qualifies and should be removed.
|
|
6
|
+
*/
|
|
7
|
+
export declare const getValidGwpProductIds: (matchedRules?: MatchedRule[]) => Set<number>;
|
|
8
|
+
//# sourceMappingURL=getValidGwpProductIds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getValidGwpProductIds.d.ts","sourceRoot":"","sources":["../../src/gwp/getValidGwpProductIds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,eAAc,WAAW,EAAO,KAAG,GAAG,CAAC,MAAM,CAO9E,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type GwpMetadata } from '../gwp/types';
|
|
2
|
+
/**
|
|
3
|
+
* Whether any matched OR unmatched rule uses an unsupported type — the bail signal: the gift's
|
|
4
|
+
* qualification can't be trusted, so keep it (never remove on uncertainty).
|
|
5
|
+
*/
|
|
6
|
+
export declare const hasUnsupportedRuleTypes: (metadata?: GwpMetadata | null) => boolean;
|
|
7
|
+
//# sourceMappingURL=hasUnsupportedRuleTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasUnsupportedRuleTypes.d.ts","sourceRoot":"","sources":["../../src/gwp/hasUnsupportedRuleTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,aAAa,CAAC;AAcjE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,WAAW,WAAW,GAAG,IAAI,KAAG,OACiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gwp/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/gwp/index.ts
|
|
21
|
+
var gwp_exports = {};
|
|
22
|
+
__export(gwp_exports, {
|
|
23
|
+
getValidGwpProductIds: () => getValidGwpProductIds,
|
|
24
|
+
hasUnsupportedRuleTypes: () => hasUnsupportedRuleTypes,
|
|
25
|
+
shouldRemoveGift: () => shouldRemoveGift
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(gwp_exports);
|
|
28
|
+
|
|
29
|
+
// src/gwp/getValidGwpProductIds.ts
|
|
30
|
+
var getValidGwpProductIds = (matchedRules = []) => new Set(
|
|
31
|
+
matchedRules.flatMap((rule) => rule.output ?? []).flatMap((output) => output.products ?? []).map((product) => Number(product.productId)).filter((id) => Number.isFinite(id))
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
// src/gwp/hasUnsupportedRuleTypes.ts
|
|
35
|
+
var UNSUPPORTED_RULE_TYPES = ["url", "order_tag"];
|
|
36
|
+
var ruleHasUnsupportedType = (rule) => (rule.logic ?? []).some(
|
|
37
|
+
(group) => (group.rules ?? []).some((item) => UNSUPPORTED_RULE_TYPES.includes(item.type ?? ""))
|
|
38
|
+
);
|
|
39
|
+
var hasUnsupportedRuleTypes = (metadata) => [...metadata?.matchedRules ?? [], ...metadata?.unmatchedRules ?? []].some(ruleHasUnsupportedType);
|
|
40
|
+
|
|
41
|
+
// src/gwp/shouldRemoveGift.ts
|
|
42
|
+
var shouldRemoveGift = (gift, validIds) => !validIds.has(gift.productId) || !gift.discounted && gift.cost > 0;
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/gwp/index.ts", "../../src/gwp/getValidGwpProductIds.ts", "../../src/gwp/hasUnsupportedRuleTypes.ts", "../../src/gwp/shouldRemoveGift.ts"],
|
|
4
|
+
"sourcesContent": ["export * from '~/gwp/getValidGwpProductIds';\nexport * from '~/gwp/hasUnsupportedRuleTypes';\nexport * from '~/gwp/shouldRemoveGift';\nexport * from '~/gwp/types';\n", "import { type MatchedRule } from '~/gwp/types';\n\n/**\n * The product ids a widget's matched rules currently qualify \u2014 ported from the React\n * extension's `getValidGwpProductIds` (camelCased engine shape). A gift whose product is\n * not in this set no longer qualifies and should be removed.\n */\nexport const getValidGwpProductIds = (matchedRules: MatchedRule[] = []): Set<number> =>\n new Set(\n matchedRules\n .flatMap((rule) => rule.output ?? [])\n .flatMap((output) => output.products ?? [])\n .map((product) => Number(product.productId))\n .filter((id) => Number.isFinite(id))\n );\n", "import { type GwpMetadata, type MatchedRule } from '~/gwp/types';\n\n/**\n * Rule types the engine can't evaluate correctly in the cart/data-source context (no page URL,\n * no order) \u2014 ported from the React extension. When a widget's rules use these, the matched output\n * is unreliable, so the validator must NOT remove the gift.\n */\nconst UNSUPPORTED_RULE_TYPES = ['url', 'order_tag'];\n\nconst ruleHasUnsupportedType = (rule: MatchedRule): boolean =>\n (rule.logic ?? []).some((group) =>\n (group.rules ?? []).some((item) => UNSUPPORTED_RULE_TYPES.includes(item.type ?? ''))\n );\n\n/**\n * Whether any matched OR unmatched rule uses an unsupported type \u2014 the bail signal: the gift's\n * qualification can't be trusted, so keep it (never remove on uncertainty).\n */\nexport const hasUnsupportedRuleTypes = (metadata?: GwpMetadata | null): boolean =>\n [...(metadata?.matchedRules ?? []), ...(metadata?.unmatchedRules ?? [])].some(ruleHasUnsupportedType);\n", "import { type GwpGift } from '~/gwp/types';\n\n/**\n * Whether a gift line should be removed: either its product no longer qualifies (\u2209 `validIds`),\n * OR it lost its Shopify Function discount (`!discounted && cost > 0`). The Function can't remove\n * a line it failed to discount, so the client must \u2014 this is the complete removal decision the\n * server returns as a receipt (see the rebuy-discount-architecture / GWP E2 notes).\n */\nexport const shouldRemoveGift = (\n gift: Pick<GwpGift, 'cost' | 'discounted' | 'productId'>,\n validIds: Set<number>\n): boolean => !validIds.has(gift.productId) || (!gift.discounted && gift.cost > 0);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOO,IAAM,wBAAwB,CAAC,eAA8B,CAAC,MACjE,IAAI;AAAA,EACA,aACK,QAAQ,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,EACnC,QAAQ,CAAC,WAAW,OAAO,YAAY,CAAC,CAAC,EACzC,IAAI,CAAC,YAAY,OAAO,QAAQ,SAAS,CAAC,EAC1C,OAAO,CAAC,OAAO,OAAO,SAAS,EAAE,CAAC;AAC3C;;;ACPJ,IAAM,yBAAyB,CAAC,OAAO,WAAW;AAElD,IAAM,yBAAyB,CAAC,UAC3B,KAAK,SAAS,CAAC,GAAG;AAAA,EAAK,CAAC,WACpB,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,uBAAuB,SAAS,KAAK,QAAQ,EAAE,CAAC;AACvF;AAMG,IAAM,0BAA0B,CAAC,aACpC,CAAC,GAAI,UAAU,gBAAgB,CAAC,GAAI,GAAI,UAAU,kBAAkB,CAAC,CAAE,EAAE,KAAK,sBAAsB;;;ACXjG,IAAM,mBAAmB,CAC5B,MACA,aACU,CAAC,SAAS,IAAI,KAAK,SAAS,KAAM,CAAC,KAAK,cAAc,KAAK,OAAO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/gwp/getValidGwpProductIds.ts
|
|
2
|
+
var getValidGwpProductIds = (matchedRules = []) => new Set(
|
|
3
|
+
matchedRules.flatMap((rule) => rule.output ?? []).flatMap((output) => output.products ?? []).map((product) => Number(product.productId)).filter((id) => Number.isFinite(id))
|
|
4
|
+
);
|
|
5
|
+
|
|
6
|
+
// src/gwp/hasUnsupportedRuleTypes.ts
|
|
7
|
+
var UNSUPPORTED_RULE_TYPES = ["url", "order_tag"];
|
|
8
|
+
var ruleHasUnsupportedType = (rule) => (rule.logic ?? []).some(
|
|
9
|
+
(group) => (group.rules ?? []).some((item) => UNSUPPORTED_RULE_TYPES.includes(item.type ?? ""))
|
|
10
|
+
);
|
|
11
|
+
var hasUnsupportedRuleTypes = (metadata) => [...metadata?.matchedRules ?? [], ...metadata?.unmatchedRules ?? []].some(ruleHasUnsupportedType);
|
|
12
|
+
|
|
13
|
+
// src/gwp/shouldRemoveGift.ts
|
|
14
|
+
var shouldRemoveGift = (gift, validIds) => !validIds.has(gift.productId) || !gift.discounted && gift.cost > 0;
|
|
15
|
+
export {
|
|
16
|
+
getValidGwpProductIds,
|
|
17
|
+
hasUnsupportedRuleTypes,
|
|
18
|
+
shouldRemoveGift
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/gwp/getValidGwpProductIds.ts", "../../src/gwp/hasUnsupportedRuleTypes.ts", "../../src/gwp/shouldRemoveGift.ts"],
|
|
4
|
+
"sourcesContent": ["import { type MatchedRule } from '~/gwp/types';\n\n/**\n * The product ids a widget's matched rules currently qualify \u2014 ported from the React\n * extension's `getValidGwpProductIds` (camelCased engine shape). A gift whose product is\n * not in this set no longer qualifies and should be removed.\n */\nexport const getValidGwpProductIds = (matchedRules: MatchedRule[] = []): Set<number> =>\n new Set(\n matchedRules\n .flatMap((rule) => rule.output ?? [])\n .flatMap((output) => output.products ?? [])\n .map((product) => Number(product.productId))\n .filter((id) => Number.isFinite(id))\n );\n", "import { type GwpMetadata, type MatchedRule } from '~/gwp/types';\n\n/**\n * Rule types the engine can't evaluate correctly in the cart/data-source context (no page URL,\n * no order) \u2014 ported from the React extension. When a widget's rules use these, the matched output\n * is unreliable, so the validator must NOT remove the gift.\n */\nconst UNSUPPORTED_RULE_TYPES = ['url', 'order_tag'];\n\nconst ruleHasUnsupportedType = (rule: MatchedRule): boolean =>\n (rule.logic ?? []).some((group) =>\n (group.rules ?? []).some((item) => UNSUPPORTED_RULE_TYPES.includes(item.type ?? ''))\n );\n\n/**\n * Whether any matched OR unmatched rule uses an unsupported type \u2014 the bail signal: the gift's\n * qualification can't be trusted, so keep it (never remove on uncertainty).\n */\nexport const hasUnsupportedRuleTypes = (metadata?: GwpMetadata | null): boolean =>\n [...(metadata?.matchedRules ?? []), ...(metadata?.unmatchedRules ?? [])].some(ruleHasUnsupportedType);\n", "import { type GwpGift } from '~/gwp/types';\n\n/**\n * Whether a gift line should be removed: either its product no longer qualifies (\u2209 `validIds`),\n * OR it lost its Shopify Function discount (`!discounted && cost > 0`). The Function can't remove\n * a line it failed to discount, so the client must \u2014 this is the complete removal decision the\n * server returns as a receipt (see the rebuy-discount-architecture / GWP E2 notes).\n */\nexport const shouldRemoveGift = (\n gift: Pick<GwpGift, 'cost' | 'discounted' | 'productId'>,\n validIds: Set<number>\n): boolean => !validIds.has(gift.productId) || (!gift.discounted && gift.cost > 0);\n"],
|
|
5
|
+
"mappings": ";AAOO,IAAM,wBAAwB,CAAC,eAA8B,CAAC,MACjE,IAAI;AAAA,EACA,aACK,QAAQ,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,EACnC,QAAQ,CAAC,WAAW,OAAO,YAAY,CAAC,CAAC,EACzC,IAAI,CAAC,YAAY,OAAO,QAAQ,SAAS,CAAC,EAC1C,OAAO,CAAC,OAAO,OAAO,SAAS,EAAE,CAAC;AAC3C;;;ACPJ,IAAM,yBAAyB,CAAC,OAAO,WAAW;AAElD,IAAM,yBAAyB,CAAC,UAC3B,KAAK,SAAS,CAAC,GAAG;AAAA,EAAK,CAAC,WACpB,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC,SAAS,uBAAuB,SAAS,KAAK,QAAQ,EAAE,CAAC;AACvF;AAMG,IAAM,0BAA0B,CAAC,aACpC,CAAC,GAAI,UAAU,gBAAgB,CAAC,GAAI,GAAI,UAAU,kBAAkB,CAAC,CAAE,EAAE,KAAK,sBAAsB;;;ACXjG,IAAM,mBAAmB,CAC5B,MACA,aACU,CAAC,SAAS,IAAI,KAAK,SAAS,KAAM,CAAC,KAAK,cAAc,KAAK,OAAO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type GwpGift } from '../gwp/types';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a gift line should be removed: either its product no longer qualifies (∉ `validIds`),
|
|
4
|
+
* OR it lost its Shopify Function discount (`!discounted && cost > 0`). The Function can't remove
|
|
5
|
+
* a line it failed to discount, so the client must — this is the complete removal decision the
|
|
6
|
+
* server returns as a receipt (see the rebuy-discount-architecture / GWP E2 notes).
|
|
7
|
+
*/
|
|
8
|
+
export declare const shouldRemoveGift: (gift: Pick<GwpGift, "cost" | "discounted" | "productId">, validIds: Set<number>) => boolean;
|
|
9
|
+
//# sourceMappingURL=shouldRemoveGift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shouldRemoveGift.d.ts","sourceRoot":"","sources":["../../src/gwp/shouldRemoveGift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GACzB,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC,EACxD,UAAU,GAAG,CAAC,MAAM,CAAC,KACtB,OAA+E,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** A gift-with-purchase cart line the client asks the server to validate. */
|
|
2
|
+
export type GwpGift = {
|
|
3
|
+
/** The line's total amount (market currency); a discounted gift is 0. */
|
|
4
|
+
cost: number;
|
|
5
|
+
/** Whether the Shopify Function discount is currently allocated to the line. */
|
|
6
|
+
discounted: boolean;
|
|
7
|
+
/** Shopify cart-line id to remove. */
|
|
8
|
+
lineId: string;
|
|
9
|
+
productId: number;
|
|
10
|
+
/** The Rebuy widget that added the gift (`_widget_id`). */
|
|
11
|
+
widgetId: number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* A rule the engine evaluated for a widget (`metadata.matchedRules` / `unmatchedRules`, camelCased).
|
|
15
|
+
* `output` carries the products that currently qualify; `logic` carries the rule conditions (used to
|
|
16
|
+
* detect unsupported types). Loosely typed because the engine payload varies.
|
|
17
|
+
*/
|
|
18
|
+
export type MatchedRule = {
|
|
19
|
+
logic?: {
|
|
20
|
+
rules?: {
|
|
21
|
+
type?: string;
|
|
22
|
+
}[];
|
|
23
|
+
}[];
|
|
24
|
+
output?: {
|
|
25
|
+
products?: {
|
|
26
|
+
productId?: number | string;
|
|
27
|
+
}[];
|
|
28
|
+
}[];
|
|
29
|
+
};
|
|
30
|
+
/** The engine metadata block the GWP validator reads. */
|
|
31
|
+
export type GwpMetadata = {
|
|
32
|
+
matchedRules?: MatchedRule[];
|
|
33
|
+
unmatchedRules?: MatchedRule[];
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gwp/types.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,MAAM,OAAO,GAAG;IAClB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,CAAC;IAC1C,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,CAAC;CAC/D,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,WAAW,GAAG;IACtB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;CAClC,CAAC"}
|