@nocobase/plugin-flow-engine 2.2.0-beta.3 → 2.2.0-beta.5

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.
@@ -8,16 +8,16 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "2.2.0-beta.3",
11
+ "@nocobase/client": "2.2.0-beta.5",
12
12
  "lodash": "4.18.1",
13
- "@nocobase/database": "2.2.0-beta.3",
14
- "@nocobase/data-source-manager": "2.2.0-beta.3",
15
- "@nocobase/resourcer": "2.2.0-beta.3",
16
- "@nocobase/utils": "2.2.0-beta.3",
17
- "@nocobase/cache": "2.2.0-beta.3",
18
- "@nocobase/server": "2.2.0-beta.3",
19
- "@nocobase/actions": "2.2.0-beta.3",
13
+ "@nocobase/database": "2.2.0-beta.5",
14
+ "@nocobase/data-source-manager": "2.2.0-beta.5",
15
+ "@nocobase/resourcer": "2.2.0-beta.5",
16
+ "@nocobase/utils": "2.2.0-beta.5",
17
+ "@nocobase/cache": "2.2.0-beta.5",
18
+ "@nocobase/server": "2.2.0-beta.5",
19
+ "@nocobase/actions": "2.2.0-beta.5",
20
20
  "sequelize": "6.35.2",
21
21
  "@formily/json-schema": "2.3.7",
22
- "@nocobase/ai": "2.2.0-beta.3"
22
+ "@nocobase/ai": "2.2.0-beta.5"
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-06-15T15:30:01.607Z"}
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-06-16T14:50:52.146Z"}
@@ -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-06-15T15:30:02.494Z"}
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-06-16T14:50:53.128Z"}
@@ -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-06-15T15:30:02.915Z"}
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-06-16T14:50:53.584Z"}
@@ -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-06-15T15:30:03.025Z"}
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-06-16T14:50:53.707Z"}
@@ -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-06-15T15:30:02.100Z"}
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-06-16T14:50:52.698Z"}
@@ -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-06-15T15:30:04.076Z"}
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-06-16T14:50:54.958Z"}
@@ -5962,6 +5962,9 @@ function collectTableSettingsErrors(block, blockType, blockPath, errors, options
5962
5962
  });
5963
5963
  const hasSettings = _.isPlainObject(block == null ? void 0 : block.settings);
5964
5964
  if (!hasSettings) {
5965
+ if (options.directSettings === true && !shouldDeferPublicDataScopeErrorsToBatchItem(blockPath, errors, options)) {
5966
+ collectPublicDataScopeErrors(block.dataScope, `${blockPath}.dataScope`, errors, block, context);
5967
+ }
5965
5968
  return;
5966
5969
  }
5967
5970
  const settings = block.settings;
@@ -6013,8 +6016,62 @@ function collectPublicDataScopeErrors(value, path, errors, block, context) {
6013
6016
  });
6014
6017
  return;
6015
6018
  }
6019
+ collectPublicDataScopeFieldPathErrors(validationValue, path, errors, block, context);
6016
6020
  collectFilterGroupDateConditionErrors(validationValue, path, errors, block, context);
6017
6021
  }
