create-krispya 0.2.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.
Files changed (61) hide show
  1. package/dist/cli.cjs +550 -0
  2. package/dist/cli.d.cts +1 -0
  3. package/dist/cli.d.mts +1 -0
  4. package/dist/cli.d.ts +1 -2
  5. package/dist/cli.mjs +531 -0
  6. package/dist/index.cjs +1688 -0
  7. package/dist/index.d.cts +148 -0
  8. package/dist/index.d.mts +148 -0
  9. package/dist/index.d.ts +88 -27
  10. package/dist/index.mjs +1676 -0
  11. package/package.json +6 -5
  12. package/dist/cli.js +0 -504
  13. package/dist/constants.d.ts +0 -33
  14. package/dist/constants.js +0 -110
  15. package/dist/index.js +0 -397
  16. package/dist/integrations/biome.d.ts +0 -8
  17. package/dist/integrations/biome.js +0 -80
  18. package/dist/integrations/drei.d.ts +0 -3
  19. package/dist/integrations/drei.js +0 -9
  20. package/dist/integrations/eslint.d.ts +0 -3
  21. package/dist/integrations/eslint.js +0 -78
  22. package/dist/integrations/fiber.d.ts +0 -8
  23. package/dist/integrations/fiber.js +0 -35
  24. package/dist/integrations/github-pages.d.ts +0 -3
  25. package/dist/integrations/github-pages.js +0 -58
  26. package/dist/integrations/handle.d.ts +0 -3
  27. package/dist/integrations/handle.js +0 -7
  28. package/dist/integrations/koota.d.ts +0 -8
  29. package/dist/integrations/koota.js +0 -7
  30. package/dist/integrations/leva.d.ts +0 -3
  31. package/dist/integrations/leva.js +0 -7
  32. package/dist/integrations/offscreen.d.ts +0 -3
  33. package/dist/integrations/offscreen.js +0 -12
  34. package/dist/integrations/oxfmt.d.ts +0 -3
  35. package/dist/integrations/oxfmt.js +0 -27
  36. package/dist/integrations/oxlint.d.ts +0 -3
  37. package/dist/integrations/oxlint.js +0 -52
  38. package/dist/integrations/postprocessing.d.ts +0 -3
  39. package/dist/integrations/postprocessing.js +0 -12
  40. package/dist/integrations/prettier.d.ts +0 -3
  41. package/dist/integrations/prettier.js +0 -28
  42. package/dist/integrations/rapier.d.ts +0 -3
  43. package/dist/integrations/rapier.js +0 -7
  44. package/dist/integrations/triplex.d.ts +0 -26
  45. package/dist/integrations/triplex.js +0 -159
  46. package/dist/integrations/uikit.d.ts +0 -3
  47. package/dist/integrations/uikit.js +0 -7
  48. package/dist/integrations/vitest.d.ts +0 -2
  49. package/dist/integrations/vitest.js +0 -20
  50. package/dist/integrations/viverse.d.ts +0 -3
  51. package/dist/integrations/viverse.js +0 -74
  52. package/dist/integrations/xr.d.ts +0 -5
  53. package/dist/integrations/xr.js +0 -51
  54. package/dist/integrations/zustand.d.ts +0 -8
  55. package/dist/integrations/zustand.js +0 -7
  56. package/dist/lib/array.d.ts +0 -1
  57. package/dist/lib/array.js +0 -9
  58. package/dist/merge.d.ts +0 -1
  59. package/dist/merge.js +0 -26
  60. package/dist/utils.d.ts +0 -22
  61. package/dist/utils.js +0 -123
