@nocobase/plugin-flow-engine 2.1.0-alpha.23 → 2.1.0-alpha.25

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.
Files changed (49) hide show
  1. package/dist/ai/ai-employees/nathan/skills/frontend-developer/SKILLS.md +2 -2
  2. package/dist/externalVersion.js +10 -10
  3. package/dist/node_modules/ses/package.json +1 -1
  4. package/dist/node_modules/zod/package.json +1 -1
  5. package/dist/server/flow-surfaces/action-scope.d.ts +1 -0
  6. package/dist/server/flow-surfaces/action-scope.js +4 -0
  7. package/dist/server/flow-surfaces/apply/compiler.js +4 -2
  8. package/dist/server/flow-surfaces/association-interfaces.d.ts +10 -0
  9. package/dist/server/flow-surfaces/association-interfaces.js +39 -0
  10. package/dist/server/flow-surfaces/association-title-field.d.ts +1 -1
  11. package/dist/server/flow-surfaces/association-title-field.js +38 -4
  12. package/dist/server/flow-surfaces/blueprint/compile-blocks.js +72 -5
  13. package/dist/server/flow-surfaces/blueprint/public-types.d.ts +9 -1
  14. package/dist/server/flow-surfaces/builder.d.ts +27 -1
  15. package/dist/server/flow-surfaces/builder.js +105 -5
  16. package/dist/server/flow-surfaces/catalog.d.ts +2 -1
  17. package/dist/server/flow-surfaces/catalog.js +316 -119
  18. package/dist/server/flow-surfaces/compose-compiler.d.ts +8 -0
  19. package/dist/server/flow-surfaces/compose-compiler.js +9 -1
  20. package/dist/server/flow-surfaces/configure-options.js +72 -6
  21. package/dist/server/flow-surfaces/core-field-default-bindings.d.ts +12 -0
  22. package/dist/server/flow-surfaces/core-field-default-bindings.js +157 -0
  23. package/dist/server/flow-surfaces/default-action-popup.js +2 -2
  24. package/dist/server/flow-surfaces/default-block-actions.js +24 -0
  25. package/dist/server/flow-surfaces/field-binding-registry.d.ts +1 -0
  26. package/dist/server/flow-surfaces/field-binding-registry.js +5 -0
  27. package/dist/server/flow-surfaces/field-semantics.d.ts +1 -1
  28. package/dist/server/flow-surfaces/field-semantics.js +7 -4
  29. package/dist/server/flow-surfaces/field-type-resolver.d.ts +46 -0
  30. package/dist/server/flow-surfaces/field-type-resolver.js +322 -0
  31. package/dist/server/flow-surfaces/index.js +61 -2
  32. package/dist/server/flow-surfaces/node-use-sets.js +4 -0
  33. package/dist/server/flow-surfaces/placement.js +3 -0
  34. package/dist/server/flow-surfaces/public-data-surface-default-filter.d.ts +4 -0
  35. package/dist/server/flow-surfaces/public-data-surface-default-filter.js +45 -4
  36. package/dist/server/flow-surfaces/service-helpers.js +3 -70
  37. package/dist/server/flow-surfaces/service-utils.d.ts +13 -1
  38. package/dist/server/flow-surfaces/service-utils.js +58 -6
  39. package/dist/server/flow-surfaces/service.d.ts +59 -2
  40. package/dist/server/flow-surfaces/service.js +2269 -234
  41. package/dist/server/flow-surfaces/support-matrix.d.ts +1 -1
  42. package/dist/server/flow-surfaces/support-matrix.js +23 -0
  43. package/dist/server/flow-surfaces/surface-context.js +8 -5
  44. package/dist/swagger/flow-surfaces.d.ts +173 -2
  45. package/dist/swagger/flow-surfaces.examples.d.ts +59 -15
  46. package/dist/swagger/flow-surfaces.examples.js +69 -11
  47. package/dist/swagger/flow-surfaces.js +86 -17
  48. package/dist/swagger/index.d.ts +173 -2
  49. package/package.json +2 -2
@@ -2,8 +2,8 @@
2
2
  name: frontend-developer
3
3
  description: Assists with writing, validating, and testing JavaScript code snippets for NocoBase workflows and frontend blocks.
4
4
  introduction:
