@bitblit/ratchet-warden-server 4.0.115-alpha → 4.0.119-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 (35) hide show
  1. package/README.md +1 -1
  2. package/lib/build/ratchet-warden-server-info.d.ts +1 -1
  3. package/lib/index.d.ts +15 -1
  4. package/lib/index.mjs +74 -0
  5. package/lib/index.mjs.map +1 -0
  6. package/lib/server/provider/warden-default-user-decoration-provider.d.ts +3 -3
  7. package/lib/server/provider/warden-event-processing-provider.d.ts +1 -1
  8. package/lib/server/provider/warden-mailer-message-sending-provider.d.ts +5 -5
  9. package/lib/server/provider/warden-message-sending-provider.d.ts +3 -3
  10. package/lib/server/provider/warden-no-op-event-processing-provider.d.ts +1 -1
  11. package/lib/server/provider/warden-s3-single-file-storage-provider.d.ts +3 -3
  12. package/lib/server/provider/warden-storage-provider.d.ts +3 -3
  13. package/lib/server/provider/warden-twilio-text-message-sending-provider.d.ts +3 -3
  14. package/lib/server/provider/warden-user-decoration-provider.d.ts +2 -2
  15. package/lib/server/warden-service-options.d.ts +2 -2
  16. package/lib/server/warden-service.d.ts +6 -6
  17. package/package.json +15 -15
  18. package/lib/build/ratchet-warden-server-info.js +0 -14
  19. package/lib/index.js +0 -1
  20. package/lib/server/provider/warden-default-user-decoration-provider.js +0 -11
  21. package/lib/server/provider/warden-event-processing-provider.js +0 -1
  22. package/lib/server/provider/warden-mailer-message-sending-provider-options.js +0 -1
  23. package/lib/server/provider/warden-mailer-message-sending-provider.js +0 -34
  24. package/lib/server/provider/warden-message-sending-provider.js +0 -1
  25. package/lib/server/provider/warden-no-op-event-processing-provider.js +0 -4
  26. package/lib/server/provider/warden-s3-single-file-storage-provider-options.js +0 -1
  27. package/lib/server/provider/warden-s3-single-file-storage-provider.js +0 -90
  28. package/lib/server/provider/warden-storage-provider.js +0 -1
  29. package/lib/server/provider/warden-twilio-text-message-sending-provider-options.js +0 -1
  30. package/lib/server/provider/warden-twilio-text-message-sending-provider.js +0 -29
  31. package/lib/server/provider/warden-user-decoration-provider.js +0 -1
  32. package/lib/server/warden-service-options.js +0 -1
  33. package/lib/server/warden-service.js +0 -460
  34. package/lib/server/warden-service.spec.d.ts +0 -1
  35. package/lib/server/warden-service.spec.js +0 -7
@@ -1,6 +1,6 @@
1
- import { WardenEntry } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry.js';
2
- import { WardenEntrySummary } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry-summary.js';
3
- import { WardenUserDecoration } from '@bitblit/ratchet-warden-common/lib/common/model/warden-user-decoration.js';
1
+ import { WardenEntry } from '@bitblit/ratchet-warden-common';
2
+ import { WardenEntrySummary } from '@bitblit/ratchet-warden-common';
3
+ import { WardenUserDecoration } from '@bitblit/ratchet-warden-common';
4
4
  import { WardenUserDecorationProvider } from './warden-user-decoration-provider.js';
5
5
  export declare class WardenDefaultUserDecorationProvider implements WardenUserDecorationProvider<WardenEntrySummary> {
6
6
  fetchDecoration(wardenUser: WardenEntry): Promise<WardenUserDecoration<WardenEntrySummary>>;
@@ -1,4 +1,4 @@
1
- import { WardenEntry } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry.js';
1
+ import { WardenEntry } from '@bitblit/ratchet-warden-common';
2
2
  export interface WardenEventProcessingProvider {
3
3
  userCreated(entry: WardenEntry): Promise<void>;
4
4
  userRemoved(entry: WardenEntry): Promise<void>;
@@ -1,10 +1,10 @@
1
1
  import { WardenMessageSendingProvider } from './warden-message-sending-provider.js';
2
2
  import { WardenMailerMessageSendingProviderOptions } from './warden-mailer-message-sending-provider-options.js';
3
- import { MailerLike } from '@bitblit/ratchet-aws/lib/ses/mailer-like.js';
4
- import { ReadyToSendEmail } from '@bitblit/ratchet-aws/lib/ses/ready-to-send-email.js';
5
- import { WardenContact } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact.js';
6
- import { WardenContactType } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact-type.js';
7
- import { WardenCustomerMessageType } from '@bitblit/ratchet-warden-common/lib/common/model/warden-customer-message-type.js';
3
+ import { MailerLike } from '@bitblit/ratchet-aws';
4
+ import { ReadyToSendEmail } from '@bitblit/ratchet-aws';
5
+ import { WardenContact } from '@bitblit/ratchet-warden-common';
6
+ import { WardenContactType } from '@bitblit/ratchet-warden-common';
7
+ import { WardenCustomerMessageType } from '@bitblit/ratchet-warden-common';
8
8
  export declare class WardenMailerMessageSendingProvider implements WardenMessageSendingProvider<ReadyToSendEmail> {
9
9
  private mailer;
10
10
  private options;
@@ -1,6 +1,6 @@
1
- import { WardenContactType } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact-type.js';
2
- import { WardenContact } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact.js';
3
- import { WardenCustomerMessageType } from '@bitblit/ratchet-warden-common/lib/common/model/warden-customer-message-type.js';
1
+ import { WardenContactType } from '@bitblit/ratchet-warden-common';
2
+ import { WardenContact } from '@bitblit/ratchet-warden-common';
3
+ import { WardenCustomerMessageType } from '@bitblit/ratchet-warden-common';
4
4
  export interface WardenMessageSendingProvider<T> {
5
5
  handlesContactType(type: WardenContactType): boolean;
6
6
  sendMessage(contact: WardenContact, message: T): Promise<boolean>;
@@ -1,4 +1,4 @@
1
- import { WardenEntry } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry.js';
1
+ import { WardenEntry } from '@bitblit/ratchet-warden-common';
2
2
  import { WardenEventProcessingProvider } from './warden-event-processing-provider.js';
3
3
  export declare class WardenNoOpEventProcessingProvider implements WardenEventProcessingProvider {
4
4
  userCreated(entry: WardenEntry): Promise<void>;
@@ -1,9 +1,9 @@
1
- import { WardenEntry } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry.js';
2
- import { WardenEntrySummary } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry-summary.js';
1
+ import { WardenEntry } from '@bitblit/ratchet-warden-common';
2
+ import { WardenEntrySummary } from '@bitblit/ratchet-warden-common';
3
3
  import { WardenStorageProvider } from './warden-storage-provider.js';
4
4
  import { WardenS3SingleFileStorageProviderOptions } from './warden-s3-single-file-storage-provider-options.js';
5
5
  import { PutObjectOutput, S3Client } from '@aws-sdk/client-s3';
6
- import { WardenContact } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact.js';
6
+ import { WardenContact } from '@bitblit/ratchet-warden-common';
7
7
  export declare class WardenS3SingleFileStorageProvider implements WardenStorageProvider {
8
8
  private s3;
9
9
  private options;
@@ -1,6 +1,6 @@
1
- import { WardenEntry } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry.js';
2
- import { WardenEntrySummary } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry-summary.js';
3
- import { WardenContact } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact.js';
1
+ import { WardenEntry } from '@bitblit/ratchet-warden-common';
2
+ import { WardenEntrySummary } from '@bitblit/ratchet-warden-common';
3
+ import { WardenContact } from '@bitblit/ratchet-warden-common';
4
4
  export interface WardenStorageProvider {
5
5
  findEntryById(userId: string): Promise<WardenEntry>;
6
6
  findEntryByContact(contact: WardenContact): Promise<WardenEntry>;
@@ -1,8 +1,8 @@
1
1
  import { WardenMessageSendingProvider } from './warden-message-sending-provider.js';
2
2
  import { WardenTwilioTextMessageSendingProviderOptions } from './warden-twilio-text-message-sending-provider-options.js';
3
- import { WardenContact } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact.js';
4
- import { WardenCustomerMessageType } from '@bitblit/ratchet-warden-common/lib/common/model/warden-customer-message-type.js';
5
- import { WardenContactType } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact-type.js';
3
+ import { WardenContact } from '@bitblit/ratchet-warden-common';
4
+ import { WardenCustomerMessageType } from '@bitblit/ratchet-warden-common';
5
+ import { WardenContactType } from '@bitblit/ratchet-warden-common';
6
6
  export declare class WardenTwilioTextMessageSendingProvider implements WardenMessageSendingProvider<string> {
7
7
  private optsPromise;
8
8
  constructor(optsPromise: Promise<WardenTwilioTextMessageSendingProviderOptions>);
@@ -1,5 +1,5 @@
1
- import { WardenEntry } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry.js';
2
- import { WardenUserDecoration } from '@bitblit/ratchet-warden-common/lib/common/model/warden-user-decoration.js';
1
+ import { WardenEntry } from '@bitblit/ratchet-warden-common';
2
+ import { WardenUserDecoration } from '@bitblit/ratchet-warden-common';
3
3
  export interface WardenUserDecorationProvider<T> {
4
4
  fetchDecoration(wardenUser: WardenEntry): Promise<WardenUserDecoration<T>>;
5
5
  }
@@ -1,7 +1,7 @@
1
1
  import { WardenStorageProvider } from './provider/warden-storage-provider.js';
2
2
  import { WardenMessageSendingProvider } from './provider/warden-message-sending-provider.js';
3
- import { ExpiringCodeProvider } from '@bitblit/ratchet-aws/lib/expiring-code/expiring-code-provider.js';
4
- import { JwtRatchetLike } from '@bitblit/ratchet-common/lib/jwt/jwt-ratchet-like.js';
3
+ import { ExpiringCodeProvider } from '@bitblit/ratchet-aws';
4
+ import { JwtRatchetLike } from '@bitblit/ratchet-common';
5
5
  import { WardenUserDecorationProvider } from './provider/warden-user-decoration-provider.js';
6
6
  import { WardenEventProcessingProvider } from './provider/warden-event-processing-provider.js';
7
7
  export interface WardenServiceOptions {
@@ -1,12 +1,12 @@
1
1
  import { AuthenticationResponseJSON, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON, RegistrationResponseJSON } from '@simplewebauthn/typescript-types';
2
2
  import { WardenServiceOptions } from './warden-service-options.js';
3
- import { WardenEntry } from '@bitblit/ratchet-warden-common/lib/common/model/warden-entry.js';
4
- import { WardenStoreRegistrationResponse } from '@bitblit/ratchet-warden-common/lib/common/model/warden-store-registration-response.js';
3
+ import { WardenEntry } from '@bitblit/ratchet-warden-common';
4
+ import { WardenStoreRegistrationResponse } from '@bitblit/ratchet-warden-common';
5
5
  import { WardenMessageSendingProvider } from './provider/warden-message-sending-provider.js';
6
- import { WardenContact } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact.js';
7
- import { WardenCommand } from '@bitblit/ratchet-warden-common/lib/common/command/warden-command.js';
8
- import { WardenCommandResponse } from '@bitblit/ratchet-warden-common/lib/common/command/warden-command-response.js';
9
- import { WardenLoginRequest } from '@bitblit/ratchet-warden-common/lib/common/model/warden-login-request.js';
6
+ import { WardenContact } from '@bitblit/ratchet-warden-common';
7
+ import { WardenCommand } from '@bitblit/ratchet-warden-common';
8
+ import { WardenCommandResponse } from '@bitblit/ratchet-warden-common';
9
+ import { WardenLoginRequest } from '@bitblit/ratchet-warden-common';
10
10
  export declare class WardenService {
11
11
  private inOptions;
12
12
  private opts;
package/package.json CHANGED
@@ -1,15 +1,20 @@
1
1
  {
2
2
  "name": "@bitblit/ratchet-warden-server",
3
- "version": "4.0.115-alpha",
3
+ "version": "4.0.119-alpha",
4
4
  "description": "Typescript library to simplify using simplewebauthn and secondary auth methods over GraphQL",
5
5
  "sideEffects": false,
6
6
  "bin": {},
7
7
  "type": "module",
8
- "module": "index.js",
9
8
  "files": [
10
9
  "lib/*",
11
10
  "bin/*"
12
11
  ],
12
+ "exports": {
13
+ ".": {
14
+ "types": "./lib/index.d.ts",
15
+ "import": "./lib/index.mjs"
16
+ }
17
+ },
13
18
  "contributors": [
14
19
  "Christopher Weiss <bitblit@gmail.com>"
15
20
  ],
@@ -31,9 +36,9 @@
31
36
  "docs": "typedoc",
32
37
  "lint": "eslint src/**/*.ts",
33
38
  "lint-fix": "eslint --fix src/**/*.ts",
34
- "__generate-barrels": "barrelsby -q --delete -d src -e .*\\.spec\\.ts",
35
- "__build": "yarn run generate-barrels && tsc",
36
- "build": "tsc"
39
+ "generate-barrels": "barrelsby -q --delete -d src -e .*\\.spec\\.ts && sed -i 's/\\x27;/.js\\x27;/' src/index.ts",
40
+ "build": "yarn clean && yarn generate-barrels && rollup -c rollup.config.js",
41
+ "force-build": "tsc --build --force"
37
42
  },
38
43
  "repository": {
39
44
  "type": "git",
@@ -52,21 +57,16 @@
52
57
  },
53
58
  "license": "Apache-2.0",
54
59
  "dependencies": {
55
- "@aws-sdk/client-s3": "3.328.0",
56
- "@aws-sdk/client-ses": "3.328.0",
57
- "@bitblit/ratchet-aws": "4.0.115-alpha",
58
- "@bitblit/ratchet-common": "4.0.115-alpha",
59
- "@bitblit/ratchet-warden-common": "4.0.115-alpha",
60
+ "@aws-sdk/client-s3": "3.332.0",
61
+ "@aws-sdk/client-ses": "3.332.0",
62
+ "@bitblit/ratchet-aws": "4.0.119-alpha",
63
+ "@bitblit/ratchet-common": "4.0.119-alpha",
64
+ "@bitblit/ratchet-warden-common": "4.0.119-alpha",
60
65
  "@simplewebauthn/browser": "7.2.0",
61
66
  "@simplewebauthn/server": "7.2.0",
62
67
  "@simplewebauthn/typescript-types": "7.0.0",
63
68
  "jwt-decode": "3.1.2"
64
69
  },
65
70
  "peerDependencies": {
66
- "@bitblit/ratchet-jest": "4.0.115-alpha",
67
- "@simplewebauthn/browser": "^7.2.0",
68
- "@simplewebauthn/server": "^7.2.0",
69
- "@simplewebauthn/typescript-types": "^7.0.0",
70
- "jwt-decode": "^3.1.2"
71
71
  }
72
72
  }
@@ -1,14 +0,0 @@
1
- export class RatchetWardenServerInfo {
2
- constructor() { }
3
- static buildInformation() {
4
- const val = {
5
- version: 'LOCAL-SNAPSHOT',
6
- hash: 'LOCAL-HASH',
7
- branch: 'LOCAL-BRANCH',
8
- tag: 'LOCAL-TAG',
9
- timeBuiltISO: 'LOCAL-TIME-ISO',
10
- notes: 'LOCAL-NOTES',
11
- };
12
- return val;
13
- }
14
- }
package/lib/index.js DELETED
@@ -1 +0,0 @@
1
- export {};
@@ -1,11 +0,0 @@
1
- import { WardenUtils } from '@bitblit/ratchet-warden-common/lib/common/util/warden-utils.js';
2
- export class WardenDefaultUserDecorationProvider {
3
- async fetchDecoration(wardenUser) {
4
- const rval = {
5
- userTokenData: WardenUtils.stripWardenEntryToSummary(wardenUser),
6
- userTokenExpirationSeconds: 3600,
7
- userTeamRoles: [{ team: 'WARDEN', role: 'USER' }],
8
- };
9
- return rval;
10
- }
11
- }
@@ -1,34 +0,0 @@
1
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
2
- import { WardenContactType } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact-type.js';
3
- export class WardenMailerMessageSendingProvider {
4
- mailer;
5
- options;
6
- static defaultOptions() {
7
- const rval = {
8
- emailBaseLayoutName: undefined,
9
- expiringTokenHtmlTemplateName: 'expiring-token-request-email',
10
- expiringTokenTxtTemplateName: undefined,
11
- };
12
- return rval;
13
- }
14
- constructor(mailer, options = WardenMailerMessageSendingProvider.defaultOptions()) {
15
- this.mailer = mailer;
16
- this.options = options;
17
- }
18
- async formatMessage(contact, messageType, context) {
19
- const rts = {
20
- destinationAddresses: [contact.value],
21
- subject: 'Your login token',
22
- };
23
- await this.mailer.fillEmailBody(rts, context, this.options.expiringTokenHtmlTemplateName, this.options.expiringTokenTxtTemplateName, this.options.emailBaseLayoutName);
24
- return rts;
25
- }
26
- handlesContactType(type) {
27
- return type === WardenContactType.EmailAddress;
28
- }
29
- async sendMessage(contact, message) {
30
- const rval = await this.mailer.sendEmail(message);
31
- Logger.debug('SendRawEmailResponse was : %j', rval);
32
- return !!rval;
33
- }
34
- }
@@ -1,4 +0,0 @@
1
- export class WardenNoOpEventProcessingProvider {
2
- async userCreated(entry) { }
3
- async userRemoved(entry) { }
4
- }
@@ -1,90 +0,0 @@
1
- import { WardenUtils } from '@bitblit/ratchet-warden-common/lib/common/util/warden-utils.js';
2
- import { S3CacheRatchet } from '@bitblit/ratchet-aws/lib/s3/s3-cache-ratchet.js';
3
- import { StringRatchet } from '@bitblit/ratchet-common/lib/lang/string-ratchet.js';
4
- import { ErrorRatchet } from '@bitblit/ratchet-common/lib/lang/error-ratchet.js';
5
- export class WardenS3SingleFileStorageProvider {
6
- s3;
7
- options;
8
- ratchet;
9
- constructor(s3, options) {
10
- this.s3 = s3;
11
- this.options = options;
12
- this.ratchet = new S3CacheRatchet(this.s3, this.options.bucket);
13
- }
14
- async listUserSummaries() {
15
- const allData = (await this.fetchDataFile()).entries;
16
- const rval = allData.map((d) => WardenUtils.stripWardenEntryToSummary(d));
17
- return rval;
18
- }
19
- async fetchDataFile() {
20
- let data = await this.ratchet.fetchCacheFileAsObject(this.options.dataFileKey);
21
- data = data || {
22
- entries: [],
23
- challenges: [],
24
- };
25
- return data;
26
- }
27
- async storeDataFile(file) {
28
- let rval = null;
29
- if (file) {
30
- rval = await this.ratchet.writeObjectToCacheFile(this.options.dataFileKey, file);
31
- }
32
- return rval;
33
- }
34
- async fetchCurrentUserChallenge(userId, relyingPartyId) {
35
- const data = await this.fetchDataFile();
36
- const entry = (data.challenges || []).find((d) => d.userId === userId && d.relyingPartyId === relyingPartyId);
37
- if (!entry) {
38
- ErrorRatchet.throwFormattedErr('fetchCurrentUserChallenge: Could not find user %s', userId);
39
- }
40
- return entry.challenge;
41
- }
42
- async findEntryByContact(contact) {
43
- let rval = null;
44
- if (contact?.type && StringRatchet.trimToNull(contact?.value)) {
45
- const data = await this.fetchDataFile();
46
- rval = (data.entries || []).find((d) => !!(d.contactMethods || []).find((x) => x.type === contact.type && x.value === contact.value));
47
- }
48
- return rval;
49
- }
50
- async findEntryById(userId) {
51
- let rval = null;
52
- if (StringRatchet.trimToNull(userId)) {
53
- const data = await this.fetchDataFile();
54
- rval = (data.entries || []).find((d) => d.userId === userId);
55
- }
56
- return rval;
57
- }
58
- async removeEntry(userId) {
59
- const data = await this.fetchDataFile();
60
- data.entries = (data.entries || []).filter((d) => d.userId !== userId);
61
- await this.storeDataFile(data);
62
- return true;
63
- }
64
- async saveEntry(entry) {
65
- let rval = null;
66
- if (entry && entry.userId) {
67
- const now = Date.now();
68
- entry.createdEpochMS = entry.createdEpochMS || now;
69
- entry.updatedEpochMS = now;
70
- const data = await this.fetchDataFile();
71
- data.entries = (data.entries || []).filter((d) => d.userId !== entry.userId);
72
- data.entries.push(entry);
73
- await this.storeDataFile(data);
74
- rval = await this.findEntryById(entry.userId);
75
- }
76
- return rval;
77
- }
78
- async updateUserChallenge(userId, relyingPartyId, challenge) {
79
- const data = await this.fetchDataFile();
80
- data.challenges = (data.challenges || []).filter((d) => d.userId !== userId || d.relyingPartyId !== relyingPartyId);
81
- data.challenges.push({
82
- userId: userId,
83
- relyingPartyId: relyingPartyId,
84
- challenge: challenge,
85
- updatedEpochMS: Date.now(),
86
- });
87
- await this.storeDataFile(data);
88
- return true;
89
- }
90
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,29 +0,0 @@
1
- import { Logger } from '@bitblit/ratchet-common/lib/logger/logger.js';
2
- import { TwilioRatchet } from '@bitblit/ratchet-common/lib/third-party/twilio/twilio-ratchet.js';
3
- import { WardenContactType } from '@bitblit/ratchet-warden-common/lib/common/model/warden-contact-type.js';
4
- export class WardenTwilioTextMessageSendingProvider {
5
- optsPromise;
6
- constructor(optsPromise) {
7
- this.optsPromise = optsPromise;
8
- }
9
- async formatMessage(contact, messageType, context) {
10
- Logger.info('Creating text');
11
- const msg = context['code'] +
12
- ' is your ' +
13
- context['relyingPartyName'] +
14
- ' authentication code.\n@' +
15
- context['relyingPartyName'] +
16
- ' #' +
17
- context['code'];
18
- return msg;
19
- }
20
- handlesContactType(type) {
21
- return type === WardenContactType.TextCapablePhoneNumber;
22
- }
23
- async sendMessage(contact, message) {
24
- const opts = await this.optsPromise;
25
- const rval = await TwilioRatchet.sendMessageDirect(opts.accountSID, opts.authToken, opts.outBoundNumber, [contact.value], message);
26
- Logger.debug('sendMessage was : %j', rval);
27
- return !!rval && rval.length > 0;
28
- }
29
- }
@@ -1 +0,0 @@
1
- export {};