6022
+ function collectPublicDataScopeFieldPathErrors(value, path, errors, block, context) {
6023
+ if (!_.isPlainObject(value)) {
6024
+ return;
6025
+ }
6026
+ if (hasOwn(value, "operator")) {
6027
+ collectPublicDataScopeFieldPathError(value.path, `${path}.path`, block, context, errors);
6028
+ }
6029
+ if (Array.isArray(value.items)) {
6030
+ value.items.forEach(
6031
+ (item, index) => collectPublicDataScopeFieldPathErrors(item, `${path}.items[${index}]`, errors, block, context)
6032
+ );
6033
+ }
6034
+ }
6035
+ function collectPublicDataScopeFieldPathError(rawFieldPath, path, block, context, errors) {
6036
+ const fieldPath = String(rawFieldPath || "").trim();
6037
+ if (!fieldPath || fieldPath.startsWith("$") || fieldPath.startsWith("{{")) {
6038
+ return;
6039
+ }
6040
+ const collection = getBlockCollection(block, context);
6041
+ if (!collection) {
6042
+ return;
6043
+ }
6044
+ const resolved = resolveDefaultFilterFieldPath(
6045
+ collection,
6046
+ (0, import_service_helpers.normalizeFieldPath)(fieldPath),
6047
+ getBlockDataSourceKey(block, context),
6048
+ context
6049
+ );
6050
+ if (!resolved.field) {
6051
+ pushAuthoringError(errors, {
6052
+ path,
6053
+ ruleId: "field-path-unknown",
6054
+ message: `flowSurfaces authoring ${path} references unknown field '${fieldPath}'`,
6055
+ details: {
6056
+ fieldPath,
6057
+ collection: (0, import_service_helpers.getCollectionName)(resolved.collection || collection),
6058
+ availableFields: (0, import_service_helpers.getCollectionFields)(resolved.collection || collection).map((field) => String((0, import_service_helpers.getFieldName)(field) || "").trim()).filter(Boolean)
6059
+ }
6060
+ });
6061
+ return;
6062
+ }
6063
+ if ((0, import_service_helpers.isAssociationField)(resolved.field)) {
6064
+ pushAuthoringError(errors, {
6065
+ path,
6066
+ ruleId: "defaultFilter-relation-field-unsupported",
6067
+ message: `flowSurfaces authoring ${path} cannot use relation field '${fieldPath}' itself; use a scalar subfield instead`,
6068
+ details: {
6069
+ fieldPath,
6070
+ fieldName: (0, import_service_helpers.getFieldName)(resolved.field)
6071
+ }
6072
+ });
6073
+ }
6074
+ }
6018
6075
  function shouldDeferPublicDataScopeErrorsToBatchItem(blockPath, errors, options) {
6019
6076
  if (options.deferPublicDataScopeErrors !== true) {
6020
6077
  return false;
@@ -86,6 +86,7 @@ const BASIC_ACTION_PROP_KEYS = /* @__PURE__ */ new Set([
86
86
  "title",
87
87
  "tooltip",
88
88
  "icon",
89
+ "iconOnly",
89
90
  "type",
90
91
  "danger",
91
92
  "color",
@@ -94,7 +95,7 @@ const BASIC_ACTION_PROP_KEYS = /* @__PURE__ */ new Set([
94
95
  "filterableFieldNames",
95
96
  "position"
96
97
  ]);
97
- const BASIC_ACTION_BUTTON_GENERAL_KEYS = /* @__PURE__ */ new Set(["title", "tooltip", "icon", "type", "danger", "color"]);
98
+ const BASIC_ACTION_BUTTON_GENERAL_KEYS = /* @__PURE__ */ new Set(["title", "tooltip", "icon", "iconOnly", "type", "danger", "color"]);
98
99
  const BASIC_DELETE_ACTION_TYPES = /* @__PURE__ */ new Set(["delete", "bulkDelete"]);
99
100
  const RECORD_HISTORY_GENERATED_ACTION_USES = /* @__PURE__ */ new Set([
100
101
  "RecordHistoryExpandActionModel",
@@ -1686,6 +1687,7 @@ function exportActionButtonSettings(action) {
1686
1687
  title: readValue("title"),
1687
1688
  tooltip: readValue("tooltip"),
1688
1689
  icon: readValue("icon"),
1690
+ iconOnly: readValue("iconOnly"),
1689
1691
  type: readValue("type"),
1690
1692
  danger: readValue("danger"),
1691
1693
  color: readValue("color")
@@ -731,10 +731,19 @@ function buildActionTree(options) {
731
731
  containerUse: options.containerUse,
732
732
  resourceInit: options.resourceInit
733
733
  });
734
+ const requestedProps = options.props;
735
+ const requestedButtonGeneral = import_lodash.default.get(options.stepParams, ["buttonSettings", "general"]);
736
+ const stripImplicitTitle = shouldStripImplicitIconOnlyActionTitle(requestedProps, requestedButtonGeneral);
734
737
  const props = import_lodash.default.merge({}, import_lodash.default.cloneDeep(defaults.props || {}), import_lodash.default.cloneDeep(options.props || {}));
738
+ if (stripImplicitTitle) {
739
+ delete props.title;
740
+ }
735
741
  const stepParams = import_lodash.default.merge({}, import_lodash.default.cloneDeep(defaults.stepParams || {}), import_lodash.default.cloneDeep(options.stepParams || {}));
736
742
  if (import_lodash.default.isPlainObject((_a = stepParams == null ? void 0 : stepParams.buttonSettings) == null ? void 0 : _a.general)) {
737
743
  stepParams.buttonSettings.general = import_lodash.default.merge({}, stepParams.buttonSettings.general, pickButtonGeneralProps(props));
744
+ if (stripImplicitTitle) {
745
+ delete stepParams.buttonSettings.general.title;
746
+ }
738
747
  }
739
748
  return {
740
749
  use,
@@ -767,10 +776,15 @@ function buildCanonicalTableActionsColumnNode(options = {}) {
767
776
  }
768
777
  function pickButtonGeneralProps(props) {
769
778
  return import_lodash.default.pickBy(
770
- import_lodash.default.pick(props || {}, ["title", "tooltip", "icon", "type", "danger", "color"]),
779
+ import_lodash.default.pick(props || {}, ["title", "tooltip", "icon", "iconOnly", "type", "danger", "color"]),
771
780
  (value) => !import_lodash.default.isUndefined(value)
772
781
  );
773
782
  }
783
+ function shouldStripImplicitIconOnlyActionTitle(props, buttonGeneral) {
784
+ const hasRequestedOnlyIcon = import_lodash.default.isPlainObject(props) && Object.prototype.hasOwnProperty.call(props, "iconOnly") && props.iconOnly === true || import_lodash.default.isPlainObject(buttonGeneral) && Object.prototype.hasOwnProperty.call(buttonGeneral, "iconOnly") && buttonGeneral.iconOnly === true;
785
+ const hasRequestedTitle = import_lodash.default.isPlainObject(props) && Object.prototype.hasOwnProperty.call(props, "title") || import_lodash.default.isPlainObject(buttonGeneral) && Object.prototype.hasOwnProperty.call(buttonGeneral, "title");
786
+ return hasRequestedOnlyIcon && !hasRequestedTitle;
787
+ }
774
788
  function assignClientKeysToUids(spec, clientKeyToUid) {
775
789
  const next = import_lodash.default.cloneDeep(spec);
776
790
  const walk = (node) => {
@@ -997,6 +1011,7 @@ function inferActionDefaultProps(use, scope) {
997
1011
  title: "",
998
1012
  tooltip: '{{t("Delete")}}',
999
1013
  icon: "DeleteOutlined",
1014
+ iconOnly: true,
1000
1015
  position: "right"
1001
1016
  },
1002
1017
  BulkEditActionModel: {
@@ -182,7 +182,7 @@ const FILTER_FORM_ITEM_ALLOWED_PATHS = [
182
182
  "init.filterField.type",
183
183
  "initialValue.defaultValue"
184
184
  ];
185
- const ACTION_PROP_KEYS = ["title", "tooltip", "icon", "type", "htmlType", "position", "danger", "color"];
185
+ const ACTION_PROP_KEYS = ["title", "tooltip", "icon", "iconOnly", "type", "htmlType", "position", "danger", "color"];
186
186
  const FILTER_ACTION_PROP_KEYS = [...ACTION_PROP_KEYS, "filterableFieldNames", "defaultFilterValue", "filterValue"];
187
187
  const FILTER_ACTION_PROP_PATH_SCHEMAS = {
188
188
  filterableFieldNames: {
@@ -197,6 +197,7 @@ const ACTION_BUTTON_SETTINGS_GROUP = {
197
197
  "general.title",
198
198
  "general.tooltip",
199
199
  "general.icon",
200
+ "general.iconOnly",
200
201
  "general.type",
201
202
  "general.danger",
202
203
  "general.color",
@@ -208,6 +209,7 @@ const ACTION_BUTTON_SETTINGS_GROUP = {
208
209
  "general.title": STRING_SCHEMA,
209
210
  "general.tooltip": STRING_SCHEMA,
210
211
  "general.icon": NULLABLE_STRING_SCHEMA,
212
+ "general.iconOnly": BOOLEAN_SCHEMA,
211
213
  "general.type": STRING_SCHEMA,
212
214
  "general.danger": BOOLEAN_SCHEMA,
213
215
  "general.color": STRING_SCHEMA,
@@ -201,7 +201,7 @@ const DETAILS_OPTIONS = {
201
201
  sorting: SORTING,
202
202
  dataScope: FILTER_GROUP,
203
203
  linkageRules: arrayOption(
204
- "Raw linkage-rules payload. For AI/CLI authoring, prefer `getReactionMeta` + `setFieldLinkageRules` instead of guessing this configure key directly.",
204
+ "Raw canonical linkage-rules payload. The API normalizes condition-only rules to include `actions: []`; for AI/CLI authoring, prefer `getReactionMeta` + `setFieldLinkageRules` instead of guessing this configure key directly.",
205
205
  { example: [] }
206
206
  )
207
207
  };
@@ -237,7 +237,7 @@ const CALENDAR_OPTIONS = {
237
237
  weekStart: numberOption("Week start day. Use 1 for Monday or 0 for Sunday.", { example: 1 }),
238
238
  dataScope: FILTER_GROUP,
239
239
  linkageRules: arrayOption(
240
- "Raw linkage-rules payload. For AI/CLI authoring, prefer `getReactionMeta` + `setBlockLinkageRules` instead of guessing this configure key directly.",
240
+ "Raw canonical linkage-rules payload. The API normalizes condition-only rules to include `actions: []`; for AI/CLI authoring, prefer `getReactionMeta` + `setBlockLinkageRules` instead of guessing this configure key directly.",
241
241
  { example: [] }
242
242
  ),
243
243
  quickCreatePopup: OPEN_VIEW,
@@ -560,6 +560,7 @@ const ACTION_COMMON_OPTIONS = {
560
560
  title: stringOption("Button title", { example: "Run" }),
561
561
  tooltip: stringOption("Tooltip"),
562
562
  icon: stringOption("Icon", { example: "PlusOutlined" }),
563
+ iconOnly: booleanOption("Whether to render only the icon without visible button text", { example: true }),
563
564
  type: stringOption("Button type", { example: "primary" }),
564
565
  color: stringOption("Color"),
565
566
  htmlType: stringOption("HTML button type", { example: "submit" }),
@@ -588,7 +589,7 @@ const APPROVAL_ASSIGN_ACTION_OPTIONS = {
588
589
  };
589
590
  const ACTION_LINKAGE_OPTIONS = {
590
591
  linkageRules: arrayOption(
591
- "Raw linkage-rules payload. For AI/CLI authoring, prefer `getReactionMeta` + `setActionLinkageRules` instead of guessing this configure key directly.",
592
+ "Raw canonical linkage-rules payload. The API normalizes condition-only rules to include `actions: []`; for AI/CLI authoring, prefer `getReactionMeta` + `setActionLinkageRules` instead of guessing this configure key directly.",
592
593
  { example: [] }
593
594
  )
594
595
  };
@@ -397,19 +397,41 @@ function normalizeLinkageRulesValue(value, context, path) {
397
397
  return rule;
398
398
  }
399
399
  const normalizedRule = import_lodash.default.cloneDeep(rule);
400
- const domainPath = context.groupKey ? `${context.domain}.${context.groupKey}.${path}[${index}].condition` : `${context.domain}.${path}[${index}].condition`;
400
+ const conditionPath = getLinkageRuleDomainPath(context, path, index, "condition");
401
401
  import_lodash.default.set(
402
402
  normalizedRule,
403
403
  "condition",
404
404
  (0, import_filter_group.normalizeFlowSurfaceCompatibleFilterGroupValue)(
405
405
  import_lodash.default.get(normalizedRule, "condition"),
406
- `flowSurfaces updateSettings domain '${domainPath}' on '${context.use}' expects FilterGroup or backend query filter like ${import_filter_group.FLOW_SURFACE_FILTER_GROUP_EXAMPLE}`,
406
+ `flowSurfaces updateSettings domain '${conditionPath}' on '${context.use}' expects FilterGroup or backend query filter like ${import_filter_group.FLOW_SURFACE_FILTER_GROUP_EXAMPLE}`,
407
407
  { strictDateValues: true }
408
408
  )
409
409
  );
410
+ if (!import_lodash.default.has(normalizedRule, "actions")) {
411
+ import_lodash.default.set(normalizedRule, "actions", []);
412
+ } else if (!Array.isArray(import_lodash.default.get(normalizedRule, "actions"))) {
413
+ (0, import_errors.throwBadRequest)(
414
+ `flowSurfaces updateSettings domain '${getLinkageRuleDomainPath(context, path, index, "actions")}' on '${context.use}' expects actions to be an array`
415
+ );
416
+ }
417
+ if (!import_lodash.default.has(normalizedRule, "key")) {
418
+ import_lodash.default.set(normalizedRule, "key", `linkage-rule-${index + 1}`);
419
+ }
420
+ if (!import_lodash.default.has(normalizedRule, "title")) {
421
+ import_lodash.default.set(normalizedRule, "title", `Linkage rule ${index + 1}`);
422
+ }
423
+ if (!import_lodash.default.has(normalizedRule, "enable")) {
424
+ const enabled = import_lodash.default.get(normalizedRule, "enabled");
425
+ import_lodash.default.set(normalizedRule, "enable", typeof enabled === "boolean" ? enabled : true);
426
+ }
427
+ import_lodash.default.unset(normalizedRule, "enabled");
410
428
  return normalizedRule;
411
429
  });
412
430
  }
431
+ function getLinkageRuleDomainPath(context, path, index, leaf) {
432
+ const basePath = context.groupKey ? `${context.domain}.${context.groupKey}.${path}[${index}]` : `${context.domain}.${path}[${index}]`;
433
+ return `${basePath}.${leaf}`;
434
+ }
413
435
  function isContractDefinedFlowGroup(groupContract) {
414
436
  if (!groupContract) {
415
437
  return false;
@@ -142,6 +142,7 @@ export declare class FlowSurfacesService {
142
142
  private getCollectionFilterTargetKey;
143
143
  private normalizeFlowContextTemplateValue;
144
144
  private isSameConfiguredFlowContextValue;
145
+ private isPopupCurrentRecordFilterByTkMatch;
145
146
  private isPopupAssociatedRecordsSourceIdMatch;
146
147
  private classifyPopupRawResourceInit;
147
148
  private resolvePopupAssociationField;
@@ -300,6 +301,7 @@ export declare class FlowSurfacesService {
300
301
  private createFlowTemplateReferenceBlockModel;
301
302
  private buildPopupTemplateReferenceOpenView;
302
303
  private shouldHydrateDetachedPopupTemplateBlockResourceContext;
304
+ private resolveDetachedPopupTemplateBlockCurrentRecordFilterByTk;
303
305
  private collectDetachedPopupTemplateBlockResourceContextPatches;
304
306
  private hydrateDetachedPopupTemplateBlockResourceContext;
305
307
  private hydrateDetachedPopupTemplateSourceContext;
@@ -748,6 +750,9 @@ export declare class FlowSurfacesService {
748
750
  private syncFilterActionSettingsForUpdateSettings;
749
751
  private resolveFilterActionDefaultFilterRequiredFieldCount;
750
752
  private syncMirroredStepParamsForUpdateSettings;
753
+ private syncActionButtonSettingsForUpdateSettings;
754
+ private supportsActionButtonSettingsSync;
755
+ private pickRequestedActionButtonSettings;
751
756
  private syncCreatedFieldWrapperTitleFieldStepParams;
752
757
  private syncUpdateActionAssignedValuesForUpdateSettings;
753
758
  private syncActionTriggerWorkflowsForUpdateSettings;
@@ -235,6 +235,7 @@ const FLOW_SURFACE_EXPORT_BLUEPRINT_ROOT_ONLY_MESSAGE = "exportBlueprint v1 only
235
235
  const FORM_BLOCK_USES = /* @__PURE__ */ new Set(["FormBlockModel", "CreateFormModel", "EditFormModel", ...import_approval.APPROVAL_FORM_BLOCK_USES]);
236
236
  const AUTO_SUBMIT_FORM_BLOCK_USES = /* @__PURE__ */ new Set(["CreateFormModel", "EditFormModel"]);
237
237
  const FLOW_SURFACE_DEFAULT_ACTION_SETTINGS_KEYS = /* @__PURE__ */ new Set(["filter"]);
238
+ const ACTION_BUTTON_GENERAL_SETTING_KEYS = ["title", "tooltip", "icon", "iconOnly", "type", "danger", "color"];
238
239
  const DETAILS_BLOCK_USES = /* @__PURE__ */ new Set(["DetailsBlockModel", ...import_approval.APPROVAL_DETAILS_BLOCK_USES]);
239
240
  const SIMPLE_FORM_BLOCK_USES = /* @__PURE__ */ new Set([
240
241
  "FormBlockModel",
@@ -1948,6 +1949,9 @@ class FlowSurfacesService {
1948
1949
  if (!(popupProfile == null ? void 0 : popupProfile.currentCollection)) {
1949
1950
  return popupProfile == null ? void 0 : popupProfile.filterByTk;
1950
1951
  }
1952
+ if (popupProfile.popupKind === "recordPopup" && popupProfile.popupHostUse && POPUP_HOST_DEFAULT_RECORD_CONTEXT_ACTION_USES.has(popupProfile.popupHostUse)) {
1953
+ return "{{ctx.view.inputArgs.filterByTk}}";
1954
+ }
1951
1955
  if (popupProfile.popupKind !== "associationPopup") {
1952
1956
  return popupProfile.filterByTk;
1953
1957
  }
@@ -2303,10 +2307,18 @@ class FlowSurfacesService {
2303
2307
  if (!sameCurrentCollection || !(0, import_service_helpers.hasConfiguredFlowContextValue)(normalized.filterByTk)) {
2304
2308
  return false;
2305
2309
  }
2310
+ const expectedFilterByTk = this.resolvePopupCurrentRecordResourceFilterByTk(input.popupProfile, {
2311
+ usePopupInputArgsWhenSourceIdInferred: true
2312
+ });
2313
+ const matchesCurrentRecordFilterByTk = this.isPopupCurrentRecordFilterByTkMatch(
2314
+ input.popupProfile,
2315
+ normalized.filterByTk,
2316
+ expectedFilterByTk
2317
+ );
2306
2318
  if (input.popupProfile.hasAssociationContext) {
2307
- return this.isSameConfiguredFlowContextValue(normalized.filterByTk, input.popupProfile.filterByTk) && normalized.associationName === input.popupProfile.associationName && this.isSameConfiguredFlowContextValue(normalized.sourceId, input.popupProfile.sourceId);
2319
+ return matchesCurrentRecordFilterByTk && normalized.associationName === input.popupProfile.associationName && this.isSameConfiguredFlowContextValue(normalized.sourceId, input.popupProfile.sourceId);
2308
2320
  }
2309
- return this.isSameConfiguredFlowContextValue(normalized.filterByTk, input.popupProfile.filterByTk) && !(0, import_service_helpers.hasConfiguredFlowContextValue)(normalized.associationName) && !(0, import_service_helpers.hasConfiguredFlowContextValue)(normalized.sourceId);
2321
+ return matchesCurrentRecordFilterByTk && !(0, import_service_helpers.hasConfiguredFlowContextValue)(normalized.associationName) && !(0, import_service_helpers.hasConfiguredFlowContextValue)(normalized.sourceId);
2310
2322
  }
2311
2323
  if (input.binding === "associatedRecords") {
2312
2324
  if (!(0, import_service_helpers.hasConfiguredFlowContextValue)(normalized.collectionName) || !(0, import_service_helpers.hasConfiguredFlowContextValue)(normalized.associationName) || !(0, import_service_helpers.hasConfiguredFlowContextValue)(normalized.sourceId) || (0, import_service_helpers.hasConfiguredFlowContextValue)(normalized.filterByTk)) {
@@ -2349,6 +2361,12 @@ class FlowSurfacesService {
2349
2361
  }
2350
2362
  return import_lodash.default.isEqual(this.normalizeFlowContextTemplateValue(left), this.normalizeFlowContextTemplateValue(right));
2351
2363
  }
2364
+ isPopupCurrentRecordFilterByTkMatch(popupProfile, filterByTk, expectedFilterByTk) {
2365
+ if (this.isSameConfiguredFlowContextValue(filterByTk, expectedFilterByTk)) {
2366
+ return true;
2367
+ }
2368
+ return popupProfile.popupKind === "associationPopup" && this.isSameConfiguredFlowContextValue(filterByTk, popupProfile.filterByTk);
2369
+ }
2352
2370
  isPopupAssociatedRecordsSourceIdMatch(popupProfile, associationField, sourceId) {
2353
2371
  var _a, _b;
2354
2372
  if (!(0, import_service_helpers.hasConfiguredFlowContextValue)(sourceId)) {
@@ -4536,10 +4554,16 @@ class FlowSurfacesService {
4536
4554
  return this.buildPopupTemplateOpenView(template, "reference", templateTargetUid, options);
4537
4555
  }
4538
4556
  shouldHydrateDetachedPopupTemplateBlockResourceContext(blockNode, context) {
4539
- if (!this.isCollectionBlockUse(blockNode == null ? void 0 : blockNode.use) || !context.associationName || !context.sourceId) {
4557
+ if (!this.isCollectionBlockUse(blockNode == null ? void 0 : blockNode.use)) {
4540
4558
  return false;
4541
4559
  }
4542
4560
  const init = import_lodash.default.get(blockNode, ["stepParams", "resourceSettings", "init"]) || {};
4561
+ if (this.resolveDetachedPopupTemplateBlockCurrentRecordFilterByTk(init, context)) {
4562
+ return true;
4563
+ }
4564
+ if (!context.associationName || !context.sourceId) {
4565
+ return false;
4566
+ }
4543
4567
  const popupDataSourceKey = context.dataSourceKey || "main";
4544
4568
  const blockDataSourceKey = init.dataSourceKey || "main";
4545
4569
  if (!context.collectionName || blockDataSourceKey !== popupDataSourceKey || init.collectionName !== context.collectionName) {
@@ -4554,6 +4578,28 @@ class FlowSurfacesService {
4554
4578
  }
4555
4579
  return blockAssociationName !== context.associationName || !this.isSameConfiguredFlowContextValue(init.sourceId, context.sourceId);
4556
4580
  }
4581
+ resolveDetachedPopupTemplateBlockCurrentRecordFilterByTk(init, context) {
4582
+ if (!(0, import_service_helpers.hasConfiguredFlowContextValue)(init.filterByTk)) {
4583
+ return void 0;
4584
+ }
4585
+ if (this.isSameConfiguredFlowContextValue(init.filterByTk, "{{ctx.view.inputArgs.filterByTk}}")) {
4586
+ return void 0;
4587
+ }
4588
+ const popupDataSourceKey = context.dataSourceKey || "main";
4589
+ const blockDataSourceKey = init.dataSourceKey || "main";
4590
+ if (!context.collectionName || blockDataSourceKey !== popupDataSourceKey || init.collectionName !== context.collectionName) {
4591
+ return void 0;
4592
+ }
4593
+ if (context.filterByTk && this.isSameConfiguredFlowContextValue(init.filterByTk, context.filterByTk)) {
4594
+ return "{{ctx.view.inputArgs.filterByTk}}";
4595
+ }
4596
+ const collection = this.getCollection(popupDataSourceKey, context.collectionName);
4597
+ const filterTargetKey = this.getCollectionFilterTargetKey(collection);
4598
+ if (this.isSameConfiguredFlowContextValue(init.filterByTk, `{{ctx.record.${filterTargetKey}}}`)) {
4599
+ return "{{ctx.view.inputArgs.filterByTk}}";
4600
+ }
4601
+ return void 0;
4602
+ }
4557
4603
  collectDetachedPopupTemplateBlockResourceContextPatches(node, context, patches = []) {
4558
4604
  if (!node || typeof node !== "object") {
4559
4605
  return patches;
@@ -4561,6 +4607,7 @@ class FlowSurfacesService {
4561
4607
  if (node.uid && this.shouldHydrateDetachedPopupTemplateBlockResourceContext(node, context)) {
4562
4608
  const nextStepParams = import_lodash.default.cloneDeep(node.stepParams || {});
4563
4609
  const currentInit = import_lodash.default.get(nextStepParams, ["resourceSettings", "init"]) || {};
4610
+ const filterByTk = this.resolveDetachedPopupTemplateBlockCurrentRecordFilterByTk(currentInit, context);
4564
4611
  import_lodash.default.set(
4565
4612
  nextStepParams,
4566
4613
  ["resourceSettings", "init"],
@@ -4568,8 +4615,11 @@ class FlowSurfacesService {
4568
4615
  ...currentInit,
4569
4616
  dataSourceKey: context.dataSourceKey || currentInit.dataSourceKey || "main",
4570
4617
  collectionName: context.collectionName || currentInit.collectionName,
4571
- associationName: context.associationName,
4572
- sourceId: context.sourceId
4618
+ ...context.associationName && context.sourceId ? {
4619
+ associationName: context.associationName,
4620
+ sourceId: context.sourceId
4621
+ } : {},
4622
+ ...filterByTk ? { filterByTk } : {}
4573
4623
  })
4574
4624
  );
4575
4625
  patches.push({
@@ -11568,6 +11618,7 @@ class FlowSurfacesService {
11568
11618
  normalizedValues,
11569
11619
  nextPayload
11570
11620
  );
11621
+ this.syncActionButtonSettingsForUpdateSettings(current, normalizedValues, nextPayload);
11571
11622
  this.syncActionTriggerWorkflowsForUpdateSettings(current, normalizedValues, nextPayload);
11572
11623
  const popupActionContext = options.popupActionContext || await this.resolveRecordContextPopupActionContextForHost(current, options.transaction);
11573
11624
  await this.normalizeOpenViewForUpdateSettings(
@@ -12075,6 +12126,65 @@ class FlowSurfacesService {
12075
12126
  nextPayload.stepParams = nextStepParams;
12076
12127
  }
12077
12128
  }
12129
+ syncActionButtonSettingsForUpdateSettings(current, normalizedValues, nextPayload) {
12130
+ if (!this.supportsActionButtonSettingsSync(current)) {
12131
+ return;
12132
+ }
12133
+ const requestedProps = this.pickRequestedActionButtonSettings(normalizedValues.props);
12134
+ const requestedButtonGeneral = this.pickRequestedActionButtonSettings(
12135
+ import_lodash.default.get(normalizedValues, ["stepParams", "buttonSettings", "general"])
12136
+ );
12137
+ const hasRequestedProps = Object.keys(requestedProps).length > 0;
12138
+ const hasRequestedButtonGeneral = Object.keys(requestedButtonGeneral).length > 0;
12139
+ if (!hasRequestedProps && !hasRequestedButtonGeneral) {
12140
+ return;
12141
+ }
12142
+ const hasRequestedTitle = Object.prototype.hasOwnProperty.call(requestedProps, "title") || Object.prototype.hasOwnProperty.call(requestedButtonGeneral, "title");
12143
+ const shouldStripImplicitTitle = (requestedProps.iconOnly === true || requestedButtonGeneral.iconOnly === true) && !hasRequestedTitle;
12144
+ const nextProps = import_lodash.default.cloneDeep(
12145
+ import_lodash.default.isPlainObject(nextPayload.props) ? nextPayload.props : import_lodash.default.isPlainObject(current == null ? void 0 : current.props) ? current.props : {}
12146
+ );
12147
+ const nextStepParams = import_lodash.default.cloneDeep(
12148
+ import_lodash.default.isPlainObject(nextPayload.stepParams) ? nextPayload.stepParams : import_lodash.default.isPlainObject(current == null ? void 0 : current.stepParams) ? current.stepParams : {}
12149
+ );
12150
+ Object.entries(requestedProps).forEach(([key, value]) => {
12151
+ if (Object.prototype.hasOwnProperty.call(requestedButtonGeneral, key)) {
12152
+ return;
12153
+ }
12154
+ import_lodash.default.set(nextStepParams, ["buttonSettings", "general", key], import_lodash.default.cloneDeep(value));
12155
+ });
12156
+ Object.entries(requestedButtonGeneral).forEach(([key, value]) => {
12157
+ if (Object.prototype.hasOwnProperty.call(requestedProps, key)) {
12158
+ return;
12159
+ }
12160
+ nextProps[key] = import_lodash.default.cloneDeep(value);
12161
+ });
12162
+ if (shouldStripImplicitTitle) {
12163
+ delete nextProps.title;
12164
+ if (import_lodash.default.isPlainObject(import_lodash.default.get(nextStepParams, ["buttonSettings", "general"]))) {
12165
+ delete nextStepParams.buttonSettings.general.title;
12166
+ }
12167
+ }
12168
+ nextPayload.props = nextProps;
12169
+ nextPayload.stepParams = nextStepParams;
12170
+ }
12171
+ supportsActionButtonSettingsSync(current) {
12172
+ var _a, _b, _c, _d, _e, _f;
12173
+ const contract = (0, import_catalog.getNodeContract)(current == null ? void 0 : current.use);
12174
+ return ((_b = (_a = contract.domains.props) == null ? void 0 : _a.allowedKeys) == null ? void 0 : _b.includes("iconOnly")) && ((_f = (_e = (_d = (_c = contract.domains.stepParams) == null ? void 0 : _c.groups) == null ? void 0 : _d.buttonSettings) == null ? void 0 : _e.allowedPaths) == null ? void 0 : _f.includes("general.iconOnly"));
12175
+ }
12176
+ pickRequestedActionButtonSettings(input) {
12177
+ const picked = {};
12178
+ if (!import_lodash.default.isPlainObject(input)) {
12179
+ return picked;
12180
+ }
12181
+ ACTION_BUTTON_GENERAL_SETTING_KEYS.forEach((key) => {
12182
+ if (Object.prototype.hasOwnProperty.call(input, key) && !import_lodash.default.isUndefined(input[key])) {
12183
+ picked[key] = import_lodash.default.cloneDeep(input[key]);
12184
+ }
12185
+ });
12186
+ return picked;
12187
+ }
12078
12188
  syncCreatedFieldWrapperTitleFieldStepParams(node) {
12079
12189
  const mirror = (UPDATE_SETTINGS_STEP_PARAM_MIRRORS_BY_USE[(node == null ? void 0 : node.use) || ""] || []).find(
12080
12190
  (item) => item.domain === "props" && item.key === "titleField"
@@ -18592,13 +18702,14 @@ ${AI_EMPLOYEE_CURRENT_RECORD_PROMPT_VARIABLE}` : AI_EMPLOYEE_CURRENT_RECORD_PROM
18592
18702
  }
18593
18703
  const normalizedDefaultFilter = (0, import_service_utils.hasOwnDefined)(changes, "defaultFilter") ? this.normalizeFilterActionDefaultFilterValue(changes.defaultFilter) : void 0;
18594
18704
  const stepParams = {};
18595
- if ((0, import_service_utils.hasDefinedValue)(changes, ["title", "tooltip", "icon", "type", "danger", "color", "linkageRules"])) {
18705
+ if ((0, import_service_utils.hasDefinedValue)(changes, ["title", "tooltip", "icon", "iconOnly", "type", "danger", "color", "linkageRules"])) {
18596
18706
  stepParams.buttonSettings = {
18597
- ...(0, import_service_utils.hasDefinedValue)(changes, ["title", "tooltip", "icon", "type", "danger", "color"]) ? {
18707
+ ...(0, import_service_utils.hasDefinedValue)(changes, ["title", "tooltip", "icon", "iconOnly", "type", "danger", "color"]) ? {
18598
18708
  general: (0, import_service_utils.buildDefinedPayload)({
18599
18709
  title: changes.title,
18600
18710
  tooltip: changes.tooltip,
18601
18711
  icon: changes.icon,
18712
+ iconOnly: changes.iconOnly,
18602
18713
  type: changes.type,
18603
18714
  danger: changes.danger,
18604
18715
  color: changes.color
@@ -18808,6 +18919,7 @@ ${AI_EMPLOYEE_CURRENT_RECORD_PROMPT_VARIABLE}` : AI_EMPLOYEE_CURRENT_RECORD_PROM
18808
18919
  title: changes.title,
18809
18920
  tooltip: changes.tooltip,
18810
18921
  icon: changes.icon,
18922
+ iconOnly: changes.iconOnly,
18811
18923
  type: changes.type,
18812
18924
  htmlType: changes.htmlType,
18813
18925
  position: changes.position,
@@ -89,6 +89,9 @@ class VariableRegistry {
89
89
  }
90
90
  const GLOBAL_KEY = "__ncbVarRegistry__";
91
91
  const g = typeof globalThis !== "undefined" ? globalThis : global;
92
+ if (g[GLOBAL_KEY] && typeof g[GLOBAL_KEY] === "object") {
93
+ Object.setPrototypeOf(g[GLOBAL_KEY], VariableRegistry.prototype);
94
+ }
92
95
  if (!g[GLOBAL_KEY]) {
93
96
  g[GLOBAL_KEY] = new VariableRegistry();
94
97
  }
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.3",
7
+ "version": "2.2.0-beta.5",
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": "7b16bb2cfd427c110c6671252138cd85155723c5"
29
+ "gitHead": "81eab2cfa9d3d989e99ba0c914807b38db55f023"
30
30
  }