@owox/idp-owox 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -0
- package/dist/auth/AuthorizationStore.d.ts +37 -0
- package/dist/auth/AuthorizationStore.d.ts.map +1 -0
- package/dist/auth/AuthorizationStore.js +2 -0
- package/dist/auth/AuthorizationStoreFactory.d.ts +7 -0
- package/dist/auth/AuthorizationStoreFactory.d.ts.map +1 -0
- package/dist/auth/AuthorizationStoreFactory.js +18 -0
- package/dist/auth/MysqlAuthorizationStore.d.ts +19 -0
- package/dist/auth/MysqlAuthorizationStore.d.ts.map +1 -0
- package/dist/auth/MysqlAuthorizationStore.js +84 -0
- package/dist/auth/SqliteAuthorizationStore.d.ts +20 -0
- package/dist/auth/SqliteAuthorizationStore.d.ts.map +1 -0
- package/dist/auth/SqliteAuthorizationStore.js +87 -0
- package/dist/client/IdentityOwoxClient.d.ts +27 -0
- package/dist/client/IdentityOwoxClient.d.ts.map +1 -0
- package/dist/client/IdentityOwoxClient.js +59 -0
- package/dist/client/dto/idpOwoxPayloadDto.d.ts +28 -0
- package/dist/client/dto/idpOwoxPayloadDto.d.ts.map +1 -0
- package/dist/client/dto/idpOwoxPayloadDto.js +30 -0
- package/dist/client/dto/index.d.ts +7 -0
- package/dist/client/dto/index.d.ts.map +1 -0
- package/dist/client/dto/index.js +22 -0
- package/dist/client/dto/introspectionDto.d.ts +68 -0
- package/dist/client/dto/introspectionDto.d.ts.map +1 -0
- package/dist/client/dto/introspectionDto.js +17 -0
- package/dist/client/dto/jwksDto.d.ts +100 -0
- package/dist/client/dto/jwksDto.d.ts.map +1 -0
- package/dist/client/dto/jwksDto.js +19 -0
- package/dist/client/dto/revocationDto.d.ts +9 -0
- package/dist/client/dto/revocationDto.d.ts.map +1 -0
- package/dist/client/dto/revocationDto.js +2 -0
- package/dist/client/dto/tokenDto.d.ts +30 -0
- package/dist/client/dto/tokenDto.d.ts.map +1 -0
- package/dist/client/dto/tokenDto.js +11 -0
- package/dist/client/dto/tokenType.d.ts +2 -0
- package/dist/client/dto/tokenType.d.ts.map +1 -0
- package/dist/client/dto/tokenType.js +2 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +18 -0
- package/dist/config.d.ts +192 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +174 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/mappers/idpOwoxPayloadToPayloadMapper.d.ts +3 -0
- package/dist/mappers/idpOwoxPayloadToPayloadMapper.d.ts.map +1 -0
- package/dist/mappers/idpOwoxPayloadToPayloadMapper.js +17 -0
- package/dist/owoxIdp.d.ts +25 -0
- package/dist/owoxIdp.d.ts.map +1 -0
- package/dist/owoxIdp.js +172 -0
- package/dist/pkce.d.ts +21 -0
- package/dist/pkce.d.ts.map +1 -0
- package/dist/pkce.js +34 -0
- package/dist/token/jwksCache.d.ts +19 -0
- package/dist/token/jwksCache.d.ts.map +1 -0
- package/dist/token/jwksCache.js +41 -0
- package/dist/token/parseToken.d.ts +11 -0
- package/dist/token/parseToken.d.ts.map +1 -0
- package/dist/token/parseToken.js +29 -0
- package/dist/token/verifyJwt.d.ts +9 -0
- package/dist/token/verifyJwt.d.ts.map +1 -0
- package/dist/token/verifyJwt.js +23 -0
- package/package.json +62 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IntrospectionResponseSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const idpOwoxPayloadDto_1 = require("./idpOwoxPayloadDto");
|
|
6
|
+
const ActiveSchema = idpOwoxPayloadDto_1.IdpOwoxPayloadSchema.extend({
|
|
7
|
+
isActive: zod_1.z.literal(true),
|
|
8
|
+
});
|
|
9
|
+
const inactiveShape = Object.fromEntries(Object.keys(idpOwoxPayloadDto_1.IdpOwoxPayloadSchema.shape).map(k => [k, zod_1.z.null()]));
|
|
10
|
+
const InactiveSchema = zod_1.z
|
|
11
|
+
.object(inactiveShape)
|
|
12
|
+
.strict()
|
|
13
|
+
.extend({ isActive: zod_1.z.literal(false) });
|
|
14
|
+
exports.IntrospectionResponseSchema = zod_1.z.discriminatedUnion('isActive', [
|
|
15
|
+
ActiveSchema,
|
|
16
|
+
InactiveSchema,
|
|
17
|
+
]);
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { JWK } from 'jose';
|
|
3
|
+
export declare const JsonWebKeySchema: z.ZodObject<{
|
|
4
|
+
kty: z.ZodString;
|
|
5
|
+
use: z.ZodString;
|
|
6
|
+
alg: z.ZodString;
|
|
7
|
+
kid: z.ZodString;
|
|
8
|
+
n: z.ZodString;
|
|
9
|
+
e: z.ZodString;
|
|
10
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
11
|
+
kty: z.ZodString;
|
|
12
|
+
use: z.ZodString;
|
|
13
|
+
alg: z.ZodString;
|
|
14
|
+
kid: z.ZodString;
|
|
15
|
+
n: z.ZodString;
|
|
16
|
+
e: z.ZodString;
|
|
17
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
18
|
+
kty: z.ZodString;
|
|
19
|
+
use: z.ZodString;
|
|
20
|
+
alg: z.ZodString;
|
|
21
|
+
kid: z.ZodString;
|
|
22
|
+
n: z.ZodString;
|
|
23
|
+
e: z.ZodString;
|
|
24
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
25
|
+
export declare const JwksResponseSchema: z.ZodEffects<z.ZodObject<{
|
|
26
|
+
keys: z.ZodArray<z.ZodObject<{
|
|
27
|
+
kty: z.ZodString;
|
|
28
|
+
use: z.ZodString;
|
|
29
|
+
alg: z.ZodString;
|
|
30
|
+
kid: z.ZodString;
|
|
31
|
+
n: z.ZodString;
|
|
32
|
+
e: z.ZodString;
|
|
33
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
34
|
+
kty: z.ZodString;
|
|
35
|
+
use: z.ZodString;
|
|
36
|
+
alg: z.ZodString;
|
|
37
|
+
kid: z.ZodString;
|
|
38
|
+
n: z.ZodString;
|
|
39
|
+
e: z.ZodString;
|
|
40
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
41
|
+
kty: z.ZodString;
|
|
42
|
+
use: z.ZodString;
|
|
43
|
+
alg: z.ZodString;
|
|
44
|
+
kid: z.ZodString;
|
|
45
|
+
n: z.ZodString;
|
|
46
|
+
e: z.ZodString;
|
|
47
|
+
}, z.ZodTypeAny, "passthrough">>, "atleastone">;
|
|
48
|
+
}, "strip", z.ZodTypeAny, {
|
|
49
|
+
keys: [z.objectOutputType<{
|
|
50
|
+
kty: z.ZodString;
|
|
51
|
+
use: z.ZodString;
|
|
52
|
+
alg: z.ZodString;
|
|
53
|
+
kid: z.ZodString;
|
|
54
|
+
n: z.ZodString;
|
|
55
|
+
e: z.ZodString;
|
|
56
|
+
}, z.ZodTypeAny, "passthrough">, ...z.objectOutputType<{
|
|
57
|
+
kty: z.ZodString;
|
|
58
|
+
use: z.ZodString;
|
|
59
|
+
alg: z.ZodString;
|
|
60
|
+
kid: z.ZodString;
|
|
61
|
+
n: z.ZodString;
|
|
62
|
+
e: z.ZodString;
|
|
63
|
+
}, z.ZodTypeAny, "passthrough">[]];
|
|
64
|
+
}, {
|
|
65
|
+
keys: [z.objectInputType<{
|
|
66
|
+
kty: z.ZodString;
|
|
67
|
+
use: z.ZodString;
|
|
68
|
+
alg: z.ZodString;
|
|
69
|
+
kid: z.ZodString;
|
|
70
|
+
n: z.ZodString;
|
|
71
|
+
e: z.ZodString;
|
|
72
|
+
}, z.ZodTypeAny, "passthrough">, ...z.objectInputType<{
|
|
73
|
+
kty: z.ZodString;
|
|
74
|
+
use: z.ZodString;
|
|
75
|
+
alg: z.ZodString;
|
|
76
|
+
kid: z.ZodString;
|
|
77
|
+
n: z.ZodString;
|
|
78
|
+
e: z.ZodString;
|
|
79
|
+
}, z.ZodTypeAny, "passthrough">[]];
|
|
80
|
+
}>, {
|
|
81
|
+
keys: JWK[];
|
|
82
|
+
}, {
|
|
83
|
+
keys: [z.objectInputType<{
|
|
84
|
+
kty: z.ZodString;
|
|
85
|
+
use: z.ZodString;
|
|
86
|
+
alg: z.ZodString;
|
|
87
|
+
kid: z.ZodString;
|
|
88
|
+
n: z.ZodString;
|
|
89
|
+
e: z.ZodString;
|
|
90
|
+
}, z.ZodTypeAny, "passthrough">, ...z.objectInputType<{
|
|
91
|
+
kty: z.ZodString;
|
|
92
|
+
use: z.ZodString;
|
|
93
|
+
alg: z.ZodString;
|
|
94
|
+
kid: z.ZodString;
|
|
95
|
+
n: z.ZodString;
|
|
96
|
+
e: z.ZodString;
|
|
97
|
+
}, z.ZodTypeAny, "passthrough">[]];
|
|
98
|
+
}>;
|
|
99
|
+
export type JwksResponse = z.infer<typeof JwksResponseSchema>;
|
|
100
|
+
//# sourceMappingURL=jwksDto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwksDto.d.ts","sourceRoot":"","sources":["../../../src/client/dto/jwksDto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE3B,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;gCASb,CAAC;AAEjB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAIiB,GAAG,EAAE;;;;;;;;;;;;;;;;;EAAI,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JwksResponseSchema = exports.JsonWebKeySchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.JsonWebKeySchema = zod_1.z
|
|
6
|
+
.object({
|
|
7
|
+
kty: zod_1.z.string(),
|
|
8
|
+
use: zod_1.z.string(),
|
|
9
|
+
alg: zod_1.z.string(),
|
|
10
|
+
kid: zod_1.z.string(),
|
|
11
|
+
n: zod_1.z.string(),
|
|
12
|
+
e: zod_1.z.string(),
|
|
13
|
+
})
|
|
14
|
+
.passthrough();
|
|
15
|
+
exports.JwksResponseSchema = zod_1.z
|
|
16
|
+
.object({
|
|
17
|
+
keys: zod_1.z.array(exports.JsonWebKeySchema).nonempty(),
|
|
18
|
+
})
|
|
19
|
+
.transform(v => ({ keys: v.keys }));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revocationDto.d.ts","sourceRoot":"","sources":["../../../src/client/dto/revocationDto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type GrantType = 'authorization_code' | 'refresh_token';
|
|
3
|
+
export interface TokenRequest {
|
|
4
|
+
grantType: GrantType;
|
|
5
|
+
clientId: string;
|
|
6
|
+
authCode?: string;
|
|
7
|
+
refreshToken?: string;
|
|
8
|
+
codeVerifier?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const TokenResponseSchema: z.ZodObject<{
|
|
11
|
+
accessToken: z.ZodString;
|
|
12
|
+
refreshToken: z.ZodString;
|
|
13
|
+
tokenType: z.ZodString;
|
|
14
|
+
accessTokenExpiresIn: z.ZodNumber;
|
|
15
|
+
refreshTokenExpiresIn: z.ZodNumber;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
accessToken: string;
|
|
18
|
+
refreshToken: string;
|
|
19
|
+
tokenType: string;
|
|
20
|
+
accessTokenExpiresIn: number;
|
|
21
|
+
refreshTokenExpiresIn: number;
|
|
22
|
+
}, {
|
|
23
|
+
accessToken: string;
|
|
24
|
+
refreshToken: string;
|
|
25
|
+
tokenType: string;
|
|
26
|
+
accessTokenExpiresIn: number;
|
|
27
|
+
refreshTokenExpiresIn: number;
|
|
28
|
+
}>;
|
|
29
|
+
export type TokenResponse = z.infer<typeof TokenResponseSchema>;
|
|
30
|
+
//# sourceMappingURL=tokenDto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenDto.d.ts","sourceRoot":"","sources":["../../../src/client/dto/tokenDto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,SAAS,GAAG,oBAAoB,GAAG,eAAe,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenResponseSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.TokenResponseSchema = zod_1.z.object({
|
|
6
|
+
accessToken: zod_1.z.string().min(10),
|
|
7
|
+
refreshToken: zod_1.z.string().min(10),
|
|
8
|
+
tokenType: zod_1.z.string(),
|
|
9
|
+
accessTokenExpiresIn: zod_1.z.number().positive(),
|
|
10
|
+
refreshTokenExpiresIn: zod_1.z.number().positive(),
|
|
11
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenType.d.ts","sourceRoot":"","sources":["../../../src/client/dto/tokenType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./IdentityOwoxClient"), exports);
|
|
18
|
+
__exportStar(require("./dto"), exports);
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import ms from 'ms';
|
|
3
|
+
export declare const DbEnvSchema: z.ZodEffects<z.ZodDiscriminatedUnion<"IDP_OWOX_DB_TYPE", [z.ZodObject<{
|
|
4
|
+
IDP_OWOX_DB_TYPE: z.ZodLiteral<"sqlite">;
|
|
5
|
+
IDP_OWOX_SQLITE_DB_PATH: z.ZodOptional<z.ZodString>;
|
|
6
|
+
IDP_OWOX_SQLITE_PRAGMA: z.ZodOptional<z.ZodString>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
IDP_OWOX_DB_TYPE: "sqlite";
|
|
9
|
+
IDP_OWOX_SQLITE_DB_PATH?: string | undefined;
|
|
10
|
+
IDP_OWOX_SQLITE_PRAGMA?: string | undefined;
|
|
11
|
+
}, {
|
|
12
|
+
IDP_OWOX_DB_TYPE: "sqlite";
|
|
13
|
+
IDP_OWOX_SQLITE_DB_PATH?: string | undefined;
|
|
14
|
+
IDP_OWOX_SQLITE_PRAGMA?: string | undefined;
|
|
15
|
+
}>, z.ZodObject<{
|
|
16
|
+
IDP_OWOX_DB_TYPE: z.ZodLiteral<"mysql">;
|
|
17
|
+
IDP_OWOX_MYSQL_HOST: z.ZodString;
|
|
18
|
+
IDP_OWOX_MYSQL_USER: z.ZodString;
|
|
19
|
+
IDP_OWOX_MYSQL_PASSWORD: z.ZodString;
|
|
20
|
+
IDP_OWOX_MYSQL_DB: z.ZodString;
|
|
21
|
+
IDP_OWOX_MYSQL_PORT: z.ZodOptional<z.ZodString>;
|
|
22
|
+
IDP_OWOX_MYSQL_CONNECTION_LIMIT: z.ZodOptional<z.ZodString>;
|
|
23
|
+
IDP_OWOX_MYSQL_SSL: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
IDP_OWOX_DB_TYPE: "mysql";
|
|
26
|
+
IDP_OWOX_MYSQL_HOST: string;
|
|
27
|
+
IDP_OWOX_MYSQL_USER: string;
|
|
28
|
+
IDP_OWOX_MYSQL_PASSWORD: string;
|
|
29
|
+
IDP_OWOX_MYSQL_DB: string;
|
|
30
|
+
IDP_OWOX_MYSQL_PORT?: string | undefined;
|
|
31
|
+
IDP_OWOX_MYSQL_CONNECTION_LIMIT?: string | undefined;
|
|
32
|
+
IDP_OWOX_MYSQL_SSL?: string | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
IDP_OWOX_DB_TYPE: "mysql";
|
|
35
|
+
IDP_OWOX_MYSQL_HOST: string;
|
|
36
|
+
IDP_OWOX_MYSQL_USER: string;
|
|
37
|
+
IDP_OWOX_MYSQL_PASSWORD: string;
|
|
38
|
+
IDP_OWOX_MYSQL_DB: string;
|
|
39
|
+
IDP_OWOX_MYSQL_PORT?: string | undefined;
|
|
40
|
+
IDP_OWOX_MYSQL_CONNECTION_LIMIT?: string | undefined;
|
|
41
|
+
IDP_OWOX_MYSQL_SSL?: string | undefined;
|
|
42
|
+
}>]>, {
|
|
43
|
+
type: "sqlite";
|
|
44
|
+
sqlite: {
|
|
45
|
+
type: "sqlite";
|
|
46
|
+
dbPath: string;
|
|
47
|
+
pragma: string[] | undefined;
|
|
48
|
+
};
|
|
49
|
+
mysql?: undefined;
|
|
50
|
+
} | {
|
|
51
|
+
type: "mysql";
|
|
52
|
+
mysql: {
|
|
53
|
+
type: "mysql";
|
|
54
|
+
host: string;
|
|
55
|
+
port: number | undefined;
|
|
56
|
+
user: string;
|
|
57
|
+
password: string;
|
|
58
|
+
database: string;
|
|
59
|
+
connectionLimit: number | undefined;
|
|
60
|
+
ssl: string | import("mysql2/promise").SslOptions | undefined;
|
|
61
|
+
};
|
|
62
|
+
sqlite?: undefined;
|
|
63
|
+
}, {
|
|
64
|
+
IDP_OWOX_DB_TYPE: "sqlite";
|
|
65
|
+
IDP_OWOX_SQLITE_DB_PATH?: string | undefined;
|
|
66
|
+
IDP_OWOX_SQLITE_PRAGMA?: string | undefined;
|
|
67
|
+
} | {
|
|
68
|
+
IDP_OWOX_DB_TYPE: "mysql";
|
|
69
|
+
IDP_OWOX_MYSQL_HOST: string;
|
|
70
|
+
IDP_OWOX_MYSQL_USER: string;
|
|
71
|
+
IDP_OWOX_MYSQL_PASSWORD: string;
|
|
72
|
+
IDP_OWOX_MYSQL_DB: string;
|
|
73
|
+
IDP_OWOX_MYSQL_PORT?: string | undefined;
|
|
74
|
+
IDP_OWOX_MYSQL_CONNECTION_LIMIT?: string | undefined;
|
|
75
|
+
IDP_OWOX_MYSQL_SSL?: string | undefined;
|
|
76
|
+
}>;
|
|
77
|
+
export declare function loadDbConfigFromEnv(env?: NodeJS.ProcessEnv): {
|
|
78
|
+
type: "sqlite";
|
|
79
|
+
sqlite: {
|
|
80
|
+
type: "sqlite";
|
|
81
|
+
dbPath: string;
|
|
82
|
+
pragma: string[] | undefined;
|
|
83
|
+
};
|
|
84
|
+
mysql?: undefined;
|
|
85
|
+
} | {
|
|
86
|
+
type: "mysql";
|
|
87
|
+
mysql: {
|
|
88
|
+
type: "mysql";
|
|
89
|
+
host: string;
|
|
90
|
+
port: number | undefined;
|
|
91
|
+
user: string;
|
|
92
|
+
password: string;
|
|
93
|
+
database: string;
|
|
94
|
+
connectionLimit: number | undefined;
|
|
95
|
+
ssl: string | import("mysql2/promise").SslOptions | undefined;
|
|
96
|
+
};
|
|
97
|
+
sqlite?: undefined;
|
|
98
|
+
};
|
|
99
|
+
/** ---------- IdentityOwox client ---------- */
|
|
100
|
+
declare const IdentityOwoxClientEnvSchema: z.ZodEffects<z.ZodObject<{
|
|
101
|
+
IDP_OWOX_BASE_URL: z.ZodString;
|
|
102
|
+
IDP_OWOX_DEFAULT_HEADERS: z.ZodOptional<z.ZodString>;
|
|
103
|
+
IDP_OWOX_TIMEOUT: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, `${number}` | `${number}Years` | `${number}Year` | `${number}Yrs` | `${number}Yr` | `${number}Y` | `${number}Weeks` | `${number}Week` | `${number}W` | `${number}Days` | `${number}Day` | `${number}D` | `${number}Hours` | `${number}Hour` | `${number}Hrs` | `${number}Hr` | `${number}H` | `${number}Minutes` | `${number}Minute` | `${number}Mins` | `${number}Min` | `${number}M` | `${number}Seconds` | `${number}Second` | `${number}Secs` | `${number}Sec` | `${number}s` | `${number}Milliseconds` | `${number}Millisecond` | `${number}Msecs` | `${number}Msec` | `${number}Ms` | `${number}YEARS` | `${number}YEAR` | `${number}YRS` | `${number}YR` | `${number}WEEKS` | `${number}WEEK` | `${number}DAYS` | `${number}DAY` | `${number}HOURS` | `${number}HOUR` | `${number}HRS` | `${number}HR` | `${number}MINUTES` | `${number}MINUTE` | `${number}MINS` | `${number}MIN` | `${number}SECONDS` | `${number}SECOND` | `${number}SECS` | `${number}SEC` | `${number}S` | `${number}MILLISECONDS` | `${number}MILLISECOND` | `${number}MSECS` | `${number}MSEC` | `${number}MS` | `${number}years` | `${number}year` | `${number}yrs` | `${number}yr` | `${number}y` | `${number}weeks` | `${number}week` | `${number}w` | `${number}days` | `${number}day` | `${number}d` | `${number}hours` | `${number}hour` | `${number}hrs` | `${number}hr` | `${number}h` | `${number}minutes` | `${number}minute` | `${number}mins` | `${number}min` | `${number}m` | `${number}seconds` | `${number}second` | `${number}secs` | `${number}sec` | `${number}milliseconds` | `${number}millisecond` | `${number}msecs` | `${number}msec` | `${number}ms` | `${number} Years` | `${number} Year` | `${number} Yrs` | `${number} Yr` | `${number} Y` | `${number} Weeks` | `${number} Week` | `${number} W` | `${number} Days` | `${number} Day` | `${number} D` | `${number} Hours` | `${number} Hour` | `${number} Hrs` | `${number} Hr` | `${number} H` | `${number} Minutes` | `${number} Minute` | `${number} Mins` | `${number} Min` | `${number} M` | `${number} Seconds` | `${number} Second` | `${number} Secs` | `${number} Sec` | `${number} s` | `${number} Milliseconds` | `${number} Millisecond` | `${number} Msecs` | `${number} Msec` | `${number} Ms` | `${number} YEARS` | `${number} YEAR` | `${number} YRS` | `${number} YR` | `${number} WEEKS` | `${number} WEEK` | `${number} DAYS` | `${number} DAY` | `${number} HOURS` | `${number} HOUR` | `${number} HRS` | `${number} HR` | `${number} MINUTES` | `${number} MINUTE` | `${number} MINS` | `${number} MIN` | `${number} SECONDS` | `${number} SECOND` | `${number} SECS` | `${number} SEC` | `${number} S` | `${number} MILLISECONDS` | `${number} MILLISECOND` | `${number} MSECS` | `${number} MSEC` | `${number} MS` | `${number} years` | `${number} year` | `${number} yrs` | `${number} yr` | `${number} y` | `${number} weeks` | `${number} week` | `${number} w` | `${number} days` | `${number} day` | `${number} d` | `${number} hours` | `${number} hour` | `${number} hrs` | `${number} hr` | `${number} h` | `${number} minutes` | `${number} minute` | `${number} mins` | `${number} min` | `${number} m` | `${number} seconds` | `${number} second` | `${number} secs` | `${number} sec` | `${number} milliseconds` | `${number} millisecond` | `${number} msecs` | `${number} msec` | `${number} ms`, string>>;
|
|
104
|
+
}, "strip", z.ZodTypeAny, {
|
|
105
|
+
IDP_OWOX_BASE_URL: string;
|
|
106
|
+
IDP_OWOX_DEFAULT_HEADERS?: string | undefined;
|
|
107
|
+
IDP_OWOX_TIMEOUT?: `${number}` | `${number}Years` | `${number}Year` | `${number}Yrs` | `${number}Yr` | `${number}Y` | `${number}Weeks` | `${number}Week` | `${number}W` | `${number}Days` | `${number}Day` | `${number}D` | `${number}Hours` | `${number}Hour` | `${number}Hrs` | `${number}Hr` | `${number}H` | `${number}Minutes` | `${number}Minute` | `${number}Mins` | `${number}Min` | `${number}M` | `${number}Seconds` | `${number}Second` | `${number}Secs` | `${number}Sec` | `${number}s` | `${number}Milliseconds` | `${number}Millisecond` | `${number}Msecs` | `${number}Msec` | `${number}Ms` | `${number}YEARS` | `${number}YEAR` | `${number}YRS` | `${number}YR` | `${number}WEEKS` | `${number}WEEK` | `${number}DAYS` | `${number}DAY` | `${number}HOURS` | `${number}HOUR` | `${number}HRS` | `${number}HR` | `${number}MINUTES` | `${number}MINUTE` | `${number}MINS` | `${number}MIN` | `${number}SECONDS` | `${number}SECOND` | `${number}SECS` | `${number}SEC` | `${number}S` | `${number}MILLISECONDS` | `${number}MILLISECOND` | `${number}MSECS` | `${number}MSEC` | `${number}MS` | `${number}years` | `${number}year` | `${number}yrs` | `${number}yr` | `${number}y` | `${number}weeks` | `${number}week` | `${number}w` | `${number}days` | `${number}day` | `${number}d` | `${number}hours` | `${number}hour` | `${number}hrs` | `${number}hr` | `${number}h` | `${number}minutes` | `${number}minute` | `${number}mins` | `${number}min` | `${number}m` | `${number}seconds` | `${number}second` | `${number}secs` | `${number}sec` | `${number}milliseconds` | `${number}millisecond` | `${number}msecs` | `${number}msec` | `${number}ms` | `${number} Years` | `${number} Year` | `${number} Yrs` | `${number} Yr` | `${number} Y` | `${number} Weeks` | `${number} Week` | `${number} W` | `${number} Days` | `${number} Day` | `${number} D` | `${number} Hours` | `${number} Hour` | `${number} Hrs` | `${number} Hr` | `${number} H` | `${number} Minutes` | `${number} Minute` | `${number} Mins` | `${number} Min` | `${number} M` | `${number} Seconds` | `${number} Second` | `${number} Secs` | `${number} Sec` | `${number} s` | `${number} Milliseconds` | `${number} Millisecond` | `${number} Msecs` | `${number} Msec` | `${number} Ms` | `${number} YEARS` | `${number} YEAR` | `${number} YRS` | `${number} YR` | `${number} WEEKS` | `${number} WEEK` | `${number} DAYS` | `${number} DAY` | `${number} HOURS` | `${number} HOUR` | `${number} HRS` | `${number} HR` | `${number} MINUTES` | `${number} MINUTE` | `${number} MINS` | `${number} MIN` | `${number} SECONDS` | `${number} SECOND` | `${number} SECS` | `${number} SEC` | `${number} S` | `${number} MILLISECONDS` | `${number} MILLISECOND` | `${number} MSECS` | `${number} MSEC` | `${number} MS` | `${number} years` | `${number} year` | `${number} yrs` | `${number} yr` | `${number} y` | `${number} weeks` | `${number} week` | `${number} w` | `${number} days` | `${number} day` | `${number} d` | `${number} hours` | `${number} hour` | `${number} hrs` | `${number} hr` | `${number} h` | `${number} minutes` | `${number} minute` | `${number} mins` | `${number} min` | `${number} m` | `${number} seconds` | `${number} second` | `${number} secs` | `${number} sec` | `${number} milliseconds` | `${number} millisecond` | `${number} msecs` | `${number} msec` | `${number} ms` | undefined;
|
|
108
|
+
}, {
|
|
109
|
+
IDP_OWOX_BASE_URL: string;
|
|
110
|
+
IDP_OWOX_DEFAULT_HEADERS?: string | undefined;
|
|
111
|
+
IDP_OWOX_TIMEOUT?: string | undefined;
|
|
112
|
+
}>, {
|
|
113
|
+
baseUrl: string;
|
|
114
|
+
defaultHeaders: Record<string, string> | undefined;
|
|
115
|
+
clientTimeout: ms.StringValue;
|
|
116
|
+
}, {
|
|
117
|
+
IDP_OWOX_BASE_URL: string;
|
|
118
|
+
IDP_OWOX_DEFAULT_HEADERS?: string | undefined;
|
|
119
|
+
IDP_OWOX_TIMEOUT?: string | undefined;
|
|
120
|
+
}>;
|
|
121
|
+
/** ---------- IDP (frontend/app) config ---------- */
|
|
122
|
+
declare const IdpEnvSchema: z.ZodEffects<z.ZodObject<{
|
|
123
|
+
IDP_OWOX_CLIENT_ID: z.ZodString;
|
|
124
|
+
IDP_OWOX_PLATFORM_SIGN_IN_URL: z.ZodString;
|
|
125
|
+
IDP_OWOX_CALLBACK_URL: z.ZodString;
|
|
126
|
+
}, "strip", z.ZodTypeAny, {
|
|
127
|
+
IDP_OWOX_CLIENT_ID: string;
|
|
128
|
+
IDP_OWOX_PLATFORM_SIGN_IN_URL: string;
|
|
129
|
+
IDP_OWOX_CALLBACK_URL: string;
|
|
130
|
+
}, {
|
|
131
|
+
IDP_OWOX_CLIENT_ID: string;
|
|
132
|
+
IDP_OWOX_PLATFORM_SIGN_IN_URL: string;
|
|
133
|
+
IDP_OWOX_CALLBACK_URL: string;
|
|
134
|
+
}>, {
|
|
135
|
+
clientId: string;
|
|
136
|
+
platformSignInUrl: string;
|
|
137
|
+
callbackUrl: string;
|
|
138
|
+
}, {
|
|
139
|
+
IDP_OWOX_CLIENT_ID: string;
|
|
140
|
+
IDP_OWOX_PLATFORM_SIGN_IN_URL: string;
|
|
141
|
+
IDP_OWOX_CALLBACK_URL: string;
|
|
142
|
+
}>;
|
|
143
|
+
/** ---------- JWT config ---------- */
|
|
144
|
+
declare const JwtEnvSchema: z.ZodEffects<z.ZodObject<{
|
|
145
|
+
IDP_OWOX_JWT_CLOCK_TOLERANCE: z.ZodDefault<z.ZodString>;
|
|
146
|
+
IDP_OWOX_JWT_ISSUER: z.ZodString;
|
|
147
|
+
IDP_OWOX_JWT_CACHE_TTL: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, `${number}` | `${number}Years` | `${number}Year` | `${number}Yrs` | `${number}Yr` | `${number}Y` | `${number}Weeks` | `${number}Week` | `${number}W` | `${number}Days` | `${number}Day` | `${number}D` | `${number}Hours` | `${number}Hour` | `${number}Hrs` | `${number}Hr` | `${number}H` | `${number}Minutes` | `${number}Minute` | `${number}Mins` | `${number}Min` | `${number}M` | `${number}Seconds` | `${number}Second` | `${number}Secs` | `${number}Sec` | `${number}s` | `${number}Milliseconds` | `${number}Millisecond` | `${number}Msecs` | `${number}Msec` | `${number}Ms` | `${number}YEARS` | `${number}YEAR` | `${number}YRS` | `${number}YR` | `${number}WEEKS` | `${number}WEEK` | `${number}DAYS` | `${number}DAY` | `${number}HOURS` | `${number}HOUR` | `${number}HRS` | `${number}HR` | `${number}MINUTES` | `${number}MINUTE` | `${number}MINS` | `${number}MIN` | `${number}SECONDS` | `${number}SECOND` | `${number}SECS` | `${number}SEC` | `${number}S` | `${number}MILLISECONDS` | `${number}MILLISECOND` | `${number}MSECS` | `${number}MSEC` | `${number}MS` | `${number}years` | `${number}year` | `${number}yrs` | `${number}yr` | `${number}y` | `${number}weeks` | `${number}week` | `${number}w` | `${number}days` | `${number}day` | `${number}d` | `${number}hours` | `${number}hour` | `${number}hrs` | `${number}hr` | `${number}h` | `${number}minutes` | `${number}minute` | `${number}mins` | `${number}min` | `${number}m` | `${number}seconds` | `${number}second` | `${number}secs` | `${number}sec` | `${number}milliseconds` | `${number}millisecond` | `${number}msecs` | `${number}msec` | `${number}ms` | `${number} Years` | `${number} Year` | `${number} Yrs` | `${number} Yr` | `${number} Y` | `${number} Weeks` | `${number} Week` | `${number} W` | `${number} Days` | `${number} Day` | `${number} D` | `${number} Hours` | `${number} Hour` | `${number} Hrs` | `${number} Hr` | `${number} H` | `${number} Minutes` | `${number} Minute` | `${number} Mins` | `${number} Min` | `${number} M` | `${number} Seconds` | `${number} Second` | `${number} Secs` | `${number} Sec` | `${number} s` | `${number} Milliseconds` | `${number} Millisecond` | `${number} Msecs` | `${number} Msec` | `${number} Ms` | `${number} YEARS` | `${number} YEAR` | `${number} YRS` | `${number} YR` | `${number} WEEKS` | `${number} WEEK` | `${number} DAYS` | `${number} DAY` | `${number} HOURS` | `${number} HOUR` | `${number} HRS` | `${number} HR` | `${number} MINUTES` | `${number} MINUTE` | `${number} MINS` | `${number} MIN` | `${number} SECONDS` | `${number} SECOND` | `${number} SECS` | `${number} SEC` | `${number} S` | `${number} MILLISECONDS` | `${number} MILLISECOND` | `${number} MSECS` | `${number} MSEC` | `${number} MS` | `${number} years` | `${number} year` | `${number} yrs` | `${number} yr` | `${number} y` | `${number} weeks` | `${number} week` | `${number} w` | `${number} days` | `${number} day` | `${number} d` | `${number} hours` | `${number} hour` | `${number} hrs` | `${number} hr` | `${number} h` | `${number} minutes` | `${number} minute` | `${number} mins` | `${number} min` | `${number} m` | `${number} seconds` | `${number} second` | `${number} secs` | `${number} sec` | `${number} milliseconds` | `${number} millisecond` | `${number} msecs` | `${number} msec` | `${number} ms`, string>>;
|
|
148
|
+
IDP_OWOX_JWT_ALGORITHM: z.ZodDefault<z.ZodEnum<["RS256"]>>;
|
|
149
|
+
}, "strip", z.ZodTypeAny, {
|
|
150
|
+
IDP_OWOX_JWT_CLOCK_TOLERANCE: string;
|
|
151
|
+
IDP_OWOX_JWT_ISSUER: string;
|
|
152
|
+
IDP_OWOX_JWT_ALGORITHM: "RS256";
|
|
153
|
+
IDP_OWOX_JWT_CACHE_TTL?: `${number}` | `${number}Years` | `${number}Year` | `${number}Yrs` | `${number}Yr` | `${number}Y` | `${number}Weeks` | `${number}Week` | `${number}W` | `${number}Days` | `${number}Day` | `${number}D` | `${number}Hours` | `${number}Hour` | `${number}Hrs` | `${number}Hr` | `${number}H` | `${number}Minutes` | `${number}Minute` | `${number}Mins` | `${number}Min` | `${number}M` | `${number}Seconds` | `${number}Second` | `${number}Secs` | `${number}Sec` | `${number}s` | `${number}Milliseconds` | `${number}Millisecond` | `${number}Msecs` | `${number}Msec` | `${number}Ms` | `${number}YEARS` | `${number}YEAR` | `${number}YRS` | `${number}YR` | `${number}WEEKS` | `${number}WEEK` | `${number}DAYS` | `${number}DAY` | `${number}HOURS` | `${number}HOUR` | `${number}HRS` | `${number}HR` | `${number}MINUTES` | `${number}MINUTE` | `${number}MINS` | `${number}MIN` | `${number}SECONDS` | `${number}SECOND` | `${number}SECS` | `${number}SEC` | `${number}S` | `${number}MILLISECONDS` | `${number}MILLISECOND` | `${number}MSECS` | `${number}MSEC` | `${number}MS` | `${number}years` | `${number}year` | `${number}yrs` | `${number}yr` | `${number}y` | `${number}weeks` | `${number}week` | `${number}w` | `${number}days` | `${number}day` | `${number}d` | `${number}hours` | `${number}hour` | `${number}hrs` | `${number}hr` | `${number}h` | `${number}minutes` | `${number}minute` | `${number}mins` | `${number}min` | `${number}m` | `${number}seconds` | `${number}second` | `${number}secs` | `${number}sec` | `${number}milliseconds` | `${number}millisecond` | `${number}msecs` | `${number}msec` | `${number}ms` | `${number} Years` | `${number} Year` | `${number} Yrs` | `${number} Yr` | `${number} Y` | `${number} Weeks` | `${number} Week` | `${number} W` | `${number} Days` | `${number} Day` | `${number} D` | `${number} Hours` | `${number} Hour` | `${number} Hrs` | `${number} Hr` | `${number} H` | `${number} Minutes` | `${number} Minute` | `${number} Mins` | `${number} Min` | `${number} M` | `${number} Seconds` | `${number} Second` | `${number} Secs` | `${number} Sec` | `${number} s` | `${number} Milliseconds` | `${number} Millisecond` | `${number} Msecs` | `${number} Msec` | `${number} Ms` | `${number} YEARS` | `${number} YEAR` | `${number} YRS` | `${number} YR` | `${number} WEEKS` | `${number} WEEK` | `${number} DAYS` | `${number} DAY` | `${number} HOURS` | `${number} HOUR` | `${number} HRS` | `${number} HR` | `${number} MINUTES` | `${number} MINUTE` | `${number} MINS` | `${number} MIN` | `${number} SECONDS` | `${number} SECOND` | `${number} SECS` | `${number} SEC` | `${number} S` | `${number} MILLISECONDS` | `${number} MILLISECOND` | `${number} MSECS` | `${number} MSEC` | `${number} MS` | `${number} years` | `${number} year` | `${number} yrs` | `${number} yr` | `${number} y` | `${number} weeks` | `${number} week` | `${number} w` | `${number} days` | `${number} day` | `${number} d` | `${number} hours` | `${number} hour` | `${number} hrs` | `${number} hr` | `${number} h` | `${number} minutes` | `${number} minute` | `${number} mins` | `${number} min` | `${number} m` | `${number} seconds` | `${number} second` | `${number} secs` | `${number} sec` | `${number} milliseconds` | `${number} millisecond` | `${number} msecs` | `${number} msec` | `${number} ms` | undefined;
|
|
154
|
+
}, {
|
|
155
|
+
IDP_OWOX_JWT_ISSUER: string;
|
|
156
|
+
IDP_OWOX_JWT_CLOCK_TOLERANCE?: string | undefined;
|
|
157
|
+
IDP_OWOX_JWT_CACHE_TTL?: string | undefined;
|
|
158
|
+
IDP_OWOX_JWT_ALGORITHM?: "RS256" | undefined;
|
|
159
|
+
}>, {
|
|
160
|
+
clockTolerance: string;
|
|
161
|
+
issuer: string;
|
|
162
|
+
jwtKeyCacheTtl: `${number}` | `${number}Years` | `${number}Year` | `${number}Yrs` | `${number}Yr` | `${number}Y` | `${number}Weeks` | `${number}Week` | `${number}W` | `${number}Days` | `${number}Day` | `${number}D` | `${number}Hours` | `${number}Hour` | `${number}Hrs` | `${number}Hr` | `${number}H` | `${number}Minutes` | `${number}Minute` | `${number}Mins` | `${number}Min` | `${number}M` | `${number}Seconds` | `${number}Second` | `${number}Secs` | `${number}Sec` | `${number}s` | `${number}Milliseconds` | `${number}Millisecond` | `${number}Msecs` | `${number}Msec` | `${number}Ms` | `${number}YEARS` | `${number}YEAR` | `${number}YRS` | `${number}YR` | `${number}WEEKS` | `${number}WEEK` | `${number}DAYS` | `${number}DAY` | `${number}HOURS` | `${number}HOUR` | `${number}HRS` | `${number}HR` | `${number}MINUTES` | `${number}MINUTE` | `${number}MINS` | `${number}MIN` | `${number}SECONDS` | `${number}SECOND` | `${number}SECS` | `${number}SEC` | `${number}S` | `${number}MILLISECONDS` | `${number}MILLISECOND` | `${number}MSECS` | `${number}MSEC` | `${number}MS` | `${number}years` | `${number}year` | `${number}yrs` | `${number}yr` | `${number}y` | `${number}weeks` | `${number}week` | `${number}w` | `${number}days` | `${number}day` | `${number}d` | `${number}hours` | `${number}hour` | `${number}hrs` | `${number}hr` | `${number}h` | `${number}minutes` | `${number}minute` | `${number}mins` | `${number}min` | `${number}m` | `${number}seconds` | `${number}second` | `${number}secs` | `${number}sec` | `${number}milliseconds` | `${number}millisecond` | `${number}msecs` | `${number}msec` | `${number}ms` | `${number} Years` | `${number} Year` | `${number} Yrs` | `${number} Yr` | `${number} Y` | `${number} Weeks` | `${number} Week` | `${number} W` | `${number} Days` | `${number} Day` | `${number} D` | `${number} Hours` | `${number} Hour` | `${number} Hrs` | `${number} Hr` | `${number} H` | `${number} Minutes` | `${number} Minute` | `${number} Mins` | `${number} Min` | `${number} M` | `${number} Seconds` | `${number} Second` | `${number} Secs` | `${number} Sec` | `${number} s` | `${number} Milliseconds` | `${number} Millisecond` | `${number} Msecs` | `${number} Msec` | `${number} Ms` | `${number} YEARS` | `${number} YEAR` | `${number} YRS` | `${number} YR` | `${number} WEEKS` | `${number} WEEK` | `${number} DAYS` | `${number} DAY` | `${number} HOURS` | `${number} HOUR` | `${number} HRS` | `${number} HR` | `${number} MINUTES` | `${number} MINUTE` | `${number} MINS` | `${number} MIN` | `${number} SECONDS` | `${number} SECOND` | `${number} SECS` | `${number} SEC` | `${number} S` | `${number} MILLISECONDS` | `${number} MILLISECOND` | `${number} MSECS` | `${number} MSEC` | `${number} MS` | `${number} years` | `${number} year` | `${number} yrs` | `${number} yr` | `${number} y` | `${number} weeks` | `${number} week` | `${number} w` | `${number} days` | `${number} day` | `${number} d` | `${number} hours` | `${number} hour` | `${number} hrs` | `${number} hr` | `${number} h` | `${number} minutes` | `${number} minute` | `${number} mins` | `${number} min` | `${number} m` | `${number} seconds` | `${number} second` | `${number} secs` | `${number} sec` | `${number} milliseconds` | `${number} millisecond` | `${number} msecs` | `${number} msec` | `${number} ms`;
|
|
163
|
+
algorithm: "RS256";
|
|
164
|
+
}, {
|
|
165
|
+
IDP_OWOX_JWT_ISSUER: string;
|
|
166
|
+
IDP_OWOX_JWT_CLOCK_TOLERANCE?: string | undefined;
|
|
167
|
+
IDP_OWOX_JWT_CACHE_TTL?: string | undefined;
|
|
168
|
+
IDP_OWOX_JWT_ALGORITHM?: "RS256" | undefined;
|
|
169
|
+
}>;
|
|
170
|
+
export type DbConfig = z.infer<typeof DbEnvSchema>;
|
|
171
|
+
export type SqliteConfig = Extract<DbConfig, {
|
|
172
|
+
type: 'sqlite';
|
|
173
|
+
}>['sqlite'];
|
|
174
|
+
export type MysqlConfig = Extract<DbConfig, {
|
|
175
|
+
type: 'mysql';
|
|
176
|
+
}>['mysql'];
|
|
177
|
+
export type IdentityOwoxClientConfig = z.infer<typeof IdentityOwoxClientEnvSchema>;
|
|
178
|
+
export type IdpConfig = z.infer<typeof IdpEnvSchema>;
|
|
179
|
+
export type JwtConfig = z.infer<typeof JwtEnvSchema>;
|
|
180
|
+
export type IdpOwoxConfig = {
|
|
181
|
+
idpConfig: IdpConfig;
|
|
182
|
+
identityOwoxClientConfig: IdentityOwoxClientConfig;
|
|
183
|
+
jwtConfig: JwtConfig;
|
|
184
|
+
dbConfig: DbConfig;
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* Load the full IdpOwoxConfig from process env.
|
|
188
|
+
* Throws on validation errors; ensures JWT_ALGORITHM is RS256.
|
|
189
|
+
*/
|
|
190
|
+
export declare function loadIdpOwoxConfigFromEnv(env?: NodeJS.ProcessEnv): IdpOwoxConfig;
|
|
191
|
+
export {};
|
|
192
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,IAAI,CAAC;AAmEpB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6CtB,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB;;;;;;;;;;;;;;;;;;;;;EAGvE;AAED,gDAAgD;AAEhD,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;mBAaoB,EAAE,CAAC,WAAW;;;;;EAE/D,CAAC;AAEL,sDAAsD;AAEtD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;EAYb,CAAC;AAEN,uCAAuC;AAEvC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;EAYb,CAAC;AAEN,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3E,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAExE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACnF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACrD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,CAgB5F"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DbEnvSchema = void 0;
|
|
7
|
+
exports.loadDbConfigFromEnv = loadDbConfigFromEnv;
|
|
8
|
+
exports.loadIdpOwoxConfigFromEnv = loadIdpOwoxConfigFromEnv;
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const ms_1 = __importDefault(require("ms"));
|
|
11
|
+
const env_paths_1 = __importDefault(require("env-paths"));
|
|
12
|
+
const path_1 = require("path");
|
|
13
|
+
const fs_1 = require("fs");
|
|
14
|
+
const zMsString = zod_1.z
|
|
15
|
+
.string()
|
|
16
|
+
.refine((s) => (0, ms_1.default)(s) !== undefined, {
|
|
17
|
+
message: 'Invalid duration string',
|
|
18
|
+
})
|
|
19
|
+
.transform(s => s);
|
|
20
|
+
const parseCommaString = zod_1.z.string().transform(s => s
|
|
21
|
+
.split(',')
|
|
22
|
+
.map(x => x.trim())
|
|
23
|
+
.filter(Boolean));
|
|
24
|
+
function normalizeSsl(input) {
|
|
25
|
+
if (input == null || input === false)
|
|
26
|
+
return undefined;
|
|
27
|
+
if (input === true)
|
|
28
|
+
return {};
|
|
29
|
+
if (typeof input === 'string')
|
|
30
|
+
return input;
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
function getSqliteDefaultDbPath() {
|
|
34
|
+
const paths = (0, env_paths_1.default)('owox', { suffix: '' });
|
|
35
|
+
const dbPath = (0, path_1.join)(paths.data, 'sqlite', 'idp-owox.db');
|
|
36
|
+
const dbDir = (0, path_1.dirname)(dbPath);
|
|
37
|
+
if (!(0, fs_1.existsSync)(dbDir)) {
|
|
38
|
+
try {
|
|
39
|
+
(0, fs_1.mkdirSync)(dbDir, { recursive: true });
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
throw new Error(`Failed to create SQLite database directory: ${dbDir}. ${error instanceof Error ? error.message : error}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return dbPath;
|
|
46
|
+
}
|
|
47
|
+
/** ---------- DB env (discriminated by IDP_OWOX_DB_TYPE) ---------- */
|
|
48
|
+
const SqliteEnvRaw = zod_1.z.object({
|
|
49
|
+
IDP_OWOX_DB_TYPE: zod_1.z.literal('sqlite'),
|
|
50
|
+
IDP_OWOX_SQLITE_DB_PATH: zod_1.z.string().optional(),
|
|
51
|
+
IDP_OWOX_SQLITE_PRAGMA: zod_1.z.string().optional(),
|
|
52
|
+
});
|
|
53
|
+
const MysqlEnvRaw = zod_1.z.object({
|
|
54
|
+
IDP_OWOX_DB_TYPE: zod_1.z.literal('mysql'),
|
|
55
|
+
IDP_OWOX_MYSQL_HOST: zod_1.z.string().min(1, 'IDP_OWOX_MYSQL_HOST is required'),
|
|
56
|
+
IDP_OWOX_MYSQL_USER: zod_1.z.string().min(1, 'IDP_OWOX_MYSQL_USER is required'),
|
|
57
|
+
IDP_OWOX_MYSQL_PASSWORD: zod_1.z.string().min(1, 'IDP_OWOX_MYSQL_PASSWORD is required'),
|
|
58
|
+
IDP_OWOX_MYSQL_DB: zod_1.z.string().min(1, 'IDP_OWOX_MYSQL_DB is required'),
|
|
59
|
+
IDP_OWOX_MYSQL_PORT: zod_1.z.string().optional(),
|
|
60
|
+
IDP_OWOX_MYSQL_CONNECTION_LIMIT: zod_1.z.string().optional(),
|
|
61
|
+
IDP_OWOX_MYSQL_SSL: zod_1.z.string().optional(),
|
|
62
|
+
});
|
|
63
|
+
const DbEnvRaw = zod_1.z.discriminatedUnion('IDP_OWOX_DB_TYPE', [SqliteEnvRaw, MysqlEnvRaw]);
|
|
64
|
+
exports.DbEnvSchema = DbEnvRaw.transform(e => {
|
|
65
|
+
if (e.IDP_OWOX_DB_TYPE === 'sqlite') {
|
|
66
|
+
const dbPath = e.IDP_OWOX_SQLITE_DB_PATH ?? getSqliteDefaultDbPath();
|
|
67
|
+
console.log(`idp-owox SQLite database path: ${dbPath}`);
|
|
68
|
+
return {
|
|
69
|
+
type: 'sqlite',
|
|
70
|
+
sqlite: {
|
|
71
|
+
type: 'sqlite',
|
|
72
|
+
dbPath,
|
|
73
|
+
pragma: e.IDP_OWOX_SQLITE_PRAGMA
|
|
74
|
+
? parseCommaString.parse(e.IDP_OWOX_SQLITE_PRAGMA)
|
|
75
|
+
: undefined,
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// mysql branch
|
|
80
|
+
const port = e.IDP_OWOX_MYSQL_PORT ? Number(e.IDP_OWOX_MYSQL_PORT) : undefined;
|
|
81
|
+
const connectionLimit = e.IDP_OWOX_MYSQL_CONNECTION_LIMIT
|
|
82
|
+
? Number(e.IDP_OWOX_MYSQL_CONNECTION_LIMIT)
|
|
83
|
+
: undefined;
|
|
84
|
+
let sslRaw = undefined;
|
|
85
|
+
if (e.IDP_OWOX_MYSQL_SSL) {
|
|
86
|
+
try {
|
|
87
|
+
sslRaw = JSON.parse(e.IDP_OWOX_MYSQL_SSL);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
sslRaw = e.IDP_OWOX_MYSQL_SSL;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
type: 'mysql',
|
|
95
|
+
mysql: {
|
|
96
|
+
type: 'mysql',
|
|
97
|
+
host: e.IDP_OWOX_MYSQL_HOST,
|
|
98
|
+
port,
|
|
99
|
+
user: e.IDP_OWOX_MYSQL_USER,
|
|
100
|
+
password: e.IDP_OWOX_MYSQL_PASSWORD,
|
|
101
|
+
database: e.IDP_OWOX_MYSQL_DB,
|
|
102
|
+
connectionLimit,
|
|
103
|
+
ssl: normalizeSsl(sslRaw),
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
function loadDbConfigFromEnv(env = process.env) {
|
|
108
|
+
const IDP_OWOX_DB_TYPE = (env.IDP_OWOX_DB_TYPE ?? 'sqlite').toLowerCase();
|
|
109
|
+
return exports.DbEnvSchema.parse({ ...env, IDP_OWOX_DB_TYPE });
|
|
110
|
+
}
|
|
111
|
+
/** ---------- IdentityOwox client ---------- */
|
|
112
|
+
const IdentityOwoxClientEnvSchema = zod_1.z
|
|
113
|
+
.object({
|
|
114
|
+
IDP_OWOX_BASE_URL: zod_1.z.string().url({ message: 'IDP_OWOX_BASE_URL must be a valid URL' }),
|
|
115
|
+
IDP_OWOX_DEFAULT_HEADERS: zod_1.z.string().optional(),
|
|
116
|
+
IDP_OWOX_TIMEOUT: zMsString.optional(),
|
|
117
|
+
})
|
|
118
|
+
.transform(e => {
|
|
119
|
+
const defaultHeaders = e.IDP_OWOX_DEFAULT_HEADERS
|
|
120
|
+
? JSON.parse(e.IDP_OWOX_DEFAULT_HEADERS)
|
|
121
|
+
: undefined;
|
|
122
|
+
return {
|
|
123
|
+
baseUrl: e.IDP_OWOX_BASE_URL,
|
|
124
|
+
defaultHeaders,
|
|
125
|
+
clientTimeout: (e.IDP_OWOX_TIMEOUT ?? '3s'),
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
/** ---------- IDP (frontend/app) config ---------- */
|
|
129
|
+
const IdpEnvSchema = zod_1.z
|
|
130
|
+
.object({
|
|
131
|
+
IDP_OWOX_CLIENT_ID: zod_1.z.string().min(1, 'IDP_OWOX_CLIENT_ID is required'),
|
|
132
|
+
IDP_OWOX_PLATFORM_SIGN_IN_URL: zod_1.z
|
|
133
|
+
.string()
|
|
134
|
+
.url({ message: 'IDP_OWOX_PLATFORM_SIGN_IN_URL must be a valid URL' }),
|
|
135
|
+
IDP_OWOX_CALLBACK_URL: zod_1.z.string().min(1, 'IDP_OWOX_CALLBACK_URL is required'),
|
|
136
|
+
})
|
|
137
|
+
.transform(e => ({
|
|
138
|
+
clientId: e.IDP_OWOX_CLIENT_ID,
|
|
139
|
+
platformSignInUrl: e.IDP_OWOX_PLATFORM_SIGN_IN_URL,
|
|
140
|
+
callbackUrl: e.IDP_OWOX_CALLBACK_URL,
|
|
141
|
+
}));
|
|
142
|
+
/** ---------- JWT config ---------- */
|
|
143
|
+
const JwtEnvSchema = zod_1.z
|
|
144
|
+
.object({
|
|
145
|
+
IDP_OWOX_JWT_CLOCK_TOLERANCE: zod_1.z.string().default('5s'),
|
|
146
|
+
IDP_OWOX_JWT_ISSUER: zod_1.z.string().min(1, 'IDP_OWOX_JWT_ISSUER is required'),
|
|
147
|
+
IDP_OWOX_JWT_CACHE_TTL: zMsString.optional(),
|
|
148
|
+
IDP_OWOX_JWT_ALGORITHM: zod_1.z.enum(['RS256']).default('RS256'),
|
|
149
|
+
})
|
|
150
|
+
.transform(e => ({
|
|
151
|
+
clockTolerance: e.IDP_OWOX_JWT_CLOCK_TOLERANCE || '5s',
|
|
152
|
+
issuer: e.IDP_OWOX_JWT_ISSUER,
|
|
153
|
+
jwtKeyCacheTtl: e.IDP_OWOX_JWT_CACHE_TTL ?? '1h',
|
|
154
|
+
algorithm: e.IDP_OWOX_JWT_ALGORITHM,
|
|
155
|
+
}));
|
|
156
|
+
/**
|
|
157
|
+
* Load the full IdpOwoxConfig from process env.
|
|
158
|
+
* Throws on validation errors; ensures JWT_ALGORITHM is RS256.
|
|
159
|
+
*/
|
|
160
|
+
function loadIdpOwoxConfigFromEnv(env = process.env) {
|
|
161
|
+
const dbConfig = loadDbConfigFromEnv(env);
|
|
162
|
+
const identityOwoxClientConfig = IdentityOwoxClientEnvSchema.parse(env);
|
|
163
|
+
const idpConfig = IdpEnvSchema.parse(env);
|
|
164
|
+
const jwtConfig = JwtEnvSchema.parse(env);
|
|
165
|
+
if (jwtConfig.algorithm !== 'RS256') {
|
|
166
|
+
throw new Error(`Only RS256 is supported, got: ${jwtConfig.algorithm}`);
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
idpConfig,
|
|
170
|
+
identityOwoxClientConfig,
|
|
171
|
+
jwtConfig,
|
|
172
|
+
dbConfig,
|
|
173
|
+
};
|
|
174
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC"}
|