@codecanva/nest-auth 0.1.0 → 0.2.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/INSTALLATION.md +682 -0
- package/README.md +200 -164
- package/dist/auth.module.d.ts.map +1 -1
- package/dist/auth.module.js +6 -0
- package/dist/auth.module.js.map +1 -1
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +270 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/templates.d.ts +21 -0
- package/dist/cli/templates.d.ts.map +1 -0
- package/dist/cli/templates.js +556 -0
- package/dist/cli/templates.js.map +1 -0
- package/dist/cli/utils.d.ts +55 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +235 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/filters/auth-exception.filter.d.ts +20 -0
- package/dist/filters/auth-exception.filter.d.ts.map +1 -0
- package/dist/filters/auth-exception.filter.js +40 -0
- package/dist/filters/auth-exception.filter.js.map +1 -0
- package/dist/filters/index.d.ts +2 -0
- package/dist/filters/index.d.ts.map +1 -0
- package/dist/filters/index.js +18 -0
- package/dist/filters/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +112 -107
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// `nest-auth` CLI — scaffold this auth module into an existing NestJS project.
|
|
5
|
+
//
|
|
6
|
+
// npx @codecanva/nest-auth init [options]
|
|
7
|
+
//
|
|
8
|
+
// Generates the user/auth integration files, merges env vars, wires the host
|
|
9
|
+
// AppModule + main.ts, and installs the required dependencies.
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const fs_1 = require("fs");
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const templates_1 = require("./templates");
|
|
15
|
+
const utils_1 = require("./utils");
|
|
16
|
+
function parseArgs(argv) {
|
|
17
|
+
const o = {
|
|
18
|
+
command: '',
|
|
19
|
+
store: 'mongoose',
|
|
20
|
+
force: false,
|
|
21
|
+
skipInstall: false,
|
|
22
|
+
dryRun: false,
|
|
23
|
+
wire: true,
|
|
24
|
+
help: false,
|
|
25
|
+
version: false,
|
|
26
|
+
};
|
|
27
|
+
for (let i = 0; i < argv.length; i++) {
|
|
28
|
+
const a = argv[i];
|
|
29
|
+
switch (a) {
|
|
30
|
+
case '-h':
|
|
31
|
+
case '--help':
|
|
32
|
+
o.help = true;
|
|
33
|
+
break;
|
|
34
|
+
case '-v':
|
|
35
|
+
case '--version':
|
|
36
|
+
o.version = true;
|
|
37
|
+
break;
|
|
38
|
+
case '--dir':
|
|
39
|
+
o.dir = argv[++i];
|
|
40
|
+
break;
|
|
41
|
+
case '--store':
|
|
42
|
+
o.store = argv[++i] === 'memory' ? 'memory' : 'mongoose';
|
|
43
|
+
break;
|
|
44
|
+
case '--force':
|
|
45
|
+
o.force = true;
|
|
46
|
+
break;
|
|
47
|
+
case '--skip-install':
|
|
48
|
+
o.skipInstall = true;
|
|
49
|
+
break;
|
|
50
|
+
case '--dry-run':
|
|
51
|
+
o.dryRun = true;
|
|
52
|
+
break;
|
|
53
|
+
case '--no-wire':
|
|
54
|
+
o.wire = false;
|
|
55
|
+
break;
|
|
56
|
+
case '-y':
|
|
57
|
+
case '--yes':
|
|
58
|
+
break; // accepted for convenience; the CLI is non-interactive
|
|
59
|
+
default:
|
|
60
|
+
if (!a.startsWith('-') && !o.command)
|
|
61
|
+
o.command = a;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (!o.command)
|
|
65
|
+
o.command = 'init';
|
|
66
|
+
return o;
|
|
67
|
+
}
|
|
68
|
+
function ownPackage() {
|
|
69
|
+
try {
|
|
70
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', '..', 'package.json'), 'utf8'));
|
|
71
|
+
return { name: pkg.name, version: pkg.version };
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return { name: '@codecanva/nest-auth', version: '0.0.0' };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function depsFor(pkg, store) {
|
|
78
|
+
const deps = [
|
|
79
|
+
pkg,
|
|
80
|
+
'@nestjs/jwt',
|
|
81
|
+
'@nestjs/passport',
|
|
82
|
+
'passport',
|
|
83
|
+
'passport-jwt',
|
|
84
|
+
'class-validator',
|
|
85
|
+
'class-transformer',
|
|
86
|
+
];
|
|
87
|
+
const devDeps = ['@types/passport-jwt'];
|
|
88
|
+
if (store === 'mongoose') {
|
|
89
|
+
deps.push('@nestjs/mongoose', 'mongoose', 'bcrypt');
|
|
90
|
+
devDeps.push('@types/bcrypt');
|
|
91
|
+
}
|
|
92
|
+
return { deps, devDeps };
|
|
93
|
+
}
|
|
94
|
+
function printHelp(pkg) {
|
|
95
|
+
console.log(`
|
|
96
|
+
${utils_1.c.bold(`${pkg} — installer`)}
|
|
97
|
+
|
|
98
|
+
${utils_1.c.bold('Usage')}
|
|
99
|
+
npx ${pkg} init [options]
|
|
100
|
+
|
|
101
|
+
${utils_1.c.bold('Options')}
|
|
102
|
+
--store <mongoose|memory> Persistence to scaffold (default: mongoose)
|
|
103
|
+
--dir <path> Target project root (default: current directory)
|
|
104
|
+
--no-wire Don't touch app.module.ts / main.ts
|
|
105
|
+
--skip-install Don't install npm dependencies
|
|
106
|
+
--force Overwrite files that already exist
|
|
107
|
+
--dry-run Show what would happen, write nothing
|
|
108
|
+
-h, --help Show this help
|
|
109
|
+
-v, --version Show version
|
|
110
|
+
|
|
111
|
+
${utils_1.c.bold('Examples')}
|
|
112
|
+
${utils_1.c.dim('# Production setup (Mongoose persistence) in the current project')}
|
|
113
|
+
npx ${pkg} init
|
|
114
|
+
|
|
115
|
+
${utils_1.c.dim('# Quick trial with an in-memory store, no DB needed')}
|
|
116
|
+
npx ${pkg} init --store memory
|
|
117
|
+
|
|
118
|
+
${utils_1.c.dim('# Preview the changes first')}
|
|
119
|
+
npx ${pkg} init --dry-run
|
|
120
|
+
`);
|
|
121
|
+
}
|
|
122
|
+
function runInit(pkg, opts) {
|
|
123
|
+
const root = (0, utils_1.resolveDir)(opts.dir);
|
|
124
|
+
utils_1.log.info(utils_1.c.bold(`\n${pkg} — installing into ${utils_1.c.cyan(root)}\n`));
|
|
125
|
+
if (opts.dryRun)
|
|
126
|
+
utils_1.log.warn('dry run: no files will be written\n');
|
|
127
|
+
const project = (0, utils_1.loadProject)(root);
|
|
128
|
+
if (!project) {
|
|
129
|
+
utils_1.log.err(`No package.json found in ${root}. Run this inside a NestJS project.`);
|
|
130
|
+
return 1;
|
|
131
|
+
}
|
|
132
|
+
if (!(0, utils_1.isNestProject)(project)) {
|
|
133
|
+
utils_1.log.err(`${root} doesn't look like a NestJS project (no @nestjs/core dependency).`);
|
|
134
|
+
return 1;
|
|
135
|
+
}
|
|
136
|
+
const plan = (0, templates_1.buildPlan)(pkg, opts.store);
|
|
137
|
+
utils_1.log.step(`Scaffolding files (${utils_1.c.bold(opts.store)} persistence)`);
|
|
138
|
+
let wrote = 0;
|
|
139
|
+
let skipped = 0;
|
|
140
|
+
for (const f of plan.files) {
|
|
141
|
+
const dest = (0, path_1.join)(project.srcDir, f.rel);
|
|
142
|
+
const result = (0, utils_1.writeFileSafe)(dest, f.content, {
|
|
143
|
+
force: opts.force,
|
|
144
|
+
dryRun: opts.dryRun,
|
|
145
|
+
});
|
|
146
|
+
const shown = relForLog(root, dest);
|
|
147
|
+
if (result === 'skipped') {
|
|
148
|
+
utils_1.log.skip(`${shown} (exists — use --force to overwrite)`);
|
|
149
|
+
skipped++;
|
|
150
|
+
}
|
|
151
|
+
else if (result === 'would-write') {
|
|
152
|
+
utils_1.log.ok(`would create ${shown}`);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
utils_1.log.ok(`created ${shown}`);
|
|
156
|
+
wrote++;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Env files
|
|
160
|
+
utils_1.log.step('Merging environment variables');
|
|
161
|
+
for (const envName of ['.env', '.env.example']) {
|
|
162
|
+
const envPath = (0, path_1.join)(root, envName);
|
|
163
|
+
// Only create .env.example proactively; touch .env only if it exists or we create it intentionally.
|
|
164
|
+
const added = (0, utils_1.mergeEnvFile)(envPath, plan.env, opts.dryRun);
|
|
165
|
+
if (added.length > 0) {
|
|
166
|
+
utils_1.log.ok(`${opts.dryRun ? 'would add' : 'added'} ${added.join(', ')} → ${relForLog(root, envPath)}`);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
utils_1.log.skip(`${relForLog(root, envPath)} already has the keys`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Wiring
|
|
173
|
+
if (opts.wire) {
|
|
174
|
+
utils_1.log.step('Wiring AppModule + main.ts');
|
|
175
|
+
if (project.appModulePath) {
|
|
176
|
+
const r = (0, utils_1.patchAppModule)(project.appModulePath, plan.integrationModule, plan.integrationImportPath, opts.dryRun);
|
|
177
|
+
const shown = relForLog(root, project.appModulePath);
|
|
178
|
+
if (r === 'patched')
|
|
179
|
+
utils_1.log.ok(`imported ${plan.integrationModule} into ${shown} ${utils_1.c.dim('(.bak saved)')}`);
|
|
180
|
+
else if (r === 'already')
|
|
181
|
+
utils_1.log.skip(`${shown} already imports ${plan.integrationModule}`);
|
|
182
|
+
else
|
|
183
|
+
utils_1.log.warn(`couldn't auto-edit ${shown} — add ${plan.integrationModule} to its imports manually`);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
utils_1.log.warn('app.module.ts not found — add AuthIntegrationModule to your root module manually');
|
|
187
|
+
}
|
|
188
|
+
if (project.mainPath) {
|
|
189
|
+
const r = (0, utils_1.patchMain)(project.mainPath, opts.dryRun);
|
|
190
|
+
const shown = relForLog(root, project.mainPath);
|
|
191
|
+
if (r === 'patched')
|
|
192
|
+
utils_1.log.ok(`added global ValidationPipe to ${shown} ${utils_1.c.dim('(.bak saved)')}`);
|
|
193
|
+
else if (r === 'already')
|
|
194
|
+
utils_1.log.skip(`${shown} already configures a global pipe`);
|
|
195
|
+
else
|
|
196
|
+
utils_1.log.warn(`couldn't auto-edit ${shown} — add a global ValidationPipe manually`);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
utils_1.log.warn('main.ts not found — enable a global ValidationPipe manually');
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
utils_1.log.step('Skipping wiring (--no-wire)');
|
|
204
|
+
}
|
|
205
|
+
// Install
|
|
206
|
+
const { deps, devDeps } = depsFor(pkg, opts.store);
|
|
207
|
+
if (opts.skipInstall || opts.dryRun) {
|
|
208
|
+
utils_1.log.step('Skipping dependency install');
|
|
209
|
+
const pm = (0, utils_1.detectPackageManager)(root);
|
|
210
|
+
const add = pm === 'npm' ? 'install' : 'add';
|
|
211
|
+
utils_1.log.info(` ${utils_1.c.dim(`run: ${pm} ${add} ${deps.join(' ')}`)}\n ${utils_1.c.dim(` ${pm} ${add} -D ${devDeps.join(' ')}`)}`);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
utils_1.log.step('Installing dependencies');
|
|
215
|
+
const pm = (0, utils_1.detectPackageManager)(root);
|
|
216
|
+
const ok = (0, utils_1.runInstall)(root, pm, deps, devDeps);
|
|
217
|
+
if (!ok)
|
|
218
|
+
return 1;
|
|
219
|
+
}
|
|
220
|
+
printNextSteps(pkg, opts, project.appModulePath != null);
|
|
221
|
+
return 0;
|
|
222
|
+
}
|
|
223
|
+
function printNextSteps(pkg, opts, hasAppModule) {
|
|
224
|
+
const lines = [];
|
|
225
|
+
lines.push('', utils_1.c.bold('Next steps'));
|
|
226
|
+
lines.push(` 1. Set real ${utils_1.c.cyan('JWT_ACCESS_SECRET')} / ${utils_1.c.cyan('JWT_REFRESH_SECRET')} / ${utils_1.c.cyan('TOKEN_HASH_PEPPER')} in ${utils_1.c.cyan('.env')}.`);
|
|
227
|
+
if (!hasAppModule || !opts.wire) {
|
|
228
|
+
lines.push(` 2. Import ${utils_1.c.cyan('AuthIntegrationModule')} in your root AppModule.`);
|
|
229
|
+
}
|
|
230
|
+
if (opts.store === 'mongoose') {
|
|
231
|
+
lines.push(` ${hasAppModule && opts.wire ? '2' : '3'}. Ensure a Mongoose connection is configured (${utils_1.c.cyan('MongooseModule.forRoot(...)')}) at the app root.`);
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
lines.push(` ${hasAppModule && opts.wire ? '2' : '3'}. The in-memory validator ships a demo user (${utils_1.c.dim('demo@example.com / password123')}) — replace it for real use.`);
|
|
235
|
+
}
|
|
236
|
+
lines.push('');
|
|
237
|
+
lines.push(utils_1.c.bold(' Smoke test'));
|
|
238
|
+
if (opts.store === 'mongoose') {
|
|
239
|
+
lines.push(utils_1.c.dim(` curl -X POST localhost:3000/user/register -H 'content-type: application/json' \\`));
|
|
240
|
+
lines.push(utils_1.c.dim(` -d '{"email":"a@b.com","password":"password123"}'`));
|
|
241
|
+
}
|
|
242
|
+
lines.push(utils_1.c.dim(` curl -i -X POST localhost:3000/auth/login -H 'content-type: application/json' \\`));
|
|
243
|
+
lines.push(utils_1.c.dim(` -d '{"email":"${opts.store === 'memory' ? 'demo@example.com' : 'a@b.com'}","password":"password123"}'`));
|
|
244
|
+
lines.push(utils_1.c.dim(` # wrong password → 401 {"message":"Invalid credentials"}`));
|
|
245
|
+
lines.push('');
|
|
246
|
+
console.log(lines.join('\n'));
|
|
247
|
+
}
|
|
248
|
+
function relForLog(root, abs) {
|
|
249
|
+
return abs.startsWith(root) ? abs.slice(root.length).replace(/^[\\/]/, '') : abs;
|
|
250
|
+
}
|
|
251
|
+
function main() {
|
|
252
|
+
const opts = parseArgs(process.argv.slice(2));
|
|
253
|
+
const { name, version } = ownPackage();
|
|
254
|
+
if (opts.version) {
|
|
255
|
+
console.log(version);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
if (opts.help || opts.command === 'help') {
|
|
259
|
+
printHelp(name);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (opts.command !== 'init') {
|
|
263
|
+
utils_1.log.err(`Unknown command "${opts.command}". Try: ${name} init --help`);
|
|
264
|
+
process.exitCode = 1;
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
process.exitCode = runInit(name, opts);
|
|
268
|
+
}
|
|
269
|
+
main();
|
|
270
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type StoreKind = 'mongoose' | 'memory';
|
|
2
|
+
export interface GeneratedFile {
|
|
3
|
+
/** Path relative to the project's source dir (e.g. `auth/auth.controller.ts`). */
|
|
4
|
+
rel: string;
|
|
5
|
+
content: string;
|
|
6
|
+
}
|
|
7
|
+
export interface EnvEntry {
|
|
8
|
+
key: string;
|
|
9
|
+
value: string;
|
|
10
|
+
comment?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Plan {
|
|
13
|
+
files: GeneratedFile[];
|
|
14
|
+
env: EnvEntry[];
|
|
15
|
+
/** Module to add to AppModule's `imports`. */
|
|
16
|
+
integrationModule: string;
|
|
17
|
+
/** Import path for that module, relative to the source dir (no extension). */
|
|
18
|
+
integrationImportPath: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function buildPlan(pkg: string, store: StoreKind): Plan;
|
|
21
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/lib/cli/templates.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,8CAA8C;IAC9C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAyiBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAE7D"}
|