hono-sessions 0.5.8 → 0.6.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 (46) hide show
  1. package/README.md +9 -6
  2. package/esm/deps.d.ts +1 -0
  3. package/esm/deps.d.ts.map +1 -0
  4. package/esm/mod.d.ts +1 -0
  5. package/esm/mod.d.ts.map +1 -0
  6. package/esm/src/Crypto.d.ts +1 -0
  7. package/esm/src/Crypto.d.ts.map +1 -0
  8. package/esm/src/Middleware.d.ts +1 -0
  9. package/esm/src/Middleware.d.ts.map +1 -0
  10. package/esm/src/Session.d.ts +11 -16
  11. package/esm/src/Session.d.ts.map +1 -0
  12. package/esm/src/Session.js +6 -7
  13. package/esm/src/store/CookieStore.d.ts +1 -0
  14. package/esm/src/store/CookieStore.d.ts.map +1 -0
  15. package/esm/src/store/MemoryStore.d.ts +1 -0
  16. package/esm/src/store/MemoryStore.d.ts.map +1 -0
  17. package/esm/src/store/Store.d.ts +1 -0
  18. package/esm/src/store/Store.d.ts.map +1 -0
  19. package/esm/src/store/bun/BunSqliteStore.d.ts +1 -0
  20. package/esm/src/store/bun/BunSqliteStore.d.ts.map +1 -0
  21. package/esm/src/store/cloudflare/CloudflareD1Store.d.ts +1 -0
  22. package/esm/src/store/cloudflare/CloudflareD1Store.d.ts.map +1 -0
  23. package/package.json +6 -5
  24. package/script/deps.d.ts +1 -0
  25. package/script/deps.d.ts.map +1 -0
  26. package/script/mod.d.ts +1 -0
  27. package/script/mod.d.ts.map +1 -0
  28. package/script/src/Crypto.d.ts +1 -0
  29. package/script/src/Crypto.d.ts.map +1 -0
  30. package/script/src/Crypto.js +2 -3
  31. package/script/src/Middleware.d.ts +1 -0
  32. package/script/src/Middleware.d.ts.map +1 -0
  33. package/script/src/Middleware.js +1 -2
  34. package/script/src/Session.d.ts +11 -16
  35. package/script/src/Session.d.ts.map +1 -0
  36. package/script/src/Session.js +6 -7
  37. package/script/src/store/CookieStore.d.ts +1 -0
  38. package/script/src/store/CookieStore.d.ts.map +1 -0
  39. package/script/src/store/MemoryStore.d.ts +1 -0
  40. package/script/src/store/MemoryStore.d.ts.map +1 -0
  41. package/script/src/store/Store.d.ts +1 -0
  42. package/script/src/store/Store.d.ts.map +1 -0
  43. package/script/src/store/bun/BunSqliteStore.d.ts +1 -0
  44. package/script/src/store/bun/BunSqliteStore.d.ts.map +1 -0
  45. package/script/src/store/cloudflare/CloudflareD1Store.d.ts +1 -0
  46. package/script/src/store/cloudflare/CloudflareD1Store.d.ts.map +1 -0
