@bscotch/gml-parser 1.14.2

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 (208) hide show
  1. package/LICENSE.md +29 -0
  2. package/README.md +151 -0
  3. package/assets/GmlSpec.xml +11419 -0
  4. package/dist/index.d.ts +16 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +13 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/jsdoc.d.ts +79 -0
  9. package/dist/jsdoc.d.ts.map +1 -0
  10. package/dist/jsdoc.feather.d.ts +23 -0
  11. package/dist/jsdoc.feather.d.ts.map +1 -0
  12. package/dist/jsdoc.feather.js +143 -0
  13. package/dist/jsdoc.feather.js.map +1 -0
  14. package/dist/jsdoc.js +468 -0
  15. package/dist/jsdoc.js.map +1 -0
  16. package/dist/jsdoc.test.d.ts +2 -0
  17. package/dist/jsdoc.test.d.ts.map +1 -0
  18. package/dist/jsdoc.test.js +185 -0
  19. package/dist/jsdoc.test.js.map +1 -0
  20. package/dist/lexer.d.ts +3 -0
  21. package/dist/lexer.d.ts.map +1 -0
  22. package/dist/lexer.js +14 -0
  23. package/dist/lexer.js.map +1 -0
  24. package/dist/lexer.test.d.ts +2 -0
  25. package/dist/lexer.test.d.ts.map +1 -0
  26. package/dist/lexer.test.js +78 -0
  27. package/dist/lexer.test.js.map +1 -0
  28. package/dist/lib.objects.d.ts +190 -0
  29. package/dist/lib.objects.d.ts.map +1 -0
  30. package/dist/lib.objects.js +242 -0
  31. package/dist/lib.objects.js.map +1 -0
  32. package/dist/logger.d.ts +13 -0
  33. package/dist/logger.d.ts.map +1 -0
  34. package/dist/logger.js +14 -0
  35. package/dist/logger.js.map +1 -0
  36. package/dist/modules.d.ts +19 -0
  37. package/dist/modules.d.ts.map +1 -0
  38. package/dist/modules.js +320 -0
  39. package/dist/modules.js.map +1 -0
  40. package/dist/modules.test.d.ts +2 -0
  41. package/dist/modules.test.d.ts.map +1 -0
  42. package/dist/modules.test.js +57 -0
  43. package/dist/modules.test.js.map +1 -0
  44. package/dist/modules.types.d.ts +78 -0
  45. package/dist/modules.types.d.ts.map +1 -0
  46. package/dist/modules.types.js +2 -0
  47. package/dist/modules.types.js.map +1 -0
  48. package/dist/modules.util.d.ts +5 -0
  49. package/dist/modules.util.d.ts.map +1 -0
  50. package/dist/modules.util.js +13 -0
  51. package/dist/modules.util.js.map +1 -0
  52. package/dist/parser.d.ts +121 -0
  53. package/dist/parser.d.ts.map +1 -0
  54. package/dist/parser.js +571 -0
  55. package/dist/parser.js.map +1 -0
  56. package/dist/parser.test.d.ts +2 -0
  57. package/dist/parser.test.d.ts.map +1 -0
  58. package/dist/parser.test.js +143 -0
  59. package/dist/parser.test.js.map +1 -0
  60. package/dist/parser.utility.d.ts +29 -0
  61. package/dist/parser.utility.d.ts.map +1 -0
  62. package/dist/parser.utility.js +125 -0
  63. package/dist/parser.utility.js.map +1 -0
  64. package/dist/project.asset.d.ts +115 -0
  65. package/dist/project.asset.d.ts.map +1 -0
  66. package/dist/project.asset.js +802 -0
  67. package/dist/project.asset.js.map +1 -0
  68. package/dist/project.code.d.ts +130 -0
  69. package/dist/project.code.d.ts.map +1 -0
  70. package/dist/project.code.js +570 -0
  71. package/dist/project.code.js.map +1 -0
  72. package/dist/project.d.ts +533 -0
  73. package/dist/project.d.ts.map +1 -0
  74. package/dist/project.diagnostics.d.ts +32 -0
  75. package/dist/project.diagnostics.d.ts.map +1 -0
  76. package/dist/project.diagnostics.js +23 -0
  77. package/dist/project.diagnostics.js.map +1 -0
  78. package/dist/project.js +1216 -0
  79. package/dist/project.js.map +1 -0
  80. package/dist/project.location.d.ts +133 -0
  81. package/dist/project.location.d.ts.map +1 -0
  82. package/dist/project.location.js +219 -0
  83. package/dist/project.location.js.map +1 -0
  84. package/dist/project.native.d.ts +26 -0
  85. package/dist/project.native.d.ts.map +1 -0
  86. package/dist/project.native.js +321 -0
  87. package/dist/project.native.js.map +1 -0
  88. package/dist/project.spec.d.ts +1298 -0
  89. package/dist/project.spec.d.ts.map +1 -0
  90. package/dist/project.spec.js +263 -0
  91. package/dist/project.spec.js.map +1 -0
  92. package/dist/project.test.d.ts +2 -0
  93. package/dist/project.test.d.ts.map +1 -0
  94. package/dist/project.test.js +633 -0
  95. package/dist/project.test.js.map +1 -0
  96. package/dist/shaderDefaults.d.ts +3 -0
  97. package/dist/shaderDefaults.d.ts.map +1 -0
  98. package/dist/shaderDefaults.js +32 -0
  99. package/dist/shaderDefaults.js.map +1 -0
  100. package/dist/signifiers.d.ts +54 -0
  101. package/dist/signifiers.d.ts.map +1 -0
  102. package/dist/signifiers.flags.d.ts +38 -0
  103. package/dist/signifiers.flags.d.ts.map +1 -0
  104. package/dist/signifiers.flags.js +131 -0
  105. package/dist/signifiers.flags.js.map +1 -0
  106. package/dist/signifiers.js +117 -0
  107. package/dist/signifiers.js.map +1 -0
  108. package/dist/spine.d.ts +28 -0
  109. package/dist/spine.d.ts.map +1 -0
  110. package/dist/spine.js +64 -0
  111. package/dist/spine.js.map +1 -0
  112. package/dist/spine.test.d.ts +2 -0
  113. package/dist/spine.test.d.ts.map +1 -0
  114. package/dist/spine.test.js +420 -0
  115. package/dist/spine.test.js.map +1 -0
  116. package/dist/spine.types.d.ts +89 -0
  117. package/dist/spine.types.d.ts.map +1 -0
  118. package/dist/spine.types.js +2 -0
  119. package/dist/spine.types.js.map +1 -0
  120. package/dist/test.lib.d.ts +3 -0
  121. package/dist/test.lib.d.ts.map +1 -0
  122. package/dist/test.lib.js +16 -0
  123. package/dist/test.lib.js.map +1 -0
  124. package/dist/tokens.categories.d.ts +22 -0
  125. package/dist/tokens.categories.d.ts.map +1 -0
  126. package/dist/tokens.categories.js +78 -0
  127. package/dist/tokens.categories.js.map +1 -0
  128. package/dist/tokens.code.d.ts +2 -0
  129. package/dist/tokens.code.d.ts.map +1 -0
  130. package/dist/tokens.code.js +523 -0
  131. package/dist/tokens.code.js.map +1 -0
  132. package/dist/tokens.d.ts +130 -0
  133. package/dist/tokens.d.ts.map +1 -0
  134. package/dist/tokens.js +13 -0
  135. package/dist/tokens.js.map +1 -0
  136. package/dist/tokens.lib.d.ts +15 -0
  137. package/dist/tokens.lib.d.ts.map +1 -0
  138. package/dist/tokens.lib.js +12 -0
  139. package/dist/tokens.lib.js.map +1 -0
  140. package/dist/tokens.shared.d.ts +4 -0
  141. package/dist/tokens.shared.d.ts.map +1 -0
  142. package/dist/tokens.shared.js +35 -0
  143. package/dist/tokens.shared.js.map +1 -0
  144. package/dist/tokens.strings.d.ts +5 -0
  145. package/dist/tokens.strings.d.ts.map +1 -0
  146. package/dist/tokens.strings.js +111 -0
  147. package/dist/tokens.strings.js.map +1 -0
  148. package/dist/types.checks.d.ts +50 -0
  149. package/dist/types.checks.d.ts.map +1 -0
  150. package/dist/types.checks.js +246 -0
  151. package/dist/types.checks.js.map +1 -0
  152. package/dist/types.d.ts +152 -0
  153. package/dist/types.d.ts.map +1 -0
  154. package/dist/types.feather.d.ts +21 -0
  155. package/dist/types.feather.d.ts.map +1 -0
  156. package/dist/types.feather.js +156 -0
  157. package/dist/types.feather.js.map +1 -0
  158. package/dist/types.hover.d.ts +4 -0
  159. package/dist/types.hover.d.ts.map +1 -0
  160. package/dist/types.hover.js +99 -0
  161. package/dist/types.hover.js.map +1 -0
  162. package/dist/types.js +457 -0
  163. package/dist/types.js.map +1 -0
  164. package/dist/types.primitives.d.ts +10 -0
  165. package/dist/types.primitives.d.ts.map +1 -0
  166. package/dist/types.primitives.js +88 -0
  167. package/dist/types.primitives.js.map +1 -0
  168. package/dist/types.sprites.d.ts +8 -0
  169. package/dist/types.sprites.d.ts.map +1 -0
  170. package/dist/types.sprites.js +417 -0
  171. package/dist/types.sprites.js.map +1 -0
  172. package/dist/types.test.d.ts +2 -0
  173. package/dist/types.test.d.ts.map +1 -0
  174. package/dist/types.test.js +62 -0
  175. package/dist/types.test.js.map +1 -0
  176. package/dist/util.d.ts +50 -0
  177. package/dist/util.d.ts.map +1 -0
  178. package/dist/util.js +168 -0
  179. package/dist/util.js.map +1 -0
  180. package/dist/util.test.d.ts +3 -0
  181. package/dist/util.test.d.ts.map +1 -0
  182. package/dist/util.test.js +63 -0
  183. package/dist/util.test.js.map +1 -0
  184. package/dist/visitor.assign.d.ts +24 -0
  185. package/dist/visitor.assign.d.ts.map +1 -0
  186. package/dist/visitor.assign.js +112 -0
  187. package/dist/visitor.assign.js.map +1 -0
  188. package/dist/visitor.d.ts +89 -0
  189. package/dist/visitor.d.ts.map +1 -0
  190. package/dist/visitor.functionExpression.d.ts +7 -0
  191. package/dist/visitor.functionExpression.d.ts.map +1 -0
  192. package/dist/visitor.functionExpression.js +216 -0
  193. package/dist/visitor.functionExpression.js.map +1 -0
  194. package/dist/visitor.globals.d.ts +59 -0
  195. package/dist/visitor.globals.d.ts.map +1 -0
  196. package/dist/visitor.globals.js +271 -0
  197. package/dist/visitor.globals.js.map +1 -0
  198. package/dist/visitor.identifierAccessor.d.ts +6 -0
  199. package/dist/visitor.identifierAccessor.d.ts.map +1 -0
  200. package/dist/visitor.identifierAccessor.js +381 -0
  201. package/dist/visitor.identifierAccessor.js.map +1 -0
  202. package/dist/visitor.js +605 -0
  203. package/dist/visitor.js.map +1 -0
  204. package/dist/visitor.processor.d.ts +66 -0
  205. package/dist/visitor.processor.d.ts.map +1 -0
  206. package/dist/visitor.processor.js +147 -0
  207. package/dist/visitor.processor.js.map +1 -0
  208. package/package.json +63 -0
