@teleporthq/teleport-plugin-next-workflows 0.43.75 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/booking-calendar-feed-route.test.ts +494 -0
- package/__tests__/custom-node-result-taken-branch.test.ts +107 -0
- package/__tests__/data-api-date-parser.test.ts +45 -0
- package/__tests__/invoice-billing-details.test.ts +278 -0
- package/__tests__/middleware-admin-panel-roles.test.ts +127 -0
- package/__tests__/page-arrival-remount.test.ts +247 -0
- package/__tests__/payment-drivers-module.test.ts +19 -0
- package/__tests__/raw-query-error-code.test.ts +47 -0
- package/__tests__/runtime-template-token-resolution.test.ts +16 -0
- package/__tests__/segment-reply-changed-keys.test.ts +31 -0
- package/__tests__/segment-route-skipped-branch.test.ts +101 -0
- package/dist/cjs/api-route-generator.d.ts.map +1 -1
- package/dist/cjs/api-route-generator.js +23 -13
- 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 +75 -27
- package/dist/cjs/auth-generator.js.map +1 -1
- package/dist/cjs/booking-calendar-feed-route-generator.d.ts +28 -0
- package/dist/cjs/booking-calendar-feed-route-generator.d.ts.map +1 -0
- package/dist/cjs/booking-calendar-feed-route-generator.js +296 -0
- package/dist/cjs/booking-calendar-feed-route-generator.js.map +1 -0
- package/dist/cjs/data-api-route-generator.d.ts.map +1 -1
- package/dist/cjs/data-api-route-generator.js +6 -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 +30 -2
- package/dist/cjs/executor-generator.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/invoice/invoice-assembly-code.d.ts.map +1 -1
- package/dist/cjs/invoice/invoice-assembly-code.js +46 -6
- package/dist/cjs/invoice/invoice-assembly-code.js.map +1 -1
- package/dist/cjs/invoice/invoice-html-code.d.ts.map +1 -1
- package/dist/cjs/invoice/invoice-html-code.js +10 -2
- package/dist/cjs/invoice/invoice-html-code.js.map +1 -1
- package/dist/cjs/nodes/data/data-raw-query.d.ts.map +1 -1
- package/dist/cjs/nodes/data/data-raw-query.js +11 -1
- package/dist/cjs/nodes/data/data-raw-query.js.map +1 -1
- package/dist/cjs/nodes/general/general-custom-js.d.ts.map +1 -1
- package/dist/cjs/nodes/general/general-custom-js.js +11 -0
- package/dist/cjs/nodes/general/general-custom-js.js.map +1 -1
- package/dist/cjs/page-arrival.d.ts +10 -0
- package/dist/cjs/page-arrival.d.ts.map +1 -0
- package/dist/cjs/page-arrival.js +86 -0
- package/dist/cjs/page-arrival.js.map +1 -0
- package/dist/cjs/payments/index.d.ts +10 -4
- package/dist/cjs/payments/index.d.ts.map +1 -1
- package/dist/cjs/payments/index.js +18 -7
- package/dist/cjs/payments/index.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 +35 -149
- package/dist/cjs/workflow-component-plugin.js.map +1 -1
- package/dist/cjs/workflow-project-plugin.d.ts.map +1 -1
- package/dist/cjs/workflow-project-plugin.js +14 -4
- package/dist/cjs/workflow-project-plugin.js.map +1 -1
- package/dist/cjs/workflow-scope.d.ts +19 -0
- package/dist/cjs/workflow-scope.d.ts.map +1 -0
- package/dist/cjs/workflow-scope.js +147 -0
- package/dist/cjs/workflow-scope.js.map +1 -0
- package/dist/esm/api-route-generator.d.ts.map +1 -1
- package/dist/esm/api-route-generator.js +23 -13
- 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 +75 -27
- package/dist/esm/auth-generator.js.map +1 -1
- package/dist/esm/booking-calendar-feed-route-generator.d.ts +28 -0
- package/dist/esm/booking-calendar-feed-route-generator.d.ts.map +1 -0
- package/dist/esm/booking-calendar-feed-route-generator.js +291 -0
- package/dist/esm/booking-calendar-feed-route-generator.js.map +1 -0
- package/dist/esm/data-api-route-generator.d.ts.map +1 -1
- package/dist/esm/data-api-route-generator.js +6 -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 +30 -2
- package/dist/esm/executor-generator.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/invoice/invoice-assembly-code.d.ts.map +1 -1
- package/dist/esm/invoice/invoice-assembly-code.js +46 -6
- package/dist/esm/invoice/invoice-assembly-code.js.map +1 -1
- package/dist/esm/invoice/invoice-html-code.d.ts.map +1 -1
- package/dist/esm/invoice/invoice-html-code.js +10 -2
- package/dist/esm/invoice/invoice-html-code.js.map +1 -1
- package/dist/esm/nodes/data/data-raw-query.d.ts.map +1 -1
- package/dist/esm/nodes/data/data-raw-query.js +11 -1
- package/dist/esm/nodes/data/data-raw-query.js.map +1 -1
- package/dist/esm/nodes/general/general-custom-js.d.ts.map +1 -1
- package/dist/esm/nodes/general/general-custom-js.js +11 -0
- package/dist/esm/nodes/general/general-custom-js.js.map +1 -1
- package/dist/esm/page-arrival.d.ts +10 -0
- package/dist/esm/page-arrival.d.ts.map +1 -0
- package/dist/esm/page-arrival.js +81 -0
- package/dist/esm/page-arrival.js.map +1 -0
- package/dist/esm/payments/index.d.ts +10 -4
- package/dist/esm/payments/index.d.ts.map +1 -1
- package/dist/esm/payments/index.js +16 -6
- package/dist/esm/payments/index.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 +32 -146
- package/dist/esm/workflow-component-plugin.js.map +1 -1
- package/dist/esm/workflow-project-plugin.d.ts.map +1 -1
- package/dist/esm/workflow-project-plugin.js +14 -4
- package/dist/esm/workflow-project-plugin.js.map +1 -1
- package/dist/esm/workflow-scope.d.ts +19 -0
- package/dist/esm/workflow-scope.d.ts.map +1 -0
- package/dist/esm/workflow-scope.js +142 -0
- package/dist/esm/workflow-scope.js.map +1 -0
- package/package.json +4 -4
- package/src/api-route-generator.ts +23 -13
- package/src/auth-generator.ts +80 -25
- package/src/booking-calendar-feed-route-generator.ts +293 -0
- package/src/data-api-route-generator.ts +6 -1
- package/src/executor-generator.ts +30 -2
- package/src/index.ts +1 -0
- package/src/invoice/invoice-assembly-code.ts +46 -6
- package/src/invoice/invoice-html-code.ts +10 -2
- package/src/nodes/data/data-raw-query.ts +11 -1
- package/src/nodes/general/general-custom-js.ts +10 -0
- package/src/page-arrival.ts +115 -0
- package/src/payments/index.ts +18 -5
- package/src/workflow-component-plugin.ts +43 -188
- package/src/workflow-project-plugin.ts +15 -4
- package/src/workflow-scope.ts +184 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { loadHandler } from './_helpers/load-handler'
|
|
2
|
+
|
|
3
|
+
// A statement that raises on purpose (a seat race lost, a slot taken) is told
|
|
4
|
+
// apart from a broken one by the SQLSTATE the data route answers with — the
|
|
5
|
+
// route keeps the database's message in its own log, so the code is all a
|
|
6
|
+
// workflow can read.
|
|
7
|
+
|
|
8
|
+
async function runAgainst(response: { ok: boolean; body: unknown }): Promise<any> {
|
|
9
|
+
const fetchMock = jest.fn(async () => ({
|
|
10
|
+
ok: response.ok,
|
|
11
|
+
json: async () => response.body,
|
|
12
|
+
}))
|
|
13
|
+
const originalFetch = (globalThis as any).fetch
|
|
14
|
+
;(globalThis as any).fetch = fetchMock
|
|
15
|
+
try {
|
|
16
|
+
const handler = loadHandler('data-raw-query')
|
|
17
|
+
return await handler({ dataSourceId: 'ds', query: 'SELECT 1', params: [] }, {})
|
|
18
|
+
} finally {
|
|
19
|
+
;(globalThis as any).fetch = originalFetch
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
describe('data-raw-query — a database error reaches the workflow with its SQLSTATE', () => {
|
|
24
|
+
it('passes the route’s code on beside the error', async () => {
|
|
25
|
+
const result = await runAgainst({
|
|
26
|
+
ok: false,
|
|
27
|
+
body: { error: 'Internal server error', code: '2203A' },
|
|
28
|
+
})
|
|
29
|
+
expect(result).toEqual({
|
|
30
|
+
rows: [],
|
|
31
|
+
result: [],
|
|
32
|
+
error: 'Internal server error',
|
|
33
|
+
code: '2203A',
|
|
34
|
+
})
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
it('answers no code when the route gave none', async () => {
|
|
38
|
+
const result = await runAgainst({ ok: false, body: { error: 'INVALID_SQL_IDENTIFIER' } })
|
|
39
|
+
expect(result).toEqual({ rows: [], result: [], error: 'INVALID_SQL_IDENTIFIER' })
|
|
40
|
+
expect('code' in result).toBe(false)
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('answers the rows of a statement that went through', async () => {
|
|
44
|
+
const result = await runAgainst({ ok: true, body: { rows: [{ code: 'ok' }] } })
|
|
45
|
+
expect(result).toEqual({ rows: [{ code: 'ok' }], result: [{ code: 'ok' }] })
|
|
46
|
+
})
|
|
47
|
+
})
|
|
@@ -132,6 +132,22 @@ describe('workflow runtime template-token resolution', () => {
|
|
|
132
132
|
expect(cfg.columnMappings[0].value).toBeNull()
|
|
133
133
|
})
|
|
134
134
|
|
|
135
|
+
it('never walks into a live element or around a cycle (a trigger target in a custom-js param)', () => {
|
|
136
|
+
const fiber: Record<string, unknown> = {}
|
|
137
|
+
const element: Record<string, unknown> = {
|
|
138
|
+
nodeType: 1,
|
|
139
|
+
nodeName: 'INPUT',
|
|
140
|
+
__reactFiber$abc: fiber,
|
|
141
|
+
}
|
|
142
|
+
fiber.stateNode = element
|
|
143
|
+
const loop: Record<string, unknown> = { a: 1 }
|
|
144
|
+
loop.self = loop
|
|
145
|
+
const cfg = { code: 'x', params: { event: { target: element, value: SENTINEL }, loop } }
|
|
146
|
+
expect(utils.finalizeResolvedConfig('general-custom-js', cfg)).toBeNull()
|
|
147
|
+
expect(cfg.params.event.value).toBeNull()
|
|
148
|
+
expect(cfg.params.event.target).toBe(element)
|
|
149
|
+
})
|
|
150
|
+
|
|
135
151
|
it('leaves configs without sentinels untouched', () => {
|
|
136
152
|
const cfg = { filters: [{ field: 'id', value: null, operator: '=' }] }
|
|
137
153
|
expect(utils.finalizeResolvedConfig('data-select', cfg)).toBeNull()
|
|
@@ -111,6 +111,37 @@ describe('generated server segment — what it replies with', () => {
|
|
|
111
111
|
expect(results).not.toHaveProperty('__pendingNodePromises')
|
|
112
112
|
})
|
|
113
113
|
|
|
114
|
+
it('keeps a result marked keepResultOnServer on the server, for the nodes after it only', async () => {
|
|
115
|
+
const kept: WorkflowSegment = {
|
|
116
|
+
...segment,
|
|
117
|
+
nodes: [
|
|
118
|
+
{ ...calcNode, config: { ...calcNode.config, keepResultOnServer: true } },
|
|
119
|
+
gateNode,
|
|
120
|
+
bigNode,
|
|
121
|
+
],
|
|
122
|
+
}
|
|
123
|
+
const results = (await bootRoute(kept)(request())).body.results || {}
|
|
124
|
+
expect(results).not.toHaveProperty('calc')
|
|
125
|
+
// The gate read it on the server: 42 is not above 100.
|
|
126
|
+
expect(results.gate).toEqual({ result: false })
|
|
127
|
+
expect(results.__skippedNodes).toEqual({ big: true })
|
|
128
|
+
// Nothing is signed for a result that never left.
|
|
129
|
+
expect((results.__sig as Record<string, string>).calc).toBeUndefined()
|
|
130
|
+
})
|
|
131
|
+
|
|
132
|
+
it('still replies with a branching node marked keepResultOnServer: the client branches on it', async () => {
|
|
133
|
+
const kept: WorkflowSegment = {
|
|
134
|
+
...segment,
|
|
135
|
+
nodes: [
|
|
136
|
+
calcNode,
|
|
137
|
+
{ ...gateNode, config: { ...gateNode.config, keepResultOnServer: true } },
|
|
138
|
+
bigNode,
|
|
139
|
+
],
|
|
140
|
+
}
|
|
141
|
+
const results = (await bootRoute(kept)(request())).body.results || {}
|
|
142
|
+
expect(results.gate).toEqual({ result: false })
|
|
143
|
+
})
|
|
144
|
+
|
|
114
145
|
it('still replies with what the route itself adds to the run', async () => {
|
|
115
146
|
const results = (await bootRoute(segment)(request())).body.results || {}
|
|
116
147
|
// The route learns the deployment's origin; a custom node called next
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { generateServerSegmentAPIRoute } from '../src/api-route-generator'
|
|
2
|
+
import type { WorkflowSegment } from '../src/types'
|
|
3
|
+
import { loadServerRuntime } from './_helpers/load-server-runtime'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A server segment never runs a node of an if-statement branch it did not
|
|
7
|
+
* take — an if-statement there included. It used to evaluate those before
|
|
8
|
+
* checking the skip list, and hand their `{ result }`s back: a custom node
|
|
9
|
+
* answers the output of the last node it ran, so the email senders of
|
|
10
|
+
* teleport-gui (one "is it this email?" → send → "was it accepted?" → report
|
|
11
|
+
* branch per purpose, all in one server segment) answered `{ result: false }`
|
|
12
|
+
* instead of their report, and every caller read "not sent" whatever happened.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const purpose = { type: 'workflowContext', nodeId: 'read', path: ['read', 'purpose'] }
|
|
16
|
+
|
|
17
|
+
const ifNode = (id: string, stepNumber: number, leftValue: unknown, rightValue: unknown) => ({
|
|
18
|
+
id,
|
|
19
|
+
type: 'general-if-statement',
|
|
20
|
+
label: id,
|
|
21
|
+
config: { conditionType: 'simple-comparison', leftValue, operator: '===', rightValue },
|
|
22
|
+
executionEnv: 'server',
|
|
23
|
+
stepNumber,
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
const segment = {
|
|
27
|
+
id: 'server-1',
|
|
28
|
+
env: 'server',
|
|
29
|
+
nodeIds: ['isA', 'acceptedA', 'isB', 'acceptedB'],
|
|
30
|
+
nodes: [
|
|
31
|
+
ifNode('isA', 1, purpose, 'a'),
|
|
32
|
+
ifNode('acceptedA', 2, 'yes', 'yes'),
|
|
33
|
+
ifNode('isB', 2, purpose, 'b'),
|
|
34
|
+
// Numbered after the branch that runs: the one an answer used to pick.
|
|
35
|
+
ifNode('acceptedB', 3, 'yes', 'yes'),
|
|
36
|
+
],
|
|
37
|
+
edges: [
|
|
38
|
+
{ id: 'e1', source: 'isA', target: 'acceptedA', sourceHandle: 'true' },
|
|
39
|
+
{ id: 'e2', source: 'isA', target: 'isB', sourceHandle: 'false' },
|
|
40
|
+
{ id: 'e3', source: 'isB', target: 'acceptedB', sourceHandle: 'true' },
|
|
41
|
+
],
|
|
42
|
+
} as unknown as WorkflowSegment
|
|
43
|
+
|
|
44
|
+
async function runSegment(incoming: Record<string, unknown>): Promise<Record<string, any>> {
|
|
45
|
+
const runtime = loadServerRuntime()
|
|
46
|
+
const requireShim = (id: string) => {
|
|
47
|
+
if (id.endsWith('/utils/workflows/server-runtime')) {
|
|
48
|
+
return runtime
|
|
49
|
+
}
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
51
|
+
return require(id)
|
|
52
|
+
}
|
|
53
|
+
const module = { exports: null as any }
|
|
54
|
+
// eslint-disable-next-line no-new-func
|
|
55
|
+
new Function('module', 'exports', 'require', generateServerSegmentAPIRoute(segment, 'Sender'))(
|
|
56
|
+
module,
|
|
57
|
+
{},
|
|
58
|
+
requireShim
|
|
59
|
+
)
|
|
60
|
+
const reply = { status: 0, body: null as any }
|
|
61
|
+
const res = {
|
|
62
|
+
status(code: number) {
|
|
63
|
+
reply.status = code
|
|
64
|
+
return {
|
|
65
|
+
json(payload: unknown) {
|
|
66
|
+
reply.body = payload
|
|
67
|
+
},
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
setHeader: () => undefined,
|
|
71
|
+
}
|
|
72
|
+
await module.exports(
|
|
73
|
+
{
|
|
74
|
+
method: 'POST',
|
|
75
|
+
url: '/api/workflows/sender-seg-1',
|
|
76
|
+
headers: { host: 'shop.test', 'x-forwarded-proto': 'https' },
|
|
77
|
+
body: { context: incoming },
|
|
78
|
+
},
|
|
79
|
+
res
|
|
80
|
+
)
|
|
81
|
+
expect(reply.status).toBe(200)
|
|
82
|
+
return reply.body.results
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
describe('generated server segment route — a branch not taken', () => {
|
|
86
|
+
it('answers the branch it took, and nothing of the one it skipped', async () => {
|
|
87
|
+
const results = await runSegment({ read: { purpose: 'a' } })
|
|
88
|
+
expect(results.isA).toEqual({ result: true })
|
|
89
|
+
expect(results.acceptedA).toEqual({ result: true })
|
|
90
|
+
expect(results).not.toHaveProperty('isB')
|
|
91
|
+
expect(results).not.toHaveProperty('acceptedB')
|
|
92
|
+
expect(results.__skippedNodes).toMatchObject({ isB: true, acceptedB: true })
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
it('runs the other branch when that one is taken', async () => {
|
|
96
|
+
const results = await runSegment({ read: { purpose: 'b' } })
|
|
97
|
+
expect(results.isB).toEqual({ result: true })
|
|
98
|
+
expect(results.acceptedB).toEqual({ result: true })
|
|
99
|
+
expect(results).not.toHaveProperty('acceptedA')
|
|
100
|
+
})
|
|
101
|
+
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-route-generator.d.ts","sourceRoot":"","sources":["../../src/api-route-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EAIb,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAuD9C,MAAM,WAAW,yBAAyB;IACxC,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB;AA4BD,eAAO,MAAM,6BAA6B,YAC/B,eAAe,iBACT,MAAM,eACR,sBAAsB,YAC1B,yBAAyB,KACjC,
|
|
1
|
+
{"version":3,"file":"api-route-generator.d.ts","sourceRoot":"","sources":["../../src/api-route-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,EAIb,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAuD9C,MAAM,WAAW,yBAAyB;IACxC,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB;AA4BD,eAAO,MAAM,6BAA6B,YAC/B,eAAe,iBACT,MAAM,eACR,sBAAsB,YAC1B,yBAAyB,KACjC,MAiXF,CAAA;AAED,eAAO,MAAM,kBAAkB,YAAa,eAAe,KAAG,OAE7D,CAAA;AAED,eAAO,MAAM,sCAAsC,YACxC,eAAe,iBACT,MAAM,eACR,sBAAsB,YAC1B,yBAAyB,KACjC,MA6bF,CAAA;AA4JD,eAAO,MAAM,oBAAoB,aACrB,YAAY,gBACR,OAAO,MAAM,EAAE,sBAAsB,CAAC,KACnD,MAsHF,CAAA;AAED,eAAO,MAAM,mBAAmB,eAClB,MAAM,aACP,MAAM,iBACF,MAAM,KACpB,MA4BF,CAAA;AAED,eAAO,MAAM,oBAAoB,aAAc,YAAY,KAAG,MAa7D,CAAA;AA+RD,eAAO,MAAM,+BAA+B,aAChC,YAAY,gBACR,OAAO,MAAM,EAAE,sBAAsB,CAAC,KACnD,MA0OF,CAAA;AAED,eAAO,MAAM,uBAAuB,aAAc,YAAY,KAAG,MAiBhE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,cAC1B,aAAa,GAAG,SAAS,cACxB,MAAM,KACjB,MAAM,GAAG,IAYX,CAAA;AAED,eAAO,MAAM,mBAAmB,aAAc,YAAY,KAAG,MAAM,EAqBlE,CAAA"}
|
|
@@ -120,6 +120,11 @@ module.exports = async function handler(req, res) {
|
|
|
120
120
|
|
|
121
121
|
for (let i = 0; i < sortedNodes.length; i++) {
|
|
122
122
|
const node = sortedNodes[i];
|
|
123
|
+
// A node of a non-taken if-statement branch is never resolved nor run —
|
|
124
|
+
// an if-statement there included: evaluated, its \`{ result }\` would reach
|
|
125
|
+
// the caller as if that branch had run (a custom node answers the output
|
|
126
|
+
// of the last node it ran).
|
|
127
|
+
if (context.__skippedNodes && context.__skippedNodes[node.id]) continue;
|
|
123
128
|
const resolved = resolveConfig(node.config, context);
|
|
124
129
|
// Every data node lives in a SERVER segment, so this guard — which turns an
|
|
125
130
|
// unresolved {{…}} into a validation error instead of letting the literal
|
|
@@ -156,9 +161,6 @@ module.exports = async function handler(req, res) {
|
|
|
156
161
|
continue;
|
|
157
162
|
}
|
|
158
163
|
|
|
159
|
-
// Skip nodes that were marked as belonging to a non-taken if-statement branch
|
|
160
|
-
if (context.__skippedNodes && context.__skippedNodes[node.id]) continue;
|
|
161
|
-
|
|
162
164
|
// Loop nodes must be handled specially: iterate over the collection,
|
|
163
165
|
// execute loop body nodes for each item, then continue after the loop.
|
|
164
166
|
if (node.type === 'general-loop') {
|
|
@@ -447,6 +449,13 @@ function __isStreamingAI(node, config) {
|
|
|
447
449
|
return config && config.streaming && __streamingAITypes.indexOf(node.type) >= 0;
|
|
448
450
|
}
|
|
449
451
|
|
|
452
|
+
// One node's result to the browser — never one kept on the server (see segmentReply).
|
|
453
|
+
function __streamNodeResult(res, nodeId, result) {
|
|
454
|
+
const kept = SEGMENT_CONFIG.nodes.find(function(nd) { return nd.id === nodeId; });
|
|
455
|
+
if (kept && kept.config && kept.config.keepResultOnServer === true && !utils.isBranchingNodeType(kept.type)) return;
|
|
456
|
+
res.write('data: ' + JSON.stringify({ type: 'node-result', nodeId: nodeId, result: result }) + '\\n\\n');
|
|
457
|
+
}
|
|
458
|
+
|
|
450
459
|
function __collectSegBranchNodes(startId, excludeId) {
|
|
451
460
|
const ids = [];
|
|
452
461
|
const visited = {};
|
|
@@ -522,7 +531,7 @@ module.exports = async function handler(req, res) {
|
|
|
522
531
|
context[node.id] = { result: condResult };
|
|
523
532
|
executed[node.id] = true;
|
|
524
533
|
if (streamStarted) {
|
|
525
|
-
res
|
|
534
|
+
__streamNodeResult(res, node.id, context[node.id]);
|
|
526
535
|
}
|
|
527
536
|
continue;
|
|
528
537
|
}
|
|
@@ -589,7 +598,7 @@ module.exports = async function handler(req, res) {
|
|
|
589
598
|
Object.keys(ssBodyNodeIds).forEach(function(k) { executed[k] = true; });
|
|
590
599
|
executed[node.id] = true;
|
|
591
600
|
if (streamStarted) {
|
|
592
|
-
res
|
|
601
|
+
__streamNodeResult(res, node.id, context[node.id]);
|
|
593
602
|
}
|
|
594
603
|
continue;
|
|
595
604
|
}
|
|
@@ -629,7 +638,7 @@ module.exports = async function handler(req, res) {
|
|
|
629
638
|
}
|
|
630
639
|
});
|
|
631
640
|
if (streamStarted) {
|
|
632
|
-
res
|
|
641
|
+
__streamNodeResult(res, node.id, context[node.id]);
|
|
633
642
|
}
|
|
634
643
|
continue;
|
|
635
644
|
}
|
|
@@ -707,7 +716,7 @@ module.exports = async function handler(req, res) {
|
|
|
707
716
|
executed[node.id] = true;
|
|
708
717
|
if (resolved.stopOnError && ssParallelErrors.length > 0) throw new Error(ssParallelErrors[0]);
|
|
709
718
|
if (streamStarted) {
|
|
710
|
-
res
|
|
719
|
+
__streamNodeResult(res, node.id, context[node.id]);
|
|
711
720
|
}
|
|
712
721
|
continue;
|
|
713
722
|
}
|
|
@@ -746,7 +755,7 @@ module.exports = async function handler(req, res) {
|
|
|
746
755
|
}
|
|
747
756
|
const snResult = await snHandler(snResolved, context);
|
|
748
757
|
context[sn.id] = snResult;
|
|
749
|
-
res
|
|
758
|
+
__streamNodeResult(res, sn.id, snResult);
|
|
750
759
|
}
|
|
751
760
|
});
|
|
752
761
|
// A provider/auth failure surfaces as { error: true, message, code }.
|
|
@@ -756,7 +765,7 @@ module.exports = async function handler(req, res) {
|
|
|
756
765
|
throw new Error(utils.fatalNodeResultMessage(result));
|
|
757
766
|
}
|
|
758
767
|
context[node.id] = result;
|
|
759
|
-
res
|
|
768
|
+
__streamNodeResult(res, node.id, result);
|
|
760
769
|
|
|
761
770
|
for (let oi = 0; oi < onEndNodes.length; oi++) {
|
|
762
771
|
const en = onEndNodes[oi];
|
|
@@ -771,7 +780,7 @@ module.exports = async function handler(req, res) {
|
|
|
771
780
|
}
|
|
772
781
|
const enResult = await enHandler(enResolved, context);
|
|
773
782
|
context[en.id] = enResult;
|
|
774
|
-
res
|
|
783
|
+
__streamNodeResult(res, en.id, enResult);
|
|
775
784
|
executed[en.id] = true;
|
|
776
785
|
}
|
|
777
786
|
for (let si2 = 0; si2 < onStreamNodes.length; si2++) {
|
|
@@ -804,7 +813,7 @@ module.exports = async function handler(req, res) {
|
|
|
804
813
|
}
|
|
805
814
|
context[node.id] = result;
|
|
806
815
|
if (streamStarted) {
|
|
807
|
-
res
|
|
816
|
+
__streamNodeResult(res, node.id, result);
|
|
808
817
|
}
|
|
809
818
|
if (result && result.__terminal) break;
|
|
810
819
|
}
|
|
@@ -1165,6 +1174,9 @@ const generateNodeExecutionLoop = (configVar, options) => {
|
|
|
1165
1174
|
|
|
1166
1175
|
for (var i = 0; i < sortedNodes.length; i++) {
|
|
1167
1176
|
var node = sortedNodes[i];
|
|
1177
|
+
// Never resolved nor run on a non-taken branch, an if-statement included
|
|
1178
|
+
// (see the segment executor above).
|
|
1179
|
+
if (context.__skippedNodes && context.__skippedNodes[node.id]) continue;
|
|
1168
1180
|
var resolved = resolveConfig(node.config, context);
|
|
1169
1181
|
// See the other segment executors — the unresolved-token guard must run
|
|
1170
1182
|
// wherever data nodes execute, and they all execute on the server.
|
|
@@ -1195,8 +1207,6 @@ const generateNodeExecutionLoop = (configVar, options) => {
|
|
|
1195
1207
|
continue;
|
|
1196
1208
|
}
|
|
1197
1209
|
|
|
1198
|
-
if (context.__skippedNodes && context.__skippedNodes[node.id]) continue;
|
|
1199
|
-
|
|
1200
1210
|
if (node.type === 'general-loop') {
|
|
1201
1211
|
var loopEdges = ${configVar}.edges.filter(function(e) { return e.source === node.id; });
|
|
1202
1212
|
var loopBodyEdge = loopEdges.find(function(e) { return e.sourceHandle === 'loop'; });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-route-generator.js","sourceRoot":"","sources":["../../src/api-route-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-route-generator.js","sourceRoot":"","sources":["../../src/api-route-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-generator.d.ts","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,cAAc,EACf,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"auth-generator.d.ts","sourceRoot":"","sources":["../../src/auth-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,cAAc,EACf,MAAM,4BAA4B,CAAA;AAsBnC,eAAO,MAAM,6BAA6B,mBACxB,cAAc,GAAG,IAAI,KACpC,OAAO,MAAM,EAAE,MAAM,CA0BvB,CAAA;AAwID;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAA;AAE7C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAQrD,CAAA;AAKD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAalD,CAAA;AAWD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,WACzB,OAAO,MAAM,EAAE,mBAAmB,EAAE,CAAC,GAAG,SAAS,eAC5C,sBAAsB,EAAE,KACpC,MAAM,EAQR,CAAA;AAwbD,eAAO,MAAM,uBAAuB,SAC5B,kBAAkB,qBACL,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KAChD,MAoIF,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,QAAO,MA6ChD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,QAAO,MAkD3C,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,MA4B3C,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,MAwG5C,CAAA;AAMD,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IAGtB,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,uBAAuB,SAC5B,kBAAkB,YACf,mBAAmB,KAC3B,MAgLF,CAAA;AA2ED,MAAM,WAAW,iBAAiB;IAIhC,yBAAyB,CAAC,EAAE,MAAM,CAAA;CACnC;AA4FD,eAAO,MAAM,sBAAsB,SAC3B,kBAAkB,YACf,iBAAiB,KACzB,MA2bF,CAAA;AAoBD,eAAO,MAAM,8BAA8B,QAAO,MA6BjD,CAAA;AAED,eAAO,MAAM,8BAA8B,QAAO,MAiHjD,CAAA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateSessionProviderWrapper = exports.generateNextAuthUrlGuardModule = exports.generateMiddlewareFile = exports.generateSignupRouteFile = exports.generateNextAuthRouteFile = exports.generateHashPasswordFile = exports.generateAuthDbHealthFile = exports.generateAuthErrorMessagesFile = exports.generateAuthOptionsFile = exports.buildSessionUserFields = exports.SENSITIVE_USER_FIELDS = exports.SESSION_SAFE_USER_FIELDS = exports.USER_REFRESH_INTERVAL_MS = exports.getDatabaseDriverDependencies = void 0;
|
|
4
4
|
const transactional_email_code_1 = require("./transactional-email-code");
|
|
5
|
+
const teleport_shared_1 = require("@teleporthq/teleport-shared");
|
|
5
6
|
const session_cookie_resolver_1 = require("./session-cookie-resolver");
|
|
6
7
|
// GUI provider id → the actual next-auth v4 provider MODULE name, for the few
|
|
7
8
|
// cases where they differ. Everything else uses the id as the module name.
|
|
@@ -1282,8 +1283,67 @@ const selfGuardedRoutePatternOf = (protection) => {
|
|
|
1282
1283
|
}
|
|
1283
1284
|
return base === '/' ? `/[${differentiator}]` : `${base}/[${differentiator}]`;
|
|
1284
1285
|
};
|
|
1286
|
+
/** The same-site path the project redirects `/` to, or null (absent, `/` itself, or off-site). */
|
|
1287
|
+
const resolveHomeRedirect = (auth) => {
|
|
1288
|
+
const value = typeof auth.homeRedirect === 'string' ? auth.homeRedirect : '';
|
|
1289
|
+
const path = value.split('?')[0].split('#')[0];
|
|
1290
|
+
if (!path.startsWith('/') || path.startsWith('//') || path.indexOf('\\') !== -1) {
|
|
1291
|
+
return null;
|
|
1292
|
+
}
|
|
1293
|
+
const normalized = path.length > 1 ? path.replace(/\/+$/, '') : path;
|
|
1294
|
+
return normalized === '/' ? null : normalized;
|
|
1295
|
+
};
|
|
1296
|
+
/**
|
|
1297
|
+
* Where a signed-in visitor without the role a page asks for lands. A project
|
|
1298
|
+
* whose home page is not redirected keeps the code it always had. One that
|
|
1299
|
+
* redirects `/` (e.g. to an admin dashboard) only sends a visitor home when
|
|
1300
|
+
* that page admits them; otherwise to sign-in, saying why.
|
|
1301
|
+
*/
|
|
1302
|
+
const generateRoleDeniedRedirectCode = (signInRoute, homeRedirect) => {
|
|
1303
|
+
if (!homeRedirect) {
|
|
1304
|
+
return `// Where to send an authenticated user who lacks the required role. Normally the
|
|
1305
|
+
// home page ("you don't have access, here's the public site"). But when "/" is
|
|
1306
|
+
// itself a protected page (e.g. an admin dashboard published at the root), a
|
|
1307
|
+
// redirect to "/" re-enters this middleware and loops forever — so fall back to
|
|
1308
|
+
// the sign-in page (with a callbackUrl) in that case.
|
|
1309
|
+
function roleDeniedRedirect(request, pathname) {
|
|
1310
|
+
if (pathname !== '/' && !protectedRoutes['/']) {
|
|
1311
|
+
return redirectWithinLocale(request, '/');
|
|
1312
|
+
}
|
|
1313
|
+
return redirectWithinLocale(request, '${signInRoute}', pathname);
|
|
1314
|
+
}`;
|
|
1315
|
+
}
|
|
1316
|
+
return `// The project redirects "/" here before this middleware ever runs.
|
|
1317
|
+
var homeRedirect = ${JSON.stringify(homeRedirect)};
|
|
1318
|
+
|
|
1319
|
+
// Whether "/" is a way out for this visitor: the page it redirects to is not
|
|
1320
|
+
// the one being left, and admits their role. Otherwise sending them home would
|
|
1321
|
+
// land them right back on a page that refuses them — a redirect loop.
|
|
1322
|
+
function homeAdmitsRole(pathname, userRole) {
|
|
1323
|
+
var landing = normalizeMatchPath(homeRedirect);
|
|
1324
|
+
if (landing === normalizeMatchPath(pathname)) return false;
|
|
1325
|
+
var protection = resolveProtection(landing).matched;
|
|
1326
|
+
if (!protection) return true;
|
|
1327
|
+
if (protection.requiresSubscription) return false;
|
|
1328
|
+
var roles = protection.allowedRoles || [];
|
|
1329
|
+
return roles.length === 0 || roles.indexOf(userRole) >= 0;
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
// Where to send an authenticated user who lacks the required role: home when
|
|
1333
|
+
// home admits them, else the sign-in page, which is told why (error=forbidden)
|
|
1334
|
+
// and keeps a callbackUrl for an account that may open the page.
|
|
1335
|
+
function roleDeniedRedirect(request, pathname, userRole) {
|
|
1336
|
+
if (pathname !== '/' && !protectedRoutes['/'] && homeAdmitsRole(pathname, userRole)) {
|
|
1337
|
+
return redirectWithinLocale(request, '/');
|
|
1338
|
+
}
|
|
1339
|
+
var target = new URL(localizePathname(request, '${signInRoute}'), request.url);
|
|
1340
|
+
target.searchParams.set('callbackUrl', localizePathname(request, pathname));
|
|
1341
|
+
target.searchParams.set('error', 'forbidden');
|
|
1342
|
+
return NextResponse.redirect(target);
|
|
1343
|
+
}`;
|
|
1344
|
+
};
|
|
1285
1345
|
const generateMiddlewareFile = (auth, options = {}) => {
|
|
1286
|
-
var _a, _b
|
|
1346
|
+
var _a, _b;
|
|
1287
1347
|
const protectedRoutes = {};
|
|
1288
1348
|
// Page ids skipped from `protectedRoutes` because their page-load SQL is the
|
|
1289
1349
|
// access control. Tracked by id (not by route) so the folder pass below can
|
|
@@ -1349,28 +1409,26 @@ const generateMiddlewareFile = (auth, options = {}) => {
|
|
|
1349
1409
|
for (const route of authRoutes) {
|
|
1350
1410
|
delete protectedRoutes[route];
|
|
1351
1411
|
}
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
const ar = (_b = protectedRoutes[k]) === null || _b === void 0 ? void 0 : _b.allowedRoles;
|
|
1358
|
-
if (ar && ar.length > 0) {
|
|
1359
|
-
adminRoles = ar;
|
|
1360
|
-
break;
|
|
1361
|
-
}
|
|
1362
|
-
}
|
|
1363
|
-
}
|
|
1412
|
+
// `/admin` itself, and every admin page the map has no entry for (one an
|
|
1413
|
+
// owner added without protection), admit the admin panel's own roles — its
|
|
1414
|
+
// folder's — never the first admin route's, which may also admit another
|
|
1415
|
+
// role (a staff dashboard).
|
|
1416
|
+
const sawAdminRoute = Object.keys(protectedRoutes).some((k) => k === '/admin' || k.indexOf('/admin/') === 0);
|
|
1364
1417
|
if (sawAdminRoute && !protectedRoutes['/admin']) {
|
|
1365
|
-
|
|
1418
|
+
const panelRoles = teleport_shared_1.TableAccess.resolveAdminPanelRoles(auth);
|
|
1419
|
+
protectedRoutes['/admin'] = {
|
|
1420
|
+
requiresAuth: true,
|
|
1421
|
+
allowedRoles: panelRoles.length > 0 ? panelRoles : ['admin'],
|
|
1422
|
+
};
|
|
1366
1423
|
}
|
|
1367
1424
|
const protectedRoutesJson = JSON.stringify(protectedRoutes, null, 2);
|
|
1368
1425
|
const authRoutesJson = JSON.stringify(authRoutes);
|
|
1369
1426
|
const selfGuardedRoutesJson = JSON.stringify(selfGuardedRoutes);
|
|
1370
|
-
const signInRoute = ((
|
|
1427
|
+
const signInRoute = ((_b = auth.authPages.signIn) === null || _b === void 0 ? void 0 : _b.route) || '/auth/sign-in';
|
|
1371
1428
|
const subscriptionFallbackRoute = options.subscriptionFallbackRoute && options.subscriptionFallbackRoute.startsWith('/')
|
|
1372
1429
|
? options.subscriptionFallbackRoute
|
|
1373
1430
|
: '/';
|
|
1431
|
+
const homeRedirect = resolveHomeRedirect(auth);
|
|
1374
1432
|
return `import { NextResponse } from 'next/server';
|
|
1375
1433
|
import { getToken } from 'next-auth/jwt';
|
|
1376
1434
|
|
|
@@ -1482,17 +1540,7 @@ function redirectWithinLocale(request, pathname, callbackPath) {
|
|
|
1482
1540
|
return NextResponse.redirect(target);
|
|
1483
1541
|
}
|
|
1484
1542
|
|
|
1485
|
-
|
|
1486
|
-
// home page ("you don't have access, here's the public site"). But when "/" is
|
|
1487
|
-
// itself a protected page (e.g. an admin dashboard published at the root), a
|
|
1488
|
-
// redirect to "/" re-enters this middleware and loops forever — so fall back to
|
|
1489
|
-
// the sign-in page (with a callbackUrl) in that case.
|
|
1490
|
-
function roleDeniedRedirect(request, pathname) {
|
|
1491
|
-
if (pathname !== '/' && !protectedRoutes['/']) {
|
|
1492
|
-
return redirectWithinLocale(request, '/');
|
|
1493
|
-
}
|
|
1494
|
-
return redirectWithinLocale(request, '${signInRoute}', pathname);
|
|
1495
|
-
}
|
|
1543
|
+
${generateRoleDeniedRedirectCode(signInRoute, homeRedirect)}
|
|
1496
1544
|
|
|
1497
1545
|
// Route keys carry no trailing slash, so neither may the path we match with.
|
|
1498
1546
|
// Next.js serves "/orders/ORD-42/" and "/orders/ORD-42" as the same route;
|
|
@@ -1679,7 +1727,7 @@ async function middleware(request) {
|
|
|
1679
1727
|
}
|
|
1680
1728
|
var userRole = getUserRoleFromToken(sessionUser);
|
|
1681
1729
|
if (userRole == null || allowedRoles.indexOf(userRole) < 0) {
|
|
1682
|
-
return roleDeniedRedirect(request, pathname);
|
|
1730
|
+
return roleDeniedRedirect(request, pathname${homeRedirect ? ', userRole' : ''});
|
|
1683
1731
|
}
|
|
1684
1732
|
}
|
|
1685
1733
|
|