@furystack/core 10.4.9 → 11.0.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 (59) hide show
  1. package/dist/global-disposable.spec.js +3 -3
  2. package/dist/global-disposable.spec.js.map +1 -1
  3. package/dist/helpers.js +48 -0
  4. package/dist/helpers.js.map +1 -0
  5. package/dist/identity-context.spec.js +9 -9
  6. package/dist/identity-context.spec.js.map +1 -1
  7. package/dist/in-memory-store.js +0 -4
  8. package/dist/in-memory-store.js.map +1 -1
  9. package/dist/index.js +2 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/store-manager.spec.js +2 -3
  12. package/dist/store-manager.spec.js.map +1 -1
  13. package/package.json +8 -9
  14. package/src/global-disposable.spec.ts +3 -3
  15. package/src/helpers.ts +49 -0
  16. package/src/identity-context.spec.ts +9 -9
  17. package/src/in-memory-store.ts +0 -4
  18. package/src/index.ts +2 -2
  19. package/src/store-manager.spec.ts +5 -8
  20. package/{dist → types}/create-physical-store-tests.d.ts +0 -0
  21. package/{dist → types}/create-physical-store-tests.d.ts.map +0 -0
  22. package/{dist → types}/errors/aggregated-error.d.ts +0 -0
  23. package/{dist → types}/errors/aggregated-error.d.ts.map +0 -0
  24. package/{dist → types}/errors/authorization-error.d.ts +0 -0
  25. package/{dist → types}/errors/authorization-error.d.ts.map +0 -0
  26. package/{dist → types}/errors/index.d.ts +0 -0
  27. package/{dist → types}/errors/index.d.ts.map +0 -0
  28. package/types/global-disposable.spec.d.ts +2 -0
  29. package/{dist → types}/global-disposable.spec.d.ts.map +1 -1
  30. package/{dist → types}/global-disposables.d.ts +0 -0
  31. package/{dist → types}/global-disposables.d.ts.map +0 -0
  32. package/types/helpers.d.ts +40 -0
  33. package/types/helpers.d.ts.map +1 -0
  34. package/{dist → types}/identity-context.d.ts +0 -0
  35. package/{dist → types}/identity-context.d.ts.map +0 -0
  36. package/types/identity-context.spec.d.ts +2 -0
  37. package/{dist → types}/identity-context.spec.d.ts.map +1 -1
  38. package/{dist → types}/in-memory-store.d.ts +0 -0
  39. package/{dist → types}/in-memory-store.d.ts.map +1 -1
  40. package/{dist → types}/in-memory-store.spec.d.ts +0 -0
  41. package/{dist → types}/in-memory-store.spec.d.ts.map +0 -0
  42. package/{dist → types}/index.d.ts +2 -1
  43. package/{dist → types}/index.d.ts.map +1 -1
  44. package/{dist → types}/models/physical-store.d.ts +0 -0
  45. package/{dist → types}/models/physical-store.d.ts.map +0 -0
  46. package/{dist → types}/models/user.d.ts +0 -0
  47. package/{dist → types}/models/user.d.ts.map +0 -0
  48. package/{dist → types}/store-manager.d.ts +0 -0
  49. package/{dist → types}/store-manager.d.ts.map +0 -0
  50. package/types/store-manager.spec.d.ts +2 -0
  51. package/{dist → types}/store-manager.spec.d.ts.map +1 -1
  52. package/dist/global-disposable.spec.d.ts +0 -2
  53. package/dist/identity-context.spec.d.ts +0 -2
  54. package/dist/injector-extensions.d.ts +0 -39
  55. package/dist/injector-extensions.d.ts.map +0 -1
  56. package/dist/injector-extensions.js +0 -24
  57. package/dist/injector-extensions.js.map +0 -1
  58. package/dist/store-manager.spec.d.ts +0 -2
  59. package/src/injector-extensions.ts +0 -68
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const inject_1 = require("@furystack/inject");
4
4
  const utils_1 = require("@furystack/utils");
5
5
  const global_disposables_1 = require("./global-disposables");