@@ -0,0 +1,242 @@
1
+ import path from 'path';
2
+ import { logger } from './logger.js';
3
+ const objectAlarmEvents = [];
4
+ for (let i = 0; i < 10; i++) {
5
+ objectAlarmEvents.push({
6
+ label: `Alarm ${i}`,
7
+ name: `Alarm_${i}`,
8
+ eventNum: i,
9
+ eventType: 2,
10
+ group: 'alarm',
11
+ });
12
+ }
13
+ /**
14
+ * Mapping of GameMaker filenames to their corresponding
15
+ * human-friendly event names.
16
+ */
17
+ export const objectEvents = [
18
+ {
19
+ label: 'Create',
20
+ name: 'Create_0',
21
+ eventNum: 0,
22
+ eventType: 0,
23
+ group: 'main',
24
+ },
25
+ {
26
+ label: 'Destroy',
27
+ name: 'Destroy_0',
28
+ eventNum: 0,
29
+ eventType: 1,
30
+ group: 'cleanup',
31
+ },
32
+ {
33
+ label: 'CleanUp',
34
+ name: 'CleanUp_0',
35
+ eventNum: 0,
36
+ eventType: 12,
37
+ group: 'cleanup',
38
+ },
39
+ {
40
+ label: 'Room Start',
41
+ name: 'Other_4',
42
+ eventNum: 4,
43
+ eventType: 7,
44
+ group: 'cleanup',
45
+ },
46
+ {
47
+ label: 'Room End',
48
+ name: 'Other_5',
49
+ eventNum: 5,
50
+ eventType: 7,
51
+ group: 'cleanup',
52
+ },
53
+ {
54
+ label: 'Game End',
55
+ name: 'Other_3',
56
+ eventNum: 3,
57
+ eventType: 7,
58
+ group: 'cleanup',
59
+ },
60
+ {
61
+ label: 'Pre-Draw',
62
+ name: 'Draw_76',
63
+ eventNum: 76,
64
+ eventType: 8,
65
+ group: 'draw',
66
+ },
67
+ {
68
+ label: 'Draw Begin',
69
+ name: 'Draw_72',
70
+ eventNum: 72,
71
+ eventType: 8,
72
+ group: 'draw',
73
+ },
74
+ {
75
+ label: 'Draw',
76
+ name: 'Draw_0',
77
+ eventNum: 0,
78
+ eventType: 8,
79
+ group: 'draw',
80
+ },
81
+ {
82
+ label: 'Draw End',
83
+ name: 'Draw_63',
84
+ eventNum: 63,
85
+ eventType: 8,
86
+ group: 'draw',
87
+ },
88
+ {
89
+ label: 'Post-Draw',
90
+ name: 'Draw_77',
91
+ eventNum: 77,
92
+ eventType: 8,
93
+ group: 'draw',
94
+ },
95
+ {
96
+ label: 'Draw GUI Begin',
97
+ name: 'Draw_74',
98
+ eventNum: 74,
99
+ eventType: 8,
100
+ group: 'draw-gui',
101
+ },
102
+ {
103
+ label: 'Draw GUI',
104
+ name: 'Draw_64',
105
+ eventNum: 64,
106
+ eventType: 8,
107
+ group: 'draw-gui',
108
+ },
109
+ {
110
+ label: 'Draw GUI End',
111
+ name: 'Draw_75',
112
+ eventNum: 75,
113
+ eventType: 8,
114
+ group: 'draw-gui',
115
+ },
116
+ {
117
+ label: 'Begin Step',
118
+ name: 'Step_1',
119
+ eventNum: 1,
120
+ eventType: 3,
121
+ group: 'step',
122
+ },
123
+ { label: 'Step', name: 'Step_0', eventNum: 0, eventType: 3, group: 'step' },
124
+ {
125
+ label: 'End Step',
126
+ name: 'Step_2',
127
+ eventNum: 2,
128
+ eventType: 3,
129
+ group: 'step',
130
+ },
131
+ ...[Array(16)].map((_, i) => ({
132
+ label: `User Event ${i}`,
133
+ name: `Other_${i + 10}`,
134
+ eventNum: i + 10,
135
+ eventType: 7,
136
+ group: 'user',
137
+ })),
138
+ {
139
+ label: 'Animation Update',
140
+ name: 'Other_58',
141
+ eventNum: 58,
142
+ eventType: 7,
143
+ group: 'animation',
144
+ },
145
+ {
146
+ label: 'Animation Event',
147
+ name: 'Other_59',
148
+ eventNum: 59,
149
+ eventType: 7,
150
+ group: 'animation',
151
+ },
152
+ {
153
+ label: 'Async - HTTP',
154
+ name: 'Other_62',
155
+ eventNum: 62,
156
+ eventType: 7,
157
+ group: 'async',
158
+ },
159
+ {
160
+ label: 'Async - System',
161
+ name: 'Other_75',
162
+ eventNum: 75,
163
+ eventType: 7,
164
+ group: 'async',
165
+ },
166
+ {
167
+ label: 'Async - Social',
168
+ name: 'Other_70',
169
+ eventNum: 70,
170
+ eventType: 7,
171
+ group: 'async',
172
+ },
173
+ {
174
+ label: 'Async - Save/Load',
175
+ name: 'Other_72',
176
+ eventNum: 72,
177
+ eventType: 7,
178
+ group: 'async',
179
+ },
180
+ {
181
+ label: 'Async - Steam',
182
+ name: 'Other_69',
183
+ eventNum: 69,
184
+ eventType: 7,
185
+ group: 'async',
186
+ },
187
+ {
188
+ label: 'Async - Dialog',
189
+ name: 'Other_63',
190
+ eventNum: 63,
191
+ eventType: 7,
192
+ group: 'async',
193
+ },
194
+ {
195
+ label: 'Broadcast Message',
196
+ name: 'Other_76',
197
+ eventNum: 76,
198
+ eventType: 7,
199
+ group: 'broadcast message',
200
+ },
201
+ ...objectAlarmEvents,
202
+ ];
203
+ Object.freeze(Object.seal(objectEvents));
204
+ /**
205
+ * Given a GameMaker object event filename, get its human-friendly name. */
206
+ export function getEventFromFilename(filename) {
207
+ const name = path.basename(filename, '.gml');
208
+ const collisionParts = name.match(/^Collision_(?<name>.+)$/);
209
+ if (collisionParts) {
210
+ // These are named per object they collide with
211
+ return {
212
+ eventNum: 0,
213
+ eventType: 4,
214
+ label: `Collision (${collisionParts.groups.name})`,
215
+ name: name,
216
+ group: 'collision',
217
+ };
218
+ }
219
+ const event = objectEvents.find((x) => x.name === name);
220
+ if (!event) {
221
+ logger.warn(`Could not find event for filename: ${filename}`);
222
+ }
223
+ return event;
224
+ }
225
+ export function getEventFromLabel(label) {
226
+ const collisionParts = label.match(/^Collision \((?<name>.+)\)$/);
227
+ if (collisionParts) {
228
+ // These are named per object they collide with
229
+ return {
230
+ eventNum: 0,
231
+ eventType: 4,
232
+ label: `Collision (${collisionParts.groups.name})`,
233
+ name: `Collision_${collisionParts.groups.name}`,
234
+ group: 'collision',
235
+ };
236
+ }
237
+ return objectEvents.find((x) => x.label === label);
238
+ }
239
+ export function getEventFrom(eventNum, eventType) {
240
+ return objectEvents.find((x) => x.eventNum === eventNum && x.eventType === eventType);
241
+ }
242
+ //# sourceMappingURL=lib.objects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.objects.js","sourceRoot":"","sources":["../src/lib.objects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { InspectOptions } from 'util';
2
+ export type Log = (...args: any[]) => void;
3
+ export interface Logger {
4
+ info: Log;
5
+ log: Log;
6
+ debug: Log;
7
+ warn: Log;
8
+ error: Log;
9
+ dir: (obj: any, options?: InspectOptions) => void;
10
+ }
11
+ export declare function setLogger(logger: Logger): void;
12
+ export declare const logger: Logger;
13
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAC3C,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,GAAG,CAAC;IACX,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CACnD;AAGD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,QAEvC;AAED,eAAO,MAAM,MAAM,QAQjB,CAAC"}
package/dist/logger.js ADDED
@@ -0,0 +1,14 @@
1
+ let loggerUtilitiy = console;
2
+ export function setLogger(logger) {
3
+ loggerUtilitiy = logger;
4
+ }
5
+ export const logger = new Proxy({}, {
6
+ get: (target, prop) => {
7
+ const log = loggerUtilitiy[prop];
8
+ if (typeof log === 'function') {
9
+ return log.bind(loggerUtilitiy);
10
+ }
11
+ return log;
12
+ },
13
+ });
14
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAWA,IAAI,cAAc,GAAW,OAAO,CAAC;AAErC,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,cAAc,GAAG,MAAM,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAS,EAAS,EAAE;IACjD,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,GAAG,GAAI,cAAsB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Dependency, ImportModuleOptions } from './modules.types.js';
2
+ import { Asset } from './project.asset.js';
3
+ import type { Project } from './project.js';
4
+ export type * from './modules.types.js';
5
+ /**
6
+ * @param sourceFolder Full folder path to import from (e.g. `Scripts/MainMenu`)
7
+ */
8
+ export declare function importAssets(sourceProject: Project, targetProject: Project, options?: ImportModuleOptions): Promise<{
9
+ created: string[];
10
+ updated: string[];
11
+ errors: string[];
12
+ skipped: string[];
13
+ }>;
14
+ /**
15
+ * Create a map listing all assets in a project and how they
16
+ * depend on other assets in same.
17
+ */
18
+ export declare function computeAssetDeps(project: Project): Map<Asset, Dependency[]>;
19
+ //# sourceMappingURL=modules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,KAAK,EAAiB,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,mBAAmB,oBAAoB,CAAC;AAExC;;GAEG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,OAAO,EACtB,OAAO,GAAE,mBAAwB;aAgHhB,MAAM,EAAE;aACR,MAAM,EAAE;YACT,MAAM,EAAE;aACP,MAAM,EAAE;GAmE1B;AAyFD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAgF3E"}
@@ -0,0 +1,320 @@
1
+ import { StitchImportError, assertStitchImportClaim } from './modules.util.js';
2
+ import { Asset, isAssetOfKind } from './project.asset.js';
3
+ import { findYyFile, groupPathToPosix, neither, xor } from './util.js';
4
+ /**
5
+ * @param sourceFolder Full folder path to import from (e.g. `Scripts/MainMenu`)
6
+ */
7
+ export async function importAssets(sourceProject, targetProject, options = {}) {
8
+ const logFile = targetProject.dir.join('stitch-import.log.yaml');
9
+ assertStitchImportClaim(neither(options.sourceFolder, options.sourceAsset) ||
10
+ xor(options.sourceAsset, options.sourceFolder), 'Can specify either sourceFolder or sourceAsset, or neither, but not both.');
11
+ // Identify all assets we want to import
12
+ const intendedImports = new Map();
13
+ if (options.sourceAsset) {
14
+ const asset = sourceProject.getAssetByName(options.sourceAsset, {
15
+ assertExists: true,
16
+ });
17
+ intendedImports.set(asset.name, asset);
18
+ }
19
+ else {
20
+ for (const [name, asset] of sourceProject.assets) {
21
+ if (!options.sourceFolder || asset.isInFolder(options.sourceFolder)) {
22
+ intendedImports.set(name, asset);
23
+ }
24
+ }
25
+ }
26
+ // Remove any assets that are not of the specified types
27
+ if (options.types?.length) {
28
+ for (const [name, asset] of intendedImports) {
29
+ if (!options.types.includes(asset.assetKind)) {
30
+ intendedImports.delete(name);
31
+ }
32
+ }
33
+ }
34
+ // Identify all dependencies of those assets that would be
35
+ // missing in the target project *after import*
36
+ const sourceDeps = computeAssetDeps(sourceProject);
37
+ const missingDeps = new Set();
38
+ const conflictingDeps = new Set();
39
+ let newMissingAssets = [];
40
+ for (const depList of sourceDeps.values()) {
41
+ newMissingAssets.push(...updateMissingDeps(depList, intendedImports, missingDeps, conflictingDeps, targetProject, sourceProject));
42
+ }
43
+ // We now have our first-layer deep of missing deps. To recursively
44
+ // populate *all* missing deps we need to repeat this process on the
45
+ // missing deps we find until we have no more missing deps. Preventing
46
+ // infinite loops here is essential!
47
+ // To do this, create a new list of "intended imports" representing
48
+ // if we were to import *everything* connected to the originally-desired
49
+ // imports.
50
+ const derivedImports = new Map();
51
+ // Start with the original intended imports
52
+ for (const [name, asset] of intendedImports) {
53
+ derivedImports.set(name, asset);
54
+ }
55
+ while (newMissingAssets.length) {
56
+ for (const asset of newMissingAssets) {
57
+ derivedImports.set(asset.name, asset);
58
+ }
59
+ const newMissingDeps = newMissingAssets
60
+ .map((a) => sourceDeps.get(a))
61
+ .flat();
62
+ // Find the *newly* missing deps from this new list
63
+ newMissingAssets = updateMissingDeps(newMissingDeps, derivedImports, missingDeps, conflictingDeps, targetProject, sourceProject);
64
+ }
65
+ // Conflicting deps should not be allowed at all.
66
+ if (conflictingDeps.size > 0) {
67
+ await logFile.write({
68
+ conflicts: conflictingDeps,
69
+ });
70
+ throw new StitchImportError(`Cannot import because of conflicting dependencies. See the logs for details: "${logFile}"`);
71
+ }
72
+ // By default, missing deps should cause an error
73
+ const { onMissingDependency } = options;
74
+ if (missingDeps.size &&
75
+ (!onMissingDependency || onMissingDependency === 'error')) {
76
+ await logFile.write({
77
+ missing: missingDeps,
78
+ });
79
+ throw new StitchImportError(`Cannot import because of conflicting dependencies. See the logs for details: "${logFile}"`);
80
+ }
81
+ const sourceFolder = groupPathToPosix(options.sourceFolder || '');
82
+ const targetFolder = groupPathToPosix(options.targetFolder || sourceFolder);
83
+ const waits = [];
84
+ const summary = {
85
+ created: [],
86
+ updated: [],
87
+ errors: [],
88
+ skipped: [],
89
+ };
90
+ const newAssets = [];
91
+ for (const [name, asset] of derivedImports) {
92
+ const skip = onMissingDependency !== 'include' && !intendedImports.has(asset.name);
93
+ if (skip) {
94
+ summary.skipped.push(asset.name);
95
+ continue;
96
+ }
97
+ // Ensure we have the target folder
98
+ let folder = groupPathToPosix(asset.folder);
99
+ if (sourceFolder && targetFolder) {
100
+ folder =
101
+ folder === sourceFolder
102
+ ? targetFolder
103
+ : folder.replace(sourceFolder + '/', targetFolder + '/');
104
+ }
105
+ // Copy over the asset files
106
+ const targetDir = targetProject.dir.join(asset.dir.relativeFrom(sourceProject.dir));
107
+ waits.push(targetDir
108
+ .ensureDir()
109
+ .then(() => targetDir.rm({ recursive: true, maxRetries: 5 }))
110
+ .then(() => asset.dir.copy(targetDir))
111
+ .then(() => targetProject.createFolder(folder, { skipSave: true }))
112
+ .then(async () => {
113
+ let existingAsset = targetProject.getAssetByName(asset.name);
114
+ if (!existingAsset) {
115
+ const yyFile = await findYyFile(targetDir);
116
+ const info = await targetProject.addAssetToYyp(yyFile.absolute, {
117
+ skipSave: true,
118
+ });
119
+ // Create and add the asset
120
+ existingAsset = await Asset.from(targetProject, info);
121
+ if (existingAsset) {
122
+ newAssets.push(existingAsset);
123
+ targetProject.registerAsset(existingAsset);
124
+ summary.created.push(existingAsset.name);
125
+ }
126
+ else {
127
+ summary.errors.push(`Failed to create asset for ${asset.name}`);
128
+ }
129
+ }
130
+ else {
131
+ await existingAsset.reload();
132
+ }
133
+ // Ensure the correct folder
134
+ await existingAsset?.moveToFolder(folder);
135
+ return existingAsset;
136
+ })
137
+ .catch((err) => {
138
+ summary.errors.push(`Failed to import asset ${asset.name}: ${err.message}`);
139
+ }));
140
+ }
141
+ await Promise.all(waits);
142
+ await targetProject.saveYyp();
143
+ targetProject.initiallyParseAssetCode(newAssets);
144
+ await logFile.write(summary);
145
+ return summary;
146
+ }
147
+ function updateMissingDeps(depList, intendedImports, missingDeps, conflictingDeps, targetProject, sourceProject) {
148
+ const newMissingDeps = [];
149
+ const addMissingDep = (dep) => {
150
+ if (!missingDeps.has(dep)) {
151
+ newMissingDeps.push(sourceProject.getAssetByName(dep.requirement.name, {
152
+ assertExists: true,
153
+ }));
154
+ missingDeps.add(dep);
155
+ }
156
+ };
157
+ for (const dep of depList) {
158
+ // Wrap this in a function so it can recurse on missing deps
159
+ if (!intendedImports.has(dep.requiredBy.name)) {
160
+ // Then it doesn't matter what is being required, since
161
+ // we're not trying to import this.
162
+ continue;
163
+ }
164
+ if (intendedImports.has(dep.requirement.name)) {
165
+ // Then we're already intending to import this, so it's not missing. BUT. It may create conflicts if it replaces something!
166
+ // Is there a globalvar with the same name?
167
+ const targetVar = targetProject.self.getMember(dep.requirement.name);
168
+ if (targetVar && !targetVar.asset) {
169
+ // Then this is a variable that is being replaced by an asset. This is not allowed.
170
+ conflictingDeps.add(dep);
171
+ continue;
172
+ }
173
+ // Is there an asset with the same name but different type?
174
+ const targetAsset = targetProject.getAssetByName(dep.requirement.name);
175
+ if (targetAsset && targetAsset.assetKind !== dep.requirement.kind) {
176
+ conflictingDeps.add(dep);
177
+ continue;
178
+ }
179
+ // If we replace the target asset, will we lose anything
180
+ // that is required by something else in the target?
181
+ if (targetAsset?.gmlFiles.size) {
182
+ // Then we're replacing an asset that has code, so we need to check if any of the things it defines are required by other *target* assets and *not* included in the import.
183
+ const varsDefinedByTarget = listGlobalvarsDefinedByAsset(targetAsset);
184
+ for (const targetVar of varsDefinedByTarget) {
185
+ // Do any intended imports include this?
186
+ const inSource = sourceProject.self.getMember(targetVar.name);
187
+ const fromSourceAsset = inSource && inSource.def?.file?.asset;
188
+ if (!fromSourceAsset || !intendedImports.has(fromSourceAsset.name)) {
189
+ // Then we're losing a variable that is required by something else in the target project.
190
+ conflictingDeps.add(dep);
191
+ }
192
+ }
193
+ }
194
+ }
195
+ // If this is a parent/child/ref relationship, we just
196
+ // need to ensure that the target has an asset of the same
197
+ // type with that name.
198
+ if (['parent', 'child', 'ref'].includes(dep.relationship)) {
199
+ const targetAsset = targetProject.getAssetByName(dep.requirement.name);
200
+ if (!targetAsset) {
201
+ addMissingDep(dep);
202
+ }
203
+ else if (targetAsset.assetKind !== dep.requirement.kind) {
204
+ conflictingDeps.add(dep);
205
+ }
206
+ }
207
+ else if (dep.relationship === 'code') {
208
+ // For simplicity, just see if any global entity with the
209
+ // same name exists (could check types in the future).
210
+ const existsInTarget = targetProject.self.getMember(dep.signifier) ||
211
+ targetProject.getAssetByName(dep.signifier);
212
+ if (!existsInTarget) {
213
+ addMissingDep(dep);
214
+ }
215
+ }
216
+ }
217
+ return newMissingDeps;
218
+ }
219
+ /**
220
+ * Create a map listing all assets in a project and how they
221
+ * depend on other assets in same.
222
+ */
223
+ export function computeAssetDeps(project) {
224
+ const dependencies = new Map();
225
+ for (const [, asset] of project.assets) {
226
+ const deps = [];
227
+ dependencies.set(asset, deps);
228
+ // Handle object-specific dependencies (parent objects and sprite assignments)
229
+ if (isAssetOfKind(asset, 'objects')) {
230
+ if (asset.parent) {
231
+ deps.push({
232
+ relationship: 'parent',
233
+ requiredBy: { name: asset.name, kind: 'objects' },
234
+ requirement: { name: asset.parent.name, kind: 'objects' },
235
+ });
236
+ }
237
+ if (asset.sprite) {
238
+ deps.push({
239
+ relationship: 'child',
240
+ requiredBy: { name: asset.name, kind: 'objects' },
241
+ requirement: { name: asset.sprite.name, kind: 'sprites' },
242
+ });
243
+ }
244
+ }
245
+ // Handle code dependencies (referenced signifiers)
246
+ for (const gmlFile of asset.gmlFiles.values()) {
247
+ for (const ref of gmlFile.refs) {
248
+ // This could be a child of something, so get to the root-most
249
+ // signifier.
250
+ const seenItems = new Set();
251
+ let item = ref.item;
252
+ while (item.parent) {
253
+ if (item.parent.signifier?.name === 'global')
254
+ break;
255
+ item = item.parent.signifier || item;
256
+ // Prevent circularity!
257
+ if (!item.parent.signifier || seenItems.has(item))
258
+ break;
259
+ seenItems.add(item);
260
+ }
261
+ // Skip native, local, and janky signifiers
262
+ if (item.native || item.local || !item.def?.file)
263
+ continue;
264
+ const itemAsset = item.def.file.asset;
265
+ // Skip intra-asset references
266
+ if (itemAsset === asset)
267
+ continue;
268
+ if (item.asset) {
269
+ // Then this is a reference to an asset, not a code signifier
270
+ deps.push({
271
+ relationship: 'ref',
272
+ requiredBy: { name: asset.name, kind: asset.assetKind },
273
+ requirement: {
274
+ name: itemAsset.name,
275
+ kind: itemAsset.assetKind,
276
+ },
277
+ });
278
+ }
279
+ else {
280
+ // It's a code signifier
281
+ deps.push({
282
+ relationship: 'code',
283
+ requiredBy: { name: asset.name, kind: asset.assetKind },
284
+ requirement: { name: itemAsset.name, kind: itemAsset.assetKind },
285
+ signifier: item.name,
286
+ def: {
287
+ file: item.def.file.path.relative,
288
+ line: item.def.start.line,
289
+ column: item.def.start.column,
290
+ },
291
+ ref: {
292
+ file: ref.file.path.relative,
293
+ line: ref.start.line,
294
+ column: ref.start.column,
295
+ },
296
+ });
297
+ }
298
+ }
299
+ }
300
+ }
301
+ return dependencies;
302
+ }
303
+ function listGlobalvarsDefinedByAsset(asset) {
304
+ const vars = new Set();
305
+ for (const gmlFile of asset.gmlFiles.values()) {
306
+ for (const ref of gmlFile.refs) {
307
+ const { item } = ref;
308
+ if (item.local ||
309
+ item.native ||
310
+ !item.global ||
311
+ !item.def?.file ||
312
+ item.def.file.asset !== asset) {
313
+ continue;
314
+ }
315
+ vars.add(item);
316
+ }
317
+ }
318
+ return vars;
319
+ }
320
+ //# sourceMappingURL=modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=modules.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.test.d.ts","sourceRoot":"","sources":["../src/modules.test.ts"],"names":[],"mappings":""}