sentri 1.1.2 → 2.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.
Files changed (60) hide show
  1. package/README.md +325 -181
  2. package/dist/cli.d.ts +0 -2
  3. package/dist/cli.js +10 -103
  4. package/dist/index.d.ts +1046 -11
  5. package/dist/index.js +1 -5
  6. package/package.json +13 -6
  7. package/templates/drizzle/auth.ts +47 -4
  8. package/templates/prisma/auth.ts +47 -4
  9. package/dist/cli.d.ts.map +0 -1
  10. package/dist/cli.js.map +0 -1
  11. package/dist/client.d.ts +0 -160
  12. package/dist/client.d.ts.map +0 -1
  13. package/dist/client.js +0 -45
  14. package/dist/client.js.map +0 -1
  15. package/dist/errors/AuthError.d.ts +0 -99
  16. package/dist/errors/AuthError.d.ts.map +0 -1
  17. package/dist/errors/AuthError.js +0 -97
  18. package/dist/errors/AuthError.js.map +0 -1
  19. package/dist/index.d.ts.map +0 -1
  20. package/dist/index.js.map +0 -1
  21. package/dist/libs/config.d.ts +0 -62
  22. package/dist/libs/config.d.ts.map +0 -1
  23. package/dist/libs/config.js +0 -97
  24. package/dist/libs/config.js.map +0 -1
  25. package/dist/libs/hash.d.ts +0 -17
  26. package/dist/libs/hash.d.ts.map +0 -1
  27. package/dist/libs/hash.js +0 -22
  28. package/dist/libs/hash.js.map +0 -1
  29. package/dist/libs/token.d.ts +0 -46
  30. package/dist/libs/token.d.ts.map +0 -1
  31. package/dist/libs/token.js +0 -118
  32. package/dist/libs/token.js.map +0 -1
  33. package/dist/middleware/authorize.d.ts +0 -18
  34. package/dist/middleware/authorize.d.ts.map +0 -1
  35. package/dist/middleware/authorize.js +0 -30
  36. package/dist/middleware/authorize.js.map +0 -1
  37. package/dist/middleware/errorHandler.d.ts +0 -71
  38. package/dist/middleware/errorHandler.d.ts.map +0 -1
  39. package/dist/middleware/errorHandler.js +0 -74
  40. package/dist/middleware/errorHandler.js.map +0 -1
  41. package/dist/middleware/permit.d.ts +0 -62
  42. package/dist/middleware/permit.d.ts.map +0 -1
  43. package/dist/middleware/permit.js +0 -61
  44. package/dist/middleware/permit.js.map +0 -1
  45. package/dist/middleware/protect.d.ts +0 -31
  46. package/dist/middleware/protect.d.ts.map +0 -1
  47. package/dist/middleware/protect.js +0 -54
  48. package/dist/middleware/protect.js.map +0 -1
  49. package/dist/middleware/router.d.ts +0 -34
  50. package/dist/middleware/router.d.ts.map +0 -1
  51. package/dist/middleware/router.js +0 -264
  52. package/dist/middleware/router.js.map +0 -1
  53. package/dist/services/auth.d.ts +0 -85
  54. package/dist/services/auth.d.ts.map +0 -1
  55. package/dist/services/auth.js +0 -173
  56. package/dist/services/auth.js.map +0 -1
  57. package/dist/types/auth.d.ts +0 -450
  58. package/dist/types/auth.d.ts.map +0 -1
  59. package/dist/types/auth.js +0 -21
  60. package/dist/types/auth.js.map +0 -1
package/dist/cli.d.ts CHANGED
@@ -1,3 +1 @@
1
1
  #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.js CHANGED
