@nocobase/plugin-flow-engine 2.2.0-beta.3 → 2.2.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +9 -9
- package/dist/node_modules/@ant-design/icons-svg/package.json +1 -1
- package/dist/node_modules/acorn/package.json +1 -1
- package/dist/node_modules/acorn-jsx/package.json +1 -1
- package/dist/node_modules/acorn-walk/package.json +1 -1
- package/dist/node_modules/ses/package.json +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/flow-surfaces/authoring-validation.js +80 -7
- package/dist/server/flow-surfaces/blueprint/export-document.js +3 -1
- package/dist/server/flow-surfaces/builder.js +16 -1
- package/dist/server/flow-surfaces/catalog.js +3 -1
- package/dist/server/flow-surfaces/configure-options.js +4 -3
- package/dist/server/flow-surfaces/contract-guard.js +24 -2
- package/dist/server/flow-surfaces/planning/key-registry.d.ts +1 -1
- package/dist/server/flow-surfaces/runjs-authoring/rules.js +0 -2
- package/dist/server/flow-surfaces/runjs-authoring/runtime/constants.d.ts +0 -1
- package/dist/server/flow-surfaces/runjs-authoring/runtime/constants.js +11 -19
- package/dist/server/flow-surfaces/runjs-authoring/runtime/types.d.ts +0 -12
- package/dist/server/flow-surfaces/runjs-authoring/scan/index.d.ts +0 -14
- package/dist/server/flow-surfaces/runjs-authoring/scan/index.js +1 -7
- package/dist/server/flow-surfaces/runjs-authoring/scan/source-patterns.d.ts +0 -14
- package/dist/server/flow-surfaces/runjs-authoring/scan/source-patterns.js +18 -73
- package/dist/server/flow-surfaces/runjs-authoring/types.d.ts +1 -1
- package/dist/server/flow-surfaces/runjs-authoring/validators/index.js +9 -53
- package/dist/server/flow-surfaces/service.d.ts +23 -0
- package/dist/server/flow-surfaces/service.js +538 -73
- package/dist/server/variables/registry.js +3 -0
- package/package.json +2 -2
- package/dist/server/flow-surfaces/runjs-authoring/blocked-global-stop/index.d.ts +0 -10
- package/dist/server/flow-surfaces/runjs-authoring/blocked-global-stop/index.js +0 -40
|
@@ -149,16 +149,6 @@ export declare function scanJavaScriptSource(source: string, ast?: any, context?
|
|
|
149
149
|
alias: string;
|
|
150
150
|
index: number;
|
|
151
151
|
}[];
|
|
152
|
-
windowDocumentNavigatorUses: {
|
|
153
|
-
root: string;
|
|
154
|
-
member: string;
|
|
155
|
-
index: number;
|
|
156
|
-
}[];
|
|
157
|
-
windowDocumentNavigatorAliases: {
|
|
158
|
-
alias: string;
|
|
159
|
-
root: string;
|
|
160
|
-
index: number;
|
|
161
|
-
}[];
|
|
162
152
|
ctxAliases: {
|
|
163
153
|
alias: string;
|
|
164
154
|
index: number;
|
|
@@ -179,10 +169,6 @@ export declare function scanJavaScriptSource(source: string, ast?: any, context?
|
|
|
179
169
|
ruleId: "runjs-ctx-member-not-callable";
|
|
180
170
|
}[];
|
|
181
171
|
invalidCtxLibMemberAccesses: import("../internal-types").InvalidCtxLibMemberAccess[];
|
|
182
|
-
forbiddenBareGlobals: {
|
|
183
|
-
name: string;
|
|
184
|
-
index: number;
|
|
185
|
-
}[];
|
|
186
172
|
ctxMemberAccesses: {
|
|
187
173
|
member: string;
|
|
188
174
|
index: number;
|
|
@@ -71,10 +71,7 @@ function scanJavaScriptSource(source, ast, context = {}, modelUse = "") {
|
|
|
71
71
|
const flowResourceAliases = (0, import_source_patterns.collectFlowResourceAliases)(masked, sourceBindings);
|
|
72
72
|
const directDomWrites = (0, import_source_patterns.collectDirectDomWrites)(source, masked, sourceBindings);
|
|
73
73
|
const directDomAliases = (0, import_source_patterns.collectDirectDomAliases)(masked, sourceBindings);
|
|
74
|
-
const windowDocumentNavigatorUses = (0, import_source_patterns.collectWindowDocumentNavigatorUses)(source, masked, sourceBindings);
|
|
75
|
-
const windowDocumentNavigatorAliases = (0, import_source_patterns.collectWindowDocumentNavigatorAliases)(masked, sourceBindings);
|
|
76
74
|
const ctxAliases = (0, import_source_patterns.collectCtxAliases)(masked, sourceBindings);
|
|
77
|
-
const forbiddenBareGlobals = (0, import_source_patterns.collectForbiddenBareGlobals)(masked, sourceBindings);
|
|
78
75
|
return {
|
|
79
76
|
source,
|
|
80
77
|
masked,
|
|
@@ -126,14 +123,11 @@ function scanJavaScriptSource(source, ast, context = {}, modelUse = "") {
|
|
|
126
123
|
),
|
|
127
124
|
directDomWrites,
|
|
128
125
|
directDomAliases,
|
|
129
|
-
windowDocumentNavigatorUses,
|
|
130
|
-
windowDocumentNavigatorAliases,
|
|
131
126
|
ctxAliases,
|
|
132
127
|
ctxLibMemberCaseMismatches: (0, import_source_patterns.collectCtxLibMemberCaseMismatches)(source, masked, sourceBindings),
|
|
133
128
|
invalidCtxApiMemberAccesses: (astInspection == null ? void 0 : astInspection.invalidCtxApiMemberAccesses) || [],
|
|
134
129
|
invalidCtxNonFunctionCalls: (astInspection == null ? void 0 : astInspection.invalidCtxNonFunctionCalls) || [],
|
|
135
130
|
invalidCtxLibMemberAccesses: (astInspection == null ? void 0 : astInspection.invalidCtxLibMemberAccesses) || [],
|
|
136
|
-
forbiddenBareGlobals,
|
|
137
131
|
ctxMemberAccesses: (0, import_source_patterns.collectCtxMemberAccesses)(masked, sourceBindings),
|
|
138
132
|
dynamicCtxAccesses: (0, import_static_values.findUnboundCtxMatches)(masked, /\bctx\s*(?:\?\.\s*)?\[/g, sourceBindings),
|
|
139
133
|
isTopLevelFunctionWrapper: (0, import_source_patterns.isTopLevelFunctionWrapper)(masked, functionRanges, topLevelReachableCtxRenderCalls)
|
|
@@ -159,7 +153,7 @@ function collectAstUnknownBareGlobalsFromAst(ast, identifierBindings, modelUse)
|
|
|
159
153
|
if (!name) {
|
|
160
154
|
return;
|
|
161
155
|
}
|
|
162
|
-
if (allowedGlobals.has(name)
|
|
156
|
+
if (allowedGlobals.has(name)) {
|
|
163
157
|
return;
|
|
164
158
|
}
|
|
165
159
|
const index = typeof node.start === "number" ? node.start : 0;
|
|
@@ -7,10 +7,6 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import type { CtxLibMemberCaseMismatch, FlowResourceAlias, ReactComponentAlias, ResourceCallInReactHook, SourceBinding, SourceRange, StringLiteralBinding } from '../internal-types';
|
|
10
|
-
export declare function collectForbiddenBareGlobals(masked: string, bindings: SourceBinding[]): {
|
|
11
|
-
name: string;
|
|
12
|
-
index: number;
|
|
13
|
-
}[];
|
|
14
10
|
export declare function collectInvalidApiResourceCalls(source: string, masked: string, bindings: SourceBinding[]): {
|
|
15
11
|
index: number;
|
|
16
12
|
match: string;
|
|
@@ -64,16 +60,6 @@ export declare function collectDirectDomWrites(source: string, masked: string, b
|
|
|
64
60
|
index: number;
|
|
65
61
|
match: string;
|
|
66
62
|
}[];
|
|
67
|
-
export declare function collectWindowDocumentNavigatorUses(source: string, masked: string, bindings: SourceBinding[]): {
|
|
68
|
-
root: string;
|
|
69
|
-
member: string;
|
|
70
|
-
index: number;
|
|
71
|
-
}[];
|
|
72
|
-
export declare function collectWindowDocumentNavigatorAliases(masked: string, bindings: SourceBinding[]): {
|
|
73
|
-
alias: string;
|
|
74
|
-
root: string;
|
|
75
|
-
index: number;
|
|
76
|
-
}[];
|
|
77
63
|
export declare function collectDirectDomAliases(masked: string, bindings: SourceBinding[]): {
|
|
78
64
|
alias: string;
|
|
79
65
|
index: number;
|
|
@@ -33,7 +33,6 @@ __export(source_patterns_exports, {
|
|
|
33
33
|
collectDirectDomAliases: () => collectDirectDomAliases,
|
|
34
34
|
collectDirectDomWrites: () => collectDirectDomWrites,
|
|
35
35
|
collectFlowResourceAliases: () => collectFlowResourceAliases,
|
|
36
|
-
collectForbiddenBareGlobals: () => collectForbiddenBareGlobals,
|
|
37
36
|
collectInvalidApiResourceCalls: () => collectInvalidApiResourceCalls,
|
|
38
37
|
collectInvalidFlowResourceListCalls: () => collectInvalidFlowResourceListCalls,
|
|
39
38
|
collectInvalidResourceTypeCalls: () => collectInvalidResourceTypeCalls,
|
|
@@ -43,8 +42,6 @@ __export(source_patterns_exports, {
|
|
|
43
42
|
collectReactHookCalls: () => collectReactHookCalls,
|
|
44
43
|
collectResourceCallsInReactHooks: () => collectResourceCallsInReactHooks,
|
|
45
44
|
collectUnboundReactCreateElementCalls: () => collectUnboundReactCreateElementCalls,
|
|
46
|
-
collectWindowDocumentNavigatorAliases: () => collectWindowDocumentNavigatorAliases,
|
|
47
|
-
collectWindowDocumentNavigatorUses: () => collectWindowDocumentNavigatorUses,
|
|
48
45
|
getResourceLikeCtxRunjsEntrypoint: () => getResourceLikeCtxRunjsEntrypoint,
|
|
49
46
|
isResourceLikeCtxRequest: () => isResourceLikeCtxRequest,
|
|
50
47
|
isTopLevelFunctionWrapper: () => isTopLevelFunctionWrapper
|
|
@@ -53,18 +50,6 @@ module.exports = __toCommonJS(source_patterns_exports);
|
|
|
53
50
|
var import_constants = require("../runtime/constants");
|
|
54
51
|
var import_bindings = require("../ast/bindings");
|
|
55
52
|
var import_source = require("../ast/source");
|
|
56
|
-
function collectForbiddenBareGlobals(masked, bindings) {
|
|
57
|
-
const entries = [];
|
|
58
|
-
for (const name of import_constants.FORBIDDEN_BARE_GLOBALS) {
|
|
59
|
-
const pattern = new RegExp(`(?<![.$\\w])${(0, import_source.escapeRegExp)(name)}\\b`, "g");
|
|
60
|
-
for (const match of masked.matchAll(pattern)) {
|
|
61
|
-
if (!(0, import_bindings.isNameBoundAtIndex)(bindings, name, match.index || 0) && !isObjectPropertyKey(masked, match.index || 0, name)) {
|
|
62
|
-
entries.push({ name, index: match.index || 0 });
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return entries.sort((left, right) => left.index - right.index);
|
|
67
|
-
}
|
|
68
53
|
function collectInvalidApiResourceCalls(source, masked, bindings) {
|
|
69
54
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
70
55
|
const resourceMethods = /* @__PURE__ */ new Set(["list", "get", "create", "update", "destroy"]);
|
|
@@ -618,6 +603,16 @@ function collectDirectDomWrites(source, masked, bindings) {
|
|
|
618
603
|
}
|
|
619
604
|
entries.push({ index, match: match[0].replace(/\s*(?:\?\.)?\($/, "") });
|
|
620
605
|
}
|
|
606
|
+
for (const match of masked.matchAll(
|
|
607
|
+
/\b(document)\s*(?:\?\.|\.)\s*body\s*(?:\?\.|\.)\s*(innerHTML|insertAdjacentHTML)\b|(?<![.$\w])((window|globalThis)\s*(?:\?\.|\.)\s*document)\s*(?:\?\.|\.)\s*body\s*(?:\?\.|\.)\s*(innerHTML|insertAdjacentHTML)\b/g
|
|
608
|
+
)) {
|
|
609
|
+
const index = match.index || 0;
|
|
610
|
+
const root = match[1] || match[4];
|
|
611
|
+
if (root && (0, import_bindings.isNameBoundAtIndex)(bindings, root, index)) {
|
|
612
|
+
continue;
|
|
613
|
+
}
|
|
614
|
+
entries.push({ index, match: match[0] });
|
|
615
|
+
}
|
|
621
616
|
for (const match of commentMasked.matchAll(
|
|
622
617
|
/\b(ctx)\s*(?:\?\.|\.)\s*element\s*(?:\?\.\s*)?\[\s*(?:(['"])([A-Za-z_$][\w$]*)\2|([^\]]+))\s*\]/g
|
|
623
618
|
)) {
|
|
@@ -639,71 +634,24 @@ function collectDirectDomWrites(source, masked, bindings) {
|
|
|
639
634
|
}
|
|
640
635
|
}
|
|
641
636
|
for (const match of commentMasked.matchAll(
|
|
642
|
-
|
|
637
|
+
/(?<![.$\w])(window|globalThis)\s*(?:\?\.\s*)?\[\s*(['"])document\2\s*\]\s*(?:(?:\?\.|\.)\s*createElement|(?:\?\.\s*)?\[\s*(['"])createElement\3\s*\])/g
|
|
643
638
|
)) {
|
|
644
639
|
const index = match.index || 0;
|
|
645
|
-
|
|
646
|
-
const dynamicMember = Boolean(match[4]);
|
|
647
|
-
if (isCodeTokenAt(masked, index, match[1]) && !(0, import_bindings.isNameBoundAtIndex)(bindings, match[1], index) && (dynamicMember || isDirectDomMember(member))) {
|
|
640
|
+
if (isCodeTokenAt(masked, index, match[1]) && !(0, import_bindings.isNameBoundAtIndex)(bindings, match[1], index)) {
|
|
648
641
|
entries.push({ index, match: match[0] });
|
|
649
642
|
}
|
|
650
643
|
}
|
|
651
|
-
return entries;
|
|
652
|
-
}
|
|
653
|
-
function collectWindowDocumentNavigatorUses(source, masked, bindings) {
|
|
654
|
-
const commentMasked = (0, import_source.maskJavaScriptComments)(source);
|
|
655
|
-
const entries = [...masked.matchAll(/\b(window|document|navigator)\s*(?:\?\.|\.)\s*([A-Za-z_$][\w$]*)/g)].filter((match) => !(0, import_bindings.isNameBoundAtIndex)(bindings, match[1], match.index || 0)).map((match) => ({
|
|
656
|
-
root: match[1],
|
|
657
|
-
member: match[2],
|
|
658
|
-
index: match.index || 0
|
|
659
|
-
}));
|
|
660
644
|
for (const match of commentMasked.matchAll(
|
|
661
|
-
/\b(
|
|
645
|
+
/\b(element)\s*(?:\?\.\s*)?\[\s*(?:(['"])([A-Za-z_$][\w$]*)\2|([^\]]+))\s*\]/g
|
|
662
646
|
)) {
|
|
663
647
|
const index = match.index || 0;
|
|
664
|
-
const
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
entries.push({
|
|
669
|
-
root,
|
|
670
|
-
member: match[3] || "[dynamic]",
|
|
671
|
-
index
|
|
672
|
-
});
|
|
673
|
-
}
|
|
674
|
-
return entries.sort((left, right) => left.index - right.index);
|
|
675
|
-
}
|
|
676
|
-
function collectWindowDocumentNavigatorAliases(masked, bindings) {
|
|
677
|
-
const entries = [];
|
|
678
|
-
collectAliasMatches(
|
|
679
|
-
masked,
|
|
680
|
-
[
|
|
681
|
-
/\b(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*(window|document|navigator)\b/g,
|
|
682
|
-
/(?<![.$\w])([A-Za-z_$][\w$]*)\s*=\s*(window|document|navigator)\b/g
|
|
683
|
-
],
|
|
684
|
-
(match) => {
|
|
685
|
-
const alias = match[1];
|
|
686
|
-
const root = match[2];
|
|
687
|
-
const rootIndex = (match.index || 0) + match[0].lastIndexOf(root);
|
|
688
|
-
if (alias === root || (0, import_bindings.isNameBoundAtIndex)(bindings, root, rootIndex)) {
|
|
689
|
-
return;
|
|
690
|
-
}
|
|
691
|
-
entries.push({ alias, root, index: rootIndex });
|
|
692
|
-
}
|
|
693
|
-
);
|
|
694
|
-
for (const match of masked.matchAll(
|
|
695
|
-
/\b(?:const|let|var)\s*\{([^}]*)\}\s*=\s*(window|document|navigator)\b(?!\s*(?:\.|\?\.))/g
|
|
696
|
-
)) {
|
|
697
|
-
const root = match[2];
|
|
698
|
-
const rootIndex = (match.index || 0) + match[0].lastIndexOf(root);
|
|
699
|
-
if ((0, import_bindings.isNameBoundAtIndex)(bindings, root, rootIndex)) {
|
|
700
|
-
continue;
|
|
648
|
+
const member = match[3] || "";
|
|
649
|
+
const dynamicMember = Boolean(match[4]);
|
|
650
|
+
if (isCodeTokenAt(masked, index, match[1]) && !(0, import_bindings.isNameBoundAtIndex)(bindings, match[1], index) && (dynamicMember || isDirectDomMember(member))) {
|
|
651
|
+
entries.push({ index, match: match[0] });
|
|
701
652
|
}
|
|
702
|
-
collectObjectBindingAliases(match[1]).forEach((alias) => {
|
|
703
|
-
entries.push({ alias, root, index: rootIndex });
|
|
704
|
-
});
|
|
705
653
|
}
|
|
706
|
-
return
|
|
654
|
+
return entries;
|
|
707
655
|
}
|
|
708
656
|
function collectDirectDomAliases(masked, bindings) {
|
|
709
657
|
const entries = [];
|
|
@@ -871,7 +819,6 @@ function isResourceLikeRunjsEntrypointExpression(value) {
|
|
|
871
819
|
collectDirectDomAliases,
|
|
872
820
|
collectDirectDomWrites,
|
|
873
821
|
collectFlowResourceAliases,
|
|
874
|
-
collectForbiddenBareGlobals,
|
|
875
822
|
collectInvalidApiResourceCalls,
|
|
876
823
|
collectInvalidFlowResourceListCalls,
|
|
877
824
|
collectInvalidResourceTypeCalls,
|
|
@@ -881,8 +828,6 @@ function isResourceLikeRunjsEntrypointExpression(value) {
|
|
|
881
828
|
collectReactHookCalls,
|
|
882
829
|
collectResourceCallsInReactHooks,
|
|
883
830
|
collectUnboundReactCreateElementCalls,
|
|
884
|
-
collectWindowDocumentNavigatorAliases,
|
|
885
|
-
collectWindowDocumentNavigatorUses,
|
|
886
831
|
getResourceLikeCtxRunjsEntrypoint,
|
|
887
832
|
isResourceLikeCtxRequest,
|
|
888
833
|
isTopLevelFunctionWrapper
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
export type RunJsAuthoringRepairClass = 'syntax-stop' | 'nested-runjs-stop' | 'source-limit-stop' | 'switch-to-resource-api' | 'missing-top-level-return' | 'value-surface-forbids-render' | 'unknown-surface-stop' | 'unknown-model-stop' | 'replace-innerhtml-with-render' | 'render-top-level-function-wrapper' | 'render-unreachable-render-call' | '
|
|
9
|
+
export type RunJsAuthoringRepairClass = 'syntax-stop' | 'nested-runjs-stop' | 'source-limit-stop' | 'switch-to-resource-api' | 'missing-top-level-return' | 'value-surface-forbids-render' | 'unknown-surface-stop' | 'unknown-model-stop' | 'replace-innerhtml-with-render' | 'render-top-level-function-wrapper' | 'render-unreachable-render-call' | 'unknown-global-stop' | 'blocked-capability-reroute' | 'react-runtime-contract-stop' | 'resource-runtime-contract-stop' | 'ctx-libs-member-mismatch-stop' | 'ctx-root-mismatch-stop';
|
|
10
10
|
export type RunJsAuthoringSurfaceStyle = 'render' | 'value' | 'action';
|
|
11
11
|
export interface RunJsAuthoringRuleDefinition {
|
|
12
12
|
repairClass: RunJsAuthoringRepairClass;
|
|
@@ -310,58 +310,7 @@ function collectDirectDomErrors(path, source, scan, modelUse, surface, errors) {
|
|
|
310
310
|
);
|
|
311
311
|
});
|
|
312
312
|
}
|
|
313
|
-
function
|
|
314
|
-
scan.windowDocumentNavigatorAliases.forEach((entry) => {
|
|
315
|
-
errors.push(
|
|
316
|
-
(0, import_errors.buildRunJsAuthoringError)({
|
|
317
|
-
path,
|
|
318
|
-
repairClass: "blocked-global-stop",
|
|
319
|
-
message: `flowSurfaces authoring ${path} cannot alias forbidden global ${entry.root}`,
|
|
320
|
-
modelUse,
|
|
321
|
-
surface,
|
|
322
|
-
index: entry.index,
|
|
323
|
-
source,
|
|
324
|
-
details: {
|
|
325
|
-
global: entry.root,
|
|
326
|
-
alias: entry.alias
|
|
327
|
-
}
|
|
328
|
-
})
|
|
329
|
-
);
|
|
330
|
-
});
|
|
331
|
-
scan.windowDocumentNavigatorUses.forEach((entry) => {
|
|
332
|
-
errors.push(
|
|
333
|
-
(0, import_errors.buildRunJsAuthoringError)({
|
|
334
|
-
path,
|
|
335
|
-
repairClass: "blocked-global-stop",
|
|
336
|
-
ruleId: `runjs-${entry.root}-property-blocked`,
|
|
337
|
-
message: `flowSurfaces authoring ${path} cannot access ${entry.root}.${entry.member} in RunJS`,
|
|
338
|
-
modelUse,
|
|
339
|
-
surface,
|
|
340
|
-
index: entry.index,
|
|
341
|
-
source,
|
|
342
|
-
details: {
|
|
343
|
-
global: entry.root,
|
|
344
|
-
member: entry.member
|
|
345
|
-
}
|
|
346
|
-
})
|
|
347
|
-
);
|
|
348
|
-
});
|
|
349
|
-
scan.forbiddenBareGlobals.forEach((entry) => {
|
|
350
|
-
errors.push(
|
|
351
|
-
(0, import_errors.buildRunJsAuthoringError)({
|
|
352
|
-
path,
|
|
353
|
-
repairClass: "blocked-global-stop",
|
|
354
|
-
message: `flowSurfaces authoring ${path} cannot access forbidden global ${entry.name}`,
|
|
355
|
-
modelUse,
|
|
356
|
-
surface,
|
|
357
|
-
index: entry.index,
|
|
358
|
-
source,
|
|
359
|
-
details: {
|
|
360
|
-
global: entry.name
|
|
361
|
-
}
|
|
362
|
-
})
|
|
363
|
-
);
|
|
364
|
-
});
|
|
313
|
+
function collectUnknownGlobalErrors(path, source, scan, modelUse, surface, errors) {
|
|
365
314
|
scan.unknownBareGlobals.forEach((entry) => {
|
|
366
315
|
const suggestion = entry.suggestedCapability ? `; use ${entry.suggestedCapability} or assign it to a local variable first` : "; declare or import it before using it";
|
|
367
316
|
errors.push(
|
|
@@ -840,7 +789,14 @@ const RUNJS_INSPECTION_VALIDATORS = [
|
|
|
840
789
|
),
|
|
841
790
|
createLegacyValidator("dom-global", (runtime, errors) => {
|
|
842
791
|
collectDirectDomErrors(runtime.input.path, runtime.source, runtime.scan, runtime.modelUse, runtime.surface, errors);
|
|
843
|
-
|
|
792
|
+
collectUnknownGlobalErrors(
|
|
793
|
+
runtime.input.path,
|
|
794
|
+
runtime.source,
|
|
795
|
+
runtime.scan,
|
|
796
|
+
runtime.modelUse,
|
|
797
|
+
runtime.surface,
|
|
798
|
+
errors
|
|
799
|
+
);
|
|
844
800
|
}),
|
|
845
801
|
createLegacyValidator(
|
|
846
802
|
"react-runtime",
|
|
@@ -82,6 +82,14 @@ export declare class FlowSurfacesService {
|
|
|
82
82
|
private assertMenuRouteUpdatable;
|
|
83
83
|
private assertMenuParentNotSelfOrDescendant;
|
|
84
84
|
private buildMenuResult;
|
|
85
|
+
private hasDesktopRouteUiLayoutsRelation;
|
|
86
|
+
private normalizeDesktopRouteRelationId;
|
|
87
|
+
private readDesktopRouteUiLayoutUids;
|
|
88
|
+
private resolveDefaultDesktopRouteUiLayoutUids;
|
|
89
|
+
private resolveInheritedDesktopRouteUiLayoutUids;
|
|
90
|
+
private setDesktopRouteUiLayouts;
|
|
91
|
+
private attachDesktopRouteUiLayoutsToRouteAndChildren;
|
|
92
|
+
private ensureDesktopRouteUiLayouts;
|
|
85
93
|
private isValidMenuIconName;
|
|
86
94
|
private assertVisibleNavigationIcon;
|
|
87
95
|
private assertVisibleNavigationRouteIconUpdate;
|
|
@@ -142,6 +150,7 @@ export declare class FlowSurfacesService {
|
|
|
142
150
|
private getCollectionFilterTargetKey;
|
|
143
151
|
private normalizeFlowContextTemplateValue;
|
|
144
152
|
private isSameConfiguredFlowContextValue;
|
|
153
|
+
private isPopupCurrentRecordFilterByTkMatch;
|
|
145
154
|
private isPopupAssociatedRecordsSourceIdMatch;
|
|
146
155
|
private classifyPopupRawResourceInit;
|
|
147
156
|
private resolvePopupAssociationField;
|
|
@@ -300,6 +309,7 @@ export declare class FlowSurfacesService {
|
|
|
300
309
|
private createFlowTemplateReferenceBlockModel;
|
|
301
310
|
private buildPopupTemplateReferenceOpenView;
|
|
302
311
|
private shouldHydrateDetachedPopupTemplateBlockResourceContext;
|
|
312
|
+
private resolveDetachedPopupTemplateBlockCurrentRecordFilterByTk;
|
|
303
313
|
private collectDetachedPopupTemplateBlockResourceContextPatches;
|
|
304
314
|
private hydrateDetachedPopupTemplateBlockResourceContext;
|
|
305
315
|
private hydrateDetachedPopupTemplateSourceContext;
|
|
@@ -748,6 +758,9 @@ export declare class FlowSurfacesService {
|
|
|
748
758
|
private syncFilterActionSettingsForUpdateSettings;
|
|
749
759
|
private resolveFilterActionDefaultFilterRequiredFieldCount;
|
|
750
760
|
private syncMirroredStepParamsForUpdateSettings;
|
|
761
|
+
private syncActionButtonSettingsForUpdateSettings;
|
|
762
|
+
private supportsActionButtonSettingsSync;
|
|
763
|
+
private pickRequestedActionButtonSettings;
|
|
751
764
|
private syncCreatedFieldWrapperTitleFieldStepParams;
|
|
752
765
|
private syncUpdateActionAssignedValuesForUpdateSettings;
|
|
753
766
|
private syncActionTriggerWorkflowsForUpdateSettings;
|
|
@@ -1056,14 +1069,19 @@ export declare class FlowSurfacesService {
|
|
|
1056
1069
|
private stableSerializeAIEmployeeValue;
|
|
1057
1070
|
private buildAIEmployeeActionDedupIdentity;
|
|
1058
1071
|
private normalizeAIEmployeeWorkContextForDedupIdentity;
|
|
1072
|
+
private normalizeAIEmployeeActionWorkContextForDedupIdentity;
|
|
1073
|
+
private normalizeAIEmployeeDefaultActionWorkContextForSelfUid;
|
|
1074
|
+
private normalizeAIEmployeeTaskWorkContextForDedupIdentity;
|
|
1059
1075
|
private normalizeAIEmployeeTasksForDedupIdentity;
|
|
1060
1076
|
private assertNoDuplicateAIEmployeeAction;
|
|
1077
|
+
private assertNoDuplicateAIEmployeeActionForUpdateSettings;
|
|
1061
1078
|
private hasAIEmployeePublicSettings;
|
|
1062
1079
|
private assertOnlyAIEmployeePublicSettings;
|
|
1063
1080
|
private aiEmployeeNestedRepairHint;
|
|
1064
1081
|
private assertOnlyAIEmployeeNestedPublicSettings;
|
|
1065
1082
|
private assertNoAIEmployeeInternalPropSettings;
|
|
1066
1083
|
private readAIEmployeePersistedTasks;
|
|
1084
|
+
private normalizeAIEmployeeLegacyInheritedTaskWorkContext;
|
|
1067
1085
|
private buildAIEmployeeTaskStepParams;
|
|
1068
1086
|
private mergeAIEmployeeActionSettingsPayload;
|
|
1069
1087
|
private syncAIEmployeeTaskStepParamsForUpdateSettings;
|
|
@@ -1076,6 +1094,7 @@ export declare class FlowSurfacesService {
|
|
|
1076
1094
|
private normalizeAIEmployeeUsername;
|
|
1077
1095
|
private assertAIEmployeeWorkContextType;
|
|
1078
1096
|
private normalizeAIEmployeeWorkContext;
|
|
1097
|
+
private normalizeAIEmployeeEffectiveActionWorkContext;
|
|
1079
1098
|
private normalizeAIEmployeeTaskModel;
|
|
1080
1099
|
private normalizeAIEmployeeSkillSettings;
|
|
1081
1100
|
private collectAIEmployeePromptVariables;
|
|
@@ -1098,9 +1117,13 @@ export declare class FlowSurfacesService {
|
|
|
1098
1117
|
private normalizeAIEmployeeTaskMessage;
|
|
1099
1118
|
private normalizeAIEmployeeTaskPatch;
|
|
1100
1119
|
private normalizeAIEmployeeTasks;
|
|
1120
|
+
private withAIEmployeeTaskDefaultWorkContext;
|
|
1121
|
+
private shouldMaterializeAIEmployeeTaskDefaultWorkContext;
|
|
1122
|
+
private rebaseAIEmployeeInheritedTaskWorkContext;
|
|
1101
1123
|
private normalizeAIEmployeeActionSettingsReferences;
|
|
1102
1124
|
private normalizeAIEmployeeActionPublicSettings;
|
|
1103
1125
|
private resolveAIEmployeeActionSelfUid;
|
|
1126
|
+
private resolveAIEmployeeActionSelfUidFromParentNode;
|
|
1104
1127
|
private configureActionNode;
|
|
1105
1128
|
private normalizeActionPanelActionChanges;
|
|
1106
1129
|
private buildFieldCatalog;
|