create-partylayer-app 0.6.2 → 0.7.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 +19 -0
- package/dist/doctor.d.ts +18 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +148 -0
- package/dist/doctor.js.map +1 -0
- package/dist/index.js +29 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Create a Canton dApp with PartyLayer wallet connectivity, configuration and a working development setup. React starters use the ready-made `ConnectButton` and show **Powered by PartyLayer** by default.
|
|
4
4
|
|
|
5
|
+
Use a supported Node LTS release. CLI 0.7.0 requires Node **20.12.0+**, matching its existing prompt-library dependency; your selected framework may require a newer runtime.
|
|
6
|
+
|
|
5
7
|
## Create an app
|
|
6
8
|
|
|
7
9
|
```bash
|
|
@@ -95,3 +97,20 @@ its dependencies are ready or that a live wallet connection has succeeded.
|
|
|
95
97
|
## License
|
|
96
98
|
|
|
97
99
|
MIT
|
|
100
|
+
|
|
101
|
+
## Diagnose an existing application
|
|
102
|
+
|
|
103
|
+
**Introduced in CLI 0.7.0** (release candidate until published). CLI 0.6.2 and older do not support `--doctor`.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
npx create-partylayer-app@latest --doctor .
|
|
107
|
+
npx create-partylayer-app@latest --doctor ./apps/web --json
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Select the application's directory, not just the monorepo root. Doctor reads package metadata and checks declared/installed PartyLayer entry packages, SemVer ranges, required peers, duplicate React/query contexts, Node engine requirements and competing local lockfiles. Linked/workspace dependencies are supported; non-SemVer specifications produce a warning when they cannot be compared offline. A workspace root may own the lockfile.
|
|
111
|
+
|
|
112
|
+
The command does not write project files, run application code or install scripts, read `.env`/`.npmrc`, access wallets, or contact the registry. `npx` itself may download the CLI from npm before Doctor starts. Warnings about old guide baselines do not mean an installed wallet is broken, and the offline report does not claim packages match npm's current `latest` tag.
|
|
113
|
+
|
|
114
|
+
Exit codes: **0** = no detected setup errors (warnings may exist), **1** = setup errors, **2** = invalid diagnostic arguments. `--json` emits a versioned report with `schemaVersion`, `toolVersion`, `checks` and `summary`. Do not combine Doctor with scaffold flags. The positional directory name `doctor` remains a valid scaffold target; diagnostics use the explicit `--doctor` flag.
|
|
115
|
+
|
|
116
|
+
Doctor does not prove provider mounting, application configuration, CIP-0103 transport behavior, login, signing, or successful ledger execution. Follow the [migration guide](../../docs/migration.md) and complete runtime acceptance for the application's actual wallet/network.
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type Check = {
|
|
2
|
+
id: string;
|
|
3
|
+
severity: 'pass' | 'warning' | 'error';
|
|
4
|
+
message: string;
|
|
5
|
+
remediation?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function runDoctor(projectDir: string): {
|
|
8
|
+
schemaVersion: number;
|
|
9
|
+
toolVersion: string;
|
|
10
|
+
checks: Check[];
|
|
11
|
+
summary: {
|
|
12
|
+
status: string;
|
|
13
|
+
errors: number;
|
|
14
|
+
warnings: number;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAaA,KAAK,KAAK,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA0C3G,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM;;;;;;;;;EAiF3C"}
|
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { existsSync, readFileSync, realpathSync } from 'node:fs';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import semver from 'semver';
|
|
6
|
+
const INTEGRATIONS = ['@partylayer/react', '@partylayer/sdk', '@partylayer/vue', '@partylayer/react-native', '@partylayer/provider', '@partylayer/session'];
|
|
7
|
+
const SAFE_NAME = /^(?:@[a-z0-9._-]+\/)?[a-z0-9][a-z0-9._-]*$/i;
|
|
8
|
+
function readManifest(path) {
|
|
9
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
10
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
11
|
+
throw new Error('Invalid manifest');
|
|
12
|
+
const manifest = parsed;
|
|
13
|
+
for (const field of ['dependencies', 'devDependencies', 'peerDependencies']) {
|
|
14
|
+
const value = manifest[field];
|
|
15
|
+
if (value !== undefined && (!value || typeof value !== 'object' || Array.isArray(value) || Object.values(value).some(item => typeof item !== 'string')))
|
|
16
|
+
throw new Error('Invalid dependency map');
|
|
17
|
+
}
|
|
18
|
+
return manifest;
|
|
19
|
+
}
|
|
20
|
+
/** Resolve metadata only. Never import/require the selected app or its dependencies. */
|
|
21
|
+
function installed(name, from) {
|
|
22
|
+
if (!SAFE_NAME.test(name))
|
|
23
|
+
return undefined;
|
|
24
|
+
const resolver = createRequire(from);
|
|
25
|
+
try {
|
|
26
|
+
let dir = dirname(resolver.resolve(name));
|
|
27
|
+
while (true) {
|
|
28
|
+
const path = join(dir, 'package.json');
|
|
29
|
+
if (existsSync(path)) {
|
|
30
|
+
const manifest = readManifest(path);
|
|
31
|
+
if (manifest.name === name)
|
|
32
|
+
return { manifest, path: realpathSync(path) };
|
|
33
|
+
}
|
|
34
|
+
const parent = dirname(dir);
|
|
35
|
+
if (parent === dir)
|
|
36
|
+
break;
|
|
37
|
+
dir = parent;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch { /* Package exports may hide metadata or the entry may not be built. */ }
|
|
41
|
+
for (const base of resolver.resolve.paths(name) ?? []) {
|
|
42
|
+
const path = join(base, name, 'package.json');
|
|
43
|
+
try {
|
|
44
|
+
const manifest = readManifest(path);
|
|
45
|
+
if (manifest.name === name)
|
|
46
|
+
return { manifest, path: realpathSync(path) };
|
|
47
|
+
}
|
|
48
|
+
catch { /* Continue through Node's normal lookup locations. */ }
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
export function runDoctor(projectDir) {
|
|
53
|
+
const tool = readManifest(fileURLToPath(new URL('../package.json', import.meta.url)));
|
|
54
|
+
const checks = [];
|
|
55
|
+
const add = (id, severity, message, remediation) => {
|
|
56
|
+
checks.push({ id, severity, message, ...(remediation ? { remediation } : {}) });
|
|
57
|
+
};
|
|
58
|
+
const finish = () => {
|
|
59
|
+
const errors = checks.filter(check => check.severity === 'error').length;
|
|
60
|
+
const warnings = checks.filter(check => check.severity === 'warning').length;
|
|
61
|
+
return { schemaVersion: 1, toolVersion: tool.version, checks, summary: { status: errors ? 'error' : warnings ? 'warning' : 'pass', errors, warnings } };
|
|
62
|
+
};
|
|
63
|
+
const engine = (name, manifest) => {
|
|
64
|
+
const range = manifest.engines?.node;
|
|
65
|
+
if (typeof range !== 'string' || !semver.validRange(range))
|
|
66
|
+
return;
|
|
67
|
+
const ok = semver.satisfies(process.versions.node, range);
|
|
68
|
+
add(`node:${name}`, ok ? 'pass' : 'error', `${name}: Node ${process.versions.node} ${ok ? 'meets' : 'does not meet'} its engine requirement.`, ok ? undefined : 'Use a supported Node LTS version accepted by this package, then reinstall dependencies.');
|
|
69
|
+
};
|
|
70
|
+
engine('create-partylayer-app', tool);
|
|
71
|
+
const manifestPath = join(projectDir, 'package.json');
|
|
72
|
+
let project;
|
|
73
|
+
try {
|
|
74
|
+
project = readManifest(manifestPath);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
add('project', 'error', 'No readable, valid package.json in the selected directory.', 'Run --doctor from the application root, or pass its directory. Repair invalid JSON before retrying.');
|
|
78
|
+
return finish();
|
|
79
|
+
}
|
|
80
|
+
add('project', 'pass', 'Application package.json is readable.');
|
|
81
|
+
engine('application', project);
|
|
82
|
+
const declared = { ...project.peerDependencies, ...project.devDependencies, ...project.dependencies };
|
|
83
|
+
const names = INTEGRATIONS.filter(name => name in declared);
|
|
84
|
+
if (!names.length)
|
|
85
|
+
add('integration', 'error', 'No supported PartyLayer entry package is declared.', 'For a React app: npm install @partylayer/react @tanstack/react-query. For other stacks, follow https://partylayer.xyz/docs/installation.');
|
|
86
|
+
const compare = (id, name, dependency, range) => {
|
|
87
|
+
const version = dependency.manifest.version;
|
|
88
|
+
if (!version || !semver.valid(version)) {
|
|
89
|
+
add(id, 'warning', `${name}: installed version metadata is not valid SemVer.`, 'Check local/workspace package metadata and build it before consuming it.');
|
|
90
|
+
}
|
|
91
|
+
else if (!semver.validRange(range)) {
|
|
92
|
+
add(id, 'warning', `${name}: local, tagged or non-SemVer dependency specification cannot be compared offline.`, 'Verify the resolved package and lockfile with your package manager.');
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const ok = semver.satisfies(version, range);
|
|
96
|
+
add(id, ok ? 'pass' : 'error', `${name} ${version} ${ok ? 'matches' : 'does not match'} its declared requirement.`, ok ? undefined : 'Reinstall using the existing lockfile; resolve the version mismatch before changing versions.');
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
for (const name of names) {
|
|
100
|
+
const dependency = installed(name, manifestPath);
|
|
101
|
+
if (!dependency) {
|
|
102
|
+
add(`installed:${name}`, 'error', `${name} is declared but its installed metadata cannot be resolved.`, 'Run your package manager install in the application workspace, then retry.');
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
compare(`installed:${name}`, name, dependency, declared[name]);
|
|
106
|
+
engine(name, dependency.manifest);
|
|
107
|
+
for (const [peer, range] of Object.entries(dependency.manifest.peerDependencies ?? {})) {
|
|
108
|
+
if (!SAFE_NAME.test(peer))
|
|
109
|
+
continue;
|
|
110
|
+
const resolved = installed(peer, dependency.path);
|
|
111
|
+
if (!resolved) {
|
|
112
|
+
if (dependency.manifest.peerDependenciesMeta?.[peer]?.optional)
|
|
113
|
+
continue;
|
|
114
|
+
add(`peer:${name}:${peer}`, 'error', `${name}: required peer ${peer} is missing.`, `Install a compatible ${peer} version in the application workspace; check the package's peerDependencies.`);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
compare(`peer:${name}:${peer}`, peer, resolved, range);
|
|
118
|
+
if (peer === 'react' || peer === 'react-dom' || peer === '@tanstack/react-query') {
|
|
119
|
+
const appPeer = installed(peer, manifestPath);
|
|
120
|
+
if (appPeer && declared[peer])
|
|
121
|
+
compare(`application-peer:${peer}`, peer, appPeer, declared[peer]);
|
|
122
|
+
if (appPeer && appPeer.path !== resolved.path)
|
|
123
|
+
add(`duplicate:${name}:${peer}`, 'error', `${name} and the application resolve different copies of ${peer}.`, 'Align workspace dependencies and deduplicate this context package with your package manager.');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const minimum = name === '@partylayer/react' ? '3.1.2' : name === '@partylayer/sdk' ? '0.20.1' : undefined;
|
|
128
|
+
if (minimum && dependency.manifest.version && semver.valid(dependency.manifest.version) && semver.lt(dependency.manifest.version, minimum)) {
|
|
129
|
+
add(`migration:${name}`, 'warning', `${name} predates the current integration guide baseline (${minimum}).`, 'Review https://partylayer.xyz/docs/migration before upgrading. This offline check does not query npm latest.');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
for (const framework of ['next', 'vite', 'nuxt']) {
|
|
133
|
+
if (framework in declared) {
|
|
134
|
+
const dependency = installed(framework, manifestPath);
|
|
135
|
+
if (dependency)
|
|
136
|
+
engine(framework, dependency.manifest);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const locks = ['package-lock.json', 'npm-shrinkwrap.json', 'pnpm-lock.yaml', 'yarn.lock', 'bun.lock', 'bun.lockb'].filter(file => existsSync(join(projectDir, file)));
|
|
140
|
+
const families = new Set(locks.map(file => file.startsWith('npm-') || file === 'package-lock.json' ? 'npm' : file.startsWith('bun.') ? 'bun' : file.split('-')[0]?.split('.')[0]));
|
|
141
|
+
if (families.size > 1)
|
|
142
|
+
add('lockfiles', 'warning', 'Lockfiles from multiple package managers exist in this application directory.', 'Choose the application package manager and reconcile stale lockfiles with your team. Doctor does not delete files.');
|
|
143
|
+
else
|
|
144
|
+
add('lockfiles', 'pass', locks.length ? 'No competing application lockfile families found.' : 'No application lockfile found; a workspace root may own it.');
|
|
145
|
+
add('scope', 'pass', 'Read-only metadata checks completed; no project code, install scripts, credentials or network requests were used.');
|
|
146
|
+
return finish();
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -28,17 +28,20 @@ const HELP = `${pc.bold('create-partylayer-app')} — scaffold a PartyLayer dApp
|
|
|
28
28
|
|
|
29
29
|
${pc.bold('Usage')}
|
|
30
30
|
npm create partylayer-app@latest [dir] [options]
|
|
31
|
+
npx create-partylayer-app@latest --doctor [dir] [--json]
|
|
31
32
|
|
|
32
33
|
${pc.bold('Options')}
|
|
33
34
|
-t, --template <id> ${TEMPLATES.map((t) => t.id).join(', ')}
|
|
34
35
|
--pm <manager> npm | pnpm | yarn
|
|
35
36
|
--no-install skip dependency install
|
|
36
37
|
--no-git skip git init
|
|
38
|
+
--doctor diagnose an existing app without changing it
|
|
39
|
+
--json machine-readable doctor report (requires --doctor)
|
|
37
40
|
-h, --help show this help
|
|
38
41
|
`;
|
|
39
42
|
async function main() {
|
|
40
43
|
const argv = mri(process.argv.slice(2), {
|
|
41
|
-
boolean: ['install', 'git', 'help'],
|
|
44
|
+
boolean: ['install', 'git', 'help', 'doctor', 'json'],
|
|
42
45
|
default: { install: true, git: true, help: false },
|
|
43
46
|
alias: { t: 'template', h: 'help' },
|
|
44
47
|
});
|
|
@@ -46,6 +49,31 @@ async function main() {
|
|
|
46
49
|
console.log(HELP);
|
|
47
50
|
return;
|
|
48
51
|
}
|
|
52
|
+
if (argv.doctor || argv.json) {
|
|
53
|
+
const allowed = new Set(['_', 'doctor', 'json', 'install', 'git', 'help', 'h']);
|
|
54
|
+
const raw = process.argv.slice(2);
|
|
55
|
+
if (!argv.doctor || argv._.length > 1 || Object.keys(argv).some(key => !allowed.has(key)) ||
|
|
56
|
+
raw.some(arg => ['--install', '--no-install', '--git', '--no-git'].includes(arg))) {
|
|
57
|
+
console.error('Usage: npx create-partylayer-app@latest --doctor [dir] [--json]. Do not combine diagnostic and scaffold options.');
|
|
58
|
+
process.exitCode = 2;
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const { runDoctor } = await import('./doctor.js');
|
|
62
|
+
const report = runDoctor(resolve(process.cwd(), String(argv._[0] ?? '.')));
|
|
63
|
+
if (argv.json)
|
|
64
|
+
console.log(JSON.stringify(report, null, 2));
|
|
65
|
+
else {
|
|
66
|
+
console.log(`PartyLayer doctor ${report.toolVersion} — offline installation checks`);
|
|
67
|
+
for (const check of report.checks) {
|
|
68
|
+
console.log(`[${check.severity.toUpperCase()}] ${check.message}`);
|
|
69
|
+
if (check.remediation)
|
|
70
|
+
console.log(` ${check.remediation}`);
|
|
71
|
+
}
|
|
72
|
+
console.log(`${report.summary.errors} error(s), ${report.summary.warnings} warning(s). Wallet login, configuration, signing and ledger execution require separate runtime tests.`);
|
|
73
|
+
}
|
|
74
|
+
process.exitCode = report.summary.errors ? 1 : 0;
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
49
77
|
p.intro(pc.bgYellow(pc.black(' create-partylayer-app ')));
|
|
50
78
|
const flagTemplate = typeof argv.template === 'string' ? argv.template : undefined;
|
|
51
79
|
if (flagTemplate && !isTemplateId(flagTemplate)) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC;;EAE9C,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-partylayer-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Create a Canton Network dApp with PartyLayer: React, Next.js, Vue and TypeScript starters with wallet integration and ready-made React Connect Wallet UI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -14,14 +14,16 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@clack/prompts": "1.5.1",
|
|
16
16
|
"mri": "1.2.0",
|
|
17
|
-
"picocolors": "1.1.1"
|
|
17
|
+
"picocolors": "1.1.1",
|
|
18
|
+
"semver": "7.8.0"
|
|
18
19
|
},
|
|
19
20
|
"devDependencies": {
|
|
20
21
|
"@types/node": "^20.11.0",
|
|
22
|
+
"@types/semver": "7.7.1",
|
|
21
23
|
"typescript": "^5.3.3"
|
|
22
24
|
},
|
|
23
25
|
"engines": {
|
|
24
|
-
"node": ">=
|
|
26
|
+
"node": ">=20.12.0"
|
|
25
27
|
},
|
|
26
28
|
"repository": {
|
|
27
29
|
"type": "git",
|
|
@@ -53,7 +55,7 @@
|
|
|
53
55
|
],
|
|
54
56
|
"scripts": {
|
|
55
57
|
"build": "tsc",
|
|
56
|
-
"test": "pnpm run build && node --test test
|
|
58
|
+
"test": "pnpm run build && node --test test/*.test.mjs",
|
|
57
59
|
"clean": "rm -rf dist *.tsbuildinfo"
|
|
58
60
|
}
|
|
59
61
|
}
|