create-rock 0.0.1 → 0.9.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 (74) hide show
  1. package/README.md +67 -0
  2. package/dist/e2e/e2e.test.d.ts +1 -0
  3. package/dist/e2e/e2e.test.d.ts.map +1 -0
  4. package/dist/e2e/e2e.test.js +98 -0
  5. package/dist/e2e/e2e.test.js.map +1 -0
  6. package/dist/src/bin.d.ts +2 -0
  7. package/dist/src/bin.d.ts.map +1 -0
  8. package/dist/src/bin.js +10 -0
  9. package/dist/src/bin.js.map +1 -0
  10. package/dist/src/index.d.ts +1 -0
  11. package/dist/src/index.d.ts.map +1 -0
  12. package/dist/src/index.js +2 -0
  13. package/dist/src/index.js.map +1 -0
  14. package/dist/src/lib/bin.d.ts +4 -0
  15. package/dist/src/lib/bin.d.ts.map +1 -0
  16. package/dist/src/lib/bin.js +210 -0
  17. package/dist/src/lib/bin.js.map +1 -0
  18. package/dist/src/lib/steps/git-init.d.ts +3 -0
  19. package/dist/src/lib/steps/git-init.d.ts.map +1 -0
  20. package/dist/src/lib/steps/git-init.js +51 -0
  21. package/dist/src/lib/steps/git-init.js.map +1 -0
  22. package/dist/src/lib/templates.d.ts +23 -0
  23. package/dist/src/lib/templates.d.ts.map +1 -0
  24. package/dist/src/lib/templates.js +122 -0
  25. package/dist/src/lib/templates.js.map +1 -0
  26. package/dist/src/lib/utils/edit-template.d.ts +10 -0
  27. package/dist/src/lib/utils/edit-template.d.ts.map +1 -0
  28. package/dist/src/lib/utils/edit-template.js +48 -0
  29. package/dist/src/lib/utils/edit-template.js.map +1 -0
  30. package/dist/src/lib/utils/fs.d.ts +10 -0
  31. package/dist/src/lib/utils/fs.d.ts.map +1 -0
  32. package/dist/src/lib/utils/fs.js +49 -0
  33. package/dist/src/lib/utils/fs.js.map +1 -0
  34. package/dist/src/lib/utils/getPkgManager.d.ts +1 -0
  35. package/dist/src/lib/utils/getPkgManager.js +21 -0
  36. package/dist/src/lib/utils/getPkgManager.js.map +1 -0
  37. package/dist/src/lib/utils/initInExistingProject.d.ts +1 -0
  38. package/dist/src/lib/utils/initInExistingProject.js +243 -0
  39. package/dist/src/lib/utils/initInExistingProject.js.map +1 -0
  40. package/dist/src/lib/utils/isRnefProject.d.ts +1 -0
  41. package/dist/src/lib/utils/isRnefProject.js +2 -0
  42. package/dist/src/lib/utils/isRnefProject.js.map +1 -0
  43. package/dist/src/lib/utils/migrateRnefProject.d.ts +2 -0
  44. package/dist/src/lib/utils/migrateRnefProject.js +206 -0
  45. package/dist/src/lib/utils/migrateRnefProject.js.map +1 -0
  46. package/dist/src/lib/utils/package-json.d.ts +2 -0
  47. package/dist/src/lib/utils/package-json.d.ts.map +1 -0
  48. package/dist/src/lib/utils/package-json.js +65 -0
  49. package/dist/src/lib/utils/package-json.js.map +1 -0
  50. package/dist/src/lib/utils/parse-cli-options.d.ts +14 -0
  51. package/dist/src/lib/utils/parse-cli-options.d.ts.map +1 -0
  52. package/dist/src/lib/utils/parse-cli-options.js +35 -0
  53. package/dist/src/lib/utils/parse-cli-options.js.map +1 -0
  54. package/dist/src/lib/utils/parsers.d.ts +10 -0
  55. package/dist/src/lib/utils/parsers.d.ts.map +1 -0
  56. package/dist/src/lib/utils/parsers.js +22 -0
  57. package/dist/src/lib/utils/parsers.js.map +1 -0
  58. package/dist/src/lib/utils/project-name.d.ts +8 -0
  59. package/dist/src/lib/utils/project-name.d.ts.map +1 -0
  60. package/dist/src/lib/utils/project-name.js +88 -0
  61. package/dist/src/lib/utils/project-name.js.map +1 -0
  62. package/dist/src/lib/utils/prompts.d.ts +14 -0
  63. package/dist/src/lib/utils/prompts.d.ts.map +1 -0
  64. package/dist/src/lib/utils/prompts.js +141 -0
  65. package/dist/src/lib/utils/prompts.js.map +1 -0
  66. package/dist/src/lib/utils/tarball.d.ts +8 -0
  67. package/dist/src/lib/utils/tarball.d.ts.map +1 -0
  68. package/dist/src/lib/utils/tarball.js +47 -0
  69. package/dist/src/lib/utils/tarball.js.map +1 -0
  70. package/dist/src/lib/utils/version.d.ts +1 -0
  71. package/dist/src/lib/utils/version.d.ts.map +1 -0
  72. package/dist/src/lib/utils/version.js +18 -0
  73. package/dist/src/lib/utils/version.js.map +1 -0
  74. package/package.json +34 -6
