@matter/cli-tool 0.17.0-alpha.0-20260507-059f7763b → 0.17.0-alpha.0-20260508-29ff5ae9e

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 (50) hide show
  1. package/package.json +9 -9
  2. package/dist/esm/cli.js +0 -79
  3. package/dist/esm/cli.js.map +0 -6
  4. package/dist/esm/commands/cat.js +0 -18
  5. package/dist/esm/commands/cat.js.map +0 -6
  6. package/dist/esm/commands/cd.js +0 -27
  7. package/dist/esm/commands/cd.js.map +0 -6
  8. package/dist/esm/commands/clear.js +0 -13
  9. package/dist/esm/commands/clear.js.map +0 -6
  10. package/dist/esm/commands/command.js +0 -185
  11. package/dist/esm/commands/command.js.map +0 -6
  12. package/dist/esm/commands/diff-spec.js +0 -87
  13. package/dist/esm/commands/diff-spec.js.map +0 -6
  14. package/dist/esm/commands/exit.js +0 -17
  15. package/dist/esm/commands/exit.js.map +0 -6
  16. package/dist/esm/commands/help.js +0 -88
  17. package/dist/esm/commands/help.js.map +0 -6
  18. package/dist/esm/commands/index.js +0 -16
  19. package/dist/esm/commands/index.js.map +0 -6
  20. package/dist/esm/commands/ls.js +0 -205
  21. package/dist/esm/commands/ls.js.map +0 -6
  22. package/dist/esm/commands/pwd.js +0 -14
  23. package/dist/esm/commands/pwd.js.map +0 -6
  24. package/dist/esm/commands/rm.js +0 -26
  25. package/dist/esm/commands/rm.js.map +0 -6
  26. package/dist/esm/commands/set.js +0 -30
  27. package/dist/esm/commands/set.js.map +0 -6
  28. package/dist/esm/domain.js +0 -354
  29. package/dist/esm/domain.js.map +0 -6
  30. package/dist/esm/errors.js +0 -51
  31. package/dist/esm/errors.js.map +0 -6
  32. package/dist/esm/globals.js +0 -16
  33. package/dist/esm/globals.js.map +0 -6
  34. package/dist/esm/location.js +0 -164
  35. package/dist/esm/location.js.map +0 -6
  36. package/dist/esm/package.json +0 -7
  37. package/dist/esm/parser.js +0 -176
  38. package/dist/esm/parser.js.map +0 -6
  39. package/dist/esm/providers/endpoint.js +0 -97
  40. package/dist/esm/providers/endpoint.js.map +0 -6
  41. package/dist/esm/providers/index.js +0 -9
  42. package/dist/esm/providers/index.js.map +0 -6
  43. package/dist/esm/providers/model.js +0 -40
  44. package/dist/esm/providers/model.js.map +0 -6
  45. package/dist/esm/providers/module.js +0 -26
  46. package/dist/esm/providers/module.js.map +0 -6
  47. package/dist/esm/repl.js +0 -378
  48. package/dist/esm/repl.js.map +0 -6
  49. package/dist/esm/stat.js +0 -69
  50. package/dist/esm/stat.js.map +0 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/cli-tool",
3
- "version": "0.17.0-alpha.0-20260507-059f7763b",
3
+ "version": "0.17.0-alpha.0-20260508-29ff5ae9e",
4
4
  "description": "Command line tool for interacting with Matter",
5
5
  "keywords": [
6
6
  "iot",
@@ -35,20 +35,20 @@
35
35
  "#*": "./src/*"
36
36
  },
37
37
  "dependencies": {
38
- "@matter/general": "0.17.0-alpha.0-20260507-059f7763b",
39
- "@matter/model": "0.17.0-alpha.0-20260507-059f7763b",
40
- "@matter/node": "0.17.0-alpha.0-20260507-059f7763b",
41
- "@matter/protocol": "0.17.0-alpha.0-20260507-059f7763b",
42
- "@nacho-iot/js-tools": "^0.1.4",
43
- "@matter/types": "0.17.0-alpha.0-20260507-059f7763b",
44
- "@matter/nodejs": "0.17.0-alpha.0-20260507-059f7763b",
38
+ "@matter/general": "0.17.0-alpha.0-20260508-29ff5ae9e",
39
+ "@matter/model": "0.17.0-alpha.0-20260508-29ff5ae9e",
40
+ "@matter/node": "0.17.0-alpha.0-20260508-29ff5ae9e",
41
+ "@matter/protocol": "0.17.0-alpha.0-20260508-29ff5ae9e",
42
+ "@nacho-iot/js-tools": "^0.1.5",
43
+ "@matter/types": "0.17.0-alpha.0-20260508-29ff5ae9e",
44
+ "@matter/nodejs": "0.17.0-alpha.0-20260508-29ff5ae9e",
45
45
  "@types/escodegen": "^0.0.10",
46
46
  "acorn": "^8.16.0",
47
47
  "ansi-colors": "^4.1.3",
48
48
  "escodegen": "^2.1.0"
49
49
  },
