@simulacrum/auth0-simulator 0.10.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/bin/{start.js → start.cjs} +2 -3
  2. package/dist/index.cjs +38855 -0
  3. package/dist/index.d.cts +189 -0
  4. package/dist/index.d.cts.map +1 -0
  5. package/dist/index.d.ts +187 -15
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +38840 -24
  8. package/dist/index.js.map +1 -1
  9. package/package.json +28 -11
  10. package/dist/auth/constants.d.ts +0 -12
  11. package/dist/auth/constants.d.ts.map +0 -1
  12. package/dist/auth/constants.js +0 -17
  13. package/dist/auth/constants.js.map +0 -1
  14. package/dist/auth/date.d.ts +0 -4
  15. package/dist/auth/date.d.ts.map +0 -1
  16. package/dist/auth/date.js +0 -14
  17. package/dist/auth/date.js.map +0 -1
  18. package/dist/auth/jwt.d.ts +0 -7
  19. package/dist/auth/jwt.d.ts.map +0 -1
  20. package/dist/auth/jwt.js +0 -15
  21. package/dist/auth/jwt.js.map +0 -1
  22. package/dist/auth/refresh-token.d.ts +0 -4
  23. package/dist/auth/refresh-token.d.ts.map +0 -1
  24. package/dist/auth/refresh-token.js +0 -22
  25. package/dist/auth/refresh-token.js.map +0 -1
  26. package/dist/config/get-config.d.ts +0 -8
  27. package/dist/config/get-config.d.ts.map +0 -1
  28. package/dist/config/get-config.js +0 -39
  29. package/dist/config/get-config.js.map +0 -1
  30. package/dist/handlers/auth0-handlers.d.ts +0 -10
  31. package/dist/handlers/auth0-handlers.d.ts.map +0 -1
  32. package/dist/handlers/auth0-handlers.js +0 -199
  33. package/dist/handlers/auth0-handlers.js.map +0 -1
  34. package/dist/handlers/index.d.ts +0 -5
  35. package/dist/handlers/index.d.ts.map +0 -1
  36. package/dist/handlers/index.js +0 -43
  37. package/dist/handlers/index.js.map +0 -1
  38. package/dist/handlers/login-redirect.d.ts +0 -4
  39. package/dist/handlers/login-redirect.d.ts.map +0 -1
  40. package/dist/handlers/login-redirect.js +0 -23
  41. package/dist/handlers/login-redirect.js.map +0 -1
  42. package/dist/handlers/oauth-handlers.d.ts +0 -39
  43. package/dist/handlers/oauth-handlers.d.ts.map +0 -1
  44. package/dist/handlers/oauth-handlers.js +0 -145
  45. package/dist/handlers/oauth-handlers.js.map +0 -1
  46. package/dist/handlers/openid-handlers.d.ts +0 -13
  47. package/dist/handlers/openid-handlers.d.ts.map +0 -1
  48. package/dist/handlers/openid-handlers.js +0 -24
  49. package/dist/handlers/openid-handlers.js.map +0 -1
  50. package/dist/handlers/url.d.ts +0 -2
  51. package/dist/handlers/url.d.ts.map +0 -1
  52. package/dist/handlers/url.js +0 -6
  53. package/dist/handlers/url.js.map +0 -1
  54. package/dist/handlers/utils.d.ts +0 -18
  55. package/dist/handlers/utils.d.ts.map +0 -1
  56. package/dist/handlers/utils.js +0 -29
  57. package/dist/handlers/utils.js.map +0 -1
  58. package/dist/handlers/web-message.d.ts +0 -3
  59. package/dist/handlers/web-message.d.ts.map +0 -1
  60. package/dist/handlers/web-message.js +0 -22
  61. package/dist/handlers/web-message.js.map +0 -1
  62. package/dist/middleware/create-cors.d.ts +0 -3
  63. package/dist/middleware/create-cors.d.ts.map +0 -1
  64. package/dist/middleware/create-cors.js +0 -18
  65. package/dist/middleware/create-cors.js.map +0 -1
  66. package/dist/middleware/error-handling.d.ts +0 -3
  67. package/dist/middleware/error-handling.d.ts.map +0 -1
  68. package/dist/middleware/error-handling.js +0 -31
  69. package/dist/middleware/error-handling.js.map +0 -1
  70. package/dist/middleware/no-cache.d.ts +0 -3
  71. package/dist/middleware/no-cache.d.ts.map +0 -1
  72. package/dist/middleware/no-cache.js +0 -10
  73. package/dist/middleware/no-cache.js.map +0 -1
  74. package/dist/middleware/session.d.ts +0 -3
  75. package/dist/middleware/session.d.ts.map +0 -1
  76. package/dist/middleware/session.js +0 -20
  77. package/dist/middleware/session.js.map +0 -1
  78. package/dist/rules/extensionless-file-name.d.ts +0 -2
  79. package/dist/rules/extensionless-file-name.d.ts.map +0 -1
  80. package/dist/rules/extensionless-file-name.js +0 -8
  81. package/dist/rules/extensionless-file-name.js.map +0 -1
  82. package/dist/rules/parse-rules-files.d.ts +0 -5
  83. package/dist/rules/parse-rules-files.d.ts.map +0 -1
  84. package/dist/rules/parse-rules-files.js +0 -34
  85. package/dist/rules/parse-rules-files.js.map +0 -1
  86. package/dist/rules/rules-runner.d.ts +0 -4
  87. package/dist/rules/rules-runner.d.ts.map +0 -1
  88. package/dist/rules/rules-runner.js +0 -84
  89. package/dist/rules/rules-runner.js.map +0 -1
  90. package/dist/rules/types.d.ts +0 -36
  91. package/dist/rules/types.d.ts.map +0 -1
  92. package/dist/rules/types.js +0 -3
  93. package/dist/rules/types.js.map +0 -1
  94. package/dist/store/entities.d.ts +0 -111
  95. package/dist/store/entities.d.ts.map +0 -1
  96. package/dist/store/entities.js +0 -43
  97. package/dist/store/entities.js.map +0 -1
  98. package/dist/store/index.d.ts +0 -37
  99. package/dist/store/index.d.ts.map +0 -1
  100. package/dist/store/index.js +0 -40
  101. package/dist/store/index.js.map +0 -1
  102. package/dist/types.d.ts +0 -130
  103. package/dist/types.d.ts.map +0 -1
  104. package/dist/types.js +0 -28
  105. package/dist/types.js.map +0 -1
  106. package/dist/views/login.d.ts +0 -12
  107. package/dist/views/login.d.ts.map +0 -1
  108. package/dist/views/login.js +0 -148
  109. package/dist/views/login.js.map +0 -1
  110. package/dist/views/username-password.d.ts +0 -10
  111. package/dist/views/username-password.d.ts.map +0 -1
  112. package/dist/views/username-password.js +0 -35
  113. package/dist/views/username-password.js.map +0 -1
  114. package/dist/views/web-message.d.ts +0 -3
  115. package/dist/views/web-message.d.ts.map +0 -1
  116. package/dist/views/web-message.js +0 -66
  117. package/dist/views/web-message.js.map +0 -1
  118. /package/dist/{views/public → public}/img/frontside-logo.png +0 -0
