@nocobase/plugin-flow-engine 2.2.0-beta.10 → 2.2.0-beta.12
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/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 +151 -9
- package/dist/server/flow-surfaces/blueprint/compile-blocks.js +7 -3
- package/dist/server/flow-surfaces/builder.js +3 -0
- package/dist/server/flow-surfaces/contract-guard.js +20 -10
- package/dist/server/flow-surfaces/service.js +7 -5
- package/dist/server/variables/records.js +7 -2
- package/package.json +2 -2
package/dist/externalVersion.js
CHANGED
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "2.2.0-beta.
|
|
11
|
+
"@nocobase/client": "2.2.0-beta.12",
|
|
12
12
|
"lodash": "4.18.1",
|
|
13
|
-
"@nocobase/database": "2.2.0-beta.
|
|
14
|
-
"@nocobase/data-source-manager": "2.2.0-beta.
|
|
15
|
-
"@nocobase/resourcer": "2.2.0-beta.
|
|
16
|
-
"@nocobase/utils": "2.2.0-beta.
|
|
17
|
-
"@nocobase/cache": "2.2.0-beta.
|
|
18
|
-
"@nocobase/server": "2.2.0-beta.
|
|
19
|
-
"@nocobase/actions": "2.2.0-beta.
|
|
13
|
+
"@nocobase/database": "2.2.0-beta.12",
|
|
14
|
+
"@nocobase/data-source-manager": "2.2.0-beta.12",
|
|
15
|
+
"@nocobase/resourcer": "2.2.0-beta.12",
|
|
16
|
+
"@nocobase/utils": "2.2.0-beta.12",
|
|
17
|
+
"@nocobase/cache": "2.2.0-beta.12",
|
|
18
|
+
"@nocobase/server": "2.2.0-beta.12",
|
|
19
|
+
"@nocobase/actions": "2.2.0-beta.12",
|
|
20
20
|
"sequelize": "6.35.2",
|
|
21
21
|
"@formily/json-schema": "2.3.7",
|
|
22
|
-
"@nocobase/ai": "2.2.0-beta.
|
|
22
|
+
"@nocobase/ai": "2.2.0-beta.12"
|
|
23
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@ant-design/icons-svg","version":"4.3.1","sideEffects":false,"description":"Abstract nodes for ant design icons.","contributors":["HeskeyBaozi <hezhiyu233@foxmail.com>"],"homepage":"https://github.com/ant-design/ant-design-icons/","license":"MIT","main":"lib/index.js","module":"es/index.js","files":["lib","es","inline-svg","inline-namespaced-svg"],"repository":{"type":"git","url":"git+https://github.com/ant-design/ant-design-icons.git"},"scripts":{"g":"npm run generate","generate":"cross-env NODE_ENV=production gulp --require ts-node/register/transpile-only","type-check":"tsc --noEmit","build:es":"tsc --project tsconfig.build.json --module esnext --outDir es","build:lib":"tsc --project tsconfig.build.json --module commonjs --outDir lib","build":"cross-env NODE_ENV=production && npm run build:es && npm run build:lib","test":"cross-env NODE_ENV=test && npm run test:unit","test:unit":"jest","prepublishOnly":"npm run test && npm run g && npm run build && npm run type-check && npm run digest","digest":"node scripts/digest.js"},"bugs":{"url":"https://github.com/ant-design/ant-design-icons/issues"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-typescript":"^7.8.3","@rgrove/parse-xml":"^2.0.2","@types/gulp":"^4.0.6","@types/gulp-concat":"^0.0.32","@types/gulp-rename":"^0.0.33","@types/jest":"^25.1.3","@types/lodash.camelcase":"^4.3.6","@types/lodash.template":"^4.4.6","@types/lodash.upperfirst":"^4.3.6","@types/node":"^13.9.3","@types/ramda":"^0.26.43","@types/rgrove__parse-xml":"^1.1.0","@types/svgo":"^1.3.1","@types/through2":"^2.0.34","@typescript-eslint/eslint-plugin":"^2.21.0","@typescript-eslint/parser":"^2.21.0","babel-jest":"^25.1.0","cross-env":"^7.0.0","del":"^5.1.0","eslint":"^7.16.0","globby":"^11.0.0","gulp":"^4.0.2","gulp-clone":"^2.0.1","gulp-concat":"^2.6.1","gulp-header":"^2.0.9","gulp-rename":"^2.0.0","jest":"^25.1.0","lodash.camelcase":"^4.3.0","lodash.template":"^4.5.0","lodash.upperfirst":"^4.3.1","ramda":"^0.27.0","svgo":"^1.3.2","through2":"^3.0.1","ts-node":"^8.6.2","typescript":"^4.0.0","vinyl":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_lastModified":"2026-07-
|
|
1
|
+
{"name":"@ant-design/icons-svg","version":"4.3.1","sideEffects":false,"description":"Abstract nodes for ant design icons.","contributors":["HeskeyBaozi <hezhiyu233@foxmail.com>"],"homepage":"https://github.com/ant-design/ant-design-icons/","license":"MIT","main":"lib/index.js","module":"es/index.js","files":["lib","es","inline-svg","inline-namespaced-svg"],"repository":{"type":"git","url":"git+https://github.com/ant-design/ant-design-icons.git"},"scripts":{"g":"npm run generate","generate":"cross-env NODE_ENV=production gulp --require ts-node/register/transpile-only","type-check":"tsc --noEmit","build:es":"tsc --project tsconfig.build.json --module esnext --outDir es","build:lib":"tsc --project tsconfig.build.json --module commonjs --outDir lib","build":"cross-env NODE_ENV=production && npm run build:es && npm run build:lib","test":"cross-env NODE_ENV=test && npm run test:unit","test:unit":"jest","prepublishOnly":"npm run test && npm run g && npm run build && npm run type-check && npm run digest","digest":"node scripts/digest.js"},"bugs":{"url":"https://github.com/ant-design/ant-design-icons/issues"},"devDependencies":{"@babel/core":"^7.8.6","@babel/preset-env":"^7.8.6","@babel/preset-typescript":"^7.8.3","@rgrove/parse-xml":"^2.0.2","@types/gulp":"^4.0.6","@types/gulp-concat":"^0.0.32","@types/gulp-rename":"^0.0.33","@types/jest":"^25.1.3","@types/lodash.camelcase":"^4.3.6","@types/lodash.template":"^4.4.6","@types/lodash.upperfirst":"^4.3.6","@types/node":"^13.9.3","@types/ramda":"^0.26.43","@types/rgrove__parse-xml":"^1.1.0","@types/svgo":"^1.3.1","@types/through2":"^2.0.34","@typescript-eslint/eslint-plugin":"^2.21.0","@typescript-eslint/parser":"^2.21.0","babel-jest":"^25.1.0","cross-env":"^7.0.0","del":"^5.1.0","eslint":"^7.16.0","globby":"^11.0.0","gulp":"^4.0.2","gulp-clone":"^2.0.1","gulp-concat":"^2.6.1","gulp-header":"^2.0.9","gulp-rename":"^2.0.0","jest":"^25.1.0","lodash.camelcase":"^4.3.0","lodash.template":"^4.5.0","lodash.upperfirst":"^4.3.1","ramda":"^0.27.0","svgo":"^1.3.2","through2":"^3.0.1","ts-node":"^8.6.2","typescript":"^4.0.0","vinyl":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_lastModified":"2026-07-11T14:08:51.908Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"acorn","description":"ECMAScript parser","homepage":"https://github.com/acornjs/acorn","main":"dist/acorn.js","types":"dist/acorn.d.ts","module":"dist/acorn.mjs","exports":{".":[{"import":"./dist/acorn.mjs","require":"./dist/acorn.js","default":"./dist/acorn.js"},"./dist/acorn.js"],"./package.json":"./package.json"},"version":"8.11.2","engines":{"node":">=0.4.0"},"maintainers":[{"name":"Marijn Haverbeke","email":"marijnh@gmail.com","web":"https://marijnhaverbeke.nl"},{"name":"Ingvar Stepanyan","email":"me@rreverser.com","web":"https://rreverser.com/"},{"name":"Adrian Heine","web":"http://adrianheine.de"}],"repository":{"type":"git","url":"https://github.com/acornjs/acorn.git"},"license":"MIT","scripts":{"prepare":"cd ..; npm run build:main"},"bin":{"acorn":"./bin/acorn"},"_lastModified":"2026-07-
|
|
1
|
+
{"name":"acorn","description":"ECMAScript parser","homepage":"https://github.com/acornjs/acorn","main":"dist/acorn.js","types":"dist/acorn.d.ts","module":"dist/acorn.mjs","exports":{".":[{"import":"./dist/acorn.mjs","require":"./dist/acorn.js","default":"./dist/acorn.js"},"./dist/acorn.js"],"./package.json":"./package.json"},"version":"8.11.2","engines":{"node":">=0.4.0"},"maintainers":[{"name":"Marijn Haverbeke","email":"marijnh@gmail.com","web":"https://marijnhaverbeke.nl"},{"name":"Ingvar Stepanyan","email":"me@rreverser.com","web":"https://rreverser.com/"},{"name":"Adrian Heine","web":"http://adrianheine.de"}],"repository":{"type":"git","url":"https://github.com/acornjs/acorn.git"},"license":"MIT","scripts":{"prepare":"cd ..; npm run build:main"},"bin":{"acorn":"./bin/acorn"},"_lastModified":"2026-07-11T14:08:52.852Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"acorn-jsx","description":"Modern, fast React.js JSX parser","homepage":"https://github.com/acornjs/acorn-jsx","version":"5.3.2","maintainers":[{"name":"Ingvar Stepanyan","email":"me@rreverser.com","web":"http://rreverser.com/"}],"repository":{"type":"git","url":"https://github.com/acornjs/acorn-jsx"},"license":"MIT","scripts":{"test":"node test/run.js"},"peerDependencies":{"acorn":"^6.0.0 || ^7.0.0 || ^8.0.0"},"devDependencies":{"acorn":"^8.0.1"},"_lastModified":"2026-07-
|
|
1
|
+
{"name":"acorn-jsx","description":"Modern, fast React.js JSX parser","homepage":"https://github.com/acornjs/acorn-jsx","version":"5.3.2","maintainers":[{"name":"Ingvar Stepanyan","email":"me@rreverser.com","web":"http://rreverser.com/"}],"repository":{"type":"git","url":"https://github.com/acornjs/acorn-jsx"},"license":"MIT","scripts":{"test":"node test/run.js"},"peerDependencies":{"acorn":"^6.0.0 || ^7.0.0 || ^8.0.0"},"devDependencies":{"acorn":"^8.0.1"},"_lastModified":"2026-07-11T14:08:53.282Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"acorn-walk","description":"ECMAScript (ESTree) AST walker","homepage":"https://github.com/acornjs/acorn","main":"dist/walk.js","types":"dist/walk.d.ts","module":"dist/walk.mjs","exports":{".":[{"import":"./dist/walk.mjs","require":"./dist/walk.js","default":"./dist/walk.js"},"./dist/walk.js"],"./package.json":"./package.json"},"version":"8.3.4","engines":{"node":">=0.4.0"},"dependencies":{"acorn":"^8.11.0"},"maintainers":[{"name":"Marijn Haverbeke","email":"marijnh@gmail.com","web":"https://marijnhaverbeke.nl"},{"name":"Ingvar Stepanyan","email":"me@rreverser.com","web":"https://rreverser.com/"},{"name":"Adrian Heine","web":"http://adrianheine.de"}],"repository":{"type":"git","url":"https://github.com/acornjs/acorn.git"},"scripts":{"prepare":"cd ..; npm run build:walk"},"license":"MIT","_lastModified":"2026-07-
|
|
1
|
+
{"name":"acorn-walk","description":"ECMAScript (ESTree) AST walker","homepage":"https://github.com/acornjs/acorn","main":"dist/walk.js","types":"dist/walk.d.ts","module":"dist/walk.mjs","exports":{".":[{"import":"./dist/walk.mjs","require":"./dist/walk.js","default":"./dist/walk.js"},"./dist/walk.js"],"./package.json":"./package.json"},"version":"8.3.4","engines":{"node":">=0.4.0"},"dependencies":{"acorn":"^8.11.0"},"maintainers":[{"name":"Marijn Haverbeke","email":"marijnh@gmail.com","web":"https://marijnhaverbeke.nl"},{"name":"Ingvar Stepanyan","email":"me@rreverser.com","web":"https://rreverser.com/"},{"name":"Adrian Heine","web":"http://adrianheine.de"}],"repository":{"type":"git","url":"https://github.com/acornjs/acorn.git"},"scripts":{"prepare":"cd ..; npm run build:walk"},"license":"MIT","_lastModified":"2026-07-11T14:08:53.395Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"ses","version":"1.14.0","description":"Hardened JavaScript for Fearless Cooperation","keywords":["lockdown","harden","Compartment","assert","security","confinement","isolation","object capabilities","ocaps","secure execution","third-party code","prototype pollution","supply-chain attack","plugin"],"author":"Agoric","license":"Apache-2.0","homepage":"https://github.com/Agoric/SES-shim/tree/master/packages/ses#readme","repository":{"type":"git","url":"git+https://github.com/endojs/endo.git","directory":"packages/ses"},"bugs":{"url":"https://github.com/endojs/endo/issues"},"type":"module","main":"./dist/ses.cjs","module":"./index.js","unpkg":"./dist/ses.umd.js","types":"./types.d.ts","exports":{".":{"import":{"types":"./types.d.ts","xs":"./src-xs/index.js","default":"./index.js"},"require":{"types":"./dist/types.d.cts","default":"./dist/ses.cjs"}},"./lockdown":{"import":{"types":"./types.d.ts","default":"./index.js"},"require":{"types":"./dist/types.d.cts","default":"./dist/ses.cjs"}},"./hermes":{"require":{"types":"./dist/types.d.cts","default":"./dist/ses-hermes.cjs"}},"./tools.js":"./tools.js","./assert-shim.js":"./assert-shim.js","./lockdown-shim.js":{"xs":"./src-xs/lockdown-shim.js","default":"./lockdown-shim.js"},"./compartment-shim.js":{"xs":"./src-xs/compartment-shim.js","default":"./compartment-shim.js"},"./console-shim.js":"./console-shim.js","./package.json":"./package.json"},"scripts":{"build:vanilla":"node scripts/bundle.js","build:hermes":"node scripts/bundle.js hermes","build":"yarn build:vanilla && yarn build:hermes","clean":"rm -rf dist","cover":"c8 ava","demo":"python3 -m http.server","lint":"yarn lint:types && yarn lint:eslint","lint-fix":"eslint --fix .","lint:eslint":"eslint .","lint:types":"tsc","prepare":"npm run clean && npm run build","qt":"ava","test":"tsd && ava","test:hermes":"./scripts/hermes-test.sh","test:xs":"xst dist/ses.umd.js test/_lockdown-safe.js && node scripts/generate-test-xs.js && xst tmp/test-xs.js && rm -rf tmp","postpack":"git clean -fX \"*.d.ts*\" \"*.d.cts*\" \"*.d.mts*\" \"*.tsbuildinfo\""},"dependencies":{"@endo/cache-map":"^1.1.0","@endo/env-options":"^1.1.11","@endo/immutable-arraybuffer":"^1.1.2"},"devDependencies":{"@babel/generator":"^7.26.3","@babel/parser":"~7.26.2","@babel/traverse":"~7.25.9","@babel/types":"~7.26.0","@endo/compartment-mapper":"^1.6.3","@endo/module-source":"^1.3.3","@endo/test262-runner":"^0.1.48","@types/babel__traverse":"^7.20.5","ava":"^6.1.3","babel-eslint":"^10.1.0","c8":"^7.14.0","core-js":"^3.31.0","eslint":"^8.57.1","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import":"^2.31.0","hermes-engine-cli":"^0.12.0","prettier":"^3.5.3","terser":"^5.16.6","tsd":"^0.31.2","typescript":"~5.8.3"},"files":["./*.d.ts","./*.js","./*.map","LICENSE*","SECURITY*","dist","lib","src","tools"],"publishConfig":{"access":"public"},"eslintConfig":{"extends":["plugin:@endo/ses"]},"ava":{"files":["test/**/*.test.*"],"timeout":"2m"},"typeCoverage":{"atLeast":81.17},"gitHead":"9815aea9541f241389d2135c6097a7442bdffa17","_lastModified":"2026-07-
|
|
1
|
+
{"name":"ses","version":"1.14.0","description":"Hardened JavaScript for Fearless Cooperation","keywords":["lockdown","harden","Compartment","assert","security","confinement","isolation","object capabilities","ocaps","secure execution","third-party code","prototype pollution","supply-chain attack","plugin"],"author":"Agoric","license":"Apache-2.0","homepage":"https://github.com/Agoric/SES-shim/tree/master/packages/ses#readme","repository":{"type":"git","url":"git+https://github.com/endojs/endo.git","directory":"packages/ses"},"bugs":{"url":"https://github.com/endojs/endo/issues"},"type":"module","main":"./dist/ses.cjs","module":"./index.js","unpkg":"./dist/ses.umd.js","types":"./types.d.ts","exports":{".":{"import":{"types":"./types.d.ts","xs":"./src-xs/index.js","default":"./index.js"},"require":{"types":"./dist/types.d.cts","default":"./dist/ses.cjs"}},"./lockdown":{"import":{"types":"./types.d.ts","default":"./index.js"},"require":{"types":"./dist/types.d.cts","default":"./dist/ses.cjs"}},"./hermes":{"require":{"types":"./dist/types.d.cts","default":"./dist/ses-hermes.cjs"}},"./tools.js":"./tools.js","./assert-shim.js":"./assert-shim.js","./lockdown-shim.js":{"xs":"./src-xs/lockdown-shim.js","default":"./lockdown-shim.js"},"./compartment-shim.js":{"xs":"./src-xs/compartment-shim.js","default":"./compartment-shim.js"},"./console-shim.js":"./console-shim.js","./package.json":"./package.json"},"scripts":{"build:vanilla":"node scripts/bundle.js","build:hermes":"node scripts/bundle.js hermes","build":"yarn build:vanilla && yarn build:hermes","clean":"rm -rf dist","cover":"c8 ava","demo":"python3 -m http.server","lint":"yarn lint:types && yarn lint:eslint","lint-fix":"eslint --fix .","lint:eslint":"eslint .","lint:types":"tsc","prepare":"npm run clean && npm run build","qt":"ava","test":"tsd && ava","test:hermes":"./scripts/hermes-test.sh","test:xs":"xst dist/ses.umd.js test/_lockdown-safe.js && node scripts/generate-test-xs.js && xst tmp/test-xs.js && rm -rf tmp","postpack":"git clean -fX \"*.d.ts*\" \"*.d.cts*\" \"*.d.mts*\" \"*.tsbuildinfo\""},"dependencies":{"@endo/cache-map":"^1.1.0","@endo/env-options":"^1.1.11","@endo/immutable-arraybuffer":"^1.1.2"},"devDependencies":{"@babel/generator":"^7.26.3","@babel/parser":"~7.26.2","@babel/traverse":"~7.25.9","@babel/types":"~7.26.0","@endo/compartment-mapper":"^1.6.3","@endo/module-source":"^1.3.3","@endo/test262-runner":"^0.1.48","@types/babel__traverse":"^7.20.5","ava":"^6.1.3","babel-eslint":"^10.1.0","c8":"^7.14.0","core-js":"^3.31.0","eslint":"^8.57.1","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import":"^2.31.0","hermes-engine-cli":"^0.12.0","prettier":"^3.5.3","terser":"^5.16.6","tsd":"^0.31.2","typescript":"~5.8.3"},"files":["./*.d.ts","./*.js","./*.map","LICENSE*","SECURITY*","dist","lib","src","tools"],"publishConfig":{"access":"public"},"eslintConfig":{"extends":["plugin:@endo/ses"]},"ava":{"files":["test/**/*.test.*"],"timeout":"2m"},"typeCoverage":{"atLeast":81.17},"gitHead":"9815aea9541f241389d2135c6097a7442bdffa17","_lastModified":"2026-07-11T14:08:52.435Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"zod","version":"4.3.5","type":"module","license":"MIT","author":"Colin McDonnell <zod@colinhacks.com>","description":"TypeScript-first schema declaration and validation library with static type inference","homepage":"https://zod.dev","llms":"https://zod.dev/llms.txt","llmsFull":"https://zod.dev/llms-full.txt","mcpServer":"https://mcp.inkeep.com/zod/mcp","funding":"https://github.com/sponsors/colinhacks","sideEffects":false,"files":["src","**/*.js","**/*.mjs","**/*.cjs","**/*.d.ts","**/*.d.mts","**/*.d.cts","**/package.json"],"keywords":["typescript","schema","validation","type","inference"],"main":"./index.cjs","types":"./index.d.cts","module":"./index.js","zshy":{"exports":{"./package.json":"./package.json",".":"./src/index.ts","./mini":"./src/mini/index.ts","./locales":"./src/locales/index.ts","./v3":"./src/v3/index.ts","./v4":"./src/v4/index.ts","./v4-mini":"./src/v4-mini/index.ts","./v4/mini":"./src/v4/mini/index.ts","./v4/core":"./src/v4/core/index.ts","./v4/locales":"./src/v4/locales/index.ts","./v4/locales/*":"./src/v4/locales/*"},"conditions":{"@zod/source":"src"}},"exports":{"./package.json":"./package.json",".":{"@zod/source":"./src/index.ts","types":"./index.d.cts","import":"./index.js","require":"./index.cjs"},"./mini":{"@zod/source":"./src/mini/index.ts","types":"./mini/index.d.cts","import":"./mini/index.js","require":"./mini/index.cjs"},"./locales":{"@zod/source":"./src/locales/index.ts","types":"./locales/index.d.cts","import":"./locales/index.js","require":"./locales/index.cjs"},"./v3":{"@zod/source":"./src/v3/index.ts","types":"./v3/index.d.cts","import":"./v3/index.js","require":"./v3/index.cjs"},"./v4":{"@zod/source":"./src/v4/index.ts","types":"./v4/index.d.cts","import":"./v4/index.js","require":"./v4/index.cjs"},"./v4-mini":{"@zod/source":"./src/v4-mini/index.ts","types":"./v4-mini/index.d.cts","import":"./v4-mini/index.js","require":"./v4-mini/index.cjs"},"./v4/mini":{"@zod/source":"./src/v4/mini/index.ts","types":"./v4/mini/index.d.cts","import":"./v4/mini/index.js","require":"./v4/mini/index.cjs"},"./v4/core":{"@zod/source":"./src/v4/core/index.ts","types":"./v4/core/index.d.cts","import":"./v4/core/index.js","require":"./v4/core/index.cjs"},"./v4/locales":{"@zod/source":"./src/v4/locales/index.ts","types":"./v4/locales/index.d.cts","import":"./v4/locales/index.js","require":"./v4/locales/index.cjs"},"./v4/locales/*":{"@zod/source":"./src/v4/locales/*","types":"./v4/locales/*","import":"./v4/locales/*","require":"./v4/locales/*"}},"repository":{"type":"git","url":"git+https://github.com/colinhacks/zod.git"},"bugs":{"url":"https://github.com/colinhacks/zod/issues"},"support":{"backing":{"npm-funding":true}},"scripts":{"clean":"git clean -xdf . -e node_modules","build":"zshy --project tsconfig.build.json","postbuild":"tsx ../../scripts/write-stub-package-jsons.ts && pnpm biome check --write .","test:watch":"pnpm vitest","test":"pnpm vitest run","prepublishOnly":"tsx ../../scripts/check-versions.ts"},"_lastModified":"2026-07-
|
|
1
|
+
{"name":"zod","version":"4.3.5","type":"module","license":"MIT","author":"Colin McDonnell <zod@colinhacks.com>","description":"TypeScript-first schema declaration and validation library with static type inference","homepage":"https://zod.dev","llms":"https://zod.dev/llms.txt","llmsFull":"https://zod.dev/llms-full.txt","mcpServer":"https://mcp.inkeep.com/zod/mcp","funding":"https://github.com/sponsors/colinhacks","sideEffects":false,"files":["src","**/*.js","**/*.mjs","**/*.cjs","**/*.d.ts","**/*.d.mts","**/*.d.cts","**/package.json"],"keywords":["typescript","schema","validation","type","inference"],"main":"./index.cjs","types":"./index.d.cts","module":"./index.js","zshy":{"exports":{"./package.json":"./package.json",".":"./src/index.ts","./mini":"./src/mini/index.ts","./locales":"./src/locales/index.ts","./v3":"./src/v3/index.ts","./v4":"./src/v4/index.ts","./v4-mini":"./src/v4-mini/index.ts","./v4/mini":"./src/v4/mini/index.ts","./v4/core":"./src/v4/core/index.ts","./v4/locales":"./src/v4/locales/index.ts","./v4/locales/*":"./src/v4/locales/*"},"conditions":{"@zod/source":"src"}},"exports":{"./package.json":"./package.json",".":{"@zod/source":"./src/index.ts","types":"./index.d.cts","import":"./index.js","require":"./index.cjs"},"./mini":{"@zod/source":"./src/mini/index.ts","types":"./mini/index.d.cts","import":"./mini/index.js","require":"./mini/index.cjs"},"./locales":{"@zod/source":"./src/locales/index.ts","types":"./locales/index.d.cts","import":"./locales/index.js","require":"./locales/index.cjs"},"./v3":{"@zod/source":"./src/v3/index.ts","types":"./v3/index.d.cts","import":"./v3/index.js","require":"./v3/index.cjs"},"./v4":{"@zod/source":"./src/v4/index.ts","types":"./v4/index.d.cts","import":"./v4/index.js","require":"./v4/index.cjs"},"./v4-mini":{"@zod/source":"./src/v4-mini/index.ts","types":"./v4-mini/index.d.cts","import":"./v4-mini/index.js","require":"./v4-mini/index.cjs"},"./v4/mini":{"@zod/source":"./src/v4/mini/index.ts","types":"./v4/mini/index.d.cts","import":"./v4/mini/index.js","require":"./v4/mini/index.cjs"},"./v4/core":{"@zod/source":"./src/v4/core/index.ts","types":"./v4/core/index.d.cts","import":"./v4/core/index.js","require":"./v4/core/index.cjs"},"./v4/locales":{"@zod/source":"./src/v4/locales/index.ts","types":"./v4/locales/index.d.cts","import":"./v4/locales/index.js","require":"./v4/locales/index.cjs"},"./v4/locales/*":{"@zod/source":"./src/v4/locales/*","types":"./v4/locales/*","import":"./v4/locales/*","require":"./v4/locales/*"}},"repository":{"type":"git","url":"git+https://github.com/colinhacks/zod.git"},"bugs":{"url":"https://github.com/colinhacks/zod/issues"},"support":{"backing":{"npm-funding":true}},"scripts":{"clean":"git clean -xdf . -e node_modules","build":"zshy --project tsconfig.build.json","postbuild":"tsx ../../scripts/write-stub-package-jsons.ts && pnpm biome check --write .","test:watch":"pnpm vitest","test":"pnpm vitest run","prepublishOnly":"tsx ../../scripts/check-versions.ts"},"_lastModified":"2026-07-11T14:08:54.519Z"}
|
|
@@ -63,6 +63,21 @@ var import_runjs_authoring = require("./runjs-authoring");
|
|
|
63
63
|
var import_configure_options = require("./configure-options");
|
|
64
64
|
var import_context = require("./context");
|
|
65
65
|
var import_filter_group = require("./filter-group");
|
|
66
|
+
const FLOW_SURFACE_DATA_SCOPE_DATE_EMPTY_OPERATORS = /* @__PURE__ */ new Set(["$empty", "$notEmpty"]);
|
|
67
|
+
const FLOW_SURFACE_DATA_SCOPE_DATE_ALLOWED_OPERATORS = /* @__PURE__ */ new Set([
|
|
68
|
+
...import_filter_group.FLOW_SURFACE_DATE_FILTER_OPERATORS,
|
|
69
|
+
...FLOW_SURFACE_DATA_SCOPE_DATE_EMPTY_OPERATORS
|
|
70
|
+
]);
|
|
71
|
+
const FLOW_SURFACE_DATA_SCOPE_DATE_UI_INCOMPATIBLE_OPERATORS = /* @__PURE__ */ new Set([
|
|
72
|
+
"$eq",
|
|
73
|
+
"$ne",
|
|
74
|
+
"$lt",
|
|
75
|
+
"$lte",
|
|
76
|
+
"$gt",
|
|
77
|
+
"$gte",
|
|
78
|
+
"$in",
|
|
79
|
+
"$notIn"
|
|
80
|
+
]);
|
|
66
81
|
const MAIN_BLOCK_UNSUPPORTED_SECTIONS = {
|
|
67
82
|
calendar: ["fields", "fieldGroups", "recordActions", "fieldsLayout"],
|
|
68
83
|
kanban: ["fieldGroups", "recordActions", "fieldsLayout"],
|
|
@@ -4386,6 +4401,7 @@ async function collectConfigureErrors(values, errors, context) {
|
|
|
4386
4401
|
collectGridCardSettingsErrors(changes, hostBlockType, "$.changes", errors, { directSettings: true });
|
|
4387
4402
|
collectAssignValuesErrors(changes.assignValues, "$.changes.assignValues", errors, changesBlock, context);
|
|
4388
4403
|
collectTriggerWorkflowsErrors(changes.triggerWorkflows, "$.changes.triggerWorkflows", errors);
|
|
4404
|
+
collectLinkageRulesErrors(changes.linkageRules, "$.changes.linkageRules", errors);
|
|
4389
4405
|
collectFieldListInternalKeyErrors(changes.fields, "$.changes.fields", errors);
|
|
4390
4406
|
const connectFieldsTargets = collectTreeConnectFieldsErrors(changes.connectFields, "$.changes.connectFields", errors);
|
|
4391
4407
|
await collectTreeConnectFieldsLiveErrors(connectFieldsTargets, changes, "$.changes.connectFields", errors, context);
|
|
@@ -4497,6 +4513,82 @@ function collectDefaultFilterDateValueError(operator, value, path, errors, field
|
|
|
4497
4513
|
});
|
|
4498
4514
|
}
|
|
4499
4515
|
}
|
|
4516
|
+
function collectPublicDataScopeDateOperatorError(operator, value, path, errors, fieldContext) {
|
|
4517
|
+
const fieldMeta = getDateConditionFieldContextMeta(fieldContext);
|
|
4518
|
+
if (!(0, import_filter_group.isFlowSurfaceDateLikeFieldMeta)(fieldMeta)) {
|
|
4519
|
+
return;
|
|
4520
|
+
}
|
|
4521
|
+
const normalizedOperator = typeof operator === "string" ? operator.trim() : "";
|
|
4522
|
+
if (FLOW_SURFACE_DATA_SCOPE_DATE_ALLOWED_OPERATORS.has(normalizedOperator)) {
|
|
4523
|
+
return;
|
|
4524
|
+
}
|
|
4525
|
+
const isComparisonOperator = FLOW_SURFACE_DATA_SCOPE_DATE_UI_INCOMPATIBLE_OPERATORS.has(normalizedOperator);
|
|
4526
|
+
const suggestedOperator = isComparisonOperator ? getSuggestedPublicDataScopeDateOperator(normalizedOperator) : void 0;
|
|
4527
|
+
const suggestedValue = getSuggestedPublicDataScopeDateValue(value);
|
|
4528
|
+
pushAuthoringError(errors, {
|
|
4529
|
+
path,
|
|
4530
|
+
ruleId: "dataScope-date-operator-ui-incompatible",
|
|
4531
|
+
message: `flowSurfaces authoring ${path} cannot use operator '${normalizedOperator}' for a date/datetime DataScope condition`,
|
|
4532
|
+
details: {
|
|
4533
|
+
fieldPath: fieldContext == null ? void 0 : fieldContext.fieldPath,
|
|
4534
|
+
fieldType: fieldMeta.type,
|
|
4535
|
+
fieldInterface: fieldMeta.interface,
|
|
4536
|
+
invalidOperator: normalizedOperator,
|
|
4537
|
+
invalidValue: value,
|
|
4538
|
+
allowedOperators: Array.from(FLOW_SURFACE_DATA_SCOPE_DATE_ALLOWED_OPERATORS),
|
|
4539
|
+
...suggestedOperator ? { suggestedOperator } : {},
|
|
4540
|
+
...typeof suggestedValue !== "undefined" ? { suggestedValue } : {},
|
|
4541
|
+
repairHint: 'For public settings.dataScope date/datetime fields, use UI date operators such as $dateOn with UI date values like "2026-07-05"; do not move fixed data-range conditions to defaultFilter.',
|
|
4542
|
+
repairExample: {
|
|
4543
|
+
logic: "$and",
|
|
4544
|
+
items: [
|
|
4545
|
+
{
|
|
4546
|
+
path: (fieldContext == null ? void 0 : fieldContext.fieldPath) || "createdAt",
|
|
4547
|
+
operator: suggestedOperator || "$dateOn",
|
|
4548
|
+
value: typeof suggestedValue !== "undefined" ? suggestedValue : "2026-07-05"
|
|
4549
|
+
}
|
|
4550
|
+
]
|
|
4551
|
+
},
|
|
4552
|
+
agentInstruction: "Replace date/datetime DataScope comparison operators with $dateOn/$dateNotOn/$dateBefore/$dateAfter/$dateNotBefore/$dateNotAfter/$dateBetween and UI date values. Keep the condition in dataScope when it is a fixed data range."
|
|
4553
|
+
}
|
|
4554
|
+
});
|
|
4555
|
+
}
|
|
4556
|
+
function getSuggestedPublicDataScopeDateOperator(operator) {
|
|
4557
|
+
switch (operator) {
|
|
4558
|
+
case "$eq":
|
|
4559
|
+
return "$dateOn";
|
|
4560
|
+
case "$ne":
|
|
4561
|
+
return "$dateNotOn";
|
|
4562
|
+
case "$lt":
|
|
4563
|
+
return "$dateBefore";
|
|
4564
|
+
case "$lte":
|
|
4565
|
+
return "$dateNotAfter";
|
|
4566
|
+
case "$gt":
|
|
4567
|
+
return "$dateAfter";
|
|
4568
|
+
case "$gte":
|
|
4569
|
+
return "$dateNotBefore";
|
|
4570
|
+
default:
|
|
4571
|
+
return void 0;
|
|
4572
|
+
}
|
|
4573
|
+
}
|
|
4574
|
+
function getSuggestedPublicDataScopeDateValue(value) {
|
|
4575
|
+
if (typeof value === "string") {
|
|
4576
|
+
const match = /^(\d{4}-\d{2}-\d{2})/.exec(value.trim());
|
|
4577
|
+
if (match) {
|
|
4578
|
+
return match[1];
|
|
4579
|
+
}
|
|
4580
|
+
}
|
|
4581
|
+
if (Array.isArray(value)) {
|
|
4582
|
+
const suggested = value.map((item) => {
|
|
4583
|
+
var _a;
|
|
4584
|
+
return typeof item === "string" ? (_a = /^(\d{4}-\d{2}-\d{2})/.exec(item.trim())) == null ? void 0 : _a[1] : void 0;
|
|
4585
|
+
}).filter(Boolean);
|
|
4586
|
+
if (suggested.length === value.length && suggested.length > 0) {
|
|
4587
|
+
return suggested;
|
|
4588
|
+
}
|
|
4589
|
+
}
|
|
4590
|
+
return void 0;
|
|
4591
|
+
}
|
|
4500
4592
|
function collectTopLevelLayoutErrors(actionName, values, errors) {
|
|
4501
4593
|
if (actionName !== "applyBlueprint") {
|
|
4502
4594
|
return;
|
|
@@ -6130,13 +6222,9 @@ function collectFilterGroupDateConditionErrors(value, path, errors, block, conte
|
|
|
6130
6222
|
return;
|
|
6131
6223
|
}
|
|
6132
6224
|
const fieldPath = String(value.path || value.field || "").trim();
|
|
6133
|
-
|
|
6134
|
-
|
|
6135
|
-
|
|
6136
|
-
`${path}.value`,
|
|
6137
|
-
errors,
|
|
6138
|
-
fieldPath ? resolveDefaultFilterDateConditionField(fieldPath, block, context) : void 0
|
|
6139
|
-
);
|
|
6225
|
+
const fieldContext = fieldPath ? resolveDefaultFilterDateConditionField(fieldPath, block, context) : void 0;
|
|
6226
|
+
collectPublicDataScopeDateOperatorError(value.operator, value.value, `${path}.operator`, errors, fieldContext);
|
|
6227
|
+
collectDefaultFilterDateValueError(value.operator, value.value, `${path}.value`, errors, fieldContext);
|
|
6140
6228
|
}
|
|
6141
6229
|
function collectGridCardSettingsErrors(block, blockType, blockPath, errors, options = {}) {
|
|
6142
6230
|
const hasSettings = _.isPlainObject(block == null ? void 0 : block.settings);
|
|
@@ -6402,7 +6490,7 @@ function collectActionSlotErrors(actionType, path, errors, block, slot = "action
|
|
|
6402
6490
|
}
|
|
6403
6491
|
}
|
|
6404
6492
|
function collectActionErrors(action, path, errors, block, context = {}, slot = "actions") {
|
|
6405
|
-
var _a, _b, _c, _d;
|
|
6493
|
+
var _a, _b, _c, _d, _e;
|
|
6406
6494
|
const actionType = resolveAuthoringActionType(action, block);
|
|
6407
6495
|
collectActionSlotErrors(actionType, path, errors, block, slot);
|
|
6408
6496
|
if (!_.isPlainObject(action)) {
|
|
@@ -6411,6 +6499,7 @@ function collectActionErrors(action, path, errors, block, context = {}, slot = "
|
|
|
6411
6499
|
collectApplyBlueprintScriptAssetReferenceErrors(action, path, errors, context);
|
|
6412
6500
|
collectAssignValuesErrors((_a = action.settings) == null ? void 0 : _a.assignValues, `${path}.settings.assignValues`, errors, block, context);
|
|
6413
6501
|
collectTriggerWorkflowsErrors((_b = action.settings) == null ? void 0 : _b.triggerWorkflows, `${path}.settings.triggerWorkflows`, errors);
|
|
6502
|
+
collectLinkageRulesErrors((_c = action.settings) == null ? void 0 : _c.linkageRules, `${path}.settings.linkageRules`, errors);
|
|
6414
6503
|
if (hasOwn(action, "assignValues")) {
|
|
6415
6504
|
pushAuthoringError(errors, {
|
|
6416
6505
|
path: `${path}.assignValues`,
|
|
@@ -6446,7 +6535,7 @@ function collectActionErrors(action, path, errors, block, context = {}, slot = "
|
|
|
6446
6535
|
}
|
|
6447
6536
|
});
|
|
6448
6537
|
}
|
|
6449
|
-
const hasRunnableSource = typeof action.source === "string" && action.source.trim() || typeof action.code === "string" && action.code.trim() || hasApplyBlueprintRunnableScriptAssetReference(action.script, context) || typeof ((
|
|
6538
|
+
const hasRunnableSource = typeof action.source === "string" && action.source.trim() || typeof action.code === "string" && action.code.trim() || hasApplyBlueprintRunnableScriptAssetReference(action.script, context) || typeof ((_d = action.settings) == null ? void 0 : _d.source) === "string" && action.settings.source.trim() || typeof ((_e = action.settings) == null ? void 0 : _e.code) === "string" && action.settings.code.trim();
|
|
6450
6539
|
if (!hasRunnableSource) {
|
|
6451
6540
|
pushAuthoringError(errors, {
|
|
6452
6541
|
path,
|
|
@@ -6711,6 +6800,59 @@ function collectTriggerWorkflowsErrors(value, path, errors) {
|
|
|
6711
6800
|
}
|
|
6712
6801
|
});
|
|
6713
6802
|
}
|
|
6803
|
+
function collectLinkageRulesErrors(value, path, errors) {
|
|
6804
|
+
if (_.isUndefined(value)) {
|
|
6805
|
+
return;
|
|
6806
|
+
}
|
|
6807
|
+
if (!Array.isArray(value)) {
|
|
6808
|
+
pushAuthoringError(errors, {
|
|
6809
|
+
path,
|
|
6810
|
+
ruleId: "linkageRules-invalid-shape",
|
|
6811
|
+
message: `flowSurfaces authoring ${path} must be an array`
|
|
6812
|
+
});
|
|
6813
|
+
return;
|
|
6814
|
+
}
|
|
6815
|
+
value.forEach((rule, index) => {
|
|
6816
|
+
const rulePath = `${path}[${index}]`;
|
|
6817
|
+
if (!_.isPlainObject(rule)) {
|
|
6818
|
+
pushAuthoringError(errors, {
|
|
6819
|
+
path: rulePath,
|
|
6820
|
+
ruleId: "linkageRules-rule-invalid-shape",
|
|
6821
|
+
message: `flowSurfaces authoring ${rulePath} must be an object`
|
|
6822
|
+
});
|
|
6823
|
+
return;
|
|
6824
|
+
}
|
|
6825
|
+
const conditionPath = hasOwn(rule, "condition") ? `${rulePath}.condition` : hasOwn(rule, "when") ? `${rulePath}.when` : `${rulePath}.condition`;
|
|
6826
|
+
const conditionValue = hasOwn(rule, "condition") ? rule.condition : hasOwn(rule, "when") ? rule.when : import_filter_group.FLOW_SURFACE_EMPTY_FILTER_GROUP;
|
|
6827
|
+
try {
|
|
6828
|
+
(0, import_filter_group.normalizeFlowSurfaceCompatibleFilterGroupValue)(
|
|
6829
|
+
conditionValue,
|
|
6830
|
+
`flowSurfaces authoring ${conditionPath} expects FilterGroup or backend query filter like ${import_filter_group.FLOW_SURFACE_FILTER_GROUP_EXAMPLE}`,
|
|
6831
|
+
{ strictDateValues: true }
|
|
6832
|
+
);
|
|
6833
|
+
} catch (error) {
|
|
6834
|
+
pushAuthoringError(errors, {
|
|
6835
|
+
path: conditionPath,
|
|
6836
|
+
ruleId: "linkageRules-condition-invalid-shape",
|
|
6837
|
+
message: error instanceof Error ? error.message : String(error)
|
|
6838
|
+
});
|
|
6839
|
+
}
|
|
6840
|
+
if (hasOwn(rule, "actions") && !Array.isArray(rule.actions)) {
|
|
6841
|
+
pushAuthoringError(errors, {
|
|
6842
|
+
path: `${rulePath}.actions`,
|
|
6843
|
+
ruleId: "linkageRules-actions-invalid-shape",
|
|
6844
|
+
message: `flowSurfaces authoring ${rulePath}.actions must be an array`
|
|
6845
|
+
});
|
|
6846
|
+
}
|
|
6847
|
+
if (hasOwn(rule, "then") && !Array.isArray(rule.then)) {
|
|
6848
|
+
pushAuthoringError(errors, {
|
|
6849
|
+
path: `${rulePath}.then`,
|
|
6850
|
+
ruleId: "linkageRules-actions-invalid-shape",
|
|
6851
|
+
message: `flowSurfaces authoring ${rulePath}.then must be an array`
|
|
6852
|
+
});
|
|
6853
|
+
}
|
|
6854
|
+
});
|
|
6855
|
+
}
|
|
6714
6856
|
function collectPopupErrors(popup, path, errors, localKeys, context = {}) {
|
|
6715
6857
|
if (!_.isPlainObject(popup)) {
|
|
6716
6858
|
return;
|
|
@@ -960,10 +960,14 @@ function resolveApplyBlueprintAssociationContext(input) {
|
|
|
960
960
|
}
|
|
961
961
|
const targetCollection = (0, import_service_helpers.resolveFieldTargetCollection)(field, dataSourceKey, input.getCollection);
|
|
962
962
|
const targetCollectionName = normalizeMetadataText(input.targetCollectionName) || normalizeMetadataText((0, import_service_helpers.getCollectionName)(targetCollection)) || normalizeMetadataText((0, import_service_helpers.getFieldTarget)(field));
|
|
963
|
+
const resolvedAssociationName = (0, import_service_helpers.resolveAssociationNameFromField)(
|
|
964
|
+
field,
|
|
965
|
+
associationPath.includes(".") ? void 0 : sourceCollection
|
|
966
|
+
);
|
|
963
967
|
return {
|
|
964
968
|
dataSourceKey,
|
|
965
969
|
surfaceCollectionName: targetCollectionName || void 0,
|
|
966
|
-
associationName:
|
|
970
|
+
associationName: resolvedAssociationName || `${sourceCollectionName}.${associationPath || associationFieldPath}`
|
|
967
971
|
};
|
|
968
972
|
}
|
|
969
973
|
function getApplyBlueprintBlockResourceObject(block) {
|
|
@@ -1018,7 +1022,7 @@ function resolveApplyBlueprintBlockResourceContext(block, parentContext, getColl
|
|
|
1018
1022
|
return {
|
|
1019
1023
|
dataSourceKey,
|
|
1020
1024
|
surfaceCollectionName: directCollectionName || (associatedContext == null ? void 0 : associatedContext.surfaceCollectionName) || (parentContext == null ? void 0 : parentContext.surfaceCollectionName),
|
|
1021
|
-
associationName: (
|
|
1025
|
+
associationName: (associatedContext == null ? void 0 : associatedContext.associationName) || (parentContext == null ? void 0 : parentContext.associationName)
|
|
1022
1026
|
};
|
|
1023
1027
|
}
|
|
1024
1028
|
return {
|
|
@@ -1665,7 +1669,7 @@ function compileField(input, index, scopePrefix, assets, localBlockKeys, context
|
|
|
1665
1669
|
hostBlock: popupOptions.hostBlock,
|
|
1666
1670
|
dataSourceKey: (fieldAssociationContext == null ? void 0 : fieldAssociationContext.dataSourceKey) || popupOptions.dataSourceKey,
|
|
1667
1671
|
surfaceCollectionName: (fieldAssociationContext == null ? void 0 : fieldAssociationContext.surfaceCollectionName) || popupOptions.surfaceCollectionName,
|
|
1668
|
-
associationName:
|
|
1672
|
+
associationName: (fieldAssociationContext == null ? void 0 : fieldAssociationContext.associationName) || popupOptions.associationName
|
|
1669
1673
|
});
|
|
1670
1674
|
settings = resolvePopupTitleSettings(settings, popupResult.popupTitle);
|
|
1671
1675
|
const popup = shouldAttachDefaultPopupMetadata(popupInput, void 0) ? attachCompiledPopupDefaults(popupResult.popup, popupDefaultsMetadata) : popupResult.popup;
|
|
@@ -937,6 +937,9 @@ function inferPopupActionSourceId(resourceInit) {
|
|
|
937
937
|
if (!(resourceInit == null ? void 0 : resourceInit.associationName)) {
|
|
938
938
|
return void 0;
|
|
939
939
|
}
|
|
940
|
+
if (!Object.prototype.hasOwnProperty.call(resourceInit, "sourceId")) {
|
|
941
|
+
return "{{ctx.view.inputArgs.sourceId}}";
|
|
942
|
+
}
|
|
940
943
|
const sourceId = typeof (resourceInit == null ? void 0 : resourceInit.sourceId) === "string" ? resourceInit.sourceId.trim() : resourceInit == null ? void 0 : resourceInit.sourceId;
|
|
941
944
|
if (!sourceId) {
|
|
942
945
|
return void 0;
|
|
@@ -393,27 +393,35 @@ function normalizeLinkageRulesValue(value, context, path) {
|
|
|
393
393
|
return value;
|
|
394
394
|
}
|
|
395
395
|
return value.map((rule, index) => {
|
|
396
|
-
if (!import_lodash.default.isPlainObject(rule)
|
|
397
|
-
|
|
396
|
+
if (!import_lodash.default.isPlainObject(rule)) {
|
|
397
|
+
(0, import_errors.throwBadRequest)(
|
|
398
|
+
`flowSurfaces updateSettings domain '${getLinkageRuleDomainPath(context, path, index)}' on '${context.use}' expects each linkage rule to be an object`
|
|
399
|
+
);
|
|
398
400
|
}
|
|
399
401
|
const normalizedRule = import_lodash.default.cloneDeep(rule);
|
|
400
|
-
const
|
|
402
|
+
const hasCondition = import_lodash.default.has(normalizedRule, "condition");
|
|
403
|
+
const hasWhen = import_lodash.default.has(normalizedRule, "when");
|
|
404
|
+
const conditionLeaf = hasCondition ? "condition" : hasWhen ? "when" : "condition";
|
|
405
|
+
const conditionInput = hasCondition ? import_lodash.default.get(normalizedRule, "condition") : hasWhen ? import_lodash.default.get(normalizedRule, "when") : import_filter_group.FLOW_SURFACE_EMPTY_FILTER_GROUP;
|
|
401
406
|
import_lodash.default.set(
|
|
402
407
|
normalizedRule,
|
|
403
408
|
"condition",
|
|
404
409
|
(0, import_filter_group.normalizeFlowSurfaceCompatibleFilterGroupValue)(
|
|
405
|
-
|
|
406
|
-
`flowSurfaces updateSettings domain '${
|
|
410
|
+
conditionInput,
|
|
411
|
+
`flowSurfaces updateSettings domain '${getLinkageRuleDomainPath(context, path, index, conditionLeaf)}' on '${context.use}' expects FilterGroup or backend query filter like ${import_filter_group.FLOW_SURFACE_FILTER_GROUP_EXAMPLE}`,
|
|
407
412
|
{ strictDateValues: true }
|
|
408
413
|
)
|
|
409
414
|
);
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
415
|
+
const hasActions = import_lodash.default.has(normalizedRule, "actions");
|
|
416
|
+
const hasThen = import_lodash.default.has(normalizedRule, "then");
|
|
417
|
+
const actionsLeaf = hasActions ? "actions" : hasThen ? "then" : "actions";
|
|
418
|
+
const actionsInput = hasActions ? import_lodash.default.get(normalizedRule, "actions") : hasThen ? import_lodash.default.get(normalizedRule, "then") : [];
|
|
419
|
+
if (!Array.isArray(actionsInput)) {
|
|
413
420
|
(0, import_errors.throwBadRequest)(
|
|
414
|
-
`flowSurfaces updateSettings domain '${getLinkageRuleDomainPath(context, path, index,
|
|
421
|
+
`flowSurfaces updateSettings domain '${getLinkageRuleDomainPath(context, path, index, actionsLeaf)}' on '${context.use}' expects actions/then to be an array`
|
|
415
422
|
);
|
|
416
423
|
}
|
|
424
|
+
import_lodash.default.set(normalizedRule, "actions", actionsInput);
|
|
417
425
|
if (!import_lodash.default.has(normalizedRule, "key")) {
|
|
418
426
|
import_lodash.default.set(normalizedRule, "key", `linkage-rule-${index + 1}`);
|
|
419
427
|
}
|
|
@@ -425,12 +433,14 @@ function normalizeLinkageRulesValue(value, context, path) {
|
|
|
425
433
|
import_lodash.default.set(normalizedRule, "enable", typeof enabled === "boolean" ? enabled : true);
|
|
426
434
|
}
|
|
427
435
|
import_lodash.default.unset(normalizedRule, "enabled");
|
|
436
|
+
import_lodash.default.unset(normalizedRule, "when");
|
|
437
|
+
import_lodash.default.unset(normalizedRule, "then");
|
|
428
438
|
return normalizedRule;
|
|
429
439
|
});
|
|
430
440
|
}
|
|
431
441
|
function getLinkageRuleDomainPath(context, path, index, leaf) {
|
|
432
442
|
const basePath = context.groupKey ? `${context.domain}.${context.groupKey}.${path}[${index}]` : `${context.domain}.${path}[${index}]`;
|
|
433
|
-
return `${basePath}.${leaf}
|
|
443
|
+
return leaf ? `${basePath}.${leaf}` : basePath;
|
|
434
444
|
}
|
|
435
445
|
function isContractDefinedFlowGroup(groupContract) {
|
|
436
446
|
if (!groupContract) {
|
|
@@ -1834,7 +1834,7 @@ class FlowSurfacesService {
|
|
|
1834
1834
|
return !blockScenes.some((scene) => this.isPopupCollectionBlockSceneUnsupported(scene));
|
|
1835
1835
|
}
|
|
1836
1836
|
resolveFieldAssociationContextFromBinding(input) {
|
|
1837
|
-
var _a;
|
|
1837
|
+
var _a, _b;
|
|
1838
1838
|
const parsed = this.parseFieldPath(
|
|
1839
1839
|
input.collection,
|
|
1840
1840
|
input.fieldPath,
|
|
@@ -1851,13 +1851,14 @@ class FlowSurfacesService {
|
|
|
1851
1851
|
);
|
|
1852
1852
|
const targetCollection = (associationField ? resolveTargetCollection(associationField) || (associationField == null ? void 0 : associationField.targetCollection) : null) || resolveTargetCollection(leafField) || (leafField == null ? void 0 : leafField.targetCollection) || null;
|
|
1853
1853
|
const targetCollectionName = (0, import_service_helpers.getCollectionName)(targetCollection) || (associationField ? (0, import_service_helpers.getFieldTarget)(associationField) : void 0) || parsed.collectionName || input.collectionName;
|
|
1854
|
-
const
|
|
1854
|
+
const fallbackAssociationName = parsed.associationPathName ? `${parsed.collectionName}.${parsed.associationPathName}` : void 0;
|
|
1855
|
+
const associationName = associationField ? ((_a = parsed.associationPathName) == null ? void 0 : _a.includes(".")) ? fallbackAssociationName : (0, import_service_helpers.resolveAssociationNameFromField)(associationField, input.collection) : void 0;
|
|
1855
1856
|
return {
|
|
1856
1857
|
associationField,
|
|
1857
1858
|
targetCollection,
|
|
1858
|
-
dataSourceKey: (targetCollection == null ? void 0 : targetCollection.dataSourceKey) || ((
|
|
1859
|
+
dataSourceKey: (targetCollection == null ? void 0 : targetCollection.dataSourceKey) || ((_b = targetCollection == null ? void 0 : targetCollection.options) == null ? void 0 : _b.dataSourceKey) || parsed.dataSourceKey || input.dataSourceKey,
|
|
1859
1860
|
collectionName: targetCollectionName,
|
|
1860
|
-
associationName
|
|
1861
|
+
associationName: associationName || fallbackAssociationName
|
|
1861
1862
|
};
|
|
1862
1863
|
}
|
|
1863
1864
|
async resolvePopupHostFieldAssociationContext(hostNode, transaction) {
|
|
@@ -4803,6 +4804,7 @@ class FlowSurfacesService {
|
|
|
4803
4804
|
);
|
|
4804
4805
|
}
|
|
4805
4806
|
const popupProfile = await this.resolvePopupBlockProfile(node.uid, null, node, transaction).catch(() => null);
|
|
4807
|
+
const sourceId = String(openView.sourceId || "").trim() || ((popupProfile == null ? void 0 : popupProfile.sourceIdInferred) ? "" : String((popupProfile == null ? void 0 : popupProfile.sourceId) || "").trim()) || void 0;
|
|
4806
4808
|
const popupSourceNode = popupTargetUid ? await this.repository.findModelById(popupTargetUid, {
|
|
4807
4809
|
transaction,
|
|
4808
4810
|
includeAsyncNode: true
|
|
@@ -4816,7 +4818,7 @@ class FlowSurfacesService {
|
|
|
4816
4818
|
collectionName: String(openView.collectionName || "").trim() || String((popupProfile == null ? void 0 : popupProfile.collectionName) || "").trim() || void 0,
|
|
4817
4819
|
associationName: String(openView.associationName || "").trim() || String((popupProfile == null ? void 0 : popupProfile.associationName) || "").trim() || void 0,
|
|
4818
4820
|
filterByTk: String(openView.filterByTk || "").trim() || String((popupProfile == null ? void 0 : popupProfile.filterByTk) || "").trim() || void 0,
|
|
4819
|
-
sourceId
|
|
4821
|
+
sourceId,
|
|
4820
4822
|
openViewStep
|
|
4821
4823
|
};
|
|
4822
4824
|
}
|
|
@@ -63,9 +63,14 @@ function mergeFieldsWithExtras(fields, extras = []) {
|
|
|
63
63
|
if (!Array.isArray(fields) || fields.length === 0 || extras.length === 0) return fields;
|
|
64
64
|
return uniqStrings([...fields, ...extras]);
|
|
65
65
|
}
|
|
66
|
+
function toJsonRecord(record) {
|
|
67
|
+
if (!record || typeof record !== "object") return record;
|
|
68
|
+
const toJSON = record.toJSON;
|
|
69
|
+
return typeof toJSON === "function" ? toJSON.call(record) : record;
|
|
70
|
+
}
|
|
66
71
|
function toJsonArray(rows) {
|
|
67
72
|
if (!Array.isArray(rows)) return [];
|
|
68
|
-
return rows.map(
|
|
73
|
+
return rows.map(toJsonRecord);
|
|
69
74
|
}
|
|
70
75
|
function reorderRecordsByFilterByTk(records, filterByTk, options) {
|
|
71
76
|
if (!Array.isArray(filterByTk) || filterByTk.length === 0) return records;
|
|
@@ -110,7 +115,7 @@ async function fetchRecordOrRecordsJson(repo, params) {
|
|
|
110
115
|
const rec = await repo.findOne(
|
|
111
116
|
preferFullRecord ? { filterByTk } : { filterByTk, fields, appends }
|
|
112
117
|
);
|
|
113
|
-
return rec ? rec
|
|
118
|
+
return rec ? toJsonRecord(rec) : void 0;
|
|
114
119
|
}
|
|
115
120
|
// Annotate the CommonJS export names for ESM import in node:
|
|
116
121
|
0 && (module.exports = {
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"displayName.zh-CN": "前端流引擎",
|
|
5
5
|
"description": "",
|
|
6
6
|
"description.zh-CN": "",
|
|
7
|
-
"version": "2.2.0-beta.
|
|
7
|
+
"version": "2.2.0-beta.12",
|
|
8
8
|
"main": "./dist/server/index.js",
|
|
9
9
|
"license": "Apache-2.0",
|
|
10
10
|
"devDependencies": {
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"@nocobase/test": "2.x",
|
|
27
27
|
"@nocobase/utils": "2.x"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "ad8ed32d47eaec2dc56f15999934f720787d5070"
|
|
30
30
|
}
|