@simulacrum/auth0-simulator 0.9.0 → 0.10.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 (117) hide show
  1. package/README.md +28 -206
  2. package/bin/start.js +7 -0
  3. package/dist/auth/constants.d.ts.map +1 -1
  4. package/dist/auth/constants.js +2 -5
  5. package/dist/auth/constants.js.map +1 -1
  6. package/dist/auth/date.js +3 -9
  7. package/dist/auth/date.js.map +1 -1
  8. package/dist/auth/jwt.d.ts +1 -1
  9. package/dist/auth/jwt.d.ts.map +1 -1
  10. package/dist/auth/jwt.js +6 -11
  11. package/dist/auth/jwt.js.map +1 -1
  12. package/dist/auth/refresh-token.d.ts +2 -2
  13. package/dist/auth/refresh-token.d.ts.map +1 -1
  14. package/dist/auth/refresh-token.js +10 -15
  15. package/dist/auth/refresh-token.js.map +1 -1
  16. package/dist/config/get-config.d.ts +6 -6
  17. package/dist/config/get-config.d.ts.map +1 -1
  18. package/dist/config/get-config.js +18 -18
  19. package/dist/config/get-config.js.map +1 -1
  20. package/dist/handlers/auth0-handlers.d.ts +6 -10
  21. package/dist/handlers/auth0-handlers.d.ts.map +1 -1
  22. package/dist/handlers/auth0-handlers.js +81 -66
  23. package/dist/handlers/auth0-handlers.js.map +1 -1
  24. package/dist/handlers/index.d.ts +5 -0
  25. package/dist/handlers/index.d.ts.map +1 -0
  26. package/dist/handlers/index.js +36 -0
  27. package/dist/handlers/index.js.map +1 -0
  28. package/dist/handlers/login-redirect.d.ts +2 -2
  29. package/dist/handlers/login-redirect.d.ts.map +1 -1
  30. package/dist/handlers/login-redirect.js +3 -7
  31. package/dist/handlers/login-redirect.js.map +1 -1
  32. package/dist/handlers/oauth-handlers.d.ts +10 -9
  33. package/dist/handlers/oauth-handlers.d.ts.map +1 -1
  34. package/dist/handlers/oauth-handlers.js +55 -58
  35. package/dist/handlers/oauth-handlers.js.map +1 -1
  36. package/dist/handlers/openid-handlers.d.ts +4 -4
  37. package/dist/handlers/openid-handlers.d.ts.map +1 -1
  38. package/dist/handlers/openid-handlers.js +11 -15
  39. package/dist/handlers/openid-handlers.js.map +1 -1
  40. package/dist/handlers/url.d.ts.map +1 -1
  41. package/dist/handlers/url.js +1 -5
  42. package/dist/handlers/url.js.map +1 -1
  43. package/dist/handlers/utils.d.ts +11 -4
  44. package/dist/handlers/utils.d.ts.map +1 -1
  45. package/dist/handlers/utils.js +11 -15
  46. package/dist/handlers/utils.js.map +1 -1
  47. package/dist/handlers/web-message.d.ts +1 -1
  48. package/dist/handlers/web-message.d.ts.map +1 -1
  49. package/dist/handlers/web-message.js +8 -12
  50. package/dist/handlers/web-message.js.map +1 -1
  51. package/dist/index.d.ts +16 -18
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +18 -127
  54. package/dist/index.js.map +1 -1
  55. package/dist/middleware/create-cors.d.ts +1 -1
  56. package/dist/middleware/create-cors.js +2 -9
  57. package/dist/middleware/create-cors.js.map +1 -1
  58. package/dist/middleware/error-handling.d.ts +3 -0
  59. package/dist/middleware/error-handling.d.ts.map +1 -0
  60. package/dist/{error-handling-middleware.js → middleware/error-handling.js} +5 -11
  61. package/dist/middleware/error-handling.js.map +1 -0
  62. package/dist/middleware/no-cache.d.ts +1 -1
  63. package/dist/middleware/no-cache.js +1 -5
  64. package/dist/middleware/no-cache.js.map +1 -1
  65. package/dist/middleware/session.d.ts +1 -1
  66. package/dist/middleware/session.js +3 -10
  67. package/dist/middleware/session.js.map +1 -1
  68. package/dist/rules/extensionless-file-name.js +1 -5
  69. package/dist/rules/extensionless-file-name.js.map +1 -1
  70. package/dist/rules/parse-rules-files.d.ts.map +1 -1
  71. package/dist/rules/parse-rules-files.js +15 -22
  72. package/dist/rules/parse-rules-files.js.map +1 -1
  73. package/dist/rules/rules-runner.d.ts +2 -2
  74. package/dist/rules/rules-runner.d.ts.map +1 -1
  75. package/dist/rules/rules-runner.js +14 -21
  76. package/dist/rules/rules-runner.js.map +1 -1
  77. package/dist/rules/types.d.ts +1 -1
  78. package/dist/rules/types.d.ts.map +1 -1
  79. package/dist/rules/types.js +1 -2
  80. package/dist/store/entities.d.ts +111 -0
  81. package/dist/store/entities.d.ts.map +1 -0
  82. package/dist/store/entities.js +38 -0
  83. package/dist/store/entities.js.map +1 -0
  84. package/dist/store/index.d.ts +37 -0
  85. package/dist/store/index.d.ts.map +1 -0
  86. package/dist/store/index.js +44 -0
  87. package/dist/store/index.js.map +1 -0
  88. package/dist/types.d.ts +20 -20
  89. package/dist/types.d.ts.map +1 -1
  90. package/dist/types.js +21 -25
  91. package/dist/types.js.map +1 -1
  92. package/dist/views/login.d.ts +2 -2
  93. package/dist/views/login.d.ts.map +1 -1
  94. package/dist/views/login.js +81 -34
  95. package/dist/views/login.js.map +1 -1
  96. package/dist/views/username-password.d.ts +2 -2
  97. package/dist/views/username-password.d.ts.map +1 -1
  98. package/dist/views/username-password.js +3 -7
  99. package/dist/views/username-password.js.map +1 -1
  100. package/dist/views/web-message.d.ts +1 -1
  101. package/dist/views/web-message.d.ts.map +1 -1
  102. package/dist/views/web-message.js +3 -10
  103. package/dist/views/web-message.js.map +1 -1
  104. package/package.json +24 -41
  105. package/CHANGELOG.md +0 -176
  106. package/bin/index.js +0 -2
  107. package/dist/error-handling-middleware.d.ts +0 -3
  108. package/dist/error-handling-middleware.d.ts.map +0 -1
  109. package/dist/error-handling-middleware.js.map +0 -1
  110. package/dist/handlers/get-service-url.d.ts +0 -3
  111. package/dist/handlers/get-service-url.d.ts.map +0 -1
  112. package/dist/handlers/get-service-url.js +0 -11
  113. package/dist/handlers/get-service-url.js.map +0 -1
  114. package/dist/start.d.ts +0 -2
  115. package/dist/start.d.ts.map +0 -1
  116. package/dist/start.js +0 -77
  117. package/dist/start.js.map +0 -1
