@authup/server-kit 1.0.0-beta.0 → 1.0.0-beta.2
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/index.cjs +0 -73
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +3 -74
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/dist/proxy/index.d.ts +0 -3
- package/dist/proxy/index.d.ts.map +0 -1
- package/dist/proxy/module.d.ts +0 -24
- package/dist/proxy/module.d.ts.map +0 -1
- package/dist/proxy/utils.d.ts +0 -8
- package/dist/proxy/utils.d.ts.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -9,9 +9,6 @@ var jsonwebtoken = require('jsonwebtoken');
|
|
|
9
9
|
var smob = require('smob');
|
|
10
10
|
var redisExtension = require('redis-extension');
|
|
11
11
|
var redisEmitter = require('@socket.io/redis-emitter');
|
|
12
|
-
var http = require('node:http');
|
|
13
|
-
var https = require('node:https');
|
|
14
|
-
var proxyFromEnv = require('proxy-from-env');
|
|
15
12
|
var nodemailer = require('nodemailer');
|
|
16
13
|
|
|
17
14
|
async function compare(value, hashedValue) {
|
|
@@ -530,74 +527,6 @@ function setLogger(logger) {
|
|
|
530
527
|
instance$2 = logger;
|
|
531
528
|
}
|
|
532
529
|
|
|
533
|
-
class ProxyClient {
|
|
534
|
-
/**
|
|
535
|
-
* Create a http agent for an url.
|
|
536
|
-
*
|
|
537
|
-
* @param input
|
|
538
|
-
*/ async createAgent(input) {
|
|
539
|
-
return new Promise((resolve, reject)=>{
|
|
540
|
-
const headers = {};
|
|
541
|
-
if (this.options.user && this.options.password) {
|
|
542
|
-
headers['Proxy-Authorization'] = `Basic ${Buffer.from(`${this.options.user}:${this.options.password}`).toString('base64')}`;
|
|
543
|
-
}
|
|
544
|
-
const urlParsed = new URL(input);
|
|
545
|
-
const request = http.request({
|
|
546
|
-
host: this.options.host,
|
|
547
|
-
port: this.options.port,
|
|
548
|
-
method: 'CONNECT',
|
|
549
|
-
path: `${urlParsed.hostname}:443`,
|
|
550
|
-
headers
|
|
551
|
-
});
|
|
552
|
-
request.on('connect', (res, socket)=>{
|
|
553
|
-
if (res.statusCode >= 200 && res.statusCode < 300) {
|
|
554
|
-
resolve(new https.Agent({
|
|
555
|
-
socket,
|
|
556
|
-
...this.agentOptions
|
|
557
|
-
}));
|
|
558
|
-
} else {
|
|
559
|
-
reject(new Error('Could not connect to proxy!'));
|
|
560
|
-
}
|
|
561
|
-
});
|
|
562
|
-
request.on('error', (err)=>{
|
|
563
|
-
reject(err);
|
|
564
|
-
});
|
|
565
|
-
request.on('timeout', (err)=>{
|
|
566
|
-
reject(err);
|
|
567
|
-
});
|
|
568
|
-
request.end();
|
|
569
|
-
});
|
|
570
|
-
}
|
|
571
|
-
constructor(options, agentOptions){
|
|
572
|
-
this.options = options;
|
|
573
|
-
this.agentOptions = smob.merge(agentOptions || {}, {
|
|
574
|
-
keepAlive: false
|
|
575
|
-
});
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
|
|
579
|
-
async function buildHTTPClientConfigForProxy(url) {
|
|
580
|
-
const connectionString = proxyFromEnv.getProxyForUrl(url);
|
|
581
|
-
if (connectionString) {
|
|
582
|
-
const connectionDetails = core.parseProxyConnectionString(connectionString);
|
|
583
|
-
const proxyClient = new ProxyClient({
|
|
584
|
-
host: connectionDetails.host,
|
|
585
|
-
port: connectionDetails.port || 3128,
|
|
586
|
-
...connectionDetails.auth.username ? {
|
|
587
|
-
user: connectionDetails.auth.username
|
|
588
|
-
} : {},
|
|
589
|
-
...connectionDetails.auth.password ? {
|
|
590
|
-
password: connectionDetails.auth.password
|
|
591
|
-
} : {}
|
|
592
|
-
});
|
|
593
|
-
const agent = await proxyClient.createAgent(url);
|
|
594
|
-
return {
|
|
595
|
-
agent
|
|
596
|
-
};
|
|
597
|
-
}
|
|
598
|
-
return {};
|
|
599
|
-
}
|
|
600
|
-
|
|
601
530
|
/*
|
|
602
531
|
* Copyright (c) 2022.
|
|
603
532
|
* Author Peter Placzek (tada5hi)
|
|
@@ -682,9 +611,7 @@ async function useSMTPClient() {
|
|
|
682
611
|
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
683
612
|
}
|
|
684
613
|
|
|
685
|
-
exports.ProxyClient = ProxyClient;
|
|
686
614
|
exports.VoidLogger = VoidLogger;
|
|
687
|
-
exports.buildHTTPClientConfigForProxy = buildHTTPClientConfigForProxy;
|
|
688
615
|
exports.buildKeyFileName = buildKeyFileName;
|
|
689
616
|
exports.compare = compare;
|
|
690
617
|
exports.createKeyPair = createKeyPair;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/crypto/hash/compare.ts","../src/crypto/hash/hash.ts","../src/crypto/key-pair/constants.ts","../src/crypto/key-pair/utils/check.ts","../src/crypto/key-pair/utils/options.ts","../src/crypto/key-pair/utils/file-name.ts","../src/crypto/key-pair/utils/private-key.ts","../src/crypto/key-pair/save.ts","../src/crypto/key-pair/create.ts","../src/crypto/key-pair/delete.ts","../src/crypto/key-pair/load.ts","../src/crypto/key-pair/module.ts","../src/crypto/json-web-token/utils.ts","../src/crypto/json-web-token/decode.ts","../src/crypto/json-web-token/sign.ts","../src/crypto/json-web-token/verify.ts","../src/domain-event/utils.ts","../src/domain-event/redis/publish.ts","../src/domain-event/socket/singleton.ts","../src/domain-event/socket/publish.ts","../src/domain-event/publish.ts","../src/logger/presets/void.ts","../src/logger/module.ts","../src/proxy/module.ts","../src/proxy/utils.ts","../src/smtp/config/singleton.ts","../src/smtp/module.ts","../src/smtp/singleton.ts","../src/utils/has-property.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { compare as compareMethod } from 'bcrypt';\n\nexport async function compare(value: string, hashedValue: string) : Promise<boolean> {\n return compareMethod(value, hashedValue);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hash as hashMethod } from 'bcrypt';\n\nexport async function hash(str: string, saltOrRounds: number | string = 10) : Promise<string> {\n return hashMethod(str, saltOrRounds);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum KeyPairKind {\n PRIVATE = 'private',\n PUBLIC = 'public',\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/core';\nimport type { KeyPair } from '../type';\n\nexport function isKeyPair(data: unknown) : data is KeyPair {\n return isObject(data) &&\n typeof (data as KeyPair).privateKey !== 'undefined' &&\n typeof (data as KeyPair).publicKey !== 'undefined';\n}\n\nexport function isKeyPairWithPublicKey(data: unknown) : data is Omit<KeyPair, 'privateKey'> {\n return isObject(data) &&\n typeof (data as KeyPair).publicKey !== 'undefined';\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport type { KeyPairOptions } from '../type';\n\nexport function extendKeyPairOptions(\n options?: Partial<KeyPairOptions>,\n) : KeyPairOptions {\n options = options ?? {};\n\n options.directory = options.directory || process.cwd();\n options.directory = path.isAbsolute(options.directory) ?\n options.directory :\n path.resolve(process.cwd(), options.directory);\n\n options.type ??= 'rsa';\n\n if (\n options.type === 'rsa' ||\n options.type === 'rsa-pss' ||\n options.type === 'dsa'\n ) {\n options.modulusLength = 2048;\n }\n\n if (!options.privateKeyEncoding) {\n options.privateKeyEncoding = {\n type: 'pkcs8',\n format: 'pem',\n };\n }\n\n if (!options.publicKeyEncoding) {\n options.publicKeyEncoding = {\n type: 'spki',\n format: 'pem',\n };\n }\n\n if (\n options.privateKeyEncoding.passphrase &&\n !options.privateKeyEncoding.cipher\n ) {\n options.privateKeyEncoding.cipher = 'aes-256-cbc';\n }\n\n return options as KeyPairOptions;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { KeyPairKind } from '../constants';\nimport type { KeyPairOptions } from '../type';\nimport { extendKeyPairOptions } from './options';\n\nexport function buildKeyFileName(\n type: `${KeyPairKind}`,\n context?: Partial<KeyPairOptions>,\n) {\n const options = extendKeyPairOptions(context);\n\n const parts : string[] = [];\n\n switch (type) {\n case KeyPairKind.PRIVATE: {\n if (options.privateName) {\n parts.push(options.privateName);\n } else {\n parts.push(type);\n }\n\n if (options.privateExtension) {\n if (options.privateExtension.startsWith('.')) {\n options.privateExtension = options.privateExtension.slice(1);\n }\n\n parts.push(options.privateExtension);\n } else {\n parts.push('pem');\n }\n break;\n }\n case KeyPairKind.PUBLIC: {\n if (options.publicName) {\n parts.push(options.publicName);\n } else {\n parts.push(type);\n }\n\n if (options.publicExtension) {\n if (options.publicExtension.startsWith('.')) {\n options.publicExtension = options.publicExtension.slice(1);\n }\n\n parts.push(options.publicExtension);\n } else {\n parts.push('pem');\n }\n break;\n }\n }\n\n return parts.join('.');\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createPrivateKey } from 'node:crypto';\nimport type { KeyPairOptions } from '../type';\n\nexport function decryptRSAPrivateKey(\n context: KeyPairOptions,\n key: string | Buffer,\n) : string {\n const privateKey = createPrivateKey({\n type: context.privateKeyEncoding.type,\n format: context.privateKeyEncoding.format,\n key,\n passphrase: context.privateKeyEncoding.passphrase || context.passphrase,\n });\n\n let content = privateKey.export({\n type: context.privateKeyEncoding.type,\n format: context.privateKeyEncoding.format,\n });\n\n if (typeof content !== 'string') {\n content = Buffer.from(content).toString('utf-8');\n }\n\n return content;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { buildKeyFileName, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\n\nexport async function saveKeyPair(keyPair: KeyPair, context?: KeyPairOptions) : Promise<KeyPair> {\n context = extendKeyPairOptions(context);\n\n await fs.promises.mkdir(context.directory, { recursive: true });\n\n await Promise.all(\n [\n {\n path: path.resolve(context.directory, buildKeyFileName(KeyPairKind.PRIVATE, context)),\n content: keyPair.privateKey,\n },\n {\n path: path.resolve(context.directory, buildKeyFileName(KeyPairKind.PUBLIC, context)),\n content: keyPair.publicKey,\n },\n ]\n .map((file) => fs.promises.writeFile(file.path, file.content)),\n );\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { generateKeyPair } from 'node:crypto';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { decryptRSAPrivateKey, extendKeyPairOptions } from './utils';\nimport { saveKeyPair } from './save';\n\nexport async function createKeyPair(context?: Partial<KeyPairOptions>) : Promise<KeyPair> {\n const options = extendKeyPairOptions(context);\n\n const keyPair : KeyPair = await new Promise((resolve: (value: KeyPair) => void, reject) => {\n const callback = (err: (Error | null), publicKey: string, privateKey: string) => {\n if (err) reject(err);\n\n resolve({\n privateKey,\n publicKey,\n });\n };\n switch (options.type) {\n case 'dsa':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'ec':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'rsa':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'rsa-pss':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n }\n });\n\n if (options.save) {\n await saveKeyPair(keyPair, options);\n }\n\n if (\n options.passphrase ||\n options.privateKeyEncoding.passphrase\n ) {\n keyPair.privateKey = decryptRSAPrivateKey(\n options,\n keyPair.privateKey,\n );\n }\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPairOptions } from './type';\nimport { buildKeyFileName, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\n\nexport async function deleteKeyPair(context?: Partial<KeyPairOptions>) : Promise<void> {\n const options = extendKeyPairOptions(context);\n\n const privateKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PRIVATE, options));\n const publicKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PUBLIC, options));\n\n try {\n await Promise.all([privateKeyPath, publicKeyPath]\n .map((filePath) => fs.promises.stat(filePath)));\n } catch (e) {\n return;\n }\n\n await Promise.all([\n privateKeyPath,\n publicKeyPath,\n ].map((filePath) => fs.promises.rm(filePath)));\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createPublicKey } from 'node:crypto';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { buildKeyFileName, decryptRSAPrivateKey, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\nimport { saveKeyPair } from './save';\n\nexport async function loadKeyPair(context?: Partial<KeyPairOptions>) : Promise<KeyPair | undefined> {\n const options = extendKeyPairOptions(context);\n\n const privateKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PRIVATE, options));\n\n try {\n await fs.promises.stat(privateKeyPath);\n } catch (e) {\n return undefined;\n }\n\n const privateKeyBuffer = await fs.promises.readFile(privateKeyPath);\n let privateKey = privateKeyBuffer.toString();\n if (\n options.passphrase ||\n options.privateKeyEncoding.passphrase\n ) {\n privateKey = decryptRSAPrivateKey(\n options,\n privateKey,\n );\n }\n\n const publicKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PUBLIC, options));\n\n let publicKey : string;\n\n try {\n await fs.promises.stat(publicKeyPath);\n const publicKeyBuffer = await fs.promises.readFile(publicKeyPath);\n publicKey = publicKeyBuffer.toString();\n } catch (e) {\n const publicKeyObject = createPublicKey({\n key: privateKey,\n format: options.privateKeyEncoding.format,\n type: options.publicKeyEncoding.type,\n });\n\n const stringOrBuffer = publicKeyObject.export({\n format: options.publicKeyEncoding.format,\n type: options.publicKeyEncoding.type,\n });\n if (typeof stringOrBuffer !== 'string') {\n publicKey = stringOrBuffer.toString();\n } else {\n publicKey = stringOrBuffer;\n }\n\n if (options.save) {\n await saveKeyPair({\n privateKey,\n publicKey,\n }, options);\n }\n }\n\n return {\n privateKey,\n publicKey,\n };\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { extendKeyPairOptions } from './utils';\nimport { loadKeyPair } from './load';\nimport { createKeyPair } from './create';\n\nconst keyPairCache : Record<string, KeyPair> = {};\n\nexport async function useKeyPair(value?: Partial<KeyPairOptions> | string) : Promise<KeyPair> {\n let options : KeyPairOptions;\n\n if (typeof value === 'string') {\n options = extendKeyPairOptions({\n privateName: value,\n });\n } else {\n options = extendKeyPairOptions(value || {});\n }\n\n if (Object.prototype.hasOwnProperty.call(keyPairCache, options.privateName)) {\n return keyPairCache[options.privateName];\n }\n\n let keyPair = await loadKeyPair(options);\n if (typeof keyPair === 'undefined') {\n keyPair = await createKeyPair(options);\n }\n\n keyPairCache[options.privateName] = keyPair;\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TokenError } from '@authup/core';\nimport { isObject } from 'smob';\n\nexport function createErrorForJWTError(e: unknown) : TokenError {\n if (\n isObject(e) &&\n typeof e.name === 'string'\n ) {\n switch (e.name) {\n case 'TokenExpiredError': {\n return TokenError.expired();\n }\n case 'NotBeforeError': {\n if (typeof e.date === 'string' || e.date instanceof Date) {\n return TokenError.notActiveBefore(e.date);\n }\n break;\n }\n case 'JsonWebTokenError': {\n if (typeof e.message === 'string') {\n return TokenError.payloadInvalid(e.message);\n }\n\n break;\n }\n }\n }\n\n return new TokenError({\n cause: e as Error,\n logMessage: true,\n message: 'The JWT error could not be determined.',\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n Jwt,\n JwtPayload,\n} from 'jsonwebtoken';\nimport {\n decode,\n} from 'jsonwebtoken';\nimport { TokenError } from '@authup/core';\nimport type { TokenDecodeOptions } from './type';\nimport { createErrorForJWTError } from './utils';\n\n/**\n * Decode a JWT token with no verification.\n *\n * @param token\n * @param options\n *\n * @throws TokenError\n */\nexport function decodeToken(token: string, options: TokenDecodeOptions & { complete: true }): Jwt;\nexport function decodeToken(token: string, options?: TokenDecodeOptions): JwtPayload | string;\nexport function decodeToken(\n token: string,\n options?: TokenDecodeOptions,\n): JwtPayload | string {\n options ??= {};\n\n let output : string | JwtPayload | null;\n\n try {\n output = decode(token, {\n ...options,\n });\n } catch (e) {\n throw createErrorForJWTError(e);\n }\n\n if (output === null) {\n throw TokenError.payloadInvalid('The token could not be decoded.');\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { sign } from 'jsonwebtoken';\nimport { KeyType, TokenError } from '@authup/core';\nimport { isKeyPair, useKeyPair } from '../key-pair';\nimport type { TokenSignOptions } from './type';\n\nexport async function signToken(\n payload: string | object | Buffer | Record<string, any>,\n context: TokenSignOptions,\n): Promise<string> {\n context.expiresIn = context.expiresIn || 3600;\n\n switch (context.type) {\n case KeyType.RSA:\n case KeyType.EC: {\n const { type, keyPair, ...options } = context;\n const { privateKey } = isKeyPair(keyPair) ?\n keyPair :\n await useKeyPair(keyPair);\n\n if (type === KeyType.RSA) {\n options.algorithm = options.algorithm || 'RS256';\n } else {\n options.algorithm = options.algorithm || 'ES256';\n }\n\n return sign(payload, privateKey, options);\n }\n case KeyType.OCT: {\n const { type, secret, ...options } = context;\n options.algorithm = options.algorithm || 'HS256';\n\n return sign(payload, secret, options);\n }\n }\n\n throw new TokenError();\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Jwt, JwtPayload } from 'jsonwebtoken';\nimport { verify } from 'jsonwebtoken';\nimport { KeyType, TokenError } from '@authup/core';\nimport { isKeyPairWithPublicKey, useKeyPair } from '../key-pair';\nimport type { TokenVerifyOptions } from './type';\nimport { createErrorForJWTError } from './utils';\n\n/**\n * Verify JWT.\n *\n * @param token\n * @param context\n *\n * @throws TokenError\n */\nexport async function verifyToken(token: string, context: TokenVerifyOptions & { complete: true }): Promise<string | Jwt>;\nexport async function verifyToken(token: string, context: TokenVerifyOptions): Promise<JwtPayload | string>;\nexport async function verifyToken(\n token: string,\n context: TokenVerifyOptions,\n) : Promise<JwtPayload | Jwt | string> {\n let promise : Promise<JwtPayload | Jwt | string | undefined>;\n\n let output : Jwt | JwtPayload | string | undefined;\n\n try {\n switch (context.type) {\n case KeyType.RSA:\n case KeyType.EC: {\n const { type, keyPair, ...options } = context;\n const { publicKey } = isKeyPairWithPublicKey(keyPair) ?\n keyPair :\n await useKeyPair(keyPair);\n\n if (type === KeyType.RSA) {\n options.algorithms = options.algorithms || ['RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512'];\n } else {\n options.algorithms = options.algorithms || ['ES256', 'ES384', 'ES512'];\n }\n\n promise = new Promise<Jwt | JwtPayload | string>((resolve, reject) => {\n verify(token, publicKey, options, (err, decoded) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(decoded);\n });\n });\n break;\n }\n case KeyType.OCT: {\n const { type, secret, ...options } = context;\n\n options.algorithms = options.algorithms || ['HS256', 'HS384', 'HS512'];\n\n promise = new Promise<Jwt | JwtPayload | string>((resolve, reject) => {\n verify(token, secret, options, (err, decoded) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(decoded);\n });\n });\n }\n }\n\n output = await promise;\n } catch (e) {\n throw createErrorForJWTError(e);\n }\n\n if (typeof output === 'undefined') {\n throw new TokenError({ message: 'Invalid type.' });\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/core';\nimport type { DomainEventChannelName } from './type';\n\nexport function transformDomainEventData<T>(input: T) : T {\n if (isObject(input)) {\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n const value = input[keys[i]];\n if (value instanceof Date) {\n input[keys[i]] = value.toISOString();\n }\n }\n }\n\n return input;\n}\n\nexport function buildDomainEventChannelName(\n input: DomainEventChannelName,\n id?: string | number,\n) : string {\n if (typeof input === 'string') {\n return input;\n }\n\n return input(id);\n}\n","/*\n * Copyright (c) 2023-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { DomainEventName } from '@authup/core';\nimport type { DomainsEventContext } from '@authup/core';\nimport { hasClient, hasConfig, useClient } from 'redis-extension';\nimport type { DomainEventDestinations } from '../type';\nimport { buildDomainEventChannelName, transformDomainEventData } from '../utils';\n\nexport async function publishDomainRedisEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) : Promise<any> {\n if (!hasClient() && !hasConfig()) {\n return Promise.resolve();\n }\n\n context = transformDomainEventData(context);\n\n const json = JSON.stringify(context);\n\n const client = useClient();\n const pipeline = client.pipeline();\n for (let i = 0; i < destinations.length; i++) {\n const { namespace } = destinations[i];\n const keyPrefix = (namespace ? `${namespace}:` : '');\n\n let key = keyPrefix + buildDomainEventChannelName(destinations[i].channel);\n pipeline.publish(key, json);\n\n if (\n context.event !== DomainEventName.CREATED &&\n typeof destinations[i].channel === 'function'\n ) {\n key = keyPrefix + buildDomainEventChannelName(destinations[i].channel, context.data.id);\n pipeline.publish(key, json);\n }\n }\n\n return pipeline.exec();\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Emitter } from '@socket.io/redis-emitter';\nimport { useClient } from 'redis-extension';\nimport type { SocketServerToClientEvents } from './type';\n\nlet instance : undefined | Emitter<SocketServerToClientEvents>;\n\nexport function useSocketEmitter() : Emitter<SocketServerToClientEvents> {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = new Emitter<SocketServerToClientEvents>(useClient());\n\n return instance;\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { DomainsEventContext } from '@authup/core';\nimport { DomainEventName, buildDomainEventFullName } from '@authup/core';\nimport { hasClient, hasConfig } from 'redis-extension';\nimport type { DomainEventDestinations } from '../type';\nimport { buildDomainEventChannelName, transformDomainEventData } from '../utils';\nimport { useSocketEmitter } from './singleton';\n\nexport function publishDomainSocketEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) {\n if (!hasClient() && !hasConfig()) {\n return;\n }\n\n context = transformDomainEventData(context);\n\n for (let i = 0; i < destinations.length; i++) {\n let emitter = useSocketEmitter();\n if (destinations[i].namespace) {\n emitter = emitter.of(destinations[i].namespace);\n }\n\n let roomName = buildDomainEventChannelName(destinations[i].channel);\n\n const fullEventName = buildDomainEventFullName(context.type, context.event);\n\n emitter\n .in(roomName)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .emit(fullEventName, {\n ...context,\n meta: {\n roomName,\n },\n });\n\n if (\n context.event !== DomainEventName.CREATED &&\n typeof destinations[i].channel === 'function'\n ) {\n roomName = buildDomainEventChannelName(destinations[i].channel, context.data.id);\n emitter\n .in(roomName)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .emit(fullEventName, {\n ...context,\n meta: {\n roomName,\n roomId: context.data.id,\n },\n });\n }\n }\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { DomainsEventContext } from '@authup/core';\nimport { publishDomainRedisEvent } from './redis';\nimport { publishDomainSocketEvent } from './socket';\nimport type { DomainEventDestinations } from './type';\n\nexport async function publishDomainEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) {\n await publishDomainRedisEvent(context, destinations);\n publishDomainSocketEvent(context, destinations);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Logger } from '../type';\n\nexport class VoidLogger implements Logger {\n error(message: any) : any;\n\n error(message: string, ...meta: any[]) : any;\n\n error() {\n return this;\n }\n\n // ---------------------------------------------\n\n warn(message: any) : any;\n\n warn(message: string, ...meta: any[]) : any;\n\n warn() {\n return this;\n }\n\n // ---------------------------------------------\n\n info(message: any) : any;\n\n info(message: string, ...meta: any[]) : any;\n\n info() {\n return this;\n }\n\n // ---------------------------------------------\n\n http(message: any) : any;\n\n http(message: string, ...meta: any[]) : any;\n\n http() {\n return this;\n }\n\n // ---------------------------------------------\n\n verbose(message: any) : any;\n\n verbose(message: string, ...meta: any[]) : any;\n\n verbose() {\n return this;\n }\n\n // ---------------------------------------------\n\n debug(message: any) : any;\n\n debug(message: string, ...meta: any[]) : any;\n\n debug() {\n return this;\n }\n\n // ---------------------------------------------\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { VoidLogger } from './presets';\nimport type { Logger } from './type';\n\nlet instance: Logger | undefined;\n\nexport function useLogger() : Logger {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = new VoidLogger();\n\n return instance;\n}\n\nexport function setLogger(logger: Logger) {\n instance = logger;\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport http from 'node:http';\nimport type { Agent, AgentOptions } from 'node:https';\nimport https from 'node:https';\nimport { merge } from 'smob';\n\nexport type ProxyClientOptions = {\n user?: string,\n password?: string,\n host: string,\n port: number\n};\n\nexport class ProxyClient {\n protected options: ProxyClientOptions;\n\n /**\n * e.g. { keepAlive: true }\n * @protected\n */\n protected agentOptions : AgentOptions;\n\n constructor(options: ProxyClientOptions, agentOptions?: AgentOptions) {\n this.options = options;\n this.agentOptions = merge(agentOptions || {}, { keepAlive: false });\n }\n\n /**\n * Create a http agent for an url.\n *\n * @param input\n */\n async createAgent(input: string) {\n return new Promise<Agent>((resolve, reject) => {\n const headers : Record<string, any> = { };\n\n if (\n this.options.user &&\n this.options.password\n ) {\n headers['Proxy-Authorization'] = `Basic ${Buffer.from(`${this.options.user}:${this.options.password}`).toString('base64')}`;\n }\n\n const urlParsed = new URL(input);\n const request = http.request({\n host: this.options.host,\n port: this.options.port,\n method: 'CONNECT',\n path: `${urlParsed.hostname}:443`,\n headers,\n });\n\n request.on('connect', (res, socket) => {\n if (\n res.statusCode >= 200 &&\n res.statusCode < 300\n ) {\n resolve(new https.Agent({ socket, ...this.agentOptions }));\n } else {\n reject(new Error('Could not connect to proxy!'));\n }\n });\n\n request.on('error', (err) => {\n reject(err);\n });\n\n request.on('timeout', (err) => {\n reject(err);\n });\n\n request.end();\n });\n }\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Agent } from 'https';\nimport { parseProxyConnectionString } from '@authup/core';\nimport { getProxyForUrl } from 'proxy-from-env';\nimport { ProxyClient } from './module';\n\ntype ClientOptions = {\n agent?: ((url: URL) => Agent) | Agent\n};\n\nexport async function buildHTTPClientConfigForProxy(\n url: string,\n) : Promise<ClientOptions> {\n const connectionString = getProxyForUrl(url);\n if (connectionString) {\n const connectionDetails = parseProxyConnectionString(connectionString);\n const proxyClient = new ProxyClient({\n host: connectionDetails.host,\n port: connectionDetails.port || 3128,\n ...(connectionDetails.auth.username ? { user: connectionDetails.auth.username } : {}),\n ...(connectionDetails.auth.password ? { password: connectionDetails.auth.password } : {}),\n });\n\n const agent = await proxyClient.createAgent(url);\n\n return {\n agent,\n };\n }\n\n return {};\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { SmtpConfig } from '../type';\n\nlet instance : SmtpConfig | string | undefined;\n\nexport function hasSmtpConfig() {\n return !!instance;\n}\n\nexport function setSmtpConfig(value: SmtpConfig | string | undefined) {\n instance = value;\n}\n\nexport function useSmtpConfig() : SmtpConfig | string {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = {};\n\n return instance;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport { createTransport } from 'nodemailer';\nimport type { SmtpConfig } from './type';\nimport { useLogger } from '../logger';\n\nexport function createSmtpClient(options?: SmtpConfig | string) : Transporter {\n let transport : Transporter;\n\n options = options || {};\n\n if (typeof options === 'string') {\n transport = createTransport(options);\n } else if (options.connectionString) {\n transport = createTransport(options.connectionString);\n } else {\n let auth: Record<string, any> | undefined;\n if (options.user && options.password) {\n auth = {\n type: 'login',\n user: options.user,\n pass: options.password,\n };\n }\n\n transport = createTransport({\n host: options.host,\n port: options.port,\n auth,\n secure: options.ssl,\n opportunisticTLS: options.starttls,\n tls: {\n rejectUnauthorized: false,\n },\n });\n }\n\n transport.on('error', (e) => {\n useLogger().error(e.message);\n });\n\n return transport;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport { createTestAccount } from 'nodemailer';\nimport { createSmtpClient } from './module';\nimport { useSmtpConfig } from './config';\nimport type { SmtpConfig } from './type';\n\nlet instance : Transporter | undefined;\n\nexport async function useSMTPClient() : Promise<Transporter> {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n let options : SmtpConfig | string;\n if (process.env.NODE_ENV === 'test') {\n const testAccount = await createTestAccount();\n\n options = {\n host: 'smtp.ethereal.email',\n port: 587,\n ssl: false,\n user: testAccount.user,\n password: testAccount.pass,\n };\n } else {\n options = useSmtpConfig();\n }\n\n instance = createSmtpClient(options);\n\n return instance;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function hasOwnProperty<X extends Record<string, any>, Y extends PropertyKey>(\n obj: X,\n prop: Y,\n): obj is X & Record<Y, unknown> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["compare","value","hashedValue","compareMethod","hash","str","saltOrRounds","hashMethod","KeyPairKind","isKeyPair","data","isObject","privateKey","publicKey","isKeyPairWithPublicKey","extendKeyPairOptions","options","directory","process","cwd","path","isAbsolute","resolve","type","modulusLength","privateKeyEncoding","format","publicKeyEncoding","passphrase","cipher","buildKeyFileName","context","parts","PRIVATE","privateName","push","privateExtension","startsWith","slice","PUBLIC","publicName","publicExtension","join","decryptRSAPrivateKey","key","createPrivateKey","content","export","Buffer","from","toString","saveKeyPair","keyPair","fs","promises","mkdir","recursive","Promise","all","map","file","writeFile","createKeyPair","reject","callback","err","generateKeyPair","save","deleteKeyPair","privateKeyPath","publicKeyPath","filePath","stat","e","rm","loadKeyPair","undefined","privateKeyBuffer","readFile","publicKeyBuffer","publicKeyObject","createPublicKey","stringOrBuffer","keyPairCache","useKeyPair","Object","prototype","hasOwnProperty","call","createErrorForJWTError","name","TokenError","expired","date","Date","notActiveBefore","message","payloadInvalid","cause","logMessage","decodeToken","token","output","decode","signToken","payload","expiresIn","KeyType","RSA","EC","algorithm","sign","OCT","secret","verifyToken","promise","algorithms","verify","decoded","transformDomainEventData","input","keys","i","length","toISOString","buildDomainEventChannelName","id","publishDomainRedisEvent","destinations","hasClient","hasConfig","json","JSON","stringify","client","useClient","pipeline","namespace","keyPrefix","channel","publish","event","DomainEventName","CREATED","exec","instance","useSocketEmitter","Emitter","publishDomainSocketEvent","emitter","of","roomName","fullEventName","buildDomainEventFullName","in","emit","meta","roomId","publishDomainEvent","VoidLogger","error","warn","info","http","verbose","debug","useLogger","setLogger","logger","ProxyClient","createAgent","headers","user","password","urlParsed","URL","request","host","port","method","hostname","on","res","socket","statusCode","https","Agent","agentOptions","Error","end","constructor","merge","keepAlive","buildHTTPClientConfigForProxy","url","connectionString","getProxyForUrl","connectionDetails","parseProxyConnectionString","proxyClient","auth","username","agent","hasSmtpConfig","setSmtpConfig","useSmtpConfig","createSmtpClient","transport","createTransport","pass","secure","ssl","opportunisticTLS","starttls","tls","rejectUnauthorized","useSMTPClient","env","NODE_ENV","testAccount","createTestAccount","obj","prop"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/crypto/hash/compare.ts","../src/crypto/hash/hash.ts","../src/crypto/key-pair/constants.ts","../src/crypto/key-pair/utils/check.ts","../src/crypto/key-pair/utils/options.ts","../src/crypto/key-pair/utils/file-name.ts","../src/crypto/key-pair/utils/private-key.ts","../src/crypto/key-pair/save.ts","../src/crypto/key-pair/create.ts","../src/crypto/key-pair/delete.ts","../src/crypto/key-pair/load.ts","../src/crypto/key-pair/module.ts","../src/crypto/json-web-token/utils.ts","../src/crypto/json-web-token/decode.ts","../src/crypto/json-web-token/sign.ts","../src/crypto/json-web-token/verify.ts","../src/domain-event/utils.ts","../src/domain-event/redis/publish.ts","../src/domain-event/socket/singleton.ts","../src/domain-event/socket/publish.ts","../src/domain-event/publish.ts","../src/logger/presets/void.ts","../src/logger/module.ts","../src/smtp/config/singleton.ts","../src/smtp/module.ts","../src/smtp/singleton.ts","../src/utils/has-property.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { compare as compareMethod } from 'bcrypt';\n\nexport async function compare(value: string, hashedValue: string) : Promise<boolean> {\n return compareMethod(value, hashedValue);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hash as hashMethod } from 'bcrypt';\n\nexport async function hash(str: string, saltOrRounds: number | string = 10) : Promise<string> {\n return hashMethod(str, saltOrRounds);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum KeyPairKind {\n PRIVATE = 'private',\n PUBLIC = 'public',\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/core';\nimport type { KeyPair } from '../type';\n\nexport function isKeyPair(data: unknown) : data is KeyPair {\n return isObject(data) &&\n typeof (data as KeyPair).privateKey !== 'undefined' &&\n typeof (data as KeyPair).publicKey !== 'undefined';\n}\n\nexport function isKeyPairWithPublicKey(data: unknown) : data is Omit<KeyPair, 'privateKey'> {\n return isObject(data) &&\n typeof (data as KeyPair).publicKey !== 'undefined';\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport type { KeyPairOptions } from '../type';\n\nexport function extendKeyPairOptions(\n options?: Partial<KeyPairOptions>,\n) : KeyPairOptions {\n options = options ?? {};\n\n options.directory = options.directory || process.cwd();\n options.directory = path.isAbsolute(options.directory) ?\n options.directory :\n path.resolve(process.cwd(), options.directory);\n\n options.type ??= 'rsa';\n\n if (\n options.type === 'rsa' ||\n options.type === 'rsa-pss' ||\n options.type === 'dsa'\n ) {\n options.modulusLength = 2048;\n }\n\n if (!options.privateKeyEncoding) {\n options.privateKeyEncoding = {\n type: 'pkcs8',\n format: 'pem',\n };\n }\n\n if (!options.publicKeyEncoding) {\n options.publicKeyEncoding = {\n type: 'spki',\n format: 'pem',\n };\n }\n\n if (\n options.privateKeyEncoding.passphrase &&\n !options.privateKeyEncoding.cipher\n ) {\n options.privateKeyEncoding.cipher = 'aes-256-cbc';\n }\n\n return options as KeyPairOptions;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { KeyPairKind } from '../constants';\nimport type { KeyPairOptions } from '../type';\nimport { extendKeyPairOptions } from './options';\n\nexport function buildKeyFileName(\n type: `${KeyPairKind}`,\n context?: Partial<KeyPairOptions>,\n) {\n const options = extendKeyPairOptions(context);\n\n const parts : string[] = [];\n\n switch (type) {\n case KeyPairKind.PRIVATE: {\n if (options.privateName) {\n parts.push(options.privateName);\n } else {\n parts.push(type);\n }\n\n if (options.privateExtension) {\n if (options.privateExtension.startsWith('.')) {\n options.privateExtension = options.privateExtension.slice(1);\n }\n\n parts.push(options.privateExtension);\n } else {\n parts.push('pem');\n }\n break;\n }\n case KeyPairKind.PUBLIC: {\n if (options.publicName) {\n parts.push(options.publicName);\n } else {\n parts.push(type);\n }\n\n if (options.publicExtension) {\n if (options.publicExtension.startsWith('.')) {\n options.publicExtension = options.publicExtension.slice(1);\n }\n\n parts.push(options.publicExtension);\n } else {\n parts.push('pem');\n }\n break;\n }\n }\n\n return parts.join('.');\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createPrivateKey } from 'node:crypto';\nimport type { KeyPairOptions } from '../type';\n\nexport function decryptRSAPrivateKey(\n context: KeyPairOptions,\n key: string | Buffer,\n) : string {\n const privateKey = createPrivateKey({\n type: context.privateKeyEncoding.type,\n format: context.privateKeyEncoding.format,\n key,\n passphrase: context.privateKeyEncoding.passphrase || context.passphrase,\n });\n\n let content = privateKey.export({\n type: context.privateKeyEncoding.type,\n format: context.privateKeyEncoding.format,\n });\n\n if (typeof content !== 'string') {\n content = Buffer.from(content).toString('utf-8');\n }\n\n return content;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { buildKeyFileName, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\n\nexport async function saveKeyPair(keyPair: KeyPair, context?: KeyPairOptions) : Promise<KeyPair> {\n context = extendKeyPairOptions(context);\n\n await fs.promises.mkdir(context.directory, { recursive: true });\n\n await Promise.all(\n [\n {\n path: path.resolve(context.directory, buildKeyFileName(KeyPairKind.PRIVATE, context)),\n content: keyPair.privateKey,\n },\n {\n path: path.resolve(context.directory, buildKeyFileName(KeyPairKind.PUBLIC, context)),\n content: keyPair.publicKey,\n },\n ]\n .map((file) => fs.promises.writeFile(file.path, file.content)),\n );\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { generateKeyPair } from 'node:crypto';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { decryptRSAPrivateKey, extendKeyPairOptions } from './utils';\nimport { saveKeyPair } from './save';\n\nexport async function createKeyPair(context?: Partial<KeyPairOptions>) : Promise<KeyPair> {\n const options = extendKeyPairOptions(context);\n\n const keyPair : KeyPair = await new Promise((resolve: (value: KeyPair) => void, reject) => {\n const callback = (err: (Error | null), publicKey: string, privateKey: string) => {\n if (err) reject(err);\n\n resolve({\n privateKey,\n publicKey,\n });\n };\n switch (options.type) {\n case 'dsa':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'ec':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'rsa':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'rsa-pss':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n }\n });\n\n if (options.save) {\n await saveKeyPair(keyPair, options);\n }\n\n if (\n options.passphrase ||\n options.privateKeyEncoding.passphrase\n ) {\n keyPair.privateKey = decryptRSAPrivateKey(\n options,\n keyPair.privateKey,\n );\n }\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPairOptions } from './type';\nimport { buildKeyFileName, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\n\nexport async function deleteKeyPair(context?: Partial<KeyPairOptions>) : Promise<void> {\n const options = extendKeyPairOptions(context);\n\n const privateKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PRIVATE, options));\n const publicKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PUBLIC, options));\n\n try {\n await Promise.all([privateKeyPath, publicKeyPath]\n .map((filePath) => fs.promises.stat(filePath)));\n } catch (e) {\n return;\n }\n\n await Promise.all([\n privateKeyPath,\n publicKeyPath,\n ].map((filePath) => fs.promises.rm(filePath)));\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createPublicKey } from 'node:crypto';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { buildKeyFileName, decryptRSAPrivateKey, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\nimport { saveKeyPair } from './save';\n\nexport async function loadKeyPair(context?: Partial<KeyPairOptions>) : Promise<KeyPair | undefined> {\n const options = extendKeyPairOptions(context);\n\n const privateKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PRIVATE, options));\n\n try {\n await fs.promises.stat(privateKeyPath);\n } catch (e) {\n return undefined;\n }\n\n const privateKeyBuffer = await fs.promises.readFile(privateKeyPath);\n let privateKey = privateKeyBuffer.toString();\n if (\n options.passphrase ||\n options.privateKeyEncoding.passphrase\n ) {\n privateKey = decryptRSAPrivateKey(\n options,\n privateKey,\n );\n }\n\n const publicKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PUBLIC, options));\n\n let publicKey : string;\n\n try {\n await fs.promises.stat(publicKeyPath);\n const publicKeyBuffer = await fs.promises.readFile(publicKeyPath);\n publicKey = publicKeyBuffer.toString();\n } catch (e) {\n const publicKeyObject = createPublicKey({\n key: privateKey,\n format: options.privateKeyEncoding.format,\n type: options.publicKeyEncoding.type,\n });\n\n const stringOrBuffer = publicKeyObject.export({\n format: options.publicKeyEncoding.format,\n type: options.publicKeyEncoding.type,\n });\n if (typeof stringOrBuffer !== 'string') {\n publicKey = stringOrBuffer.toString();\n } else {\n publicKey = stringOrBuffer;\n }\n\n if (options.save) {\n await saveKeyPair({\n privateKey,\n publicKey,\n }, options);\n }\n }\n\n return {\n privateKey,\n publicKey,\n };\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { extendKeyPairOptions } from './utils';\nimport { loadKeyPair } from './load';\nimport { createKeyPair } from './create';\n\nconst keyPairCache : Record<string, KeyPair> = {};\n\nexport async function useKeyPair(value?: Partial<KeyPairOptions> | string) : Promise<KeyPair> {\n let options : KeyPairOptions;\n\n if (typeof value === 'string') {\n options = extendKeyPairOptions({\n privateName: value,\n });\n } else {\n options = extendKeyPairOptions(value || {});\n }\n\n if (Object.prototype.hasOwnProperty.call(keyPairCache, options.privateName)) {\n return keyPairCache[options.privateName];\n }\n\n let keyPair = await loadKeyPair(options);\n if (typeof keyPair === 'undefined') {\n keyPair = await createKeyPair(options);\n }\n\n keyPairCache[options.privateName] = keyPair;\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TokenError } from '@authup/core';\nimport { isObject } from 'smob';\n\nexport function createErrorForJWTError(e: unknown) : TokenError {\n if (\n isObject(e) &&\n typeof e.name === 'string'\n ) {\n switch (e.name) {\n case 'TokenExpiredError': {\n return TokenError.expired();\n }\n case 'NotBeforeError': {\n if (typeof e.date === 'string' || e.date instanceof Date) {\n return TokenError.notActiveBefore(e.date);\n }\n break;\n }\n case 'JsonWebTokenError': {\n if (typeof e.message === 'string') {\n return TokenError.payloadInvalid(e.message);\n }\n\n break;\n }\n }\n }\n\n return new TokenError({\n cause: e as Error,\n logMessage: true,\n message: 'The JWT error could not be determined.',\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n Jwt,\n JwtPayload,\n} from 'jsonwebtoken';\nimport {\n decode,\n} from 'jsonwebtoken';\nimport { TokenError } from '@authup/core';\nimport type { TokenDecodeOptions } from './type';\nimport { createErrorForJWTError } from './utils';\n\n/**\n * Decode a JWT token with no verification.\n *\n * @param token\n * @param options\n *\n * @throws TokenError\n */\nexport function decodeToken(token: string, options: TokenDecodeOptions & { complete: true }): Jwt;\nexport function decodeToken(token: string, options?: TokenDecodeOptions): JwtPayload | string;\nexport function decodeToken(\n token: string,\n options?: TokenDecodeOptions,\n): JwtPayload | string {\n options ??= {};\n\n let output : string | JwtPayload | null;\n\n try {\n output = decode(token, {\n ...options,\n });\n } catch (e) {\n throw createErrorForJWTError(e);\n }\n\n if (output === null) {\n throw TokenError.payloadInvalid('The token could not be decoded.');\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { sign } from 'jsonwebtoken';\nimport { KeyType, TokenError } from '@authup/core';\nimport { isKeyPair, useKeyPair } from '../key-pair';\nimport type { TokenSignOptions } from './type';\n\nexport async function signToken(\n payload: string | object | Buffer | Record<string, any>,\n context: TokenSignOptions,\n): Promise<string> {\n context.expiresIn = context.expiresIn || 3600;\n\n switch (context.type) {\n case KeyType.RSA:\n case KeyType.EC: {\n const { type, keyPair, ...options } = context;\n const { privateKey } = isKeyPair(keyPair) ?\n keyPair :\n await useKeyPair(keyPair);\n\n if (type === KeyType.RSA) {\n options.algorithm = options.algorithm || 'RS256';\n } else {\n options.algorithm = options.algorithm || 'ES256';\n }\n\n return sign(payload, privateKey, options);\n }\n case KeyType.OCT: {\n const { type, secret, ...options } = context;\n options.algorithm = options.algorithm || 'HS256';\n\n return sign(payload, secret, options);\n }\n }\n\n throw new TokenError();\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Jwt, JwtPayload } from 'jsonwebtoken';\nimport { verify } from 'jsonwebtoken';\nimport { KeyType, TokenError } from '@authup/core';\nimport { isKeyPairWithPublicKey, useKeyPair } from '../key-pair';\nimport type { TokenVerifyOptions } from './type';\nimport { createErrorForJWTError } from './utils';\n\n/**\n * Verify JWT.\n *\n * @param token\n * @param context\n *\n * @throws TokenError\n */\nexport async function verifyToken(token: string, context: TokenVerifyOptions & { complete: true }): Promise<string | Jwt>;\nexport async function verifyToken(token: string, context: TokenVerifyOptions): Promise<JwtPayload | string>;\nexport async function verifyToken(\n token: string,\n context: TokenVerifyOptions,\n) : Promise<JwtPayload | Jwt | string> {\n let promise : Promise<JwtPayload | Jwt | string | undefined>;\n\n let output : Jwt | JwtPayload | string | undefined;\n\n try {\n switch (context.type) {\n case KeyType.RSA:\n case KeyType.EC: {\n const { type, keyPair, ...options } = context;\n const { publicKey } = isKeyPairWithPublicKey(keyPair) ?\n keyPair :\n await useKeyPair(keyPair);\n\n if (type === KeyType.RSA) {\n options.algorithms = options.algorithms || ['RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512'];\n } else {\n options.algorithms = options.algorithms || ['ES256', 'ES384', 'ES512'];\n }\n\n promise = new Promise<Jwt | JwtPayload | string>((resolve, reject) => {\n verify(token, publicKey, options, (err, decoded) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(decoded);\n });\n });\n break;\n }\n case KeyType.OCT: {\n const { type, secret, ...options } = context;\n\n options.algorithms = options.algorithms || ['HS256', 'HS384', 'HS512'];\n\n promise = new Promise<Jwt | JwtPayload | string>((resolve, reject) => {\n verify(token, secret, options, (err, decoded) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(decoded);\n });\n });\n }\n }\n\n output = await promise;\n } catch (e) {\n throw createErrorForJWTError(e);\n }\n\n if (typeof output === 'undefined') {\n throw new TokenError({ message: 'Invalid type.' });\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/core';\nimport type { DomainEventChannelName } from './type';\n\nexport function transformDomainEventData<T>(input: T) : T {\n if (isObject(input)) {\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n const value = input[keys[i]];\n if (value instanceof Date) {\n input[keys[i]] = value.toISOString();\n }\n }\n }\n\n return input;\n}\n\nexport function buildDomainEventChannelName(\n input: DomainEventChannelName,\n id?: string | number,\n) : string {\n if (typeof input === 'string') {\n return input;\n }\n\n return input(id);\n}\n","/*\n * Copyright (c) 2023-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { DomainEventName } from '@authup/core';\nimport type { DomainsEventContext } from '@authup/core';\nimport { hasClient, hasConfig, useClient } from 'redis-extension';\nimport type { DomainEventDestinations } from '../type';\nimport { buildDomainEventChannelName, transformDomainEventData } from '../utils';\n\nexport async function publishDomainRedisEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) : Promise<any> {\n if (!hasClient() && !hasConfig()) {\n return Promise.resolve();\n }\n\n context = transformDomainEventData(context);\n\n const json = JSON.stringify(context);\n\n const client = useClient();\n const pipeline = client.pipeline();\n for (let i = 0; i < destinations.length; i++) {\n const { namespace } = destinations[i];\n const keyPrefix = (namespace ? `${namespace}:` : '');\n\n let key = keyPrefix + buildDomainEventChannelName(destinations[i].channel);\n pipeline.publish(key, json);\n\n if (\n context.event !== DomainEventName.CREATED &&\n typeof destinations[i].channel === 'function'\n ) {\n key = keyPrefix + buildDomainEventChannelName(destinations[i].channel, context.data.id);\n pipeline.publish(key, json);\n }\n }\n\n return pipeline.exec();\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Emitter } from '@socket.io/redis-emitter';\nimport { useClient } from 'redis-extension';\nimport type { SocketServerToClientEvents } from './type';\n\nlet instance : undefined | Emitter<SocketServerToClientEvents>;\n\nexport function useSocketEmitter() : Emitter<SocketServerToClientEvents> {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = new Emitter<SocketServerToClientEvents>(useClient());\n\n return instance;\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { DomainsEventContext } from '@authup/core';\nimport { DomainEventName, buildDomainEventFullName } from '@authup/core';\nimport { hasClient, hasConfig } from 'redis-extension';\nimport type { DomainEventDestinations } from '../type';\nimport { buildDomainEventChannelName, transformDomainEventData } from '../utils';\nimport { useSocketEmitter } from './singleton';\n\nexport function publishDomainSocketEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) {\n if (!hasClient() && !hasConfig()) {\n return;\n }\n\n context = transformDomainEventData(context);\n\n for (let i = 0; i < destinations.length; i++) {\n let emitter = useSocketEmitter();\n if (destinations[i].namespace) {\n emitter = emitter.of(destinations[i].namespace);\n }\n\n let roomName = buildDomainEventChannelName(destinations[i].channel);\n\n const fullEventName = buildDomainEventFullName(context.type, context.event);\n\n emitter\n .in(roomName)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .emit(fullEventName, {\n ...context,\n meta: {\n roomName,\n },\n });\n\n if (\n context.event !== DomainEventName.CREATED &&\n typeof destinations[i].channel === 'function'\n ) {\n roomName = buildDomainEventChannelName(destinations[i].channel, context.data.id);\n emitter\n .in(roomName)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .emit(fullEventName, {\n ...context,\n meta: {\n roomName,\n roomId: context.data.id,\n },\n });\n }\n }\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { DomainsEventContext } from '@authup/core';\nimport { publishDomainRedisEvent } from './redis';\nimport { publishDomainSocketEvent } from './socket';\nimport type { DomainEventDestinations } from './type';\n\nexport async function publishDomainEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) {\n await publishDomainRedisEvent(context, destinations);\n publishDomainSocketEvent(context, destinations);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Logger } from '../type';\n\nexport class VoidLogger implements Logger {\n error(message: any) : any;\n\n error(message: string, ...meta: any[]) : any;\n\n error() {\n return this;\n }\n\n // ---------------------------------------------\n\n warn(message: any) : any;\n\n warn(message: string, ...meta: any[]) : any;\n\n warn() {\n return this;\n }\n\n // ---------------------------------------------\n\n info(message: any) : any;\n\n info(message: string, ...meta: any[]) : any;\n\n info() {\n return this;\n }\n\n // ---------------------------------------------\n\n http(message: any) : any;\n\n http(message: string, ...meta: any[]) : any;\n\n http() {\n return this;\n }\n\n // ---------------------------------------------\n\n verbose(message: any) : any;\n\n verbose(message: string, ...meta: any[]) : any;\n\n verbose() {\n return this;\n }\n\n // ---------------------------------------------\n\n debug(message: any) : any;\n\n debug(message: string, ...meta: any[]) : any;\n\n debug() {\n return this;\n }\n\n // ---------------------------------------------\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { VoidLogger } from './presets';\nimport type { Logger } from './type';\n\nlet instance: Logger | undefined;\n\nexport function useLogger() : Logger {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = new VoidLogger();\n\n return instance;\n}\n\nexport function setLogger(logger: Logger) {\n instance = logger;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { SmtpConfig } from '../type';\n\nlet instance : SmtpConfig | string | undefined;\n\nexport function hasSmtpConfig() {\n return !!instance;\n}\n\nexport function setSmtpConfig(value: SmtpConfig | string | undefined) {\n instance = value;\n}\n\nexport function useSmtpConfig() : SmtpConfig | string {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = {};\n\n return instance;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport { createTransport } from 'nodemailer';\nimport type { SmtpConfig } from './type';\nimport { useLogger } from '../logger';\n\nexport function createSmtpClient(options?: SmtpConfig | string) : Transporter {\n let transport : Transporter;\n\n options = options || {};\n\n if (typeof options === 'string') {\n transport = createTransport(options);\n } else if (options.connectionString) {\n transport = createTransport(options.connectionString);\n } else {\n let auth: Record<string, any> | undefined;\n if (options.user && options.password) {\n auth = {\n type: 'login',\n user: options.user,\n pass: options.password,\n };\n }\n\n transport = createTransport({\n host: options.host,\n port: options.port,\n auth,\n secure: options.ssl,\n opportunisticTLS: options.starttls,\n tls: {\n rejectUnauthorized: false,\n },\n });\n }\n\n transport.on('error', (e) => {\n useLogger().error(e.message);\n });\n\n return transport;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport { createTestAccount } from 'nodemailer';\nimport { createSmtpClient } from './module';\nimport { useSmtpConfig } from './config';\nimport type { SmtpConfig } from './type';\n\nlet instance : Transporter | undefined;\n\nexport async function useSMTPClient() : Promise<Transporter> {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n let options : SmtpConfig | string;\n if (process.env.NODE_ENV === 'test') {\n const testAccount = await createTestAccount();\n\n options = {\n host: 'smtp.ethereal.email',\n port: 587,\n ssl: false,\n user: testAccount.user,\n password: testAccount.pass,\n };\n } else {\n options = useSmtpConfig();\n }\n\n instance = createSmtpClient(options);\n\n return instance;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function hasOwnProperty<X extends Record<string, any>, Y extends PropertyKey>(\n obj: X,\n prop: Y,\n): obj is X & Record<Y, unknown> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["compare","value","hashedValue","compareMethod","hash","str","saltOrRounds","hashMethod","KeyPairKind","isKeyPair","data","isObject","privateKey","publicKey","isKeyPairWithPublicKey","extendKeyPairOptions","options","directory","process","cwd","path","isAbsolute","resolve","type","modulusLength","privateKeyEncoding","format","publicKeyEncoding","passphrase","cipher","buildKeyFileName","context","parts","PRIVATE","privateName","push","privateExtension","startsWith","slice","PUBLIC","publicName","publicExtension","join","decryptRSAPrivateKey","key","createPrivateKey","content","export","Buffer","from","toString","saveKeyPair","keyPair","fs","promises","mkdir","recursive","Promise","all","map","file","writeFile","createKeyPair","reject","callback","err","generateKeyPair","save","deleteKeyPair","privateKeyPath","publicKeyPath","filePath","stat","e","rm","loadKeyPair","undefined","privateKeyBuffer","readFile","publicKeyBuffer","publicKeyObject","createPublicKey","stringOrBuffer","keyPairCache","useKeyPair","Object","prototype","hasOwnProperty","call","createErrorForJWTError","name","TokenError","expired","date","Date","notActiveBefore","message","payloadInvalid","cause","logMessage","decodeToken","token","output","decode","signToken","payload","expiresIn","KeyType","RSA","EC","algorithm","sign","OCT","secret","verifyToken","promise","algorithms","verify","decoded","transformDomainEventData","input","keys","i","length","toISOString","buildDomainEventChannelName","id","publishDomainRedisEvent","destinations","hasClient","hasConfig","json","JSON","stringify","client","useClient","pipeline","namespace","keyPrefix","channel","publish","event","DomainEventName","CREATED","exec","instance","useSocketEmitter","Emitter","publishDomainSocketEvent","emitter","of","roomName","fullEventName","buildDomainEventFullName","in","emit","meta","roomId","publishDomainEvent","VoidLogger","error","warn","info","http","verbose","debug","useLogger","setLogger","logger","hasSmtpConfig","setSmtpConfig","useSmtpConfig","createSmtpClient","transport","createTransport","connectionString","auth","user","password","pass","host","port","secure","ssl","opportunisticTLS","starttls","tls","rejectUnauthorized","on","useSMTPClient","env","NODE_ENV","testAccount","createTestAccount","obj","prop"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { compare as compare$1, hash as hash$1 } from 'bcrypt';
|
|
2
2
|
import { createPrivateKey, generateKeyPair, createPublicKey } from 'node:crypto';
|
|
3
|
-
import { isObject, TokenError, KeyType, DomainEventName, buildDomainEventFullName
|
|
3
|
+
import { isObject, TokenError, KeyType, DomainEventName, buildDomainEventFullName } from '@authup/core';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import fs from 'node:fs';
|
|
6
6
|
import { decode, sign, verify } from 'jsonwebtoken';
|
|
7
|
-
import { isObject as isObject$1
|
|
7
|
+
import { isObject as isObject$1 } from 'smob';
|
|
8
8
|
import { hasClient, hasConfig, useClient } from 'redis-extension';
|
|
9
9
|
import { Emitter } from '@socket.io/redis-emitter';
|
|
10
|
-
import http from 'node:http';
|
|
11
|
-
import https from 'node:https';
|
|
12
|
-
import { getProxyForUrl } from 'proxy-from-env';
|
|
13
10
|
import { createTransport, createTestAccount } from 'nodemailer';
|
|
14
11
|
|
|
15
12
|
async function compare(value, hashedValue) {
|
|
@@ -528,74 +525,6 @@ function setLogger(logger) {
|
|
|
528
525
|
instance$2 = logger;
|
|
529
526
|
}
|
|
530
527
|
|
|
531
|
-
class ProxyClient {
|
|
532
|
-
/**
|
|
533
|
-
* Create a http agent for an url.
|
|
534
|
-
*
|
|
535
|
-
* @param input
|
|
536
|
-
*/ async createAgent(input) {
|
|
537
|
-
return new Promise((resolve, reject)=>{
|
|
538
|
-
const headers = {};
|
|
539
|
-
if (this.options.user && this.options.password) {
|
|
540
|
-
headers['Proxy-Authorization'] = `Basic ${Buffer.from(`${this.options.user}:${this.options.password}`).toString('base64')}`;
|
|
541
|
-
}
|
|
542
|
-
const urlParsed = new URL(input);
|
|
543
|
-
const request = http.request({
|
|
544
|
-
host: this.options.host,
|
|
545
|
-
port: this.options.port,
|
|
546
|
-
method: 'CONNECT',
|
|
547
|
-
path: `${urlParsed.hostname}:443`,
|
|
548
|
-
headers
|
|
549
|
-
});
|
|
550
|
-
request.on('connect', (res, socket)=>{
|
|
551
|
-
if (res.statusCode >= 200 && res.statusCode < 300) {
|
|
552
|
-
resolve(new https.Agent({
|
|
553
|
-
socket,
|
|
554
|
-
...this.agentOptions
|
|
555
|
-
}));
|
|
556
|
-
} else {
|
|
557
|
-
reject(new Error('Could not connect to proxy!'));
|
|
558
|
-
}
|
|
559
|
-
});
|
|
560
|
-
request.on('error', (err)=>{
|
|
561
|
-
reject(err);
|
|
562
|
-
});
|
|
563
|
-
request.on('timeout', (err)=>{
|
|
564
|
-
reject(err);
|
|
565
|
-
});
|
|
566
|
-
request.end();
|
|
567
|
-
});
|
|
568
|
-
}
|
|
569
|
-
constructor(options, agentOptions){
|
|
570
|
-
this.options = options;
|
|
571
|
-
this.agentOptions = merge(agentOptions || {}, {
|
|
572
|
-
keepAlive: false
|
|
573
|
-
});
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
async function buildHTTPClientConfigForProxy(url) {
|
|
578
|
-
const connectionString = getProxyForUrl(url);
|
|
579
|
-
if (connectionString) {
|
|
580
|
-
const connectionDetails = parseProxyConnectionString(connectionString);
|
|
581
|
-
const proxyClient = new ProxyClient({
|
|
582
|
-
host: connectionDetails.host,
|
|
583
|
-
port: connectionDetails.port || 3128,
|
|
584
|
-
...connectionDetails.auth.username ? {
|
|
585
|
-
user: connectionDetails.auth.username
|
|
586
|
-
} : {},
|
|
587
|
-
...connectionDetails.auth.password ? {
|
|
588
|
-
password: connectionDetails.auth.password
|
|
589
|
-
} : {}
|
|
590
|
-
});
|
|
591
|
-
const agent = await proxyClient.createAgent(url);
|
|
592
|
-
return {
|
|
593
|
-
agent
|
|
594
|
-
};
|
|
595
|
-
}
|
|
596
|
-
return {};
|
|
597
|
-
}
|
|
598
|
-
|
|
599
528
|
/*
|
|
600
529
|
* Copyright (c) 2022.
|
|
601
530
|
* Author Peter Placzek (tada5hi)
|
|
@@ -680,5 +609,5 @@ async function useSMTPClient() {
|
|
|
680
609
|
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
681
610
|
}
|
|
682
611
|
|
|
683
|
-
export { KeyPairKind,
|
|
612
|
+
export { KeyPairKind, VoidLogger, buildKeyFileName, compare, createKeyPair, createSmtpClient, decodeToken, decryptRSAPrivateKey, deleteKeyPair, extendKeyPairOptions, hasOwnProperty, hasSmtpConfig, hash, isKeyPair, isKeyPairWithPublicKey, loadKeyPair, publishDomainEvent, publishDomainRedisEvent, publishDomainSocketEvent, saveKeyPair, setLogger, setSmtpConfig, signToken, useKeyPair, useLogger, useSMTPClient, useSmtpConfig, useSocketEmitter, verifyToken };
|
|
684
613
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/crypto/hash/compare.ts","../src/crypto/hash/hash.ts","../src/crypto/key-pair/constants.ts","../src/crypto/key-pair/utils/check.ts","../src/crypto/key-pair/utils/options.ts","../src/crypto/key-pair/utils/file-name.ts","../src/crypto/key-pair/utils/private-key.ts","../src/crypto/key-pair/save.ts","../src/crypto/key-pair/create.ts","../src/crypto/key-pair/delete.ts","../src/crypto/key-pair/load.ts","../src/crypto/key-pair/module.ts","../src/crypto/json-web-token/utils.ts","../src/crypto/json-web-token/decode.ts","../src/crypto/json-web-token/sign.ts","../src/crypto/json-web-token/verify.ts","../src/domain-event/utils.ts","../src/domain-event/redis/publish.ts","../src/domain-event/socket/singleton.ts","../src/domain-event/socket/publish.ts","../src/domain-event/publish.ts","../src/logger/presets/void.ts","../src/logger/module.ts","../src/proxy/module.ts","../src/proxy/utils.ts","../src/smtp/config/singleton.ts","../src/smtp/module.ts","../src/smtp/singleton.ts","../src/utils/has-property.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { compare as compareMethod } from 'bcrypt';\n\nexport async function compare(value: string, hashedValue: string) : Promise<boolean> {\n return compareMethod(value, hashedValue);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hash as hashMethod } from 'bcrypt';\n\nexport async function hash(str: string, saltOrRounds: number | string = 10) : Promise<string> {\n return hashMethod(str, saltOrRounds);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum KeyPairKind {\n PRIVATE = 'private',\n PUBLIC = 'public',\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/core';\nimport type { KeyPair } from '../type';\n\nexport function isKeyPair(data: unknown) : data is KeyPair {\n return isObject(data) &&\n typeof (data as KeyPair).privateKey !== 'undefined' &&\n typeof (data as KeyPair).publicKey !== 'undefined';\n}\n\nexport function isKeyPairWithPublicKey(data: unknown) : data is Omit<KeyPair, 'privateKey'> {\n return isObject(data) &&\n typeof (data as KeyPair).publicKey !== 'undefined';\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport type { KeyPairOptions } from '../type';\n\nexport function extendKeyPairOptions(\n options?: Partial<KeyPairOptions>,\n) : KeyPairOptions {\n options = options ?? {};\n\n options.directory = options.directory || process.cwd();\n options.directory = path.isAbsolute(options.directory) ?\n options.directory :\n path.resolve(process.cwd(), options.directory);\n\n options.type ??= 'rsa';\n\n if (\n options.type === 'rsa' ||\n options.type === 'rsa-pss' ||\n options.type === 'dsa'\n ) {\n options.modulusLength = 2048;\n }\n\n if (!options.privateKeyEncoding) {\n options.privateKeyEncoding = {\n type: 'pkcs8',\n format: 'pem',\n };\n }\n\n if (!options.publicKeyEncoding) {\n options.publicKeyEncoding = {\n type: 'spki',\n format: 'pem',\n };\n }\n\n if (\n options.privateKeyEncoding.passphrase &&\n !options.privateKeyEncoding.cipher\n ) {\n options.privateKeyEncoding.cipher = 'aes-256-cbc';\n }\n\n return options as KeyPairOptions;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { KeyPairKind } from '../constants';\nimport type { KeyPairOptions } from '../type';\nimport { extendKeyPairOptions } from './options';\n\nexport function buildKeyFileName(\n type: `${KeyPairKind}`,\n context?: Partial<KeyPairOptions>,\n) {\n const options = extendKeyPairOptions(context);\n\n const parts : string[] = [];\n\n switch (type) {\n case KeyPairKind.PRIVATE: {\n if (options.privateName) {\n parts.push(options.privateName);\n } else {\n parts.push(type);\n }\n\n if (options.privateExtension) {\n if (options.privateExtension.startsWith('.')) {\n options.privateExtension = options.privateExtension.slice(1);\n }\n\n parts.push(options.privateExtension);\n } else {\n parts.push('pem');\n }\n break;\n }\n case KeyPairKind.PUBLIC: {\n if (options.publicName) {\n parts.push(options.publicName);\n } else {\n parts.push(type);\n }\n\n if (options.publicExtension) {\n if (options.publicExtension.startsWith('.')) {\n options.publicExtension = options.publicExtension.slice(1);\n }\n\n parts.push(options.publicExtension);\n } else {\n parts.push('pem');\n }\n break;\n }\n }\n\n return parts.join('.');\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createPrivateKey } from 'node:crypto';\nimport type { KeyPairOptions } from '../type';\n\nexport function decryptRSAPrivateKey(\n context: KeyPairOptions,\n key: string | Buffer,\n) : string {\n const privateKey = createPrivateKey({\n type: context.privateKeyEncoding.type,\n format: context.privateKeyEncoding.format,\n key,\n passphrase: context.privateKeyEncoding.passphrase || context.passphrase,\n });\n\n let content = privateKey.export({\n type: context.privateKeyEncoding.type,\n format: context.privateKeyEncoding.format,\n });\n\n if (typeof content !== 'string') {\n content = Buffer.from(content).toString('utf-8');\n }\n\n return content;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { buildKeyFileName, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\n\nexport async function saveKeyPair(keyPair: KeyPair, context?: KeyPairOptions) : Promise<KeyPair> {\n context = extendKeyPairOptions(context);\n\n await fs.promises.mkdir(context.directory, { recursive: true });\n\n await Promise.all(\n [\n {\n path: path.resolve(context.directory, buildKeyFileName(KeyPairKind.PRIVATE, context)),\n content: keyPair.privateKey,\n },\n {\n path: path.resolve(context.directory, buildKeyFileName(KeyPairKind.PUBLIC, context)),\n content: keyPair.publicKey,\n },\n ]\n .map((file) => fs.promises.writeFile(file.path, file.content)),\n );\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { generateKeyPair } from 'node:crypto';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { decryptRSAPrivateKey, extendKeyPairOptions } from './utils';\nimport { saveKeyPair } from './save';\n\nexport async function createKeyPair(context?: Partial<KeyPairOptions>) : Promise<KeyPair> {\n const options = extendKeyPairOptions(context);\n\n const keyPair : KeyPair = await new Promise((resolve: (value: KeyPair) => void, reject) => {\n const callback = (err: (Error | null), publicKey: string, privateKey: string) => {\n if (err) reject(err);\n\n resolve({\n privateKey,\n publicKey,\n });\n };\n switch (options.type) {\n case 'dsa':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'ec':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'rsa':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'rsa-pss':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n }\n });\n\n if (options.save) {\n await saveKeyPair(keyPair, options);\n }\n\n if (\n options.passphrase ||\n options.privateKeyEncoding.passphrase\n ) {\n keyPair.privateKey = decryptRSAPrivateKey(\n options,\n keyPair.privateKey,\n );\n }\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPairOptions } from './type';\nimport { buildKeyFileName, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\n\nexport async function deleteKeyPair(context?: Partial<KeyPairOptions>) : Promise<void> {\n const options = extendKeyPairOptions(context);\n\n const privateKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PRIVATE, options));\n const publicKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PUBLIC, options));\n\n try {\n await Promise.all([privateKeyPath, publicKeyPath]\n .map((filePath) => fs.promises.stat(filePath)));\n } catch (e) {\n return;\n }\n\n await Promise.all([\n privateKeyPath,\n publicKeyPath,\n ].map((filePath) => fs.promises.rm(filePath)));\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createPublicKey } from 'node:crypto';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { buildKeyFileName, decryptRSAPrivateKey, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\nimport { saveKeyPair } from './save';\n\nexport async function loadKeyPair(context?: Partial<KeyPairOptions>) : Promise<KeyPair | undefined> {\n const options = extendKeyPairOptions(context);\n\n const privateKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PRIVATE, options));\n\n try {\n await fs.promises.stat(privateKeyPath);\n } catch (e) {\n return undefined;\n }\n\n const privateKeyBuffer = await fs.promises.readFile(privateKeyPath);\n let privateKey = privateKeyBuffer.toString();\n if (\n options.passphrase ||\n options.privateKeyEncoding.passphrase\n ) {\n privateKey = decryptRSAPrivateKey(\n options,\n privateKey,\n );\n }\n\n const publicKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PUBLIC, options));\n\n let publicKey : string;\n\n try {\n await fs.promises.stat(publicKeyPath);\n const publicKeyBuffer = await fs.promises.readFile(publicKeyPath);\n publicKey = publicKeyBuffer.toString();\n } catch (e) {\n const publicKeyObject = createPublicKey({\n key: privateKey,\n format: options.privateKeyEncoding.format,\n type: options.publicKeyEncoding.type,\n });\n\n const stringOrBuffer = publicKeyObject.export({\n format: options.publicKeyEncoding.format,\n type: options.publicKeyEncoding.type,\n });\n if (typeof stringOrBuffer !== 'string') {\n publicKey = stringOrBuffer.toString();\n } else {\n publicKey = stringOrBuffer;\n }\n\n if (options.save) {\n await saveKeyPair({\n privateKey,\n publicKey,\n }, options);\n }\n }\n\n return {\n privateKey,\n publicKey,\n };\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { extendKeyPairOptions } from './utils';\nimport { loadKeyPair } from './load';\nimport { createKeyPair } from './create';\n\nconst keyPairCache : Record<string, KeyPair> = {};\n\nexport async function useKeyPair(value?: Partial<KeyPairOptions> | string) : Promise<KeyPair> {\n let options : KeyPairOptions;\n\n if (typeof value === 'string') {\n options = extendKeyPairOptions({\n privateName: value,\n });\n } else {\n options = extendKeyPairOptions(value || {});\n }\n\n if (Object.prototype.hasOwnProperty.call(keyPairCache, options.privateName)) {\n return keyPairCache[options.privateName];\n }\n\n let keyPair = await loadKeyPair(options);\n if (typeof keyPair === 'undefined') {\n keyPair = await createKeyPair(options);\n }\n\n keyPairCache[options.privateName] = keyPair;\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TokenError } from '@authup/core';\nimport { isObject } from 'smob';\n\nexport function createErrorForJWTError(e: unknown) : TokenError {\n if (\n isObject(e) &&\n typeof e.name === 'string'\n ) {\n switch (e.name) {\n case 'TokenExpiredError': {\n return TokenError.expired();\n }\n case 'NotBeforeError': {\n if (typeof e.date === 'string' || e.date instanceof Date) {\n return TokenError.notActiveBefore(e.date);\n }\n break;\n }\n case 'JsonWebTokenError': {\n if (typeof e.message === 'string') {\n return TokenError.payloadInvalid(e.message);\n }\n\n break;\n }\n }\n }\n\n return new TokenError({\n cause: e as Error,\n logMessage: true,\n message: 'The JWT error could not be determined.',\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n Jwt,\n JwtPayload,\n} from 'jsonwebtoken';\nimport {\n decode,\n} from 'jsonwebtoken';\nimport { TokenError } from '@authup/core';\nimport type { TokenDecodeOptions } from './type';\nimport { createErrorForJWTError } from './utils';\n\n/**\n * Decode a JWT token with no verification.\n *\n * @param token\n * @param options\n *\n * @throws TokenError\n */\nexport function decodeToken(token: string, options: TokenDecodeOptions & { complete: true }): Jwt;\nexport function decodeToken(token: string, options?: TokenDecodeOptions): JwtPayload | string;\nexport function decodeToken(\n token: string,\n options?: TokenDecodeOptions,\n): JwtPayload | string {\n options ??= {};\n\n let output : string | JwtPayload | null;\n\n try {\n output = decode(token, {\n ...options,\n });\n } catch (e) {\n throw createErrorForJWTError(e);\n }\n\n if (output === null) {\n throw TokenError.payloadInvalid('The token could not be decoded.');\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { sign } from 'jsonwebtoken';\nimport { KeyType, TokenError } from '@authup/core';\nimport { isKeyPair, useKeyPair } from '../key-pair';\nimport type { TokenSignOptions } from './type';\n\nexport async function signToken(\n payload: string | object | Buffer | Record<string, any>,\n context: TokenSignOptions,\n): Promise<string> {\n context.expiresIn = context.expiresIn || 3600;\n\n switch (context.type) {\n case KeyType.RSA:\n case KeyType.EC: {\n const { type, keyPair, ...options } = context;\n const { privateKey } = isKeyPair(keyPair) ?\n keyPair :\n await useKeyPair(keyPair);\n\n if (type === KeyType.RSA) {\n options.algorithm = options.algorithm || 'RS256';\n } else {\n options.algorithm = options.algorithm || 'ES256';\n }\n\n return sign(payload, privateKey, options);\n }\n case KeyType.OCT: {\n const { type, secret, ...options } = context;\n options.algorithm = options.algorithm || 'HS256';\n\n return sign(payload, secret, options);\n }\n }\n\n throw new TokenError();\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Jwt, JwtPayload } from 'jsonwebtoken';\nimport { verify } from 'jsonwebtoken';\nimport { KeyType, TokenError } from '@authup/core';\nimport { isKeyPairWithPublicKey, useKeyPair } from '../key-pair';\nimport type { TokenVerifyOptions } from './type';\nimport { createErrorForJWTError } from './utils';\n\n/**\n * Verify JWT.\n *\n * @param token\n * @param context\n *\n * @throws TokenError\n */\nexport async function verifyToken(token: string, context: TokenVerifyOptions & { complete: true }): Promise<string | Jwt>;\nexport async function verifyToken(token: string, context: TokenVerifyOptions): Promise<JwtPayload | string>;\nexport async function verifyToken(\n token: string,\n context: TokenVerifyOptions,\n) : Promise<JwtPayload | Jwt | string> {\n let promise : Promise<JwtPayload | Jwt | string | undefined>;\n\n let output : Jwt | JwtPayload | string | undefined;\n\n try {\n switch (context.type) {\n case KeyType.RSA:\n case KeyType.EC: {\n const { type, keyPair, ...options } = context;\n const { publicKey } = isKeyPairWithPublicKey(keyPair) ?\n keyPair :\n await useKeyPair(keyPair);\n\n if (type === KeyType.RSA) {\n options.algorithms = options.algorithms || ['RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512'];\n } else {\n options.algorithms = options.algorithms || ['ES256', 'ES384', 'ES512'];\n }\n\n promise = new Promise<Jwt | JwtPayload | string>((resolve, reject) => {\n verify(token, publicKey, options, (err, decoded) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(decoded);\n });\n });\n break;\n }\n case KeyType.OCT: {\n const { type, secret, ...options } = context;\n\n options.algorithms = options.algorithms || ['HS256', 'HS384', 'HS512'];\n\n promise = new Promise<Jwt | JwtPayload | string>((resolve, reject) => {\n verify(token, secret, options, (err, decoded) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(decoded);\n });\n });\n }\n }\n\n output = await promise;\n } catch (e) {\n throw createErrorForJWTError(e);\n }\n\n if (typeof output === 'undefined') {\n throw new TokenError({ message: 'Invalid type.' });\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/core';\nimport type { DomainEventChannelName } from './type';\n\nexport function transformDomainEventData<T>(input: T) : T {\n if (isObject(input)) {\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n const value = input[keys[i]];\n if (value instanceof Date) {\n input[keys[i]] = value.toISOString();\n }\n }\n }\n\n return input;\n}\n\nexport function buildDomainEventChannelName(\n input: DomainEventChannelName,\n id?: string | number,\n) : string {\n if (typeof input === 'string') {\n return input;\n }\n\n return input(id);\n}\n","/*\n * Copyright (c) 2023-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { DomainEventName } from '@authup/core';\nimport type { DomainsEventContext } from '@authup/core';\nimport { hasClient, hasConfig, useClient } from 'redis-extension';\nimport type { DomainEventDestinations } from '../type';\nimport { buildDomainEventChannelName, transformDomainEventData } from '../utils';\n\nexport async function publishDomainRedisEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) : Promise<any> {\n if (!hasClient() && !hasConfig()) {\n return Promise.resolve();\n }\n\n context = transformDomainEventData(context);\n\n const json = JSON.stringify(context);\n\n const client = useClient();\n const pipeline = client.pipeline();\n for (let i = 0; i < destinations.length; i++) {\n const { namespace } = destinations[i];\n const keyPrefix = (namespace ? `${namespace}:` : '');\n\n let key = keyPrefix + buildDomainEventChannelName(destinations[i].channel);\n pipeline.publish(key, json);\n\n if (\n context.event !== DomainEventName.CREATED &&\n typeof destinations[i].channel === 'function'\n ) {\n key = keyPrefix + buildDomainEventChannelName(destinations[i].channel, context.data.id);\n pipeline.publish(key, json);\n }\n }\n\n return pipeline.exec();\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Emitter } from '@socket.io/redis-emitter';\nimport { useClient } from 'redis-extension';\nimport type { SocketServerToClientEvents } from './type';\n\nlet instance : undefined | Emitter<SocketServerToClientEvents>;\n\nexport function useSocketEmitter() : Emitter<SocketServerToClientEvents> {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = new Emitter<SocketServerToClientEvents>(useClient());\n\n return instance;\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { DomainsEventContext } from '@authup/core';\nimport { DomainEventName, buildDomainEventFullName } from '@authup/core';\nimport { hasClient, hasConfig } from 'redis-extension';\nimport type { DomainEventDestinations } from '../type';\nimport { buildDomainEventChannelName, transformDomainEventData } from '../utils';\nimport { useSocketEmitter } from './singleton';\n\nexport function publishDomainSocketEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) {\n if (!hasClient() && !hasConfig()) {\n return;\n }\n\n context = transformDomainEventData(context);\n\n for (let i = 0; i < destinations.length; i++) {\n let emitter = useSocketEmitter();\n if (destinations[i].namespace) {\n emitter = emitter.of(destinations[i].namespace);\n }\n\n let roomName = buildDomainEventChannelName(destinations[i].channel);\n\n const fullEventName = buildDomainEventFullName(context.type, context.event);\n\n emitter\n .in(roomName)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .emit(fullEventName, {\n ...context,\n meta: {\n roomName,\n },\n });\n\n if (\n context.event !== DomainEventName.CREATED &&\n typeof destinations[i].channel === 'function'\n ) {\n roomName = buildDomainEventChannelName(destinations[i].channel, context.data.id);\n emitter\n .in(roomName)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .emit(fullEventName, {\n ...context,\n meta: {\n roomName,\n roomId: context.data.id,\n },\n });\n }\n }\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { DomainsEventContext } from '@authup/core';\nimport { publishDomainRedisEvent } from './redis';\nimport { publishDomainSocketEvent } from './socket';\nimport type { DomainEventDestinations } from './type';\n\nexport async function publishDomainEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) {\n await publishDomainRedisEvent(context, destinations);\n publishDomainSocketEvent(context, destinations);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Logger } from '../type';\n\nexport class VoidLogger implements Logger {\n error(message: any) : any;\n\n error(message: string, ...meta: any[]) : any;\n\n error() {\n return this;\n }\n\n // ---------------------------------------------\n\n warn(message: any) : any;\n\n warn(message: string, ...meta: any[]) : any;\n\n warn() {\n return this;\n }\n\n // ---------------------------------------------\n\n info(message: any) : any;\n\n info(message: string, ...meta: any[]) : any;\n\n info() {\n return this;\n }\n\n // ---------------------------------------------\n\n http(message: any) : any;\n\n http(message: string, ...meta: any[]) : any;\n\n http() {\n return this;\n }\n\n // ---------------------------------------------\n\n verbose(message: any) : any;\n\n verbose(message: string, ...meta: any[]) : any;\n\n verbose() {\n return this;\n }\n\n // ---------------------------------------------\n\n debug(message: any) : any;\n\n debug(message: string, ...meta: any[]) : any;\n\n debug() {\n return this;\n }\n\n // ---------------------------------------------\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { VoidLogger } from './presets';\nimport type { Logger } from './type';\n\nlet instance: Logger | undefined;\n\nexport function useLogger() : Logger {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = new VoidLogger();\n\n return instance;\n}\n\nexport function setLogger(logger: Logger) {\n instance = logger;\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport http from 'node:http';\nimport type { Agent, AgentOptions } from 'node:https';\nimport https from 'node:https';\nimport { merge } from 'smob';\n\nexport type ProxyClientOptions = {\n user?: string,\n password?: string,\n host: string,\n port: number\n};\n\nexport class ProxyClient {\n protected options: ProxyClientOptions;\n\n /**\n * e.g. { keepAlive: true }\n * @protected\n */\n protected agentOptions : AgentOptions;\n\n constructor(options: ProxyClientOptions, agentOptions?: AgentOptions) {\n this.options = options;\n this.agentOptions = merge(agentOptions || {}, { keepAlive: false });\n }\n\n /**\n * Create a http agent for an url.\n *\n * @param input\n */\n async createAgent(input: string) {\n return new Promise<Agent>((resolve, reject) => {\n const headers : Record<string, any> = { };\n\n if (\n this.options.user &&\n this.options.password\n ) {\n headers['Proxy-Authorization'] = `Basic ${Buffer.from(`${this.options.user}:${this.options.password}`).toString('base64')}`;\n }\n\n const urlParsed = new URL(input);\n const request = http.request({\n host: this.options.host,\n port: this.options.port,\n method: 'CONNECT',\n path: `${urlParsed.hostname}:443`,\n headers,\n });\n\n request.on('connect', (res, socket) => {\n if (\n res.statusCode >= 200 &&\n res.statusCode < 300\n ) {\n resolve(new https.Agent({ socket, ...this.agentOptions }));\n } else {\n reject(new Error('Could not connect to proxy!'));\n }\n });\n\n request.on('error', (err) => {\n reject(err);\n });\n\n request.on('timeout', (err) => {\n reject(err);\n });\n\n request.end();\n });\n }\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Agent } from 'https';\nimport { parseProxyConnectionString } from '@authup/core';\nimport { getProxyForUrl } from 'proxy-from-env';\nimport { ProxyClient } from './module';\n\ntype ClientOptions = {\n agent?: ((url: URL) => Agent) | Agent\n};\n\nexport async function buildHTTPClientConfigForProxy(\n url: string,\n) : Promise<ClientOptions> {\n const connectionString = getProxyForUrl(url);\n if (connectionString) {\n const connectionDetails = parseProxyConnectionString(connectionString);\n const proxyClient = new ProxyClient({\n host: connectionDetails.host,\n port: connectionDetails.port || 3128,\n ...(connectionDetails.auth.username ? { user: connectionDetails.auth.username } : {}),\n ...(connectionDetails.auth.password ? { password: connectionDetails.auth.password } : {}),\n });\n\n const agent = await proxyClient.createAgent(url);\n\n return {\n agent,\n };\n }\n\n return {};\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { SmtpConfig } from '../type';\n\nlet instance : SmtpConfig | string | undefined;\n\nexport function hasSmtpConfig() {\n return !!instance;\n}\n\nexport function setSmtpConfig(value: SmtpConfig | string | undefined) {\n instance = value;\n}\n\nexport function useSmtpConfig() : SmtpConfig | string {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = {};\n\n return instance;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport { createTransport } from 'nodemailer';\nimport type { SmtpConfig } from './type';\nimport { useLogger } from '../logger';\n\nexport function createSmtpClient(options?: SmtpConfig | string) : Transporter {\n let transport : Transporter;\n\n options = options || {};\n\n if (typeof options === 'string') {\n transport = createTransport(options);\n } else if (options.connectionString) {\n transport = createTransport(options.connectionString);\n } else {\n let auth: Record<string, any> | undefined;\n if (options.user && options.password) {\n auth = {\n type: 'login',\n user: options.user,\n pass: options.password,\n };\n }\n\n transport = createTransport({\n host: options.host,\n port: options.port,\n auth,\n secure: options.ssl,\n opportunisticTLS: options.starttls,\n tls: {\n rejectUnauthorized: false,\n },\n });\n }\n\n transport.on('error', (e) => {\n useLogger().error(e.message);\n });\n\n return transport;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport { createTestAccount } from 'nodemailer';\nimport { createSmtpClient } from './module';\nimport { useSmtpConfig } from './config';\nimport type { SmtpConfig } from './type';\n\nlet instance : Transporter | undefined;\n\nexport async function useSMTPClient() : Promise<Transporter> {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n let options : SmtpConfig | string;\n if (process.env.NODE_ENV === 'test') {\n const testAccount = await createTestAccount();\n\n options = {\n host: 'smtp.ethereal.email',\n port: 587,\n ssl: false,\n user: testAccount.user,\n password: testAccount.pass,\n };\n } else {\n options = useSmtpConfig();\n }\n\n instance = createSmtpClient(options);\n\n return instance;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function hasOwnProperty<X extends Record<string, any>, Y extends PropertyKey>(\n obj: X,\n prop: Y,\n): obj is X & Record<Y, unknown> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["compare","value","hashedValue","compareMethod","hash","str","saltOrRounds","hashMethod","KeyPairKind","isKeyPair","data","isObject","privateKey","publicKey","isKeyPairWithPublicKey","extendKeyPairOptions","options","directory","process","cwd","path","isAbsolute","resolve","type","modulusLength","privateKeyEncoding","format","publicKeyEncoding","passphrase","cipher","buildKeyFileName","context","parts","PRIVATE","privateName","push","privateExtension","startsWith","slice","PUBLIC","publicName","publicExtension","join","decryptRSAPrivateKey","key","createPrivateKey","content","export","Buffer","from","toString","saveKeyPair","keyPair","fs","promises","mkdir","recursive","Promise","all","map","file","writeFile","createKeyPair","reject","callback","err","generateKeyPair","save","deleteKeyPair","privateKeyPath","publicKeyPath","filePath","stat","e","rm","loadKeyPair","undefined","privateKeyBuffer","readFile","publicKeyBuffer","publicKeyObject","createPublicKey","stringOrBuffer","keyPairCache","useKeyPair","Object","prototype","hasOwnProperty","call","createErrorForJWTError","name","TokenError","expired","date","Date","notActiveBefore","message","payloadInvalid","cause","logMessage","decodeToken","token","output","decode","signToken","payload","expiresIn","KeyType","RSA","EC","algorithm","sign","OCT","secret","verifyToken","promise","algorithms","verify","decoded","transformDomainEventData","input","keys","i","length","toISOString","buildDomainEventChannelName","id","publishDomainRedisEvent","destinations","hasClient","hasConfig","json","JSON","stringify","client","useClient","pipeline","namespace","keyPrefix","channel","publish","event","DomainEventName","CREATED","exec","instance","useSocketEmitter","Emitter","publishDomainSocketEvent","emitter","of","roomName","fullEventName","buildDomainEventFullName","in","emit","meta","roomId","publishDomainEvent","VoidLogger","error","warn","info","http","verbose","debug","useLogger","setLogger","logger","ProxyClient","createAgent","headers","user","password","urlParsed","URL","request","host","port","method","hostname","on","res","socket","statusCode","https","Agent","agentOptions","Error","end","constructor","merge","keepAlive","buildHTTPClientConfigForProxy","url","connectionString","getProxyForUrl","connectionDetails","parseProxyConnectionString","proxyClient","auth","username","agent","hasSmtpConfig","setSmtpConfig","useSmtpConfig","createSmtpClient","transport","createTransport","pass","secure","ssl","opportunisticTLS","starttls","tls","rejectUnauthorized","useSMTPClient","env","NODE_ENV","testAccount","createTestAccount","obj","prop"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/crypto/hash/compare.ts","../src/crypto/hash/hash.ts","../src/crypto/key-pair/constants.ts","../src/crypto/key-pair/utils/check.ts","../src/crypto/key-pair/utils/options.ts","../src/crypto/key-pair/utils/file-name.ts","../src/crypto/key-pair/utils/private-key.ts","../src/crypto/key-pair/save.ts","../src/crypto/key-pair/create.ts","../src/crypto/key-pair/delete.ts","../src/crypto/key-pair/load.ts","../src/crypto/key-pair/module.ts","../src/crypto/json-web-token/utils.ts","../src/crypto/json-web-token/decode.ts","../src/crypto/json-web-token/sign.ts","../src/crypto/json-web-token/verify.ts","../src/domain-event/utils.ts","../src/domain-event/redis/publish.ts","../src/domain-event/socket/singleton.ts","../src/domain-event/socket/publish.ts","../src/domain-event/publish.ts","../src/logger/presets/void.ts","../src/logger/module.ts","../src/smtp/config/singleton.ts","../src/smtp/module.ts","../src/smtp/singleton.ts","../src/utils/has-property.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { compare as compareMethod } from 'bcrypt';\n\nexport async function compare(value: string, hashedValue: string) : Promise<boolean> {\n return compareMethod(value, hashedValue);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hash as hashMethod } from 'bcrypt';\n\nexport async function hash(str: string, saltOrRounds: number | string = 10) : Promise<string> {\n return hashMethod(str, saltOrRounds);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum KeyPairKind {\n PRIVATE = 'private',\n PUBLIC = 'public',\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/core';\nimport type { KeyPair } from '../type';\n\nexport function isKeyPair(data: unknown) : data is KeyPair {\n return isObject(data) &&\n typeof (data as KeyPair).privateKey !== 'undefined' &&\n typeof (data as KeyPair).publicKey !== 'undefined';\n}\n\nexport function isKeyPairWithPublicKey(data: unknown) : data is Omit<KeyPair, 'privateKey'> {\n return isObject(data) &&\n typeof (data as KeyPair).publicKey !== 'undefined';\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport type { KeyPairOptions } from '../type';\n\nexport function extendKeyPairOptions(\n options?: Partial<KeyPairOptions>,\n) : KeyPairOptions {\n options = options ?? {};\n\n options.directory = options.directory || process.cwd();\n options.directory = path.isAbsolute(options.directory) ?\n options.directory :\n path.resolve(process.cwd(), options.directory);\n\n options.type ??= 'rsa';\n\n if (\n options.type === 'rsa' ||\n options.type === 'rsa-pss' ||\n options.type === 'dsa'\n ) {\n options.modulusLength = 2048;\n }\n\n if (!options.privateKeyEncoding) {\n options.privateKeyEncoding = {\n type: 'pkcs8',\n format: 'pem',\n };\n }\n\n if (!options.publicKeyEncoding) {\n options.publicKeyEncoding = {\n type: 'spki',\n format: 'pem',\n };\n }\n\n if (\n options.privateKeyEncoding.passphrase &&\n !options.privateKeyEncoding.cipher\n ) {\n options.privateKeyEncoding.cipher = 'aes-256-cbc';\n }\n\n return options as KeyPairOptions;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { KeyPairKind } from '../constants';\nimport type { KeyPairOptions } from '../type';\nimport { extendKeyPairOptions } from './options';\n\nexport function buildKeyFileName(\n type: `${KeyPairKind}`,\n context?: Partial<KeyPairOptions>,\n) {\n const options = extendKeyPairOptions(context);\n\n const parts : string[] = [];\n\n switch (type) {\n case KeyPairKind.PRIVATE: {\n if (options.privateName) {\n parts.push(options.privateName);\n } else {\n parts.push(type);\n }\n\n if (options.privateExtension) {\n if (options.privateExtension.startsWith('.')) {\n options.privateExtension = options.privateExtension.slice(1);\n }\n\n parts.push(options.privateExtension);\n } else {\n parts.push('pem');\n }\n break;\n }\n case KeyPairKind.PUBLIC: {\n if (options.publicName) {\n parts.push(options.publicName);\n } else {\n parts.push(type);\n }\n\n if (options.publicExtension) {\n if (options.publicExtension.startsWith('.')) {\n options.publicExtension = options.publicExtension.slice(1);\n }\n\n parts.push(options.publicExtension);\n } else {\n parts.push('pem');\n }\n break;\n }\n }\n\n return parts.join('.');\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createPrivateKey } from 'node:crypto';\nimport type { KeyPairOptions } from '../type';\n\nexport function decryptRSAPrivateKey(\n context: KeyPairOptions,\n key: string | Buffer,\n) : string {\n const privateKey = createPrivateKey({\n type: context.privateKeyEncoding.type,\n format: context.privateKeyEncoding.format,\n key,\n passphrase: context.privateKeyEncoding.passphrase || context.passphrase,\n });\n\n let content = privateKey.export({\n type: context.privateKeyEncoding.type,\n format: context.privateKeyEncoding.format,\n });\n\n if (typeof content !== 'string') {\n content = Buffer.from(content).toString('utf-8');\n }\n\n return content;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { buildKeyFileName, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\n\nexport async function saveKeyPair(keyPair: KeyPair, context?: KeyPairOptions) : Promise<KeyPair> {\n context = extendKeyPairOptions(context);\n\n await fs.promises.mkdir(context.directory, { recursive: true });\n\n await Promise.all(\n [\n {\n path: path.resolve(context.directory, buildKeyFileName(KeyPairKind.PRIVATE, context)),\n content: keyPair.privateKey,\n },\n {\n path: path.resolve(context.directory, buildKeyFileName(KeyPairKind.PUBLIC, context)),\n content: keyPair.publicKey,\n },\n ]\n .map((file) => fs.promises.writeFile(file.path, file.content)),\n );\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { generateKeyPair } from 'node:crypto';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { decryptRSAPrivateKey, extendKeyPairOptions } from './utils';\nimport { saveKeyPair } from './save';\n\nexport async function createKeyPair(context?: Partial<KeyPairOptions>) : Promise<KeyPair> {\n const options = extendKeyPairOptions(context);\n\n const keyPair : KeyPair = await new Promise((resolve: (value: KeyPair) => void, reject) => {\n const callback = (err: (Error | null), publicKey: string, privateKey: string) => {\n if (err) reject(err);\n\n resolve({\n privateKey,\n publicKey,\n });\n };\n switch (options.type) {\n case 'dsa':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'ec':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'rsa':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n case 'rsa-pss':\n generateKeyPair(\n options.type,\n options,\n callback,\n );\n break;\n }\n });\n\n if (options.save) {\n await saveKeyPair(keyPair, options);\n }\n\n if (\n options.passphrase ||\n options.privateKeyEncoding.passphrase\n ) {\n keyPair.privateKey = decryptRSAPrivateKey(\n options,\n keyPair.privateKey,\n );\n }\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPairOptions } from './type';\nimport { buildKeyFileName, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\n\nexport async function deleteKeyPair(context?: Partial<KeyPairOptions>) : Promise<void> {\n const options = extendKeyPairOptions(context);\n\n const privateKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PRIVATE, options));\n const publicKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PUBLIC, options));\n\n try {\n await Promise.all([privateKeyPath, publicKeyPath]\n .map((filePath) => fs.promises.stat(filePath)));\n } catch (e) {\n return;\n }\n\n await Promise.all([\n privateKeyPath,\n publicKeyPath,\n ].map((filePath) => fs.promises.rm(filePath)));\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createPublicKey } from 'node:crypto';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { buildKeyFileName, decryptRSAPrivateKey, extendKeyPairOptions } from './utils';\nimport { KeyPairKind } from './constants';\nimport { saveKeyPair } from './save';\n\nexport async function loadKeyPair(context?: Partial<KeyPairOptions>) : Promise<KeyPair | undefined> {\n const options = extendKeyPairOptions(context);\n\n const privateKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PRIVATE, options));\n\n try {\n await fs.promises.stat(privateKeyPath);\n } catch (e) {\n return undefined;\n }\n\n const privateKeyBuffer = await fs.promises.readFile(privateKeyPath);\n let privateKey = privateKeyBuffer.toString();\n if (\n options.passphrase ||\n options.privateKeyEncoding.passphrase\n ) {\n privateKey = decryptRSAPrivateKey(\n options,\n privateKey,\n );\n }\n\n const publicKeyPath : string = path.resolve(options.directory, buildKeyFileName(KeyPairKind.PUBLIC, options));\n\n let publicKey : string;\n\n try {\n await fs.promises.stat(publicKeyPath);\n const publicKeyBuffer = await fs.promises.readFile(publicKeyPath);\n publicKey = publicKeyBuffer.toString();\n } catch (e) {\n const publicKeyObject = createPublicKey({\n key: privateKey,\n format: options.privateKeyEncoding.format,\n type: options.publicKeyEncoding.type,\n });\n\n const stringOrBuffer = publicKeyObject.export({\n format: options.publicKeyEncoding.format,\n type: options.publicKeyEncoding.type,\n });\n if (typeof stringOrBuffer !== 'string') {\n publicKey = stringOrBuffer.toString();\n } else {\n publicKey = stringOrBuffer;\n }\n\n if (options.save) {\n await saveKeyPair({\n privateKey,\n publicKey,\n }, options);\n }\n }\n\n return {\n privateKey,\n publicKey,\n };\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\nimport type { KeyPair, KeyPairOptions } from './type';\nimport { extendKeyPairOptions } from './utils';\nimport { loadKeyPair } from './load';\nimport { createKeyPair } from './create';\n\nconst keyPairCache : Record<string, KeyPair> = {};\n\nexport async function useKeyPair(value?: Partial<KeyPairOptions> | string) : Promise<KeyPair> {\n let options : KeyPairOptions;\n\n if (typeof value === 'string') {\n options = extendKeyPairOptions({\n privateName: value,\n });\n } else {\n options = extendKeyPairOptions(value || {});\n }\n\n if (Object.prototype.hasOwnProperty.call(keyPairCache, options.privateName)) {\n return keyPairCache[options.privateName];\n }\n\n let keyPair = await loadKeyPair(options);\n if (typeof keyPair === 'undefined') {\n keyPair = await createKeyPair(options);\n }\n\n keyPairCache[options.privateName] = keyPair;\n\n return keyPair;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { TokenError } from '@authup/core';\nimport { isObject } from 'smob';\n\nexport function createErrorForJWTError(e: unknown) : TokenError {\n if (\n isObject(e) &&\n typeof e.name === 'string'\n ) {\n switch (e.name) {\n case 'TokenExpiredError': {\n return TokenError.expired();\n }\n case 'NotBeforeError': {\n if (typeof e.date === 'string' || e.date instanceof Date) {\n return TokenError.notActiveBefore(e.date);\n }\n break;\n }\n case 'JsonWebTokenError': {\n if (typeof e.message === 'string') {\n return TokenError.payloadInvalid(e.message);\n }\n\n break;\n }\n }\n }\n\n return new TokenError({\n cause: e as Error,\n logMessage: true,\n message: 'The JWT error could not be determined.',\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type {\n Jwt,\n JwtPayload,\n} from 'jsonwebtoken';\nimport {\n decode,\n} from 'jsonwebtoken';\nimport { TokenError } from '@authup/core';\nimport type { TokenDecodeOptions } from './type';\nimport { createErrorForJWTError } from './utils';\n\n/**\n * Decode a JWT token with no verification.\n *\n * @param token\n * @param options\n *\n * @throws TokenError\n */\nexport function decodeToken(token: string, options: TokenDecodeOptions & { complete: true }): Jwt;\nexport function decodeToken(token: string, options?: TokenDecodeOptions): JwtPayload | string;\nexport function decodeToken(\n token: string,\n options?: TokenDecodeOptions,\n): JwtPayload | string {\n options ??= {};\n\n let output : string | JwtPayload | null;\n\n try {\n output = decode(token, {\n ...options,\n });\n } catch (e) {\n throw createErrorForJWTError(e);\n }\n\n if (output === null) {\n throw TokenError.payloadInvalid('The token could not be decoded.');\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { sign } from 'jsonwebtoken';\nimport { KeyType, TokenError } from '@authup/core';\nimport { isKeyPair, useKeyPair } from '../key-pair';\nimport type { TokenSignOptions } from './type';\n\nexport async function signToken(\n payload: string | object | Buffer | Record<string, any>,\n context: TokenSignOptions,\n): Promise<string> {\n context.expiresIn = context.expiresIn || 3600;\n\n switch (context.type) {\n case KeyType.RSA:\n case KeyType.EC: {\n const { type, keyPair, ...options } = context;\n const { privateKey } = isKeyPair(keyPair) ?\n keyPair :\n await useKeyPair(keyPair);\n\n if (type === KeyType.RSA) {\n options.algorithm = options.algorithm || 'RS256';\n } else {\n options.algorithm = options.algorithm || 'ES256';\n }\n\n return sign(payload, privateKey, options);\n }\n case KeyType.OCT: {\n const { type, secret, ...options } = context;\n options.algorithm = options.algorithm || 'HS256';\n\n return sign(payload, secret, options);\n }\n }\n\n throw new TokenError();\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Jwt, JwtPayload } from 'jsonwebtoken';\nimport { verify } from 'jsonwebtoken';\nimport { KeyType, TokenError } from '@authup/core';\nimport { isKeyPairWithPublicKey, useKeyPair } from '../key-pair';\nimport type { TokenVerifyOptions } from './type';\nimport { createErrorForJWTError } from './utils';\n\n/**\n * Verify JWT.\n *\n * @param token\n * @param context\n *\n * @throws TokenError\n */\nexport async function verifyToken(token: string, context: TokenVerifyOptions & { complete: true }): Promise<string | Jwt>;\nexport async function verifyToken(token: string, context: TokenVerifyOptions): Promise<JwtPayload | string>;\nexport async function verifyToken(\n token: string,\n context: TokenVerifyOptions,\n) : Promise<JwtPayload | Jwt | string> {\n let promise : Promise<JwtPayload | Jwt | string | undefined>;\n\n let output : Jwt | JwtPayload | string | undefined;\n\n try {\n switch (context.type) {\n case KeyType.RSA:\n case KeyType.EC: {\n const { type, keyPair, ...options } = context;\n const { publicKey } = isKeyPairWithPublicKey(keyPair) ?\n keyPair :\n await useKeyPair(keyPair);\n\n if (type === KeyType.RSA) {\n options.algorithms = options.algorithms || ['RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512'];\n } else {\n options.algorithms = options.algorithms || ['ES256', 'ES384', 'ES512'];\n }\n\n promise = new Promise<Jwt | JwtPayload | string>((resolve, reject) => {\n verify(token, publicKey, options, (err, decoded) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(decoded);\n });\n });\n break;\n }\n case KeyType.OCT: {\n const { type, secret, ...options } = context;\n\n options.algorithms = options.algorithms || ['HS256', 'HS384', 'HS512'];\n\n promise = new Promise<Jwt | JwtPayload | string>((resolve, reject) => {\n verify(token, secret, options, (err, decoded) => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(decoded);\n });\n });\n }\n }\n\n output = await promise;\n } catch (e) {\n throw createErrorForJWTError(e);\n }\n\n if (typeof output === 'undefined') {\n throw new TokenError({ message: 'Invalid type.' });\n }\n\n return output;\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { isObject } from '@authup/core';\nimport type { DomainEventChannelName } from './type';\n\nexport function transformDomainEventData<T>(input: T) : T {\n if (isObject(input)) {\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n const value = input[keys[i]];\n if (value instanceof Date) {\n input[keys[i]] = value.toISOString();\n }\n }\n }\n\n return input;\n}\n\nexport function buildDomainEventChannelName(\n input: DomainEventChannelName,\n id?: string | number,\n) : string {\n if (typeof input === 'string') {\n return input;\n }\n\n return input(id);\n}\n","/*\n * Copyright (c) 2023-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { DomainEventName } from '@authup/core';\nimport type { DomainsEventContext } from '@authup/core';\nimport { hasClient, hasConfig, useClient } from 'redis-extension';\nimport type { DomainEventDestinations } from '../type';\nimport { buildDomainEventChannelName, transformDomainEventData } from '../utils';\n\nexport async function publishDomainRedisEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) : Promise<any> {\n if (!hasClient() && !hasConfig()) {\n return Promise.resolve();\n }\n\n context = transformDomainEventData(context);\n\n const json = JSON.stringify(context);\n\n const client = useClient();\n const pipeline = client.pipeline();\n for (let i = 0; i < destinations.length; i++) {\n const { namespace } = destinations[i];\n const keyPrefix = (namespace ? `${namespace}:` : '');\n\n let key = keyPrefix + buildDomainEventChannelName(destinations[i].channel);\n pipeline.publish(key, json);\n\n if (\n context.event !== DomainEventName.CREATED &&\n typeof destinations[i].channel === 'function'\n ) {\n key = keyPrefix + buildDomainEventChannelName(destinations[i].channel, context.data.id);\n pipeline.publish(key, json);\n }\n }\n\n return pipeline.exec();\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Emitter } from '@socket.io/redis-emitter';\nimport { useClient } from 'redis-extension';\nimport type { SocketServerToClientEvents } from './type';\n\nlet instance : undefined | Emitter<SocketServerToClientEvents>;\n\nexport function useSocketEmitter() : Emitter<SocketServerToClientEvents> {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = new Emitter<SocketServerToClientEvents>(useClient());\n\n return instance;\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { DomainsEventContext } from '@authup/core';\nimport { DomainEventName, buildDomainEventFullName } from '@authup/core';\nimport { hasClient, hasConfig } from 'redis-extension';\nimport type { DomainEventDestinations } from '../type';\nimport { buildDomainEventChannelName, transformDomainEventData } from '../utils';\nimport { useSocketEmitter } from './singleton';\n\nexport function publishDomainSocketEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) {\n if (!hasClient() && !hasConfig()) {\n return;\n }\n\n context = transformDomainEventData(context);\n\n for (let i = 0; i < destinations.length; i++) {\n let emitter = useSocketEmitter();\n if (destinations[i].namespace) {\n emitter = emitter.of(destinations[i].namespace);\n }\n\n let roomName = buildDomainEventChannelName(destinations[i].channel);\n\n const fullEventName = buildDomainEventFullName(context.type, context.event);\n\n emitter\n .in(roomName)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .emit(fullEventName, {\n ...context,\n meta: {\n roomName,\n },\n });\n\n if (\n context.event !== DomainEventName.CREATED &&\n typeof destinations[i].channel === 'function'\n ) {\n roomName = buildDomainEventChannelName(destinations[i].channel, context.data.id);\n emitter\n .in(roomName)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .emit(fullEventName, {\n ...context,\n meta: {\n roomName,\n roomId: context.data.id,\n },\n });\n }\n }\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { DomainsEventContext } from '@authup/core';\nimport { publishDomainRedisEvent } from './redis';\nimport { publishDomainSocketEvent } from './socket';\nimport type { DomainEventDestinations } from './type';\n\nexport async function publishDomainEvent(\n context: DomainsEventContext,\n destinations: DomainEventDestinations,\n) {\n await publishDomainRedisEvent(context, destinations);\n publishDomainSocketEvent(context, destinations);\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Logger } from '../type';\n\nexport class VoidLogger implements Logger {\n error(message: any) : any;\n\n error(message: string, ...meta: any[]) : any;\n\n error() {\n return this;\n }\n\n // ---------------------------------------------\n\n warn(message: any) : any;\n\n warn(message: string, ...meta: any[]) : any;\n\n warn() {\n return this;\n }\n\n // ---------------------------------------------\n\n info(message: any) : any;\n\n info(message: string, ...meta: any[]) : any;\n\n info() {\n return this;\n }\n\n // ---------------------------------------------\n\n http(message: any) : any;\n\n http(message: string, ...meta: any[]) : any;\n\n http() {\n return this;\n }\n\n // ---------------------------------------------\n\n verbose(message: any) : any;\n\n verbose(message: string, ...meta: any[]) : any;\n\n verbose() {\n return this;\n }\n\n // ---------------------------------------------\n\n debug(message: any) : any;\n\n debug(message: string, ...meta: any[]) : any;\n\n debug() {\n return this;\n }\n\n // ---------------------------------------------\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { VoidLogger } from './presets';\nimport type { Logger } from './type';\n\nlet instance: Logger | undefined;\n\nexport function useLogger() : Logger {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = new VoidLogger();\n\n return instance;\n}\n\nexport function setLogger(logger: Logger) {\n instance = logger;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { SmtpConfig } from '../type';\n\nlet instance : SmtpConfig | string | undefined;\n\nexport function hasSmtpConfig() {\n return !!instance;\n}\n\nexport function setSmtpConfig(value: SmtpConfig | string | undefined) {\n instance = value;\n}\n\nexport function useSmtpConfig() : SmtpConfig | string {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n instance = {};\n\n return instance;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport { createTransport } from 'nodemailer';\nimport type { SmtpConfig } from './type';\nimport { useLogger } from '../logger';\n\nexport function createSmtpClient(options?: SmtpConfig | string) : Transporter {\n let transport : Transporter;\n\n options = options || {};\n\n if (typeof options === 'string') {\n transport = createTransport(options);\n } else if (options.connectionString) {\n transport = createTransport(options.connectionString);\n } else {\n let auth: Record<string, any> | undefined;\n if (options.user && options.password) {\n auth = {\n type: 'login',\n user: options.user,\n pass: options.password,\n };\n }\n\n transport = createTransport({\n host: options.host,\n port: options.port,\n auth,\n secure: options.ssl,\n opportunisticTLS: options.starttls,\n tls: {\n rejectUnauthorized: false,\n },\n });\n }\n\n transport.on('error', (e) => {\n useLogger().error(e.message);\n });\n\n return transport;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Transporter } from 'nodemailer';\nimport { createTestAccount } from 'nodemailer';\nimport { createSmtpClient } from './module';\nimport { useSmtpConfig } from './config';\nimport type { SmtpConfig } from './type';\n\nlet instance : Transporter | undefined;\n\nexport async function useSMTPClient() : Promise<Transporter> {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n let options : SmtpConfig | string;\n if (process.env.NODE_ENV === 'test') {\n const testAccount = await createTestAccount();\n\n options = {\n host: 'smtp.ethereal.email',\n port: 587,\n ssl: false,\n user: testAccount.user,\n password: testAccount.pass,\n };\n } else {\n options = useSmtpConfig();\n }\n\n instance = createSmtpClient(options);\n\n return instance;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function hasOwnProperty<X extends Record<string, any>, Y extends PropertyKey>(\n obj: X,\n prop: Y,\n): obj is X & Record<Y, unknown> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["compare","value","hashedValue","compareMethod","hash","str","saltOrRounds","hashMethod","KeyPairKind","isKeyPair","data","isObject","privateKey","publicKey","isKeyPairWithPublicKey","extendKeyPairOptions","options","directory","process","cwd","path","isAbsolute","resolve","type","modulusLength","privateKeyEncoding","format","publicKeyEncoding","passphrase","cipher","buildKeyFileName","context","parts","PRIVATE","privateName","push","privateExtension","startsWith","slice","PUBLIC","publicName","publicExtension","join","decryptRSAPrivateKey","key","createPrivateKey","content","export","Buffer","from","toString","saveKeyPair","keyPair","fs","promises","mkdir","recursive","Promise","all","map","file","writeFile","createKeyPair","reject","callback","err","generateKeyPair","save","deleteKeyPair","privateKeyPath","publicKeyPath","filePath","stat","e","rm","loadKeyPair","undefined","privateKeyBuffer","readFile","publicKeyBuffer","publicKeyObject","createPublicKey","stringOrBuffer","keyPairCache","useKeyPair","Object","prototype","hasOwnProperty","call","createErrorForJWTError","name","TokenError","expired","date","Date","notActiveBefore","message","payloadInvalid","cause","logMessage","decodeToken","token","output","decode","signToken","payload","expiresIn","KeyType","RSA","EC","algorithm","sign","OCT","secret","verifyToken","promise","algorithms","verify","decoded","transformDomainEventData","input","keys","i","length","toISOString","buildDomainEventChannelName","id","publishDomainRedisEvent","destinations","hasClient","hasConfig","json","JSON","stringify","client","useClient","pipeline","namespace","keyPrefix","channel","publish","event","DomainEventName","CREATED","exec","instance","useSocketEmitter","Emitter","publishDomainSocketEvent","emitter","of","roomName","fullEventName","buildDomainEventFullName","in","emit","meta","roomId","publishDomainEvent","VoidLogger","error","warn","info","http","verbose","debug","useLogger","setLogger","logger","hasSmtpConfig","setSmtpConfig","useSmtpConfig","createSmtpClient","transport","createTransport","connectionString","auth","user","password","pass","host","port","secure","ssl","opportunisticTLS","starttls","tls","rejectUnauthorized","on","useSMTPClient","env","NODE_ENV","testAccount","createTestAccount","obj","prop"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@authup/server-kit",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.2",
|
|
4
4
|
"description": "SDK for server side services.",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./package.json": "./package.json",
|
|
@@ -55,19 +55,19 @@
|
|
|
55
55
|
"@types/nodemailer": "^6.4.14",
|
|
56
56
|
"bcrypt": "^5.1.1",
|
|
57
57
|
"jsonwebtoken": "^9.0.2",
|
|
58
|
-
"locter": "^1.
|
|
58
|
+
"locter": "^1.3.0",
|
|
59
59
|
"nodemailer": "^6.9.8",
|
|
60
60
|
"proxy-from-env": "^1.1.0",
|
|
61
61
|
"smob": "^1.4.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
-
"@authup/core": "^1.0.0-beta.
|
|
64
|
+
"@authup/core": "^1.0.0-beta.2",
|
|
65
65
|
"@types/bcrypt": "^5.0.2",
|
|
66
66
|
"@types/proxy-from-env": "^1.0.4",
|
|
67
67
|
"redis-extension": "^1.3.0"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
|
-
"@authup/core": "^1.0.0-beta.
|
|
70
|
+
"@authup/core": "^1.0.0-beta.2",
|
|
71
71
|
"redis-extension": "^1.2.x"
|
|
72
72
|
},
|
|
73
73
|
"publishConfig": {
|
package/dist/proxy/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
package/dist/proxy/module.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import type { Agent, AgentOptions } from 'node:https';
|
|
3
|
-
export type ProxyClientOptions = {
|
|
4
|
-
user?: string;
|
|
5
|
-
password?: string;
|
|
6
|
-
host: string;
|
|
7
|
-
port: number;
|
|
8
|
-
};
|
|
9
|
-
export declare class ProxyClient {
|
|
10
|
-
protected options: ProxyClientOptions;
|
|
11
|
-
/**
|
|
12
|
-
* e.g. { keepAlive: true }
|
|
13
|
-
* @protected
|
|
14
|
-
*/
|
|
15
|
-
protected agentOptions: AgentOptions;
|
|
16
|
-
constructor(options: ProxyClientOptions, agentOptions?: AgentOptions);
|
|
17
|
-
/**
|
|
18
|
-
* Create a http agent for an url.
|
|
19
|
-
*
|
|
20
|
-
* @param input
|
|
21
|
-
*/
|
|
22
|
-
createAgent(input: string): Promise<Agent>;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/proxy/module.ts"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAItD,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAA;CACf,CAAC;AAEF,qBAAa,WAAW;IACpB,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAEtC;;;OAGG;IACH,SAAS,CAAC,YAAY,EAAG,YAAY,CAAC;gBAE1B,OAAO,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,YAAY;IAKpE;;;;OAIG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM;CA0ClC"}
|
package/dist/proxy/utils.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import type { Agent } from 'https';
|
|
3
|
-
type ClientOptions = {
|
|
4
|
-
agent?: ((url: URL) => Agent) | Agent;
|
|
5
|
-
};
|
|
6
|
-
export declare function buildHTTPClientConfigForProxy(url: string): Promise<ClientOptions>;
|
|
7
|
-
export {};
|
|
8
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/proxy/utils.ts"],"names":[],"mappings":";AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAKnC,KAAK,aAAa,GAAG;IACjB,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAA;CACxC,CAAC;AAEF,wBAAsB,6BAA6B,CAC/C,GAAG,EAAE,MAAM,GACX,OAAO,CAAC,aAAa,CAAC,CAmBzB"}
|