@adonisjs/session 7.7.0 → 8.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/build/cookie-aLBno-zS.js +31 -0
  2. package/build/debug-Ba-0Cgn9.js +3 -0
  3. package/build/dynamodb-CU8BrQfU.js +72 -0
  4. package/build/factories/main.d.ts +1 -1
  5. package/build/factories/main.js +25 -49
  6. package/build/factories/session_middleware_factory.d.ts +2 -2
  7. package/build/file-CNxCs957.js +71 -0
  8. package/build/index.d.ts +6 -7
  9. package/build/index.js +5 -33
  10. package/build/providers/session_provider.d.ts +2 -3
  11. package/build/providers/session_provider.js +27 -64
  12. package/build/redis-Bcjum7z7.js +36 -0
  13. package/build/session-CBqhcnvJ.js +209 -0
  14. package/build/session-Cc1LPXRc.js +107 -0
  15. package/build/session_middleware-CS0R7hmq.js +27 -0
  16. package/build/src/client.d.ts +46 -10
  17. package/build/src/client.js +38 -9
  18. package/build/src/debug.d.ts +1 -1
  19. package/build/src/define_config.d.ts +49 -10
  20. package/build/src/errors.d.ts +20 -9
  21. package/build/src/plugins/edge.d.ts +16 -2
  22. package/build/src/plugins/edge.js +74 -126
  23. package/build/src/plugins/japa/api_client.d.ts +22 -4
  24. package/build/src/plugins/japa/api_client.js +76 -97
  25. package/build/src/plugins/japa/browser_client.d.ts +18 -4
  26. package/build/src/plugins/japa/browser_client.js +58 -82
  27. package/build/src/session.d.ts +170 -65
  28. package/build/src/session_middleware.d.ts +28 -5
  29. package/build/src/session_middleware.js +5 -11
  30. package/build/src/stores/cookie.d.ts +41 -7
  31. package/build/src/stores/dynamodb.d.ts +44 -8
  32. package/build/src/stores/file.d.ts +34 -8
  33. package/build/src/stores/memory.d.ts +32 -15
  34. package/build/src/stores/redis.d.ts +39 -16
  35. package/build/src/types.d.ts +151 -82
  36. package/build/src/types.js +1 -1
  37. package/build/src/values_store.d.ts +113 -21
  38. package/build/values_store-smX0sQBJ.js +78 -0
  39. package/package.json +57 -56
  40. package/build/chunk-5ECC6OWF.js +0 -8
  41. package/build/chunk-5ECC6OWF.js.map +0 -1
  42. package/build/chunk-6BSSM3HO.js +0 -44
  43. package/build/chunk-6BSSM3HO.js.map +0 -1
  44. package/build/chunk-G7KFHA57.js +0 -59
  45. package/build/chunk-G7KFHA57.js.map +0 -1
  46. package/build/chunk-GCO66PQD.js +0 -85
  47. package/build/chunk-GCO66PQD.js.map +0 -1
  48. package/build/chunk-PZ5AY32C.js +0 -10
  49. package/build/chunk-PZ5AY32C.js.map +0 -1
  50. package/build/chunk-Q24L5XPC.js +0 -186
  51. package/build/chunk-Q24L5XPC.js.map +0 -1
  52. package/build/chunk-TE5JP3SX.js +0 -151
  53. package/build/chunk-TE5JP3SX.js.map +0 -1
  54. package/build/chunk-V3OAEXMJ.js +0 -8
  55. package/build/chunk-V3OAEXMJ.js.map +0 -1
  56. package/build/chunk-XP3CBOXR.js +0 -414
  57. package/build/chunk-XP3CBOXR.js.map +0 -1
  58. package/build/commands/commands.json +0 -1
  59. package/build/commands/main.d.ts +0 -4
  60. package/build/commands/main.js +0 -36
  61. package/build/commands/make_session_table.d.ts +0 -9
  62. package/build/commands/make_session_table.js +0 -21
  63. package/build/commands/make_session_table.js.map +0 -1
  64. package/build/cookie-3C33DMWA.js +0 -57
  65. package/build/cookie-3C33DMWA.js.map +0 -1
  66. package/build/database-443FB7MM.js +0 -118
  67. package/build/database-443FB7MM.js.map +0 -1
  68. package/build/dynamodb-53YXEFIJ.js +0 -108
  69. package/build/dynamodb-53YXEFIJ.js.map +0 -1
  70. package/build/factories/main.js.map +0 -1
  71. package/build/file-K3GBSVSU.js +0 -117
  72. package/build/file-K3GBSVSU.js.map +0 -1
  73. package/build/index.js.map +0 -1
  74. package/build/make/migration/sessions.stub +0 -26
  75. package/build/providers/session_provider.js.map +0 -1
  76. package/build/redis-YGX2CNE2.js +0 -119
  77. package/build/redis-YGX2CNE2.js.map +0 -1
  78. package/build/src/client.js.map +0 -1
  79. package/build/src/plugins/edge.js.map +0 -1
  80. package/build/src/plugins/japa/api_client.js.map +0 -1
  81. package/build/src/plugins/japa/browser_client.js.map +0 -1
  82. package/build/src/session_collection.d.ts +0 -55
  83. package/build/src/session_middleware.js.map +0 -1
  84. package/build/src/stores/database.d.ts +0 -55
  85. package/build/src/types.js.map +0 -1