@@ -0,0 +1,148 @@
1
+ type GenerateDreiOptions = {} | boolean;
2
+
3
+ type GenerateFiberOptions = {
4
+ /**
5
+ * @default true
6
+ */
7
+ addExample?: boolean;
8
+ } | boolean;
9
+
10
+ type GenerateGithubPagesOptions = {} | boolean;
11
+
12
+ type GenerateHandleOptions = {} | boolean;
13
+
14
+ type GenerateKootaOptions = {
15
+ /**
16
+ * @default true
17
+ */
18
+ addExample?: boolean;
19
+ } | boolean;
20
+
21
+ type GenerateLevaOptions = {} | boolean;
22
+
23
+ type GenerateOffscreenOptions = {} | boolean;
24
+
25
+ type GeneratePostprocessingOptions = {} | boolean;
26
+
27
+ type GenerateRapierOptions = {} | boolean;
28
+
29
+ type GenerateUikitOptions = {} | boolean;
30
+
31
+ type GenerateXrOptions = {
32
+ storeOptions?: any;
33
+ } | boolean;
34
+
35
+ type GenerateZustandOptions = {
36
+ /**
37
+ * @default true
38
+ */
39
+ addExample?: boolean;
40
+ } | boolean;
41
+
42
+ type GenerateTriplexOptions = {} | boolean;
43
+
44
+ type GenerateViverseOptions = {} | boolean;
45
+
46
+ /**
47
+ * Fetches the latest version of an npm package from the registry
48
+ * @param packageName The name of the npm package
49
+ * @param fallback Fallback version if fetch fails
50
+ * @returns The latest version string (e.g., "1.0.0")
51
+ */
52
+ declare function getLatestNpmVersion(packageName: string, fallback: string): Promise<string>;
53
+ /**
54
+ * Fetches the latest version of pnpm from the npm registry
55
+ * @returns The latest pnpm version string (e.g., "10.24.0")
56
+ */
57
+ declare function getLatestPnpmVersion(): Promise<string>;
58
+ /**
59
+ * Fetches the latest LTS version of Node.js
60
+ * @returns The latest Node.js LTS version string (e.g., "22.13.0")
61
+ */
62
+ declare function getLatestNodeVersion(): Promise<string>;
63
+ /**
64
+ * Generates a random name in the format "adjective-noun"
65
+ * @returns A randomly generated name string
66
+ */
67
+ declare function generateRandomName(): string;
68
+
69
+ type Template = "vanilla" | "vanilla-js" | "react" | "react-js" | "r3f" | "r3f-js";
70
+ type BaseTemplate = "vanilla" | "react" | "r3f";
71
+ declare function getLanguageFromTemplate(template: Template): "javascript" | "typescript";
72
+ declare function getBaseTemplate(template: Template): BaseTemplate;
73
+ type PackageVersions = {
74
+ vite?: string;
75
+ vitest?: string;
76
+ eslint?: string;
77
+ oxlint?: string;
78
+ oxfmt?: string;
79
+ prettier?: string;
80
+ biome?: string;
81
+ };
82
+ type ProjectType = "app" | "library";
83
+ type LibraryBundler = "unbuild" | "tsdown";
84
+ type GenerateOptions = {
85
+ githubUserName?: string;
86
+ githubRepoName?: string;
87
+ name: string;
88
+ projectType?: ProjectType;
89
+ libraryBundler?: LibraryBundler;
90
+ template?: Template;
91
+ linter?: Linter;
92
+ formatter?: Formatter;
93
+ versions?: PackageVersions;
94
+ fiber?: GenerateFiberOptions;
95
+ handle?: GenerateHandleOptions;
96
+ drei?: GenerateDreiOptions;
97
+ koota?: GenerateKootaOptions;
98
+ leva?: GenerateLevaOptions;
99
+ offscreen?: GenerateOffscreenOptions;
100
+ postprocessing?: GeneratePostprocessingOptions;
101
+ rapier?: GenerateRapierOptions;
102
+ triplex?: GenerateTriplexOptions;
103
+ viverse?: GenerateViverseOptions;
104
+ uikit?: GenerateUikitOptions;
105
+ xr?: GenerateXrOptions;
106
+ zustand?: GenerateZustandOptions;
107
+ githubPages?: GenerateGithubPagesOptions;
108
+ dependencies?: Record<string, string>;
109
+ files?: Record<string, File>;
110
+ injections?: Array<{
111
+ location: CodeInjectionLocation;
112
+ code: string;
113
+ }>;
114
+ replacements?: Array<{
115
+ search: string;
116
+ replace: string;
117
+ }>;
118
+ packageManager?: string;
119
+ pnpmVersion?: string;
120
+ pnpmManageVersions?: boolean;
121
+ nodeVersion?: string;
122
+ };
123
+ type File = {
124
+ type: "text";
125
+ content: string;
126
+ } | {
127
+ type: "remote";
128
+ url: string;
129
+ };
130
+ type Linter = "eslint" | "oxlint" | "biome";
131
+ type Formatter = "prettier" | "oxfmt" | "biome";
132
+ type CodeInjectionLocation = "vite-config-import" | "import" | "global-start" | "global-end" | "dom-start" | "dom" | "dom-end" | "scene-start" | "scene" | "scene-end" | "readme-start" | "readme-end" | "readme-libraries" | "readme-tools" | "readme-commands" | "vscode-extension-suggestion" | "vscode-setting";
133
+ type Generator = {
134
+ get options(): GenerateOptions;
135
+ get versions(): PackageVersions;
136
+ addDependency(name: string, semver: string): void;
137
+ addDevDependency(name: string, semver: string): void;
138
+ addFile(path: string, file: File): void;
139
+ addScript(name: string, command: string): void;
140
+ inject(location: CodeInjectionLocation, code: string): void;
141
+ replace(search: string, replace: string): void;
142
+ configureVite(object: any): void;
143
+ addVscodeSetting(key: string, value: unknown): void;
144
+ };
145
+ declare function generate(options: GenerateOptions): Record<string, File>;
146
+
147
+ export { generate, generateRandomName, getBaseTemplate, getLanguageFromTemplate, getLatestNodeVersion, getLatestNpmVersion, getLatestPnpmVersion };
148
+ export type { BaseTemplate, CodeInjectionLocation, File, Formatter, GenerateOptions, Generator, LibraryBundler, Linter, PackageVersions, ProjectType, Template };
@@ -0,0 +1,148 @@
1
+ type GenerateDreiOptions = {} | boolean;
2
+
3
+ type GenerateFiberOptions = {
4
+ /**
5
+ * @default true
6
+ */
7
+ addExample?: boolean;
8
+ } | boolean;
9
+
10
+ type GenerateGithubPagesOptions = {} | boolean;
11
+
12
+ type GenerateHandleOptions = {} | boolean;
13
+
14
+ type GenerateKootaOptions = {
15
+ /**
16
+ * @default true
17
+ */
18
+ addExample?: boolean;
19
+ } | boolean;
20
+
21
+ type GenerateLevaOptions = {} | boolean;
22
+
23
+ type GenerateOffscreenOptions = {} | boolean;
24
+
25
+ type GeneratePostprocessingOptions = {} | boolean;
26
+
27
+ type GenerateRapierOptions = {} | boolean;
28
+
29
+ type GenerateUikitOptions = {} | boolean;
30
+
31
+ type GenerateXrOptions = {
32
+ storeOptions?: any;
33
+ } | boolean;
34
+
35
+ type GenerateZustandOptions = {
36
+ /**
37
+ * @default true
38
+ */
39
+ addExample?: boolean;
40
+ } | boolean;
41
+
42
+ type GenerateTriplexOptions = {} | boolean;
43
+
44
+ type GenerateViverseOptions = {} | boolean;
45
+
46
+ /**
47
+ * Fetches the latest version of an npm package from the registry
48
+ * @param packageName The name of the npm package
49
+ * @param fallback Fallback version if fetch fails
50
+ * @returns The latest version string (e.g., "1.0.0")
51
+ */
52
+ declare function getLatestNpmVersion(packageName: string, fallback: string): Promise<string>;
53
+ /**
54
+ * Fetches the latest version of pnpm from the npm registry
55
+ * @returns The latest pnpm version string (e.g., "10.24.0")
56
+ */
57
+ declare function getLatestPnpmVersion(): Promise<string>;
58
+ /**
59
+ * Fetches the latest LTS version of Node.js
60
+ * @returns The latest Node.js LTS version string (e.g., "22.13.0")
61
+ */
62
+ declare function getLatestNodeVersion(): Promise<string>;
63
+ /**
64
+ * Generates a random name in the format "adjective-noun"
65
+ * @returns A randomly generated name string
66
+ */
67
+ declare function generateRandomName(): string;
68
+
69
+ type Template = "vanilla" | "vanilla-js" | "react" | "react-js" | "r3f" | "r3f-js";
70
+ type BaseTemplate = "vanilla" | "react" | "r3f";
71
+ declare function getLanguageFromTemplate(template: Template): "javascript" | "typescript";
72
+ declare function getBaseTemplate(template: Template): BaseTemplate;
73
+ type PackageVersions = {
74
+ vite?: string;
75
+ vitest?: string;
76
+ eslint?: string;
77
+ oxlint?: string;
78
+ oxfmt?: string;
79
+ prettier?: string;
80
+ biome?: string;
81
+ };
82
+ type ProjectType = "app" | "library";
83
+ type LibraryBundler = "unbuild" | "tsdown";
84
+ type GenerateOptions = {
85
+ githubUserName?: string;
86
+ githubRepoName?: string;
87
+ name: string;
88
+ projectType?: ProjectType;
89
+ libraryBundler?: LibraryBundler;
90
+ template?: Template;
91
+ linter?: Linter;
92
+ formatter?: Formatter;
93
+ versions?: PackageVersions;
94
+ fiber?: GenerateFiberOptions;
95
+ handle?: GenerateHandleOptions;
96
+ drei?: GenerateDreiOptions;
97
+ koota?: GenerateKootaOptions;
98
+ leva?: GenerateLevaOptions;
99
+ offscreen?: GenerateOffscreenOptions;
100
+ postprocessing?: GeneratePostprocessingOptions;
101
+ rapier?: GenerateRapierOptions;
102
+ triplex?: GenerateTriplexOptions;
103
+ viverse?: GenerateViverseOptions;
104
+ uikit?: GenerateUikitOptions;
105
+ xr?: GenerateXrOptions;
106
+ zustand?: GenerateZustandOptions;
107
+ githubPages?: GenerateGithubPagesOptions;
108
+ dependencies?: Record<string, string>;
109
+ files?: Record<string, File>;
110
+ injections?: Array<{
111
+ location: CodeInjectionLocation;
112
+ code: string;
113
+ }>;
114
+ replacements?: Array<{
115
+ search: string;
116
+ replace: string;
117
+ }>;
118
+ packageManager?: string;
119
+ pnpmVersion?: string;
120
+ pnpmManageVersions?: boolean;
121
+ nodeVersion?: string;
122
+ };
123
+ type File = {
124
+ type: "text";
125
+ content: string;
126
+ } | {
127
+ type: "remote";
128
+ url: string;
129
+ };
130
+ type Linter = "eslint" | "oxlint" | "biome";
131
+ type Formatter = "prettier" | "oxfmt" | "biome";
132
+ type CodeInjectionLocation = "vite-config-import" | "import" | "global-start" | "global-end" | "dom-start" | "dom" | "dom-end" | "scene-start" | "scene" | "scene-end" | "readme-start" | "readme-end" | "readme-libraries" | "readme-tools" | "readme-commands" | "vscode-extension-suggestion" | "vscode-setting";
133
+ type Generator = {
134
+ get options(): GenerateOptions;
135
+ get versions(): PackageVersions;
136
+ addDependency(name: string, semver: string): void;
137
+ addDevDependency(name: string, semver: string): void;
138
+ addFile(path: string, file: File): void;
139
+ addScript(name: string, command: string): void;
140
+ inject(location: CodeInjectionLocation, code: string): void;
141
+ replace(search: string, replace: string): void;
142
+ configureVite(object: any): void;
143
+ addVscodeSetting(key: string, value: unknown): void;
144
+ };
145
+ declare function generate(options: GenerateOptions): Record<string, File>;
146
+
147
+ export { generate, generateRandomName, getBaseTemplate, getLanguageFromTemplate, getLatestNodeVersion, getLatestNpmVersion, getLatestPnpmVersion };
148
+ export type { BaseTemplate, CodeInjectionLocation, File, Formatter, GenerateOptions, Generator, LibraryBundler, Linter, PackageVersions, ProjectType, Template };
package/dist/index.d.ts CHANGED
@@ -1,23 +1,76 @@
1
- import { GenerateDreiOptions } from "./integrations/drei.js";
2
- import { GenerateFiberOptions } from "./integrations/fiber.js";
3
- import { GenerateGithubPagesOptions } from "./integrations/github-pages.js";
4
- import { GenerateHandleOptions } from "./integrations/handle.js";
5
- import { GenerateKootaOptions } from "./integrations/koota.js";
6
- import { GenerateLevaOptions } from "./integrations/leva.js";
7
- import { GenerateOffscreenOptions } from "./integrations/offscreen.js";
8
- import { GeneratePostprocessingOptions } from "./integrations/postprocessing.js";
9
- import { GenerateRapierOptions } from "./integrations/rapier.js";
10
- import { GenerateUikitOptions } from "./integrations/uikit.js";
11
- import { GenerateXrOptions } from "./integrations/xr.js";
12
- import { GenerateZustandOptions } from "./integrations/zustand.js";
13
- import { GenerateTriplexOptions } from "./integrations/triplex.js";
14
- import { GenerateViverseOptions } from "./integrations/viverse.js";
15
- export * from "./utils.js";
16
- export type Template = "vanilla" | "vanilla-js" | "react" | "react-js" | "r3f" | "r3f-js";
17
- export type BaseTemplate = "vanilla" | "react" | "r3f";
18
- export declare function getLanguageFromTemplate(template: Template): "javascript" | "typescript";
19
- export declare function getBaseTemplate(template: Template): BaseTemplate;
20
- export type PackageVersions = {
1
+ type GenerateDreiOptions = {} | boolean;
2
+
3
+ type GenerateFiberOptions = {
4
+ /**
5
+ * @default true
6
+ */
7
+ addExample?: boolean;
8
+ } | boolean;
9
+
10
+ type GenerateGithubPagesOptions = {} | boolean;
11
+
12
+ type GenerateHandleOptions = {} | boolean;
13
+
14
+ type GenerateKootaOptions = {
15
+ /**
16
+ * @default true
17
+ */
18
+ addExample?: boolean;
19
+ } | boolean;
20
+
21
+ type GenerateLevaOptions = {} | boolean;
22
+
23
+ type GenerateOffscreenOptions = {} | boolean;
24
+
25
+ type GeneratePostprocessingOptions = {} | boolean;
26
+
27
+ type GenerateRapierOptions = {} | boolean;
28
+
29
+ type GenerateUikitOptions = {} | boolean;
30
+
31
+ type GenerateXrOptions = {
32
+ storeOptions?: any;
33
+ } | boolean;
34
+
35
+ type GenerateZustandOptions = {
36
+ /**
37
+ * @default true
38
+ */
39
+ addExample?: boolean;
40
+ } | boolean;
41
+
42
+ type GenerateTriplexOptions = {} | boolean;
43
+
44
+ type GenerateViverseOptions = {} | boolean;
45
+
46
+ /**
47
+ * Fetches the latest version of an npm package from the registry
48
+ * @param packageName The name of the npm package
49
+ * @param fallback Fallback version if fetch fails
50
+ * @returns The latest version string (e.g., "1.0.0")
51
+ */
52
+ declare function getLatestNpmVersion(packageName: string, fallback: string): Promise<string>;
53
+ /**
54
+ * Fetches the latest version of pnpm from the npm registry
55
+ * @returns The latest pnpm version string (e.g., "10.24.0")
56
+ */
57
+ declare function getLatestPnpmVersion(): Promise<string>;
58
+ /**
59
+ * Fetches the latest LTS version of Node.js
60
+ * @returns The latest Node.js LTS version string (e.g., "22.13.0")
61
+ */
62
+ declare function getLatestNodeVersion(): Promise<string>;
63
+ /**
64
+ * Generates a random name in the format "adjective-noun"
65
+ * @returns A randomly generated name string
66
+ */
67
+ declare function generateRandomName(): string;
68
+
69
+ type Template = "vanilla" | "vanilla-js" | "react" | "react-js" | "r3f" | "r3f-js";
70
+ type BaseTemplate = "vanilla" | "react" | "r3f";
71
+ declare function getLanguageFromTemplate(template: Template): "javascript" | "typescript";
72
+ declare function getBaseTemplate(template: Template): BaseTemplate;
73
+ type PackageVersions = {
21
74
  vite?: string;
22
75
  vitest?: string;
23
76
  eslint?: string;
@@ -26,10 +79,14 @@ export type PackageVersions = {
26
79
  prettier?: string;
27
80
  biome?: string;
28
81
  };
29
- export type GenerateOptions = {
82
+ type ProjectType = "app" | "library";
83
+ type LibraryBundler = "unbuild" | "tsdown";
84
+ type GenerateOptions = {
30
85
  githubUserName?: string;
31
86
  githubRepoName?: string;
32
87
  name: string;
88
+ projectType?: ProjectType;
89
+ libraryBundler?: LibraryBundler;
33
90
  template?: Template;
34
91
  linter?: Linter;
35
92
  formatter?: Formatter;
@@ -63,20 +120,21 @@ export type GenerateOptions = {
63
120
  pnpmManageVersions?: boolean;
64
121
  nodeVersion?: string;
65
122
  };
66
- export type File = {
123
+ type File = {
67
124
  type: "text";
68
125
  content: string;
69
126
  } | {
70
127
  type: "remote";
71
128
  url: string;
72
129
  };
73
- export type Linter = "eslint" | "oxlint" | "biome";
74
- export type Formatter = "prettier" | "oxfmt" | "biome";
75
- export type CodeInjectionLocation = "vite-config-import" | "import" | "global-start" | "global-end" | "dom-start" | "dom" | "dom-end" | "scene-start" | "scene" | "scene-end" | "readme-start" | "readme-end" | "readme-libraries" | "readme-tools" | "readme-commands" | "vscode-extension-suggestion" | "vscode-setting";
76
- export type Generator = {
130
+ type Linter = "eslint" | "oxlint" | "biome";
131
+ type Formatter = "prettier" | "oxfmt" | "biome";
132
+ type CodeInjectionLocation = "vite-config-import" | "import" | "global-start" | "global-end" | "dom-start" | "dom" | "dom-end" | "scene-start" | "scene" | "scene-end" | "readme-start" | "readme-end" | "readme-libraries" | "readme-tools" | "readme-commands" | "vscode-extension-suggestion" | "vscode-setting";
133
+ type Generator = {
77
134
  get options(): GenerateOptions;
78
135
  get versions(): PackageVersions;
79
136
  addDependency(name: string, semver: string): void;
137
+ addDevDependency(name: string, semver: string): void;
80
138
  addFile(path: string, file: File): void;
81
139
  addScript(name: string, command: string): void;
82
140
  inject(location: CodeInjectionLocation, code: string): void;
@@ -84,4 +142,7 @@ export type Generator = {
84
142
  configureVite(object: any): void;
85
143
  addVscodeSetting(key: string, value: unknown): void;
86
144
  };
87
- export declare function generate(options: GenerateOptions): Record<string, File>;
145
+ declare function generate(options: GenerateOptions): Record<string, File>;
146
+
147
+ export { generate, generateRandomName, getBaseTemplate, getLanguageFromTemplate, getLatestNodeVersion, getLatestNpmVersion, getLatestPnpmVersion };
148
+ export type { BaseTemplate, CodeInjectionLocation, File, Formatter, GenerateOptions, Generator, LibraryBundler, Linter, PackageVersions, ProjectType, Template };