gs2-cdk 1.0.18 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/script/model/Namespace.d.ts +1 -0
- package/script/model/Namespace.js +5 -0
- package/script/model/Namespace.js.map +1 -1
- package/script/model/Namespace.ts +7 -0
- package/stateMachine/index.d.ts +12 -0
- package/stateMachine/index.js +32 -0
- package/stateMachine/index.js.map +1 -0
- package/stateMachine/index.ts +36 -0
- package/stateMachine/integration/ArrayType.d.ts +8 -0
- package/stateMachine/integration/ArrayType.js +18 -0
- package/stateMachine/integration/ArrayType.js.map +1 -0
- package/stateMachine/integration/ArrayType.ts +36 -0
- package/stateMachine/integration/BoolType.d.ts +8 -0
- package/stateMachine/integration/BoolType.js +18 -0
- package/stateMachine/integration/BoolType.js.map +1 -0
- package/stateMachine/integration/BoolType.ts +36 -0
- package/stateMachine/integration/ErrorEvent.d.ts +4 -0
- package/stateMachine/integration/ErrorEvent.js +27 -0
- package/stateMachine/integration/ErrorEvent.js.map +1 -0
- package/stateMachine/integration/ErrorEvent.ts +24 -0
- package/stateMachine/integration/ErrorTask.d.ts +12 -0
- package/stateMachine/integration/ErrorTask.js +27 -0
- package/stateMachine/integration/ErrorTask.js.map +1 -0
- package/stateMachine/integration/ErrorTask.ts +49 -0
- package/stateMachine/integration/Event.d.ts +10 -0
- package/stateMachine/integration/Event.js +15 -0
- package/stateMachine/integration/Event.js.map +1 -0
- package/stateMachine/integration/Event.ts +35 -0
- package/stateMachine/integration/FloatType.d.ts +8 -0
- package/stateMachine/integration/FloatType.js +18 -0
- package/stateMachine/integration/FloatType.js.map +1 -0
- package/stateMachine/integration/FloatType.ts +36 -0
- package/stateMachine/integration/IGslElement.d.ts +3 -0
- package/stateMachine/integration/IGslElement.js +3 -0
- package/stateMachine/integration/IGslElement.js.map +1 -0
- package/stateMachine/integration/IGslElement.ts +18 -0
- package/stateMachine/integration/IMermaidElement.d.ts +3 -0
- package/stateMachine/integration/IMermaidElement.js +3 -0
- package/stateMachine/integration/IMermaidElement.js.map +1 -0
- package/stateMachine/integration/IMermaidElement.ts +18 -0
- package/stateMachine/integration/ITask.d.ts +8 -0
- package/stateMachine/integration/ITask.js +3 -0
- package/stateMachine/integration/ITask.js.map +1 -0
- package/stateMachine/integration/ITask.ts +24 -0
- package/stateMachine/integration/IVariable.d.ts +6 -0
- package/stateMachine/integration/IVariable.js +3 -0
- package/stateMachine/integration/IVariable.js.map +1 -0
- package/stateMachine/integration/IVariable.ts +22 -0
- package/stateMachine/integration/InParam.d.ts +6 -0
- package/stateMachine/integration/InParam.js +10 -0
- package/stateMachine/integration/InParam.js.map +1 -0
- package/stateMachine/integration/InParam.ts +26 -0
- package/stateMachine/integration/IntType.d.ts +8 -0
- package/stateMachine/integration/IntType.js +18 -0
- package/stateMachine/integration/IntType.js.map +1 -0
- package/stateMachine/integration/IntType.ts +36 -0
- package/stateMachine/integration/MapType.d.ts +8 -0
- package/stateMachine/integration/MapType.js +18 -0
- package/stateMachine/integration/MapType.js.map +1 -0
- package/stateMachine/integration/MapType.ts +36 -0
- package/stateMachine/integration/OutParam.d.ts +6 -0
- package/stateMachine/integration/OutParam.js +10 -0
- package/stateMachine/integration/OutParam.js.map +1 -0
- package/stateMachine/integration/OutParam.ts +26 -0
- package/stateMachine/integration/PassTask.d.ts +11 -0
- package/stateMachine/integration/PassTask.js +24 -0
- package/stateMachine/integration/PassTask.js.map +1 -0
- package/stateMachine/integration/PassTask.ts +45 -0
- package/stateMachine/integration/Result.d.ts +7 -0
- package/stateMachine/integration/Result.js +11 -0
- package/stateMachine/integration/Result.js.map +1 -0
- package/stateMachine/integration/Result.ts +28 -0
- package/stateMachine/integration/Script.d.ts +5 -0
- package/stateMachine/integration/Script.js +25 -0
- package/stateMachine/integration/Script.js.map +1 -0
- package/stateMachine/integration/Script.ts +24 -0
- package/stateMachine/integration/StateMachine.d.ts +17 -0
- package/stateMachine/integration/StateMachine.js +83 -0
- package/stateMachine/integration/StateMachine.js.map +1 -0
- package/stateMachine/integration/StateMachine.ts +116 -0
- package/stateMachine/integration/StateMachineDefinition.d.ts +40 -0
- package/stateMachine/integration/StateMachineDefinition.js +107 -0
- package/stateMachine/integration/StateMachineDefinition.js.map +1 -0
- package/stateMachine/integration/StateMachineDefinition.ts +146 -0
- package/stateMachine/integration/StringType.d.ts +8 -0
- package/stateMachine/integration/StringType.js +18 -0
- package/stateMachine/integration/StringType.js.map +1 -0
- package/stateMachine/integration/StringType.ts +36 -0
- package/stateMachine/integration/SubStateMachineTask.d.ts +17 -0
- package/stateMachine/integration/SubStateMachineTask.js +42 -0
- package/stateMachine/integration/SubStateMachineTask.js.map +1 -0
- package/stateMachine/integration/SubStateMachineTask.ts +71 -0
- package/stateMachine/integration/Task.d.ts +19 -0
- package/stateMachine/integration/Task.js +63 -0
- package/stateMachine/integration/Task.js.map +1 -0
- package/stateMachine/integration/Task.ts +98 -0
- package/stateMachine/integration/WaitTask.d.ts +15 -0
- package/stateMachine/integration/WaitTask.js +49 -0
- package/stateMachine/integration/WaitTask.js.map +1 -0
- package/stateMachine/integration/WaitTask.ts +75 -0
- package/stateMachine/integration/indent.d.ts +1 -0
- package/stateMachine/integration/indent.js +22 -0
- package/stateMachine/integration/indent.js.map +1 -0
- package/stateMachine/integration/indent.ts +18 -0
- package/stateMachine/model/Namespace.d.ts +25 -0
- package/stateMachine/model/Namespace.js +89 -0
- package/stateMachine/model/Namespace.js.map +1 -0
- package/stateMachine/model/Namespace.ts +140 -0
- package/stateMachine/model/StackEntry.d.ts +9 -0
- package/stateMachine/model/StackEntry.js +20 -0
- package/stateMachine/model/StackEntry.js.map +1 -0
- package/stateMachine/model/StackEntry.ts +44 -0
- package/stateMachine/model/StateMachineMaster.d.ts +18 -0
- package/stateMachine/model/StateMachineMaster.js +60 -0
- package/stateMachine/model/StateMachineMaster.js.map +1 -0
- package/stateMachine/model/StateMachineMaster.ts +97 -0
- package/stateMachine/model/Variable.d.ts +9 -0
- package/stateMachine/model/Variable.js +20 -0
- package/stateMachine/model/Variable.js.map +1 -0
- package/stateMachine/model/Variable.ts +44 -0
- package/stateMachine/model/index.d.ts +9 -0
- package/stateMachine/model/index.js +28 -0
- package/stateMachine/model/index.js.map +1 -0
- package/stateMachine/model/index.ts +34 -0
- package/stateMachine/model/options/NamespaceOptions.d.ts +10 -0
- package/stateMachine/model/options/NamespaceOptions.js +3 -0
- package/stateMachine/model/options/NamespaceOptions.js.map +1 -0
- package/stateMachine/model/options/NamespaceOptions.ts +27 -0
- package/stateMachine/model/options/StackEntryOptions.d.ts +2 -0
- package/stateMachine/model/options/StackEntryOptions.js +18 -0
- package/stateMachine/model/options/StackEntryOptions.js.map +1 -0
- package/stateMachine/model/options/StackEntryOptions.ts +19 -0
- package/stateMachine/model/options/StateMachineMasterOptions.d.ts +2 -0
- package/stateMachine/model/options/StateMachineMasterOptions.js +18 -0
- package/stateMachine/model/options/StateMachineMasterOptions.js.map +1 -0
- package/stateMachine/model/options/StateMachineMasterOptions.ts +19 -0
- package/stateMachine/model/options/VariableOptions.d.ts +2 -0
- package/stateMachine/model/options/VariableOptions.js +18 -0
- package/stateMachine/model/options/VariableOptions.js.map +1 -0
- package/stateMachine/model/options/VariableOptions.ts +19 -0
- package/stateMachine/ref/NamespaceRef.d.ts +7 -0
- package/stateMachine/ref/NamespaceRef.js +40 -0
- package/stateMachine/ref/NamespaceRef.js.map +1 -0
- package/stateMachine/ref/NamespaceRef.ts +61 -0
- package/stateMachine/ref/StateMachineMasterRef.d.ts +6 -0
- package/stateMachine/ref/StateMachineMasterRef.js +40 -0
- package/stateMachine/ref/StateMachineMasterRef.js.map +1 -0
- package/stateMachine/ref/StateMachineMasterRef.ts +54 -0
- package/stateMachine/ref/index.d.ts +3 -0
- package/stateMachine/ref/index.js +24 -0
- package/stateMachine/ref/index.js.map +1 -0
- package/stateMachine/ref/index.ts +22 -0
- package/stateMachine/stampSheet/StartStateMachineByUserId.d.ts +4 -0
- package/stateMachine/stampSheet/StartStateMachineByUserId.js +30 -0
- package/stateMachine/stampSheet/StartStateMachineByUserId.js.map +1 -0
- package/stateMachine/stampSheet/StartStateMachineByUserId.ts +39 -0
- package/stateMachine/stampSheet/index.d.ts +2 -0
- package/stateMachine/stampSheet/index.js +22 -0
- package/stateMachine/stampSheet/index.js.map +1 -0
- package/stateMachine/stampSheet/index.ts +20 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const Event_1 = tslib_1.__importDefault(require("./Event"));
|
|
5
|
+
const Result_1 = tslib_1.__importDefault(require("./Result"));
|
|
6
|
+
const Script_1 = tslib_1.__importDefault(require("./Script"));
|
|
7
|
+
class Task {
|
|
8
|
+
constructor(name, args, script) {
|
|
9
|
+
this.events = [];
|
|
10
|
+
this.results = [];
|
|
11
|
+
this.name = name;
|
|
12
|
+
this.arguments = args;
|
|
13
|
+
this.script = script;
|
|
14
|
+
}
|
|
15
|
+
getName() {
|
|
16
|
+
return this.name;
|
|
17
|
+
}
|
|
18
|
+
transition(event) {
|
|
19
|
+
event.fromTaskName = this.name;
|
|
20
|
+
this.events.push(event);
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
getEvents() {
|
|
24
|
+
return this.events;
|
|
25
|
+
}
|
|
26
|
+
result(name, emitEventArgumentVariableNames, nextTaskName) {
|
|
27
|
+
this.results.push(new Result_1.default(name, name, emitEventArgumentVariableNames));
|
|
28
|
+
this.transition(new Event_1.default(name, Array.from(emitEventArgumentVariableNames.keys()), nextTaskName));
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
scriptPayload() {
|
|
32
|
+
let output = this.script + "\n\n";
|
|
33
|
+
for (let result of this.results) {
|
|
34
|
+
output += `if result == '${result.name}' then
|
|
35
|
+
result = {
|
|
36
|
+
event='${result.emitEventName}',
|
|
37
|
+
params={${Array.from(result.emitEventArgumentVariableNames.entries()).map(v => `${v[0].getName()}=${v[1]}`).join(", ")}},
|
|
38
|
+
updatedVariables=args.variables
|
|
39
|
+
}
|
|
40
|
+
end\n`;
|
|
41
|
+
}
|
|
42
|
+
return new Script_1.default(this.name, output);
|
|
43
|
+
}
|
|
44
|
+
gsl() {
|
|
45
|
+
let output = `Task ${this.name}(${this.arguments.map(v => v.gsl()).join(", ")}) {\n`;
|
|
46
|
+
for (let event of this.events) {
|
|
47
|
+
output += ` Event ${event.name}(${event.arguments.map(v => v.gsl()).join(", ")});\n`;
|
|
48
|
+
}
|
|
49
|
+
output += ` Script grn:gs2:{region}:{ownerId}:script:{scriptNamespaceName}:script:{stateMachineName}_${this.name}\n}\n\n`;
|
|
50
|
+
return output;
|
|
51
|
+
}
|
|
52
|
+
mermaid() {
|
|
53
|
+
let output = "";
|
|
54
|
+
for (let event of this.events) {
|
|
55
|
+
if (event.nextTaskName == "Error")
|
|
56
|
+
continue;
|
|
57
|
+
output += `{stateMachineName}_${event.fromTaskName}[[${event.fromTaskName}]] -->|${event.name}| {stateMachineName}_${event.nextTaskName}\n`;
|
|
58
|
+
}
|
|
59
|
+
return output;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.default = Task;
|
|
63
|
+
//# sourceMappingURL=Task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Task.js","sourceRoot":"","sources":["Task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016- Game Server Services, Inc. or its affiliates. All Rights
|
|
3
|
+
* Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License").
|
|
6
|
+
* You may not use this file except in compliance with the License.
|
|
7
|
+
* A copy of the License is located at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* or in the "license" file accompanying this file. This file is distributed
|
|
12
|
+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
|
13
|
+
* express or implied. See the License for the specific language governing
|
|
14
|
+
* permissions and limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import ITask from "./ITask";
|
|
17
|
+
import IVariable from "./IVariable";
|
|
18
|
+
import Event from "./Event";
|
|
19
|
+
import Result from "./Result";
|
|
20
|
+
import Script from "./Script";
|
|
21
|
+
|
|
22
|
+
export default class Task implements ITask {
|
|
23
|
+
private name: string;
|
|
24
|
+
private arguments: IVariable[];
|
|
25
|
+
private script: string;
|
|
26
|
+
|
|
27
|
+
private events: Event[] = [];
|
|
28
|
+
private results: Result[] = [];
|
|
29
|
+
|
|
30
|
+
constructor(name: string, args: IVariable[], script: string) {
|
|
31
|
+
this.name = name;
|
|
32
|
+
this.arguments = args;
|
|
33
|
+
this.script = script;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
getName(): string {
|
|
37
|
+
return this.name;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
transition(event: Event): this {
|
|
41
|
+
event.fromTaskName = this.name;
|
|
42
|
+
this.events.push(event);
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
getEvents(): Event[] {
|
|
47
|
+
return this.events;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
result(name: string, emitEventArgumentVariableNames: Map<IVariable, string>, nextTaskName: string): this {
|
|
51
|
+
this.results.push(new Result(
|
|
52
|
+
name,
|
|
53
|
+
name,
|
|
54
|
+
emitEventArgumentVariableNames
|
|
55
|
+
));
|
|
56
|
+
this.transition(new Event(
|
|
57
|
+
name,
|
|
58
|
+
Array.from(emitEventArgumentVariableNames.keys()),
|
|
59
|
+
nextTaskName
|
|
60
|
+
));
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
scriptPayload(): Script {
|
|
65
|
+
let output = this.script + "\n\n";
|
|
66
|
+
for (let result of this.results) {
|
|
67
|
+
output += `if result == '${result.name}' then
|
|
68
|
+
result = {
|
|
69
|
+
event='${result.emitEventName}',
|
|
70
|
+
params={${Array.from(result.emitEventArgumentVariableNames.entries()).map(v => `${v[0].getName()}=${v[1]}`).join(", ")}},
|
|
71
|
+
updatedVariables=args.variables
|
|
72
|
+
}
|
|
73
|
+
end\n`;
|
|
74
|
+
}
|
|
75
|
+
return new Script(
|
|
76
|
+
this.name,
|
|
77
|
+
output
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
gsl(): string {
|
|
82
|
+
let output = `Task ${this.name}(${this.arguments.map(v => v.gsl()).join(", ")}) {\n`;
|
|
83
|
+
for (let event of this.events) {
|
|
84
|
+
output += ` Event ${event.name}(${event.arguments.map(v => v.gsl()).join(", ")});\n`;
|
|
85
|
+
}
|
|
86
|
+
output += ` Script grn:gs2:{region}:{ownerId}:script:{scriptNamespaceName}:script:{stateMachineName}_${this.name}\n}\n\n`;
|
|
87
|
+
return output;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
mermaid(): string {
|
|
91
|
+
let output = "";
|
|
92
|
+
for(let event of this.events) {
|
|
93
|
+
if (event.nextTaskName == "Error") continue;
|
|
94
|
+
output += `{stateMachineName}_${event.fromTaskName}[[${event.fromTaskName}]] -->|${event.name}| {stateMachineName}_${event.nextTaskName}\n`;
|
|
95
|
+
}
|
|
96
|
+
return output;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import ITask from "./ITask";
|
|
2
|
+
import Event from "./Event";
|
|
3
|
+
import IVariable from "./IVariable";
|
|
4
|
+
export default class WaitTask implements ITask {
|
|
5
|
+
name: string;
|
|
6
|
+
private results;
|
|
7
|
+
private events;
|
|
8
|
+
constructor(name: string);
|
|
9
|
+
getName(): string;
|
|
10
|
+
transition(event: Event): this;
|
|
11
|
+
getEvents(): Event[];
|
|
12
|
+
result(resultName: string, emitEventArgumentVariableNames: Map<IVariable, string>, nextTaskName: string): this;
|
|
13
|
+
gsl(): string;
|
|
14
|
+
mermaid(): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const Result_1 = tslib_1.__importDefault(require("./Result"));
|
|
5
|
+
const Event_1 = tslib_1.__importDefault(require("./Event"));
|
|
6
|
+
class WaitTask {
|
|
7
|
+
constructor(name) {
|
|
8
|
+
this.results = [];
|
|
9
|
+
this.events = [];
|
|
10
|
+
this.name = name;
|
|
11
|
+
}
|
|
12
|
+
getName() {
|
|
13
|
+
return this.name;
|
|
14
|
+
}
|
|
15
|
+
transition(event) {
|
|
16
|
+
event.fromTaskName = this.name;
|
|
17
|
+
this.events.push(event);
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
getEvents() {
|
|
21
|
+
return this.events;
|
|
22
|
+
}
|
|
23
|
+
result(resultName, emitEventArgumentVariableNames, nextTaskName) {
|
|
24
|
+
this.results.push(new Result_1.default(resultName, resultName, emitEventArgumentVariableNames));
|
|
25
|
+
let eventArguments = Array.from(emitEventArgumentVariableNames.keys());
|
|
26
|
+
this.transition(new Event_1.default(resultName, eventArguments, nextTaskName));
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
gsl() {
|
|
30
|
+
let output = `WaitTask ${this.name} {\n`;
|
|
31
|
+
for (let event of this.events) {
|
|
32
|
+
let argumentsPart = event.arguments.map(v => v.gsl()).join(", ");
|
|
33
|
+
output += ` Event ${event.name}(${argumentsPart});\n`;
|
|
34
|
+
}
|
|
35
|
+
output += "}\n\n";
|
|
36
|
+
return output;
|
|
37
|
+
}
|
|
38
|
+
mermaid() {
|
|
39
|
+
let output = "";
|
|
40
|
+
for (let event of this.events) {
|
|
41
|
+
if (event.nextTaskName != "Error") {
|
|
42
|
+
output += `{stateMachineName}_${event.fromTaskName}[{${event.fromTaskName}}] -->|${event.name}| {stateMachineName}_${event.nextTaskName}\n`;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return output;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.default = WaitTask;
|
|
49
|
+
//# sourceMappingURL=WaitTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaitTask.js","sourceRoot":"","sources":["WaitTask.ts"],"names":[],"mappings":";;;AAgBA,8DAA8B;AAC9B,4DAA4B;AAG5B,MAAqB,QAAQ;IAMzB,YAAY,IAAY;QAHhB,YAAO,GAAa,EAAE,CAAC;QACvB,WAAM,GAAY,EAAE,CAAC;QAGzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,KAAY;QACnB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,UAAkB,EAAE,8BAAsD,EAAE,YAAoB;QACnG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,gBAAM,CACxB,UAAU,EACV,UAAU,EACV,8BAA8B,CACjC,CAAC,CAAC;QACH,IAAI,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,UAAU,CAAC,IAAI,eAAK,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG;QACC,IAAI,MAAM,GAAG,YAAY,IAAI,CAAC,IAAI,MAAM,CAAC;QACzC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC3B,IAAI,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,IAAI,WAAW,KAAK,CAAC,IAAI,IAAI,aAAa,MAAM,CAAC;SAC1D;QACD,MAAM,IAAI,OAAO,CAAC;QAClB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC3B,IAAI,KAAK,CAAC,YAAY,IAAI,OAAO,EAAE;gBAC/B,MAAM,IAAI,sBAAsB,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,UAAU,KAAK,CAAC,IAAI,wBAAwB,KAAK,CAAC,YAAY,IAAI,CAAC;aAC/I;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAtDD,2BAsDC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016- Game Server Services, Inc. or its affiliates. All Rights
|
|
3
|
+
* Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License").
|
|
6
|
+
* You may not use this file except in compliance with the License.
|
|
7
|
+
* A copy of the License is located at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* or in the "license" file accompanying this file. This file is distributed
|
|
12
|
+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
|
13
|
+
* express or implied. See the License for the specific language governing
|
|
14
|
+
* permissions and limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import ITask from "./ITask";
|
|
17
|
+
import Result from "./Result";
|
|
18
|
+
import Event from "./Event";
|
|
19
|
+
import IVariable from "./IVariable";
|
|
20
|
+
|
|
21
|
+
export default class WaitTask implements ITask {
|
|
22
|
+
name: string;
|
|
23
|
+
|
|
24
|
+
private results: Result[] = [];
|
|
25
|
+
private events: Event[] = [];
|
|
26
|
+
|
|
27
|
+
constructor(name: string) {
|
|
28
|
+
this.name = name;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
getName(): string {
|
|
32
|
+
return this.name;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
transition(event: Event): this {
|
|
36
|
+
event.fromTaskName = this.name;
|
|
37
|
+
this.events.push(event);
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
getEvents(): Event[] {
|
|
42
|
+
return this.events;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
result(resultName: string, emitEventArgumentVariableNames: Map<IVariable, string>, nextTaskName: string): this {
|
|
46
|
+
this.results.push(new Result(
|
|
47
|
+
resultName,
|
|
48
|
+
resultName,
|
|
49
|
+
emitEventArgumentVariableNames
|
|
50
|
+
));
|
|
51
|
+
let eventArguments = Array.from(emitEventArgumentVariableNames.keys());
|
|
52
|
+
this.transition(new Event(resultName, eventArguments, nextTaskName));
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
gsl(): string {
|
|
57
|
+
let output = `WaitTask ${this.name} {\n`;
|
|
58
|
+
for (let event of this.events) {
|
|
59
|
+
let argumentsPart = event.arguments.map(v => v.gsl()).join(", ");
|
|
60
|
+
output += ` Event ${event.name}(${argumentsPart});\n`;
|
|
61
|
+
}
|
|
62
|
+
output += "}\n\n";
|
|
63
|
+
return output;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
mermaid(): string {
|
|
67
|
+
let output = "";
|
|
68
|
+
for (let event of this.events) {
|
|
69
|
+
if (event.nextTaskName != "Error") {
|
|
70
|
+
output += `{stateMachineName}_${event.fromTaskName}[{${event.fromTaskName}}] -->|${event.name}| {stateMachineName}_${event.nextTaskName}\n`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return output;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function indent(str: string, size: number): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*
|
|
4
|
+
* Copyright 2016- Game Server Services, Inc. or its affiliates. All Rights
|
|
5
|
+
* Reserved.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License").
|
|
8
|
+
* You may not use this file except in compliance with the License.
|
|
9
|
+
* A copy of the License is located at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* or in the "license" file accompanying this file. This file is distributed
|
|
14
|
+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
|
15
|
+
* express or implied. See the License for the specific language governing
|
|
16
|
+
* permissions and limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
function indent(str, size) {
|
|
19
|
+
return str.replace(/^(?!\s*$)/gm, ' '.repeat(size));
|
|
20
|
+
}
|
|
21
|
+
exports.default = indent;
|
|
22
|
+
//# sourceMappingURL=indent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indent.js","sourceRoot":"","sources":["indent.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;GAcG;AACH,SAAwB,MAAM,CAAC,GAAW,EAAE,IAAY;IACpD,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAFD,yBAEC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016- Game Server Services, Inc. or its affiliates. All Rights
|
|
3
|
+
* Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License").
|
|
6
|
+
* You may not use this file except in compliance with the License.
|
|
7
|
+
* A copy of the License is located at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* or in the "license" file accompanying this file. This file is distributed
|
|
12
|
+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
|
13
|
+
* express or implied. See the License for the specific language governing
|
|
14
|
+
* permissions and limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export default function indent(str: string, size: number): string {
|
|
17
|
+
return str.replace(/^(?!\s*$)/gm, ' '.repeat(size));
|
|
18
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CdkResource, Stack } from "../../core/model";
|
|
2
|
+
import { GetAttr } from "../../core/func";
|
|
3
|
+
import ScriptNamespace from "../../script/model/Namespace";
|
|
4
|
+
import NamespaceRef from "../ref/NamespaceRef";
|
|
5
|
+
import { NamespaceOptions } from "./options/NamespaceOptions";
|
|
6
|
+
import StateMachineDefinition from "../integration/StateMachineDefinition";
|
|
7
|
+
export default class Namespace extends CdkResource {
|
|
8
|
+
private readonly stack;
|
|
9
|
+
private readonly name;
|
|
10
|
+
private readonly description;
|
|
11
|
+
private readonly startScript;
|
|
12
|
+
private readonly passScript;
|
|
13
|
+
private readonly errorScript;
|
|
14
|
+
private readonly lowestStateMachineVersion;
|
|
15
|
+
private readonly logSetting;
|
|
16
|
+
constructor(stack: Stack, name: string, options?: NamespaceOptions | null);
|
|
17
|
+
alternateKeys(): string;
|
|
18
|
+
resourceType(): string;
|
|
19
|
+
properties(): {
|
|
20
|
+
[name: string]: any;
|
|
21
|
+
};
|
|
22
|
+
ref(): NamespaceRef;
|
|
23
|
+
getAttrNamespaceId(): GetAttr;
|
|
24
|
+
stateMachine(scriptNamespace: ScriptNamespace, definition: StateMachineDefinition): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2016- Game Server Services, Inc. or its affiliates. All Rights
|
|
4
|
+
* Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License").
|
|
7
|
+
* You may not use this file except in compliance with the License.
|
|
8
|
+
* A copy of the License is located at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* or in the "license" file accompanying this file. This file is distributed
|
|
13
|
+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
|
14
|
+
* express or implied. See the License for the specific language governing
|
|
15
|
+
* permissions and limitations under the License.
|
|
16
|
+
*
|
|
17
|
+
* deny overwrite
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
const tslib_1 = require("tslib");
|
|
21
|
+
const model_1 = require("../../core/model");
|
|
22
|
+
const func_1 = require("../../core/func");
|
|
23
|
+
const NamespaceRef_1 = tslib_1.__importDefault(require("../ref/NamespaceRef"));
|
|
24
|
+
const StateMachineMaster_1 = tslib_1.__importDefault(require("./StateMachineMaster"));
|
|
25
|
+
class Namespace extends model_1.CdkResource {
|
|
26
|
+
constructor(stack, name, options = null) {
|
|
27
|
+
var _a, _b, _c, _d, _e, _f;
|
|
28
|
+
super("StateMachine_Namespace_" + name);
|
|
29
|
+
this.description = null;
|
|
30
|
+
this.startScript = null;
|
|
31
|
+
this.passScript = null;
|
|
32
|
+
this.errorScript = null;
|
|
33
|
+
this.lowestStateMachineVersion = null;
|
|
34
|
+
this.logSetting = null;
|
|
35
|
+
this.stack = stack;
|
|
36
|
+
this.name = name;
|
|
37
|
+
this.description = (_a = options === null || options === void 0 ? void 0 : options.description) !== null && _a !== void 0 ? _a : null;
|
|
38
|
+
this.startScript = (_b = options === null || options === void 0 ? void 0 : options.startScript) !== null && _b !== void 0 ? _b : null;
|
|
39
|
+
this.passScript = (_c = options === null || options === void 0 ? void 0 : options.passScript) !== null && _c !== void 0 ? _c : null;
|
|
40
|
+
this.errorScript = (_d = options === null || options === void 0 ? void 0 : options.errorScript) !== null && _d !== void 0 ? _d : null;
|
|
41
|
+
this.lowestStateMachineVersion = (_e = options === null || options === void 0 ? void 0 : options.lowestStateMachineVersion) !== null && _e !== void 0 ? _e : null;
|
|
42
|
+
this.logSetting = (_f = options === null || options === void 0 ? void 0 : options.logSetting) !== null && _f !== void 0 ? _f : null;
|
|
43
|
+
stack.addResource(this);
|
|
44
|
+
}
|
|
45
|
+
alternateKeys() {
|
|
46
|
+
return "name";
|
|
47
|
+
}
|
|
48
|
+
resourceType() {
|
|
49
|
+
return "GS2::StateMachine::Namespace";
|
|
50
|
+
}
|
|
51
|
+
properties() {
|
|
52
|
+
var _a, _b, _c, _d;
|
|
53
|
+
let properties = {};
|
|
54
|
+
if (this.name != null) {
|
|
55
|
+
properties["Name"] = this.name;
|
|
56
|
+
}
|
|
57
|
+
if (this.description != null) {
|
|
58
|
+
properties["Description"] = this.description;
|
|
59
|
+
}
|
|
60
|
+
if (this.startScript != null) {
|
|
61
|
+
properties["StartScript"] = (_a = this.startScript) === null || _a === void 0 ? void 0 : _a.properties();
|
|
62
|
+
}
|
|
63
|
+
if (this.passScript != null) {
|
|
64
|
+
properties["PassScript"] = (_b = this.passScript) === null || _b === void 0 ? void 0 : _b.properties();
|
|
65
|
+
}
|
|
66
|
+
if (this.errorScript != null) {
|
|
67
|
+
properties["ErrorScript"] = (_c = this.errorScript) === null || _c === void 0 ? void 0 : _c.properties();
|
|
68
|
+
}
|
|
69
|
+
if (this.lowestStateMachineVersion != null) {
|
|
70
|
+
properties["LowestStateMachineVersion"] = this.lowestStateMachineVersion;
|
|
71
|
+
}
|
|
72
|
+
if (this.logSetting != null) {
|
|
73
|
+
properties["LogSetting"] = (_d = this.logSetting) === null || _d === void 0 ? void 0 : _d.properties();
|
|
74
|
+
}
|
|
75
|
+
return properties;
|
|
76
|
+
}
|
|
77
|
+
ref() {
|
|
78
|
+
return new NamespaceRef_1.default(this.name);
|
|
79
|
+
}
|
|
80
|
+
getAttrNamespaceId() {
|
|
81
|
+
return new func_1.GetAttr(null, null, "Item.NamespaceId");
|
|
82
|
+
}
|
|
83
|
+
stateMachine(scriptNamespace, definition) {
|
|
84
|
+
definition.appendScripts(this.stack, scriptNamespace);
|
|
85
|
+
new StateMachineMaster_1.default(this.stack, this.name, definition.stateMachineName, definition.gsl().replace("{scriptNamespaceName}", scriptNamespace.getName())).addDependsOn(this);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.default = Namespace;
|
|
89
|
+
//# sourceMappingURL=Namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Namespace.js","sourceRoot":"","sources":["Namespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016- Game Server Services, Inc. or its affiliates. All Rights
|
|
3
|
+
* Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License").
|
|
6
|
+
* You may not use this file except in compliance with the License.
|
|
7
|
+
* A copy of the License is located at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* or in the "license" file accompanying this file. This file is distributed
|
|
12
|
+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
|
13
|
+
* express or implied. See the License for the specific language governing
|
|
14
|
+
* permissions and limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
* deny overwrite
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import {CdkResource, Stack} from "../../core/model";
|
|
20
|
+
import {GetAttr} from "../../core/func";
|
|
21
|
+
import ScriptSetting from "../../core/model/ScriptSetting";
|
|
22
|
+
import LogSetting from "../../core/model/LogSetting";
|
|
23
|
+
import ScriptNamespace from "../../script/model/Namespace";
|
|
24
|
+
|
|
25
|
+
import NamespaceRef from "../ref/NamespaceRef";
|
|
26
|
+
|
|
27
|
+
import { NamespaceOptions } from "./options/NamespaceOptions";
|
|
28
|
+
import StateMachineMaster from "./StateMachineMaster";
|
|
29
|
+
import StateMachineDefinition from "../integration/StateMachineDefinition";
|
|
30
|
+
|
|
31
|
+
export default class Namespace extends CdkResource {
|
|
32
|
+
private readonly stack: Stack;
|
|
33
|
+
private readonly name: string;
|
|
34
|
+
private readonly description: string|null = null;
|
|
35
|
+
private readonly startScript: ScriptSetting|null = null;
|
|
36
|
+
private readonly passScript: ScriptSetting|null = null;
|
|
37
|
+
private readonly errorScript: ScriptSetting|null = null;
|
|
38
|
+
private readonly lowestStateMachineVersion: number|null = null;
|
|
39
|
+
private readonly logSetting: LogSetting|null = null;
|
|
40
|
+
|
|
41
|
+
public constructor(
|
|
42
|
+
stack: Stack,
|
|
43
|
+
name: string,
|
|
44
|
+
options: NamespaceOptions|null = null,
|
|
45
|
+
) {
|
|
46
|
+
super(
|
|
47
|
+
"StateMachine_Namespace_" + name
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
this.stack = stack;
|
|
51
|
+
this.name = name;
|
|
52
|
+
this.description = options?.description ?? null;
|
|
53
|
+
this.startScript = options?.startScript ?? null;
|
|
54
|
+
this.passScript = options?.passScript ?? null;
|
|
55
|
+
this.errorScript = options?.errorScript ?? null;
|
|
56
|
+
this.lowestStateMachineVersion = options?.lowestStateMachineVersion ?? null;
|
|
57
|
+
this.logSetting = options?.logSetting ?? null;
|
|
58
|
+
stack.addResource(
|
|
59
|
+
this,
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
public alternateKeys(
|
|
65
|
+
) {
|
|
66
|
+
return "name";
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
public resourceType(
|
|
70
|
+
): string {
|
|
71
|
+
return "GS2::StateMachine::Namespace";
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
public properties(
|
|
75
|
+
): {[name: string]: any} {
|
|
76
|
+
let properties: {[name: string]: any} = {};
|
|
77
|
+
|
|
78
|
+
if (this.name != null) {
|
|
79
|
+
properties["Name"] = this.name;
|
|
80
|
+
}
|
|
81
|
+
if (this.description != null) {
|
|
82
|
+
properties["Description"] = this.description;
|
|
83
|
+
}
|
|
84
|
+
if (this.startScript != null) {
|
|
85
|
+
properties["StartScript"] = this.startScript?.properties(
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
if (this.passScript != null) {
|
|
89
|
+
properties["PassScript"] = this.passScript?.properties(
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
if (this.errorScript != null) {
|
|
93
|
+
properties["ErrorScript"] = this.errorScript?.properties(
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
if (this.lowestStateMachineVersion != null) {
|
|
97
|
+
properties["LowestStateMachineVersion"] = this.lowestStateMachineVersion;
|
|
98
|
+
}
|
|
99
|
+
if (this.logSetting != null) {
|
|
100
|
+
properties["LogSetting"] = this.logSetting?.properties(
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return properties;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
public ref(
|
|
108
|
+
): NamespaceRef {
|
|
109
|
+
return new NamespaceRef(
|
|
110
|
+
this.name!,
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
public getAttrNamespaceId(
|
|
115
|
+
): GetAttr {
|
|
116
|
+
return new GetAttr(
|
|
117
|
+
null,
|
|
118
|
+
null,
|
|
119
|
+
"Item.NamespaceId",
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
public stateMachine(
|
|
124
|
+
scriptNamespace: ScriptNamespace,
|
|
125
|
+
definition: StateMachineDefinition
|
|
126
|
+
) {
|
|
127
|
+
definition.appendScripts(
|
|
128
|
+
this.stack,
|
|
129
|
+
scriptNamespace
|
|
130
|
+
);
|
|
131
|
+
new StateMachineMaster(
|
|
132
|
+
this.stack,
|
|
133
|
+
this.name,
|
|
134
|
+
definition.stateMachineName,
|
|
135
|
+
definition.gsl().replace("{scriptNamespaceName}", scriptNamespace.getName())
|
|
136
|
+
).addDependsOn(
|
|
137
|
+
this
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { StackEntryOptions } from "./options/StackEntryOptions";
|
|
2
|
+
export default class StackEntry {
|
|
3
|
+
private readonly stateMachineName;
|
|
4
|
+
private readonly taskName;
|
|
5
|
+
constructor(stateMachineName: string, taskName: string, options?: StackEntryOptions | null);
|
|
6
|
+
properties(): {
|
|
7
|
+
[name: string]: any;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class StackEntry {
|
|
4
|
+
constructor(stateMachineName, taskName, options = null) {
|
|
5
|
+
this.stateMachineName = stateMachineName;
|
|
6
|
+
this.taskName = taskName;
|
|
7
|
+
}
|
|
8
|
+
properties() {
|
|
9
|
+
let properties = {};
|
|
10
|
+
if (this.stateMachineName != null) {
|
|
11
|
+
properties["stateMachineName"] = this.stateMachineName;
|
|
12
|
+
}
|
|
13
|
+
if (this.taskName != null) {
|
|
14
|
+
properties["taskName"] = this.taskName;
|
|
15
|
+
}
|
|
16
|
+
return properties;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.default = StackEntry;
|
|
20
|
+
//# sourceMappingURL=StackEntry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StackEntry.js","sourceRoot":"","sources":["StackEntry.ts"],"names":[],"mappings":";;AAiBA,MAAqB,UAAU;IAI3B,YACI,gBAAwB,EACxB,QAAgB,EAChB,UAAkC,IAAI;QAEtC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEM,UAAU;QAEb,IAAI,UAAU,GAA0B,EAAE,CAAC;QAE3C,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;YAC/B,UAAU,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAC1D;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YACvB,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC1C;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AA1BD,6BA0BC"}
|