@nocobase/plugin-flow-engine 2.1.0-alpha.2 → 2.1.0-alpha.20

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 (232) hide show
  1. package/LICENSE +201 -661
  2. package/README.md +79 -9
  3. package/dist/ai/ai-employees/nathan/index.d.ts +10 -0
  4. package/dist/ai/ai-employees/nathan/index.js +41 -0
  5. package/dist/ai/ai-employees/nathan/prompt.md +132 -0
  6. package/dist/ai/ai-employees/nathan/skills/frontend-developer/SKILLS.md +69 -0
  7. package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextApis.js +2 -2
  8. package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextEnvs.js +2 -2
  9. package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextVars.js +2 -2
  10. package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/lintAndTestJS.js +2 -2
  11. package/dist/ai/docs/runjs/context/block-model.md +35 -35
  12. package/dist/ai/docs/runjs/context/collection-field.md +53 -51
  13. package/dist/ai/docs/runjs/context/collection.md +39 -39
  14. package/dist/ai/docs/runjs/context/data-source-manager.md +40 -30
  15. package/dist/ai/docs/runjs/context/data-source.md +52 -44
  16. package/dist/ai/docs/runjs/context/element.md +44 -38
  17. package/dist/ai/docs/runjs/context/exit-all.md +37 -35
  18. package/dist/ai/docs/runjs/context/exit.md +38 -35
  19. package/dist/ai/docs/runjs/context/filter-manager.md +36 -30
  20. package/dist/ai/docs/runjs/context/form.md +57 -57
  21. package/dist/ai/docs/runjs/context/get-model.md +22 -21
  22. package/dist/ai/docs/runjs/context/get-value.md +20 -19
  23. package/dist/ai/docs/runjs/context/get-var.md +61 -55
  24. package/dist/ai/docs/runjs/context/i18n.md +17 -14
  25. package/dist/ai/docs/runjs/context/import-async.md +333 -45
  26. package/dist/ai/docs/runjs/context/init-resource.md +20 -20
  27. package/dist/ai/docs/runjs/context/libs.md +31 -31
  28. package/dist/ai/docs/runjs/context/location.md +34 -31
  29. package/dist/ai/docs/runjs/context/logger.md +41 -40
  30. package/dist/ai/docs/runjs/context/make-resource.md +27 -26
  31. package/dist/ai/docs/runjs/context/message.md +42 -41
  32. package/dist/ai/docs/runjs/context/modal.md +44 -44
  33. package/dist/ai/docs/runjs/context/model.md +36 -33
  34. package/dist/ai/docs/runjs/context/notification.md +41 -40
  35. package/dist/ai/docs/runjs/context/off.md +14 -14
  36. package/dist/ai/docs/runjs/context/on.md +30 -29
  37. package/dist/ai/docs/runjs/context/open-view.md +40 -40
  38. package/dist/ai/docs/runjs/context/render.md +37 -32
  39. package/dist/ai/docs/runjs/context/request.md +46 -45
  40. package/dist/ai/docs/runjs/context/require-async.md +28 -25
  41. package/dist/ai/docs/runjs/context/resource.md +34 -34
  42. package/dist/ai/docs/runjs/context/route.md +36 -34
  43. package/dist/ai/docs/runjs/context/router.md +43 -31
  44. package/dist/ai/docs/runjs/context/set-value.md +18 -17
  45. package/dist/ai/docs/runjs/context/sql.md +7 -15
  46. package/dist/ai/docs/runjs/context/t.md +20 -17
  47. package/dist/ai/docs/runjs/context/view.md +49 -46
  48. package/dist/ai/docs/runjs/document.md +1 -0
  49. package/dist/ai/docs/runjs/import-modules.md +32 -32
  50. package/dist/ai/docs/runjs/index.md +13 -13
  51. package/dist/ai/docs/runjs/jsx.md +19 -19
  52. package/dist/ai/docs/runjs/model/form-block-model.md +1 -3
  53. package/dist/ai/docs/runjs/render.md +15 -15
  54. package/dist/ai/docs/runjs/resource/api-resource.md +53 -53
  55. package/dist/ai/docs/runjs/resource/multi-record-resource.md +64 -64
  56. package/dist/ai/docs/runjs/resource/single-record-resource.md +55 -55
  57. package/dist/ai/docs/runjs/resource/sql-resource.md +57 -57
  58. package/dist/ai/docs/runjs/window.md +5 -5
  59. package/dist/client/index.js +1 -1
  60. package/dist/externalVersion.js +11 -11
  61. package/dist/locale/en-US.json +1 -0
  62. package/dist/locale/index.d.ts +2 -0
  63. package/dist/locale/zh-CN.json +1 -0
  64. package/dist/node_modules/ses/package.json +1 -1
  65. package/dist/node_modules/zod/package.json +1 -1
  66. package/dist/server/collections/flowsql.js +1 -0
  67. package/dist/server/flow-surfaces/action-scope.d.ts +37 -0
  68. package/dist/server/flow-surfaces/action-scope.js +148 -0
  69. package/dist/server/flow-surfaces/apply/compiler.d.ts +13 -0
  70. package/dist/server/flow-surfaces/apply/compiler.js +969 -0
  71. package/dist/server/flow-surfaces/apply/layout.d.ts +34 -0
  72. package/dist/server/flow-surfaces/apply/layout.js +175 -0
  73. package/dist/server/flow-surfaces/apply/matching.d.ts +16 -0
  74. package/dist/server/flow-surfaces/apply/matching.js +181 -0
  75. package/dist/server/flow-surfaces/approval/blueprint-service.d.ts +84 -0
  76. package/dist/server/flow-surfaces/approval/blueprint-service.js +589 -0
  77. package/dist/server/flow-surfaces/approval/blueprint.d.ts +21 -0
  78. package/dist/server/flow-surfaces/approval/blueprint.js +187 -0
  79. package/dist/server/flow-surfaces/approval/builder.d.ts +225 -0
  80. package/dist/server/flow-surfaces/approval/builder.js +384 -0
  81. package/dist/server/flow-surfaces/approval/catalog-specs.d.ts +33 -0
  82. package/dist/server/flow-surfaces/approval/catalog-specs.js +156 -0
  83. package/dist/server/flow-surfaces/approval/index.d.ts +14 -0
  84. package/dist/server/flow-surfaces/approval/index.js +40 -0
  85. package/dist/server/flow-surfaces/approval/runtime-config.d.ts +44 -0
  86. package/dist/server/flow-surfaces/approval/runtime-config.js +299 -0
  87. package/dist/server/flow-surfaces/approval/semantic-use.d.ts +23 -0
  88. package/dist/server/flow-surfaces/approval/semantic-use.js +155 -0
  89. package/dist/server/flow-surfaces/association-title-field.d.ts +20 -0
  90. package/dist/server/flow-surfaces/association-title-field.js +158 -0
  91. package/dist/server/flow-surfaces/blueprint/compile-blocks.d.ts +14 -0
  92. package/dist/server/flow-surfaces/blueprint/compile-blocks.js +844 -0
  93. package/dist/server/flow-surfaces/blueprint/compile-plan.d.ts +13 -0
  94. package/dist/server/flow-surfaces/blueprint/compile-plan.js +308 -0
  95. package/dist/server/flow-surfaces/blueprint/compile-reaction.d.ts +11 -0
  96. package/dist/server/flow-surfaces/blueprint/compile-reaction.js +72 -0
  97. package/dist/server/flow-surfaces/blueprint/index.d.ts +12 -0
  98. package/dist/server/flow-surfaces/blueprint/index.js +44 -0
  99. package/dist/server/flow-surfaces/blueprint/normalize-document.d.ts +10 -0
  100. package/dist/server/flow-surfaces/blueprint/normalize-document.js +296 -0
  101. package/dist/server/flow-surfaces/blueprint/private-utils.d.ts +26 -0
  102. package/dist/server/flow-surfaces/blueprint/private-utils.js +182 -0
  103. package/dist/server/flow-surfaces/blueprint/public-types.d.ts +161 -0
  104. package/dist/server/flow-surfaces/blueprint/public-types.js +24 -0
  105. package/dist/server/flow-surfaces/builder.d.ts +211 -0
  106. package/dist/server/flow-surfaces/builder.js +931 -0
  107. package/dist/server/flow-surfaces/catalog-smart.d.ts +18 -0
  108. package/dist/server/flow-surfaces/catalog-smart.js +239 -0
  109. package/dist/server/flow-surfaces/catalog-smart.projector.d.ts +15 -0
  110. package/dist/server/flow-surfaces/catalog-smart.projector.js +157 -0
  111. package/dist/server/flow-surfaces/catalog-smart.types.d.ts +99 -0
  112. package/dist/server/flow-surfaces/catalog-smart.types.js +24 -0
  113. package/dist/server/flow-surfaces/catalog.d.ts +78 -0
  114. package/dist/server/flow-surfaces/catalog.js +3254 -0
  115. package/dist/server/flow-surfaces/chart-config.d.ts +121 -0
  116. package/dist/server/flow-surfaces/chart-config.js +1394 -0
  117. package/dist/server/flow-surfaces/compose-compiler.d.ts +106 -0
  118. package/dist/server/flow-surfaces/compose-compiler.js +163 -0
  119. package/dist/server/flow-surfaces/compose-runtime.d.ts +93 -0
  120. package/dist/server/flow-surfaces/compose-runtime.js +375 -0
  121. package/dist/server/flow-surfaces/configure-options.d.ts +23 -0
  122. package/dist/server/flow-surfaces/configure-options.js +751 -0
  123. package/dist/server/flow-surfaces/constants.d.ts +351 -0
  124. package/dist/server/flow-surfaces/constants.js +104 -0
  125. package/dist/server/flow-surfaces/context.d.ts +72 -0
  126. package/dist/server/flow-surfaces/context.js +556 -0
  127. package/dist/server/flow-surfaces/contract-guard.d.ts +19 -0
  128. package/dist/server/flow-surfaces/contract-guard.js +411 -0
  129. package/dist/server/flow-surfaces/default-action-popup.d.ts +53 -0
  130. package/dist/server/flow-surfaces/default-action-popup.js +262 -0
  131. package/dist/server/flow-surfaces/default-block-actions.d.ts +32 -0
  132. package/dist/server/flow-surfaces/default-block-actions.js +178 -0
  133. package/dist/server/flow-surfaces/errors.d.ts +47 -0
  134. package/dist/server/flow-surfaces/errors.js +145 -0
  135. package/dist/server/flow-surfaces/executor.d.ts +23 -0
  136. package/dist/server/flow-surfaces/executor.js +132 -0
  137. package/dist/server/flow-surfaces/field-binding-registry.d.ts +23 -0
  138. package/dist/server/flow-surfaces/field-binding-registry.js +391 -0
  139. package/dist/server/flow-surfaces/field-semantics.d.ts +15 -0
  140. package/dist/server/flow-surfaces/field-semantics.js +81 -0
  141. package/dist/server/flow-surfaces/index.d.ts +11 -0
  142. package/dist/server/flow-surfaces/index.js +175 -0
  143. package/dist/server/flow-surfaces/locator.d.ts +28 -0
  144. package/dist/server/flow-surfaces/locator.js +240 -0
  145. package/dist/server/flow-surfaces/node-use-sets.d.ts +15 -0
  146. package/dist/server/flow-surfaces/node-use-sets.js +126 -0
  147. package/dist/server/flow-surfaces/payload-shape.d.ts +9 -0
  148. package/dist/server/flow-surfaces/payload-shape.js +61 -0
  149. package/dist/server/flow-surfaces/placement.d.ts +33 -0
  150. package/dist/server/flow-surfaces/placement.js +192 -0
  151. package/dist/server/flow-surfaces/planning/action-specs.d.ts +179 -0
  152. package/dist/server/flow-surfaces/planning/action-specs.js +190 -0
  153. package/dist/server/flow-surfaces/planning/compiler.d.ts +37 -0
  154. package/dist/server/flow-surfaces/planning/compiler.js +376 -0
  155. package/dist/server/flow-surfaces/planning/context.d.ts +30 -0
  156. package/dist/server/flow-surfaces/planning/context.js +139 -0
  157. package/dist/server/flow-surfaces/planning/created-keys.d.ts +34 -0
  158. package/dist/server/flow-surfaces/planning/created-keys.js +375 -0
  159. package/dist/server/flow-surfaces/planning/key-kind.d.ts +11 -0
  160. package/dist/server/flow-surfaces/planning/key-kind.js +88 -0
  161. package/dist/server/flow-surfaces/planning/key-persistence.d.ts +34 -0
  162. package/dist/server/flow-surfaces/planning/key-persistence.js +148 -0
  163. package/dist/server/flow-surfaces/planning/key-registry.d.ts +40 -0
  164. package/dist/server/flow-surfaces/planning/key-registry.js +206 -0
  165. package/dist/server/flow-surfaces/planning/runtime.d.ts +37 -0
  166. package/dist/server/flow-surfaces/planning/runtime.js +259 -0
  167. package/dist/server/flow-surfaces/planning/step-link.d.ts +14 -0
  168. package/dist/server/flow-surfaces/planning/step-link.js +104 -0
  169. package/dist/server/flow-surfaces/planning/types.d.ts +55 -0
  170. package/dist/server/flow-surfaces/planning/types.js +24 -0
  171. package/dist/server/flow-surfaces/reaction/errors.d.ts +20 -0
  172. package/dist/server/flow-surfaces/reaction/errors.js +69 -0
  173. package/dist/server/flow-surfaces/reaction/field-value.d.ts +34 -0
  174. package/dist/server/flow-surfaces/reaction/field-value.js +181 -0
  175. package/dist/server/flow-surfaces/reaction/fingerprint.d.ts +16 -0
  176. package/dist/server/flow-surfaces/reaction/fingerprint.js +71 -0
  177. package/dist/server/flow-surfaces/reaction/linkage.d.ts +136 -0
  178. package/dist/server/flow-surfaces/reaction/linkage.js +882 -0
  179. package/dist/server/flow-surfaces/reaction/meta.d.ts +11 -0
  180. package/dist/server/flow-surfaces/reaction/meta.js +451 -0
  181. package/dist/server/flow-surfaces/reaction/registry.d.ts +149 -0
  182. package/dist/server/flow-surfaces/reaction/registry.js +199 -0
  183. package/dist/server/flow-surfaces/reaction/resolver.d.ts +22 -0
  184. package/dist/server/flow-surfaces/reaction/resolver.js +202 -0
  185. package/dist/server/flow-surfaces/reaction/types.d.ts +241 -0
  186. package/dist/server/flow-surfaces/reaction/types.js +24 -0
  187. package/dist/server/flow-surfaces/reaction/utils.d.ts +17 -0
  188. package/dist/server/flow-surfaces/reaction/utils.js +67 -0
  189. package/dist/server/flow-surfaces/reaction/value-expr.d.ts +15 -0
  190. package/dist/server/flow-surfaces/reaction/value-expr.js +209 -0
  191. package/dist/server/flow-surfaces/reference-guards.d.ts +19 -0
  192. package/dist/server/flow-surfaces/reference-guards.js +103 -0
  193. package/dist/server/flow-surfaces/route-sync.d.ts +47 -0
  194. package/dist/server/flow-surfaces/route-sync.js +392 -0
  195. package/dist/server/flow-surfaces/service-helpers.d.ts +42 -0
  196. package/dist/server/flow-surfaces/service-helpers.js +377 -0
  197. package/dist/server/flow-surfaces/service-utils.d.ts +101 -0
  198. package/dist/server/flow-surfaces/service-utils.js +762 -0
  199. package/dist/server/flow-surfaces/service.d.ts +703 -0
  200. package/dist/server/flow-surfaces/service.js +11376 -0
  201. package/dist/server/flow-surfaces/support-matrix.d.ts +28 -0
  202. package/dist/server/flow-surfaces/support-matrix.js +246 -0
  203. package/dist/server/flow-surfaces/surface-context.d.ts +52 -0
  204. package/dist/server/flow-surfaces/surface-context.js +436 -0
  205. package/dist/server/flow-surfaces/template-compatibility.d.ts +42 -0
  206. package/dist/server/flow-surfaces/template-compatibility.js +189 -0
  207. package/dist/server/flow-surfaces/template-service-utils.d.ts +62 -0
  208. package/dist/server/flow-surfaces/template-service-utils.js +281 -0
  209. package/dist/server/flow-surfaces/types.d.ts +287 -0
  210. package/dist/server/flow-surfaces/types.js +24 -0
  211. package/dist/server/index.d.ts +1 -0
  212. package/dist/server/index.js +7 -2
  213. package/dist/server/plugin.d.ts +0 -1
  214. package/dist/server/plugin.js +9 -34
  215. package/dist/server/repository.js +0 -5
  216. package/dist/server/variables/resolve.d.ts +21 -0
  217. package/dist/server/variables/resolve.js +79 -0
  218. package/dist/swagger/flow-surfaces.d.ts +5804 -0
  219. package/dist/swagger/flow-surfaces.examples.d.ts +1427 -0
  220. package/dist/swagger/flow-surfaces.examples.js +1607 -0
  221. package/dist/swagger/flow-surfaces.js +5195 -0
  222. package/dist/swagger/flow-surfaces.template-action-docs.d.ts +62 -0
  223. package/dist/swagger/flow-surfaces.template-action-docs.js +121 -0
  224. package/dist/swagger/flow-surfaces.template-schemas.d.ts +239 -0
  225. package/dist/swagger/flow-surfaces.template-schemas.js +255 -0
  226. package/dist/swagger/index.d.ts +5809 -0
  227. package/dist/swagger/index.js +50 -0
  228. package/package.json +3 -3
  229. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextApis.d.ts +0 -0
  230. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextEnvs.d.ts +0 -0
  231. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/getContextVars.d.ts +0 -0
  232. /package/dist/ai/{tools → ai-employees/nathan/skills/frontend-developer/tools}/lintAndTestJS.d.ts +0 -0
