@lovo/matter-cli 0.1.0 → 0.3.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/CHANGELOG.md +25 -0
- package/dist/add-XGRYN4L5.js +10 -0
- package/dist/{chunk-QTD5MDLV.js → chunk-KCGF5PXV.js} +5 -5
- package/dist/chunk-KCGF5PXV.js.map +1 -0
- package/dist/{chunk-QVVHELUY.js → chunk-UV5E65FQ.js} +2 -2
- package/dist/index.js +22 -18
- package/dist/index.js.map +1 -1
- package/dist/{init-UZXT3TDQ.js → init-2LAX3FMP.js} +2 -4
- package/dist/init-2LAX3FMP.js.map +1 -0
- package/dist/{list-E4KR6FTJ.js → list-NJT3N4GO.js} +2 -2
- package/dist/{update-JRITSIKU.js → update-VVDMY542.js} +3 -3
- package/package.json +7 -6
- package/dist/.tsbuildinfo +0 -1
- package/dist/add-RALAFFV2.js +0 -10
- package/dist/add-WFXJ7HFS.js +0 -10
- package/dist/add-WFXJ7HFS.js.map +0 -1
- package/dist/chunk-EBCJ5BNB.js +0 -90
- package/dist/chunk-EBCJ5BNB.js.map +0 -1
- package/dist/chunk-QTD5MDLV.js.map +0 -1
- package/dist/chunk-V774PVEJ.js +0 -92
- package/dist/chunk-V774PVEJ.js.map +0 -1
- package/dist/init-UZXT3TDQ.js.map +0 -1
- package/dist/init-W2VK6JT2.js +0 -26
- package/dist/init-W2VK6JT2.js.map +0 -1
- package/dist/list-BS5GAYO3.js +0 -39
- package/dist/list-E4KR6FTJ.js.map +0 -1
- package/dist/update-TAPYOHLT.js +0 -75
- package/dist/update-TAPYOHLT.js.map +0 -1
- /package/dist/{add-RALAFFV2.js.map → add-XGRYN4L5.js.map} +0 -0
- /package/dist/{chunk-QVVHELUY.js.map → chunk-UV5E65FQ.js.map} +0 -0
- /package/dist/{list-BS5GAYO3.js.map → list-NJT3N4GO.js.map} +0 -0
- /package/dist/{update-JRITSIKU.js.map → update-VVDMY542.js.map} +0 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# @lovo/matter-cli
|
|
2
|
+
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
## 0.2.0
|
|
6
|
+
|
|
7
|
+
### Minor Changes
|
|
8
|
+
|
|
9
|
+
- No API changes. Bumped alongside `@lovo/matter` 0.2.0 because the three packages ship as a fixed version group. See [`@lovo/matter`'s 0.2.0 changelog](../matter/CHANGELOG.md#020) for the engine-level breaking change.
|
|
10
|
+
|
|
11
|
+
## 0.1.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- Initial public release of Matter — React shader components on WebGPU + Three.js TSL.
|
|
16
|
+
|
|
17
|
+
**`@lovo/matter`** — Framework-agnostic engine: TSL primitives (`fbm`, `voronoi`, `colorRamp`, `quantize`, …), WebGPU renderer wrapper, visibility/intersection-aware scheduler.
|
|
18
|
+
|
|
19
|
+
**`@lovo/matter-react`** — React binding: `<MatterScene>` (shared canvas), `useShaderMaterial` (r3f-compatible), input hooks (`useCursor`, `useScroll`).
|
|
20
|
+
|
|
21
|
+
**`@lovo/matter-cli`** — shadcn-style copy-paste CLI: `init`, `list`, `add`, `update`. Default registry tracks the CLI's published version tag (`v0.1.0`) so component code is stable per release.
|
|
22
|
+
|
|
23
|
+
**v1 components** (via `matter-cli add <name>`): `linear-gradient`, `mesh-gradient`, `aurora`, `dot-field`, `noise-field`, `waves`. Each component is yours to edit after copy-in.
|
|
24
|
+
|
|
25
|
+
**Requirements:** Node 22+ for the CLI. WebGPU-capable browser (Chromium-based, Safari TP, Firefox Nightly with the flag). Three.js ^0.170. React ^19.
|
|
@@ -28,7 +28,9 @@ async function readUrl(url) {
|
|
|
28
28
|
}
|
|
29
29
|
return await res.text();
|
|
30
30
|
}
|
|
31
|
-
throw new Error(
|
|
31
|
+
throw new Error(
|
|
32
|
+
`Unsupported protocol: ${parsed.protocol} (only file://, http://, https:// are supported)`
|
|
33
|
+
);
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
// src/registry/fetchRegistry.ts
|
|
@@ -43,9 +45,7 @@ async function fetchRegistry(baseUrl) {
|
|
|
43
45
|
try {
|
|
44
46
|
parsed = JSON.parse(json);
|
|
45
47
|
} catch (err) {
|
|
46
|
-
throw new Error(
|
|
47
|
-
`Registry at ${url} is not valid JSON: ${err.message}`
|
|
48
|
-
);
|
|
48
|
+
throw new Error(`Registry at ${url} is not valid JSON: ${err.message}`);
|
|
49
49
|
}
|
|
50
50
|
if (typeof parsed !== "object" || parsed === null || !("components" in parsed)) {
|
|
51
51
|
throw new Error(`Registry at ${url} is missing a "components" object`);
|
|
@@ -72,4 +72,4 @@ export {
|
|
|
72
72
|
fetchComponentSource,
|
|
73
73
|
resolveRef
|
|
74
74
|
};
|
|
75
|
-
//# sourceMappingURL=chunk-
|
|
75
|
+
//# sourceMappingURL=chunk-KCGF5PXV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/registry/readUrl.ts","../src/registry/fetchRegistry.ts","../src/registry/ref.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\nimport { fileURLToPath } from 'node:url'\n\n/**\n * Read a URL and return its contents as a UTF-8 string. Supports `file://`\n * and `http(s)://` schemes. Used internally by registry fetching and\n * component source fetching — the same code path serves dev (`file://`\n * pointing at the local registry) and production (`https://raw.githubusercontent.com/...`).\n */\nexport async function readUrl(url: string): Promise<string> {\n const parsed = new URL(url)\n\n if (parsed.protocol === 'file:') {\n const path = fileURLToPath(parsed)\n try {\n return await readFile(path, 'utf-8')\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n throw new Error(`File not found: ${path}`)\n }\n throw err\n }\n }\n\n if (parsed.protocol === 'http:' || parsed.protocol === 'https:') {\n let res: Response\n try {\n res = await fetch(url)\n } catch (err) {\n throw new Error(`Failed to fetch ${url}: ${(err as Error).message}`)\n }\n if (!res.ok) {\n throw new Error(`Failed to fetch ${url}: ${res.status} ${res.statusText}`)\n }\n return await res.text()\n }\n\n throw new Error(\n `Unsupported protocol: ${parsed.protocol} (only file://, http://, https:// are supported)`,\n )\n}\n","import { readUrl } from './readUrl.js'\n\nexport interface RegistryEntry {\n file: string\n description?: string\n dependencies: string[]\n uses_primitives?: string[]\n tier: 1 | 2 | 3\n}\n\nexport interface Registry {\n version: string\n components: Record<string, RegistryEntry>\n}\n\n/**\n * Join a base URL with a relative filename, normalizing the trailing slash.\n * `joinUrl(\"https://x/registry\", \"foo.tsx\")` and `joinUrl(\"https://x/registry/\", \"foo.tsx\")`\n * both return `https://x/registry/foo.tsx`.\n */\nexport function joinUrl(base: string, file: string): string {\n const trimmed = base.endsWith('/') ? base.slice(0, -1) : base\n return `${trimmed}/${file}`\n}\n\n/**\n * Fetch and parse `registry.json` from a base registry URL.\n * The base URL points at the directory containing registry.json\n * (e.g. `file:///.../registry/` or\n * `https://raw.githubusercontent.com/lovo/matter/main/registry`).\n */\nexport async function fetchRegistry(baseUrl: string): Promise<Registry> {\n const url = joinUrl(baseUrl, 'registry.json')\n const json = await readUrl(url)\n let parsed: unknown\n try {\n parsed = JSON.parse(json)\n } catch (err) {\n throw new Error(`Registry at ${url} is not valid JSON: ${(err as Error).message}`)\n }\n if (typeof parsed !== 'object' || parsed === null || !('components' in parsed)) {\n throw new Error(`Registry at ${url} is missing a \"components\" object`)\n }\n const components = (parsed as { components: unknown }).components\n if (typeof components !== 'object' || components === null || Array.isArray(components)) {\n throw new Error(`Registry at ${url} is missing a \"components\" object`)\n }\n return parsed as Registry\n}\n\n/**\n * Fetch the raw source of a component file referenced by a registry entry.\n */\nexport async function fetchComponentSource(baseUrl: string, file: string): Promise<string> {\n return await readUrl(joinUrl(baseUrl, file))\n}\n","/**\n * Resolve which git ref the CLI should fetch from.\n *\n * - If `ref` is supplied, use it verbatim.\n * - If the CLI version is `0.0.0`, default to `main` (development build —\n * no published v0.0.0 tag exists).\n * - Otherwise, default to `v<version>` (e.g. `0.1.0` → `v0.1.0`).\n *\n * This matches the shadcn pattern: the published CLI's default ref is the\n * version it was published at, so users aren't blindly tracking `main`.\n */\nexport function resolveRef(ref: string | undefined, cliVersion: string): string {\n if (ref !== undefined && ref !== '') return ref\n if (cliVersion === '0.0.0') return 'main'\n return `v${cliVersion}`\n}\n"],"mappings":";;;AAAA,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAQ9B,eAAsB,QAAQ,KAA8B;AAC1D,QAAM,SAAS,IAAI,IAAI,GAAG;AAE1B,MAAI,OAAO,aAAa,SAAS;AAC/B,UAAM,OAAO,cAAc,MAAM;AACjC,QAAI;AACF,aAAO,MAAM,SAAS,MAAM,OAAO;AAAA,IACrC,SAAS,KAAK;AACZ,UAAK,IAA8B,SAAS,UAAU;AACpD,cAAM,IAAI,MAAM,mBAAmB,IAAI,EAAE;AAAA,MAC3C;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAEA,MAAI,OAAO,aAAa,WAAW,OAAO,aAAa,UAAU;AAC/D,QAAI;AACJ,QAAI;AACF,YAAM,MAAM,MAAM,GAAG;AAAA,IACvB,SAAS,KAAK;AACZ,YAAM,IAAI,MAAM,mBAAmB,GAAG,KAAM,IAAc,OAAO,EAAE;AAAA,IACrE;AACA,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,IAAI,MAAM,mBAAmB,GAAG,KAAK,IAAI,MAAM,IAAI,IAAI,UAAU,EAAE;AAAA,IAC3E;AACA,WAAO,MAAM,IAAI,KAAK;AAAA,EACxB;AAEA,QAAM,IAAI;AAAA,IACR,yBAAyB,OAAO,QAAQ;AAAA,EAC1C;AACF;;;ACpBO,SAAS,QAAQ,MAAc,MAAsB;AAC1D,QAAM,UAAU,KAAK,SAAS,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AACzD,SAAO,GAAG,OAAO,IAAI,IAAI;AAC3B;AAQA,eAAsB,cAAc,SAAoC;AACtE,QAAM,MAAM,QAAQ,SAAS,eAAe;AAC5C,QAAM,OAAO,MAAM,QAAQ,GAAG;AAC9B,MAAI;AACJ,MAAI;AACF,aAAS,KAAK,MAAM,IAAI;AAAA,EAC1B,SAAS,KAAK;AACZ,UAAM,IAAI,MAAM,eAAe,GAAG,uBAAwB,IAAc,OAAO,EAAE;AAAA,EACnF;AACA,MAAI,OAAO,WAAW,YAAY,WAAW,QAAQ,EAAE,gBAAgB,SAAS;AAC9E,UAAM,IAAI,MAAM,eAAe,GAAG,mCAAmC;AAAA,EACvE;AACA,QAAM,aAAc,OAAmC;AACvD,MAAI,OAAO,eAAe,YAAY,eAAe,QAAQ,MAAM,QAAQ,UAAU,GAAG;AACtF,UAAM,IAAI,MAAM,eAAe,GAAG,mCAAmC;AAAA,EACvE;AACA,SAAO;AACT;AAKA,eAAsB,qBAAqB,SAAiB,MAA+B;AACzF,SAAO,MAAM,QAAQ,QAAQ,SAAS,IAAI,CAAC;AAC7C;;;AC5CO,SAAS,WAAW,KAAyB,YAA4B;AAC9E,MAAI,QAAQ,UAAa,QAAQ,GAAI,QAAO;AAC5C,MAAI,eAAe,QAAS,QAAO;AACnC,SAAO,IAAI,UAAU;AACvB;","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
fetchComponentSource,
|
|
4
4
|
fetchRegistry,
|
|
5
5
|
resolveRef
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KCGF5PXV.js";
|
|
7
7
|
import {
|
|
8
8
|
readMatterConfig
|
|
9
9
|
} from "./chunk-PWYRLP7T.js";
|
|
@@ -89,4 +89,4 @@ async function fileExists(p) {
|
|
|
89
89
|
export {
|
|
90
90
|
runAdd
|
|
91
91
|
};
|
|
92
|
-
//# sourceMappingURL=chunk-
|
|
92
|
+
//# sourceMappingURL=chunk-UV5E65FQ.js.map
|
package/dist/index.js
CHANGED
|
@@ -9,10 +9,10 @@ function fail(err) {
|
|
|
9
9
|
process.exit(1);
|
|
10
10
|
}
|
|
11
11
|
var program = new Command();
|
|
12
|
-
program.name("matter-cli").description("CLI for Matter \u2014 copy-paste components from the registry into your project").version("0.
|
|
12
|
+
program.name("matter-cli").description("CLI for Matter \u2014 copy-paste components from the registry into your project").version("0.3.0");
|
|
13
13
|
program.command("init").description("one-time project setup \u2014 writes matter.config.json").option("--force", "overwrite an existing matter.config.json").action(async (opts) => {
|
|
14
14
|
try {
|
|
15
|
-
const { runInit } = await import("./init-
|
|
15
|
+
const { runInit } = await import("./init-2LAX3FMP.js");
|
|
16
16
|
await runInit(opts);
|
|
17
17
|
} catch (err) {
|
|
18
18
|
fail(err);
|
|
@@ -20,27 +20,31 @@ program.command("init").description("one-time project setup \u2014 writes matter
|
|
|
20
20
|
});
|
|
21
21
|
program.command("list").description("show available components in the registry").option("--registry <url>", "override the registryUrl from matter.config.json").option("--ref <ref>", "tag, branch, or commit (defaults to the CLI version)").action(async (opts) => {
|
|
22
22
|
try {
|
|
23
|
-
const { runList } = await import("./list-
|
|
24
|
-
await runList({ ...opts, cliVersion: "0.
|
|
23
|
+
const { runList } = await import("./list-NJT3N4GO.js");
|
|
24
|
+
await runList({ ...opts, cliVersion: "0.3.0" });
|
|
25
25
|
} catch (err) {
|
|
26
26
|
fail(err);
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
|
-
program.command("add").description("copy one or more components from the registry into componentsDir").argument("<components...>", 'component slugs (e.g. "linear-gradient")').option("--registry <url>", "override the registryUrl from matter.config.json").option("--ref <ref>", "tag, branch, or commit (defaults to the CLI version)").option("--force", "overwrite existing files in componentsDir").action(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
program.command("add").description("copy one or more components from the registry into componentsDir").argument("<components...>", 'component slugs (e.g. "linear-gradient")').option("--registry <url>", "override the registryUrl from matter.config.json").option("--ref <ref>", "tag, branch, or commit (defaults to the CLI version)").option("--force", "overwrite existing files in componentsDir").action(
|
|
30
|
+
async (components, opts) => {
|
|
31
|
+
try {
|
|
32
|
+
const { runAdd } = await import("./add-XGRYN4L5.js");
|
|
33
|
+
await runAdd(components, { ...opts, cliVersion: "0.3.0" });
|
|
34
|
+
} catch (err) {
|
|
35
|
+
fail(err);
|
|
36
|
+
}
|
|
35
37
|
}
|
|
36
|
-
|
|
37
|
-
program.command("update").description("re-fetch a previously-added component (or all, if no name given)").argument("[components...]", "component slugs; omit to update every component in componentsDir").option("--registry <url>", "override the registryUrl from matter.config.json").option("--ref <ref>", "tag, branch, or commit (defaults to the CLI version)").option("--force", "overwrite files even if they have local edits").action(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
);
|
|
39
|
+
program.command("update").description("re-fetch a previously-added component (or all, if no name given)").argument("[components...]", "component slugs; omit to update every component in componentsDir").option("--registry <url>", "override the registryUrl from matter.config.json").option("--ref <ref>", "tag, branch, or commit (defaults to the CLI version)").option("--force", "overwrite files even if they have local edits").action(
|
|
40
|
+
async (components, opts) => {
|
|
41
|
+
try {
|
|
42
|
+
const { runUpdate } = await import("./update-VVDMY542.js");
|
|
43
|
+
await runUpdate(components ?? [], { ...opts, cliVersion: "0.3.0" });
|
|
44
|
+
} catch (err) {
|
|
45
|
+
fail(err);
|
|
46
|
+
}
|
|
43
47
|
}
|
|
44
|
-
|
|
48
|
+
);
|
|
45
49
|
await program.parseAsync(process.argv);
|
|
46
50
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { Command } from 'commander'\n\ndeclare const __VERSION__: string\n\nfunction fail(err: unknown): never {\n const message = err instanceof Error ? err.message : String(err)\n process.stderr.write(`error: ${message}\\n`)\n process.exit(1)\n}\n\nconst program = new Command()\n\nprogram\n .name('matter-cli')\n .description('CLI for Matter — copy-paste components from the registry into your project')\n .version(__VERSION__)\n\nprogram\n .command('init')\n .description('one-time project setup — writes matter.config.json')\n .option('--force', 'overwrite an existing matter.config.json')\n .action(async (opts: { force?: boolean }) => {\n try {\n const { runInit } = await import('./commands/init.js')\n await runInit(opts)\n } catch (err) {\n fail(err)\n }\n })\n\nprogram\n .command('list')\n .description('show available components in the registry')\n .option('--registry <url>', 'override the registryUrl from matter.config.json')\n .option('--ref <ref>', 'tag, branch, or commit (defaults to the CLI version)')\n .action(async (opts: { registry?: string; ref?: string }) => {\n try {\n const { runList } = await import('./commands/list.js')\n await runList({ ...opts, cliVersion: __VERSION__ })\n } catch (err) {\n fail(err)\n }\n })\n\nprogram\n .command('add')\n .description('copy one or more components from the registry into componentsDir')\n .argument('<components...>', 'component slugs (e.g. \"linear-gradient\")')\n .option('--registry <url>', 'override the registryUrl from matter.config.json')\n .option('--ref <ref>', 'tag, branch, or commit (defaults to the CLI version)')\n .option('--force', 'overwrite existing files in componentsDir')\n .action(async (
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { Command } from 'commander'\n\ndeclare const __VERSION__: string\n\nfunction fail(err: unknown): never {\n const message = err instanceof Error ? err.message : String(err)\n process.stderr.write(`error: ${message}\\n`)\n process.exit(1)\n}\n\nconst program = new Command()\n\nprogram\n .name('matter-cli')\n .description('CLI for Matter — copy-paste components from the registry into your project')\n .version(__VERSION__)\n\nprogram\n .command('init')\n .description('one-time project setup — writes matter.config.json')\n .option('--force', 'overwrite an existing matter.config.json')\n .action(async (opts: { force?: boolean }) => {\n try {\n const { runInit } = await import('./commands/init.js')\n await runInit(opts)\n } catch (err) {\n fail(err)\n }\n })\n\nprogram\n .command('list')\n .description('show available components in the registry')\n .option('--registry <url>', 'override the registryUrl from matter.config.json')\n .option('--ref <ref>', 'tag, branch, or commit (defaults to the CLI version)')\n .action(async (opts: { registry?: string; ref?: string }) => {\n try {\n const { runList } = await import('./commands/list.js')\n await runList({ ...opts, cliVersion: __VERSION__ })\n } catch (err) {\n fail(err)\n }\n })\n\nprogram\n .command('add')\n .description('copy one or more components from the registry into componentsDir')\n .argument('<components...>', 'component slugs (e.g. \"linear-gradient\")')\n .option('--registry <url>', 'override the registryUrl from matter.config.json')\n .option('--ref <ref>', 'tag, branch, or commit (defaults to the CLI version)')\n .option('--force', 'overwrite existing files in componentsDir')\n .action(\n async (components: string[], opts: { registry?: string; ref?: string; force?: boolean }) => {\n try {\n const { runAdd } = await import('./commands/add.js')\n await runAdd(components, { ...opts, cliVersion: __VERSION__ })\n } catch (err) {\n fail(err)\n }\n },\n )\n\nprogram\n .command('update')\n .description('re-fetch a previously-added component (or all, if no name given)')\n .argument('[components...]', 'component slugs; omit to update every component in componentsDir')\n .option('--registry <url>', 'override the registryUrl from matter.config.json')\n .option('--ref <ref>', 'tag, branch, or commit (defaults to the CLI version)')\n .option('--force', 'overwrite files even if they have local edits')\n .action(\n async (components: string[], opts: { registry?: string; ref?: string; force?: boolean }) => {\n try {\n const { runUpdate } = await import('./commands/update.js')\n await runUpdate(components ?? [], { ...opts, cliVersion: __VERSION__ })\n } catch (err) {\n fail(err)\n }\n },\n )\n\nawait program.parseAsync(process.argv)\n"],"mappings":";;;AAAA,SAAS,eAAe;AAIxB,SAAS,KAAK,KAAqB;AACjC,QAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,UAAQ,OAAO,MAAM,UAAU,OAAO;AAAA,CAAI;AAC1C,UAAQ,KAAK,CAAC;AAChB;AAEA,IAAM,UAAU,IAAI,QAAQ;AAE5B,QACG,KAAK,YAAY,EACjB,YAAY,iFAA4E,EACxF,QAAQ,OAAW;AAEtB,QACG,QAAQ,MAAM,EACd,YAAY,yDAAoD,EAChE,OAAO,WAAW,0CAA0C,EAC5D,OAAO,OAAO,SAA8B;AAC3C,MAAI;AACF,UAAM,EAAE,QAAQ,IAAI,MAAM,OAAO,oBAAoB;AACrD,UAAM,QAAQ,IAAI;AAAA,EACpB,SAAS,KAAK;AACZ,SAAK,GAAG;AAAA,EACV;AACF,CAAC;AAEH,QACG,QAAQ,MAAM,EACd,YAAY,2CAA2C,EACvD,OAAO,oBAAoB,kDAAkD,EAC7E,OAAO,eAAe,sDAAsD,EAC5E,OAAO,OAAO,SAA8C;AAC3D,MAAI;AACF,UAAM,EAAE,QAAQ,IAAI,MAAM,OAAO,oBAAoB;AACrD,UAAM,QAAQ,EAAE,GAAG,MAAM,YAAY,QAAY,CAAC;AAAA,EACpD,SAAS,KAAK;AACZ,SAAK,GAAG;AAAA,EACV;AACF,CAAC;AAEH,QACG,QAAQ,KAAK,EACb,YAAY,kEAAkE,EAC9E,SAAS,mBAAmB,0CAA0C,EACtE,OAAO,oBAAoB,kDAAkD,EAC7E,OAAO,eAAe,sDAAsD,EAC5E,OAAO,WAAW,2CAA2C,EAC7D;AAAA,EACC,OAAO,YAAsB,SAA+D;AAC1F,QAAI;AACF,YAAM,EAAE,OAAO,IAAI,MAAM,OAAO,mBAAmB;AACnD,YAAM,OAAO,YAAY,EAAE,GAAG,MAAM,YAAY,QAAY,CAAC;AAAA,IAC/D,SAAS,KAAK;AACZ,WAAK,GAAG;AAAA,IACV;AAAA,EACF;AACF;AAEF,QACG,QAAQ,QAAQ,EAChB,YAAY,kEAAkE,EAC9E,SAAS,mBAAmB,kEAAkE,EAC9F,OAAO,oBAAoB,kDAAkD,EAC7E,OAAO,eAAe,sDAAsD,EAC5E,OAAO,WAAW,+CAA+C,EACjE;AAAA,EACC,OAAO,YAAsB,SAA+D;AAC1F,QAAI;AACF,YAAM,EAAE,UAAU,IAAI,MAAM,OAAO,sBAAsB;AACzD,YAAM,UAAU,cAAc,CAAC,GAAG,EAAE,GAAG,MAAM,YAAY,QAAY,CAAC;AAAA,IACxE,SAAS,KAAK;AACZ,WAAK,GAAG;AAAA,IACV;AAAA,EACF;AACF;AAEF,MAAM,QAAQ,WAAW,QAAQ,IAAI;","names":[]}
|
|
@@ -10,9 +10,7 @@ import {
|
|
|
10
10
|
async function runInit(opts, io = { cwd: process.cwd(), log: console.log }) {
|
|
11
11
|
const exists = await configExists(io.cwd);
|
|
12
12
|
if (exists && !opts.force) {
|
|
13
|
-
throw new Error(
|
|
14
|
-
`matter.config.json already exists in ${io.cwd}. Pass --force to overwrite.`
|
|
15
|
-
);
|
|
13
|
+
throw new Error(`matter.config.json already exists in ${io.cwd}. Pass --force to overwrite.`);
|
|
16
14
|
}
|
|
17
15
|
await writeMatterConfig(io.cwd, DEFAULT_MATTER_CONFIG);
|
|
18
16
|
io.log(`Created matter.config.json at ${configPath(io.cwd)}`);
|
|
@@ -23,4 +21,4 @@ async function runInit(opts, io = { cwd: process.cwd(), log: console.log }) {
|
|
|
23
21
|
export {
|
|
24
22
|
runInit
|
|
25
23
|
};
|
|
26
|
-
//# sourceMappingURL=init-
|
|
24
|
+
//# sourceMappingURL=init-2LAX3FMP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/init.ts"],"sourcesContent":["import {\n DEFAULT_MATTER_CONFIG,\n configExists,\n configPath,\n writeMatterConfig,\n} from '../config/matterConfig.js'\n\nexport interface InitOptions {\n force?: boolean\n}\n\nexport interface InitIO {\n cwd: string\n log: (line: string) => void\n}\n\nexport async function runInit(\n opts: InitOptions,\n io: InitIO = { cwd: process.cwd(), log: console.log },\n): Promise<void> {\n const exists = await configExists(io.cwd)\n if (exists && !opts.force) {\n throw new Error(`matter.config.json already exists in ${io.cwd}. Pass --force to overwrite.`)\n }\n await writeMatterConfig(io.cwd, DEFAULT_MATTER_CONFIG)\n io.log(`Created matter.config.json at ${configPath(io.cwd)}`)\n io.log(\n 'Edit `componentsDir` if your project uses a different layout, ' +\n 'and adjust `aliases` to match your tsconfig paths.',\n )\n}\n"],"mappings":";;;;;;;;;AAgBA,eAAsB,QACpB,MACA,KAAa,EAAE,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GACrC;AACf,QAAM,SAAS,MAAM,aAAa,GAAG,GAAG;AACxC,MAAI,UAAU,CAAC,KAAK,OAAO;AACzB,UAAM,IAAI,MAAM,wCAAwC,GAAG,GAAG,8BAA8B;AAAA,EAC9F;AACA,QAAM,kBAAkB,GAAG,KAAK,qBAAqB;AACrD,KAAG,IAAI,iCAAiC,WAAW,GAAG,GAAG,CAAC,EAAE;AAC5D,KAAG;AAAA,IACD;AAAA,EAEF;AACF;","names":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
fetchRegistry,
|
|
4
4
|
resolveRef
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KCGF5PXV.js";
|
|
6
6
|
import {
|
|
7
7
|
DEFAULT_MATTER_CONFIG,
|
|
8
8
|
configExists,
|
|
@@ -36,4 +36,4 @@ async function runList(opts, io = { cwd: process.cwd(), log: console.log }) {
|
|
|
36
36
|
export {
|
|
37
37
|
runList
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=list-
|
|
39
|
+
//# sourceMappingURL=list-NJT3N4GO.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runAdd
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-UV5E65FQ.js";
|
|
5
5
|
import {
|
|
6
6
|
fetchRegistry,
|
|
7
7
|
resolveRef
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KCGF5PXV.js";
|
|
9
9
|
import {
|
|
10
10
|
readMatterConfig
|
|
11
11
|
} from "./chunk-PWYRLP7T.js";
|
|
@@ -72,4 +72,4 @@ function slugIsInRegistry(slug, registry) {
|
|
|
72
72
|
export {
|
|
73
73
|
runUpdate
|
|
74
74
|
};
|
|
75
|
-
//# sourceMappingURL=update-
|
|
75
|
+
//# sourceMappingURL=update-VVDMY542.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lovo/matter-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "CLI for Matter — copy-paste components from the registry into your project.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
},
|
|
28
28
|
"main": "./dist/index.js",
|
|
29
29
|
"files": [
|
|
30
|
-
"dist"
|
|
30
|
+
"dist",
|
|
31
|
+
"CHANGELOG.md"
|
|
31
32
|
],
|
|
32
33
|
"publishConfig": {
|
|
33
34
|
"access": "public"
|
|
@@ -42,16 +43,16 @@
|
|
|
42
43
|
"@types/node": "^22.7.0",
|
|
43
44
|
"tsup": "^8.3.0",
|
|
44
45
|
"typescript": "^5.6.0",
|
|
45
|
-
"vitest": "
|
|
46
|
-
"
|
|
46
|
+
"vitest": "npm:@voidzero-dev/vite-plus-test@latest",
|
|
47
|
+
"vite-plus": "latest",
|
|
47
48
|
"@matter/tsconfig": "0.0.0"
|
|
48
49
|
},
|
|
49
50
|
"scripts": {
|
|
50
51
|
"build": "tsup",
|
|
51
52
|
"dev": "tsup --watch",
|
|
52
53
|
"typecheck": "tsc --noEmit",
|
|
53
|
-
"lint": "
|
|
54
|
-
"test": "
|
|
54
|
+
"lint": "vp lint src --type-aware --tsconfig ./tsconfig.json",
|
|
55
|
+
"test": "vp test run",
|
|
55
56
|
"clean": "rm -rf dist .turbo *.tsbuildinfo"
|
|
56
57
|
}
|
|
57
58
|
}
|
package/dist/.tsbuildinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/commander@12.1.0/node_modules/commander/typings/index.d.ts","../../../node_modules/.pnpm/commander@12.1.0/node_modules/commander/typings/esm.d.mts","../src/config/matterconfig.ts","../src/commands/init.ts","../src/registry/readurl.ts","../src/registry/fetchregistry.ts","../src/registry/ref.ts","../src/commands/list.ts","../src/transforms/rewriteimports.ts","../src/commands/add.ts","../src/commands/update.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@2.1.9/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/index-c1cfc5e9.d.ts","../../../node_modules/.pnpm/tinyrainbow@1.2.0/node_modules/tinyrainbow/dist/node.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/tasks-3znpj1lr.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/types-bxe-2udy.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/error.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/chunks/environment.looobwuu.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.19.17/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@types+estree@1.0.8/node_modules/@types/estree/index.d.ts","../../../node_modules/.pnpm/rollup@4.60.2/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/rollup@4.60.2/node_modules/rollup/dist/parseast.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@22.19.17/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@22.19.17/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@22.19.17/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@22.19.17/node_modules/vite/dist/node/types.d-agj9qkwt.d.ts","../../../node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.d.ts","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/input.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/declaration.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/root.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/warning.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/processor.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/result.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/document.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/node.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/comment.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/container.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/list.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/.pnpm/postcss@8.5.13/node_modules/postcss/lib/postcss.d.mts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@22.19.17/node_modules/vite/dist/node/runtime.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@22.19.17/node_modules/vite/types/importglob.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@22.19.17/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@5.4.21_@types+node@22.19.17/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/environment-ddx0edty.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/rawsnapshot-cpnkto81.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/chunks/config.cy0c388z.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@22.19.17/node_modules/vite-node/dist/trace-mapping.d-dlvdeqop.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@22.19.17/node_modules/vite-node/dist/index-z0r8hvru.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@22.19.17/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@2.1.9/node_modules/@vitest/utils/dist/source-map.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@22.19.17/node_modules/vite-node/dist/client.d.ts","../../../node_modules/.pnpm/vite-node@2.1.9_@types+node@22.19.17/node_modules/vite-node/dist/server.d.ts","../../../node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/chunks/benchmark.geerunq4.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@2.1.9/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/chunks/reporters.nr4dxcka.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/chunks/worker.tn5kgiih.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/chunks/worker.b9fxpcac.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/chunks/vite.czkp4x9w.d.ts","../../../node_modules/.pnpm/@vitest+expect@2.1.9/node_modules/@vitest/expect/dist/chai.d.cts","../../../node_modules/.pnpm/@vitest+expect@2.1.9/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@2.1.9/node_modules/@vitest/expect/index.d.ts","../../../node_modules/.pnpm/@vitest+spy@2.1.9/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+mocker@2.1.9_vite@5.4.21_@types+node@22.19.17_/node_modules/@vitest/mocker/dist/types-dzoqtgin.d.ts","../../../node_modules/.pnpm/@vitest+mocker@2.1.9_vite@5.4.21_@types+node@22.19.17_/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/chunks/mocker.crtm890j.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/chunks/suite.b2jumifp.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@2.1.9_@types+node@22.19.17_@vitest+ui@2.1.9_happy-dom@15.11.7/node_modules/vitest/dist/index.d.ts","../src/commands/add.test.ts","../src/commands/init.test.ts","../src/commands/list.test.ts","../src/commands/update.test.ts","../src/config/matterconfig.test.ts","../src/registry/fetchregistry.test.ts","../src/registry/readurl.test.ts","../src/registry/ref.test.ts","../src/transforms/rewriteimports.test.ts"],"fileIdsList":[[88,136,153,154],[88,133,134,136,153,154],[88,135,136,153,154],[136,153,154],[88,136,141,153,154,171],[88,136,137,142,147,153,154,156,168,179],[88,136,137,138,147,153,154,156],[83,84,85,88,136,153,154],[88,136,139,153,154,180],[88,136,140,141,148,153,154,157],[88,136,141,153,154,168,176],[88,136,142,144,147,153,154,156],[88,135,136,143,153,154],[88,136,144,145,153,154],[88,136,146,147,153,154],[88,135,136,147,153,154],[88,136,147,148,149,153,154,168,179],[88,136,147,148,149,153,154,163,168,171],[88,129,136,144,147,150,153,154,156,168,179],[88,136,147,148,150,151,153,154,156,168,176,179],[88,136,150,152,153,154,168,176,179],[86,87,88,89,90,91,92,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185],[88,136,147,153,154],[88,136,153,154,155,179],[88,136,144,147,153,154,156,168],[88,136,153,154,157],[88,136,153,154,158],[88,135,136,153,154,159],[88,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185],[88,136,153,154,161],[88,136,153,154,162],[88,136,147,153,154,163,164],[88,136,153,154,163,165,180,182],[88,136,148,153,154],[88,136,147,153,154,168,169,171],[88,136,153,154,170,171],[88,136,153,154,168,169],[88,136,153,154,171],[88,136,153,154,172],[88,133,136,153,154,168,173,179],[88,136,147,153,154,174,175],[88,136,153,154,174,175],[88,136,141,153,154,156,168,176],[88,136,153,154,177],[88,136,153,154,156,178],[88,136,150,153,154,162,179],[88,136,141,153,154,180],[88,136,153,154,168,181],[88,136,153,154,155,182],[88,136,153,154,183],[88,129,136,153,154],[88,129,136,147,149,153,154,159,168,171,179,181,182,184],[88,136,153,154,168,185],[74,75,78,88,136,153,154],[88,136,153,154,239],[88,136,153,154,242],[75,76,78,79,80,88,136,153,154],[75,88,136,153,154],[75,76,78,88,136,153,154],[75,76,88,136,153,154],[88,136,153,154,219],[70,88,136,153,154,219,220],[70,88,136,153,154,219],[70,77,88,136,153,154],[71,88,136,153,154],[70,71,72,74,88,136,153,154],[70,88,136,153,154],[58,88,136,153,154],[88,136,153,154,246,247],[88,136,153,154,246,247,248,249],[88,136,153,154,246,248],[88,136,153,154,246],[88,136,153,154,210],[88,136,153,154,208,210],[88,136,153,154,199,207,208,209,211,213],[88,136,153,154,197],[88,136,153,154,200,205,210,213],[88,136,153,154,196,213],[88,136,153,154,200,201,204,205,206,213],[88,136,153,154,200,201,202,204,205,213],[88,136,153,154,197,198,199,200,201,205,206,207,209,210,211,213],[88,136,153,154,213],[88,136,153,154,195,197,198,199,200,201,202,204,205,206,207,208,209,210,211,212],[88,136,153,154,195,213],[88,136,153,154,200,202,203,205,206,213],[88,136,153,154,204,213],[88,136,153,154,205,206,210,213],[88,136,153,154,198,208],[88,136,153,154,188,217],[88,136,153,154,187,188],[73,88,136,153,154],[88,101,105,136,153,154,179],[88,101,136,153,154,168,179],[88,96,136,153,154],[88,98,101,136,153,154,176,179],[88,136,153,154,156,176],[88,136,153,154,186],[88,96,136,153,154,186],[88,98,101,136,153,154,156,179],[88,93,94,97,100,136,147,153,154,168,179],[88,101,108,136,153,154],[88,93,99,136,153,154],[88,101,122,123,136,153,154],[88,97,101,136,153,154,171,179,186],[88,122,136,153,154,186],[88,95,96,136,153,154,186],[88,101,136,153,154],[88,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,123,124,125,126,127,128,136,153,154],[88,101,116,136,153,154],[88,101,108,109,136,153,154],[88,99,101,109,110,136,153,154],[88,100,136,153,154],[88,93,96,101,136,153,154],[88,101,105,109,110,136,153,154],[88,105,136,153,154],[88,99,101,104,136,153,154,179],[88,93,98,101,108,136,153,154],[88,136,153,154,168],[88,96,101,122,136,153,154,184,186],[88,136,153,154,224,225],[88,136,153,154,224],[88,136,153,154,218,224,225,237],[88,136,147,148,150,151,152,153,154,156,168,176,179,185,186,188,189,190,191,192,193,194,214,215,216,217],[88,136,153,154,190,191,192,193],[88,136,153,154,190,191,192],[88,136,153,154,190],[88,136,153,154,191],[88,136,153,154,188],[81,88,136,153,154,230,231,251],[70,81,88,136,153,154,221,222,251],[88,136,153,154,243],[70,75,81,82,88,136,148,153,154,168,218,221,223,226,227,228,229,232,233,237,238,251],[81,88,136,153,154,230,231,232,251],[88,136,153,154,218,234],[88,136,153,154,184,235],[81,82,88,136,153,154,221,223,226,251],[70,75,78,81,82,88,136,148,153,154,168,184,218,221,222,223,226,227,228,229,230,231,232,233,234,235,236,237,238,240,241,243,244,245,250,251],[60,67,88,136,149,153,154,157,158,179,251],[60,63,64,66,88,136,149,153,154,158],[61,88,136,149,153,154,157,158,251],[60,88,136,153,154],[60,65,88,136,149,153,154,157,158,179,251],[60,63,64,88,136,153,154],[60,68,88,136,149,153,154,157,158,179,251],[60,63,64,67,88,136,149,153,154,158],[60,88,136,149,153,154,157,158,251],[88,136,149,153,154,158],[59,61,65,67,68,88,136,153,154],[63,88,136,149,153,154,157,158,179,251],[62,88,136,153,154],[62,88,136,153,154,179,251],[88,136,149,153,154,179],[64,88,136,153,154,251],[66,88,136,153,154,251]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a722a71d8f3cb0028857b12579c7eca55acc76bf34e5db7eaf6fe817b985f9c3","impliedFormat":1},{"version":"b124c0624b15412ace7d54644ade38d7a69db7e25488a1a4d2a8df6e11696538","impliedFormat":99},{"version":"b3a080faad266219bf48bccb9827bd984f7638a447790a13dc371f1b048cb45a","signature":"762ce6f4e29bdd378cb9ddb7cc30b89dc832c5fb57043dedfa6d02476477c6cc"},{"version":"520fdd597a9988ebb81db420723d338bcd14a3e1787fbf6e2088d2af3c96ecda","signature":"aad60236005d8f3a774c877ad315aaf5a598d5ea8ecebff91de672346975e875"},{"version":"2b3d46e2a69e1e59cb84879414c2b16d0f83b7a31b65a979c0afdc954dac4de9","signature":"3d01a4c058c9b53edb6bf3c33f8f00d4c892889762a0c42519f304721a4e2171"},{"version":"62571bc3e28f8079fbf1f6f5a4091e8ba4221b619fb7a3781f3789c39b6f7ef0","signature":"f84b1776513ae5fa8ef6f7613b8250eaf128e9feffd340799443f6b2e60e1f00"},{"version":"f9147a7813e8f53aa6f68175ac6f2166c7c79c65e1b6b3c2639e91047270fc1e","signature":"4f0622eed4fc4606d333dd5f14e6223736a1ebb64bffc336ce27add50c29a549"},{"version":"1caa391ede513412c010b69a076d903ee4eceb90320914786d73978051780730","signature":"0ab9670afc852a066763d5f394215bc984ec9c99217a3ad97256353f88e77687"},{"version":"fa311aec3346adb9d02559adf6ac912d037779702741cd716c65f1f8d351a161","signature":"03733e54bee0e839bb26866a982e6a558631037748e4d40bb803efc3700b3969"},{"version":"4d376bc8fce56cf47f32a738cf38f11e21207cb1d7b7563959ae1c24b629a653","signature":"21101cf133e3c4083f3bfbfb80f17e822f00898f5f402ccd2e374bf0767dc045"},{"version":"2b4eafa7368210e7655b6893b5477f907e18ca3c5952b02a9893b2f8233804eb","signature":"0b191b02cd61689c9b807e94ea07c79c797803c8d3ba3444d7a00b6effae4414"},{"version":"d8d84121097b3b9a466f07fb761b657a8a9b877954b607f7d76fa6f136ad886d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d2e64a6f25013b099e83bfadb2c388d7bef3e8f3fdb25528225bbc841e7e7e3a","impliedFormat":99},{"version":"369ba5259e66ca8c7d35e3234f7a2a0863a770fdb8266505747c65cf346a0804","impliedFormat":99},{"version":"64d984f55025daf604f670b7dfd090ea765f2098aee871174ef2ee3e94479098","impliedFormat":99},{"version":"f147b6710441cf3ec3234adf63b0593ce5e8c9b692959d21d3babc8454bcf743","impliedFormat":99},{"version":"e96d5373a66c2cfbbc7e6642cf274055aa2c7ff6bd37be7480c66faf9804db6d","impliedFormat":99},{"version":"02bcdd7a76c5c1c485cbf05626d24c86ac8f9a1d8dc31f8924108bbaa4cf3ba9","impliedFormat":99},{"version":"c874ab6feac6e0fdf9142727c9a876065777a5392f14b0bbcf869b1e69eb46b5","impliedFormat":99},{"version":"7c553fc9e34773ddbaabe0fa1367d4b109101d0868a008f11042bee24b5a925d","impliedFormat":99},{"version":"9962ce696fbdce2421d883ca4b062a54f982496625437ae4d3633376c5ad4a80","impliedFormat":99},{"version":"e3ea467c4a7f743f3548c9ed61300591965b1d12c08c8bb9aaff8a002ba95fce","impliedFormat":99},{"version":"4c17183a07a63bea2653fbfc0a942b027160ddbee823024789a415f9589de327","impliedFormat":99},{"version":"3e2203c892297ea44b87470fde51b3d48cfe3eeb6901995de429539462894464","impliedFormat":99},{"version":"c84bf7a4abc5e7fdf45971a71b25b0e0d34ccd5e720a866dd78bb71d60d41a3f","impliedFormat":99},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"ee70b8037ecdf0de6c04f35277f253663a536d7e38f1539d270e4e916d225a3f","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"8b96046bf5fb0a815cba6b0880d9f97b7f3a93cf187e8dcfe8e2792e97f38f87","impliedFormat":99},{"version":"bacf2c84cf448b2cd02c717ad46c3d7fd530e0c91282888c923ad64810a4d511","affectsGlobalScope":true,"impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"52dcc257df5119fb66d864625112ce5033ac51a4c2afe376a0b299d2f7f76e4a","impliedFormat":1},{"version":"e5bab5f871ef708d52d47b3e5d0aa72a08ee7a152f33931d9a60809711a2a9a3","impliedFormat":1},{"version":"e16dc2a81595736024a206c7d5c8a39bfe2e6039208ef29981d0d95434ba8fcf","impliedFormat":1},{"version":"cc4a4903fb698ca1d961d4c10dce658aa3a479faf40509d526f122b044eaf6a4","impliedFormat":1},{"version":"19ee8416e6473ed6c7adb868fa796b5653cf0fa2a337658e677eaa0d134388c3","impliedFormat":1},{"version":"1328ab4e442614b28cdb3d4b414cf68325c0da0dca07287a338d0654b7a00261","impliedFormat":1},{"version":"a039dc21f045919f3cbee2ec13812cc6cc3eebc99dae4be00973230f468d19a6","impliedFormat":1},{"version":"3fbe57af01460e49dcd29df55d6931e1672bc6f1be0fb073d11410bc16f9037d","impliedFormat":1},{"version":"f760be449e8562ec5c09bb5187e8e1eabf3c113c0c58cddda53ef8c69f3e2131","impliedFormat":1},{"version":"44325ed13294fce6ab825b82947bbeed2611db7dad9d9135260192f375e5a189","impliedFormat":1},{"version":"e392e8fb5b514eafc585601c1d781485aa6dd6a320e75daf1064a4c6918a1b45","impliedFormat":1},{"version":"46e4a36e8ddbdfb4e7330e11c81c970dc8b218611df9183d39c41c5f8c653b55","impliedFormat":1},{"version":"370bde134aa8c2abc926d0e99d3a4d5d5dba65c6ee65459137e4f02670cbf841","impliedFormat":1},{"version":"6332f565867cf4a740a70e30f31cefba37ef7cebcf74f22eab8d744fde6d193e","impliedFormat":1},{"version":"2977b7884aedc895a1d0c9c210c7cf3272c29d6959a08a6fa3ff71e0aff08175","impliedFormat":1},{"version":"17f2922d41ddd032830a91371c948cd9ce903b35c95adca72271a54584f19b0b","impliedFormat":1},{"version":"3eed76ede2a1a14d7c9bb0a642041282dcc264811139d3dd275c9fe14efc9840","impliedFormat":1},{"version":"e3cf0611709328b449ec13f8c436712d62003620ce480139fae46ce001c2ee9f","impliedFormat":1},{"version":"8d369483f0c2b9ee388129cfdb6a43bc8112b377e86a41884bd06e19ce04f4c1","impliedFormat":99},{"version":"82e687ebd99518bc63ea04b0c3810fb6e50aa6942decd0ca6f7a56d9b9a212a6","impliedFormat":99},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","impliedFormat":1},{"version":"257b83faa134d971c738a6b9e4c47e59bb7b23274719d92197580dd662bfafc3","impliedFormat":99},{"version":"e01ea380015ed698c3c0e2ccd0db72f3fc3ef1abc4519f122aa1c1a8d419a505","impliedFormat":99},{"version":"5ada1f8a9580c0f7478fe03ae3e07e958f0b79bdfb9dd50eeb98c1324f40011b","impliedFormat":99},{"version":"a8301dc90b4bd9fba333226ee0f1681aeeff1bd90233a8f647e687cb4b7d3521","impliedFormat":99},{"version":"e3225dc0bec183183509d290f641786245e6652bc3dce755f7ef404060693c35","impliedFormat":99},{"version":"09a03870ed8c55d7453bc9ad684df88965f2f770f987481ca71b8a09be5205bc","impliedFormat":99},{"version":"e6233e1c976265e85aa8ad76c3881febe6264cb06ae3136f0257e1eab4a6cc5a","impliedFormat":99},{"version":"2cdd50ddc49e2d608ee848fc4ab0db9a2716624fabb4209c7c683d87e54d79c5","impliedFormat":99},{"version":"e431d664338b8470abb1750d699c7dfcebb1a25434559ef85bb96f1e82de5972","impliedFormat":99},{"version":"2c4254139d037c3caca66ce291c1308c1b5092cfcb151eb25980db932dd3b01a","impliedFormat":99},{"version":"970ae00ed018cb96352dc3f37355ef9c2d9f8aa94d7174ccd6d0ed855e462097","impliedFormat":99},{"version":"d2f8dee457ef7660b604226d471d55d927c3051766bdd80353553837492635c3","impliedFormat":99},{"version":"110a503289a2ef76141ffff3ffceb9a1c3662c32748eb9f6777a2bd0866d6fb1","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"310e6b62c493ce991624169a1c1904015769d947be88dc67e00adc7ebebcfa87","impliedFormat":99},{"version":"62fefda288160bf6e435b21cc03d3fbac11193d8d3bd0e82d86623cca7691c29","impliedFormat":99},{"version":"fcc46a8bcbf9bef21023bba1995160a25f0bc590ca3563ec44c315b4f4c1b18a","impliedFormat":99},{"version":"0309a01650023994ed96edbd675ea4fdc3779a823ce716ad876cc77afb792b62","impliedFormat":99},{"version":"f13d7beeea58e219daef3a40e0dc4f2bd7d9581ac04cedec236102a12dfd2090","impliedFormat":99},{"version":"669573548930fb7d0a0761b827e203dc623581e21febf0be80fb02414f217d74","impliedFormat":99},{"version":"48c411efce1848d1ed55de41d7deb93cbf7c04080912fd87aa517ed25ef42639","affectsGlobalScope":true,"impliedFormat":1},{"version":"a094636c05f3e75cb072684dd42cd25a4c1324bec4a866706c85c04cecd49613","affectsGlobalScope":true,"impliedFormat":99},{"version":"fe2d63fcfdde197391b6b70daf7be8c02a60afa90754a5f4a04bdc367f62793d","impliedFormat":99},{"version":"9a3e2c85ec1ab7a0874a19814cc73c691b716282cb727914093089c5a8475955","impliedFormat":99},{"version":"cbdc781d2429935c9c42acd680f2a53a9f633e8de03290ec6ea818e4f7bff19a","impliedFormat":99},{"version":"9f6d9f5dd710922f82f69abf9a324e28122b5f31ae6f6ce78427716db30a377e","impliedFormat":99},{"version":"ac2414a284bdecfd6ab7b87578744ab056cd04dd574b17853cd76830ef5b72f2","impliedFormat":99},{"version":"c3f921bbc9d2e65bd503a56fbc66da910e68467baedb0b9db0cc939e1876c0d7","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"0cc99fbb161d78729d71fad66c6c363e3095862d6277160f29fa960744b785c6","affectsGlobalScope":true,"impliedFormat":99},{"version":"4a9d62dc10489003ed74513c94b3bd6e339d3f39ba6f12b6e2c78cccacd00dfe","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b2b2fb010947642adb41ec58580ae1c508b182312d6034b6f7d974a126c7a2e8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"71c59c8d303acf82877eb4f80153871b9a2bf5c6ff8cc9018c9d94ca86768fa6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"99999d802dae69befbf44c7989c5d670815f86b9e3da6e5e91c9e1133387afdd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"80643030edcf7976c2daa1203acffdbcd61b25339a761e917910a9e3d998acf1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"918c272cccea612e59fd90b87d11eb20f0f2517802ba8d7294b0a49acb2e9395","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4e6894135dcfbfa59a7d572363b4a14b72bb8475e6ba115db82d98bf4a032f73","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ae4d6459ac32c9e23d375948361c8ab14bb78683de1564f0f85ae5b062de2858","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"71d8e5d79923e6bd21c1e2eaae03156e6185138778e7d01191ba24f07c655efe","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[[60,69],[252,260]],"options":{"allowJs":false,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[187,1],[133,2],[134,2],[135,3],[88,4],[136,5],[137,6],[138,7],[83,1],[86,8],[84,1],[85,1],[139,9],[140,10],[141,11],[142,12],[143,13],[144,14],[145,14],[146,15],[147,16],[148,17],[149,18],[89,1],[87,1],[150,19],[151,20],[152,21],[186,22],[153,23],[154,1],[155,24],[156,25],[157,26],[158,27],[159,28],[160,29],[161,30],[162,31],[163,32],[164,32],[165,33],[166,1],[167,34],[168,35],[170,36],[169,37],[171,38],[172,39],[173,40],[174,41],[175,42],[176,43],[177,44],[178,45],[179,46],[180,47],[181,48],[182,49],[183,50],[90,1],[91,1],[92,1],[130,51],[131,1],[132,1],[184,52],[185,53],[238,1],[239,54],[240,55],[243,56],[242,1],[70,1],[81,57],[76,58],[79,59],[230,60],[219,1],[222,61],[221,62],[233,62],[220,63],[241,1],[78,64],[80,64],[72,65],[75,66],[227,65],[77,67],[71,1],[59,68],[58,1],[194,1],[248,69],[250,70],[249,71],[247,72],[246,1],[211,73],[209,74],[210,75],[198,76],[199,74],[206,77],[197,78],[202,79],[212,1],[203,80],[208,81],[214,82],[213,83],[196,84],[204,85],[205,86],[200,87],[207,73],[201,88],[189,89],[188,90],[195,1],[231,1],[73,1],[74,91],[56,1],[57,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[20,1],[21,1],[4,1],[22,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[8,1],[49,1],[46,1],[47,1],[48,1],[50,1],[9,1],[51,1],[52,1],[53,1],[55,1],[54,1],[1,1],[108,92],[118,93],[107,92],[128,94],[99,95],[98,96],[127,97],[121,98],[126,99],[101,100],[115,101],[100,102],[124,103],[96,104],[95,97],[125,105],[97,106],[102,107],[103,1],[106,107],[93,1],[129,108],[119,109],[110,110],[111,111],[113,112],[109,113],[112,114],[122,97],[104,115],[105,116],[114,117],[94,118],[117,109],[116,107],[120,1],[123,119],[228,120],[225,121],[226,120],[229,122],[224,1],[218,123],[215,124],[193,125],[191,126],[190,1],[192,127],[216,1],[217,128],[232,129],[223,130],[82,1],[244,131],[234,132],[245,133],[237,134],[236,135],[235,136],[251,137],[252,138],[67,139],[253,140],[61,141],[254,142],[65,143],[255,144],[68,145],[256,146],[60,147],[69,148],[257,149],[63,150],[258,151],[62,152],[259,153],[64,1],[260,154],[66,1]],"affectedFilesPendingEmit":[[252,51],[67,51],[253,51],[61,51],[254,51],[65,51],[255,51],[68,51],[256,51],[60,51],[69,51],[257,51],[63,51],[258,51],[62,51],[259,51],[64,51],[260,51],[66,51]],"version":"5.9.3"}
|
package/dist/add-RALAFFV2.js
DELETED
package/dist/add-WFXJ7HFS.js
DELETED
package/dist/add-WFXJ7HFS.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-EBCJ5BNB.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// src/config/matterConfig.ts
|
|
4
|
-
import { access, readFile, writeFile } from "fs/promises";
|
|
5
|
-
import { join } from "path";
|
|
6
|
-
var DEFAULT_MATTER_CONFIG = {
|
|
7
|
-
componentsDir: "src/components/matter",
|
|
8
|
-
registryUrl: "https://raw.githubusercontent.com/lovo/matter/${ref}/registry",
|
|
9
|
-
aliases: { "@/": "src/" },
|
|
10
|
-
tsx: true
|
|
11
|
-
};
|
|
12
|
-
var CONFIG_FILENAME = "matter.config.json";
|
|
13
|
-
function configPath(projectRoot) {
|
|
14
|
-
return join(projectRoot, CONFIG_FILENAME);
|
|
15
|
-
}
|
|
16
|
-
async function configExists(projectRoot) {
|
|
17
|
-
try {
|
|
18
|
-
await access(configPath(projectRoot));
|
|
19
|
-
return true;
|
|
20
|
-
} catch {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
async function readMatterConfig(projectRoot) {
|
|
25
|
-
const path = configPath(projectRoot);
|
|
26
|
-
let raw;
|
|
27
|
-
try {
|
|
28
|
-
raw = await readFile(path, "utf-8");
|
|
29
|
-
} catch (err) {
|
|
30
|
-
if (err.code === "ENOENT") {
|
|
31
|
-
throw new Error(
|
|
32
|
-
`matter.config.json not found in ${projectRoot}. Run \`matter-cli init\` first.`
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
throw err;
|
|
36
|
-
}
|
|
37
|
-
let parsed;
|
|
38
|
-
try {
|
|
39
|
-
parsed = JSON.parse(raw);
|
|
40
|
-
} catch (err) {
|
|
41
|
-
throw new Error(`${path} is not valid JSON: ${err.message}`);
|
|
42
|
-
}
|
|
43
|
-
return validateMatterConfig(parsed, path);
|
|
44
|
-
}
|
|
45
|
-
async function writeMatterConfig(projectRoot, cfg) {
|
|
46
|
-
const path = configPath(projectRoot);
|
|
47
|
-
const json = `${JSON.stringify(cfg, null, 2)}
|
|
48
|
-
`;
|
|
49
|
-
await writeFile(path, json, "utf-8");
|
|
50
|
-
}
|
|
51
|
-
function validateMatterConfig(parsed, path) {
|
|
52
|
-
if (typeof parsed !== "object" || parsed === null) {
|
|
53
|
-
throw new Error(`${path}: expected an object`);
|
|
54
|
-
}
|
|
55
|
-
const obj = parsed;
|
|
56
|
-
if (typeof obj.componentsDir !== "string" || obj.componentsDir === "") {
|
|
57
|
-
throw new Error(`${path}: missing or empty "componentsDir" string`);
|
|
58
|
-
}
|
|
59
|
-
if (typeof obj.registryUrl !== "string" || obj.registryUrl === "") {
|
|
60
|
-
throw new Error(`${path}: missing or empty "registryUrl" string`);
|
|
61
|
-
}
|
|
62
|
-
if (typeof obj.aliases !== "object" || obj.aliases === null) {
|
|
63
|
-
throw new Error(`${path}: missing "aliases" object`);
|
|
64
|
-
}
|
|
65
|
-
if (typeof obj.tsx !== "boolean") {
|
|
66
|
-
throw new Error(`${path}: missing "tsx" boolean`);
|
|
67
|
-
}
|
|
68
|
-
const aliases = {};
|
|
69
|
-
for (const [k, v] of Object.entries(obj.aliases)) {
|
|
70
|
-
if (typeof v !== "string") {
|
|
71
|
-
throw new Error(`${path}: aliases.${k} must be a string`);
|
|
72
|
-
}
|
|
73
|
-
aliases[k] = v;
|
|
74
|
-
}
|
|
75
|
-
return {
|
|
76
|
-
componentsDir: obj.componentsDir,
|
|
77
|
-
registryUrl: obj.registryUrl,
|
|
78
|
-
aliases,
|
|
79
|
-
tsx: obj.tsx
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export {
|
|
84
|
-
DEFAULT_MATTER_CONFIG,
|
|
85
|
-
configPath,
|
|
86
|
-
configExists,
|
|
87
|
-
readMatterConfig,
|
|
88
|
-
writeMatterConfig
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=chunk-EBCJ5BNB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config/matterConfig.ts"],"sourcesContent":["import { access, readFile, writeFile } from 'node:fs/promises'\nimport { join } from 'node:path'\n\nexport interface MatterConfig {\n componentsDir: string\n registryUrl: string\n aliases: Record<string, string>\n tsx: boolean\n}\n\n/**\n * Defaults align with spec §4.3. componentsDir mirrors shadcn's\n * `src/components/ui` convention but namespaced under `matter` so a project\n * using both shadcn and matter doesn't collide.\n */\nexport const DEFAULT_MATTER_CONFIG: MatterConfig = {\n componentsDir: 'src/components/matter',\n registryUrl: 'https://raw.githubusercontent.com/lovo/matter/${ref}/registry',\n aliases: { '@/': 'src/' },\n tsx: true,\n}\n\nconst CONFIG_FILENAME = 'matter.config.json'\n\nexport function configPath(projectRoot: string): string {\n return join(projectRoot, CONFIG_FILENAME)\n}\n\nexport async function configExists(projectRoot: string): Promise<boolean> {\n try {\n await access(configPath(projectRoot))\n return true\n } catch {\n return false\n }\n}\n\nexport async function readMatterConfig(projectRoot: string): Promise<MatterConfig> {\n const path = configPath(projectRoot)\n let raw: string\n try {\n raw = await readFile(path, 'utf-8')\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n throw new Error(\n `matter.config.json not found in ${projectRoot}. Run \\`matter-cli init\\` first.`,\n )\n }\n throw err\n }\n let parsed: unknown\n try {\n parsed = JSON.parse(raw)\n } catch (err) {\n throw new Error(`${path} is not valid JSON: ${(err as Error).message}`)\n }\n return validateMatterConfig(parsed, path)\n}\n\nexport async function writeMatterConfig(projectRoot: string, cfg: MatterConfig): Promise<void> {\n const path = configPath(projectRoot)\n const json = `${JSON.stringify(cfg, null, 2)}\\n`\n await writeFile(path, json, 'utf-8')\n}\n\nfunction validateMatterConfig(parsed: unknown, path: string): MatterConfig {\n if (typeof parsed !== 'object' || parsed === null) {\n throw new Error(`${path}: expected an object`)\n }\n const obj = parsed as Record<string, unknown>\n if (typeof obj.componentsDir !== 'string' || obj.componentsDir === '') {\n throw new Error(`${path}: missing or empty \"componentsDir\" string`)\n }\n if (typeof obj.registryUrl !== 'string' || obj.registryUrl === '') {\n throw new Error(`${path}: missing or empty \"registryUrl\" string`)\n }\n if (typeof obj.aliases !== 'object' || obj.aliases === null) {\n throw new Error(`${path}: missing \"aliases\" object`)\n }\n if (typeof obj.tsx !== 'boolean') {\n throw new Error(`${path}: missing \"tsx\" boolean`)\n }\n const aliases: Record<string, string> = {}\n for (const [k, v] of Object.entries(obj.aliases as Record<string, unknown>)) {\n if (typeof v !== 'string') {\n throw new Error(`${path}: aliases.${k} must be a string`)\n }\n aliases[k] = v\n }\n return {\n componentsDir: obj.componentsDir,\n registryUrl: obj.registryUrl,\n aliases,\n tsx: obj.tsx,\n }\n}\n"],"mappings":";;;AAAA,SAAS,QAAQ,UAAU,iBAAiB;AAC5C,SAAS,YAAY;AAcd,IAAM,wBAAsC;AAAA,EACjD,eAAe;AAAA,EACf,aAAa;AAAA,EACb,SAAS,EAAE,MAAM,OAAO;AAAA,EACxB,KAAK;AACP;AAEA,IAAM,kBAAkB;AAEjB,SAAS,WAAW,aAA6B;AACtD,SAAO,KAAK,aAAa,eAAe;AAC1C;AAEA,eAAsB,aAAa,aAAuC;AACxE,MAAI;AACF,UAAM,OAAO,WAAW,WAAW,CAAC;AACpC,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,iBAAiB,aAA4C;AACjF,QAAM,OAAO,WAAW,WAAW;AACnC,MAAI;AACJ,MAAI;AACF,UAAM,MAAM,SAAS,MAAM,OAAO;AAAA,EACpC,SAAS,KAAK;AACZ,QAAK,IAA8B,SAAS,UAAU;AACpD,YAAM,IAAI;AAAA,QACR,mCAAmC,WAAW;AAAA,MAChD;AAAA,IACF;AACA,UAAM;AAAA,EACR;AACA,MAAI;AACJ,MAAI;AACF,aAAS,KAAK,MAAM,GAAG;AAAA,EACzB,SAAS,KAAK;AACZ,UAAM,IAAI,MAAM,GAAG,IAAI,uBAAwB,IAAc,OAAO,EAAE;AAAA,EACxE;AACA,SAAO,qBAAqB,QAAQ,IAAI;AAC1C;AAEA,eAAsB,kBAAkB,aAAqB,KAAkC;AAC7F,QAAM,OAAO,WAAW,WAAW;AACnC,QAAM,OAAO,GAAG,KAAK,UAAU,KAAK,MAAM,CAAC,CAAC;AAAA;AAC5C,QAAM,UAAU,MAAM,MAAM,OAAO;AACrC;AAEA,SAAS,qBAAqB,QAAiB,MAA4B;AACzE,MAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,UAAM,IAAI,MAAM,GAAG,IAAI,sBAAsB;AAAA,EAC/C;AACA,QAAM,MAAM;AACZ,MAAI,OAAO,IAAI,kBAAkB,YAAY,IAAI,kBAAkB,IAAI;AACrE,UAAM,IAAI,MAAM,GAAG,IAAI,2CAA2C;AAAA,EACpE;AACA,MAAI,OAAO,IAAI,gBAAgB,YAAY,IAAI,gBAAgB,IAAI;AACjE,UAAM,IAAI,MAAM,GAAG,IAAI,yCAAyC;AAAA,EAClE;AACA,MAAI,OAAO,IAAI,YAAY,YAAY,IAAI,YAAY,MAAM;AAC3D,UAAM,IAAI,MAAM,GAAG,IAAI,4BAA4B;AAAA,EACrD;AACA,MAAI,OAAO,IAAI,QAAQ,WAAW;AAChC,UAAM,IAAI,MAAM,GAAG,IAAI,yBAAyB;AAAA,EAClD;AACA,QAAM,UAAkC,CAAC;AACzC,aAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,IAAI,OAAkC,GAAG;AAC3E,QAAI,OAAO,MAAM,UAAU;AACzB,YAAM,IAAI,MAAM,GAAG,IAAI,aAAa,CAAC,mBAAmB;AAAA,IAC1D;AACA,YAAQ,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AAAA,IACL,eAAe,IAAI;AAAA,IACnB,aAAa,IAAI;AAAA,IACjB;AAAA,IACA,KAAK,IAAI;AAAA,EACX;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/registry/readUrl.ts","../src/registry/fetchRegistry.ts","../src/registry/ref.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises'\nimport { fileURLToPath } from 'node:url'\n\n/**\n * Read a URL and return its contents as a UTF-8 string. Supports `file://`\n * and `http(s)://` schemes. Used internally by registry fetching and\n * component source fetching — the same code path serves dev (`file://`\n * pointing at the local registry) and production (`https://raw.githubusercontent.com/...`).\n */\nexport async function readUrl(url: string): Promise<string> {\n const parsed = new URL(url)\n\n if (parsed.protocol === 'file:') {\n const path = fileURLToPath(parsed)\n try {\n return await readFile(path, 'utf-8')\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n throw new Error(`File not found: ${path}`)\n }\n throw err\n }\n }\n\n if (parsed.protocol === 'http:' || parsed.protocol === 'https:') {\n let res: Response\n try {\n res = await fetch(url)\n } catch (err) {\n throw new Error(`Failed to fetch ${url}: ${(err as Error).message}`)\n }\n if (!res.ok) {\n throw new Error(`Failed to fetch ${url}: ${res.status} ${res.statusText}`)\n }\n return await res.text()\n }\n\n throw new Error(`Unsupported protocol: ${parsed.protocol} (only file://, http://, https:// are supported)`)\n}\n","import { readUrl } from './readUrl.js'\n\nexport interface RegistryEntry {\n file: string\n description?: string\n dependencies: string[]\n uses_primitives?: string[]\n tier: 1 | 2 | 3\n}\n\nexport interface Registry {\n version: string\n components: Record<string, RegistryEntry>\n}\n\n/**\n * Join a base URL with a relative filename, normalizing the trailing slash.\n * `joinUrl(\"https://x/registry\", \"foo.tsx\")` and `joinUrl(\"https://x/registry/\", \"foo.tsx\")`\n * both return `https://x/registry/foo.tsx`.\n */\nexport function joinUrl(base: string, file: string): string {\n const trimmed = base.endsWith('/') ? base.slice(0, -1) : base\n return `${trimmed}/${file}`\n}\n\n/**\n * Fetch and parse `registry.json` from a base registry URL.\n * The base URL points at the directory containing registry.json\n * (e.g. `file:///.../registry/` or\n * `https://raw.githubusercontent.com/lovo/matter/main/registry`).\n */\nexport async function fetchRegistry(baseUrl: string): Promise<Registry> {\n const url = joinUrl(baseUrl, 'registry.json')\n const json = await readUrl(url)\n let parsed: unknown\n try {\n parsed = JSON.parse(json)\n } catch (err) {\n throw new Error(\n `Registry at ${url} is not valid JSON: ${(err as Error).message}`,\n )\n }\n if (typeof parsed !== 'object' || parsed === null || !('components' in parsed)) {\n throw new Error(`Registry at ${url} is missing a \"components\" object`)\n }\n const components = (parsed as { components: unknown }).components\n if (typeof components !== 'object' || components === null || Array.isArray(components)) {\n throw new Error(`Registry at ${url} is missing a \"components\" object`)\n }\n return parsed as Registry\n}\n\n/**\n * Fetch the raw source of a component file referenced by a registry entry.\n */\nexport async function fetchComponentSource(baseUrl: string, file: string): Promise<string> {\n return await readUrl(joinUrl(baseUrl, file))\n}\n","/**\n * Resolve which git ref the CLI should fetch from.\n *\n * - If `ref` is supplied, use it verbatim.\n * - If the CLI version is `0.0.0`, default to `main` (development build —\n * no published v0.0.0 tag exists).\n * - Otherwise, default to `v<version>` (e.g. `0.1.0` → `v0.1.0`).\n *\n * This matches the shadcn pattern: the published CLI's default ref is the\n * version it was published at, so users aren't blindly tracking `main`.\n */\nexport function resolveRef(ref: string | undefined, cliVersion: string): string {\n if (ref !== undefined && ref !== '') return ref\n if (cliVersion === '0.0.0') return 'main'\n return `v${cliVersion}`\n}\n"],"mappings":";;;AAAA,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAQ9B,eAAsB,QAAQ,KAA8B;AAC1D,QAAM,SAAS,IAAI,IAAI,GAAG;AAE1B,MAAI,OAAO,aAAa,SAAS;AAC/B,UAAM,OAAO,cAAc,MAAM;AACjC,QAAI;AACF,aAAO,MAAM,SAAS,MAAM,OAAO;AAAA,IACrC,SAAS,KAAK;AACZ,UAAK,IAA8B,SAAS,UAAU;AACpD,cAAM,IAAI,MAAM,mBAAmB,IAAI,EAAE;AAAA,MAC3C;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAEA,MAAI,OAAO,aAAa,WAAW,OAAO,aAAa,UAAU;AAC/D,QAAI;AACJ,QAAI;AACF,YAAM,MAAM,MAAM,GAAG;AAAA,IACvB,SAAS,KAAK;AACZ,YAAM,IAAI,MAAM,mBAAmB,GAAG,KAAM,IAAc,OAAO,EAAE;AAAA,IACrE;AACA,QAAI,CAAC,IAAI,IAAI;AACX,YAAM,IAAI,MAAM,mBAAmB,GAAG,KAAK,IAAI,MAAM,IAAI,IAAI,UAAU,EAAE;AAAA,IAC3E;AACA,WAAO,MAAM,IAAI,KAAK;AAAA,EACxB;AAEA,QAAM,IAAI,MAAM,yBAAyB,OAAO,QAAQ,kDAAkD;AAC5G;;;AClBO,SAAS,QAAQ,MAAc,MAAsB;AAC1D,QAAM,UAAU,KAAK,SAAS,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AACzD,SAAO,GAAG,OAAO,IAAI,IAAI;AAC3B;AAQA,eAAsB,cAAc,SAAoC;AACtE,QAAM,MAAM,QAAQ,SAAS,eAAe;AAC5C,QAAM,OAAO,MAAM,QAAQ,GAAG;AAC9B,MAAI;AACJ,MAAI;AACF,aAAS,KAAK,MAAM,IAAI;AAAA,EAC1B,SAAS,KAAK;AACZ,UAAM,IAAI;AAAA,MACR,eAAe,GAAG,uBAAwB,IAAc,OAAO;AAAA,IACjE;AAAA,EACF;AACA,MAAI,OAAO,WAAW,YAAY,WAAW,QAAQ,EAAE,gBAAgB,SAAS;AAC9E,UAAM,IAAI,MAAM,eAAe,GAAG,mCAAmC;AAAA,EACvE;AACA,QAAM,aAAc,OAAmC;AACvD,MAAI,OAAO,eAAe,YAAY,eAAe,QAAQ,MAAM,QAAQ,UAAU,GAAG;AACtF,UAAM,IAAI,MAAM,eAAe,GAAG,mCAAmC;AAAA,EACvE;AACA,SAAO;AACT;AAKA,eAAsB,qBAAqB,SAAiB,MAA+B;AACzF,SAAO,MAAM,QAAQ,QAAQ,SAAS,IAAI,CAAC;AAC7C;;;AC9CO,SAAS,WAAW,KAAyB,YAA4B;AAC9E,MAAI,QAAQ,UAAa,QAAQ,GAAI,QAAO;AAC5C,MAAI,eAAe,QAAS,QAAO;AACnC,SAAO,IAAI,UAAU;AACvB;","names":[]}
|
package/dist/chunk-V774PVEJ.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
fetchComponentSource,
|
|
4
|
-
fetchRegistry,
|
|
5
|
-
resolveRef
|
|
6
|
-
} from "./chunk-QTD5MDLV.js";
|
|
7
|
-
import {
|
|
8
|
-
readMatterConfig
|
|
9
|
-
} from "./chunk-EBCJ5BNB.js";
|
|
10
|
-
|
|
11
|
-
// src/commands/add.ts
|
|
12
|
-
import { access, mkdir, writeFile } from "fs/promises";
|
|
13
|
-
import { dirname, join } from "path";
|
|
14
|
-
|
|
15
|
-
// src/transforms/rewriteImports.ts
|
|
16
|
-
function rewriteImports(source, aliases) {
|
|
17
|
-
const sortedAliases = Object.entries(aliases).sort(([a], [b]) => b.length - a.length);
|
|
18
|
-
if (sortedAliases.length === 0) return source;
|
|
19
|
-
const importRe = /(\bfrom\s+|\bimport\s*\(\s*)(['"])([^'"]+)\2/g;
|
|
20
|
-
return source.replace(importRe, (full, lead, quote, spec) => {
|
|
21
|
-
for (const [key, value] of sortedAliases) {
|
|
22
|
-
if (spec.startsWith(key)) {
|
|
23
|
-
return `${lead}${quote}${value}${spec.slice(key.length)}${quote}`;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return full;
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// src/commands/add.ts
|
|
31
|
-
async function runAdd(components, opts, io = { cwd: process.cwd(), log: console.log }) {
|
|
32
|
-
if (components.length === 0) {
|
|
33
|
-
throw new Error("add: at least one component name is required");
|
|
34
|
-
}
|
|
35
|
-
const cfg = await readMatterConfig(io.cwd);
|
|
36
|
-
const baseUrl = opts.registry ?? cfg.registryUrl;
|
|
37
|
-
const ref = resolveRef(opts.ref, opts.cliVersion);
|
|
38
|
-
const registryUrl = baseUrl.replace("${ref}", ref);
|
|
39
|
-
const registry = await fetchRegistry(registryUrl);
|
|
40
|
-
const resolved = components.map((slug) => resolveComponent(slug, registry, registryUrl));
|
|
41
|
-
if (!opts.force) {
|
|
42
|
-
for (const r of resolved) {
|
|
43
|
-
const targetPath = join(io.cwd, cfg.componentsDir, r.entry.file);
|
|
44
|
-
if (await fileExists(targetPath)) {
|
|
45
|
-
throw new Error(`${targetPath} already exists. Pass --force to overwrite.`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
const fetched = await Promise.all(
|
|
50
|
-
resolved.map(async (r) => {
|
|
51
|
-
const source = await fetchComponentSource(registryUrl, r.entry.file);
|
|
52
|
-
return { ...r, source };
|
|
53
|
-
})
|
|
54
|
-
);
|
|
55
|
-
const allDeps = /* @__PURE__ */ new Set();
|
|
56
|
-
for (const f of fetched) {
|
|
57
|
-
const targetPath = join(io.cwd, cfg.componentsDir, f.entry.file);
|
|
58
|
-
const rewritten = rewriteImports(f.source, cfg.aliases);
|
|
59
|
-
await mkdir(dirname(targetPath), { recursive: true });
|
|
60
|
-
await writeFile(targetPath, rewritten, "utf-8");
|
|
61
|
-
io.log(`Wrote ${targetPath}`);
|
|
62
|
-
for (const dep of f.entry.dependencies) allDeps.add(dep);
|
|
63
|
-
}
|
|
64
|
-
const sortedDeps = [...allDeps].sort();
|
|
65
|
-
io.log("");
|
|
66
|
-
io.log(`This component requires: ${sortedDeps.join(", ")}`);
|
|
67
|
-
io.log("Install with your package manager, e.g.:");
|
|
68
|
-
io.log(`npm install ${sortedDeps.join(" ")}`);
|
|
69
|
-
}
|
|
70
|
-
function resolveComponent(slug, registry, registryUrl) {
|
|
71
|
-
const entry = registry.components[slug];
|
|
72
|
-
if (!entry) {
|
|
73
|
-
throw new Error(
|
|
74
|
-
`Component "${slug}" not found in registry at ${registryUrl}. Run \`matter-cli list\` to see available components.`
|
|
75
|
-
);
|
|
76
|
-
}
|
|
77
|
-
return { slug, entry };
|
|
78
|
-
}
|
|
79
|
-
async function fileExists(p) {
|
|
80
|
-
try {
|
|
81
|
-
await access(p);
|
|
82
|
-
return true;
|
|
83
|
-
} catch (err) {
|
|
84
|
-
if (err.code === "ENOENT") return false;
|
|
85
|
-
throw err;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export {
|
|
90
|
-
runAdd
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=chunk-V774PVEJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/add.ts","../src/transforms/rewriteImports.ts"],"sourcesContent":["import { access, mkdir, writeFile } from 'node:fs/promises'\nimport { dirname, join } from 'node:path'\nimport { readMatterConfig } from '../config/matterConfig.js'\nimport {\n fetchComponentSource,\n fetchRegistry,\n type Registry,\n type RegistryEntry,\n} from '../registry/fetchRegistry.js'\nimport { resolveRef } from '../registry/ref.js'\nimport { rewriteImports } from '../transforms/rewriteImports.js'\n\nexport interface AddOptions {\n registry?: string\n ref?: string\n force?: boolean\n cliVersion: string\n}\n\nexport interface AddIO {\n cwd: string\n log: (line: string) => void\n}\n\nexport async function runAdd(\n components: string[],\n opts: AddOptions,\n io: AddIO = { cwd: process.cwd(), log: console.log },\n): Promise<void> {\n if (components.length === 0) {\n throw new Error('add: at least one component name is required')\n }\n\n const cfg = await readMatterConfig(io.cwd)\n const baseUrl = opts.registry ?? cfg.registryUrl\n const ref = resolveRef(opts.ref, opts.cliVersion)\n const registryUrl = baseUrl.replace('${ref}', ref)\n const registry = await fetchRegistry(registryUrl)\n\n // Resolve every component up front so we fail fast on missing slugs\n // before any disk write.\n const resolved = components.map((slug) => resolveComponent(slug, registry, registryUrl))\n\n // Pre-flight overwrite check on every target.\n if (!opts.force) {\n for (const r of resolved) {\n const targetPath = join(io.cwd, cfg.componentsDir, r.entry.file)\n if (await fileExists(targetPath)) {\n throw new Error(`${targetPath} already exists. Pass --force to overwrite.`)\n }\n }\n }\n\n // Fetch all sources concurrently. If any fetch fails, the throw\n // propagates before we touch disk — no partial-write states.\n const fetched = await Promise.all(\n resolved.map(async (r) => {\n const source = await fetchComponentSource(registryUrl, r.entry.file)\n return { ...r, source }\n }),\n )\n\n // Now write sequentially (mkdir + writeFile per target). Sequential\n // here is fine: the bottleneck has already passed.\n const allDeps = new Set<string>()\n for (const f of fetched) {\n const targetPath = join(io.cwd, cfg.componentsDir, f.entry.file)\n const rewritten = rewriteImports(f.source, cfg.aliases)\n await mkdir(dirname(targetPath), { recursive: true })\n await writeFile(targetPath, rewritten, 'utf-8')\n io.log(`Wrote ${targetPath}`)\n for (const dep of f.entry.dependencies) allDeps.add(dep)\n }\n\n // Dedup + alphabetize install hint.\n const sortedDeps = [...allDeps].sort()\n io.log('')\n io.log(`This component requires: ${sortedDeps.join(', ')}`)\n io.log('Install with your package manager, e.g.:')\n io.log(`npm install ${sortedDeps.join(' ')}`)\n}\n\nfunction resolveComponent(\n slug: string,\n registry: Registry,\n registryUrl: string,\n): { slug: string; entry: RegistryEntry } {\n const entry = registry.components[slug]\n if (!entry) {\n throw new Error(\n `Component \"${slug}\" not found in registry at ${registryUrl}. Run \\`matter-cli list\\` to see available components.`,\n )\n }\n return { slug, entry }\n}\n\nasync function fileExists(p: string): Promise<boolean> {\n try {\n await access(p)\n return true\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') return false\n throw err\n }\n}\n","/**\n * Rewrite import specifiers in a TS/TSX source string per a prefix-match\n * alias map. Each alias key is treated as a literal prefix; if a specifier\n * starts with the key, the prefix is replaced with the value.\n *\n * v1's Tier 1 components don't actually use any internal aliases — every\n * import resolves to a published npm package (`@lovo/matter`,\n * `@lovo/matter-react`, `react`, `three`). The synthetic test fixture\n * imports `@matter-internal/lib` to exercise this code path. When future\n * components do share internal utilities, this rewriter is what shapes\n * those imports per the user's project layout.\n *\n * Longer alias keys win over shorter ones (so `@matter-internal/` beats\n * `@/` when both match).\n */\nexport function rewriteImports(source: string, aliases: Record<string, string>): string {\n const sortedAliases = Object.entries(aliases).sort(([a], [b]) => b.length - a.length)\n if (sortedAliases.length === 0) return source\n\n // Match `from '...'` / `from \"...\"` / `import('...')` / `import(\"...\")`.\n const importRe = /(\\bfrom\\s+|\\bimport\\s*\\(\\s*)(['\"])([^'\"]+)\\2/g\n\n return source.replace(importRe, (full, lead: string, quote: string, spec: string) => {\n for (const [key, value] of sortedAliases) {\n if (spec.startsWith(key)) {\n return `${lead}${quote}${value}${spec.slice(key.length)}${quote}`\n }\n }\n return full\n })\n}\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,QAAQ,OAAO,iBAAiB;AACzC,SAAS,SAAS,YAAY;;;ACcvB,SAAS,eAAe,QAAgB,SAAyC;AACtF,QAAM,gBAAgB,OAAO,QAAQ,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM;AACpF,MAAI,cAAc,WAAW,EAAG,QAAO;AAGvC,QAAM,WAAW;AAEjB,SAAO,OAAO,QAAQ,UAAU,CAAC,MAAM,MAAc,OAAe,SAAiB;AACnF,eAAW,CAAC,KAAK,KAAK,KAAK,eAAe;AACxC,UAAI,KAAK,WAAW,GAAG,GAAG;AACxB,eAAO,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK;AAAA,MACjE;AAAA,IACF;AACA,WAAO;AAAA,EACT,CAAC;AACH;;;ADNA,eAAsB,OACpB,YACA,MACA,KAAY,EAAE,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GACpC;AACf,MAAI,WAAW,WAAW,GAAG;AAC3B,UAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AAEA,QAAM,MAAM,MAAM,iBAAiB,GAAG,GAAG;AACzC,QAAM,UAAU,KAAK,YAAY,IAAI;AACrC,QAAM,MAAM,WAAW,KAAK,KAAK,KAAK,UAAU;AAChD,QAAM,cAAc,QAAQ,QAAQ,UAAU,GAAG;AACjD,QAAM,WAAW,MAAM,cAAc,WAAW;AAIhD,QAAM,WAAW,WAAW,IAAI,CAAC,SAAS,iBAAiB,MAAM,UAAU,WAAW,CAAC;AAGvF,MAAI,CAAC,KAAK,OAAO;AACf,eAAW,KAAK,UAAU;AACxB,YAAM,aAAa,KAAK,GAAG,KAAK,IAAI,eAAe,EAAE,MAAM,IAAI;AAC/D,UAAI,MAAM,WAAW,UAAU,GAAG;AAChC,cAAM,IAAI,MAAM,GAAG,UAAU,6CAA6C;AAAA,MAC5E;AAAA,IACF;AAAA,EACF;AAIA,QAAM,UAAU,MAAM,QAAQ;AAAA,IAC5B,SAAS,IAAI,OAAO,MAAM;AACxB,YAAM,SAAS,MAAM,qBAAqB,aAAa,EAAE,MAAM,IAAI;AACnE,aAAO,EAAE,GAAG,GAAG,OAAO;AAAA,IACxB,CAAC;AAAA,EACH;AAIA,QAAM,UAAU,oBAAI,IAAY;AAChC,aAAW,KAAK,SAAS;AACvB,UAAM,aAAa,KAAK,GAAG,KAAK,IAAI,eAAe,EAAE,MAAM,IAAI;AAC/D,UAAM,YAAY,eAAe,EAAE,QAAQ,IAAI,OAAO;AACtD,UAAM,MAAM,QAAQ,UAAU,GAAG,EAAE,WAAW,KAAK,CAAC;AACpD,UAAM,UAAU,YAAY,WAAW,OAAO;AAC9C,OAAG,IAAI,SAAS,UAAU,EAAE;AAC5B,eAAW,OAAO,EAAE,MAAM,aAAc,SAAQ,IAAI,GAAG;AAAA,EACzD;AAGA,QAAM,aAAa,CAAC,GAAG,OAAO,EAAE,KAAK;AACrC,KAAG,IAAI,EAAE;AACT,KAAG,IAAI,4BAA4B,WAAW,KAAK,IAAI,CAAC,EAAE;AAC1D,KAAG,IAAI,0CAA0C;AACjD,KAAG,IAAI,eAAe,WAAW,KAAK,GAAG,CAAC,EAAE;AAC9C;AAEA,SAAS,iBACP,MACA,UACA,aACwC;AACxC,QAAM,QAAQ,SAAS,WAAW,IAAI;AACtC,MAAI,CAAC,OAAO;AACV,UAAM,IAAI;AAAA,MACR,cAAc,IAAI,8BAA8B,WAAW;AAAA,IAC7D;AAAA,EACF;AACA,SAAO,EAAE,MAAM,MAAM;AACvB;AAEA,eAAe,WAAW,GAA6B;AACrD,MAAI;AACF,UAAM,OAAO,CAAC;AACd,WAAO;AAAA,EACT,SAAS,KAAK;AACZ,QAAK,IAA8B,SAAS,SAAU,QAAO;AAC7D,UAAM;AAAA,EACR;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/init.ts"],"sourcesContent":["import {\n DEFAULT_MATTER_CONFIG,\n configExists,\n configPath,\n writeMatterConfig,\n} from '../config/matterConfig.js'\n\nexport interface InitOptions {\n force?: boolean\n}\n\nexport interface InitIO {\n cwd: string\n log: (line: string) => void\n}\n\nexport async function runInit(\n opts: InitOptions,\n io: InitIO = { cwd: process.cwd(), log: console.log },\n): Promise<void> {\n const exists = await configExists(io.cwd)\n if (exists && !opts.force) {\n throw new Error(\n `matter.config.json already exists in ${io.cwd}. Pass --force to overwrite.`,\n )\n }\n await writeMatterConfig(io.cwd, DEFAULT_MATTER_CONFIG)\n io.log(`Created matter.config.json at ${configPath(io.cwd)}`)\n io.log(\n 'Edit `componentsDir` if your project uses a different layout, ' +\n 'and adjust `aliases` to match your tsconfig paths.',\n )\n}\n"],"mappings":";;;;;;;;;AAgBA,eAAsB,QACpB,MACA,KAAa,EAAE,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GACrC;AACf,QAAM,SAAS,MAAM,aAAa,GAAG,GAAG;AACxC,MAAI,UAAU,CAAC,KAAK,OAAO;AACzB,UAAM,IAAI;AAAA,MACR,wCAAwC,GAAG,GAAG;AAAA,IAChD;AAAA,EACF;AACA,QAAM,kBAAkB,GAAG,KAAK,qBAAqB;AACrD,KAAG,IAAI,iCAAiC,WAAW,GAAG,GAAG,CAAC,EAAE;AAC5D,KAAG;AAAA,IACD;AAAA,EAEF;AACF;","names":[]}
|
package/dist/init-W2VK6JT2.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
DEFAULT_MATTER_CONFIG,
|
|
4
|
-
configExists,
|
|
5
|
-
configPath,
|
|
6
|
-
writeMatterConfig
|
|
7
|
-
} from "./chunk-EBCJ5BNB.js";
|
|
8
|
-
|
|
9
|
-
// src/commands/init.ts
|
|
10
|
-
async function runInit(opts, io = { cwd: process.cwd(), log: console.log }) {
|
|
11
|
-
const exists = await configExists(io.cwd);
|
|
12
|
-
if (exists && !opts.force) {
|
|
13
|
-
throw new Error(
|
|
14
|
-
`matter.config.json already exists in ${io.cwd}. Pass --force to overwrite.`
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
await writeMatterConfig(io.cwd, DEFAULT_MATTER_CONFIG);
|
|
18
|
-
io.log(`Created matter.config.json at ${configPath(io.cwd)}`);
|
|
19
|
-
io.log(
|
|
20
|
-
"Edit `componentsDir` if your project uses a different layout, and adjust `aliases` to match your tsconfig paths."
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
export {
|
|
24
|
-
runInit
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=init-W2VK6JT2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/init.ts"],"sourcesContent":["import {\n DEFAULT_MATTER_CONFIG,\n configExists,\n configPath,\n writeMatterConfig,\n} from '../config/matterConfig.js'\n\nexport interface InitOptions {\n force?: boolean\n}\n\nexport interface InitIO {\n cwd: string\n log: (line: string) => void\n}\n\nexport async function runInit(\n opts: InitOptions,\n io: InitIO = { cwd: process.cwd(), log: console.log },\n): Promise<void> {\n const exists = await configExists(io.cwd)\n if (exists && !opts.force) {\n throw new Error(\n `matter.config.json already exists in ${io.cwd}. Pass --force to overwrite.`,\n )\n }\n await writeMatterConfig(io.cwd, DEFAULT_MATTER_CONFIG)\n io.log(`Created matter.config.json at ${configPath(io.cwd)}`)\n io.log(\n 'Edit `componentsDir` if your project uses a different layout, ' +\n 'and adjust `aliases` to match your tsconfig paths.',\n )\n}\n"],"mappings":";;;;;;;;;AAgBA,eAAsB,QACpB,MACA,KAAa,EAAE,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GACrC;AACf,QAAM,SAAS,MAAM,aAAa,GAAG,GAAG;AACxC,MAAI,UAAU,CAAC,KAAK,OAAO;AACzB,UAAM,IAAI;AAAA,MACR,wCAAwC,GAAG,GAAG;AAAA,IAChD;AAAA,EACF;AACA,QAAM,kBAAkB,GAAG,KAAK,qBAAqB;AACrD,KAAG,IAAI,iCAAiC,WAAW,GAAG,GAAG,CAAC,EAAE;AAC5D,KAAG;AAAA,IACD;AAAA,EAEF;AACF;","names":[]}
|
package/dist/list-BS5GAYO3.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
fetchRegistry,
|
|
4
|
-
resolveRef
|
|
5
|
-
} from "./chunk-QTD5MDLV.js";
|
|
6
|
-
import {
|
|
7
|
-
DEFAULT_MATTER_CONFIG,
|
|
8
|
-
configExists,
|
|
9
|
-
readMatterConfig
|
|
10
|
-
} from "./chunk-EBCJ5BNB.js";
|
|
11
|
-
|
|
12
|
-
// src/commands/list.ts
|
|
13
|
-
async function runList(opts, io = { cwd: process.cwd(), log: console.log }) {
|
|
14
|
-
let baseUrl;
|
|
15
|
-
if (opts.registry !== void 0 && opts.registry !== "") {
|
|
16
|
-
baseUrl = opts.registry;
|
|
17
|
-
} else if (await configExists(io.cwd)) {
|
|
18
|
-
const cfg = await readMatterConfig(io.cwd);
|
|
19
|
-
baseUrl = cfg.registryUrl;
|
|
20
|
-
} else {
|
|
21
|
-
baseUrl = DEFAULT_MATTER_CONFIG.registryUrl;
|
|
22
|
-
}
|
|
23
|
-
const ref = resolveRef(opts.ref, opts.cliVersion);
|
|
24
|
-
const url = baseUrl.replace("${ref}", ref);
|
|
25
|
-
const registry = await fetchRegistry(url);
|
|
26
|
-
const entries = Object.entries(registry.components).sort(([a], [b]) => a.localeCompare(b));
|
|
27
|
-
if (entries.length === 0) {
|
|
28
|
-
io.log("No components in registry.");
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
for (const [slug, entry] of entries) {
|
|
32
|
-
const description = entry.description ?? "(no description)";
|
|
33
|
-
io.log(`${slug} \xB7 ${description} \xB7 tier ${entry.tier}`);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export {
|
|
37
|
-
runList
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=list-BS5GAYO3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/list.ts"],"sourcesContent":["import { DEFAULT_MATTER_CONFIG, configExists, readMatterConfig } from '../config/matterConfig.js'\nimport { fetchRegistry } from '../registry/fetchRegistry.js'\nimport { resolveRef } from '../registry/ref.js'\n\nexport interface ListOptions {\n registry?: string\n ref?: string\n cliVersion: string\n}\n\nexport interface ListIO {\n cwd: string\n log: (line: string) => void\n}\n\nexport async function runList(\n opts: ListOptions,\n io: ListIO = { cwd: process.cwd(), log: console.log },\n): Promise<void> {\n // URL resolution: --registry > matter.config.json > built-in default.\n // Missing config → default (lets users `list` before `init`). Malformed\n // config (invalid JSON, missing fields) → propagate so the user sees the\n // problem instead of silently falling back to the GitHub URL.\n let baseUrl: string\n if (opts.registry !== undefined && opts.registry !== '') {\n baseUrl = opts.registry\n } else if (await configExists(io.cwd)) {\n const cfg = await readMatterConfig(io.cwd)\n baseUrl = cfg.registryUrl\n } else {\n baseUrl = DEFAULT_MATTER_CONFIG.registryUrl\n }\n\n const ref = resolveRef(opts.ref, opts.cliVersion)\n const url = baseUrl.replace('${ref}', ref)\n const registry = await fetchRegistry(url)\n const entries = Object.entries(registry.components).sort(([a], [b]) => a.localeCompare(b))\n\n if (entries.length === 0) {\n io.log('No components in registry.')\n return\n }\n\n for (const [slug, entry] of entries) {\n const description = entry.description ?? '(no description)'\n io.log(`${slug} · ${description} · tier ${entry.tier}`)\n }\n}\n"],"mappings":";;;;;;;;;;;;AAeA,eAAsB,QACpB,MACA,KAAa,EAAE,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GACrC;AAKf,MAAI;AACJ,MAAI,KAAK,aAAa,UAAa,KAAK,aAAa,IAAI;AACvD,cAAU,KAAK;AAAA,EACjB,WAAW,MAAM,aAAa,GAAG,GAAG,GAAG;AACrC,UAAM,MAAM,MAAM,iBAAiB,GAAG,GAAG;AACzC,cAAU,IAAI;AAAA,EAChB,OAAO;AACL,cAAU,sBAAsB;AAAA,EAClC;AAEA,QAAM,MAAM,WAAW,KAAK,KAAK,KAAK,UAAU;AAChD,QAAM,MAAM,QAAQ,QAAQ,UAAU,GAAG;AACzC,QAAM,WAAW,MAAM,cAAc,GAAG;AACxC,QAAM,UAAU,OAAO,QAAQ,SAAS,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEzF,MAAI,QAAQ,WAAW,GAAG;AACxB,OAAG,IAAI,4BAA4B;AACnC;AAAA,EACF;AAEA,aAAW,CAAC,MAAM,KAAK,KAAK,SAAS;AACnC,UAAM,cAAc,MAAM,eAAe;AACzC,OAAG,IAAI,GAAG,IAAI,SAAM,WAAW,cAAW,MAAM,IAAI,EAAE;AAAA,EACxD;AACF;","names":[]}
|
package/dist/update-TAPYOHLT.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
runAdd
|
|
4
|
-
} from "./chunk-V774PVEJ.js";
|
|
5
|
-
import {
|
|
6
|
-
fetchRegistry,
|
|
7
|
-
resolveRef
|
|
8
|
-
} from "./chunk-QTD5MDLV.js";
|
|
9
|
-
import {
|
|
10
|
-
readMatterConfig
|
|
11
|
-
} from "./chunk-EBCJ5BNB.js";
|
|
12
|
-
|
|
13
|
-
// src/commands/update.ts
|
|
14
|
-
import { readdir } from "fs/promises";
|
|
15
|
-
import { extname, join } from "path";
|
|
16
|
-
async function runUpdate(components, opts, io = { cwd: process.cwd(), log: console.log }) {
|
|
17
|
-
const cfg = await readMatterConfig(io.cwd);
|
|
18
|
-
const baseUrl = opts.registry ?? cfg.registryUrl;
|
|
19
|
-
const ref = resolveRef(opts.ref, opts.cliVersion);
|
|
20
|
-
const registryUrl = baseUrl.replace("${ref}", ref);
|
|
21
|
-
const componentsDir = join(io.cwd, cfg.componentsDir);
|
|
22
|
-
const localFiles = await safeReaddir(componentsDir);
|
|
23
|
-
const localSlugs = localFiles.filter((f) => extname(f) === ".tsx" || extname(f) === ".ts").map((f) => f.replace(/\.(tsx|ts)$/, ""));
|
|
24
|
-
const registry = await fetchRegistry(registryUrl);
|
|
25
|
-
let toUpdate;
|
|
26
|
-
if (components.length === 0) {
|
|
27
|
-
if (localSlugs.length === 0) {
|
|
28
|
-
throw new Error(
|
|
29
|
-
`No components found in ${componentsDir}. Run \`matter-cli add <name>\` first.`
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
toUpdate = localSlugs.filter((slug) => slugIsInRegistry(slug, registry));
|
|
33
|
-
if (toUpdate.length === 0) {
|
|
34
|
-
throw new Error(`No components in ${componentsDir} match any registry entry.`);
|
|
35
|
-
}
|
|
36
|
-
} else {
|
|
37
|
-
for (const slug of components) {
|
|
38
|
-
const file = registry.components[slug]?.file;
|
|
39
|
-
const present = file !== void 0 && localSlugs.includes(slug);
|
|
40
|
-
if (!present) {
|
|
41
|
-
throw new Error(
|
|
42
|
-
`Component "${slug}" is not present in ${componentsDir}. Use \`matter-cli add ${slug}\` instead.`
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
toUpdate = components;
|
|
47
|
-
}
|
|
48
|
-
io.log(`Updating ${toUpdate.length} component(s) from ${registryUrl}\u2026`);
|
|
49
|
-
await runAdd(
|
|
50
|
-
toUpdate,
|
|
51
|
-
{
|
|
52
|
-
registry: registryUrl,
|
|
53
|
-
ref: void 0,
|
|
54
|
-
force: opts.force,
|
|
55
|
-
cliVersion: opts.cliVersion
|
|
56
|
-
},
|
|
57
|
-
io
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
async function safeReaddir(path) {
|
|
61
|
-
try {
|
|
62
|
-
return await readdir(path);
|
|
63
|
-
} catch (err) {
|
|
64
|
-
if (err.code === "ENOENT") return [];
|
|
65
|
-
throw err;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
function slugIsInRegistry(slug, registry) {
|
|
69
|
-
const entry = registry.components[slug];
|
|
70
|
-
return entry !== void 0 && entry.file.replace(/\.(tsx|ts)$/, "") === slug;
|
|
71
|
-
}
|
|
72
|
-
export {
|
|
73
|
-
runUpdate
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=update-TAPYOHLT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/update.ts"],"sourcesContent":["import { readdir } from 'node:fs/promises'\nimport { extname, join } from 'node:path'\nimport { readMatterConfig } from '../config/matterConfig.js'\nimport { fetchRegistry, type Registry } from '../registry/fetchRegistry.js'\nimport { resolveRef } from '../registry/ref.js'\nimport { runAdd } from './add.js'\n\nexport interface UpdateOptions {\n registry?: string\n ref?: string\n force?: boolean\n cliVersion: string\n}\n\nexport interface UpdateIO {\n cwd: string\n log: (line: string) => void\n}\n\nexport async function runUpdate(\n components: string[],\n opts: UpdateOptions,\n io: UpdateIO = { cwd: process.cwd(), log: console.log },\n): Promise<void> {\n const cfg = await readMatterConfig(io.cwd)\n const baseUrl = opts.registry ?? cfg.registryUrl\n const ref = resolveRef(opts.ref, opts.cliVersion)\n const registryUrl = baseUrl.replace('${ref}', ref)\n\n const componentsDir = join(io.cwd, cfg.componentsDir)\n const localFiles = await safeReaddir(componentsDir)\n const localSlugs = localFiles\n .filter((f) => extname(f) === '.tsx' || extname(f) === '.ts')\n .map((f) => f.replace(/\\.(tsx|ts)$/, ''))\n\n const registry = await fetchRegistry(registryUrl)\n\n let toUpdate: string[]\n if (components.length === 0) {\n if (localSlugs.length === 0) {\n throw new Error(\n `No components found in ${componentsDir}. Run \\`matter-cli add <name>\\` first.`,\n )\n }\n toUpdate = localSlugs.filter((slug) => slugIsInRegistry(slug, registry))\n if (toUpdate.length === 0) {\n throw new Error(`No components in ${componentsDir} match any registry entry.`)\n }\n } else {\n for (const slug of components) {\n const file = registry.components[slug]?.file\n const present = file !== undefined && localSlugs.includes(slug)\n if (!present) {\n throw new Error(\n `Component \"${slug}\" is not present in ${componentsDir}. Use \\`matter-cli add ${slug}\\` instead.`,\n )\n }\n }\n toUpdate = components\n }\n\n io.log(`Updating ${toUpdate.length} component(s) from ${registryUrl}…`)\n // registryUrl already has ${ref} substituted above; pass ref: undefined so\n // runAdd doesn't try to resolve again over an already-substituted URL.\n await runAdd(\n toUpdate,\n {\n registry: registryUrl,\n ref: undefined,\n force: opts.force,\n cliVersion: opts.cliVersion,\n },\n io,\n )\n}\n\nasync function safeReaddir(path: string): Promise<string[]> {\n try {\n return await readdir(path)\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') return []\n throw err\n }\n}\n\n// Convention in v1: slug equals the basename of entry.file. update keys off\n// the local filename, so a registry whose slug and filename diverge would\n// silently get skipped here. The single check guards both invariants.\nfunction slugIsInRegistry(slug: string, registry: Registry): boolean {\n const entry = registry.components[slug]\n return entry !== undefined && entry.file.replace(/\\.(tsx|ts)$/, '') === slug\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,SAAS,eAAe;AACxB,SAAS,SAAS,YAAY;AAkB9B,eAAsB,UACpB,YACA,MACA,KAAe,EAAE,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GACvC;AACf,QAAM,MAAM,MAAM,iBAAiB,GAAG,GAAG;AACzC,QAAM,UAAU,KAAK,YAAY,IAAI;AACrC,QAAM,MAAM,WAAW,KAAK,KAAK,KAAK,UAAU;AAChD,QAAM,cAAc,QAAQ,QAAQ,UAAU,GAAG;AAEjD,QAAM,gBAAgB,KAAK,GAAG,KAAK,IAAI,aAAa;AACpD,QAAM,aAAa,MAAM,YAAY,aAAa;AAClD,QAAM,aAAa,WAChB,OAAO,CAAC,MAAM,QAAQ,CAAC,MAAM,UAAU,QAAQ,CAAC,MAAM,KAAK,EAC3D,IAAI,CAAC,MAAM,EAAE,QAAQ,eAAe,EAAE,CAAC;AAE1C,QAAM,WAAW,MAAM,cAAc,WAAW;AAEhD,MAAI;AACJ,MAAI,WAAW,WAAW,GAAG;AAC3B,QAAI,WAAW,WAAW,GAAG;AAC3B,YAAM,IAAI;AAAA,QACR,0BAA0B,aAAa;AAAA,MACzC;AAAA,IACF;AACA,eAAW,WAAW,OAAO,CAAC,SAAS,iBAAiB,MAAM,QAAQ,CAAC;AACvE,QAAI,SAAS,WAAW,GAAG;AACzB,YAAM,IAAI,MAAM,oBAAoB,aAAa,4BAA4B;AAAA,IAC/E;AAAA,EACF,OAAO;AACL,eAAW,QAAQ,YAAY;AAC7B,YAAM,OAAO,SAAS,WAAW,IAAI,GAAG;AACxC,YAAM,UAAU,SAAS,UAAa,WAAW,SAAS,IAAI;AAC9D,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI;AAAA,UACR,cAAc,IAAI,uBAAuB,aAAa,0BAA0B,IAAI;AAAA,QACtF;AAAA,MACF;AAAA,IACF;AACA,eAAW;AAAA,EACb;AAEA,KAAG,IAAI,YAAY,SAAS,MAAM,sBAAsB,WAAW,QAAG;AAGtE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,MACE,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK;AAAA,IACnB;AAAA,IACA;AAAA,EACF;AACF;AAEA,eAAe,YAAY,MAAiC;AAC1D,MAAI;AACF,WAAO,MAAM,QAAQ,IAAI;AAAA,EAC3B,SAAS,KAAK;AACZ,QAAK,IAA8B,SAAS,SAAU,QAAO,CAAC;AAC9D,UAAM;AAAA,EACR;AACF;AAKA,SAAS,iBAAiB,MAAc,UAA6B;AACnE,QAAM,QAAQ,SAAS,WAAW,IAAI;AACtC,SAAO,UAAU,UAAa,MAAM,KAAK,QAAQ,eAAe,EAAE,MAAM;AAC1E;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|