@flowgram.ai/variable-plugin 0.1.0-alpha.2 → 0.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.
package/dist/esm/index.js CHANGED
@@ -3,7 +3,9 @@ import {
3
3
  FlowNodeVariableData,
4
4
  FreeLayoutScopeChain,
5
5
  FixedLayoutScopeChain,
6
- VariableLayoutConfig
6
+ VariableChainConfig,
7
+ bindGlobalScope,
8
+ ScopeChainTransformService
7
9
  } from "@flowgram.ai/variable-layout";
8
10
  import {
9
11
  VariableContainerModule,
@@ -16,16 +18,21 @@ import { definePluginCreator } from "@flowgram.ai/core";
16
18
  import { EntityManager } from "@flowgram.ai/core";
17
19
  var createVariablePlugin = definePluginCreator({
18
20
  onBind({ bind }, opts) {
19
- const { layout, layoutConfig } = opts;
21
+ const { layout, layoutConfig, chainConfig } = opts;
22
+ bind(ScopeChainTransformService).toSelf().inSingletonScope();
20
23
  if (layout === "free") {
21
24
  bind(ScopeChain).to(FreeLayoutScopeChain).inSingletonScope();
22
25
  }
23
26
  if (layout === "fixed") {
24
27
  bind(ScopeChain).to(FixedLayoutScopeChain).inSingletonScope();
25
28
  }
26
- if (layoutConfig) {
27
- bind(VariableLayoutConfig).toConstantValue(layoutConfig || {});
29
+ if (chainConfig) {
30
+ bind(VariableChainConfig).toConstantValue(chainConfig || {});
31
+ } else if (layoutConfig) {
32
+ console.warn(`Layout Config deprecated, use chainConfig instead`);
33
+ bind(VariableChainConfig).toConstantValue(layoutConfig || {});
28
34
  }
35
+ bindGlobalScope(bind);
29
36
  },
30
37
  onInit(ctx, opts) {
31
38
  const { extendASTNodes } = opts || {};
@@ -49,9 +56,21 @@ var createVariablePlugin = definePluginCreator({
49
56
 
50
57
  // src/index.ts
51
58
  export * from "@flowgram.ai/variable-core";
52
- import { FlowNodeVariableData as FlowNodeVariableData2 } from "@flowgram.ai/variable-layout";
59
+ import {
60
+ FlowNodeVariableData as FlowNodeVariableData2,
61
+ GlobalScope,
62
+ ScopeChainTransformService as ScopeChainTransformService2,
63
+ getNodeScope,
64
+ getNodePrivateScope,
65
+ FlowNodeScopeType
66
+ } from "@flowgram.ai/variable-layout";
53
67
  export {
68
+ FlowNodeScopeType,
54
69
  FlowNodeVariableData2 as FlowNodeVariableData,
55
- createVariablePlugin
70
+ GlobalScope,
71
+ ScopeChainTransformService2 as ScopeChainTransformService,
72
+ createVariablePlugin,
73
+ getNodePrivateScope,
74
+ getNodeScope
56
75
  };
57
76
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/create-variable-plugin.ts","../../src/index.ts"],"sourcesContent":["import {\n FlowNodeVariableData,\n FreeLayoutScopeChain,\n FixedLayoutScopeChain,\n VariableLayoutConfig,\n} from '@flowgram.ai/variable-layout';\nimport {\n VariableContainerModule,\n ASTNodeRegistry,\n ASTRegisters,\n VariableEngine,\n ScopeChain,\n} from '@flowgram.ai/variable-core';\nimport { FlowDocument } from '@flowgram.ai/document';\nimport { PluginContext, definePluginCreator } from '@flowgram.ai/core';\nimport { EntityManager } from '@flowgram.ai/core';\n\n/**\n * @deprecated 请使用 @injectToAst(XXXService) declare xxxService: XXXService 实现外部依赖注入\n */\ntype Injector = (ctx: PluginContext) => Record<string, any>;\n\nexport interface VariablePluginOptions {\n enable?: boolean;\n // 业务扩展 AST 节点\n extendASTNodes?: (ASTNodeRegistry | [ASTNodeRegistry] | [ASTNodeRegistry, Injector])[];\n // 布局方式\n layout?: 'fixed' | 'free';\n // 布局配置\n layoutConfig?: VariableLayoutConfig;\n}\n\nexport const createVariablePlugin = definePluginCreator<VariablePluginOptions>({\n onBind({ bind }, opts) {\n const { layout, layoutConfig } = opts;\n\n if (layout === 'free') {\n bind(ScopeChain).to(FreeLayoutScopeChain).inSingletonScope();\n }\n if (layout === 'fixed') {\n bind(ScopeChain).to(FixedLayoutScopeChain).inSingletonScope();\n }\n if (layoutConfig) {\n bind(VariableLayoutConfig).toConstantValue(layoutConfig || {});\n }\n },\n onInit(ctx, opts) {\n const { extendASTNodes } = opts || {};\n\n const variableEngine = ctx.get<VariableEngine>(VariableEngine);\n const astRegisters = ctx.get<ASTRegisters>(ASTRegisters);\n const entityManager = ctx.get<EntityManager>(EntityManager);\n const document = ctx.get<FlowDocument>(FlowDocument);\n\n /**\n * 注册扩展 AST 节点\n */\n (extendASTNodes || []).forEach(info => {\n if (Array.isArray(info)) {\n const [extendASTNode, injector] = info;\n\n astRegisters.registerAST(extendASTNode, injector ? () => injector(ctx) : undefined);\n\n return;\n }\n\n astRegisters.registerAST(info);\n });\n\n /**\n * 扩展 FlowNodeVariableData\n */\n entityManager.registerEntityData(FlowNodeVariableData, () => ({ variableEngine } as any));\n document.registerNodeDatas(FlowNodeVariableData);\n },\n containerModules: [VariableContainerModule],\n});\n","export * from './create-variable-plugin';\nexport * from '@flowgram.ai/variable-core';\nexport { FlowNodeVariableData } from '@flowgram.ai/variable-layout';\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,SAAwB,2BAA2B;AACnD,SAAS,qBAAqB;AAiBvB,IAAM,uBAAuB,oBAA2C;AAAA,EAC7E,OAAO,EAAE,KAAK,GAAG,MAAM;AACrB,UAAM,EAAE,QAAQ,aAAa,IAAI;AAEjC,QAAI,WAAW,QAAQ;AACrB,WAAK,UAAU,EAAE,GAAG,oBAAoB,EAAE,iBAAiB;AAAA,IAC7D;AACA,QAAI,WAAW,SAAS;AACtB,WAAK,UAAU,EAAE,GAAG,qBAAqB,EAAE,iBAAiB;AAAA,IAC9D;AACA,QAAI,cAAc;AAChB,WAAK,oBAAoB,EAAE,gBAAgB,gBAAgB,CAAC,CAAC;AAAA,IAC/D;AAAA,EACF;AAAA,EACA,OAAO,KAAK,MAAM;AAChB,UAAM,EAAE,eAAe,IAAI,QAAQ,CAAC;AAEpC,UAAM,iBAAiB,IAAI,IAAoB,cAAc;AAC7D,UAAM,eAAe,IAAI,IAAkB,YAAY;AACvD,UAAM,gBAAgB,IAAI,IAAmB,aAAa;AAC1D,UAAM,WAAW,IAAI,IAAkB,YAAY;AAKnD,KAAC,kBAAkB,CAAC,GAAG,QAAQ,UAAQ;AACrC,UAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,cAAM,CAAC,eAAe,QAAQ,IAAI;AAElC,qBAAa,YAAY,eAAe,WAAW,MAAM,SAAS,GAAG,IAAI,MAAS;AAElF;AAAA,MACF;AAEA,mBAAa,YAAY,IAAI;AAAA,IAC/B,CAAC;AAKD,kBAAc,mBAAmB,sBAAsB,OAAO,EAAE,eAAe,EAAS;AACxF,aAAS,kBAAkB,oBAAoB;AAAA,EACjD;AAAA,EACA,kBAAkB,CAAC,uBAAuB;AAC5C,CAAC;;;AC3ED,cAAc;AACd,SAAS,wBAAAA,6BAA4B;","names":["FlowNodeVariableData"]}
1
+ {"version":3,"sources":["../../src/create-variable-plugin.ts","../../src/index.ts"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n FlowNodeVariableData,\n FreeLayoutScopeChain,\n FixedLayoutScopeChain,\n VariableChainConfig,\n bindGlobalScope,\n ScopeChainTransformService,\n} from '@flowgram.ai/variable-layout';\nimport {\n VariableContainerModule,\n ASTNodeRegistry,\n ASTRegisters,\n VariableEngine,\n ScopeChain,\n} from '@flowgram.ai/variable-core';\nimport { FlowDocument } from '@flowgram.ai/document';\nimport { PluginContext, definePluginCreator } from '@flowgram.ai/core';\nimport { EntityManager } from '@flowgram.ai/core';\n\n/**\n * @deprecated 请使用 @injectToAst(XXXService) declare xxxService: XXXService 实现外部依赖注入\n */\ntype Injector = (ctx: PluginContext) => Record<string, any>;\n\nexport interface VariablePluginOptions {\n enable?: boolean;\n /**\n * Custom Extends ASTNode\n */\n extendASTNodes?: (ASTNodeRegistry | [ASTNodeRegistry] | [ASTNodeRegistry, Injector])[];\n /**\n * Layout method\n */\n layout?: 'fixed' | 'free';\n /**\n * @deprecated use chainConfig instead\n */\n layoutConfig?: VariableChainConfig;\n /**\n * Configuration for scope chain\n */\n chainConfig?: VariableChainConfig;\n}\n\nexport const createVariablePlugin = definePluginCreator<VariablePluginOptions>({\n onBind({ bind }, opts) {\n const { layout, layoutConfig, chainConfig } = opts;\n\n bind(ScopeChainTransformService).toSelf().inSingletonScope();\n\n if (layout === 'free') {\n bind(ScopeChain).to(FreeLayoutScopeChain).inSingletonScope();\n }\n if (layout === 'fixed') {\n bind(ScopeChain).to(FixedLayoutScopeChain).inSingletonScope();\n }\n if (chainConfig) {\n bind(VariableChainConfig).toConstantValue(chainConfig || {});\n } else if (layoutConfig) {\n console.warn(`Layout Config deprecated, use chainConfig instead`);\n bind(VariableChainConfig).toConstantValue(layoutConfig || {});\n }\n\n bindGlobalScope(bind);\n },\n onInit(ctx, opts) {\n const { extendASTNodes } = opts || {};\n\n const variableEngine = ctx.get<VariableEngine>(VariableEngine);\n const astRegisters = ctx.get<ASTRegisters>(ASTRegisters);\n const entityManager = ctx.get<EntityManager>(EntityManager);\n const document = ctx.get<FlowDocument>(FlowDocument);\n\n /**\n * 注册扩展 AST 节点\n */\n (extendASTNodes || []).forEach((info) => {\n if (Array.isArray(info)) {\n const [extendASTNode, injector] = info;\n\n astRegisters.registerAST(extendASTNode, injector ? () => injector(ctx) : undefined);\n\n return;\n }\n\n astRegisters.registerAST(info);\n });\n\n /**\n * 扩展 FlowNodeVariableData\n */\n entityManager.registerEntityData(FlowNodeVariableData, () => ({ variableEngine } as any));\n document.registerNodeDatas(FlowNodeVariableData);\n },\n containerModules: [VariableContainerModule],\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './create-variable-plugin';\nexport * from '@flowgram.ai/variable-core';\nexport {\n FlowNodeVariableData,\n GlobalScope,\n ScopeChainTransformService,\n getNodeScope,\n getNodePrivateScope,\n FlowNodeScopeType,\n type FlowNodeScopeMeta,\n type FlowNodeScope,\n} from '@flowgram.ai/variable-layout';\n"],"mappings":";AAKA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,SAAwB,2BAA2B;AACnD,SAAS,qBAAqB;AA2BvB,IAAM,uBAAuB,oBAA2C;AAAA,EAC7E,OAAO,EAAE,KAAK,GAAG,MAAM;AACrB,UAAM,EAAE,QAAQ,cAAc,YAAY,IAAI;AAE9C,SAAK,0BAA0B,EAAE,OAAO,EAAE,iBAAiB;AAE3D,QAAI,WAAW,QAAQ;AACrB,WAAK,UAAU,EAAE,GAAG,oBAAoB,EAAE,iBAAiB;AAAA,IAC7D;AACA,QAAI,WAAW,SAAS;AACtB,WAAK,UAAU,EAAE,GAAG,qBAAqB,EAAE,iBAAiB;AAAA,IAC9D;AACA,QAAI,aAAa;AACf,WAAK,mBAAmB,EAAE,gBAAgB,eAAe,CAAC,CAAC;AAAA,IAC7D,WAAW,cAAc;AACvB,cAAQ,KAAK,mDAAmD;AAChE,WAAK,mBAAmB,EAAE,gBAAgB,gBAAgB,CAAC,CAAC;AAAA,IAC9D;AAEA,oBAAgB,IAAI;AAAA,EACtB;AAAA,EACA,OAAO,KAAK,MAAM;AAChB,UAAM,EAAE,eAAe,IAAI,QAAQ,CAAC;AAEpC,UAAM,iBAAiB,IAAI,IAAoB,cAAc;AAC7D,UAAM,eAAe,IAAI,IAAkB,YAAY;AACvD,UAAM,gBAAgB,IAAI,IAAmB,aAAa;AAC1D,UAAM,WAAW,IAAI,IAAkB,YAAY;AAKnD,KAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,SAAS;AACvC,UAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,cAAM,CAAC,eAAe,QAAQ,IAAI;AAElC,qBAAa,YAAY,eAAe,WAAW,MAAM,SAAS,GAAG,IAAI,MAAS;AAElF;AAAA,MACF;AAEA,mBAAa,YAAY,IAAI;AAAA,IAC/B,CAAC;AAKD,kBAAc,mBAAmB,sBAAsB,OAAO,EAAE,eAAe,EAAS;AACxF,aAAS,kBAAkB,oBAAoB;AAAA,EACjD;AAAA,EACA,kBAAkB,CAAC,uBAAuB;AAC5C,CAAC;;;AC9FD,cAAc;AACd;AAAA,EACE,wBAAAA;AAAA,EACA;AAAA,EACA,8BAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;","names":["FlowNodeVariableData","ScopeChainTransformService"]}
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as _flowgram_ai_core from '@flowgram.ai/core';
2
2
  import { PluginContext } from '@flowgram.ai/core';
3
- import { VariableLayoutConfig } from '@flowgram.ai/variable-layout';
4
- export { FlowNodeVariableData } from '@flowgram.ai/variable-layout';
3
+ import { VariableChainConfig } from '@flowgram.ai/variable-layout';
4
+ export { FlowNodeScope, FlowNodeScopeMeta, FlowNodeScopeType, FlowNodeVariableData, GlobalScope, ScopeChainTransformService, getNodePrivateScope, getNodeScope } from '@flowgram.ai/variable-layout';
5
5
  import { ASTNodeRegistry } from '@flowgram.ai/variable-core';
6
6
  export * from '@flowgram.ai/variable-core';
7
7
 
@@ -11,9 +11,22 @@ export * from '@flowgram.ai/variable-core';
11
11
  type Injector = (ctx: PluginContext) => Record<string, any>;
12
12
  interface VariablePluginOptions {
13
13
  enable?: boolean;
14
+ /**
15
+ * Custom Extends ASTNode
16
+ */
14
17
  extendASTNodes?: (ASTNodeRegistry | [ASTNodeRegistry] | [ASTNodeRegistry, Injector])[];
18
+ /**
19
+ * Layout method
20
+ */
15
21
  layout?: 'fixed' | 'free';
16
- layoutConfig?: VariableLayoutConfig;
22
+ /**
23
+ * @deprecated use chainConfig instead
24
+ */
25
+ layoutConfig?: VariableChainConfig;
26
+ /**
27
+ * Configuration for scope chain
28
+ */
29
+ chainConfig?: VariableChainConfig;
17
30
  }
18
31
  declare const createVariablePlugin: _flowgram_ai_core.PluginCreator<VariablePluginOptions>;
19
32
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as _flowgram_ai_core from '@flowgram.ai/core';
2
2
  import { PluginContext } from '@flowgram.ai/core';
3
- import { VariableLayoutConfig } from '@flowgram.ai/variable-layout';
4
- export { FlowNodeVariableData } from '@flowgram.ai/variable-layout';
3
+ import { VariableChainConfig } from '@flowgram.ai/variable-layout';
4
+ export { FlowNodeScope, FlowNodeScopeMeta, FlowNodeScopeType, FlowNodeVariableData, GlobalScope, ScopeChainTransformService, getNodePrivateScope, getNodeScope } from '@flowgram.ai/variable-layout';
5
5
  import { ASTNodeRegistry } from '@flowgram.ai/variable-core';
6
6
  export * from '@flowgram.ai/variable-core';
7
7
 
@@ -11,9 +11,22 @@ export * from '@flowgram.ai/variable-core';
11
11
  type Injector = (ctx: PluginContext) => Record<string, any>;
12
12
  interface VariablePluginOptions {
13
13
  enable?: boolean;
14
+ /**
15
+ * Custom Extends ASTNode
16
+ */
14
17
  extendASTNodes?: (ASTNodeRegistry | [ASTNodeRegistry] | [ASTNodeRegistry, Injector])[];
18
+ /**
19
+ * Layout method
20
+ */
15
21
  layout?: 'fixed' | 'free';
16
- layoutConfig?: VariableLayoutConfig;
22
+ /**
23
+ * @deprecated use chainConfig instead
24
+ */
25
+ layoutConfig?: VariableChainConfig;
26
+ /**
27
+ * Configuration for scope chain
28
+ */
29
+ chainConfig?: VariableChainConfig;
17
30
  }
18
31
  declare const createVariablePlugin: _flowgram_ai_core.PluginCreator<VariablePluginOptions>;
19
32
 
package/dist/index.js CHANGED
@@ -19,12 +19,17 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
19
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
20
 
21
21
  // src/index.ts
22
- var src_exports = {};
23
- __export(src_exports, {
22
+ var index_exports = {};
23
+ __export(index_exports, {
24
+ FlowNodeScopeType: () => import_variable_layout2.FlowNodeScopeType,
24
25
  FlowNodeVariableData: () => import_variable_layout2.FlowNodeVariableData,
25
- createVariablePlugin: () => createVariablePlugin
26
+ GlobalScope: () => import_variable_layout2.GlobalScope,
27
+ ScopeChainTransformService: () => import_variable_layout2.ScopeChainTransformService,
28
+ createVariablePlugin: () => createVariablePlugin,
29
+ getNodePrivateScope: () => import_variable_layout2.getNodePrivateScope,
30
+ getNodeScope: () => import_variable_layout2.getNodeScope
26
31
  });
27
- module.exports = __toCommonJS(src_exports);
32
+ module.exports = __toCommonJS(index_exports);
28
33
 
29
34
  // src/create-variable-plugin.ts
30
35
  var import_variable_layout = require("@flowgram.ai/variable-layout");
@@ -34,16 +39,21 @@ var import_core = require("@flowgram.ai/core");
34
39
  var import_core2 = require("@flowgram.ai/core");
35
40
  var createVariablePlugin = (0, import_core.definePluginCreator)({
36
41
  onBind({ bind }, opts) {
37
- const { layout, layoutConfig } = opts;
42
+ const { layout, layoutConfig, chainConfig } = opts;
43
+ bind(import_variable_layout.ScopeChainTransformService).toSelf().inSingletonScope();
38
44
  if (layout === "free") {
39
45
  bind(import_variable_core.ScopeChain).to(import_variable_layout.FreeLayoutScopeChain).inSingletonScope();
40
46
  }
41
47
  if (layout === "fixed") {
42
48
  bind(import_variable_core.ScopeChain).to(import_variable_layout.FixedLayoutScopeChain).inSingletonScope();
43
49
  }
44
- if (layoutConfig) {
45
- bind(import_variable_layout.VariableLayoutConfig).toConstantValue(layoutConfig || {});
50
+ if (chainConfig) {
51
+ bind(import_variable_layout.VariableChainConfig).toConstantValue(chainConfig || {});
52
+ } else if (layoutConfig) {
53
+ console.warn(`Layout Config deprecated, use chainConfig instead`);
54
+ bind(import_variable_layout.VariableChainConfig).toConstantValue(layoutConfig || {});
46
55
  }
56
+ (0, import_variable_layout.bindGlobalScope)(bind);
47
57
  },
48
58
  onInit(ctx, opts) {
49
59
  const { extendASTNodes } = opts || {};
@@ -66,12 +76,17 @@ var createVariablePlugin = (0, import_core.definePluginCreator)({
66
76
  });
67
77
 
68
78
  // src/index.ts
69
- __reExport(src_exports, require("@flowgram.ai/variable-core"), module.exports);
79
+ __reExport(index_exports, require("@flowgram.ai/variable-core"), module.exports);
70
80
  var import_variable_layout2 = require("@flowgram.ai/variable-layout");
71
81
  // Annotate the CommonJS export names for ESM import in node:
72
82
  0 && (module.exports = {
83
+ FlowNodeScopeType,
73
84
  FlowNodeVariableData,
85
+ GlobalScope,
86
+ ScopeChainTransformService,
74
87
  createVariablePlugin,
88
+ getNodePrivateScope,
89
+ getNodeScope,
75
90
  ...require("@flowgram.ai/variable-core")
76
91
  });
77
92
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/create-variable-plugin.ts"],"sourcesContent":["export * from './create-variable-plugin';\nexport * from '@flowgram.ai/variable-core';\nexport { FlowNodeVariableData } from '@flowgram.ai/variable-layout';\n","import {\n FlowNodeVariableData,\n FreeLayoutScopeChain,\n FixedLayoutScopeChain,\n VariableLayoutConfig,\n} from '@flowgram.ai/variable-layout';\nimport {\n VariableContainerModule,\n ASTNodeRegistry,\n ASTRegisters,\n VariableEngine,\n ScopeChain,\n} from '@flowgram.ai/variable-core';\nimport { FlowDocument } from '@flowgram.ai/document';\nimport { PluginContext, definePluginCreator } from '@flowgram.ai/core';\nimport { EntityManager } from '@flowgram.ai/core';\n\n/**\n * @deprecated 请使用 @injectToAst(XXXService) declare xxxService: XXXService 实现外部依赖注入\n */\ntype Injector = (ctx: PluginContext) => Record<string, any>;\n\nexport interface VariablePluginOptions {\n enable?: boolean;\n // 业务扩展 AST 节点\n extendASTNodes?: (ASTNodeRegistry | [ASTNodeRegistry] | [ASTNodeRegistry, Injector])[];\n // 布局方式\n layout?: 'fixed' | 'free';\n // 布局配置\n layoutConfig?: VariableLayoutConfig;\n}\n\nexport const createVariablePlugin = definePluginCreator<VariablePluginOptions>({\n onBind({ bind }, opts) {\n const { layout, layoutConfig } = opts;\n\n if (layout === 'free') {\n bind(ScopeChain).to(FreeLayoutScopeChain).inSingletonScope();\n }\n if (layout === 'fixed') {\n bind(ScopeChain).to(FixedLayoutScopeChain).inSingletonScope();\n }\n if (layoutConfig) {\n bind(VariableLayoutConfig).toConstantValue(layoutConfig || {});\n }\n },\n onInit(ctx, opts) {\n const { extendASTNodes } = opts || {};\n\n const variableEngine = ctx.get<VariableEngine>(VariableEngine);\n const astRegisters = ctx.get<ASTRegisters>(ASTRegisters);\n const entityManager = ctx.get<EntityManager>(EntityManager);\n const document = ctx.get<FlowDocument>(FlowDocument);\n\n /**\n * 注册扩展 AST 节点\n */\n (extendASTNodes || []).forEach(info => {\n if (Array.isArray(info)) {\n const [extendASTNode, injector] = info;\n\n astRegisters.registerAST(extendASTNode, injector ? () => injector(ctx) : undefined);\n\n return;\n }\n\n astRegisters.registerAST(info);\n });\n\n /**\n * 扩展 FlowNodeVariableData\n */\n entityManager.registerEntityData(FlowNodeVariableData, () => ({ variableEngine } as any));\n document.registerNodeDatas(FlowNodeVariableData);\n },\n containerModules: [VariableContainerModule],\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,6BAKO;AACP,2BAMO;AACP,sBAA6B;AAC7B,kBAAmD;AACnD,IAAAA,eAA8B;AAiBvB,IAAM,2BAAuB,iCAA2C;AAAA,EAC7E,OAAO,EAAE,KAAK,GAAG,MAAM;AACrB,UAAM,EAAE,QAAQ,aAAa,IAAI;AAEjC,QAAI,WAAW,QAAQ;AACrB,WAAK,+BAAU,EAAE,GAAG,2CAAoB,EAAE,iBAAiB;AAAA,IAC7D;AACA,QAAI,WAAW,SAAS;AACtB,WAAK,+BAAU,EAAE,GAAG,4CAAqB,EAAE,iBAAiB;AAAA,IAC9D;AACA,QAAI,cAAc;AAChB,WAAK,2CAAoB,EAAE,gBAAgB,gBAAgB,CAAC,CAAC;AAAA,IAC/D;AAAA,EACF;AAAA,EACA,OAAO,KAAK,MAAM;AAChB,UAAM,EAAE,eAAe,IAAI,QAAQ,CAAC;AAEpC,UAAM,iBAAiB,IAAI,IAAoB,mCAAc;AAC7D,UAAM,eAAe,IAAI,IAAkB,iCAAY;AACvD,UAAM,gBAAgB,IAAI,IAAmB,0BAAa;AAC1D,UAAM,WAAW,IAAI,IAAkB,4BAAY;AAKnD,KAAC,kBAAkB,CAAC,GAAG,QAAQ,UAAQ;AACrC,UAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,cAAM,CAAC,eAAe,QAAQ,IAAI;AAElC,qBAAa,YAAY,eAAe,WAAW,MAAM,SAAS,GAAG,IAAI,MAAS;AAElF;AAAA,MACF;AAEA,mBAAa,YAAY,IAAI;AAAA,IAC/B,CAAC;AAKD,kBAAc,mBAAmB,6CAAsB,OAAO,EAAE,eAAe,EAAS;AACxF,aAAS,kBAAkB,2CAAoB;AAAA,EACjD;AAAA,EACA,kBAAkB,CAAC,4CAAuB;AAC5C,CAAC;;;AD3ED,wBAAc,uCADd;AAEA,IAAAC,0BAAqC;","names":["import_core","import_variable_layout"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/create-variable-plugin.ts"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './create-variable-plugin';\nexport * from '@flowgram.ai/variable-core';\nexport {\n FlowNodeVariableData,\n GlobalScope,\n ScopeChainTransformService,\n getNodeScope,\n getNodePrivateScope,\n FlowNodeScopeType,\n type FlowNodeScopeMeta,\n type FlowNodeScope,\n} from '@flowgram.ai/variable-layout';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n FlowNodeVariableData,\n FreeLayoutScopeChain,\n FixedLayoutScopeChain,\n VariableChainConfig,\n bindGlobalScope,\n ScopeChainTransformService,\n} from '@flowgram.ai/variable-layout';\nimport {\n VariableContainerModule,\n ASTNodeRegistry,\n ASTRegisters,\n VariableEngine,\n ScopeChain,\n} from '@flowgram.ai/variable-core';\nimport { FlowDocument } from '@flowgram.ai/document';\nimport { PluginContext, definePluginCreator } from '@flowgram.ai/core';\nimport { EntityManager } from '@flowgram.ai/core';\n\n/**\n * @deprecated 请使用 @injectToAst(XXXService) declare xxxService: XXXService 实现外部依赖注入\n */\ntype Injector = (ctx: PluginContext) => Record<string, any>;\n\nexport interface VariablePluginOptions {\n enable?: boolean;\n /**\n * Custom Extends ASTNode\n */\n extendASTNodes?: (ASTNodeRegistry | [ASTNodeRegistry] | [ASTNodeRegistry, Injector])[];\n /**\n * Layout method\n */\n layout?: 'fixed' | 'free';\n /**\n * @deprecated use chainConfig instead\n */\n layoutConfig?: VariableChainConfig;\n /**\n * Configuration for scope chain\n */\n chainConfig?: VariableChainConfig;\n}\n\nexport const createVariablePlugin = definePluginCreator<VariablePluginOptions>({\n onBind({ bind }, opts) {\n const { layout, layoutConfig, chainConfig } = opts;\n\n bind(ScopeChainTransformService).toSelf().inSingletonScope();\n\n if (layout === 'free') {\n bind(ScopeChain).to(FreeLayoutScopeChain).inSingletonScope();\n }\n if (layout === 'fixed') {\n bind(ScopeChain).to(FixedLayoutScopeChain).inSingletonScope();\n }\n if (chainConfig) {\n bind(VariableChainConfig).toConstantValue(chainConfig || {});\n } else if (layoutConfig) {\n console.warn(`Layout Config deprecated, use chainConfig instead`);\n bind(VariableChainConfig).toConstantValue(layoutConfig || {});\n }\n\n bindGlobalScope(bind);\n },\n onInit(ctx, opts) {\n const { extendASTNodes } = opts || {};\n\n const variableEngine = ctx.get<VariableEngine>(VariableEngine);\n const astRegisters = ctx.get<ASTRegisters>(ASTRegisters);\n const entityManager = ctx.get<EntityManager>(EntityManager);\n const document = ctx.get<FlowDocument>(FlowDocument);\n\n /**\n * 注册扩展 AST 节点\n */\n (extendASTNodes || []).forEach((info) => {\n if (Array.isArray(info)) {\n const [extendASTNode, injector] = info;\n\n astRegisters.registerAST(extendASTNode, injector ? () => injector(ctx) : undefined);\n\n return;\n }\n\n astRegisters.registerAST(info);\n });\n\n /**\n * 扩展 FlowNodeVariableData\n */\n entityManager.registerEntityData(FlowNodeVariableData, () => ({ variableEngine } as any));\n document.registerNodeDatas(FlowNodeVariableData);\n },\n containerModules: [VariableContainerModule],\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKA,6BAOO;AACP,2BAMO;AACP,sBAA6B;AAC7B,kBAAmD;AACnD,IAAAA,eAA8B;AA2BvB,IAAM,2BAAuB,iCAA2C;AAAA,EAC7E,OAAO,EAAE,KAAK,GAAG,MAAM;AACrB,UAAM,EAAE,QAAQ,cAAc,YAAY,IAAI;AAE9C,SAAK,iDAA0B,EAAE,OAAO,EAAE,iBAAiB;AAE3D,QAAI,WAAW,QAAQ;AACrB,WAAK,+BAAU,EAAE,GAAG,2CAAoB,EAAE,iBAAiB;AAAA,IAC7D;AACA,QAAI,WAAW,SAAS;AACtB,WAAK,+BAAU,EAAE,GAAG,4CAAqB,EAAE,iBAAiB;AAAA,IAC9D;AACA,QAAI,aAAa;AACf,WAAK,0CAAmB,EAAE,gBAAgB,eAAe,CAAC,CAAC;AAAA,IAC7D,WAAW,cAAc;AACvB,cAAQ,KAAK,mDAAmD;AAChE,WAAK,0CAAmB,EAAE,gBAAgB,gBAAgB,CAAC,CAAC;AAAA,IAC9D;AAEA,gDAAgB,IAAI;AAAA,EACtB;AAAA,EACA,OAAO,KAAK,MAAM;AAChB,UAAM,EAAE,eAAe,IAAI,QAAQ,CAAC;AAEpC,UAAM,iBAAiB,IAAI,IAAoB,mCAAc;AAC7D,UAAM,eAAe,IAAI,IAAkB,iCAAY;AACvD,UAAM,gBAAgB,IAAI,IAAmB,0BAAa;AAC1D,UAAM,WAAW,IAAI,IAAkB,4BAAY;AAKnD,KAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,SAAS;AACvC,UAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,cAAM,CAAC,eAAe,QAAQ,IAAI;AAElC,qBAAa,YAAY,eAAe,WAAW,MAAM,SAAS,GAAG,IAAI,MAAS;AAElF;AAAA,MACF;AAEA,mBAAa,YAAY,IAAI;AAAA,IAC/B,CAAC;AAKD,kBAAc,mBAAmB,6CAAsB,OAAO,EAAE,eAAe,EAAS;AACxF,aAAS,kBAAkB,2CAAoB;AAAA,EACjD;AAAA,EACA,kBAAkB,CAAC,4CAAuB;AAC5C,CAAC;;;AD9FD,0BAAc,uCANd;AAOA,IAAAC,0BASO;","names":["import_core","import_variable_layout"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowgram.ai/variable-plugin",
3
- "version": "0.1.0-alpha.2",
3
+ "version": "0.1.0-alpha.20",
4
4
  "homepage": "https://flowgram.ai/",
5
5
  "repository": "https://github.com/bytedance/flowgram.ai",
6
6
  "license": "MIT",
@@ -18,22 +18,19 @@
18
18
  "dependencies": {
19
19
  "inversify": "^6.0.1",
20
20
  "reflect-metadata": "~0.2.2",
21
- "styled-components": "^5",
22
- "@flowgram.ai/core": "0.1.0-alpha.2",
23
- "@flowgram.ai/document": "0.1.0-alpha.2",
24
- "@flowgram.ai/free-layout-core": "0.1.0-alpha.2",
25
- "@flowgram.ai/utils": "0.1.0-alpha.2",
26
- "@flowgram.ai/variable-layout": "0.1.0-alpha.2",
27
- "@flowgram.ai/variable-core": "0.1.0-alpha.2"
21
+ "@flowgram.ai/core": "0.1.0-alpha.20",
22
+ "@flowgram.ai/variable-core": "0.1.0-alpha.20",
23
+ "@flowgram.ai/variable-layout": "0.1.0-alpha.20",
24
+ "@flowgram.ai/document": "0.1.0-alpha.20"
28
25
  },
29
26
  "devDependencies": {
30
- "@vitest/coverage-v8": "^0.32.0",
27
+ "@vitest/coverage-v8": "^3.2.4",
31
28
  "eslint": "^8.54.0",
32
29
  "tsup": "^8.0.1",
33
- "typescript": "^5.0.4",
34
- "vitest": "^0.34.6",
35
- "@flowgram.ai/eslint-config": "0.1.0-alpha.2",
36
- "@flowgram.ai/ts-config": "0.1.0-alpha.2"
30
+ "typescript": "^5.8.3",
31
+ "vitest": "^3.2.4",
32
+ "@flowgram.ai/eslint-config": "0.1.0-alpha.20",
33
+ "@flowgram.ai/ts-config": "0.1.0-alpha.20"
37
34
  },
38
35
  "publishConfig": {
39
36
  "access": "public",