@adonisjs/session 7.5.1 → 7.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/build/{chunk-WUWXIKIB.js → chunk-3AQCEGXQ.js} +29 -12
  2. package/build/chunk-3AQCEGXQ.js.map +1 -0
  3. package/build/chunk-5ECC6OWF.js +8 -0
  4. package/build/{chunk-ZVSEMDIC.js.map → chunk-5ECC6OWF.js.map} +1 -1
  5. package/build/{chunk-TZLOND27.js → chunk-CVMFYEYR.js} +2 -2
  6. package/build/{chunk-GB5FBZCV.js → chunk-GCO66PQD.js} +2 -2
  7. package/build/{chunk-OCQGCVXK.js → chunk-I6SY5ILN.js} +5 -3
  8. package/build/{chunk-OCQGCVXK.js.map → chunk-I6SY5ILN.js.map} +1 -1
  9. package/build/{chunk-ZVSEMDIC.js → chunk-PZ5AY32C.js} +2 -7
  10. package/build/chunk-PZ5AY32C.js.map +1 -0
  11. package/build/chunk-V3OAEXMJ.js +8 -0
  12. package/build/chunk-V3OAEXMJ.js.map +1 -0
  13. package/build/commands/commands.json +1 -0
  14. package/build/commands/main.d.ts +4 -0
  15. package/build/commands/main.js +36 -0
  16. package/build/commands/make_session_table.d.ts +9 -0
  17. package/build/commands/make_session_table.js +21 -0
  18. package/build/commands/make_session_table.js.map +1 -0
  19. package/build/{cookie-WBWYVEDW.js → cookie-3C33DMWA.js} +3 -2
  20. package/build/{cookie-WBWYVEDW.js.map → cookie-3C33DMWA.js.map} +1 -1
  21. package/build/database-55YUHLA6.js +89 -0
  22. package/build/database-55YUHLA6.js.map +1 -0
  23. package/build/{dynamodb-3PG52TE3.js → dynamodb-53YXEFIJ.js} +3 -2
  24. package/build/{dynamodb-3PG52TE3.js.map → dynamodb-53YXEFIJ.js.map} +1 -1
  25. package/build/factories/main.js +6 -4
  26. package/build/factories/main.js.map +1 -1
  27. package/build/{file-B6QKOZXW.js → file-K3GBSVSU.js} +5 -4
  28. package/build/{file-B6QKOZXW.js.map → file-K3GBSVSU.js.map} +1 -1
  29. package/build/index.js +7 -4
  30. package/build/make/migration/sessions.stub +25 -0
  31. package/build/providers/session_provider.js +4 -3
  32. package/build/providers/session_provider.js.map +1 -1
  33. package/build/{redis-CAY24YIA.js → redis-OJU6MUHZ.js} +3 -2
  34. package/build/{redis-CAY24YIA.js.map → redis-OJU6MUHZ.js.map} +1 -1
  35. package/build/src/client.js +3 -2
  36. package/build/src/define_config.d.ts +2 -1
  37. package/build/src/plugins/edge.js +2 -1
  38. package/build/src/plugins/edge.js.map +1 -1
  39. package/build/src/plugins/japa/api_client.js +3 -2
  40. package/build/src/plugins/japa/api_client.js.map +1 -1
  41. package/build/src/plugins/japa/browser_client.js +3 -2
  42. package/build/src/plugins/japa/browser_client.js.map +1 -1
  43. package/build/src/session_middleware.js +4 -3
  44. package/build/src/stores/database.d.ts +47 -0
  45. package/build/src/types.d.ts +17 -0
  46. package/package.json +39 -28
  47. package/build/chunk-WUWXIKIB.js.map +0 -1
  48. /package/build/{chunk-TZLOND27.js.map → chunk-CVMFYEYR.js.map} +0 -0
  49. /package/build/{chunk-GB5FBZCV.js.map → chunk-GCO66PQD.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../stubs/main.ts","../configure.ts","../src/define_config.ts","../src/stores/memory.ts"],"sourcesContent":["/*\n * @adonisjs/session\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport { getDirname } from '@poppinss/utils'\n\nexport const stubsRoot = getDirname(import.meta.url)\n","/*\n * @adonisjs/session\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport type Configure from '@adonisjs/core/commands/configure'\nimport { stubsRoot } from './stubs/main.js'\n\n/**\n * Configures the package\n */\nexport async function configure(command: Configure) {\n const codemods = await command.createCodemods()\n\n /**\n * Publish config file\n */\n await codemods.makeUsingStub(stubsRoot, 'config/session.stub', {})\n\n /**\n * Define environment variables\n */\n await codemods.defineEnvVariables({ SESSION_DRIVER: 'cookie' })\n\n /**\n * Define environment variables validations\n */\n await codemods.defineEnvValidations({\n variables: {\n SESSION_DRIVER: `Env.schema.enum(['cookie', 'memory'] as const)`,\n },\n leadingComment: 'Variables for configuring session package',\n })\n\n /**\n * Register middleware\n */\n await codemods.registerMiddleware('router', [\n {\n path: '@adonisjs/session/session_middleware',\n },\n ])\n\n /**\n * Register provider\n */\n await codemods.updateRcFile((rcFile) => {\n rcFile.addProvider('@adonisjs/session/session_provider')\n })\n}\n","/*\n * @adonisjs/session\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/// <reference types=\"@adonisjs/redis/redis_provider\" />\n\nimport string from '@poppinss/utils/string'\nimport { configProvider } from '@adonisjs/core'\nimport type { ConfigProvider } from '@adonisjs/core/types'\nimport { InvalidArgumentsException } from '@poppinss/utils'\nimport type { CookieOptions } from '@adonisjs/core/types/http'\n\nimport debug from './debug.js'\nimport { MemoryStore } from './stores/memory.js'\nimport type {\n SessionConfig,\n FileStoreConfig,\n RedisStoreConfig,\n SessionStoreFactory,\n DynamoDBStoreConfig,\n} from './types.js'\n\n/**\n * Resolved config with stores\n */\ntype ResolvedConfig<KnownStores extends Record<string, SessionStoreFactory>> = SessionConfig & {\n store: keyof KnownStores\n stores: KnownStores\n cookie: Partial<CookieOptions>\n}\n\n/**\n * Helper to normalize session config\n */\nexport function defineConfig<\n KnownStores extends Record<string, SessionStoreFactory | ConfigProvider<SessionStoreFactory>>,\n>(\n config: Partial<SessionConfig> & {\n store: keyof KnownStores | 'memory'\n stores: KnownStores\n }\n): ConfigProvider<\n ResolvedConfig<{\n [K in keyof KnownStores]: SessionStoreFactory\n }>\n> {\n debug('processing session config %O', config)\n\n /**\n * Make sure a store is defined\n */\n if (!config.store) {\n throw new InvalidArgumentsException('Missing \"store\" property inside the session config')\n }\n\n /**\n * Destructuring config with the default values. We pull out\n * stores and cookie values, since we have to transform\n * them in the output value.\n */\n const { stores, cookie, ...rest } = {\n enabled: true,\n age: '2h',\n cookieName: 'adonis_session',\n clearWithBrowser: false,\n ...config,\n }\n\n const cookieOptions: Partial<CookieOptions> = { ...cookie }\n\n /**\n * Define maxAge property when session id cookie is\n * not a session cookie.\n */\n if (!rest.clearWithBrowser) {\n cookieOptions.maxAge = string.seconds.parse(rest.age)\n debug('computing maxAge \"%s\" for session id cookie', cookieOptions.maxAge)\n }\n\n return configProvider.create(async (app) => {\n const storesNames = Object.keys(config.stores)\n\n /**\n * List of stores with memory store always configured\n */\n const storesList = {\n memory: () => new MemoryStore(),\n } as Record<string, SessionStoreFactory>\n\n /**\n * Looping for stores and resolving them\n */\n for (let storeName of storesNames) {\n const store = config.stores[storeName]\n if (typeof store === 'function') {\n storesList[storeName] = store\n } else {\n storesList[storeName] = await store.resolver(app)\n }\n }\n\n const transformedConfig = {\n ...rest,\n cookie: cookieOptions,\n stores: storesList as { [K in keyof KnownStores]: SessionStoreFactory },\n }\n\n debug('transformed session config %O', transformedConfig)\n return transformedConfig\n })\n}\n\n/**\n * Inbuilt stores to store the session data.\n */\nexport const stores: {\n file: (config: FileStoreConfig) => ConfigProvider<SessionStoreFactory>\n redis: (config: RedisStoreConfig) => ConfigProvider<SessionStoreFactory>\n cookie: () => ConfigProvider<SessionStoreFactory>\n dynamodb: (config: DynamoDBStoreConfig) => ConfigProvider<SessionStoreFactory>\n} = {\n file: (config) => {\n return configProvider.create(async () => {\n const { FileStore } = await import('./stores/file.js')\n return (_, sessionConfig: SessionConfig) => {\n return new FileStore(config, sessionConfig.age)\n }\n })\n },\n redis: (config) => {\n return configProvider.create(async (app) => {\n const { RedisStore } = await import('./stores/redis.js')\n const redis = await app.container.make('redis')\n\n return (_, sessionConfig: SessionConfig) => {\n return new RedisStore(redis.connection(config.connection), sessionConfig.age)\n }\n })\n },\n cookie: () => {\n return configProvider.create(async () => {\n const { CookieStore } = await import('./stores/cookie.js')\n return (ctx, sessionConfig: SessionConfig) => {\n return new CookieStore(sessionConfig.cookie, ctx)\n }\n })\n },\n dynamodb: (config) => {\n return configProvider.create(async () => {\n const { DynamoDBStore } = await import('./stores/dynamodb.js')\n const { DynamoDBClient } = await import('@aws-sdk/client-dynamodb')\n\n const client =\n 'clientConfig' in config ? new DynamoDBClient(config.clientConfig) : config.client\n\n return (_, sessionConfig: SessionConfig) => {\n return new DynamoDBStore(client, sessionConfig.age, {\n tableName: config.tableName,\n keyAttribute: config.keyAttribute,\n })\n }\n })\n },\n}\n","/**\n * @adonisjs/session\n *\n * (c) AdonisJS\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nimport type { SessionData, SessionStoreContract } from '../types.js'\n\n/**\n * Memory store is meant to be used for writing tests.\n */\nexport class MemoryStore implements SessionStoreContract {\n static sessions: Map<string, SessionData> = new Map()\n\n /**\n * Read session id value from the memory\n */\n read(sessionId: string): SessionData | null {\n return MemoryStore.sessions.get(sessionId) || null\n }\n\n /**\n * Save in memory value for a given session id\n */\n write(sessionId: string, values: SessionData): void {\n MemoryStore.sessions.set(sessionId, values)\n }\n\n /**\n * Cleanup for a single session\n */\n destroy(sessionId: string): void {\n MemoryStore.sessions.delete(sessionId)\n }\n\n touch(): void {}\n}\n"],"mappings":"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","names":["stores"]}