@hanzo/docs-create-app 16.0.50
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/LICENSE +21 -0
- package/README.md +11 -0
- package/dist/auto-install-CenyMuK7.js +33 -0
- package/dist/auto-install-CenyMuK7.js.map +1 -0
- package/dist/bin.d.ts +1 -0
- package/dist/bin.js +165 -0
- package/dist/bin.js.map +1 -0
- package/dist/constants-BkYWkLHa.d.ts +22 -0
- package/dist/constants-BkYWkLHa.d.ts.map +1 -0
- package/dist/constants-CbNzssp2.js +957 -0
- package/dist/constants-CbNzssp2.js.map +1 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/biome.base.d.ts +40 -0
- package/dist/plugins/biome.base.d.ts.map +1 -0
- package/dist/plugins/biome.base.js +38 -0
- package/dist/plugins/biome.base.js.map +1 -0
- package/dist/plugins/biome.d.ts +7 -0
- package/dist/plugins/biome.d.ts.map +1 -0
- package/dist/plugins/biome.js +33 -0
- package/dist/plugins/biome.js.map +1 -0
- package/dist/plugins/biome.next.d.ts +41 -0
- package/dist/plugins/biome.next.d.ts.map +1 -0
- package/dist/plugins/biome.next.js +44 -0
- package/dist/plugins/biome.next.js.map +1 -0
- package/dist/plugins/eslint.d.ts +7 -0
- package/dist/plugins/eslint.d.ts.map +1 -0
- package/dist/plugins/eslint.js +47 -0
- package/dist/plugins/eslint.js.map +1 -0
- package/dist/plugins/next-use-src.d.ts +10 -0
- package/dist/plugins/next-use-src.d.ts.map +1 -0
- package/dist/plugins/next-use-src.js +37 -0
- package/dist/plugins/next-use-src.js.map +1 -0
- package/dist/plugins/orama-cloud.d.ts +7 -0
- package/dist/plugins/orama-cloud.d.ts.map +1 -0
- package/dist/plugins/orama-cloud.js +296 -0
- package/dist/plugins/orama-cloud.js.map +1 -0
- package/package.json +63 -0
- package/template/+next+fuma-docs-mdx/app/(home)/layout.tsx +6 -0
- package/template/+next+fuma-docs-mdx/app/(home)/page.tsx +16 -0
- package/template/+next+fuma-docs-mdx/app/api/search/route.ts +7 -0
- package/template/+next+fuma-docs-mdx/app/docs/[[...slug]]/page.tsx +57 -0
- package/template/+next+fuma-docs-mdx/app/docs/layout.tsx +11 -0
- package/template/+next+fuma-docs-mdx/app/global.css +3 -0
- package/template/+next+fuma-docs-mdx/app/layout.tsx +17 -0
- package/template/+next+fuma-docs-mdx/app/llms-full.txt/route.ts +10 -0
- package/template/+next+fuma-docs-mdx/app/llms.mdx/docs/[[...slug]]/route.ts +20 -0
- package/template/+next+fuma-docs-mdx/app/llms.txt/route.ts +13 -0
- package/template/+next+fuma-docs-mdx/app/og/docs/[...slug]/route.tsx +27 -0
- package/template/+next+fuma-docs-mdx/components/ai/page-actions.tsx +240 -0
- package/template/+next+fuma-docs-mdx/content/docs/index.mdx +13 -0
- package/template/+next+fuma-docs-mdx/content/docs/test.mdx +17 -0
- package/template/+next+fuma-docs-mdx/example.gitignore +26 -0
- package/template/+next+fuma-docs-mdx/lib/cn.ts +1 -0
- package/template/+next+fuma-docs-mdx/lib/layout.shared.tsx +17 -0
- package/template/+next+fuma-docs-mdx/lib/source.ts +27 -0
- package/template/+next+fuma-docs-mdx/mdx-components.tsx +9 -0
- package/template/+next+fuma-docs-mdx/next.config.mjs +18 -0
- package/template/+next+fuma-docs-mdx/package.json +31 -0
- package/template/+next+fuma-docs-mdx/postcss.config.mjs +7 -0
- package/template/+next+fuma-docs-mdx/source.config.ts +23 -0
- package/template/+next+fuma-docs-mdx/tsconfig.json +36 -0
- package/template/+next+fuma-docs-mdx+static/README.md +45 -0
- package/template/+next+fuma-docs-mdx+static/app/(home)/layout.tsx +6 -0
- package/template/+next+fuma-docs-mdx+static/app/(home)/page.tsx +16 -0
- package/template/+next+fuma-docs-mdx+static/app/api/search/route.ts +9 -0
- package/template/+next+fuma-docs-mdx+static/app/docs/[[...slug]]/page.tsx +47 -0
- package/template/+next+fuma-docs-mdx+static/app/docs/layout.tsx +11 -0
- package/template/+next+fuma-docs-mdx+static/app/global.css +3 -0
- package/template/+next+fuma-docs-mdx+static/app/layout.tsx +17 -0
- package/template/+next+fuma-docs-mdx+static/app/llms-full.txt/route.ts +10 -0
- package/template/+next+fuma-docs-mdx+static/app/og/docs/[...slug]/route.tsx +27 -0
- package/template/+next+fuma-docs-mdx+static/components/provider.tsx +8 -0
- package/template/+next+fuma-docs-mdx+static/components/search.tsx +46 -0
- package/template/+next+fuma-docs-mdx+static/content/docs/index.mdx +13 -0
- package/template/+next+fuma-docs-mdx+static/content/docs/test.mdx +17 -0
- package/template/+next+fuma-docs-mdx+static/example.gitignore +26 -0
- package/template/+next+fuma-docs-mdx+static/lib/layout.shared.tsx +9 -0
- package/template/+next+fuma-docs-mdx+static/lib/source.ts +26 -0
- package/template/+next+fuma-docs-mdx+static/mdx-components.tsx +9 -0
- package/template/+next+fuma-docs-mdx+static/next.config.mjs +11 -0
- package/template/+next+fuma-docs-mdx+static/package.json +32 -0
- package/template/+next+fuma-docs-mdx+static/postcss.config.mjs +7 -0
- package/template/+next+fuma-docs-mdx+static/source.config.ts +23 -0
- package/template/+next+fuma-docs-mdx+static/tsconfig.json +36 -0
- package/template/+next+hanzo-docs-mdx/README.md +43 -0
- package/template/+next+hanzo-docs-mdx/app/(home)/layout.tsx +6 -0
- package/template/+next+hanzo-docs-mdx/app/(home)/page.tsx +16 -0
- package/template/+next+hanzo-docs-mdx/app/api/search/route.ts +7 -0
- package/template/+next+hanzo-docs-mdx/app/docs/[[...slug]]/page.tsx +61 -0
- package/template/+next+hanzo-docs-mdx/app/docs/layout.tsx +11 -0
- package/template/+next+hanzo-docs-mdx/app/global.css +3 -0
- package/template/+next+hanzo-docs-mdx/app/layout.tsx +17 -0
- package/template/+next+hanzo-docs-mdx/app/llms-full.txt/route.ts +10 -0
- package/template/+next+hanzo-docs-mdx/app/og/docs/[...slug]/route.tsx +27 -0
- package/template/+next+hanzo-docs-mdx/content/docs/index.mdx +13 -0
- package/template/+next+hanzo-docs-mdx/content/docs/test.mdx +17 -0
- package/template/+next+hanzo-docs-mdx/example.gitignore +26 -0
- package/template/+next+hanzo-docs-mdx/lib/cn.ts +1 -0
- package/template/+next+hanzo-docs-mdx/lib/layout.shared.tsx +9 -0
- package/template/+next+hanzo-docs-mdx/lib/source.ts +27 -0
- package/template/+next+hanzo-docs-mdx/mdx-components.tsx +9 -0
- package/template/+next+hanzo-docs-mdx/next.config.mjs +18 -0
- package/template/+next+hanzo-docs-mdx/package.json +31 -0
- package/template/+next+hanzo-docs-mdx/postcss.config.mjs +5 -0
- package/template/+next+hanzo-docs-mdx/source.config.ts +23 -0
- package/template/+next+hanzo-docs-mdx/tsconfig.json +36 -0
- package/template/+orama-cloud/@app/components/search.tsx +54 -0
- package/template/+orama-cloud/@app/lib/export-static-indexes.ts +14 -0
- package/template/+orama-cloud/@root/.env.example +6 -0
- package/template/react-router/README.md +12 -0
- package/template/react-router/app/app.css +3 -0
- package/template/react-router/app/docs/page.tsx +51 -0
- package/template/react-router/app/docs/search.ts +12 -0
- package/template/react-router/app/lib/layout.shared.tsx +9 -0
- package/template/react-router/app/lib/source.ts +7 -0
- package/template/react-router/app/root.tsx +73 -0
- package/template/react-router/app/routes/home.tsx +30 -0
- package/template/react-router/app/routes.ts +7 -0
- package/template/react-router/content/docs/index.mdx +32 -0
- package/template/react-router/content/docs/meta.json +3 -0
- package/template/react-router/content/docs/test.mdx +24 -0
- package/template/react-router/example.gitignore +7 -0
- package/template/react-router/package.json +35 -0
- package/template/react-router/public/favicon.ico +0 -0
- package/template/react-router/react-router.config.ts +23 -0
- package/template/react-router/source.config.ts +7 -0
- package/template/react-router/tsconfig.json +23 -0
- package/template/react-router/vite.config.ts +17 -0
- package/template/react-router-spa/README.md +12 -0
- package/template/react-router-spa/app/app.css +3 -0
- package/template/react-router-spa/app/components/search.tsx +45 -0
- package/template/react-router-spa/app/docs/page.tsx +53 -0
- package/template/react-router-spa/app/docs/search.ts +10 -0
- package/template/react-router-spa/app/lib/layout.shared.tsx +9 -0
- package/template/react-router-spa/app/lib/source.ts +7 -0
- package/template/react-router-spa/app/root.tsx +74 -0
- package/template/react-router-spa/app/routes/home.tsx +30 -0
- package/template/react-router-spa/app/routes.ts +7 -0
- package/template/react-router-spa/content/docs/index.mdx +32 -0
- package/template/react-router-spa/content/docs/test.mdx +24 -0
- package/template/react-router-spa/example.gitignore +7 -0
- package/template/react-router-spa/package.json +36 -0
- package/template/react-router-spa/public/favicon.ico +0 -0
- package/template/react-router-spa/react-router.config.ts +23 -0
- package/template/react-router-spa/serve.json +3 -0
- package/template/react-router-spa/source.config.ts +7 -0
- package/template/react-router-spa/tsconfig.json +23 -0
- package/template/react-router-spa/vite.config.ts +17 -0
- package/template/tanstack-start/README.md +12 -0
- package/template/tanstack-start/content/docs/index.mdx +31 -0
- package/template/tanstack-start/content/docs/test.mdx +12 -0
- package/template/tanstack-start/example.gitignore +18 -0
- package/template/tanstack-start/package.json +38 -0
- package/template/tanstack-start/source.config.ts +7 -0
- package/template/tanstack-start/src/components/not-found.tsx +28 -0
- package/template/tanstack-start/src/lib/layout.shared.tsx +9 -0
- package/template/tanstack-start/src/lib/source.ts +9 -0
- package/template/tanstack-start/src/router.tsx +12 -0
- package/template/tanstack-start/src/routes/__root.tsx +45 -0
- package/template/tanstack-start/src/routes/api/search.ts +16 -0
- package/template/tanstack-start/src/routes/docs/$.tsx +72 -0
- package/template/tanstack-start/src/routes/index.tsx +26 -0
- package/template/tanstack-start/src/styles/app.css +3 -0
- package/template/tanstack-start/tsconfig.json +24 -0
- package/template/tanstack-start/vite.config.ts +33 -0
- package/template/tanstack-start-spa/README.md +12 -0
- package/template/tanstack-start-spa/content/docs/index.mdx +31 -0
- package/template/tanstack-start-spa/content/docs/test.mdx +12 -0
- package/template/tanstack-start-spa/example.gitignore +18 -0
- package/template/tanstack-start-spa/package.json +41 -0
- package/template/tanstack-start-spa/source.config.ts +7 -0
- package/template/tanstack-start-spa/src/components/not-found.tsx +28 -0
- package/template/tanstack-start-spa/src/components/search.tsx +46 -0
- package/template/tanstack-start-spa/src/lib/layout.shared.tsx +9 -0
- package/template/tanstack-start-spa/src/lib/source.ts +9 -0
- package/template/tanstack-start-spa/src/router.tsx +12 -0
- package/template/tanstack-start-spa/src/routes/__root.tsx +46 -0
- package/template/tanstack-start-spa/src/routes/api/search.ts +16 -0
- package/template/tanstack-start-spa/src/routes/docs/$.tsx +74 -0
- package/template/tanstack-start-spa/src/routes/index.tsx +26 -0
- package/template/tanstack-start-spa/src/styles/app.css +3 -0
- package/template/tanstack-start-spa/tsconfig.json +24 -0
- package/template/tanstack-start-spa/vite.config.ts +42 -0
- package/template/waku/README.md +11 -0
- package/template/waku/content/docs/index.mdx +31 -0
- package/template/waku/content/docs/test.mdx +12 -0
- package/template/waku/example.gitignore +6 -0
- package/template/waku/package.json +33 -0
- package/template/waku/source.config.ts +7 -0
- package/template/waku/src/components/provider.tsx +7 -0
- package/template/waku/src/lib/layout.shared.tsx +9 -0
- package/template/waku/src/lib/source.ts +9 -0
- package/template/waku/src/pages/(home)/_layout.tsx +7 -0
- package/template/waku/src/pages/(home)/index.tsx +21 -0
- package/template/waku/src/pages/_api/api/search.ts +4 -0
- package/template/waku/src/pages/_root.tsx +20 -0
- package/template/waku/src/pages/docs/[...slugs].tsx +45 -0
- package/template/waku/src/pages/docs/_layout.tsx +12 -0
- package/template/waku/src/styles/globals.css +9 -0
- package/template/waku/tsconfig.json +25 -0
- package/template/waku/waku.config.ts +17 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants-CbNzssp2.js","names":["corePkg","mdxPkg","radixPkg","basePkg","versionPkg.dependencies"],"sources":["../src/utils.ts","../../create-app-versions/package.json","../../core/package.json","../../mdx/package.json","../../radix-ui/package.json","../../base-ui/package.json","../src/constants.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path, { join } from 'node:path';\nimport { x } from 'tinyexec';\n\nexport async function writeFile(file: string, content: string) {\n await fs.mkdir(path.dirname(file), { recursive: true });\n await fs.writeFile(file, content);\n}\n\nexport async function copy(\n from: string,\n to: string,\n options: {\n rename?: (s: string) => string;\n filter?: (s: string) => boolean;\n filterDir?: (dir: string) => boolean;\n } = {},\n): Promise<void> {\n const { rename = (s) => s, filterDir = () => true, filter = () => true } = options;\n const stats = await fs.stat(from);\n\n if (stats.isDirectory() && filterDir(from)) {\n const files = await fs.readdir(from);\n\n await Promise.all(\n files.map((file) => copy(path.join(from, file), path.join(to, file), options)),\n );\n }\n\n if (stats.isFile() && filter(from)) {\n to = rename(to);\n await fs.mkdir(path.dirname(to), { recursive: true });\n await fs.copyFile(from, to);\n }\n}\n\nasync function isInGitRepository(cwd: string) {\n const { exitCode } = await x('git', ['rev-parse', '--is-inside-work-tree'], {\n nodeOptions: { cwd },\n });\n\n return exitCode === 0;\n}\n\nasync function isDefaultBranchSet(cwd: string) {\n const { exitCode } = await x('git', ['config', 'init.defaultBranch'], {\n nodeOptions: { cwd },\n });\n\n return exitCode === 0;\n}\n\n/*\nInitialize a Git repo on the project.\n\nBased on https://github.com/vercel/next.js/blob/canary/packages/create-next-app/helpers/git.ts\n*/\nexport async function tryGitInit(cwd: string): Promise<boolean> {\n const { exitCode } = await x('git', ['--version']);\n if (exitCode !== 0) return false;\n\n if (await isInGitRepository(cwd)) return false;\n\n try {\n await x('git', ['init'], {\n throwOnError: true,\n nodeOptions: { cwd },\n });\n\n if (!(await isDefaultBranchSet(cwd))) {\n await x('git', ['checkout', '-b', 'main'], {\n throwOnError: true,\n nodeOptions: {\n cwd,\n },\n });\n }\n\n await x('git', ['add', '-A'], {\n throwOnError: true,\n nodeOptions: {\n cwd,\n },\n });\n\n await x('git', ['commit', '-m', 'Initial commit from Create Hanzo Docs App'], {\n throwOnError: true,\n nodeOptions: {\n cwd,\n },\n });\n return true;\n } catch {\n await fs.rm(join(cwd, '.git'), { recursive: true, force: true });\n\n return false;\n }\n}\n\nexport function pick<T extends object, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {\n const result: Partial<T> = {};\n\n for (const key of keys) {\n if (key in obj) {\n result[key] = obj[key];\n }\n }\n\n return result as Pick<T, K>;\n}\n","","","","","","import { fileURLToPath } from 'node:url';\nimport versionPkg from '../../create-app-versions/package.json';\nimport * as corePkg from '../../core/package.json';\nimport * as mdxPkg from '../../mdx/package.json';\nimport * as radixPkg from '../../radix-ui/package.json';\nimport * as basePkg from '../../base-ui/package.json';\n\nexport const sourceDir = fileURLToPath(new URL(`../`, import.meta.url).href);\n\nexport const isCI = Boolean(process.env.CI);\n\nexport interface TemplateInfo {\n value:\n | '+next+fuma-docs-mdx'\n | 'waku'\n | 'react-router'\n | 'react-router-spa'\n | 'tanstack-start'\n | 'tanstack-start-spa'\n | '+next+fuma-docs-mdx+static';\n label: string;\n appDir: string;\n /**\n * path to root provider, relative to `appDir``\n */\n rootProviderPath: string;\n hint?: string;\n /**\n * rename files when copying from template\n */\n rename?: (name: string) => string;\n}\n\nexport const templates: TemplateInfo[] = [\n {\n value: '+next+fuma-docs-mdx',\n label: 'Next.js: Hanzo Docs MDX',\n hint: 'recommended',\n appDir: '',\n rootProviderPath: 'app/layout.tsx',\n },\n {\n value: '+next+fuma-docs-mdx+static',\n label: 'Next.js Static: Hanzo Docs MDX',\n appDir: '',\n rootProviderPath: 'components/provider.tsx',\n },\n {\n value: 'waku',\n label: 'Waku: Hanzo Docs MDX',\n appDir: 'src',\n rootProviderPath: 'components/provider.tsx',\n },\n {\n value: 'react-router',\n label: 'React Router: Hanzo Docs MDX (not RSC)',\n appDir: 'app',\n rootProviderPath: 'root.tsx',\n },\n {\n value: 'react-router-spa',\n label: 'React Router SPA: Hanzo Docs MDX (not RSC)',\n hint: 'SPA mode allows you to host the site statically, compatible with a CDN.',\n appDir: 'app',\n rootProviderPath: 'root.tsx',\n },\n {\n value: 'tanstack-start',\n label: 'Tanstack Start: Hanzo Docs MDX (not RSC)',\n appDir: 'src',\n rootProviderPath: 'routes/__root.tsx',\n },\n {\n value: 'tanstack-start-spa',\n label: 'Tanstack Start SPA: Hanzo Docs MDX (not RSC)',\n hint: 'SPA mode allows you to host the site statically, compatible with a CDN.',\n appDir: 'src',\n rootProviderPath: 'routes/__root.tsx',\n },\n];\n\nconst workspaces = [corePkg, mdxPkg, radixPkg, basePkg];\n\nexport const depVersions = versionPkg.dependencies;\n\nfor (const workspace of workspaces) {\n depVersions[workspace.name as keyof typeof depVersions] = workspace.version;\n}\n"],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { n as PackageManager, t as TemplateInfo } from "./constants-BkYWkLHa.js";
|
|
2
|
+
|
|
3
|
+
//#region src/index.d.ts
|
|
4
|
+
type Template = TemplateInfo['value'];
|
|
5
|
+
interface Options {
|
|
6
|
+
outputDir: string;
|
|
7
|
+
template: Template;
|
|
8
|
+
/**
|
|
9
|
+
* the package manager to use
|
|
10
|
+
*
|
|
11
|
+
* @defaultValue 'npm'
|
|
12
|
+
*/
|
|
13
|
+
packageManager?: PackageManager;
|
|
14
|
+
installDeps?: boolean;
|
|
15
|
+
initializeGit?: boolean;
|
|
16
|
+
log?: (message: string) => void;
|
|
17
|
+
plugins?: TemplatePlugin[];
|
|
18
|
+
}
|
|
19
|
+
interface TemplatePluginContext {
|
|
20
|
+
template: TemplateInfo;
|
|
21
|
+
log: (message: string) => void;
|
|
22
|
+
/**
|
|
23
|
+
* output directory
|
|
24
|
+
*/
|
|
25
|
+
dest: string;
|
|
26
|
+
/**
|
|
27
|
+
* output directory for app code (e.g. under `/src`)
|
|
28
|
+
*/
|
|
29
|
+
appDir: string;
|
|
30
|
+
}
|
|
31
|
+
type PackageJsonType = {
|
|
32
|
+
name?: string;
|
|
33
|
+
version?: string;
|
|
34
|
+
private?: boolean;
|
|
35
|
+
scripts?: Record<string, string>;
|
|
36
|
+
dependencies?: Record<string, string>;
|
|
37
|
+
devDependencies?: Record<string, string>;
|
|
38
|
+
} & Record<string, unknown>;
|
|
39
|
+
type Awaitable<T> = T | Promise<T>;
|
|
40
|
+
interface TemplatePlugin {
|
|
41
|
+
template?: (this: Pick<TemplatePluginContext, 'dest'>, info: TemplateInfo) => Awaitable<void | TemplateInfo>;
|
|
42
|
+
packageJson?: (this: TemplatePluginContext, packageJson: PackageJsonType) => Awaitable<void | PackageJsonType>;
|
|
43
|
+
afterWrite?: (this: TemplatePluginContext) => Awaitable<void>;
|
|
44
|
+
readme?: (this: TemplatePluginContext, content: string) => Awaitable<void | string>;
|
|
45
|
+
}
|
|
46
|
+
declare function create(createOptions: Options): Promise<void>;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { Options, PackageJsonType, Template, TemplatePlugin, TemplatePluginContext, create };
|
|
49
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":";;;KAOY,QAAA,GAAW,YAAA;AAAA,UACN,OAAA;EACf,SAAA;EACA,QAAA,EAAU,QAAA;EAHW;;AACvB;;;EASE,cAAA,GAAiB,cAAA;EAEjB,WAAA;EACA,aAAA;EACA,GAAA,IAAO,OAAA;EACP,OAAA,GAAU,cAAA;AAAA;AAAA,UAGK,qBAAA;EACf,QAAA,EAAU,YAAA;EACV,GAAA,GAAM,OAAA;EAVW;;;EAcjB,IAAA;EAVO;;;EAeP,MAAA;AAAA;AAAA,KAGU,eAAA;EACV,IAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA,GAAU,MAAA;EACV,YAAA,GAAe,MAAA;EACf,eAAA,GAAkB,MAAA;AAAA,IAChB,MAAA;AAAA,KAEC,SAAA,MAAe,CAAA,GAAI,OAAA,CAAQ,CAAA;AAAA,UAEf,cAAA;EACf,QAAA,IACE,IAAA,EAAM,IAAA,CAAK,qBAAA,WACX,IAAA,EAAM,YAAA,KACH,SAAA,QAAiB,YAAA;EACtB,WAAA,IACE,IAAA,EAAM,qBAAA,EACN,WAAA,EAAa,eAAA,KACV,SAAA,QAAiB,eAAA;EACtB,UAAA,IAAc,IAAA,EAAM,qBAAA,KAA0B,SAAA;EAC9C,MAAA,IAAU,IAAA,EAAM,qBAAA,EAAuB,OAAA,aAAoB,SAAA;AAAA;AAAA,iBAGvC,MAAA,CAAO,aAAA,EAAe,OAAA,GAAU,OAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { a as copy, i as templates, r as sourceDir, s as tryGitInit, t as depVersions } from "./constants-CbNzssp2.js";
|
|
2
|
+
import { t as autoInstall } from "./auto-install-CenyMuK7.js";
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
|
|
6
|
+
//#region src/index.ts
|
|
7
|
+
async function create(createOptions) {
|
|
8
|
+
const { outputDir, plugins = [], packageManager = "npm", initializeGit = false, installDeps = false, log = console.log } = createOptions;
|
|
9
|
+
let template = templates.find((item) => item.value === createOptions.template);
|
|
10
|
+
for (const plugin of plugins) template = await plugin.template?.call({ dest: outputDir }, template) ?? template;
|
|
11
|
+
const appDir = path.join(outputDir, template.appDir);
|
|
12
|
+
const projectName = path.basename(outputDir);
|
|
13
|
+
const pluginContext = {
|
|
14
|
+
template,
|
|
15
|
+
dest: outputDir,
|
|
16
|
+
log,
|
|
17
|
+
appDir
|
|
18
|
+
};
|
|
19
|
+
await copy(path.join(sourceDir, "template", template.value), outputDir, { rename(file) {
|
|
20
|
+
file = file.replace("example.gitignore", ".gitignore");
|
|
21
|
+
return template.rename?.(file) ?? file;
|
|
22
|
+
} });
|
|
23
|
+
const packageJsonPath = path.join(outputDir, "package.json");
|
|
24
|
+
let packageJson = await initPackageJson(projectName, packageJsonPath);
|
|
25
|
+
for (const plugin of plugins) packageJson = await plugin.packageJson?.call(pluginContext, packageJson) ?? packageJson;
|
|
26
|
+
await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
|
27
|
+
const readmePath = path.join(outputDir, "README.md");
|
|
28
|
+
let readme = `# ${projectName}\n\n${await fs.readFile(readmePath)}`;
|
|
29
|
+
for (const plugin of plugins) readme = await plugin.readme?.call(pluginContext, readme) ?? readme;
|
|
30
|
+
await fs.writeFile(readmePath, readme);
|
|
31
|
+
for (const plugin of plugins) await plugin.afterWrite?.call(pluginContext);
|
|
32
|
+
if (installDeps) try {
|
|
33
|
+
await autoInstall(packageManager, outputDir);
|
|
34
|
+
log("Installed dependencies");
|
|
35
|
+
} catch (err) {
|
|
36
|
+
log(`Failed to install dependencies: ${err}`);
|
|
37
|
+
}
|
|
38
|
+
if (initializeGit && await tryGitInit(outputDir)) log("Initialized Git repository");
|
|
39
|
+
}
|
|
40
|
+
async function initPackageJson(projectName, packageJsonPath) {
|
|
41
|
+
function replaceWorkspaceDeps(deps = {}) {
|
|
42
|
+
for (const k in deps) if (deps[k].startsWith("workspace:") && k in depVersions) deps[k] = depVersions[k];
|
|
43
|
+
return deps;
|
|
44
|
+
}
|
|
45
|
+
const packageJson = JSON.parse((await fs.readFile(packageJsonPath)).toString());
|
|
46
|
+
return {
|
|
47
|
+
...packageJson,
|
|
48
|
+
name: projectName,
|
|
49
|
+
scripts: {
|
|
50
|
+
...packageJson.scripts,
|
|
51
|
+
postinstall: "@hanzo/docs/mdx"
|
|
52
|
+
},
|
|
53
|
+
dependencies: replaceWorkspaceDeps(packageJson.dependencies),
|
|
54
|
+
devDependencies: replaceWorkspaceDeps(packageJson.devDependencies)
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
export { create };
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import path from 'node:path';\nimport fs from 'node:fs/promises';\nimport { copy, tryGitInit } from '@/utils';\nimport type { PackageManager } from './auto-install';\nimport { autoInstall } from './auto-install';\nimport { depVersions, sourceDir, type TemplateInfo, templates } from './constants';\n\nexport type Template = TemplateInfo['value'];\nexport interface Options {\n outputDir: string;\n template: Template;\n\n /**\n * the package manager to use\n *\n * @defaultValue 'npm'\n */\n packageManager?: PackageManager;\n\n installDeps?: boolean;\n initializeGit?: boolean;\n log?: (message: string) => void;\n plugins?: TemplatePlugin[];\n}\n\nexport interface TemplatePluginContext {\n template: TemplateInfo;\n log: (message: string) => void;\n /**\n * output directory\n */\n dest: string;\n\n /**\n * output directory for app code (e.g. under `/src`)\n */\n appDir: string;\n}\n\nexport type PackageJsonType = {\n name?: string;\n version?: string;\n private?: boolean;\n scripts?: Record<string, string>;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n} & Record<string, unknown>;\n\ntype Awaitable<T> = T | Promise<T>;\n\nexport interface TemplatePlugin {\n template?: (\n this: Pick<TemplatePluginContext, 'dest'>,\n info: TemplateInfo,\n ) => Awaitable<void | TemplateInfo>;\n packageJson?: (\n this: TemplatePluginContext,\n packageJson: PackageJsonType,\n ) => Awaitable<void | PackageJsonType>;\n afterWrite?: (this: TemplatePluginContext) => Awaitable<void>;\n readme?: (this: TemplatePluginContext, content: string) => Awaitable<void | string>;\n}\n\nexport async function create(createOptions: Options): Promise<void> {\n const {\n outputDir,\n plugins = [],\n packageManager = 'npm',\n initializeGit = false,\n installDeps = false,\n log = console.log,\n } = createOptions;\n\n let template = templates.find((item) => item.value === createOptions.template)!;\n for (const plugin of plugins) {\n template = (await plugin.template?.call({ dest: outputDir }, template)) ?? template;\n }\n\n const appDir = path.join(outputDir, template.appDir);\n const projectName = path.basename(outputDir);\n const pluginContext: TemplatePluginContext = {\n template,\n dest: outputDir,\n log,\n appDir,\n };\n\n await copy(path.join(sourceDir, 'template', template.value), outputDir, {\n rename(file) {\n file = file.replace('example.gitignore', '.gitignore');\n\n return template.rename?.(file) ?? file;\n },\n });\n\n const packageJsonPath = path.join(outputDir, 'package.json');\n let packageJson = await initPackageJson(projectName, packageJsonPath);\n for (const plugin of plugins) {\n packageJson = (await plugin.packageJson?.call(pluginContext, packageJson)) ?? packageJson;\n }\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));\n\n const readmePath = path.join(outputDir, 'README.md');\n let readme = `# ${projectName}\\n\\n${await fs.readFile(readmePath)}`;\n for (const plugin of plugins) {\n readme = (await plugin.readme?.call(pluginContext, readme)) ?? readme;\n }\n await fs.writeFile(readmePath, readme);\n\n for (const plugin of plugins) {\n await plugin.afterWrite?.call(pluginContext);\n }\n\n if (installDeps) {\n try {\n await autoInstall(packageManager, outputDir);\n log('Installed dependencies');\n } catch (err) {\n log(`Failed to install dependencies: ${err}`);\n }\n }\n\n if (initializeGit && (await tryGitInit(outputDir))) {\n log('Initialized Git repository');\n }\n}\n\nasync function initPackageJson(\n projectName: string,\n packageJsonPath: string,\n): Promise<PackageJsonType> {\n function replaceWorkspaceDeps(deps: Record<string, string> = {}) {\n for (const k in deps) {\n if (deps[k].startsWith('workspace:') && k in depVersions) {\n deps[k] = depVersions[k as keyof typeof depVersions];\n }\n }\n\n return deps;\n }\n\n const packageJson: PackageJsonType = JSON.parse((await fs.readFile(packageJsonPath)).toString());\n\n return {\n ...packageJson,\n name: projectName,\n scripts: {\n ...packageJson.scripts,\n postinstall: '@hanzo/docs/mdx',\n },\n dependencies: replaceWorkspaceDeps(packageJson.dependencies),\n devDependencies: replaceWorkspaceDeps(packageJson.devDependencies),\n };\n}\n"],"mappings":";;;;;;AA+DA,eAAsB,OAAO,eAAuC;CAClE,MAAM,EACJ,WACA,UAAU,EAAE,EACZ,iBAAiB,OACjB,gBAAgB,OAChB,cAAc,OACd,MAAM,QAAQ,QACZ;CAEJ,IAAI,WAAW,UAAU,MAAM,SAAS,KAAK,UAAU,cAAc,SAAS;AAC9E,MAAK,MAAM,UAAU,QACnB,YAAY,MAAM,OAAO,UAAU,KAAK,EAAE,MAAM,WAAW,EAAE,SAAS,IAAK;CAG7E,MAAM,SAAS,KAAK,KAAK,WAAW,SAAS,OAAO;CACpD,MAAM,cAAc,KAAK,SAAS,UAAU;CAC5C,MAAM,gBAAuC;EAC3C;EACA,MAAM;EACN;EACA;EACD;AAED,OAAM,KAAK,KAAK,KAAK,WAAW,YAAY,SAAS,MAAM,EAAE,WAAW,EACtE,OAAO,MAAM;AACX,SAAO,KAAK,QAAQ,qBAAqB,aAAa;AAEtD,SAAO,SAAS,SAAS,KAAK,IAAI;IAErC,CAAC;CAEF,MAAM,kBAAkB,KAAK,KAAK,WAAW,eAAe;CAC5D,IAAI,cAAc,MAAM,gBAAgB,aAAa,gBAAgB;AACrE,MAAK,MAAM,UAAU,QACnB,eAAe,MAAM,OAAO,aAAa,KAAK,eAAe,YAAY,IAAK;AAEhF,OAAM,GAAG,UAAU,iBAAiB,KAAK,UAAU,aAAa,MAAM,EAAE,CAAC;CAEzE,MAAM,aAAa,KAAK,KAAK,WAAW,YAAY;CACpD,IAAI,SAAS,KAAK,YAAY,MAAM,MAAM,GAAG,SAAS,WAAW;AACjE,MAAK,MAAM,UAAU,QACnB,UAAU,MAAM,OAAO,QAAQ,KAAK,eAAe,OAAO,IAAK;AAEjE,OAAM,GAAG,UAAU,YAAY,OAAO;AAEtC,MAAK,MAAM,UAAU,QACnB,OAAM,OAAO,YAAY,KAAK,cAAc;AAG9C,KAAI,YACF,KAAI;AACF,QAAM,YAAY,gBAAgB,UAAU;AAC5C,MAAI,yBAAyB;UACtB,KAAK;AACZ,MAAI,mCAAmC,MAAM;;AAIjD,KAAI,iBAAkB,MAAM,WAAW,UAAU,CAC/C,KAAI,6BAA6B;;AAIrC,eAAe,gBACb,aACA,iBAC0B;CAC1B,SAAS,qBAAqB,OAA+B,EAAE,EAAE;AAC/D,OAAK,MAAM,KAAK,KACd,KAAI,KAAK,GAAG,WAAW,aAAa,IAAI,KAAK,YAC3C,MAAK,KAAK,YAAY;AAI1B,SAAO;;CAGT,MAAM,cAA+B,KAAK,OAAO,MAAM,GAAG,SAAS,gBAAgB,EAAE,UAAU,CAAC;AAEhG,QAAO;EACL,GAAG;EACH,MAAM;EACN,SAAS;GACP,GAAG,YAAY;GACf,aAAa;GACd;EACD,cAAc,qBAAqB,YAAY,aAAa;EAC5D,iBAAiB,qBAAqB,YAAY,gBAAgB;EACnE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
//#region src/plugins/biome.base.json.d.ts
|
|
2
|
+
declare let $schema: string;
|
|
3
|
+
declare namespace vcs {
|
|
4
|
+
let enabled: boolean;
|
|
5
|
+
let clientKind: string;
|
|
6
|
+
let useIgnoreFile: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare namespace files {
|
|
9
|
+
let ignoreUnknown: boolean;
|
|
10
|
+
let includes: string[];
|
|
11
|
+
}
|
|
12
|
+
declare namespace formatter {
|
|
13
|
+
let enabled_1: boolean;
|
|
14
|
+
export { enabled_1 as enabled };
|
|
15
|
+
export let indentStyle: string;
|
|
16
|
+
export let indentWidth: number;
|
|
17
|
+
}
|
|
18
|
+
declare namespace linter {
|
|
19
|
+
let enabled_2: boolean;
|
|
20
|
+
export { enabled_2 as enabled };
|
|
21
|
+
export namespace rules {
|
|
22
|
+
let recommended: boolean;
|
|
23
|
+
}
|
|
24
|
+
export namespace domains {
|
|
25
|
+
let react: string;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
declare namespace assist {
|
|
29
|
+
namespace actions {
|
|
30
|
+
namespace source {
|
|
31
|
+
let organizeImports: string;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
declare namespace __json_default_export {
|
|
36
|
+
export { $schema, vcs, files, formatter, linter, assist };
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { $schema, assist, __json_default_export as default, files, formatter, linter, vcs };
|
|
40
|
+
//# sourceMappingURL=biome.base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome.base.d.ts","names":["$schema","vcs","enabled","clientKind","useIgnoreFile","files","ignoreUnknown","includes","formatter","enabled_1","indentStyle","indentWidth","linter","enabled_2","rules","recommended","domains","react","assist","actions","source","organizeImports","__json_default_export","default"],"sources":["../../src/plugins/biome.base.json.d.ts"],"mappings":";YAAWA,OAAAA;AAAAA,kBACMC,GAAAA;EAAAA,IACTC,OAAAA;EAAAA,IACAC,UAAAA;EAAAA,IACAC,aAAAA;AAAAA;AAAAA,kBAESC,KAAAA;EAAAA,IACTC,aAAAA;EAAAA,IACAC,QAAAA;AAAAA;AAAAA,kBAESC,SAAAA;EAAAA,IACTC,SAAAA;EAAAA,SACKA,SAAAA,IAAaP,OAAAA;EAAAA,WACXQ,WAAAA;EAAAA,WACAC,WAAAA;AAAAA;AAAAA,kBAEEC,MAAAA;EAAAA,IACTC,SAAAA;EAAAA,SACKA,SAAAA,IAAaX,OAAAA;EAAAA,iBACLY,KAAAA;IAAAA,IACTC,WAAAA;EAAAA;EAAAA,iBAESC,OAAAA;IAAAA,IACTC,KAAAA;EAAAA;AAAAA;AAAAA,kBAGKC,MAAAA;EAAAA,UACHC,OAAAA;IAAAA,UACIC,MAAAA;MAAAA,IACFC,eAAAA;IAAAA;EAAAA;AAAAA;AAAAA,kBAKEC,qBAAAA;EAAAA,SACPtB,OAAAA,EAASC,GAAAA,EAAKI,KAAAA,EAAOG,SAAAA,EAAWI,MAAAA,EAAQM,MAAAA;AAAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//#region src/plugins/biome.base.json
|
|
2
|
+
var $schema = "https://biomejs.dev/schemas/2.2.0/schema.json";
|
|
3
|
+
var vcs = {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"clientKind": "git",
|
|
6
|
+
"useIgnoreFile": true
|
|
7
|
+
};
|
|
8
|
+
var files = {
|
|
9
|
+
"ignoreUnknown": true,
|
|
10
|
+
"includes": [
|
|
11
|
+
"**",
|
|
12
|
+
"!node_modules",
|
|
13
|
+
"!docs"
|
|
14
|
+
]
|
|
15
|
+
};
|
|
16
|
+
var formatter = {
|
|
17
|
+
"enabled": true,
|
|
18
|
+
"indentStyle": "space",
|
|
19
|
+
"indentWidth": 2
|
|
20
|
+
};
|
|
21
|
+
var linter = {
|
|
22
|
+
"enabled": true,
|
|
23
|
+
"rules": { "recommended": true },
|
|
24
|
+
"domains": { "react": "recommended" }
|
|
25
|
+
};
|
|
26
|
+
var assist = { "actions": { "source": { "organizeImports": "on" } } };
|
|
27
|
+
var biome_base_default = {
|
|
28
|
+
$schema,
|
|
29
|
+
vcs,
|
|
30
|
+
files,
|
|
31
|
+
formatter,
|
|
32
|
+
linter,
|
|
33
|
+
assist
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { $schema, assist, biome_base_default as default, files, formatter, linter, vcs };
|
|
38
|
+
//# sourceMappingURL=biome.base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome.base.js","names":[],"sources":["../../src/plugins/biome.base.json"],"sourcesContent":[""],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome.d.ts","names":[],"sources":["../../src/plugins/biome.ts"],"mappings":";;;iBAOgB,KAAA,CAAA,GAAS,cAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { c as writeFile, o as pick, t as depVersions } from "../constants-CbNzssp2.js";
|
|
2
|
+
import biome_base_default from "./biome.base.js";
|
|
3
|
+
import biome_next_default from "./biome.next.js";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
|
|
6
|
+
//#region src/plugins/biome.ts
|
|
7
|
+
function biome() {
|
|
8
|
+
return {
|
|
9
|
+
packageJson(packageJson) {
|
|
10
|
+
return {
|
|
11
|
+
...packageJson,
|
|
12
|
+
scripts: {
|
|
13
|
+
...packageJson.scripts,
|
|
14
|
+
lint: "biome check",
|
|
15
|
+
format: "biome format --write"
|
|
16
|
+
},
|
|
17
|
+
devDependencies: {
|
|
18
|
+
...packageJson.devDependencies,
|
|
19
|
+
...pick(depVersions, ["@biomejs/biome"])
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
async afterWrite() {
|
|
24
|
+
const config = this.template.value.startsWith("+next") ? biome_next_default : biome_base_default;
|
|
25
|
+
await writeFile(path.join(this.dest, "biome.json"), JSON.stringify(config, null, 2));
|
|
26
|
+
this.log("Configured Biome");
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { biome };
|
|
33
|
+
//# sourceMappingURL=biome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome.js","names":["next","base"],"sources":["../../src/plugins/biome.ts"],"sourcesContent":["import { TemplatePlugin } from '@/index';\nimport { pick, writeFile } from '@/utils';\nimport path from 'node:path';\nimport { depVersions } from '@/constants';\nimport base from './biome.base.json';\nimport next from './biome.next.json';\n\nexport function biome(): TemplatePlugin {\n return {\n packageJson(packageJson) {\n return {\n ...packageJson,\n scripts: {\n ...packageJson.scripts,\n lint: 'biome check',\n format: 'biome format --write',\n },\n devDependencies: {\n ...packageJson.devDependencies,\n ...pick(depVersions, ['@biomejs/biome']),\n },\n };\n },\n async afterWrite() {\n const config = this.template.value.startsWith('+next') ? next : base;\n\n await writeFile(path.join(this.dest, 'biome.json'), JSON.stringify(config, null, 2));\n this.log('Configured Biome');\n },\n };\n}\n"],"mappings":";;;;;;AAOA,SAAgB,QAAwB;AACtC,QAAO;EACL,YAAY,aAAa;AACvB,UAAO;IACL,GAAG;IACH,SAAS;KACP,GAAG,YAAY;KACf,MAAM;KACN,QAAQ;KACT;IACD,iBAAiB;KACf,GAAG,YAAY;KACf,GAAG,KAAK,aAAa,CAAC,iBAAiB,CAAC;KACzC;IACF;;EAEH,MAAM,aAAa;GACjB,MAAM,SAAS,KAAK,SAAS,MAAM,WAAW,QAAQ,GAAGA,qBAAOC;AAEhE,SAAM,UAAU,KAAK,KAAK,KAAK,MAAM,aAAa,EAAE,KAAK,UAAU,QAAQ,MAAM,EAAE,CAAC;AACpF,QAAK,IAAI,mBAAmB;;EAE/B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
//#region src/plugins/biome.next.json.d.ts
|
|
2
|
+
declare let $schema: string;
|
|
3
|
+
declare namespace vcs {
|
|
4
|
+
let enabled: boolean;
|
|
5
|
+
let clientKind: string;
|
|
6
|
+
let useIgnoreFile: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare namespace files {
|
|
9
|
+
let ignoreUnknown: boolean;
|
|
10
|
+
let includes: string[];
|
|
11
|
+
}
|
|
12
|
+
declare namespace formatter {
|
|
13
|
+
let enabled_1: boolean;
|
|
14
|
+
export { enabled_1 as enabled };
|
|
15
|
+
export let indentStyle: string;
|
|
16
|
+
export let indentWidth: number;
|
|
17
|
+
}
|
|
18
|
+
declare namespace linter {
|
|
19
|
+
let enabled_2: boolean;
|
|
20
|
+
export { enabled_2 as enabled };
|
|
21
|
+
export namespace rules {
|
|
22
|
+
let recommended: boolean;
|
|
23
|
+
}
|
|
24
|
+
export namespace domains {
|
|
25
|
+
let next: string;
|
|
26
|
+
let react: string;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
declare namespace assist {
|
|
30
|
+
namespace actions {
|
|
31
|
+
namespace source {
|
|
32
|
+
let organizeImports: string;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
declare namespace __json_default_export {
|
|
37
|
+
export { $schema, vcs, files, formatter, linter, assist };
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { $schema, assist, __json_default_export as default, files, formatter, linter, vcs };
|
|
41
|
+
//# sourceMappingURL=biome.next.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome.next.d.ts","names":["$schema","vcs","enabled","clientKind","useIgnoreFile","files","ignoreUnknown","includes","formatter","enabled_1","indentStyle","indentWidth","linter","enabled_2","rules","recommended","domains","next","react","assist","actions","source","organizeImports","__json_default_export","default"],"sources":["../../src/plugins/biome.next.json.d.ts"],"mappings":";YAAWA,OAAAA;AAAAA,kBACMC,GAAAA;EAAAA,IACTC,OAAAA;EAAAA,IACAC,UAAAA;EAAAA,IACAC,aAAAA;AAAAA;AAAAA,kBAESC,KAAAA;EAAAA,IACTC,aAAAA;EAAAA,IACAC,QAAAA;AAAAA;AAAAA,kBAESC,SAAAA;EAAAA,IACTC,SAAAA;EAAAA,SACKA,SAAAA,IAAaP,OAAAA;EAAAA,WACXQ,WAAAA;EAAAA,WACAC,WAAAA;AAAAA;AAAAA,kBAEEC,MAAAA;EAAAA,IACTC,SAAAA;EAAAA,SACKA,SAAAA,IAAaX,OAAAA;EAAAA,iBACLY,KAAAA;IAAAA,IACTC,WAAAA;EAAAA;EAAAA,iBAESC,OAAAA;IAAAA,IACTC,IAAAA;IAAAA,IACAC,KAAAA;EAAAA;AAAAA;AAAAA,kBAGKC,MAAAA;EAAAA,UACHC,OAAAA;IAAAA,UACIC,MAAAA;MAAAA,IACFC,eAAAA;IAAAA;EAAAA;AAAAA;AAAAA,kBAKEC,qBAAAA;EAAAA,SACPvB,OAAAA,EAASC,GAAAA,EAAKI,KAAAA,EAAOG,SAAAA,EAAWI,MAAAA,EAAQO,MAAAA;AAAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
//#region src/plugins/biome.next.json
|
|
2
|
+
var $schema = "https://biomejs.dev/schemas/2.2.0/schema.json";
|
|
3
|
+
var vcs = {
|
|
4
|
+
"enabled": true,
|
|
5
|
+
"clientKind": "git",
|
|
6
|
+
"useIgnoreFile": true
|
|
7
|
+
};
|
|
8
|
+
var files = {
|
|
9
|
+
"ignoreUnknown": true,
|
|
10
|
+
"includes": [
|
|
11
|
+
"**",
|
|
12
|
+
"!node_modules",
|
|
13
|
+
"!.next",
|
|
14
|
+
"!dist",
|
|
15
|
+
"!build",
|
|
16
|
+
"!docs"
|
|
17
|
+
]
|
|
18
|
+
};
|
|
19
|
+
var formatter = {
|
|
20
|
+
"enabled": true,
|
|
21
|
+
"indentStyle": "space",
|
|
22
|
+
"indentWidth": 2
|
|
23
|
+
};
|
|
24
|
+
var linter = {
|
|
25
|
+
"enabled": true,
|
|
26
|
+
"rules": { "recommended": true },
|
|
27
|
+
"domains": {
|
|
28
|
+
"next": "recommended",
|
|
29
|
+
"react": "recommended"
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var assist = { "actions": { "source": { "organizeImports": "on" } } };
|
|
33
|
+
var biome_next_default = {
|
|
34
|
+
$schema,
|
|
35
|
+
vcs,
|
|
36
|
+
files,
|
|
37
|
+
formatter,
|
|
38
|
+
linter,
|
|
39
|
+
assist
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
//#endregion
|
|
43
|
+
export { $schema, assist, biome_next_default as default, files, formatter, linter, vcs };
|
|
44
|
+
//# sourceMappingURL=biome.next.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome.next.js","names":[],"sources":["../../src/plugins/biome.next.json"],"sourcesContent":[""],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eslint.d.ts","names":[],"sources":["../../src/plugins/eslint.ts"],"mappings":";;;iBAqBgB,MAAA,CAAA,GAAU,cAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { c as writeFile, o as pick, t as depVersions } from "../constants-CbNzssp2.js";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
|
|
4
|
+
//#region src/plugins/eslint.ts
|
|
5
|
+
const config = `import { defineConfig, globalIgnores } from 'eslint/config';
|
|
6
|
+
import nextVitals from 'eslint-config-next/core-web-vitals';
|
|
7
|
+
|
|
8
|
+
const eslintConfig = defineConfig([
|
|
9
|
+
...nextVitals,
|
|
10
|
+
globalIgnores([
|
|
11
|
+
'.next/**',
|
|
12
|
+
'out/**',
|
|
13
|
+
'build/**',
|
|
14
|
+
'next-env.d.ts',
|
|
15
|
+
'docs/**',
|
|
16
|
+
]),
|
|
17
|
+
]);
|
|
18
|
+
|
|
19
|
+
export default eslintConfig;`;
|
|
20
|
+
function eslint() {
|
|
21
|
+
return {
|
|
22
|
+
packageJson(packageJson) {
|
|
23
|
+
if (!this.template.value.startsWith("+next")) return;
|
|
24
|
+
return {
|
|
25
|
+
...packageJson,
|
|
26
|
+
scripts: {
|
|
27
|
+
...packageJson.scripts,
|
|
28
|
+
lint: "eslint"
|
|
29
|
+
},
|
|
30
|
+
devDependencies: {
|
|
31
|
+
...packageJson.devDependencies,
|
|
32
|
+
"eslint-config-next": packageJson.dependencies.next,
|
|
33
|
+
...pick(depVersions, ["eslint"])
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
async afterWrite() {
|
|
38
|
+
if (!this.template.value.startsWith("+next")) return;
|
|
39
|
+
await writeFile(path.join(this.dest, "eslint.config.mjs"), config);
|
|
40
|
+
this.log("Configured ESLint");
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
//#endregion
|
|
46
|
+
export { eslint };
|
|
47
|
+
//# sourceMappingURL=eslint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eslint.js","names":[],"sources":["../../src/plugins/eslint.ts"],"sourcesContent":["import { TemplatePlugin } from '@/index';\nimport { pick, writeFile } from '@/utils';\nimport path from 'node:path';\nimport { depVersions } from '@/constants';\n\nconst config = `import { defineConfig, globalIgnores } from 'eslint/config';\nimport nextVitals from 'eslint-config-next/core-web-vitals';\n\nconst eslintConfig = defineConfig([\n ...nextVitals,\n globalIgnores([\n '.next/**',\n 'out/**',\n 'build/**',\n 'next-env.d.ts',\n 'docs/**',\n ]),\n]);\n\nexport default eslintConfig;`;\n\nexport function eslint(): TemplatePlugin {\n return {\n packageJson(packageJson) {\n if (!this.template.value.startsWith('+next')) return;\n\n return {\n ...packageJson,\n scripts: {\n ...packageJson.scripts,\n lint: 'eslint',\n },\n devDependencies: {\n ...packageJson.devDependencies,\n 'eslint-config-next': packageJson.dependencies!.next,\n ...pick(depVersions, ['eslint']),\n },\n };\n },\n async afterWrite() {\n if (!this.template.value.startsWith('+next')) return;\n\n await writeFile(path.join(this.dest, 'eslint.config.mjs'), config);\n this.log('Configured ESLint');\n },\n };\n}\n"],"mappings":";;;;AAKA,MAAM,SAAS;;;;;;;;;;;;;;;AAgBf,SAAgB,SAAyB;AACvC,QAAO;EACL,YAAY,aAAa;AACvB,OAAI,CAAC,KAAK,SAAS,MAAM,WAAW,QAAQ,CAAE;AAE9C,UAAO;IACL,GAAG;IACH,SAAS;KACP,GAAG,YAAY;KACf,MAAM;KACP;IACD,iBAAiB;KACf,GAAG,YAAY;KACf,sBAAsB,YAAY,aAAc;KAChD,GAAG,KAAK,aAAa,CAAC,SAAS,CAAC;KACjC;IACF;;EAEH,MAAM,aAAa;AACjB,OAAI,CAAC,KAAK,SAAS,MAAM,WAAW,QAAQ,CAAE;AAE9C,SAAM,UAAU,KAAK,KAAK,KAAK,MAAM,oBAAoB,EAAE,OAAO;AAClE,QAAK,IAAI,oBAAoB;;EAEhC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TemplatePlugin } from "../index.js";
|
|
2
|
+
|
|
3
|
+
//#region src/plugins/next-use-src.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Use `src` for app directory
|
|
6
|
+
*/
|
|
7
|
+
declare function nextUseSrc(): TemplatePlugin;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { nextUseSrc };
|
|
10
|
+
//# sourceMappingURL=next-use-src.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-use-src.d.ts","names":[],"sources":["../../src/plugins/next-use-src.ts"],"mappings":";;;;;AAOA;iBAAgB,UAAA,CAAA,GAAc,cAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
|
|
4
|
+
//#region src/plugins/next-use-src.ts
|
|
5
|
+
/**
|
|
6
|
+
* Use `src` for app directory
|
|
7
|
+
*/
|
|
8
|
+
function nextUseSrc() {
|
|
9
|
+
return {
|
|
10
|
+
template(info) {
|
|
11
|
+
if (!info.value.startsWith("+next")) return;
|
|
12
|
+
return {
|
|
13
|
+
...info,
|
|
14
|
+
appDir: "src",
|
|
15
|
+
rename: (file) => {
|
|
16
|
+
if (path.basename(file) === "mdx-components.tsx" || isRelative(path.join(this.dest, "app"), file) || isRelative(path.join(this.dest, "lib"), file) || isRelative(path.join(this.dest, "components"), file)) return path.join(this.dest, "src", path.relative(this.dest, file));
|
|
17
|
+
return file;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
async afterWrite() {
|
|
22
|
+
if (!this.template.value.startsWith("+next")) return;
|
|
23
|
+
const tsconfigPath = path.join(this.dest, "tsconfig.json");
|
|
24
|
+
const content = (await fs.readFile(tsconfigPath)).toString();
|
|
25
|
+
const config = JSON.parse(content);
|
|
26
|
+
if (config.compilerOptions?.paths) Object.assign(config.compilerOptions.paths, { "@/*": ["./src/*"] });
|
|
27
|
+
await fs.writeFile(tsconfigPath, JSON.stringify(config, null, 2));
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function isRelative(dir, file) {
|
|
32
|
+
return !path.relative(dir, file).startsWith(`..${path.sep}`);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
export { nextUseSrc };
|
|
37
|
+
//# sourceMappingURL=next-use-src.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-use-src.js","names":[],"sources":["../../src/plugins/next-use-src.ts"],"sourcesContent":["import { TemplatePlugin } from '@/index';\nimport path from 'node:path';\nimport fs from 'node:fs/promises';\n\n/**\n * Use `src` for app directory\n */\nexport function nextUseSrc(): TemplatePlugin {\n return {\n template(info) {\n if (!info.value.startsWith('+next')) return;\n\n return {\n ...info,\n appDir: 'src',\n rename: (file) => {\n if (\n path.basename(file) === 'mdx-components.tsx' ||\n isRelative(path.join(this.dest, 'app'), file) ||\n isRelative(path.join(this.dest, 'lib'), file) ||\n isRelative(path.join(this.dest, 'components'), file)\n ) {\n return path.join(this.dest, 'src', path.relative(this.dest, file));\n }\n\n return file;\n },\n };\n },\n // update tsconfig.json for src dir\n async afterWrite() {\n if (!this.template.value.startsWith('+next')) return;\n\n const tsconfigPath = path.join(this.dest, 'tsconfig.json');\n const content = (await fs.readFile(tsconfigPath)).toString();\n const config = JSON.parse(content);\n\n if (config.compilerOptions?.paths) {\n Object.assign(config.compilerOptions.paths, {\n '@/*': ['./src/*'],\n });\n }\n\n await fs.writeFile(tsconfigPath, JSON.stringify(config, null, 2));\n },\n };\n}\n\nfunction isRelative(dir: string, file: string) {\n return !path.relative(dir, file).startsWith(`..${path.sep}`);\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,aAA6B;AAC3C,QAAO;EACL,SAAS,MAAM;AACb,OAAI,CAAC,KAAK,MAAM,WAAW,QAAQ,CAAE;AAErC,UAAO;IACL,GAAG;IACH,QAAQ;IACR,SAAS,SAAS;AAChB,SACE,KAAK,SAAS,KAAK,KAAK,wBACxB,WAAW,KAAK,KAAK,KAAK,MAAM,MAAM,EAAE,KAAK,IAC7C,WAAW,KAAK,KAAK,KAAK,MAAM,MAAM,EAAE,KAAK,IAC7C,WAAW,KAAK,KAAK,KAAK,MAAM,aAAa,EAAE,KAAK,CAEpD,QAAO,KAAK,KAAK,KAAK,MAAM,OAAO,KAAK,SAAS,KAAK,MAAM,KAAK,CAAC;AAGpE,YAAO;;IAEV;;EAGH,MAAM,aAAa;AACjB,OAAI,CAAC,KAAK,SAAS,MAAM,WAAW,QAAQ,CAAE;GAE9C,MAAM,eAAe,KAAK,KAAK,KAAK,MAAM,gBAAgB;GAC1D,MAAM,WAAW,MAAM,GAAG,SAAS,aAAa,EAAE,UAAU;GAC5D,MAAM,SAAS,KAAK,MAAM,QAAQ;AAElC,OAAI,OAAO,iBAAiB,MAC1B,QAAO,OAAO,OAAO,gBAAgB,OAAO,EAC1C,OAAO,CAAC,UAAU,EACnB,CAAC;AAGJ,SAAM,GAAG,UAAU,cAAc,KAAK,UAAU,QAAQ,MAAM,EAAE,CAAC;;EAEpE;;AAGH,SAAS,WAAW,KAAa,MAAc;AAC7C,QAAO,CAAC,KAAK,SAAS,KAAK,KAAK,CAAC,WAAW,KAAK,KAAK,MAAM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orama-cloud.d.ts","names":[],"sources":["../../src/plugins/orama-cloud.ts"],"mappings":";;;iBAOgB,UAAA,CAAA,GAAc,cAAA"}
|