@nauth-toolkit/mfa-email 0.1.97 → 0.1.99
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/dist/src/openapi/components.schemas.json +61 -0
- package/dist/src/openapi/generate-openapi.d.ts +8 -0
- package/dist/src/openapi/generate-openapi.d.ts.map +1 -0
- package/dist/src/openapi/generate-openapi.js +193 -0
- package/dist/src/openapi/generate-openapi.js.map +1 -0
- package/dist/src/openapi/index.d.ts +26 -0
- package/dist/src/openapi/index.d.ts.map +1 -0
- package/dist/src/openapi/index.js +21 -0
- package/dist/src/openapi/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -3
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.3",
|
|
3
|
+
"components": {
|
|
4
|
+
"schemas": {
|
|
5
|
+
"MfaEmailSendEmailMFACodeDTO": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"session": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Challenge session token"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"required": [
|
|
14
|
+
"session"
|
|
15
|
+
],
|
|
16
|
+
"additionalProperties": false,
|
|
17
|
+
"description": "Send Email MFA Code DTO\n\nRequest Email code during MFA challenge."
|
|
18
|
+
},
|
|
19
|
+
"MfaEmailSetupEmailMFADTO": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"properties": {
|
|
22
|
+
"email": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Email address for Email MFA Must be a valid email address format",
|
|
25
|
+
"examples": [
|
|
26
|
+
"user@example.com"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"deviceName": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "User-friendly device name"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"required": [
|
|
35
|
+
"email"
|
|
36
|
+
],
|
|
37
|
+
"additionalProperties": false,
|
|
38
|
+
"description": "Setup Email MFA DTO\n\nConfigure Email as MFA method. Sends verification code to email address."
|
|
39
|
+
},
|
|
40
|
+
"MfaEmailVerifyEmailMFASetupDTO": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"email": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "Email address receiving the code"
|
|
46
|
+
},
|
|
47
|
+
"code": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "Email verification code"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"required": [
|
|
53
|
+
"email",
|
|
54
|
+
"code"
|
|
55
|
+
],
|
|
56
|
+
"additionalProperties": false,
|
|
57
|
+
"description": "Verify Email MFA Setup DTO\n\nSubmit code to complete Email MFA setup."
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-openapi.d.ts","sourceRoot":"","sources":["../../../src/openapi/generate-openapi.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CA+C7C"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.generateOpenApiSchemas = generateOpenApiSchemas;
|
|
37
|
+
const node_fs_1 = require("node:fs");
|
|
38
|
+
const node_path_1 = require("node:path");
|
|
39
|
+
const ts_json_schema_generator_1 = require("ts-json-schema-generator");
|
|
40
|
+
const ts = __importStar(require("typescript"));
|
|
41
|
+
const SCHEMA_PREFIX = 'MfaEmail';
|
|
42
|
+
/**
|
|
43
|
+
* Build-time OpenAPI schema generator for `@nauth-toolkit/mfa-email` DTOs.
|
|
44
|
+
*
|
|
45
|
+
* Output:
|
|
46
|
+
* - `dist/src/openapi/components.schemas.json`
|
|
47
|
+
*/
|
|
48
|
+
function generateOpenApiSchemas() {
|
|
49
|
+
// Compiled output path: `dist/src/openapi` → package root is `../../..`
|
|
50
|
+
const packageRoot = (0, node_path_1.resolve)(__dirname, '..', '..', '..');
|
|
51
|
+
const tsconfigPath = (0, node_path_1.join)(packageRoot, 'tsconfig.json');
|
|
52
|
+
const outputDir = __dirname;
|
|
53
|
+
const outputJsonPath = (0, node_path_1.join)(outputDir, 'components.schemas.json');
|
|
54
|
+
// Temporary TS source file used only for schema generation.
|
|
55
|
+
// Must live under `rootDir` (rootDir is `./` for these packages).
|
|
56
|
+
const tempRegistryPath = (0, node_path_1.join)(packageRoot, 'src', 'openapi', '_nauth-openapi-dto-registry.ts');
|
|
57
|
+
(0, node_fs_1.mkdirSync)(outputDir, { recursive: true });
|
|
58
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(tempRegistryPath), { recursive: true });
|
|
59
|
+
const dtoFiles = listDtoSourceFiles((0, node_path_1.join)(packageRoot, 'src', 'dto'));
|
|
60
|
+
const exportedSymbolsByModule = dtoFiles.map((filePath, idx) => ({
|
|
61
|
+
namespace: `Dtos${idx}`,
|
|
62
|
+
modulePath: filePath,
|
|
63
|
+
symbols: collectExportedSymbols(filePath),
|
|
64
|
+
}));
|
|
65
|
+
const allSymbolsCount = exportedSymbolsByModule.reduce((acc, m) => acc + m.symbols.length, 0);
|
|
66
|
+
if (allSymbolsCount === 0) {
|
|
67
|
+
throw new Error('OpenAPI generation failed: no exported DTO symbols found under src/dto/.');
|
|
68
|
+
}
|
|
69
|
+
(0, node_fs_1.writeFileSync)(tempRegistryPath, renderRegistryType(exportedSymbolsByModule), 'utf8');
|
|
70
|
+
try {
|
|
71
|
+
const generatorConfig = {
|
|
72
|
+
path: tempRegistryPath,
|
|
73
|
+
tsconfig: tsconfigPath,
|
|
74
|
+
type: 'NAuthOpenApiDtoRegistry',
|
|
75
|
+
expose: 'all',
|
|
76
|
+
// `tsc -b` is already run by the build; this avoids project-file-list issues here.
|
|
77
|
+
skipTypeCheck: true,
|
|
78
|
+
};
|
|
79
|
+
const generator = (0, ts_json_schema_generator_1.createGenerator)(generatorConfig);
|
|
80
|
+
const jsonSchema = generator.createSchema('NAuthOpenApiDtoRegistry');
|
|
81
|
+
const openApiDoc = buildOpenApiDocumentFromJsonSchema(jsonSchema, SCHEMA_PREFIX);
|
|
82
|
+
(0, node_fs_1.writeFileSync)(outputJsonPath, `${JSON.stringify(openApiDoc, null, 2)}\n`, 'utf8');
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
(0, node_fs_1.rmSync)(tempRegistryPath, { force: true });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function listDtoSourceFiles(dtoDir) {
|
|
89
|
+
const entries = (0, node_fs_1.readdirSync)(dtoDir, { withFileTypes: true });
|
|
90
|
+
return entries
|
|
91
|
+
.filter((e) => e.isFile() && e.name.endsWith('.ts') && !e.name.endsWith('.spec.ts') && e.name !== 'index.ts')
|
|
92
|
+
.map((e) => (0, node_path_1.join)(dtoDir, e.name))
|
|
93
|
+
.sort();
|
|
94
|
+
}
|
|
95
|
+
function collectExportedSymbols(filePath) {
|
|
96
|
+
const src = (0, node_fs_1.readFileSync)(filePath, 'utf8');
|
|
97
|
+
const sourceFile = ts.createSourceFile(filePath, src, ts.ScriptTarget.ES2022, true);
|
|
98
|
+
const symbols = new Set();
|
|
99
|
+
for (const statement of sourceFile.statements) {
|
|
100
|
+
if (!hasExportModifier(statement))
|
|
101
|
+
continue;
|
|
102
|
+
if (ts.isClassDeclaration(statement) && statement.name) {
|
|
103
|
+
symbols.add(statement.name.text);
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (ts.isInterfaceDeclaration(statement) && statement.name) {
|
|
107
|
+
symbols.add(statement.name.text);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (ts.isEnumDeclaration(statement) && statement.name) {
|
|
111
|
+
symbols.add(statement.name.text);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (ts.isTypeAliasDeclaration(statement) && statement.name) {
|
|
115
|
+
symbols.add(statement.name.text);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return Array.from(symbols).sort();
|
|
119
|
+
}
|
|
120
|
+
function hasExportModifier(node) {
|
|
121
|
+
const modifiers = ts.canHaveModifiers(node) ? ts.getModifiers(node) : undefined;
|
|
122
|
+
return !!modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword);
|
|
123
|
+
}
|
|
124
|
+
function renderRegistryType(modules) {
|
|
125
|
+
const lines = [];
|
|
126
|
+
lines.push('/**');
|
|
127
|
+
lines.push(' * AUTO-GENERATED FILE (build-time only)');
|
|
128
|
+
lines.push(' */');
|
|
129
|
+
const registryDir = (0, node_path_1.resolve)(__dirname, '..', '..', '..', 'src', 'openapi');
|
|
130
|
+
for (const m of modules) {
|
|
131
|
+
// The registry file lives at `src/openapi/_...`, so compute a stable relative import.
|
|
132
|
+
const relFromRegistry = (0, node_path_1.relative)(registryDir, m.modulePath).replace(/\\/g, '/').replace(/\.ts$/, '');
|
|
133
|
+
lines.push(`import type * as ${m.namespace} from '${relFromRegistry}';`);
|
|
134
|
+
}
|
|
135
|
+
lines.push('');
|
|
136
|
+
lines.push('export type NAuthOpenApiDtoRegistry = {');
|
|
137
|
+
for (const m of modules) {
|
|
138
|
+
for (const name of m.symbols) {
|
|
139
|
+
lines.push(` ${name}: ${m.namespace}.${name};`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
lines.push('};');
|
|
143
|
+
lines.push('');
|
|
144
|
+
return lines.join('\n');
|
|
145
|
+
}
|
|
146
|
+
function buildOpenApiDocumentFromJsonSchema(jsonSchema, prefix) {
|
|
147
|
+
if (typeof jsonSchema !== 'object' || jsonSchema === null || !('definitions' in jsonSchema)) {
|
|
148
|
+
throw new Error('OpenAPI generation failed: JSON Schema missing `definitions`.');
|
|
149
|
+
}
|
|
150
|
+
const definitions = jsonSchema.definitions ?? {};
|
|
151
|
+
const renameMap = new Map();
|
|
152
|
+
for (const name of Object.keys(definitions)) {
|
|
153
|
+
if (name === 'NAuthOpenApiDtoRegistry')
|
|
154
|
+
continue;
|
|
155
|
+
renameMap.set(name, `${prefix}${name}`);
|
|
156
|
+
}
|
|
157
|
+
const schemas = {};
|
|
158
|
+
for (const [name, schema] of Object.entries(definitions)) {
|
|
159
|
+
if (name === 'NAuthOpenApiDtoRegistry')
|
|
160
|
+
continue;
|
|
161
|
+
const renamed = renameMap.get(name) ?? name;
|
|
162
|
+
schemas[renamed] = rewriteRefsAndRename(schema, renameMap);
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
openapi: '3.0.3',
|
|
166
|
+
components: { schemas },
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
function rewriteRefsAndRename(value, renameMap) {
|
|
170
|
+
if (Array.isArray(value)) {
|
|
171
|
+
return value.map((v) => rewriteRefsAndRename(v, renameMap));
|
|
172
|
+
}
|
|
173
|
+
if (typeof value !== 'object' || value === null) {
|
|
174
|
+
return value;
|
|
175
|
+
}
|
|
176
|
+
const obj = value;
|
|
177
|
+
const next = {};
|
|
178
|
+
for (const [key, val] of Object.entries(obj)) {
|
|
179
|
+
if (key === '$ref' && typeof val === 'string') {
|
|
180
|
+
const openApiRef = val.replace(/^#\/definitions\//, '#/components/schemas/');
|
|
181
|
+
const refName = openApiRef.replace(/^#\/components\/schemas\//, '');
|
|
182
|
+
const renamed = renameMap.get(refName);
|
|
183
|
+
next[key] = renamed ? `#/components/schemas/${renamed}` : openApiRef;
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
next[key] = rewriteRefsAndRename(val, renameMap);
|
|
187
|
+
}
|
|
188
|
+
return next;
|
|
189
|
+
}
|
|
190
|
+
if (require.main === module) {
|
|
191
|
+
generateOpenApiSchemas();
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=generate-openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-openapi.js","sourceRoot":"","sources":["../../../src/openapi/generate-openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI component schemas exported by `@nauth-toolkit/mfa-email`.
|
|
3
|
+
*
|
|
4
|
+
* This is framework-agnostic: consumer apps can merge these schemas into their
|
|
5
|
+
* OpenAPI document (NestJS, Express, Fastify, etc.).
|
|
6
|
+
*
|
|
7
|
+
* Notes:
|
|
8
|
+
* - Schemas are generated at build time into `dist/src/openapi/components.schemas.json`
|
|
9
|
+
* - Schema names are prefixed with `MfaEmail` to avoid collisions when merging
|
|
10
|
+
* multiple nauth-toolkit OpenAPI exports.
|
|
11
|
+
*/
|
|
12
|
+
export interface NAuthOpenApiDocument {
|
|
13
|
+
openapi: string;
|
|
14
|
+
components: {
|
|
15
|
+
schemas: Record<string, unknown>;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Load the generated OpenAPI document from the packaged JSON file.
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadNAuthOpenApiDocument(): NAuthOpenApiDocument;
|
|
22
|
+
/**
|
|
23
|
+
* Load only the OpenAPI component schemas (`components.schemas`).
|
|
24
|
+
*/
|
|
25
|
+
export declare function loadNAuthOpenApiSchemas(): Record<string, unknown>;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/openapi/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,oBAAoB,CAI/D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEjE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadNAuthOpenApiDocument = loadNAuthOpenApiDocument;
|
|
4
|
+
exports.loadNAuthOpenApiSchemas = loadNAuthOpenApiSchemas;
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
/**
|
|
8
|
+
* Load the generated OpenAPI document from the packaged JSON file.
|
|
9
|
+
*/
|
|
10
|
+
function loadNAuthOpenApiDocument() {
|
|
11
|
+
const filePath = (0, node_path_1.join)(__dirname, 'components.schemas.json');
|
|
12
|
+
const json = (0, node_fs_1.readFileSync)(filePath, 'utf8');
|
|
13
|
+
return JSON.parse(json);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Load only the OpenAPI component schemas (`components.schemas`).
|
|
17
|
+
*/
|
|
18
|
+
function loadNAuthOpenApiSchemas() {
|
|
19
|
+
return loadNAuthOpenApiDocument().components.schemas;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/openapi/index.ts"],"names":[],"mappings":";;AAwBA,4DAIC;AAKD,0DAEC;AAnCD,qCAAuC;AACvC,yCAAiC;AAoBjC;;GAEG;AACH,SAAgB,wBAAwB;IACtC,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyB,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACrC,OAAO,wBAAwB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;AACvD,CAAC"}
|