5
- title: '{{t("ai.skills.frontendDeveloper.title")}}'
6
- about: '{{t("ai.skills.frontendDeveloper.about")}}'
5
+ title: '{{t("ai.skills.frontendDeveloper.title", { ns: "@nocobase/plugin-ai" })}}'
6
+ about: '{{t("ai.skills.frontendDeveloper.about", { ns: "@nocobase/plugin-ai" })}}'
7
7
  ---
8
8
 
9
9
  You are a professional frontend developer assistant for NocoBase.
@@ -8,16 +8,16 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/client": "2.1.0-alpha.23",
11
+ "@nocobase/client": "2.1.0-alpha.25",
12
12
  "lodash": "4.18.1",
13
- "@nocobase/database": "2.1.0-alpha.23",
14
- "@nocobase/data-source-manager": "2.1.0-alpha.23",
15
- "@nocobase/resourcer": "2.1.0-alpha.23",
16
- "@nocobase/utils": "2.1.0-alpha.23",
17
- "@nocobase/cache": "2.1.0-alpha.23",
18
- "@nocobase/plugin-localization": "2.1.0-alpha.23",
19
- "@nocobase/server": "2.1.0-alpha.23",
20
- "@nocobase/actions": "2.1.0-alpha.23",
13
+ "@nocobase/database": "2.1.0-alpha.25",
14
+ "@nocobase/data-source-manager": "2.1.0-alpha.25",
15
+ "@nocobase/resourcer": "2.1.0-alpha.25",
16
+ "@nocobase/utils": "2.1.0-alpha.25",
17
+ "@nocobase/cache": "2.1.0-alpha.25",
18
+ "@nocobase/plugin-localization": "2.1.0-alpha.25",
19
+ "@nocobase/server": "2.1.0-alpha.25",
20
+ "@nocobase/actions": "2.1.0-alpha.25",
21
21
  "@formily/json-schema": "2.3.7",
22
- "@nocobase/ai": "2.1.0-alpha.23"
22
+ "@nocobase/ai": "2.1.0-alpha.25"
23
23
  };
@@ -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-04-25T01:27:10.432Z"}
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-04-27T22:04:16.306Z"}
@@ -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-04-25T01:27:11.549Z"}
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-04-27T22:04:17.394Z"}
@@ -9,6 +9,7 @@
9
9
  import type { FlowSurfaceActionScope } from './types';
10
10
  export declare const TABLE_BLOCK_ACTION_CONTAINER_USES: string[];
11
11
  export declare const CALENDAR_BLOCK_ACTION_CONTAINER_USES: string[];
12
+ export declare const KANBAN_BLOCK_ACTION_CONTAINER_USES: string[];
12
13
  export declare const TABLE_ROW_ACTION_CONTAINER_USES: string[];
13
14
  export declare const LIST_BLOCK_ACTION_CONTAINER_USES: string[];
14
15
  export declare const LIST_RECORD_ACTION_CONTAINER_USES: string[];
