@bscotch/yy 2.5.0 → 2.6.0
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/README.md +41 -4
- package/dist/Yy.d.ts +136 -136
- package/dist/cli.d.mts +3 -0
- package/dist/cli.d.mts.map +1 -0
- package/dist/cli.mjs +39 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/groups.d.ts +8 -0
- package/dist/groups.d.ts.map +1 -0
- package/dist/groups.js +26 -0
- package/dist/groups.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/scripts.d.ts +17 -0
- package/dist/scripts.d.ts.map +1 -0
- package/dist/scripts.js +88 -0
- package/dist/scripts.js.map +1 -0
- package/dist/types/utility.d.ts +13 -0
- package/dist/types/utility.d.ts.map +1 -1
- package/dist/types/utility.js +28 -0
- package/dist/types/utility.js.map +1 -1
- package/dist/versioning.d.ts +12 -0
- package/dist/versioning.d.ts.map +1 -0
- package/dist/versioning.js +82 -0
- package/dist/versioning.js.map +1 -0
- package/package.json +2 -2
- package/dist/cli.d.ts +0 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -17
- package/dist/cli.js.map +0 -1
package/dist/cli.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.mts","sourceRoot":"","sources":["../src/cli.mts"],"names":[],"mappings":""}
|
package/dist/cli.mjs
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { ok } from 'assert';
|
|
3
|
+
import { Yy } from './Yy.js';
|
|
4
|
+
import { setProjectVersion } from './versioning.js';
|
|
5
|
+
const [command, ...args] = process.argv.slice(2);
|
|
6
|
+
if (command === 'diff') {
|
|
7
|
+
const [firstYyFile, secondYyFile] = args;
|
|
8
|
+
if (!firstYyFile || askingForHelp(firstYyFile)) {
|
|
9
|
+
// Show help info
|
|
10
|
+
console.error('Usage: yy diff <firstYyFile> <secondYyFile>');
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
ok(firstYyFile, 'First argument must be a yy file path');
|
|
14
|
+
ok(secondYyFile, 'Second argument must be a Yy file path');
|
|
15
|
+
const firstYy = Yy.readSync(firstYyFile);
|
|
16
|
+
const secondYy = Yy.readSync(secondYyFile);
|
|
17
|
+
const diff = Yy.diff(firstYy, secondYy);
|
|
18
|
+
console.log(JSON.stringify(diff, null, 2));
|
|
19
|
+
}
|
|
20
|
+
else if (command === 'version') {
|
|
21
|
+
const [yypFile, newVersion] = args;
|
|
22
|
+
if (!yypFile || askingForHelp(yypFile)) {
|
|
23
|
+
// Show help info, including description that this sets the version for all platforms
|
|
24
|
+
console.error('Usage: yy version <yypFile> <newVersion>');
|
|
25
|
+
console.error("\nSets the version in the project's Options files for all platforms. Allowed version formats include: 0.0.0, 0.0.0.0, and 0.0.0-rc.0");
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
ok(newVersion, 'New version must be provided as the second argument');
|
|
29
|
+
await setProjectVersion(yypFile, newVersion);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.error(`Unknown command: ${command}`);
|
|
33
|
+
console.error(`Available commands: diff, version`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
function askingForHelp(arg) {
|
|
37
|
+
return ['-h', '--help', 'help'].includes(arg);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=cli.mjs.map
|
package/dist/cli.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.mjs","sourceRoot":"","sources":["../src/cli.mts"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEjD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/C,iBAAiB;QACjB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,EAAE,CAAC,WAAW,EAAE,uCAAuC,CAAC,CAAC;IACzD,EAAE,CAAC,YAAY,EAAE,wCAAwC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;KAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;IACjC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,qFAAqF;QACrF,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CACX,sIAAsI,CACvI,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,EAAE,CAAC,UAAU,EAAE,qDAAqD,CAAC,CAAC;IACtE,MAAM,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC"}
|
package/dist/groups.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensure the provided audio or texture groups exist in the YYP file.
|
|
3
|
+
* If they already exist, no operation will be performed.
|
|
4
|
+
*/
|
|
5
|
+
export declare function ensureGroups(yypPath: string, kind: 'audio' | 'texture', names: string[]): Promise<{
|
|
6
|
+
result: 'created' | 'noop';
|
|
7
|
+
}>;
|
|
8
|
+
//# sourceMappingURL=groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../src/groups.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAAA;CAAE,CAAC,CAuBzC"}
|
package/dist/groups.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { assert } from './types/utility.js';
|
|
2
|
+
import { Yy } from './Yy.js';
|
|
3
|
+
/**
|
|
4
|
+
* Ensure the provided audio or texture groups exist in the YYP file.
|
|
5
|
+
* If they already exist, no operation will be performed.
|
|
6
|
+
*/
|
|
7
|
+
export async function ensureGroups(yypPath, kind, names) {
|
|
8
|
+
let result = 'noop';
|
|
9
|
+
assert(yypPath.endsWith('.yyp'), 'First argument must be a path to a .yyp file');
|
|
10
|
+
names = [...new Set(names)]; // ensure uniqueness
|
|
11
|
+
const yyp = await Yy.read(yypPath, 'project');
|
|
12
|
+
const currentGroups = kind === 'audio' ? yyp.AudioGroups : yyp.TextureGroups;
|
|
13
|
+
for (const newName of names) {
|
|
14
|
+
const existing = currentGroups.find((group) => group.name === newName);
|
|
15
|
+
if (existing)
|
|
16
|
+
continue;
|
|
17
|
+
result = 'created';
|
|
18
|
+
// @ts-expect-error Will get fixed up on save!
|
|
19
|
+
currentGroups.push({ name: newName });
|
|
20
|
+
}
|
|
21
|
+
if (result === 'created') {
|
|
22
|
+
await Yy.write(yypPath, yyp, 'project');
|
|
23
|
+
}
|
|
24
|
+
return { result };
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=groups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groups.js","sourceRoot":"","sources":["../src/groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,IAAyB,EACzB,KAAe;IAEf,IAAI,MAAM,GAAuB,MAAM,CAAC;IACxC,MAAM,CACJ,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxB,8CAA8C,CAC/C,CAAC;IACF,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB;IAEjD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;IAE7E,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QACvE,IAAI,QAAQ;YAAE,SAAS;QACvB,MAAM,GAAG,SAAS,CAAC;QACnB,8CAA8C;QAC9C,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './groups.js';
|
|
2
|
+
export * from './scripts.js';
|
|
2
3
|
export * from './types/GameMakerVersionString.js';
|
|
4
|
+
export * from './types/utility.js';
|
|
3
5
|
export * from './types/YyBase.js';
|
|
4
6
|
export * from './types/YyExtension.js';
|
|
5
7
|
export * from './types/YyObject.js';
|
|
8
|
+
export * from './types/Yyp.js';
|
|
6
9
|
export * from './types/YyRoom.js';
|
|
7
10
|
export * from './types/YyScript.js';
|
|
8
11
|
export * from './types/YyShader.js';
|
|
9
12
|
export * from './types/YySound.js';
|
|
10
13
|
export * from './types/YySprite.js';
|
|
11
|
-
export * from './
|
|
14
|
+
export * from './versioning.js';
|
|
15
|
+
export * from './Yy.js';
|
|
12
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC;AAClD,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './groups.js';
|
|
2
|
+
export * from './scripts.js';
|
|
2
3
|
export * from './types/GameMakerVersionString.js';
|
|
4
|
+
export * from './types/utility.js';
|
|
3
5
|
export * from './types/YyBase.js';
|
|
4
6
|
export * from './types/YyExtension.js';
|
|
5
7
|
export * from './types/YyObject.js';
|
|
8
|
+
export * from './types/Yyp.js';
|
|
6
9
|
export * from './types/YyRoom.js';
|
|
7
10
|
export * from './types/YyScript.js';
|
|
8
11
|
export * from './types/YyShader.js';
|
|
9
12
|
export * from './types/YySound.js';
|
|
10
13
|
export * from './types/YySprite.js';
|
|
11
|
-
export * from './
|
|
14
|
+
export * from './versioning.js';
|
|
15
|
+
export * from './Yy.js';
|
|
12
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC;AAClD,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add a script to a project if it doesn't already exist.
|
|
3
|
+
* In either case, if `content` is provided then overwrite the
|
|
4
|
+
* script with whatever is in that parameter.
|
|
5
|
+
*/
|
|
6
|
+
export declare function addScript(yypPath: string, scriptName: string, content?: string): Promise<{
|
|
7
|
+
result: 'updated' | 'created' | 'noop';
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* List all yy files with the target folder that are nested one folder deep.
|
|
11
|
+
* E.g. in `scripts` find `scripts/my_script/my_script.yy` etc.
|
|
12
|
+
*/
|
|
13
|
+
export declare function listYyFiles(inFolder: string): Promise<{
|
|
14
|
+
path: string;
|
|
15
|
+
name: string;
|
|
16
|
+
}[]>;
|
|
17
|
+
//# sourceMappingURL=scripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../src/scripts.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;CAAE,CAAC,CA6ErD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAsB3C"}
|
package/dist/scripts.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import fsp from 'node:fs/promises';
|
|
2
|
+
import { assert, joinPaths, parsePath } from './types/utility.js';
|
|
3
|
+
import { Yy } from './Yy.js';
|
|
4
|
+
/**
|
|
5
|
+
* Add a script to a project if it doesn't already exist.
|
|
6
|
+
* In either case, if `content` is provided then overwrite the
|
|
7
|
+
* script with whatever is in that parameter.
|
|
8
|
+
*/
|
|
9
|
+
export async function addScript(yypPath, scriptName, content) {
|
|
10
|
+
let result = 'noop';
|
|
11
|
+
assert(yypPath.endsWith('.yyp'), 'First argument must be a path to a .yyp file');
|
|
12
|
+
assert(scriptName.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/), 'Invalid script name. Must be a GameMaker-compatible name.');
|
|
13
|
+
const yyp = await Yy.read(yypPath, 'project');
|
|
14
|
+
const projectFolder = parsePath(yypPath).parent;
|
|
15
|
+
const scriptsDir = joinPaths(projectFolder, 'scripts');
|
|
16
|
+
// First ensure the script files exist, since if they do
|
|
17
|
+
// but are not listed in the yyp that won't break the project.
|
|
18
|
+
// Don't allow same-name-different-case scenarios
|
|
19
|
+
const scripts = await listYyFiles(scriptsDir);
|
|
20
|
+
const matching = scripts.find((script) => script.name.toLowerCase() === scriptName.toLowerCase());
|
|
21
|
+
const scriptDir = joinPaths(scriptsDir, scriptName);
|
|
22
|
+
const scriptYyPath = joinPaths(scriptDir, `${scriptName}.yy`);
|
|
23
|
+
const scriptGmlPath = joinPaths(scriptDir, `${scriptName}.gml`);
|
|
24
|
+
if (!matching) {
|
|
25
|
+
// Then we'll need to create the files!
|
|
26
|
+
await fsp.mkdir(scriptDir, { recursive: true });
|
|
27
|
+
const yypName = parsePath(yypPath).filename;
|
|
28
|
+
await Yy.write(scriptYyPath, {
|
|
29
|
+
name: scriptName,
|
|
30
|
+
parent: {
|
|
31
|
+
name: yypName.replace(/\.yyp$/, ''),
|
|
32
|
+
path: yypName,
|
|
33
|
+
},
|
|
34
|
+
}, 'scripts', yyp);
|
|
35
|
+
// If the GML file doesn't exist, create it
|
|
36
|
+
if (await fsp
|
|
37
|
+
.stat(scriptGmlPath)
|
|
38
|
+
.then(() => false)
|
|
39
|
+
.catch(() => true)) {
|
|
40
|
+
await fsp.writeFile(scriptGmlPath, '/// ');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// If content was provided, overwrite the GML file
|
|
44
|
+
if (content) {
|
|
45
|
+
await fsp.writeFile(scriptGmlPath, content);
|
|
46
|
+
result = 'updated';
|
|
47
|
+
}
|
|
48
|
+
// At this point the target files exist, so we just need to
|
|
49
|
+
// register it in the list of resources in the YYP if it's not already there.
|
|
50
|
+
const inYyp = yyp.resources.find((r) => r.id.name.toLowerCase() === scriptName.toLowerCase());
|
|
51
|
+
if (!inYyp) {
|
|
52
|
+
// Add it!
|
|
53
|
+
const resourceEntry = {
|
|
54
|
+
id: {
|
|
55
|
+
name: scriptName,
|
|
56
|
+
path: `scripts/${scriptName}/${scriptName}.yy`,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
yyp.resources.push(resourceEntry);
|
|
60
|
+
await Yy.write(yypPath, yyp, 'project');
|
|
61
|
+
result = 'created';
|
|
62
|
+
}
|
|
63
|
+
return { result };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* List all yy files with the target folder that are nested one folder deep.
|
|
67
|
+
* E.g. in `scripts` find `scripts/my_script/my_script.yy` etc.
|
|
68
|
+
*/
|
|
69
|
+
export async function listYyFiles(inFolder) {
|
|
70
|
+
const folders = await fsp.readdir(inFolder, { withFileTypes: true });
|
|
71
|
+
const yyFiles = [];
|
|
72
|
+
for (const folder of folders) {
|
|
73
|
+
if (folder.isDirectory()) {
|
|
74
|
+
const files = (await fsp.readdir(joinPaths(inFolder, folder.name), {
|
|
75
|
+
withFileTypes: true,
|
|
76
|
+
})).filter((f) => f.isFile() && f.name.endsWith('.yy'));
|
|
77
|
+
// Add them to the set of files, ensuring they have full paths
|
|
78
|
+
if (files.length > 0) {
|
|
79
|
+
yyFiles.push(...files.map((f) => ({
|
|
80
|
+
name: folder.name,
|
|
81
|
+
path: joinPaths(inFolder, folder.name, f.name),
|
|
82
|
+
})));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return yyFiles;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=scripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../src/scripts.ts"],"names":[],"mappings":"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"}
|
package/dist/types/utility.d.ts
CHANGED
|
@@ -49,4 +49,17 @@ export declare function yyIsNewFormat<T>(yyData: T): yyData is T & {
|
|
|
49
49
|
export declare function isObjectWithField<F extends string>(obj: unknown, field: F): obj is Record<string, unknown> & {
|
|
50
50
|
[K in F]: unknown;
|
|
51
51
|
};
|
|
52
|
+
export declare function assert(claim: any, message: string): asserts claim;
|
|
53
|
+
export declare function toPosixPath(path: string): string;
|
|
54
|
+
export declare function parsePath(path: string): {
|
|
55
|
+
filename: string;
|
|
56
|
+
fullpath: string;
|
|
57
|
+
parent: string;
|
|
58
|
+
ext: `.${string}`;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Join path parts, ensuring exactly one POSIX separator is between
|
|
62
|
+
* each part. Maintains initial and final seps.
|
|
63
|
+
*/
|
|
64
|
+
export declare function joinPaths(...parts: string[]): string;
|
|
52
65
|
//# sourceMappingURL=utility.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/types/utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,SAAS,UAAU,CAAC;AAEjC,wBAAgB,YAAY,CAAC,MAAM,SAAK,UAQvC;AAED,qBAAa,WAAY,SAAQ,MAAM;IAGnC,QAAQ,CAAC,MAAM;gBADf,KAAK,EAAE,MAAM,GAAG,WAAW,EAClB,MAAM,SAAI;IAKrB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM;IACxD,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAKnC,QAAQ,IAAI,MAAM;IAI3B,MAAM,IAAI,MAAM;CAGjB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,wFAErD;AAED,eAAO,MAAM,MAAM,aAAqB,CAAC;AACzC,eAAO,MAAM,MAAM,aAAqB,CAAC;AAEzC,wBAAgB,WAAW,CAAC,MAAM,cAAa,EAAE,MAAM,SAAI,4GAO1D;AAED;;GAEG;AACH,wBAAgB,SAAS,wGAIxB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,SAAI,8DAWxE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAa1E;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,GACX,aAAa,CAKf;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc;;;mBAuBjE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAK7E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,CAAC,GACP,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,OAAO;CAAE,CAQxD"}
|
|
1
|
+
{"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/types/utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,SAAS,UAAU,CAAC;AAEjC,wBAAgB,YAAY,CAAC,MAAM,SAAK,UAQvC;AAED,qBAAa,WAAY,SAAQ,MAAM;IAGnC,QAAQ,CAAC,MAAM;gBADf,KAAK,EAAE,MAAM,GAAG,WAAW,EAClB,MAAM,SAAI;IAKrB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM;IACxD,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAKnC,QAAQ,IAAI,MAAM;IAI3B,MAAM,IAAI,MAAM;CAGjB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,wFAErD;AAED,eAAO,MAAM,MAAM,aAAqB,CAAC;AACzC,eAAO,MAAM,MAAM,aAAqB,CAAC;AAEzC,wBAAgB,WAAW,CAAC,MAAM,cAAa,EAAE,MAAM,SAAI,4GAO1D;AAED;;GAEG;AACH,wBAAgB,SAAS,wGAIxB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,SAAI,8DAWxE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAa1E;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,GACX,aAAa,CAKf;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,cAAc;;;mBAuBjE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAK7E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,CAAC,GACP,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,OAAO;CAAE,CAQxD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAEjE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,IAAI,MAAM,EAAE,CAAC;CACnB,CAOA;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAQpD"}
|
package/dist/types/utility.js
CHANGED
|
@@ -123,4 +123,32 @@ export function isObjectWithField(obj, field) {
|
|
|
123
123
|
// @ts-expect-error
|
|
124
124
|
obj[field] !== undefined);
|
|
125
125
|
}
|
|
126
|
+
export function assert(claim, message) {
|
|
127
|
+
if (!claim)
|
|
128
|
+
throw new Error(message);
|
|
129
|
+
}
|
|
130
|
+
export function toPosixPath(path) {
|
|
131
|
+
return path.replace(/\\/g, '/');
|
|
132
|
+
}
|
|
133
|
+
export function parsePath(path) {
|
|
134
|
+
path = toPosixPath(path);
|
|
135
|
+
const parts = path.match(/^(?<parent>.*\/)?(?<filename>[^/]+?(?<ext>\.[^.]*)?)$/);
|
|
136
|
+
assert(parts, `Could not identify path parts of "${path}"`);
|
|
137
|
+
return { ...parts.groups, fullpath: path };
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Join path parts, ensuring exactly one POSIX separator is between
|
|
141
|
+
* each part. Maintains initial and final seps.
|
|
142
|
+
*/
|
|
143
|
+
export function joinPaths(...parts) {
|
|
144
|
+
return parts
|
|
145
|
+
.map((part, i) => {
|
|
146
|
+
if (i === 0)
|
|
147
|
+
return part.replace(/\/+$/, ''); // First part: trim end only
|
|
148
|
+
if (i === parts.length - 1)
|
|
149
|
+
return part.replace(/^\/+/, ''); // Last part: trim start only
|
|
150
|
+
return part.replace(/^\/+|\/+$/g, ''); // Middle parts: trim both ends
|
|
151
|
+
})
|
|
152
|
+
.join('/');
|
|
153
|
+
}
|
|
126
154
|
//# sourceMappingURL=utility.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../../src/types/utility.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utility.js","sourceRoot":"","sources":["../../src/types/utility.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Set the project version in all options files.
|
|
3
|
+
* (Note that the Switch options files do not include the version
|
|
4
|
+
* -- that must be set outside of GameMaker in the *.nmeta file).
|
|
5
|
+
* Can use one of:
|
|
6
|
+
* + "0.0.0.0" syntax (exactly as GameMaker stores versions)
|
|
7
|
+
* + "0.0.0" syntax (semver without prereleases -- the 4th value will always be 0)
|
|
8
|
+
* + "0.0.0-rc.0" syntax (the 4th number will be the RC number)
|
|
9
|
+
* The four numbers will appear in all cases as the string "major.minor.patch.candidate"
|
|
10
|
+
*/
|
|
11
|
+
export declare function setProjectVersion(yypPath: string, versionString: string): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=versioning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioning.d.ts","sourceRoot":"","sources":["../src/versioning.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,iBAoDtB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import fsp from 'node:fs/promises';
|
|
2
|
+
import { assert, joinPaths, parsePath } from './types/utility.js';
|
|
3
|
+
const platformNames = [
|
|
4
|
+
'amazonfire',
|
|
5
|
+
'android',
|
|
6
|
+
'html5',
|
|
7
|
+
'ios',
|
|
8
|
+
'linux',
|
|
9
|
+
'mac',
|
|
10
|
+
'operagx',
|
|
11
|
+
'ps4',
|
|
12
|
+
'switch',
|
|
13
|
+
'tvos',
|
|
14
|
+
'windows',
|
|
15
|
+
'windowsuap',
|
|
16
|
+
'xbone',
|
|
17
|
+
'xboxseriesxs',
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* Set the project version in all options files.
|
|
21
|
+
* (Note that the Switch options files do not include the version
|
|
22
|
+
* -- that must be set outside of GameMaker in the *.nmeta file).
|
|
23
|
+
* Can use one of:
|
|
24
|
+
* + "0.0.0.0" syntax (exactly as GameMaker stores versions)
|
|
25
|
+
* + "0.0.0" syntax (semver without prereleases -- the 4th value will always be 0)
|
|
26
|
+
* + "0.0.0-rc.0" syntax (the 4th number will be the RC number)
|
|
27
|
+
* The four numbers will appear in all cases as the string "major.minor.patch.candidate"
|
|
28
|
+
*/
|
|
29
|
+
export async function setProjectVersion(yypPath, versionString) {
|
|
30
|
+
assert(yypPath.endsWith('.yyp'), 'First argument must be a path to a .yyp file');
|
|
31
|
+
const projectFolder = parsePath(yypPath).parent;
|
|
32
|
+
const parts = versionString.match(/^(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)((\.(?<revision>\d+))|(-rc.(?<candidate>\d+)))?$/);
|
|
33
|
+
if (!parts) {
|
|
34
|
+
throw new Error(`Version string ${versionString} is not a valid format.`);
|
|
35
|
+
}
|
|
36
|
+
const { major, minor, patch, revision, candidate } = parts.groups;
|
|
37
|
+
const normalizedVersionString = [
|
|
38
|
+
major,
|
|
39
|
+
minor,
|
|
40
|
+
patch,
|
|
41
|
+
candidate || revision || '0',
|
|
42
|
+
].join('.');
|
|
43
|
+
const optionsDir = joinPaths(projectFolder, 'options');
|
|
44
|
+
const optionsFiles = await listFiles(optionsDir, ['.yy', '.nmeta']);
|
|
45
|
+
for (const file of optionsFiles) {
|
|
46
|
+
// Load it, change the version, and save
|
|
47
|
+
const parsedPath = parsePath(file);
|
|
48
|
+
if (parsedPath.ext == '.yy') {
|
|
49
|
+
// Read the file and replace anything that looks like a version line with the provided version. A version line looks like "option_..._version":"x.y.z.w"
|
|
50
|
+
const content = await fsp.readFile(file, 'utf8');
|
|
51
|
+
const newContent = content.replace(new RegExp(`("option[^"]*(?:${platformNames.join('|')})_version":\\s*")[\\d.]+"`), `$1${normalizedVersionString}"`);
|
|
52
|
+
await fsp.writeFile(file, newContent);
|
|
53
|
+
}
|
|
54
|
+
// Switch *.nmeta file needs special treatment
|
|
55
|
+
else if (parsedPath.ext == '.nmeta') {
|
|
56
|
+
// Uses an XML-ish format
|
|
57
|
+
const switchSearchRegex = new RegExp(`(?<pre><DisplayVersion>)(?<versionString>.*)(?<post></DisplayVersion>)`);
|
|
58
|
+
const content = await fsp.readFile(file, 'utf8');
|
|
59
|
+
const newContent = content.replace(switchSearchRegex, `$1${normalizedVersionString}$3`);
|
|
60
|
+
await fsp.writeFile(file, newContent);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get the files found in `dir`, recursively, as full paths. Only include
|
|
66
|
+
* specified extensions.
|
|
67
|
+
*/
|
|
68
|
+
async function listFiles(dir, allowedExtensions) {
|
|
69
|
+
let results = [];
|
|
70
|
+
const list = await fsp.readdir(dir, { withFileTypes: true });
|
|
71
|
+
for (const dirent of list) {
|
|
72
|
+
const fullPath = joinPaths(dir, dirent.name);
|
|
73
|
+
if (dirent.isDirectory()) {
|
|
74
|
+
results = results.concat(await listFiles(fullPath, allowedExtensions));
|
|
75
|
+
}
|
|
76
|
+
else if (allowedExtensions.includes(parsePath(dirent.name).ext)) {
|
|
77
|
+
results.push(fullPath);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return results;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=versioning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioning.js","sourceRoot":"","sources":["../src/versioning.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bscotch/yy",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Stringify, parse, read, and write GameMaker yy and yyp files.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"yy",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"main": "dist/index.js",
|
|
32
32
|
"types": "dist/index.d.ts",
|
|
33
33
|
"bin": {
|
|
34
|
-
"yy": "./dist/cli.
|
|
34
|
+
"yy": "./dist/cli.mjs"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@bscotch/utility": "^7.2.0",
|
package/dist/cli.d.ts
DELETED
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ok } from 'assert';
|
|
2
|
-
import { Yy } from './Yy.js';
|
|
3
|
-
const [command, ...args] = process.argv.slice(2);
|
|
4
|
-
if (command === 'diff') {
|
|
5
|
-
const [firstYyFile, secondYyFile] = args;
|
|
6
|
-
ok(firstYyFile, 'First Yy file must be specified');
|
|
7
|
-
ok(secondYyFile, 'Second Yy file must be specified');
|
|
8
|
-
const firstYy = Yy.readSync(firstYyFile);
|
|
9
|
-
const secondYy = Yy.readSync(secondYyFile);
|
|
10
|
-
const diff = Yy.diff(firstYy, secondYy);
|
|
11
|
-
console.log(JSON.stringify(diff, null, 2));
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
console.error(`Unknown command: ${command}`);
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEjD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC;IACzC,EAAE,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC;IACnD,EAAE,CAAC,YAAY,EAAE,kCAAkC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|