@bitblit/ratchet-warden-common 4.0.99-alpha → 4.0.103-alpha

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 (127) hide show
  1. package/{dist/types → lib}/build/ratchet-warden-common-info.d.ts +1 -1
  2. package/{dist/types → lib}/client/provider/warden-client-abstract-recent-login-provider.d.ts +4 -4
  3. package/{dist/es → lib}/client/provider/warden-client-abstract-recent-login-provider.js +3 -2
  4. package/{dist/types → lib}/client/provider/warden-client-local-storage-logged-in-user-provider.d.ts +2 -2
  5. package/{dist/es → lib}/client/provider/warden-client-local-storage-logged-in-user-provider.js +4 -1
  6. package/{dist/types → lib}/client/provider/warden-client-local-storage-recent-login-provider.d.ts +2 -2
  7. package/{dist/es → lib}/client/provider/warden-client-local-storage-recent-login-provider.js +5 -2
  8. package/{dist/types → lib}/client/provider/warden-client-recent-login-provider.d.ts +3 -3
  9. package/{dist/types → lib}/client/provider/warden-client-transient-memory-logged-in-user-provider.d.ts +2 -2
  10. package/{dist/es → lib}/client/provider/warden-client-transient-memory-logged-in-user-provider.js +1 -0
  11. package/{dist/types → lib}/client/provider/warden-client-transient-memory-recent-login-provider.d.ts +2 -2
  12. package/{dist/es → lib}/client/provider/warden-client-transient-memory-recent-login-provider.js +2 -5
  13. package/{dist/types → lib}/client/provider/warden-command-exchange-provider.d.ts +0 -4
  14. package/{dist/types → lib}/client/provider/warden-logged-in-user-provider.d.ts +1 -1
  15. package/{dist/types → lib}/client/provider/warden-logged-in-user-wrapper.d.ts +1 -1
  16. package/{dist/types → lib}/client/provider/warden-recent-login-descriptor.d.ts +1 -1
  17. package/{dist/types → lib}/client/provider/warden-user-service-event-processing-provider.d.ts +1 -4
  18. package/{dist/types → lib}/client/provider/warden-user-service-options.d.ts +4 -4
  19. package/{dist/types → lib}/client/warden-client.d.ts +8 -8
  20. package/{dist/es → lib}/client/warden-client.js +6 -1
  21. package/lib/client/warden-client.spec.js +22 -0
  22. package/{dist/types → lib}/client/warden-delegating-current-user-providing-user-service-event-processing-provider.d.ts +3 -13
  23. package/{dist/es → lib}/client/warden-delegating-current-user-providing-user-service-event-processing-provider.js +2 -1
  24. package/{dist/types → lib}/client/warden-user-service.d.ts +7 -13
  25. package/{dist/es → lib}/client/warden-user-service.js +12 -5
  26. package/lib/client/warden-user-service.spec.js +19 -0
  27. package/{dist/types → lib}/common/command/create-account.d.ts +1 -1
  28. package/{dist/types → lib}/common/command/warden-command-response.d.ts +3 -3
  29. package/{dist/types → lib}/common/command/warden-command.d.ts +5 -5
  30. package/{dist/types → lib}/common/model/warden-contact.d.ts +1 -1
  31. package/{dist/types → lib}/common/model/warden-entry-summary.d.ts +1 -1
  32. package/{dist/types → lib}/common/model/warden-entry.d.ts +2 -2
  33. package/lib/common/model/warden-jwt-token.d.ts +5 -0
  34. package/{dist/types → lib}/common/model/warden-login-request.d.ts +1 -1
  35. package/{dist/types → lib}/common/model/warden-login-results.d.ts +1 -1
  36. package/{dist/types → lib}/common/model/warden-store-registration-response.d.ts +2 -2
  37. package/{dist/types → lib}/common/model/warden-user-decoration.d.ts +1 -1
  38. package/lib/common/model/warden-user-decoration.js +1 -0
  39. package/{dist/types → lib}/common/model/warden-web-authn-entry.d.ts +1 -1
  40. package/lib/common/model/warden-web-authn-entry.js +1 -0
  41. package/{dist/types → lib}/common/util/warden-utils.d.ts +6 -6
  42. package/{dist/es → lib}/common/util/warden-utils.js +3 -2
  43. package/lib/common/util/warden-utils.spec.d.ts +1 -0
  44. package/lib/common/util/warden-utils.spec.js +10 -0
  45. package/lib/index.d.ts +1 -0
  46. package/lib/index.js +1 -0
  47. package/package.json +10 -13
  48. package/dist/cjs/build/ratchet-warden-common-info.js +0 -18
  49. package/dist/cjs/client/provider/warden-client-abstract-recent-login-provider.js +0 -47
  50. package/dist/cjs/client/provider/warden-client-current-logged-in-jwt-token-provider.js +0 -2
  51. package/dist/cjs/client/provider/warden-client-local-storage-logged-in-user-provider.js +0 -30
  52. package/dist/cjs/client/provider/warden-client-local-storage-recent-login-provider.js +0 -24
  53. package/dist/cjs/client/provider/warden-client-recent-login-provider.js +0 -2
  54. package/dist/cjs/client/provider/warden-client-transient-memory-logged-in-user-provider.js +0 -15
  55. package/dist/cjs/client/provider/warden-client-transient-memory-recent-login-provider.js +0 -17
  56. package/dist/cjs/client/provider/warden-command-exchange-provider.js +0 -2
  57. package/dist/cjs/client/provider/warden-logged-in-user-provider.js +0 -2
  58. package/dist/cjs/client/provider/warden-logged-in-user-wrapper.js +0 -2
  59. package/dist/cjs/client/provider/warden-recent-login-descriptor.js +0 -2
  60. package/dist/cjs/client/provider/warden-user-service-event-processing-provider.js +0 -2
  61. package/dist/cjs/client/provider/warden-user-service-options.js +0 -2
  62. package/dist/cjs/client/warden-client.js +0 -133
  63. package/dist/cjs/client/warden-delegating-current-user-providing-user-service-event-processing-provider.js +0 -45
  64. package/dist/cjs/client/warden-user-service.js +0 -254
  65. package/dist/cjs/common/command/create-account.js +0 -2
  66. package/dist/cjs/common/command/remove-web-authn-registration.js +0 -2
  67. package/dist/cjs/common/command/warden-command-response.js +0 -2
  68. package/dist/cjs/common/command/warden-command.js +0 -2
  69. package/dist/cjs/common/command/web-authn-object-wrapper.js +0 -2
  70. package/dist/cjs/common/model/warden-contact-type.js +0 -8
  71. package/dist/cjs/common/model/warden-contact.js +0 -2
  72. package/dist/cjs/common/model/warden-customer-message-type.js +0 -7
  73. package/dist/cjs/common/model/warden-entry-summary.js +0 -2
  74. package/dist/cjs/common/model/warden-entry.js +0 -2
  75. package/dist/cjs/common/model/warden-jwt-token.js +0 -2
  76. package/dist/cjs/common/model/warden-login-request.js +0 -2
  77. package/dist/cjs/common/model/warden-login-results.js +0 -2
  78. package/dist/cjs/common/model/warden-store-registration-response-type.js +0 -9
  79. package/dist/cjs/common/model/warden-store-registration-response.js +0 -2
  80. package/dist/cjs/common/model/warden-team-role.js +0 -2
  81. package/dist/cjs/common/model/warden-user-decoration.js +0 -2
  82. package/dist/cjs/common/model/warden-web-authn-entry.js +0 -2
  83. package/dist/cjs/common/model/warden-web-authn-transport-future-type.js +0 -12
  84. package/dist/cjs/common/util/warden-utils.js +0 -108
  85. package/dist/cjs/index.js +0 -40
  86. package/dist/es/index.js +0 -37
  87. package/dist/tsconfig.cjs.tsbuildinfo +0 -1
  88. package/dist/tsconfig.es.tsbuildinfo +0 -1
  89. package/dist/tsconfig.types.tsbuildinfo +0 -1
  90. package/dist/types/common/model/warden-jwt-token.d.ts +0 -5
  91. package/dist/types/index.d.ts +0 -40
  92. /package/{dist/es → lib}/build/ratchet-warden-common-info.js +0 -0
  93. /package/{dist/types → lib}/client/provider/warden-client-current-logged-in-jwt-token-provider.d.ts +0 -0
  94. /package/{dist/es → lib}/client/provider/warden-client-current-logged-in-jwt-token-provider.js +0 -0
  95. /package/{dist/es → lib}/client/provider/warden-client-recent-login-provider.js +0 -0
  96. /package/{dist/es → lib}/client/provider/warden-command-exchange-provider.js +0 -0
  97. /package/{dist/es → lib}/client/provider/warden-logged-in-user-provider.js +0 -0
  98. /package/{dist/es → lib}/client/provider/warden-logged-in-user-wrapper.js +0 -0
  99. /package/{dist/es → lib}/client/provider/warden-recent-login-descriptor.js +0 -0
  100. /package/{dist/es → lib}/client/provider/warden-user-service-event-processing-provider.js +0 -0
  101. /package/{dist/es → lib}/client/provider/warden-user-service-options.js +0 -0
  102. /package/{dist/es/common/command/create-account.js → lib/client/warden-client.spec.d.ts} +0 -0
  103. /package/{dist/es/common/command/remove-web-authn-registration.js → lib/client/warden-user-service.spec.d.ts} +0 -0
  104. /package/{dist/es/common/command/warden-command-response.js → lib/common/command/create-account.js} +0 -0
  105. /package/{dist/types → lib}/common/command/remove-web-authn-registration.d.ts +0 -0
  106. /package/{dist/es/common/command/warden-command.js → lib/common/command/remove-web-authn-registration.js} +0 -0
  107. /package/{dist/es/common/command/web-authn-object-wrapper.js → lib/common/command/warden-command-response.js} +0 -0
  108. /package/{dist/es/common/model/warden-contact.js → lib/common/command/warden-command.js} +0 -0
  109. /package/{dist/types → lib}/common/command/web-authn-object-wrapper.d.ts +0 -0
  110. /package/{dist/es/common/model/warden-entry-summary.js → lib/common/command/web-authn-object-wrapper.js} +0 -0
  111. /package/{dist/types → lib}/common/model/warden-contact-type.d.ts +0 -0
  112. /package/{dist/es → lib}/common/model/warden-contact-type.js +0 -0
  113. /package/{dist/es/common/model/warden-entry.js → lib/common/model/warden-contact.js} +0 -0
  114. /package/{dist/types → lib}/common/model/warden-customer-message-type.d.ts +0 -0
  115. /package/{dist/es → lib}/common/model/warden-customer-message-type.js +0 -0
  116. /package/{dist/es/common/model/warden-jwt-token.js → lib/common/model/warden-entry-summary.js} +0 -0
  117. /package/{dist/es/common/model/warden-login-request.js → lib/common/model/warden-entry.js} +0 -0
  118. /package/{dist/es/common/model/warden-login-results.js → lib/common/model/warden-jwt-token.js} +0 -0
  119. /package/{dist/es/common/model/warden-store-registration-response.js → lib/common/model/warden-login-request.js} +0 -0
  120. /package/{dist/es/common/model/warden-team-role.js → lib/common/model/warden-login-results.js} +0 -0
  121. /package/{dist/types → lib}/common/model/warden-store-registration-response-type.d.ts +0 -0
  122. /package/{dist/es → lib}/common/model/warden-store-registration-response-type.js +0 -0
  123. /package/{dist/es/common/model/warden-user-decoration.js → lib/common/model/warden-store-registration-response.js} +0 -0
  124. /package/{dist/types → lib}/common/model/warden-team-role.d.ts +0 -0
  125. /package/{dist/es/common/model/warden-web-authn-entry.js → lib/common/model/warden-team-role.js} +0 -0
  126. /package/{dist/types → lib}/common/model/warden-web-authn-transport-future-type.d.ts +0 -0
  127. /package/{dist/es → lib}/common/model/warden-web-authn-transport-future-type.js +0 -0
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenClientAbstractRecentLoginProvider = void 0;
4
- const ratchet_common_1 = require("@bitblit/ratchet-common");
5
- const warden_utils_1 = require("../../common/util/warden-utils");
6
- class WardenClientAbstractRecentLoginProvider {
7
- saveRecentLogin(entry) {
8
- if (entry === null || entry === void 0 ? void 0 : entry.userId) {
9
- ratchet_common_1.Logger.info('Saving recent login : %j', entry);
10
- let list = this.fetchCache();
11
- list = list.filter((s) => s.user.userId !== entry.userId);
12
- list.push({
13
- user: entry,
14
- lastLoginEpochMS: Date.now(),
15
- });
16
- this.updateCache(list);
17
- }
18
- else {
19
- ratchet_common_1.Logger.warn('Cannot save recent login - no login provided : %s', entry);
20
- }
21
- }
22
- saveNewUser(userId, label, contact) {
23
- if (ratchet_common_1.StringRatchet.trimToNull(userId) && warden_utils_1.WardenUtils.validContact(contact)) {
24
- this.saveRecentLogin({
25
- userId: userId,
26
- contactMethods: [contact],
27
- webAuthnAuthenticatorIds: [],
28
- userLabel: label,
29
- });
30
- }
31
- else {
32
- ratchet_common_1.Logger.warn('Cannot save new user - invalid data : %s : %j', userId, contact);
33
- }
34
- }
35
- removeUser(userId) {
36
- let list = this.fetchCache();
37
- list = list.filter((c) => c.user.userId !== userId);
38
- this.updateCache(list);
39
- }
40
- fetchAllLogins() {
41
- return Object.assign([], this.fetchCache());
42
- }
43
- clearAllLogins() {
44
- this.updateCache([]);
45
- }
46
- }
47
- exports.WardenClientAbstractRecentLoginProvider = WardenClientAbstractRecentLoginProvider;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenClientLocalStorageLoggedInUserProvider = void 0;
4
- const ratchet_common_1 = require("@bitblit/ratchet-common");
5
- class WardenClientLocalStorageLoggedInUserProvider {
6
- constructor(localStorageKey) {
7
- this.localStorageKey = localStorageKey;
8
- ratchet_common_1.RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(this.localStorageKey, 'localStorageKey');
9
- if (!localStorage) {
10
- ratchet_common_1.ErrorRatchet.throwFormattedErr('Local storage not available on this platform');
11
- }
12
- }
13
- fetchLoggedInUserWrapper() {
14
- const asString = localStorage.getItem(this.localStorageKey);
15
- const rval = ratchet_common_1.StringRatchet.trimToNull(asString) ? JSON.parse(asString) : null;
16
- return rval;
17
- }
18
- logOutUser() {
19
- this.setLoggedInUserWrapper(null);
20
- }
21
- setLoggedInUserWrapper(wrapper) {
22
- if (wrapper) {
23
- localStorage.setItem(this.localStorageKey, JSON.stringify(wrapper));
24
- }
25
- else {
26
- localStorage.removeItem(this.localStorageKey);
27
- }
28
- }
29
- }
30
- exports.WardenClientLocalStorageLoggedInUserProvider = WardenClientLocalStorageLoggedInUserProvider;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenClientLocalStorageRecentLoginProvider = void 0;
4
- const ratchet_common_1 = require("@bitblit/ratchet-common");
5
- const warden_client_abstract_recent_login_provider_1 = require("./warden-client-abstract-recent-login-provider");
6
- class WardenClientLocalStorageRecentLoginProvider extends warden_client_abstract_recent_login_provider_1.WardenClientAbstractRecentLoginProvider {
7
- constructor(localStorageKey) {
8
- super();
9
- this.localStorageKey = localStorageKey;
10
- ratchet_common_1.RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(this.localStorageKey, 'localStorageKey');
11
- if (!localStorage) {
12
- ratchet_common_1.ErrorRatchet.throwFormattedErr('Local storage not available on this platform');
13
- }
14
- }
15
- fetchCache() {
16
- const asString = ratchet_common_1.StringRatchet.trimToNull(localStorage.getItem(ratchet_common_1.StringRatchet.trimToNull(this.localStorageKey)));
17
- return asString ? JSON.parse(asString) : [];
18
- }
19
- updateCache(newValue) {
20
- const asString = newValue ? JSON.stringify(newValue) : '[]';
21
- localStorage.setItem(ratchet_common_1.StringRatchet.trimToNull(this.localStorageKey), asString);
22
- }
23
- }
24
- exports.WardenClientLocalStorageRecentLoginProvider = WardenClientLocalStorageRecentLoginProvider;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenClientTransientMemoryLoggedInUserProvider = void 0;
4
- class WardenClientTransientMemoryLoggedInUserProvider {
5
- fetchLoggedInUserWrapper() {
6
- return this.wrapper;
7
- }
8
- logOutUser() {
9
- this.wrapper = null;
10
- }
11
- setLoggedInUserWrapper(wrapper) {
12
- this.wrapper = wrapper;
13
- }
14
- }
15
- exports.WardenClientTransientMemoryLoggedInUserProvider = WardenClientTransientMemoryLoggedInUserProvider;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenClientTransientMemoryRecentLoginProvider = void 0;
4
- const warden_client_abstract_recent_login_provider_1 = require("./warden-client-abstract-recent-login-provider");
5
- class WardenClientTransientMemoryRecentLoginProvider extends warden_client_abstract_recent_login_provider_1.WardenClientAbstractRecentLoginProvider {
6
- constructor() {
7
- super(...arguments);
8
- this._cache = [];
9
- }
10
- fetchCache() {
11
- return this._cache;
12
- }
13
- updateCache(newValue) {
14
- this._cache = newValue;
15
- }
16
- }
17
- exports.WardenClientTransientMemoryRecentLoginProvider = WardenClientTransientMemoryRecentLoginProvider;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,133 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenClient = void 0;
4
- const ratchet_common_1 = require("@bitblit/ratchet-common");
5
- class WardenClient {
6
- constructor(commandSender, jwtProvider) {
7
- this.commandSender = commandSender;
8
- this.jwtProvider = jwtProvider;
9
- ratchet_common_1.RequireRatchet.notNullOrUndefined(commandSender, 'commandSender');
10
- ratchet_common_1.RequireRatchet.notNullOrUndefined(jwtProvider, 'jwtProvider');
11
- }
12
- async exchangeCommand(cmd, returnErrors) {
13
- const asString = JSON.stringify(cmd);
14
- const resp = await this.commandSender.sendCommand(asString, this.jwtProvider.fetchCurrentLoggedInJwtToken());
15
- const parsed = JSON.parse(resp);
16
- if ((parsed === null || parsed === void 0 ? void 0 : parsed.error) && !returnErrors) {
17
- ratchet_common_1.ErrorRatchet.throwFormattedErr('%s', parsed.error);
18
- }
19
- return parsed;
20
- }
21
- async createAccount(contact, sendCode, label, tags) {
22
- const cmd = {
23
- createAccount: {
24
- contact: contact,
25
- sendCode: sendCode,
26
- label: label,
27
- tags: tags,
28
- },
29
- };
30
- const rval = await this.exchangeCommand(cmd);
31
- return rval.createAccount;
32
- }
33
- async generateWebAuthnAuthenticationChallengeForUserId(userId) {
34
- const cmd = {
35
- generateWebAuthnAuthenticationChallengeForUserId: userId,
36
- };
37
- const rval = await this.exchangeCommand(cmd);
38
- const parsed = JSON.parse(rval.generateWebAuthnAuthenticationChallengeForUserId.dataAsJson);
39
- return parsed;
40
- }
41
- async generateWebAuthnRegistrationChallengeForLoggedInUser() {
42
- const cmd = {
43
- generateWebAuthnRegistrationChallengeForLoggedInUser: true,
44
- };
45
- const rval = await this.exchangeCommand(cmd);
46
- const parsed = JSON.parse(rval.generateWebAuthnRegistrationChallengeForLoggedInUser.dataAsJson);
47
- return parsed;
48
- }
49
- async removeWebAuthnRegistration(userId, credId) {
50
- const cmd = {
51
- removeWebAuthnRegistration: {
52
- userId: userId,
53
- credentialId: credId,
54
- },
55
- };
56
- const rval = await this.exchangeCommand(cmd);
57
- return rval.removeWebAuthnRegistration;
58
- }
59
- async removeWebAuthnRegistrationFromLoggedInUser(input) {
60
- const cmd = {
61
- removeWebAuthnRegistrationFromLoggedInUser: input,
62
- };
63
- const rval = await this.exchangeCommand(cmd);
64
- return rval.removeWebAuthnRegistrationFromLoggedInUser;
65
- }
66
- async removeContactFromLoggedInUser(input) {
67
- const cmd = {
68
- removeContactFromLoggedInUser: input,
69
- };
70
- const rval = await this.exchangeCommand(cmd);
71
- return rval.removeContactFromLoggedInUser;
72
- }
73
- async sendExpiringValidationToken(contact) {
74
- const cmd = {
75
- sendExpiringValidationToken: contact,
76
- };
77
- const rval = await this.exchangeCommand(cmd);
78
- return rval.sendExpiringValidationToken;
79
- }
80
- async addContactToLoggedInUser(contact) {
81
- const cmd = {
82
- addContactToLoggedInUser: contact,
83
- };
84
- const rval = await this.exchangeCommand(cmd);
85
- return rval.addContactToLoggedInUser;
86
- }
87
- async addWebAuthnRegistrationToLoggedInUser(data) {
88
- const cmd = {
89
- addWebAuthnRegistrationToLoggedInUser: {
90
- dataAsJson: JSON.stringify(data),
91
- },
92
- };
93
- const rval = await this.exchangeCommand(cmd);
94
- return rval.addWebAuthnRegistrationToLoggedInUser;
95
- }
96
- async performLoginCmd(login) {
97
- const loginCmd = {
98
- performLogin: login,
99
- };
100
- const cmdResponse = await this.exchangeCommand(loginCmd);
101
- return cmdResponse.performLogin;
102
- }
103
- async refreshJwtToken(oldJwtToken) {
104
- let rval = null;
105
- if (ratchet_common_1.StringRatchet.trimToNull(oldJwtToken)) {
106
- try {
107
- const resp = await this.exchangeCommand({ refreshJwtToken: oldJwtToken });
108
- rval = resp.refreshJwtToken;
109
- }
110
- catch (err) {
111
- ratchet_common_1.Logger.error('JwtRefresh Failed : %s', err);
112
- }
113
- }
114
- return rval;
115
- }
116
- async executeExpiringTokenBasedLogin(contact, expiringToken) {
117
- let rval = null;
118
- try {
119
- const loginCmd = {
120
- contact: contact,
121
- expiringToken: expiringToken,
122
- };
123
- rval = await this.performLoginCmd(loginCmd);
124
- if (rval === null || rval === void 0 ? void 0 : rval.jwtToken) {
125
- }
126
- }
127
- catch (err) {
128
- ratchet_common_1.Logger.error('ExpiringToken login Failed : %s', err);
129
- }
130
- return rval;
131
- }
132
- }
133
- exports.WardenClient = WardenClient;
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenDelegatingCurrentUserProvidingUserServiceEventProcessingProvider = void 0;
4
- const rxjs_1 = require("rxjs");
5
- class WardenDelegatingCurrentUserProvidingUserServiceEventProcessingProvider {
6
- constructor(wrapped) {
7
- this.wrapped = wrapped;
8
- this._currentUserSubject = new rxjs_1.BehaviorSubject(null);
9
- }
10
- fetchCurrentLoggedInJwtToken() {
11
- var _a, _b;
12
- return (_b = (_a = this === null || this === void 0 ? void 0 : this._currentUserSubject) === null || _a === void 0 ? void 0 : _a.getValue()) === null || _b === void 0 ? void 0 : _b.jwtToken;
13
- }
14
- get currentUserSubject() {
15
- return this._currentUserSubject;
16
- }
17
- onAutomaticLogout() {
18
- if (this.wrapped) {
19
- this.wrapped.onAutomaticLogout();
20
- }
21
- }
22
- onAutomaticTokenRefresh(refreshUser) {
23
- if (this.wrapped) {
24
- this.wrapped.onAutomaticTokenRefresh(refreshUser);
25
- }
26
- }
27
- onLoginFailure(reason) {
28
- if (this.wrapped) {
29
- this.wrapped.onLoginFailure(reason);
30
- }
31
- }
32
- onLogout() {
33
- if (this.wrapped) {
34
- this.wrapped.onLogout();
35
- }
36
- this.currentUserSubject.next(null);
37
- }
38
- onSuccessfulLogin(newUser) {
39
- if (this.wrapped) {
40
- this.wrapped.onSuccessfulLogin(newUser);
41
- }
42
- this.currentUserSubject.next(newUser);
43
- }
44
- }
45
- exports.WardenDelegatingCurrentUserProvidingUserServiceEventProcessingProvider = WardenDelegatingCurrentUserProvidingUserServiceEventProcessingProvider;
@@ -1,254 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenUserService = void 0;
4
- const tslib_1 = require("tslib");
5
- const ratchet_common_1 = require("@bitblit/ratchet-common");
6
- const rxjs_1 = require("rxjs");
7
- const jwt_decode_1 = tslib_1.__importDefault(require("jwt-decode"));
8
- const ratchet_common_2 = require("@bitblit/ratchet-common");
9
- class WardenUserService {
10
- constructor(options) {
11
- this.options = options;
12
- this._autoRefreshEnabled = false;
13
- ratchet_common_1.Logger.info('Initializing user service');
14
- const stored = this.options.loggedInUserProvider.fetchLoggedInUserWrapper();
15
- if (WardenUserService.wrapperIsExpired(stored)) {
16
- ratchet_common_1.Logger.info('Stored token is expired, removing it');
17
- this.options.loggedInUserProvider.logOutUser();
18
- }
19
- else {
20
- this.options.eventProcessor.onSuccessfulLogin(stored);
21
- }
22
- const timerSeconds = this.options.loginCheckTimerPingSeconds || 2.5;
23
- this.loggedInTimerSubscription = (0, rxjs_1.timer)(0, timerSeconds * 1000).subscribe((t) => this.checkForAutoLogoutOrRefresh(t));
24
- }
25
- get serviceOptions() {
26
- return this.options;
27
- }
28
- async createAccount(contact, sendCode, label, tags) {
29
- const rval = await this.options.wardenClient.createAccount(contact, sendCode, label, tags);
30
- if (this.options.recentLoginProvider && ratchet_common_2.StringRatchet.trimToNull(rval)) {
31
- this.options.recentLoginProvider.saveNewUser(rval, label, contact);
32
- }
33
- return rval;
34
- }
35
- async addContactToLoggedInUser(contact) {
36
- return this.options.wardenClient.addContactToLoggedInUser(contact);
37
- }
38
- get autoRefreshEnabled() {
39
- return this._autoRefreshEnabled;
40
- }
41
- set autoRefreshEnabled(newValue) {
42
- if (newValue) {
43
- if (this.options.allowAutoRefresh) {
44
- this._autoRefreshEnabled = true;
45
- }
46
- else {
47
- throw new Error('Cannot enable auto-refresh - this is disabled in the user service options');
48
- }
49
- }
50
- else {
51
- this._autoRefreshEnabled = false;
52
- }
53
- }
54
- async checkForAutoLogoutOrRefresh(t) {
55
- ratchet_common_1.Logger.debug('Checking for auto-logout or refresh : %s', t);
56
- const current = this.fetchLoggedInUserWrapper();
57
- if (current) {
58
- const thresholdSeconds = this.options.autoLoginHandlingThresholdSeconds || 10;
59
- const secondsLeft = current.expirationEpochSeconds - Math.floor(Date.now() / 1000);
60
- if (secondsLeft < thresholdSeconds) {
61
- if (this.autoRefreshEnabled) {
62
- ratchet_common_1.Logger.info('Under threshold, initiating auto-refresh');
63
- const result = await this.refreshToken();
64
- this.options.eventProcessor.onAutomaticTokenRefresh(result);
65
- }
66
- else {
67
- ratchet_common_1.Logger.info('Under threshold, initiating auto-logout');
68
- this.logout();
69
- }
70
- }
71
- }
72
- }
73
- logout() {
74
- this.options.loggedInUserProvider.logOutUser();
75
- this.options.eventProcessor.onLogout();
76
- }
77
- static wrapperIsExpired(value) {
78
- var _a;
79
- const rval = ((_a = value === null || value === void 0 ? void 0 : value.userObject) === null || _a === void 0 ? void 0 : _a.exp) && value.expirationEpochSeconds < Date.now() / 1000;
80
- return rval;
81
- }
82
- fetchLoggedInUserWrapper() {
83
- let tmp = this.options.loggedInUserProvider.fetchLoggedInUserWrapper();
84
- if (tmp) {
85
- if (WardenUserService.wrapperIsExpired(tmp)) {
86
- ratchet_common_1.Logger.info('Token is expired - auto logout triggered');
87
- this.logout();
88
- tmp = null;
89
- }
90
- }
91
- return tmp;
92
- }
93
- loggedInUserHasRole(role) {
94
- var _a;
95
- let rval = false;
96
- if (ratchet_common_2.StringRatchet.trimToNull(role)) {
97
- const t = this.fetchLoggedInUserWrapper();
98
- const testRole = role.toLowerCase();
99
- rval = ((_a = t === null || t === void 0 ? void 0 : t.userObject) === null || _a === void 0 ? void 0 : _a.roles) && !!t.userObject.roles.find((r) => r.toLowerCase() === testRole);
100
- }
101
- return rval;
102
- }
103
- isLoggedIn() {
104
- const t = this.fetchLoggedInUserWrapper();
105
- return !!t;
106
- }
107
- fetchLoggedInUserJwtObject() {
108
- const t = this.fetchLoggedInUserWrapper();
109
- return t ? t.userObject : null;
110
- }
111
- fetchLoggedInUserJwtToken() {
112
- const t = this.fetchLoggedInUserWrapper();
113
- return t ? t.jwtToken : null;
114
- }
115
- fetchLoggedInUserObject() {
116
- const t = this.fetchLoggedInUserJwtObject();
117
- return t ? t.user : null;
118
- }
119
- fetchLoggedInUserExpirationEpochSeconds() {
120
- const t = this.fetchLoggedInUserJwtObject();
121
- return t ? t.exp : null;
122
- }
123
- fetchLoggedInUserRemainingSeconds() {
124
- const t = this.fetchLoggedInUserJwtObject();
125
- return t ? t.exp - Math.floor(Date.now() / 1000) : null;
126
- }
127
- updateLoggedInUserFromTokenString(token) {
128
- let rval = null;
129
- if (!ratchet_common_2.StringRatchet.trimToNull(token)) {
130
- ratchet_common_1.Logger.info('Called updateLoggedInUserFromTokenString with empty string - logging out');
131
- this.logout();
132
- }
133
- else {
134
- ratchet_common_1.Logger.info('updateLoggedInUserFromTokenString : %s', token);
135
- const parsed = (0, jwt_decode_1.default)(token);
136
- if (parsed) {
137
- rval = {
138
- userObject: parsed,
139
- jwtToken: token,
140
- expirationEpochSeconds: parsed.exp,
141
- };
142
- this.options.loggedInUserProvider.setLoggedInUserWrapper(rval);
143
- this.updateRecentLoginsFromWardenEntrySummary(parsed.loginData);
144
- this.options.eventProcessor.onSuccessfulLogin(rval);
145
- }
146
- else {
147
- ratchet_common_1.Logger.warn('Failed to parse token %s - ignoring login and triggering failure');
148
- this.options.eventProcessor.onLoginFailure('Could not parse token string');
149
- }
150
- }
151
- return rval;
152
- }
153
- async refreshToken() {
154
- let rval = null;
155
- const currentWrapper = this.fetchLoggedInUserWrapper();
156
- if (!currentWrapper) {
157
- ratchet_common_1.Logger.info('Could not refresh - no token available');
158
- }
159
- else {
160
- const newToken = await this.options.wardenClient.refreshJwtToken(currentWrapper.jwtToken);
161
- rval = await this.updateLoggedInUserFromTokenString(newToken);
162
- }
163
- return rval;
164
- }
165
- async sendExpiringCode(contact) {
166
- return this.options.wardenClient.sendExpiringValidationToken(contact);
167
- }
168
- async processWardenLoginResults(resp) {
169
- let rval = null;
170
- if (resp) {
171
- ratchet_common_1.Logger.info('Warden: response : %j ', resp);
172
- if (resp.jwtToken) {
173
- ratchet_common_1.Logger.info('Applying login');
174
- rval = await this.updateLoggedInUserFromTokenString(resp.jwtToken);
175
- }
176
- else if (resp.error) {
177
- this.options.eventProcessor.onLoginFailure(resp.error);
178
- }
179
- else {
180
- ratchet_common_1.Logger.error('Response contained neither token nor error');
181
- this.options.eventProcessor.onLoginFailure('Response contained neither token nor error');
182
- }
183
- }
184
- else {
185
- ratchet_common_1.Logger.error('Login call failed');
186
- this.options.eventProcessor.onLoginFailure('Login call returned null');
187
- }
188
- return rval;
189
- }
190
- updateRecentLoginsFromWardenEntrySummary(res) {
191
- if (this.options.recentLoginProvider && res) {
192
- ratchet_common_1.Logger.info('UserService : Saving recent login %j', res);
193
- this.options.recentLoginProvider.saveRecentLogin(res);
194
- }
195
- else {
196
- ratchet_common_1.Logger.info('Not saving recent login - no storage configured or no data passed');
197
- }
198
- }
199
- updateRecentLoginsFromLoggedInUserWrapper(res) {
200
- var _a;
201
- this.updateRecentLoginsFromWardenEntrySummary((_a = res === null || res === void 0 ? void 0 : res.userObject) === null || _a === void 0 ? void 0 : _a.loginData);
202
- }
203
- async executeWebAuthnBasedLogin(userId) {
204
- const resp = await this.executeWebAuthnLoginToWardenLoginResults(userId);
205
- const rval = await this.processWardenLoginResults(resp);
206
- this.updateRecentLoginsFromLoggedInUserWrapper(rval);
207
- return rval;
208
- }
209
- async removeWebAuthnRegistrationFromLoggedInUser(input) {
210
- const rval = await this.options.wardenClient.removeWebAuthnRegistrationFromLoggedInUser(input);
211
- return rval;
212
- }
213
- async removeContactFromLoggedInUser(input) {
214
- const rval = await this.options.wardenClient.removeContactFromLoggedInUser(input);
215
- return rval;
216
- }
217
- async executeValidationTokenBasedLogin(contact, token) {
218
- ratchet_common_1.Logger.info('Warden: executeValidationTokenBasedLogin : %j : %s ', contact, token);
219
- const resp = await this.options.wardenClient.performLoginCmd({ contact: contact, expiringToken: token });
220
- const rval = await this.processWardenLoginResults(resp);
221
- this.updateRecentLoginsFromLoggedInUserWrapper(rval);
222
- return rval;
223
- }
224
- async saveCurrentDeviceAsWebAuthnForCurrentUser() {
225
- const input = await this.options.wardenClient.generateWebAuthnRegistrationChallengeForLoggedInUser();
226
- const startRegistration = (await Promise.resolve().then(() => tslib_1.__importStar(require('@simplewebauthn/browser')))).startRegistration;
227
- const creds = await startRegistration(input);
228
- const output = await this.options.wardenClient.addWebAuthnRegistrationToLoggedInUser(creds);
229
- this.updateRecentLoginsFromWardenEntrySummary(output);
230
- return output;
231
- }
232
- async executeWebAuthnLoginToWardenLoginResults(userId) {
233
- let rval = null;
234
- try {
235
- const input = await this.options.wardenClient.generateWebAuthnAuthenticationChallengeForUserId(userId);
236
- ratchet_common_1.Logger.info('Got login challenge : %s', input);
237
- const startAuthentication = (await Promise.resolve().then(() => tslib_1.__importStar(require('@simplewebauthn/browser')))).startAuthentication;
238
- const creds = await startAuthentication(input);
239
- ratchet_common_1.Logger.info('Got creds: %j', creds);
240
- const loginCmd = {
241
- userId: userId,
242
- webAuthn: creds,
243
- };
244
- rval = await this.options.wardenClient.performLoginCmd(loginCmd);
245
- if (rval === null || rval === void 0 ? void 0 : rval.jwtToken) {
246
- }
247
- }
248
- catch (err) {
249
- ratchet_common_1.Logger.error('WebauthN Failed : %s', err);
250
- }
251
- return rval;
252
- }
253
- }
254
- exports.WardenUserService = WardenUserService;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenContactType = void 0;
4
- var WardenContactType;
5
- (function (WardenContactType) {
6
- WardenContactType["TextCapablePhoneNumber"] = "TextCapablePhoneNumber";
7
- WardenContactType["EmailAddress"] = "EmailAddress";
8
- })(WardenContactType = exports.WardenContactType || (exports.WardenContactType = {}));
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WardenCustomerMessageType = void 0;
4
- var WardenCustomerMessageType;
5
- (function (WardenCustomerMessageType) {
6
- WardenCustomerMessageType["ExpiringCode"] = "ExpiringCode";
7
- })(WardenCustomerMessageType = exports.WardenCustomerMessageType || (exports.WardenCustomerMessageType = {}));
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });