@furystack/rest-service 12.1.0 → 12.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [12.1.1] - 2026-02-27
4
+
5
+ ### 🐛 Bug Fixes
6
+
7
+ - Fixed `HttpAuthenticationSettings` not respecting its `TUser` and `TSession` generic type parameters when resolving data sets. `getUserDataSet` now uses the configurable `model` property instead of the hardcoded `User` class, and `getSessionDataSet` now uses the new `sessionModel` property instead of the hardcoded `DefaultSession` class. This allows custom user and session types to work correctly with `useHttpAuthentication`.
8
+
3
9
  ## [12.1.0] - 2026-02-26
4
10
 
5
11
  ### 🔧 Chores
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAI9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAM3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAGrE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,CAAC,SAAS,OAAO,EAAE,KAAK,mBAAmB,CAAC,CAAC,CAAC;;;EACpB,CAAA;AAE/D;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,KAAK,SAAS,IAAI,EAAE,QAAQ,SAAS,cAAc,EACvF,UAAU,QAAQ,EAClB,WAAW,OAAO,CAAC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,SAmChE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAAG,mBAAmB,kBAGnF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,QAAQ,GAAI,SAAS;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAAG,YAAY,kBAGtE,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAI9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAM3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAGrE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,CAAC,SAAS,OAAO,EAAE,KAAK,mBAAmB,CAAC,CAAC,CAAC;;;EACpB,CAAA;AAE/D;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,KAAK,SAAS,IAAI,EAAE,QAAQ,SAAS,cAAc,EACvF,UAAU,QAAQ,EAClB,WAAW,OAAO,CAAC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,SAiChE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAAG,mBAAmB,kBAGnF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,QAAQ,GAAI,SAAS;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAAG,YAAY,kBAGtE,CAAA"}
package/esm/helpers.js CHANGED
@@ -27,8 +27,6 @@ export const useHttpAuthentication = (injector, settings) => {
27
27
  const systemInjector = useSystemIdentityContext({ injector, username: 'useHttpAuthentication' });
28
28
  const passwordAuthenticator = injector.getInstance(PasswordAuthenticator);
29
29
  const userDataSet = mergedSettings.getUserDataSet(systemInjector);
30
- // Narrow from DataSet<TSession, keyof TSession> to DataSet<DefaultSession, 'sessionId'>
31
- // because the built-in providers operate on DefaultSession with the concrete 'sessionId' key
32
30
  const sessionDataSet = mergedSettings.getSessionDataSet(systemInjector);
33
31
  const providers = [];
34
32
  if (mergedSettings.enableBasicAuth) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { User } from '@furystack/core';
2
2
  import type { Constructable, Injector } from '@furystack/inject';
3
- import type { DataSet } from '@furystack/repository';
4
3
  import type { AuthenticationProvider } from './authentication-providers/authentication-provider.js';
5
4
  import { DefaultSession } from './models/default-session.js';
6
5
  /**
@@ -8,8 +7,9 @@ import { DefaultSession } from './models/default-session.js';
8
7
  */
9
8
  export declare class HttpAuthenticationSettings<TUser extends User, TSession extends DefaultSession> {
10
9
  model: Constructable<TUser>;
11
- getUserDataSet: (injector: Injector) => DataSet<User, "username", import("@furystack/core").WithOptionalId<User, "username">>;
12
- getSessionDataSet: (injector: Injector) => DataSet<TSession, keyof TSession>;
10
+ getUserDataSet: (injector: Injector) => import("@furystack/repository").DataSet<TUser, "username" & keyof TUser, import("@furystack/core").WithOptionalId<TUser, "username" & keyof TUser>>;
11
+ sessionModel: Constructable<TSession>;
12
+ getSessionDataSet: (injector: Injector) => import("@furystack/repository").DataSet<TSession, "sessionId" & keyof TSession, import("@furystack/core").WithOptionalId<TSession, "sessionId" & keyof TSession>>;
13
13
  cookieName: string;
14
14
  enableBasicAuth: boolean;
15
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"http-authentication-settings.d.ts","sourceRoot":"","sources":["../src/http-authentication-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAA;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D;;GAEG;AACH,qBACa,0BAA0B,CAAC,KAAK,SAAS,IAAI,EAAE,QAAQ,SAAS,cAAc;IAClF,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAA+B;IAE1D,cAAc,GAAI,UAAU,QAAQ,2FAA8C;IAElF,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAC,CACmB;IAE/F,UAAU,SAAQ;IAClB,eAAe,UAAO;IAE7B;;;;OAIG;IACI,uBAAuB,EAAE,sBAAsB,EAAE,CAAK;CAC9D"}
1
+ {"version":3,"file":"http-authentication-settings.d.ts","sourceRoot":"","sources":["../src/http-authentication-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGhE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAA;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D;;GAEG;AACH,qBACa,0BAA0B,CAAC,KAAK,SAAS,IAAI,EAAE,QAAQ,SAAS,cAAc;IAClF,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAA+B;IAE1D,cAAc,GAAI,UAAU,QAAQ,yJACkC;IAEtE,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,CAA4C;IAEjF,iBAAiB,GAAI,UAAU,QAAQ,uKAC2C;IAElF,UAAU,SAAQ;IAClB,eAAe,UAAO;IAE7B;;;;OAIG;IACI,uBAAuB,EAAE,sBAAsB,EAAE,CAAK;CAC9D"}
@@ -13,8 +13,9 @@ import { DefaultSession } from './models/default-session.js';
13
13
  */
14
14
  let HttpAuthenticationSettings = class HttpAuthenticationSettings {
15
15
  model = User;
16
- getUserDataSet = (injector) => getDataSetFor(injector, User, 'username');
17
- getSessionDataSet = (injector) => getDataSetFor(injector, DefaultSession, 'sessionId');
16
+ getUserDataSet = (injector) => getDataSetFor(injector, this.model, 'username');
17
+ sessionModel = DefaultSession;
18
+ getSessionDataSet = (injector) => getDataSetFor(injector, this.sessionModel, 'sessionId');
18
19
  cookieName = 'fss';
19
20
  enableBasicAuth = true;
20
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"http-authentication-settings.js","sourceRoot":"","sources":["../src/http-authentication-settings.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D;;GAEG;AAEI,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAC9B,KAAK,GAAyB,IAA4B,CAAA;IAE1D,cAAc,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IAElF,iBAAiB,GAA8D,CAAC,QAAQ,EAAE,EAAE,CACjG,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAiD,CAAA;IAE/F,UAAU,GAAG,KAAK,CAAA;IAClB,eAAe,GAAG,IAAI,CAAA;IAE7B;;;;OAIG;IACI,uBAAuB,GAA6B,EAAE,CAAA;CAC9D,CAAA;AAjBY,0BAA0B;IADtC,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;GACzB,0BAA0B,CAiBtC"}
1
+ {"version":3,"file":"http-authentication-settings.js","sourceRoot":"","sources":["../src/http-authentication-settings.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE5D;;GAEG;AAEI,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAC9B,KAAK,GAAyB,IAA4B,CAAA;IAE1D,cAAc,GAAG,CAAC,QAAkB,EAAE,EAAE,CAC7C,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,UAAsC,CAAC,CAAA;IAEtE,YAAY,GAA4B,cAAyC,CAAA;IAEjF,iBAAiB,GAAG,CAAC,QAAkB,EAAE,EAAE,CAChD,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,WAA2C,CAAC,CAAA;IAElF,UAAU,GAAG,KAAK,CAAA;IAClB,eAAe,GAAG,IAAI,CAAA;IAE7B;;;;OAIG;IACI,uBAAuB,GAA6B,EAAE,CAAA;CAC9D,CAAA;AApBY,0BAA0B;IADtC,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;GACzB,0BAA0B,CAoBtC"}
@@ -7,7 +7,7 @@ import type { DefaultSession } from './models/default-session.js';
7
7
  */
8
8
  export declare class HttpUserContext {
9
9
  getUserDataSet: () => import("@furystack/repository").DataSet<User, "username", import("@furystack/core").WithOptionalId<User, "username">>;
10
- getSessionDataSet: () => import("@furystack/repository").DataSet<DefaultSession, keyof DefaultSession, import("@furystack/core").WithOptionalId<DefaultSession, keyof DefaultSession>>;
10
+ getSessionDataSet: () => import("@furystack/repository").DataSet<DefaultSession, "sessionId", import("@furystack/core").WithOptionalId<DefaultSession, "sessionId">>;
11
11
  private getUserByName;
12
12
  private user?;
13
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"http-user-context.d.ts","sourceRoot":"","sources":["../src/http-user-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAM3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAE3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;GAEG;AACH,qBACa,eAAe;IACnB,cAAc,8HAAgE;IAE9E,iBAAiB,sKAAmE;IAE3F,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,IAAI,CAAC,CAAM;IAEnB;;;OAGG;IACU,eAAe,CAAC,OAAO,EAAE,eAAe;IASrD;;;;;OAKG;IACU,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzF;;;;;OAKG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAanD,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;IAQ9D,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI;IAIxF;;;;;OAKG;IACU,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1F;;;;;OAKG;IACU,WAAW,CACtB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GACrE,OAAO,CAAC,IAAI,CAAC;IAQH,YAAY,CACvB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EACzC,QAAQ,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE;IAalE,SACwB,cAAc,EAAE,0BAA0B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAExF,iBACyB,cAAc,CAAU;IAEjD,iBACyB,aAAa,CAAuB;IAEtD,IAAI;CAiBZ"}
1
+ {"version":3,"file":"http-user-context.d.ts","sourceRoot":"","sources":["../src/http-user-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAM3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAE3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;GAEG;AACH,qBACa,eAAe;IACnB,cAAc,8HAAgE;IAE9E,iBAAiB,oJAAmE;IAE3F,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,IAAI,CAAC,CAAM;IAEnB;;;OAGG;IACU,eAAe,CAAC,OAAO,EAAE,eAAe;IASrD;;;;;OAKG;IACU,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzF;;;;;OAKG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAanD,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;IAQ9D,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI;IAIxF;;;;;OAKG;IACU,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1F;;;;;OAKG;IACU,WAAW,CACtB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GACrE,OAAO,CAAC,IAAI,CAAC;IAQH,YAAY,CACvB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,EACzC,QAAQ,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE;IAalE,SACwB,cAAc,EAAE,0BAA0B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAExF,iBACyB,cAAc,CAAU;IAEjD,iBACyB,aAAa,CAAuB;IAEtD,IAAI;CAiBZ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@furystack/rest-service",
3
- "version": "12.1.0",
3
+ "version": "12.1.1",
4
4
  "description": "REST API service implementation for FuryStack",
5
5
  "type": "module",
6
6
  "scripts": {
package/src/helpers.ts CHANGED
@@ -42,9 +42,7 @@ export const useHttpAuthentication = <TUser extends User, TSession extends Defau
42
42
  const mergedSettings = Object.assign(new HttpAuthenticationSettings<TUser, TSession>(), settings)
43
43
  const systemInjector = useSystemIdentityContext({ injector, username: 'useHttpAuthentication' })
44
44
  const passwordAuthenticator = injector.getInstance(PasswordAuthenticator)
45
- const userDataSet = mergedSettings.getUserDataSet(systemInjector)
46
- // Narrow from DataSet<TSession, keyof TSession> to DataSet<DefaultSession, 'sessionId'>
47
- // because the built-in providers operate on DefaultSession with the concrete 'sessionId' key
45
+ const userDataSet = mergedSettings.getUserDataSet(systemInjector) as unknown as DataSet<User, 'username'>
48
46
  const sessionDataSet = mergedSettings.getSessionDataSet(systemInjector) as unknown as DataSet<
49
47
  DefaultSession,
50
48
  'sessionId'
@@ -1,7 +1,6 @@
1
1
  import { User } from '@furystack/core'
2
2
  import type { Constructable, Injector } from '@furystack/inject'
3
3
  import { Injectable } from '@furystack/inject'
4
- import type { DataSet } from '@furystack/repository'
5
4
  import { getDataSetFor } from '@furystack/repository'
6
5
  import type { AuthenticationProvider } from './authentication-providers/authentication-provider.js'
7
6
  import { DefaultSession } from './models/default-session.js'
@@ -13,10 +12,13 @@ import { DefaultSession } from './models/default-session.js'
13
12
  export class HttpAuthenticationSettings<TUser extends User, TSession extends DefaultSession> {
14
13
  public model: Constructable<TUser> = User as Constructable<TUser>
15
14
 
16
- public getUserDataSet = (injector: Injector) => getDataSetFor(injector, User, 'username')
15
+ public getUserDataSet = (injector: Injector) =>
16
+ getDataSetFor(injector, this.model, 'username' as 'username' & keyof TUser)
17
17
 
18
- public getSessionDataSet: (injector: Injector) => DataSet<TSession, keyof TSession> = (injector) =>
19
- getDataSetFor(injector, DefaultSession, 'sessionId') as unknown as DataSet<TSession, keyof TSession>
18
+ public sessionModel: Constructable<TSession> = DefaultSession as Constructable<TSession>
19
+
20
+ public getSessionDataSet = (injector: Injector) =>
21
+ getDataSetFor(injector, this.sessionModel, 'sessionId' as 'sessionId' & keyof TSession)
20
22
 
21
23
  public cookieName = 'fss'
22
24
  public enableBasicAuth = true