@@ -33,6 +33,7 @@ __export(action_scope_exports, {
33
33
  DETAILS_ACTION_CONTAINER_USES: () => DETAILS_ACTION_CONTAINER_USES,
34
34
  FILTER_FORM_ACTION_CONTAINER_USES: () => FILTER_FORM_ACTION_CONTAINER_USES,
35
35
  FORM_ACTION_CONTAINER_USES: () => FORM_ACTION_CONTAINER_USES,
36
+ KANBAN_BLOCK_ACTION_CONTAINER_USES: () => KANBAN_BLOCK_ACTION_CONTAINER_USES,
36
37
  LIST_BLOCK_ACTION_CONTAINER_USES: () => LIST_BLOCK_ACTION_CONTAINER_USES,
37
38
  LIST_RECORD_ACTION_CONTAINER_USES: () => LIST_RECORD_ACTION_CONTAINER_USES,
38
39
  RECORD_ACTION_CONTAINER_USES: () => RECORD_ACTION_CONTAINER_USES,
@@ -50,6 +51,7 @@ var import_errors = require("./errors");
50
51
  const ACTION_SCOPE_SET = /* @__PURE__ */ new Set(["block", "record", "form", "filterForm", "actionPanel"]);
51
52
  const TABLE_BLOCK_ACTION_CONTAINER_USES = ["TableBlockModel"];
52
53
  const CALENDAR_BLOCK_ACTION_CONTAINER_USES = ["CalendarBlockModel"];
54
+ const KANBAN_BLOCK_ACTION_CONTAINER_USES = ["KanbanBlockModel"];
53
55
  const TABLE_ROW_ACTION_CONTAINER_USES = ["TableActionsColumnModel"];
54
56
  const LIST_BLOCK_ACTION_CONTAINER_USES = ["ListBlockModel", "GridCardBlockModel"];
55
57
  const LIST_RECORD_ACTION_CONTAINER_USES = ["ListItemModel", "GridCardItemModel"];
@@ -69,6 +71,7 @@ const RECORD_ACTION_CONTAINER_USES = [
69
71
  ];
70
72
  const ACTION_CONTAINER_SCOPE_BY_USE = Object.fromEntries([
71
73
  ...COLLECTION_BLOCK_ACTION_CONTAINER_USES.map((use) => [use, "block"]),
74
+ ...KANBAN_BLOCK_ACTION_CONTAINER_USES.map((use) => [use, "block"]),
72
75
  ...RECORD_ACTION_CONTAINER_USES.map((use) => [use, "record"]),
73
76
  ...FORM_ACTION_CONTAINER_USES.map((use) => [use, "form"]),
74
77
  ...FILTER_FORM_ACTION_CONTAINER_USES.map((use) => [use, "filterForm"]),
@@ -139,6 +142,7 @@ function assertRequestedActionScope(input) {
139
142
  DETAILS_ACTION_CONTAINER_USES,
140
143
  FILTER_FORM_ACTION_CONTAINER_USES,
141
144
  FORM_ACTION_CONTAINER_USES,
145
+ KANBAN_BLOCK_ACTION_CONTAINER_USES,
142
146
  LIST_BLOCK_ACTION_CONTAINER_USES,
143
147
  LIST_RECORD_ACTION_CONTAINER_USES,
144
148
  RECORD_ACTION_CONTAINER_USES,
@@ -44,6 +44,7 @@ var import_catalog = require("../catalog");
44
44
  var import_placement = require("../placement");
45
45
  var import_errors = require("../errors");
46
46
  var import_node_use_sets = require("../node-use-sets");
47
+ var import_field_type_resolver = require("../field-type-resolver");
47
48
  var import_layout = require("./layout");
48
49
  var import_matching = require("./matching");
49
50
  function makeOpRef(path) {
@@ -580,7 +581,7 @@ function createActionNode(ops, state, parentRef, desiredNode, currentParent) {
580
581
  return ref;
581
582
  }
582
583
  function createFieldNode(ops, state, parentRef, desiredNode) {
583
- var _a;
584
+ var _a, _b, _c;
584
585
  const popup = normalizeApplyPopup(desiredNode, `flowSurfaces apply field '${desiredNode.use}'`);
585
586
  const standaloneType = desiredNode.use === "JSColumnModel" ? "jsColumn" : desiredNode.use === "JSItemModel" ? "jsItem" : desiredNode.use === "DividerItemModel" ? "divider" : void 0;
586
587
  if (standaloneType) {
@@ -620,6 +621,7 @@ function createFieldNode(ops, state, parentRef, desiredNode) {
620
621
  });
621
622
  const fieldInit = import_lodash.default.get(innerField, ["stepParams", "fieldSettings", "init"]) || import_lodash.default.get(desiredNode, ["stepParams", "fieldSettings", "init"]);
622
623
  const defaultTargetUid = import_lodash.default.get(desiredNode, ["stepParams", "filterFormItemSettings", "init", "defaultTargetUid"]);
624
+ const fieldType = (0, import_field_type_resolver.getPublicFieldTypeForUse)(((_c = (_b = innerField == null ? void 0 : innerField.stepParams) == null ? void 0 : _b.fieldBinding) == null ? void 0 : _c.use) || (innerField == null ? void 0 : innerField.use));
623
625
  if (!(fieldInit == null ? void 0 : fieldInit.fieldPath)) {
624
626
  throw new import_errors.FlowSurfaceBadRequestError(
625
627
  `flowSurfaces apply field '${desiredNode.use}' requires stepParams.fieldSettings.init.fieldPath`
@@ -639,7 +641,7 @@ function createFieldNode(ops, state, parentRef, desiredNode) {
639
641
  dataSourceKey: fieldInit.dataSourceKey,
640
642
  collectionName: fieldInit.collectionName,
641
643
  ...requestedRenderer ? { renderer: requestedRenderer } : {},
642
- ...fieldCapability.fieldUse ? { fieldUse: fieldCapability.fieldUse } : {},
644
+ ...fieldType ? { fieldType } : {},
643
645
  ...defaultTargetUid ? { defaultTargetUid } : {},
644
646
  ...popup ? { popup } : {}
645
647
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+ export declare const SINGLE_VALUE_ASSOCIATION_INTERFACES: Set<string>;
10
+ export declare const MULTI_VALUE_ASSOCIATION_INTERFACES: Set<string>;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var association_interfaces_exports = {};
28
+ __export(association_interfaces_exports, {
29
+ MULTI_VALUE_ASSOCIATION_INTERFACES: () => MULTI_VALUE_ASSOCIATION_INTERFACES,
30
+ SINGLE_VALUE_ASSOCIATION_INTERFACES: () => SINGLE_VALUE_ASSOCIATION_INTERFACES
31
+ });
32
+ module.exports = __toCommonJS(association_interfaces_exports);
33
+ const SINGLE_VALUE_ASSOCIATION_INTERFACES = /* @__PURE__ */ new Set(["m2o", "o2o", "oho", "obo", "updatedBy", "createdBy"]);
34
+ const MULTI_VALUE_ASSOCIATION_INTERFACES = /* @__PURE__ */ new Set(["m2m", "o2m", "mbm"]);
35
+ // Annotate the CommonJS export names for ESM import in node:
36
+ 0 && (module.exports = {
37
+ MULTI_VALUE_ASSOCIATION_INTERFACES,
38
+ SINGLE_VALUE_ASSOCIATION_INTERFACES
39
+ });
@@ -9,7 +9,7 @@
9
9
  export type FlowSurfaceResolvedAssociationTitleField = {
10
10
  field: any;
11
11
  fieldName: string;
12
- source: 'explicit' | 'firstTitleable';
12
+ source: 'explicit' | 'firstTitleable' | 'relationFieldLabel';
13
13
  targetCollection?: any;
14
14
  };
15
15
  export declare function isTitleableCollectionField(field: any): any;
@@ -38,7 +38,6 @@ var import_errors = require("./errors");
38
38
  var import_service_helpers = require("./service-helpers");
39
39
  const FALLBACK_TITLE_USABLE_INTERFACES = /* @__PURE__ */ new Set([
40
40
  "attachmentURL",
41
- "createdAt",
42
41
  "date",
43
42
  "datetime",
44
43
  "datetimeNoTz",
@@ -60,11 +59,12 @@ const FALLBACK_TITLE_USABLE_INTERFACES = /* @__PURE__ */ new Set([
60
59
  "textarea",
61
60
  "time",
62
61
  "unixTimestamp",
63
- "updatedAt",
64
62
  "url",
65
63
  "uuid",
66
64
  "vditor"
67
65
  ]);
66
+ const LAST_RESORT_TITLE_FIELD_NAMES = /* @__PURE__ */ new Set(["createdAt", "updatedAt"]);
67
+ const LAST_RESORT_TITLE_FIELD_INTERFACES = /* @__PURE__ */ new Set(["createdAt", "updatedAt"]);
68
68
  function isTitleableCollectionField(field) {
69
69
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
70
70
  const configured = (field == null ? void 0 : field.titleable) ?? (field == null ? void 0 : field.titleUsable) ?? ((_a = field == null ? void 0 : field.options) == null ? void 0 : _a.titleable) ?? ((_b = field == null ? void 0 : field.options) == null ? void 0 : _b.titleUsable);
@@ -90,6 +90,25 @@ function getExplicitCollectionTitleFieldName(collection) {
90
90
  const explicit = (_a = collection == null ? void 0 : collection.options) == null ? void 0 : _a.titleField;
91
91
  return typeof explicit === "string" ? explicit.trim() || void 0 : void 0;
92
92
  }
93
+ function normalizeTitleFieldName(value) {
94
+ if (typeof value !== "string") {
95
+ return void 0;
96
+ }
97
+ const normalized = value.trim();
98
+ return normalized || void 0;
99
+ }
100
+ function getAssociationConfiguredLabelFieldName(field) {
101
+ var _a, _b, _c, _d, _e, _f, _g;
102
+ return normalizeTitleFieldName((_c = (_b = (_a = field == null ? void 0 : field.uiSchema) == null ? void 0 : _a["x-component-props"]) == null ? void 0 : _b.fieldNames) == null ? void 0 : _c.label) || normalizeTitleFieldName((_g = (_f = (_e = (_d = field == null ? void 0 : field.options) == null ? void 0 : _d.uiSchema) == null ? void 0 : _e["x-component-props"]) == null ? void 0 : _f.fieldNames) == null ? void 0 : _g.label);
103
+ }
104
+ function isLastResortTitleField(field) {
105
+ const fieldName = (0, import_service_helpers.getFieldName)(field);
106
+ if (fieldName && LAST_RESORT_TITLE_FIELD_NAMES.has(fieldName)) {
107
+ return true;
108
+ }
109
+ const fieldInterface = (0, import_service_helpers.getFieldInterface)(field);
110
+ return !!(fieldInterface && LAST_RESORT_TITLE_FIELD_INTERFACES.has(fieldInterface));
111
+ }
93
112
  function assertCollectionTitleFieldExists(collection, fieldName) {
94
113
  const normalizedFieldName = typeof fieldName === "string" ? fieldName.trim() : String(fieldName || "").trim();
95
114
  if (!normalizedFieldName) {
@@ -123,9 +142,12 @@ function resolveCollectionSafeTitleField(collection) {
123
142
  if (!firstTitleableField) {
124
143
  return null;
125
144
  }
145
+ const preferredTitleableField = (0, import_service_helpers.getCollectionFields)(collection).find(
146
+ (field) => !!(0, import_service_helpers.getFieldName)(field) && isTitleableCollectionField(field) && !isLastResortTitleField(field)
147
+ ) || firstTitleableField;
126
148
  return {
127
- field: firstTitleableField,
128
- fieldName: (0, import_service_helpers.getFieldName)(firstTitleableField),
149
+ field: preferredTitleableField,
150
+ fieldName: (0, import_service_helpers.getFieldName)(preferredTitleableField),
129
151
  source: "firstTitleable",
130
152
  targetCollection: collection
131
153
  };
@@ -138,6 +160,18 @@ function resolveAssociationSafeTitleField(field, dataSourceKey, getCollection) {
138
160
  if (!targetCollection) {
139
161
  return null;
140
162
  }
163
+ const configuredLabelFieldName = getAssociationConfiguredLabelFieldName(field);
164
+ if (configuredLabelFieldName) {
165
+ const configuredLabelField = (0, import_service_helpers.resolveFieldFromCollection)(targetCollection, configuredLabelFieldName);
166
+ if (configuredLabelField) {
167
+ return {
168
+ field: configuredLabelField,
169
+ fieldName: configuredLabelFieldName,
170
+ source: "relationFieldLabel",
171
+ targetCollection
172
+ };
173
+ }
174
+ }
141
175
  const resolved = resolveCollectionSafeTitleField(targetCollection);
142
176
  if (!resolved) {
143
177
  return null;
@@ -47,9 +47,11 @@ var import_default_block_actions = require("../default-block-actions");
47
47
  var import_public_data_surface_default_filter = require("../public-data-surface-default-filter");
48
48
  var import_defaults = require("./defaults");
49
49
  var import_private_utils = require("./private-utils");
50
+ var import_field_type_resolver = require("../field-type-resolver");
50
51
  const APPLY_BLUEPRINT_BLOCK_TYPE_ENUM = [
51
52
  "table",
52
53
  "calendar",
54
+ "kanban",
53
55
  "createForm",
54
56
  "editForm",
55
57
  "details",
@@ -60,7 +62,8 @@ const APPLY_BLUEPRINT_BLOCK_TYPE_ENUM = [
60
62
  "iframe",
61
63
  "chart",
62
64
  "actionPanel",
63
- "jsBlock"
65
+ "jsBlock",
66
+ "tree"
64
67
  ];
65
68
  const APPLY_BLUEPRINT_BLOCK_ALLOWED_KEYS = [
66
69
  "key",
@@ -89,6 +92,14 @@ const APPLY_BLUEPRINT_FIELD_ALLOWED_KEYS = [
89
92
  "associationPathName",
90
93
  "renderer",
91
94
  "type",
95
+ "fieldType",
96
+ "fields",
97
+ "selectorFields",
98
+ "titleField",
99
+ "openMode",
100
+ "popupSize",
101
+ "pageSize",
102
+ "showIndex",
92
103
  "label",
93
104
  "target",
94
105
  "settings",
@@ -156,6 +167,9 @@ function assertApplyBlueprintFieldsLayoutHost(block, context) {
156
167
  if (!Object.prototype.hasOwnProperty.call(block, "fieldsLayout")) {
157
168
  return;
158
169
  }
170
+ if ((0, import_private_utils.readOptionalString)(block.type) === "kanban") {
171
+ (0, import_errors.throwBadRequest)(`${context}.fieldsLayout is not supported on kanban main blocks; use fields[] only`);
172
+ }
159
173
  if (APPLY_BLUEPRINT_FIELD_GRID_BLOCK_TYPES.has((0, import_private_utils.readOptionalString)(block.type) || "")) {
160
174
  return;
161
175
  }
@@ -181,6 +195,34 @@ function assertApplyBlueprintCalendarMainContent(block, context) {
181
195
  );
182
196
  }
183
197
  }
198
+ function assertApplyBlueprintKanbanMainContent(block, context) {
199
+ if ((0, import_private_utils.readOptionalString)(block.type) !== "kanban") {
200
+ return;
201
+ }
202
+ if (Object.prototype.hasOwnProperty.call(block, "fieldGroups")) {
203
+ (0, import_errors.throwBadRequest)(`${context}.fieldGroups is not supported on kanban main blocks; use fields instead`);
204
+ }
205
+ if (Object.prototype.hasOwnProperty.call(block, "recordActions")) {
206
+ (0, import_errors.throwBadRequest)(`${context}.recordActions is not supported on kanban main blocks in v1`);
207
+ }
208
+ }
209
+ function assertApplyBlueprintTreeMainContent(block, context) {
210
+ if ((0, import_private_utils.readOptionalString)(block.type) !== "tree") {
211
+ return;
212
+ }
213
+ if (Object.prototype.hasOwnProperty.call(block, "fields")) {
214
+ (0, import_errors.throwBadRequest)(`${context}.fields is not supported on tree blocks`);
215
+ }
216
+ if (Object.prototype.hasOwnProperty.call(block, "fieldGroups")) {
217
+ (0, import_errors.throwBadRequest)(`${context}.fieldGroups is not supported on tree blocks`);
218
+ }
219
+ if (Object.prototype.hasOwnProperty.call(block, "actions")) {
220
+ (0, import_errors.throwBadRequest)(`${context}.actions is not supported on tree blocks`);
221
+ }
222
+ if (Object.prototype.hasOwnProperty.call(block, "recordActions")) {
223
+ (0, import_errors.throwBadRequest)(`${context}.recordActions is not supported on tree blocks`);
224
+ }
225
+ }
184
226
  function assertApplyBlueprintBlockType(type, context) {
185
227
  if (!type) {
186
228
  return;
@@ -772,8 +814,16 @@ function compileField(input, index, scopePrefix, assets, localBlockKeys, context
772
814
  (0, import_errors.throwBadRequest)(`${context}[${index}] must be a string or object`);
773
815
  }
774
816
  (0, import_private_utils.assertOnlyAllowedKeys)(input, `${context}[${index}]`, APPLY_BLUEPRINT_FIELD_ALLOWED_KEYS);
817
+ (0, import_field_type_resolver.assertNoInternalFieldKeys)(input, `${context}[${index}]`);
818
+ (0, import_field_type_resolver.assertNoInternalFieldKeys)(input.settings, `${context}[${index}].settings`);
775
819
  const fieldPath = (0, import_private_utils.readOptionalString)(input.field);
776
820
  const syntheticType = (0, import_private_utils.readOptionalString)(input.type);
821
+ const fieldType = (0, import_field_type_resolver.normalizePublicFieldType)(input.fieldType, `${context}[${index}]`);
822
+ const fields = (0, import_field_type_resolver.normalizePublicFieldNameList)(input.fields, `${context}[${index}].fields`);
823
+ const selectorFields = (0, import_field_type_resolver.normalizePublicFieldNameList)(
824
+ input.selectorFields,
825
+ `${context}[${index}].selectorFields`
826
+ );
777
827
  if (!fieldPath && !syntheticType) {
778
828
  (0, import_errors.throwBadRequest)(`${context}[${index}] requires field or type`);
779
829
  }
@@ -799,6 +849,14 @@ function compileField(input, index, scopePrefix, assets, localBlockKeys, context
799
849
  associationPathName: (0, import_private_utils.readOptionalString)(input.associationPathName),
800
850
  renderer: (0, import_private_utils.readOptionalString)(input.renderer),
801
851
  type: syntheticType,
852
+ fieldType,
853
+ fields,
854
+ selectorFields,
855
+ titleField: (0, import_private_utils.readOptionalString)(input.titleField),
856
+ openMode: (0, import_private_utils.readOptionalString)(input.openMode),
857
+ popupSize: (0, import_private_utils.readOptionalString)(input.popupSize),
858
+ pageSize: input.pageSize,
859
+ showIndex: input.showIndex,
802
860
  target: resolveTargetBlockKey(input.target, localBlockKeys, `${context}[${index}].target`),
803
861
  settings: Object.keys(settings).length ? settings : void 0,
804
862
  popup
@@ -858,6 +916,8 @@ function compileBlocks(input, scopePrefix, assets, context, defaults, requiredEx
858
916
  (0, import_errors.throwBadRequest)(`${context}[${index}] must be an object`);
859
917
  }
860
918
  assertApplyBlueprintCalendarMainContent(block, `${context}[${index}]`);
919
+ assertApplyBlueprintKanbanMainContent(block, `${context}[${index}]`);
920
+ assertApplyBlueprintTreeMainContent(block, `${context}[${index}]`);
861
921
  const fields = resolveBlockFieldInputs(block, `${context}[${index}]`);
862
922
  fields.forEach((field, fieldIndex) => {
863
923
  if (typeof (field == null ? void 0 : field.target) !== "string" || !field.target.trim()) {
@@ -877,6 +937,8 @@ function compileBlocks(input, scopePrefix, assets, context, defaults, requiredEx
877
937
  (0, import_private_utils.assertOnlyAllowedKeys)(block, `${context}[${index}]`, APPLY_BLUEPRINT_BLOCK_ALLOWED_KEYS);
878
938
  assertApplyBlueprintBlockType((0, import_private_utils.readOptionalString)(block.type), `${context}[${index}]`);
879
939
  assertApplyBlueprintCalendarMainContent(block, `${context}[${index}]`);
940
+ assertApplyBlueprintKanbanMainContent(block, `${context}[${index}]`);
941
+ assertApplyBlueprintTreeMainContent(block, `${context}[${index}]`);
880
942
  const explicitKey = (0, import_private_utils.readString)(block.key);
881
943
  const fallback = block.type ? `${block.type}_${index + 1}` : `block_${index + 1}`;
882
944
  const localKey = (0, import_private_utils.normalizeBlueprintLocalKey)(block.key, fallback, `${context}[${index}].key`);
@@ -913,6 +975,11 @@ function compileBlocks(input, scopePrefix, assets, context, defaults, requiredEx
913
975
  template,
914
976
  path: blockContext
915
977
  });
978
+ if (!import_lodash.default.isUndefined(blockDefaultFilter)) {
979
+ (0, import_public_data_surface_default_filter.assertFlowSurfaceConcreteDefaultFilterItem)("applyBlueprint", blockDefaultFilter, {
980
+ path: blockContext
981
+ });
982
+ }
916
983
  const fieldInputs = resolveBlockFieldInputs(block, blockContext);
917
984
  const fields = fieldInputs.map(
918
985
  (field, fieldIndex) => compileField(
@@ -966,10 +1033,10 @@ function compileBlocks(input, scopePrefix, assets, context, defaults, requiredEx
966
1033
  resource: buildBlockResource(block, blockContext),
967
1034
  template,
968
1035
  settings: Object.keys(settings).length ? settings : void 0,
969
- fields: blockType === "calendar" ? void 0 : fields,
970
- fieldsLayout: blockType === "calendar" ? void 0 : fieldsLayout,
971
- actions: actionsWithDefaultFilter,
972
- recordActions: blockType === "calendar" ? void 0 : mergedActions.recordActions
1036
+ fields: blockType === "calendar" || blockType === "tree" ? void 0 : fields,
1037
+ fieldsLayout: blockType === "calendar" || blockType === "kanban" || blockType === "tree" ? void 0 : fieldsLayout,
1038
+ actions: blockType === "tree" ? void 0 : actionsWithDefaultFilter,
1039
+ recordActions: blockType === "calendar" || blockType === "kanban" || blockType === "tree" ? void 0 : mergedActions.recordActions
973
1040
  });
974
1041
  });
975
1042
  return {
@@ -85,6 +85,14 @@ export type FlowSurfaceApplyBlueprintFieldObjectSpec = {
85
85
  associationPathName?: string;
86
86
  renderer?: string;
87
87
  type?: string;
88
+ fieldType?: string;
89
+ fields?: string[];
90
+ selectorFields?: string[];
91
+ titleField?: string;
92
+ openMode?: string;
93
+ popupSize?: string;
94
+ pageSize?: number;
95
+ showIndex?: boolean;
88
96
  label?: string;
89
97
  target?: string;
90
98
  settings?: Record<string, any>;
@@ -132,7 +140,7 @@ export type FlowSurfaceApplyBlueprintActionObjectSpec = {
132
140
  chart?: string;
133
141
  };
134
142
  export type FlowSurfaceApplyBlueprintActionSpec = string | FlowSurfaceApplyBlueprintActionObjectSpec;
135
- export type FlowSurfaceApplyBlueprintBlockType = 'table' | 'createForm' | 'editForm' | 'details' | 'filterForm' | 'list' | 'gridCard' | 'markdown' | 'iframe' | 'chart' | 'actionPanel' | 'jsBlock';
143
+ export type FlowSurfaceApplyBlueprintBlockType = 'table' | 'createForm' | 'editForm' | 'details' | 'filterForm' | 'calendar' | 'kanban' | 'list' | 'gridCard' | 'markdown' | 'iframe' | 'chart' | 'actionPanel' | 'jsBlock' | 'tree';
136
144
  export type FlowSurfaceApplyBlueprintBlockSpec = {
137
145
  key?: string;
138
146
  type?: FlowSurfaceApplyBlueprintBlockType;
@@ -7,7 +7,7 @@
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
9
  import _ from 'lodash';
10
- import type { FlowSurfaceNodeSpec } from './types';
10
+ import type { FlowSurfaceNodeDefaults, FlowSurfaceNodeSpec } from './types';
11
11
  type BuildFieldParams = {
12
12
  wrapperUse: string;
13
13
  fieldUse: string;
@@ -145,6 +145,31 @@ export declare function buildFieldTree(params: BuildFieldParams): {
145
145
  stepParams: Record<string, any>;
146
146
  subModels: {
147
147
  field: {
148
+ uid: string;
149
+ use: string;
150
+ props: Record<string, any>;
151
+ stepParams: Record<string, any> & {
152
+ fieldSettings: {
153
+ init: _.Dictionary<string>;
154
+ };
155
+ fieldBinding: {
156
+ use: string;
157
+ };
158
+ };
159
+ };
160
+ };
161
+ };
162
+ } | {
163
+ wrapperUid: string;
164
+ innerUid: string;
165
+ model: {
166
+ uid: string;
167
+ use: string;
168
+ props: Record<string, any>;
169
+ stepParams: Record<string, any>;
170
+ subModels: {
171
+ field: {
172
+ subModels?: Record<string, FlowSurfaceNodeSpec | FlowSurfaceNodeSpec[]>;
148
173
  uid: string;
149
174
  use: string;
150
175
  props: Record<string, any>;
@@ -208,4 +233,5 @@ export declare function buildCanonicalTableActionsColumnNode(options?: {
208
233
  flowRegistry: Record<string, any>;
209
234
  };
210
235
  export declare function assignClientKeysToUids(spec: FlowSurfaceNodeSpec, clientKeyToUid: Record<string, string>): FlowSurfaceNodeSpec;
236
+ export declare function getStandaloneFieldDefaults(use: string): FlowSurfaceNodeDefaults;
211
237
  export {};