create-universal-dapp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +165 -0
- package/dist/commands/create.d.ts +2 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +52 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/nextjs.d.ts +3 -0
- package/dist/templates/nextjs.d.ts.map +1 -0
- package/dist/templates/nextjs.js +406 -0
- package/dist/templates/nextjs.js.map +1 -0
- package/dist/templates/vite.d.ts +3 -0
- package/dist/templates/vite.d.ts.map +1 -0
- package/dist/templates/vite.js +784 -0
- package/dist/templates/vite.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/package-manager.d.ts +4 -0
- package/dist/utils/package-manager.d.ts.map +1 -0
- package/dist/utils/package-manager.js +67 -0
- package/dist/utils/package-manager.js.map +1 -0
- package/dist/utils/prompts.d.ts +3 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +55 -0
- package/dist/utils/prompts.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite.js","sourceRoot":"","sources":["../../src/templates/vite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ProjectOptions {
|
|
2
|
+
projectName: string;
|
|
3
|
+
framework: 'nextjs' | 'vite';
|
|
4
|
+
eslint: boolean;
|
|
5
|
+
targetDir: string;
|
|
6
|
+
}
|
|
7
|
+
export interface TemplateConfig {
|
|
8
|
+
framework: 'nextjs' | 'vite';
|
|
9
|
+
eslint: boolean;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ProjectOptions } from '../types/index.js';
|
|
2
|
+
export declare function installDependencies(options: ProjectOptions): Promise<void>;
|
|
3
|
+
export declare function detectPackageManager(): Promise<'npm' | 'yarn' | 'pnpm'>;
|
|
4
|
+
//# sourceMappingURL=package-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDhF;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,CAY7E"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
export async function installDependencies(options) {
|
|
5
|
+
const spinner = ora('Installing dependencies...').start();
|
|
6
|
+
try {
|
|
7
|
+
// Install base dependencies
|
|
8
|
+
await execa('npm', ['install'], {
|
|
9
|
+
cwd: options.targetDir,
|
|
10
|
+
stdio: 'pipe'
|
|
11
|
+
});
|
|
12
|
+
spinner.text = 'Installing Push Chain packages...';
|
|
13
|
+
// Install Push Chain specific packages
|
|
14
|
+
await execa('npm', ['install', '@pushchain/core', '@pushchain/ui-kit'], {
|
|
15
|
+
cwd: options.targetDir,
|
|
16
|
+
stdio: 'pipe'
|
|
17
|
+
});
|
|
18
|
+
// Install Tailwind CSS dev dependencies (always, Tailwind-only setup)
|
|
19
|
+
spinner.text = 'Installing Tailwind CSS...';
|
|
20
|
+
const tailwindDevDeps = [
|
|
21
|
+
'tailwindcss',
|
|
22
|
+
'autoprefixer',
|
|
23
|
+
'postcss'
|
|
24
|
+
];
|
|
25
|
+
await execa('npm', ['install', '--save-dev', ...tailwindDevDeps], {
|
|
26
|
+
cwd: options.targetDir,
|
|
27
|
+
stdio: 'pipe'
|
|
28
|
+
});
|
|
29
|
+
// Install ESLint if requested
|
|
30
|
+
if (options.eslint) {
|
|
31
|
+
spinner.text = 'Installing ESLint...';
|
|
32
|
+
const eslintPackages = [
|
|
33
|
+
'eslint',
|
|
34
|
+
'@typescript-eslint/eslint-plugin',
|
|
35
|
+
'@typescript-eslint/parser',
|
|
36
|
+
'eslint-plugin-react',
|
|
37
|
+
'eslint-plugin-react-hooks'
|
|
38
|
+
];
|
|
39
|
+
await execa('npm', ['install', '--save-dev', ...eslintPackages], {
|
|
40
|
+
cwd: options.targetDir,
|
|
41
|
+
stdio: 'pipe'
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
spinner.succeed('Dependencies installed successfully');
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
spinner.fail('Failed to install dependencies');
|
|
48
|
+
console.error(chalk.red('Error:'), error);
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export async function detectPackageManager() {
|
|
53
|
+
try {
|
|
54
|
+
await execa('pnpm', ['--version']);
|
|
55
|
+
return 'pnpm';
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
try {
|
|
59
|
+
await execa('yarn', ['--version']);
|
|
60
|
+
return 'yarn';
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return 'npm';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=package-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAuB;IAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE1D,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;YAC9B,GAAG,EAAE,OAAO,CAAC,SAAS;YACtB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,GAAG,mCAAmC,CAAC;QAEnD,uCAAuC;QACvC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,EAAE;YACtE,GAAG,EAAE,OAAO,CAAC,SAAS;YACtB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,sEAAsE;QACtE,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC;QAC5C,MAAM,eAAe,GAAG;YACtB,aAAa;YACb,cAAc;YACd,SAAS;SACV,CAAC;QACF,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,EAAE;YAChE,GAAG,EAAE,OAAO,CAAC,SAAS;YACtB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,8BAA8B;QAC9B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC;YACtC,MAAM,cAAc,GAAG;gBACrB,QAAQ;gBACR,kCAAkC;gBAClC,2BAA2B;gBAC3B,qBAAqB;gBACrB,2BAA2B;aAC5B,CAAC;YAEF,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC,EAAE;gBAC/D,GAAG,EAAE,OAAO,CAAC,SAAS;gBACtB,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,wBAAsB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAyDpG"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
export async function getProjectOptions(projectName, options) {
|
|
4
|
+
const questions = [];
|
|
5
|
+
// Project name
|
|
6
|
+
if (!projectName) {
|
|
7
|
+
questions.push({
|
|
8
|
+
type: 'input',
|
|
9
|
+
name: 'projectName',
|
|
10
|
+
message: 'What is your project name?',
|
|
11
|
+
default: 'my-push-app',
|
|
12
|
+
validate: (input) => {
|
|
13
|
+
if (!input.trim()) {
|
|
14
|
+
return 'Project name cannot be empty';
|
|
15
|
+
}
|
|
16
|
+
if (!/^[a-z0-9-_]+$/.test(input)) {
|
|
17
|
+
return 'Project name can only contain lowercase letters, numbers, hyphens, and underscores';
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
// Framework selection
|
|
24
|
+
if (!options?.framework) {
|
|
25
|
+
questions.push({
|
|
26
|
+
type: 'list',
|
|
27
|
+
name: 'framework',
|
|
28
|
+
message: 'Which framework would you like to use?',
|
|
29
|
+
choices: [
|
|
30
|
+
{ name: 'Next.js (React with SSR/SSG)', value: 'nextjs' },
|
|
31
|
+
{ name: 'Vite (React SPA)', value: 'vite' }
|
|
32
|
+
],
|
|
33
|
+
default: 'nextjs'
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
// ESLint
|
|
37
|
+
if (options?.eslint === undefined) {
|
|
38
|
+
questions.push({
|
|
39
|
+
type: 'confirm',
|
|
40
|
+
name: 'eslint',
|
|
41
|
+
message: 'Would you like to include ESLint for code linting?',
|
|
42
|
+
default: true
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const answers = await inquirer.prompt(questions);
|
|
46
|
+
const finalProjectName = projectName || answers.projectName;
|
|
47
|
+
const targetDir = path.resolve(process.cwd(), finalProjectName);
|
|
48
|
+
return {
|
|
49
|
+
projectName: finalProjectName,
|
|
50
|
+
framework: options?.framework || answers.framework,
|
|
51
|
+
eslint: options?.eslint !== undefined ? options.eslint : answers.eslint,
|
|
52
|
+
targetDir
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAoB,EAAE,OAAa;IACzE,MAAM,SAAS,GAAG,EAAE,CAAC;IAErB,eAAe;IACf,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,4BAA4B;YACrC,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;oBAClB,OAAO,8BAA8B,CAAC;gBACxC,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,OAAO,oFAAoF,CAAC;gBAC9F,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACxB,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,wCAAwC;YACjD,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACzD,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE;aAC5C;YACD,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;IAED,SAAS;IACT,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,oDAAoD;YAC7D,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEjD,MAAM,gBAAgB,GAAG,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAEhE,OAAO;QACL,WAAW,EAAE,gBAAgB;QAC7B,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS;QAClD,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;QACvE,SAAS;KACV,CAAC;AACJ,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "create-universal-dapp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "CLI tool to scaffold Push Chain universal applications with Next.js or Vite",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"create-universal-dapp": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/**/*",
|
|
12
|
+
"README.md",
|
|
13
|
+
"package.json"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"dev": "tsx src/index.ts",
|
|
18
|
+
"start": "node dist/index.js",
|
|
19
|
+
"prepublishOnly": "npm run build",
|
|
20
|
+
"test": "echo \"No tests specified\" && exit 0"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"push-chain",
|
|
27
|
+
"cli",
|
|
28
|
+
"scaffold",
|
|
29
|
+
"nextjs",
|
|
30
|
+
"vite",
|
|
31
|
+
"react",
|
|
32
|
+
"universal-app",
|
|
33
|
+
"blockchain",
|
|
34
|
+
"web3",
|
|
35
|
+
"universal-wallet"
|
|
36
|
+
],
|
|
37
|
+
"author": "Abhishek Singh (abhishek-01k)",
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/pushchainxyz/create-universal-dapp.git"
|
|
42
|
+
},
|
|
43
|
+
"homepage": "https://github.com/pushchainxyz/create-universal-dapp#readme",
|
|
44
|
+
"bugs": {
|
|
45
|
+
"url": "https://github.com/pushchainxyz/create-universal-dapp/issues"
|
|
46
|
+
},
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=16.0.0",
|
|
49
|
+
"npm": ">=7.0.0"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"commander": "^11.1.0",
|
|
53
|
+
"inquirer": "^9.2.12",
|
|
54
|
+
"chalk": "^5.3.0",
|
|
55
|
+
"ora": "^7.0.1",
|
|
56
|
+
"fs-extra": "^11.1.1",
|
|
57
|
+
"execa": "^8.0.1"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@types/node": "^20.8.0",
|
|
61
|
+
"@types/inquirer": "^9.0.7",
|
|
62
|
+
"@types/fs-extra": "^11.0.4",
|
|
63
|
+
"typescript": "^5.2.2",
|
|
64
|
+
"tsx": "^3.14.0"
|
|
65
|
+
}
|
|
66
|
+
}
|