@flowgram.ai/redux-devtool-plugin 0.2.16 → 0.2.18

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/create-redux-devtool-plugin.ts","../../src/connectors/ecs-connector.ts","../../src/connectors/base.ts","../../src/connectors/variable-connector.ts"],"sourcesContent":["import { definePluginCreator } from '@flowgram.ai/core';\n\nimport { ECSConnector, VariableConnector } from './connectors';\n\nexport interface ReduxDevToolPluginOptions {\n enable?: boolean;\n // 需要监听的内容\n ecs?: boolean;\n variable?: boolean;\n}\n\nexport const createReduxDevToolPlugin = definePluginCreator<ReduxDevToolPluginOptions>({\n onBind({ bind }, opts) {\n const { enable } = opts;\n if (!enable) {\n return;\n }\n\n bind(ECSConnector).toSelf().inSingletonScope();\n\n bind(VariableConnector).toSelf().inSingletonScope();\n },\n onInit(ctx, opts) {\n const { enable, ecs = true, variable = false } = opts;\n if (!enable) {\n return;\n }\n\n if (ecs) {\n ctx.get(ECSConnector);\n }\n\n if (variable) {\n ctx.get(VariableConnector);\n }\n },\n});\n","import { inject, injectable } from 'inversify';\nimport { EntityManager } from '@flowgram.ai/core';\n\nimport { BaseConnector } from './base';\n\n@injectable()\nexport class ECSConnector extends BaseConnector {\n @inject(EntityManager) protected entityManager: EntityManager;\n\n getName(): string {\n return '@flowgram.ai/EntityManager';\n }\n\n getState() {\n return this.entityManager.storeState({ configOnly: false });\n }\n\n onInit() {\n this.entityManager.onEntityLifeCycleChange(action => {\n this.send(`${action.type}/${action.entity.type}/${action.entity.id}`);\n });\n }\n}\n","import { injectable, postConstruct } from 'inversify';\n\n/**\n * 参考:https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Methods.md\n */\n@injectable()\nexport abstract class BaseConnector {\n devTools;\n\n abstract getName(): string;\n\n abstract getState(): any;\n\n abstract onInit(): any;\n\n constructor() {\n this.devTools = (window as any).__REDUX_DEVTOOLS_EXTENSION__?.connect({\n name: this.getName(),\n });\n }\n\n @postConstruct()\n init() {\n if (this.devTools) {\n this.devTools.init(this.getState());\n this.devTools.subscribe((_msg: any) => {\n // COMMIT 清空数据\n if (_msg?.payload?.type === 'COMMIT') {\n this.devTools.init(this.getState());\n }\n });\n this.onInit();\n }\n }\n\n protected send(action: any, state?: any) {\n if (this.devTools) {\n this.devTools.send(action, state || this.getState());\n }\n }\n}\n","import { inject, injectable } from 'inversify';\nimport { Scope, VariableEngine } from '@flowgram.ai/variable-core';\n\nimport { BaseConnector } from './base';\n\n@injectable()\nexport class VariableConnector extends BaseConnector {\n @inject(VariableEngine) protected variableEngine: VariableEngine;\n\n /**\n * 缓存变量状态\n */\n scopes: Record<string, any> = {};\n\n getName(): string {\n return '@flowgram.ai/VariableEngine';\n }\n\n getState() {\n return { scopes: this.scopes, variables: this.variableEngine.globalVariableTable.variables };\n }\n\n getScopeState(scope: Scope) {\n return {\n ast: scope?.ast.toJSON(),\n output: scope.output.variables,\n available: scope.available.variables,\n };\n }\n\n onInit() {\n this.variableEngine.onScopeChange((action) => {\n const { scope, type } = action;\n\n if (type === 'delete') {\n delete this.scopes[String(scope.id)];\n } else {\n this.scopes = {\n ...this.scopes,\n [scope.id]: this.getScopeState(scope),\n };\n }\n\n this.send(`${type}/${String(scope.id)}`);\n });\n }\n}\n"],"mappings":"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","names":["injectable","injectable","inject","injectable","inject","injectable"]}
1
+ {"version":3,"sources":["../../src/create-redux-devtool-plugin.ts","../../src/connectors/ecs-connector.ts","../../src/connectors/base.ts","../../src/connectors/variable-connector.ts"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { definePluginCreator } from '@flowgram.ai/core';\n\nimport { ECSConnector, VariableConnector } from './connectors';\n\nexport interface ReduxDevToolPluginOptions {\n enable?: boolean;\n // 需要监听的内容\n ecs?: boolean;\n variable?: boolean;\n}\n\nexport const createReduxDevToolPlugin = definePluginCreator<ReduxDevToolPluginOptions>({\n onBind({ bind }, opts) {\n const { enable } = opts;\n if (!enable) {\n return;\n }\n\n bind(ECSConnector).toSelf().inSingletonScope();\n\n bind(VariableConnector).toSelf().inSingletonScope();\n },\n onInit(ctx, opts) {\n const { enable, ecs = true, variable = false } = opts;\n if (!enable) {\n return;\n }\n\n if (ecs) {\n ctx.get(ECSConnector);\n }\n\n if (variable) {\n ctx.get(VariableConnector);\n }\n },\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { inject, injectable } from 'inversify';\nimport { EntityManager } from '@flowgram.ai/core';\n\nimport { BaseConnector } from './base';\n\n@injectable()\nexport class ECSConnector extends BaseConnector {\n @inject(EntityManager) protected entityManager: EntityManager;\n\n getName(): string {\n return '@flowgram.ai/EntityManager';\n }\n\n getState() {\n return this.entityManager.storeState({ configOnly: false });\n }\n\n onInit() {\n this.entityManager.onEntityLifeCycleChange(action => {\n this.send(`${action.type}/${action.entity.type}/${action.entity.id}`);\n });\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { injectable, postConstruct } from 'inversify';\n\n/**\n * 参考:https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Methods.md\n */\n@injectable()\nexport abstract class BaseConnector {\n devTools;\n\n abstract getName(): string;\n\n abstract getState(): any;\n\n abstract onInit(): any;\n\n constructor() {\n this.devTools = (window as any).__REDUX_DEVTOOLS_EXTENSION__?.connect({\n name: this.getName(),\n });\n }\n\n @postConstruct()\n init() {\n if (this.devTools) {\n this.devTools.init(this.getState());\n this.devTools.subscribe((_msg: any) => {\n // COMMIT 清空数据\n if (_msg?.payload?.type === 'COMMIT') {\n this.devTools.init(this.getState());\n }\n });\n this.onInit();\n }\n }\n\n protected send(action: any, state?: any) {\n if (this.devTools) {\n this.devTools.send(action, state || this.getState());\n }\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { inject, injectable } from 'inversify';\nimport { Scope, VariableEngine } from '@flowgram.ai/variable-core';\n\nimport { BaseConnector } from './base';\n\n@injectable()\nexport class VariableConnector extends BaseConnector {\n @inject(VariableEngine) protected variableEngine: VariableEngine;\n\n /**\n * 缓存变量状态\n */\n scopes: Record<string, any> = {};\n\n getName(): string {\n return '@flowgram.ai/VariableEngine';\n }\n\n getState() {\n return { scopes: this.scopes, variables: this.variableEngine.globalVariableTable.variables };\n }\n\n getScopeState(scope: Scope) {\n return {\n ast: scope?.ast.toJSON(),\n output: scope.output.variables,\n available: scope.available.variables,\n };\n }\n\n onInit() {\n this.variableEngine.onScopeChange((action) => {\n const { scope, type } = action;\n\n if (type === 'delete') {\n delete this.scopes[String(scope.id)];\n } else {\n this.scopes = {\n ...this.scopes,\n [scope.id]: this.getScopeState(scope),\n };\n }\n\n this.send(`${type}/${String(scope.id)}`);\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;AAKA,SAAS,2BAA2B;;;ACApC,SAAS,QAAQ,cAAAA,mBAAkB;AACnC,SAAS,qBAAqB;;;ACD9B,SAAS,YAAY,qBAAqB;AAMnC,IAAe,gBAAf,MAA6B;AAAA,EASlC,cAAc;AACZ,SAAK,WAAY,OAAe,8BAA8B,QAAQ;AAAA,MACpE,MAAM,KAAK,QAAQ;AAAA,IACrB,CAAC;AAAA,EACH;AAAA,EAGA,OAAO;AACL,QAAI,KAAK,UAAU;AACjB,WAAK,SAAS,KAAK,KAAK,SAAS,CAAC;AAClC,WAAK,SAAS,UAAU,CAAC,SAAc;AAErC,YAAI,MAAM,SAAS,SAAS,UAAU;AACpC,eAAK,SAAS,KAAK,KAAK,SAAS,CAAC;AAAA,QACpC;AAAA,MACF,CAAC;AACD,WAAK,OAAO;AAAA,IACd;AAAA,EACF;AAAA,EAEU,KAAK,QAAa,OAAa;AACvC,QAAI,KAAK,UAAU;AACjB,WAAK,SAAS,KAAK,QAAQ,SAAS,KAAK,SAAS,CAAC;AAAA,IACrD;AAAA,EACF;AACF;AAlBE;AAAA,EADC,cAAc;AAAA,GAfK,cAgBpB;AAhBoB,gBAAf;AAAA,EADN,WAAW;AAAA,GACU;;;ADAf,IAAM,eAAN,cAA2B,cAAc;AAAA,EAG9C,UAAkB;AAChB,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,cAAc,WAAW,EAAE,YAAY,MAAM,CAAC;AAAA,EAC5D;AAAA,EAEA,SAAS;AACP,SAAK,cAAc,wBAAwB,YAAU;AACnD,WAAK,KAAK,GAAG,OAAO,IAAI,IAAI,OAAO,OAAO,IAAI,IAAI,OAAO,OAAO,EAAE,EAAE;AAAA,IACtE,CAAC;AAAA,EACH;AACF;AAfmC;AAAA,EAAhC,OAAO,aAAa;AAAA,GADV,aACsB;AADtB,eAAN;AAAA,EADNC,YAAW;AAAA,GACC;;;AENb,SAAS,UAAAC,SAAQ,cAAAC,mBAAkB;AACnC,SAAgB,sBAAsB;AAK/B,IAAM,oBAAN,cAAgC,cAAc;AAAA,EAA9C;AAAA;AAML;AAAA;AAAA;AAAA,kBAA8B,CAAC;AAAA;AAAA,EAE/B,UAAkB;AAChB,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,WAAO,EAAE,QAAQ,KAAK,QAAQ,WAAW,KAAK,eAAe,oBAAoB,UAAU;AAAA,EAC7F;AAAA,EAEA,cAAc,OAAc;AAC1B,WAAO;AAAA,MACL,KAAK,OAAO,IAAI,OAAO;AAAA,MACvB,QAAQ,MAAM,OAAO;AAAA,MACrB,WAAW,MAAM,UAAU;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,SAAS;AACP,SAAK,eAAe,cAAc,CAAC,WAAW;AAC5C,YAAM,EAAE,OAAO,KAAK,IAAI;AAExB,UAAI,SAAS,UAAU;AACrB,eAAO,KAAK,OAAO,OAAO,MAAM,EAAE,CAAC;AAAA,MACrC,OAAO;AACL,aAAK,SAAS;AAAA,UACZ,GAAG,KAAK;AAAA,UACR,CAAC,MAAM,EAAE,GAAG,KAAK,cAAc,KAAK;AAAA,QACtC;AAAA,MACF;AAEA,WAAK,KAAK,GAAG,IAAI,IAAI,OAAO,MAAM,EAAE,CAAC,EAAE;AAAA,IACzC,CAAC;AAAA,EACH;AACF;AAvCoC;AAAA,EAAjCC,QAAO,cAAc;AAAA,GADX,kBACuB;AADvB,oBAAN;AAAA,EADNC,YAAW;AAAA,GACC;;;AHKN,IAAM,2BAA2B,oBAA+C;AAAA,EACrF,OAAO,EAAE,KAAK,GAAG,MAAM;AACrB,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AAEA,SAAK,YAAY,EAAE,OAAO,EAAE,iBAAiB;AAE7C,SAAK,iBAAiB,EAAE,OAAO,EAAE,iBAAiB;AAAA,EACpD;AAAA,EACA,OAAO,KAAK,MAAM;AAChB,UAAM,EAAE,QAAQ,MAAM,MAAM,WAAW,MAAM,IAAI;AACjD,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AAEA,QAAI,KAAK;AACP,UAAI,IAAI,YAAY;AAAA,IACtB;AAEA,QAAI,UAAU;AACZ,UAAI,IAAI,iBAAiB;AAAA,IAC3B;AAAA,EACF;AACF,CAAC;","names":["injectable","injectable","inject","injectable","inject","injectable"]}
package/dist/index.d.mts CHANGED
@@ -1,6 +1,10 @@
1
1
  import * as _flowgram_ai_core from '@flowgram.ai/core';
2
2
  import { EntityManager } from '@flowgram.ai/core';
3
3
 
4
+ /**
5
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
6
+ * SPDX-License-Identifier: MIT
7
+ */
4
8
  interface ReduxDevToolPluginOptions {
5
9
  enable?: boolean;
6
10
  ecs?: boolean;
@@ -8,6 +12,10 @@ interface ReduxDevToolPluginOptions {
8
12
  }
9
13
  declare const createReduxDevToolPlugin: _flowgram_ai_core.PluginCreator<ReduxDevToolPluginOptions>;
10
14
 
15
+ /**
16
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
17
+ * SPDX-License-Identifier: MIT
18
+ */
11
19
  /**
12
20
  * 参考:https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Methods.md
13
21
  */
package/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  import * as _flowgram_ai_core from '@flowgram.ai/core';
2
2
  import { EntityManager } from '@flowgram.ai/core';
3
3
 
4
+ /**
5
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
6
+ * SPDX-License-Identifier: MIT
7
+ */
4
8
  interface ReduxDevToolPluginOptions {
5
9
  enable?: boolean;
6
10
  ecs?: boolean;
@@ -8,6 +12,10 @@ interface ReduxDevToolPluginOptions {
8
12
  }
9
13
  declare const createReduxDevToolPlugin: _flowgram_ai_core.PluginCreator<ReduxDevToolPluginOptions>;
10
14
 
15
+ /**
16
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
17
+ * SPDX-License-Identifier: MIT
18
+ */
11
19
  /**
12
20
  * 参考:https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Methods.md
13
21
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/create-redux-devtool-plugin.ts","../src/connectors/ecs-connector.ts","../src/connectors/base.ts","../src/connectors/variable-connector.ts"],"sourcesContent":["export * from './create-redux-devtool-plugin';\nexport * from './connectors/ecs-connector';\n","import { definePluginCreator } from '@flowgram.ai/core';\n\nimport { ECSConnector, VariableConnector } from './connectors';\n\nexport interface ReduxDevToolPluginOptions {\n enable?: boolean;\n // 需要监听的内容\n ecs?: boolean;\n variable?: boolean;\n}\n\nexport const createReduxDevToolPlugin = definePluginCreator<ReduxDevToolPluginOptions>({\n onBind({ bind }, opts) {\n const { enable } = opts;\n if (!enable) {\n return;\n }\n\n bind(ECSConnector).toSelf().inSingletonScope();\n\n bind(VariableConnector).toSelf().inSingletonScope();\n },\n onInit(ctx, opts) {\n const { enable, ecs = true, variable = false } = opts;\n if (!enable) {\n return;\n }\n\n if (ecs) {\n ctx.get(ECSConnector);\n }\n\n if (variable) {\n ctx.get(VariableConnector);\n }\n },\n});\n","import { inject, injectable } from 'inversify';\nimport { EntityManager } from '@flowgram.ai/core';\n\nimport { BaseConnector } from './base';\n\n@injectable()\nexport class ECSConnector extends BaseConnector {\n @inject(EntityManager) protected entityManager: EntityManager;\n\n getName(): string {\n return '@flowgram.ai/EntityManager';\n }\n\n getState() {\n return this.entityManager.storeState({ configOnly: false });\n }\n\n onInit() {\n this.entityManager.onEntityLifeCycleChange(action => {\n this.send(`${action.type}/${action.entity.type}/${action.entity.id}`);\n });\n }\n}\n","import { injectable, postConstruct } from 'inversify';\n\n/**\n * 参考:https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Methods.md\n */\n@injectable()\nexport abstract class BaseConnector {\n devTools;\n\n abstract getName(): string;\n\n abstract getState(): any;\n\n abstract onInit(): any;\n\n constructor() {\n this.devTools = (window as any).__REDUX_DEVTOOLS_EXTENSION__?.connect({\n name: this.getName(),\n });\n }\n\n @postConstruct()\n init() {\n if (this.devTools) {\n this.devTools.init(this.getState());\n this.devTools.subscribe((_msg: any) => {\n // COMMIT 清空数据\n if (_msg?.payload?.type === 'COMMIT') {\n this.devTools.init(this.getState());\n }\n });\n this.onInit();\n }\n }\n\n protected send(action: any, state?: any) {\n if (this.devTools) {\n this.devTools.send(action, state || this.getState());\n }\n }\n}\n","import { inject, injectable } from 'inversify';\nimport { Scope, VariableEngine } from '@flowgram.ai/variable-core';\n\nimport { BaseConnector } from './base';\n\n@injectable()\nexport class VariableConnector extends BaseConnector {\n @inject(VariableEngine) protected variableEngine: VariableEngine;\n\n /**\n * 缓存变量状态\n */\n scopes: Record<string, any> = {};\n\n getName(): string {\n return '@flowgram.ai/VariableEngine';\n }\n\n getState() {\n return { scopes: this.scopes, variables: this.variableEngine.globalVariableTable.variables };\n }\n\n getScopeState(scope: Scope) {\n return {\n ast: scope?.ast.toJSON(),\n output: scope.output.variables,\n available: scope.available.variables,\n };\n }\n\n onInit() {\n this.variableEngine.onScopeChange((action) => {\n const { scope, type } = action;\n\n if (type === 'delete') {\n delete this.scopes[String(scope.id)];\n } else {\n this.scopes = {\n ...this.scopes,\n [scope.id]: this.getScopeState(scope),\n };\n }\n\n this.send(`${type}/${String(scope.id)}`);\n });\n }\n}\n"],"mappings":"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","names":["import_core","import_inversify","import_inversify"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/create-redux-devtool-plugin.ts","../src/connectors/ecs-connector.ts","../src/connectors/base.ts","../src/connectors/variable-connector.ts"],"sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nexport * from './create-redux-devtool-plugin';\nexport * from './connectors/ecs-connector';\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { definePluginCreator } from '@flowgram.ai/core';\n\nimport { ECSConnector, VariableConnector } from './connectors';\n\nexport interface ReduxDevToolPluginOptions {\n enable?: boolean;\n // 需要监听的内容\n ecs?: boolean;\n variable?: boolean;\n}\n\nexport const createReduxDevToolPlugin = definePluginCreator<ReduxDevToolPluginOptions>({\n onBind({ bind }, opts) {\n const { enable } = opts;\n if (!enable) {\n return;\n }\n\n bind(ECSConnector).toSelf().inSingletonScope();\n\n bind(VariableConnector).toSelf().inSingletonScope();\n },\n onInit(ctx, opts) {\n const { enable, ecs = true, variable = false } = opts;\n if (!enable) {\n return;\n }\n\n if (ecs) {\n ctx.get(ECSConnector);\n }\n\n if (variable) {\n ctx.get(VariableConnector);\n }\n },\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { inject, injectable } from 'inversify';\nimport { EntityManager } from '@flowgram.ai/core';\n\nimport { BaseConnector } from './base';\n\n@injectable()\nexport class ECSConnector extends BaseConnector {\n @inject(EntityManager) protected entityManager: EntityManager;\n\n getName(): string {\n return '@flowgram.ai/EntityManager';\n }\n\n getState() {\n return this.entityManager.storeState({ configOnly: false });\n }\n\n onInit() {\n this.entityManager.onEntityLifeCycleChange(action => {\n this.send(`${action.type}/${action.entity.type}/${action.entity.id}`);\n });\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { injectable, postConstruct } from 'inversify';\n\n/**\n * 参考:https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Methods.md\n */\n@injectable()\nexport abstract class BaseConnector {\n devTools;\n\n abstract getName(): string;\n\n abstract getState(): any;\n\n abstract onInit(): any;\n\n constructor() {\n this.devTools = (window as any).__REDUX_DEVTOOLS_EXTENSION__?.connect({\n name: this.getName(),\n });\n }\n\n @postConstruct()\n init() {\n if (this.devTools) {\n this.devTools.init(this.getState());\n this.devTools.subscribe((_msg: any) => {\n // COMMIT 清空数据\n if (_msg?.payload?.type === 'COMMIT') {\n this.devTools.init(this.getState());\n }\n });\n this.onInit();\n }\n }\n\n protected send(action: any, state?: any) {\n if (this.devTools) {\n this.devTools.send(action, state || this.getState());\n }\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { inject, injectable } from 'inversify';\nimport { Scope, VariableEngine } from '@flowgram.ai/variable-core';\n\nimport { BaseConnector } from './base';\n\n@injectable()\nexport class VariableConnector extends BaseConnector {\n @inject(VariableEngine) protected variableEngine: VariableEngine;\n\n /**\n * 缓存变量状态\n */\n scopes: Record<string, any> = {};\n\n getName(): string {\n return '@flowgram.ai/VariableEngine';\n }\n\n getState() {\n return { scopes: this.scopes, variables: this.variableEngine.globalVariableTable.variables };\n }\n\n getScopeState(scope: Scope) {\n return {\n ast: scope?.ast.toJSON(),\n output: scope.output.variables,\n available: scope.available.variables,\n };\n }\n\n onInit() {\n this.variableEngine.onScopeChange((action) => {\n const { scope, type } = action;\n\n if (type === 'delete') {\n delete this.scopes[String(scope.id)];\n } else {\n this.scopes = {\n ...this.scopes,\n [scope.id]: this.getScopeState(scope),\n };\n }\n\n this.send(`${type}/${String(scope.id)}`);\n });\n }\n}\n"],"mappings":"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","names":["import_core","import_inversify","import_inversify"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowgram.ai/redux-devtool-plugin",
3
- "version": "0.2.16",
3
+ "version": "0.2.18",
4
4
  "homepage": "https://flowgram.ai/",
5
5
  "repository": "https://github.com/bytedance/flowgram.ai",
6
6
  "license": "MIT",
@@ -19,8 +19,8 @@
19
19
  "inversify": "^6.0.1",
20
20
  "reflect-metadata": "~0.2.2",
21
21
  "styled-components": "^5",
22
- "@flowgram.ai/core": "0.2.16",
23
- "@flowgram.ai/variable-core": "0.2.16"
22
+ "@flowgram.ai/core": "0.2.18",
23
+ "@flowgram.ai/variable-core": "0.2.18"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@vitest/coverage-v8": "^0.32.0",
@@ -28,8 +28,8 @@
28
28
  "tsup": "^8.0.1",
29
29
  "typescript": "^5.0.4",
30
30
  "vitest": "^0.34.6",
31
- "@flowgram.ai/eslint-config": "0.2.16",
32
- "@flowgram.ai/ts-config": "0.2.16"
31
+ "@flowgram.ai/eslint-config": "0.2.18",
32
+ "@flowgram.ai/ts-config": "0.2.18"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public",