@teleporthq/teleport-plugin-next-workflows 0.43.44 → 0.43.46
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/run-generated-middleware.ts +130 -0
- package/__tests__/form-submitted-trigger-context.test.ts +100 -0
- package/__tests__/middleware-guest-order-details.test.ts +258 -0
- package/__tests__/middleware-row-owned-pages.test.ts +32 -9
- package/dist/cjs/auth-generator.d.ts.map +1 -1
- package/dist/cjs/auth-generator.js +115 -11
- package/dist/cjs/auth-generator.js.map +1 -1
- package/dist/cjs/executor-generator.d.ts.map +1 -1
- package/dist/cjs/executor-generator.js +26 -1
- package/dist/cjs/executor-generator.js.map +1 -1
- package/dist/cjs/trigger-generator.js +7 -1
- package/dist/cjs/trigger-generator.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 +27 -2
- package/dist/cjs/workflow-component-plugin.js.map +1 -1
- package/dist/esm/auth-generator.d.ts.map +1 -1
- package/dist/esm/auth-generator.js +115 -11
- package/dist/esm/auth-generator.js.map +1 -1
- package/dist/esm/executor-generator.d.ts.map +1 -1
- package/dist/esm/executor-generator.js +26 -1
- package/dist/esm/executor-generator.js.map +1 -1
- package/dist/esm/trigger-generator.js +7 -1
- package/dist/esm/trigger-generator.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 +27 -2
- package/dist/esm/workflow-component-plugin.js.map +1 -1
- package/package.json +4 -4
- package/src/auth-generator.ts +129 -11
- package/src/executor-generator.ts +26 -1
- package/src/trigger-generator.ts +7 -1
- package/src/workflow-component-plugin.ts +31 -2
|
@@ -255,7 +255,20 @@ export const createNextWorkflowPlugin: ComponentPluginFactory<WorkflowPluginConf
|
|
|
255
255
|
if (elementId) {
|
|
256
256
|
elementTriggers.push({ workflow: wf, elementId, reactProp, triggerConfig })
|
|
257
257
|
} else {
|
|
258
|
-
|
|
258
|
+
// An element-event trigger (click/change/submit/…) with NO bound
|
|
259
|
+
// element cannot fire — the author detached it or never wired it.
|
|
260
|
+
// It used to fall through to lifecycleWorkflows, where the trigger
|
|
261
|
+
// switch has no case for element events: the workflow never
|
|
262
|
+
// executed but its full __wfConfig_* blob still shipped in every
|
|
263
|
+
// page bundle (element scope with no selectedPages matches ALL
|
|
264
|
+
// pages). Skip it entirely — an unbound workflow stays a draft in
|
|
265
|
+
// the project without leaking into the generated app.
|
|
266
|
+
// eslint-disable-next-line no-console
|
|
267
|
+
console.warn(
|
|
268
|
+
`[workflow-plugin] Skipping workflow "${wf.name || wf.id}" on "${uidl.name}" — its ${
|
|
269
|
+
trigger.type
|
|
270
|
+
} trigger has no bound element.`
|
|
271
|
+
)
|
|
259
272
|
}
|
|
260
273
|
} else {
|
|
261
274
|
lifecycleWorkflows.push(wf)
|
|
@@ -1760,13 +1773,29 @@ const generateElementHandler = (et: ElementTriggerInfo): string => {
|
|
|
1760
1773
|
|
|
1761
1774
|
case 'event-form-submitted': {
|
|
1762
1775
|
const preventDefault = config.preventDefault !== false
|
|
1776
|
+
// The submitted fields are spread FLAT onto the trigger context as well as
|
|
1777
|
+
// being available under `formData`.
|
|
1778
|
+
//
|
|
1779
|
+
// WHY: `params[0]` of a top-level custom-js node is the TRIGGER (the
|
|
1780
|
+
// executor writes `context[triggerNodeId]` first), and generated
|
|
1781
|
+
// validators read the form off it directly. Run 4b049fe6's Edit Guild did
|
|
1782
|
+
// `const form = params[0] || {}; … if (!form["name"]) return "Guild Name
|
|
1783
|
+
// is required"` — `params[0].name` was undefined because the fields lived
|
|
1784
|
+
// one level down, so saving a guild whose name was filled in reported the
|
|
1785
|
+
// name as missing. `general-extract-form-data` already returns its fields
|
|
1786
|
+
// flat for exactly this reason; the trigger now matches it, so both
|
|
1787
|
+
// `params[0].name` and `params[0].formData.name` resolve.
|
|
1788
|
+
//
|
|
1789
|
+
// The spread comes FIRST so a field literally named `formData`, `formId`,
|
|
1790
|
+
// `element` or `timestamp` can never shadow the reserved keys the runtime
|
|
1791
|
+
// and the workflow editor depend on.
|
|
1763
1792
|
return (
|
|
1764
1793
|
`async function(event) {\n` +
|
|
1765
1794
|
(preventDefault ? ' event.preventDefault();\n' : '') +
|
|
1766
1795
|
` const formData = {};\n` +
|
|
1767
1796
|
` const fd = new FormData(event.target);\n` +
|
|
1768
1797
|
` fd.forEach(function(v, k) { formData[k] = v; });\n` +
|
|
1769
|
-
` const triggerContext = { formData: formData, formId: '${elementId}', triggerElement: event.target, element: event.target, timestamp: Date.now() };\n` +
|
|
1798
|
+
` const triggerContext = Object.assign({}, formData, { fields: formData, formData: formData, formId: '${elementId}', triggerElement: event.target, element: event.target, timestamp: Date.now() });\n` +
|
|
1770
1799
|
` return __execWf(__wfConfig_${safeId}, triggerContext, __wfServerUrls_${safeId});\n` +
|
|
1771
1800
|
` }`
|
|
1772
1801
|
)
|