50
50
  "devDependencies": {
51
- "@matter/testing": "0.17.0-alpha.0-20260507-059f7763b"
51
+ "@matter/testing": "0.17.0-alpha.0-20260508-29ff5ae9e"
52
52
  },
53
53
  "files": [
54
54
  "dist/**/*",
package/dist/esm/cli.js DELETED
@@ -1,79 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Domain } from "#domain.js";
7
- import { repl } from "#repl.js";
8
- import { Environment, LogFormat, MatterError } from "@matter/general";
9
- import "@matter/nodejs";
10
- import colors from "ansi-colors";
11
- import { stdout } from "node:process";
12
- async function main(argv) {
13
- colors.enabled = stdout.isTTY;
14
- let args = argv.slice(2);
15
- if (!args.length) {
16
- await repl();
17
- return;
18
- }
19
- for (const arg of args) {
20
- if (arg.startsWith("-")) {
21
- if (arg === "--help") {
22
- args = ["help"];
23
- } else {
24
- throw new MatterError(`Unknown command line argument ${arg}`);
25
- }
26
- } else {
27
- break;
28
- }
29
- }
30
- const command = {
31
- kind: "command",
32
- name: args[0],
33
- args: args.slice(1).map((arg) => {
34
- let js;
35
- if (arg.startsWith("(")) {
36
- js = arg;
37
- } else {
38
- js = JSON.stringify(arg);
39
- }
40
- return {
41
- line: 0,
42
- column: 0,
43
- js
44
- };
45
- })
46
- };
47
- const cx = {
48
- description: "matter.js",
49
- env: Environment.default,
50
- out(...text) {
51
- stdout.write(text.join(""));
52
- },
53
- err(...text) {
54
- let str = text.join("");
55
- if (str.indexOf("\x1B") === -1) {
56
- str = colors.red(str);
57
- }
58
- stdout.write(str);
59
- },
60
- get terminalWidth() {
61
- return process.stdout.columns;
62
- },
63
- colorize: true
64
- };
65
- const domain = await Domain(cx);
66
- try {
67
- const result = await domain.execute(command);
68
- if (result !== void 0) {
69
- domain.out(domain.inspect(result), "\n");
70
- }
71
- } catch (e) {
72
- domain.err(LogFormat.formats.ansi(e), "\n");
73
- process.exitCode = 1;
74
- }
75
- }
76
- export {
77
- main
78
- };
79
- //# sourceMappingURL=cli.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/cli.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAA6B;AAEtC,SAAS,YAAY;AACrB,SAAS,aAAa,WAAW,mBAAmB;AACpD,OAAO;AACP,OAAO,YAAY;AACnB,SAAS,cAAc;AAEvB,eAAsB,KAAK,MAAgB;AACvC,SAAO,UAAU,OAAO;AAExB,MAAI,OAAO,KAAK,MAAM,CAAC;AACvB,MAAI,CAAC,KAAK,QAAQ;AACd,UAAM,KAAK;AACX;AAAA,EACJ;AAEA,aAAW,OAAO,MAAM;AACpB,QAAI,IAAI,WAAW,GAAG,GAAG;AACrB,UAAI,QAAQ,UAAU;AAClB,eAAO,CAAC,MAAM;AAAA,MAClB,OAAO;AACH,cAAM,IAAI,YAAY,iCAAiC,GAAG,EAAE;AAAA,MAChE;AAAA,IACJ,OAAO;AAEH;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,UAAwB;AAAA,IAC1B,MAAM;AAAA,IACN,MAAM,KAAK,CAAC;AAAA,IACZ,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,SAAO;AAC3B,UAAI;AACJ,UAAI,IAAI,WAAW,GAAG,GAAG;AACrB,aAAK;AAAA,MACT,OAAO;AACH,aAAK,KAAK,UAAU,GAAG;AAAA,MAC3B;AACA,aAAO;AAAA,QACH,MAAM;AAAA,QACN,QAAQ;AAAA,QACR;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,QAAM,KAAoB;AAAA,IACtB,aAAa;AAAA,IACb,KAAK,YAAY;AAAA,IAEjB,OAAO,MAAM;AACT,aAAO,MAAM,KAAK,KAAK,EAAE,CAAC;AAAA,IAC9B;AAAA,IAEA,OAAO,MAAM;AACT,UAAI,MAAM,KAAK,KAAK,EAAE;AACtB,UAAI,IAAI,QAAQ,MAAM,MAAM,IAAI;AAC5B,cAAM,OAAO,IAAI,GAAG;AAAA,MACxB;AACA,aAAO,MAAM,GAAG;AAAA,IACpB;AAAA,IAEA,IAAI,gBAAgB;AAChB,aAAO,QAAQ,OAAO;AAAA,IAC1B;AAAA,IAEA,UAAU;AAAA,EACd;AAEA,QAAM,SAAS,MAAM,OAAO,EAAE;AAC9B,MAAI;AACA,UAAM,SAAS,MAAM,OAAO,QAAQ,OAAO;AAC3C,QAAI,WAAW,QAAW;AACtB,aAAO,IAAI,OAAO,QAAQ,MAAM,GAAG,IAAI;AAAA,IAC3C;AAAA,EACJ,SAAS,GAAG;AACR,WAAO,IAAI,UAAU,QAAQ,KAAK,CAAC,GAAG,IAAI;AAC1C,YAAQ,WAAW;AAAA,EACvB;AACJ;",
5
- "names": []
6
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Command } from "./command.js";
7
- Command({
8
- usage: "[PATH]...",
9
- description: "Inspect values in one or more paths.",
10
- aliases: ["inspect"],
11
- invoke: async function cat(args) {
12
- const locations = await Promise.all(args._.map((path) => this.location.at(`${path}`)));
13
- for (const location of locations) {
14
- this.out(this.inspect(location.definition), "\n");
15
- }
16
- }
17
- });
18
- //# sourceMappingURL=cat.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/cat.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AAExB,QAAQ;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,SAAS,CAAC,SAAS;AAAA,EAEnB,QAAQ,eAAe,IAAI,MAAM;AAC7B,UAAM,YAAY,MAAM,QAAQ,IAAI,KAAK,EAAE,IAAI,UAAQ,KAAK,SAAS,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;AACnF,eAAW,YAAY,WAAW;AAC9B,WAAK,IAAI,KAAK,QAAQ,SAAS,UAAU,GAAG,IAAI;AAAA,IACpD;AAAA,EACJ;AACJ,CAAC;",
5
- "names": []
6
- }
@@ -1,27 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { NotADirectoryError } from "#errors.js";
7
- import { Command } from "./command.js";
8
- Command({
9
- usage: "[PATH]",
10
- description: "Change current working directory. If you omit PATH changes to the last node entered.",
11
- maxArgs: 1,
12
- positionalArgs: [{ name: "path", description: "directory to enter", type: "string" }],
13
- invoke: async function cd({ path }) {
14
- if (path === void 0) {
15
- path = this.env.vars.get("home", "/");
16
- } else {
17
- path = `${path}`;
18
- }
19
- const location = await this.location.at(`${path}`);
20
- if (location.kind !== "directory") {
21
- throw new NotADirectoryError(path);
22
- }
23
- this.location = location;
24
- await this.env.vars.persist("cwd", location.path);
25
- }
26
- });
27
- //# sourceMappingURL=cd.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/cd.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,0BAA0B;AACnC,SAAS,eAAe;AAExB,QAAQ;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,SAAS;AAAA,EACT,gBAAgB,CAAC,EAAE,MAAM,QAAQ,aAAa,sBAAsB,MAAM,SAAS,CAAC;AAAA,EAEpF,QAAQ,eAAe,GAAG,EAAE,KAAK,GAAG;AAChC,QAAI,SAAS,QAAW;AACpB,aAAO,KAAK,IAAI,KAAK,IAAI,QAAQ,GAAG;AAAA,IACxC,OAAO;AACH,aAAO,GAAG,IAAI;AAAA,IAClB;AAEA,UAAM,WAAW,MAAM,KAAK,SAAS,GAAG,GAAG,IAAI,EAAE;AAEjD,QAAI,SAAS,SAAS,aAAa;AAC/B,YAAM,IAAI,mBAAmB,IAAI;AAAA,IACrC;AAEA,SAAK,WAAW;AAEhB,UAAM,KAAK,IAAI,KAAK,QAAQ,OAAO,SAAS,IAAI;AAAA,EACpD;AACJ,CAAC;",
5
- "names": []
6
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Command } from "./command.js";
7
- Command({
8
- description: "Clear the terminal screen",
9
- invoke: function clear() {
10
- console.clear();
11
- }
12
- });
13
- //# sourceMappingURL=clear.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/clear.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AAExB,QAAQ;AAAA,EACJ,aAAa;AAAA,EAEb,QAAQ,SAAS,QAAQ;AACrB,YAAQ,MAAM;AAAA,EAClB;AACJ,CAAC;",
5
- "names": []
6
- }
@@ -1,185 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { bin } from "#globals.js";
7
- import { decamelize, FormattedText, ImplementationError } from "@matter/general";
8
- import { FieldValue, Metatype } from "@matter/model";
9
- import colors from "ansi-colors";
10
- function Command({
11
- invoke: doInvoke,
12
- usage,
13
- description,
14
- namedArgs: namedArgDescriptors,
15
- positionalArgs: positionalArgDescriptors,
16
- restArgs: restArgDescriptor,
17
- minArgs,
18
- maxArgs,
19
- aliases
20
- }) {
21
- const args = {
22
- "--help": {
23
- name: "help",
24
- type: "boolean",
25
- description: "Show this help"
26
- }
27
- };
28
- const defaults = {};
29
- if (namedArgDescriptors) {
30
- for (const arg of namedArgDescriptors) {
31
- const long = arg.name.length > 1;
32
- if (long) {
33
- args[`--${arg.name}`] = { type: "boolean", ...arg };
34
- } else {
35
- args[`-${arg.name}`] = { type: "boolean", ...arg };
36
- }
37
- if (arg.default !== void 0) {
38
- defaults[arg.name] = arg.default;
39
- }
40
- }
41
- }
42
- if (!positionalArgDescriptors) {
43
- positionalArgDescriptors = [];
44
- }
45
- function help(domain) {
46
- const namedArgDetails = [
47
- ...Object.entries(args ?? {}).map(([k, v]) => {
48
- let description2 = v.description;
49
- if (v.default !== void 0) {
50
- description2 = `${description2} (default ${v.default})`;
51
- }
52
- return [k, description2];
53
- }),
54
- ["--help", "Show this help"]
55
- ];
56
- const maxArgWidth = Math.max(...namedArgDetails.map(([arg]) => arg.length));
57
- const argNameWidth = maxArgWidth + 4;
58
- const argDetailWidth = domain.terminalWidth - argNameWidth;
59
- const argHelp = namedArgDetails.map(([arg, description2]) => {
60
- arg = colors.blue(arg.padEnd(maxArgWidth));
61
- description2 = FormattedText(description2, argDetailWidth).join("\n").replace(/\n/g, "".padEnd(maxArgWidth));
62
- return ` ${arg} ${description2}`;
63
- });
64
- let usageStr;
65
- const name2 = colors.blue(decamelize(doInvoke.name));
66
- switch (typeof usage) {
67
- case "object":
68
- usageStr = ["", ...usage.map((str) => `${name2}${str ? ` ${str}` : ""}`)].join("\n ");
69
- break;
70
- case "string":
71
- usageStr = ` ${name2} ${usage}`;
72
- break;
73
- default:
74
- usageStr = ` ${name2}`;
75
- break;
76
- }
77
- domain.out(
78
- [
79
- `
80
- ${colors.bold("Usage:")}${usageStr}`,
81
- "",
82
- ...FormattedText(description, domain.terminalWidth),
83
- "",
84
- ...argHelp
85
- ].join("\n"),
86
- "\n\n"
87
- );
88
- }
89
- const name = decamelize(doInvoke.name);
90
- const command = function invoke(...argv) {
91
- const domain = this.domain;
92
- if (!domain?.isDomain) {
93
- throw new ImplementationError(`Domain command ${name} invoked without bin scope`);
94
- }
95
- const positionalArgs = Array();
96
- const inputs = { ...defaults };
97
- for (let i = 0; i < argv.length; i++) {
98
- let arg = argv[i];
99
- if (typeof arg !== "string" || !arg.startsWith("-")) {
100
- positionalArgs.push(arg);
101
- continue;
102
- }
103
- const splitAt = arg.indexOf("=");
104
- let name2;
105
- let param;
106
- if (splitAt) {
107
- param = arg.slice(splitAt + 1);
108
- arg = arg.slice(0, splitAt);
109
- }
110
- if (arg[1] === "-") {
111
- if (!(arg in args)) {
112
- domain.err(`Invalid argument: ${arg}
113
- `);
114
- return;
115
- }
116
- name2 = arg.slice(2);
117
- if (name2 === "help") {
118
- help(domain);
119
- return;
120
- }
121
- } else {
122
- for (let i2 = 0; i2 < arg.length; i2++) {
123
- const subarg = `-${arg[i2]}`;
124
- if (!(subarg in args)) {
125
- domain.err(`Invalid argument: ${subarg}
126
- `);
127
- return;
128
- }
129
- if (i2 === arg.length - 1) {
130
- arg = subarg;
131
- name2 = arg[i2];
132
- } else {
133
- if (args[subarg].type !== "boolean") {
134
- domain.err(`Argument "${subarg}" requires a parameter`);
135
- return;
136
- }
137
- inputs[subarg] = true;
138
- continue;
139
- }
140
- }
141
- }
142
- const definition = args[arg];
143
- if (param === void 0 && definition.type !== "boolean") {
144
- if (i === argv.length - 1) {
145
- domain.err(`Argument "${arg}" requires a parameter`);
146
- }
147
- param = argv[++i];
148
- }
149
- inputs[name2] = FieldValue.cast(args[arg].type ?? "boolean", param);
150
- }
151
- if (minArgs !== void 0 && minArgs < positionalArgs.length) {
152
- domain.err(`Too few arguments
153
- `);
154
- return;
155
- }
156
- if (maxArgs !== void 0 && maxArgs < positionalArgs.length) {
157
- domain.err(`Too many arguments
158
- `);
159
- return;
160
- }
161
- for (const arg of positionalArgDescriptors) {
162
- if (!positionalArgs.length) {
163
- break;
164
- }
165
- inputs[arg.name] = arg.type === void 0 ? positionalArgs.shift() : Metatype.cast(arg.type, positionalArgs.shift());
166
- }
167
- if (restArgDescriptor?.type === void 0) {
168
- inputs._ = positionalArgs;
169
- } else {
170
- inputs._ = positionalArgs.map((arg) => Metatype.cast(restArgDescriptor.type, arg));
171
- }
172
- return doInvoke.call(domain, inputs);
173
- };
174
- command.help = help;
175
- bin[name] = command;
176
- if (aliases) {
177
- for (const alias of aliases) {
178
- bin[alias] = command;
179
- }
180
- }
181
- }
182
- export {
183
- Command
184
- };
185
- //# sourceMappingURL=command.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/command.ts"],
4
- "mappings": "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",
5
- "names": ["description", "name", "i"]
6
- }
@@ -1,87 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { LogFormat, MatterError } from "@matter/general";
7
- import { ElementTag, Model, ModelDiff, Specification } from "@matter/model";
8
- import { Command } from "./command.js";
9
- Command({
10
- usage: "[FROM] [TO]",
11
- description: "Show differences between Matter versions.",
12
- namedArgs: [
13
- {
14
- name: "d",
15
- description: "maximum depth for details",
16
- default: 2,
17
- type: "integer"
18
- }
19
- ],
20
- positionalArgs: [
21
- {
22
- name: "from",
23
- description: "the baseline model",
24
- type: "any"
25
- },
26
- {
27
- name: "to",
28
- description: "the target model",
29
- type: "any"
30
- }
31
- ],
32
- maxArgs: 2,
33
- invoke: async function diffSpec({ d: depth, from, to }) {
34
- if (to === void 0) {
35
- to = Specification.REVISION;
36
- }
37
- const toModel = await loadModel(to);
38
- if (from === void 0) {
39
- let toRevision;
40
- if ("revision" in toModel && typeof toModel.revision === "string") {
41
- toRevision = toModel.revision;
42
- } else {
43
- toRevision = Specification.REVISION;
44
- }
45
- from = (Number.parseFloat(toRevision) - 0.1).toFixed(1);
46
- }
47
- const fromModel = await loadModel(from);
48
- const diff = ModelDiff(fromModel, toModel, depth);
49
- this.out(LogFormat.formats.ansi(ModelDiff.diagnosticOf(diff)));
50
- }
51
- });
52
- async function loadModel(source) {
53
- if (typeof source !== "string") {
54
- const model = asModel(source);
55
- if (model === void 0) {
56
- throw new MatterError(`Input models must be Model, AnyElement, or a string import specifier`);
57
- }
58
- return model;
59
- }
60
- let importName;
61
- if (source.match(/^\d+\.\d+$/)) {
62
- importName = `@matter/intermediate-models/v${source}/spec`;
63
- } else {
64
- importName = source;
65
- }
66
- try {
67
- const module = await import(importName);
68
- for (const value of Object.values(module)) {
69
- const model = asModel(value);
70
- if (model) {
71
- return model;
72
- }
73
- }
74
- throw new MatterError(`Could not find an exported model in "${importName}"`);
75
- } catch (cause) {
76
- throw new MatterError(`Could not import "${importName}"`, { cause });
77
- }
78
- }
79
- function asModel(value) {
80
- if (value instanceof Model) {
81
- return value;
82
- }
83
- if (typeof value === "object" && value !== null && "tag" in value && Object.values(ElementTag).includes(value.tag)) {
84
- return Model.create(value);
85
- }
86
- }
87
- //# sourceMappingURL=diff-spec.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/diff-spec.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,WAAW,mBAAmB;AACvC,SAAqB,YAAY,OAAO,WAAW,qBAAqB;AACxE,SAAS,eAAe;AAExB,QAAQ;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,WAAW;AAAA,IACP;AAAA,MACI,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,MACT,MAAM;AAAA,IACV;AAAA,EACJ;AAAA,EACA,gBAAgB;AAAA,IACZ;AAAA,MACI,MAAM;AAAA,MACN,aAAa;AAAA,MACb,MAAM;AAAA,IACV;AAAA,IACA;AAAA,MACI,MAAM;AAAA,MACN,aAAa;AAAA,MACb,MAAM;AAAA,IACV;AAAA,EACJ;AAAA,EACA,SAAS;AAAA,EAET,QAAQ,eAAe,SAAS,EAAE,GAAG,OAAO,MAAM,GAAG,GAAG;AACpD,QAAI,OAAO,QAAW;AAClB,WAAK,cAAc;AAAA,IACvB;AACA,UAAM,UAAU,MAAM,UAAU,EAAE;AAElC,QAAI,SAAS,QAAW;AACpB,UAAI;AACJ,UAAI,cAAc,WAAW,OAAO,QAAQ,aAAa,UAAU;AAC/D,qBAAa,QAAQ;AAAA,MACzB,OAAO;AACH,qBAAa,cAAc;AAAA,MAC/B;AACA,cAAQ,OAAO,WAAW,UAAU,IAAI,KAAK,QAAQ,CAAC;AAAA,IAC1D;AACA,UAAM,YAAY,MAAM,UAAU,IAAI;AAEtC,UAAM,OAAO,UAAU,WAAW,SAAS,KAAK;AAChD,SAAK,IAAI,UAAU,QAAQ,KAAK,UAAU,aAAa,IAAI,CAAC,CAAC;AAAA,EACjE;AACJ,CAAC;AAED,eAAe,UAAU,QAAiC;AACtD,MAAI,OAAO,WAAW,UAAU;AAC5B,UAAM,QAAQ,QAAQ,MAAM;AAC5B,QAAI,UAAU,QAAW;AACrB,YAAM,IAAI,YAAY,sEAAsE;AAAA,IAChG;AACA,WAAO;AAAA,EACX;AAEA,MAAI;AACJ,MAAI,OAAO,MAAM,YAAY,GAAG;AAC5B,iBAAa,gCAAgC,MAAM;AAAA,EACvD,OAAO;AACH,iBAAa;AAAA,EACjB;AACA,MAAI;AACA,UAAM,SAAS,MAAM,OAAO;AAE5B,eAAW,SAAS,OAAO,OAAO,MAAM,GAAG;AACvC,YAAM,QAAQ,QAAQ,KAAK;AAC3B,UAAI,OAAO;AACP,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,UAAM,IAAI,YAAY,wCAAwC,UAAU,GAAG;AAAA,EAC/E,SAAS,OAAO;AACZ,UAAM,IAAI,YAAY,qBAAqB,UAAU,KAAK,EAAE,MAAM,CAAC;AAAA,EACvE;AACJ;AAEA,SAAS,QAAQ,OAAgB;AAC7B,MAAI,iBAAiB,OAAO;AACxB,WAAO;AAAA,EACX;AAEA,MACI,OAAO,UAAU,YACjB,UAAU,QACV,SAAS,SACT,OAAO,OAAO,UAAU,EAAE,SAAS,MAAM,GAAiB,GAC5D;AACE,WAAO,MAAM,OAAO,KAAmB;AAAA,EAC3C;AACJ;",
5
- "names": []
6
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Command } from "./command.js";
7
- Command({
8
- description: "Quit this application.",
9
- invoke: function exit() {
10
- if (this.exitHandler === void 0) {
11
- this.err("Exit not suported: No exit handler");
12
- return;
13
- }
14
- return this.exitHandler();
15
- }
16
- });
17
- //# sourceMappingURL=exit.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/exit.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AAExB,QAAQ;AAAA,EACJ,aAAa;AAAA,EAEb,QAAQ,SAAS,OAAO;AACpB,QAAI,KAAK,gBAAgB,QAAW;AAChC,WAAK,IAAI,oCAAoC;AAC7C;AAAA,IACJ;AAEA,WAAO,KAAK,YAAY;AAAA,EAC5B;AACJ,CAAC;",
5
- "names": []
6
- }
@@ -1,88 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { bin } from "#globals.js";
7
- import { FormattedText } from "@matter/general";
8
- import { parse } from "acorn";
9
- import colors from "ansi-colors";
10
- import { generate } from "escodegen";
11
- import { Command } from "./command.js";
12
- Command({
13
- usage: "[PATH]",
14
- description: "Display help",
15
- maxArgs: 1,
16
- invoke: async function help({ path }) {
17
- const quote = (text) => {
18
- if (this.colorize) {
19
- return colors.blue(text);
20
- }
21
- return `"${text}"`;
22
- };
23
- if (path === void 0) {
24
- const HELP = `This tool allows you to interact with matter.js and your local Matter environment.
25
- This tool understands both JavaScript and a shell-like syntax that maps "commands" to functions. Use ${quote("ls /bin")} to see commands you can always use. Use ${quote("help <name>")} for help with a specific command.
26
- The current path appears in the prompt. This points to the object this tool uses to find commands. It is also the "global" object for any JavaScript statements you enter.
27
- You can change the current path using ${quote("cd <path>")}. Paths work like you would expect, including ${quote("/")}, ${quote(".")} and ${quote("..")}.
28
- `;
29
- this.out(
30
- "\nWelcome to ",
31
- this.description,
32
- ".\n\n",
33
- FormattedText(HELP, this.terminalWidth).join("\n"),
34
- "\n\n"
35
- );
36
- return;
37
- }
38
- const pathStr = `${path}`;
39
- const what = await this.searchPathFor(pathStr);
40
- if (what.kind !== "command") {
41
- this.out(`${path} is a ${what} but we can't tell you much more about it.
42
-
43
- `);
44
- return;
45
- }
46
- const help2 = what.definition.help;
47
- if (help2) {
48
- help2(this);
49
- return;
50
- }
51
- let ast;
52
- try {
53
- ast = parse(`${what.definition}`, { ecmaVersion: "latest", checkPrivateFields: false }).body[0];
54
- } catch (e) {
55
- if (!(e instanceof SyntaxError)) {
56
- throw e;
57
- }
58
- try {
59
- ast = parse(`function ${what.definition}`, { ecmaVersion: "latest", checkPrivateFields: false }).body[0];
60
- } catch (e2) {
61
- if (!(e2 instanceof SyntaxError)) {
62
- throw e2;
63
- }
64
- }
65
- }
66
- if (ast?.type !== "FunctionDeclaration") {
67
- this.out(`
68
- Well, ${colors.blue(pathStr)} is a function but we can't seem to parse it.
69
-
70
- `);
71
- return;
72
- }
73
- const usage = [colors.blue(pathStr)];
74
- for (const param of ast.params) {
75
- usage.push(`[${generate(param)}]`);
76
- }
77
- this.out(
78
- `
79
- Usage: ${usage.join(" ")}
80
-
81
- ${colors.blue(pathStr)} is a function that does not provide additional usage details.
82
-
83
- `
84
- );
85
- }
86
- });
87
- bin.man = bin.help;
88
- //# sourceMappingURL=help.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/help.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,WAA0B;AACnC,SAAS,qBAAqB;AAC9B,SAAS,aAAa;AACtB,OAAO,YAAY;AACnB,SAAS,gBAAgB;AACzB,SAAS,eAAe;AAExB,QAAQ;AAAA,EACJ,OAAO;AAAA,EACP,aAAa;AAAA,EACb,SAAS;AAAA,EAET,QAAQ,eAAe,KAAK,EAAE,KAAK,GAAG;AAClC,UAAM,QAAQ,CAAC,SAAiB;AAC5B,UAAI,KAAK,UAAU;AACf,eAAO,OAAO,KAAK,IAAI;AAAA,MAC3B;AACA,aAAO,IAAI,IAAI;AAAA,IACnB;AAEA,QAAI,SAAS,QAAW;AACpB,YAAM,OAAO;AAAA,wGAC+E,MAAM,SAAS,CAAC,6CAA6C,MAAM,aAAa,CAAC;AAAA;AAAA,wCAEjJ,MAAM,WAAW,CAAC,kDAAkD,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,QAAQ,MAAM,IAAI,CAAC;AAAA;AAE5I,WAAK;AAAA,QACD;AAAA,QACA,KAAK;AAAA,QACL;AAAA,QACA,cAAc,MAAM,KAAK,aAAa,EAAE,KAAK,IAAI;AAAA,QACjD;AAAA,MACJ;AACA;AAAA,IACJ;AAEA,UAAM,UAAU,GAAG,IAAI;AACvB,UAAM,OAAO,MAAM,KAAK,cAAc,OAAO;AAE7C,QAAI,KAAK,SAAS,WAAW;AACzB,WAAK,IAAI,GAAG,IAAI,SAAS,IAAI;AAAA;AAAA,CAAgD;AAC7E;AAAA,IACJ;AAEA,UAAMA,QAAQ,KAAK,WAA6B;AAChD,QAAIA,OAAM;AACN,MAAAA,MAAK,IAAI;AACT;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI;AACA,YAAM,MAAM,GAAG,KAAK,UAAU,IAAI,EAAE,aAAa,UAAU,oBAAoB,MAAM,CAAC,EAAE,KAAK,CAAC;AAAA,IAClG,SAAS,GAAG;AACR,UAAI,EAAE,aAAa,cAAc;AAC7B,cAAM;AAAA,MACV;AACA,UAAI;AACA,cAAM,MAAM,YAAY,KAAK,UAAU,IAAI,EAAE,aAAa,UAAU,oBAAoB,MAAM,CAAC,EAC1F,KAAK,CAAC;AAAA,MACf,SAASC,IAAG;AACR,YAAI,EAAEA,cAAa,cAAc;AAC7B,gBAAMA;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,KAAK,SAAS,uBAAuB;AACrC,WAAK,IAAI;AAAA,QAAW,OAAO,KAAK,OAAO,CAAC;AAAA;AAAA,CAAmD;AAC3F;AAAA,IACJ;AAEA,UAAM,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC;AACnC,eAAW,SAAS,IAAI,QAAQ;AAC5B,YAAM,KAAK,IAAI,SAAS,KAAK,CAAC,GAAG;AAAA,IACrC;AAEA,SAAK;AAAA,MACD;AAAA,SAAY,MAAM,KAAK,GAAG,CAAC;AAAA;AAAA,EAAO,OAAO,KAAK,OAAO,CAAC;AAAA;AAAA;AAAA,IAC1D;AAAA,EACJ;AACJ,CAAC;AAED,IAAI,MAAM,IAAI;",
5
- "names": ["help", "e"]
6
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import "./cat.js";
7
- import "./cd.js";
8
- import "./clear.js";
9
- import "./diff-spec.js";
10
- import "./exit.js";
11
- import "./help.js";
12
- import "./ls.js";
13
- import "./pwd.js";
14
- import "./rm.js";
15
- import "./set.js";
16
- //# sourceMappingURL=index.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;",
5
- "names": []
6
- }