@teleporthq/teleport-plugin-next-workflows 0.44.7 → 0.44.9
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__/_helpers/load-server-runtime.ts +6 -2
- package/__tests__/_helpers/run-account-delete-route.ts +140 -0
- package/__tests__/account-delete-current-password.test.ts +73 -0
- package/__tests__/account-delete-password-check.test.ts +113 -0
- package/__tests__/account-delete-visitor-details.test.ts +206 -0
- package/__tests__/auth-password-change-ends-sessions.test.ts +178 -0
- package/__tests__/credential-result-reply.test.ts +509 -0
- package/__tests__/data-api-invalid-body.test.ts +110 -0
- package/__tests__/data-node-not-awaited.test.ts +7 -6
- package/__tests__/invoice-payment-line.test.ts +68 -0
- package/__tests__/invoice-tender.test.ts +116 -0
- package/__tests__/pending-work-after-reply.test.ts +294 -0
- package/__tests__/runtime-condition-operands.test.ts +86 -0
- package/__tests__/webhook-delivery-lease.test.ts +68 -6
- package/dist/cjs/account-delete-route-generator.d.ts +7 -2
- package/dist/cjs/account-delete-route-generator.d.ts.map +1 -1
- package/dist/cjs/account-delete-route-generator.js +90 -43
- package/dist/cjs/account-delete-route-generator.js.map +1 -1
- package/dist/cjs/api-route-generator.d.ts.map +1 -1
- package/dist/cjs/api-route-generator.js +17 -15
- package/dist/cjs/api-route-generator.js.map +1 -1
- package/dist/cjs/auth-generator.d.ts.map +1 -1
- package/dist/cjs/auth-generator.js +34 -1
- package/dist/cjs/auth-generator.js.map +1 -1
- package/dist/cjs/await-result.d.ts +13 -5
- package/dist/cjs/await-result.d.ts.map +1 -1
- package/dist/cjs/await-result.js +19 -8
- package/dist/cjs/await-result.js.map +1 -1
- package/dist/cjs/credential-results.d.ts +18 -0
- package/dist/cjs/credential-results.d.ts.map +1 -0
- package/dist/cjs/credential-results.js +72 -0
- package/dist/cjs/credential-results.js.map +1 -0
- package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
- package/dist/cjs/data-api-route-generator.js +9 -1
- package/dist/cjs/data-api-route-generator.js.map +1 -1
- package/dist/cjs/executor-generator.d.ts.map +1 -1
- package/dist/cjs/executor-generator.js +26 -7
- package/dist/cjs/executor-generator.js.map +1 -1
- package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
- package/dist/cjs/invoice/invoice-html-code.js +96 -5
- package/dist/cjs/invoice/invoice-html-code.js.map +1 -1
- package/dist/cjs/nodes/account/account-delete-current.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-delete-current.js +4 -1
- package/dist/cjs/nodes/account/account-delete-current.js.map +1 -1
- package/dist/cjs/nodes/account/account-hash-password.d.ts.map +1 -1
- package/dist/cjs/nodes/account/account-hash-password.js +1 -0
- package/dist/cjs/nodes/account/account-hash-password.js.map +1 -1
- package/dist/cjs/nodes/types.d.ts +6 -0
- package/dist/cjs/nodes/types.d.ts.map +1 -1
- package/dist/cjs/server-runtime-code.d.ts +8 -0
- package/dist/cjs/server-runtime-code.d.ts.map +1 -1
- package/dist/cjs/server-runtime-code.js +127 -0
- package/dist/cjs/server-runtime-code.js.map +1 -1
- package/dist/cjs/transactional-email-code.d.ts +7 -0
- package/dist/cjs/transactional-email-code.d.ts.map +1 -1
- package/dist/cjs/transactional-email-code.js +5 -5
- package/dist/cjs/transactional-email-code.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/vercel-functions.d.ts +34 -0
- package/dist/cjs/vercel-functions.d.ts.map +1 -0
- package/dist/cjs/vercel-functions.js +62 -0
- package/dist/cjs/vercel-functions.js.map +1 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.d.ts +6 -0
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.d.ts.map +1 -1
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.js +26 -11
- package/dist/cjs/webhook-delivery-lease/webhook-delivery-lease-code.js.map +1 -1
- package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
- package/dist/cjs/workflow-project-plugin.js +3 -0
- package/dist/cjs/workflow-project-plugin.js.map +1 -1
- package/dist/esm/account-delete-route-generator.d.ts +7 -2
- package/dist/esm/account-delete-route-generator.d.ts.map +1 -1
- package/dist/esm/account-delete-route-generator.js +90 -43
- package/dist/esm/account-delete-route-generator.js.map +1 -1
- package/dist/esm/api-route-generator.d.ts.map +1 -1
- package/dist/esm/api-route-generator.js +17 -15
- package/dist/esm/api-route-generator.js.map +1 -1
- package/dist/esm/auth-generator.d.ts.map +1 -1
- package/dist/esm/auth-generator.js +34 -1
- package/dist/esm/auth-generator.js.map +1 -1
- package/dist/esm/await-result.d.ts +13 -5
- package/dist/esm/await-result.d.ts.map +1 -1
- package/dist/esm/await-result.js +18 -7
- package/dist/esm/await-result.js.map +1 -1
- package/dist/esm/credential-results.d.ts +18 -0
- package/dist/esm/credential-results.d.ts.map +1 -0
- package/dist/esm/credential-results.js +68 -0
- package/dist/esm/credential-results.js.map +1 -0
- package/dist/esm/data-api-route-generator.d.ts.map +1 -1
- package/dist/esm/data-api-route-generator.js +9 -1
- package/dist/esm/data-api-route-generator.js.map +1 -1
- package/dist/esm/executor-generator.d.ts.map +1 -1
- package/dist/esm/executor-generator.js +26 -7
- package/dist/esm/executor-generator.js.map +1 -1
- package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
- package/dist/esm/invoice/invoice-html-code.js +96 -5
- package/dist/esm/invoice/invoice-html-code.js.map +1 -1
- package/dist/esm/nodes/account/account-delete-current.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-delete-current.js +4 -1
- package/dist/esm/nodes/account/account-delete-current.js.map +1 -1
- package/dist/esm/nodes/account/account-hash-password.d.ts.map +1 -1
- package/dist/esm/nodes/account/account-hash-password.js +1 -0
- package/dist/esm/nodes/account/account-hash-password.js.map +1 -1
- package/dist/esm/nodes/types.d.ts +6 -0
- package/dist/esm/nodes/types.d.ts.map +1 -1
- package/dist/esm/server-runtime-code.d.ts +8 -0
- package/dist/esm/server-runtime-code.d.ts.map +1 -1
- package/dist/esm/server-runtime-code.js +127 -0
- package/dist/esm/server-runtime-code.js.map +1 -1
- package/dist/esm/transactional-email-code.d.ts +7 -0
- package/dist/esm/transactional-email-code.d.ts.map +1 -1
- package/dist/esm/transactional-email-code.js +5 -5
- package/dist/esm/transactional-email-code.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/vercel-functions.d.ts +34 -0
- package/dist/esm/vercel-functions.d.ts.map +1 -0
- package/dist/esm/vercel-functions.js +57 -0
- package/dist/esm/vercel-functions.js.map +1 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.d.ts +6 -0
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.d.ts.map +1 -1
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.js +26 -11
- package/dist/esm/webhook-delivery-lease/webhook-delivery-lease-code.js.map +1 -1
- package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
- package/dist/esm/workflow-project-plugin.js +3 -0
- package/dist/esm/workflow-project-plugin.js.map +1 -1
- package/package.json +2 -2
- package/src/account-delete-route-generator.ts +97 -45
- package/src/api-route-generator.ts +17 -15
- package/src/auth-generator.ts +34 -1
- package/src/await-result.ts +19 -7
- package/src/credential-results.ts +71 -0
- package/src/data-api-route-generator.ts +9 -1
- package/src/executor-generator.ts +26 -7
- package/src/invoice/invoice-html-code.ts +96 -5
- package/src/nodes/account/account-delete-current.ts +4 -1
- package/src/nodes/account/account-hash-password.ts +1 -0
- package/src/nodes/types.ts +6 -0
- package/src/server-runtime-code.ts +128 -0
- package/src/transactional-email-code.ts +12 -5
- package/src/vercel-functions.ts +67 -0
- package/src/webhook-delivery-lease/webhook-delivery-lease-code.ts +26 -11
- package/src/workflow-project-plugin.ts +3 -0
|
@@ -6,6 +6,14 @@ import { WorkflowSegment } from './types';
|
|
|
6
6
|
* the two repos cannot import each other, so this list is a PAIRED EDIT.
|
|
7
7
|
*/
|
|
8
8
|
export declare const DATA_NODE_TYPES: ReadonlyArray<string>;
|
|
9
|
+
/**
|
|
10
|
+
* The other steps the author may choose not to wait for: server work whose
|
|
11
|
+
* result nothing downstream needs (a cash order's invoice, rendered, stored
|
|
12
|
+
* and mailed while the buyer is already on the confirmation page). The
|
|
13
|
+
* editor offers the choice on the same steps (`supportsAwaitResultOption` in
|
|
14
|
+
* teleport-gui's `@teleport/workflow-schema`) — a PAIRED EDIT.
|
|
15
|
+
*/
|
|
16
|
+
export declare const NOT_AWAITABLE_SERVER_NODE_TYPES: ReadonlyArray<string>;
|
|
9
17
|
/**
|
|
10
18
|
* Config key carrying the author's await choice. Only `false` opts out —
|
|
11
19
|
* `undefined` (never configured) and `true` both mean "await", so every
|
|
@@ -13,7 +21,7 @@ export declare const DATA_NODE_TYPES: ReadonlyArray<string>;
|
|
|
13
21
|
*/
|
|
14
22
|
export declare const AWAIT_RESULT_CONFIG_KEY = "awaitResult";
|
|
15
23
|
/**
|
|
16
|
-
* True when this node runs fire-and-forget: the runtime starts the
|
|
24
|
+
* True when this node runs fire-and-forget: the runtime starts the step,
|
|
17
25
|
* publishes `null` under the node's id and moves straight on to the next node.
|
|
18
26
|
*/
|
|
19
27
|
export declare const isFireAndForgetNode: (node: UIDLWorkflowNode | undefined | null) => boolean;
|
|
@@ -22,10 +30,10 @@ export declare const isFireAndForgetNode: (node: UIDLWorkflowNode | undefined |
|
|
|
22
30
|
* response — i.e. every node it holds is fire-and-forget, so nothing
|
|
23
31
|
* downstream can read anything the segment produces.
|
|
24
32
|
*
|
|
25
|
-
* The API route itself still
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
33
|
+
* The API route itself still lands each step (a serverless function may be
|
|
34
|
+
* frozen the moment it responds, which would drop an in-flight write: on
|
|
35
|
+
* Vercel the step finishes after the reply, elsewhere the reply waits); what
|
|
36
|
+
* this flag removes is the CLIENT's wait on that round trip.
|
|
29
37
|
*/
|
|
30
38
|
export declare const isFireAndForgetSegment: (segment: WorkflowSegment) => boolean;
|
|
31
39
|
//# sourceMappingURL=await-result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"await-result.d.ts","sourceRoot":"","sources":["../../src/await-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,MAAM,CAOjD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"await-result.d.ts","sourceRoot":"","sources":["../../src/await-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,MAAM,CAOjD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,EAAE,aAAa,CAAC,MAAM,CAAkC,CAAA;AAEpG;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gBAAgB,CAAA;AAOpD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,SAAU,gBAAgB,GAAG,SAAS,GAAG,IAAI,KAAG,OAM/E,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,YAAa,eAAe,KAAG,OAGR,CAAA"}
|
package/dist/esm/await-result.js
CHANGED
|
@@ -11,19 +11,30 @@ export const DATA_NODE_TYPES = [
|
|
|
11
11
|
'data-update-item',
|
|
12
12
|
'data-delete-item',
|
|
13
13
|
];
|
|
14
|
+
/**
|
|
15
|
+
* The other steps the author may choose not to wait for: server work whose
|
|
16
|
+
* result nothing downstream needs (a cash order's invoice, rendered, stored
|
|
17
|
+
* and mailed while the buyer is already on the confirmation page). The
|
|
18
|
+
* editor offers the choice on the same steps (`supportsAwaitResultOption` in
|
|
19
|
+
* teleport-gui's `@teleport/workflow-schema`) — a PAIRED EDIT.
|
|
20
|
+
*/
|
|
21
|
+
export const NOT_AWAITABLE_SERVER_NODE_TYPES = ['ecommerce-generate-invoice'];
|
|
14
22
|
/**
|
|
15
23
|
* Config key carrying the author's await choice. Only `false` opts out —
|
|
16
24
|
* `undefined` (never configured) and `true` both mean "await", so every
|
|
17
25
|
* project generated before this option existed keeps its old behaviour.
|
|
18
26
|
*/
|
|
19
27
|
export const AWAIT_RESULT_CONFIG_KEY = 'awaitResult';
|
|
20
|
-
const
|
|
28
|
+
const AWAIT_OPTIONAL_NODE_TYPE_SET = new Set([
|
|
29
|
+
...DATA_NODE_TYPES,
|
|
30
|
+
...NOT_AWAITABLE_SERVER_NODE_TYPES,
|
|
31
|
+
]);
|
|
21
32
|
/**
|
|
22
|
-
* True when this node runs fire-and-forget: the runtime starts the
|
|
33
|
+
* True when this node runs fire-and-forget: the runtime starts the step,
|
|
23
34
|
* publishes `null` under the node's id and moves straight on to the next node.
|
|
24
35
|
*/
|
|
25
36
|
export const isFireAndForgetNode = (node) => {
|
|
26
|
-
if (!node || !
|
|
37
|
+
if (!node || !AWAIT_OPTIONAL_NODE_TYPE_SET.has(node.type)) {
|
|
27
38
|
return false;
|
|
28
39
|
}
|
|
29
40
|
const config = node.config;
|
|
@@ -34,10 +45,10 @@ export const isFireAndForgetNode = (node) => {
|
|
|
34
45
|
* response — i.e. every node it holds is fire-and-forget, so nothing
|
|
35
46
|
* downstream can read anything the segment produces.
|
|
36
47
|
*
|
|
37
|
-
* The API route itself still
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
48
|
+
* The API route itself still lands each step (a serverless function may be
|
|
49
|
+
* frozen the moment it responds, which would drop an in-flight write: on
|
|
50
|
+
* Vercel the step finishes after the reply, elsewhere the reply waits); what
|
|
51
|
+
* this flag removes is the CLIENT's wait on that round trip.
|
|
41
52
|
*/
|
|
42
53
|
export const isFireAndForgetSegment = (segment) => segment.env === 'server' &&
|
|
43
54
|
segment.nodes.length > 0 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"await-result.js","sourceRoot":"","sources":["../../src/await-result.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;CACnB,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAA;AAEpD,MAAM,
|
|
1
|
+
{"version":3,"file":"await-result.js","sourceRoot":"","sources":["../../src/await-result.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;CACnB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA0B,CAAC,4BAA4B,CAAC,CAAA;AAEpG;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAA;AAEpD,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAS;IACnD,GAAG,eAAe;IAClB,GAAG,+BAA+B;CACnC,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAyC,EAAW,EAAE;IACxF,IAAI,CAAC,IAAI,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACzD,OAAO,KAAK,CAAA;KACb;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAA6C,CAAA;IACjE,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,uBAAuB,CAAC,KAAK,KAAK,CAAA;AAC9D,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAwB,EAAW,EAAE,CAC1E,OAAO,CAAC,GAAG,KAAK,QAAQ;IACxB,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;IACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The node types whose result is a credential, read off the node registry
|
|
3
|
+
* (`resultIsCredential`): today the password-hashing node. Its result stays on
|
|
4
|
+
* the server. A server segment replies it to the browser only sealed —
|
|
5
|
+
* encrypted with a key derived from the app secret, signed like every other
|
|
6
|
+
* result — and a later server segment opens it again, so a workflow that
|
|
7
|
+
* hashes in one segment and writes in another still works (see the server
|
|
8
|
+
* runtime: `sealResult`, `openSealedResults`).
|
|
9
|
+
*/
|
|
10
|
+
export declare const CREDENTIAL_RESULT_NODE_TYPES: string[];
|
|
11
|
+
/**
|
|
12
|
+
* `credentialResultNodeIds(segmentConfig)`: the nodes of a segment whose
|
|
13
|
+
* result is a credential — every node of a credential type, and every map
|
|
14
|
+
* loop whose results are such a node's results (the loop's last body step, as
|
|
15
|
+
* the route runs it; a loop of loops follows its inner loop).
|
|
16
|
+
*/
|
|
17
|
+
export declare const generateCredentialResultsCode: () => string;
|
|
18
|
+
//# sourceMappingURL=credential-results.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-results.d.ts","sourceRoot":"","sources":["../../src/credential-results.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,EAEhD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,QAAO,MAiDhD,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { nodeRegistry } from './nodes';
|
|
2
|
+
/**
|
|
3
|
+
* The node types whose result is a credential, read off the node registry
|
|
4
|
+
* (`resultIsCredential`): today the password-hashing node. Its result stays on
|
|
5
|
+
* the server. A server segment replies it to the browser only sealed —
|
|
6
|
+
* encrypted with a key derived from the app secret, signed like every other
|
|
7
|
+
* result — and a later server segment opens it again, so a workflow that
|
|
8
|
+
* hashes in one segment and writes in another still works (see the server
|
|
9
|
+
* runtime: `sealResult`, `openSealedResults`).
|
|
10
|
+
*/
|
|
11
|
+
export const CREDENTIAL_RESULT_NODE_TYPES = Object.keys(nodeRegistry).filter((nodeType) => nodeRegistry[nodeType].resultIsCredential === true);
|
|
12
|
+
/**
|
|
13
|
+
* `credentialResultNodeIds(segmentConfig)`: the nodes of a segment whose
|
|
14
|
+
* result is a credential — every node of a credential type, and every map
|
|
15
|
+
* loop whose results are such a node's results (the loop's last body step, as
|
|
16
|
+
* the route runs it; a loop of loops follows its inner loop).
|
|
17
|
+
*/
|
|
18
|
+
export const generateCredentialResultsCode = () => `
|
|
19
|
+
var __CREDENTIAL_RESULT_NODE_TYPES = ${JSON.stringify(CREDENTIAL_RESULT_NODE_TYPES)};
|
|
20
|
+
|
|
21
|
+
function lastLoopBodyNodeId(loopId, sortedNodes, edges) {
|
|
22
|
+
var start = edges.find(function(e) { return e.source === loopId && e.sourceHandle === 'loop'; });
|
|
23
|
+
if (!start) return null;
|
|
24
|
+
var body = {};
|
|
25
|
+
var queue = [start.target];
|
|
26
|
+
while (queue.length > 0) {
|
|
27
|
+
var current = queue.shift();
|
|
28
|
+
if (body[current] || current === loopId) continue;
|
|
29
|
+
body[current] = true;
|
|
30
|
+
edges.forEach(function(e) {
|
|
31
|
+
if (e.source === current && (e.sourceHandle === 'loop-body-out' || !e.sourceHandle) && e.target !== loopId) {
|
|
32
|
+
queue.push(e.target);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
var last = null;
|
|
37
|
+
sortedNodes.forEach(function(n) { if (body[n.id]) last = n.id; });
|
|
38
|
+
return last;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function credentialResultNodeIds(segmentConfig) {
|
|
42
|
+
var nodes = (segmentConfig && segmentConfig.nodes) || [];
|
|
43
|
+
var edges = (segmentConfig && segmentConfig.edges) || [];
|
|
44
|
+
var ids = {};
|
|
45
|
+
nodes.forEach(function(n) {
|
|
46
|
+
if (__CREDENTIAL_RESULT_NODE_TYPES.indexOf(n.type) !== -1) ids[n.id] = true;
|
|
47
|
+
});
|
|
48
|
+
var sortedNodes = nodes.slice().sort(function(a, b) { return (a.stepNumber || 0) - (b.stepNumber || 0); });
|
|
49
|
+
var mapLoops = nodes.filter(function(n) {
|
|
50
|
+
var loopType = n.config && n.config.loopType;
|
|
51
|
+
return n.type === 'general-loop' && !!loopType && loopType !== 'forEach';
|
|
52
|
+
});
|
|
53
|
+
var grew = true;
|
|
54
|
+
while (grew) {
|
|
55
|
+
grew = false;
|
|
56
|
+
mapLoops.forEach(function(loop) {
|
|
57
|
+
if (ids[loop.id]) return;
|
|
58
|
+
var last = lastLoopBodyNodeId(loop.id, sortedNodes, edges);
|
|
59
|
+
if (last && ids[last]) {
|
|
60
|
+
ids[loop.id] = true;
|
|
61
|
+
grew = true;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return ids;
|
|
66
|
+
}
|
|
67
|
+
`;
|
|
68
|
+
//# sourceMappingURL=credential-results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-results.js","sourceRoot":"","sources":["../../src/credential-results.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAa,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CACpF,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,kBAAkB,KAAK,IAAI,CACjE,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAW,EAAE,CAAC;uCACpB,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDlF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-api-route-generator.d.ts","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,aAAa,EAAe,MAAM,6BAA6B,CAAA;AAExE,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAW9C,CAAA;AAEF,eAAO,MAAM,iBAAiB,kBAAmB,IAAI,MAAM,CAAC,KAAG,OAO9D,CAAA;AAED,MAAM,WAAW,mBAAmB;IAIlC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAQ3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,MAAM,CASzD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CACtD,CAAA;AAEpC,eAAO,MAAM,oBAAoB,aAAa,mBAAmB,KAAQ,
|
|
1
|
+
{"version":3,"file":"data-api-route-generator.d.ts","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,aAAa,EAAe,MAAM,6BAA6B,CAAA;AAExE,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAW9C,CAAA;AAEF,eAAO,MAAM,iBAAiB,kBAAmB,IAAI,MAAM,CAAC,KAAG,OAO9D,CAAA;AAED,MAAM,WAAW,mBAAmB;IAIlC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAQ3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAI/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,MAAM,CASzD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CACtD,CAAA;AAEpC,eAAO,MAAM,oBAAoB,aAAa,mBAAmB,KAAQ,MAsrCxE,CAAA"}
|
|
@@ -1189,7 +1189,15 @@ module.exports = async function handler(req, res) {
|
|
|
1189
1189
|
}
|
|
1190
1190
|
|
|
1191
1191
|
var operation = params[params.length - 1];
|
|
1192
|
-
var body
|
|
1192
|
+
var body;
|
|
1193
|
+
try {
|
|
1194
|
+
body = typeof req.body === 'string' ? JSON.parse(req.body) : req.body;
|
|
1195
|
+
} catch (e) {
|
|
1196
|
+
body = null;
|
|
1197
|
+
}
|
|
1198
|
+
if (!body || typeof body !== 'object' || Array.isArray(body)) {
|
|
1199
|
+
return res.status(400).json({ error: 'Invalid request body. Expected a JSON object.' });
|
|
1200
|
+
}
|
|
1193
1201
|
var client = getClient();
|
|
1194
1202
|
|
|
1195
1203
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"data-api-route-generator.js","sourceRoot":"","sources":["../../src/data-api-route-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-generator.d.ts","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"executor-generator.d.ts","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAA;AAKvB,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAID,eAAO,MAAM,8BAA8B,aAAa,yBAAyB,KAAQ,MAogDxF,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MA+nB5C,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { generateEmailLocaleHelpersCode, generateWorkflowLocaleHelpersCode, } from './email-locale';
|
|
2
2
|
import { generateSignedInDestinationCode } from './auth-return/signed-in-destination-code';
|
|
3
3
|
import { generateCredentialColumnsCode } from './credential-columns-code';
|
|
4
|
+
import { generateCredentialResultsCode } from './credential-results';
|
|
4
5
|
const NO_EMAIL_LOCALES = { locales: [], defaultLocale: '' };
|
|
5
6
|
export const generateSharedRuntimeUtilsCode = (options = {}) => {
|
|
6
7
|
return `/**
|
|
@@ -638,9 +639,15 @@ function normalizeComparisonOperator(op) {
|
|
|
638
639
|
.toLowerCase();
|
|
639
640
|
}
|
|
640
641
|
|
|
642
|
+
// The editor's templates write a comparison's sides as leftOperand /
|
|
643
|
+
// rightOperand; everything else writes leftValue / rightValue.
|
|
644
|
+
function comparisonSide(config, valueKey, operandKey) {
|
|
645
|
+
return config[valueKey] !== undefined ? config[valueKey] : config[operandKey];
|
|
646
|
+
}
|
|
647
|
+
|
|
641
648
|
function evaluateSingleComparison(config, context) {
|
|
642
|
-
var rawLeft = resolveValue(config
|
|
643
|
-
var rawRight = resolveValue(config
|
|
649
|
+
var rawLeft = resolveValue(comparisonSide(config, 'leftValue', 'leftOperand'), context);
|
|
650
|
+
var rawRight = resolveValue(comparisonSide(config, 'rightValue', 'rightOperand'), context);
|
|
644
651
|
const op = normalizeComparisonOperator(config.operator || 'equals');
|
|
645
652
|
var isUnary = op === 'is-empty' || op === 'is-not-empty' || op === 'is-truthy' || op === 'is-falsy' ||
|
|
646
653
|
op === 'is-null' || op === 'is-not-null' || op === 'is-true' || op === 'is-false';
|
|
@@ -650,7 +657,7 @@ function evaluateSingleComparison(config, context) {
|
|
|
650
657
|
switch (op) {
|
|
651
658
|
case '===': return left === right;
|
|
652
659
|
case '!==': return left !== right;
|
|
653
|
-
case '==': case 'equals': return left == right;
|
|
660
|
+
case '=': case '==': case 'equals': return left == right;
|
|
654
661
|
case '!=': case 'not-equals': return left != right;
|
|
655
662
|
case '>': case 'greater-than': return left > right;
|
|
656
663
|
case '<': case 'less-than': return left < right;
|
|
@@ -792,10 +799,16 @@ var __DATA_NODE_TYPES = {
|
|
|
792
799
|
'data-delete-item': true
|
|
793
800
|
};
|
|
794
801
|
|
|
795
|
-
//
|
|
796
|
-
|
|
802
|
+
// Mirrors NOT_AWAITABLE_SERVER_NODE_TYPES in await-result.ts — PAIRED EDIT.
|
|
803
|
+
var __NOT_AWAITABLE_SERVER_NODE_TYPES = {
|
|
804
|
+
'ecommerce-generate-invoice': true
|
|
805
|
+
};
|
|
806
|
+
|
|
807
|
+
// A data node (or a step listed above) the author opted out of awaiting. Only
|
|
808
|
+
// an explicit \`false\` opts out, so a config written before the option existed
|
|
809
|
+
// keeps awaiting.
|
|
797
810
|
function isFireAndForgetNode(node) {
|
|
798
|
-
if (!node || !__DATA_NODE_TYPES[node.type]) return false;
|
|
811
|
+
if (!node || !(__DATA_NODE_TYPES[node.type] || __NOT_AWAITABLE_SERVER_NODE_TYPES[node.type])) return false;
|
|
799
812
|
return !!node.config && node.config.awaitResult === false;
|
|
800
813
|
}
|
|
801
814
|
|
|
@@ -1402,7 +1415,12 @@ var SEGMENT_REPLY_PRIVATE_KEYS = {
|
|
|
1402
1415
|
//
|
|
1403
1416
|
// A data node's rows are replied without the auth users table's credentials
|
|
1404
1417
|
// (see credential-columns-code.ts).
|
|
1418
|
+
//
|
|
1419
|
+
// A node whose result is a credential (a password hash) is left out here too,
|
|
1420
|
+
// whatever its config says: the server runtime replies it sealed, readable by
|
|
1421
|
+
// a later server segment only (see credential-results.ts).
|
|
1405
1422
|
${generateCredentialColumnsCode()}
|
|
1423
|
+
${generateCredentialResultsCode()}
|
|
1406
1424
|
// The nodes whose result the client branches on: never kept on the server.
|
|
1407
1425
|
function isBranchingNodeType(type) {
|
|
1408
1426
|
return type === 'general-if-statement' || type === 'general-switch';
|
|
@@ -1411,7 +1429,7 @@ function isBranchingNodeType(type) {
|
|
|
1411
1429
|
function segmentReply(segmentConfig, context, snapshot) {
|
|
1412
1430
|
var reply = {};
|
|
1413
1431
|
var own = {};
|
|
1414
|
-
var kept =
|
|
1432
|
+
var kept = credentialResultNodeIds(segmentConfig);
|
|
1415
1433
|
var nodes = (segmentConfig && segmentConfig.nodes) || [];
|
|
1416
1434
|
for (var ni = 0; ni < nodes.length; ni++) {
|
|
1417
1435
|
own[nodes[ni].id] = nodes[ni];
|
|
@@ -1498,6 +1516,7 @@ module.exports = {
|
|
|
1498
1516
|
snapshotIncomingContext,
|
|
1499
1517
|
segmentReply,
|
|
1500
1518
|
withoutCredentialColumns,
|
|
1519
|
+
credentialResultNodeIds,
|
|
1501
1520
|
evaluateCondition,
|
|
1502
1521
|
evaluateSingleComparison,
|
|
1503
1522
|
normalizeComparisonOperator,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-generator.js","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,8BAA8B,EAC9B,iCAAiC,GAClC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAA;AAC1F,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"executor-generator.js","sourceRoot":"","sources":["../../src/executor-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoice-html-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/invoice-html-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA4HhE,eAAO,MAAM,uBAAuB,aACxB,mBAAmB,uBACR,OAAO,iBACb,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KACxD,
|
|
1
|
+
{"version":3,"file":"invoice-html-code.d.ts","sourceRoot":"","sources":["../../../src/invoice/invoice-html-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA4HhE,eAAO,MAAM,uBAAuB,aACxB,mBAAmB,uBACR,OAAO,iBACb,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KACxD,MAsoCF,CAAA"}
|
|
@@ -245,6 +245,54 @@ function formatDateValue(raw) {
|
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
+
// How the invoice says it was paid: the method in words, with the provider that
|
|
249
|
+
// took the money when a provider did ("Card (Stripe)", "Paid online" for a
|
|
250
|
+
// booking paid through the site, "Cash on delivery", "Gift card"), and the
|
|
251
|
+
// provider's payment id as "Ref. pi_…". The stored values are ids.
|
|
252
|
+
var PAYMENT_PROVIDER_LABELS = {
|
|
253
|
+
stripe: 'Stripe', paypal: 'PayPal', mollie: 'Mollie', razorpay: 'Razorpay',
|
|
254
|
+
square: 'Square', paddle: 'Paddle', coingate: 'CoinGate',
|
|
255
|
+
};
|
|
256
|
+
var PAYMENT_METHOD_LABELS = {
|
|
257
|
+
card: 'Card',
|
|
258
|
+
online: 'Paid online',
|
|
259
|
+
cash_on_delivery: 'Cash on delivery',
|
|
260
|
+
cod: 'Cash on delivery',
|
|
261
|
+
cash: 'Cash',
|
|
262
|
+
store_pickup: 'Paid at pickup',
|
|
263
|
+
pickup: 'Paid at pickup',
|
|
264
|
+
gift_card: 'Gift card',
|
|
265
|
+
bank_transfer: 'Bank transfer',
|
|
266
|
+
};
|
|
267
|
+
var PAYMENT_METHODS_NAMING_PROVIDER = { card: true, online: true };
|
|
268
|
+
|
|
269
|
+
function humanizePaymentId(value) {
|
|
270
|
+
var words = String(value).replace(/[_-]+/g, ' ').trim();
|
|
271
|
+
return words.charAt(0).toUpperCase() + words.slice(1);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
function paymentProviderLabel(provider) {
|
|
275
|
+
var id = String(provider || '').trim().toLowerCase();
|
|
276
|
+
return PAYMENT_PROVIDER_LABELS[id] || (id ? humanizePaymentId(id) : '');
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function paymentMethodLabel(method, provider) {
|
|
280
|
+
var id = String(method || '').trim().toLowerCase();
|
|
281
|
+
var providerLabel = paymentProviderLabel(provider);
|
|
282
|
+
if (PAYMENT_METHOD_LABELS[id]) {
|
|
283
|
+
return PAYMENT_METHOD_LABELS[id] +
|
|
284
|
+
(PAYMENT_METHODS_NAMING_PROVIDER[id] && providerLabel ? ' (' + providerLabel + ')' : '');
|
|
285
|
+
}
|
|
286
|
+
if (PAYMENT_PROVIDER_LABELS[id]) return 'Paid online (' + PAYMENT_PROVIDER_LABELS[id] + ')';
|
|
287
|
+
if (!id) return providerLabel ? 'Paid online (' + providerLabel + ')' : '';
|
|
288
|
+
return humanizePaymentId(id);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
function paymentReference(paymentId) {
|
|
292
|
+
var ref = String(paymentId || '').trim();
|
|
293
|
+
return ref ? 'Ref. ' + ref : '';
|
|
294
|
+
}
|
|
295
|
+
|
|
248
296
|
function buildInvoiceDataScope(invoiceData) {
|
|
249
297
|
var contextCompany = extractStaticAttrsFromContext(TEMPLATE_COMPONENT_UIDL).Company || {};
|
|
250
298
|
var sym = invoiceData.currencySymbol || '$';
|
|
@@ -291,10 +339,13 @@ function buildInvoiceDataScope(invoiceData) {
|
|
|
291
339
|
var giftCardLast4 = String(invoiceData.giftCardLast4 || '').trim();
|
|
292
340
|
var totalNumber = Number(invoiceData.total);
|
|
293
341
|
if (!isFinite(totalNumber)) totalNumber = 0;
|
|
342
|
+
// What is left to pay after the gift card. The invoice records what the
|
|
343
|
+
// provider or the courier was to collect; once that is paid, nothing is left.
|
|
294
344
|
var amountDueNumber = Number(invoiceData.amountDue);
|
|
295
345
|
if (invoiceData.amountDue == null || !isFinite(amountDueNumber)) {
|
|
296
346
|
amountDueNumber = Math.max(0, totalNumber - giftCardAmountNumber);
|
|
297
347
|
}
|
|
348
|
+
if (isSettledInvoice(invoiceData.status)) amountDueNumber = 0;
|
|
298
349
|
|
|
299
350
|
// A paid invoice asks for nothing: where the due date would print, it says
|
|
300
351
|
// when it was paid. The order keeps no payment method finer than its
|
|
@@ -356,9 +407,9 @@ function buildInvoiceDataScope(invoiceData) {
|
|
|
356
407
|
realCustomer.hasVat = realCustomer.vat ? 'true' : 'false';
|
|
357
408
|
|
|
358
409
|
var realPayment = {
|
|
359
|
-
method: invoiceData.paymentMethod
|
|
360
|
-
provider: invoiceData.paymentProvider
|
|
361
|
-
intentId: invoiceData.paymentIntentId
|
|
410
|
+
method: paymentMethodLabel(invoiceData.paymentMethod, invoiceData.paymentProvider),
|
|
411
|
+
provider: paymentProviderLabel(invoiceData.paymentProvider),
|
|
412
|
+
intentId: paymentReference(invoiceData.paymentIntentId),
|
|
362
413
|
orderId: invoiceData.orderId || '',
|
|
363
414
|
};
|
|
364
415
|
|
|
@@ -726,6 +777,39 @@ function renderComponentReference(content, scope, depth) {
|
|
|
726
777
|
return rendered;
|
|
727
778
|
}
|
|
728
779
|
|
|
780
|
+
// A paid invoice asks for nothing, so, as in the email, its amount-due line is
|
|
781
|
+
// left out. The template shows that line whenever a gift card was used, which
|
|
782
|
+
// cannot tell whether the rest was paid since. The line is the innermost
|
|
783
|
+
// container holding the field (the editor lays each summary line out as a row
|
|
784
|
+
// of texts), and only when the field is all it holds: a container that also
|
|
785
|
+
// holds a block or another field is the merchant's own, and stays.
|
|
786
|
+
var AMOUNT_DUE_FIELD = /\\bInvoice\\??\\.amountDue\\b/;
|
|
787
|
+
|
|
788
|
+
function isPaidAmountDueLine(content, scope) {
|
|
789
|
+
var inv = scope.invoiceData && scope.invoiceData.Invoice;
|
|
790
|
+
if (!inv || !isSettledInvoice(inv.status)) return false;
|
|
791
|
+
var fields = { amountDue: 0, other: 0 };
|
|
792
|
+
return countLineFields(content.children, fields) && fields.amountDue > 0 && fields.other === 0;
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
// Counts the fields a line prints into \`fields\`; false when it holds anything
|
|
796
|
+
// but text, which makes it a block rather than a line.
|
|
797
|
+
function countLineFields(children, fields) {
|
|
798
|
+
var list = children || [];
|
|
799
|
+
for (var i = 0; i < list.length; i++) {
|
|
800
|
+
var child = list[i];
|
|
801
|
+
if (!child || child.type === 'static') continue;
|
|
802
|
+
if (child.type === 'expr') {
|
|
803
|
+
if (AMOUNT_DUE_FIELD.test(String(child.content))) fields.amountDue++;
|
|
804
|
+
else fields.other++;
|
|
805
|
+
continue;
|
|
806
|
+
}
|
|
807
|
+
var isText = child.type === 'element' && child.content && child.content.elementType === 'text';
|
|
808
|
+
if (!isText || !countLineFields(child.content.children, fields)) return false;
|
|
809
|
+
}
|
|
810
|
+
return true;
|
|
811
|
+
}
|
|
812
|
+
|
|
729
813
|
function renderNode(node, scope, componentName, depth) {
|
|
730
814
|
if (!node) return '';
|
|
731
815
|
if (typeof depth !== 'number') depth = 0;
|
|
@@ -781,6 +865,10 @@ function renderNode(node, scope, componentName, depth) {
|
|
|
781
865
|
return fragChildren.map(function (c) { return renderNode(c, scope, componentName, depth); }).join('');
|
|
782
866
|
}
|
|
783
867
|
|
|
868
|
+
if (elementType === 'container' && isPaidAmountDueLine(content, scope)) {
|
|
869
|
+
return '';
|
|
870
|
+
}
|
|
871
|
+
|
|
784
872
|
var tag = content.semanticType || elementTypeToTag(elementType);
|
|
785
873
|
var baseClass = classNameForNode(componentName, content.name);
|
|
786
874
|
var referencedClasses = collectReferencedStyleClasses(content.referencedStyles);
|
|
@@ -1014,11 +1102,14 @@ function buildFallbackInvoiceHtml(scope) {
|
|
|
1014
1102
|
}
|
|
1015
1103
|
totalsRows += '<div style="display:flex;justify-content:space-between;font-weight:bold;border-top:2px solid #333;padding-top:4px;"><span>Total</span><span>' + escapeHtml(inv.total) + '</span></div>';
|
|
1016
1104
|
// A gift card settles part (or all) of the total, so what is left to pay is
|
|
1017
|
-
// printed beneath it — 0.00 included, which is the buyer's proof of that
|
|
1105
|
+
// printed beneath it — 0.00 included, which is the buyer's proof of that —
|
|
1106
|
+
// until the invoice is paid, whose paid date says nothing is left.
|
|
1018
1107
|
if (inv.hasGiftCard === 'true') {
|
|
1019
1108
|
var giftCardLabel = 'Paid by gift card' + (inv.giftCardLast4 ? ' \\u2022\\u2022\\u2022\\u2022' + inv.giftCardLast4 : '');
|
|
1020
1109
|
totalsRows += '<div style="display:flex;justify-content:space-between;margin-top:4px;margin-bottom:4px;"><span>' + escapeHtml(giftCardLabel) + '</span><span>\\u2212' + escapeHtml(inv.giftCardAmount) + '</span></div>';
|
|
1021
|
-
|
|
1110
|
+
if (!isSettledInvoice(inv.status)) {
|
|
1111
|
+
totalsRows += '<div style="display:flex;justify-content:space-between;font-weight:bold;"><span>Amount due</span><span>' + escapeHtml(inv.amountDue) + '</span></div>';
|
|
1112
|
+
}
|
|
1022
1113
|
}
|
|
1023
1114
|
parts.push('<div style="display:flex;justify-content:flex-end;margin-top:16px;"><div style="width:240px;">' +
|
|
1024
1115
|
totalsRows +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoice-html-code.js","sourceRoot":"","sources":["../../../src/invoice/invoice-html-code.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"invoice-html-code.js","sourceRoot":"","sources":["../../../src/invoice/invoice-html-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-delete-current.d.ts","sourceRoot":"","sources":["../../../../src/nodes/account/account-delete-current.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"account-delete-current.d.ts","sourceRoot":"","sources":["../../../../src/nodes/account/account-delete-current.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AAqFhE,eAAO,MAAM,oBAAoB,EAAE,oBAUlC,CAAA"}
|
|
@@ -16,10 +16,13 @@ async function account_delete_current(config, context) {
|
|
|
16
16
|
if (typeof runLocale === 'string' && runLocale) {
|
|
17
17
|
deleteHeaders['x-teleport-locale'] = runLocale;
|
|
18
18
|
}
|
|
19
|
+
// A template that asks for the password passes what the visitor typed; the
|
|
20
|
+
// route checks it the way sign-in does and deletes nothing when it is wrong.
|
|
21
|
+
const password = config && typeof config.password === 'string' ? config.password : '';
|
|
19
22
|
const response = await fetch(baseUrl + '/api/account/delete-current', {
|
|
20
23
|
method: 'POST',
|
|
21
24
|
headers: deleteHeaders,
|
|
22
|
-
body:
|
|
25
|
+
body: JSON.stringify(password ? { password } : {}),
|
|
23
26
|
});
|
|
24
27
|
let data = {};
|
|
25
28
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-delete-current.js","sourceRoot":"","sources":["../../../../src/nodes/account/account-delete-current.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;AAEhE,8EAA8E;AAC9E,yEAAyE;AACzE,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAChF,+EAA+E;AAC/E,uEAAuE;AACvE,KAAK,UAAU,sBAAsB,CAAC,MAAW,EAAE,OAAgC;IACjF,MAAM,OAAO,GAAG,CAAC,OAAO,IAAK,OAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAE7D,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,aAAa,GAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;IACjE,MAAM,SAAS,GAAG,OAAO,IAAK,OAAe,CAAC,QAAQ,CAAA;IACtD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,EAAE;QAC9C,aAAa,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAA;KAC/C;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,GAAG,6BAA6B,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"account-delete-current.js","sourceRoot":"","sources":["../../../../src/nodes/account/account-delete-current.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;AAEhE,8EAA8E;AAC9E,yEAAyE;AACzE,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAChF,+EAA+E;AAC/E,uEAAuE;AACvE,KAAK,UAAU,sBAAsB,CAAC,MAAW,EAAE,OAAgC;IACjF,MAAM,OAAO,GAAG,CAAC,OAAO,IAAK,OAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAE7D,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,aAAa,GAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;IACjE,MAAM,SAAS,GAAG,OAAO,IAAK,OAAe,CAAC,QAAQ,CAAA;IACtD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,EAAE;QAC9C,aAAa,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAA;KAC/C;IACD,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IACrF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,GAAG,6BAA6B,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC,CAAA;IAEF,IAAI,IAAI,GAAQ,EAAE,CAAA;IAClB,IAAI;QACF,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;KAC7B;IAAC,OAAO,EAAE,EAAE,GAAE;IAEf,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,0BAA0B,CAAC,CAAA;KACpE;IAED,+EAA+E;IAC/E,yEAAyE;IACzE,6EAA6E;IAC7E,0CAA0C;IAC1C,MAAM,aAAa,GACjB,CAAC,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAA;IAC/E,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,UAAU,EAAE;QAChE,IAAI;YACF,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;SACjD;QAAC,OAAO,EAAE,EAAE,GAAE;KAChB;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;SACrD;QAAC,OAAO,EAAE,EAAE,GAAE;QACf,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QAE/F,MAAM,OAAO,GACX,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,yDAAyD,CAAA;QAChG,0EAA0E;QAC1E,6EAA6E;QAC7E,sCAAsC;QACtC,IAAI;YACF,MAAM,GAAG,GAAG,MAAa,CAAA;YACzB,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YAC5C,EAAE,CAAC,WAAW,GAAG,OAAO,CAAA;YACxB,EAAE,CAAC,YAAY,CACb,OAAO,EACP,wEAAwE;gBACtE,wEAAwE;gBACxE,uEAAuE;gBACvE,wEAAwE,CAC3E,CAAA;YACD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;SAClC;QAAC,OAAO,EAAE,EAAE,GAAE;QAEf,oEAAoE;QACpE,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,SAAS,CAAC,CAAA;QAChG,MAAM,CAAC,UAAU,CAAC;YAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAA;QACnC,CAAC,EAAE,IAAI,CAAC,CAAA;KACT;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAyB;IACxD,QAAQ,EAAE,wBAAwB;IAClC,YAAY,EAAE,QAAQ;IACtB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE;QACZ,WAAW,EAAE,SAAS;KACvB;IACD,eAAe;QACb,OAAO,eAAe,CAAC,sBAAsB,CAAC,CAAA;IAChD,CAAC;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-hash-password.d.ts","sourceRoot":"","sources":["../../../../src/nodes/account/account-hash-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA8ChE,eAAO,MAAM,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"account-hash-password.d.ts","sourceRoot":"","sources":["../../../../src/nodes/account/account-hash-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,UAAU,CAAA;AA8ChE,eAAO,MAAM,mBAAmB,EAAE,oBAUjC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-hash-password.js","sourceRoot":"","sources":["../../../../src/nodes/account/account-hash-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;AAEhE,KAAK,UAAU,qBAAqB,CAAC,MAAW,EAAE,OAAgC;IAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAChC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnF,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;KACxC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEpC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;KAC5C;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;KACnD;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,EAAE,EAAE;QACtE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;IAED,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,aAAa,GACjB,OAAO,uBAAuB,KAAK,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAA;IACpF,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAEtC,MAAM,MAAM,GAAI,UAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAA;IAChE,MAAM,GAAG,GAAG,MAAM;SACf,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;SAC5B,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAE7C,OAAO,EAAE,IAAI,EAAE,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAyB;IACvD,QAAQ,EAAE,uBAAuB;IACjC,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE;QACZ,QAAQ,EAAE,QAAQ;KACnB;IACD,eAAe;QACb,OAAO,eAAe,CAAC,qBAAqB,CAAC,CAAA;IAC/C,CAAC;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"account-hash-password.js","sourceRoot":"","sources":["../../../../src/nodes/account/account-hash-password.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,UAAU,CAAA;AAEhE,KAAK,UAAU,qBAAqB,CAAC,MAAW,EAAE,OAAgC;IAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAChC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnF,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;KACxC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEpC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;KAC5C;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;KACnD;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,EAAE,EAAE;QACtE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;IAED,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,aAAa,GACjB,OAAO,uBAAuB,KAAK,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAA;IACpF,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAEtC,MAAM,MAAM,GAAI,UAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAA;IAChE,MAAM,GAAG,GAAG,MAAM;SACf,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;SAC5B,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAE7C,OAAO,EAAE,IAAI,EAAE,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAyB;IACvD,QAAQ,EAAE,uBAAuB;IACjC,YAAY,EAAE,QAAQ;IACtB,kBAAkB,EAAE,IAAI;IACxB,YAAY,EAAE;QACZ,QAAQ,EAAE,QAAQ;KACnB;IACD,eAAe;QACb,OAAO,eAAe,CAAC,qBAAqB,CAAC,CAAA;IAC/C,CAAC;CACF,CAAA"}
|
|
@@ -5,6 +5,12 @@ export interface NodeHandlerGenerator {
|
|
|
5
5
|
nodeType: string;
|
|
6
6
|
executionEnv: 'client' | 'server' | 'universal';
|
|
7
7
|
isTerminal?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* The node's result is a credential (a password hash). A server segment
|
|
10
|
+
* never replies it as it is: the browser receives it sealed, and only the
|
|
11
|
+
* app's own later server segments can open it (see credential-results.ts).
|
|
12
|
+
*/
|
|
13
|
+
resultIsCredential?: boolean;
|
|
8
14
|
dependencies?: Record<string, string>;
|
|
9
15
|
generateHandler(): string;
|
|
10
16
|
generateServerHandler?(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/nodes/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAE/F,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAErD;AAkCD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAwEhF;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAA;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,eAAe,IAAI,MAAM,CAAA;IACzB,qBAAqB,CAAC,IAAI,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/nodes/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAE/F,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAErD;AAkCD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAwEhF;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAA;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,eAAe,IAAI,MAAM,CAAA;IACzB,qBAAqB,CAAC,IAAI,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB"}
|
|
@@ -27,6 +27,14 @@
|
|
|
27
27
|
* that needs a trustworthy figure (a price, an owner) reads it from the
|
|
28
28
|
* database itself.
|
|
29
29
|
*
|
|
30
|
+
* A result that is a credential (a password hash, see credential-results.ts)
|
|
31
|
+
* makes the same trip SEALED: `segmentReply` replies it encrypted with a key
|
|
32
|
+
* derived from NEXTAUTH_SECRET (AES-256-GCM) and signs the sealed form, and
|
|
33
|
+
* `claimSegmentContext` opens every sealed value a request hands it (a
|
|
34
|
+
* relayed result once its signature holds). The browser relays it without
|
|
35
|
+
* ever reading it, and a later segment's reply hands back the sealed form,
|
|
36
|
+
* never the opened one.
|
|
37
|
+
*
|
|
30
38
|
* The facts about the graph each route needs are baked into its
|
|
31
39
|
* SEGMENT_CONFIG at generation time (see segment-trust.ts).
|
|
32
40
|
*/
|