package/README.md CHANGED
@@ -24,6 +24,7 @@ If you want to use a backend storage driver (instead of just storing session dat
24
24
  - Encrypted cookies thanks to [iron-webcrypto](https://github.com/brc-dd/iron-webcrypto)
25
25
  - Session expiration after inactivity
26
26
  - Session key rotation*
27
+ - Strong typing for session variables
27
28
 
28
29
  > *It is not necessary to rotate CookieStore sessions because of how a pure cookie session works (no server-side state). Therefore, using session key rotation will have no effect while using CookieStore.
29
30
 
@@ -55,9 +56,15 @@ import {
55
56
  CookieStore
56
57
  } from 'https://deno.land/x/hono_sessions/mod.ts'
57
58
 
59
+ // Add types to your session data (optional)
60
+ type SessionDataTypes = {
61
+ 'counter': number
62
+ }
63
+
64
+ // Set up your Hono instance, using your
58
65
  const app = new Hono<{
59
66
  Variables: {
60
- session: Session,
67
+ session: Session<SessionDataTypes>,
61
68
  session_key_rotation: boolean
62
69
  }
63
70
  }>()
@@ -78,11 +85,7 @@ app.use('*', sessionMiddleware({
78
85
  app.get('/', async (c, next) => {
79
86
  const session = c.get('session')
80
87
 
81
- if (session.get('counter')) {
82
- session.set('counter', session.get('counter') as number + 1)
83
- } else {
84
- session.set('counter', 1)
85
- }
88
+ session.set('counter', (session.get('counter') || 0) + 1)
86
89
 
87
90
  return c.html(`<h1>You have visited this page ${ session.get('counter') } times</h1>`)
88
91
  })
package/esm/deps.d.ts CHANGED
@@ -3,3 +3,4 @@ export { createMiddleware } from 'hono/factory';
3
3
  export { getCookie, setCookie } from 'hono/cookie';
4
4
  export type { CookieOptions } from 'hono/utils/cookie';
5
5
  export * as Iron from 'iron-webcrypto';
6
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA"}
package/esm/mod.d.ts CHANGED
@@ -7,3 +7,4 @@ import type { SessionData } from './src/Session.js';
7
7
  import Store from './src/store/Store.js';
8
8
  export { MemoryStore, CookieStore, sessionMiddleware, encrypt, decrypt, Session, };
9
9
  export type { SessionData, Store };
10
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,4BAA4B,CAAA;AACpD,OAAO,WAAW,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EACL,OAAO,EACP,OAAO,EACR,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,MAAM,sBAAsB,CAAA;AAExC,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,OAAO,GACR,CAAA;AAED,YAAY,EACV,WAAW,EACX,KAAK,EACN,CAAA"}
@@ -14,3 +14,4 @@ export declare function encrypt(password: string, payload: object | string): Pro
14
14
  * @returns Promise of the unencrypted value (string or object in most cases)
15
15
  */
16
16
  export declare function decrypt(password: string, encrypted: string): Promise<unknown>;
17
+ //# sourceMappingURL=Crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../src/src/Crypto.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzF;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAElF"}
@@ -12,3 +12,4 @@ interface SessionOptions {
12
12
  /** Function that returns a Hono-compatible session middleware */
13
13
  export declare function sessionMiddleware(options: SessionOptions): MiddlewareHandler;
14
14
  export {};
15
+ //# sourceMappingURL=Middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Middleware.d.ts","sourceRoot":"","sources":["../../src/src/Middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACtF,OAAO,KAAK,MAAM,kBAAkB,CAAA;AACpC,OAAO,WAAW,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,UAAU,cAAc;IACtB,KAAK,EAAE,KAAK,GAAG,WAAW,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAyI5E"}
@@ -1,31 +1,26 @@
1
- interface SessionDataEntry {
2
- value: unknown;
1
+ interface SessionDataEntry<T> {
2
+ value: T;
3
3
  flash: boolean;
4
4
  }
5
- /**
6
- * Interface for specifying the necessary data for a session entry
7
- */
8
- export interface SessionData {
9
- _data: Record<string, SessionDataEntry>;
5
+ export interface SessionData<T = any> {
6
+ _data: Record<string, SessionDataEntry<T>>;
10
7
  _expire: string | null;
11
8
  _delete: boolean;
12
9
  _accessed: string | null;
13
10
  }
14
- /**
15
- * Session class with methods for interacting with the session
16
- */
17
- export declare class Session {
11
+ export declare class Session<T = any> {
18
12
  private cache;
19
13
  constructor();
20
- setCache(cache_data: SessionData): void;
21
- getCache(): SessionData;
14
+ setCache(cache_data: SessionData<T>): void;
15
+ getCache(): SessionData<T>;
22
16
  setExpiration(expiration: string): void;
23
17
  reupSession(expiration: number | null | undefined): void;
24
18
  deleteSession(): void;
25
19
  sessionValid(): boolean;
26
20
  updateAccess(): void;
27
- get(key: string): unknown;
28
- set(key: string, value: unknown): void;
29
- flash(key: string, value: unknown): void;
21
+ get<K extends keyof T>(key: K): T[K] | null;
22
+ set<K extends keyof T>(key: K, value: T[K]): void;
23
+ flash<K extends keyof T>(key: K, value: T[K]): void;
30
24
  }
31
25
  export {};
26
+ //# sourceMappingURL=Session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/src/Session.ts"],"names":[],"mappings":"AAAA,UAAU,gBAAgB,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,qBAAa,OAAO,CAAC,CAAC,GAAG,GAAG;IAE1B,OAAO,CAAC,KAAK,CAAgB;;IAW7B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAInC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC;IAI1B,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAMjD,aAAa;IAIb,YAAY,IAAI,OAAO;IAIvB,YAAY;IAIZ,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAe3C,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAS1C,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;CAQ7C"}
@@ -1,6 +1,3 @@
1
- /**
2
- * Session class with methods for interacting with the session
3
- */
4
1
  export class Session {
5
2
  constructor() {
6
3
  Object.defineProperty(this, "cache", {
@@ -53,15 +50,17 @@ export class Session {
53
50
  }
54
51
  }
55
52
  set(key, value) {
56
- this.cache._data[key] = {
57
- value,
53
+ const entry = {
54
+ value: value,
58
55
  flash: false
59
56
  };
57
+ this.cache._data[key] = entry;
60
58
  }
61
59
  flash(key, value) {
62
- this.cache._data[key] = {
63
- value,
60
+ const entry = {
61
+ value: value,
64
62
  flash: true
65
63
  };
64
+ this.cache._data[key] = entry;
66
65
  }
67
66
  }
@@ -19,3 +19,4 @@ declare class CookieStore {
19
19
  persistSessionData(c: Context, session_data: SessionData): Promise<void>;
20
20
  }
21
21
  export default CookieStore;
22
+ //# sourceMappingURL=CookieStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStore.d.ts","sourceRoot":"","sources":["../../../src/src/store/CookieStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwB,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAoB,WAAW,EAAE,MAAM,cAAc,CAAA;AAE5D,UAAU,kBAAkB;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,cAAM,WAAW;IACR,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACxC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAA;IACxC,iBAAiB,EAAE,MAAM,CAAA;gBAEpB,OAAO,CAAC,EAAE,kBAAkB;IAMlC,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAyBnD,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW;IAKnD,aAAa,CAAC,CAAC,EAAE,OAAO;IAIxB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW;CAI/D;AAED,eAAe,WAAW,CAAA"}
@@ -12,3 +12,4 @@ declare class MemoryStore implements Store {
12
12
  persistSessionData(sid: string, session_data: SessionData): void;
13
13
  }
14
14
  export default MemoryStore;
15
+ //# sourceMappingURL=MemoryStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryStore.d.ts","sourceRoot":"","sources":["../../../src/src/store/MemoryStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C;;GAEG;AACH,cAAM,WAAY,YAAW,KAAK;IAChC,OAAO,CAAC,IAAI,CAA0B;;IAMtC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS;IAI3D,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW;IAIpD,aAAa,CAAC,GAAG,EAAE,MAAM;IAIzB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW;CAG1D;AAED,eAAe,WAAW,CAAA"}
@@ -8,3 +8,4 @@ export default interface Store {
8
8
  persistSessionData(sessionId: string, sessionData: SessionData): Promise<void> | void;
9
9
  deleteSession(sessionId: string): Promise<void> | void;
10
10
  }
11
+ //# sourceMappingURL=Store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../../src/src/store/Store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,KAAK;IAC5B,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAI,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IAC7G,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACjF,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACtF,aAAa,CAAC,SAAS,EAAE,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACxD"}
@@ -9,3 +9,4 @@ export declare class BunSqliteStore implements Store {
9
9
  deleteSession(sessionId: string): void;
10
10
  persistSessionData(sessionId: string, sessionData: SessionData): void;
11
11
  }
12
+ //# sourceMappingURL=BunSqliteStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BunSqliteStore.d.ts","sourceRoot":"","sources":["../../../../src/src/store/bun/BunSqliteStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,qBAAa,cAAe,YAAW,KAAK;IAC1C,EAAE,EAAE,GAAG,CAAA;IACP,SAAS,EAAE,MAAM,CAAA;gBAEL,EAAE,EAAE,GAAG,EAAE,SAAS,SAAa;IAO3C,cAAc,CAAC,SAAS,EAAE,MAAM;IAWhC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAC,WAAW,EAAE,WAAW;IAKxD,aAAa,CAAC,SAAS,EAAE,MAAM;IAK/B,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAC,WAAW,EAAE,WAAW;CAI9D"}
@@ -9,3 +9,4 @@ export declare class CloudflareD1Store implements Store {
9
9
  deleteSession(sessionId: string): Promise<void>;
10
10
  persistSessionData(sessionId: string, sessionData: SessionData): Promise<void>;
11
11
  }
12
+ //# sourceMappingURL=CloudflareD1Store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudflareD1Store.d.ts","sourceRoot":"","sources":["../../../../src/src/store/cloudflare/CloudflareD1Store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,qBAAa,iBAAkB,YAAW,KAAK;IAC7C,EAAE,EAAE,GAAG,CAAA;IACP,SAAS,EAAE,MAAM,CAAA;gBAEL,SAAS,GAAE,MAAmB;IAIpC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAC,SAAS;IAY3C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAC,WAAW,EAAE,WAAW;IAIxD,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;CAGrE"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
- "module": "./esm/mod.js",
3
- "main": "./script/mod.js",
4
2
  "name": "hono-sessions",
5
- "version": "0.5.8",
3
+ "version": "0.6.1",
6
4
  "description": "Cookie-based sessions for Hono web framework",
7
- "license": "MIT",
8
5
  "repository": {
9
6
  "type": "git",
10
7
  "url": "git+https://github.com/jcs224/hono_sessions.git"
11
8
  },
9
+ "license": "MIT",
12
10
  "bugs": {
13
11
  "url": "https://github.com/jcs224/hono_sessions/issues"
14
12
  },
13
+ "main": "./script/mod.js",
14
+ "module": "./esm/mod.js",
15
15
  "exports": {
16
16
  ".": {
17
17
  "import": "./esm/mod.js",
@@ -29,5 +29,6 @@
29
29
  "dependencies": {
30
30
  "hono": "^4.0.0",
31
31
  "iron-webcrypto": "0.10.1"
32
- }
32
+ },
33
+ "_generatedBy": "dnt@dev"
33
34
  }
package/script/deps.d.ts CHANGED
@@ -3,3 +3,4 @@ export { createMiddleware } from 'hono/factory';
3
3
  export { getCookie, setCookie } from 'hono/cookie';
4
4
  export type { CookieOptions } from 'hono/utils/cookie';
5
5
  export * as Iron from 'iron-webcrypto';
6
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA"}
package/script/mod.d.ts CHANGED
@@ -7,3 +7,4 @@ import type { SessionData } from './src/Session.js';
7
7
  import Store from './src/store/Store.js';
8
8
  export { MemoryStore, CookieStore, sessionMiddleware, encrypt, decrypt, Session, };
9
9
  export type { SessionData, Store };
10
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,4BAA4B,CAAA;AACpD,OAAO,WAAW,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EACL,OAAO,EACP,OAAO,EACR,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,MAAM,sBAAsB,CAAA;AAExC,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,OAAO,GACR,CAAA;AAED,YAAY,EACV,WAAW,EACX,KAAK,EACN,CAAA"}
@@ -14,3 +14,4 @@ export declare function encrypt(password: string, payload: object | string): Pro
14
14
  * @returns Promise of the unencrypted value (string or object in most cases)
15
15
  */
16
16
  export declare function decrypt(password: string, encrypted: string): Promise<unknown>;
17
+ //# sourceMappingURL=Crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../src/src/Crypto.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzF;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAElF"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decrypt = exports.encrypt = void 0;
3
+ exports.encrypt = encrypt;
4
+ exports.decrypt = decrypt;
4
5
  const deps_js_1 = require("../deps.js");
5
6
  /**
6
7
  * Encrypt a string or object value
@@ -12,7 +13,6 @@ const deps_js_1 = require("../deps.js");
12
13
  async function encrypt(password, payload) {
13
14
  return await deps_js_1.Iron.seal(globalThis.crypto, payload, password, deps_js_1.Iron.defaults);
14
15
  }
15
- exports.encrypt = encrypt;
16
16
  /**
17
17
  * Decrypt an encrypted payload
18
18
  *
@@ -23,4 +23,3 @@ exports.encrypt = encrypt;
23
23
  async function decrypt(password, encrypted) {
24
24
  return await deps_js_1.Iron.unseal(globalThis.crypto, encrypted, { default: password }, deps_js_1.Iron.defaults);
25
25
  }
26
- exports.decrypt = decrypt;
@@ -12,3 +12,4 @@ interface SessionOptions {
12
12
  /** Function that returns a Hono-compatible session middleware */
13
13
  export declare function sessionMiddleware(options: SessionOptions): MiddlewareHandler;
14
14
  export {};
15
+ //# sourceMappingURL=Middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Middleware.d.ts","sourceRoot":"","sources":["../../src/src/Middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACtF,OAAO,KAAK,MAAM,kBAAkB,CAAA;AACpC,OAAO,WAAW,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,UAAU,cAAc;IACtB,KAAK,EAAE,KAAK,GAAG,WAAW,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAyI5E"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.sessionMiddleware = void 0;
6
+ exports.sessionMiddleware = sessionMiddleware;
7
7
  const deps_js_1 = require("../deps.js");
8
8
  const CookieStore_js_1 = __importDefault(require("./store/CookieStore.js"));
9
9
  const mod_js_1 = require("../mod.js");
@@ -121,4 +121,3 @@ function sessionMiddleware(options) {
121
121
  });
122
122
  return middleware;
123
123
  }
124
- exports.sessionMiddleware = sessionMiddleware;
@@ -1,31 +1,26 @@
1
- interface SessionDataEntry {
2
- value: unknown;
1
+ interface SessionDataEntry<T> {
2
+ value: T;
3
3
  flash: boolean;
4
4
  }
5
- /**
6
- * Interface for specifying the necessary data for a session entry
7
- */
8
- export interface SessionData {
9
- _data: Record<string, SessionDataEntry>;
5
+ export interface SessionData<T = any> {
6
+ _data: Record<string, SessionDataEntry<T>>;
10
7
  _expire: string | null;
11
8
  _delete: boolean;
12
9
  _accessed: string | null;
13
10
  }
14
- /**
15
- * Session class with methods for interacting with the session
16
- */
17
- export declare class Session {
11
+ export declare class Session<T = any> {
18
12
  private cache;
19
13
  constructor();
20
- setCache(cache_data: SessionData): void;
21
- getCache(): SessionData;
14
+ setCache(cache_data: SessionData<T>): void;
15
+ getCache(): SessionData<T>;
22
16
  setExpiration(expiration: string): void;
23
17
  reupSession(expiration: number | null | undefined): void;
24
18
  deleteSession(): void;
25
19
  sessionValid(): boolean;
26
20
  updateAccess(): void;
27
- get(key: string): unknown;
28
- set(key: string, value: unknown): void;
29
- flash(key: string, value: unknown): void;
21
+ get<K extends keyof T>(key: K): T[K] | null;
22
+ set<K extends keyof T>(key: K, value: T[K]): void;
23
+ flash<K extends keyof T>(key: K, value: T[K]): void;
30
24
  }
31
25
  export {};
26
+ //# sourceMappingURL=Session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/src/Session.ts"],"names":[],"mappings":"AAAA,UAAU,gBAAgB,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,qBAAa,OAAO,CAAC,CAAC,GAAG,GAAG;IAE1B,OAAO,CAAC,KAAK,CAAgB;;IAW7B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAInC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC;IAI1B,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAMjD,aAAa;IAIb,YAAY,IAAI,OAAO;IAIvB,YAAY;IAIZ,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAe3C,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAS1C,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;CAQ7C"}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Session = void 0;
4
- /**
5
- * Session class with methods for interacting with the session
6
- */
7
4
  class Session {
8
5
  constructor() {
9
6
  Object.defineProperty(this, "cache", {
@@ -56,16 +53,18 @@ class Session {
56
53
  }
57
54
  }
58
55
  set(key, value) {
59
- this.cache._data[key] = {
60
- value,
56
+ const entry = {
57
+ value: value,
61
58
  flash: false
62
59
  };
60
+ this.cache._data[key] = entry;
63
61
  }
64
62
  flash(key, value) {
65
- this.cache._data[key] = {
66
- value,
63
+ const entry = {
64
+ value: value,
67
65
  flash: true
68
66
  };
67
+ this.cache._data[key] = entry;
69
68
  }
70
69
  }
71
70
  exports.Session = Session;
@@ -19,3 +19,4 @@ declare class CookieStore {
19
19
  persistSessionData(c: Context, session_data: SessionData): Promise<void>;
20
20
  }
21
21
  export default CookieStore;
22
+ //# sourceMappingURL=CookieStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStore.d.ts","sourceRoot":"","sources":["../../../src/src/store/CookieStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwB,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAoB,WAAW,EAAE,MAAM,cAAc,CAAA;AAE5D,UAAU,kBAAkB;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,cAAM,WAAW;IACR,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACxC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAA;IACxC,iBAAiB,EAAE,MAAM,CAAA;gBAEpB,OAAO,CAAC,EAAE,kBAAkB;IAMlC,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAyBnD,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW;IAKnD,aAAa,CAAC,CAAC,EAAE,OAAO;IAIxB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW;CAI/D;AAED,eAAe,WAAW,CAAA"}
@@ -12,3 +12,4 @@ declare class MemoryStore implements Store {
12
12
  persistSessionData(sid: string, session_data: SessionData): void;
13
13
  }
14
14
  export default MemoryStore;
15
+ //# sourceMappingURL=MemoryStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryStore.d.ts","sourceRoot":"","sources":["../../../src/src/store/MemoryStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C;;GAEG;AACH,cAAM,WAAY,YAAW,KAAK;IAChC,OAAO,CAAC,IAAI,CAA0B;;IAMtC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS;IAI3D,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW;IAIpD,aAAa,CAAC,GAAG,EAAE,MAAM;IAIzB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW;CAG1D;AAED,eAAe,WAAW,CAAA"}
@@ -8,3 +8,4 @@ export default interface Store {
8
8
  persistSessionData(sessionId: string, sessionData: SessionData): Promise<void> | void;
9
9
  deleteSession(sessionId: string): Promise<void> | void;
10
10
  }
11
+ //# sourceMappingURL=Store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../../src/src/store/Store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,KAAK;IAC5B,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAI,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IAC7G,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACjF,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACtF,aAAa,CAAC,SAAS,EAAE,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACxD"}
@@ -9,3 +9,4 @@ export declare class BunSqliteStore implements Store {
9
9
  deleteSession(sessionId: string): void;
10
10
  persistSessionData(sessionId: string, sessionData: SessionData): void;
11
11
  }
12
+ //# sourceMappingURL=BunSqliteStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BunSqliteStore.d.ts","sourceRoot":"","sources":["../../../../src/src/store/bun/BunSqliteStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,qBAAa,cAAe,YAAW,KAAK;IAC1C,EAAE,EAAE,GAAG,CAAA;IACP,SAAS,EAAE,MAAM,CAAA;gBAEL,EAAE,EAAE,GAAG,EAAE,SAAS,SAAa;IAO3C,cAAc,CAAC,SAAS,EAAE,MAAM;IAWhC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAC,WAAW,EAAE,WAAW;IAKxD,aAAa,CAAC,SAAS,EAAE,MAAM;IAK/B,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAC,WAAW,EAAE,WAAW;CAI9D"}
@@ -9,3 +9,4 @@ export declare class CloudflareD1Store implements Store {
9
9
  deleteSession(sessionId: string): Promise<void>;
10
10
  persistSessionData(sessionId: string, sessionData: SessionData): Promise<void>;
11
11
  }
12
+ //# sourceMappingURL=CloudflareD1Store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudflareD1Store.d.ts","sourceRoot":"","sources":["../../../../src/src/store/cloudflare/CloudflareD1Store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,qBAAa,iBAAkB,YAAW,KAAK;IAC7C,EAAE,EAAE,GAAG,CAAA;IACP,SAAS,EAAE,MAAM,CAAA;gBAEL,SAAS,GAAE,MAAmB;IAIpC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAC,SAAS;IAY3C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAC,WAAW,EAAE,WAAW;IAIxD,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;CAGrE"}