@teleporthq/teleport-plugin-next-workflows 0.43.59 → 0.43.60
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/__tests__/ai-chat-tool-dispatch-segments.test.ts +110 -0
- package/__tests__/ai-custom-prompt-json-mode.test.ts +78 -0
- package/__tests__/cart-get-total-storefront-tax.test.ts +5 -0
- package/__tests__/controlled-select-plugin.test.ts +170 -0
- package/__tests__/controlled-select.ts +215 -0
- package/dist/cjs/controlled-select.d.ts +23 -0
- package/dist/cjs/controlled-select.d.ts.map +1 -0
- package/dist/cjs/controlled-select.js +169 -0
- package/dist/cjs/controlled-select.js.map +1 -0
- package/dist/cjs/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/cjs/invoice/api-routes-code.js +19 -5
- package/dist/cjs/invoice/api-routes-code.js.map +1 -1
- package/dist/cjs/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
- package/dist/cjs/nodes/ai/ai-custom-prompt.js +4 -1
- package/dist/cjs/nodes/ai/ai-custom-prompt.js.map +1 -1
- package/dist/cjs/nodes/cart/cart-add-item.d.ts.map +1 -1
- package/dist/cjs/nodes/cart/cart-add-item.js +18 -0
- package/dist/cjs/nodes/cart/cart-add-item.js.map +1 -1
- package/dist/cjs/nodes/cart/cart-clear.d.ts.map +1 -1
- package/dist/cjs/nodes/cart/cart-clear.js +4 -0
- package/dist/cjs/nodes/cart/cart-clear.js.map +1 -1
- package/dist/cjs/nodes/cart/cart-get-total.d.ts.map +1 -1
- package/dist/cjs/nodes/cart/cart-get-total.js +36 -0
- package/dist/cjs/nodes/cart/cart-get-total.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/workflow-component-plugin.d.ts.map +1 -1
- package/dist/cjs/workflow-component-plugin.js +5 -0
- package/dist/cjs/workflow-component-plugin.js.map +1 -1
- package/dist/esm/controlled-select.d.ts +23 -0
- package/dist/esm/controlled-select.d.ts.map +1 -0
- package/dist/esm/controlled-select.js +140 -0
- package/dist/esm/controlled-select.js.map +1 -0
- package/dist/esm/invoice/api-routes-code.d.ts.map +1 -1
- package/dist/esm/invoice/api-routes-code.js +19 -5
- package/dist/esm/invoice/api-routes-code.js.map +1 -1
- package/dist/esm/nodes/ai/ai-custom-prompt.d.ts.map +1 -1
- package/dist/esm/nodes/ai/ai-custom-prompt.js +4 -1
- package/dist/esm/nodes/ai/ai-custom-prompt.js.map +1 -1
- package/dist/esm/nodes/cart/cart-add-item.d.ts.map +1 -1
- package/dist/esm/nodes/cart/cart-add-item.js +18 -0
- package/dist/esm/nodes/cart/cart-add-item.js.map +1 -1
- package/dist/esm/nodes/cart/cart-clear.d.ts.map +1 -1
- package/dist/esm/nodes/cart/cart-clear.js +4 -0
- package/dist/esm/nodes/cart/cart-clear.js.map +1 -1
- package/dist/esm/nodes/cart/cart-get-total.d.ts.map +1 -1
- package/dist/esm/nodes/cart/cart-get-total.js +36 -0
- package/dist/esm/nodes/cart/cart-get-total.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/workflow-component-plugin.d.ts.map +1 -1
- package/dist/esm/workflow-component-plugin.js +5 -0
- package/dist/esm/workflow-component-plugin.js.map +1 -1
- package/package.json +4 -4
- package/src/controlled-select.ts +167 -0
- package/src/invoice/api-routes-code.ts +19 -5
- package/src/nodes/ai/ai-custom-prompt.ts +4 -1
- package/src/nodes/cart/cart-add-item.ts +18 -0
- package/src/nodes/cart/cart-clear.ts +4 -0
- package/src/nodes/cart/cart-get-total.ts +35 -0
- package/src/workflow-component-plugin.ts +9 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.restoreControlledSelectValue = exports.readBoundStateName = exports.collectWrittenStateProperties = void 0;
|
|
27
|
+
const types = __importStar(require("@babel/types"));
|
|
28
|
+
/**
|
|
29
|
+
* Restoring `value=` on a `<select>` whose only change handler comes from a
|
|
30
|
+
* workflow.
|
|
31
|
+
*
|
|
32
|
+
* ## The defect
|
|
33
|
+
*
|
|
34
|
+
* `makeControlUncontrolledWhenNoChangeHandler` (teleport-plugin-common's
|
|
35
|
+
* node-to-jsx pass) demotes `value` → `defaultValue` on any form control that
|
|
36
|
+
* carries no change handler. That is right for an entity-bound display field,
|
|
37
|
+
* which React would otherwise FREEZE. But it runs while the JSX is generated,
|
|
38
|
+
* and workflow triggers are attached afterwards, by this plugin — so a control
|
|
39
|
+
* whose handler comes from a workflow was demoted no matter how legitimately
|
|
40
|
+
* controlled it is. (The helper's own contract says it "must run AFTER all
|
|
41
|
+
* attributes and event handlers have been added to the tag"; nothing was
|
|
42
|
+
* enforcing that across the plugin boundary.)
|
|
43
|
+
*
|
|
44
|
+
* `defaultValue` is read once, at mount. The bound state then has no route to
|
|
45
|
+
* the DOM, so a `<select>` whose state is established AFTER hydration — from a
|
|
46
|
+
* URL search param, say — keeps showing whatever the server rendered while the
|
|
47
|
+
* rest of the page follows the real value. The products-list sort shipped that
|
|
48
|
+
* way: `/products?sortBy=price-asc` listed products by the discounted price
|
|
49
|
+
* under a dropdown still reading "Name (A-Z)".
|
|
50
|
+
*
|
|
51
|
+
* ## Why only `<select>`, and only with proof
|
|
52
|
+
*
|
|
53
|
+
* A controlled control is frozen unless its handler writes the state its value
|
|
54
|
+
* reads. Two conditions make that safe here, and both are checked:
|
|
55
|
+
*
|
|
56
|
+
* 1. **It is a `<select>`.** A select changes in discrete, deliberate steps, so
|
|
57
|
+
* a controlled one survives the workflow being async — a late state write
|
|
58
|
+
* costs at most a frame. A text `<input>`/`<textarea>` accumulates one
|
|
59
|
+
* keystroke at a time and needs the state written back SYNCHRONOUSLY on
|
|
60
|
+
* every one; a workflow is an async pipeline and cannot promise that, and a
|
|
61
|
+
* controlled input whose state lags drops characters and jumps the caret.
|
|
62
|
+
* That is a far worse defect than a stale initial value, so text controls
|
|
63
|
+
* stay uncontrolled. `checked` is left alone for the same reason: a checkbox
|
|
64
|
+
* that bounces back before an async handler resolves reads as broken.
|
|
65
|
+
*
|
|
66
|
+
* 2. **The handler demonstrably writes that state.** The bound value has to be
|
|
67
|
+
* a bare identifier (a state name — `value={props.item?.category}` is an
|
|
68
|
+
* entity field with no state behind it), and one of the workflows on this
|
|
69
|
+
* element's `onChange` has to carry a state-update node targeting it. A
|
|
70
|
+
* select whose change handler does something unrelated keeps `defaultValue`
|
|
71
|
+
* and stays uncontrolled, exactly as before.
|
|
72
|
+
*/
|
|
73
|
+
/** The prop that makes a `<select>` controllable. */
|
|
74
|
+
const CHANGE_PROP = 'onChange';
|
|
75
|
+
/**
|
|
76
|
+
* Node types that write a page/global state property.
|
|
77
|
+
*
|
|
78
|
+
* `state-batch-update` keeps its targets in `config.updates[].key` rather than
|
|
79
|
+
* `config.property`, so both shapes are read.
|
|
80
|
+
*/
|
|
81
|
+
const STATE_WRITE_NODE_TYPES = new Set([
|
|
82
|
+
'state-update-local-state',
|
|
83
|
+
'state-update-global-state',
|
|
84
|
+
'state-batch-update',
|
|
85
|
+
]);
|
|
86
|
+
const readAttribute = (openingElement, name) => {
|
|
87
|
+
const index = openingElement.attributes.findIndex((attr) => types.isJSXAttribute(attr) && types.isJSXIdentifier(attr.name) && attr.name.name === name);
|
|
88
|
+
return index === -1
|
|
89
|
+
? null
|
|
90
|
+
: { attr: openingElement.attributes[index], index };
|
|
91
|
+
};
|
|
92
|
+
/** Every state property a workflow's graph writes. */
|
|
93
|
+
const collectWrittenStateProperties = (workflow) => {
|
|
94
|
+
const written = new Set();
|
|
95
|
+
const nodes = Array.isArray(workflow === null || workflow === void 0 ? void 0 : workflow.nodes) ? workflow.nodes : [];
|
|
96
|
+
for (const node of nodes) {
|
|
97
|
+
if (!node || !STATE_WRITE_NODE_TYPES.has(node.type)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const config = (node.config || {});
|
|
101
|
+
if (typeof config.property === 'string' && config.property.length > 0) {
|
|
102
|
+
written.add(config.property);
|
|
103
|
+
}
|
|
104
|
+
const updates = config.updates;
|
|
105
|
+
if (Array.isArray(updates)) {
|
|
106
|
+
for (const update of updates) {
|
|
107
|
+
const key = update === null || update === void 0 ? void 0 : update.key;
|
|
108
|
+
if (typeof key === 'string' && key.length > 0) {
|
|
109
|
+
written.add(key);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return written;
|
|
115
|
+
};
|
|
116
|
+
exports.collectWrittenStateProperties = collectWrittenStateProperties;
|
|
117
|
+
/**
|
|
118
|
+
* The state name a `defaultValue` binding reads, or `null` when it is not a
|
|
119
|
+
* plain state reference.
|
|
120
|
+
*
|
|
121
|
+
* Only a bare identifier counts. `defaultValue={props.item?.category}` is an
|
|
122
|
+
* entity column with no state mirror — the very case the demotion exists for —
|
|
123
|
+
* and a member expression can never be matched against a state-update target
|
|
124
|
+
* with any confidence.
|
|
125
|
+
*/
|
|
126
|
+
const readBoundStateName = (attr) => {
|
|
127
|
+
if (!attr.value || !types.isJSXExpressionContainer(attr.value)) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
const expression = attr.value.expression;
|
|
131
|
+
return types.isIdentifier(expression) ? expression.name : null;
|
|
132
|
+
};
|
|
133
|
+
exports.readBoundStateName = readBoundStateName;
|
|
134
|
+
/**
|
|
135
|
+
* Turns `defaultValue` back into `value` on a `<select>` that a workflow makes
|
|
136
|
+
* genuinely controlled. Mutates the opening element in place; idempotent, and a
|
|
137
|
+
* no-op for every element that does not meet BOTH conditions above.
|
|
138
|
+
*
|
|
139
|
+
* @param workflows The workflows wired to this element's `onChange`.
|
|
140
|
+
*/
|
|
141
|
+
const restoreControlledSelectValue = (openingElement, workflows) => {
|
|
142
|
+
if (!types.isJSXIdentifier(openingElement.name) || openingElement.name.name !== 'select') {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (!readAttribute(openingElement, CHANGE_PROP)) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const defaultValue = readAttribute(openingElement, 'defaultValue');
|
|
149
|
+
if (!defaultValue) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
// Already controlled: drop the stale `defaultValue` rather than shipping both,
|
|
153
|
+
// which React warns about and resolves unpredictably.
|
|
154
|
+
if (readAttribute(openingElement, 'value')) {
|
|
155
|
+
openingElement.attributes.splice(defaultValue.index, 1);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const stateName = (0, exports.readBoundStateName)(defaultValue.attr);
|
|
159
|
+
if (!stateName) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const writesTheBoundState = workflows.some((workflow) => (0, exports.collectWrittenStateProperties)(workflow).has(stateName));
|
|
163
|
+
if (!writesTheBoundState) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
defaultValue.attr.name = types.jsxIdentifier('value');
|
|
167
|
+
};
|
|
168
|
+
exports.restoreControlledSelectValue = restoreControlledSelectValue;
|
|
169
|
+
//# sourceMappingURL=controlled-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlled-select.js","sourceRoot":"","sources":["../../src/controlled-select.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-routes-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/api-routes-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,eAAO,MAAM,gCAAgC,aAAc,mBAAmB,KAAG,
|
|
1
|
+
{"version":3,"file":"api-routes-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/api-routes-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,eAAO,MAAM,gCAAgC,aAAc,mBAAmB,KAAG,MAonBhF,CAAA;AAED,eAAO,MAAM,2BAA2B,QAAO,MAsD9C,CAAA"}
|
|
@@ -316,16 +316,30 @@ module.exports = async function handler(req, res) {
|
|
|
316
316
|
grossLineSum += itemTotal;
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
-
var discountAmount = 0;
|
|
320
|
-
if (SHOW_DISCOUNT && body.discountAmount) {
|
|
321
|
-
discountAmount = Number(body.discountAmount) || 0;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
319
|
// Hydrated order row (or \`{}\` for a fully body-driven call), read before the
|
|
325
320
|
// totals below need it. \`orderRow\` further down is the same object under a
|
|
326
321
|
// name the customer/payment fallbacks use.
|
|
327
322
|
var orderShippingSource = hydratedOrder || {};
|
|
328
323
|
|
|
324
|
+
// Voucher discount.
|
|
325
|
+
//
|
|
326
|
+
// A discount STORED ON THE ORDER is money the buyer was not charged, so it
|
|
327
|
+
// is subtracted whatever \`SHOW_DISCOUNT\` says — that flag governs whether
|
|
328
|
+
// the template renders a discount ROW, and honouring it here would print a
|
|
329
|
+
// total larger than the card was debited. \`SHOW_DISCOUNT\` still gates a
|
|
330
|
+
// BODY-supplied amount, which is the manual/ad-hoc path a merchant opts
|
|
331
|
+
// into.
|
|
332
|
+
//
|
|
333
|
+
// The payment webhook calls this route with just an \`orderId\`, so the
|
|
334
|
+
// order row — not the body — is the usual source.
|
|
335
|
+
var discountAmount = 0;
|
|
336
|
+
if (SHOW_DISCOUNT && body.discountAmount != null && body.discountAmount !== '') {
|
|
337
|
+
discountAmount = Number(body.discountAmount) || 0;
|
|
338
|
+
} else if (orderShippingSource.discount_amount != null) {
|
|
339
|
+
discountAmount = Number(orderShippingSource.discount_amount) || 0;
|
|
340
|
+
}
|
|
341
|
+
if (!(discountAmount > 0)) { discountAmount = 0; }
|
|
342
|
+
|
|
329
343
|
var taxRate = body.taxRate != null ? Number(body.taxRate) : DEFAULT_TAX_RATE;
|
|
330
344
|
var subtotal;
|
|
331
345
|
var taxAmount = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-routes-code.js","sourceRoot":"","sources":["../../../src/invoice/api-routes-code.ts"],"names":[],"mappings":";;;AAEO,MAAM,gCAAgC,GAAG,CAAC,QAA6B,EAAU,EAAE;;IACxF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,IAAI,MAAM,CAAA;IAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAA;IACnD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAA;IAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,KAAK,KAAK,CAAA;IAC7D,MAAM,YAAY,GAAG,CAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,OAAO,MAAK,IAAI,CAAA;IAC7D,MAAM,oBAAoB,GAAG,CAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,QAAQ;QACtD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAA;IAEV,OAAO;;;;;;;;;EASP,YAAY,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,CAAC,EAAE;;uBAEnE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;yBACpB,cAAc;;sBAEjB,YAAY;8BACJ,kBAAkB;0BACtB,oBAAoB
|
|
1
|
+
{"version":3,"file":"api-routes-code.js","sourceRoot":"","sources":["../../../src/invoice/api-routes-code.ts"],"names":[],"mappings":";;;AAEO,MAAM,gCAAgC,GAAG,CAAC,QAA6B,EAAU,EAAE;;IACxF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,IAAI,MAAM,CAAA;IAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAA;IACnD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAA;IAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,KAAK,KAAK,CAAA;IAC7D,MAAM,YAAY,GAAG,CAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,OAAO,MAAK,IAAI,CAAA;IAC7D,MAAM,oBAAoB,GAAG,CAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,QAAQ;QACtD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAA;IAEV,OAAO;;;;;;;;;EASP,YAAY,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,CAAC,EAAE;;uBAEnE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;yBACpB,cAAc;;sBAEjB,YAAY;8BACJ,kBAAkB;0BACtB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkiB5C,YAAY;QACV,CAAC,CAAC;;;;;;;;;;;;;;;CAeL;QACG,CAAC,CAAC;;CAGN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCC,CAAA;AACD,CAAC,CAAA;AApnBY,QAAA,gCAAgC,oCAonB5C;AAEM,MAAM,2BAA2B,GAAG,GAAW,EAAE;IACtD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDR,CAAA;AACD,CAAC,CAAA;AAtDY,QAAA,2BAA2B,+BAsDvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-custom-prompt.d.ts","sourceRoot":"","sources":["../../../../src/nodes/ai/ai-custom-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"ai-custom-prompt.d.ts","sourceRoot":"","sources":["../../../../src/nodes/ai/ai-custom-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAoF/C,eAAO,MAAM,cAAc,EAAE,oBAU5B,CAAA"}
|
|
@@ -44,7 +44,10 @@ async function ai_custom_prompt(config, context, streamCallback) {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
try {
|
|
47
|
-
|
|
47
|
+
// Streaming above never asks for JSON mode: a streamed reply is rendered
|
|
48
|
+
// token by token, and the providers that support the flag reject it
|
|
49
|
+
// together with `stream`.
|
|
50
|
+
const result = await __ai_callProvider(Object.assign(Object.assign({}, callParams), { jsonMode: config.jsonMode === true }));
|
|
48
51
|
return {
|
|
49
52
|
response: result.content,
|
|
50
53
|
model,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-custom-prompt.js","sourceRoot":"","sources":["../../../../src/nodes/ai/ai-custom-prompt.ts"],"names":[],"mappings":";;;AACA,2DAI4B;AAa5B,KAAK,UAAU,gBAAgB,CAC7B,MAAW,EACX,OAAgC,EAChC,cAAoB;IAEpB,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACnD,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;KAC9E;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAA;IACtC,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAA;IAC7E,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAA;IACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,CAAC,EAAE;QAClD,SAAS,GAAG,CAAC,CAAA;KACd;IAED,IAAI,KAAK,CAAA;IACT,IAAI;QACF,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KACxC;IAAC,OAAO,GAAQ,EAAE;QACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAA;KAC3E;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC7C,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAE1D,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClG,IAAI,aAAa,KAAK,EAAE,EAAE;QACxB,aAAa,GAAG,SAAS,CAAA;KAC1B;IAED,MAAM,UAAU,GAAG;QACjB,QAAQ;QACR,KAAK;QACL,KAAK;QACL,aAAa;QACb,WAAW,EAAE,MAAM;QACnB,WAAW;QACX,SAAS;KACV,CAAA;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,cAAc,EAAE;QACtC,IAAI;YACF,OAAO,MAAM,wBAAwB,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;SACzE;QAAC,OAAO,GAAQ,EAAE;YACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;SACpF;KACF;IAED,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,iBAAiB,iCAAM,UAAU,KAAE,QAAQ,EAAE,KAAK,IAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"ai-custom-prompt.js","sourceRoot":"","sources":["../../../../src/nodes/ai/ai-custom-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-add-item.d.ts","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-add-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"cart-add-item.d.ts","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-add-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAsHhE,eAAO,MAAM,WAAW,EAAE,oBAMzB,CAAA"}
|
|
@@ -14,6 +14,13 @@ async function cart_add_item(config) {
|
|
|
14
14
|
const currency = config.currency || null;
|
|
15
15
|
const currencySymbol = config.currencySymbol || config.currency_symbol || null;
|
|
16
16
|
const slug = config.slug || null;
|
|
17
|
+
// The per-product discount behind `price`, snapshotted onto the line so the
|
|
18
|
+
// order can record what was given away. `price` is ALREADY the discounted net
|
|
19
|
+
// price, so nothing here takes part in any total.
|
|
20
|
+
const originalPrice = config.originalPrice != null ? Number(config.originalPrice) : null;
|
|
21
|
+
const discountType = config.discountType || null;
|
|
22
|
+
const discountValue = config.discountValue != null ? Number(config.discountValue) : null;
|
|
23
|
+
const discountAmount = config.discountAmount != null ? Number(config.discountAmount) : 0;
|
|
17
24
|
// Per-product cap is published by `EcommerceProvider` to localStorage so
|
|
18
25
|
// workflow handlers (which run outside React) can enforce the same limit
|
|
19
26
|
// as the in-context `addToCart` / `updateItemQuantity` callbacks.
|
|
@@ -57,6 +64,13 @@ async function cart_add_item(config) {
|
|
|
57
64
|
if (slug) {
|
|
58
65
|
cart[existingIndex].slug = slug;
|
|
59
66
|
}
|
|
67
|
+
// Re-stamped unconditionally, unlike the fields above: a discount that has
|
|
68
|
+
// just EXPIRED must clear the line's markdown, and `0` / `null` are the
|
|
69
|
+
// values that say so — a truthiness guard would keep the stale saving.
|
|
70
|
+
cart[existingIndex].originalPrice = originalPrice;
|
|
71
|
+
cart[existingIndex].discountType = discountType;
|
|
72
|
+
cart[existingIndex].discountValue = discountValue;
|
|
73
|
+
cart[existingIndex].discountAmount = discountAmount;
|
|
60
74
|
localStorage.setItem('workflow_cart', JSON.stringify(cart));
|
|
61
75
|
if (typeof window !== 'undefined') {
|
|
62
76
|
window.dispatchEvent(new CustomEvent('teleport:cart-changed'));
|
|
@@ -83,6 +97,10 @@ async function cart_add_item(config) {
|
|
|
83
97
|
currency,
|
|
84
98
|
currencySymbol,
|
|
85
99
|
slug,
|
|
100
|
+
originalPrice,
|
|
101
|
+
discountType,
|
|
102
|
+
discountValue,
|
|
103
|
+
discountAmount,
|
|
86
104
|
};
|
|
87
105
|
cart.push(newItem);
|
|
88
106
|
localStorage.setItem('workflow_cart', JSON.stringify(cart));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-add-item.js","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-add-item.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,KAAK,UAAU,aAAa,CAAC,MAAW;IACtC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAA;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAA;IAC1C,yEAAyE;IACzE,mEAAmE;IACnE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAA;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAA;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAA;IACxC,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,CAAA;IAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"cart-add-item.js","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-add-item.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-clear.d.ts","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-clear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"cart-clear.d.ts","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-clear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAyDhE,eAAO,MAAM,SAAS,EAAE,oBAMvB,CAAA"}
|
|
@@ -36,6 +36,9 @@ async function cart_clear() {
|
|
|
36
36
|
// tell "just checked out" apart from "first visit, restore my cart"
|
|
37
37
|
// and skip re-hydrating while the sync below is still in flight.
|
|
38
38
|
localStorage.setItem('workflow_cart_cleared_at', String(Date.now()));
|
|
39
|
+
// An applied voucher belongs to the cart that is being emptied — after
|
|
40
|
+
// a completed checkout it must not carry over to the next order.
|
|
41
|
+
localStorage.removeItem('workflow_voucher');
|
|
39
42
|
const sessionId = localStorage.getItem('workflow_cart_session_id') || null;
|
|
40
43
|
fetch('/api/cart/sync', {
|
|
41
44
|
method: 'POST',
|
|
@@ -47,6 +50,7 @@ async function cart_clear() {
|
|
|
47
50
|
/* localStorage or fetch unavailable — local clear already succeeded */
|
|
48
51
|
}
|
|
49
52
|
window.dispatchEvent(new CustomEvent('teleport:cart-changed'));
|
|
53
|
+
window.dispatchEvent(new CustomEvent('teleport:voucher-changed'));
|
|
50
54
|
}
|
|
51
55
|
return { success: true };
|
|
52
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-clear.js","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-clear.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;QAEzD,wDAAwD;QACxD,EAAE;QACF,iEAAiE;QACjE,6DAA6D;QAC7D,qEAAqE;QACrE,kEAAkE;QAClE,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,uCAAuC;QACvC,EAAE;QACF,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,uEAAuE;QACvE,0EAA0E;QAC1E,kEAAkE;QAClE,6BAA6B;QAC7B,EAAE;QACF,wEAAwE;QACxE,2EAA2E;QAC3E,uEAAuE;QACvE,YAAY;QACZ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI;gBACF,gEAAgE;gBAChE,oEAAoE;gBACpE,oEAAoE;gBACpE,iEAAiE;gBACjE,YAAY,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;gBACpE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAA;gBAC1E,KAAK,CAAC,gBAAgB,EAAE;oBACtB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;iBAC/C,CAAC,CAAC,KAAK,CAAC,cAAa,CAAC,CAAC,CAAA;aACzB;YAAC,OAAO,MAAM,EAAE;gBACf,uEAAuE;aACxE;YACD,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"cart-clear.js","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-clear.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;QAEzD,wDAAwD;QACxD,EAAE;QACF,iEAAiE;QACjE,6DAA6D;QAC7D,qEAAqE;QACrE,kEAAkE;QAClE,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,uCAAuC;QACvC,EAAE;QACF,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,uEAAuE;QACvE,0EAA0E;QAC1E,kEAAkE;QAClE,6BAA6B;QAC7B,EAAE;QACF,wEAAwE;QACxE,2EAA2E;QAC3E,uEAAuE;QACvE,YAAY;QACZ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,IAAI;gBACF,gEAAgE;gBAChE,oEAAoE;gBACpE,oEAAoE;gBACpE,iEAAiE;gBACjE,YAAY,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;gBACpE,uEAAuE;gBACvE,iEAAiE;gBACjE,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;gBAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAA;gBAC1E,KAAK,CAAC,gBAAgB,EAAE;oBACtB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;iBAC/C,CAAC,CAAC,KAAK,CAAC,cAAa,CAAC,CAAC,CAAA;aACzB;YAAC,OAAO,MAAM,EAAE;gBACf,uEAAuE;aACxE;YACD,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAA;YAC9D,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAA;SAClE;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;KACzB;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAA;KACzD;AACH,CAAC;AACY,QAAA,SAAS,GAAyB;IAC7C,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAA;IACpC,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-get-total.d.ts","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-get-total.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"cart-get-total.d.ts","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-get-total.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA4JhE,eAAO,MAAM,YAAY,EAAE,oBAM1B,CAAA"}
|
|
@@ -30,6 +30,25 @@ async function cart_get_total() {
|
|
|
30
30
|
// storefronts exported before storefront tax existed, which correctly
|
|
31
31
|
// resolves to "no tax".
|
|
32
32
|
let storefrontTaxRate = 0;
|
|
33
|
+
// The voucher the shopper applied, mirrored from the same localStorage the
|
|
34
|
+
// storefront provider reads. The place-order workflow uses ONLY its `id`,
|
|
35
|
+
// to re-read the row from the database — this copy is never trusted for
|
|
36
|
+
// pricing, because the merchant can edit or disable a voucher after it was
|
|
37
|
+
// applied. Absent on a storefront exported before vouchers existed, which
|
|
38
|
+
// correctly resolves to "no voucher".
|
|
39
|
+
let voucher = null;
|
|
40
|
+
try {
|
|
41
|
+
const voucherRaw = localStorage.getItem('workflow_voucher');
|
|
42
|
+
if (voucherRaw) {
|
|
43
|
+
const parsedVoucher = JSON.parse(voucherRaw);
|
|
44
|
+
if (parsedVoucher && typeof parsedVoucher === 'object' && parsedVoucher.code) {
|
|
45
|
+
voucher = parsedVoucher;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (_voucherErr) {
|
|
50
|
+
/* ignore — malformed or unavailable storage reads as no voucher */
|
|
51
|
+
}
|
|
33
52
|
try {
|
|
34
53
|
const settingsRaw = localStorage.getItem('workflow_cart_settings');
|
|
35
54
|
if (settingsRaw) {
|
|
@@ -65,12 +84,23 @@ async function cart_get_total() {
|
|
|
65
84
|
let net = 0;
|
|
66
85
|
let gross = 0;
|
|
67
86
|
let itemCount = 0;
|
|
87
|
+
// What the per-product discounts took off this cart, NET. Purely
|
|
88
|
+
// informational: the line prices below are ALREADY marked down, so this is
|
|
89
|
+
// never subtracted from anything — it is what the order row records as
|
|
90
|
+
// `product_discount_amount` for reporting.
|
|
91
|
+
let productDiscount = 0;
|
|
68
92
|
for (const item of cart) {
|
|
69
93
|
const qty = item.quantity || 1;
|
|
70
94
|
const price = item.price || 0;
|
|
71
95
|
net += qty * price;
|
|
72
96
|
gross += qty * grossUnitPrice(price);
|
|
73
97
|
itemCount += qty;
|
|
98
|
+
// Rounded per UNIT before multiplying, matching the order line's own
|
|
99
|
+
// arithmetic so the two agree to the cent.
|
|
100
|
+
const unitDiscount = Number(item.discountAmount);
|
|
101
|
+
if (isFinite(unitDiscount) && unitDiscount > 0) {
|
|
102
|
+
productDiscount += qty * round(unitDiscount);
|
|
103
|
+
}
|
|
74
104
|
}
|
|
75
105
|
const roundedGross = round(gross);
|
|
76
106
|
return {
|
|
@@ -95,8 +125,12 @@ async function cart_get_total() {
|
|
|
95
125
|
// rounding, same source of truth.
|
|
96
126
|
total: roundedGross,
|
|
97
127
|
itemCount,
|
|
128
|
+
// NET sum of the per-product markdowns already reflected in the prices
|
|
129
|
+
// above. Recorded on the order for reporting; never subtracted again.
|
|
130
|
+
productDiscountTotal: round(productDiscount),
|
|
98
131
|
deliveryConfig,
|
|
99
132
|
taxConfig: { storefrontTaxRate },
|
|
133
|
+
voucher,
|
|
100
134
|
};
|
|
101
135
|
}
|
|
102
136
|
catch (_err) {
|
|
@@ -105,8 +139,10 @@ async function cart_get_total() {
|
|
|
105
139
|
tax: 0,
|
|
106
140
|
total: 0,
|
|
107
141
|
itemCount: 0,
|
|
142
|
+
productDiscountTotal: 0,
|
|
108
143
|
deliveryConfig: null,
|
|
109
144
|
taxConfig: { storefrontTaxRate: 0 },
|
|
145
|
+
voucher: null,
|
|
110
146
|
};
|
|
111
147
|
}
|
|
112
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-get-total.js","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-get-total.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,KAAK,UAAU,cAAc;IAC3B,IAAI;QACF,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QACjD,MAAM,IAAI,GAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAE9C,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,sEAAsE;QACtE,gDAAgD;QAChD,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,gCAAgC;QAChC,EAAE;QACF,2EAA2E;QAC3E,uEAAuE;QACvE,oEAAoE;QACpE,2EAA2E;QAC3E,wEAAwE;QACxE,uEAAuE;QACvE,qBAAqB;QACrB,IAAI,cAAc,GAMP,IAAI,CAAA;QACf,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,sEAAsE;QACtE,wBAAwB;QACxB,IAAI,iBAAiB,GAAG,CAAC,CAAA;QACzB,IAAI;YACF,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;YAClE,IAAI,WAAW,EAAE;gBACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;gBACtC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,EAAE;oBACjE,cAAc,GAAG;wBACf,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC;wBAC/D,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB;wBAChE,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC;qBAChF,CAAA;oBACD,uDAAuD;oBACvD,sDAAsD;oBACtD,IAAI,OAAO,MAAM,CAAC,cAAc,CAAC,eAAe,KAAK,SAAS,EAAE;wBAC9D,cAAc,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,eAAe,CAAA;qBACvE;oBACD,IAAI,OAAO,MAAM,CAAC,cAAc,CAAC,kBAAkB,KAAK,SAAS,EAAE;wBACjE,cAAc,CAAC,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAA;qBAC7E;iBACF;gBACD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;oBAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;oBAC7D,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;iBAC5E;aACF;SACF;QAAC,OAAO,YAAY,EAAE;YACrB,0DAA0D;SAC3D;QAED,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACtD,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE,CACvC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAE9E,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,SAAS,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"cart-get-total.js","sourceRoot":"","sources":["../../../../src/nodes/cart/cart-get-total.ts"],"names":[],"mappings":";;;AAAA,oCAAgE;AAEhE,KAAK,UAAU,cAAc;IAC3B,IAAI;QACF,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QACjD,MAAM,IAAI,GAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAE9C,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,sEAAsE;QACtE,gDAAgD;QAChD,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,gCAAgC;QAChC,EAAE;QACF,2EAA2E;QAC3E,uEAAuE;QACvE,oEAAoE;QACpE,2EAA2E;QAC3E,wEAAwE;QACxE,uEAAuE;QACvE,qBAAqB;QACrB,IAAI,cAAc,GAMP,IAAI,CAAA;QACf,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,sEAAsE;QACtE,wBAAwB;QACxB,IAAI,iBAAiB,GAAG,CAAC,CAAA;QACzB,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,sCAAsC;QACtC,IAAI,OAAO,GAAmC,IAAI,CAAA;QAClD,IAAI;YACF,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;YAC3D,IAAI,UAAU,EAAE;gBACd,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;gBAC5C,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE;oBAC5E,OAAO,GAAG,aAAa,CAAA;iBACxB;aACF;SACF;QAAC,OAAO,WAAW,EAAE;YACpB,mEAAmE;SACpE;QACD,IAAI;YACF,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;YAClE,IAAI,WAAW,EAAE;gBACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;gBACtC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,EAAE;oBACjE,cAAc,GAAG;wBACf,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC;wBAC/D,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB;wBAChE,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC;qBAChF,CAAA;oBACD,uDAAuD;oBACvD,sDAAsD;oBACtD,IAAI,OAAO,MAAM,CAAC,cAAc,CAAC,eAAe,KAAK,SAAS,EAAE;wBAC9D,cAAc,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,eAAe,CAAA;qBACvE;oBACD,IAAI,OAAO,MAAM,CAAC,cAAc,CAAC,kBAAkB,KAAK,SAAS,EAAE;wBACjE,cAAc,CAAC,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAA;qBAC7E;iBACF;gBACD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;oBAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;oBAC7D,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;iBAC5E;aACF;SACF;QAAC,OAAO,YAAY,EAAE;YACrB,0DAA0D;SAC3D;QAED,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACtD,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE,CACvC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAE9E,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,iEAAiE;QACjE,2EAA2E;QAC3E,uEAAuE;QACvE,2CAA2C;QAC3C,IAAI,eAAe,GAAG,CAAC,CAAA;QAEvB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;YAC7B,GAAG,IAAI,GAAG,GAAG,KAAK,CAAA;YAClB,KAAK,IAAI,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;YACpC,SAAS,IAAI,GAAG,CAAA;YAChB,qEAAqE;YACrE,2CAA2C;YAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAChD,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE;gBAC9C,eAAe,IAAI,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,CAAA;aAC7C;SACF;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAEjC,OAAO;YACL,yEAAyE;YACzE,wEAAwE;YACxE,0EAA0E;YAC1E,uEAAuE;YACvE,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;YACzE,sBAAsB;YACtB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC;YACpB,yEAAyE;YACzE,oEAAoE;YACpE,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,0DAA0D;YAC1D,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;YACvB,iEAAiE;YACjE,sEAAsE;YACtE,kCAAkC;YAClC,KAAK,EAAE,YAAY;YACnB,SAAS;YACT,uEAAuE;YACvE,sEAAsE;YACtE,oBAAoB,EAAE,KAAK,CAAC,eAAe,CAAC;YAC5C,cAAc;YACd,SAAS,EAAE,EAAE,iBAAiB,EAAE;YAChC,OAAO;SACR,CAAA;KACF;IAAC,OAAO,IAAI,EAAE;QACb,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,CAAC;YACR,SAAS,EAAE,CAAC;YACZ,oBAAoB,EAAE,CAAC;YACvB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE;YACnC,OAAO,EAAE,IAAI;SACd,CAAA;KACF;AACH,CAAC;AACY,QAAA,YAAY,GAAyB;IAChD,QAAQ,EAAE,gBAAgB;IAC1B,YAAY,EAAE,QAAQ;IACtB,eAAe;QACb,OAAO,IAAA,uBAAe,EAAC,cAAc,CAAC,CAAA;IACxC,CAAC;CACF,CAAA"}
|