@@ -1,42 +1,39 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBaseAccessToken = exports.getIdToken = exports.createTokens = void 0;
4
- const assert_ts_1 = require("assert-ts");
5
- const base64_url_1 = require("base64-url");
6
- const date_1 = require("../auth/date");
7
- const jwt_1 = require("../auth/jwt");
8
- const rules_runner_1 = require("../rules/rules-runner");
9
- const utils_1 = require("./utils");
10
- const refresh_token_1 = require("../auth/refresh-token");
11
- const createTokens = async ({ body, iss, clientID, audience, rulesDirectory, people, scope: scopeConfig, }) => {
1
+ import { assert } from "assert-ts";
2
+ import { decode, decode as decodeBase64 } from "base64-url";
3
+ import { epochTime, expiresAt } from "../auth/date";
4
+ import { createJsonWebToken } from "../auth/jwt";
5
+ import { createRulesRunner } from "../rules/rules-runner";
6
+ import { deriveScope, createPersonQuery } from "./utils";
7
+ import { createRefreshToken, issueRefreshToken } from "../auth/refresh-token";
8
+ export const createTokens = async ({ body, iss, clientID, audience, rulesDirectory, scope: scopeConfig, simulationStore, }) => {
12
9
  let { grant_type } = body;
13
- let scope = (0, utils_1.deriveScope)({ scopeConfig, clientID, audience });
14
- let accessToken = (0, exports.getBaseAccessToken)({ iss, grant_type, scope, audience });
10
+ let scope = deriveScope({ scopeConfig, clientID, audience });
11
+ let accessToken = getBaseAccessToken({ iss, grant_type, scope, audience });
15
12
  let user;
16
13
  let nonce;
17
- if (grant_type === 'client_credentials') {
18
- return { access_token: (0, jwt_1.createJsonWebToken)(accessToken) };
14
+ if (grant_type === "client_credentials") {
15
+ return { access_token: createJsonWebToken(accessToken) };
19
16
  }
20
17
  // TODO: check refresh_token expiry date
21
- else if (grant_type === 'refresh_token') {
18
+ else if (grant_type === "refresh_token") {
22
19
  let { refresh_token: refreshTokenValue } = body;
23
- let refreshToken = JSON.parse((0, base64_url_1.decode)(refreshTokenValue));
24
- let findUser = (0, utils_1.createPersonQuery)(people);
20
+ let refreshToken = JSON.parse(decode(refreshTokenValue));
21
+ let findUser = createPersonQuery(simulationStore);
25
22
  user = findUser((person) => person.id === refreshToken.user.id);
26
23
  nonce = refreshToken.nonce;
27
- (0, assert_ts_1.assert)(!!nonce, `400::No nonce in request`);
24
+ assert(!!nonce, `400::No nonce in request`);
28
25
  }
29
26
  else {
30
27
  let result = verifyUserExistsInStore({
31
- people,
28
+ simulationStore,
32
29
  body,
33
30
  grant_type,
34
31
  });
35
32
  user = result.user;
36
33
  nonce = result.nonce;
37
34
  }
38
- (0, assert_ts_1.assert)(!!user, '500::No user found');
39
- let { idTokenData, userData } = (0, exports.getIdToken)({
35
+ assert(!!user, "500::No user found");
36
+ let { idTokenData, userData } = getIdToken({
40
37
  body,
41
38
  iss,
42
39
  user,
@@ -48,92 +45,92 @@ const createTokens = async ({ body, iss, clientID, audience, rulesDirectory, peo
48
45
  accessToken: { scope, sub: idTokenData.sub },
49
46
  idToken: idTokenData,
50
47
  };
51
- let rulesRunner = (0, rules_runner_1.createRulesRunner)(rulesDirectory);
48
+ let rulesRunner = createRulesRunner(rulesDirectory);
52
49
  // the rules mutate the values
53
50
  await rulesRunner(userData, context);
54
51
  return {
55
- access_token: (0, jwt_1.createJsonWebToken)({
52
+ access_token: createJsonWebToken({
56
53
  ...accessToken,
57
54
  ...context.accessToken,
58
55
  }),
59
- id_token: (0, jwt_1.createJsonWebToken)({
56
+ id_token: createJsonWebToken({
60
57
  ...userData,
61
58
  ...context.idToken,
62
59
  }),
63
- refresh_token: (0, refresh_token_1.issueRefreshToken)(scope, grant_type) ? (0, refresh_token_1.createRefreshToken)({
64
- exp: idTokenData.exp,
65
- rotations: 0,
66
- scope,
67
- user,
68
- nonce
69
- }) : undefined
60
+ refresh_token: issueRefreshToken(scope, grant_type)
61
+ ? createRefreshToken({
62
+ exp: idTokenData.exp,
63
+ rotations: 0,
64
+ scope,
65
+ user,
66
+ nonce,
67
+ })
68
+ : undefined,
70
69
  };
71
70
  };
72
- exports.createTokens = createTokens;
73
- const getIdToken = ({ body, iss, user, clientID, nonce, }) => {
71
+ export const getIdToken = ({ body, iss, user, clientID, nonce, }) => {
72
+ var _a, _b, _c, _d;
74
73
  let userData = {
75
- name: body === null || body === void 0 ? void 0 : body.name,
76
- email: body === null || body === void 0 ? void 0 : body.email,
74
+ name: (_a = body === null || body === void 0 ? void 0 : body.name) !== null && _a !== void 0 ? _a : user.name,
75
+ email: (_b = body === null || body === void 0 ? void 0 : body.email) !== null && _b !== void 0 ? _b : user.email,
77
76
  email_verified: true,
78
- user_id: body === null || body === void 0 ? void 0 : body.id,
77
+ user_id: (_c = body === null || body === void 0 ? void 0 : body.id) !== null && _c !== void 0 ? _c : user.id,
79
78
  nickname: body === null || body === void 0 ? void 0 : body.nickname,
80
- picture: body === null || body === void 0 ? void 0 : body.picture,
79
+ picture: (_d = body === null || body === void 0 ? void 0 : body.picture) !== null && _d !== void 0 ? _d : user.picture,
81
80
  identities: body === null || body === void 0 ? void 0 : body.identities,
82
81
  };
83
- (0, assert_ts_1.assert)(!!user.email, '500::User in store requires an email');
82
+ assert(!!user.email, "500::User in store requires an email");
84
83
  let idTokenData = {
85
- alg: 'RS256',
86
- typ: 'JWT',
84
+ alg: "RS256",
85
+ typ: "JWT",
87
86
  iss,
88
- exp: (0, date_1.expiresAt)(),
89
- iat: (0, date_1.epochTime)(),
87
+ exp: expiresAt(),
88
+ iat: epochTime(),
90
89
  email: user.email,
91
90
  aud: clientID,
92
91
  sub: user.id,
93
92
  };
94
- if (typeof nonce !== 'undefined') {
93
+ if (typeof nonce !== "undefined") {
95
94
  idTokenData.nonce = nonce;
96
95
  }
97
96
  return { userData, idTokenData };
98
97
  };
99
- exports.getIdToken = getIdToken;
100
- const getBaseAccessToken = ({ iss, grant_type, scope, audience, }) => ({
98
+ export const getBaseAccessToken = ({ iss, grant_type, scope, audience, }) => ({
101
99
  iss,
102
- exp: (0, date_1.expiresAt)(),
103
- iat: (0, date_1.epochTime)(),
100
+ exp: expiresAt(),
101
+ iat: epochTime(),
104
102
  aud: audience,
105
103
  gty: grant_type,
106
104
  scope,
107
105
  });
108
- exports.getBaseAccessToken = getBaseAccessToken;
109
- const verifyUserExistsInStore = ({ people, body, grant_type, }) => {
106
+ const verifyUserExistsInStore = ({ simulationStore, body, grant_type, }) => {
110
107
  let { code } = body;
111
- let personQuery = (0, utils_1.createPersonQuery)(people);
108
+ let personQuery = createPersonQuery(simulationStore);
112
109
  let nonce;
113
110
  let username;
114
111
  let password;
115
- if (grant_type === 'password') {
112
+ if (grant_type === "password") {
116
113
  username = body.username;
117
114
  password = body.password;
118
115
  }
119
116
  else {
120
117
  // specifically grant_type === 'authorization_code'
121
118
  // but naively using it to handle other cases at the moment
122
- (0, assert_ts_1.assert)(typeof code !== 'undefined', '400::no code in /oauth/token');
123
- [nonce, username] = (0, base64_url_1.decode)(code).split(':');
119
+ assert(typeof code !== "undefined", "400::no code in /oauth/token");
120
+ [nonce, username] = decodeBase64(code).split(":");
124
121
  }
125
- (0, assert_ts_1.assert)(!!username, `400::no nonce in store for ${code}`);
122
+ assert(!!username, `400::no nonce in store for ${code}`);
126
123
  let user = personQuery((person) => {
127
- (0, assert_ts_1.assert)(!!person.email, `500::no email defined on person scenario`);
124
+ assert(!!person.email, `500::no email defined on person scenario`);
128
125
  let valid = person.email.toLowerCase() === username.toLowerCase();
129
- if (typeof password === 'undefined') {
126
+ if (typeof password === "undefined") {
130
127
  return valid;
131
128
  }
132
129
  else {
133
130
  return valid && password === person.password;
134
131
  }
135
132
  });
136
- (0, assert_ts_1.assert)(!!user, '401::Unauthorized');
133
+ assert(!!user, "401::Unauthorized");
137
134
  return { user, nonce };
138
135
  };
139
136
  //# sourceMappingURL=oauth-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-handlers.js","sourceRoot":"","sources":["../../src/handlers/oauth-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-handlers.js","sourceRoot":"","sources":["../../src/handlers/oauth-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { RequestHandler } from 'express';
2
- declare type Routes = '/jwks.json' | '/openid-configuration';
3
- export declare type OpenIdRoutes = `${`/.well-known`}${Routes}`;
1
+ import type { Request, RequestHandler } from "express";
2
+ type Routes = "/jwks.json" | "/openid-configuration";
3
+ export type OpenIdRoutes = `${`/.well-known`}${Routes}`;
4
4
  export interface OpenIdConfiguration {
5
5
  issuer: string;
6
6
  authorization_endpoint: string;
@@ -8,6 +8,6 @@ export interface OpenIdConfiguration {
8
8
  userinfo_endpoint: string;
9
9
  jwks_uri: string;
10
10
  }
11
- export declare const createOpenIdHandlers: (serviceURL: () => URL) => Record<OpenIdRoutes, RequestHandler>;
11
+ export declare const createOpenIdHandlers: (serviceURL: (request: Request) => string) => Record<OpenIdRoutes, RequestHandler>;
12
12
  export {};
13
13
  //# sourceMappingURL=openid-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openid-handlers.d.ts","sourceRoot":"","sources":["../../src/handlers/openid-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,aAAK,MAAM,GACP,YAAY,GACZ,uBAAuB,CAAA;AAE3B,oBAAY,YAAY,GAAG,GAAG,cAAc,GAAG,MAAM,EAAE,CAAA;AAEvD,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,eAAgB,MAAM,GAAG,KAAG,OAAO,YAAY,EAAE,cAAc,CAkB/F,CAAC"}
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,eACnB,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,KACvC,MAAM,CAAC,YAAY,EAAE,cAAc,CAkBrC,CAAC"}
@@ -1,24 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createOpenIdHandlers = void 0;
4
- const constants_1 = require("../auth/constants");
5
- const url_1 = require("./url");
6
- const createOpenIdHandlers = (serviceURL) => {
1
+ import { JWKS } from "../auth/constants";
2
+ import { removeTrailingSlash } from "./url";
3
+ export const createOpenIdHandlers = (serviceURL) => {
7
4
  return {
8
- ['/.well-known/jwks.json']: function (_, res) {
9
- res.json(constants_1.JWKS);
5
+ ["/.well-known/jwks.json"]: function (_, res) {
6
+ res.json(JWKS);
10
7
  },
11
- ['/.well-known/openid-configuration']: function (_, res) {
12
- let url = (0, url_1.removeTrailingSlash)(serviceURL().toString());
8
+ ["/.well-known/openid-configuration"]: function (req, res) {
9
+ let url = removeTrailingSlash(serviceURL(req));
13
10
  res.json({
14
11
  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('/'),
12
+ authorization_endpoint: [url, "authorize"].join("/"),
13
+ token_endpoint: [url, "oauth", "token"].join("/"),
14
+ userinfo_endpoint: [url, "userinfo"].join("/"),
15
+ jwks_uri: [url, ".well-known", "jwks.json"].join("/"),
19
16
  });
20
17
  },
21
18
  };
22
19
  };
23
- exports.createOpenIdHandlers = createOpenIdHandlers;
24
20
  //# sourceMappingURL=openid-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openid-handlers.js","sourceRoot":"","sources":["../../src/handlers/openid-handlers.ts"],"names":[],"mappings":";;;AACA,iDAAyC;AACzC,+BAA4C;AAgBrC,MAAM,oBAAoB,GAAG,CAAC,UAAqB,EAAwC,EAAE;IAClG,OAAO;QACL,CAAC,wBAAwB,CAAC,EAAE,UAAS,CAAC,EAAE,GAAG;YACzC,GAAG,CAAC,IAAI,CAAC,gBAAI,CAAC,CAAC;QACjB,CAAC;QAED,CAAC,mCAAmC,CAAC,EAAE,UAAS,CAAC,EAAE,GAAG;YACpD,IAAI,GAAG,GAAG,IAAA,yBAAmB,EAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEvD,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;AAlBW,QAAA,oBAAoB,wBAkB/B"}
1
+ {"version":3,"file":"openid-handlers.js","sourceRoot":"","sources":["../../src/handlers/openid-handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAc5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAAwC,EACF,EAAE;IACxC,OAAO;QACL,CAAC,wBAAwB,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG;YAC1C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAED,CAAC,mCAAmC,CAAC,EAAE,UAAU,GAAG,EAAE,GAAG;YACvD,IAAI,GAAG,GAAG,mBAAmB,CAAC,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/handlers/url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,MAAgC,CAAC"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/handlers/url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,MAC1B,CAAC"}
@@ -1,6 +1,2 @@
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;
1
+ export const removeTrailingSlash = (url) => url.replace(/\/$/, "");
6
2
  //# sourceMappingURL=url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/handlers/url.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAAtE,QAAA,mBAAmB,uBAAmD"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/handlers/url.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE,CACzD,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC"}
@@ -1,7 +1,14 @@
1
- import type { Person } from '@simulacrum/server';
2
- import type { ScopeConfig } from '../types';
3
- declare type Predicate<T> = (this: void, value: T, index: number, obj: T[]) => boolean;
4
- export declare const createPersonQuery: (people: Iterable<Person>) => (predicate: Predicate<Person>) => Person | undefined;
1
+ import type { ScopeConfig } from "../types";
2
+ import type { ExtendedSimulationStore } from "../store";
3
+ import type { Auth0User } from "../store/entities";
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;
5
12
  export declare const deriveScope: ({ scopeConfig, clientID, audience, }: {
6
13
  scopeConfig: ScopeConfig;
7
14
  clientID: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/handlers/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,aAAK,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,WACnB,SAAS,MAAM,CAAC,iBAAiB,UAAU,MAAM,CAAC,uBAE1D,CAAC;AAEJ,eAAO,MAAM,WAAW;iBAKT,WAAW;cACd,MAAM;cACN,MAAM;YAwCjB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/handlers/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,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,UACpB,uBAAuB,iBAAiB,SAAS,CAAC,SAAS,CAAC;;;;;;aAGnE,CAAC;AAEJ,eAAO,MAAM,WAAW,yCAIrB;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,WAuCA,CAAC"}
@@ -1,28 +1,24 @@
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 = (people) => (predicate) => {
6
- return [...people].find(predicate);
1
+ import { assert } from "assert-ts";
2
+ export const createPersonQuery = (store) => (predicate) => {
3
+ const users = store.schema.users.selectTableAsList(store.store.getState());
4
+ return users.find(predicate);
7
5
  };
8
- exports.createPersonQuery = createPersonQuery;
9
- const deriveScope = ({ scopeConfig, clientID, audience, }) => {
10
- if (typeof scopeConfig === 'string')
6
+ export const deriveScope = ({ scopeConfig, clientID, audience, }) => {
7
+ if (typeof scopeConfig === "string")
11
8
  return scopeConfig;
12
- let defaultScope = scopeConfig.find((application) => application.clientID === 'default');
13
- (0, assert_ts_1.assert)(!!clientID, `500::Did not have a clientID to derive the scope`);
9
+ let defaultScope = scopeConfig.find((application) => application.clientID === "default");
10
+ assert(!!clientID, `500::Did not have a clientID to derive the scope`);
14
11
  let application = scopeConfig.find((application) => application.clientID === clientID &&
15
12
  (application.audience ? application.audience === audience : true));
16
13
  if (!application) {
17
14
  let ignoreAudience = scopeConfig.find((application) => application.clientID === clientID);
18
- (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}`);
15
+ 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}`);
19
16
  }
20
17
  if (!application && defaultScope) {
21
18
  application = defaultScope;
22
19
  }
23
- (0, assert_ts_1.assert)(!!application, `500::Could not find application with clientID: ${clientID}`);
24
- (0, assert_ts_1.assert)(!!application.scope, `500::${application.clientID} is expected to have a scope`);
20
+ assert(!!application, `500::Could not find application with clientID: ${clientID}`);
21
+ assert(!!application.scope, `500::${application.clientID} is expected to have a scope`);
25
22
  return application.scope;
26
23
  };
27
- exports.deriveScope = deriveScope;
28
24
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/handlers/utils.ts"],"names":[],"mappings":";;;AAAA,yCAAmC;AAM5B,MAAM,iBAAiB,GAC5B,CAAC,MAAwB,EAAE,EAAE,CAAC,CAAC,SAA4B,EAAE,EAAE;IAC7D,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC,CAAC;AAHS,QAAA,iBAAiB,qBAG1B;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;QAChB,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;KACH;IAED,IAAI,CAAC,WAAW,IAAI,YAAY,EAAE;QAChC,WAAW,GAAG,YAAY,CAAC;KAC5B;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
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/handlers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOnC,MAAM,CAAC,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;AAEJ,MAAM,CAAC,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,MAAM,CAAC,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,MAAM,CACJ,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,MAAM,CACJ,CAAC,CAAC,WAAW,EACb,kDAAkD,QAAQ,EAAE,CAC7D,CAAC;IAEF,MAAM,CACJ,CAAC,CAAC,WAAW,CAAC,KAAK,EACnB,QAAQ,WAAW,CAAC,QAAQ,8BAA8B,CAC3D,CAAC;IAEF,OAAO,WAAW,CAAC,KAAK,CAAC;AAC3B,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { RequestHandler } from 'express';
1
+ import type { RequestHandler } from "express";
2
2
  export declare const createWebMessageHandler: () => RequestHandler;
3
3
  //# sourceMappingURL=web-message.d.ts.map
@@ -1 +1 @@
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,cAwBxC,CAAC"}
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 +1,18 @@
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_1 = require("../views/web-message");
7
- const createWebMessageHandler = () => function (req, res) {
8
- (0, assert_ts_1.assert)(!!req.session, "no session");
1
+ import { assert } from "assert-ts";
2
+ import { encode } from "base64-url";
3
+ import { webMessage } from "../views/web-message";
4
+ export const createWebMessageHandler = () => function (req, res) {
5
+ assert(!!(req === null || req === void 0 ? void 0 : req.session), "no session");
9
6
  let username = req.session.username;
10
- (0, assert_ts_1.assert)(!!username, `no username in authorise`);
7
+ assert(!!username, `no username in authorise`);
11
8
  let { redirect_uri, state, nonce } = req.query;
12
9
  res.set("Content-Type", "text/html");
13
- let message = (0, web_message_1.webMessage)({
14
- code: (0, base64_url_1.encode)(`${nonce}:${username}`),
10
+ let message = webMessage({
11
+ code: encode(`${nonce}:${username}`),
15
12
  state,
16
13
  redirect_uri,
17
14
  nonce,
18
15
  });
19
16
  res.status(200).send(Buffer.from(message));
20
17
  };
21
- exports.createWebMessageHandler = createWebMessageHandler;
22
18
  //# sourceMappingURL=web-message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-message.js","sourceRoot":"","sources":["../../src/handlers/web-message.ts"],"names":[],"mappings":";;;AACA,yCAAmC;AACnC,2CAAoC;AAEpC,sDAAkD;AAE3C,MAAM,uBAAuB,GAAG,GAAmB,EAAE,CAC1D,UAAS,GAAG,EAAE,GAAG;IACf,IAAA,kBAAM,EAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEpC,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEpC,IAAA,kBAAM,EAAC,CAAC,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC;IAE/C,IAAI,EACF,YAAY,EACZ,KAAK,EACL,KAAK,EACN,GAAG,GAAG,CAAC,KAAoB,CAAC;IAE7B,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAErC,IAAI,OAAO,GAAG,IAAA,wBAAU,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;AAxBS,QAAA,uBAAuB,2BAwBhC"}
1
+ {"version":3,"file":"web-message.js","sourceRoot":"","sources":["../../src/handlers/web-message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAmB,EAAE,CAC1D,UAAU,GAAG,EAAE,GAAG;IAChB,MAAM,CAAC,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,MAAM,CAAC,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,UAAU,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC,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"}
package/dist/index.d.ts CHANGED
@@ -1,19 +1,17 @@
1
- import type { Person, Simulator } from '@simulacrum/server';
2
- import type { Operation } from 'effection';
3
- import type { Auth0Store } from './handlers/auth0-handlers';
4
- import type { Auth0Configuration } from './types';
5
- export { getConfig } from './config/get-config';
6
- export interface Server {
7
- port: number;
8
- }
9
- export interface Auth0ServerOptions {
10
- config: Auth0Configuration;
11
- store: Auth0Store;
12
- people: Iterable<Person>;
13
- serviceURL: () => URL;
14
- port?: number;
15
- debug?: boolean;
16
- }
17
- export declare function createAuth0Server(options: Auth0ServerOptions): Operation<Server>;
18
- export declare const auth0: Simulator;
1
+ import { createFoundationSimulationServer, type SimulationHandlers, type FoundationSimulator } from "@simulacrum/foundation-simulator";
2
+ import { ExtendedSimulationStore } from "./store/index";
3
+ import { type Auth0InitialStore } from "./store/entities";
4
+ import { Auth0Configuration } from "./types";
5
+ export type Auth0Simulator = ({ initialState, extend, options, }?: {
6
+ initialState?: Auth0InitialStore;
7
+ extend?: {
8
+ extendStore?: SimulationInput["extendStore"];
9
+ openapiHandlers?: (simulationStore: ExtendedSimulationStore) => SimulationHandlers;
10
+ extendRouter?: SimulationInput["extendRouter"];
11
+ };
12
+ options?: Partial<Auth0Configuration>;
13
+ }) => ReturnType<FoundationSimulator<ExtendedSimulationStore>>;
14
+ type SimulationInput = Parameters<typeof createFoundationSimulationServer>[0];
15
+ export declare const simulation: Auth0Simulator;
16
+ export { auth0UserSchema, defaultUser } from "./store/entities";
19
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAA2B,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAK3C,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,2BAA2B,CAAC;AAOzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA4CD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,CAyChF;AAED,eAAO,MAAM,KAAK,EAAE,SAanB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAe,MAAM,eAAe,CAAC;AAErE,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,CAAC,EAC5B,YAAY,EACZ,MAAM,EACN,OAAO,GACR,CAAC,EAAE;IACF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAC7C,eAAe,CAAC,EAAE,CAChB,eAAe,EAAE,uBAAuB,KACrC,kBAAkB,CAAC;QACxB,YAAY,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;KAChD,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACvC,KAAK,UAAU,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAE/D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,eAAO,MAAM,UAAU,EAAE,cAWxB,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}