@@ -0,0 +1,141 @@
1
+ import { color, intro, isInteractive, note, outro, promptConfirm, promptMultiselect, promptSelect, promptText, relativeToCwd, RockError, } from '@rock-js/tools';
2
+ import { vice } from 'gradient-string';
3
+ import { validateProjectName } from './project-name.js';
4
+ import { getRockVersion } from './version.js';
5
+ export function printHelpMessage(templates, platforms) {
6
+ console.log(`
7
+ Usage: create-rock [options]
8
+
9
+ Options:
10
+
11
+ -h, --help Display help for command
12
+ -v, --version Output the version number
13
+ -d, --dir Create project in specified directory
14
+ -t, --template Specify template to use
15
+ -p, --platform Specify platform(s) to use
16
+ --plugin Specify plugin(s) to use
17
+ --bundler Specify bundler to use
18
+ --remote-cache-provider Specify remote cache provider
19
+ --override Override files in target directory
20
+ --install Install Node.js dependencies
21
+
22
+ Available templates:
23
+ ${templates.map((t) => t.name).join(', ')}
24
+
25
+ Available platforms:
26
+ ${platforms.map((p) => p.name).join(', ')}
27
+ `);
28
+ }
29
+ export function printVersionMessage() {
30
+ console.log(`${getRockVersion()}`);
31
+ }
32
+ export function printWelcomeMessage() {
33
+ console.log('');
34
+ intro(`Welcome to ${color.bold(vice('Rock'))}!`);
35
+ }
36
+ export function printByeMessage(targetDir, pkgManager, installDeps) {
37
+ const relativeDir = relativeToCwd(targetDir);
38
+ const nextSteps = [
39
+ `cd ${relativeDir}`,
40
+ installDeps ? undefined : `${pkgManager} install`,
41
+ `${pkgManager} run start starts dev server`,
42
+ `${pkgManager} run ios builds and runs iOS app`,
43
+ `${pkgManager} run android builds and runs Android app`,
44
+ ]
45
+ .filter(Boolean)
46
+ .join('\n');
47
+ note(nextSteps, 'Next steps');
48
+ outro('Success 🎉.');
49
+ }
50
+ export function promptProjectName(name) {
51
+ return promptText({
52
+ message: 'What is your app named?',
53
+ initialValue: name,
54
+ validate: validateProjectName,
55
+ });
56
+ }
57
+ export async function promptTemplate(templates) {
58
+ if (templates.length === 0) {
59
+ throw new RockError('No templates found');
60
+ }
61
+ return promptSelect({
62
+ message: 'Select a template:',
63
+ // @ts-expect-error todo
64
+ options: templates.map((template) => ({
65
+ value: template,
66
+ label: template.name,
67
+ })),
68
+ });
69
+ }
70
+ export function promptPlatforms(platforms) {
71
+ if (platforms.length === 0) {
72
+ throw new RockError('No platforms found');
73
+ }
74
+ const defaultPlatforms = platforms.filter((platform) => platform.name === 'android' || platform.name === 'ios');
75
+ return promptMultiselect({
76
+ message: 'What platforms do you want to start with?',
77
+ initialValues: defaultPlatforms,
78
+ // @ts-expect-error todo
79
+ options: platforms.map((platform) => ({
80
+ value: platform,
81
+ label: platform.name,
82
+ })),
83
+ });
84
+ }
85
+ export function promptPlugins(plugins) {
86
+ if (plugins.length === 0 || !isInteractive()) {
87
+ return Promise.resolve(null);
88
+ }
89
+ return promptMultiselect({
90
+ message: 'Select plugins:',
91
+ // @ts-expect-error todo fixup type
92
+ options: plugins.map((plugin) => ({
93
+ value: plugin,
94
+ label: plugin.name,
95
+ })),
96
+ required: false,
97
+ });
98
+ }
99
+ export function promptBundlers(bundlers) {
100
+ if (bundlers.length === 0) {
101
+ throw new RockError('No bundlers found');
102
+ }
103
+ return promptSelect({
104
+ message: 'Which bundler do you want to use?',
105
+ initialValues: [bundlers[0]],
106
+ // @ts-expect-error todo fixup type
107
+ options: bundlers.map((bundler) => ({
108
+ value: bundler,
109
+ label: bundler.name,
110
+ })),
111
+ });
112
+ }
113
+ export function promptRemoteCacheProvider() {
114
+ return promptSelect({
115
+ message: 'Which remote cache provider do you want to use?',
116
+ initialValue: 'github-actions',
117
+ options: [
118
+ {
119
+ value: 'github-actions',
120
+ label: 'GitHub Actions',
121
+ hint: 'Enable builds on your CI',
122
+ },
123
+ { value: null, label: 'None', hint: 'Local builds only' },
124
+ ],
125
+ });
126
+ }
127
+ export function confirmOverrideFiles(targetDir) {
128
+ return promptConfirm({
129
+ message: `"${targetDir}" is not empty, please choose:`,
130
+ confirmLabel: 'Continue and override files',
131
+ cancelLabel: 'Cancel operation',
132
+ });
133
+ }
134
+ export function promptInstallDependencies() {
135
+ return promptConfirm({
136
+ message: 'Do you want to install dependencies?',
137
+ confirmLabel: 'Yes',
138
+ cancelLabel: 'No',
139
+ });
140
+ }
141
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../../src/lib/utils/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function downloadTarballFromNpm(packageName: string, version: string | undefined, targetDir: string): Promise<string>;
2
+ /**
3
+ * Extracts a tarball to a temporary directory and returns the path to the extracted directory
4
+ * @param tarballPath - Path to the tarball to extract
5
+ * @param targetDir - Parent directory where temp directory will be created in
6
+ * @returns Path to the extracted directory
7
+ */
8
+ export declare function extractTarballToTempDirectory(targetDir: string, tarballPath: string): Promise<string>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tarball.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/tarball.ts"],"names":[],"mappings":"AAOA,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,oBAAW,EAClB,SAAS,EAAE,MAAM,mBA+BlB;AAED;;;;;GAKG;AAEH,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAcjB"}
@@ -0,0 +1,47 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { RockError } from '@rock-js/tools';
4
+ import packageJson from 'package-json';
5
+ import * as tar from 'tar';
6
+ import { getNameWithoutExtension } from './fs.js';
7
+ export async function downloadTarballFromNpm(packageName, version = 'latest', targetDir) {
8
+ try {
9
+ const metadata = await packageJson(packageName, { version });
10
+ const tarballUrl = metadata['dist']?.tarball;
11
+ if (!tarballUrl) {
12
+ throw new RockError('Tarball URL not found.');
13
+ }
14
+ const response = await fetch(tarballUrl);
15
+ if (!response.ok) {
16
+ throw new RockError(`Failed to fetch package ${packageName}: ${response.statusText}`);
17
+ }
18
+ const tarballPath = path.join(targetDir, `${packageName.replace('/', '-')}.tgz`);
19
+ // Write the tarball to disk
20
+ const arrayBuffer = await response.arrayBuffer();
21
+ fs.writeFileSync(tarballPath, new Uint8Array(arrayBuffer));
22
+ return tarballPath;
23
+ }
24
+ catch (error) {
25
+ throw new RockError(`Error downloading package ${packageName}`, {
26
+ cause: error,
27
+ });
28
+ }
29
+ }
30
+ /**
31
+ * Extracts a tarball to a temporary directory and returns the path to the extracted directory
32
+ * @param tarballPath - Path to the tarball to extract
33
+ * @param targetDir - Parent directory where temp directory will be created in
34
+ * @returns Path to the extracted directory
35
+ */
36
+ // This automatically handles both .tgz and .tar files
37
+ export async function extractTarballToTempDirectory(targetDir, tarballPath) {
38
+ const tempFolder = path.join(targetDir, `.temp-${getNameWithoutExtension(tarballPath)}-${Date.now()}`);
39
+ fs.mkdirSync(tempFolder, { recursive: true });
40
+ await tar.extract({
41
+ file: tarballPath,
42
+ cwd: tempFolder,
43
+ strip: 1, // Remove top-level directory
44
+ });
45
+ return tempFolder;
46
+ }
47
+ //# sourceMappingURL=tarball.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tarball.js","sourceRoot":"","sources":["../../../../src/lib/utils/tarball.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB,EACnB,OAAO,GAAG,QAAQ,EAClB,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAE7D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,SAAS,CACjB,2BAA2B,WAAW,KAAK,QAAQ,CAAC,UAAU,EAAE,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,SAAS,EACT,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CACvC,CAAC;QACF,4BAA4B;QAC5B,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3D,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,SAAS,CAAC,6BAA6B,WAAW,EAAE,EAAE;YAC9D,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,SAAiB,EACjB,WAAmB;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,SAAS,EACT,SAAS,uBAAuB,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAC;IACF,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,MAAM,GAAG,CAAC,OAAO,CAAC;QAChB,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,CAAC,EAAE,6BAA6B;KACxC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getRockVersion(): any;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/version.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,QAY7B"}
@@ -0,0 +1,18 @@
1
+ import * as fs from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { logger } from '@rock-js/tools';
5
+ export function getRockVersion() {
6
+ try {
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ // Note: account for 'dist' folder
9
+ const packageJsonPath = join(__dirname, '../../../../package.json');
10
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
11
+ return packageJson.version;
12
+ }
13
+ catch (error) {
14
+ logger.warn('Failed to get Rock version', error);
15
+ return null;
16
+ }
17
+ }
18
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/lib/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1D,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,39 @@
1
1
  {
2
2
  "name": "create-rock",
3
- "version": "0.0.1",
4
- "main": "index.js",
3
+ "version": "0.9.0",
4
+ "type": "module",
5
+ "types": "./dist/src/index.d.ts",
6
+ "exports": {
7
+ "types": "./dist/src/index.d.ts",
8
+ "default": "./dist/src/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
5
13
  "scripts": {
6
- "test": "echo \"Error: no test specified\" && exit 1"
14
+ "build": "tsc -p tsconfig.lib.json",
15
+ "dev": "tsc -p tsconfig.lib.json --watch",
16
+ "publish:npm": "npm publish --access public",
17
+ "publish:verdaccio": "npm publish --registry http://localhost:4873 --userconfig ../../.npmrc",
18
+ "e2e": "CI=true vitest --config vite.e2e.config.js"
19
+ },
20
+ "bin": {
21
+ "create-app": "./dist/src/bin.js"
22
+ },
23
+ "dependencies": {
24
+ "@rock-js/tools": "^0.9.0",
25
+ "gradient-string": "^3.0.0",
26
+ "minimist": "^1.2.8",
27
+ "package-json": "^10.0.1",
28
+ "tar": "^7.4.3",
29
+ "tslib": "^2.3.0"
30
+ },
31
+ "devDependencies": {
32
+ "@types/gradient-string": "^1.1.6",
33
+ "@rock-js/test-helpers": "^0.9.0",
34
+ "@types/minimist": "^1.2.5"
7
35
  },
8
- "author": "",
9
- "license": "ISC",
10
- "description": ""
36
+ "publishConfig": {
37
+ "access": "public"
38
+ }
11
39
  }