@vertesia/memory-cli 0.82.1 → 0.82.3

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/lib/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/lib/cli.js ADDED
@@ -0,0 +1,20 @@
1
+ import { program } from 'commander';
2
+ import { setupMemoCommand } from './command.js';
3
+ import { dirname } from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import { readFileSync } from 'fs';
6
+ const packageDir = dirname(dirname(fileURLToPath(import.meta.url)));
7
+ let _package;
8
+ function getPackage() {
9
+ if (_package === undefined) {
10
+ _package = JSON.parse(readFileSync(`${packageDir}/package.json`, 'utf8'));
11
+ }
12
+ return _package;
13
+ }
14
+ function getVersion() {
15
+ return getPackage().version;
16
+ }
17
+ program.version(getVersion());
18
+ setupMemoCommand(program);
19
+ program.parse();
20
+ //# sourceMappingURL=cli.js.map
package/lib/cli.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEpE,IAAI,QAAa,CAAC;AAClB,SAAS,UAAU;IACf,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,UAAU,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD,SAAS,UAAU;IACf,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC;AAChC,CAAC;AAED,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9B,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function setupMemoCommand(command: Command, publish?: (file: string, name: string) => Promise<string>): Command;
3
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,WA8B3G"}
package/lib/command.js ADDED
@@ -0,0 +1,101 @@
1
+ import { loadMemoryPack } from '@vertesia/memory';
2
+ import { build } from '@vertesia/memory-commands';
3
+ import { Command } from 'commander';
4
+ import { readFile } from 'fs/promises';
5
+ import { dirname } from 'path';
6
+ import url from 'url';
7
+ export function setupMemoCommand(command, publish) {
8
+ const buildCmd = new Command("build").description("Build a memory pack from a recipe script.");
9
+ buildCmd.allowUnknownOption()
10
+ .option('-i, --indent <spaces>', 'The number of spaces to indent the JSON result. A indentation of 2 is used by default.')
11
+ .option('-q, --quiet', 'Do not log anything to the console.')
12
+ .option('-z, --gzip', 'Compress the output file using gzip.')
13
+ .option('-o, --out <file>', 'The output file. Defaults to "memory.tar".')
14
+ .option('-t, --test', 'Test the memory script without building it.')
15
+ .argument('<recipe>', 'The recipe script to build the memory from.')
16
+ .action((_arg, options, command) => {
17
+ memoAction(command, { ...options, publish }).catch((err) => {
18
+ console.error("Failed to run command: ", err);
19
+ process.exit(1);
20
+ });
21
+ });
22
+ const exportCmd = new Command("export").description("Export a JSON object from the memory pack given a mapping.");
23
+ exportCmd.option('--map <mapping>', 'The mapping to use. An inline JSON object or a path to a JSOn file prefixed with @')
24
+ .option('-i, --indent <spaces>', 'The number of spaces to indent the JSON result. No indentation is done by default.')
25
+ .argument('<pack>', 'The uncompressed memory pack to use (i.e. a .tar file).')
26
+ .action((arg, options, command) => {
27
+ exportAction(command, arg, options).catch((err) => {
28
+ console.error("Failed to run command: ", err);
29
+ process.exit(1);
30
+ });
31
+ });
32
+ command.addCommand(buildCmd);
33
+ command.addCommand(exportCmd);
34
+ return command;
35
+ }
36
+ function memoAction(command, options) {
37
+ const { script, vars } = parseArgs(command.args);
38
+ if (options.indent) {
39
+ options.indent = parseInt(options.indent);
40
+ }
41
+ if (!options.transpileDir) {
42
+ options.transpileDir = dirname(url.fileURLToPath(import.meta.url));
43
+ }
44
+ return build(script, { ...options, vars });
45
+ }
46
+ /**
47
+ * We take all --var-xxx options and return them as an object to be passed as the `vars` variable to the script
48
+ * @param args
49
+ */
50
+ function parseArgs(args) {
51
+ if (!args.length) {
52
+ console.error("No recipe script was provided.");
53
+ process.exit(1);
54
+ }
55
+ let script;
56
+ const vars = {};
57
+ let lastKey;
58
+ let lastCommittedOption;
59
+ for (const arg of args) {
60
+ if (arg.startsWith('--var-')) {
61
+ if (lastKey) {
62
+ vars[lastKey] = true;
63
+ }
64
+ lastKey = arg.substring(6);
65
+ }
66
+ else if (lastKey) {
67
+ vars[lastKey] = arg;
68
+ lastCommittedOption = lastKey;
69
+ lastKey = undefined;
70
+ }
71
+ else if (script) {
72
+ console.error(`Ambiguous command line arguments. Multiple recipe scripts found: ${script}, ${arg}`);
73
+ process.exit(1);
74
+ }
75
+ else {
76
+ script = arg;
77
+ }
78
+ }
79
+ if (!script) {
80
+ if (!lastCommittedOption) {
81
+ console.error("Ambiguous command line arguments. No recipe script was found.");
82
+ process.exit(1);
83
+ }
84
+ else {
85
+ script = vars[lastCommittedOption];
86
+ vars[lastCommittedOption] = true;
87
+ }
88
+ }
89
+ return { script, vars };
90
+ }
91
+ async function exportAction(_command, packFile, options) {
92
+ let mapParam = options.map;
93
+ if (mapParam.startsWith('@')) {
94
+ mapParam = await readFile(mapParam.substring(1), "utf-8");
95
+ }
96
+ const mapping = JSON.parse(mapParam);
97
+ const pack = await loadMemoryPack(packFile);
98
+ const obj = await pack.exportObject(mapping);
99
+ console.log(JSON.stringify(obj, null, options.indent || 2));
100
+ }
101
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { setupMemoCommand } from './command.js';
2
+ export { setupMemoCommand };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,3 @@
1
+ import { setupMemoCommand } from './command.js';
2
+ export { setupMemoCommand };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vertesia/memory-cli",
3
3
  "description": "Vertesia memory builder CLI",
4
- "version": "0.82.1",
4
+ "version": "0.82.3",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "memo": "./bin/memo.js"
@@ -25,8 +25,8 @@
25
25
  ],
26
26
  "dependencies": {
27
27
  "commander": "^12.1.0",
28
- "@vertesia/memory": "0.82.1",
29
- "@vertesia/memory-commands": "0.82.1"
28
+ "@vertesia/memory-commands": "0.82.3",
29
+ "@vertesia/memory": "0.82.3"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/node": "^22.5.1",