@flowgram.ai/variable-plugin 0.1.1

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.
@@ -0,0 +1,57 @@
1
+ // src/create-variable-plugin.ts
2
+ import {
3
+ FlowNodeVariableData,
4
+ FreeLayoutScopeChain,
5
+ FixedLayoutScopeChain,
6
+ VariableLayoutConfig
7
+ } from "@flowgram.ai/variable-layout";
8
+ import {
9
+ VariableContainerModule,
10
+ ASTRegisters,
11
+ VariableEngine,
12
+ ScopeChain
13
+ } from "@flowgram.ai/variable-core";
14
+ import { FlowDocument } from "@flowgram.ai/document";
15
+ import { definePluginCreator } from "@flowgram.ai/core";
16
+ import { EntityManager } from "@flowgram.ai/core";
17
+ var createVariablePlugin = definePluginCreator({
18
+ onBind({ bind }, opts) {
19
+ const { layout, layoutConfig } = opts;
20
+ if (layout === "free") {
21
+ bind(ScopeChain).to(FreeLayoutScopeChain).inSingletonScope();
22
+ }
23
+ if (layout === "fixed") {
24
+ bind(ScopeChain).to(FixedLayoutScopeChain).inSingletonScope();
25
+ }
26
+ if (layoutConfig) {
27
+ bind(VariableLayoutConfig).toConstantValue(layoutConfig || {});
28
+ }
29
+ },
30
+ onInit(ctx, opts) {
31
+ const { extendASTNodes } = opts || {};
32
+ const variableEngine = ctx.get(VariableEngine);
33
+ const astRegisters = ctx.get(ASTRegisters);
34
+ const entityManager = ctx.get(EntityManager);
35
+ const document = ctx.get(FlowDocument);
36
+ (extendASTNodes || []).forEach((info) => {
37
+ if (Array.isArray(info)) {
38
+ const [extendASTNode, injector] = info;
39
+ astRegisters.registerAST(extendASTNode, injector ? () => injector(ctx) : void 0);
40
+ return;
41
+ }
42
+ astRegisters.registerAST(info);
43
+ });
44
+ entityManager.registerEntityData(FlowNodeVariableData, () => ({ variableEngine }));
45
+ document.registerNodeDatas(FlowNodeVariableData);
46
+ },
47
+ containerModules: [VariableContainerModule]
48
+ });
49
+
50
+ // src/index.ts
51
+ export * from "@flowgram.ai/variable-core";
52
+ import { FlowNodeVariableData as FlowNodeVariableData2 } from "@flowgram.ai/variable-layout";
53
+ export {
54
+ FlowNodeVariableData2 as FlowNodeVariableData,
55
+ createVariablePlugin
56
+ };
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,20 @@
1
+ import * as _flowgram_ai_core from '@flowgram.ai/core';
2
+ import { PluginContext } from '@flowgram.ai/core';
3
+ import { VariableLayoutConfig } from '@flowgram.ai/variable-layout';
4
+ export { FlowNodeVariableData } from '@flowgram.ai/variable-layout';
5
+ import { ASTNodeRegistry } from '@flowgram.ai/variable-core';
6
+ export * from '@flowgram.ai/variable-core';
7
+
8
+ /**
9
+ * @deprecated 请使用 @injectToAst(XXXService) declare xxxService: XXXService 实现外部依赖注入
10
+ */
11
+ type Injector = (ctx: PluginContext) => Record<string, any>;
12
+ interface VariablePluginOptions {
13
+ enable?: boolean;
14
+ extendASTNodes?: (ASTNodeRegistry | [ASTNodeRegistry] | [ASTNodeRegistry, Injector])[];
15
+ layout?: 'fixed' | 'free';
16
+ layoutConfig?: VariableLayoutConfig;
17
+ }
18
+ declare const createVariablePlugin: _flowgram_ai_core.PluginCreator<VariablePluginOptions>;
19
+
20
+ export { type VariablePluginOptions, createVariablePlugin };
@@ -0,0 +1,20 @@
1
+ import * as _flowgram_ai_core from '@flowgram.ai/core';
2
+ import { PluginContext } from '@flowgram.ai/core';
3
+ import { VariableLayoutConfig } from '@flowgram.ai/variable-layout';
4
+ export { FlowNodeVariableData } from '@flowgram.ai/variable-layout';
5
+ import { ASTNodeRegistry } from '@flowgram.ai/variable-core';
6
+ export * from '@flowgram.ai/variable-core';
7
+
8
+ /**
9
+ * @deprecated 请使用 @injectToAst(XXXService) declare xxxService: XXXService 实现外部依赖注入
10
+ */
11
+ type Injector = (ctx: PluginContext) => Record<string, any>;
12
+ interface VariablePluginOptions {
13
+ enable?: boolean;
14
+ extendASTNodes?: (ASTNodeRegistry | [ASTNodeRegistry] | [ASTNodeRegistry, Injector])[];
15
+ layout?: 'fixed' | 'free';
16
+ layoutConfig?: VariableLayoutConfig;
17
+ }
18
+ declare const createVariablePlugin: _flowgram_ai_core.PluginCreator<VariablePluginOptions>;
19
+
20
+ export { type VariablePluginOptions, createVariablePlugin };
package/dist/index.js ADDED
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/index.ts
22
+ var src_exports = {};
23
+ __export(src_exports, {
24
+ FlowNodeVariableData: () => import_variable_layout2.FlowNodeVariableData,
25
+ createVariablePlugin: () => createVariablePlugin
26
+ });
27
+ module.exports = __toCommonJS(src_exports);
28
+
29
+ // src/create-variable-plugin.ts
30
+ var import_variable_layout = require("@flowgram.ai/variable-layout");
31
+ var import_variable_core = require("@flowgram.ai/variable-core");
32
+ var import_document = require("@flowgram.ai/document");
33
+ var import_core = require("@flowgram.ai/core");
34
+ var import_core2 = require("@flowgram.ai/core");
35
+ var createVariablePlugin = (0, import_core.definePluginCreator)({
36
+ onBind({ bind }, opts) {
37
+ const { layout, layoutConfig } = opts;
38
+ if (layout === "free") {
39
+ bind(import_variable_core.ScopeChain).to(import_variable_layout.FreeLayoutScopeChain).inSingletonScope();
40
+ }
41
+ if (layout === "fixed") {
42
+ bind(import_variable_core.ScopeChain).to(import_variable_layout.FixedLayoutScopeChain).inSingletonScope();
43
+ }
44
+ if (layoutConfig) {
45
+ bind(import_variable_layout.VariableLayoutConfig).toConstantValue(layoutConfig || {});
46
+ }
47
+ },
48
+ onInit(ctx, opts) {
49
+ const { extendASTNodes } = opts || {};
50
+ const variableEngine = ctx.get(import_variable_core.VariableEngine);
51
+ const astRegisters = ctx.get(import_variable_core.ASTRegisters);
52
+ const entityManager = ctx.get(import_core2.EntityManager);
53
+ const document = ctx.get(import_document.FlowDocument);
54
+ (extendASTNodes || []).forEach((info) => {
55
+ if (Array.isArray(info)) {
56
+ const [extendASTNode, injector] = info;
57
+ astRegisters.registerAST(extendASTNode, injector ? () => injector(ctx) : void 0);
58
+ return;
59
+ }
60
+ astRegisters.registerAST(info);
61
+ });
62
+ entityManager.registerEntityData(import_variable_layout.FlowNodeVariableData, () => ({ variableEngine }));
63
+ document.registerNodeDatas(import_variable_layout.FlowNodeVariableData);
64
+ },
65
+ containerModules: [import_variable_core.VariableContainerModule]
66
+ });
67
+
68
+ // src/index.ts
69
+ __reExport(src_exports, require("@flowgram.ai/variable-core"), module.exports);
70
+ var import_variable_layout2 = require("@flowgram.ai/variable-layout");
71
+ // Annotate the CommonJS export names for ESM import in node:
72
+ 0 && (module.exports = {
73
+ FlowNodeVariableData,
74
+ createVariablePlugin,
75
+ ...require("@flowgram.ai/variable-core")
76
+ });
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"]}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@flowgram.ai/variable-plugin",
3
+ "version": "0.1.1",
4
+ "license": "MIT",
5
+ "exports": {
6
+ "types": "./dist/index.d.ts",
7
+ "import": "./dist/esm/index.js",
8
+ "require": "./dist/index.js"
9
+ },
10
+ "main": "./dist/index.js",
11
+ "module": "./dist/esm/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "dependencies": {
17
+ "inversify": "^6.0.1",
18
+ "styled-components": "^5",
19
+ "@flowgram.ai/core": "0.1.1",
20
+ "@flowgram.ai/document": "0.1.1",
21
+ "@flowgram.ai/free-layout-core": "0.1.1",
22
+ "@flowgram.ai/utils": "0.1.1",
23
+ "@flowgram.ai/variable-core": "0.1.1",
24
+ "@flowgram.ai/variable-layout": "0.1.1"
25
+ },
26
+ "devDependencies": {
27
+ "@vitest/coverage-v8": "^0.32.0",
28
+ "eslint": "^8.54.0",
29
+ "tsup": "^8.0.1",
30
+ "typescript": "^5.0.4",
31
+ "vitest": "^0.34.6",
32
+ "@flowgram.ai/eslint-config": "0.1.1",
33
+ "@flowgram.ai/ts-config": "0.1.1"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public",
37
+ "registry": "https://registry.npmjs.org/"
38
+ },
39
+ "scripts": {
40
+ "build": "npm run build:fast -- --dts-resolve",
41
+ "build:fast": "tsup src/index.ts --format cjs,esm --sourcemap --legacy-output",
42
+ "build:watch": "npm run build:fast -- --dts-resolve",
43
+ "clean": "rimraf dist",
44
+ "test": "exit 0",
45
+ "test:cov": "exit 0",
46
+ "ts-check": "tsc --noEmit",
47
+ "watch": "npm run build:fast -- --dts-resolve --watch --ignore-watch dist"
48
+ }
49
+ }