@@ -1,13 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { existsSync, copyFileSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
3
- import { join, dirname } from 'path';
4
- import { fileURLToPath } from 'url';
5
- const __dirname = dirname(fileURLToPath(import.meta.url));
6
- const COMMANDS = ['generate'];
7
- const ORMS = ['prisma', 'drizzle'];
8
- function help() {
9
- console.log(`
10
- sentri — auth/authorization library for Express
2
+ import {existsSync,mkdirSync,copyFileSync,writeFileSync,readFileSync}from'fs';import {dirname,join}from'path';import {fileURLToPath}from'url';var x=dirname(fileURLToPath(import.meta.url)),C=["generate"],y=["prisma","drizzle"];function g(){console.log(`
3
+ sentri \u2014 auth/authorization library for Express
11
4
 
12
5
  Usage:
13
6
  npx sentri <command> [options]
@@ -16,97 +9,11 @@ Commands:
16
9
  generate <prisma|drizzle>
17
10
  Generate adapter, auth config, and schema templates
18
11
  in src/lib/sentri/ and create a barrel at src/lib/index.ts
19
- `);
20
- }
21
- function generateSchemaFile(templatePath, destination, firstLinePrefix, label) {
22
- if (!existsSync(templatePath))
23
- return;
24
- mkdirSync(dirname(destination), { recursive: true });
25
- if (!existsSync(destination)) {
26
- copyFileSync(templatePath, destination);
27
- console.log(`Created ${label}`);
28
- }
29
- else {
30
- const templateContent = readFileSync(templatePath, 'utf-8');
31
- const lines = templateContent.split('\n');
32
- const firstLine = lines.findIndex((line) => line.startsWith(firstLinePrefix));
33
- if (firstLine !== -1) {
34
- const block = lines.slice(firstLine).join('\n').trimEnd();
35
- const existing = readFileSync(destination, 'utf-8');
36
- writeFileSync(destination, existing.trimEnd() + '\n\n' + block + '\n');
37
- console.log(`Updated ${label} (tables appended)`);
38
- }
39
- }
40
- }
41
- function generate(orm) {
42
- if (!orm || !ORMS.includes(orm)) {
43
- console.error(`Error: specify an ORM — usage: sentri generate <${ORMS.join('|')}>`);
44
- process.exit(1);
45
- }
46
- const templateDirectory = join(__dirname, '..', 'templates', orm);
47
- const destinationDirectory = join(process.cwd(), 'src', 'lib', 'sentri');
48
- const adapterDestination = join(destinationDirectory, 'adapter.ts');
49
- const authDestination = join(destinationDirectory, 'auth.ts');
50
- const barrelDestination = join(process.cwd(), 'src', 'lib', 'index.ts');
51
- if (!existsSync(templateDirectory)) {
52
- console.error(`Error: templates for "${orm}" not found. Try reinstalling sentri.`);
53
- process.exit(1);
54
- }
55
- if (existsSync(adapterDestination) || existsSync(authDestination)) {
56
- console.error('Error: files already exist in src/lib/sentri/. Remove them first if you want to regenerate.');
57
- process.exit(1);
58
- }
59
- mkdirSync(destinationDirectory, { recursive: true });
60
- copyFileSync(join(templateDirectory, 'adapter.ts'), adapterDestination);
61
- copyFileSync(join(templateDirectory, 'auth.ts'), authDestination);
62
- console.log('Created src/lib/sentri/adapter.ts');
63
- console.log('Created src/lib/sentri/auth.ts');
64
- if (orm === 'prisma') {
65
- generateSchemaFile(join(__dirname, '..', 'templates', 'prisma', 'schema.prisma'), join(process.cwd(), 'prisma', 'schema.prisma'), 'model ', 'prisma/schema.prisma');
66
- }
67
- else {
68
- generateSchemaFile(join(templateDirectory, 'schema.ts'), join(destinationDirectory, 'schema.ts'), 'export ', 'src/lib/sentri/schema.ts');
69
- }
70
- if (!existsSync(barrelDestination)) {
71
- mkdirSync(dirname(barrelDestination), { recursive: true });
72
- writeFileSync(barrelDestination, "export { createAdapter } from './sentri/adapter.js';\nexport { auth } from './sentri/auth.js';\n");
73
- console.log('Created src/lib/index.ts');
74
- }
75
- else {
76
- console.log('Skipped src/lib/index.ts (already exists)');
77
- }
78
- console.log('');
79
- console.log('Next steps:');
80
- if (orm === 'prisma') {
81
- console.log(' 1. Edit prisma/schema.prisma — change @map("email") to match your column name');
82
- console.log(' 2. Set DATABASE_URL and JWT_SECRET in your .env file');
83
- console.log(' 3. Run: npx prisma migrate dev && npx prisma generate');
84
- console.log(' 4. Edit src/lib/sentri/auth.ts — update validRoles to match your app');
85
- }
86
- else {
87
- console.log(' 1. Edit src/lib/sentri/schema.ts — change text(\'email\') to match your column name');
88
- console.log(' 2. Edit src/lib/sentri/auth.ts — update validRoles to match your app');
89
- console.log(' 3. Set JWT_SECRET in your .env file');
90
- }
91
- console.log(' Mount the router in your Express app:');
92
- console.log(" import { auth } from './lib/sentri/auth.js';");
93
- console.log(" app.use('/auth', auth.router());");
94
- console.log('');
95
- }
96
- const [, , command, ...args] = process.argv;
97
- if (!command || command === '--help' || command === '-h') {
98
- help();
99
- process.exit(0);
100
- }
101
- if (!COMMANDS.includes(command)) {
102
- console.error(`Unknown command: ${command}`);
103
- help();
104
- process.exit(1);
105
- }
106
- if (args.includes('--help') || args.includes('-h')) {
107
- help();
108
- process.exit(0);
109
- }
110
- if (command === 'generate')
111
- generate(args[0]);
112
- //# sourceMappingURL=cli.js.map
12
+ `);}function b(s,t,r,a){if(existsSync(s))if(mkdirSync(dirname(t),{recursive:true}),!existsSync(t))copyFileSync(s,t),console.log(`Created ${a}`);else {let o=readFileSync(s,"utf-8").split(`
13
+ `),f=o.findIndex(l=>l.startsWith(r));if(f!==-1){let l=o.slice(f).join(`
14
+ `).trimEnd(),S=readFileSync(t,"utf-8");writeFileSync(t,S.trimEnd()+`
15
+
16
+ `+l+`
17
+ `),console.log(`Updated ${a} (tables appended)`);}}}function R(s){(!s||!y.includes(s))&&(console.error(`Error: specify an ORM \u2014 usage: sentri generate <${y.join("|")}>`),process.exit(1));let t=join(x,"..","templates",s),r=join(process.cwd(),"src","lib","sentri"),a=join(r,"adapter.ts"),c=join(r,"auth.ts"),o=join(process.cwd(),"src","lib","index.ts");existsSync(t)||(console.error(`Error: templates for "${s}" not found. Try reinstalling sentri.`),process.exit(1)),(existsSync(a)||existsSync(c))&&(console.error("Error: files already exist in src/lib/sentri/. Remove them first if you want to regenerate."),process.exit(1)),mkdirSync(r,{recursive:true}),copyFileSync(join(t,"adapter.ts"),a),copyFileSync(join(t,"auth.ts"),c),console.log("Created src/lib/sentri/adapter.ts"),console.log("Created src/lib/sentri/auth.ts"),s==="prisma"?b(join(x,"..","templates","prisma","schema.prisma"),join(process.cwd(),"prisma","schema.prisma"),"model ","prisma/schema.prisma"):b(join(t,"schema.ts"),join(r,"schema.ts"),"export ","src/lib/sentri/schema.ts"),existsSync(o)?console.log("Skipped src/lib/index.ts (already exists)"):(mkdirSync(dirname(o),{recursive:true}),writeFileSync(o,`export { createAdapter } from './sentri/adapter.js';
18
+ export { auth } from './sentri/auth.js';
19
+ `),console.log("Created src/lib/index.ts")),console.log(""),console.log("Next steps:"),s==="prisma"?(console.log(' 1. Edit prisma/schema.prisma \u2014 change @map("email") to match your column name'),console.log(" 2. Set DATABASE_URL and JWT_SECRET in your .env file"),console.log(" 3. Run: npx prisma migrate dev && npx prisma generate"),console.log(" 4. Edit src/lib/sentri/auth.ts \u2014 update validRoles to match your app")):(console.log(" 1. Edit src/lib/sentri/schema.ts \u2014 change text('email') to match your column name"),console.log(" 2. Edit src/lib/sentri/auth.ts \u2014 update validRoles to match your app"),console.log(" 3. Set JWT_SECRET in your .env file")),console.log(" Mount the router in your Express app:"),console.log(" import { auth } from './lib/sentri/auth.js';"),console.log(" app.use('/auth', auth.router());"),console.log("");}var[,,i,...d]=process.argv;(!i||i==="--help"||i==="-h")&&(g(),process.exit(0));C.includes(i)||(console.error(`Unknown command: ${i}`),g(),process.exit(1));(d.includes("--help")||d.includes("-h"))&&(g(),process.exit(0));i==="generate"&&R(d[0]);