This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { Container } from 'inversify';
|
||||
import {
|
||||
ASTFactory,
|
||||
ScopeChain,
|
||||
VariableContainerModule,
|
||||
} from '@flowgram.ai/variable-core';
|
||||
import { createPlaygroundContainer } from '@flowgram.ai/core';
|
||||
import {
|
||||
FreeLayoutScopeChain,
|
||||
FixedLayoutScopeChain,
|
||||
FlowNodeVariableData,
|
||||
VariableChainConfig,
|
||||
GlobalScope,
|
||||
bindGlobalScope,
|
||||
ScopeChainTransformService,
|
||||
} from '../src';
|
||||
import { EntityManager } from '@flowgram.ai/core';
|
||||
import { VariableEngine } from '@flowgram.ai/variable-core';
|
||||
import {
|
||||
FlowDocument,
|
||||
FlowDocumentContainerModule,
|
||||
} from '@flowgram.ai/document';
|
||||
import { WorkflowDocumentContainerModule } from '@flowgram.ai/free-layout-core';
|
||||
|
||||
export interface TestConfig extends VariableChainConfig {
|
||||
enableGlobalScope?: boolean;
|
||||
onInit?: (container: Container) => void;
|
||||
runExtraTest?: (container: Container) => void
|
||||
}
|
||||
|
||||
export function getContainer(layout: 'free' | 'fixed', config?: TestConfig): Container {
|
||||
const { enableGlobalScope, onInit, runExtraTest, ...layoutConfig } = config || {};
|
||||
|
||||
const container = createPlaygroundContainer() as Container;
|
||||
container.load(VariableContainerModule);
|
||||
container.load(FlowDocumentContainerModule);
|
||||
|
||||
if (layout === 'free') {
|
||||
container.load(WorkflowDocumentContainerModule);
|
||||
// container.get(WorkflowLinesManager).registerContribution(WorkflowSimpleLineContribution);
|
||||
//container.get(WorkflowLinesManager).switchLineType(WorkflowSimpleLineContribution.type);
|
||||
}
|
||||
|
||||
if (layoutConfig) {
|
||||
container.bind(VariableChainConfig).toConstantValue(layoutConfig);
|
||||
}
|
||||
if (layout === 'free') {
|
||||
container.bind(ScopeChain).to(FreeLayoutScopeChain).inSingletonScope();
|
||||
}
|
||||
if (layout === 'fixed') {
|
||||
container.bind(ScopeChain).to(FixedLayoutScopeChain).inSingletonScope();
|
||||
}
|
||||
|
||||
container.bind(ScopeChainTransformService).toSelf().inSingletonScope();
|
||||
|
||||
bindGlobalScope(container.bind.bind(container))
|
||||
|
||||
const entityManager = container.get<EntityManager>(EntityManager);
|
||||
const variableEngine = container.get<VariableEngine>(VariableEngine);
|
||||
const document = container.get<FlowDocument>(FlowDocument);
|
||||
|
||||
if (enableGlobalScope) {
|
||||
// when get global scope, it will auto create it if not exists
|
||||
container.get(GlobalScope).setVar(ASTFactory.createVariableDeclaration({
|
||||
key: 'GlobalScope',
|
||||
type: ASTFactory.createString(),
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
* 扩展 FlowNodeVariableData
|
||||
*/
|
||||
entityManager.registerEntityData(
|
||||
FlowNodeVariableData,
|
||||
() => ({ variableEngine } as any),
|
||||
);
|
||||
document.registerNodeDatas(FlowNodeVariableData);
|
||||
|
||||
onInit?.(container);
|
||||
|
||||
return container;
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { FlowDocumentJSON } from '@flowgram.ai/document';
|
||||
|
||||
export const fixLayout1: FlowDocumentJSON = {
|
||||
nodes: [
|
||||
{
|
||||
type: 'start',
|
||||
meta: {
|
||||
isStart: true,
|
||||
},
|
||||
id: 'start',
|
||||
},
|
||||
{
|
||||
type: 'getRecords',
|
||||
id: 'getRecords_07e97c55832',
|
||||
},
|
||||
{
|
||||
type: 'loop',
|
||||
id: 'forEach_260a8f85ff2',
|
||||
blocks: [
|
||||
{
|
||||
type: 'createRecord',
|
||||
id: 'createRecord_8f85ff2c11d',
|
||||
},
|
||||
{
|
||||
type: 'dynamicSplit',
|
||||
id: 'exclusiveSplit_ff2c11d0fb4',
|
||||
blocks: [
|
||||
{
|
||||
id: 'branch_f2c11d0fb42',
|
||||
},
|
||||
{
|
||||
id: 'branch_2c11d0fb42c',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'dynamicSplit',
|
||||
id: 'exclusiveSplit_88dbf2c60ae',
|
||||
meta: {
|
||||
defaultExpanded: true,
|
||||
},
|
||||
blocks: [
|
||||
{
|
||||
id: 'branch_8dbf2c60aee',
|
||||
blocks: [
|
||||
{
|
||||
type: 'dynamicSplit',
|
||||
id: 'exclusiveSplit_a59afaadc9a',
|
||||
blocks: [
|
||||
{
|
||||
id: 'branch_59afaadc9ac',
|
||||
},
|
||||
{
|
||||
id: 'branch_9afaadc9acd',
|
||||
blocks: [
|
||||
{
|
||||
type: 'deleteRecords',
|
||||
id: 'deleteRecords_c32807e97c5',
|
||||
},
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'branch_dbf2c60aee4',
|
||||
blocks: [
|
||||
{
|
||||
type: 'updateRecords',
|
||||
id: 'updateRecords_7ed2a172c32',
|
||||
},
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'end',
|
||||
id: 'end',
|
||||
},
|
||||
],
|
||||
};
|
||||
@@ -0,0 +1,154 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { WorkflowJSON } from "@flowgram.ai/free-layout-core";
|
||||
|
||||
export const freeLayout1: WorkflowJSON = {
|
||||
"nodes": [
|
||||
{
|
||||
"id": "start_0",
|
||||
"type": "start",
|
||||
"meta": {
|
||||
"position": {
|
||||
"x": -264,
|
||||
"y": -79
|
||||
}
|
||||
},
|
||||
"data": {}
|
||||
},
|
||||
{
|
||||
"id": "end_0",
|
||||
"type": "end",
|
||||
"meta": {
|
||||
"position": {
|
||||
"x": 1515,
|
||||
"y": -191
|
||||
}
|
||||
},
|
||||
"data": {}
|
||||
},
|
||||
{
|
||||
"id": "base_1",
|
||||
"type": "base",
|
||||
"meta": {
|
||||
"position": {
|
||||
"x": 103.5,
|
||||
"y": -122.5
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "base_2",
|
||||
"type": "base",
|
||||
"meta": {
|
||||
"position": {
|
||||
"x": 525.5,
|
||||
"y": -250.5
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "loop_1",
|
||||
"type": "loop",
|
||||
"meta": {
|
||||
"position": {
|
||||
"x": 541.5,
|
||||
"y": 42.5
|
||||
},
|
||||
"canvasPosition": {
|
||||
"x": 1154.5,
|
||||
"y": 206.5
|
||||
}
|
||||
},
|
||||
"data": {
|
||||
"target": {
|
||||
"meta": {
|
||||
"name": "循环输出_"
|
||||
},
|
||||
"type": "Boolean"
|
||||
}
|
||||
},
|
||||
"blocks": [
|
||||
{
|
||||
"id": "base_in_loop_1",
|
||||
"type": "base",
|
||||
"meta": {
|
||||
"position": {
|
||||
"x": 40,
|
||||
"y": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "base_in_loop_2",
|
||||
"type": "base",
|
||||
"meta": {
|
||||
"position": {
|
||||
"x": 62,
|
||||
"y": 299
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "base_in_loop_3",
|
||||
"type": "base",
|
||||
"meta": {
|
||||
"position": {
|
||||
"x": 457,
|
||||
"y": 188
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"sourceNodeID": "base_in_loop_1",
|
||||
"targetNodeID": "base_in_loop_3"
|
||||
},
|
||||
{
|
||||
"sourceNodeID": "base_in_loop_2",
|
||||
"targetNodeID": "base_in_loop_3"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "base_3",
|
||||
"type": "base",
|
||||
"meta": {
|
||||
"position": {
|
||||
"x": 1063.5,
|
||||
"y": -52.987060546875
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"sourceNodeID": "base_2",
|
||||
"targetNodeID": "end_0"
|
||||
},
|
||||
{
|
||||
"sourceNodeID": "base_3",
|
||||
"targetNodeID": "end_0"
|
||||
},
|
||||
{
|
||||
"sourceNodeID": "start_0",
|
||||
"targetNodeID": "base_1"
|
||||
},
|
||||
{
|
||||
"sourceNodeID": "base_1",
|
||||
"targetNodeID": "base_2"
|
||||
},
|
||||
{
|
||||
"sourceNodeID": "base_1",
|
||||
"targetNodeID": "loop_1"
|
||||
},
|
||||
{
|
||||
"sourceNodeID": "loop_1",
|
||||
"targetNodeID": "base_3",
|
||||
"sourcePortID": "loop-output"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { describe, expect, test } from 'vitest';
|
||||
import { VariableEngine } from '@flowgram.ai/variable-core';
|
||||
import { ASTKind } from '@flowgram.ai/variable-core';
|
||||
import { FlowDocument, FlowDocumentJSON } from '@flowgram.ai/document';
|
||||
import {
|
||||
FlowNodeVariableData,
|
||||
} from '../src';
|
||||
import { TestConfig, getContainer } from './container'
|
||||
|
||||
export const runFixedLayoutTest = (testName:string, spec: FlowDocumentJSON, config?: TestConfig) => {
|
||||
describe(testName, () => {
|
||||
const container = getContainer('fixed', config);
|
||||
const flowDocument = container.get(FlowDocument);
|
||||
const variableEngine = container.get(VariableEngine);
|
||||
|
||||
variableEngine.onScopeChange(action => {
|
||||
const { type, scope } = action;
|
||||
|
||||
// 作用域默认创建一个默认变量
|
||||
if (type === 'add') {
|
||||
scope.ast.set('/', {
|
||||
kind: ASTKind.VariableDeclaration,
|
||||
type: ASTKind.String,
|
||||
key: String(scope.id),
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 创建一个测试作用域
|
||||
variableEngine.createScope('testScope');
|
||||
|
||||
const traverseVariableDatas = () =>
|
||||
flowDocument
|
||||
.getAllNodes()
|
||||
// TODO 包含 $ 的节点不注册 variableData
|
||||
.filter(_node => !_node.id.startsWith('$'))
|
||||
.map(_node => _node.getData(FlowNodeVariableData))
|
||||
.filter(Boolean);
|
||||
|
||||
// 初始化所有节点的私有作用域
|
||||
const initAllNodePrivate = () => {
|
||||
traverseVariableDatas().forEach(_data => {
|
||||
_data.initPrivate();
|
||||
});
|
||||
};
|
||||
|
||||
// 初始化所有节点的可用变量
|
||||
const printAllNodeAvailableMapping = (_scopeType: 'public' | 'private' = 'public') =>
|
||||
traverseVariableDatas().reduce((acm, _data) => {
|
||||
const scope = _data[_scopeType]!;
|
||||
acm.set(String(scope.id), scope.available.variableKeys);
|
||||
|
||||
return acm;
|
||||
}, new Map<string, string[]>());
|
||||
|
||||
// 初始化所有节点的覆盖作用域
|
||||
const printAllCovers = (_scopeType: 'public' | 'private' = 'public') =>
|
||||
traverseVariableDatas().reduce((acm, _data) => {
|
||||
const scope = _data[_scopeType]!;
|
||||
acm.set(
|
||||
String(scope.id),
|
||||
scope.coverScopes.map(_scope => String(_scope.id)),
|
||||
);
|
||||
|
||||
return acm;
|
||||
}, new Map<string, string[]>());
|
||||
|
||||
flowDocument.fromJSON(spec);
|
||||
|
||||
test('test get Deps', () => {
|
||||
expect(printAllNodeAvailableMapping()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get Covers', () => {
|
||||
expect(printAllCovers()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get Deps After Init Private', () => {
|
||||
initAllNodePrivate();
|
||||
expect(printAllNodeAvailableMapping()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get private scope Deps', () => {
|
||||
expect(printAllNodeAvailableMapping('private')).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get Covers After Init Private', () => {
|
||||
expect(printAllCovers()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get private scope Covers', () => {
|
||||
expect(printAllCovers('private')).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test sort', () => {
|
||||
expect(variableEngine.getAllScopes({ sort: true }).map(_scope => _scope.id)).toMatchSnapshot();
|
||||
});
|
||||
|
||||
config?.runExtraTest?.(container);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { describe, expect, test } from 'vitest';
|
||||
import { VariableEngine } from '@flowgram.ai/variable-core';
|
||||
import { ASTKind } from '@flowgram.ai/variable-core';
|
||||
import {
|
||||
FlowNodeVariableData
|
||||
} from '../src';
|
||||
import { TestConfig, getContainer } from './container';
|
||||
import { WorkflowDocument, WorkflowJSON } from '@flowgram.ai/free-layout-core';
|
||||
|
||||
export const runFreeLayoutTest = (testName: string, spec: WorkflowJSON, config?: TestConfig) => {
|
||||
describe(testName, async () => {
|
||||
const container = getContainer('free', config);
|
||||
const flowDocument = container.get(WorkflowDocument);
|
||||
const variableEngine = container.get(VariableEngine);
|
||||
|
||||
variableEngine.onScopeChange(action => {
|
||||
const { type, scope } = action;
|
||||
|
||||
// 作用域默认创建一个默认变量
|
||||
if (type === 'add') {
|
||||
scope.ast.set('/', {
|
||||
kind: ASTKind.VariableDeclaration,
|
||||
type: ASTKind.String,
|
||||
key: String(scope.id),
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 创建一个全局作用域
|
||||
variableEngine.createScope('testScope');
|
||||
|
||||
const traverseVariableDatas = () =>
|
||||
flowDocument
|
||||
.getAllNodes()
|
||||
// TODO 包含 $ 的节点不注册 variableData
|
||||
.filter(_node => !_node.id.startsWith('$'))
|
||||
.map(_node => _node.getData(FlowNodeVariableData))
|
||||
.filter(Boolean);
|
||||
|
||||
// 初始化所有节点的私有作用域
|
||||
const initAllNodePrivate = () => {
|
||||
traverseVariableDatas().forEach(_data => {
|
||||
_data.initPrivate();
|
||||
});
|
||||
};
|
||||
|
||||
// 初始化所有节点的可用变量
|
||||
const printAllNodeAvailableMapping = (_scopeType: 'public' | 'private' = 'public') =>
|
||||
traverseVariableDatas().reduce((acm, _data) => {
|
||||
const scope = _data[_scopeType]!;
|
||||
acm.set(String(scope.id), scope.available.variableKeys);
|
||||
|
||||
return acm;
|
||||
}, new Map<string, string[]>());
|
||||
|
||||
// 初始化所有节点的覆盖作用域
|
||||
const printAllCovers = (_scopeType: 'public' | 'private' = 'public') =>
|
||||
traverseVariableDatas().reduce((acm, _data) => {
|
||||
const scope = _data[_scopeType]!;
|
||||
acm.set(
|
||||
String(scope.id),
|
||||
scope.coverScopes.map(_scope => String(_scope.id)),
|
||||
);
|
||||
|
||||
return acm;
|
||||
}, new Map<string, string[]>());
|
||||
|
||||
await flowDocument.fromJSON(spec);
|
||||
|
||||
test('test get Deps', () => {
|
||||
expect(printAllNodeAvailableMapping()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get Covers', () => {
|
||||
expect(printAllCovers()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get Deps After Init Private', () => {
|
||||
initAllNodePrivate();
|
||||
expect(printAllNodeAvailableMapping()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get private scope Deps', () => {
|
||||
expect(printAllNodeAvailableMapping('private')).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get Covers After Init Private', () => {
|
||||
expect(printAllCovers()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test get private scope Covers', () => {
|
||||
expect(printAllCovers('private')).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('test sort', () => {
|
||||
expect(variableEngine.getAllScopes({ sort: true }).map(_scope => _scope.id)).toMatchSnapshot();
|
||||
});
|
||||
|
||||
config?.runExtraTest?.(container);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
+774
@@ -0,0 +1,774 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Fix Layout Enable Global Scope > test get Covers 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"end",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [],
|
||||
"branch_59afaadc9ac" => [
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
],
|
||||
"branch_9afaadc9acd" => [],
|
||||
"deleteRecords_c32807e97c5" => [],
|
||||
"branch_dbf2c60aee4" => [],
|
||||
"updateRecords_7ed2a172c32" => [],
|
||||
"end" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Enable Global Scope > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"getRecords_07e97c55832",
|
||||
"getRecords_07e97c55832_private",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [],
|
||||
"branch_59afaadc9ac" => [
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_9afaadc9acd" => [],
|
||||
"deleteRecords_c32807e97c5" => [],
|
||||
"branch_dbf2c60aee4" => [],
|
||||
"updateRecords_7ed2a172c32" => [],
|
||||
"end" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Enable Global Scope > test get Deps 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"GlobalScope",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4",
|
||||
],
|
||||
"end" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Enable Global Scope > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"GlobalScope",
|
||||
"start_private",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832_private",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42_private",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac_private",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd_private",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4_private",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"end" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"end_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Enable Global Scope > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_private" => [
|
||||
"start",
|
||||
],
|
||||
"getRecords_07e97c55832_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"forEach_260a8f85ff2_private" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d_private" => [
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4_private" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"branch_f2c11d0fb42_private" => [
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"branch_2c11d0fb42c_private" => [
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae_private" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"branch_8dbf2c60aee_private" => [
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a_private" => [
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_59afaadc9ac_private" => [
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"branch_9afaadc9acd_private" => [
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"deleteRecords_c32807e97c5_private" => [
|
||||
"deleteRecords_c32807e97c5",
|
||||
],
|
||||
"branch_dbf2c60aee4_private" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"updateRecords_7ed2a172c32_private" => [
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"end_private" => [
|
||||
"end",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Enable Global Scope > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_private" => [
|
||||
"GlobalScope",
|
||||
],
|
||||
"getRecords_07e97c55832_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
],
|
||||
"forEach_260a8f85ff2_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"createRecord_8f85ff2c11d_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"branch_f2c11d0fb42_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
],
|
||||
"branch_2c11d0fb42c_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"branch_8dbf2c60aee_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
],
|
||||
"branch_59afaadc9ac_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
],
|
||||
"branch_9afaadc9acd_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"deleteRecords_c32807e97c5_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
],
|
||||
"branch_dbf2c60aee4_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"updateRecords_7ed2a172c32_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
],
|
||||
"end_private" => [
|
||||
"GlobalScope",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Enable Global Scope > test sort 1`] = `
|
||||
[
|
||||
Symbol(GlobalScope),
|
||||
"start_private",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"getRecords_07e97c55832_private",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
"testScope",
|
||||
"$blockIcon$exclusiveSplit_ff2c11d0fb4",
|
||||
"$inlineBlocks$exclusiveSplit_ff2c11d0fb4",
|
||||
"$blockOrderIcon$branch_f2c11d0fb42",
|
||||
"$blockOrderIcon$branch_2c11d0fb42c",
|
||||
"$blockIcon$exclusiveSplit_88dbf2c60ae",
|
||||
"$inlineBlocks$exclusiveSplit_88dbf2c60ae",
|
||||
"$blockOrderIcon$branch_8dbf2c60aee",
|
||||
"$blockIcon$exclusiveSplit_a59afaadc9a",
|
||||
"$inlineBlocks$exclusiveSplit_a59afaadc9a",
|
||||
"$blockOrderIcon$branch_59afaadc9ac",
|
||||
"$blockOrderIcon$branch_9afaadc9acd",
|
||||
"$blockOrderIcon$branch_dbf2c60aee4",
|
||||
]
|
||||
`;
|
||||
+658
@@ -0,0 +1,658 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Fix Layout Filter Start End > test get Covers 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [],
|
||||
"exclusiveSplit_88dbf2c60ae" => [],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [],
|
||||
"branch_59afaadc9ac" => [
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
],
|
||||
"branch_9afaadc9acd" => [],
|
||||
"deleteRecords_c32807e97c5" => [],
|
||||
"branch_dbf2c60aee4" => [],
|
||||
"updateRecords_7ed2a172c32" => [],
|
||||
"end" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Filter Start End > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"getRecords_07e97c55832",
|
||||
"getRecords_07e97c55832_private",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [],
|
||||
"exclusiveSplit_88dbf2c60ae" => [],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [],
|
||||
"branch_59afaadc9ac" => [
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_9afaadc9acd" => [],
|
||||
"deleteRecords_c32807e97c5" => [],
|
||||
"branch_dbf2c60aee4" => [],
|
||||
"updateRecords_7ed2a172c32" => [],
|
||||
"end" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Filter Start End > test get Deps 1`] = `
|
||||
Map {
|
||||
"start" => [],
|
||||
"getRecords_07e97c55832" => [],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4",
|
||||
],
|
||||
"end" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Filter Start End > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start" => [],
|
||||
"getRecords_07e97c55832" => [
|
||||
"getRecords_07e97c55832_private",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42_private",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac_private",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd_private",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4_private",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"end" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"end_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Filter Start End > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_private" => [
|
||||
"start",
|
||||
],
|
||||
"getRecords_07e97c55832_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"forEach_260a8f85ff2_private" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d_private" => [
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4_private" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"branch_f2c11d0fb42_private" => [
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"branch_2c11d0fb42c_private" => [
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae_private" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"branch_8dbf2c60aee_private" => [
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a_private" => [
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_59afaadc9ac_private" => [
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"branch_9afaadc9acd_private" => [
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"deleteRecords_c32807e97c5_private" => [
|
||||
"deleteRecords_c32807e97c5",
|
||||
],
|
||||
"branch_dbf2c60aee4_private" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"updateRecords_7ed2a172c32_private" => [
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"end_private" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Filter Start End > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_private" => [],
|
||||
"getRecords_07e97c55832_private" => [],
|
||||
"forEach_260a8f85ff2_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"createRecord_8f85ff2c11d_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"branch_f2c11d0fb42_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
],
|
||||
"branch_2c11d0fb42c_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"branch_8dbf2c60aee_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
],
|
||||
"branch_59afaadc9ac_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
],
|
||||
"branch_9afaadc9acd_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"deleteRecords_c32807e97c5_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
],
|
||||
"branch_dbf2c60aee4_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"updateRecords_7ed2a172c32_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
],
|
||||
"end_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Filter Start End > test sort 1`] = `
|
||||
[
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"getRecords_07e97c55832_private",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"testScope",
|
||||
"$blockIcon$exclusiveSplit_ff2c11d0fb4",
|
||||
"$inlineBlocks$exclusiveSplit_ff2c11d0fb4",
|
||||
"$blockOrderIcon$branch_f2c11d0fb42",
|
||||
"$blockOrderIcon$branch_2c11d0fb42c",
|
||||
"$blockIcon$exclusiveSplit_88dbf2c60ae",
|
||||
"$inlineBlocks$exclusiveSplit_88dbf2c60ae",
|
||||
"$blockOrderIcon$branch_8dbf2c60aee",
|
||||
"$blockIcon$exclusiveSplit_a59afaadc9a",
|
||||
"$inlineBlocks$exclusiveSplit_a59afaadc9a",
|
||||
"$blockOrderIcon$branch_59afaadc9ac",
|
||||
"$blockOrderIcon$branch_9afaadc9acd",
|
||||
"$blockOrderIcon$branch_dbf2c60aee4",
|
||||
"end",
|
||||
"start_private",
|
||||
"end_private",
|
||||
]
|
||||
`;
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Fix Layout Group > test get Covers 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"node_0",
|
||||
"node_1",
|
||||
"end_0",
|
||||
],
|
||||
"node_0" => [
|
||||
"node_1",
|
||||
"end_0",
|
||||
],
|
||||
"node_1" => [
|
||||
"end_0",
|
||||
],
|
||||
"end_0" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Group > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"node_0",
|
||||
"node_0_private",
|
||||
"node_1",
|
||||
"node_1_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"node_0" => [
|
||||
"node_1",
|
||||
"node_1_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"node_1" => [
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"end_0" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Group > test get Deps 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"node_0" => [
|
||||
"start_0",
|
||||
],
|
||||
"node_1" => [
|
||||
"start_0",
|
||||
"node_0",
|
||||
],
|
||||
"end_0" => [
|
||||
"start_0",
|
||||
"node_0",
|
||||
"node_1",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Group > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"start_0_private",
|
||||
],
|
||||
"node_0" => [
|
||||
"start_0",
|
||||
"node_0_private",
|
||||
],
|
||||
"node_1" => [
|
||||
"start_0",
|
||||
"node_0",
|
||||
"node_1_private",
|
||||
],
|
||||
"end_0" => [
|
||||
"start_0",
|
||||
"node_0",
|
||||
"node_1",
|
||||
"end_0_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Group > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [
|
||||
"start_0",
|
||||
],
|
||||
"node_0_private" => [
|
||||
"node_0",
|
||||
],
|
||||
"node_1_private" => [
|
||||
"node_1",
|
||||
],
|
||||
"end_0_private" => [
|
||||
"end_0",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Group > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [],
|
||||
"node_0_private" => [
|
||||
"start_0",
|
||||
],
|
||||
"node_1_private" => [
|
||||
"start_0",
|
||||
"node_0",
|
||||
],
|
||||
"end_0_private" => [
|
||||
"start_0",
|
||||
"node_0",
|
||||
"node_1",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Group > test sort 1`] = `
|
||||
[
|
||||
"start_0_private",
|
||||
"start_0",
|
||||
"node_0",
|
||||
"node_0_private",
|
||||
"node_1",
|
||||
"node_1_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
"testScope",
|
||||
"$group_test$",
|
||||
]
|
||||
`;
|
||||
+723
@@ -0,0 +1,723 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Fix Layout Without Config > test get Covers 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"end",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [],
|
||||
"branch_59afaadc9ac" => [
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
],
|
||||
"branch_9afaadc9acd" => [],
|
||||
"deleteRecords_c32807e97c5" => [],
|
||||
"branch_dbf2c60aee4" => [],
|
||||
"updateRecords_7ed2a172c32" => [],
|
||||
"end" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Without Config > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"getRecords_07e97c55832",
|
||||
"getRecords_07e97c55832_private",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [],
|
||||
"branch_59afaadc9ac" => [
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_9afaadc9acd" => [],
|
||||
"deleteRecords_c32807e97c5" => [],
|
||||
"branch_dbf2c60aee4" => [],
|
||||
"updateRecords_7ed2a172c32" => [],
|
||||
"end" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Without Config > test get Deps 1`] = `
|
||||
Map {
|
||||
"start" => [],
|
||||
"getRecords_07e97c55832" => [
|
||||
"start",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4",
|
||||
],
|
||||
"end" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Without Config > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"start_private",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832_private",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42_private",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac_private",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd_private",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4_private",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"end" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"end_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Without Config > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_private" => [
|
||||
"start",
|
||||
],
|
||||
"getRecords_07e97c55832_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"forEach_260a8f85ff2_private" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d_private" => [
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4_private" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"branch_f2c11d0fb42_private" => [
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"branch_2c11d0fb42c_private" => [
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae_private" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"branch_8dbf2c60aee_private" => [
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a_private" => [
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_59afaadc9ac_private" => [
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"branch_9afaadc9acd_private" => [
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"deleteRecords_c32807e97c5_private" => [
|
||||
"deleteRecords_c32807e97c5",
|
||||
],
|
||||
"branch_dbf2c60aee4_private" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"updateRecords_7ed2a172c32_private" => [
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"end_private" => [
|
||||
"end",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Without Config > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_private" => [],
|
||||
"getRecords_07e97c55832_private" => [
|
||||
"start",
|
||||
],
|
||||
"forEach_260a8f85ff2_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"createRecord_8f85ff2c11d_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"branch_f2c11d0fb42_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
],
|
||||
"branch_2c11d0fb42c_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"branch_8dbf2c60aee_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
],
|
||||
"branch_59afaadc9ac_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
],
|
||||
"branch_9afaadc9acd_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"deleteRecords_c32807e97c5_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
],
|
||||
"branch_dbf2c60aee4_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"updateRecords_7ed2a172c32_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
],
|
||||
"end_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout Without Config > test sort 1`] = `
|
||||
[
|
||||
"start_private",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"getRecords_07e97c55832_private",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
"testScope",
|
||||
"$blockIcon$exclusiveSplit_ff2c11d0fb4",
|
||||
"$inlineBlocks$exclusiveSplit_ff2c11d0fb4",
|
||||
"$blockOrderIcon$branch_f2c11d0fb42",
|
||||
"$blockOrderIcon$branch_2c11d0fb42c",
|
||||
"$blockIcon$exclusiveSplit_88dbf2c60ae",
|
||||
"$inlineBlocks$exclusiveSplit_88dbf2c60ae",
|
||||
"$blockOrderIcon$branch_8dbf2c60aee",
|
||||
"$blockIcon$exclusiveSplit_a59afaadc9a",
|
||||
"$inlineBlocks$exclusiveSplit_a59afaadc9a",
|
||||
"$blockOrderIcon$branch_59afaadc9ac",
|
||||
"$blockOrderIcon$branch_9afaadc9acd",
|
||||
"$blockOrderIcon$branch_dbf2c60aee4",
|
||||
]
|
||||
`;
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Fixed Layout transform empty > test get Covers 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [],
|
||||
"base_1" => [],
|
||||
"base_2" => [],
|
||||
"loop_1" => [],
|
||||
"base_in_loop_1" => [],
|
||||
"base_in_loop_2" => [],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fixed Layout transform empty > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [],
|
||||
"base_1" => [],
|
||||
"base_2" => [],
|
||||
"loop_1" => [],
|
||||
"base_in_loop_1" => [],
|
||||
"base_in_loop_2" => [],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fixed Layout transform empty > test get Deps 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [],
|
||||
"base_1" => [],
|
||||
"base_2" => [],
|
||||
"loop_1" => [],
|
||||
"base_in_loop_1" => [],
|
||||
"base_in_loop_2" => [],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fixed Layout transform empty > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [],
|
||||
"base_1" => [],
|
||||
"base_2" => [],
|
||||
"loop_1" => [],
|
||||
"base_in_loop_1" => [],
|
||||
"base_in_loop_2" => [],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fixed Layout transform empty > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [],
|
||||
"end_0_private" => [],
|
||||
"base_1_private" => [],
|
||||
"base_2_private" => [],
|
||||
"loop_1_private" => [],
|
||||
"base_in_loop_1_private" => [],
|
||||
"base_in_loop_2_private" => [],
|
||||
"base_in_loop_3_private" => [],
|
||||
"base_3_private" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fixed Layout transform empty > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [],
|
||||
"end_0_private" => [],
|
||||
"base_1_private" => [],
|
||||
"base_2_private" => [],
|
||||
"loop_1_private" => [],
|
||||
"base_in_loop_1_private" => [],
|
||||
"base_in_loop_2_private" => [],
|
||||
"base_in_loop_3_private" => [],
|
||||
"base_3_private" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fixed Layout transform empty > test sort 1`] = `
|
||||
[
|
||||
"start_0",
|
||||
"testScope",
|
||||
"end_0",
|
||||
"base_1",
|
||||
"base_2",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
"base_3",
|
||||
"start_0_private",
|
||||
"end_0_private",
|
||||
"base_1_private",
|
||||
"base_2_private",
|
||||
"loop_1_private",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3_private",
|
||||
"base_3_private",
|
||||
]
|
||||
`;
|
||||
+841
@@ -0,0 +1,841 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Fix Layout > test get Covers 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"end",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"end",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"end",
|
||||
],
|
||||
"end" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"getRecords_07e97c55832",
|
||||
"getRecords_07e97c55832_private",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"end",
|
||||
"end_private",
|
||||
],
|
||||
"end" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout > test get Deps 1`] = `
|
||||
Map {
|
||||
"start" => [],
|
||||
"getRecords_07e97c55832" => [
|
||||
"start",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
],
|
||||
"end" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start" => [
|
||||
"start_private",
|
||||
],
|
||||
"getRecords_07e97c55832" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832_private",
|
||||
],
|
||||
"forEach_260a8f85ff2" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
],
|
||||
"branch_f2c11d0fb42" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42_private",
|
||||
],
|
||||
"branch_2c11d0fb42c" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
],
|
||||
"branch_8dbf2c60aee" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
],
|
||||
"branch_59afaadc9ac" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac_private",
|
||||
],
|
||||
"branch_9afaadc9acd" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd_private",
|
||||
],
|
||||
"deleteRecords_c32807e97c5" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_dbf2c60aee4" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4_private",
|
||||
],
|
||||
"updateRecords_7ed2a172c32" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"end" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"end_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_private" => [
|
||||
"start",
|
||||
],
|
||||
"getRecords_07e97c55832_private" => [
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"forEach_260a8f85ff2_private" => [
|
||||
"forEach_260a8f85ff2",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"createRecord_8f85ff2c11d_private" => [
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4_private" => [
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
],
|
||||
"branch_f2c11d0fb42_private" => [
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"branch_2c11d0fb42c_private" => [
|
||||
"branch_2c11d0fb42c",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae_private" => [
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"branch_8dbf2c60aee_private" => [
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a_private" => [
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"branch_59afaadc9ac_private" => [
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"branch_9afaadc9acd_private" => [
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
],
|
||||
"deleteRecords_c32807e97c5_private" => [
|
||||
"deleteRecords_c32807e97c5",
|
||||
],
|
||||
"branch_dbf2c60aee4_private" => [
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
],
|
||||
"updateRecords_7ed2a172c32_private" => [
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
"end_private" => [
|
||||
"end",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_private" => [],
|
||||
"getRecords_07e97c55832_private" => [
|
||||
"start",
|
||||
],
|
||||
"forEach_260a8f85ff2_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
],
|
||||
"createRecord_8f85ff2c11d_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
],
|
||||
"exclusiveSplit_ff2c11d0fb4_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
],
|
||||
"branch_f2c11d0fb42_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
],
|
||||
"branch_2c11d0fb42c_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42",
|
||||
],
|
||||
"exclusiveSplit_88dbf2c60ae_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
],
|
||||
"branch_8dbf2c60aee_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
],
|
||||
"exclusiveSplit_a59afaadc9a_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
],
|
||||
"branch_59afaadc9ac_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
],
|
||||
"branch_9afaadc9acd_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac",
|
||||
],
|
||||
"deleteRecords_c32807e97c5_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
],
|
||||
"branch_dbf2c60aee4_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
],
|
||||
"updateRecords_7ed2a172c32_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
],
|
||||
"end_private" => [
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"forEach_260a8f85ff2",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"branch_8dbf2c60aee",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_9afaadc9acd",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"branch_dbf2c60aee4",
|
||||
"updateRecords_7ed2a172c32",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Fix Layout > test sort 1`] = `
|
||||
[
|
||||
"start_private",
|
||||
"start",
|
||||
"getRecords_07e97c55832",
|
||||
"getRecords_07e97c55832_private",
|
||||
"forEach_260a8f85ff2",
|
||||
"forEach_260a8f85ff2_private",
|
||||
"createRecord_8f85ff2c11d",
|
||||
"createRecord_8f85ff2c11d_private",
|
||||
"exclusiveSplit_ff2c11d0fb4",
|
||||
"exclusiveSplit_ff2c11d0fb4_private",
|
||||
"branch_f2c11d0fb42",
|
||||
"branch_f2c11d0fb42_private",
|
||||
"branch_2c11d0fb42c",
|
||||
"branch_2c11d0fb42c_private",
|
||||
"exclusiveSplit_88dbf2c60ae",
|
||||
"exclusiveSplit_88dbf2c60ae_private",
|
||||
"branch_8dbf2c60aee",
|
||||
"branch_8dbf2c60aee_private",
|
||||
"exclusiveSplit_a59afaadc9a",
|
||||
"exclusiveSplit_a59afaadc9a_private",
|
||||
"branch_59afaadc9ac",
|
||||
"branch_59afaadc9ac_private",
|
||||
"branch_9afaadc9acd",
|
||||
"branch_9afaadc9acd_private",
|
||||
"deleteRecords_c32807e97c5",
|
||||
"deleteRecords_c32807e97c5_private",
|
||||
"branch_dbf2c60aee4",
|
||||
"branch_dbf2c60aee4_private",
|
||||
"updateRecords_7ed2a172c32",
|
||||
"updateRecords_7ed2a172c32_private",
|
||||
"end",
|
||||
"end_private",
|
||||
"testScope",
|
||||
"$blockIcon$exclusiveSplit_ff2c11d0fb4",
|
||||
"$inlineBlocks$exclusiveSplit_ff2c11d0fb4",
|
||||
"$blockOrderIcon$branch_f2c11d0fb42",
|
||||
"$blockOrderIcon$branch_2c11d0fb42c",
|
||||
"$blockIcon$exclusiveSplit_88dbf2c60ae",
|
||||
"$inlineBlocks$exclusiveSplit_88dbf2c60ae",
|
||||
"$blockOrderIcon$branch_8dbf2c60aee",
|
||||
"$blockIcon$exclusiveSplit_a59afaadc9a",
|
||||
"$inlineBlocks$exclusiveSplit_a59afaadc9a",
|
||||
"$blockOrderIcon$branch_59afaadc9ac",
|
||||
"$blockOrderIcon$branch_9afaadc9acd",
|
||||
"$blockOrderIcon$branch_dbf2c60aee4",
|
||||
]
|
||||
`;
|
||||
+343
@@ -0,0 +1,343 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Free Layout Enable Global Scope > test get Covers 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"base_1",
|
||||
"base_2",
|
||||
"end_0",
|
||||
"loop_1",
|
||||
"base_3",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"end_0" => [],
|
||||
"base_1" => [
|
||||
"base_2",
|
||||
"end_0",
|
||||
"loop_1",
|
||||
"base_3",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_2" => [
|
||||
"end_0",
|
||||
],
|
||||
"loop_1" => [
|
||||
"base_3",
|
||||
"end_0",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [
|
||||
"end_0",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Enable Global Scope > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"base_1",
|
||||
"base_1_private",
|
||||
"base_2",
|
||||
"base_2_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
"loop_1",
|
||||
"loop_1_private",
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"end_0" => [],
|
||||
"base_1" => [
|
||||
"base_2",
|
||||
"base_2_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
"loop_1",
|
||||
"loop_1_private",
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_2" => [
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"loop_1" => [
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Enable Global Scope > test get Deps 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"GlobalScope",
|
||||
],
|
||||
"end_0" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"loop_1",
|
||||
"base_1",
|
||||
"base_3",
|
||||
"base_2",
|
||||
],
|
||||
"base_1" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
],
|
||||
"base_2" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"loop_1" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_3" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_1",
|
||||
],
|
||||
"base_3" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Enable Global Scope > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"GlobalScope",
|
||||
"start_0_private",
|
||||
],
|
||||
"end_0" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"loop_1",
|
||||
"base_1",
|
||||
"base_3",
|
||||
"base_2",
|
||||
"end_0_private",
|
||||
],
|
||||
"base_1" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1_private",
|
||||
],
|
||||
"base_2" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"base_2_private",
|
||||
],
|
||||
"loop_1" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_1_private",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_2_private",
|
||||
],
|
||||
"base_in_loop_3" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_3" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1",
|
||||
"base_3_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Enable Global Scope > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [
|
||||
"start_0",
|
||||
],
|
||||
"end_0_private" => [
|
||||
"end_0",
|
||||
],
|
||||
"base_1_private" => [
|
||||
"base_1",
|
||||
],
|
||||
"base_2_private" => [
|
||||
"base_2",
|
||||
],
|
||||
"loop_1_private" => [
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
"loop_1",
|
||||
],
|
||||
"base_in_loop_1_private" => [
|
||||
"base_in_loop_1",
|
||||
],
|
||||
"base_in_loop_2_private" => [
|
||||
"base_in_loop_2",
|
||||
],
|
||||
"base_in_loop_3_private" => [
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_3_private" => [
|
||||
"base_3",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Enable Global Scope > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [
|
||||
"GlobalScope",
|
||||
],
|
||||
"end_0_private" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"loop_1",
|
||||
"base_1",
|
||||
"base_3",
|
||||
"base_2",
|
||||
],
|
||||
"base_1_private" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
],
|
||||
"base_2_private" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"loop_1_private" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_1_private" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
],
|
||||
"base_in_loop_2_private" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
],
|
||||
"base_in_loop_3_private" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_1",
|
||||
],
|
||||
"base_3_private" => [
|
||||
"GlobalScope",
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Enable Global Scope > test sort 1`] = `
|
||||
[
|
||||
Symbol(GlobalScope),
|
||||
"testScope",
|
||||
"start_0",
|
||||
"end_0",
|
||||
"base_1",
|
||||
"base_2",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
"base_3",
|
||||
"start_0_private",
|
||||
"end_0_private",
|
||||
"base_1_private",
|
||||
"base_2_private",
|
||||
"loop_1_private",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3_private",
|
||||
"base_3_private",
|
||||
]
|
||||
`;
|
||||
+351
@@ -0,0 +1,351 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Free Layout Is Node Children Private > test get Covers 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"base_1",
|
||||
"base_2",
|
||||
"end_0",
|
||||
"loop_1",
|
||||
"base_3",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"end_0" => [],
|
||||
"base_1" => [
|
||||
"base_2",
|
||||
"end_0",
|
||||
"loop_1",
|
||||
"base_3",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_2" => [
|
||||
"end_0",
|
||||
],
|
||||
"loop_1" => [
|
||||
"base_3",
|
||||
"end_0",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"base_in_loop_3",
|
||||
"base_3",
|
||||
"end_0",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"base_in_loop_3",
|
||||
"base_3",
|
||||
"end_0",
|
||||
],
|
||||
"base_in_loop_3" => [
|
||||
"base_3",
|
||||
"end_0",
|
||||
],
|
||||
"base_3" => [
|
||||
"end_0",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Is Node Children Private > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"base_1",
|
||||
"base_1_private",
|
||||
"base_2",
|
||||
"base_2_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
"loop_1",
|
||||
"loop_1_private",
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"end_0" => [],
|
||||
"base_1" => [
|
||||
"base_2",
|
||||
"base_2_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
"loop_1",
|
||||
"loop_1_private",
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_2" => [
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"loop_1" => [
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"base_in_loop_3" => [
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"base_3" => [
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Is Node Children Private > test get Deps 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [
|
||||
"start_0",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
"base_1",
|
||||
"base_3",
|
||||
"base_2",
|
||||
],
|
||||
"base_1" => [
|
||||
"start_0",
|
||||
],
|
||||
"base_2" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"loop_1" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_3" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_1",
|
||||
],
|
||||
"base_3" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Is Node Children Private > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"start_0_private",
|
||||
],
|
||||
"end_0" => [
|
||||
"start_0",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
"base_1",
|
||||
"base_3",
|
||||
"base_2",
|
||||
"end_0_private",
|
||||
],
|
||||
"base_1" => [
|
||||
"start_0",
|
||||
"base_1_private",
|
||||
],
|
||||
"base_2" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"base_2_private",
|
||||
],
|
||||
"loop_1" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_1_private",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_2_private",
|
||||
],
|
||||
"base_in_loop_3" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_3" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
"base_3_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Is Node Children Private > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [
|
||||
"start_0",
|
||||
],
|
||||
"end_0_private" => [
|
||||
"end_0",
|
||||
],
|
||||
"base_1_private" => [
|
||||
"base_1",
|
||||
],
|
||||
"base_2_private" => [
|
||||
"base_2",
|
||||
],
|
||||
"loop_1_private" => [
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
"loop_1",
|
||||
],
|
||||
"base_in_loop_1_private" => [
|
||||
"base_in_loop_1",
|
||||
],
|
||||
"base_in_loop_2_private" => [
|
||||
"base_in_loop_2",
|
||||
],
|
||||
"base_in_loop_3_private" => [
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_3_private" => [
|
||||
"base_3",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Is Node Children Private > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [],
|
||||
"end_0_private" => [
|
||||
"start_0",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
"base_1",
|
||||
"base_3",
|
||||
"base_2",
|
||||
],
|
||||
"base_1_private" => [
|
||||
"start_0",
|
||||
],
|
||||
"base_2_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"loop_1_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_1_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
],
|
||||
"base_in_loop_2_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
],
|
||||
"base_in_loop_3_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_1",
|
||||
],
|
||||
"base_3_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout Is Node Children Private > test sort 1`] = `
|
||||
[
|
||||
"testScope",
|
||||
"start_0",
|
||||
"end_0",
|
||||
"base_1",
|
||||
"base_2",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
"base_3",
|
||||
"start_0_private",
|
||||
"end_0_private",
|
||||
"base_1_private",
|
||||
"base_2_private",
|
||||
"loop_1_private",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3_private",
|
||||
"base_3_private",
|
||||
]
|
||||
`;
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Free Layout transform empty > test get Covers 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [],
|
||||
"base_1" => [],
|
||||
"base_2" => [],
|
||||
"loop_1" => [],
|
||||
"base_in_loop_1" => [],
|
||||
"base_in_loop_2" => [],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout transform empty > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [],
|
||||
"base_1" => [],
|
||||
"base_2" => [],
|
||||
"loop_1" => [],
|
||||
"base_in_loop_1" => [],
|
||||
"base_in_loop_2" => [],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout transform empty > test get Deps 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [],
|
||||
"base_1" => [],
|
||||
"base_2" => [],
|
||||
"loop_1" => [],
|
||||
"base_in_loop_1" => [],
|
||||
"base_in_loop_2" => [],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout transform empty > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [],
|
||||
"base_1" => [],
|
||||
"base_2" => [],
|
||||
"loop_1" => [],
|
||||
"base_in_loop_1" => [],
|
||||
"base_in_loop_2" => [],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout transform empty > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [],
|
||||
"end_0_private" => [],
|
||||
"base_1_private" => [],
|
||||
"base_2_private" => [],
|
||||
"loop_1_private" => [],
|
||||
"base_in_loop_1_private" => [],
|
||||
"base_in_loop_2_private" => [],
|
||||
"base_in_loop_3_private" => [],
|
||||
"base_3_private" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout transform empty > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [],
|
||||
"end_0_private" => [],
|
||||
"base_1_private" => [],
|
||||
"base_2_private" => [],
|
||||
"loop_1_private" => [],
|
||||
"base_in_loop_1_private" => [],
|
||||
"base_in_loop_2_private" => [],
|
||||
"base_in_loop_3_private" => [],
|
||||
"base_3_private" => [],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout transform empty > test sort 1`] = `
|
||||
[
|
||||
"testScope",
|
||||
"start_0",
|
||||
"end_0",
|
||||
"base_1",
|
||||
"base_2",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
"base_3",
|
||||
"start_0_private",
|
||||
"end_0_private",
|
||||
"base_1_private",
|
||||
"base_2_private",
|
||||
"loop_1_private",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3_private",
|
||||
"base_3_private",
|
||||
]
|
||||
`;
|
||||
+313
@@ -0,0 +1,313 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`Variable Free Layout > test get Covers 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"base_1",
|
||||
"base_2",
|
||||
"end_0",
|
||||
"loop_1",
|
||||
"base_3",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"end_0" => [],
|
||||
"base_1" => [
|
||||
"base_2",
|
||||
"end_0",
|
||||
"loop_1",
|
||||
"base_3",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_2" => [
|
||||
"end_0",
|
||||
],
|
||||
"loop_1" => [
|
||||
"base_3",
|
||||
"end_0",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [
|
||||
"end_0",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout > test get Covers After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"base_1",
|
||||
"base_1_private",
|
||||
"base_2",
|
||||
"base_2_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
"loop_1",
|
||||
"loop_1_private",
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"end_0" => [],
|
||||
"base_1" => [
|
||||
"base_2",
|
||||
"base_2_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
"loop_1",
|
||||
"loop_1_private",
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_2" => [
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"loop_1" => [
|
||||
"base_3",
|
||||
"base_3_private",
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_in_loop_3" => [],
|
||||
"base_3" => [
|
||||
"end_0",
|
||||
"end_0_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout > test get Deps 1`] = `
|
||||
Map {
|
||||
"start_0" => [],
|
||||
"end_0" => [
|
||||
"start_0",
|
||||
"loop_1",
|
||||
"base_1",
|
||||
"base_3",
|
||||
"base_2",
|
||||
],
|
||||
"base_1" => [
|
||||
"start_0",
|
||||
],
|
||||
"base_2" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"loop_1" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_3" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_1",
|
||||
],
|
||||
"base_3" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout > test get Deps After Init Private 1`] = `
|
||||
Map {
|
||||
"start_0" => [
|
||||
"start_0_private",
|
||||
],
|
||||
"end_0" => [
|
||||
"start_0",
|
||||
"loop_1",
|
||||
"base_1",
|
||||
"base_3",
|
||||
"base_2",
|
||||
"end_0_private",
|
||||
],
|
||||
"base_1" => [
|
||||
"start_0",
|
||||
"base_1_private",
|
||||
],
|
||||
"base_2" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"base_2_private",
|
||||
],
|
||||
"loop_1" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
],
|
||||
"base_in_loop_1" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_1_private",
|
||||
],
|
||||
"base_in_loop_2" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_2_private",
|
||||
],
|
||||
"base_in_loop_3" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_3_private",
|
||||
],
|
||||
"base_3" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1",
|
||||
"base_3_private",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout > test get private scope Covers 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [
|
||||
"start_0",
|
||||
],
|
||||
"end_0_private" => [
|
||||
"end_0",
|
||||
],
|
||||
"base_1_private" => [
|
||||
"base_1",
|
||||
],
|
||||
"base_2_private" => [
|
||||
"base_2",
|
||||
],
|
||||
"loop_1_private" => [
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3",
|
||||
"base_in_loop_3_private",
|
||||
"loop_1",
|
||||
],
|
||||
"base_in_loop_1_private" => [
|
||||
"base_in_loop_1",
|
||||
],
|
||||
"base_in_loop_2_private" => [
|
||||
"base_in_loop_2",
|
||||
],
|
||||
"base_in_loop_3_private" => [
|
||||
"base_in_loop_3",
|
||||
],
|
||||
"base_3_private" => [
|
||||
"base_3",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout > test get private scope Deps 1`] = `
|
||||
Map {
|
||||
"start_0_private" => [],
|
||||
"end_0_private" => [
|
||||
"start_0",
|
||||
"loop_1",
|
||||
"base_1",
|
||||
"base_3",
|
||||
"base_2",
|
||||
],
|
||||
"base_1_private" => [
|
||||
"start_0",
|
||||
],
|
||||
"base_2_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"loop_1_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
],
|
||||
"base_in_loop_1_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
],
|
||||
"base_in_loop_2_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
],
|
||||
"base_in_loop_3_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1_private",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_1",
|
||||
],
|
||||
"base_3_private" => [
|
||||
"start_0",
|
||||
"base_1",
|
||||
"loop_1",
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Variable Free Layout > test sort 1`] = `
|
||||
[
|
||||
"testScope",
|
||||
"start_0",
|
||||
"end_0",
|
||||
"base_1",
|
||||
"base_2",
|
||||
"loop_1",
|
||||
"base_in_loop_1",
|
||||
"base_in_loop_2",
|
||||
"base_in_loop_3",
|
||||
"base_3",
|
||||
"start_0_private",
|
||||
"end_0_private",
|
||||
"base_1_private",
|
||||
"base_2_private",
|
||||
"loop_1_private",
|
||||
"base_in_loop_1_private",
|
||||
"base_in_loop_2_private",
|
||||
"base_in_loop_3_private",
|
||||
"base_3_private",
|
||||
]
|
||||
`;
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { runFixedLayoutTest } from '../__mocks__/run-fixed-layout-test';
|
||||
import { fixLayout1 } from '../__mocks__/fixed-layout-specs';
|
||||
|
||||
runFixedLayoutTest('Variable Fix Layout Enable Global Scope', fixLayout1, {
|
||||
enableGlobalScope: true,
|
||||
});
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { FlowNodeScope } from '../src/types';
|
||||
import { runFixedLayoutTest } from '../__mocks__/run-fixed-layout-test';
|
||||
import { fixLayout1 } from '../__mocks__/fixed-layout-specs';
|
||||
|
||||
const filterStart = (_scope: FlowNodeScope) => !['start'].includes(_scope.meta?.node?.id || '');
|
||||
|
||||
const filterEnd = (_scope: FlowNodeScope) => !['end'].includes(_scope.meta?.node?.id || '');
|
||||
|
||||
runFixedLayoutTest('Variable Fix Layout Filter Start End', fixLayout1, {
|
||||
transformCovers: (scopes) => scopes.filter(filterEnd),
|
||||
transformDeps: (scopes) => scopes.filter(filterStart),
|
||||
});
|
||||
@@ -0,0 +1,44 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { runFixedLayoutTest } from '../__mocks__/run-fixed-layout-test';
|
||||
|
||||
runFixedLayoutTest(
|
||||
'Variable Fix Layout Group',
|
||||
{
|
||||
nodes: [
|
||||
{
|
||||
id: 'start_0',
|
||||
type: 'start',
|
||||
meta: {
|
||||
isStart: true,
|
||||
},
|
||||
blocks: [],
|
||||
},
|
||||
{
|
||||
id: '$group_test$',
|
||||
type: 'block',
|
||||
blocks: [
|
||||
{
|
||||
id: 'node_0',
|
||||
type: 'noop',
|
||||
blocks: [],
|
||||
},
|
||||
{
|
||||
id: 'node_1',
|
||||
type: 'noop',
|
||||
blocks: [],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'end_0',
|
||||
type: 'end',
|
||||
blocks: [],
|
||||
},
|
||||
],
|
||||
},
|
||||
{}
|
||||
);
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { runFixedLayoutTest } from '../__mocks__/run-fixed-layout-test';
|
||||
import { fixLayout1 } from '../__mocks__/fixed-layout-specs';
|
||||
|
||||
runFixedLayoutTest('Variable Fix Layout Without Config', fixLayout1, {});
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { test, expect } from 'vitest';
|
||||
|
||||
import { ScopeChainTransformService } from '../src';
|
||||
import { runFixedLayoutTest } from '../__mocks__/run-fixed-layout-test';
|
||||
import { freeLayout1 } from '../__mocks__/free-layout-specs';
|
||||
|
||||
runFixedLayoutTest('Variable Fixed Layout transform empty', freeLayout1, {
|
||||
onInit(container) {
|
||||
const transformService = container.get(ScopeChainTransformService);
|
||||
|
||||
transformService.registerTransformer('MOCK', {
|
||||
transformCovers: (scopes) => scopes,
|
||||
transformDeps: (scopes) => scopes,
|
||||
});
|
||||
|
||||
// again transformer, prevent duplicated transformerId
|
||||
transformService.registerTransformer('MOCK', {
|
||||
transformCovers: () => [],
|
||||
transformDeps: () => [],
|
||||
});
|
||||
transformService.registerTransformer('MOCK', {
|
||||
transformCovers: () => [],
|
||||
transformDeps: () => [],
|
||||
});
|
||||
},
|
||||
runExtraTest: (container) => {
|
||||
test('check has transformer', () => {
|
||||
const transformService = container.get(ScopeChainTransformService);
|
||||
expect(transformService.hasTransformer('MOCK')).to.be.true;
|
||||
expect(transformService.hasTransformer('VARIABLE_LAYOUT_CONFIG')).to.be.false;
|
||||
expect(transformService.hasTransformer('NOT_EXIST')).to.be.false;
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { runFixedLayoutTest } from '../__mocks__/run-fixed-layout-test';
|
||||
import { fixLayout1 } from '../__mocks__/fixed-layout-specs';
|
||||
|
||||
runFixedLayoutTest('Variable Fix Layout', fixLayout1, {
|
||||
isNodeChildrenPrivate: (node) =>
|
||||
// 只有循环是 private
|
||||
node.flowNodeType === 'loop',
|
||||
});
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { runFreeLayoutTest } from '../__mocks__/run-free-layout-test';
|
||||
import { freeLayout1 } from '../__mocks__/free-layout-specs';
|
||||
|
||||
runFreeLayoutTest('Variable Free Layout Enable Global Scope', freeLayout1, {
|
||||
enableGlobalScope: true,
|
||||
});
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { runFreeLayoutTest } from '../__mocks__/run-free-layout-test';
|
||||
import { freeLayout1 } from '../__mocks__/free-layout-specs';
|
||||
|
||||
runFreeLayoutTest('Variable Free Layout Is Node Children Private', freeLayout1, {
|
||||
isNodeChildrenPrivate(node) {
|
||||
return false;
|
||||
},
|
||||
});
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { test, expect } from 'vitest';
|
||||
|
||||
import { ScopeChainTransformService } from '../src';
|
||||
import { runFreeLayoutTest } from '../__mocks__/run-free-layout-test';
|
||||
import { freeLayout1 } from '../__mocks__/free-layout-specs';
|
||||
|
||||
runFreeLayoutTest('Variable Free Layout transform empty', freeLayout1, {
|
||||
// 模拟清空作用域
|
||||
transformCovers: () => [],
|
||||
transformDeps: () => [],
|
||||
runExtraTest: (container) => {
|
||||
test('check has transformer', () => {
|
||||
const transformService = container.get(ScopeChainTransformService);
|
||||
expect(transformService.hasTransformer('VARIABLE_LAYOUT_CONFIG')).to.be.true;
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { runFreeLayoutTest } from '../__mocks__/run-free-layout-test';
|
||||
import { freeLayout1 } from '../__mocks__/free-layout-specs';
|
||||
|
||||
runFreeLayoutTest('Variable Free Layout', freeLayout1, {});
|
||||
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
const { defineFlatConfig } = require('@flowgram.ai/eslint-config');
|
||||
|
||||
module.exports = defineFlatConfig({
|
||||
preset: 'web',
|
||||
packageRoot: __dirname,
|
||||
ignorePatterns: ['**/tests__'],
|
||||
});
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"name": "@flowgram.ai/variable-layout",
|
||||
"version": "0.1.8",
|
||||
"homepage": "https://flowgram.ai/",
|
||||
"repository": "https://github.com/bytedance/flowgram.ai",
|
||||
"license": "MIT",
|
||||
"exports": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"import": "./dist/esm/index.js",
|
||||
"require": "./dist/index.js"
|
||||
},
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/esm/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "npm run build:fast -- --dts-resolve",
|
||||
"build:fast": "tsup src/index.ts --format cjs,esm --sourcemap --legacy-output",
|
||||
"build:watch": "npm run build:fast -- --dts-resolve",
|
||||
"clean": "rimraf dist",
|
||||
"test": "vitest run",
|
||||
"test:cov": "vitest run --coverage",
|
||||
"ts-check": "tsc --noEmit",
|
||||
"watch": "npm run build:fast -- --dts-resolve --watch --ignore-watch dist"
|
||||
},
|
||||
"dependencies": {
|
||||
"@flowgram.ai/core": "workspace:*",
|
||||
"@flowgram.ai/document": "workspace:*",
|
||||
"@flowgram.ai/free-layout-core": "workspace:*",
|
||||
"@flowgram.ai/variable-core": "workspace:*",
|
||||
"inversify": "^6.0.1",
|
||||
"reflect-metadata": "~0.2.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@flowgram.ai/eslint-config": "workspace:*",
|
||||
"@flowgram.ai/ts-config": "workspace:*",
|
||||
"@vitest/coverage-v8": "^3.2.4",
|
||||
"eslint": "^9.0.0",
|
||||
"tsup": "^8.0.1",
|
||||
"typescript": "^5.8.3",
|
||||
"vitest": "^3.2.4"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"registry": "https://registry.npmjs.org/"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,341 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { inject, optional } from 'inversify';
|
||||
import { Scope, ScopeChain } from '@flowgram.ai/variable-core';
|
||||
import { FlowDocument, type FlowVirtualTree } from '@flowgram.ai/document';
|
||||
import { FlowNodeEntity } from '@flowgram.ai/document';
|
||||
|
||||
import { VariableChainConfig } from '../variable-chain-config';
|
||||
import { FlowNodeScope, FlowNodeScopeTypeEnum, ScopeChainNode } from '../types';
|
||||
import { ScopeChainTransformService } from '../services/scope-chain-transform-service';
|
||||
import { GlobalScope } from '../scopes/global-scope';
|
||||
import { FlowNodeVariableData } from '../flow-node-variable-data';
|
||||
|
||||
/**
|
||||
* Scope chain implementation based on `FlowVirtualTree`.
|
||||
*/
|
||||
export class FixedLayoutScopeChain extends ScopeChain {
|
||||
// By adding { id: string }, custom virtual nodes can be flexibly added
|
||||
tree: FlowVirtualTree<ScopeChainNode> | undefined;
|
||||
|
||||
@inject(ScopeChainTransformService)
|
||||
protected transformService: ScopeChainTransformService;
|
||||
|
||||
constructor(
|
||||
@inject(FlowDocument)
|
||||
protected flowDocument: FlowDocument,
|
||||
@optional()
|
||||
@inject(VariableChainConfig)
|
||||
protected configs?: VariableChainConfig
|
||||
) {
|
||||
super();
|
||||
|
||||
// Bind the tree in flowDocument
|
||||
this.bindTree(flowDocument.originTree);
|
||||
|
||||
// When originTree changes, trigger changes in dependencies
|
||||
this.toDispose.push(
|
||||
// REFRACTOR: onTreeChange trigger timing needs to be refined
|
||||
flowDocument.originTree.onTreeChange(() => {
|
||||
this.refreshAllChange();
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Binds the scope chain to a `FlowVirtualTree`.
|
||||
* @param tree The `FlowVirtualTree` to bind to.
|
||||
*/
|
||||
bindTree(tree: FlowVirtualTree<ScopeChainNode>): void {
|
||||
this.tree = tree;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the dependency scopes for a given scope.
|
||||
* @param scope The scope to get dependencies for.
|
||||
* @returns An array of dependency scopes.
|
||||
*/
|
||||
getDeps(scope: FlowNodeScope): FlowNodeScope[] {
|
||||
if (!this.tree) {
|
||||
return this.transformService.transformDeps([], { scope });
|
||||
}
|
||||
|
||||
const node = scope.meta.node;
|
||||
if (!node) {
|
||||
return this.transformService.transformDeps([], { scope });
|
||||
}
|
||||
|
||||
const deps: FlowNodeScope[] = [];
|
||||
|
||||
let curr: ScopeChainNode | undefined = node;
|
||||
|
||||
while (curr) {
|
||||
const { parent, pre } = this.tree.getInfo(curr);
|
||||
const currData = this.getVariableData(curr);
|
||||
|
||||
// Contains child nodes and is not a private scope
|
||||
|
||||
if (curr === node) {
|
||||
// public can depend on private
|
||||
if (scope.meta.type === FlowNodeScopeTypeEnum.public && currData?.private) {
|
||||
deps.unshift(currData.private);
|
||||
}
|
||||
} else if (this.hasChildren(curr) && !this.isNodeChildrenPrivate(curr)) {
|
||||
// For nodes with child elements, include the child elements in the dependency scope
|
||||
deps.unshift(
|
||||
...this.getAllSortedChildScope(curr, {
|
||||
ignoreNodeChildrenPrivate: true,
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
// The public of the node can be accessed
|
||||
if (currData && curr !== node) {
|
||||
deps.unshift(currData.public);
|
||||
}
|
||||
|
||||
// Process the previous node
|
||||
if (pre) {
|
||||
curr = pre;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Process the parent node
|
||||
if (parent) {
|
||||
let currParent: ScopeChainNode | undefined = parent;
|
||||
let currParentPre: ScopeChainNode | undefined = this.tree.getPre(currParent);
|
||||
|
||||
while (currParent) {
|
||||
// Both private and public of the parent node can be accessed by child nodes
|
||||
const currParentData = this.getVariableData(currParent);
|
||||
if (currParentData) {
|
||||
deps.unshift(...currParentData.allScopes);
|
||||
}
|
||||
|
||||
// If the current parent has a pre node, stop searching upwards
|
||||
if (currParentPre) {
|
||||
break;
|
||||
}
|
||||
|
||||
currParent = this.tree.getParent(currParent);
|
||||
currParentPre = currParent ? this.tree.getPre(currParent) : undefined;
|
||||
}
|
||||
curr = currParentPre;
|
||||
continue;
|
||||
}
|
||||
|
||||
// If there is no next and no parent, end the loop directly
|
||||
curr = undefined;
|
||||
}
|
||||
|
||||
// If scope is GlobalScope, add globalScope to deps
|
||||
const globalScope = this.variableEngine.getScopeById(GlobalScope.ID);
|
||||
if (globalScope) {
|
||||
deps.unshift(globalScope);
|
||||
}
|
||||
|
||||
return this.transformService.transformDeps(deps, { scope });
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the covering scopes for a given scope.
|
||||
* @param scope The scope to get covering scopes for.
|
||||
* @returns An array of covering scopes.
|
||||
*/
|
||||
getCovers(scope: FlowNodeScope): FlowNodeScope[] {
|
||||
if (!this.tree) {
|
||||
return this.transformService.transformCovers([], { scope });
|
||||
}
|
||||
|
||||
// If scope is GlobalScope, return all scopes except GlobalScope
|
||||
if (GlobalScope.is(scope)) {
|
||||
const scopes = this.variableEngine
|
||||
.getAllScopes({ sort: true })
|
||||
.filter((_scope) => !GlobalScope.is(_scope));
|
||||
|
||||
return this.transformService.transformCovers(scopes, { scope });
|
||||
}
|
||||
|
||||
const node = scope.meta.node;
|
||||
if (!node) {
|
||||
return this.transformService.transformCovers([], { scope });
|
||||
}
|
||||
|
||||
const covers: FlowNodeScope[] = [];
|
||||
|
||||
// If it is a private scope, only child nodes can access it
|
||||
if (scope.meta.type === FlowNodeScopeTypeEnum.private) {
|
||||
covers.push(
|
||||
...this.getAllSortedChildScope(node, {
|
||||
addNodePrivateScope: true,
|
||||
}).filter((_scope) => _scope !== scope)
|
||||
);
|
||||
return this.transformService.transformCovers(covers, { scope });
|
||||
}
|
||||
|
||||
let curr: ScopeChainNode | undefined = node;
|
||||
|
||||
while (curr) {
|
||||
const { next, parent } = this.tree.getInfo(curr);
|
||||
const currData = this.getVariableData(curr);
|
||||
|
||||
// For nodes with child elements, include the child elements in the covering scope
|
||||
if (curr !== node) {
|
||||
if (this.hasChildren(curr)) {
|
||||
covers.push(
|
||||
...this.getAllSortedChildScope(curr, {
|
||||
addNodePrivateScope: true,
|
||||
})
|
||||
);
|
||||
} else if (currData) {
|
||||
covers.push(...currData.allScopes);
|
||||
}
|
||||
}
|
||||
|
||||
// Process the next node
|
||||
if (next) {
|
||||
curr = next;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (parent) {
|
||||
let currParent: ScopeChainNode | undefined = parent;
|
||||
let currParentNext: ScopeChainNode | undefined = this.tree.getNext(currParent);
|
||||
|
||||
while (currParent) {
|
||||
// Private scopes cannot be accessed by subsequent nodes
|
||||
if (this.isNodeChildrenPrivate(currParent)) {
|
||||
return this.transformService.transformCovers(covers, { scope });
|
||||
}
|
||||
|
||||
// If the current parent has a next node, stop searching upwards
|
||||
if (currParentNext) {
|
||||
break;
|
||||
}
|
||||
|
||||
currParent = this.tree.getParent(currParent);
|
||||
currParentNext = currParent ? this.tree.getNext(currParent) : undefined;
|
||||
}
|
||||
if (!currParentNext && currParent) {
|
||||
break;
|
||||
}
|
||||
|
||||
curr = currParentNext;
|
||||
continue;
|
||||
}
|
||||
|
||||
// next 和 parent 都没有,直接结束循环
|
||||
curr = undefined;
|
||||
}
|
||||
|
||||
return this.transformService.transformCovers(covers, { scope });
|
||||
}
|
||||
|
||||
/**
|
||||
* Sorts all scopes in the scope chain.
|
||||
* @returns A sorted array of all scopes.
|
||||
*/
|
||||
sortAll(): Scope[] {
|
||||
const startNode = this.flowDocument.getAllNodes().find((_node) => _node.isStart);
|
||||
if (!startNode) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const startVariableData = startNode.getData(FlowNodeVariableData);
|
||||
const startPublicScope = startVariableData.public;
|
||||
const deps = this.getDeps(startPublicScope);
|
||||
|
||||
const covers = this.getCovers(startPublicScope).filter(
|
||||
(_scope) => !deps.includes(_scope) && _scope !== startPublicScope
|
||||
);
|
||||
|
||||
return [...deps, startPublicScope, ...covers];
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the `FlowNodeVariableData` for a given `ScopeChainNode`.
|
||||
* @param node The `ScopeChainNode` to get data for.
|
||||
* @returns The `FlowNodeVariableData` or `undefined` if not found.
|
||||
*/
|
||||
private getVariableData(node: ScopeChainNode): FlowNodeVariableData | undefined {
|
||||
if (node.flowNodeType === 'virtualNode') {
|
||||
return;
|
||||
}
|
||||
// TODO Nodes containing $ do not register variableData
|
||||
if (node.id.startsWith('$')) {
|
||||
return;
|
||||
}
|
||||
|
||||
return (node as FlowNodeEntity).getData(FlowNodeVariableData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the children of a node are private.
|
||||
* @param node The node to check.
|
||||
* @returns `true` if the children are private, `false` otherwise.
|
||||
*/
|
||||
private isNodeChildrenPrivate(node?: ScopeChainNode): boolean {
|
||||
if (this.configs?.isNodeChildrenPrivate) {
|
||||
return node ? this.configs?.isNodeChildrenPrivate(node) : false;
|
||||
}
|
||||
|
||||
const isSystemNode = node?.id.startsWith('$');
|
||||
// Fallback: all nodes with children (node id does not start with $) are private scopes
|
||||
return !isSystemNode && this.hasChildren(node);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a node has children.
|
||||
* @param node The node to check.
|
||||
* @returns `true` if the node has children, `false` otherwise.
|
||||
*/
|
||||
private hasChildren(node?: ScopeChainNode): boolean {
|
||||
return Boolean(this.tree && node && this.tree.getChildren(node).length > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all sorted child scopes of a node.
|
||||
* @param node The node to get child scopes for.
|
||||
* @param options Options for getting child scopes.
|
||||
* @returns An array of sorted child scopes.
|
||||
*/
|
||||
private getAllSortedChildScope(
|
||||
node: ScopeChainNode,
|
||||
{
|
||||
ignoreNodeChildrenPrivate,
|
||||
addNodePrivateScope,
|
||||
}: { ignoreNodeChildrenPrivate?: boolean; addNodePrivateScope?: boolean } = {}
|
||||
): FlowNodeScope[] {
|
||||
const scopes: FlowNodeScope[] = [];
|
||||
|
||||
const variableData = this.getVariableData(node);
|
||||
|
||||
if (variableData) {
|
||||
scopes.push(variableData.public);
|
||||
}
|
||||
|
||||
// For private scopes, the variables of child nodes are not exposed externally
|
||||
// (If the parent node has public variables, they are exposed externally)
|
||||
if (ignoreNodeChildrenPrivate && this.isNodeChildrenPrivate(node)) {
|
||||
return scopes;
|
||||
}
|
||||
|
||||
if (addNodePrivateScope && variableData?.private) {
|
||||
scopes.push(variableData.private);
|
||||
}
|
||||
|
||||
const children = this.tree?.getChildren(node) || [];
|
||||
scopes.push(
|
||||
...children
|
||||
.map((child) =>
|
||||
this.getAllSortedChildScope(child, { ignoreNodeChildrenPrivate, addNodePrivateScope })
|
||||
)
|
||||
.flat()
|
||||
);
|
||||
|
||||
return scopes;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,325 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { inject, optional, postConstruct } from 'inversify';
|
||||
import { Scope, ScopeChain } from '@flowgram.ai/variable-core';
|
||||
import { WorkflowNodeLinesData, WorkflowNodeMeta } from '@flowgram.ai/free-layout-core';
|
||||
import {
|
||||
FlowNodeEntity,
|
||||
FlowDocument,
|
||||
FlowVirtualTree,
|
||||
FlowNodeBaseType,
|
||||
} from '@flowgram.ai/document';
|
||||
import { EntityManager } from '@flowgram.ai/core';
|
||||
|
||||
import { VariableChainConfig } from '../variable-chain-config';
|
||||
import { FlowNodeScope, FlowNodeScopeTypeEnum } from '../types';
|
||||
import { ScopeChainTransformService } from '../services/scope-chain-transform-service';
|
||||
import { GlobalScope } from '../scopes/global-scope';
|
||||
import { FlowNodeVariableData } from '../flow-node-variable-data';
|
||||
|
||||
/**
|
||||
* Scope chain implementation for free layout.
|
||||
*/
|
||||
export class FreeLayoutScopeChain extends ScopeChain {
|
||||
@inject(EntityManager) entityManager: EntityManager;
|
||||
|
||||
@inject(FlowDocument)
|
||||
protected flowDocument: FlowDocument;
|
||||
|
||||
@optional()
|
||||
@inject(VariableChainConfig)
|
||||
protected configs?: VariableChainConfig;
|
||||
|
||||
@inject(ScopeChainTransformService)
|
||||
protected transformService: ScopeChainTransformService;
|
||||
|
||||
/**
|
||||
* The virtual tree of the flow document.
|
||||
*/
|
||||
get tree(): FlowVirtualTree<FlowNodeEntity> {
|
||||
return this.flowDocument.originTree;
|
||||
}
|
||||
|
||||
@postConstruct()
|
||||
onInit() {
|
||||
this.toDispose.pushAll([
|
||||
// When the line changes, the scope chain will be updated
|
||||
this.entityManager.onEntityDataChange(({ entityDataType }) => {
|
||||
if (entityDataType === WorkflowNodeLinesData.type) {
|
||||
this.refreshAllChange();
|
||||
}
|
||||
}),
|
||||
// Refresh the scope when the tree changes
|
||||
this.tree.onTreeChange(() => {
|
||||
this.refreshAllChange();
|
||||
}),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all input layer nodes for a given node in the same layer, sorted by distance.
|
||||
* @param node The node to get input layer nodes for.
|
||||
* @returns An array of input layer nodes.
|
||||
*/
|
||||
protected getAllInputLayerNodes(node: FlowNodeEntity): FlowNodeEntity[] {
|
||||
const currParent = this.getNodeParent(node);
|
||||
|
||||
const result = new Set<FlowNodeEntity>();
|
||||
|
||||
// add by bfs
|
||||
const queue: FlowNodeEntity[] = [node];
|
||||
|
||||
while (queue.length) {
|
||||
const curr = queue.shift()!;
|
||||
|
||||
(curr.lines?.inputNodes || []).forEach((inputNode) => {
|
||||
if (this.getNodeParent(inputNode) === currParent) {
|
||||
if (result.has(inputNode)) {
|
||||
return;
|
||||
}
|
||||
queue.push(inputNode);
|
||||
result.add(inputNode);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return Array.from(result).reverse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all output layer nodes for a given node in the same layer.
|
||||
* @param curr The node to get output layer nodes for.
|
||||
* @returns An array of output layer nodes.
|
||||
*/
|
||||
protected getAllOutputLayerNodes(curr: FlowNodeEntity): FlowNodeEntity[] {
|
||||
const currParent = this.getNodeParent(curr);
|
||||
|
||||
return (curr.lines?.allOutputNodes || []).filter(
|
||||
(_node) => this.getNodeParent(_node) === currParent
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the dependency scopes for a given scope.
|
||||
* @param scope The scope to get dependencies for.
|
||||
* @returns An array of dependency scopes.
|
||||
*/
|
||||
getDeps(scope: FlowNodeScope): FlowNodeScope[] {
|
||||
const { node } = scope.meta || {};
|
||||
if (!node) {
|
||||
return this.transformService.transformDeps([], { scope });
|
||||
}
|
||||
|
||||
const deps: FlowNodeScope[] = [];
|
||||
|
||||
// 1. find dep nodes
|
||||
let curr: FlowNodeEntity | undefined = node;
|
||||
|
||||
while (curr) {
|
||||
// 2. private scope of parent node can be access
|
||||
const currVarData: FlowNodeVariableData = curr.getData(FlowNodeVariableData);
|
||||
if (currVarData?.private && scope !== currVarData.private) {
|
||||
deps.unshift(currVarData.private);
|
||||
}
|
||||
|
||||
// 3. all public scopes of inputNodes
|
||||
const allInputNodes: FlowNodeEntity[] = this.getAllInputLayerNodes(curr);
|
||||
deps.unshift(
|
||||
...allInputNodes
|
||||
.map((_node) => [
|
||||
_node.getData(FlowNodeVariableData).public,
|
||||
// 4. all public children of inputNodes
|
||||
...this.getAllPublicChildScopes(_node),
|
||||
])
|
||||
.flat()
|
||||
.filter(Boolean)
|
||||
);
|
||||
|
||||
curr = this.getNodeParent(curr);
|
||||
}
|
||||
|
||||
// If scope is GlobalScope, add globalScope to deps
|
||||
const globalScope = this.variableEngine.getScopeById(GlobalScope.ID);
|
||||
if (globalScope) {
|
||||
deps.unshift(globalScope);
|
||||
}
|
||||
|
||||
const uniqDeps = Array.from(new Set(deps));
|
||||
return this.transformService.transformDeps(uniqDeps, { scope });
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the covering scopes for a given scope.
|
||||
* @param scope The scope to get covering scopes for.
|
||||
* @returns An array of covering scopes.
|
||||
*/
|
||||
getCovers(scope: FlowNodeScope): FlowNodeScope[] {
|
||||
// If scope is GlobalScope, return all scopes except GlobalScope
|
||||
if (GlobalScope.is(scope)) {
|
||||
const scopes = this.variableEngine
|
||||
.getAllScopes({ sort: true })
|
||||
.filter((_scope) => !GlobalScope.is(_scope));
|
||||
|
||||
return this.transformService.transformCovers(scopes, { scope });
|
||||
}
|
||||
|
||||
const { node } = scope.meta || {};
|
||||
if (!node) {
|
||||
return this.transformService.transformCovers([], { scope });
|
||||
}
|
||||
|
||||
const isPrivate = scope.meta.type === FlowNodeScopeTypeEnum.private;
|
||||
|
||||
// 1. BFS to find all covered nodes
|
||||
const queue: FlowNodeEntity[] = [];
|
||||
|
||||
if (isPrivate) {
|
||||
// private can only cover its child nodes
|
||||
queue.push(...this.getNodeChildren(node));
|
||||
} else {
|
||||
// Otherwise, cover all nodes of its output lines
|
||||
queue.push(...(this.getAllOutputLayerNodes(node) || []));
|
||||
|
||||
// get all parents
|
||||
let parent = this.getNodeParent(node);
|
||||
|
||||
while (parent) {
|
||||
// if childNodes of parent is private to next nodes, break
|
||||
if (this.isNodeChildrenPrivate(parent)) {
|
||||
break;
|
||||
}
|
||||
|
||||
queue.push(...this.getAllOutputLayerNodes(parent));
|
||||
|
||||
parent = this.getNodeParent(parent);
|
||||
}
|
||||
}
|
||||
|
||||
// 2. Get the public and private scopes of all covered nodes
|
||||
const scopes: FlowNodeScope[] = [];
|
||||
|
||||
while (queue.length) {
|
||||
const _node = queue.shift()!;
|
||||
const variableData: FlowNodeVariableData = _node.getData(FlowNodeVariableData);
|
||||
scopes.push(...variableData.allScopes);
|
||||
const children = _node && this.getNodeChildren(_node);
|
||||
|
||||
if (children?.length) {
|
||||
queue.push(...children);
|
||||
}
|
||||
}
|
||||
|
||||
// 3. If the current scope is private, the public scope of the current node can also be covered
|
||||
const currentVariableData: FlowNodeVariableData = node.getData(FlowNodeVariableData);
|
||||
if (isPrivate && currentVariableData.public) {
|
||||
scopes.push(currentVariableData.public);
|
||||
}
|
||||
|
||||
const uniqScopes = Array.from(new Set(scopes));
|
||||
|
||||
return this.transformService.transformCovers(uniqScopes, { scope });
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the children of a node.
|
||||
* @param node The node to get children for.
|
||||
* @returns An array of child nodes.
|
||||
*/
|
||||
getNodeChildren(node: FlowNodeEntity): FlowNodeEntity[] {
|
||||
if (this.configs?.getNodeChildren) {
|
||||
return this.configs.getNodeChildren?.(node);
|
||||
}
|
||||
const nodeMeta = node.getNodeMeta<WorkflowNodeMeta>();
|
||||
const subCanvas = nodeMeta.subCanvas?.(node);
|
||||
|
||||
if (subCanvas) {
|
||||
// The sub-canvas itself does not have children
|
||||
if (subCanvas.isCanvas) {
|
||||
return [];
|
||||
} else {
|
||||
return subCanvas.canvasNode.collapsedChildren;
|
||||
}
|
||||
}
|
||||
|
||||
// In some scenarios, the parent-child relationship is expressed through connections, so it needs to be configured at the upper level
|
||||
return this.tree.getChildren(node);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get All children of nodes
|
||||
* @param node
|
||||
* @returns
|
||||
*/
|
||||
getAllPublicChildScopes(node: FlowNodeEntity): Scope[] {
|
||||
if (this.isNodeChildrenPrivate(node)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return this.getNodeChildren(node)
|
||||
.map((_node) => [
|
||||
_node.getData(FlowNodeVariableData).public,
|
||||
...this.getAllPublicChildScopes(_node),
|
||||
])
|
||||
.flat();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the parent of a node.
|
||||
* @param node The node to get the parent for.
|
||||
* @returns The parent node or `undefined` if not found.
|
||||
*/
|
||||
getNodeParent(node: FlowNodeEntity): FlowNodeEntity | undefined {
|
||||
// In some scenarios, the parent-child relationship is expressed through connections, so it needs to be configured at the upper level
|
||||
if (this.configs?.getNodeParent) {
|
||||
return this.configs.getNodeParent(node);
|
||||
}
|
||||
let parent = node.document.originTree.getParent(node);
|
||||
|
||||
// If currentParent is Group, get the parent of parent
|
||||
while (parent?.flowNodeType === FlowNodeBaseType.GROUP) {
|
||||
parent = parent.parent;
|
||||
}
|
||||
|
||||
if (!parent) {
|
||||
return parent;
|
||||
}
|
||||
|
||||
const nodeMeta = parent.getNodeMeta<WorkflowNodeMeta>();
|
||||
const subCanvas = nodeMeta.subCanvas?.(parent);
|
||||
if (subCanvas?.isCanvas) {
|
||||
// Get real parent node by subCanvas Configuration
|
||||
return subCanvas.parentNode;
|
||||
}
|
||||
|
||||
return parent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the children of a node are private and cannot be accessed by subsequent nodes.
|
||||
* @param node The node to check.
|
||||
* @returns `true` if the children are private, `false` otherwise.
|
||||
*/
|
||||
protected isNodeChildrenPrivate(node?: FlowNodeEntity): boolean {
|
||||
if (this.configs?.isNodeChildrenPrivate) {
|
||||
return node ? this.configs?.isNodeChildrenPrivate(node) : false;
|
||||
}
|
||||
|
||||
const isSystemNode = node?.id.startsWith('$');
|
||||
|
||||
// Except system node and group node, everything else is private
|
||||
return !isSystemNode && node?.flowNodeType !== FlowNodeBaseType.GROUP;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sorts all scopes in the scope chain.
|
||||
* @returns An empty array, as this method is not implemented.
|
||||
*/
|
||||
sortAll(): Scope[] {
|
||||
// Not implemented yet
|
||||
console.warn('FreeLayoutScopeChain.sortAll is not implemented');
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,214 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { BaseVariableField, VariableEngine } from '@flowgram.ai/variable-core';
|
||||
import { type ASTNode, ASTNodeJSON } from '@flowgram.ai/variable-core';
|
||||
import { FlowNodeEntity } from '@flowgram.ai/document';
|
||||
import { EntityData } from '@flowgram.ai/core';
|
||||
|
||||
import { FlowNodeScope, FlowNodeScopeMeta, FlowNodeScopeTypeEnum } from './types';
|
||||
|
||||
interface Options {
|
||||
variableEngine: VariableEngine;
|
||||
}
|
||||
|
||||
/**
|
||||
* Manages variable data for a flow node, including public and private scopes.
|
||||
*/
|
||||
export class FlowNodeVariableData extends EntityData {
|
||||
static type: string = 'FlowNodeVariableData';
|
||||
|
||||
declare entity: FlowNodeEntity;
|
||||
|
||||
readonly variableEngine: VariableEngine;
|
||||
|
||||
/**
|
||||
* Private variables can be accessed by public ones, but not the other way around.
|
||||
*/
|
||||
protected _private?: FlowNodeScope;
|
||||
|
||||
protected _public: FlowNodeScope;
|
||||
|
||||
/**
|
||||
* The private scope of the node.
|
||||
*/
|
||||
get private() {
|
||||
return this._private;
|
||||
}
|
||||
|
||||
/**
|
||||
* The public scope of the node.
|
||||
*/
|
||||
get public() {
|
||||
return this._public;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a variable in the public AST (Abstract Syntax Tree) with the given key and JSON value.
|
||||
*
|
||||
* @param key - The key under which the variable will be stored.
|
||||
* @param json - The JSON value to store.
|
||||
* @returns The updated AST node.
|
||||
*/
|
||||
public setVar(key: string, json: ASTNodeJSON): ASTNode;
|
||||
|
||||
/**
|
||||
* Sets a variable in the public AST (Abstract Syntax Tree) with the default key 'outputs'.
|
||||
*
|
||||
* @param json - The JSON value to store.
|
||||
* @returns The updated AST node.
|
||||
*/
|
||||
public setVar(json: ASTNodeJSON): ASTNode;
|
||||
|
||||
public setVar(arg1: string | ASTNodeJSON, arg2?: ASTNodeJSON): ASTNode {
|
||||
if (typeof arg1 === 'string' && arg2 !== undefined) {
|
||||
return this.public.ast.set(arg1, arg2);
|
||||
}
|
||||
|
||||
if (typeof arg1 === 'object' && arg2 === undefined) {
|
||||
return this.public.ast.set('outputs', arg1);
|
||||
}
|
||||
|
||||
throw new Error('Invalid arguments');
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a variable from the public AST (Abstract Syntax Tree) by key.
|
||||
*
|
||||
* @param key - The key of the variable to retrieve. Defaults to 'outputs'.
|
||||
* @returns The value of the variable, or undefined if not found.
|
||||
*/
|
||||
public getVar(key: string = 'outputs') {
|
||||
return this.public.ast.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears a variable from the public AST (Abstract Syntax Tree) by key.
|
||||
*
|
||||
* @param key - The key of the variable to clear. Defaults to 'outputs'.
|
||||
* @returns The updated AST node.
|
||||
*/
|
||||
public clearVar(key: string = 'outputs') {
|
||||
return this.public.ast.remove(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a variable in the private AST (Abstract Syntax Tree) with the given key and JSON value.
|
||||
*
|
||||
* @param key - The key under which the variable will be stored.
|
||||
* @param json - The JSON value to store.
|
||||
* @returns The updated AST node.
|
||||
*/
|
||||
public setPrivateVar(key: string, json: ASTNodeJSON): ASTNode;
|
||||
|
||||
/**
|
||||
* Sets a variable in the private AST (Abstract Syntax Tree) with the default key 'outputs'.
|
||||
*
|
||||
* @param json - The JSON value to store.
|
||||
* @returns The updated AST node.
|
||||
*/
|
||||
public setPrivateVar(json: ASTNodeJSON): ASTNode;
|
||||
|
||||
public setPrivateVar(arg1: string | ASTNodeJSON, arg2?: ASTNodeJSON): ASTNode {
|
||||
if (typeof arg1 === 'string' && arg2 !== undefined) {
|
||||
return this.initPrivate().ast.set(arg1, arg2);
|
||||
}
|
||||
|
||||
if (typeof arg1 === 'object' && arg2 === undefined) {
|
||||
return this.initPrivate().ast.set('outputs', arg1);
|
||||
}
|
||||
|
||||
throw new Error('Invalid arguments');
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a variable from the private AST (Abstract Syntax Tree) by key.
|
||||
*
|
||||
* @param key - The key of the variable to retrieve. Defaults to 'outputs'.
|
||||
* @returns The value of the variable, or undefined if not found.
|
||||
*/
|
||||
public getPrivateVar(key: string = 'outputs') {
|
||||
return this.private?.ast.get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears a variable from the private AST (Abstract Syntax Tree) by key.
|
||||
*
|
||||
* @param key - The key of the variable to clear. Defaults to 'outputs'.
|
||||
* @returns The updated AST node.
|
||||
*/
|
||||
public clearPrivateVar(key: string = 'outputs') {
|
||||
return this.private?.ast.remove(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* An array containing all scopes (public and private) of the node.
|
||||
*/
|
||||
get allScopes(): FlowNodeScope[] {
|
||||
const res = [];
|
||||
|
||||
if (this._public) {
|
||||
res.push(this._public);
|
||||
}
|
||||
if (this._private) {
|
||||
res.push(this._private);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
getDefaultData() {
|
||||
return {};
|
||||
}
|
||||
|
||||
constructor(entity: FlowNodeEntity, readonly opts: Options) {
|
||||
super(entity);
|
||||
|
||||
const { variableEngine } = opts || {};
|
||||
this.variableEngine = variableEngine;
|
||||
this._public = this.variableEngine.createScope(this.entity.id, {
|
||||
node: this.entity,
|
||||
type: FlowNodeScopeTypeEnum.public,
|
||||
} as FlowNodeScopeMeta);
|
||||
this.toDispose.push(this._public);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes and returns the private scope for the node.
|
||||
* If the private scope already exists, it returns the existing one.
|
||||
* @returns The private scope of the node.
|
||||
*/
|
||||
initPrivate(): FlowNodeScope {
|
||||
if (!this._private) {
|
||||
this._private = this.variableEngine.createScope(`${this.entity.id}_private`, {
|
||||
node: this.entity,
|
||||
type: FlowNodeScopeTypeEnum.private,
|
||||
} as FlowNodeScopeMeta);
|
||||
|
||||
this.variableEngine.chain.refreshAllChange();
|
||||
|
||||
this.toDispose.push(this._private);
|
||||
}
|
||||
return this._private;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a variable field by key path in the public scope by scope chain.
|
||||
* @param keyPath - The key path of the variable field.
|
||||
* @returns The variable field, or undefined if not found.
|
||||
*/
|
||||
getByKeyPath(keyPath: string[]): BaseVariableField | undefined {
|
||||
return this.public.available.getByKeyPath(keyPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a variable field by key path in the private scope by scope chain.
|
||||
* @param keyPath - The key path of the variable field.
|
||||
* @returns The variable field, or undefined if not found.
|
||||
*/
|
||||
getByKeyPathInPrivate(keyPath: string[]): BaseVariableField | undefined {
|
||||
return this.private?.available.getByKeyPath(keyPath);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
export { FlowNodeVariableData } from './flow-node-variable-data';
|
||||
export { FreeLayoutScopeChain } from './chains/free-layout-scope-chain';
|
||||
export { VariableChainConfig } from './variable-chain-config';
|
||||
export { FixedLayoutScopeChain } from './chains/fixed-layout-scope-chain';
|
||||
export {
|
||||
type FlowNodeScopeMeta,
|
||||
type FlowNodeScope,
|
||||
FlowNodeScopeTypeEnum as FlowNodeScopeType,
|
||||
} from './types';
|
||||
export { GlobalScope, bindGlobalScope } from './scopes/global-scope';
|
||||
export { ScopeChainTransformService } from './services/scope-chain-transform-service';
|
||||
export { getNodeScope, getNodePrivateScope } from './utils';
|
||||
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { injectable, interfaces } from 'inversify';
|
||||
import { Scope, VariableEngine } from '@flowgram.ai/variable-core';
|
||||
|
||||
/**
|
||||
* Global Scope stores all variables that are not scoped to any node.
|
||||
*
|
||||
* - Variables in Global Scope can be accessed by any node.
|
||||
* - Any other scope's variables can not be accessed by Global Scope.
|
||||
*/
|
||||
@injectable()
|
||||
export class GlobalScope extends Scope {
|
||||
static readonly ID = Symbol('GlobalScope');
|
||||
|
||||
/**
|
||||
* Check if the scope is Global Scope.
|
||||
* @param scope
|
||||
* @returns
|
||||
*/
|
||||
static is(scope: Scope) {
|
||||
return scope.id === GlobalScope.ID;
|
||||
}
|
||||
}
|
||||
|
||||
export const bindGlobalScope = (bind: interfaces.Bind) => {
|
||||
bind(GlobalScope).toDynamicValue((ctx) => {
|
||||
const variableEngine = ctx.container.get(VariableEngine);
|
||||
let scope = variableEngine.getScopeById(GlobalScope.ID) as GlobalScope;
|
||||
|
||||
if (!scope) {
|
||||
scope = variableEngine.createScope(
|
||||
GlobalScope.ID,
|
||||
{},
|
||||
{ ScopeConstructor: GlobalScope }
|
||||
) as GlobalScope;
|
||||
variableEngine.chain.refreshAllChange();
|
||||
}
|
||||
|
||||
return scope;
|
||||
});
|
||||
};
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { inject, injectable, optional } from 'inversify';
|
||||
import { Scope, VariableEngine } from '@flowgram.ai/variable-core';
|
||||
import { FlowDocument } from '@flowgram.ai/document';
|
||||
import { lazyInject } from '@flowgram.ai/core';
|
||||
|
||||
import { VariableChainConfig } from '../variable-chain-config';
|
||||
import { FlowNodeScope } from '../types';
|
||||
|
||||
/**
|
||||
* Context for scope transformers.
|
||||
*/
|
||||
export interface TransformerContext {
|
||||
/**
|
||||
* The current scope
|
||||
*/
|
||||
scope: FlowNodeScope;
|
||||
/**
|
||||
* The flow document.
|
||||
*/
|
||||
document: FlowDocument;
|
||||
/**
|
||||
* The variable engine.
|
||||
*/
|
||||
variableEngine: VariableEngine;
|
||||
}
|
||||
|
||||
/**
|
||||
* A function that transforms an array of scopes.
|
||||
* @param scopes The array of scopes to transform.
|
||||
* @param ctx The transformer context.
|
||||
* @returns The transformed array of scopes.
|
||||
*/
|
||||
export type IScopeTransformer = (scopes: Scope[], ctx: TransformerContext) => Scope[];
|
||||
|
||||
const passthrough: IScopeTransformer = (scopes, ctx) => scopes;
|
||||
|
||||
/**
|
||||
* A service for transforming scope chains.
|
||||
*/
|
||||
@injectable()
|
||||
export class ScopeChainTransformService {
|
||||
protected transformerMap: Map<
|
||||
string,
|
||||
{ transformDeps: IScopeTransformer; transformCovers: IScopeTransformer }
|
||||
> = new Map();
|
||||
|
||||
@lazyInject(FlowDocument) document: FlowDocument;
|
||||
|
||||
@lazyInject(VariableEngine) variableEngine: VariableEngine;
|
||||
|
||||
constructor(
|
||||
@optional()
|
||||
@inject(VariableChainConfig)
|
||||
protected configs?: VariableChainConfig
|
||||
) {
|
||||
if (this.configs?.transformDeps || this.configs?.transformCovers) {
|
||||
this.transformerMap.set('VARIABLE_LAYOUT_CONFIG', {
|
||||
transformDeps: this.configs.transformDeps || passthrough,
|
||||
transformCovers: this.configs.transformCovers || passthrough,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* check if transformer registered
|
||||
* @param transformerId used to identify transformer, prevent duplicated
|
||||
* @returns
|
||||
*/
|
||||
hasTransformer(transformerId: string) {
|
||||
return this.transformerMap.has(transformerId);
|
||||
}
|
||||
|
||||
/**
|
||||
* register new transform function
|
||||
* @param transformerId used to identify transformer, prevent duplicated transformer
|
||||
* @param transformer The transformer to register.
|
||||
*/
|
||||
registerTransformer(
|
||||
transformerId: string,
|
||||
transformer: {
|
||||
transformDeps: IScopeTransformer;
|
||||
transformCovers: IScopeTransformer;
|
||||
}
|
||||
) {
|
||||
this.transformerMap.set(transformerId, transformer);
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms the dependency scopes.
|
||||
* @param scopes The array of scopes to transform.
|
||||
* @param param1 The context for the transformation.
|
||||
* @returns The transformed array of scopes.
|
||||
*/
|
||||
transformDeps(scopes: Scope[], { scope }: { scope: Scope }): Scope[] {
|
||||
return Array.from(this.transformerMap.values()).reduce((scopes, transformer) => {
|
||||
if (!transformer.transformDeps) {
|
||||
return scopes;
|
||||
}
|
||||
|
||||
scopes = transformer.transformDeps(scopes, {
|
||||
scope,
|
||||
document: this.document,
|
||||
variableEngine: this.variableEngine,
|
||||
});
|
||||
return scopes;
|
||||
}, scopes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms the cover scopes.
|
||||
* @param scopes The array of scopes to transform.
|
||||
* @param param1 The context for the transformation.
|
||||
* @returns The transformed array of scopes.
|
||||
*/
|
||||
transformCovers(scopes: Scope[], { scope }: { scope: Scope }): Scope[] {
|
||||
return Array.from(this.transformerMap.values()).reduce((scopes, transformer) => {
|
||||
if (!transformer.transformCovers) {
|
||||
return scopes;
|
||||
}
|
||||
|
||||
scopes = transformer.transformCovers(scopes, {
|
||||
scope,
|
||||
document: this.document,
|
||||
variableEngine: this.variableEngine,
|
||||
});
|
||||
return scopes;
|
||||
}, scopes);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { Scope } from '@flowgram.ai/variable-core';
|
||||
import { FlowNodeEntity } from '@flowgram.ai/document';
|
||||
|
||||
/**
|
||||
* Enum for flow node scope types.
|
||||
*/
|
||||
export enum FlowNodeScopeTypeEnum {
|
||||
/**
|
||||
* Public scope.
|
||||
*/
|
||||
public = 'public',
|
||||
/**
|
||||
* Private scope.
|
||||
*/
|
||||
private = 'private',
|
||||
}
|
||||
|
||||
/**
|
||||
* Metadata for a flow node scope.
|
||||
*/
|
||||
export interface FlowNodeScopeMeta {
|
||||
/**
|
||||
* The flow node entity associated with the scope.
|
||||
*/
|
||||
node?: FlowNodeEntity;
|
||||
/**
|
||||
* The type of the scope.
|
||||
*/
|
||||
type?: FlowNodeScopeTypeEnum;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a virtual node in the scope chain.
|
||||
*/
|
||||
export interface ScopeVirtualNode {
|
||||
/**
|
||||
* The ID of the virtual node.
|
||||
*/
|
||||
id: string;
|
||||
/**
|
||||
* The type of the flow node.
|
||||
*/
|
||||
flowNodeType: 'virtualNode';
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a node in the scope chain, which can be either a flow node entity or a virtual node.
|
||||
*/
|
||||
export type ScopeChainNode = FlowNodeEntity | ScopeVirtualNode;
|
||||
|
||||
/**
|
||||
* Represents a scope associated with a flow node.
|
||||
*/
|
||||
export interface FlowNodeScope extends Scope<FlowNodeScopeMeta> {}
|
||||
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { FlowNodeEntity } from '@flowgram.ai/document';
|
||||
|
||||
import { FlowNodeVariableData } from './flow-node-variable-data';
|
||||
|
||||
/**
|
||||
* Use `node.scope` instead.
|
||||
* @deprecated
|
||||
* @param node The flow node entity.
|
||||
* @returns The public scope of the node.
|
||||
*/
|
||||
export function getNodeScope(node: FlowNodeEntity) {
|
||||
return node.getData(FlowNodeVariableData).public;
|
||||
}
|
||||
|
||||
/**
|
||||
* Use `node.privateScope` instead.
|
||||
* @deprecated
|
||||
* @param node The flow node entity.
|
||||
* @returns The private scope of the node.
|
||||
*/
|
||||
export function getNodePrivateScope(node: FlowNodeEntity) {
|
||||
return node.getData(FlowNodeVariableData).initPrivate();
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import { FlowNodeEntity } from '@flowgram.ai/document';
|
||||
|
||||
import { type ScopeChainNode } from './types';
|
||||
import { IScopeTransformer } from './services/scope-chain-transform-service';
|
||||
|
||||
/**
|
||||
* Configuration for the variable chain.
|
||||
*/
|
||||
export interface VariableChainConfig {
|
||||
/**
|
||||
* The output variables of a node's children cannot be accessed by subsequent nodes.
|
||||
*
|
||||
* @param node
|
||||
* @returns
|
||||
*/
|
||||
isNodeChildrenPrivate?: (node: ScopeChainNode) => boolean;
|
||||
|
||||
/**
|
||||
* For fixed layout scenarios: there are a large number of useless nodes between parent and child (such as inlineBlocks, etc., which need to be configured to be skipped)
|
||||
* For free canvas scenarios: in some scenarios, the parent-child relationship between nodes is expressed through connections or other interactive forms, which needs to be configurable
|
||||
*/
|
||||
getNodeChildren?: (node: FlowNodeEntity) => FlowNodeEntity[];
|
||||
getNodeParent?: (node: FlowNodeEntity) => FlowNodeEntity | undefined;
|
||||
|
||||
/**
|
||||
* Fine-tune the dependency scope.
|
||||
*/
|
||||
transformDeps?: IScopeTransformer;
|
||||
|
||||
/**
|
||||
* Fine-tune the cover scope.
|
||||
*/
|
||||
transformCovers?: IScopeTransformer;
|
||||
}
|
||||
|
||||
export const VariableChainConfig = Symbol('VariableChainConfig');
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "@flowgram.ai/ts-config/tsconfig.flow.path.json",
|
||||
"compilerOptions": {
|
||||
},
|
||||
"include": ["src", "__tests__"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
const path = require('path');
|
||||
import { defineConfig } from 'vitest/config';
|
||||
|
||||
export default defineConfig({
|
||||
build: {
|
||||
commonjsOptions: {
|
||||
transformMixedEsModules: true,
|
||||
},
|
||||
},
|
||||
test: {
|
||||
globals: true,
|
||||
mockReset: false,
|
||||
environment: 'jsdom',
|
||||
setupFiles: [path.resolve(__dirname, './vitest.setup.ts')],
|
||||
include: ['**/?(*.){test,spec}.?(c|m)[jt]s?(x)'],
|
||||
exclude: [
|
||||
'**/__mocks__/**',
|
||||
'**/node_modules/**',
|
||||
'**/dist/**',
|
||||
'**/lib/**', // lib 编译结果忽略掉
|
||||
'**/cypress/**',
|
||||
'**/.{idea,git,cache,output,temp}/**',
|
||||
'**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*',
|
||||
],
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
import 'reflect-metadata';
|
||||
Reference in New Issue
Block a user