6
- require("./injector-extensions");
6
+ const helpers_1 = require("./helpers");
7
7
  describe('Global Disposables', () => {
8
8
  it('Should be empty by default', () => {
9
9
  expect(global_disposables_1.globalDisposables.size).toBe(0);
@@ -17,14 +17,14 @@ describe('Global Disposables', () => {
17
17
  });
18
18
  it('Should be filled from an injector extension', () => {
19
19
  (0, utils_1.using)(new inject_1.Injector(), (i) => {
20
- i.disposeOnProcessExit();
20
+ (0, helpers_1.disposeOnProcessExit)(i);
21
21
  expect(global_disposables_1.globalDisposables).toContain(i);
22
22
  });
23
23
  });
24
24
  it('Should dispose the injector on exit', async () => {
25
25
  (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
26
26
  i.dispose = jest.fn(i.dispose);
27
- i.disposeOnProcessExit();
27
+ (0, helpers_1.disposeOnProcessExit)(i);
28
28
  await (0, global_disposables_1.exitHandler)();
29
29
  expect(i.dispose).toBeCalled();
30
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"global-disposable.spec.js","sourceRoot":"","sources":["../src/global-disposable.spec.ts"],"names":[],"mappings":";;AAAA,8CAA4C;AAC5C,4CAAoD;AACpD,6DAAqE;AACrE,iCAA8B;AAE9B,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,sCAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;QACxD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;QAC1D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;QAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;QAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,CAAC,CAAC,oBAAoB,EAAE,CAAA;YACxB,MAAM,CAAC,sCAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACrC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YAC9B,CAAC,CAAC,oBAAoB,EAAE,CAAA;YACxB,MAAM,IAAA,gCAAW,GAAE,CAAA;YACnB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"global-disposable.spec.js","sourceRoot":"","sources":["../src/global-disposable.spec.ts"],"names":[],"mappings":";;AAAA,8CAA4C;AAC5C,4CAAoD;AACpD,6DAAqE;AACrE,uCAAgD;AAEhD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,sCAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;QACxD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;QAC1D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;QAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;QAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAW,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,IAAA,8BAAoB,EAAC,CAAC,CAAC,CAAA;YACvB,MAAM,CAAC,sCAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACrC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YAC9B,IAAA,8BAAoB,EAAC,CAAC,CAAC,CAAA;YACvB,MAAM,IAAA,gCAAW,GAAE,CAAA;YACnB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addStore = exports.getStoreManager = exports.getCurrentUser = exports.isAuthorized = exports.isAuthenticated = exports.disposeOnProcessExit = void 0;
4
+ const global_disposables_1 = require("./global-disposables");
5
+ const identity_context_1 = require("./identity-context");
6
+ const store_manager_1 = require("./store-manager");
7
+ /**
8
+ * The disposable will be disposed on process exit
9
+ *
10
+ * @param disposable The Disposable object to dispose on process exit
11
+ * @returns A set of global disposables
12
+ */
13
+ const disposeOnProcessExit = (disposable) => global_disposables_1.globalDisposables.add(disposable);
14
+ exports.disposeOnProcessExit = disposeOnProcessExit;
15
+ /**
16
+ * @param injector The Injector instance
17
+ * @returns the current authentication status from the identity context
18
+ */
19
+ const isAuthenticated = async (injector) => injector.getInstance(identity_context_1.IdentityContext).isAuthenticated();
20
+ exports.isAuthenticated = isAuthenticated;
21
+ /**
22
+ * @param injector The Injector instance
23
+ * @param {...any} roles A list of roles
24
+ * @returns if the current authorization status from the identity context
25
+ */
26
+ const isAuthorized = async (injector, ...roles) => injector.getInstance(identity_context_1.IdentityContext).isAuthorized(...roles);
27
+ exports.isAuthorized = isAuthorized;
28
+ /**
29
+ * @param injector The Injector instance
30
+ * @returns The current user from the identity context
31
+ */
32
+ const getCurrentUser = async (injector) => injector.getInstance(identity_context_1.IdentityContext).getCurrentUser();
33
+ exports.getCurrentUser = getCurrentUser;
34
+ /**
35
+ * @param injector The Injector instance
36
+ * @returns A Store Manager instance to setup stores
37
+ */
38
+ const getStoreManager = (injector) => injector.getInstance(store_manager_1.StoreManager);
39
+ exports.getStoreManager = getStoreManager;
40
+ /**
41
+ *
42
+ * @param injector The Injector instance
43
+ * @param store The store to add
44
+ * @returns The Store Manager instance for chaining
45
+ */
46
+ const addStore = (injector, store) => (0, exports.getStoreManager)(injector).addStore(store);
47
+ exports.addStore = addStore;
48
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AACA,6DAAwD;AACxD,yDAAoD;AAEpD,mDAA8C;AAG9C;;;;;GAKG;AACI,MAAM,oBAAoB,GAAG,CAAC,UAAsB,EAAE,EAAE,CAAC,sCAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AAApF,QAAA,oBAAoB,wBAAgE;AAEjG;;;GAGG;AACI,MAAM,eAAe,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAC,eAAe,EAAE,CAAA;AAAvG,QAAA,eAAe,mBAAwF;AAEpH;;;;GAIG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,QAAkB,EAAE,GAAG,KAAe,EAAE,EAAE,CAC3E,QAAQ,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAA;AADjD,QAAA,YAAY,gBACqC;AAE9D;;;GAGG;AACI,MAAM,cAAc,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAC,cAAc,EAAE,CAAA;AAArG,QAAA,cAAc,kBAAuF;AAElH;;;GAGG;AACI,MAAM,eAAe,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAA;AAA5E,QAAA,eAAe,mBAA6D;AAEzF;;;;;GAKG;AACI,MAAM,QAAQ,GAAG,CAAiC,QAAkB,EAAE,KAAoC,EAAE,EAAE,CACnH,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAD9B,QAAA,QAAQ,YACsB"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const inject_1 = require("@furystack/inject");
4
4
  const utils_1 = require("@furystack/utils");
5
5
  const identity_context_1 = require("./identity-context");
6
- require("./injector-extensions");
6
+ const helpers_1 = require("./helpers");
7
7
  describe('IdentityContext', () => {
8
8
  it('Should be retrieved from an Injector', () => {
9
9
  (0, utils_1.using)(new inject_1.Injector(), (i) => {
@@ -11,29 +11,29 @@ describe('IdentityContext', () => {
11
11
  expect(ctx).toBeInstanceOf(identity_context_1.IdentityContext);
12
12
  });
13
13
  });
14
- it('isAuthenticated should be called from extension', async () => {
14
+ it('isAuthenticated should be called from helper', async () => {
15
15
  await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
16
16
  const ctx = i.getInstance(identity_context_1.IdentityContext);
17
17
  const spy = jest.spyOn(ctx, 'isAuthenticated');
18
- const isAuthenticated = await i.isAuthenticated();
19
- expect(isAuthenticated).toBeFalsy();
18
+ const isAuth = await (0, helpers_1.isAuthenticated)(i);
19
+ expect(isAuth).toBeFalsy();
20
20
  expect(spy).toBeCalledTimes(1);
21
21
  });
22
22
  });
23
- it('isAuthorized should be called from extension', async () => {
23
+ it('isAuthorized should be called from helper', async () => {
24
24
  await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
25
25
  const ctx = i.getInstance(identity_context_1.IdentityContext);
26
26
  const spy = jest.spyOn(ctx, 'isAuthorized');
27
- const isAuthorized = await i.isAuthorized();
28
- expect(isAuthorized).toBeFalsy();
27
+ const isAuth = await (0, helpers_1.isAuthorized)(i);
28
+ expect(isAuth).toBeFalsy();
29
29
  expect(spy).toBeCalledTimes(1);
30
30
  });
31
31
  });
32
- it('getCurrentUser should be called from extension', async () => {
32
+ it('getCurrentUser should be called from helper', async () => {
33
33
  await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
34
34
  const ctx = i.getInstance(identity_context_1.IdentityContext);
35
35
  const spy = jest.spyOn(ctx, 'getCurrentUser');
36
- await expect(i.getCurrentUser()).rejects.toThrowError('');
36
+ await expect((0, helpers_1.getCurrentUser)(i)).rejects.toThrowError('');
37
37
  expect(spy).toBeCalledTimes(1);
38
38
  });
39
39
  });
@@ -1 +1 @@
1
- {"version":3,"file":"identity-context.spec.js","sourceRoot":"","sources":["../src/identity-context.spec.ts"],"names":[],"mappings":";;AAAA,8CAA4C;AAC5C,4CAAoD;AACpD,yDAAoD;AACpD,iCAA8B;AAE9B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAA;YAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,kCAAe,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;YAC9C,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,eAAe,EAAE,CAAA;YACjD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,CAAA;YACnC,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,YAAY,EAAE,CAAA;YAC3C,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAA;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;YAC7C,MAAM,MAAM,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"identity-context.spec.js","sourceRoot":"","sources":["../src/identity-context.spec.ts"],"names":[],"mappings":";;AAAA,8CAA4C;AAC5C,4CAAoD;AACpD,yDAAoD;AACpD,uCAAyE;AAEzE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,IAAA,aAAK,EAAC,IAAI,iBAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAA;YAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,kCAAe,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAe,EAAC,CAAC,CAAC,CAAA;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAA;YAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAY,EAAC,CAAC,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAA;YAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAA;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;YAC7C,MAAM,MAAM,CAAC,IAAA,wBAAc,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YACxD,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InMemoryStore = void 0;
4
- const uuid_1 = require("uuid");
5
4
  const physical_store_1 = require("./models/physical-store");
6
5
  class InMemoryStore {
7
6
  /**
@@ -30,9 +29,6 @@ class InMemoryStore {
30
29
  async add(...entries) {
31
30
  const created = entries.map((e) => {
32
31
  const entry = { ...e };
33
- if (entry[this.primaryKey] === undefined) {
34
- entry[this.primaryKey] = (0, uuid_1.v4)();
35
- }
36
32
  if (this.cache.has(entry[this.primaryKey])) {
37
33
  throw new Error('Item with the primary key already exists.');
38
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-store.js","sourceRoot":"","sources":["../src/in-memory-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-store.js","sourceRoot":"","sources":["../src/in-memory-store.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,5 +8,6 @@ tslib_1.__exportStar(require("./in-memory-store"), exports);
8
8
  tslib_1.__exportStar(require("./store-manager"), exports);
9
9
  tslib_1.__exportStar(require("./global-disposables"), exports);
10
10
  tslib_1.__exportStar(require("./identity-context"), exports);
11
- require("./injector-extensions");
11
+ tslib_1.__exportStar(require("./create-physical-store-tests"), exports);
12
+ tslib_1.__exportStar(require("./helpers"), exports);
12
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAAwB;AACxB,kEAAuC;AACvC,wDAA6B;AAC7B,4DAAiC;AACjC,0DAA+B;AAC/B,+DAAoC;AACpC,6DAAkC;AAElC,iCAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAAwB;AACxB,kEAAuC;AACvC,wDAA6B;AAC7B,4DAAiC;AACjC,0DAA+B;AAC/B,+DAAoC;AACpC,6DAAkC;AAClC,wEAA6C;AAC7C,oDAAyB"}
@@ -4,7 +4,6 @@ const utils_1 = require("@furystack/utils");
4
4
  const inject_1 = require("@furystack/inject");
5
5
  const store_manager_1 = require("./store-manager");
6
6
  const in_memory_store_1 = require("./in-memory-store");
7
- require("./injector-extensions");
8
7
  const errors_1 = require("./errors");
9
8
  const create_physical_store_tests_1 = require("./create-physical-store-tests");
10
9
  class Test {
@@ -31,10 +30,10 @@ describe('StoreManager', () => {
31
30
  });
32
31
  it('Can set up stores with an extension method', () => {
33
32
  (0, utils_1.using)(new inject_1.Injector(), (i) => {
34
- i.setupStores((stores) => stores.addStore(new in_memory_store_1.InMemoryStore({
33
+ i.getInstance(store_manager_1.StoreManager).addStore(new in_memory_store_1.InMemoryStore({
35
34
  model: Test,
36
35
  primaryKey: 'id',
37
- })));
36
+ }));
38
37
  expect(i.getInstance(store_manager_1.StoreManager).getStoreFor(Test, 'id')).toBeInstanceOf(in_memory_store_1.InMemoryStore);
39
38
  });
40
39
  });
@@ -1 +1 @@
1
- {"version":3,"file":"store-manager.spec.js","sourceRoot":"","sources":["../src/store-manager.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-manager.spec.js","sourceRoot":"","sources":["../src/store-manager.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@furystack/core",
3
- "version": "10.4.9",
3
+ "version": "11.0.1",
4
4
  "description": "Core FuryStack package",
5
5
  "main": "dist/index.js",
6
6
  "files": [
7
7
  "dist",
8
+ "types",
8
9
  "src"
9
10
  ],
10
11
  "repository": {
@@ -25,17 +26,15 @@
25
26
  },
26
27
  "homepage": "https://github.com/furystack/furystack",
27
28
  "devDependencies": {
28
- "@types/jest": "^27.4.1",
29
- "@types/node": "^17.0.23",
30
- "@types/uuid": "^8.3.4"
29
+ "@types/jest": "^27.5.0",
30
+ "@types/node": "^17.0.31"
31
31
  },
32
32
  "dependencies": {
33
- "@furystack/inject": "^5.0.6",
34
- "@furystack/utils": "^2.0.5",
33
+ "@furystack/inject": "^6.0.1",
34
+ "@furystack/utils": "^3.0.1",
35
35
  "semaphore-async-await": "^1.5.1",
36
- "tslib": "^2.3.1",
37
- "uuid": "^8.3.2"
36
+ "tslib": "^2.4.0"
38
37
  },
39
- "typings": "./dist/index.d.ts",
38
+ "typings": "./types/index.d.ts",
40
39
  "gitHead": "1045d854bfd8c475b7035471d130d401417a2321"
41
40
  }
@@ -1,7 +1,7 @@
1
1
  import { Injector } from '@furystack/inject'
2
2
  import { using, usingAsync } from '@furystack/utils'
3
3
  import { globalDisposables, exitHandler } from './global-disposables'
4
- import './injector-extensions'
4
+ import { disposeOnProcessExit } from './helpers'
5
5
 
6
6
  describe('Global Disposables', () => {
7
7
  it('Should be empty by default', () => {
@@ -18,14 +18,14 @@ describe('Global Disposables', () => {
18
18
 
19
19
  it('Should be filled from an injector extension', () => {
20
20
  using(new Injector(), (i) => {
21
- i.disposeOnProcessExit()
21
+ disposeOnProcessExit(i)
22
22
  expect(globalDisposables).toContain(i)
23
23
  })
24
24
  })
25
25
  it('Should dispose the injector on exit', async () => {
26
26
  usingAsync(new Injector(), async (i) => {
27
27
  i.dispose = jest.fn(i.dispose)
28
- i.disposeOnProcessExit()
28
+ disposeOnProcessExit(i)
29
29
  await exitHandler()
30
30
  expect(i.dispose).toBeCalled()
31
31
  })
package/src/helpers.ts ADDED
@@ -0,0 +1,49 @@
1
+ import { Injector } from '@furystack/inject/types/injector'
2
+ import { globalDisposables } from './global-disposables'
3
+ import { IdentityContext } from './identity-context'
4
+ import { Disposable } from '@furystack/utils'
5
+ import { StoreManager } from './store-manager'
6
+ import { PhysicalStore } from './models/physical-store'
7
+
8
+ /**
9
+ * The disposable will be disposed on process exit
10
+ *
11
+ * @param disposable The Disposable object to dispose on process exit
12
+ * @returns A set of global disposables
13
+ */
14
+ export const disposeOnProcessExit = (disposable: Disposable) => globalDisposables.add(disposable)
15
+
16
+ /**
17
+ * @param injector The Injector instance
18
+ * @returns the current authentication status from the identity context
19
+ */
20
+ export const isAuthenticated = async (injector: Injector) => injector.getInstance(IdentityContext).isAuthenticated()
21
+
22
+ /**
23
+ * @param injector The Injector instance
24
+ * @param {...any} roles A list of roles
25
+ * @returns if the current authorization status from the identity context
26
+ */
27
+ export const isAuthorized = async (injector: Injector, ...roles: string[]) =>
28
+ injector.getInstance(IdentityContext).isAuthorized(...roles)
29
+
30
+ /**
31
+ * @param injector The Injector instance
32
+ * @returns The current user from the identity context
33
+ */
34
+ export const getCurrentUser = async (injector: Injector) => injector.getInstance(IdentityContext).getCurrentUser()
35
+
36
+ /**
37
+ * @param injector The Injector instance
38
+ * @returns A Store Manager instance to setup stores
39
+ */
40
+ export const getStoreManager = (injector: Injector) => injector.getInstance(StoreManager)
41
+
42
+ /**
43
+ *
44
+ * @param injector The Injector instance
45
+ * @param store The store to add
46
+ * @returns The Store Manager instance for chaining
47
+ */
48
+ export const addStore = <T, TPrimaryKey extends keyof T>(injector: Injector, store: PhysicalStore<T, TPrimaryKey>) =>
49
+ getStoreManager(injector).addStore(store)
@@ -1,7 +1,7 @@
1
1
  import { Injector } from '@furystack/inject'
2
2
  import { using, usingAsync } from '@furystack/utils'
3
3
  import { IdentityContext } from './identity-context'
4
- import './injector-extensions'
4
+ import { isAuthorized, isAuthenticated, getCurrentUser } from './helpers'
5
5
 
6
6
  describe('IdentityContext', () => {
7
7
  it('Should be retrieved from an Injector', () => {
@@ -11,31 +11,31 @@ describe('IdentityContext', () => {
11
11
  })
12
12
  })
13
13
 
14
- it('isAuthenticated should be called from extension', async () => {
14
+ it('isAuthenticated should be called from helper', async () => {
15
15
  await usingAsync(new Injector(), async (i) => {
16
16
  const ctx = i.getInstance(IdentityContext)
17
17
  const spy = jest.spyOn(ctx, 'isAuthenticated')
18
- const isAuthenticated = await i.isAuthenticated()
19
- expect(isAuthenticated).toBeFalsy()
18
+ const isAuth = await isAuthenticated(i)
19
+ expect(isAuth).toBeFalsy()
20
20
  expect(spy).toBeCalledTimes(1)
21
21
  })
22
22
  })
23
23
 
24
- it('isAuthorized should be called from extension', async () => {
24
+ it('isAuthorized should be called from helper', async () => {
25
25
  await usingAsync(new Injector(), async (i) => {
26
26
  const ctx = i.getInstance(IdentityContext)
27
27
  const spy = jest.spyOn(ctx, 'isAuthorized')
28
- const isAuthorized = await i.isAuthorized()
29
- expect(isAuthorized).toBeFalsy()
28
+ const isAuth = await isAuthorized(i)
29
+ expect(isAuth).toBeFalsy()
30
30
  expect(spy).toBeCalledTimes(1)
31
31
  })
32
32
  })
33
33
 
34
- it('getCurrentUser should be called from extension', async () => {
34
+ it('getCurrentUser should be called from helper', async () => {
35
35
  await usingAsync(new Injector(), async (i) => {
36
36
  const ctx = i.getInstance(IdentityContext)
37
37
  const spy = jest.spyOn(ctx, 'getCurrentUser')
38
- await expect(i.getCurrentUser()).rejects.toThrowError('')
38
+ await expect(getCurrentUser(i)).rejects.toThrowError('')
39
39
  expect(spy).toBeCalledTimes(1)
40
40
  })
41
41
  })
@@ -1,5 +1,4 @@
1
1
  import { Constructable } from '@furystack/inject'
2
- import { v4 } from 'uuid'
3
2
  import {
4
3
  PhysicalStore,
5
4
  FindOptions,
@@ -24,9 +23,6 @@ export class InMemoryStore<T, TPrimaryKey extends keyof T> implements PhysicalSt
24
23
  public async add(...entries: Array<WithOptionalId<T, TPrimaryKey>>): Promise<CreateResult<T>> {
25
24
  const created = entries.map((e) => {
26
25
  const entry = { ...e } as T
27
- if (entry[this.primaryKey] === undefined) {
28
- entry[this.primaryKey] = v4() as any
29
- }
30
26
  if (this.cache.has(entry[this.primaryKey])) {
31
27
  throw new Error('Item with the primary key already exists.')
32
28
  }
package/src/index.ts CHANGED
@@ -5,5 +5,5 @@ export * from './in-memory-store'
5
5
  export * from './store-manager'
6
6
  export * from './global-disposables'
7
7
  export * from './identity-context'
8
-
9
- import './injector-extensions'
8
+ export * from './create-physical-store-tests'
9
+ export * from './helpers'
@@ -2,7 +2,6 @@ import { using, usingAsync } from '@furystack/utils'
2
2
  import { Injector } from '@furystack/inject'
3
3
  import { StoreManager } from './store-manager'
4
4
  import { InMemoryStore } from './in-memory-store'
5
- import './injector-extensions'
6
5
  import { AggregatedError } from './errors'
7
6
  import { TestClass } from './create-physical-store-tests'
8
7
 
@@ -42,13 +41,11 @@ describe('StoreManager', () => {
42
41
 
43
42
  it('Can set up stores with an extension method', () => {
44
43
  using(new Injector(), (i) => {
45
- i.setupStores((stores) =>
46
- stores.addStore(
47
- new InMemoryStore({
48
- model: Test,
49
- primaryKey: 'id',
50
- }),
51
- ),
44
+ i.getInstance(StoreManager).addStore(
45
+ new InMemoryStore({
46
+ model: Test,
47
+ primaryKey: 'id',
48
+ }),
52
49
  )
53
50
 
54
51
  expect(i.getInstance(StoreManager).getStoreFor(Test, 'id')).toBeInstanceOf(InMemoryStore)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=global-disposable.spec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-disposable.spec.d.ts","sourceRoot":"","sources":["../src/global-disposable.spec.ts"],"names":[],"mappings":"AAGA,OAAO,uBAAuB,CAAA"}
1
+ {"version":3,"file":"global-disposable.spec.d.ts","sourceRoot":"","sources":["../src/global-disposable.spec.ts"],"names":[],"mappings":""}
File without changes
File without changes
@@ -0,0 +1,40 @@
1
+ import { Injector } from '@furystack/inject/types/injector';
2
+ import { Disposable } from '@furystack/utils';
3
+ import { StoreManager } from './store-manager';
4
+ import { PhysicalStore } from './models/physical-store';
5
+ /**
6
+ * The disposable will be disposed on process exit
7
+ *
8
+ * @param disposable The Disposable object to dispose on process exit
9
+ * @returns A set of global disposables
10
+ */
11
+ export declare const disposeOnProcessExit: (disposable: Disposable) => Set<Disposable>;
12
+ /**
13
+ * @param injector The Injector instance
14
+ * @returns the current authentication status from the identity context
15
+ */
16
+ export declare const isAuthenticated: (injector: Injector) => Promise<boolean>;
17
+ /**
18
+ * @param injector The Injector instance
19
+ * @param {...any} roles A list of roles
20
+ * @returns if the current authorization status from the identity context
21
+ */
22
+ export declare const isAuthorized: (injector: Injector, ...roles: string[]) => Promise<boolean>;
23
+ /**
24
+ * @param injector The Injector instance
25
+ * @returns The current user from the identity context
26
+ */
27
+ export declare const getCurrentUser: (injector: Injector) => Promise<import(".").User>;
28
+ /**
29
+ * @param injector The Injector instance
30
+ * @returns A Store Manager instance to setup stores
31
+ */
32
+ export declare const getStoreManager: (injector: Injector) => StoreManager;
33
+ /**
34
+ *
35
+ * @param injector The Injector instance
36
+ * @param store The store to add
37
+ * @returns The Store Manager instance for chaining
38
+ */
39
+ export declare const addStore: <T, TPrimaryKey extends keyof T>(injector: Injector, store: PhysicalStore<T, TPrimaryKey>) => StoreManager;
40
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,eAAgB,UAAU,oBAAsC,CAAA;AAEjG;;;GAGG;AACH,eAAO,MAAM,eAAe,aAAoB,QAAQ,qBAA4D,CAAA;AAEpH;;;;GAIG;AACH,eAAO,MAAM,YAAY,aAAoB,QAAQ,YAAY,MAAM,EAAE,qBACX,CAAA;AAE9D;;;GAGG;AACH,eAAO,MAAM,cAAc,aAAoB,QAAQ,8BAA2D,CAAA;AAElH;;;GAGG;AACH,eAAO,MAAM,eAAe,aAAc,QAAQ,iBAAuC,CAAA;AAEzF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,6CAA8C,QAAQ,uDAChC,CAAA"}
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=identity-context.spec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity-context.spec.d.ts","sourceRoot":"","sources":["../src/identity-context.spec.ts"],"names":[],"mappings":"AAGA,OAAO,uBAAuB,CAAA"}
1
+ {"version":3,"file":"identity-context.spec.d.ts","sourceRoot":"","sources":["../src/identity-context.spec.ts"],"names":[],"mappings":""}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-store.d.ts","sourceRoot":"","sources":["../src/in-memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EACL,aAAa,EACb,WAAW,EAEX,aAAa,EACb,UAAU,EAEV,YAAY,EACZ,cAAc,EAEf,MAAM,yBAAyB,CAAA;AAEhC,qBAAa,aAAa,CAAC,CAAC,EAAE,WAAW,SAAS,MAAM,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;IACjG;;;OAGG;IACU,MAAM,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAetF,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAY;IACzC,GAAG,QAAe,CAAC,CAAC,WAAW,CAAC,8DAGtC;IAED,OAAO,CAAC,cAAc;IAyFT,IAAI,CAAC,OAAO,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC;IA2B3E,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAI5B,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;IAUxC,OAAO;IAId,SAAgB,UAAU,EAAE,WAAW,CAAA;IACvC,SAAgB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAEvC;;;;;;OAMG;gBACS,OAAO,EAAE;QACnB;;WAEG;QACH,UAAU,EAAE,WAAW,CAAA;QACvB;;WAEG;QACH,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;KACxB;CAIF"}
1
+ {"version":3,"file":"in-memory-store.d.ts","sourceRoot":"","sources":["../src/in-memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EACL,aAAa,EACb,WAAW,EAEX,aAAa,EACb,UAAU,EAEV,YAAY,EACZ,cAAc,EAEf,MAAM,yBAAyB,CAAA;AAEhC,qBAAa,aAAa,CAAC,CAAC,EAAE,WAAW,SAAS,MAAM,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;IACjG;;;OAGG;IACU,MAAM,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAYtF,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAY;IACzC,GAAG,QAAe,CAAC,CAAC,WAAW,CAAC,8DAGtC;IAED,OAAO,CAAC,cAAc;IAyFT,IAAI,CAAC,OAAO,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC;IA2B3E,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAI5B,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;IAUxC,OAAO;IAId,SAAgB,UAAU,EAAE,WAAW,CAAA;IACvC,SAAgB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAEvC;;;;;;OAMG;gBACS,OAAO,EAAE;QACnB;;WAEG;QACH,UAAU,EAAE,WAAW,CAAA;QACvB;;WAEG;QACH,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;KACxB;CAIF"}
File without changes
File without changes
@@ -5,5 +5,6 @@ export * from './in-memory-store';
5
5
  export * from './store-manager';
6
6
  export * from './global-disposables';
7
7
  export * from './identity-context';
8
- import './injector-extensions';
8
+ export * from './create-physical-store-tests';
9
+ export * from './helpers';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAElC,OAAO,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,yBAAyB,CAAA;AACvC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,WAAW,CAAA"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=store-manager.spec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-manager.spec.d.ts","sourceRoot":"","sources":["../src/store-manager.spec.ts"],"names":[],"mappings":"AAIA,OAAO,uBAAuB,CAAA"}
1
+ {"version":3,"file":"store-manager.spec.d.ts","sourceRoot":"","sources":["../src/store-manager.spec.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import './injector-extensions';
2
- //# sourceMappingURL=global-disposable.spec.d.ts.map
@@ -1,2 +0,0 @@
1
- import './injector-extensions';
2
- //# sourceMappingURL=identity-context.spec.d.ts.map
@@ -1,39 +0,0 @@
1
- import { StoreManager } from './store-manager';
2
- import { User } from './models/user';
3
- declare module '@furystack/inject/dist/injector' {
4
- /**
5
- * Defines an extended Injector instance
6
- */
7
- interface Injector {
8
- /**
9
- * Registers a store instance to the StoreManager.
10
- *
11
- * Usage example:
12
- * ````ts
13
- * myInjector.setupStores(sm => sm.addStore(new InMemoryStore({ model: TestEntry, primaryKey: "_id" })))
14
- * ````
15
- * You can get the store later from the StoreManager:
16
- * ````ts
17
- * const myStore: IPhysicalStore<TestEntry> = myInjector.getInstance(StoreManager).getStoreFor(TestEntry)
18
- * ````
19
- */
20
- setupStores: (builder: (storeManager: StoreManager) => void) => this;
21
- /**
22
- * The disposable will be disposed on process exit
23
- */
24
- disposeOnProcessExit: () => this;
25
- /**
26
- * returns the current authentication status from the identity context
27
- */
28
- isAuthenticated: () => Promise<boolean>;
29
- /**
30
- * returns the current authorization status from the identity context
31
- */
32
- isAuthorized: (...roles: string[]) => Promise<boolean>;
33
- /**
34
- *
35
- */
36
- getCurrentUser: <TUser extends User>() => Promise<TUser>;
37
- }
38
- }
39
- //# sourceMappingURL=injector-extensions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injector-extensions.d.ts","sourceRoot":"","sources":["../src/injector-extensions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,OAAO,QAAQ,iCAAiC,CAAC;IAC/C;;OAEG;IACH,UAAiB,QAAQ;QACvB;;;;;;;;;;;WAWG;QACH,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,KAAK,IAAI,CAAA;QAEpE;;WAEG;QACH,oBAAoB,EAAE,MAAM,IAAI,CAAA;QAEhC;;WAEG;QACH,eAAe,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;QAEvC;;WAEG;QACH,YAAY,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;QAEtD;;WAEG;QACH,cAAc,EAAE,CAAC,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;KACzD;CACF"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const injector_1 = require("@furystack/inject/dist/injector");
4
- const store_manager_1 = require("./store-manager");
5
- const global_disposables_1 = require("./global-disposables");
6
- const identity_context_1 = require("./identity-context");
7
- injector_1.Injector.prototype.setupStores = function (builder) {
8
- builder(this.getInstance(store_manager_1.StoreManager));
9
- return this;
10
- };
11
- injector_1.Injector.prototype.disposeOnProcessExit = function () {
12
- global_disposables_1.globalDisposables.add(this);
13
- return this;
14
- };
15
- injector_1.Injector.prototype.isAuthenticated = async function () {
16
- return this.getInstance(identity_context_1.IdentityContext).isAuthenticated();
17
- };
18
- injector_1.Injector.prototype.isAuthorized = async function (...roles) {
19
- return this.getInstance(identity_context_1.IdentityContext).isAuthorized(...roles);
20
- };
21
- injector_1.Injector.prototype.getCurrentUser = async function () {
22
- return this.getInstance(identity_context_1.IdentityContext).getCurrentUser();
23
- };
24
- //# sourceMappingURL=injector-extensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injector-extensions.js","sourceRoot":"","sources":["../src/injector-extensions.ts"],"names":[],"mappings":";;AAAA,8DAA0D;AAC1D,mDAA8C;AAC9C,6DAAwD;AACxD,yDAAoD;AA4CpD,mBAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,OAAO;IAChD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,4BAAY,CAAC,CAAC,CAAA;IACvC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,mBAAQ,CAAC,SAAS,CAAC,oBAAoB,GAAG;IACxC,sCAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,mBAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,KAAK;IACxC,OAAO,IAAI,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAC,eAAe,EAAE,CAAA;AAC5D,CAAC,CAAA;AAED,mBAAQ,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,WAAW,GAAG,KAAK;IACxD,OAAO,IAAI,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAA;AACjE,CAAC,CAAA;AAED,mBAAQ,CAAC,SAAS,CAAC,cAAc,GAAG,KAAK;IACvC,OAAO,IAAI,CAAC,WAAW,CAAC,kCAAe,CAAC,CAAC,cAAc,EAAS,CAAA;AAClE,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- import './injector-extensions';
2
- //# sourceMappingURL=store-manager.spec.d.ts.map
@@ -1,68 +0,0 @@
1
- import { Injector } from '@furystack/inject/dist/injector'
2
- import { StoreManager } from './store-manager'
3
- import { globalDisposables } from './global-disposables'
4
- import { IdentityContext } from './identity-context'
5
- import { User } from './models/user'
6
-
7
- declare module '@furystack/inject/dist/injector' {
8
- /**
9
- * Defines an extended Injector instance
10
- */
11
- export interface Injector {
12
- /**
13
- * Registers a store instance to the StoreManager.
14
- *
15
- * Usage example:
16
- * ````ts
17
- * myInjector.setupStores(sm => sm.addStore(new InMemoryStore({ model: TestEntry, primaryKey: "_id" })))
18
- * ````
19
- * You can get the store later from the StoreManager:
20
- * ````ts
21
- * const myStore: IPhysicalStore<TestEntry> = myInjector.getInstance(StoreManager).getStoreFor(TestEntry)
22
- * ````
23
- */
24
- setupStores: (builder: (storeManager: StoreManager) => void) => this
25
-
26
- /**
27
- * The disposable will be disposed on process exit
28
- */
29
- disposeOnProcessExit: () => this
30
-
31
- /**
32
- * returns the current authentication status from the identity context
33
- */
34
- isAuthenticated: () => Promise<boolean>
35
-
36
- /**
37
- * returns the current authorization status from the identity context
38
- */
39
- isAuthorized: (...roles: string[]) => Promise<boolean>
40
-
41
- /**
42
- *
43
- */
44
- getCurrentUser: <TUser extends User>() => Promise<TUser>
45
- }
46
- }
47
-
48
- Injector.prototype.setupStores = function (builder) {
49
- builder(this.getInstance(StoreManager))
50
- return this
51
- }
52
-
53
- Injector.prototype.disposeOnProcessExit = function () {
54
- globalDisposables.add(this)
55
- return this
56
- }
57
-
58
- Injector.prototype.isAuthenticated = async function () {
59
- return this.getInstance(IdentityContext).isAuthenticated()
60
- }
61
-
62
- Injector.prototype.isAuthorized = async function (...roles) {
63
- return this.getInstance(IdentityContext).isAuthorized(...roles)
64
- }
65
-
66
- Injector.prototype.getCurrentUser = async function <TUser extends User>() {
67
- return this.getInstance(IdentityContext).getCurrentUser<TUser>()
68
- }