create-atom.io 0.0.3 → 0.0.5
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/dist/{create-atom-BDzJIQOb.js → create-atom-C0gh5ath.js} +2 -2
- package/dist/create-atom-C0gh5ath.js.map +1 -0
- package/dist/create-atom.js +1 -1
- package/dist/create-atom.x.js +1 -1
- package/package.json +7 -8
- package/src/create-atom.ts +5 -1
- package/dist/create-atom-BDzJIQOb.js.map +0 -1
- package/templates/preact-svg-editor/_gitignore +0 -24
- package/templates/preact-svg-editor/eslint.config.ts +0 -179
- package/templates/preact-svg-editor/eslint.d.ts +0 -31
- package/templates/preact-svg-editor/index.html +0 -14
- package/templates/preact-svg-editor/node_modules/.bin/vite +0 -21
- package/templates/preact-svg-editor/package.json +0 -24
- package/templates/preact-svg-editor/public/preact.svg +0 -6
- package/templates/preact-svg-editor/src/BezierPlayground.tsx +0 -458
- package/templates/preact-svg-editor/src/index.tsx +0 -50
- package/templates/preact-svg-editor/src/msg.md +0 -105
- package/templates/preact-svg-editor/src/style.css +0 -126
- package/templates/preact-svg-editor/tsconfig.json +0 -21
- package/templates/preact-svg-editor/vite.config.ts +0 -10
- package/templates/react-node-backend/.turbo/turbo-build.log +0 -12
- package/templates/react-node-backend/README.md +0 -75
- package/templates/react-node-backend/_gitignore +0 -24
- package/templates/react-node-backend/dist/assets/index-By2j7w9s.css +0 -1
- package/templates/react-node-backend/dist/assets/index-DKQCwCeF.js +0 -9
- package/templates/react-node-backend/dist/index.html +0 -14
- package/templates/react-node-backend/dist/react.svg +0 -1
- package/templates/react-node-backend/dist/vite.svg +0 -1
- package/templates/react-node-backend/eslint.config.ts +0 -176
- package/templates/react-node-backend/eslint.d.ts +0 -31
- package/templates/react-node-backend/index.html +0 -13
- package/templates/react-node-backend/node/authenticator.ts +0 -47
- package/templates/react-node-backend/node/server.ts +0 -103
- package/templates/react-node-backend/node_modules/.bin/conc +0 -21
- package/templates/react-node-backend/node_modules/.bin/concurrently +0 -21
- package/templates/react-node-backend/node_modules/.bin/eslint +0 -21
- package/templates/react-node-backend/node_modules/.bin/tsc +0 -21
- package/templates/react-node-backend/node_modules/.bin/tsserver +0 -21
- package/templates/react-node-backend/node_modules/.bin/vite +0 -21
- package/templates/react-node-backend/package.json +0 -33
- package/templates/react-node-backend/public/react.svg +0 -1
- package/templates/react-node-backend/public/vite.svg +0 -1
- package/templates/react-node-backend/src/App.tsx +0 -69
- package/templates/react-node-backend/src/index.css +0 -145
- package/templates/react-node-backend/src/main.tsx +0 -12
- package/templates/react-node-backend/tsconfig.app.json +0 -28
- package/templates/react-node-backend/tsconfig.json +0 -7
- package/templates/react-node-backend/tsconfig.node.json +0 -26
- package/templates/react-node-backend/vite.config.ts +0 -13
|
@@ -59,7 +59,7 @@ async function useSpinner(startMessage, fn, finishMessage) {
|
|
|
59
59
|
}
|
|
60
60
|
async function scaffold(to, opts) {
|
|
61
61
|
await promises.mkdir(to, { recursive: true });
|
|
62
|
-
await templateDir(resolve(dirname(fileURLToPath(import.meta.url)), `../
|
|
62
|
+
await templateDir(resolve(dirname(fileURLToPath(import.meta.url)), `../node_modules/@atom.io`, `template-${opts.templateName}`), to, opts);
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* Recursive fs copy, swiped from `create-wmr`:
|
|
@@ -115,4 +115,4 @@ function getPkgManager() {
|
|
|
115
115
|
|
|
116
116
|
//#endregion
|
|
117
117
|
export { createAtom as t };
|
|
118
|
-
//# sourceMappingURL=create-atom-
|
|
118
|
+
//# sourceMappingURL=create-atom-C0gh5ath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-atom-C0gh5ath.js","names":["pico: Colors","opts: CreateAtomOptions","fs","dependencies: string[]","devDependencies: string[]"],"sources":["../src/create-atom.ts"],"sourcesContent":["import { existsSync, promises as fs } from \"node:fs\"\nimport { dirname, resolve } from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\n\nimport * as prompts from \"@clack/prompts\"\nimport picocolors from \"picocolors\"\nimport type { Colors } from \"picocolors/types\"\nimport { x } from \"tinyexec\"\n\nconst pico: Colors = picocolors.createColors(true)\n\nconst s = prompts.spinner()\n\nexport type PackageManager = `bun` | `npm` | `pnpm` | `yarn`\nexport type TemplateName = `preact-svg-editor` | `react-node-backend`\n\nexport type CreateAtomOptions = {\n\tpackageManager: PackageManager\n\ttemplateName: TemplateName\n}\n\nexport type CreateAtomOptionsPreloaded = {\n\t[K in keyof CreateAtomOptions]?: CreateAtomOptions[K] | undefined\n} & { skipHints?: boolean | undefined }\n\nexport async function createAtom(\n\targDir: string | undefined,\n\toptions: CreateAtomOptionsPreloaded,\n): Promise<void> {\n\tconst skipHint = options.skipHints ?? false\n\tconst packageManager = options.packageManager ?? getPkgManager()\n\n\tprompts.intro(pico.greenBright(`atom.io - Data Components for TypeScript`))\n\n\tconst { dir, templateName } = await prompts.group(\n\t\t{\n\t\t\ttemplateName: () =>\n\t\t\t\tprompts.select<TemplateName>({\n\t\t\t\t\tmessage: `Template:`,\n\t\t\t\t\tinitialValue: `preact-svg-editor`,\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: `Preact SVG Editor`,\n\t\t\t\t\t\t\tvalue: `preact-svg-editor`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: `React Node Backend`,\n\t\t\t\t\t\t\tvalue: `react-node-backend`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\tdir: () =>\n\t\t\t\targDir\n\t\t\t\t\t? Promise.resolve(argDir)\n\t\t\t\t\t: prompts.text({\n\t\t\t\t\t\t\tmessage: `Project directory:`,\n\t\t\t\t\t\t\tplaceholder: `my-app`,\n\t\t\t\t\t\t\tvalidate(value) {\n\t\t\t\t\t\t\t\tif (value.length === 0) {\n\t\t\t\t\t\t\t\t\treturn `Directory name is required!`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (existsSync(value)) {\n\t\t\t\t\t\t\t\t\treturn `Refusing to overwrite existing directory or file! Please provide a non-clashing name.`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t},\n\t\t{\n\t\t\tonCancel: () => {\n\t\t\t\tprompts.cancel(pico.yellow(`Cancelled`))\n\t\t\t\tprocess.exit(0)\n\t\t\t},\n\t\t},\n\t)\n\tconst targetDir = resolve(process.cwd(), dir)\n\tconst opts: CreateAtomOptions = { packageManager, templateName }\n\n\tawait useSpinner(\n\t\t`Setting up your project directory...`,\n\t\t() => scaffold(targetDir, opts),\n\t\t`Set up project directory`,\n\t)\n\n\tawait useSpinner(\n\t\t`Installing project dependencies...`,\n\t\t() => installDeps(targetDir, opts),\n\t\t`Installed project dependencies`,\n\t)\n\n\tif (skipHint === false) {\n\t\tconst gettingStarted = `\n\t\t\t${pico.dim(`$`)} ${pico.blueBright(`cd ${dir}`)}\n\t\t\t${pico.dim(`$`)} ${pico.blueBright(\n\t\t\t\t`${\n\t\t\t\t\tpackageManager === `npm`\n\t\t\t\t\t\t? `npm run`\n\t\t\t\t\t\t: packageManager === `bun`\n\t\t\t\t\t\t\t? `bun run`\n\t\t\t\t\t\t\t: packageManager\n\t\t\t\t} dev`,\n\t\t\t)}\n\t\t`\n\t\tprompts.note(\n\t\t\tgettingStarted.trim().replace(/^\\t\\t\\t/gm, ``),\n\t\t\t`Getting Started`,\n\t\t)\n\t}\n\n\tprompts.outro(pico.green(`You're all set!`))\n}\n\nasync function useSpinner(\n\tstartMessage: string,\n\tfn: () => Promise<void>,\n\tfinishMessage: string,\n): Promise<void> {\n\ts.start(startMessage)\n\tawait fn()\n\ts.stop(pico.green(finishMessage))\n}\n\nasync function scaffold(to: string, opts: CreateAtomOptions): Promise<void> {\n\tawait fs.mkdir(to, { recursive: true })\n\n\tconst __dirname = dirname(fileURLToPath(import.meta.url))\n\tawait templateDir(\n\t\tresolve(\n\t\t\t__dirname,\n\t\t\t`../node_modules/@atom.io`,\n\t\t\t`template-${opts.templateName}`,\n\t\t),\n\t\tto,\n\t\topts,\n\t)\n}\n\n/**\n * Recursive fs copy, swiped from `create-wmr`:\n * https://github.com/preactjs/wmr/blob/3c5672ecd2f958c8eaf372d33c084dc69228ae3f/packages/create-wmr/src/index.js#L108-L124\n */\nasync function templateDir(\n\tfrom: string,\n\tto: string,\n\topts: CreateAtomOptions,\n): Promise<void[]> {\n\tconst files = await fs.readdir(from)\n\tconst results = await Promise.all(\n\t\tfiles.map(async (f) => {\n\t\t\tif (f === `.` || f === `..`) return\n\t\t\tconst filename = resolve(from, f)\n\t\t\tif ((await fs.stat(filename)).isDirectory()) {\n\t\t\t\tawait fs.mkdir(resolve(to, f), { recursive: true })\n\t\t\t\treturn templateDir(filename, resolve(to, f), opts)\n\t\t\t}\n\t\t\tif (opts.packageManager !== `npm` && f === `README.md`) {\n\t\t\t\tawait fs.writeFile(\n\t\t\t\t\tresolve(to, f),\n\t\t\t\t\t(await fs.readFile(filename, `utf-8`)).replace(\n\t\t\t\t\t\t/npm run/g,\n\t\t\t\t\t\topts.packageManager === `bun` ? `bun run` : opts.packageManager,\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Publishing to npm renames the .gitignore to .npmignore\n\t\t\t// https://github.com/npm/npm/issues/7252#issuecomment-253339460\n\t\t\tif (f === `_gitignore`) f = `.gitignore`\n\t\t\tawait fs.copyFile(filename, resolve(to, f))\n\t\t}),\n\t)\n\treturn results.flat(99)\n}\n\nasync function installDeps(to: string, opts: CreateAtomOptions) {\n\tconst dependencies: string[] = []\n\tconst devDependencies: string[] = []\n\n\tconst installOpts = {\n\t\tpackageManager: opts.packageManager,\n\t\tto,\n\t}\n\n\tawait installPackages(dependencies, { ...installOpts })\n\tdevDependencies.length &&\n\t\t(await installPackages(devDependencies, { ...installOpts, dev: true }))\n}\n\ntype InstallOptions = {\n\tpackageManager: `bun` | `npm` | `pnpm` | `yarn`\n\tto: string\n\tdev?: boolean\n}\n\nfunction installPackages(pkgs: string[], opts: InstallOptions) {\n\treturn x(\n\t\topts.packageManager,\n\t\t[\n\t\t\t// `yarn add` will fail if nothing is provided\n\t\t\topts.packageManager === `yarn` ? (pkgs.length ? `add` : ``) : `install`,\n\t\t\topts.dev ? `-D` : ``,\n\t\t\t...pkgs,\n\t\t].filter(Boolean),\n\t\t{\n\t\t\tnodeOptions: {\n\t\t\t\tstdio: `ignore`,\n\t\t\t\tcwd: opts.to,\n\t\t\t},\n\t\t},\n\t)\n}\n\nfunction getPkgManager(): `bun` | `npm` | `pnpm` | `yarn` {\n\tconst userAgent = process.env[`npm_config_user_agent`] ?? ``\n\tif (userAgent.startsWith(`yarn`)) return `yarn`\n\tif (userAgent.startsWith(`pnpm`)) return `pnpm`\n\tif (userAgent.startsWith(`bun`)) return `bun`\n\treturn `npm`\n}\n"],"mappings":"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"}
|
package/dist/create-atom.js
CHANGED
package/dist/create-atom.x.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-atom.io",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jeremy Banka",
|
|
@@ -28,15 +28,16 @@
|
|
|
28
28
|
"@clack/prompts": "0.11.0",
|
|
29
29
|
"arktype": "2.1.25",
|
|
30
30
|
"picocolors": "1.1.1",
|
|
31
|
-
"tinyexec": "1.0.
|
|
32
|
-
"
|
|
33
|
-
"atom.io": "0.
|
|
31
|
+
"tinyexec": "1.0.2",
|
|
32
|
+
"@atom.io/template-preact-svg-editor": "0.0.2",
|
|
33
|
+
"@atom.io/template-react-node-backend": "0.0.2",
|
|
34
|
+
"comline": "0.4.2"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@types/node": "24.10.0",
|
|
37
38
|
"@types/bun": "npm:bun-types@1.3.1",
|
|
38
39
|
"@types/tmp": "0.2.6",
|
|
39
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
40
|
+
"@typescript/native-preview": "7.0.0-dev.20251105.1",
|
|
40
41
|
"concurrently": "9.2.1",
|
|
41
42
|
"eslint": "9.39.1",
|
|
42
43
|
"rimraf": "6.1.0",
|
|
@@ -49,8 +50,6 @@
|
|
|
49
50
|
"lint:eslint": "eslint -- .",
|
|
50
51
|
"lint:types": "tsgo --noEmit",
|
|
51
52
|
"watch:types": "tsgo --watch --noEmit",
|
|
52
|
-
"lint": "concurrently \"bun:lint:*\""
|
|
53
|
-
"test": "./__scripts__/sync-lib-version.node.ts test",
|
|
54
|
-
"version": "./__scripts__/sync-lib-version.node.ts make"
|
|
53
|
+
"lint": "concurrently \"bun:lint:*\""
|
|
55
54
|
}
|
|
56
55
|
}
|
package/src/create-atom.ts
CHANGED
|
@@ -124,7 +124,11 @@ async function scaffold(to: string, opts: CreateAtomOptions): Promise<void> {
|
|
|
124
124
|
|
|
125
125
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
126
126
|
await templateDir(
|
|
127
|
-
resolve(
|
|
127
|
+
resolve(
|
|
128
|
+
__dirname,
|
|
129
|
+
`../node_modules/@atom.io`,
|
|
130
|
+
`template-${opts.templateName}`,
|
|
131
|
+
),
|
|
128
132
|
to,
|
|
129
133
|
opts,
|
|
130
134
|
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-atom-BDzJIQOb.js","names":["pico: Colors","opts: CreateAtomOptions","fs","dependencies: string[]","devDependencies: string[]"],"sources":["../src/create-atom.ts"],"sourcesContent":["import { existsSync, promises as fs } from \"node:fs\"\nimport { dirname, resolve } from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\n\nimport * as prompts from \"@clack/prompts\"\nimport picocolors from \"picocolors\"\nimport type { Colors } from \"picocolors/types\"\nimport { x } from \"tinyexec\"\n\nconst pico: Colors = picocolors.createColors(true)\n\nconst s = prompts.spinner()\n\nexport type PackageManager = `bun` | `npm` | `pnpm` | `yarn`\nexport type TemplateName = `preact-svg-editor` | `react-node-backend`\n\nexport type CreateAtomOptions = {\n\tpackageManager: PackageManager\n\ttemplateName: TemplateName\n}\n\nexport type CreateAtomOptionsPreloaded = {\n\t[K in keyof CreateAtomOptions]?: CreateAtomOptions[K] | undefined\n} & { skipHints?: boolean | undefined }\n\nexport async function createAtom(\n\targDir: string | undefined,\n\toptions: CreateAtomOptionsPreloaded,\n): Promise<void> {\n\tconst skipHint = options.skipHints ?? false\n\tconst packageManager = options.packageManager ?? getPkgManager()\n\n\tprompts.intro(pico.greenBright(`atom.io - Data Components for TypeScript`))\n\n\tconst { dir, templateName } = await prompts.group(\n\t\t{\n\t\t\ttemplateName: () =>\n\t\t\t\tprompts.select<TemplateName>({\n\t\t\t\t\tmessage: `Template:`,\n\t\t\t\t\tinitialValue: `preact-svg-editor`,\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: `Preact SVG Editor`,\n\t\t\t\t\t\t\tvalue: `preact-svg-editor`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: `React Node Backend`,\n\t\t\t\t\t\t\tvalue: `react-node-backend`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\tdir: () =>\n\t\t\t\targDir\n\t\t\t\t\t? Promise.resolve(argDir)\n\t\t\t\t\t: prompts.text({\n\t\t\t\t\t\t\tmessage: `Project directory:`,\n\t\t\t\t\t\t\tplaceholder: `my-app`,\n\t\t\t\t\t\t\tvalidate(value) {\n\t\t\t\t\t\t\t\tif (value.length === 0) {\n\t\t\t\t\t\t\t\t\treturn `Directory name is required!`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (existsSync(value)) {\n\t\t\t\t\t\t\t\t\treturn `Refusing to overwrite existing directory or file! Please provide a non-clashing name.`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t},\n\t\t{\n\t\t\tonCancel: () => {\n\t\t\t\tprompts.cancel(pico.yellow(`Cancelled`))\n\t\t\t\tprocess.exit(0)\n\t\t\t},\n\t\t},\n\t)\n\tconst targetDir = resolve(process.cwd(), dir)\n\tconst opts: CreateAtomOptions = { packageManager, templateName }\n\n\tawait useSpinner(\n\t\t`Setting up your project directory...`,\n\t\t() => scaffold(targetDir, opts),\n\t\t`Set up project directory`,\n\t)\n\n\tawait useSpinner(\n\t\t`Installing project dependencies...`,\n\t\t() => installDeps(targetDir, opts),\n\t\t`Installed project dependencies`,\n\t)\n\n\tif (skipHint === false) {\n\t\tconst gettingStarted = `\n\t\t\t${pico.dim(`$`)} ${pico.blueBright(`cd ${dir}`)}\n\t\t\t${pico.dim(`$`)} ${pico.blueBright(\n\t\t\t\t`${\n\t\t\t\t\tpackageManager === `npm`\n\t\t\t\t\t\t? `npm run`\n\t\t\t\t\t\t: packageManager === `bun`\n\t\t\t\t\t\t\t? `bun run`\n\t\t\t\t\t\t\t: packageManager\n\t\t\t\t} dev`,\n\t\t\t)}\n\t\t`\n\t\tprompts.note(\n\t\t\tgettingStarted.trim().replace(/^\\t\\t\\t/gm, ``),\n\t\t\t`Getting Started`,\n\t\t)\n\t}\n\n\tprompts.outro(pico.green(`You're all set!`))\n}\n\nasync function useSpinner(\n\tstartMessage: string,\n\tfn: () => Promise<void>,\n\tfinishMessage: string,\n): Promise<void> {\n\ts.start(startMessage)\n\tawait fn()\n\ts.stop(pico.green(finishMessage))\n}\n\nasync function scaffold(to: string, opts: CreateAtomOptions): Promise<void> {\n\tawait fs.mkdir(to, { recursive: true })\n\n\tconst __dirname = dirname(fileURLToPath(import.meta.url))\n\tawait templateDir(\n\t\tresolve(__dirname, `../templates`, opts.templateName),\n\t\tto,\n\t\topts,\n\t)\n}\n\n/**\n * Recursive fs copy, swiped from `create-wmr`:\n * https://github.com/preactjs/wmr/blob/3c5672ecd2f958c8eaf372d33c084dc69228ae3f/packages/create-wmr/src/index.js#L108-L124\n */\nasync function templateDir(\n\tfrom: string,\n\tto: string,\n\topts: CreateAtomOptions,\n): Promise<void[]> {\n\tconst files = await fs.readdir(from)\n\tconst results = await Promise.all(\n\t\tfiles.map(async (f) => {\n\t\t\tif (f === `.` || f === `..`) return\n\t\t\tconst filename = resolve(from, f)\n\t\t\tif ((await fs.stat(filename)).isDirectory()) {\n\t\t\t\tawait fs.mkdir(resolve(to, f), { recursive: true })\n\t\t\t\treturn templateDir(filename, resolve(to, f), opts)\n\t\t\t}\n\t\t\tif (opts.packageManager !== `npm` && f === `README.md`) {\n\t\t\t\tawait fs.writeFile(\n\t\t\t\t\tresolve(to, f),\n\t\t\t\t\t(await fs.readFile(filename, `utf-8`)).replace(\n\t\t\t\t\t\t/npm run/g,\n\t\t\t\t\t\topts.packageManager === `bun` ? `bun run` : opts.packageManager,\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Publishing to npm renames the .gitignore to .npmignore\n\t\t\t// https://github.com/npm/npm/issues/7252#issuecomment-253339460\n\t\t\tif (f === `_gitignore`) f = `.gitignore`\n\t\t\tawait fs.copyFile(filename, resolve(to, f))\n\t\t}),\n\t)\n\treturn results.flat(99)\n}\n\nasync function installDeps(to: string, opts: CreateAtomOptions) {\n\tconst dependencies: string[] = []\n\tconst devDependencies: string[] = []\n\n\tconst installOpts = {\n\t\tpackageManager: opts.packageManager,\n\t\tto,\n\t}\n\n\tawait installPackages(dependencies, { ...installOpts })\n\tdevDependencies.length &&\n\t\t(await installPackages(devDependencies, { ...installOpts, dev: true }))\n}\n\ntype InstallOptions = {\n\tpackageManager: `bun` | `npm` | `pnpm` | `yarn`\n\tto: string\n\tdev?: boolean\n}\n\nfunction installPackages(pkgs: string[], opts: InstallOptions) {\n\treturn x(\n\t\topts.packageManager,\n\t\t[\n\t\t\t// `yarn add` will fail if nothing is provided\n\t\t\topts.packageManager === `yarn` ? (pkgs.length ? `add` : ``) : `install`,\n\t\t\topts.dev ? `-D` : ``,\n\t\t\t...pkgs,\n\t\t].filter(Boolean),\n\t\t{\n\t\t\tnodeOptions: {\n\t\t\t\tstdio: `ignore`,\n\t\t\t\tcwd: opts.to,\n\t\t\t},\n\t\t},\n\t)\n}\n\nfunction getPkgManager(): `bun` | `npm` | `pnpm` | `yarn` {\n\tconst userAgent = process.env[`npm_config_user_agent`] ?? ``\n\tif (userAgent.startsWith(`yarn`)) return `yarn`\n\tif (userAgent.startsWith(`pnpm`)) return `pnpm`\n\tif (userAgent.startsWith(`bun`)) return `bun`\n\treturn `npm`\n}\n"],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Logs
|
|
2
|
-
logs
|
|
3
|
-
*.log
|
|
4
|
-
npm-debug.log*
|
|
5
|
-
yarn-debug.log*
|
|
6
|
-
yarn-error.log*
|
|
7
|
-
pnpm-debug.log*
|
|
8
|
-
lerna-debug.log*
|
|
9
|
-
|
|
10
|
-
node_modules
|
|
11
|
-
dist
|
|
12
|
-
dist-ssr
|
|
13
|
-
*.local
|
|
14
|
-
|
|
15
|
-
# Editor directories and files
|
|
16
|
-
.vscode/*
|
|
17
|
-
!.vscode/extensions.json
|
|
18
|
-
.idea
|
|
19
|
-
.DS_Store
|
|
20
|
-
*.suo
|
|
21
|
-
*.ntvs*
|
|
22
|
-
*.njsproj
|
|
23
|
-
*.sln
|
|
24
|
-
*.sw?
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { default as TypeScriptPlugin } from "@typescript-eslint/eslint-plugin"
|
|
2
|
-
import * as parser from "@typescript-eslint/parser"
|
|
3
|
-
import AtomIOPlugin from "atom.io/eslint-plugin"
|
|
4
|
-
import type { ESLint, Linter } from "eslint"
|
|
5
|
-
import PreactConfig from "eslint-config-preact"
|
|
6
|
-
import * as ImportPlugin from "eslint-plugin-import-x"
|
|
7
|
-
import { default as SimpleImportSortPlugin } from "eslint-plugin-simple-import-sort"
|
|
8
|
-
|
|
9
|
-
const ERROR = 2
|
|
10
|
-
|
|
11
|
-
const parserOptions = {
|
|
12
|
-
project: [`./tsconfig.json`],
|
|
13
|
-
sourceType: `module`,
|
|
14
|
-
} satisfies parser.ParserOptions
|
|
15
|
-
|
|
16
|
-
const commonRules = {
|
|
17
|
-
"@typescript-eslint/adjacent-overload-signatures": ERROR,
|
|
18
|
-
"@typescript-eslint/array-type": 0,
|
|
19
|
-
"@typescript-eslint/await-thenable": 0,
|
|
20
|
-
"@typescript-eslint/ban-ts-comment": ERROR,
|
|
21
|
-
"@typescript-eslint/ban-tslint-comment": 0,
|
|
22
|
-
"@typescript-eslint/class-literal-property-style": ERROR,
|
|
23
|
-
"@typescript-eslint/consistent-generic-constructors": 0,
|
|
24
|
-
"@typescript-eslint/consistent-indexed-object-style": 0,
|
|
25
|
-
"@typescript-eslint/consistent-return": 0,
|
|
26
|
-
"@typescript-eslint/consistent-type-assertions": 0,
|
|
27
|
-
"@typescript-eslint/consistent-type-definitions": 0,
|
|
28
|
-
"@typescript-eslint/consistent-type-exports": ERROR,
|
|
29
|
-
"@typescript-eslint/consistent-type-imports": [
|
|
30
|
-
ERROR,
|
|
31
|
-
{
|
|
32
|
-
fixStyle: `separate-type-imports`,
|
|
33
|
-
prefer: `type-imports`,
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
"@typescript-eslint/default-param-last": ERROR,
|
|
37
|
-
"@typescript-eslint/dot-notation": 0,
|
|
38
|
-
"@typescript-eslint/explicit-function-return-type": 0,
|
|
39
|
-
"@typescript-eslint/explicit-member-accessibility": ERROR,
|
|
40
|
-
"@typescript-eslint/explicit-module-boundary-types": ERROR,
|
|
41
|
-
"@typescript-eslint/init-declarations": 0,
|
|
42
|
-
"@typescript-eslint/max-params": 0,
|
|
43
|
-
"@typescript-eslint/member-ordering": 0,
|
|
44
|
-
"@typescript-eslint/method-signature-style": 0,
|
|
45
|
-
"@typescript-eslint/naming-convention": [
|
|
46
|
-
0,
|
|
47
|
-
{
|
|
48
|
-
selector: `variable`,
|
|
49
|
-
format: [`strictCamelCase`, `StrictPascalCase`, `UPPER_CASE`],
|
|
50
|
-
leadingUnderscore: `allow`,
|
|
51
|
-
trailingUnderscore: `allow`,
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
"@typescript-eslint/no-array-constructor": ERROR,
|
|
55
|
-
"@typescript-eslint/no-array-delete": ERROR,
|
|
56
|
-
"@typescript-eslint/no-base-to-string": ERROR,
|
|
57
|
-
"@typescript-eslint/no-confusing-non-null-assertion": ERROR,
|
|
58
|
-
"@typescript-eslint/no-confusing-void-expression": ERROR,
|
|
59
|
-
"@typescript-eslint/no-duplicate-enum-values": ERROR,
|
|
60
|
-
"@typescript-eslint/no-duplicate-type-constituents": ERROR,
|
|
61
|
-
"@typescript-eslint/no-dynamic-delete": ERROR,
|
|
62
|
-
"@typescript-eslint/no-empty-function": 0,
|
|
63
|
-
"@typescript-eslint/no-empty-interface": ERROR,
|
|
64
|
-
"@typescript-eslint/no-explicit-any": 0,
|
|
65
|
-
"@typescript-eslint/no-extra-non-null-assertion": ERROR,
|
|
66
|
-
"@typescript-eslint/no-extraneous-class": 0,
|
|
67
|
-
"@typescript-eslint/no-floating-promises": ERROR,
|
|
68
|
-
"@typescript-eslint/no-for-in-array": ERROR,
|
|
69
|
-
"@typescript-eslint/no-implied-eval": ERROR,
|
|
70
|
-
"@typescript-eslint/no-import-type-side-effects": ERROR,
|
|
71
|
-
"@typescript-eslint/no-inferrable-types": 0, // not compatible with isolatedDeclarations
|
|
72
|
-
"@typescript-eslint/no-invalid-void-type": 0, // void is good in unions sometimes?
|
|
73
|
-
"@typescript-eslint/no-loop-func": 0,
|
|
74
|
-
"@typescript-eslint/no-loss-of-precision": ERROR,
|
|
75
|
-
"@typescript-eslint/no-magic-numbers": 0,
|
|
76
|
-
"@typescript-eslint/no-meaningless-void-operator": ERROR,
|
|
77
|
-
"@typescript-eslint/no-misused-new": ERROR,
|
|
78
|
-
"@typescript-eslint/no-misused-promises": 0,
|
|
79
|
-
"@typescript-eslint/no-mixed-enums": ERROR,
|
|
80
|
-
"@typescript-eslint/no-namespace": 0,
|
|
81
|
-
"@typescript-eslint/no-non-null-asserted-nullish-coalescing": ERROR,
|
|
82
|
-
"@typescript-eslint/no-non-null-asserted-optional-chain": ERROR,
|
|
83
|
-
"@typescript-eslint/no-non-null-assertion": 0,
|
|
84
|
-
"@typescript-eslint/no-redundant-type-constituents": ERROR,
|
|
85
|
-
"@typescript-eslint/no-require-imports": ERROR,
|
|
86
|
-
"@typescript-eslint/no-restricted-imports": 0,
|
|
87
|
-
"@typescript-eslint/no-shadow": ERROR,
|
|
88
|
-
"@typescript-eslint/no-this-alias": ERROR,
|
|
89
|
-
"@typescript-eslint/no-throw-literal": 0,
|
|
90
|
-
"@typescript-eslint/no-unnecessary-boolean-literal-compare": 0,
|
|
91
|
-
"@typescript-eslint/no-unnecessary-condition": 0,
|
|
92
|
-
"@typescript-eslint/no-unnecessary-qualifier": 0,
|
|
93
|
-
"@typescript-eslint/no-unnecessary-type-arguments": 0,
|
|
94
|
-
"@typescript-eslint/no-unnecessary-type-assertion": ERROR,
|
|
95
|
-
"@typescript-eslint/no-unnecessary-type-constraint": ERROR,
|
|
96
|
-
"@typescript-eslint/no-unnecessary-type-conversion": ERROR,
|
|
97
|
-
"@typescript-eslint/no-unsafe-argument": 0,
|
|
98
|
-
"@typescript-eslint/no-unsafe-assignment": 0,
|
|
99
|
-
"@typescript-eslint/no-unsafe-call": 0,
|
|
100
|
-
"@typescript-eslint/no-unsafe-member-access": 0,
|
|
101
|
-
"@typescript-eslint/no-unsafe-return": 0,
|
|
102
|
-
"@typescript-eslint/no-unsafe-unary-minus": ERROR,
|
|
103
|
-
"@typescript-eslint/no-unused-expressions": 0,
|
|
104
|
-
"@typescript-eslint/no-unused-vars": 0,
|
|
105
|
-
"@typescript-eslint/no-use-before-define": 0,
|
|
106
|
-
"@typescript-eslint/no-useless-constructor": ERROR,
|
|
107
|
-
"@typescript-eslint/no-useless-empty-export": ERROR,
|
|
108
|
-
"@typescript-eslint/no-var-requires": ERROR,
|
|
109
|
-
"@typescript-eslint/non-nullable-type-assertion-style": 0,
|
|
110
|
-
"@typescript-eslint/only-throw-error": ERROR,
|
|
111
|
-
"@typescript-eslint/parameter-properties": 0,
|
|
112
|
-
"@typescript-eslint/prefer-as-const": ERROR,
|
|
113
|
-
"@typescript-eslint/prefer-destructuring": 0,
|
|
114
|
-
"@typescript-eslint/prefer-enum-initializers": ERROR,
|
|
115
|
-
"@typescript-eslint/prefer-find": ERROR,
|
|
116
|
-
"@typescript-eslint/prefer-for-of": ERROR,
|
|
117
|
-
"@typescript-eslint/prefer-function-type": ERROR,
|
|
118
|
-
"@typescript-eslint/prefer-includes": ERROR,
|
|
119
|
-
"@typescript-eslint/prefer-literal-enum-member": ERROR,
|
|
120
|
-
"@typescript-eslint/prefer-namespace-keyword": ERROR,
|
|
121
|
-
"@typescript-eslint/prefer-nullish-coalescing": ERROR,
|
|
122
|
-
"@typescript-eslint/prefer-optional-chain": ERROR,
|
|
123
|
-
"@typescript-eslint/prefer-promise-reject-errors": 0,
|
|
124
|
-
"@typescript-eslint/prefer-readonly": 0,
|
|
125
|
-
"@typescript-eslint/prefer-readonly-parameter-types": 0,
|
|
126
|
-
"@typescript-eslint/prefer-reduce-type-parameter": 0,
|
|
127
|
-
"@typescript-eslint/prefer-regexp-exec": 0,
|
|
128
|
-
"@typescript-eslint/prefer-return-this-type": ERROR,
|
|
129
|
-
"@typescript-eslint/prefer-string-starts-ends-with": ERROR,
|
|
130
|
-
"@typescript-eslint/prefer-ts-expect-error": ERROR,
|
|
131
|
-
"@typescript-eslint/promise-function-async": 0,
|
|
132
|
-
"@typescript-eslint/require-array-sort-compare": 0,
|
|
133
|
-
"@typescript-eslint/require-await": ERROR,
|
|
134
|
-
"@typescript-eslint/restrict-plus-operands": ERROR,
|
|
135
|
-
"@typescript-eslint/restrict-template-expressions": ERROR,
|
|
136
|
-
"@typescript-eslint/return-await": ERROR,
|
|
137
|
-
"@typescript-eslint/sort-type-constituents": ERROR,
|
|
138
|
-
"@typescript-eslint/strict-boolean-expressions": 0,
|
|
139
|
-
"@typescript-eslint/switch-exhaustiveness-check": [
|
|
140
|
-
ERROR,
|
|
141
|
-
{ requireDefaultForNonUnion: true },
|
|
142
|
-
],
|
|
143
|
-
"@typescript-eslint/triple-slash-reference": ERROR,
|
|
144
|
-
"@typescript-eslint/typedef": 0,
|
|
145
|
-
"@typescript-eslint/unbound-method": 0,
|
|
146
|
-
"@typescript-eslint/unified-signatures": ERROR,
|
|
147
|
-
|
|
148
|
-
"atom.io/explicit-state-types": ERROR,
|
|
149
|
-
|
|
150
|
-
"import/newline-after-import": ERROR,
|
|
151
|
-
"import/no-duplicates": ERROR,
|
|
152
|
-
|
|
153
|
-
"simple-import-sort/imports": ERROR,
|
|
154
|
-
"simple-import-sort/exports": ERROR,
|
|
155
|
-
|
|
156
|
-
"no-mixed-spaces-and-tabs": 0,
|
|
157
|
-
"no-duplicate-imports": 0,
|
|
158
|
-
quotes: [ERROR, `backtick`],
|
|
159
|
-
} satisfies Linter.Config[`rules`]
|
|
160
|
-
|
|
161
|
-
const configs: Linter.Config[] = [
|
|
162
|
-
...PreactConfig,
|
|
163
|
-
{
|
|
164
|
-
ignores: [`**/dist/**`, `**/gen/**`, `**/node_modules/**`],
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
languageOptions: { parser, parserOptions },
|
|
168
|
-
files: [`**/*.ts{,x}`, `eslint.config.ts`],
|
|
169
|
-
plugins: {
|
|
170
|
-
"@typescript-eslint": TypeScriptPlugin,
|
|
171
|
-
"atom.io": AtomIOPlugin as ESLint.Plugin,
|
|
172
|
-
import: ImportPlugin,
|
|
173
|
-
"simple-import-sort": SimpleImportSortPlugin,
|
|
174
|
-
},
|
|
175
|
-
rules: commonRules,
|
|
176
|
-
},
|
|
177
|
-
]
|
|
178
|
-
|
|
179
|
-
export default configs
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line quotes
|
|
2
|
-
declare module "eslint-plugin-import-x" {
|
|
3
|
-
import type { ESLint } from "eslint"
|
|
4
|
-
|
|
5
|
-
const plugin: ESLint.Plugin
|
|
6
|
-
export = plugin
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// eslint-disable-next-line quotes
|
|
10
|
-
declare module "eslint-plugin-simple-import-sort" {
|
|
11
|
-
import type { ESLint } from "eslint"
|
|
12
|
-
|
|
13
|
-
const plugin: ESLint.Plugin
|
|
14
|
-
export = plugin
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// eslint-disable-next-line quotes
|
|
18
|
-
declare module "@typescript-eslint/eslint-plugin" {
|
|
19
|
-
import type { ESLint } from "eslint"
|
|
20
|
-
|
|
21
|
-
const plugin: ESLint.Plugin
|
|
22
|
-
export = plugin
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// eslint-disable-next-line quotes
|
|
26
|
-
declare module "eslint-config-preact" {
|
|
27
|
-
import type { Linter } from "eslint"
|
|
28
|
-
|
|
29
|
-
const configs: Linter.Config[]
|
|
30
|
-
export = configs
|
|
31
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<meta name="color-scheme" content="light dark" />
|
|
8
|
-
<title>Vite + Preact + Atom.io</title>
|
|
9
|
-
</head>
|
|
10
|
-
<body>
|
|
11
|
-
<div id="app"></div>
|
|
12
|
-
<script type="module" src="/src/index.tsx"></script>
|
|
13
|
-
</body>
|
|
14
|
-
</html>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
-
|
|
4
|
-
case `uname` in
|
|
5
|
-
*CYGWIN*|*MINGW*|*MSYS*)
|
|
6
|
-
if command -v cygpath > /dev/null 2>&1; then
|
|
7
|
-
basedir=`cygpath -w "$basedir"`
|
|
8
|
-
fi
|
|
9
|
-
;;
|
|
10
|
-
esac
|
|
11
|
-
|
|
12
|
-
if [ -z "$NODE_PATH" ]; then
|
|
13
|
-
export NODE_PATH="/home/runner/work/wayforge/wayforge/node_modules/.pnpm/vite@7.1.12_@types+node@24.10.0_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.93.3_sass@1.93.3_terser@5.44.0_yaml@2.8.1/node_modules/vite/bin/node_modules:/home/runner/work/wayforge/wayforge/node_modules/.pnpm/vite@7.1.12_@types+node@24.10.0_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.93.3_sass@1.93.3_terser@5.44.0_yaml@2.8.1/node_modules/vite/node_modules:/home/runner/work/wayforge/wayforge/node_modules/.pnpm/vite@7.1.12_@types+node@24.10.0_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.93.3_sass@1.93.3_terser@5.44.0_yaml@2.8.1/node_modules:/home/runner/work/wayforge/wayforge/node_modules/.pnpm/node_modules"
|
|
14
|
-
else
|
|
15
|
-
export NODE_PATH="/home/runner/work/wayforge/wayforge/node_modules/.pnpm/vite@7.1.12_@types+node@24.10.0_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.93.3_sass@1.93.3_terser@5.44.0_yaml@2.8.1/node_modules/vite/bin/node_modules:/home/runner/work/wayforge/wayforge/node_modules/.pnpm/vite@7.1.12_@types+node@24.10.0_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.93.3_sass@1.93.3_terser@5.44.0_yaml@2.8.1/node_modules/vite/node_modules:/home/runner/work/wayforge/wayforge/node_modules/.pnpm/vite@7.1.12_@types+node@24.10.0_jiti@2.6.1_lightningcss@1.30.2_sass-embedded@1.93.3_sass@1.93.3_terser@5.44.0_yaml@2.8.1/node_modules:/home/runner/work/wayforge/wayforge/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
|
-
fi
|
|
17
|
-
if [ -x "$basedir/node" ]; then
|
|
18
|
-
exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
|
|
19
|
-
else
|
|
20
|
-
exec node "$basedir/../vite/bin/vite.js" "$@"
|
|
21
|
-
fi
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"private": true,
|
|
3
|
-
"type": "module",
|
|
4
|
-
"scripts": {
|
|
5
|
-
"dev": "vite",
|
|
6
|
-
"build": "vite build",
|
|
7
|
-
"preview": "vite preview"
|
|
8
|
-
},
|
|
9
|
-
"dependencies": {
|
|
10
|
-
"atom.io": "0.44.1",
|
|
11
|
-
"preact": "10.27.2",
|
|
12
|
-
"react": "npm:@preact/compat@18.3.1",
|
|
13
|
-
"react-dom": "npm:@preact/compat@18.3.1"
|
|
14
|
-
},
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@preact/preset-vite": "2.10.2",
|
|
17
|
-
"@typescript-eslint/eslint-plugin": "8.46.3",
|
|
18
|
-
"@typescript-eslint/parser": "8.46.3",
|
|
19
|
-
"eslint-config-preact": "2.0.0",
|
|
20
|
-
"eslint-plugin-import-x": "4.16.1",
|
|
21
|
-
"eslint-plugin-simple-import-sort": "12.1.1",
|
|
22
|
-
"vite": "7.1.12"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="27.68" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 296">
|
|
2
|
-
<path fill="#673AB8" d="m128 0l128 73.9v147.8l-128 73.9L0 221.7V73.9z"></path>
|
|
3
|
-
<path fill="#FFF" d="M34.865 220.478c17.016 21.78 71.095 5.185 122.15-34.704c51.055-39.888 80.24-88.345 63.224-110.126c-17.017-21.78-71.095-5.184-122.15 34.704c-51.055 39.89-80.24 88.346-63.224 110.126Zm7.27-5.68c-5.644-7.222-3.178-21.402 7.573-39.253c11.322-18.797 30.541-39.548 54.06-57.923c23.52-18.375 48.303-32.004 69.281-38.442c19.922-6.113 34.277-5.075 39.92 2.148c5.644 7.223 3.178 21.403-7.573 39.254c-11.322 18.797-30.541 39.547-54.06 57.923c-23.52 18.375-48.304 32.004-69.281 38.441c-19.922 6.114-34.277 5.076-39.92-2.147Z"></path>
|
|
4
|
-
<path fill="#FFF" d="M220.239 220.478c17.017-21.78-12.169-70.237-63.224-110.126C105.96 70.464 51.88 53.868 34.865 75.648c-17.017 21.78 12.169 70.238 63.224 110.126c51.055 39.889 105.133 56.485 122.15 34.704Zm-7.27-5.68c-5.643 7.224-19.998 8.262-39.92 2.148c-20.978-6.437-45.761-20.066-69.28-38.441c-23.52-18.376-42.74-39.126-54.06-57.923c-10.752-17.851-13.218-32.03-7.575-39.254c5.644-7.223 19.999-8.261 39.92-2.148c20.978 6.438 45.762 20.067 69.281 38.442c23.52 18.375 42.739 39.126 54.06 57.923c10.752 17.85 13.218 32.03 7.574 39.254Z"></path>
|
|
5
|
-
<path fill="#FFF" d="M127.552 167.667c10.827 0 19.603-8.777 19.603-19.604c0-10.826-8.776-19.603-19.603-19.603c-10.827 0-19.604 8.777-19.604 19.603c0 10.827 8.777 19.604 19.604 19.604Z"></path>
|
|
6
|
-
</svg>
|