gs2-cdk 1.0.18 → 1.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/mission/model/ScopedValue.d.ts +1 -2
  2. package/mission/model/ScopedValue.js +1 -5
  3. package/mission/model/ScopedValue.js.map +1 -1
  4. package/mission/model/ScopedValue.ts +0 -6
  5. package/package.json +1 -1
  6. package/script/model/Namespace.d.ts +1 -0
  7. package/script/model/Namespace.js +5 -0
  8. package/script/model/Namespace.js.map +1 -1
  9. package/script/model/Namespace.ts +7 -0
  10. package/stateMachine/index.d.ts +12 -0
  11. package/stateMachine/index.js +32 -0
  12. package/stateMachine/index.js.map +1 -0
  13. package/stateMachine/index.ts +36 -0
  14. package/stateMachine/integration/ArrayType.d.ts +8 -0
  15. package/stateMachine/integration/ArrayType.js +18 -0
  16. package/stateMachine/integration/ArrayType.js.map +1 -0
  17. package/stateMachine/integration/ArrayType.ts +36 -0
  18. package/stateMachine/integration/BoolType.d.ts +8 -0
  19. package/stateMachine/integration/BoolType.js +18 -0
  20. package/stateMachine/integration/BoolType.js.map +1 -0
  21. package/stateMachine/integration/BoolType.ts +36 -0
  22. package/stateMachine/integration/ErrorEvent.d.ts +4 -0
  23. package/stateMachine/integration/ErrorEvent.js +27 -0
  24. package/stateMachine/integration/ErrorEvent.js.map +1 -0
  25. package/stateMachine/integration/ErrorEvent.ts +24 -0
  26. package/stateMachine/integration/ErrorTask.d.ts +12 -0
  27. package/stateMachine/integration/ErrorTask.js +27 -0
  28. package/stateMachine/integration/ErrorTask.js.map +1 -0
  29. package/stateMachine/integration/ErrorTask.ts +49 -0
  30. package/stateMachine/integration/Event.d.ts +10 -0
  31. package/stateMachine/integration/Event.js +15 -0
  32. package/stateMachine/integration/Event.js.map +1 -0
  33. package/stateMachine/integration/Event.ts +35 -0
  34. package/stateMachine/integration/FloatType.d.ts +8 -0
  35. package/stateMachine/integration/FloatType.js +18 -0
  36. package/stateMachine/integration/FloatType.js.map +1 -0
  37. package/stateMachine/integration/FloatType.ts +36 -0
  38. package/stateMachine/integration/IGslElement.d.ts +3 -0
  39. package/stateMachine/integration/IGslElement.js +3 -0
  40. package/stateMachine/integration/IGslElement.js.map +1 -0
  41. package/stateMachine/integration/IGslElement.ts +18 -0
  42. package/stateMachine/integration/IMermaidElement.d.ts +3 -0
  43. package/stateMachine/integration/IMermaidElement.js +3 -0
  44. package/stateMachine/integration/IMermaidElement.js.map +1 -0
  45. package/stateMachine/integration/IMermaidElement.ts +18 -0
  46. package/stateMachine/integration/ITask.d.ts +8 -0
  47. package/stateMachine/integration/ITask.js +3 -0
  48. package/stateMachine/integration/ITask.js.map +1 -0
  49. package/stateMachine/integration/ITask.ts +24 -0
  50. package/stateMachine/integration/IVariable.d.ts +6 -0
  51. package/stateMachine/integration/IVariable.js +3 -0
  52. package/stateMachine/integration/IVariable.js.map +1 -0
  53. package/stateMachine/integration/IVariable.ts +22 -0
  54. package/stateMachine/integration/InParam.d.ts +6 -0
  55. package/stateMachine/integration/InParam.js +10 -0
  56. package/stateMachine/integration/InParam.js.map +1 -0
  57. package/stateMachine/integration/InParam.ts +26 -0
  58. package/stateMachine/integration/IntType.d.ts +8 -0
  59. package/stateMachine/integration/IntType.js +18 -0
  60. package/stateMachine/integration/IntType.js.map +1 -0
  61. package/stateMachine/integration/IntType.ts +36 -0
  62. package/stateMachine/integration/MapType.d.ts +8 -0
  63. package/stateMachine/integration/MapType.js +18 -0
  64. package/stateMachine/integration/MapType.js.map +1 -0
  65. package/stateMachine/integration/MapType.ts +36 -0
  66. package/stateMachine/integration/OutParam.d.ts +6 -0
  67. package/stateMachine/integration/OutParam.js +10 -0
  68. package/stateMachine/integration/OutParam.js.map +1 -0
  69. package/stateMachine/integration/OutParam.ts +26 -0
  70. package/stateMachine/integration/PassTask.d.ts +11 -0
  71. package/stateMachine/integration/PassTask.js +24 -0
  72. package/stateMachine/integration/PassTask.js.map +1 -0
  73. package/stateMachine/integration/PassTask.ts +45 -0
  74. package/stateMachine/integration/Result.d.ts +7 -0
  75. package/stateMachine/integration/Result.js +11 -0
  76. package/stateMachine/integration/Result.js.map +1 -0
  77. package/stateMachine/integration/Result.ts +28 -0
  78. package/stateMachine/integration/Script.d.ts +5 -0
  79. package/stateMachine/integration/Script.js +25 -0
  80. package/stateMachine/integration/Script.js.map +1 -0
  81. package/stateMachine/integration/Script.ts +24 -0
  82. package/stateMachine/integration/StateMachine.d.ts +17 -0
  83. package/stateMachine/integration/StateMachine.js +83 -0
  84. package/stateMachine/integration/StateMachine.js.map +1 -0
  85. package/stateMachine/integration/StateMachine.ts +116 -0
  86. package/stateMachine/integration/StateMachineDefinition.d.ts +40 -0
  87. package/stateMachine/integration/StateMachineDefinition.js +107 -0
  88. package/stateMachine/integration/StateMachineDefinition.js.map +1 -0
  89. package/stateMachine/integration/StateMachineDefinition.ts +146 -0
  90. package/stateMachine/integration/StringType.d.ts +8 -0
  91. package/stateMachine/integration/StringType.js +18 -0
  92. package/stateMachine/integration/StringType.js.map +1 -0
  93. package/stateMachine/integration/StringType.ts +36 -0
  94. package/stateMachine/integration/SubStateMachineTask.d.ts +17 -0
  95. package/stateMachine/integration/SubStateMachineTask.js +42 -0
  96. package/stateMachine/integration/SubStateMachineTask.js.map +1 -0
  97. package/stateMachine/integration/SubStateMachineTask.ts +71 -0
  98. package/stateMachine/integration/Task.d.ts +19 -0
  99. package/stateMachine/integration/Task.js +63 -0
  100. package/stateMachine/integration/Task.js.map +1 -0
  101. package/stateMachine/integration/Task.ts +98 -0
  102. package/stateMachine/integration/WaitTask.d.ts +15 -0
  103. package/stateMachine/integration/WaitTask.js +49 -0
  104. package/stateMachine/integration/WaitTask.js.map +1 -0
  105. package/stateMachine/integration/WaitTask.ts +75 -0
  106. package/stateMachine/integration/indent.d.ts +1 -0
  107. package/stateMachine/integration/indent.js +22 -0
  108. package/stateMachine/integration/indent.js.map +1 -0
  109. package/stateMachine/integration/indent.ts +18 -0
  110. package/stateMachine/model/Namespace.d.ts +25 -0
  111. package/stateMachine/model/Namespace.js +89 -0
  112. package/stateMachine/model/Namespace.js.map +1 -0
  113. package/stateMachine/model/Namespace.ts +140 -0
  114. package/stateMachine/model/StackEntry.d.ts +9 -0
  115. package/stateMachine/model/StackEntry.js +20 -0
  116. package/stateMachine/model/StackEntry.js.map +1 -0
  117. package/stateMachine/model/StackEntry.ts +44 -0
  118. package/stateMachine/model/StateMachineMaster.d.ts +18 -0
  119. package/stateMachine/model/StateMachineMaster.js +60 -0
  120. package/stateMachine/model/StateMachineMaster.js.map +1 -0
  121. package/stateMachine/model/StateMachineMaster.ts +97 -0
  122. package/stateMachine/model/Variable.d.ts +9 -0
  123. package/stateMachine/model/Variable.js +20 -0
  124. package/stateMachine/model/Variable.js.map +1 -0
  125. package/stateMachine/model/Variable.ts +44 -0
  126. package/stateMachine/model/index.d.ts +9 -0
  127. package/stateMachine/model/index.js +28 -0
  128. package/stateMachine/model/index.js.map +1 -0
  129. package/stateMachine/model/index.ts +34 -0
  130. package/stateMachine/model/options/NamespaceOptions.d.ts +10 -0
  131. package/stateMachine/model/options/NamespaceOptions.js +3 -0
  132. package/stateMachine/model/options/NamespaceOptions.js.map +1 -0
  133. package/stateMachine/model/options/NamespaceOptions.ts +27 -0
  134. package/stateMachine/model/options/StackEntryOptions.d.ts +2 -0
  135. package/stateMachine/model/options/StackEntryOptions.js +18 -0
  136. package/stateMachine/model/options/StackEntryOptions.js.map +1 -0
  137. package/stateMachine/model/options/StackEntryOptions.ts +19 -0
  138. package/stateMachine/model/options/StateMachineMasterOptions.d.ts +2 -0
  139. package/stateMachine/model/options/StateMachineMasterOptions.js +18 -0
  140. package/stateMachine/model/options/StateMachineMasterOptions.js.map +1 -0
  141. package/stateMachine/model/options/StateMachineMasterOptions.ts +19 -0
  142. package/stateMachine/model/options/VariableOptions.d.ts +2 -0
  143. package/stateMachine/model/options/VariableOptions.js +18 -0
  144. package/stateMachine/model/options/VariableOptions.js.map +1 -0
  145. package/stateMachine/model/options/VariableOptions.ts +19 -0
  146. package/stateMachine/ref/NamespaceRef.d.ts +7 -0
  147. package/stateMachine/ref/NamespaceRef.js +40 -0
  148. package/stateMachine/ref/NamespaceRef.js.map +1 -0
  149. package/stateMachine/ref/NamespaceRef.ts +61 -0
  150. package/stateMachine/ref/StateMachineMasterRef.d.ts +6 -0
  151. package/stateMachine/ref/StateMachineMasterRef.js +40 -0
  152. package/stateMachine/ref/StateMachineMasterRef.js.map +1 -0
  153. package/stateMachine/ref/StateMachineMasterRef.ts +54 -0
  154. package/stateMachine/ref/index.d.ts +3 -0
  155. package/stateMachine/ref/index.js +24 -0
  156. package/stateMachine/ref/index.js.map +1 -0
  157. package/stateMachine/ref/index.ts +22 -0
  158. package/stateMachine/stampSheet/StartStateMachineByUserId.d.ts +4 -0
  159. package/stateMachine/stampSheet/StartStateMachineByUserId.js +30 -0
  160. package/stateMachine/stampSheet/StartStateMachineByUserId.js.map +1 -0
  161. package/stateMachine/stampSheet/StartStateMachineByUserId.ts +39 -0
  162. package/stateMachine/stampSheet/index.d.ts +2 -0
  163. package/stateMachine/stampSheet/index.js +22 -0
  164. package/stateMachine/stampSheet/index.js.map +1 -0
  165. package/stateMachine/stampSheet/index.ts +20 -0
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const Task_1 = tslib_1.__importDefault(require("./Task"));
5
+ const SubStateMachineTask_1 = tslib_1.__importDefault(require("./SubStateMachineTask"));
6
+ const WaitTask_1 = tslib_1.__importDefault(require("./WaitTask"));
7
+ const indent_1 = tslib_1.__importDefault(require("./indent"));
8
+ class StateMachine {
9
+ constructor(stateMachineDefinition, name, variables) {
10
+ this.tasks = [];
11
+ this.stateMachineDefinition = stateMachineDefinition;
12
+ this.name = name;
13
+ this.variables = variables;
14
+ this.entryPointValue = "";
15
+ stateMachineDefinition.add(this);
16
+ }
17
+ task(...args) {
18
+ this.tasks.push(...args);
19
+ return this;
20
+ }
21
+ entryPoint(taskName) {
22
+ this.entryPointValue = taskName;
23
+ return this;
24
+ }
25
+ scripts() {
26
+ let scripts = [];
27
+ for (let task of this.tasks) {
28
+ if (task instanceof Task_1.default) {
29
+ let script = task.scriptPayload();
30
+ script.name = this.name + "_" + script.name;
31
+ scripts.push(script);
32
+ }
33
+ }
34
+ return scripts;
35
+ }
36
+ gsl() {
37
+ let output = `StateMachine ${this.name} {\n`;
38
+ if (this.variables && this.variables.length > 0) {
39
+ let variablesPart = "Variables {\n";
40
+ for (let variable of this.variables) {
41
+ variablesPart += (0, indent_1.default)(`${variable.gsl()};\n`, 2);
42
+ }
43
+ variablesPart += "}\n\n";
44
+ output += (0, indent_1.default)(variablesPart, 2);
45
+ }
46
+ if (this.entryPointValue) {
47
+ output += (0, indent_1.default)(`EntryPoint ${this.entryPointValue};\n\n`, 2);
48
+ }
49
+ for (let task of this.tasks) {
50
+ output += (0, indent_1.default)(task.gsl(), 2);
51
+ }
52
+ for (let task of this.tasks) {
53
+ for (let event of task.getEvents()) {
54
+ output += (0, indent_1.default)(event.gsl(), 2);
55
+ }
56
+ }
57
+ output += "}\n";
58
+ let result = output.replace("{stateMachineName}", this.name);
59
+ return result;
60
+ }
61
+ mermaid() {
62
+ let output = `subgraph ${this.name}\n`;
63
+ for (let task of this.tasks) {
64
+ output += `${task.mermaid()}\n`;
65
+ output += "\n";
66
+ }
67
+ output += "end\n";
68
+ for (let task of this.tasks) {
69
+ if (task instanceof SubStateMachineTask_1.default) {
70
+ output += "\n";
71
+ output += `${this.name}_${task.name} --> ${task.subStateMachineName}_{${task.subStateMachineName}_entryPoint}\n`;
72
+ output += `${task.subStateMachineName}_Pass -->|Pass| ${this.name}_${task.events[0].nextTaskName}\n`;
73
+ }
74
+ if (task instanceof WaitTask_1.default) {
75
+ output += "\n";
76
+ output += `Player ----->|Interaction| ${this.name}_${task.name}\n`;
77
+ }
78
+ }
79
+ return output.replace("{stateMachineName}", this.name);
80
+ }
81
+ }
82
+ exports.default = StateMachine;
83
+ //# sourceMappingURL=StateMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachine.js","sourceRoot":"","sources":["StateMachine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
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 IVariable from "./IVariable";
17
+ import ITask from "./ITask";
18
+ import Script from "./Script";
19
+ import Task from "./Task";
20
+ import SubStateMachineTask from "./SubStateMachineTask";
21
+ import WaitTask from "./WaitTask";
22
+ import StateMachineDefinition from "./StateMachineDefinition";
23
+ import indent from "./indent";
24
+
25
+ export default class StateMachine {
26
+ name: string;
27
+ variables: IVariable[];
28
+ tasks: ITask[] = [];
29
+ entryPointValue: string;
30
+ stateMachineDefinition: StateMachineDefinition;
31
+
32
+ constructor(stateMachineDefinition: StateMachineDefinition, name: string, variables: IVariable[]) {
33
+ this.stateMachineDefinition = stateMachineDefinition;
34
+ this.name = name;
35
+ this.variables = variables;
36
+ this.entryPointValue = "";
37
+ stateMachineDefinition.add(this);
38
+ }
39
+
40
+ task(...args: ITask[]) {
41
+ this.tasks.push(...args);
42
+ return this;
43
+ }
44
+
45
+ entryPoint(taskName: string) {
46
+ this.entryPointValue = taskName;
47
+ return this;
48
+ }
49
+
50
+ scripts() {
51
+ let scripts: Script[] = [];
52
+ for (let task of this.tasks) {
53
+ if (task instanceof Task) {
54
+ let script = task.scriptPayload();
55
+ script.name = this.name + "_" + script.name;
56
+ scripts.push(script);
57
+ }
58
+ }
59
+ return scripts;
60
+ }
61
+
62
+ gsl() {
63
+ let output = `StateMachine ${this.name} {\n`;
64
+
65
+ if (this.variables && this.variables.length > 0) {
66
+ let variablesPart = "Variables {\n";
67
+ for (let variable of this.variables) {
68
+ variablesPart += indent(`${variable.gsl()};\n`, 2);
69
+ }
70
+ variablesPart += "}\n\n";
71
+ output += indent(variablesPart, 2);
72
+ }
73
+
74
+ if (this.entryPointValue) {
75
+ output += indent(`EntryPoint ${this.entryPointValue};\n\n`, 2);
76
+ }
77
+
78
+ for (let task of this.tasks) {
79
+ output += indent(task.gsl(), 2);
80
+ }
81
+
82
+ for (let task of this.tasks) {
83
+ for (let event of task.getEvents()) {
84
+ output += indent(event.gsl(), 2);
85
+ }
86
+ }
87
+
88
+ output += "}\n";
89
+ let result = output.replace("{stateMachineName}", this.name);
90
+
91
+ return result;
92
+ }
93
+
94
+ mermaid() {
95
+ let output = `subgraph ${this.name}\n`;
96
+ for (let task of this.tasks) {
97
+ output += `${task.mermaid()}\n`;
98
+ output += "\n";
99
+ }
100
+ output += "end\n";
101
+
102
+ for (let task of this.tasks) {
103
+ if (task instanceof SubStateMachineTask) {
104
+ output += "\n";
105
+ output += `${this.name}_${(task as SubStateMachineTask).name} --> ${(task as SubStateMachineTask).subStateMachineName}_{${(task as SubStateMachineTask).subStateMachineName}_entryPoint}\n`;
106
+ output += `${(task as SubStateMachineTask).subStateMachineName}_Pass -->|Pass| ${this.name}_${(task as SubStateMachineTask).events[0].nextTaskName}\n`;
107
+ }
108
+ if (task instanceof WaitTask) {
109
+ output += "\n";
110
+ output += `Player ----->|Interaction| ${this.name}_${(task as WaitTask).name}\n`;
111
+ }
112
+ }
113
+
114
+ return output.replace("{stateMachineName}", this.name);
115
+ }
116
+ }
@@ -0,0 +1,40 @@
1
+ import { Stack } from '../../core/model';
2
+ import { Script as Gs2Script, Namespace } from '../../script/model';
3
+ import StateMachine from "./StateMachine";
4
+ import IVariable from "./IVariable";
5
+ import Task from "./Task";
6
+ import InParam from "./InParam";
7
+ import OutParam from "./OutParam";
8
+ import WaitTask from "./WaitTask";
9
+ import PassTask from "./PassTask";
10
+ import ErrorTask from "./ErrorTask";
11
+ import SubStateMachineTask from "./SubStateMachineTask";
12
+ import IntType from "./IntType";
13
+ import FloatType from "./FloatType";
14
+ import BoolType from "./BoolType";
15
+ import StringType from "./StringType";
16
+ import ArrayType from "./ArrayType";
17
+ import MapType from "./MapType";
18
+ export default class StateMachineDefinition {
19
+ stateMachineName: string;
20
+ stateMachines: StateMachine[];
21
+ add(stateMachine: StateMachine): void;
22
+ entryPointStateMachineName(stateMachineName: string): void;
23
+ stateMachine(name: string, variables: IVariable[]): StateMachine;
24
+ scriptTask(name: string, args: IVariable[], script: string): Task;
25
+ subStateMachineTask(name: string, subStateMachineName: string, inParams: InParam[], outParams: OutParam[], nextTaskName: string): SubStateMachineTask;
26
+ inParam(currentStateMachineVariable: IVariable, subStateMachineVariable: IVariable): InParam;
27
+ outParam(subStateMachineVariable: IVariable, currentStateMachineVariable: IVariable): OutParam;
28
+ waitTask(name: string): WaitTask;
29
+ passTask(name: string): PassTask;
30
+ errorTask(name: string): ErrorTask;
31
+ intType(name: string): IntType;
32
+ floatType(name: string): FloatType;
33
+ boolType(name: string): BoolType;
34
+ stringType(name: string): StringType;
35
+ arrayType(name: string): ArrayType;
36
+ mapType(name: string): MapType;
37
+ appendScripts(stack: Stack, scriptNamespace: Namespace): Gs2Script[];
38
+ gsl(): string;
39
+ mermaid(): string;
40
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const model_1 = require("../../script/model");
5
+ const StateMachine_1 = tslib_1.__importDefault(require("./StateMachine"));
6
+ const Event_1 = tslib_1.__importDefault(require("./Event"));
7
+ const Task_1 = tslib_1.__importDefault(require("./Task"));
8
+ const InParam_1 = tslib_1.__importDefault(require("./InParam"));
9
+ const OutParam_1 = tslib_1.__importDefault(require("./OutParam"));
10
+ const WaitTask_1 = tslib_1.__importDefault(require("./WaitTask"));
11
+ const PassTask_1 = tslib_1.__importDefault(require("./PassTask"));
12
+ const ErrorTask_1 = tslib_1.__importDefault(require("./ErrorTask"));
13
+ const SubStateMachineTask_1 = tslib_1.__importDefault(require("./SubStateMachineTask"));
14
+ const IntType_1 = tslib_1.__importDefault(require("./IntType"));
15
+ const FloatType_1 = tslib_1.__importDefault(require("./FloatType"));
16
+ const BoolType_1 = tslib_1.__importDefault(require("./BoolType"));
17
+ const StringType_1 = tslib_1.__importDefault(require("./StringType"));
18
+ const ArrayType_1 = tslib_1.__importDefault(require("./ArrayType"));
19
+ const MapType_1 = tslib_1.__importDefault(require("./MapType"));
20
+ class StateMachineDefinition {
21
+ constructor() {
22
+ this.stateMachineName = "";
23
+ this.stateMachines = [];
24
+ }
25
+ add(stateMachine) {
26
+ this.stateMachines.push(stateMachine);
27
+ }
28
+ entryPointStateMachineName(stateMachineName) {
29
+ this.stateMachineName = stateMachineName;
30
+ }
31
+ stateMachine(name, variables) {
32
+ return new StateMachine_1.default(this, name, variables);
33
+ }
34
+ scriptTask(name, args, script) {
35
+ return new Task_1.default(name, args, script);
36
+ }
37
+ subStateMachineTask(name, subStateMachineName, inParams, outParams, nextTaskName) {
38
+ let task = new SubStateMachineTask_1.default(name, subStateMachineName, inParams, outParams);
39
+ task.transition(new Event_1.default("Pass", outParams.map(v => v.subStateMachineVariable), nextTaskName));
40
+ return task;
41
+ }
42
+ inParam(currentStateMachineVariable, subStateMachineVariable) {
43
+ return new InParam_1.default(currentStateMachineVariable, subStateMachineVariable);
44
+ }
45
+ outParam(subStateMachineVariable, currentStateMachineVariable) {
46
+ return new OutParam_1.default(subStateMachineVariable, currentStateMachineVariable);
47
+ }
48
+ waitTask(name) {
49
+ return new WaitTask_1.default(name);
50
+ }
51
+ passTask(name) {
52
+ return new PassTask_1.default(name);
53
+ }
54
+ errorTask(name) {
55
+ return new ErrorTask_1.default(name);
56
+ }
57
+ intType(name) {
58
+ return new IntType_1.default(name);
59
+ }
60
+ floatType(name) {
61
+ return new FloatType_1.default(name);
62
+ }
63
+ boolType(name) {
64
+ return new BoolType_1.default(name);
65
+ }
66
+ stringType(name) {
67
+ return new StringType_1.default(name);
68
+ }
69
+ arrayType(name) {
70
+ return new ArrayType_1.default(name);
71
+ }
72
+ mapType(name) {
73
+ return new MapType_1.default(name);
74
+ }
75
+ appendScripts(stack, scriptNamespace) {
76
+ let scripts = [];
77
+ for (let stateMachine of this.stateMachines) {
78
+ for (let script of stateMachine.scripts()) {
79
+ let deployScript = new model_1.Script(stack, scriptNamespace.getName(), script.name, script.payload.trim());
80
+ deployScript.addDependsOn(scriptNamespace);
81
+ scripts.push(deployScript);
82
+ }
83
+ }
84
+ return scripts;
85
+ }
86
+ gsl() {
87
+ let output = "";
88
+ for (let stateMachine of this.stateMachines) {
89
+ output += `${stateMachine.gsl()}\n`;
90
+ }
91
+ return output;
92
+ }
93
+ mermaid() {
94
+ let output = "flowchart TD\n";
95
+ output += `Start ----> ${this.stateMachines[0].name}_{${this.stateMachines[0].entryPointValue}\n`.padStart(2);
96
+ output += `${this.stateMachines[0].name}_Pass ----> Exit\n`.padStart(2);
97
+ for (let stateMachine of this.stateMachines) {
98
+ output += `${stateMachine.mermaid()}\n`.padStart(2);
99
+ }
100
+ for (let stateMachine of this.stateMachines) {
101
+ output = output.replace(`{${stateMachine.name}_entryPoint}`, stateMachine.entryPointValue);
102
+ }
103
+ return output;
104
+ }
105
+ }
106
+ exports.default = StateMachineDefinition;
107
+ //# sourceMappingURL=StateMachineDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateMachineDefinition.js","sourceRoot":"","sources":["StateMachineDefinition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
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 { Stack } from '../../core/model';
17
+ import { Script as Gs2Script, Namespace } from '../../script/model';
18
+ import StateMachine from "./StateMachine";
19
+ import IVariable from "./IVariable";
20
+ import Event from "./Event";
21
+ import Task from "./Task";
22
+ import InParam from "./InParam";
23
+ import OutParam from "./OutParam";
24
+ import WaitTask from "./WaitTask";
25
+ import PassTask from "./PassTask";
26
+ import ErrorTask from "./ErrorTask";
27
+ import SubStateMachineTask from "./SubStateMachineTask";
28
+ import IntType from "./IntType";
29
+ import FloatType from "./FloatType";
30
+ import BoolType from "./BoolType";
31
+ import StringType from "./StringType";
32
+ import ArrayType from "./ArrayType";
33
+ import MapType from "./MapType";
34
+
35
+ export default class StateMachineDefinition {
36
+ stateMachineName = "";
37
+ stateMachines: StateMachine[] = [];
38
+
39
+ add(stateMachine: StateMachine) {
40
+ this.stateMachines.push(stateMachine);
41
+ }
42
+
43
+ entryPointStateMachineName(stateMachineName: string) {
44
+ this.stateMachineName = stateMachineName;
45
+ }
46
+
47
+ stateMachine(name: string, variables: IVariable[]) {
48
+ return new StateMachine(this, name, variables);
49
+ }
50
+
51
+ scriptTask(name: string, args: IVariable[], script: string) {
52
+ return new Task(name, args, script);
53
+ }
54
+
55
+ subStateMachineTask(name: string, subStateMachineName: string, inParams: InParam[], outParams: OutParam[], nextTaskName: string) {
56
+ let task = new SubStateMachineTask(name, subStateMachineName, inParams, outParams);
57
+ task.transition(new Event("Pass", outParams.map(v => v.subStateMachineVariable), nextTaskName));
58
+ return task;
59
+ }
60
+
61
+ inParam(currentStateMachineVariable: IVariable, subStateMachineVariable: IVariable) {
62
+ return new InParam(currentStateMachineVariable, subStateMachineVariable);
63
+ }
64
+
65
+ outParam(subStateMachineVariable: IVariable, currentStateMachineVariable: IVariable) {
66
+ return new OutParam(subStateMachineVariable, currentStateMachineVariable);
67
+ }
68
+
69
+ waitTask(name: string): WaitTask {
70
+ return new WaitTask(name);
71
+ }
72
+
73
+ passTask(name: string): PassTask {
74
+ return new PassTask(name);
75
+ }
76
+
77
+ errorTask(name: string): ErrorTask {
78
+ return new ErrorTask(name);
79
+ }
80
+
81
+ intType(name: string): IntType {
82
+ return new IntType(name);
83
+ }
84
+
85
+ floatType(name: string): FloatType {
86
+ return new FloatType(name);
87
+ }
88
+
89
+ boolType(name: string): BoolType {
90
+ return new BoolType(name);
91
+ }
92
+
93
+ stringType(name: string): StringType {
94
+ return new StringType(name);
95
+ }
96
+
97
+ arrayType(name: string): ArrayType {
98
+ return new ArrayType(name);
99
+ }
100
+
101
+ mapType(name: string): MapType {
102
+ return new MapType(name);
103
+ }
104
+
105
+ appendScripts(stack: Stack, scriptNamespace: Namespace): Gs2Script[] {
106
+ let scripts: Gs2Script[] = [];
107
+ for (let stateMachine of this.stateMachines) {
108
+ for (let script of stateMachine.scripts()) {
109
+ let deployScript = new Gs2Script(
110
+ stack,
111
+ scriptNamespace.getName(),
112
+ script.name,
113
+ script.payload.trim()
114
+ );
115
+ deployScript.addDependsOn(scriptNamespace);
116
+ scripts.push(deployScript);
117
+ }
118
+ }
119
+ return scripts;
120
+ }
121
+
122
+ gsl() {
123
+ let output = "";
124
+ for (let stateMachine of this.stateMachines) {
125
+ output += `${stateMachine.gsl()}\n`;
126
+ }
127
+ return output;
128
+ }
129
+
130
+ mermaid() {
131
+ let output = "flowchart TD\n";
132
+
133
+ output += `Start ----> ${this.stateMachines[0].name}_{${this.stateMachines[0].entryPointValue}\n`.padStart(2);
134
+ output += `${this.stateMachines[0].name}_Pass ----> Exit\n`.padStart(2);
135
+
136
+ for (let stateMachine of this.stateMachines) {
137
+ output += `${stateMachine.mermaid()}\n`.padStart(2);
138
+ }
139
+
140
+ for (let stateMachine of this.stateMachines) {
141
+ output = output.replace(`{${stateMachine.name}_entryPoint}`, stateMachine.entryPointValue);
142
+ }
143
+
144
+ return output;
145
+ }
146
+ }
@@ -0,0 +1,8 @@
1
+ import IVariable from "./IVariable";
2
+ export default class StringType implements IVariable {
3
+ private name;
4
+ constructor(name: string);
5
+ getName(): string;
6
+ getTypeName(): string;
7
+ gsl(): string;
8
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class StringType {
4
+ constructor(name) {
5
+ this.name = name;
6
+ }
7
+ getName() {
8
+ return this.name;
9
+ }
10
+ getTypeName() {
11
+ return "string";
12
+ }
13
+ gsl() {
14
+ return `${this.getTypeName()} ${this.getName()}`;
15
+ }
16
+ }
17
+ exports.default = StringType;
18
+ //# sourceMappingURL=StringType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringType.js","sourceRoot":"","sources":["StringType.ts"],"names":[],"mappings":";;AAiBA,MAAqB,UAAU;IAG3B,YAAY,IAAY;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,WAAW;QACP,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,GAAG;QACC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IACrD,CAAC;CACJ;AAlBD,6BAkBC"}
@@ -0,0 +1,36 @@
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 IVariable from "./IVariable";
17
+
18
+ export default class StringType implements IVariable {
19
+ private name: string;
20
+
21
+ constructor(name: string) {
22
+ this.name = name;
23
+ }
24
+
25
+ getName() {
26
+ return this.name;
27
+ }
28
+
29
+ getTypeName() {
30
+ return "string";
31
+ }
32
+
33
+ gsl(): string {
34
+ return `${this.getTypeName()} ${this.getName()}`;
35
+ }
36
+ }
@@ -0,0 +1,17 @@
1
+ import ITask from "./ITask";
2
+ import InParam from "./InParam";
3
+ import OutParam from "./OutParam";
4
+ import Event from "./Event";
5
+ export default class SubStateMachineTask implements ITask {
6
+ name: string;
7
+ subStateMachineName: string;
8
+ private inParams;
9
+ private outParams;
10
+ events: Event[];
11
+ constructor(name: string, subStateMachineName: string, inParams: InParam[], outParams: OutParam[]);
12
+ getName(): string;
13
+ transition(event: Event): this;
14
+ getEvents(): Event[];
15
+ gsl(): string;
16
+ mermaid(): string;
17
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class SubStateMachineTask {
4
+ constructor(name, subStateMachineName, inParams, outParams) {
5
+ this.events = [];
6
+ this.name = name;
7
+ this.subStateMachineName = subStateMachineName;
8
+ this.inParams = inParams;
9
+ this.outParams = outParams;
10
+ }
11
+ getName() {
12
+ return this.name;
13
+ }
14
+ transition(event) {
15
+ event.fromTaskName = this.name;
16
+ this.events.push(event);
17
+ return this;
18
+ }
19
+ getEvents() {
20
+ return this.events;
21
+ }
22
+ gsl() {
23
+ let output = [];
24
+ output.push(`SubStateMachineTask ${this.name} {`);
25
+ output.push(` using ${this.name};`);
26
+ let inParamPart = this.inParams
27
+ .map(inParam => `${inParam.subStateMachineVariable.getName()} <- ${inParam.currentStateMachineVariable.getName()}`)
28
+ .join(", ");
29
+ output.push(` in (${inParamPart});`);
30
+ let outParamPart = this.outParams
31
+ .map(outParam => `${outParam.subStateMachineVariable.getName()} -> ${outParam.currentStateMachineVariable.getName()}`)
32
+ .join(", ");
33
+ output.push(` out (${outParamPart});`);
34
+ output.push("}\n\n");
35
+ return output.join("\n");
36
+ }
37
+ mermaid() {
38
+ return `${this.name}_${this.name}[/${this.name}/]\n`;
39
+ }
40
+ }
41
+ exports.default = SubStateMachineTask;
42
+ //# sourceMappingURL=SubStateMachineTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubStateMachineTask.js","sourceRoot":"","sources":["SubStateMachineTask.ts"],"names":[],"mappings":";;AAoBA,MAAqB,mBAAmB;IAOpC,YAAY,IAAY,EAAE,mBAA2B,EAAE,QAAmB,EAAE,SAAqB;QAFjG,WAAM,GAAY,EAAE,CAAC;QAGjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,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,GAAG;QACC,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAErC,IAAI,WAAW,GAAW,IAAI,CAAC,QAAQ;aAClC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,2BAA2B,CAAC,OAAO,EAAE,EAAE,CAAC;aAClH,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,SAAS,WAAW,IAAI,CAAC,CAAC;QAEtC,IAAI,YAAY,GAAW,IAAI,CAAC,SAAS;aACpC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,QAAQ,CAAC,2BAA2B,CAAC,OAAO,EAAE,EAAE,CAAC;aACrH,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,UAAU,YAAY,IAAI,CAAC,CAAC;QAExC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACH,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC;IACzD,CAAC;CACJ;AAlDD,sCAkDC"}