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.
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -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,3 @@
1
+ import type { ProjectOptions } from '../types/index.js';
2
+ export declare function getProjectOptions(projectName?: string, options?: any): Promise<ProjectOptions>;
3
+ //# sourceMappingURL=prompts.d.ts.map
@@ -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
+ }