@logto/remix 1.0.0-beta.15 → 1.0.0-rc.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/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
- var $jCOgx$logtonode = require("@logto/node");
2
- var $jCOgx$remixrunnode = require("@remix-run/node");
1
+ var $1UY29$logtonode = require("@logto/node");
2
+ var $1UY29$remixrunnode = require("@remix-run/node");
3
3
 
4
4
  function $parcel$export(e, n, v, s) {
5
5
  Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
@@ -8,22 +8,22 @@ function $parcel$interopDefault(a) {
8
8
  return a && a.__esModule ? a.default : a;
9
9
  }
10
10
 
11
- $parcel$export(module.exports, "makeLogtoRemix", () => $0ca379f5bbbb8613$export$502a4d54d411a9fd);
11
+ $parcel$export(module.exports, "makeLogtoRemix", () => $d280ab1184950f89$export$502a4d54d411a9fd);
12
12
 
13
- const $94c40b1de01e2ef7$export$60d790dda55ffee6 = (config, storage)=>// Have to deactivate the eslint rule here as the `LogtoClient`
13
+ const $432ba72d919a1e72$export$60d790dda55ffee6 = (config, storage)=>// Have to deactivate the eslint rule here as the `LogtoClient`
14
14
  // awaits a `navigate` function.
15
15
  // eslint-disable-next-line @typescript-eslint/no-empty-function
16
16
  (navigate = ()=>{})=>{
17
- return new (0, ($parcel$interopDefault($jCOgx$logtonode)))(config, {
17
+ return new (0, ($parcel$interopDefault($1UY29$logtonode)))(config, {
18
18
  storage: storage,
19
19
  navigate: navigate
20
20
  });
21
21
  };
22
22
 
23
23
 
24
- class $827429ca01feafa0$var$LogtoStorage {
24
+ class $0039633e49290279$var$LogtoStorage {
25
25
  static fromSession = (session)=>{
26
- return new $827429ca01feafa0$var$LogtoStorage({
26
+ return new $0039633e49290279$var$LogtoStorage({
27
27
  session: session
28
28
  });
29
29
  };
@@ -46,10 +46,10 @@ class $827429ca01feafa0$var$LogtoStorage {
46
46
  };
47
47
  }
48
48
  }
49
- const $827429ca01feafa0$export$d184a47a971dd4b9 = (session)=>$827429ca01feafa0$var$LogtoStorage.fromSession(session);
49
+ const $0039633e49290279$export$d184a47a971dd4b9 = (session)=>$0039633e49290279$var$LogtoStorage.fromSession(session);
50
50
 
51
51
 
52
- const $929a552c463d8b64$export$f4d9bb4cf5d2b40c = (deps)=>async (request)=>{
52
+ const $9d7cd9eac4864785$export$f4d9bb4cf5d2b40c = (deps)=>async (request)=>{
53
53
  const { storage: storage , createClient: createClient } = deps;
54
54
  const client = createClient();
55
55
  const context = await client.getContext(request);
@@ -59,8 +59,8 @@ const $929a552c463d8b64$export$f4d9bb4cf5d2b40c = (deps)=>async (request)=>{
59
59
  };
60
60
 
61
61
 
62
- class $57de529bd46d1977$var$HandleSignInCommand {
63
- static fromDependencies = (dependencies)=>new $57de529bd46d1977$var$HandleSignInCommand({
62
+ class $b6b640b5dde7b3d1$var$HandleSignInCommand {
63
+ static fromDependencies = (dependencies)=>new $b6b640b5dde7b3d1$var$HandleSignInCommand({
64
64
  createClient: dependencies.createClient
65
65
  });
66
66
  constructor(properties){
@@ -78,9 +78,9 @@ class $57de529bd46d1977$var$HandleSignInCommand {
78
78
  };
79
79
  }
80
80
  }
81
- const $57de529bd46d1977$export$3c00ad1b716e9134 = (deps)=>async (request)=>{
81
+ const $b6b640b5dde7b3d1$export$3c00ad1b716e9134 = (deps)=>async (request)=>{
82
82
  const { storage: storage , createClient: createClient } = deps;
83
- const command = $57de529bd46d1977$var$HandleSignInCommand.fromDependencies({
83
+ const command = $b6b640b5dde7b3d1$var$HandleSignInCommand.fromDependencies({
84
84
  createClient: createClient
85
85
  });
86
86
  const { navigateToUrl: navigateToUrl } = await command.execute(request);
@@ -91,7 +91,7 @@ const $57de529bd46d1977$export$3c00ad1b716e9134 = (deps)=>async (request)=>{
91
91
  };
92
92
 
93
93
 
94
- const $a5a397d32fbbf55b$export$9c07365b51e93ba3 = (deps)=>async (request)=>{
94
+ const $ba5c5a17c0470429$export$9c07365b51e93ba3 = (deps)=>async (request)=>{
95
95
  const { storage: storage , createClient: createClient } = deps;
96
96
  const client = createClient();
97
97
  await client.handleSignInCallback(request.callbackUri);
@@ -101,8 +101,8 @@ const $a5a397d32fbbf55b$export$9c07365b51e93ba3 = (deps)=>async (request)=>{
101
101
  };
102
102
 
103
103
 
104
- class $43687e20c64eb0a9$var$HandleSignOutCommand {
105
- static fromDependencies = (dependencies)=>new $43687e20c64eb0a9$var$HandleSignOutCommand({
104
+ class $56983c96c6292b7b$var$HandleSignOutCommand {
105
+ static fromDependencies = (dependencies)=>new $56983c96c6292b7b$var$HandleSignOutCommand({
106
106
  createClient: dependencies.createClient
107
107
  });
108
108
  constructor(properties){
@@ -120,31 +120,31 @@ class $43687e20c64eb0a9$var$HandleSignOutCommand {
120
120
  };
121
121
  }
122
122
  }
123
- const $43687e20c64eb0a9$export$89f18ff1488dade0 = (deps)=>async (request)=>{
123
+ const $56983c96c6292b7b$export$89f18ff1488dade0 = (deps)=>async (request)=>{
124
124
  const { createClient: createClient } = deps;
125
- const command = $43687e20c64eb0a9$var$HandleSignOutCommand.fromDependencies({
125
+ const command = $56983c96c6292b7b$var$HandleSignOutCommand.fromDependencies({
126
126
  createClient: createClient
127
127
  });
128
128
  return command.execute(request);
129
129
  };
130
130
 
131
131
 
132
- const $be51f08b006ed125$export$5e1ab578feca185a = (config)=>(session)=>{
133
- const storage = (0, $827429ca01feafa0$export$d184a47a971dd4b9)(session);
134
- const createClient = (0, $94c40b1de01e2ef7$export$60d790dda55ffee6)(config, storage);
132
+ const $a4e270a96c0fa97a$export$5e1ab578feca185a = (config)=>(session)=>{
133
+ const storage = (0, $0039633e49290279$export$d184a47a971dd4b9)(session);
134
+ const createClient = (0, $432ba72d919a1e72$export$60d790dda55ffee6)(config, storage);
135
135
  return {
136
- handleSignIn: (0, $57de529bd46d1977$export$3c00ad1b716e9134)({
136
+ handleSignIn: (0, $b6b640b5dde7b3d1$export$3c00ad1b716e9134)({
137
137
  storage: storage,
138
138
  createClient: createClient
139
139
  }),
140
- handleSignInCallback: (0, $a5a397d32fbbf55b$export$9c07365b51e93ba3)({
140
+ handleSignInCallback: (0, $ba5c5a17c0470429$export$9c07365b51e93ba3)({
141
141
  storage: storage,
142
142
  createClient: createClient
143
143
  }),
144
- handleSignOut: (0, $43687e20c64eb0a9$export$89f18ff1488dade0)({
144
+ handleSignOut: (0, $56983c96c6292b7b$export$89f18ff1488dade0)({
145
145
  createClient: createClient
146
146
  }),
147
- getContext: (0, $929a552c463d8b64$export$f4d9bb4cf5d2b40c)({
147
+ getContext: (0, $9d7cd9eac4864785$export$f4d9bb4cf5d2b40c)({
148
148
  storage: storage,
149
149
  createClient: createClient
150
150
  })
@@ -152,16 +152,16 @@ const $be51f08b006ed125$export$5e1ab578feca185a = (config)=>(session)=>{
152
152
  };
153
153
 
154
154
 
155
- const $978a582c6f8c8e7b$export$5c6fae4c79d686e4 = (request)=>request.headers.get("Cookie");
155
+ const $a8afe3841584871e$export$5c6fae4c79d686e4 = (request)=>request.headers.get("Cookie");
156
156
 
157
157
 
158
- class $9d799c5e2ef306d6$export$32386402b3f0a45 {
159
- static fromDto = (dto)=>new $9d799c5e2ef306d6$export$32386402b3f0a45(dto);
158
+ class $5ea2bffde4379db3$export$32386402b3f0a45 {
159
+ static fromDto = (dto)=>new $5ea2bffde4379db3$export$32386402b3f0a45(dto);
160
160
  constructor(properties){
161
161
  this.properties = properties;
162
162
  this.useCase = this.properties.useCase;
163
163
  this.execute = async (request)=>{
164
- const cookieHeader = (0, $978a582c6f8c8e7b$export$5c6fae4c79d686e4)(request);
164
+ const cookieHeader = (0, $a8afe3841584871e$export$5c6fae4c79d686e4)(request);
165
165
  const result = await this.useCase({
166
166
  cookieHeader: cookieHeader ?? undefined,
167
167
  ...this.properties
@@ -172,7 +172,7 @@ class $9d799c5e2ef306d6$export$32386402b3f0a45 {
172
172
  }
173
173
 
174
174
 
175
- const $407324a9de7811e9$export$53ae38c062671653 = (deps)=>async (request)=>{
175
+ const $b710f2274063a387$export$53ae38c062671653 = (deps)=>async (request)=>{
176
176
  const { sessionStorage: sessionStorage , createLogtoAdapter: createLogtoAdapter } = deps;
177
177
  const session = await sessionStorage.getSession(request.cookieHeader);
178
178
  const logto = createLogtoAdapter(session);
@@ -183,13 +183,13 @@ const $407324a9de7811e9$export$53ae38c062671653 = (deps)=>async (request)=>{
183
183
  };
184
184
 
185
185
 
186
- const $7b69d37f648a005c$export$f4d9bb4cf5d2b40c = (dto, deps)=>async (request)=>{
186
+ const $10ac017bdfe3e60c$export$f4d9bb4cf5d2b40c = (dto, deps)=>async (request)=>{
187
187
  const { createLogtoAdapter: createLogtoAdapter , sessionStorage: sessionStorage } = deps;
188
- const useCase = (0, $407324a9de7811e9$export$53ae38c062671653)({
188
+ const useCase = (0, $b710f2274063a387$export$53ae38c062671653)({
189
189
  createLogtoAdapter: createLogtoAdapter,
190
190
  sessionStorage: sessionStorage
191
191
  });
192
- const controller = (0, $9d799c5e2ef306d6$export$32386402b3f0a45).fromDto({
192
+ const controller = (0, $5ea2bffde4379db3$export$32386402b3f0a45).fromDto({
193
193
  useCase: useCase,
194
194
  ...dto
195
195
  });
@@ -199,8 +199,8 @@ const $7b69d37f648a005c$export$f4d9bb4cf5d2b40c = (dto, deps)=>async (request)=>
199
199
 
200
200
 
201
201
 
202
- class $6ca04f2e8ce3f248$export$8bb8370a824a554b {
203
- static fromDto = (dto)=>new $6ca04f2e8ce3f248$export$8bb8370a824a554b({
202
+ class $29dab4b4aca0abe0$export$8bb8370a824a554b {
203
+ static fromDto = (dto)=>new $29dab4b4aca0abe0$export$8bb8370a824a554b({
204
204
  useCase: dto.useCase,
205
205
  redirectUri: dto.redirectUri
206
206
  });
@@ -209,13 +209,13 @@ class $6ca04f2e8ce3f248$export$8bb8370a824a554b {
209
209
  this.useCase = this.properties.useCase;
210
210
  this.redirectUri = this.properties.redirectUri;
211
211
  this.execute = async (request)=>{
212
- const cookieHeader = (0, $978a582c6f8c8e7b$export$5c6fae4c79d686e4)(request);
212
+ const cookieHeader = (0, $a8afe3841584871e$export$5c6fae4c79d686e4)(request);
213
213
  const { redirectUri: redirectUri } = this;
214
214
  const result = await this.useCase({
215
215
  cookieHeader: cookieHeader ?? undefined,
216
216
  redirectUri: redirectUri
217
217
  });
218
- return (0, $jCOgx$remixrunnode.redirect)(result.navigateToUrl, {
218
+ return (0, $1UY29$remixrunnode.redirect)(result.navigateToUrl, {
219
219
  headers: {
220
220
  "Set-Cookie": result.cookieHeader
221
221
  }
@@ -225,7 +225,7 @@ class $6ca04f2e8ce3f248$export$8bb8370a824a554b {
225
225
  }
226
226
 
227
227
 
228
- const $b3adef7963962600$export$463099392e1e6404 = (deps)=>async (request)=>{
228
+ const $c230f3a04bd8ec78$export$463099392e1e6404 = (deps)=>async (request)=>{
229
229
  const { sessionStorage: sessionStorage , createLogtoAdapter: createLogtoAdapter } = deps;
230
230
  const session = await sessionStorage.getSession(request.cookieHeader);
231
231
  const logto = createLogtoAdapter(session);
@@ -240,13 +240,13 @@ const $b3adef7963962600$export$463099392e1e6404 = (deps)=>async (request)=>{
240
240
  };
241
241
 
242
242
 
243
- const $4e85595756955e84$export$3c00ad1b716e9134 = (dto, deps)=>async (request)=>{
243
+ const $7d87cb1bafa09779$export$3c00ad1b716e9134 = (dto, deps)=>async (request)=>{
244
244
  const { createLogtoAdapter: createLogtoAdapter , sessionStorage: sessionStorage } = deps;
245
- const useCase = (0, $b3adef7963962600$export$463099392e1e6404)({
245
+ const useCase = (0, $c230f3a04bd8ec78$export$463099392e1e6404)({
246
246
  createLogtoAdapter: createLogtoAdapter,
247
247
  sessionStorage: sessionStorage
248
248
  });
249
- const controller = (0, $6ca04f2e8ce3f248$export$8bb8370a824a554b).fromDto({
249
+ const controller = (0, $29dab4b4aca0abe0$export$8bb8370a824a554b).fromDto({
250
250
  useCase: useCase,
251
251
  redirectUri: dto.redirectBackTo
252
252
  });
@@ -256,8 +256,8 @@ const $4e85595756955e84$export$3c00ad1b716e9134 = (dto, deps)=>async (request)=>
256
256
 
257
257
 
258
258
 
259
- class $21e03cfddf6418cf$export$144a9ac3253d5e56 extends Error {
260
- static becauseNoCookieHeaderPresent = ()=>new $21e03cfddf6418cf$export$144a9ac3253d5e56({
259
+ class $bacebc5f40652238$export$144a9ac3253d5e56 extends Error {
260
+ static becauseNoCookieHeaderPresent = ()=>new $bacebc5f40652238$export$144a9ac3253d5e56({
261
261
  code: 1665388541,
262
262
  message: `The authentication sign-in callback route can't be accessed without a valid cookie.`
263
263
  });
@@ -271,8 +271,8 @@ class $21e03cfddf6418cf$export$144a9ac3253d5e56 extends Error {
271
271
  }
272
272
 
273
273
 
274
- class $f663abe9edb298e3$export$c8d670afaf17c618 {
275
- static fromDto = (dto)=>new $f663abe9edb298e3$export$c8d670afaf17c618({
274
+ class $c35099547b1a0858$export$c8d670afaf17c618 {
275
+ static fromDto = (dto)=>new $c35099547b1a0858$export$c8d670afaf17c618({
276
276
  useCase: dto.useCase,
277
277
  redirectUri: dto.redirectUri
278
278
  });
@@ -281,8 +281,8 @@ class $f663abe9edb298e3$export$c8d670afaf17c618 {
281
281
  this.useCase = this.properties.useCase;
282
282
  this.redirectUri = this.properties.redirectUri;
283
283
  this.execute = async (request)=>{
284
- const cookieHeader = (0, $978a582c6f8c8e7b$export$5c6fae4c79d686e4)(request);
285
- if (!cookieHeader) throw (0, $21e03cfddf6418cf$export$144a9ac3253d5e56).becauseNoCookieHeaderPresent();
284
+ const cookieHeader = (0, $a8afe3841584871e$export$5c6fae4c79d686e4)(request);
285
+ if (!cookieHeader) throw (0, $bacebc5f40652238$export$144a9ac3253d5e56).becauseNoCookieHeaderPresent();
286
286
  // In some scenarios, like performing the sign-in callback within a Gitpod
287
287
  // environment, the load balancer rewrites the URL and uses `http` as the
288
288
  // protocol. Here, we make sure that when the `x-forwarded-proto` HTTP header
@@ -293,7 +293,7 @@ class $f663abe9edb298e3$export$c8d670afaf17c618 {
293
293
  cookieHeader: cookieHeader,
294
294
  callbackUri: callbackUri
295
295
  });
296
- return (0, $jCOgx$remixrunnode.redirect)(this.redirectUri, {
296
+ return (0, $1UY29$remixrunnode.redirect)(this.redirectUri, {
297
297
  headers: {
298
298
  "Set-Cookie": result.cookieHeader
299
299
  }
@@ -303,7 +303,7 @@ class $f663abe9edb298e3$export$c8d670afaf17c618 {
303
303
  }
304
304
 
305
305
 
306
- const $ff5498b695abf304$export$22e357c661ee13a4 = (deps)=>async (request)=>{
306
+ const $3ae3cea103e3f353$export$22e357c661ee13a4 = (deps)=>async (request)=>{
307
307
  const { sessionStorage: sessionStorage , createLogtoAdapter: createLogtoAdapter } = deps;
308
308
  const session = await sessionStorage.getSession(request.cookieHeader);
309
309
  const logto = createLogtoAdapter(session);
@@ -317,13 +317,13 @@ const $ff5498b695abf304$export$22e357c661ee13a4 = (deps)=>async (request)=>{
317
317
  };
318
318
 
319
319
 
320
- const $7a39fdd186e8afdc$export$9c07365b51e93ba3 = (dto, deps)=>async (request)=>{
320
+ const $4df2ab785be2e3b0$export$9c07365b51e93ba3 = (dto, deps)=>async (request)=>{
321
321
  const { createLogtoAdapter: createLogtoAdapter , sessionStorage: sessionStorage } = deps;
322
- const useCase = (0, $ff5498b695abf304$export$22e357c661ee13a4)({
322
+ const useCase = (0, $3ae3cea103e3f353$export$22e357c661ee13a4)({
323
323
  createLogtoAdapter: createLogtoAdapter,
324
324
  sessionStorage: sessionStorage
325
325
  });
326
- const controller = (0, $f663abe9edb298e3$export$c8d670afaf17c618).fromDto({
326
+ const controller = (0, $c35099547b1a0858$export$c8d670afaf17c618).fromDto({
327
327
  useCase: useCase,
328
328
  redirectUri: dto.redirectBackTo
329
329
  });
@@ -333,8 +333,8 @@ const $7a39fdd186e8afdc$export$9c07365b51e93ba3 = (dto, deps)=>async (request)=>
333
333
 
334
334
 
335
335
 
336
- class $311025c6b993527d$export$e01614cfebe90908 extends Error {
337
- static becauseNoCookieHeaderPresent = ()=>new $311025c6b993527d$export$e01614cfebe90908({
336
+ class $b7dcd894e0be6905$export$e01614cfebe90908 extends Error {
337
+ static becauseNoCookieHeaderPresent = ()=>new $b7dcd894e0be6905$export$e01614cfebe90908({
338
338
  code: 1665388713,
339
339
  message: `The authentication sign-out route can't be accessed without a valid cookie.`
340
340
  });
@@ -348,8 +348,8 @@ class $311025c6b993527d$export$e01614cfebe90908 extends Error {
348
348
  }
349
349
 
350
350
 
351
- class $dbef723619a85b93$export$543cea0b68ca8887 {
352
- static fromDto = (dto)=>new $dbef723619a85b93$export$543cea0b68ca8887({
351
+ class $1791a93b2ba8efd2$export$543cea0b68ca8887 {
352
+ static fromDto = (dto)=>new $1791a93b2ba8efd2$export$543cea0b68ca8887({
353
353
  useCase: dto.useCase,
354
354
  redirectUri: dto.redirectUri
355
355
  });
@@ -358,13 +358,13 @@ class $dbef723619a85b93$export$543cea0b68ca8887 {
358
358
  this.useCase = this.properties.useCase;
359
359
  this.redirectUri = this.properties.redirectUri;
360
360
  this.execute = async (request)=>{
361
- const cookieHeader = (0, $978a582c6f8c8e7b$export$5c6fae4c79d686e4)(request);
362
- if (!cookieHeader) throw (0, $311025c6b993527d$export$e01614cfebe90908).becauseNoCookieHeaderPresent();
361
+ const cookieHeader = (0, $a8afe3841584871e$export$5c6fae4c79d686e4)(request);
362
+ if (!cookieHeader) throw (0, $b7dcd894e0be6905$export$e01614cfebe90908).becauseNoCookieHeaderPresent();
363
363
  const result = await this.useCase({
364
364
  cookieHeader: cookieHeader,
365
365
  redirectUri: this.redirectUri
366
366
  });
367
- return (0, $jCOgx$remixrunnode.redirect)(result.navigateToUrl, {
367
+ return (0, $1UY29$remixrunnode.redirect)(result.navigateToUrl, {
368
368
  headers: {
369
369
  "Set-Cookie": result.cookieHeader
370
370
  }
@@ -374,7 +374,7 @@ class $dbef723619a85b93$export$543cea0b68ca8887 {
374
374
  }
375
375
 
376
376
 
377
- const $2453e8ad28193ffe$export$8ccb0e4b7ccc1fc4 = (deps)=>async (request)=>{
377
+ const $fb309dcd4b062524$export$8ccb0e4b7ccc1fc4 = (deps)=>async (request)=>{
378
378
  const { sessionStorage: sessionStorage , createLogtoAdapter: createLogtoAdapter } = deps;
379
379
  const session = await sessionStorage.getSession(request.cookieHeader);
380
380
  const logto = createLogtoAdapter(session);
@@ -389,13 +389,13 @@ const $2453e8ad28193ffe$export$8ccb0e4b7ccc1fc4 = (deps)=>async (request)=>{
389
389
  };
390
390
 
391
391
 
392
- const $380e7b1772b43f91$export$89f18ff1488dade0 = (dto, deps)=>async (request)=>{
392
+ const $af9527187f2d8283$export$89f18ff1488dade0 = (dto, deps)=>async (request)=>{
393
393
  const { createLogtoAdapter: createLogtoAdapter , sessionStorage: sessionStorage } = deps;
394
- const useCase = (0, $2453e8ad28193ffe$export$8ccb0e4b7ccc1fc4)({
394
+ const useCase = (0, $fb309dcd4b062524$export$8ccb0e4b7ccc1fc4)({
395
395
  createLogtoAdapter: createLogtoAdapter,
396
396
  sessionStorage: sessionStorage
397
397
  });
398
- const controller = (0, $dbef723619a85b93$export$543cea0b68ca8887).fromDto({
398
+ const controller = (0, $1791a93b2ba8efd2$export$543cea0b68ca8887).fromDto({
399
399
  useCase: useCase,
400
400
  redirectUri: dto.redirectBackTo
401
401
  });
@@ -403,12 +403,12 @@ const $380e7b1772b43f91$export$89f18ff1488dade0 = (dto, deps)=>async (request)=>
403
403
  };
404
404
 
405
405
 
406
- class $1a27034d0b6c1fa0$export$fcbf49abe9908796 extends Error {
407
- static becauseNoConfigForPath = (anticipatedPath)=>new $1a27034d0b6c1fa0$export$fcbf49abe9908796({
406
+ class $39dd7d8d62a3df87$export$fcbf49abe9908796 extends Error {
407
+ static becauseNoConfigForPath = (anticipatedPath)=>new $39dd7d8d62a3df87$export$fcbf49abe9908796({
408
408
  code: 1665388277,
409
409
  message: `No configuration available for path "${anticipatedPath}".`
410
410
  });
411
- static becauseOfUnknownRoute = (anticipatedConfigKey)=>new $1a27034d0b6c1fa0$export$fcbf49abe9908796({
411
+ static becauseOfUnknownRoute = (anticipatedConfigKey)=>new $39dd7d8d62a3df87$export$fcbf49abe9908796({
412
412
  code: 1665388278,
413
413
  message: `The config key "${anticipatedConfigKey}" is invalid.`
414
414
  });
@@ -422,17 +422,17 @@ class $1a27034d0b6c1fa0$export$fcbf49abe9908796 extends Error {
422
422
  }
423
423
 
424
424
 
425
- const $4726b3ba230d3664$export$d6e32a8c2b1ad7f3 = (deps)=>(dto)=>async ({ request: request })=>{
425
+ const $85c2f13c6554a877$export$d6e32a8c2b1ad7f3 = (deps)=>(dto)=>async ({ request: request })=>{
426
426
  const anticipatedPath = new URL(request.url).pathname;
427
427
  /* eslint-disable no-restricted-syntax */ const configKey = Object.keys(dto).find((type)=>dto[type].path === anticipatedPath);
428
428
  const configExists = Boolean(configKey);
429
- /* eslint-enable no-restricted-syntax */ if (!configExists) throw (0, $1a27034d0b6c1fa0$export$fcbf49abe9908796).becauseNoConfigForPath(anticipatedPath);
429
+ /* eslint-enable no-restricted-syntax */ if (!configExists) throw (0, $39dd7d8d62a3df87$export$fcbf49abe9908796).becauseNoConfigForPath(anticipatedPath);
430
430
  const { sessionStorage: sessionStorage , createLogtoAdapter: createLogtoAdapter , baseUrl: baseUrl } = deps;
431
431
  const config = dto[configKey];
432
432
  switch(configKey){
433
433
  case "sign-in":
434
434
  {
435
- const handler = (0, $4e85595756955e84$export$3c00ad1b716e9134)({
435
+ const handler = (0, $7d87cb1bafa09779$export$3c00ad1b716e9134)({
436
436
  redirectBackTo: `${baseUrl}${config.redirectBackTo}`
437
437
  }, {
438
438
  sessionStorage: sessionStorage,
@@ -442,41 +442,41 @@ const $4726b3ba230d3664$export$d6e32a8c2b1ad7f3 = (deps)=>(dto)=>async ({ reques
442
442
  }
443
443
  case "sign-in-callback":
444
444
  {
445
- const handler1 = (0, $7a39fdd186e8afdc$export$9c07365b51e93ba3)({
445
+ const handler = (0, $4df2ab785be2e3b0$export$9c07365b51e93ba3)({
446
446
  redirectBackTo: `${baseUrl}${config.redirectBackTo}`
447
447
  }, {
448
448
  sessionStorage: sessionStorage,
449
449
  createLogtoAdapter: createLogtoAdapter
450
450
  });
451
- return handler1(request);
451
+ return handler(request);
452
452
  }
453
453
  case "sign-out":
454
454
  {
455
- const handler2 = (0, $380e7b1772b43f91$export$89f18ff1488dade0)({
455
+ const handler = (0, $af9527187f2d8283$export$89f18ff1488dade0)({
456
456
  redirectBackTo: `${baseUrl}${config.redirectBackTo}`
457
457
  }, {
458
458
  sessionStorage: sessionStorage,
459
459
  createLogtoAdapter: createLogtoAdapter
460
460
  });
461
- return handler2(request);
461
+ return handler(request);
462
462
  }
463
463
  default:
464
- throw (0, $1a27034d0b6c1fa0$export$fcbf49abe9908796).becauseOfUnknownRoute(configKey);
464
+ throw (0, $39dd7d8d62a3df87$export$fcbf49abe9908796).becauseOfUnknownRoute(configKey);
465
465
  }
466
466
  };
467
467
 
468
468
 
469
- const $0ca379f5bbbb8613$export$502a4d54d411a9fd = (config, deps)=>{
469
+ const $d280ab1184950f89$export$502a4d54d411a9fd = (config, deps)=>{
470
470
  const { sessionStorage: sessionStorage } = deps;
471
471
  const { baseUrl: baseUrl } = config;
472
- const createLogtoAdapter = (0, $be51f08b006ed125$export$5e1ab578feca185a)(config);
472
+ const createLogtoAdapter = (0, $a4e270a96c0fa97a$export$5e1ab578feca185a)(config);
473
473
  return Object.freeze({
474
- handleAuthRoutes: (0, $4726b3ba230d3664$export$d6e32a8c2b1ad7f3)({
474
+ handleAuthRoutes: (0, $85c2f13c6554a877$export$d6e32a8c2b1ad7f3)({
475
475
  baseUrl: baseUrl,
476
476
  createLogtoAdapter: createLogtoAdapter,
477
477
  sessionStorage: sessionStorage
478
478
  }),
479
- getContext: (dto)=>(0, $7b69d37f648a005c$export$f4d9bb4cf5d2b40c)(dto, {
479
+ getContext: (dto)=>(0, $10ac017bdfe3e60c$export$f4d9bb4cf5d2b40c)(dto, {
480
480
  createLogtoAdapter: createLogtoAdapter,
481
481
  sessionStorage: sessionStorage
482
482
  })
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/remix/src/index.ts","packages/remix/src/infrastructure/logto/index.ts","packages/remix/src/infrastructure/logto/create-client.ts","packages/remix/src/infrastructure/logto/create-storage.ts","packages/remix/src/infrastructure/logto/get-context.ts","packages/remix/src/infrastructure/logto/handle-sign-in.ts","packages/remix/src/infrastructure/logto/handle-sign-in-callback.ts","packages/remix/src/infrastructure/logto/handle-sign-out.ts","packages/remix/src/useCases/getContext/index.ts","packages/remix/src/useCases/getContext/GetContextController.ts","packages/remix/src/framework/get-cookie-header-from-request.ts","packages/remix/src/useCases/getContext/GetContextUseCase.ts","packages/remix/src/useCases/handleAuthRoutes/index.ts","packages/remix/src/useCases/handleSignIn/index.ts","packages/remix/src/useCases/handleSignIn/HandleSignInController.ts","packages/remix/src/useCases/handleSignIn/HandleSignInUseCase.ts","packages/remix/src/useCases/handleSignInCallback/index.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackController.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackError.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackUseCase.ts","packages/remix/src/useCases/handleSignOut/index.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutController.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutError.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutUseCase.ts","packages/remix/src/useCases/handleAuthRoutes/HandleAuthRoutesError.ts"],"sourcesContent":["import { GetContextParameters, LogtoConfig } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { makeLogtoAdapter } from './infrastructure/logto';\nimport { makeGetContext } from './useCases/getContext';\nimport { makeHandleAuthRoutes } from './useCases/handleAuthRoutes';\n\ntype Config = Readonly<LogtoConfig> & {\n readonly baseUrl: string;\n};\n\nexport const makeLogtoRemix = (\n config: Config,\n deps: {\n sessionStorage: SessionStorage;\n }\n) => {\n const { sessionStorage } = deps;\n\n const { baseUrl } = config;\n\n const createLogtoAdapter = makeLogtoAdapter(config);\n\n return Object.freeze({\n handleAuthRoutes: makeHandleAuthRoutes({\n baseUrl,\n createLogtoAdapter,\n sessionStorage,\n }),\n\n getContext: (dto: GetContextParameters) =>\n makeGetContext(dto, {\n createLogtoAdapter,\n sessionStorage,\n }),\n });\n};\n\nexport { type LogtoContext } from '@logto/node';\n","import type { LogtoConfig } from '@logto/node';\nimport { Session } from '@remix-run/node';\n\nimport { makeLogtoClient } from './create-client';\nimport { createStorage } from './create-storage';\nimport { makeGetContext } from './get-context';\nimport { makeHandleSignIn } from './handle-sign-in';\nimport { makeHandleSignInCallback } from './handle-sign-in-callback';\nimport { makeHandleSignOut } from './handle-sign-out';\n\ntype MakeLogtoAdapterConfiguration = LogtoConfig;\n\nexport const makeLogtoAdapter = (config: MakeLogtoAdapterConfiguration) => (session: Session) => {\n const storage = createStorage(session);\n const createClient = makeLogtoClient(config, storage);\n\n return {\n handleSignIn: makeHandleSignIn({ storage, createClient }),\n handleSignInCallback: makeHandleSignInCallback({ storage, createClient }),\n handleSignOut: makeHandleSignOut({ createClient }),\n getContext: makeGetContext({ storage, createClient }),\n };\n};\n\nexport type CreateLogtoAdapter = ReturnType<typeof makeLogtoAdapter>;\n\nexport { type LogtoContext } from '@logto/node';\n","import LogtoClient, { LogtoConfig } from '@logto/node';\n\nimport { LogtoStorage } from './create-storage';\n\nexport const makeLogtoClient =\n (config: LogtoConfig, storage: LogtoStorage) =>\n // Have to deactivate the eslint rule here as the `LogtoClient`\n // awaits a `navigate` function.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n (navigate: (url: string) => void = () => {}) => {\n return new LogtoClient(config, { storage, navigate });\n };\n\nexport type CreateLogtoClient = ReturnType<typeof makeLogtoClient>;\n\nexport { type LogtoConfig } from '@logto/node';\n","import { Storage, StorageKey } from '@logto/node';\nimport { Session } from '@remix-run/node';\n\nclass LogtoStorage implements Storage {\n public static readonly fromSession = (session: Session) => {\n return new LogtoStorage({ session });\n };\n\n public readonly session = this.properties.session;\n\n private constructor(\n private readonly properties: {\n session: Session;\n }\n ) {}\n\n public readonly setItem = async (key: StorageKey, value: string) => {\n this.session.set(key, value);\n };\n\n public readonly getItem = async (key: StorageKey) => {\n const itemExists = this.session.has(key);\n\n if (!itemExists) {\n return null;\n }\n\n return String(this.session.get(key));\n };\n\n public readonly removeItem = async (key: StorageKey) => {\n this.session.unset(key);\n };\n\n public readonly save = async () => {\n // Not required as the persistence happens in the integration layer\n };\n}\n\nexport const createStorage = (session: Session) => LogtoStorage.fromSession(session);\n\nexport type { LogtoStorage };\n","import { GetContextParameters, LogtoContext } from '@logto/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype GetContextResponse = {\n readonly context: LogtoContext;\n};\n\nexport const makeGetContext =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: GetContextParameters): Promise<GetContextResponse> => {\n const { storage, createClient } = deps;\n\n const client = createClient();\n\n const context = await client.getContext(request);\n\n return {\n context,\n };\n };\n","import { Session } from '@remix-run/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype HandleSignInRequest = {\n readonly redirectUri: string;\n};\n\ntype HandleSignInResponse = {\n readonly session: Session;\n readonly navigateToUrl: string;\n};\n\nclass HandleSignInCommand {\n public static readonly fromDependencies = (dependencies: { createClient: CreateLogtoClient }) =>\n new HandleSignInCommand({ createClient: dependencies.createClient });\n\n private navigateToUrl = '/api/sign-in';\n\n private constructor(\n private readonly properties: {\n readonly createClient: CreateLogtoClient;\n }\n ) {}\n\n public async execute(request: HandleSignInRequest) {\n const { createClient } = this.properties;\n\n const client = createClient((url) => {\n this.navigateToUrl = url;\n });\n\n await client.signIn(request.redirectUri);\n\n return {\n navigateToUrl: this.navigateToUrl,\n };\n }\n}\n\nexport const makeHandleSignIn =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: HandleSignInRequest): Promise<HandleSignInResponse> => {\n const { storage, createClient } = deps;\n\n const command = HandleSignInCommand.fromDependencies({ createClient });\n\n const { navigateToUrl } = await command.execute(request);\n\n return {\n session: storage.session,\n navigateToUrl,\n };\n };\n","import { Session } from '@remix-run/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype HandleSignInCallbackRequest = {\n callbackUri: string;\n};\n\ntype HandleSignInCallbackResponse = {\n readonly session: Session;\n};\n\nexport const makeHandleSignInCallback =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: HandleSignInCallbackRequest): Promise<HandleSignInCallbackResponse> => {\n const { storage, createClient } = deps;\n\n const client = createClient();\n\n await client.handleSignInCallback(request.callbackUri);\n\n return {\n session: storage.session,\n };\n };\n","import { CreateLogtoClient } from './create-client';\n\ntype HandleSignOutRequest = {\n readonly redirectUri: string;\n};\n\ntype HandleSignOutResponse = {\n readonly navigateToUrl: string;\n};\n\nclass HandleSignOutCommand {\n public static readonly fromDependencies = (dependencies: { createClient: CreateLogtoClient }) =>\n new HandleSignOutCommand({ createClient: dependencies.createClient });\n\n private navigateToUrl = '/api/sign-in';\n\n private constructor(\n private readonly properties: {\n readonly createClient: CreateLogtoClient;\n }\n ) {}\n\n public async execute(request: HandleSignOutRequest) {\n const { createClient } = this.properties;\n\n const client = createClient((url) => {\n this.navigateToUrl = url;\n });\n\n await client.signOut(request.redirectUri);\n\n return {\n navigateToUrl: this.navigateToUrl,\n };\n }\n}\n\nexport const makeHandleSignOut =\n (deps: { createClient: CreateLogtoClient }) =>\n async (request: HandleSignOutRequest): Promise<HandleSignOutResponse> => {\n const { createClient } = deps;\n\n const command = HandleSignOutCommand.fromDependencies({ createClient });\n\n return command.execute(request);\n };\n","import { GetContextParameters } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { GetContextController } from './GetContextController';\nimport { makeGetContextUseCase } from './GetContextUseCase';\n\ntype HandleGetContextDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeGetContext =\n (dto: GetContextParameters, deps: HandleGetContextDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeGetContextUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = GetContextController.fromDto({\n useCase,\n ...dto,\n });\n\n return controller.execute(request);\n };\n","import { GetContextParameters, LogtoContext } from '@logto/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport type { GetContextUseCase } from './GetContextUseCase';\n\ntype GetContextControllerDto = GetContextParameters & {\n readonly useCase: GetContextUseCase;\n};\n\nexport class GetContextController {\n public static readonly fromDto = (dto: GetContextControllerDto) => new GetContextController(dto);\n\n private readonly useCase = this.properties.useCase;\n private constructor(\n private readonly properties: GetContextParameters & {\n useCase: GetContextUseCase;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<LogtoContext> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n const result = await this.useCase({\n cookieHeader: cookieHeader ?? undefined,\n ...this.properties,\n });\n\n return result.context;\n };\n}\n","export const getCookieHeaderFromRequest = (request: Request) => request.headers.get('Cookie');\n","import { GetContextParameters } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter, LogtoContext } from '../../infrastructure/logto';\n\ntype GetContextRequest = GetContextParameters & {\n readonly cookieHeader: string | undefined;\n};\n\ntype GetContextResponse = {\n context: Readonly<LogtoContext>;\n};\n\nexport const makeGetContextUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: GetContextRequest): Promise<GetContextResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.getContext(request);\n\n return {\n context: response.context,\n };\n };\n\nexport type GetContextUseCase = ReturnType<typeof makeGetContextUseCase>;\n","import { LoaderFunction, SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { makeHandleSignIn } from '../handleSignIn';\nimport { makeHandleSignInCallback } from '../handleSignInCallback';\nimport { makeHandleSignOut } from '../handleSignOut';\nimport { HandleAuthRoutesError } from './HandleAuthRoutesError';\n\ntype AuthRouteConfig = {\n readonly path: string;\n readonly redirectBackTo: string;\n};\n\ntype PossibleRouteTypes = 'sign-in' | 'sign-in-callback' | 'sign-out';\n\ntype HandleAuthRoutesDto = Record<PossibleRouteTypes, AuthRouteConfig>;\n\ntype MakeHandleAuthRoutesDto = {\n readonly baseUrl: string;\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleAuthRoutes =\n (deps: MakeHandleAuthRoutesDto) =>\n (dto: HandleAuthRoutesDto): LoaderFunction =>\n async ({ request }) => {\n const anticipatedPath = new URL(request.url).pathname;\n\n /* eslint-disable no-restricted-syntax */\n const configKey = Object.keys(dto).find(\n (type) => dto[type as PossibleRouteTypes].path === anticipatedPath\n ) as keyof HandleAuthRoutesDto;\n\n const configExists = Boolean(configKey);\n /* eslint-enable no-restricted-syntax */\n\n if (!configExists) {\n throw HandleAuthRoutesError.becauseNoConfigForPath(anticipatedPath);\n }\n\n const { sessionStorage, createLogtoAdapter, baseUrl } = deps;\n\n const config = dto[configKey];\n\n switch (configKey) {\n case 'sign-in': {\n const handler = makeHandleSignIn(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n case 'sign-in-callback': {\n const handler = makeHandleSignInCallback(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n case 'sign-out': {\n const handler = makeHandleSignOut(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n default: {\n throw HandleAuthRoutesError.becauseOfUnknownRoute(configKey);\n }\n }\n };\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignInController } from './HandleSignInController';\nimport { makeHandleSignInUseCase } from './HandleSignInUseCase';\n\ntype HandleSignInDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignInDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignIn =\n (dto: HandleSignInDto, deps: HandleSignInDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignInUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignInController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport type { HandleSignInUseCase } from './HandleSignInUseCase';\n\ntype HandleSignInControllerDto = {\n readonly redirectUri: string;\n readonly useCase: HandleSignInUseCase;\n};\n\nexport class HandleSignInController {\n public static readonly fromDto = (dto: HandleSignInControllerDto) =>\n new HandleSignInController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n private constructor(\n private readonly properties: {\n redirectUri: string;\n useCase: HandleSignInUseCase;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n const { redirectUri } = this;\n\n const result = await this.useCase({\n cookieHeader: cookieHeader ?? undefined,\n redirectUri,\n });\n\n return redirect(result.navigateToUrl, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignInRequest = {\n readonly cookieHeader: string | undefined;\n readonly redirectUri: string;\n};\n\ntype SignInResponse = {\n readonly cookieHeader: string;\n readonly navigateToUrl: string;\n};\n\nexport const makeHandleSignInUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignInRequest): Promise<SignInResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignIn({\n redirectUri: request.redirectUri,\n });\n\n const cookieHeader = await sessionStorage.commitSession(response.session);\n\n return {\n cookieHeader,\n navigateToUrl: response.navigateToUrl,\n };\n };\n\nexport type HandleSignInUseCase = ReturnType<typeof makeHandleSignInUseCase>;\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignInCallbackController } from './HandleSignInCallbackController';\nimport { makeHandleSignInCallbackUseCase } from './HandleSignInCallbackUseCase';\n\ntype HandleSignInCallbackDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignInCallbackDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignInCallback =\n (dto: HandleSignInCallbackDto, deps: HandleSignInCallbackDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignInCallbackUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignInCallbackController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport { HandleSignInCallbackError } from './HandleSignInCallbackError';\nimport type { HandleSignInCallbackUseCase } from './HandleSignInCallbackUseCase';\n\ntype HandleSignInCallbackControllerDto = {\n readonly useCase: HandleSignInCallbackUseCase;\n readonly redirectUri: string;\n};\n\nexport class HandleSignInCallbackController {\n public static readonly fromDto = (dto: HandleSignInCallbackControllerDto) =>\n new HandleSignInCallbackController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n\n private constructor(\n private readonly properties: {\n useCase: HandleSignInCallbackUseCase;\n redirectUri: string;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n if (!cookieHeader) {\n throw HandleSignInCallbackError.becauseNoCookieHeaderPresent();\n }\n\n // In some scenarios, like performing the sign-in callback within a Gitpod\n // environment, the load balancer rewrites the URL and uses `http` as the\n // protocol. Here, we make sure that when the `x-forwarded-proto` HTTP header\n // is present, we will replace `http` with `https` in the `callbackUri`.\n const isForwardedHttpsTraffic = request.headers.get('x-forwarded-proto') === 'https';\n\n const callbackUri = isForwardedHttpsTraffic\n ? request.url.replace('http', 'https')\n : request.url;\n\n const result = await this.useCase({\n cookieHeader,\n callbackUri,\n });\n\n return redirect(this.redirectUri, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","export class HandleSignInCallbackError extends Error {\n public static readonly becauseNoCookieHeaderPresent = () =>\n new HandleSignInCallbackError({\n code: 1_665_388_541,\n message: `The authentication sign-in callback route can't be accessed without a valid cookie.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignInCallbackRequest = {\n readonly cookieHeader: string;\n readonly callbackUri: string;\n};\n\ntype SignInCallbackResponse = {\n readonly cookieHeader: string;\n};\n\nexport const makeHandleSignInCallbackUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignInCallbackRequest): Promise<SignInCallbackResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignInCallback({\n callbackUri: request.callbackUri,\n });\n\n const cookieHeader = await sessionStorage.commitSession(response.session);\n\n return {\n cookieHeader,\n };\n };\n\nexport type HandleSignInCallbackUseCase = ReturnType<typeof makeHandleSignInCallbackUseCase>;\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignOutController } from './HandleSignOutController';\nimport { makeHandleSignOutUseCase } from './HandleSignOutUseCase';\n\ntype HandleSignOutDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignOutDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignOut =\n (dto: HandleSignOutDto, deps: HandleSignOutDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignOutUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignOutController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport { HandleSignOutError } from './HandleSignOutError';\nimport type { HandleSignOutUseCase } from './HandleSignOutUseCase';\n\ntype HandleSignOutControllerDto = {\n readonly useCase: HandleSignOutUseCase;\n readonly redirectUri: string;\n};\n\nexport class HandleSignOutController {\n public static readonly fromDto = (dto: HandleSignOutControllerDto) =>\n new HandleSignOutController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n\n private constructor(\n private readonly properties: {\n useCase: HandleSignOutUseCase;\n redirectUri: string;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n if (!cookieHeader) {\n throw HandleSignOutError.becauseNoCookieHeaderPresent();\n }\n\n const result = await this.useCase({\n cookieHeader,\n redirectUri: this.redirectUri,\n });\n\n return redirect(result.navigateToUrl, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","export class HandleSignOutError extends Error {\n public static readonly becauseNoCookieHeaderPresent = () =>\n new HandleSignOutError({\n code: 1_665_388_713,\n message: `The authentication sign-out route can't be accessed without a valid cookie.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignOutRequest = {\n readonly cookieHeader: string | undefined;\n redirectUri: string;\n};\n\ntype SignOutResponse = {\n cookieHeader: string;\n readonly navigateToUrl: string;\n};\n\nexport const makeHandleSignOutUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignOutRequest): Promise<SignOutResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignOut({\n redirectUri: request.redirectUri,\n });\n\n const cookieHeader = await sessionStorage.destroySession(session);\n\n return {\n cookieHeader,\n navigateToUrl: response.navigateToUrl,\n };\n };\n\nexport type HandleSignOutUseCase = ReturnType<typeof makeHandleSignOutUseCase>;\n","export class HandleAuthRoutesError extends Error {\n public static readonly becauseNoConfigForPath = (anticipatedPath: string) =>\n new HandleAuthRoutesError({\n code: 1_665_388_277,\n message: `No configuration available for path \"${anticipatedPath}\".`,\n });\n\n public static readonly becauseOfUnknownRoute = (anticipatedConfigKey: string) =>\n new HandleAuthRoutesError({\n code: 1_665_388_278,\n message: `The config key \"${anticipatedConfigKey}\" is invalid.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"}
1
+ {"mappings":";;;;;;;;;;;AEAA;AAIO,MAAM,4CACX,CAAC,QAAqB,UACtB,+DAA+D;IAC/D,gCAAgC;IAChC,gEAAgE;IAChE,CAAC,WAAkC,IAAM,CAAC,CAAC,GAAK;QAC9C,OAAO,IAAI,CAAA,GAAA,0CAAU,EAAE,QAAQ;qBAAE;sBAAS;QAAS;IACrD;;ADXF;AEGA,MAAM;IACJ,OAAuB,cAAc,CAAC,UAAqB;QACzD,OAAO,IAAI,mCAAa;qBAAE;QAAQ;IACpC,EAAE;IAIF,YACmB,WAGjB;0BAHiB;aAHH,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO;aAQjC,UAAU,OAAO,KAAiB,QAAkB;YAClE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;QACxB;aAEgB,UAAU,OAAO,MAAoB;YACnD,MAAM,aAAa,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YAEpC,IAAI,CAAC,YACH,OAAO,IAAI;YAGb,OAAO,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QACjC;aAEgB,aAAa,OAAO,MAAoB;YACtD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB;aAEgB,OAAO,UAAY;QACjC,mEAAmE;QACrE;IAtBG;AAuBL;AAEO,MAAM,4CAAgB,CAAC,UAAqB,mCAAa,WAAW,CAAC;;;AC9BrE,MAAM,4CACX,CAAC,OACD,OAAO,UAA+D;QACpE,MAAM,WAAE,QAAO,gBAAE,aAAY,EAAE,GAAG;QAElC,MAAM,SAAS;QAEf,MAAM,UAAU,MAAM,OAAO,UAAU,CAAC;QAExC,OAAO;qBACL;QACF;IACF;;;ACPF,MAAM;IACJ,OAAuB,mBAAmB,CAAC,eACzC,IAAI,0CAAoB;YAAE,cAAc,aAAa,YAAY;QAAC,GAAG;IAIvE,YACmB,WAGjB;0BAHiB;aAHX,gBAAgB;IAMrB;IAEH,MAAa,QAAQ,OAA4B,EAAE;QACjD,MAAM,gBAAE,aAAY,EAAE,GAAG,IAAI,CAAC,UAAU;QAExC,MAAM,SAAS,aAAa,CAAC,MAAQ;YACnC,IAAI,CAAC,aAAa,GAAG;QACvB;QAEA,MAAM,OAAO,MAAM,CAAC,QAAQ,WAAW;QAEvC,OAAO;YACL,eAAe,IAAI,CAAC,aAAa;QACnC;IACF;AACF;AAEO,MAAM,4CACX,CAAC,OACD,OAAO,UAAgE;QACrE,MAAM,WAAE,QAAO,gBAAE,aAAY,EAAE,GAAG;QAElC,MAAM,UAAU,0CAAoB,gBAAgB,CAAC;0BAAE;QAAa;QAEpE,MAAM,iBAAE,cAAa,EAAE,GAAG,MAAM,QAAQ,OAAO,CAAC;QAEhD,OAAO;YACL,SAAS,QAAQ,OAAO;2BACxB;QACF;IACF;;;ACzCK,MAAM,4CACX,CAAC,OACD,OAAO,UAAgF;QACrF,MAAM,WAAE,QAAO,gBAAE,aAAY,EAAE,GAAG;QAElC,MAAM,SAAS;QAEf,MAAM,OAAO,oBAAoB,CAAC,QAAQ,WAAW;QAErD,OAAO;YACL,SAAS,QAAQ,OAAO;QAC1B;IACF;;;ACfF,MAAM;IACJ,OAAuB,mBAAmB,CAAC,eACzC,IAAI,2CAAqB;YAAE,cAAc,aAAa,YAAY;QAAC,GAAG;IAIxE,YACmB,WAGjB;0BAHiB;aAHX,gBAAgB;IAMrB;IAEH,MAAa,QAAQ,OAA6B,EAAE;QAClD,MAAM,gBAAE,aAAY,EAAE,GAAG,IAAI,CAAC,UAAU;QAExC,MAAM,SAAS,aAAa,CAAC,MAAQ;YACnC,IAAI,CAAC,aAAa,GAAG;QACvB;QAEA,MAAM,OAAO,OAAO,CAAC,QAAQ,WAAW;QAExC,OAAO;YACL,eAAe,IAAI,CAAC,aAAa;QACnC;IACF;AACF;AAEO,MAAM,4CACX,CAAC,OACD,OAAO,UAAkE;QACvE,MAAM,gBAAE,aAAY,EAAE,GAAG;QAEzB,MAAM,UAAU,2CAAqB,gBAAgB,CAAC;0BAAE;QAAa;QAErE,OAAO,QAAQ,OAAO,CAAC;IACzB;;;ANjCK,MAAM,4CAAmB,CAAC,SAA0C,CAAC,UAAqB;QAC/F,MAAM,UAAU,CAAA,GAAA,yCAAY,EAAE;QAC9B,MAAM,eAAe,CAAA,GAAA,yCAAc,EAAE,QAAQ;QAE7C,OAAO;YACL,cAAc,CAAA,GAAA,yCAAe,EAAE;yBAAE;8BAAS;YAAa;YACvD,sBAAsB,CAAA,GAAA,yCAAuB,EAAE;yBAAE;8BAAS;YAAa;YACvE,eAAe,CAAA,GAAA,yCAAgB,EAAE;8BAAE;YAAa;YAChD,YAAY,CAAA,GAAA,yCAAa,EAAE;yBAAE;8BAAS;YAAa;QACrD;IACF;;ADtBA;AUAO,MAAM,4CAA6B,CAAC,UAAqB,QAAQ,OAAO,CAAC,GAAG,CAAC;;ADApF;AASO,MAAM;IACX,OAAuB,UAAU,CAAC,MAAiC,IAAI,yCAAqB,KAAK;IAGjG,YACmB,WAGjB;0BAHiB;aAFF,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO;aAOlC,UAAU,OAAO,UAA4C;YAC3E,MAAM,eAAe,CAAA,GAAA,yCAAyB,EAAE;YAEhD,MAAM,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC;gBAChC,cAAc,gBAAgB;gBAC9B,GAAG,IAAI,CAAC,UAAU;YACpB;YAEA,OAAO,OAAO,OAAO;QACvB;IAXG;AAYL;;AD7BA;AGaO,MAAM,4CACX,CAAC,OACD,OAAO,UAA4D;QACjE,MAAM,kBAAE,eAAc,sBAAE,mBAAkB,EAAE,GAAG;QAE/C,MAAM,UAAU,MAAM,eAAe,UAAU,CAAC,QAAQ,YAAY;QAEpE,MAAM,QAAQ,mBAAmB;QAEjC,MAAM,WAAW,MAAM,MAAM,UAAU,CAAC;QAExC,OAAO;YACL,SAAS,SAAS,OAAO;QAC3B;IACF;;;AHfK,MAAM,4CACX,CAAC,KAA2B,OAA+B,OAAO,UAAqB;QACrF,MAAM,sBAAE,mBAAkB,kBAAE,eAAc,EAAE,GAAG;QAE/C,MAAM,UAAU,CAAA,GAAA,yCAAoB,EAAE;gCACpC;4BACA;QACF;QAEA,MAAM,aAAa,CAAA,GAAA,wCAAoB,AAAD,EAAE,OAAO,CAAC;qBAC9C;YACA,GAAG,GAAG;QACR;QAEA,OAAO,WAAW,OAAO,CAAC;IAC5B;;;AM3BF;;AAUO,MAAM;IACX,OAAuB,UAAU,CAAC,MAChC,IAAI,0CAAuB;YACzB,SAAS,IAAI,OAAO;YACpB,aAAa,IAAI,WAAW;QAC9B,GAAG;IAIL,YACmB,WAIjB;0BAJiB;aAHF,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO;aACjC,cAAc,IAAI,CAAC,UAAU,CAAC,WAAW;aAQ1C,UAAU,OAAO,UAAoD;YACnF,MAAM,eAAe,CAAA,GAAA,yCAAyB,EAAE;YAChD,MAAM,eAAE,YAAW,EAAE,GAAG,IAAI;YAE5B,MAAM,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC;gBAChC,cAAc,gBAAgB;6BAC9B;YACF;YAEA,OAAO,CAAA,GAAA,4BAAO,EAAE,OAAO,aAAa,EAAE;gBACpC,SAAS;oBACP,cAAc,OAAO,YAAY;gBACnC;YACF;QACF;IAhBG;AAiBL;;ADzCA;AEcO,MAAM,4CACX,CAAC,OACD,OAAO,UAAoD;QACzD,MAAM,kBAAE,eAAc,sBAAE,mBAAkB,EAAE,GAAG;QAE/C,MAAM,UAAU,MAAM,eAAe,UAAU,CAAC,QAAQ,YAAY;QAEpE,MAAM,QAAQ,mBAAmB;QAEjC,MAAM,WAAW,MAAM,MAAM,YAAY,CAAC;YACxC,aAAa,QAAQ,WAAW;QAClC;QAEA,MAAM,eAAe,MAAM,eAAe,aAAa,CAAC,SAAS,OAAO;QAExE,OAAO;0BACL;YACA,eAAe,SAAS,aAAa;QACvC;IACF;;;AFlBK,MAAM,4CACX,CAAC,KAAsB,OAA2B,OAAO,UAAqB;QAC5E,MAAM,sBAAE,mBAAkB,kBAAE,eAAc,EAAE,GAAG;QAE/C,MAAM,UAAU,CAAA,GAAA,yCAAsB,EAAE;gCACtC;4BACA;QACF;QAEA,MAAM,aAAa,CAAA,GAAA,yCAAsB,AAAD,EAAE,OAAO,CAAC;qBAChD;YACA,aAAa,IAAI,cAAc;QACjC;QAEA,OAAO,WAAW,OAAO,CAAC;IAC5B;;AD9BF;AKAA;;ACAO,MAAM,kDAAkC;IAC7C,OAAuB,+BAA+B,IACpD,IAAI,0CAA0B;YAC5B,MAAM;YACN,SAAS,CAAC,mFAAmF,CAAC;QAChG,GAAG;IAML,YACmB,WAKjB;QACA,KAAK,CAAC,CAAC,EAAE,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,WAAW,OAAO,CAAC,CAAC;0BANlC;aALH,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI;aAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK;aAC7B,eAAe,IAAI,CAAC,UAAU,CAAC,OAAO;IAUtD;AACF;;;ADTO,MAAM;IACX,OAAuB,UAAU,CAAC,MAChC,IAAI,0CAA+B;YACjC,SAAS,IAAI,OAAO;YACpB,aAAa,IAAI,WAAW;QAC9B,GAAG;IAKL,YACmB,WAIjB;0BAJiB;aAJF,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO;aACjC,cAAc,IAAI,CAAC,UAAU,CAAC,WAAW;aAS1C,UAAU,OAAO,UAAoD;YACnF,MAAM,eAAe,CAAA,GAAA,yCAAyB,EAAE;YAEhD,IAAI,CAAC,cACH,MAAM,CAAA,GAAA,yCAAwB,EAAE,4BAA4B,GAAG;YAGjE,0EAA0E;YAC1E,yEAAyE;YACzE,6EAA6E;YAC7E,wEAAwE;YACxE,MAAM,0BAA0B,QAAQ,OAAO,CAAC,GAAG,CAAC,yBAAyB;YAE7E,MAAM,cAAc,0BAChB,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,WAC5B,QAAQ,GAAG;YAEf,MAAM,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC;8BAChC;6BACA;YACF;YAEA,OAAO,CAAA,GAAA,4BAAO,EAAE,IAAI,CAAC,WAAW,EAAE;gBAChC,SAAS;oBACP,cAAc,OAAO,YAAY;gBACnC;YACF;QACF;IA7BG;AA8BL;;ADxDA;AGaO,MAAM,4CACX,CAAC,OACD,OAAO,UAAoE;QACzE,MAAM,kBAAE,eAAc,sBAAE,mBAAkB,EAAE,GAAG;QAE/C,MAAM,UAAU,MAAM,eAAe,UAAU,CAAC,QAAQ,YAAY;QAEpE,MAAM,QAAQ,mBAAmB;QAEjC,MAAM,WAAW,MAAM,MAAM,oBAAoB,CAAC;YAChD,aAAa,QAAQ,WAAW;QAClC;QAEA,MAAM,eAAe,MAAM,eAAe,aAAa,CAAC,SAAS,OAAO;QAExE,OAAO;0BACL;QACF;IACF;;;AHhBK,MAAM,4CACX,CAAC,KAA8B,OAAmC,OAAO,UAAqB;QAC5F,MAAM,sBAAE,mBAAkB,kBAAE,eAAc,EAAE,GAAG;QAE/C,MAAM,UAAU,CAAA,GAAA,yCAA8B,EAAE;gCAC9C;4BACA;QACF;QAEA,MAAM,aAAa,CAAA,GAAA,yCAA8B,AAAD,EAAE,OAAO,CAAC;qBACxD;YACA,aAAa,IAAI,cAAc;QACjC;QAEA,OAAO,WAAW,OAAO,CAAC;IAC5B;;;AK9BF;;ACAO,MAAM,kDAA2B;IACtC,OAAuB,+BAA+B,IACpD,IAAI,0CAAmB;YACrB,MAAM;YACN,SAAS,CAAC,2EAA2E,CAAC;QACxF,GAAG;IAML,YACmB,WAKjB;QACA,KAAK,CAAC,CAAC,EAAE,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,WAAW,OAAO,CAAC,CAAC;0BANlC;aALH,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI;aAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK;aAC7B,eAAe,IAAI,CAAC,UAAU,CAAC,OAAO;IAUtD;AACF;;;ADTO,MAAM;IACX,OAAuB,UAAU,CAAC,MAChC,IAAI,0CAAwB;YAC1B,SAAS,IAAI,OAAO;YACpB,aAAa,IAAI,WAAW;QAC9B,GAAG;IAKL,YACmB,WAIjB;0BAJiB;aAJF,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO;aACjC,cAAc,IAAI,CAAC,UAAU,CAAC,WAAW;aAS1C,UAAU,OAAO,UAAoD;YACnF,MAAM,eAAe,CAAA,GAAA,yCAAyB,EAAE;YAEhD,IAAI,CAAC,cACH,MAAM,CAAA,GAAA,yCAAiB,EAAE,4BAA4B,GAAG;YAG1D,MAAM,SAAS,MAAM,IAAI,CAAC,OAAO,CAAC;8BAChC;gBACA,aAAa,IAAI,CAAC,WAAW;YAC/B;YAEA,OAAO,CAAA,GAAA,4BAAO,EAAE,OAAO,aAAa,EAAE;gBACpC,SAAS;oBACP,cAAc,OAAO,YAAY;gBACnC;YACF;QACF;IAnBG;AAoBL;;AD9CA;AGcO,MAAM,4CACX,CAAC,OACD,OAAO,UAAsD;QAC3D,MAAM,kBAAE,eAAc,sBAAE,mBAAkB,EAAE,GAAG;QAE/C,MAAM,UAAU,MAAM,eAAe,UAAU,CAAC,QAAQ,YAAY;QAEpE,MAAM,QAAQ,mBAAmB;QAEjC,MAAM,WAAW,MAAM,MAAM,aAAa,CAAC;YACzC,aAAa,QAAQ,WAAW;QAClC;QAEA,MAAM,eAAe,MAAM,eAAe,cAAc,CAAC;QAEzD,OAAO;0BACL;YACA,eAAe,SAAS,aAAa;QACvC;IACF;;;AHlBK,MAAM,4CACX,CAAC,KAAuB,OAA4B,OAAO,UAAqB;QAC9E,MAAM,sBAAE,mBAAkB,kBAAE,eAAc,EAAE,GAAG;QAE/C,MAAM,UAAU,CAAA,GAAA,yCAAuB,EAAE;gCACvC;4BACA;QACF;QAEA,MAAM,aAAa,CAAA,GAAA,yCAAuB,AAAD,EAAE,OAAO,CAAC;qBACjD;YACA,aAAa,IAAI,cAAc;QACjC;QAEA,OAAO,WAAW,OAAO,CAAC;IAC5B;;;AI9BK,MAAM,kDAA8B;IACzC,OAAuB,yBAAyB,CAAC,kBAC/C,IAAI,0CAAsB;YACxB,MAAM;YACN,SAAS,CAAC,qCAAqC,EAAE,gBAAgB,EAAE,CAAC;QACtE,GAAG;IAEL,OAAuB,wBAAwB,CAAC,uBAC9C,IAAI,0CAAsB;YACxB,MAAM;YACN,SAAS,CAAC,gBAAgB,EAAE,qBAAqB,aAAa,CAAC;QACjE,GAAG;IAML,YACmB,WAKjB;QACA,KAAK,CAAC,CAAC,EAAE,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,WAAW,OAAO,CAAC,CAAC;0BANlC;aALH,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI;aAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK;aAC7B,eAAe,IAAI,CAAC,UAAU,CAAC,OAAO;IAUtD;AACF;;;AZHO,MAAM,4CACX,CAAC,OACD,CAAC,MACD,OAAO,WAAE,QAAO,EAAE,GAAK;YACrB,MAAM,kBAAkB,IAAI,IAAI,QAAQ,GAAG,EAAE,QAAQ;YAErD,uCAAuC,GACvC,MAAM,YAAY,OAAO,IAAI,CAAC,KAAK,IAAI,CACrC,CAAC,OAAS,GAAG,CAAC,KAA2B,CAAC,IAAI,KAAK;YAGrD,MAAM,eAAe,QAAQ;YAC7B,sCAAsC,GAEtC,IAAI,CAAC,cACH,MAAM,CAAA,GAAA,yCAAqB,AAAD,EAAE,sBAAsB,CAAC,iBAAiB;YAGtE,MAAM,kBAAE,eAAc,sBAAE,mBAAkB,WAAE,QAAO,EAAE,GAAG;YAExD,MAAM,SAAS,GAAG,CAAC,UAAU;YAE7B,OAAQ;gBACN,KAAK;oBAAW;wBACd,MAAM,UAAU,CAAA,GAAA,yCAAe,EAC7B;4BACE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,cAAc,CAAC,CAAC;wBACtD,GACA;4CAAE;gDAAgB;wBAAmB;wBAGvC,OAAO,QAAQ;oBACjB;gBAEA,KAAK;oBAAoB;wBACvB,MAAM,UAAU,CAAA,GAAA,yCAAuB,EACrC;4BACE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,cAAc,CAAC,CAAC;wBACtD,GACA;4CAAE;gDAAgB;wBAAmB;wBAGvC,OAAO,QAAQ;oBACjB;gBAEA,KAAK;oBAAY;wBACf,MAAM,UAAU,CAAA,GAAA,yCAAgB,EAC9B;4BACE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,OAAO,cAAc,CAAC,CAAC;wBACtD,GACA;4CAAE;gDAAgB;wBAAmB;wBAGvC,OAAO,QAAQ;oBACjB;gBAEA;oBACE,MAAM,CAAA,GAAA,yCAAoB,EAAE,qBAAqB,CAAC,WAAW;YAEjE;QACF;;;AZxEK,MAAM,4CAAiB,CAC5B,QACA,OAGG;IACH,MAAM,kBAAE,eAAc,EAAE,GAAG;IAE3B,MAAM,WAAE,QAAO,EAAE,GAAG;IAEpB,MAAM,qBAAqB,CAAA,GAAA,yCAAe,EAAE;IAE5C,OAAO,OAAO,MAAM,CAAC;QACnB,kBAAkB,CAAA,GAAA,yCAAmB,EAAE;qBACrC;gCACA;4BACA;QACF;QAEA,YAAY,CAAC,MACX,CAAA,GAAA,yCAAa,EAAE,KAAK;oCAClB;gCACA;YACF;IACJ;AACF","sources":["packages/remix/src/index.ts","packages/remix/src/infrastructure/logto/index.ts","packages/remix/src/infrastructure/logto/create-client.ts","packages/remix/src/infrastructure/logto/create-storage.ts","packages/remix/src/infrastructure/logto/get-context.ts","packages/remix/src/infrastructure/logto/handle-sign-in.ts","packages/remix/src/infrastructure/logto/handle-sign-in-callback.ts","packages/remix/src/infrastructure/logto/handle-sign-out.ts","packages/remix/src/useCases/getContext/index.ts","packages/remix/src/useCases/getContext/GetContextController.ts","packages/remix/src/framework/get-cookie-header-from-request.ts","packages/remix/src/useCases/getContext/GetContextUseCase.ts","packages/remix/src/useCases/handleAuthRoutes/index.ts","packages/remix/src/useCases/handleSignIn/index.ts","packages/remix/src/useCases/handleSignIn/HandleSignInController.ts","packages/remix/src/useCases/handleSignIn/HandleSignInUseCase.ts","packages/remix/src/useCases/handleSignInCallback/index.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackController.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackError.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackUseCase.ts","packages/remix/src/useCases/handleSignOut/index.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutController.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutError.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutUseCase.ts","packages/remix/src/useCases/handleAuthRoutes/HandleAuthRoutesError.ts"],"sourcesContent":["import { GetContextParameters, LogtoConfig } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { makeLogtoAdapter } from './infrastructure/logto';\nimport { makeGetContext } from './useCases/getContext';\nimport { makeHandleAuthRoutes } from './useCases/handleAuthRoutes';\n\ntype Config = Readonly<LogtoConfig> & {\n readonly baseUrl: string;\n};\n\nexport const makeLogtoRemix = (\n config: Config,\n deps: {\n sessionStorage: SessionStorage;\n }\n) => {\n const { sessionStorage } = deps;\n\n const { baseUrl } = config;\n\n const createLogtoAdapter = makeLogtoAdapter(config);\n\n return Object.freeze({\n handleAuthRoutes: makeHandleAuthRoutes({\n baseUrl,\n createLogtoAdapter,\n sessionStorage,\n }),\n\n getContext: (dto: GetContextParameters) =>\n makeGetContext(dto, {\n createLogtoAdapter,\n sessionStorage,\n }),\n });\n};\n\nexport { type LogtoContext } from '@logto/node';\n","import type { LogtoConfig } from '@logto/node';\nimport { Session } from '@remix-run/node';\n\nimport { makeLogtoClient } from './create-client';\nimport { createStorage } from './create-storage';\nimport { makeGetContext } from './get-context';\nimport { makeHandleSignIn } from './handle-sign-in';\nimport { makeHandleSignInCallback } from './handle-sign-in-callback';\nimport { makeHandleSignOut } from './handle-sign-out';\n\ntype MakeLogtoAdapterConfiguration = LogtoConfig;\n\nexport const makeLogtoAdapter = (config: MakeLogtoAdapterConfiguration) => (session: Session) => {\n const storage = createStorage(session);\n const createClient = makeLogtoClient(config, storage);\n\n return {\n handleSignIn: makeHandleSignIn({ storage, createClient }),\n handleSignInCallback: makeHandleSignInCallback({ storage, createClient }),\n handleSignOut: makeHandleSignOut({ createClient }),\n getContext: makeGetContext({ storage, createClient }),\n };\n};\n\nexport type CreateLogtoAdapter = ReturnType<typeof makeLogtoAdapter>;\n\nexport { type LogtoContext } from '@logto/node';\n","import LogtoClient, { LogtoConfig } from '@logto/node';\n\nimport { LogtoStorage } from './create-storage';\n\nexport const makeLogtoClient =\n (config: LogtoConfig, storage: LogtoStorage) =>\n // Have to deactivate the eslint rule here as the `LogtoClient`\n // awaits a `navigate` function.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n (navigate: (url: string) => void = () => {}) => {\n return new LogtoClient(config, { storage, navigate });\n };\n\nexport type CreateLogtoClient = ReturnType<typeof makeLogtoClient>;\n\nexport { type LogtoConfig } from '@logto/node';\n","import { Storage, StorageKey } from '@logto/node';\nimport { Session } from '@remix-run/node';\n\nclass LogtoStorage implements Storage {\n public static readonly fromSession = (session: Session) => {\n return new LogtoStorage({ session });\n };\n\n public readonly session = this.properties.session;\n\n private constructor(\n private readonly properties: {\n session: Session;\n }\n ) {}\n\n public readonly setItem = async (key: StorageKey, value: string) => {\n this.session.set(key, value);\n };\n\n public readonly getItem = async (key: StorageKey) => {\n const itemExists = this.session.has(key);\n\n if (!itemExists) {\n return null;\n }\n\n return String(this.session.get(key));\n };\n\n public readonly removeItem = async (key: StorageKey) => {\n this.session.unset(key);\n };\n\n public readonly save = async () => {\n // Not required as the persistence happens in the integration layer\n };\n}\n\nexport const createStorage = (session: Session) => LogtoStorage.fromSession(session);\n\nexport type { LogtoStorage };\n","import { GetContextParameters, LogtoContext } from '@logto/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype GetContextResponse = {\n readonly context: LogtoContext;\n};\n\nexport const makeGetContext =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: GetContextParameters): Promise<GetContextResponse> => {\n const { storage, createClient } = deps;\n\n const client = createClient();\n\n const context = await client.getContext(request);\n\n return {\n context,\n };\n };\n","import { Session } from '@remix-run/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype HandleSignInRequest = {\n readonly redirectUri: string;\n};\n\ntype HandleSignInResponse = {\n readonly session: Session;\n readonly navigateToUrl: string;\n};\n\nclass HandleSignInCommand {\n public static readonly fromDependencies = (dependencies: { createClient: CreateLogtoClient }) =>\n new HandleSignInCommand({ createClient: dependencies.createClient });\n\n private navigateToUrl = '/api/sign-in';\n\n private constructor(\n private readonly properties: {\n readonly createClient: CreateLogtoClient;\n }\n ) {}\n\n public async execute(request: HandleSignInRequest) {\n const { createClient } = this.properties;\n\n const client = createClient((url) => {\n this.navigateToUrl = url;\n });\n\n await client.signIn(request.redirectUri);\n\n return {\n navigateToUrl: this.navigateToUrl,\n };\n }\n}\n\nexport const makeHandleSignIn =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: HandleSignInRequest): Promise<HandleSignInResponse> => {\n const { storage, createClient } = deps;\n\n const command = HandleSignInCommand.fromDependencies({ createClient });\n\n const { navigateToUrl } = await command.execute(request);\n\n return {\n session: storage.session,\n navigateToUrl,\n };\n };\n","import { Session } from '@remix-run/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype HandleSignInCallbackRequest = {\n callbackUri: string;\n};\n\ntype HandleSignInCallbackResponse = {\n readonly session: Session;\n};\n\nexport const makeHandleSignInCallback =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: HandleSignInCallbackRequest): Promise<HandleSignInCallbackResponse> => {\n const { storage, createClient } = deps;\n\n const client = createClient();\n\n await client.handleSignInCallback(request.callbackUri);\n\n return {\n session: storage.session,\n };\n };\n","import { CreateLogtoClient } from './create-client';\n\ntype HandleSignOutRequest = {\n readonly redirectUri: string;\n};\n\ntype HandleSignOutResponse = {\n readonly navigateToUrl: string;\n};\n\nclass HandleSignOutCommand {\n public static readonly fromDependencies = (dependencies: { createClient: CreateLogtoClient }) =>\n new HandleSignOutCommand({ createClient: dependencies.createClient });\n\n private navigateToUrl = '/api/sign-in';\n\n private constructor(\n private readonly properties: {\n readonly createClient: CreateLogtoClient;\n }\n ) {}\n\n public async execute(request: HandleSignOutRequest) {\n const { createClient } = this.properties;\n\n const client = createClient((url) => {\n this.navigateToUrl = url;\n });\n\n await client.signOut(request.redirectUri);\n\n return {\n navigateToUrl: this.navigateToUrl,\n };\n }\n}\n\nexport const makeHandleSignOut =\n (deps: { createClient: CreateLogtoClient }) =>\n async (request: HandleSignOutRequest): Promise<HandleSignOutResponse> => {\n const { createClient } = deps;\n\n const command = HandleSignOutCommand.fromDependencies({ createClient });\n\n return command.execute(request);\n };\n","import { GetContextParameters } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { GetContextController } from './GetContextController';\nimport { makeGetContextUseCase } from './GetContextUseCase';\n\ntype HandleGetContextDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeGetContext =\n (dto: GetContextParameters, deps: HandleGetContextDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeGetContextUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = GetContextController.fromDto({\n useCase,\n ...dto,\n });\n\n return controller.execute(request);\n };\n","import { GetContextParameters, LogtoContext } from '@logto/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport type { GetContextUseCase } from './GetContextUseCase';\n\ntype GetContextControllerDto = GetContextParameters & {\n readonly useCase: GetContextUseCase;\n};\n\nexport class GetContextController {\n public static readonly fromDto = (dto: GetContextControllerDto) => new GetContextController(dto);\n\n private readonly useCase = this.properties.useCase;\n private constructor(\n private readonly properties: GetContextParameters & {\n useCase: GetContextUseCase;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<LogtoContext> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n const result = await this.useCase({\n cookieHeader: cookieHeader ?? undefined,\n ...this.properties,\n });\n\n return result.context;\n };\n}\n","export const getCookieHeaderFromRequest = (request: Request) => request.headers.get('Cookie');\n","import { GetContextParameters } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter, LogtoContext } from '../../infrastructure/logto';\n\ntype GetContextRequest = GetContextParameters & {\n readonly cookieHeader: string | undefined;\n};\n\ntype GetContextResponse = {\n context: Readonly<LogtoContext>;\n};\n\nexport const makeGetContextUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: GetContextRequest): Promise<GetContextResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.getContext(request);\n\n return {\n context: response.context,\n };\n };\n\nexport type GetContextUseCase = ReturnType<typeof makeGetContextUseCase>;\n","import { LoaderFunction, SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { makeHandleSignIn } from '../handleSignIn';\nimport { makeHandleSignInCallback } from '../handleSignInCallback';\nimport { makeHandleSignOut } from '../handleSignOut';\nimport { HandleAuthRoutesError } from './HandleAuthRoutesError';\n\ntype AuthRouteConfig = {\n readonly path: string;\n readonly redirectBackTo: string;\n};\n\ntype PossibleRouteTypes = 'sign-in' | 'sign-in-callback' | 'sign-out';\n\ntype HandleAuthRoutesDto = Record<PossibleRouteTypes, AuthRouteConfig>;\n\ntype MakeHandleAuthRoutesDto = {\n readonly baseUrl: string;\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleAuthRoutes =\n (deps: MakeHandleAuthRoutesDto) =>\n (dto: HandleAuthRoutesDto): LoaderFunction =>\n async ({ request }) => {\n const anticipatedPath = new URL(request.url).pathname;\n\n /* eslint-disable no-restricted-syntax */\n const configKey = Object.keys(dto).find(\n (type) => dto[type as PossibleRouteTypes].path === anticipatedPath\n ) as keyof HandleAuthRoutesDto;\n\n const configExists = Boolean(configKey);\n /* eslint-enable no-restricted-syntax */\n\n if (!configExists) {\n throw HandleAuthRoutesError.becauseNoConfigForPath(anticipatedPath);\n }\n\n const { sessionStorage, createLogtoAdapter, baseUrl } = deps;\n\n const config = dto[configKey];\n\n switch (configKey) {\n case 'sign-in': {\n const handler = makeHandleSignIn(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n case 'sign-in-callback': {\n const handler = makeHandleSignInCallback(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n case 'sign-out': {\n const handler = makeHandleSignOut(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n default: {\n throw HandleAuthRoutesError.becauseOfUnknownRoute(configKey);\n }\n }\n };\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignInController } from './HandleSignInController';\nimport { makeHandleSignInUseCase } from './HandleSignInUseCase';\n\ntype HandleSignInDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignInDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignIn =\n (dto: HandleSignInDto, deps: HandleSignInDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignInUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignInController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport type { HandleSignInUseCase } from './HandleSignInUseCase';\n\ntype HandleSignInControllerDto = {\n readonly redirectUri: string;\n readonly useCase: HandleSignInUseCase;\n};\n\nexport class HandleSignInController {\n public static readonly fromDto = (dto: HandleSignInControllerDto) =>\n new HandleSignInController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n private constructor(\n private readonly properties: {\n redirectUri: string;\n useCase: HandleSignInUseCase;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n const { redirectUri } = this;\n\n const result = await this.useCase({\n cookieHeader: cookieHeader ?? undefined,\n redirectUri,\n });\n\n return redirect(result.navigateToUrl, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignInRequest = {\n readonly cookieHeader: string | undefined;\n readonly redirectUri: string;\n};\n\ntype SignInResponse = {\n readonly cookieHeader: string;\n readonly navigateToUrl: string;\n};\n\nexport const makeHandleSignInUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignInRequest): Promise<SignInResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignIn({\n redirectUri: request.redirectUri,\n });\n\n const cookieHeader = await sessionStorage.commitSession(response.session);\n\n return {\n cookieHeader,\n navigateToUrl: response.navigateToUrl,\n };\n };\n\nexport type HandleSignInUseCase = ReturnType<typeof makeHandleSignInUseCase>;\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignInCallbackController } from './HandleSignInCallbackController';\nimport { makeHandleSignInCallbackUseCase } from './HandleSignInCallbackUseCase';\n\ntype HandleSignInCallbackDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignInCallbackDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignInCallback =\n (dto: HandleSignInCallbackDto, deps: HandleSignInCallbackDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignInCallbackUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignInCallbackController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport { HandleSignInCallbackError } from './HandleSignInCallbackError';\nimport type { HandleSignInCallbackUseCase } from './HandleSignInCallbackUseCase';\n\ntype HandleSignInCallbackControllerDto = {\n readonly useCase: HandleSignInCallbackUseCase;\n readonly redirectUri: string;\n};\n\nexport class HandleSignInCallbackController {\n public static readonly fromDto = (dto: HandleSignInCallbackControllerDto) =>\n new HandleSignInCallbackController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n\n private constructor(\n private readonly properties: {\n useCase: HandleSignInCallbackUseCase;\n redirectUri: string;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n if (!cookieHeader) {\n throw HandleSignInCallbackError.becauseNoCookieHeaderPresent();\n }\n\n // In some scenarios, like performing the sign-in callback within a Gitpod\n // environment, the load balancer rewrites the URL and uses `http` as the\n // protocol. Here, we make sure that when the `x-forwarded-proto` HTTP header\n // is present, we will replace `http` with `https` in the `callbackUri`.\n const isForwardedHttpsTraffic = request.headers.get('x-forwarded-proto') === 'https';\n\n const callbackUri = isForwardedHttpsTraffic\n ? request.url.replace('http', 'https')\n : request.url;\n\n const result = await this.useCase({\n cookieHeader,\n callbackUri,\n });\n\n return redirect(this.redirectUri, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","export class HandleSignInCallbackError extends Error {\n public static readonly becauseNoCookieHeaderPresent = () =>\n new HandleSignInCallbackError({\n code: 1_665_388_541,\n message: `The authentication sign-in callback route can't be accessed without a valid cookie.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignInCallbackRequest = {\n readonly cookieHeader: string;\n readonly callbackUri: string;\n};\n\ntype SignInCallbackResponse = {\n readonly cookieHeader: string;\n};\n\nexport const makeHandleSignInCallbackUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignInCallbackRequest): Promise<SignInCallbackResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignInCallback({\n callbackUri: request.callbackUri,\n });\n\n const cookieHeader = await sessionStorage.commitSession(response.session);\n\n return {\n cookieHeader,\n };\n };\n\nexport type HandleSignInCallbackUseCase = ReturnType<typeof makeHandleSignInCallbackUseCase>;\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignOutController } from './HandleSignOutController';\nimport { makeHandleSignOutUseCase } from './HandleSignOutUseCase';\n\ntype HandleSignOutDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignOutDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignOut =\n (dto: HandleSignOutDto, deps: HandleSignOutDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignOutUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignOutController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport { HandleSignOutError } from './HandleSignOutError';\nimport type { HandleSignOutUseCase } from './HandleSignOutUseCase';\n\ntype HandleSignOutControllerDto = {\n readonly useCase: HandleSignOutUseCase;\n readonly redirectUri: string;\n};\n\nexport class HandleSignOutController {\n public static readonly fromDto = (dto: HandleSignOutControllerDto) =>\n new HandleSignOutController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n\n private constructor(\n private readonly properties: {\n useCase: HandleSignOutUseCase;\n redirectUri: string;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n if (!cookieHeader) {\n throw HandleSignOutError.becauseNoCookieHeaderPresent();\n }\n\n const result = await this.useCase({\n cookieHeader,\n redirectUri: this.redirectUri,\n });\n\n return redirect(result.navigateToUrl, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","export class HandleSignOutError extends Error {\n public static readonly becauseNoCookieHeaderPresent = () =>\n new HandleSignOutError({\n code: 1_665_388_713,\n message: `The authentication sign-out route can't be accessed without a valid cookie.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignOutRequest = {\n readonly cookieHeader: string | undefined;\n redirectUri: string;\n};\n\ntype SignOutResponse = {\n cookieHeader: string;\n readonly navigateToUrl: string;\n};\n\nexport const makeHandleSignOutUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignOutRequest): Promise<SignOutResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignOut({\n redirectUri: request.redirectUri,\n });\n\n const cookieHeader = await sessionStorage.destroySession(session);\n\n return {\n cookieHeader,\n navigateToUrl: response.navigateToUrl,\n };\n };\n\nexport type HandleSignOutUseCase = ReturnType<typeof makeHandleSignOutUseCase>;\n","export class HandleAuthRoutesError extends Error {\n public static readonly becauseNoConfigForPath = (anticipatedPath: string) =>\n new HandleAuthRoutesError({\n code: 1_665_388_277,\n message: `No configuration available for path \"${anticipatedPath}\".`,\n });\n\n public static readonly becauseOfUnknownRoute = (anticipatedConfigKey: string) =>\n new HandleAuthRoutesError({\n code: 1_665_388_278,\n message: `The config key \"${anticipatedConfigKey}\" is invalid.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"}
package/lib/module.mjs CHANGED
@@ -434,23 +434,23 @@ const $1043eb6460a48bdc$export$d6e32a8c2b1ad7f3 = (deps)=>(dto)=>async ({ reques
434
434
  }
435
435
  case "sign-in-callback":
436
436
  {
437
- const handler1 = (0, $ac2413e7e33dffd6$export$9c07365b51e93ba3)({
437
+ const handler = (0, $ac2413e7e33dffd6$export$9c07365b51e93ba3)({
438
438
  redirectBackTo: `${baseUrl}${config.redirectBackTo}`
439
439
  }, {
440
440
  sessionStorage: sessionStorage,
441
441
  createLogtoAdapter: createLogtoAdapter
442
442
  });
443
- return handler1(request);
443
+ return handler(request);
444
444
  }
445
445
  case "sign-out":
446
446
  {
447
- const handler2 = (0, $8b8766e059fbc2db$export$89f18ff1488dade0)({
447
+ const handler = (0, $8b8766e059fbc2db$export$89f18ff1488dade0)({
448
448
  redirectBackTo: `${baseUrl}${config.redirectBackTo}`
449
449
  }, {
450
450
  sessionStorage: sessionStorage,
451
451
  createLogtoAdapter: createLogtoAdapter
452
452
  });
453
- return handler2(request);
453
+ return handler(request);
454
454
  }
455
455
  default:
456
456
  throw (0, $2c6f4bda3966e0b7$export$fcbf49abe9908796).becauseOfUnknownRoute(configKey);
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/remix/src/index.ts","packages/remix/src/infrastructure/logto/index.ts","packages/remix/src/infrastructure/logto/create-client.ts","packages/remix/src/infrastructure/logto/create-storage.ts","packages/remix/src/infrastructure/logto/get-context.ts","packages/remix/src/infrastructure/logto/handle-sign-in.ts","packages/remix/src/infrastructure/logto/handle-sign-in-callback.ts","packages/remix/src/infrastructure/logto/handle-sign-out.ts","packages/remix/src/useCases/getContext/index.ts","packages/remix/src/useCases/getContext/GetContextController.ts","packages/remix/src/framework/get-cookie-header-from-request.ts","packages/remix/src/useCases/getContext/GetContextUseCase.ts","packages/remix/src/useCases/handleAuthRoutes/index.ts","packages/remix/src/useCases/handleSignIn/index.ts","packages/remix/src/useCases/handleSignIn/HandleSignInController.ts","packages/remix/src/useCases/handleSignIn/HandleSignInUseCase.ts","packages/remix/src/useCases/handleSignInCallback/index.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackController.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackError.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackUseCase.ts","packages/remix/src/useCases/handleSignOut/index.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutController.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutError.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutUseCase.ts","packages/remix/src/useCases/handleAuthRoutes/HandleAuthRoutesError.ts"],"sourcesContent":["import { GetContextParameters, LogtoConfig } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { makeLogtoAdapter } from './infrastructure/logto';\nimport { makeGetContext } from './useCases/getContext';\nimport { makeHandleAuthRoutes } from './useCases/handleAuthRoutes';\n\ntype Config = Readonly<LogtoConfig> & {\n readonly baseUrl: string;\n};\n\nexport const makeLogtoRemix = (\n config: Config,\n deps: {\n sessionStorage: SessionStorage;\n }\n) => {\n const { sessionStorage } = deps;\n\n const { baseUrl } = config;\n\n const createLogtoAdapter = makeLogtoAdapter(config);\n\n return Object.freeze({\n handleAuthRoutes: makeHandleAuthRoutes({\n baseUrl,\n createLogtoAdapter,\n sessionStorage,\n }),\n\n getContext: (dto: GetContextParameters) =>\n makeGetContext(dto, {\n createLogtoAdapter,\n sessionStorage,\n }),\n });\n};\n\nexport { type LogtoContext } from '@logto/node';\n","import type { LogtoConfig } from '@logto/node';\nimport { Session } from '@remix-run/node';\n\nimport { makeLogtoClient } from './create-client';\nimport { createStorage } from './create-storage';\nimport { makeGetContext } from './get-context';\nimport { makeHandleSignIn } from './handle-sign-in';\nimport { makeHandleSignInCallback } from './handle-sign-in-callback';\nimport { makeHandleSignOut } from './handle-sign-out';\n\ntype MakeLogtoAdapterConfiguration = LogtoConfig;\n\nexport const makeLogtoAdapter = (config: MakeLogtoAdapterConfiguration) => (session: Session) => {\n const storage = createStorage(session);\n const createClient = makeLogtoClient(config, storage);\n\n return {\n handleSignIn: makeHandleSignIn({ storage, createClient }),\n handleSignInCallback: makeHandleSignInCallback({ storage, createClient }),\n handleSignOut: makeHandleSignOut({ createClient }),\n getContext: makeGetContext({ storage, createClient }),\n };\n};\n\nexport type CreateLogtoAdapter = ReturnType<typeof makeLogtoAdapter>;\n\nexport { type LogtoContext } from '@logto/node';\n","import LogtoClient, { LogtoConfig } from '@logto/node';\n\nimport { LogtoStorage } from './create-storage';\n\nexport const makeLogtoClient =\n (config: LogtoConfig, storage: LogtoStorage) =>\n // Have to deactivate the eslint rule here as the `LogtoClient`\n // awaits a `navigate` function.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n (navigate: (url: string) => void = () => {}) => {\n return new LogtoClient(config, { storage, navigate });\n };\n\nexport type CreateLogtoClient = ReturnType<typeof makeLogtoClient>;\n\nexport { type LogtoConfig } from '@logto/node';\n","import { Storage, StorageKey } from '@logto/node';\nimport { Session } from '@remix-run/node';\n\nclass LogtoStorage implements Storage {\n public static readonly fromSession = (session: Session) => {\n return new LogtoStorage({ session });\n };\n\n public readonly session = this.properties.session;\n\n private constructor(\n private readonly properties: {\n session: Session;\n }\n ) {}\n\n public readonly setItem = async (key: StorageKey, value: string) => {\n this.session.set(key, value);\n };\n\n public readonly getItem = async (key: StorageKey) => {\n const itemExists = this.session.has(key);\n\n if (!itemExists) {\n return null;\n }\n\n return String(this.session.get(key));\n };\n\n public readonly removeItem = async (key: StorageKey) => {\n this.session.unset(key);\n };\n\n public readonly save = async () => {\n // Not required as the persistence happens in the integration layer\n };\n}\n\nexport const createStorage = (session: Session) => LogtoStorage.fromSession(session);\n\nexport type { LogtoStorage };\n","import { GetContextParameters, LogtoContext } from '@logto/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype GetContextResponse = {\n readonly context: LogtoContext;\n};\n\nexport const makeGetContext =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: GetContextParameters): Promise<GetContextResponse> => {\n const { storage, createClient } = deps;\n\n const client = createClient();\n\n const context = await client.getContext(request);\n\n return {\n context,\n };\n };\n","import { Session } from '@remix-run/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype HandleSignInRequest = {\n readonly redirectUri: string;\n};\n\ntype HandleSignInResponse = {\n readonly session: Session;\n readonly navigateToUrl: string;\n};\n\nclass HandleSignInCommand {\n public static readonly fromDependencies = (dependencies: { createClient: CreateLogtoClient }) =>\n new HandleSignInCommand({ createClient: dependencies.createClient });\n\n private navigateToUrl = '/api/sign-in';\n\n private constructor(\n private readonly properties: {\n readonly createClient: CreateLogtoClient;\n }\n ) {}\n\n public async execute(request: HandleSignInRequest) {\n const { createClient } = this.properties;\n\n const client = createClient((url) => {\n this.navigateToUrl = url;\n });\n\n await client.signIn(request.redirectUri);\n\n return {\n navigateToUrl: this.navigateToUrl,\n };\n }\n}\n\nexport const makeHandleSignIn =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: HandleSignInRequest): Promise<HandleSignInResponse> => {\n const { storage, createClient } = deps;\n\n const command = HandleSignInCommand.fromDependencies({ createClient });\n\n const { navigateToUrl } = await command.execute(request);\n\n return {\n session: storage.session,\n navigateToUrl,\n };\n };\n","import { Session } from '@remix-run/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype HandleSignInCallbackRequest = {\n callbackUri: string;\n};\n\ntype HandleSignInCallbackResponse = {\n readonly session: Session;\n};\n\nexport const makeHandleSignInCallback =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: HandleSignInCallbackRequest): Promise<HandleSignInCallbackResponse> => {\n const { storage, createClient } = deps;\n\n const client = createClient();\n\n await client.handleSignInCallback(request.callbackUri);\n\n return {\n session: storage.session,\n };\n };\n","import { CreateLogtoClient } from './create-client';\n\ntype HandleSignOutRequest = {\n readonly redirectUri: string;\n};\n\ntype HandleSignOutResponse = {\n readonly navigateToUrl: string;\n};\n\nclass HandleSignOutCommand {\n public static readonly fromDependencies = (dependencies: { createClient: CreateLogtoClient }) =>\n new HandleSignOutCommand({ createClient: dependencies.createClient });\n\n private navigateToUrl = '/api/sign-in';\n\n private constructor(\n private readonly properties: {\n readonly createClient: CreateLogtoClient;\n }\n ) {}\n\n public async execute(request: HandleSignOutRequest) {\n const { createClient } = this.properties;\n\n const client = createClient((url) => {\n this.navigateToUrl = url;\n });\n\n await client.signOut(request.redirectUri);\n\n return {\n navigateToUrl: this.navigateToUrl,\n };\n }\n}\n\nexport const makeHandleSignOut =\n (deps: { createClient: CreateLogtoClient }) =>\n async (request: HandleSignOutRequest): Promise<HandleSignOutResponse> => {\n const { createClient } = deps;\n\n const command = HandleSignOutCommand.fromDependencies({ createClient });\n\n return command.execute(request);\n };\n","import { GetContextParameters } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { GetContextController } from './GetContextController';\nimport { makeGetContextUseCase } from './GetContextUseCase';\n\ntype HandleGetContextDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeGetContext =\n (dto: GetContextParameters, deps: HandleGetContextDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeGetContextUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = GetContextController.fromDto({\n useCase,\n ...dto,\n });\n\n return controller.execute(request);\n };\n","import { GetContextParameters, LogtoContext } from '@logto/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport type { GetContextUseCase } from './GetContextUseCase';\n\ntype GetContextControllerDto = GetContextParameters & {\n readonly useCase: GetContextUseCase;\n};\n\nexport class GetContextController {\n public static readonly fromDto = (dto: GetContextControllerDto) => new GetContextController(dto);\n\n private readonly useCase = this.properties.useCase;\n private constructor(\n private readonly properties: GetContextParameters & {\n useCase: GetContextUseCase;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<LogtoContext> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n const result = await this.useCase({\n cookieHeader: cookieHeader ?? undefined,\n ...this.properties,\n });\n\n return result.context;\n };\n}\n","export const getCookieHeaderFromRequest = (request: Request) => request.headers.get('Cookie');\n","import { GetContextParameters } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter, LogtoContext } from '../../infrastructure/logto';\n\ntype GetContextRequest = GetContextParameters & {\n readonly cookieHeader: string | undefined;\n};\n\ntype GetContextResponse = {\n context: Readonly<LogtoContext>;\n};\n\nexport const makeGetContextUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: GetContextRequest): Promise<GetContextResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.getContext(request);\n\n return {\n context: response.context,\n };\n };\n\nexport type GetContextUseCase = ReturnType<typeof makeGetContextUseCase>;\n","import { LoaderFunction, SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { makeHandleSignIn } from '../handleSignIn';\nimport { makeHandleSignInCallback } from '../handleSignInCallback';\nimport { makeHandleSignOut } from '../handleSignOut';\nimport { HandleAuthRoutesError } from './HandleAuthRoutesError';\n\ntype AuthRouteConfig = {\n readonly path: string;\n readonly redirectBackTo: string;\n};\n\ntype PossibleRouteTypes = 'sign-in' | 'sign-in-callback' | 'sign-out';\n\ntype HandleAuthRoutesDto = Record<PossibleRouteTypes, AuthRouteConfig>;\n\ntype MakeHandleAuthRoutesDto = {\n readonly baseUrl: string;\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleAuthRoutes =\n (deps: MakeHandleAuthRoutesDto) =>\n (dto: HandleAuthRoutesDto): LoaderFunction =>\n async ({ request }) => {\n const anticipatedPath = new URL(request.url).pathname;\n\n /* eslint-disable no-restricted-syntax */\n const configKey = Object.keys(dto).find(\n (type) => dto[type as PossibleRouteTypes].path === anticipatedPath\n ) as keyof HandleAuthRoutesDto;\n\n const configExists = Boolean(configKey);\n /* eslint-enable no-restricted-syntax */\n\n if (!configExists) {\n throw HandleAuthRoutesError.becauseNoConfigForPath(anticipatedPath);\n }\n\n const { sessionStorage, createLogtoAdapter, baseUrl } = deps;\n\n const config = dto[configKey];\n\n switch (configKey) {\n case 'sign-in': {\n const handler = makeHandleSignIn(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n case 'sign-in-callback': {\n const handler = makeHandleSignInCallback(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n case 'sign-out': {\n const handler = makeHandleSignOut(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n default: {\n throw HandleAuthRoutesError.becauseOfUnknownRoute(configKey);\n }\n }\n };\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignInController } from './HandleSignInController';\nimport { makeHandleSignInUseCase } from './HandleSignInUseCase';\n\ntype HandleSignInDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignInDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignIn =\n (dto: HandleSignInDto, deps: HandleSignInDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignInUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignInController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport type { HandleSignInUseCase } from './HandleSignInUseCase';\n\ntype HandleSignInControllerDto = {\n readonly redirectUri: string;\n readonly useCase: HandleSignInUseCase;\n};\n\nexport class HandleSignInController {\n public static readonly fromDto = (dto: HandleSignInControllerDto) =>\n new HandleSignInController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n private constructor(\n private readonly properties: {\n redirectUri: string;\n useCase: HandleSignInUseCase;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n const { redirectUri } = this;\n\n const result = await this.useCase({\n cookieHeader: cookieHeader ?? undefined,\n redirectUri,\n });\n\n return redirect(result.navigateToUrl, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignInRequest = {\n readonly cookieHeader: string | undefined;\n readonly redirectUri: string;\n};\n\ntype SignInResponse = {\n readonly cookieHeader: string;\n readonly navigateToUrl: string;\n};\n\nexport const makeHandleSignInUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignInRequest): Promise<SignInResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignIn({\n redirectUri: request.redirectUri,\n });\n\n const cookieHeader = await sessionStorage.commitSession(response.session);\n\n return {\n cookieHeader,\n navigateToUrl: response.navigateToUrl,\n };\n };\n\nexport type HandleSignInUseCase = ReturnType<typeof makeHandleSignInUseCase>;\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignInCallbackController } from './HandleSignInCallbackController';\nimport { makeHandleSignInCallbackUseCase } from './HandleSignInCallbackUseCase';\n\ntype HandleSignInCallbackDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignInCallbackDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignInCallback =\n (dto: HandleSignInCallbackDto, deps: HandleSignInCallbackDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignInCallbackUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignInCallbackController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport { HandleSignInCallbackError } from './HandleSignInCallbackError';\nimport type { HandleSignInCallbackUseCase } from './HandleSignInCallbackUseCase';\n\ntype HandleSignInCallbackControllerDto = {\n readonly useCase: HandleSignInCallbackUseCase;\n readonly redirectUri: string;\n};\n\nexport class HandleSignInCallbackController {\n public static readonly fromDto = (dto: HandleSignInCallbackControllerDto) =>\n new HandleSignInCallbackController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n\n private constructor(\n private readonly properties: {\n useCase: HandleSignInCallbackUseCase;\n redirectUri: string;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n if (!cookieHeader) {\n throw HandleSignInCallbackError.becauseNoCookieHeaderPresent();\n }\n\n // In some scenarios, like performing the sign-in callback within a Gitpod\n // environment, the load balancer rewrites the URL and uses `http` as the\n // protocol. Here, we make sure that when the `x-forwarded-proto` HTTP header\n // is present, we will replace `http` with `https` in the `callbackUri`.\n const isForwardedHttpsTraffic = request.headers.get('x-forwarded-proto') === 'https';\n\n const callbackUri = isForwardedHttpsTraffic\n ? request.url.replace('http', 'https')\n : request.url;\n\n const result = await this.useCase({\n cookieHeader,\n callbackUri,\n });\n\n return redirect(this.redirectUri, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","export class HandleSignInCallbackError extends Error {\n public static readonly becauseNoCookieHeaderPresent = () =>\n new HandleSignInCallbackError({\n code: 1_665_388_541,\n message: `The authentication sign-in callback route can't be accessed without a valid cookie.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignInCallbackRequest = {\n readonly cookieHeader: string;\n readonly callbackUri: string;\n};\n\ntype SignInCallbackResponse = {\n readonly cookieHeader: string;\n};\n\nexport const makeHandleSignInCallbackUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignInCallbackRequest): Promise<SignInCallbackResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignInCallback({\n callbackUri: request.callbackUri,\n });\n\n const cookieHeader = await sessionStorage.commitSession(response.session);\n\n return {\n cookieHeader,\n };\n };\n\nexport type HandleSignInCallbackUseCase = ReturnType<typeof makeHandleSignInCallbackUseCase>;\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignOutController } from './HandleSignOutController';\nimport { makeHandleSignOutUseCase } from './HandleSignOutUseCase';\n\ntype HandleSignOutDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignOutDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignOut =\n (dto: HandleSignOutDto, deps: HandleSignOutDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignOutUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignOutController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport { HandleSignOutError } from './HandleSignOutError';\nimport type { HandleSignOutUseCase } from './HandleSignOutUseCase';\n\ntype HandleSignOutControllerDto = {\n readonly useCase: HandleSignOutUseCase;\n readonly redirectUri: string;\n};\n\nexport class HandleSignOutController {\n public static readonly fromDto = (dto: HandleSignOutControllerDto) =>\n new HandleSignOutController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n\n private constructor(\n private readonly properties: {\n useCase: HandleSignOutUseCase;\n redirectUri: string;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n if (!cookieHeader) {\n throw HandleSignOutError.becauseNoCookieHeaderPresent();\n }\n\n const result = await this.useCase({\n cookieHeader,\n redirectUri: this.redirectUri,\n });\n\n return redirect(result.navigateToUrl, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","export class HandleSignOutError extends Error {\n public static readonly becauseNoCookieHeaderPresent = () =>\n new HandleSignOutError({\n code: 1_665_388_713,\n message: `The authentication sign-out route can't be accessed without a valid cookie.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignOutRequest = {\n readonly cookieHeader: string | undefined;\n redirectUri: string;\n};\n\ntype SignOutResponse = {\n cookieHeader: string;\n readonly navigateToUrl: string;\n};\n\nexport const makeHandleSignOutUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignOutRequest): Promise<SignOutResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignOut({\n redirectUri: request.redirectUri,\n });\n\n const cookieHeader = await sessionStorage.destroySession(session);\n\n return {\n cookieHeader,\n navigateToUrl: response.navigateToUrl,\n };\n };\n\nexport type HandleSignOutUseCase = ReturnType<typeof makeHandleSignOutUseCase>;\n","export class HandleAuthRoutesError extends Error {\n public static readonly becauseNoConfigForPath = (anticipatedPath: string) =>\n new HandleAuthRoutesError({\n code: 1_665_388_277,\n message: `No configuration available for path \"${anticipatedPath}\".`,\n });\n\n public static readonly becauseOfUnknownRoute = (anticipatedConfigKey: string) =>\n new HandleAuthRoutesError({\n code: 1_665_388_278,\n message: `The config key \"${anticipatedConfigKey}\" is invalid.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n"],"names":[],"version":3,"file":"module.mjs.map"}
1
+ {"mappings":"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","sources":["packages/remix/src/index.ts","packages/remix/src/infrastructure/logto/index.ts","packages/remix/src/infrastructure/logto/create-client.ts","packages/remix/src/infrastructure/logto/create-storage.ts","packages/remix/src/infrastructure/logto/get-context.ts","packages/remix/src/infrastructure/logto/handle-sign-in.ts","packages/remix/src/infrastructure/logto/handle-sign-in-callback.ts","packages/remix/src/infrastructure/logto/handle-sign-out.ts","packages/remix/src/useCases/getContext/index.ts","packages/remix/src/useCases/getContext/GetContextController.ts","packages/remix/src/framework/get-cookie-header-from-request.ts","packages/remix/src/useCases/getContext/GetContextUseCase.ts","packages/remix/src/useCases/handleAuthRoutes/index.ts","packages/remix/src/useCases/handleSignIn/index.ts","packages/remix/src/useCases/handleSignIn/HandleSignInController.ts","packages/remix/src/useCases/handleSignIn/HandleSignInUseCase.ts","packages/remix/src/useCases/handleSignInCallback/index.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackController.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackError.ts","packages/remix/src/useCases/handleSignInCallback/HandleSignInCallbackUseCase.ts","packages/remix/src/useCases/handleSignOut/index.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutController.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutError.ts","packages/remix/src/useCases/handleSignOut/HandleSignOutUseCase.ts","packages/remix/src/useCases/handleAuthRoutes/HandleAuthRoutesError.ts"],"sourcesContent":["import { GetContextParameters, LogtoConfig } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { makeLogtoAdapter } from './infrastructure/logto';\nimport { makeGetContext } from './useCases/getContext';\nimport { makeHandleAuthRoutes } from './useCases/handleAuthRoutes';\n\ntype Config = Readonly<LogtoConfig> & {\n readonly baseUrl: string;\n};\n\nexport const makeLogtoRemix = (\n config: Config,\n deps: {\n sessionStorage: SessionStorage;\n }\n) => {\n const { sessionStorage } = deps;\n\n const { baseUrl } = config;\n\n const createLogtoAdapter = makeLogtoAdapter(config);\n\n return Object.freeze({\n handleAuthRoutes: makeHandleAuthRoutes({\n baseUrl,\n createLogtoAdapter,\n sessionStorage,\n }),\n\n getContext: (dto: GetContextParameters) =>\n makeGetContext(dto, {\n createLogtoAdapter,\n sessionStorage,\n }),\n });\n};\n\nexport { type LogtoContext } from '@logto/node';\n","import type { LogtoConfig } from '@logto/node';\nimport { Session } from '@remix-run/node';\n\nimport { makeLogtoClient } from './create-client';\nimport { createStorage } from './create-storage';\nimport { makeGetContext } from './get-context';\nimport { makeHandleSignIn } from './handle-sign-in';\nimport { makeHandleSignInCallback } from './handle-sign-in-callback';\nimport { makeHandleSignOut } from './handle-sign-out';\n\ntype MakeLogtoAdapterConfiguration = LogtoConfig;\n\nexport const makeLogtoAdapter = (config: MakeLogtoAdapterConfiguration) => (session: Session) => {\n const storage = createStorage(session);\n const createClient = makeLogtoClient(config, storage);\n\n return {\n handleSignIn: makeHandleSignIn({ storage, createClient }),\n handleSignInCallback: makeHandleSignInCallback({ storage, createClient }),\n handleSignOut: makeHandleSignOut({ createClient }),\n getContext: makeGetContext({ storage, createClient }),\n };\n};\n\nexport type CreateLogtoAdapter = ReturnType<typeof makeLogtoAdapter>;\n\nexport { type LogtoContext } from '@logto/node';\n","import LogtoClient, { LogtoConfig } from '@logto/node';\n\nimport { LogtoStorage } from './create-storage';\n\nexport const makeLogtoClient =\n (config: LogtoConfig, storage: LogtoStorage) =>\n // Have to deactivate the eslint rule here as the `LogtoClient`\n // awaits a `navigate` function.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n (navigate: (url: string) => void = () => {}) => {\n return new LogtoClient(config, { storage, navigate });\n };\n\nexport type CreateLogtoClient = ReturnType<typeof makeLogtoClient>;\n\nexport { type LogtoConfig } from '@logto/node';\n","import { Storage, StorageKey } from '@logto/node';\nimport { Session } from '@remix-run/node';\n\nclass LogtoStorage implements Storage {\n public static readonly fromSession = (session: Session) => {\n return new LogtoStorage({ session });\n };\n\n public readonly session = this.properties.session;\n\n private constructor(\n private readonly properties: {\n session: Session;\n }\n ) {}\n\n public readonly setItem = async (key: StorageKey, value: string) => {\n this.session.set(key, value);\n };\n\n public readonly getItem = async (key: StorageKey) => {\n const itemExists = this.session.has(key);\n\n if (!itemExists) {\n return null;\n }\n\n return String(this.session.get(key));\n };\n\n public readonly removeItem = async (key: StorageKey) => {\n this.session.unset(key);\n };\n\n public readonly save = async () => {\n // Not required as the persistence happens in the integration layer\n };\n}\n\nexport const createStorage = (session: Session) => LogtoStorage.fromSession(session);\n\nexport type { LogtoStorage };\n","import { GetContextParameters, LogtoContext } from '@logto/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype GetContextResponse = {\n readonly context: LogtoContext;\n};\n\nexport const makeGetContext =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: GetContextParameters): Promise<GetContextResponse> => {\n const { storage, createClient } = deps;\n\n const client = createClient();\n\n const context = await client.getContext(request);\n\n return {\n context,\n };\n };\n","import { Session } from '@remix-run/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype HandleSignInRequest = {\n readonly redirectUri: string;\n};\n\ntype HandleSignInResponse = {\n readonly session: Session;\n readonly navigateToUrl: string;\n};\n\nclass HandleSignInCommand {\n public static readonly fromDependencies = (dependencies: { createClient: CreateLogtoClient }) =>\n new HandleSignInCommand({ createClient: dependencies.createClient });\n\n private navigateToUrl = '/api/sign-in';\n\n private constructor(\n private readonly properties: {\n readonly createClient: CreateLogtoClient;\n }\n ) {}\n\n public async execute(request: HandleSignInRequest) {\n const { createClient } = this.properties;\n\n const client = createClient((url) => {\n this.navigateToUrl = url;\n });\n\n await client.signIn(request.redirectUri);\n\n return {\n navigateToUrl: this.navigateToUrl,\n };\n }\n}\n\nexport const makeHandleSignIn =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: HandleSignInRequest): Promise<HandleSignInResponse> => {\n const { storage, createClient } = deps;\n\n const command = HandleSignInCommand.fromDependencies({ createClient });\n\n const { navigateToUrl } = await command.execute(request);\n\n return {\n session: storage.session,\n navigateToUrl,\n };\n };\n","import { Session } from '@remix-run/node';\n\nimport { CreateLogtoClient } from './create-client';\nimport { LogtoStorage } from './create-storage';\n\ntype HandleSignInCallbackRequest = {\n callbackUri: string;\n};\n\ntype HandleSignInCallbackResponse = {\n readonly session: Session;\n};\n\nexport const makeHandleSignInCallback =\n (deps: { storage: LogtoStorage; createClient: CreateLogtoClient }) =>\n async (request: HandleSignInCallbackRequest): Promise<HandleSignInCallbackResponse> => {\n const { storage, createClient } = deps;\n\n const client = createClient();\n\n await client.handleSignInCallback(request.callbackUri);\n\n return {\n session: storage.session,\n };\n };\n","import { CreateLogtoClient } from './create-client';\n\ntype HandleSignOutRequest = {\n readonly redirectUri: string;\n};\n\ntype HandleSignOutResponse = {\n readonly navigateToUrl: string;\n};\n\nclass HandleSignOutCommand {\n public static readonly fromDependencies = (dependencies: { createClient: CreateLogtoClient }) =>\n new HandleSignOutCommand({ createClient: dependencies.createClient });\n\n private navigateToUrl = '/api/sign-in';\n\n private constructor(\n private readonly properties: {\n readonly createClient: CreateLogtoClient;\n }\n ) {}\n\n public async execute(request: HandleSignOutRequest) {\n const { createClient } = this.properties;\n\n const client = createClient((url) => {\n this.navigateToUrl = url;\n });\n\n await client.signOut(request.redirectUri);\n\n return {\n navigateToUrl: this.navigateToUrl,\n };\n }\n}\n\nexport const makeHandleSignOut =\n (deps: { createClient: CreateLogtoClient }) =>\n async (request: HandleSignOutRequest): Promise<HandleSignOutResponse> => {\n const { createClient } = deps;\n\n const command = HandleSignOutCommand.fromDependencies({ createClient });\n\n return command.execute(request);\n };\n","import { GetContextParameters } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { GetContextController } from './GetContextController';\nimport { makeGetContextUseCase } from './GetContextUseCase';\n\ntype HandleGetContextDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeGetContext =\n (dto: GetContextParameters, deps: HandleGetContextDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeGetContextUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = GetContextController.fromDto({\n useCase,\n ...dto,\n });\n\n return controller.execute(request);\n };\n","import { GetContextParameters, LogtoContext } from '@logto/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport type { GetContextUseCase } from './GetContextUseCase';\n\ntype GetContextControllerDto = GetContextParameters & {\n readonly useCase: GetContextUseCase;\n};\n\nexport class GetContextController {\n public static readonly fromDto = (dto: GetContextControllerDto) => new GetContextController(dto);\n\n private readonly useCase = this.properties.useCase;\n private constructor(\n private readonly properties: GetContextParameters & {\n useCase: GetContextUseCase;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<LogtoContext> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n const result = await this.useCase({\n cookieHeader: cookieHeader ?? undefined,\n ...this.properties,\n });\n\n return result.context;\n };\n}\n","export const getCookieHeaderFromRequest = (request: Request) => request.headers.get('Cookie');\n","import { GetContextParameters } from '@logto/node';\nimport { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter, LogtoContext } from '../../infrastructure/logto';\n\ntype GetContextRequest = GetContextParameters & {\n readonly cookieHeader: string | undefined;\n};\n\ntype GetContextResponse = {\n context: Readonly<LogtoContext>;\n};\n\nexport const makeGetContextUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: GetContextRequest): Promise<GetContextResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.getContext(request);\n\n return {\n context: response.context,\n };\n };\n\nexport type GetContextUseCase = ReturnType<typeof makeGetContextUseCase>;\n","import { LoaderFunction, SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { makeHandleSignIn } from '../handleSignIn';\nimport { makeHandleSignInCallback } from '../handleSignInCallback';\nimport { makeHandleSignOut } from '../handleSignOut';\nimport { HandleAuthRoutesError } from './HandleAuthRoutesError';\n\ntype AuthRouteConfig = {\n readonly path: string;\n readonly redirectBackTo: string;\n};\n\ntype PossibleRouteTypes = 'sign-in' | 'sign-in-callback' | 'sign-out';\n\ntype HandleAuthRoutesDto = Record<PossibleRouteTypes, AuthRouteConfig>;\n\ntype MakeHandleAuthRoutesDto = {\n readonly baseUrl: string;\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleAuthRoutes =\n (deps: MakeHandleAuthRoutesDto) =>\n (dto: HandleAuthRoutesDto): LoaderFunction =>\n async ({ request }) => {\n const anticipatedPath = new URL(request.url).pathname;\n\n /* eslint-disable no-restricted-syntax */\n const configKey = Object.keys(dto).find(\n (type) => dto[type as PossibleRouteTypes].path === anticipatedPath\n ) as keyof HandleAuthRoutesDto;\n\n const configExists = Boolean(configKey);\n /* eslint-enable no-restricted-syntax */\n\n if (!configExists) {\n throw HandleAuthRoutesError.becauseNoConfigForPath(anticipatedPath);\n }\n\n const { sessionStorage, createLogtoAdapter, baseUrl } = deps;\n\n const config = dto[configKey];\n\n switch (configKey) {\n case 'sign-in': {\n const handler = makeHandleSignIn(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n case 'sign-in-callback': {\n const handler = makeHandleSignInCallback(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n case 'sign-out': {\n const handler = makeHandleSignOut(\n {\n redirectBackTo: `${baseUrl}${config.redirectBackTo}`,\n },\n { sessionStorage, createLogtoAdapter }\n );\n\n return handler(request);\n }\n\n default: {\n throw HandleAuthRoutesError.becauseOfUnknownRoute(configKey);\n }\n }\n };\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignInController } from './HandleSignInController';\nimport { makeHandleSignInUseCase } from './HandleSignInUseCase';\n\ntype HandleSignInDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignInDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignIn =\n (dto: HandleSignInDto, deps: HandleSignInDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignInUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignInController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport type { HandleSignInUseCase } from './HandleSignInUseCase';\n\ntype HandleSignInControllerDto = {\n readonly redirectUri: string;\n readonly useCase: HandleSignInUseCase;\n};\n\nexport class HandleSignInController {\n public static readonly fromDto = (dto: HandleSignInControllerDto) =>\n new HandleSignInController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n private constructor(\n private readonly properties: {\n redirectUri: string;\n useCase: HandleSignInUseCase;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n const { redirectUri } = this;\n\n const result = await this.useCase({\n cookieHeader: cookieHeader ?? undefined,\n redirectUri,\n });\n\n return redirect(result.navigateToUrl, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignInRequest = {\n readonly cookieHeader: string | undefined;\n readonly redirectUri: string;\n};\n\ntype SignInResponse = {\n readonly cookieHeader: string;\n readonly navigateToUrl: string;\n};\n\nexport const makeHandleSignInUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignInRequest): Promise<SignInResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignIn({\n redirectUri: request.redirectUri,\n });\n\n const cookieHeader = await sessionStorage.commitSession(response.session);\n\n return {\n cookieHeader,\n navigateToUrl: response.navigateToUrl,\n };\n };\n\nexport type HandleSignInUseCase = ReturnType<typeof makeHandleSignInUseCase>;\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignInCallbackController } from './HandleSignInCallbackController';\nimport { makeHandleSignInCallbackUseCase } from './HandleSignInCallbackUseCase';\n\ntype HandleSignInCallbackDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignInCallbackDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignInCallback =\n (dto: HandleSignInCallbackDto, deps: HandleSignInCallbackDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignInCallbackUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignInCallbackController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport { HandleSignInCallbackError } from './HandleSignInCallbackError';\nimport type { HandleSignInCallbackUseCase } from './HandleSignInCallbackUseCase';\n\ntype HandleSignInCallbackControllerDto = {\n readonly useCase: HandleSignInCallbackUseCase;\n readonly redirectUri: string;\n};\n\nexport class HandleSignInCallbackController {\n public static readonly fromDto = (dto: HandleSignInCallbackControllerDto) =>\n new HandleSignInCallbackController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n\n private constructor(\n private readonly properties: {\n useCase: HandleSignInCallbackUseCase;\n redirectUri: string;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n if (!cookieHeader) {\n throw HandleSignInCallbackError.becauseNoCookieHeaderPresent();\n }\n\n // In some scenarios, like performing the sign-in callback within a Gitpod\n // environment, the load balancer rewrites the URL and uses `http` as the\n // protocol. Here, we make sure that when the `x-forwarded-proto` HTTP header\n // is present, we will replace `http` with `https` in the `callbackUri`.\n const isForwardedHttpsTraffic = request.headers.get('x-forwarded-proto') === 'https';\n\n const callbackUri = isForwardedHttpsTraffic\n ? request.url.replace('http', 'https')\n : request.url;\n\n const result = await this.useCase({\n cookieHeader,\n callbackUri,\n });\n\n return redirect(this.redirectUri, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","export class HandleSignInCallbackError extends Error {\n public static readonly becauseNoCookieHeaderPresent = () =>\n new HandleSignInCallbackError({\n code: 1_665_388_541,\n message: `The authentication sign-in callback route can't be accessed without a valid cookie.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignInCallbackRequest = {\n readonly cookieHeader: string;\n readonly callbackUri: string;\n};\n\ntype SignInCallbackResponse = {\n readonly cookieHeader: string;\n};\n\nexport const makeHandleSignInCallbackUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignInCallbackRequest): Promise<SignInCallbackResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignInCallback({\n callbackUri: request.callbackUri,\n });\n\n const cookieHeader = await sessionStorage.commitSession(response.session);\n\n return {\n cookieHeader,\n };\n };\n\nexport type HandleSignInCallbackUseCase = ReturnType<typeof makeHandleSignInCallbackUseCase>;\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\nimport { HandleSignOutController } from './HandleSignOutController';\nimport { makeHandleSignOutUseCase } from './HandleSignOutUseCase';\n\ntype HandleSignOutDto = {\n readonly redirectBackTo: string;\n};\n\ntype HandleSignOutDeps = {\n readonly createLogtoAdapter: CreateLogtoAdapter;\n readonly sessionStorage: SessionStorage;\n};\n\nexport const makeHandleSignOut =\n (dto: HandleSignOutDto, deps: HandleSignOutDeps) => async (request: Request) => {\n const { createLogtoAdapter, sessionStorage } = deps;\n\n const useCase = makeHandleSignOutUseCase({\n createLogtoAdapter,\n sessionStorage,\n });\n\n const controller = HandleSignOutController.fromDto({\n useCase,\n redirectUri: dto.redirectBackTo,\n });\n\n return controller.execute(request);\n };\n","import { redirect, TypedResponse } from '@remix-run/node';\n\nimport { getCookieHeaderFromRequest } from '../../framework/get-cookie-header-from-request';\nimport { HandleSignOutError } from './HandleSignOutError';\nimport type { HandleSignOutUseCase } from './HandleSignOutUseCase';\n\ntype HandleSignOutControllerDto = {\n readonly useCase: HandleSignOutUseCase;\n readonly redirectUri: string;\n};\n\nexport class HandleSignOutController {\n public static readonly fromDto = (dto: HandleSignOutControllerDto) =>\n new HandleSignOutController({\n useCase: dto.useCase,\n redirectUri: dto.redirectUri,\n });\n\n private readonly useCase = this.properties.useCase;\n private readonly redirectUri = this.properties.redirectUri;\n\n private constructor(\n private readonly properties: {\n useCase: HandleSignOutUseCase;\n redirectUri: string;\n }\n ) {}\n\n public readonly execute = async (request: Request): Promise<TypedResponse<never>> => {\n const cookieHeader = getCookieHeaderFromRequest(request);\n\n if (!cookieHeader) {\n throw HandleSignOutError.becauseNoCookieHeaderPresent();\n }\n\n const result = await this.useCase({\n cookieHeader,\n redirectUri: this.redirectUri,\n });\n\n return redirect(result.navigateToUrl, {\n headers: {\n 'Set-Cookie': result.cookieHeader,\n },\n });\n };\n}\n","export class HandleSignOutError extends Error {\n public static readonly becauseNoCookieHeaderPresent = () =>\n new HandleSignOutError({\n code: 1_665_388_713,\n message: `The authentication sign-out route can't be accessed without a valid cookie.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n","import { SessionStorage } from '@remix-run/node';\n\nimport { CreateLogtoAdapter } from '../../infrastructure/logto';\n\ntype SignOutRequest = {\n readonly cookieHeader: string | undefined;\n redirectUri: string;\n};\n\ntype SignOutResponse = {\n cookieHeader: string;\n readonly navigateToUrl: string;\n};\n\nexport const makeHandleSignOutUseCase =\n (deps: { createLogtoAdapter: CreateLogtoAdapter; sessionStorage: SessionStorage }) =>\n async (request: SignOutRequest): Promise<SignOutResponse> => {\n const { sessionStorage, createLogtoAdapter } = deps;\n\n const session = await sessionStorage.getSession(request.cookieHeader);\n\n const logto = createLogtoAdapter(session);\n\n const response = await logto.handleSignOut({\n redirectUri: request.redirectUri,\n });\n\n const cookieHeader = await sessionStorage.destroySession(session);\n\n return {\n cookieHeader,\n navigateToUrl: response.navigateToUrl,\n };\n };\n\nexport type HandleSignOutUseCase = ReturnType<typeof makeHandleSignOutUseCase>;\n","export class HandleAuthRoutesError extends Error {\n public static readonly becauseNoConfigForPath = (anticipatedPath: string) =>\n new HandleAuthRoutesError({\n code: 1_665_388_277,\n message: `No configuration available for path \"${anticipatedPath}\".`,\n });\n\n public static readonly becauseOfUnknownRoute = (anticipatedConfigKey: string) =>\n new HandleAuthRoutesError({\n code: 1_665_388_278,\n message: `The config key \"${anticipatedConfigKey}\" is invalid.`,\n });\n\n public readonly code = this.properties.code;\n public readonly cause = this.properties.cause;\n public readonly plainMessage = this.properties.message;\n\n private constructor(\n private readonly properties: {\n readonly code: number;\n readonly message: string;\n readonly cause?: Error;\n }\n ) {\n super(`#[${properties.code}] ${properties.message}`);\n }\n}\n"],"names":[],"version":3,"file":"module.mjs.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logto/remix",
3
- "version": "1.0.0-beta.15",
3
+ "version": "1.0.0-rc.0",
4
4
  "source": "./src/index.ts",
5
5
  "main": "./lib/index.js",
6
6
  "exports": {
@@ -29,15 +29,15 @@
29
29
  "prepack": "pnpm test"
30
30
  },
31
31
  "dependencies": {
32
- "@logto/node": "^1.0.0-beta.15"
32
+ "@logto/node": "^1.0.0-rc.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@commitlint/cli": "^17.1.2",
36
36
  "@commitlint/config-conventional": "^17.1.0",
37
37
  "@jest/types": "^27.5.1",
38
- "@parcel/core": "^2.7.0",
39
- "@parcel/packager-ts": "^2.7.0",
40
- "@parcel/transformer-typescript-types": "^2.7.0",
38
+ "@parcel/core": "^2.8.3",
39
+ "@parcel/packager-ts": "^2.8.3",
40
+ "@parcel/transformer-typescript-types": "^2.8.3",
41
41
  "@remix-run/node": "^1.7.2",
42
42
  "@silverhand/eslint-config": "^1.0.0",
43
43
  "@silverhand/ts-config": "^1.0.0",
@@ -52,7 +52,7 @@
52
52
  "jest-location-mock": "^1.0.9",
53
53
  "jest-matcher-specific-error": "^1.0.0",
54
54
  "lint-staged": "^13.0.3",
55
- "parcel": "^2.7.0",
55
+ "parcel": "^2.8.3",
56
56
  "prettier": "^2.7.1",
57
57
  "react": "^17.0.2",
58
58
  "react-dom": "^17.0.2",
@@ -72,9 +72,9 @@
72
72
  "main": {
73
73
  "context": "node",
74
74
  "engines": {
75
- "node": "^16"
75
+ "node": ">=18.12.0"
76
76
  }
77
77
  }
78
78
  },
79
- "gitHead": "4dcfacd4a1b5d5fa5c7c83edb34c591fab2a8f44"
79
+ "gitHead": "98960287d1016efa9e68b6c4d4407885d6ec9dc6"
80
80
  }