@@ -8,7 +8,6 @@
8
8
  */
9
9
  import PluginUISchemaStorageServer from './server';
10
10
  export declare class PluginFlowEngineServer extends PluginUISchemaStorageServer {
11
- private globalContext;
12
11
  afterAdd(): Promise<void>;
13
12
  beforeLoad(): Promise<void>;
14
13
  getDatabaseByDataSourceKey(dataSourceKey?: string): import("@nocobase/database").default;
@@ -41,13 +41,10 @@ __export(plugin_exports, {
41
41
  });
42
42
  module.exports = __toCommonJS(plugin_exports);
43
43
  var import_utils = require("@nocobase/utils");
44
- var import_server2 = __toESM(require("./server"));
45
- var import_contexts = require("./template/contexts");
46
- var import_resolver = require("./template/resolver");
47
- var import_registry = require("./variables/registry");
48
- var import_utils2 = require("./variables/utils");
49
- class PluginFlowEngineServer extends import_server2.default {
50
- globalContext;
44
+ var import_flow_surfaces = require("./flow-surfaces");
45
+ var import_server = __toESM(require("./server"));
46
+ var import_resolve = require("./variables/resolve");
47
+ class PluginFlowEngineServer extends import_server.default {
51
48
  async afterAdd() {
52
49
  }
53
50
  async beforeLoad() {
@@ -62,12 +59,11 @@ class PluginFlowEngineServer extends import_server2.default {
62
59
  return cm.db;
63
60
  }
64
61
  async load() {
65
- var _a, _b;
66
62
  await super.load();
63
+ (0, import_flow_surfaces.registerFlowSurfacesResource)(this);
67
64
  this.app.auditManager.registerAction("flowSql:save");
68
65
  this.app.auditManager.registerAction("flowModels:save");
69
66
  this.app.auditManager.registerAction("flowModels:duplicate");
70
- this.globalContext = new import_contexts.GlobalContext((_b = (_a = this.app.environment) == null ? void 0 : _a.getVariables) == null ? void 0 : _b.call(_a));
71
67
  this.app.acl.allow("flowSql", "runById", "loggedIn");
72
68
  this.app.acl.allow("flowSql", "getBind", "loggedIn");
73
69
  this.app.acl.allow("variables", "resolve", "loggedIn");
@@ -77,28 +73,12 @@ class PluginFlowEngineServer extends import_server2.default {
77
73
  actions: {
78
74
  // 解析 JSON 模板中的 ctx 变量
79
75
  resolve: async (ctx, next) => {
80
- var _a2, _b2;
81
- const raw = ((_b2 = (_a2 = ctx.action) == null ? void 0 : _a2.params) == null ? void 0 : _b2.values) ?? {};
76
+ var _a, _b;
77
+ const raw = ((_b = (_a = ctx.action) == null ? void 0 : _a.params) == null ? void 0 : _b.values) ?? {};
82
78
  const values = typeof (raw == null ? void 0 : raw.values) !== "undefined" ? raw.values : raw;
83
79
  if (Array.isArray(values == null ? void 0 : values.batch)) {
84
80
  const batchItems = values.batch;
85
- await (0, import_utils2.prefetchRecordsForResolve)(
86
- ctx,
87
- batchItems.map((it) => ({
88
- template: it.template,
89
- contextParams: it.contextParams || {}
90
- }))
91
- );
92
- const results = [];
93
- for (const item of batchItems) {
94
- const template2 = (item == null ? void 0 : item.template) ?? {};
95
- const contextParams2 = (item == null ? void 0 : item.contextParams) || {};
96
- const requestCtx2 = new import_contexts.HttpRequestContext(ctx);
97
- requestCtx2.delegate(this.globalContext);
98
- await import_registry.variables.attachUsedVariables(requestCtx2, ctx, template2, contextParams2);
99
- const resolved2 = await (0, import_resolver.resolveJsonTemplate)(template2, requestCtx2);
100
- results.push({ id: item == null ? void 0 : item.id, data: resolved2 });
101
- }
81
+ const results = await (0, import_resolve.resolveVariablesBatch)(ctx, batchItems);
102
82
  ctx.body = { results };
103
83
  await next();
104
84
  return;
@@ -111,12 +91,7 @@ class PluginFlowEngineServer extends import_server2.default {
111
91
  }
112
92
  const template = values.template;
113
93
  const contextParams = (values == null ? void 0 : values.contextParams) || {};
114
- await (0, import_utils2.prefetchRecordsForResolve)(ctx, [{ template, contextParams }]);
115
- const requestCtx = new import_contexts.HttpRequestContext(ctx);
116
- requestCtx.delegate(this.globalContext);
117
- await import_registry.variables.attachUsedVariables(requestCtx, ctx, template, contextParams);
118
- const resolved = await (0, import_resolver.resolveJsonTemplate)(template, requestCtx);
119
- ctx.body = resolved;
94
+ ctx.body = await (0, import_resolve.resolveVariablesTemplate)(ctx, template, contextParams);
120
95
  await next();
121
96
  }
122
97
  }
@@ -793,11 +793,6 @@ WHERE TreeTable.depth = 1 AND TreeTable.ancestor = :ancestor and TreeTable.sort
793
793
  transaction: transaction2
794
794
  });
795
795
  if (oldParentUid !== null && oldParentUid !== parentUid) {
796
- await this.database.emitAsync("uiSchemaMove", savedNode, {
797
- transaction: transaction2,
798
- oldParentUid,
799
- parentUid
800
- });
801
796
  if (options.removeParentsIfNoChildren) {
802
797
  await this.recursivelyRemoveIfNoChildren({
803
798
  transaction: transaction2,
@@ -0,0 +1,21 @@
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
+ import type { ResourcerContext } from '@nocobase/resourcer';
10
+ import { JSONValue } from '../template/resolver';
11
+ type ResolveBatchItem = {
12
+ id?: string | number;
13
+ template: JSONValue;
14
+ contextParams?: Record<string, unknown>;
15
+ };
16
+ export declare function resolveVariablesTemplate(ctx: ResourcerContext, template: JSONValue, contextParams?: Record<string, unknown>): Promise<any>;
17
+ export declare function resolveVariablesBatch(ctx: ResourcerContext, items: ResolveBatchItem[]): Promise<{
18
+ id?: string | number;
19
+ data: unknown;
20
+ }[]>;
21
+ export {};
@@ -0,0 +1,79 @@
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 resolve_exports = {};
28
+ __export(resolve_exports, {
29
+ resolveVariablesBatch: () => resolveVariablesBatch,
30
+ resolveVariablesTemplate: () => resolveVariablesTemplate
31
+ });
32
+ module.exports = __toCommonJS(resolve_exports);
33
+ var import_contexts = require("../template/contexts");
34
+ var import_resolver = require("../template/resolver");
35
+ var import_registry = require("./registry");
36
+ var import_utils = require("./utils");
37
+ const GLOBAL_CONTEXT_KEY = Symbol.for("nocobase.flow-engine.variables.global-context");
38
+ function getGlobalContext(ctx) {
39
+ var _a, _b;
40
+ const app = ctx.app;
41
+ if (!app[GLOBAL_CONTEXT_KEY]) {
42
+ app[GLOBAL_CONTEXT_KEY] = new import_contexts.GlobalContext((_b = (_a = app.environment) == null ? void 0 : _a.getVariables) == null ? void 0 : _b.call(_a));
43
+ }
44
+ return app[GLOBAL_CONTEXT_KEY];
45
+ }
46
+ async function resolveVariablesTemplate(ctx, template, contextParams = {}) {
47
+ await (0, import_utils.prefetchRecordsForResolve)(ctx, [{ template, contextParams }]);
48
+ return resolveVariablesTemplateWithPrefetchedRecords(ctx, template, contextParams);
49
+ }
50
+ async function resolveVariablesTemplateWithPrefetchedRecords(ctx, template, contextParams = {}) {
51
+ const requestCtx = new import_contexts.HttpRequestContext(ctx);
52
+ requestCtx.delegate(getGlobalContext(ctx));
53
+ await import_registry.variables.attachUsedVariables(requestCtx, ctx, template, contextParams);
54
+ return (0, import_resolver.resolveJsonTemplate)(template, requestCtx);
55
+ }
56
+ async function resolveVariablesBatch(ctx, items) {
57
+ await (0, import_utils.prefetchRecordsForResolve)(
58
+ ctx,
59
+ items.map((item) => ({
60
+ template: (item == null ? void 0 : item.template) ?? {},
61
+ contextParams: (item == null ? void 0 : item.contextParams) || {}
62
+ }))
63
+ );
64
+ const results = [];
65
+ for (const item of items) {
66
+ const data = await resolveVariablesTemplateWithPrefetchedRecords(
67
+ ctx,
68
+ (item == null ? void 0 : item.template) ?? {},
69
+ (item == null ? void 0 : item.contextParams) || {}
70
+ );
71
+ results.push({ id: item == null ? void 0 : item.id, data });
72
+ }
73
+ return results;
74
+ }
75
+ // Annotate the CommonJS export names for ESM import in node:
76
+ 0 && (module.exports = {
77
+ resolveVariablesBatch,
78
+ resolveVariablesTemplate
79
+ });