@@ -1,39 +0,0 @@
1
- import type { Request } from "express";
2
- import type { RuleUser } from "../rules/types.ts";
3
- import type { ScopeConfig, AccessTokenPayload, IdTokenData } from "../types.ts";
4
- import { ExtendedSimulationStore } from "../store/index.ts";
5
- import { Auth0User } from "../store/entities.ts";
6
- export declare const createTokens: ({ body, iss, clientID, audience, rulesDirectory, scope: scopeConfig, simulationStore, }: {
7
- body: Request["body"];
8
- iss: string;
9
- clientID: string;
10
- audience: string;
11
- rulesDirectory: string | undefined;
12
- scope: ScopeConfig;
13
- simulationStore: ExtendedSimulationStore;
14
- }) => Promise<{
15
- access_token: string;
16
- id_token?: undefined;
17
- refresh_token?: undefined;
18
- } | {
19
- access_token: string;
20
- id_token: string;
21
- refresh_token: string | undefined;
22
- }>;
23
- export declare const getIdToken: ({ body, iss, user, clientID, nonce, }: {
24
- body: Request["body"];
25
- iss: string;
26
- user: Auth0User;
27
- clientID: string;
28
- nonce: string | undefined;
29
- }) => {
30
- userData: RuleUser;
31
- idTokenData: IdTokenData;
32
- };
33
- export declare const getBaseAccessToken: ({ iss, grant_type, scope, audience, }: {
34
- iss: string;
35
- grant_type: string;
36
- scope: string;
37
- audience: string;
38
- }) => Partial<AccessTokenPayload>;
39
- //# sourceMappingURL=oauth-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/oauth-handlers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAElB,WAAW,EAEZ,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,eAAO,MAAM,YAAY,GAAU,yFAQhC;IACD,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB,eAAe,EAAE,uBAAuB,CAAC;CAC1C;;;;;;;;EAwEA,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,uCAMxB;IACD,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;;;CA6BA,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,uCAKhC;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,kBAAkB,CAO5B,CAAC"}
@@ -1,145 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getBaseAccessToken = exports.getIdToken = exports.createTokens = void 0;
13
- const assert_ts_1 = require("assert-ts");
14
- const base64_url_1 = require("base64-url");
15
- const date_ts_1 = require("../auth/date.js");
16
- const jwt_ts_1 = require("../auth/jwt.js");
17
- const rules_runner_ts_1 = require("../rules/rules-runner.js");
18
- const utils_ts_1 = require("./utils.js");
19
- const refresh_token_ts_1 = require("../auth/refresh-token.js");
20
- const createTokens = (_a) => __awaiter(void 0, [_a], void 0, function* ({ body, iss, clientID, audience, rulesDirectory, scope: scopeConfig, simulationStore, }) {
21
- let { grant_type } = body;
22
- let scope = (0, utils_ts_1.deriveScope)({ scopeConfig, clientID, audience });
23
- let accessToken = (0, exports.getBaseAccessToken)({ iss, grant_type, scope, audience });
24
- let user;
25
- let nonce;
26
- if (grant_type === "client_credentials") {
27
- return { access_token: (0, jwt_ts_1.createJsonWebToken)(accessToken) };
28
- }
29
- // TODO: check refresh_token expiry date
30
- else if (grant_type === "refresh_token") {
31
- let { refresh_token: refreshTokenValue } = body;
32
- let refreshToken = JSON.parse((0, base64_url_1.decode)(refreshTokenValue));
33
- let findUser = (0, utils_ts_1.createPersonQuery)(simulationStore);
34
- user = findUser((person) => person.id === refreshToken.user.id);
35
- nonce = refreshToken.nonce;
36
- (0, assert_ts_1.assert)(!!nonce, `400::No nonce in request`);
37
- }
38
- else {
39
- let result = verifyUserExistsInStore({
40
- simulationStore,
41
- body,
42
- grant_type,
43
- });
44
- user = result.user;
45
- nonce = result.nonce;
46
- }
47
- (0, assert_ts_1.assert)(!!user, "500::No user found");
48
- let { idTokenData, userData } = (0, exports.getIdToken)({
49
- body,
50
- iss,
51
- user,
52
- clientID,
53
- nonce,
54
- });
55
- let context = {
56
- clientID,
57
- accessToken: { scope, sub: idTokenData.sub },
58
- idToken: idTokenData,
59
- };
60
- let rulesRunner = (0, rules_runner_ts_1.createRulesRunner)(rulesDirectory);
61
- // the rules mutate the values
62
- yield rulesRunner(userData, context);
63
- return {
64
- access_token: (0, jwt_ts_1.createJsonWebToken)(Object.assign(Object.assign({}, accessToken), context.accessToken)),
65
- id_token: (0, jwt_ts_1.createJsonWebToken)(Object.assign(Object.assign({}, userData), context.idToken)),
66
- refresh_token: (0, refresh_token_ts_1.issueRefreshToken)(scope, grant_type)
67
- ? (0, refresh_token_ts_1.createRefreshToken)({
68
- exp: idTokenData.exp,
69
- rotations: 0,
70
- scope,
71
- user,
72
- nonce,
73
- })
74
- : undefined,
75
- };
76
- });
77
- exports.createTokens = createTokens;
78
- const getIdToken = ({ body, iss, user, clientID, nonce, }) => {
79
- var _a, _b, _c, _d;
80
- let userData = {
81
- name: (_a = body === null || body === void 0 ? void 0 : body.name) !== null && _a !== void 0 ? _a : user.name,
82
- email: (_b = body === null || body === void 0 ? void 0 : body.email) !== null && _b !== void 0 ? _b : user.email,
83
- email_verified: true,
84
- user_id: (_c = body === null || body === void 0 ? void 0 : body.id) !== null && _c !== void 0 ? _c : user.id,
85
- nickname: body === null || body === void 0 ? void 0 : body.nickname,
86
- picture: (_d = body === null || body === void 0 ? void 0 : body.picture) !== null && _d !== void 0 ? _d : user.picture,
87
- identities: body === null || body === void 0 ? void 0 : body.identities,
88
- };
89
- (0, assert_ts_1.assert)(!!user.email, "500::User in store requires an email");
90
- let idTokenData = {
91
- alg: "RS256",
92
- typ: "JWT",
93
- iss,
94
- exp: (0, date_ts_1.expiresAt)(),
95
- iat: (0, date_ts_1.epochTime)(),
96
- email: user.email,
97
- aud: clientID,
98
- sub: user.id,
99
- };
100
- if (typeof nonce !== "undefined") {
101
- idTokenData.nonce = nonce;
102
- }
103
- return { userData, idTokenData };
104
- };
105
- exports.getIdToken = getIdToken;
106
- const getBaseAccessToken = ({ iss, grant_type, scope, audience, }) => ({
107
- iss,
108
- exp: (0, date_ts_1.expiresAt)(),
109
- iat: (0, date_ts_1.epochTime)(),
110
- aud: audience,
111
- gty: grant_type,
112
- scope,
113
- });
114
- exports.getBaseAccessToken = getBaseAccessToken;
115
- const verifyUserExistsInStore = ({ simulationStore, body, grant_type, }) => {
116
- let { code } = body;
117
- let personQuery = (0, utils_ts_1.createPersonQuery)(simulationStore);
118
- let nonce;
119
- let username;
120
- let password;
121
- if (grant_type === "password") {
122
- username = body.username;
123
- password = body.password;
124
- }
125
- else {
126
- // specifically grant_type === 'authorization_code'
127
- // but naively using it to handle other cases at the moment
128
- (0, assert_ts_1.assert)(typeof code !== "undefined", "400::no code in /oauth/token");
129
- [nonce, username] = (0, base64_url_1.decode)(code).split(":");
130
- }
131
- (0, assert_ts_1.assert)(!!username, `400::no nonce in store for ${code}`);
132
- let user = personQuery((person) => {
133
- (0, assert_ts_1.assert)(!!person.email, `500::no email defined on person scenario`);
134
- let valid = person.email.toLowerCase() === username.toLowerCase();
135
- if (typeof password === "undefined") {
136
- return valid;
137
- }
138
- else {
139
- return valid && password === person.password;
140
- }
141
- });
142
- (0, assert_ts_1.assert)(!!user, "401::Unauthorized");
143
- return { user, nonce };
144
- };
145
- //# sourceMappingURL=oauth-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-handlers.js","sourceRoot":"","sources":["../../src/handlers/oauth-handlers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAmC;AACnC,2CAA4D;AAC5D,6CAAuD;AACvD,2CAAoD;AACpD,8DAA6D;AAC7D,yCAA4D;AAW5D,+DAGkC;AAI3B,MAAM,YAAY,GAAG,KAgBzB,EAAE,4CAhB8B,EACjC,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,KAAK,EAAE,WAAW,EAClB,eAAe,GAShB;IACC,IAAI,EAAE,UAAU,EAAE,GAA8B,IAAI,CAAC;IACrD,IAAI,KAAK,GAAG,IAAA,sBAAW,EAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7D,IAAI,WAAW,GAAG,IAAA,0BAAkB,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3E,IAAI,IAA2B,CAAC;IAChC,IAAI,KAAyB,CAAC;IAE9B,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;QACxC,OAAO,EAAE,YAAY,EAAE,IAAA,2BAAkB,EAAC,WAAW,CAAC,EAAE,CAAC;IAC3D,CAAC;IACD,wCAAwC;SACnC,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;QACxC,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;QAChD,IAAI,YAAY,GAAiB,IAAI,CAAC,KAAK,CAAC,IAAA,mBAAM,EAAC,iBAAiB,CAAC,CAAC,CAAC;QAEvE,IAAI,QAAQ,GAAG,IAAA,4BAAiB,EAAC,eAAe,CAAC,CAAC;QAElD,IAAI,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhE,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAC3B,IAAA,kBAAM,EAAC,CAAC,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,GAAG,uBAAuB,CAAC;YACnC,eAAe;YACf,IAAI;YACJ,UAAU;SACX,CAAC,CAAC;QAEH,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACnB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,IAAA,kBAAM,EAAC,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAErC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAA,kBAAU,EAAC;QACzC,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,OAAO,GAA0D;QACnE,QAAQ;QACR,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE;QAC5C,OAAO,EAAE,WAAW;KACrB,CAAC;IAEF,IAAI,WAAW,GAAG,IAAA,mCAAiB,EAAC,cAAc,CAAC,CAAC;IACpD,8BAA8B;IAC9B,MAAM,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAErC,OAAO;QACL,YAAY,EAAE,IAAA,2BAAkB,kCAC3B,WAAW,GACX,OAAO,CAAC,WAAW,EACtB;QACF,QAAQ,EAAE,IAAA,2BAAkB,kCACvB,QAAQ,GACR,OAAO,CAAC,OAAO,EAClB;QACF,aAAa,EAAE,IAAA,oCAAiB,EAAC,KAAK,EAAE,UAAU,CAAC;YACjD,CAAC,CAAC,IAAA,qCAAkB,EAAC;gBACjB,GAAG,EAAE,WAAW,CAAC,GAAG;gBACpB,SAAS,EAAE,CAAC;gBACZ,KAAK;gBACL,IAAI;gBACJ,KAAK;aACN,CAAC;YACJ,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC,CAAA,CAAC;AAxFW,QAAA,YAAY,gBAwFvB;AAEK,MAAM,UAAU,GAAG,CAAC,EACzB,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,KAAK,GAON,EAAE,EAAE;;IACH,IAAI,QAAQ,GAAa;QACvB,IAAI,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,mCAAI,IAAI,CAAC,IAAI;QAC7B,KAAK,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,IAAI,CAAC,KAAK;QAChC,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,mCAAI,IAAI,CAAC,EAAE;QAC5B,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ;QACxB,OAAO,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI,IAAI,CAAC,OAAO;QACtC,UAAU,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU;KAC7B,CAAC;IAEF,IAAA,kBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAC;IAE7D,IAAI,WAAW,GAAgB;QAC7B,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,KAAK;QACV,GAAG;QACH,GAAG,EAAE,IAAA,mBAAS,GAAE;QAChB,GAAG,EAAE,IAAA,mBAAS,GAAE;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,IAAI,CAAC,EAAE;KACb,CAAC;IAEF,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;QACjC,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnC,CAAC,CAAC;AAzCW,QAAA,UAAU,cAyCrB;AAEK,MAAM,kBAAkB,GAAG,CAAC,EACjC,GAAG,EACH,UAAU,EACV,KAAK,EACL,QAAQ,GAMT,EAA+B,EAAE,CAAC,CAAC;IAClC,GAAG;IACH,GAAG,EAAE,IAAA,mBAAS,GAAE;IAChB,GAAG,EAAE,IAAA,mBAAS,GAAE;IAChB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,UAAU;IACf,KAAK;CACN,CAAC,CAAC;AAjBU,QAAA,kBAAkB,sBAiB5B;AAEH,MAAM,uBAAuB,GAAG,CAAC,EAC/B,eAAe,EACf,IAAI,EACJ,UAAU,GAKX,EAAE,EAAE;IACH,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACpB,IAAI,WAAW,GAAG,IAAA,4BAAiB,EAAC,eAAe,CAAC,CAAC;IACrD,IAAI,KAAyB,CAAC;IAC9B,IAAI,QAAgB,CAAC;IACrB,IAAI,QAA4B,CAAC;IAEjC,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,mDAAmD;QACnD,2DAA2D;QAC3D,IAAA,kBAAM,EAAC,OAAO,IAAI,KAAK,WAAW,EAAE,8BAA8B,CAAC,CAAC;QACpE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,IAAA,kBAAM,EAAC,CAAC,CAAC,QAAQ,EAAE,8BAA8B,IAAI,EAAE,CAAC,CAAC;IAEzD,IAAI,IAAI,GAA0B,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;QACvD,IAAA,kBAAM,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,0CAA0C,CAAC,CAAC;QAEnE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;QAElE,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAM,EAAC,CAAC,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAEpC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC,CAAC"}
@@ -1,13 +0,0 @@
1
- import type { Request, RequestHandler } from "express";
2
- type Routes = "/jwks.json" | "/openid-configuration";
3
- export type OpenIdRoutes = `${`/.well-known`}${Routes}`;
4
- export interface OpenIdConfiguration {
5
- issuer: string;
6
- authorization_endpoint: string;
7
- token_endpoint: string;
8
- userinfo_endpoint: string;
9
- jwks_uri: string;
10
- }
11
- export declare const createOpenIdHandlers: (serviceURL: (request: Request) => string) => Record<OpenIdRoutes, RequestHandler>;
12
- export {};
13
- //# sourceMappingURL=openid-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openid-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/openid-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIvD,KAAK,MAAM,GAAG,YAAY,GAAG,uBAAuB,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,GAAG,cAAc,GAAG,MAAM,EAAE,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB,GAC/B,YAAY,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,KACvC,MAAM,CAAC,YAAY,EAAE,cAAc,CAkBrC,CAAC"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createOpenIdHandlers = void 0;
4
- const constants_ts_1 = require("../auth/constants.js");
5
- const url_ts_1 = require("./url.js");
6
- const createOpenIdHandlers = (serviceURL) => {
7
- return {
8
- ["/.well-known/jwks.json"]: function (_, res) {
9
- res.json(constants_ts_1.JWKS);
10
- },
11
- ["/.well-known/openid-configuration"]: function (req, res) {
12
- let url = (0, url_ts_1.removeTrailingSlash)(serviceURL(req));
13
- res.json({
14
- issuer: `${url}/`,
15
- authorization_endpoint: [url, "authorize"].join("/"),
16
- token_endpoint: [url, "oauth", "token"].join("/"),
17
- userinfo_endpoint: [url, "userinfo"].join("/"),
18
- jwks_uri: [url, ".well-known", "jwks.json"].join("/"),
19
- });
20
- },
21
- };
22
- };
23
- exports.createOpenIdHandlers = createOpenIdHandlers;
24
- //# sourceMappingURL=openid-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openid-handlers.js","sourceRoot":"","sources":["../../src/handlers/openid-handlers.ts"],"names":[],"mappings":";;;AACA,uDAA4C;AAC5C,qCAA+C;AAcxC,MAAM,oBAAoB,GAAG,CAClC,UAAwC,EACF,EAAE;IACxC,OAAO;QACL,CAAC,wBAAwB,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG;YAC1C,GAAG,CAAC,IAAI,CAAC,mBAAI,CAAC,CAAC;QACjB,CAAC;QAED,CAAC,mCAAmC,CAAC,EAAE,UAAU,GAAG,EAAE,GAAG;YACvD,IAAI,GAAG,GAAG,IAAA,4BAAmB,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAE/C,GAAG,CAAC,IAAI,CAAC;gBACP,MAAM,EAAE,GAAG,GAAG,GAAG;gBACjB,sBAAsB,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpD,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjD,iBAAiB,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC9C,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,oBAAoB,wBAoB/B"}
@@ -1,2 +0,0 @@
1
- export declare const removeTrailingSlash: (url: string) => string;
2
- //# sourceMappingURL=url.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/handlers/url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,KAAG,MAC1B,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeTrailingSlash = void 0;
4
- const removeTrailingSlash = (url) => url.replace(/\/$/, "");
5
- exports.removeTrailingSlash = removeTrailingSlash;
6
- //# sourceMappingURL=url.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/handlers/url.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE,CACzD,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AADZ,QAAA,mBAAmB,uBACP"}
@@ -1,18 +0,0 @@
1
- import type { ScopeConfig } from "../types.ts";
2
- import type { ExtendedSimulationStore } from "../store/index.ts";
3
- import type { Auth0User } from "../store/entities.ts";
4
- type Predicate<T> = (this: void, value: T, index: number, obj: T[]) => boolean;
5
- export declare const createPersonQuery: (store: ExtendedSimulationStore) => (predicate: Predicate<Auth0User>) => {
6
- id: string;
7
- name: string;
8
- password: string;
9
- email?: string | undefined;
10
- picture?: string | undefined;
11
- } | undefined;
12
- export declare const deriveScope: ({ scopeConfig, clientID, audience, }: {
13
- scopeConfig: ScopeConfig;
14
- clientID: string;
15
- audience: string;
16
- }) => string;
17
- export {};
18
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/handlers/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC;AAE/E,eAAO,MAAM,iBAAiB,GAC3B,OAAO,uBAAuB,MAAM,WAAW,SAAS,CAAC,SAAS,CAAC;;;;;;aAGnE,CAAC;AAEJ,eAAO,MAAM,WAAW,GAAI,sCAIzB;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,WAuCA,CAAC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deriveScope = exports.createPersonQuery = void 0;
4
- const assert_ts_1 = require("assert-ts");
5
- const createPersonQuery = (store) => (predicate) => {
6
- const users = store.schema.users.selectTableAsList(store.store.getState());
7
- return users.find(predicate);
8
- };
9
- exports.createPersonQuery = createPersonQuery;
10
- const deriveScope = ({ scopeConfig, clientID, audience, }) => {
11
- if (typeof scopeConfig === "string")
12
- return scopeConfig;
13
- let defaultScope = scopeConfig.find((application) => application.clientID === "default");
14
- (0, assert_ts_1.assert)(!!clientID, `500::Did not have a clientID to derive the scope`);
15
- let application = scopeConfig.find((application) => application.clientID === clientID &&
16
- (application.audience ? application.audience === audience : true));
17
- if (!application) {
18
- let ignoreAudience = scopeConfig.find((application) => application.clientID === clientID);
19
- (0, assert_ts_1.assert)(ignoreAudience === undefined, `500::Found application matching clientID, ${ignoreAudience === null || ignoreAudience === void 0 ? void 0 : ignoreAudience.clientID}, but incorrect audience, configured: ${ignoreAudience === null || ignoreAudience === void 0 ? void 0 : ignoreAudience.audience} :: passed: ${audience}`);
20
- }
21
- if (!application && defaultScope) {
22
- application = defaultScope;
23
- }
24
- (0, assert_ts_1.assert)(!!application, `500::Could not find application with clientID: ${clientID}`);
25
- (0, assert_ts_1.assert)(!!application.scope, `500::${application.clientID} is expected to have a scope`);
26
- return application.scope;
27
- };
28
- exports.deriveScope = deriveScope;
29
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/handlers/utils.ts"],"names":[],"mappings":";;;AAAA,yCAAmC;AAO5B,MAAM,iBAAiB,GAC5B,CAAC,KAA8B,EAAE,EAAE,CAAC,CAAC,SAA+B,EAAE,EAAE;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AAJS,QAAA,iBAAiB,qBAI1B;AAEG,MAAM,WAAW,GAAG,CAAC,EAC1B,WAAW,EACX,QAAQ,EACR,QAAQ,GAKT,EAAE,EAAE;IACH,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC;IACxD,IAAI,YAAY,GAAG,WAAW,CAAC,IAAI,CACjC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,KAAK,SAAS,CACpD,CAAC;IAEF,IAAA,kBAAM,EAAC,CAAC,CAAC,QAAQ,EAAE,kDAAkD,CAAC,CAAC;IAEvE,IAAI,WAAW,GAAG,WAAW,CAAC,IAAI,CAChC,CAAC,WAAW,EAAE,EAAE,CACd,WAAW,CAAC,QAAQ,KAAK,QAAQ;QACjC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CACpE,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,IAAI,cAAc,GAAG,WAAW,CAAC,IAAI,CACnC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ,CACnD,CAAC;QACF,IAAA,kBAAM,EACJ,cAAc,KAAK,SAAS,EAC5B,6CAA6C,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,yCAAyC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,eAAe,QAAQ,EAAE,CAChK,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,WAAW,IAAI,YAAY,EAAE,CAAC;QACjC,WAAW,GAAG,YAAY,CAAC;IAC7B,CAAC;IAED,IAAA,kBAAM,EACJ,CAAC,CAAC,WAAW,EACb,kDAAkD,QAAQ,EAAE,CAC7D,CAAC;IAEF,IAAA,kBAAM,EACJ,CAAC,CAAC,WAAW,CAAC,KAAK,EACnB,QAAQ,WAAW,CAAC,QAAQ,8BAA8B,CAC3D,CAAC;IAEF,OAAO,WAAW,CAAC,KAAK,CAAC;AAC3B,CAAC,CAAC;AA/CW,QAAA,WAAW,eA+CtB"}
@@ -1,3 +0,0 @@
1
- import type { RequestHandler } from "express";
2
- export declare const createWebMessageHandler: () => RequestHandler;
3
- //# sourceMappingURL=web-message.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-message.d.ts","sourceRoot":"","sources":["../../src/handlers/web-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C,eAAO,MAAM,uBAAuB,QAAO,cAoBxC,CAAC"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createWebMessageHandler = void 0;
4
- const assert_ts_1 = require("assert-ts");
5
- const base64_url_1 = require("base64-url");
6
- const web_message_ts_1 = require("../views/web-message.js");
7
- const createWebMessageHandler = () => function (req, res) {
8
- (0, assert_ts_1.assert)(!!(req === null || req === void 0 ? void 0 : req.session), "no session");
9
- let username = req.session.username;
10
- (0, assert_ts_1.assert)(!!username, `no username in authorise`);
11
- let { redirect_uri, state, nonce } = req.query;
12
- res.set("Content-Type", "text/html");
13
- let message = (0, web_message_ts_1.webMessage)({
14
- code: (0, base64_url_1.encode)(`${nonce}:${username}`),
15
- state,
16
- redirect_uri,
17
- nonce,
18
- });
19
- res.status(200).send(Buffer.from(message));
20
- };
21
- exports.createWebMessageHandler = createWebMessageHandler;
22
- //# sourceMappingURL=web-message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-message.js","sourceRoot":"","sources":["../../src/handlers/web-message.ts"],"names":[],"mappings":";;;AACA,yCAAmC;AACnC,2CAAoC;AAEpC,4DAAqD;AAE9C,MAAM,uBAAuB,GAAG,GAAmB,EAAE,CAC1D,UAAU,GAAG,EAAE,GAAG;IAChB,IAAA,kBAAM,EAAC,CAAC,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA,EAAE,YAAY,CAAC,CAAC;IAErC,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEpC,IAAA,kBAAM,EAAC,CAAC,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;IAE/C,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,KAAoB,CAAC;IAE9D,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAErC,IAAI,OAAO,GAAG,IAAA,2BAAU,EAAC;QACvB,IAAI,EAAE,IAAA,mBAAM,EAAC,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAC;QACpC,KAAK;QACL,YAAY;QACZ,KAAK;KACN,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AApBS,QAAA,uBAAuB,2BAoBhC"}
@@ -1,3 +0,0 @@
1
- import type { RequestHandler } from "express";
2
- export declare const createCors: () => RequestHandler;
3
- //# sourceMappingURL=create-cors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-cors.d.ts","sourceRoot":"","sources":["../../src/middleware/create-cors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,UAAU,QAAO,cAU1B,CAAC"}
@@ -1,18 +0,0 @@
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.createCors = void 0;
7
- const cors_1 = __importDefault(require("cors"));
8
- const createCors = () => (0, cors_1.default)({
9
- origin: (origin, cb) => {
10
- if (typeof origin === "string") {
11
- return cb(null, [origin]);
12
- }
13
- cb(null, "*");
14
- },
15
- credentials: true,
16
- });
17
- exports.createCors = createCors;
18
- //# sourceMappingURL=create-cors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-cors.js","sourceRoot":"","sources":["../../src/middleware/create-cors.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AAEjB,MAAM,UAAU,GAAG,GAAmB,EAAE,CAC7C,IAAA,cAAI,EAAC;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;QACrB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAVQ,QAAA,UAAU,cAUlB"}
@@ -1,3 +0,0 @@
1
- import type { Request, Response, NextFunction } from "express";
2
- export declare function defaultErrorHandler(error: Error, _req: Request, res: Response, next: NextFunction): void;
3
- //# sourceMappingURL=error-handling.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["../../src/middleware/error-handling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/D,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,QA6BnB"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultErrorHandler = defaultErrorHandler;
4
- function defaultErrorHandler(error, _req, res, next) {
5
- var _a;
6
- if (res.headersSent) {
7
- return next(error);
8
- }
9
- let assertCondition = "Assert condition failed: ";
10
- if ((_a = error === null || error === void 0 ? void 0 : error.message) === null || _a === void 0 ? void 0 : _a.startsWith(assertCondition)) {
11
- let errorCode = 500;
12
- let errorResponse = error.message;
13
- if (error.message.includes("::")) {
14
- let errorMessage = error.message.slice(assertCondition.length);
15
- errorCode = parseInt(errorMessage.slice(0, 3));
16
- errorResponse = errorMessage.slice(5);
17
- }
18
- res.status(errorCode).send(errorResponse);
19
- }
20
- else {
21
- console.error(error);
22
- res.status(500).json({
23
- error: {
24
- name: error.name,
25
- message: error.message,
26
- stack: error.stack,
27
- },
28
- });
29
- }
30
- }
31
- //# sourceMappingURL=error-handling.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-handling.js","sourceRoot":"","sources":["../../src/middleware/error-handling.ts"],"names":[],"mappings":";;AAEA,kDAiCC;AAjCD,SAAgB,mBAAmB,CACjC,KAAY,EACZ,IAAa,EACb,GAAa,EACb,IAAkB;;IAElB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,eAAe,GAAG,2BAA2B,CAAC;IAElD,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChD,IAAI,SAAS,GAAG,GAAG,CAAC;QACpB,IAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;QAElC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC/D,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { RequestHandler } from "express";
2
- export declare const noCache: () => RequestHandler;
3
- //# sourceMappingURL=no-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-cache.d.ts","sourceRoot":"","sources":["../../src/middleware/no-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,OAAO,EAAE,MAAM,cAI3B,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.noCache = void 0;
4
- const noCache = () => (_, res, next) => {
5
- res.set("Pragma", "no-cache");
6
- res.set("Cache-Control", "no-cache, no-store");
7
- next();
8
- };
9
- exports.noCache = noCache;
10
- //# sourceMappingURL=no-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-cache.js","sourceRoot":"","sources":["../../src/middleware/no-cache.ts"],"names":[],"mappings":";;;AAEO,MAAM,OAAO,GAAyB,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAClE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AAJW,QAAA,OAAO,WAIlB"}
@@ -1,3 +0,0 @@
1
- import type { RequestHandler } from "express";
2
- export declare const createSession: () => RequestHandler;
3
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/middleware/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,eAAO,MAAM,aAAa,QAAO,cAShC,CAAC"}
@@ -1,20 +0,0 @@
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.createSession = void 0;
7
- const cookie_session_1 = __importDefault(require("cookie-session"));
8
- const twentyFourHours = 24 * 60 * 60 * 1000;
9
- const createSession = () => {
10
- return (0, cookie_session_1.default)({
11
- name: "session",
12
- keys: ["shhh"],
13
- secure: true,
14
- httpOnly: false,
15
- maxAge: twentyFourHours,
16
- sameSite: "none",
17
- });
18
- };
19
- exports.createSession = createSession;
20
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/middleware/session.ts"],"names":[],"mappings":";;;;;;AACA,oEAA2C;AAC3C,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErC,MAAM,aAAa,GAAG,GAAmB,EAAE;IAChD,OAAO,IAAA,wBAAa,EAAC;QACnB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;AACL,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB"}
@@ -1,2 +0,0 @@
1
- export declare const extensionlessFileName: (fileName: string) => string;
2
- //# sourceMappingURL=extensionless-file-name.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensionless-file-name.d.ts","sourceRoot":"","sources":["../../src/rules/extensionless-file-name.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,MAGT,CAAC"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extensionlessFileName = void 0;
4
- const extensionlessFileName = (fileName) => fileName.indexOf(".") === -1
5
- ? fileName
6
- : fileName.split(".").slice(0, -1).join(".");
7
- exports.extensionlessFileName = extensionlessFileName;
8
- //# sourceMappingURL=extensionless-file-name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensionless-file-name.js","sourceRoot":"","sources":["../../src/rules/extensionless-file-name.ts"],"names":[],"mappings":";;;AAAO,MAAM,qBAAqB,GAAG,CAAC,QAAgB,EAAU,EAAE,CAChE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC,QAAQ;IACV,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAHpC,QAAA,qBAAqB,yBAGe"}
@@ -1,5 +0,0 @@
1
- export declare function parseRulesFiles(rulesPath: string): {
2
- code: string;
3
- filename: string;
4
- }[];
5
- //# sourceMappingURL=parse-rules-files.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-rules-files.d.ts","sourceRoot":"","sources":["../../src/rules/parse-rules-files.ts"],"names":[],"mappings":"AAKA,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,CAmCtC"}
@@ -1,34 +0,0 @@
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.parseRulesFiles = parseRulesFiles;
7
- const extensionless_file_name_ts_1 = require("./extensionless-file-name.js");
8
- const assert_ts_1 = require("assert-ts");
9
- const fs_1 = __importDefault(require("fs"));
10
- const path_1 = __importDefault(require("path"));
11
- function parseRulesFiles(rulesPath) {
12
- var _a;
13
- let ruleFiles = fs_1.default
14
- .readdirSync(rulesPath)
15
- .filter((f) => path_1.default.extname(f) === ".js");
16
- return ((_a = ruleFiles
17
- .map((r) => {
18
- let filename = path_1.default.join(rulesPath, r);
19
- let jsonFile = `${(0, extensionless_file_name_ts_1.extensionlessFileName)(filename)}.json`;
20
- (0, assert_ts_1.assert)(!!jsonFile, `no corresponding rule file for ${r}`);
21
- let rawRule = fs_1.default.readFileSync(jsonFile, "utf8");
22
- let { enabled, order = 0, stage = "login_success", } = JSON.parse(rawRule);
23
- if (!enabled) {
24
- return undefined;
25
- }
26
- let code = fs_1.default.readFileSync(filename, {
27
- encoding: "utf-8",
28
- });
29
- return { code, filename, order, stage };
30
- })
31
- .flatMap((x) => (!!x ? x : []))
32
- .sort((left, right) => left.order - right.order)) !== null && _a !== void 0 ? _a : []);
33
- }
34
- //# sourceMappingURL=parse-rules-files.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-rules-files.js","sourceRoot":"","sources":["../../src/rules/parse-rules-files.ts"],"names":[],"mappings":";;;;;AAKA,0CAqCC;AA1CD,6EAAqE;AACrE,yCAAmC;AACnC,4CAAoB;AACpB,gDAAwB;AAExB,SAAgB,eAAe,CAC7B,SAAiB;;IAEjB,IAAI,SAAS,GAAG,YAAE;SACf,WAAW,CAAC,SAAS,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IAE5C,OAAO,CACL,MAAA,SAAS;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAEvC,IAAI,QAAQ,GAAG,GAAG,IAAA,kDAAqB,EAAC,QAAQ,CAAC,OAAO,CAAC;QAEzD,IAAA,kBAAM,EAAC,CAAC,CAAC,QAAQ,EAAE,kCAAkC,CAAC,EAAE,CAAC,CAAC;QAE1D,IAAI,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEhD,IAAI,EACF,OAAO,EACP,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,eAAe,GACxB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAExB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE;YACnC,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC,CAAC;SACD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC9B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,mCAAI,EAAE,CACzD,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { RuleContext, RuleUser } from "./types.ts";
2
- export type RulesRunner = <A, I>(user: RuleUser, context: RuleContext<A, I>) => void;
3
- export declare function createRulesRunner(rulesPath?: string): RulesRunner;
4
- //# sourceMappingURL=rules-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rules-runner.d.ts","sourceRoot":"","sources":["../../src/rules/rules-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAQ,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAC7B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KACvB,IAAI,CAAC;AAwDV,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CA4BjE"}