@@ -1,127 +1,75 @@
1
- import {
2
- debug_default
3
- } from "../../chunk-5ECC6OWF.js";
4
- import "../../chunk-PZ5AY32C.js";
5
-
6
- // src/plugins/edge.ts
7
- var edgePluginSession = (edge) => {
8
- debug_default("registering session tags with edge");
9
- edge.registerTag({
10
- tagName: "flashMessage",
11
- seekable: true,
12
- block: true,
13
- compile(parser, buffer, token) {
14
- const expression = parser.utils.transformAst(
15
- parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename),
16
- token.filename,
17
- parser
18
- );
19
- const key = parser.utils.stringify(expression);
20
- buffer.writeStatement(
21
- `if (state.flashMessages.has(${key})) {`,
22
- token.filename,
23
- token.loc.start.line
24
- );
25
- buffer.writeExpression(
26
- `let $message = state.flashMessages.get(${key})`,
27
- token.filename,
28
- token.loc.start.line
29
- );
30
- parser.stack.defineScope();
31
- parser.stack.defineVariable("$message");
32
- token.children.forEach((child) => {
33
- parser.processToken(child, buffer);
34
- });
35
- parser.stack.clearScope();
36
- buffer.writeStatement(`}`, token.filename, token.loc.start.line);
37
- }
38
- });
39
- edge.registerTag({
40
- tagName: "inputError",
41
- seekable: true,
42
- block: true,
43
- compile(parser, buffer, token) {
44
- const expression = parser.utils.transformAst(
45
- parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename),
46
- token.filename,
47
- parser
48
- );
49
- const key = parser.utils.stringify(expression);
50
- buffer.writeStatement(
51
- `if (!!state.flashMessages.get('inputErrorsBag', {})[${key}]) {`,
52
- token.filename,
53
- token.loc.start.line
54
- );
55
- buffer.writeExpression(
56
- `let $messages = state.flashMessages.get('inputErrorsBag', {})[${key}]`,
57
- token.filename,
58
- token.loc.start.line
59
- );
60
- parser.stack.defineScope();
61
- parser.stack.defineVariable("$messages");
62
- token.children.forEach((child) => {
63
- parser.processToken(child, buffer);
64
- });
65
- parser.stack.clearScope();
66
- buffer.writeStatement(`}`, token.filename, token.loc.start.line);
67
- }
68
- });
69
- edge.registerTag({
70
- tagName: "error",
71
- seekable: true,
72
- block: true,
73
- compile(parser, buffer, token) {
74
- const expression = parser.utils.transformAst(
75
- parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename),
76
- token.filename,
77
- parser
78
- );
79
- const key = parser.utils.stringify(expression);
80
- buffer.writeStatement(
81
- `if (state.flashMessages.has(['errorsBag', ${key}])) {`,
82
- token.filename,
83
- token.loc.start.line
84
- );
85
- buffer.writeExpression(
86
- `let $message = state.flashMessages.get(['errorsBag', ${key}])`,
87
- token.filename,
88
- token.loc.start.line
89
- );
90
- parser.stack.defineScope();
91
- parser.stack.defineVariable("$message");
92
- token.children.forEach((child) => {
93
- parser.processToken(child, buffer);
94
- });
95
- parser.stack.clearScope();
96
- buffer.writeStatement(`}`, token.filename, token.loc.start.line);
97
- }
98
- });
99
- edge.registerTag({
100
- tagName: "errors",
101
- seekable: true,
102
- block: true,
103
- compile(parser, buffer, token) {
104
- buffer.writeStatement(
105
- `if (state.flashMessages.has('errorsBag')) {`,
106
- token.filename,
107
- token.loc.start.line
108
- );
109
- buffer.writeExpression(
110
- `let $messages = state.flashMessages.get('errorsBag')`,
111
- token.filename,
112
- token.loc.start.line
113
- );
114
- parser.stack.defineScope();
115
- parser.stack.defineVariable("$messages");
116
- token.children.forEach((child) => {
117
- parser.processToken(child, buffer);
118
- });
119
- parser.stack.clearScope();
120
- buffer.writeStatement(`}`, token.filename, token.loc.start.line);
121
- }
122
- });
1
+ import { t as debug_default } from "../../debug-Ba-0Cgn9.js";
2
+ const edgePluginSession = (edge) => {
3
+ debug_default("registering session tags with edge");
4
+ edge.registerTag({
5
+ tagName: "flashMessage",
6
+ seekable: true,
7
+ block: true,
8
+ compile(parser, buffer, token) {
9
+ const expression = parser.utils.transformAst(parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename), token.filename, parser);
10
+ const key = parser.utils.stringify(expression);
11
+ buffer.writeStatement(`if (state.flashMessages.has(${key})) {`, token.filename, token.loc.start.line);
12
+ buffer.writeExpression(`let $message = state.flashMessages.get(${key})`, token.filename, token.loc.start.line);
13
+ parser.stack.defineScope();
14
+ parser.stack.defineVariable("$message");
15
+ token.children.forEach((child) => {
16
+ parser.processToken(child, buffer);
17
+ });
18
+ parser.stack.clearScope();
19
+ buffer.writeStatement(`}`, token.filename, token.loc.start.line);
20
+ }
21
+ });
22
+ edge.registerTag({
23
+ tagName: "inputError",
24
+ seekable: true,
25
+ block: true,
26
+ compile(parser, buffer, token) {
27
+ const expression = parser.utils.transformAst(parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename), token.filename, parser);
28
+ const key = parser.utils.stringify(expression);
29
+ buffer.writeStatement(`if (!!state.flashMessages.get('inputErrorsBag', {})[${key}]) {`, token.filename, token.loc.start.line);
30
+ buffer.writeExpression(`let $messages = state.flashMessages.get('inputErrorsBag', {})[${key}]`, token.filename, token.loc.start.line);
31
+ parser.stack.defineScope();
32
+ parser.stack.defineVariable("$messages");
33
+ token.children.forEach((child) => {
34
+ parser.processToken(child, buffer);
35
+ });
36
+ parser.stack.clearScope();
37
+ buffer.writeStatement(`}`, token.filename, token.loc.start.line);
38
+ }
39
+ });
40
+ edge.registerTag({
41
+ tagName: "error",
42
+ seekable: true,
43
+ block: true,
44
+ compile(parser, buffer, token) {
45
+ const expression = parser.utils.transformAst(parser.utils.generateAST(token.properties.jsArg, token.loc, token.filename), token.filename, parser);
46
+ const key = parser.utils.stringify(expression);
47
+ buffer.writeStatement(`if (state.flashMessages.has(['errorsBag', ${key}])) {`, token.filename, token.loc.start.line);
48
+ buffer.writeExpression(`let $message = state.flashMessages.get(['errorsBag', ${key}])`, token.filename, token.loc.start.line);
49
+ parser.stack.defineScope();
50
+ parser.stack.defineVariable("$message");
51
+ token.children.forEach((child) => {
52
+ parser.processToken(child, buffer);
53
+ });
54
+ parser.stack.clearScope();
55
+ buffer.writeStatement(`}`, token.filename, token.loc.start.line);
56
+ }
57
+ });
58
+ edge.registerTag({
59
+ tagName: "errors",
60
+ seekable: true,
61
+ block: true,
62
+ compile(parser, buffer, token) {
63
+ buffer.writeStatement(`if (state.flashMessages.has('errorsBag')) {`, token.filename, token.loc.start.line);
64
+ buffer.writeExpression(`let $messages = state.flashMessages.get('errorsBag')`, token.filename, token.loc.start.line);
65
+ parser.stack.defineScope();
66
+ parser.stack.defineVariable("$messages");
67
+ token.children.forEach((child) => {
68
+ parser.processToken(child, buffer);
69
+ });
70
+ parser.stack.clearScope();
71
+ buffer.writeStatement(`}`, token.filename, token.loc.start.line);
72
+ }
73
+ });
123
74
  };
124
- export {
125
- edgePluginSession
126
- };
127
- //# sourceMappingURL=edge.js.map
75
+ export { edgePluginSession };
@@ -1,7 +1,8 @@
1
+ import '@japa/plugin-adonisjs';
1
2
  import type { PluginFn } from '@japa/runner/types';
2
3
  import type { ApplicationService } from '@adonisjs/core/types';
3
- import { SessionClient } from '../../client.js';
4
- import type { SessionData } from '../../types.js';
4
+ import { SessionClient } from '../../client.ts';
5
+ import type { SessionData } from '../../types.ts';
5
6
  declare module '@japa/api-client' {
6
7
  interface ApiRequest {
7
8
  sessionClient: SessionClient;
@@ -69,7 +70,24 @@ declare module '@japa/api-client' {
69
70
  }
70
71
  }
71
72
  /**
72
- * Hooks AdonisJS Session with the Japa API client
73
- * plugin
73
+ * Hooks AdonisJS Session with the Japa API client plugin.
74
+ * Provides session methods and assertions for API testing.
75
+ *
76
+ * @param app - AdonisJS application service
77
+ *
78
+ * @example
79
+ * // Register in test setup
80
+ * import { sessionApiClient } from '@adonisjs/session/plugins/japa/api_client'
81
+ *
82
+ * // Use in API tests
83
+ * test('can authenticate user', async ({ client }) => {
84
+ * const response = await client
85
+ * .post('/login')
86
+ * .withSession({ remember: true })
87
+ * .json({ email: 'user@example.com', password: 'secret' })
88
+ *
89
+ * response.assertSession('userId', 123)
90
+ * response.assertFlashMessage('success', 'Welcome back!')
91
+ * })
74
92
  */
75
93
  export declare const sessionApiClient: (app: ApplicationService) => PluginFn;
@@ -1,101 +1,80 @@
1
- import {
2
- SessionClient
3
- } from "../../../chunk-GCO66PQD.js";
4
- import "../../../chunk-TE5JP3SX.js";
5
- import "../../../chunk-5ECC6OWF.js";
6
- import "../../../chunk-PZ5AY32C.js";
7
-
8
- // src/plugins/japa/api_client.ts
1
+ import "../../../debug-Ba-0Cgn9.js";
2
+ import "../../../values_store-smX0sQBJ.js";
3
+ import { SessionClient } from "../../client.js";
4
+ import { RuntimeException } from "@adonisjs/core/exceptions";
9
5
  import lodash from "@poppinss/utils/lodash";
10
6
  import { configProvider } from "@adonisjs/core";
11
- import { RuntimeException } from "@poppinss/utils";
7
+ import "@japa/plugin-adonisjs";
12
8
  import { ApiClient, ApiRequest, ApiResponse } from "@japa/api-client";
13
- var sessionApiClient = (app) => {
14
- const pluginFn = async function() {
15
- const sessionConfigProvider = app.config.get("session", {});
16
- const config = await configProvider.resolve(app, sessionConfigProvider);
17
- if (!config) {
18
- throw new RuntimeException(
19
- 'Invalid "config/session.ts" file. Make sure you are using the "defineConfig" method'
20
- );
21
- }
22
- ApiRequest.getter(
23
- "sessionClient",
24
- function() {
25
- return new SessionClient(config.stores.memory());
26
- },
27
- true
28
- );
29
- ApiRequest.macro("withSession", function(data) {
30
- this.sessionClient.merge(data);
31
- return this;
32
- });
33
- ApiRequest.macro("withFlashMessages", function(data) {
34
- this.sessionClient.flash(data);
35
- return this;
36
- });
37
- ApiResponse.macro("session", function(key) {
38
- return key ? lodash.get(this.sessionBag.values, key) : this.sessionBag.values;
39
- });
40
- ApiResponse.macro("flashMessages", function() {
41
- return this.sessionBag.flashMessages;
42
- });
43
- ApiResponse.macro("flashMessage", function(key) {
44
- return lodash.get(this.sessionBag.flashMessages, key);
45
- });
46
- ApiResponse.macro("assertSession", function(key, value) {
47
- this.assert.property(this.session(), key);
48
- if (value !== void 0) {
49
- this.assert.deepEqual(this.session(key), value);
50
- }
51
- });
52
- ApiResponse.macro("assertSessionMissing", function(key) {
53
- this.assert.notProperty(this.session(), key);
54
- });
55
- ApiResponse.macro("assertFlashMessage", function(key, value) {
56
- this.assert.property(this.flashMessages(), key);
57
- if (value !== void 0) {
58
- this.assert.deepEqual(this.flashMessage(key), value);
59
- }
60
- });
61
- ApiResponse.macro("assertFlashMissing", function(key) {
62
- this.assert.notProperty(this.flashMessages(), key);
63
- });
64
- ApiResponse.macro("assertHasValidationError", function(field) {
65
- this.assert.property(this.flashMessage("errors"), field);
66
- });
67
- ApiResponse.macro("assertDoesNotHaveValidationError", function(field) {
68
- this.assert.notProperty(this.flashMessage("errors"), field);
69
- });
70
- ApiResponse.macro("assertValidationError", function(field, message) {
71
- this.assert.include(this.flashMessage("errors")?.[field] || [], message);
72
- });
73
- ApiResponse.macro("assertValidationErrors", function(field, messages) {
74
- this.assert.deepEqual(this.flashMessage("errors")?.[field] || [], messages);
75
- });
76
- ApiClient.onRequest((request) => {
77
- request.setup(async () => {
78
- request.withCookie(config.cookieName, request.sessionClient.sessionId);
79
- await request.sessionClient.commit();
80
- return async (error) => {
81
- if (error) {
82
- await request.sessionClient.destroy();
83
- }
84
- };
85
- });
86
- request.teardown(async (response) => {
87
- const sessionId = response.cookie(config.cookieName);
88
- response.sessionBag = sessionId ? await response.request.sessionClient.load(sessionId.value) : {
89
- values: {},
90
- flashMessages: {}
91
- };
92
- await request.sessionClient.destroy(sessionId?.value);
93
- });
94
- });
95
- };
96
- return pluginFn;
9
+ const sessionApiClient = (app) => {
10
+ const pluginFn = async function() {
11
+ const sessionConfigProvider = app.config.get("session", {});
12
+ const config = await configProvider.resolve(app, sessionConfigProvider);
13
+ if (!config) throw new RuntimeException("Invalid \"config/session.ts\" file. Make sure you are using the \"defineConfig\" method");
14
+ ApiRequest.getter("sessionClient", function() {
15
+ return new SessionClient(config.stores.memory());
16
+ }, true);
17
+ ApiRequest.macro("withSession", function(data) {
18
+ this.sessionClient.merge(data);
19
+ return this;
20
+ });
21
+ ApiRequest.macro("withFlashMessages", function(data) {
22
+ this.sessionClient.flash(data);
23
+ return this;
24
+ });
25
+ ApiResponse.macro("session", function(key) {
26
+ return key ? lodash.get(this.sessionBag.values, key) : this.sessionBag.values;
27
+ });
28
+ ApiResponse.macro("flashMessages", function() {
29
+ return this.sessionBag.flashMessages;
30
+ });
31
+ ApiResponse.macro("flashMessage", function(key) {
32
+ return lodash.get(this.sessionBag.flashMessages, key);
33
+ });
34
+ ApiResponse.macro("assertSession", function(key, value) {
35
+ this.assert.property(this.session(), key);
36
+ if (value !== void 0) this.assert.deepEqual(this.session(key), value);
37
+ });
38
+ ApiResponse.macro("assertSessionMissing", function(key) {
39
+ this.assert.notProperty(this.session(), key);
40
+ });
41
+ ApiResponse.macro("assertFlashMessage", function(key, value) {
42
+ this.assert.property(this.flashMessages(), key);
43
+ if (value !== void 0) this.assert.deepEqual(this.flashMessage(key), value);
44
+ });
45
+ ApiResponse.macro("assertFlashMissing", function(key) {
46
+ this.assert.notProperty(this.flashMessages(), key);
47
+ });
48
+ ApiResponse.macro("assertHasValidationError", function(field) {
49
+ this.assert.property(this.flashMessage("errors"), field);
50
+ });
51
+ ApiResponse.macro("assertDoesNotHaveValidationError", function(field) {
52
+ this.assert.notProperty(this.flashMessage("errors"), field);
53
+ });
54
+ ApiResponse.macro("assertValidationError", function(field, message) {
55
+ this.assert.include(this.flashMessage("errors")?.[field] || [], message);
56
+ });
57
+ ApiResponse.macro("assertValidationErrors", function(field, messages) {
58
+ this.assert.deepEqual(this.flashMessage("errors")?.[field] || [], messages);
59
+ });
60
+ ApiClient.onRequest((request) => {
61
+ request.setup(async () => {
62
+ request.withCookie(config.cookieName, request.sessionClient.sessionId);
63
+ await request.sessionClient.commit();
64
+ return async (error) => {
65
+ if (error) await request.sessionClient.destroy();
66
+ };
67
+ });
68
+ request.teardown(async (response) => {
69
+ const sessionId = response.cookie(config.cookieName);
70
+ response.sessionBag = sessionId ? await response.request.sessionClient.load(sessionId.value) : {
71
+ values: {},
72
+ flashMessages: {}
73
+ };
74
+ await request.sessionClient.destroy(sessionId?.value);
75
+ });
76
+ });
77
+ };
78
+ return pluginFn;
97
79
  };
98
- export {
99
- sessionApiClient
100
- };
101
- //# sourceMappingURL=api_client.js.map
80
+ export { sessionApiClient };
@@ -1,8 +1,9 @@
1
+ import '@japa/plugin-adonisjs';
1
2
  import type { PluginFn } from '@japa/runner/types';
2
3
  import type { ApplicationService } from '@adonisjs/core/types';
3
4
  import type { CookieOptions as AdonisCookieOptions } from '@adonisjs/core/types/http';
4
- import { SessionClient } from '../../client.js';
5
- import type { SessionData } from '../../types.js';
5
+ import { SessionClient } from '../../client.ts';
6
+ import type { SessionData } from '../../types.ts';
6
7
  declare module 'playwright' {
7
8
  interface BrowserContext {
8
9
  sessionClient: SessionClient;
@@ -30,7 +31,20 @@ declare module 'playwright' {
30
31
  }
31
32
  }
32
33
  /**
33
- * Hooks AdonisJS Session with the Japa browser client
34
- * plugin
34
+ * Hooks AdonisJS Session with the Japa browser client plugin.
35
+ * Provides session methods for browser testing context.
36
+ *
37
+ * @param app - AdonisJS application service
38
+ *
39
+ * @example
40
+ * // Register in test setup
41
+ * import { sessionBrowserClient } from '@adonisjs/session/plugins/japa/browser_client'
42
+ *
43
+ * // Use in browser tests
44
+ * test('can set session data', async ({ visit }) => {
45
+ * await visit.context().setSession({ userId: 123 })
46
+ * const response = await visit('/profile')
47
+ * // Assert profile page shows user data
48
+ * })
35
49
  */
36
50
  export declare const sessionBrowserClient: (app: ApplicationService) => PluginFn;
@@ -1,89 +1,65 @@
1
- import {
2
- SessionClient
3
- } from "../../../chunk-GCO66PQD.js";
4
- import "../../../chunk-TE5JP3SX.js";
5
- import "../../../chunk-5ECC6OWF.js";
6
- import "../../../chunk-PZ5AY32C.js";
7
-
8
- // src/plugins/japa/browser_client.ts
1
+ import "../../../debug-Ba-0Cgn9.js";
2
+ import "../../../values_store-smX0sQBJ.js";
3
+ import { SessionClient } from "../../client.js";
4
+ import { RuntimeException } from "@adonisjs/core/exceptions";
9
5
  import { configProvider } from "@adonisjs/core";
10
- import { RuntimeException } from "@poppinss/utils";
6
+ import "@japa/plugin-adonisjs";
11
7
  import { decoratorsCollection } from "@japa/browser-client";
12
8
  function transformSameSiteOption(sameSite) {
13
- if (!sameSite) {
14
- return;
15
- }
16
- if (sameSite === true || sameSite === "strict") {
17
- return "Strict";
18
- }
19
- if (sameSite === "lax") {
20
- return "Lax";
21
- }
22
- if (sameSite === "none") {
23
- return "None";
24
- }
9
+ if (!sameSite) return;
10
+ if (sameSite === true || sameSite === "strict") return "Strict";
11
+ if (sameSite === "lax") return "Lax";
12
+ if (sameSite === "none") return "None";
25
13
  }
26
14
  function getSessionCookieOptions(config, cookieOptions) {
27
- const options = { ...config.cookie, ...cookieOptions };
28
- return {
29
- ...options,
30
- expires: void 0,
31
- sameSite: transformSameSiteOption(options.sameSite)
32
- };
15
+ const options = {
16
+ ...config.cookie,
17
+ ...cookieOptions
18
+ };
19
+ return {
20
+ ...options,
21
+ expires: void 0,
22
+ sameSite: transformSameSiteOption(options.sameSite)
23
+ };
33
24
  }
34
- var sessionBrowserClient = (app) => {
35
- const pluginFn = async function() {
36
- const sessionConfigProvider = app.config.get("session", {});
37
- const config = await configProvider.resolve(app, sessionConfigProvider);
38
- if (!config) {
39
- throw new RuntimeException(
40
- 'Invalid "config/session.ts" file. Make sure you are using the "defineConfig" method'
41
- );
42
- }
43
- decoratorsCollection.register({
44
- context(context) {
45
- context.sessionClient = new SessionClient(config.stores.memory());
46
- context.initiateSession = async function(options) {
47
- const sessionId = await context.getCookie(config.cookieName);
48
- if (sessionId) {
49
- context.sessionClient.sessionId = sessionId;
50
- return;
51
- }
52
- await context.setCookie(
53
- config.cookieName,
54
- context.sessionClient.sessionId,
55
- getSessionCookieOptions(config, options)
56
- );
57
- };
58
- context.getSession = async function() {
59
- await context.initiateSession();
60
- const sessionData = await context.sessionClient.load();
61
- return sessionData.values;
62
- };
63
- context.getFlashMessages = async function() {
64
- await context.initiateSession();
65
- const sessionData = await context.sessionClient.load();
66
- return sessionData.flashMessages;
67
- };
68
- context.setSession = async function(values) {
69
- await context.initiateSession();
70
- context.sessionClient.merge(values);
71
- await context.sessionClient.commit();
72
- };
73
- context.setFlashMessages = async function(values) {
74
- await context.initiateSession();
75
- context.sessionClient.flash(values);
76
- await context.sessionClient.commit();
77
- };
78
- context.on("close", async function() {
79
- await context.sessionClient.destroy();
80
- });
81
- }
82
- });
83
- };
84
- return pluginFn;
25
+ const sessionBrowserClient = (app) => {
26
+ const pluginFn = async function() {
27
+ const sessionConfigProvider = app.config.get("session", {});
28
+ const config = await configProvider.resolve(app, sessionConfigProvider);
29
+ if (!config) throw new RuntimeException("Invalid \"config/session.ts\" file. Make sure you are using the \"defineConfig\" method");
30
+ decoratorsCollection.register({ context(context) {
31
+ context.sessionClient = new SessionClient(config.stores.memory());
32
+ context.initiateSession = async function(options) {
33
+ const sessionId = await context.getCookie(config.cookieName);
34
+ if (sessionId) {
35
+ context.sessionClient.sessionId = sessionId;
36
+ return;
37
+ }
38
+ await context.setCookie(config.cookieName, context.sessionClient.sessionId, getSessionCookieOptions(config, options));
39
+ };
40
+ context.getSession = async function() {
41
+ await context.initiateSession();
42
+ return (await context.sessionClient.load()).values;
43
+ };
44
+ context.getFlashMessages = async function() {
45
+ await context.initiateSession();
46
+ return (await context.sessionClient.load()).flashMessages;
47
+ };
48
+ context.setSession = async function(values) {
49
+ await context.initiateSession();
50
+ context.sessionClient.merge(values);
51
+ await context.sessionClient.commit();
52
+ };
53
+ context.setFlashMessages = async function(values) {
54
+ await context.initiateSession();
55
+ context.sessionClient.flash(values);
56
+ await context.sessionClient.commit();
57
+ };
58
+ context.on("close", async function() {
59
+ await context.sessionClient.destroy();
60
+ });
61
+ } });
62
+ };
63
+ return pluginFn;
85
64
  };
86
- export {
87
- sessionBrowserClient
88
- };
89
- //# sourceMappingURL=browser_client.js.map
65
+ export { sessionBrowserClient };