@boxyhq/saml-jackson 1.9.2 → 1.9.5

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 (115) hide show
  1. package/dist/controller/admin.d.ts +10 -4
  2. package/dist/controller/admin.js +6 -6
  3. package/dist/controller/admin.js.map +1 -1
  4. package/dist/controller/api.d.ts +3 -1
  5. package/dist/controller/api.js +19 -12
  6. package/dist/controller/api.js.map +1 -1
  7. package/dist/controller/connection/saml.js +2 -2
  8. package/dist/controller/connection/saml.js.map +1 -1
  9. package/dist/controller/logout.js +4 -4
  10. package/dist/controller/logout.js.map +1 -1
  11. package/dist/controller/oauth.js +4 -3
  12. package/dist/controller/oauth.js.map +1 -1
  13. package/dist/controller/saml-handler.js +4 -4
  14. package/dist/controller/saml-handler.js.map +1 -1
  15. package/dist/controller/setup-link.d.ts +4 -1
  16. package/dist/controller/setup-link.js +8 -8
  17. package/dist/controller/setup-link.js.map +1 -1
  18. package/dist/controller/utils.d.ts +16 -2
  19. package/dist/controller/utils.js +11 -8
  20. package/dist/controller/utils.js.map +1 -1
  21. package/dist/db/db.d.ts +4 -3
  22. package/dist/db/db.js +24 -10
  23. package/dist/db/db.js.map +1 -1
  24. package/dist/db/defaultDb.js +4 -0
  25. package/dist/db/defaultDb.js.map +1 -1
  26. package/dist/db/dynamoDb.d.ts +18 -0
  27. package/dist/db/dynamoDb.js +336 -0
  28. package/dist/db/dynamoDb.js.map +1 -0
  29. package/dist/db/mem.d.ts +4 -3
  30. package/dist/db/mem.js +15 -5
  31. package/dist/db/mem.js.map +1 -1
  32. package/dist/db/mongo.d.ts +4 -3
  33. package/dist/db/mongo.js +16 -5
  34. package/dist/db/mongo.js.map +1 -1
  35. package/dist/db/planetscale/entity/JacksonIndex.js.map +1 -1
  36. package/dist/db/planetscale/entity/JacksonStore.js.map +1 -1
  37. package/dist/db/planetscale/entity/JacksonTTL.js.map +1 -1
  38. package/dist/db/redis.d.ts +4 -3
  39. package/dist/db/redis.js +26 -5
  40. package/dist/db/redis.js.map +1 -1
  41. package/dist/db/sql/entity/JacksonIndex.js.map +1 -1
  42. package/dist/db/sql/entity/JacksonStore.js.map +1 -1
  43. package/dist/db/sql/entity/JacksonTTL.js.map +1 -1
  44. package/dist/db/sql/mariadb/entity/JacksonIndex.js.map +1 -1
  45. package/dist/db/sql/mariadb/entity/JacksonStore.js.map +1 -1
  46. package/dist/db/sql/mariadb/entity/JacksonTTL.js.map +1 -1
  47. package/dist/db/sql/mssql/entity/JacksonIndex.js.map +1 -1
  48. package/dist/db/sql/mssql/entity/JacksonStore.js.map +1 -1
  49. package/dist/db/sql/mssql/entity/JacksonTTL.js.map +1 -1
  50. package/dist/db/sql/sql.d.ts +4 -3
  51. package/dist/db/sql/sql.js +33 -4
  52. package/dist/db/sql/sql.js.map +1 -1
  53. package/dist/db/store.js +9 -4
  54. package/dist/db/store.js.map +1 -1
  55. package/dist/directory-sync/Base.d.ts +1 -0
  56. package/dist/directory-sync/Base.js +1 -0
  57. package/dist/directory-sync/Base.js.map +1 -1
  58. package/dist/directory-sync/DirectoryConfig.d.ts +22 -8
  59. package/dist/directory-sync/DirectoryConfig.js +38 -15
  60. package/dist/directory-sync/DirectoryConfig.js.map +1 -1
  61. package/dist/directory-sync/DirectoryGroups.d.ts +4 -5
  62. package/dist/directory-sync/DirectoryGroups.js +55 -77
  63. package/dist/directory-sync/DirectoryGroups.js.map +1 -1
  64. package/dist/directory-sync/DirectoryUsers.js +6 -6
  65. package/dist/directory-sync/DirectoryUsers.js.map +1 -1
  66. package/dist/directory-sync/Groups.d.ts +3 -2
  67. package/dist/directory-sync/Groups.js +48 -18
  68. package/dist/directory-sync/Groups.js.map +1 -1
  69. package/dist/directory-sync/Users.d.ts +1 -1
  70. package/dist/directory-sync/Users.js +18 -14
  71. package/dist/directory-sync/Users.js.map +1 -1
  72. package/dist/directory-sync/WebhookEventsLogger.d.ts +7 -6
  73. package/dist/directory-sync/WebhookEventsLogger.js +26 -18
  74. package/dist/directory-sync/WebhookEventsLogger.js.map +1 -1
  75. package/dist/directory-sync/events.js +7 -18
  76. package/dist/directory-sync/events.js.map +1 -1
  77. package/dist/directory-sync/index.d.ts +3 -2
  78. package/dist/directory-sync/index.js +6 -5
  79. package/dist/directory-sync/index.js.map +1 -1
  80. package/dist/directory-sync/transform.d.ts +9 -5
  81. package/dist/directory-sync/transform.js +26 -2
  82. package/dist/directory-sync/transform.js.map +1 -1
  83. package/dist/directory-sync/types.d.ts +24 -4
  84. package/dist/directory-sync/utils.d.ts +23 -26
  85. package/dist/directory-sync/utils.js +50 -86
  86. package/dist/directory-sync/utils.js.map +1 -1
  87. package/dist/ee/federated-saml/app.d.ts +4 -3
  88. package/dist/ee/federated-saml/app.js +4 -4
  89. package/dist/ee/federated-saml/app.js.map +1 -1
  90. package/dist/event/axios.d.ts +2 -0
  91. package/dist/event/axios.js +32 -0
  92. package/dist/event/axios.js.map +1 -0
  93. package/dist/event/index.d.ts +10 -0
  94. package/dist/event/index.js +54 -0
  95. package/dist/event/index.js.map +1 -0
  96. package/dist/event/types.d.ts +21 -0
  97. package/dist/event/types.js +3 -0
  98. package/dist/event/types.js.map +1 -0
  99. package/dist/event/utils.d.ts +4 -0
  100. package/dist/event/utils.js +39 -0
  101. package/dist/event/utils.js.map +1 -0
  102. package/dist/event/webhook.d.ts +3 -0
  103. package/dist/event/webhook.js +39 -0
  104. package/dist/event/webhook.js.map +1 -0
  105. package/dist/index.js +4 -2
  106. package/dist/index.js.map +1 -1
  107. package/dist/loadConnection.js +1 -2
  108. package/dist/loadConnection.js.map +1 -1
  109. package/dist/saml-tracer/index.d.ts +2 -2
  110. package/dist/saml-tracer/index.js +5 -4
  111. package/dist/saml-tracer/index.js.map +1 -1
  112. package/dist/typings.d.ts +25 -7
  113. package/dist/typings.js +1 -0
  114. package/dist/typings.js.map +1 -1
  115. package/package.json +13 -10
@@ -1,6 +1,6 @@
1
1
  import * as jose from 'jose';
2
2
  import { Client, TokenSet } from 'openid-client';
3
- import type { ConnectionType, OAuthErrorHandlerParams, SAMLSSOConnectionWithEncodedMetadata, SAMLSSOConnectionWithRawMetadata, OIDCSSOConnectionWithDiscoveryUrl, OIDCSSOConnectionWithMetadata, Profile, SAMLSSORecord } from '../typings';
3
+ import type { ConnectionType, OAuthErrorHandlerParams, SAMLSSOConnectionWithEncodedMetadata, SAMLSSOConnectionWithRawMetadata, OIDCSSOConnectionWithDiscoveryUrl, OIDCSSOConnectionWithMetadata, Profile, SAMLSSORecord, OIDCSSORecord } from '../typings';
4
4
  export declare enum IndexNames {
5
5
  EntityID = "entityID",
6
6
  SetupToken = "token",
@@ -54,5 +54,19 @@ export declare const getEncodedTenantProduct: (param: string) => {
54
54
  } | null;
55
55
  export declare const validateTenantAndProduct: (tenant: string, product: string) => void;
56
56
  export declare const appID: (tenant: string, product: string) => string;
57
- export declare const transformConnections: (connections: SAMLSSORecord[]) => SAMLSSORecord[];
57
+ declare const wellKnownProviders: {
58
+ readonly 'okta.com': "Okta";
59
+ readonly 'sts.windows.net': "Azure AD";
60
+ readonly 'mocksaml.com': "MockSAML";
61
+ readonly 'onelogin.com': "OneLogin";
62
+ readonly 'keycloak.com': "Keycloak";
63
+ readonly 'jumpcloud.com': "JumpCloud";
64
+ readonly 'google.com': "Google";
65
+ readonly 'auth0.com': "Auth0";
66
+ readonly 'pingone.com': "PingOne";
67
+ };
68
+ export declare const findFriendlyProviderName: (providerName: string) => keyof typeof wellKnownProviders | 'null';
69
+ export declare const transformConnections: (connections: Array<SAMLSSORecord | OIDCSSORecord>) => (SAMLSSORecord | OIDCSSORecord)[];
70
+ export declare const transformConnection: (connection: SAMLSSORecord | OIDCSSORecord) => SAMLSSORecord | OIDCSSORecord;
58
71
  export declare const isLocalhost: (url: string) => boolean;
72
+ export {};
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.isLocalhost = exports.transformConnections = exports.appID = exports.validateTenantAndProduct = exports.getEncodedTenantProduct = exports.getScopeValues = exports.extractOIDCUserProfile = exports.extractHostName = exports.extractRedirectUrls = exports.validateRedirectUrl = exports.validateSSOConnection = exports.generateJwkThumbprint = exports.exportPublicKeyJWK = exports.importJWTPublicKey = exports.isJWSKeyPairLoaded = exports.loadJWSPrivateKey = exports.createRandomSecret = exports.getErrorMessage = exports.OAuthErrorResponse = exports.validateAbsoluteUrl = exports.relayStatePrefix = exports.storeNamespacePrefix = exports.IndexNames = void 0;
38
+ exports.isLocalhost = exports.transformConnection = exports.transformConnections = exports.findFriendlyProviderName = exports.appID = exports.validateTenantAndProduct = exports.getEncodedTenantProduct = exports.getScopeValues = exports.extractOIDCUserProfile = exports.extractHostName = exports.extractRedirectUrls = exports.validateRedirectUrl = exports.validateSSOConnection = exports.generateJwkThumbprint = exports.exportPublicKeyJWK = exports.importJWTPublicKey = exports.isJWSKeyPairLoaded = exports.loadJWSPrivateKey = exports.createRandomSecret = exports.getErrorMessage = exports.OAuthErrorResponse = exports.validateAbsoluteUrl = exports.relayStatePrefix = exports.storeNamespacePrefix = exports.IndexNames = void 0;
39
39
  const crypto_1 = __importDefault(require("crypto"));
40
40
  const jose = __importStar(require("jose"));
41
41
  const dbutils = __importStar(require("../db/utils"));
@@ -299,19 +299,22 @@ const findFriendlyProviderName = (providerName) => {
299
299
  const provider = Object.keys(wellKnownProviders).find((provider) => providerName.includes(provider));
300
300
  return provider ? wellKnownProviders[provider] : null;
301
301
  };
302
+ exports.findFriendlyProviderName = findFriendlyProviderName;
303
+ // Add friendlyProviderName to the connection
302
304
  const transformConnections = (connections) => {
303
305
  if (connections.length === 0) {
304
306
  return connections;
305
307
  }
306
- // Add friendlyProviderName to the connection
307
- return connections.map((connection) => {
308
- if ('idpMetadata' in connection) {
309
- connection.idpMetadata.friendlyProviderName = findFriendlyProviderName(connection.idpMetadata.provider);
310
- }
311
- return connection;
312
- });
308
+ return connections.map(exports.transformConnection);
313
309
  };
314
310
  exports.transformConnections = transformConnections;
311
+ const transformConnection = (connection) => {
312
+ if ('idpMetadata' in connection) {
313
+ connection.idpMetadata.friendlyProviderName = (0, exports.findFriendlyProviderName)(connection.idpMetadata.provider);
314
+ }
315
+ return connection;
316
+ };
317
+ exports.transformConnection = transformConnection;
315
318
  const isLocalhost = (url) => {
316
319
  let givenURL;
317
320
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/controller/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/controller/utils.ts"],"names":[],"mappings":"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"}
package/dist/db/db.d.ts CHANGED
@@ -1,13 +1,14 @@
1
- import { DatabaseDriver, DatabaseOption, EncryptionKey, Index, Storable } from '../typings';
1
+ import { DatabaseDriver, DatabaseOption, EncryptionKey, Index, Records, Storable } from '../typings';
2
2
  declare class DB implements DatabaseDriver {
3
3
  private db;
4
4
  private encryptionKey;
5
5
  constructor(db: DatabaseDriver, encryptionKey: EncryptionKey);
6
6
  get(namespace: string, key: string): Promise<unknown>;
7
- getAll(namespace: any, pageOffset: any, pageLimit: any): Promise<unknown[]>;
8
- getByIndex(namespace: string, idx: Index, pageOffset?: number, pageLimit?: number): Promise<unknown[]>;
7
+ getAll(namespace: string, pageOffset?: number, pageLimit?: number, pageToken?: string): Promise<Records>;
8
+ getByIndex(namespace: string, idx: Index, pageOffset?: number, pageLimit?: number, pageToken?: string): Promise<Records>;
9
9
  put(namespace: string, key: string, val: unknown, ttl?: number, ...indexes: Index[]): Promise<unknown>;
10
10
  delete(namespace: string, key: string): Promise<unknown>;
11
+ deleteMany(namespace: string, keys: string[]): Promise<void>;
11
12
  store(namespace: string, ttl?: number): Storable;
12
13
  }
13
14
  declare const _default: {
package/dist/db/db.js CHANGED
@@ -41,6 +41,7 @@ const mongo_1 = __importDefault(require("./mongo"));
41
41
  const redis_1 = __importDefault(require("./redis"));
42
42
  const sql_1 = __importDefault(require("./sql/sql"));
43
43
  const store_1 = __importDefault(require("./store"));
44
+ const dynamoDb_1 = __importDefault(require("./dynamoDb"));
44
45
  const JacksonStore_1 = require("./sql/entity/JacksonStore");
45
46
  const JacksonIndex_1 = require("./sql/entity/JacksonIndex");
46
47
  const JacksonTTL_1 = require("./sql/entity/JacksonTTL");
@@ -73,22 +74,28 @@ class DB {
73
74
  return decrypt(res, this.encryptionKey);
74
75
  });
75
76
  }
76
- getAll(namespace, pageOffset, pageLimit) {
77
+ getAll(namespace, pageOffset, pageLimit, pageToken) {
77
78
  return __awaiter(this, void 0, void 0, function* () {
78
- const res = (yield this.db.getAll(namespace, pageOffset, pageLimit));
79
+ const res = yield this.db.getAll(namespace, pageOffset, pageLimit, pageToken);
79
80
  const encryptionKey = this.encryptionKey;
80
- return res.map((r) => {
81
- return decrypt(r, encryptionKey);
82
- });
81
+ return {
82
+ data: res.data.map((r) => {
83
+ return decrypt(r, encryptionKey);
84
+ }),
85
+ pageToken: res.pageToken,
86
+ };
83
87
  });
84
88
  }
85
- getByIndex(namespace, idx, pageOffset, pageLimit) {
89
+ getByIndex(namespace, idx, pageOffset, pageLimit, pageToken) {
86
90
  return __awaiter(this, void 0, void 0, function* () {
87
- const res = yield this.db.getByIndex(namespace, idx, pageOffset, pageLimit);
91
+ const res = yield this.db.getByIndex(namespace, idx, pageOffset, pageLimit, pageToken);
88
92
  const encryptionKey = this.encryptionKey;
89
- return res.map((r) => {
90
- return decrypt(r, encryptionKey);
91
- });
93
+ return {
94
+ data: res.data.map((r) => {
95
+ return decrypt(r, encryptionKey);
96
+ }),
97
+ pageToken: res.pageToken,
98
+ };
92
99
  });
93
100
  }
94
101
  // ttl is in seconds
@@ -108,6 +115,11 @@ class DB {
108
115
  return yield this.db.delete(namespace, key);
109
116
  });
110
117
  }
118
+ deleteMany(namespace, keys) {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ return yield this.db.deleteMany(namespace, keys);
121
+ });
122
+ }
111
123
  store(namespace, ttl = 0) {
112
124
  return store_1.default.new(namespace, this, ttl);
113
125
  }
@@ -150,6 +162,8 @@ exports.default = {
150
162
  return new DB(yield mongo_1.default.new(options), encryptionKey);
151
163
  case 'mem':
152
164
  return new DB(yield mem_1.default.new(options), encryptionKey);
165
+ case 'dynamodb':
166
+ return new DB(yield dynamoDb_1.default.new(options), encryptionKey);
153
167
  default:
154
168
  throw new Error('unsupported db engine: ' + options.engine);
155
169
  }
package/dist/db/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/db/db.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ function defaultDb(opts) {
7
7
  opts.db.type = opts.db.type || 'postgres'; // Only needed if DB_ENGINE is sql.
8
8
  opts.db.ttl = (opts.db.ttl || 300) * 1; // TTL for the code, session and token stores (in seconds)
9
9
  opts.db.cleanupLimit = (opts.db.cleanupLimit || 1000) * 1; // Limit cleanup of TTL entries to this many items at a time
10
+ opts.db.dynamodb = opts.db.dynamodb || {};
11
+ opts.db.dynamodb.region = opts.db.dynamodb.region || 'us-east-1';
12
+ opts.db.dynamodb.readCapacityUnits = opts.db.dynamodb.readCapacityUnits || 5;
13
+ opts.db.dynamodb.writeCapacityUnits = opts.db.dynamodb.writeCapacityUnits || 5;
10
14
  return opts;
11
15
  }
12
16
  exports.default = defaultDb;
@@ -1 +1 @@
1
- {"version":3,"file":"defaultDb.js","sourceRoot":"","sources":["../../src/db/defaultDb.ts"],"names":[],"mappings":";;AAEA,SAAwB,SAAS,CAAC,IAAmB;IACnD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC;IACzC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,wDAAwD,CAAC;IACtF,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,mCAAmC;IAC9E,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,0DAA0D;IAClG,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,4DAA4D;IAEvH,OAAO,IAAI,CAAC;AACd,CAAC;AATD,4BASC"}
1
+ {"version":3,"file":"defaultDb.js","sourceRoot":"","sources":["../../src/db/defaultDb.ts"],"names":[],"mappings":";;AAEA,SAAwB,SAAS,CAAC,IAAmB;IACnD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC;IACzC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,wDAAwD,CAAC;IACtF,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,mCAAmC;IAC9E,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,0DAA0D;IAClG,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,4DAA4D;IACvH,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,WAAW,CAAC;IACjE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAAC,CAAC;IAE/E,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,4BAaC"}
@@ -0,0 +1,18 @@
1
+ import { DatabaseDriver, DatabaseOption, Encrypted, Index, Records } from '../typings';
2
+ declare class DynamoDB implements DatabaseDriver {
3
+ private options;
4
+ private client;
5
+ constructor(options: DatabaseOption);
6
+ init(): Promise<DynamoDB>;
7
+ _get(namespace: string, key: string): Promise<any>;
8
+ get(namespace: string, key: string): Promise<any>;
9
+ getAll(namespace: string, _?: number, pageLimit?: number, pageToken?: string): Promise<Records>;
10
+ getByIndex(namespace: string, idx: Index, _?: number, __?: number, pageToken?: string): Promise<Records>;
11
+ put(namespace: string, key: string, val: Encrypted, ttl?: number, ...indexes: any[]): Promise<void>;
12
+ delete(namespace: string, key: string): Promise<any>;
13
+ deleteMany(namespace: string, keys: string[]): Promise<void>;
14
+ }
15
+ declare const _default: {
16
+ new: (options: DatabaseOption) => Promise<DynamoDB>;
17
+ };
18
+ export default _default;
@@ -0,0 +1,336 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
36
+ const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
37
+ const dbutils = __importStar(require("./utils"));
38
+ const getSeconds = (date) => Math.floor(date.getTime() / 1000);
39
+ const tableName = 'jacksonStore';
40
+ const indexTableName = 'jacksonIndex';
41
+ const globalStoreKeyIndexName = 'storeKeyIndex';
42
+ const globalIndexKeyIndexName = 'indexKeyIndex';
43
+ class DynamoDB {
44
+ constructor(options) {
45
+ this.options = options;
46
+ }
47
+ init() {
48
+ var _a, _b, _c, _d;
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ this.client = new client_dynamodb_1.DynamoDBClient({
51
+ endpoint: this.options.url,
52
+ region: this.options.dynamodb.region,
53
+ });
54
+ try {
55
+ yield this.client.send(new client_dynamodb_1.CreateTableCommand({
56
+ KeySchema: [
57
+ {
58
+ AttributeName: 'namespace',
59
+ KeyType: 'HASH',
60
+ },
61
+ {
62
+ AttributeName: 'key',
63
+ KeyType: 'RANGE',
64
+ },
65
+ ],
66
+ AttributeDefinitions: [
67
+ {
68
+ AttributeName: 'namespace',
69
+ AttributeType: 'S',
70
+ },
71
+ {
72
+ AttributeName: 'key',
73
+ AttributeType: 'S',
74
+ },
75
+ ],
76
+ ProvisionedThroughput: {
77
+ ReadCapacityUnits: this.options.dynamodb.readCapacityUnits,
78
+ WriteCapacityUnits: this.options.dynamodb.writeCapacityUnits,
79
+ },
80
+ TableName: tableName,
81
+ }));
82
+ yield this.client.send(new client_dynamodb_1.UpdateTimeToLiveCommand({
83
+ TableName: tableName,
84
+ TimeToLiveSpecification: {
85
+ AttributeName: 'expiresAt',
86
+ Enabled: true,
87
+ },
88
+ }));
89
+ }
90
+ catch (error) {
91
+ if (!((_a = error === null || error === void 0 ? void 0 : error.message) === null || _a === void 0 ? void 0 : _a.includes('Cannot create preexisting table')) &&
92
+ !((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes('table already exists'))) {
93
+ throw error;
94
+ }
95
+ }
96
+ try {
97
+ yield this.client.send(new client_dynamodb_1.CreateTableCommand({
98
+ KeySchema: [
99
+ {
100
+ AttributeName: 'key',
101
+ KeyType: 'HASH',
102
+ },
103
+ {
104
+ AttributeName: 'storeKey',
105
+ KeyType: 'RANGE',
106
+ },
107
+ ],
108
+ AttributeDefinitions: [
109
+ {
110
+ AttributeName: 'key',
111
+ AttributeType: 'S',
112
+ },
113
+ {
114
+ AttributeName: 'storeKey',
115
+ AttributeType: 'S',
116
+ },
117
+ ],
118
+ GlobalSecondaryIndexes: [
119
+ {
120
+ IndexName: globalIndexKeyIndexName,
121
+ KeySchema: [
122
+ {
123
+ AttributeName: 'key',
124
+ KeyType: 'HASH',
125
+ },
126
+ ],
127
+ Projection: {
128
+ ProjectionType: 'ALL',
129
+ },
130
+ ProvisionedThroughput: {
131
+ ReadCapacityUnits: this.options.dynamodb.readCapacityUnits,
132
+ WriteCapacityUnits: this.options.dynamodb.writeCapacityUnits,
133
+ },
134
+ },
135
+ {
136
+ IndexName: globalStoreKeyIndexName,
137
+ KeySchema: [
138
+ {
139
+ AttributeName: 'storeKey',
140
+ KeyType: 'HASH',
141
+ },
142
+ ],
143
+ Projection: {
144
+ ProjectionType: 'ALL',
145
+ },
146
+ ProvisionedThroughput: {
147
+ ReadCapacityUnits: this.options.dynamodb.readCapacityUnits,
148
+ WriteCapacityUnits: this.options.dynamodb.writeCapacityUnits,
149
+ },
150
+ },
151
+ ],
152
+ ProvisionedThroughput: {
153
+ ReadCapacityUnits: this.options.dynamodb.readCapacityUnits,
154
+ WriteCapacityUnits: this.options.dynamodb.writeCapacityUnits,
155
+ },
156
+ TableName: indexTableName,
157
+ }));
158
+ }
159
+ catch (error) {
160
+ if (!((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.includes('Cannot create preexisting table')) &&
161
+ !((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.toLowerCase().includes('table already exists'))) {
162
+ throw error;
163
+ }
164
+ }
165
+ return this;
166
+ });
167
+ }
168
+ // internal get without dbutils.Key
169
+ _get(namespace, key) {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ const res = yield this.client.send(new client_dynamodb_1.GetItemCommand({ Key: (0, util_dynamodb_1.marshall)({ namespace, key }), TableName: tableName }));
172
+ // Double check that the item has not expired
173
+ const now = getSeconds(new Date());
174
+ const item = res.Item ? (0, util_dynamodb_1.unmarshall)(res.Item) : null;
175
+ if ((item === null || item === void 0 ? void 0 : item.expiresAt) < now) {
176
+ return null;
177
+ }
178
+ if (item && item.value) {
179
+ return JSON.parse(item.value);
180
+ }
181
+ return null;
182
+ });
183
+ }
184
+ get(namespace, key) {
185
+ return __awaiter(this, void 0, void 0, function* () {
186
+ return this._get(namespace, dbutils.key(namespace, key));
187
+ });
188
+ }
189
+ getAll(namespace, _, pageLimit, pageToken) {
190
+ var _a, _b, _c;
191
+ return __awaiter(this, void 0, void 0, function* () {
192
+ const res = yield this.client.send(new client_dynamodb_1.QueryCommand({
193
+ KeyConditionExpression: 'namespace = :namespace',
194
+ ExpressionAttributeValues: {
195
+ ':namespace': { S: namespace },
196
+ },
197
+ TableName: tableName,
198
+ Limit: pageLimit && pageLimit > 0 ? pageLimit : undefined,
199
+ ExclusiveStartKey: pageToken ? JSON.parse(Buffer.from(pageToken, 'base64').toString()) : undefined,
200
+ }));
201
+ const newPageToken = res.LastEvaluatedKey
202
+ ? Buffer.from(JSON.stringify(res.LastEvaluatedKey)).toString('base64')
203
+ : undefined;
204
+ const items = [];
205
+ for (const item of res.Items || []) {
206
+ const ns = (_a = item.namespace) === null || _a === void 0 ? void 0 : _a.S;
207
+ const k = (_b = item.key) === null || _b === void 0 ? void 0 : _b.S;
208
+ const value = (_c = item.value) === null || _c === void 0 ? void 0 : _c.S;
209
+ if (ns && k && value) {
210
+ const val = JSON.parse(value);
211
+ if (val) {
212
+ items.push(val);
213
+ }
214
+ }
215
+ }
216
+ return { data: items, pageToken: newPageToken };
217
+ });
218
+ }
219
+ // dynamodb pagination cannot care about pageOffset and pageLimit here, we let it handle it on it's own
220
+ getByIndex(namespace, idx, _, __, pageToken) {
221
+ var _a, _b;
222
+ return __awaiter(this, void 0, void 0, function* () {
223
+ const res = yield this.client.send(new client_dynamodb_1.QueryCommand({
224
+ KeyConditionExpression: '#key = :key',
225
+ ExpressionAttributeNames: {
226
+ '#key': 'key',
227
+ },
228
+ ExpressionAttributeValues: {
229
+ ':key': { S: dbutils.keyForIndex(namespace, idx) },
230
+ },
231
+ TableName: indexTableName,
232
+ IndexName: globalIndexKeyIndexName,
233
+ ExclusiveStartKey: pageToken ? JSON.parse(Buffer.from(pageToken, 'base64').toString()) : undefined,
234
+ }));
235
+ const newPageToken = res.LastEvaluatedKey
236
+ ? Buffer.from(JSON.stringify(res.LastEvaluatedKey)).toString('base64')
237
+ : undefined;
238
+ const items = [];
239
+ for (const item of res.Items || []) {
240
+ const ns = (_a = item.namespace) === null || _a === void 0 ? void 0 : _a.S;
241
+ const sk = (_b = item.storeKey) === null || _b === void 0 ? void 0 : _b.S;
242
+ if (ns && sk) {
243
+ const val = yield this._get(ns, sk); // use internal get to avoid double keying
244
+ if (val) {
245
+ items.push({
246
+ value: val.value,
247
+ iv: val.iv,
248
+ tag: val.tag,
249
+ });
250
+ }
251
+ }
252
+ }
253
+ return { data: items, pageToken: newPageToken };
254
+ });
255
+ }
256
+ put(namespace, key, val, ttl = 0, ...indexes) {
257
+ return __awaiter(this, void 0, void 0, function* () {
258
+ const dbKey = dbutils.key(namespace, key);
259
+ const now = getSeconds(new Date());
260
+ const doc = {
261
+ namespace,
262
+ key: dbKey,
263
+ value: JSON.stringify(val),
264
+ createdAt: now,
265
+ };
266
+ if (ttl) {
267
+ const ttlDate = new Date(Date.now() + ttl * 1000);
268
+ doc.expiresAt = getSeconds(ttlDate);
269
+ }
270
+ const indexWrites = [];
271
+ // no ttl support for secondary indexes
272
+ for (const idx of indexes || []) {
273
+ const idxKey = dbutils.keyForIndex(namespace, idx);
274
+ indexWrites.push({
275
+ PutRequest: {
276
+ Item: (0, util_dynamodb_1.marshall)({
277
+ namespace,
278
+ key: idxKey,
279
+ storeKey: dbKey,
280
+ }),
281
+ },
282
+ });
283
+ }
284
+ if (indexWrites.length > 0) {
285
+ const reqItems = {};
286
+ reqItems[indexTableName] = indexWrites;
287
+ yield this.client.send(new client_dynamodb_1.BatchWriteItemCommand({
288
+ RequestItems: reqItems,
289
+ }));
290
+ }
291
+ yield this.client.send(new client_dynamodb_1.PutItemCommand({
292
+ TableName: tableName,
293
+ Item: (0, util_dynamodb_1.marshall)(doc),
294
+ }));
295
+ });
296
+ }
297
+ delete(namespace, key) {
298
+ var _a;
299
+ return __awaiter(this, void 0, void 0, function* () {
300
+ const dbKey = dbutils.key(namespace, key);
301
+ yield this.client.send(new client_dynamodb_1.DeleteItemCommand({
302
+ TableName: tableName,
303
+ Key: (0, util_dynamodb_1.marshall)({ namespace, key: dbKey }),
304
+ }));
305
+ const res = yield this.client.send(new client_dynamodb_1.QueryCommand({
306
+ KeyConditionExpression: 'storeKey = :storeKey',
307
+ ExpressionAttributeValues: {
308
+ ':storeKey': { S: dbKey },
309
+ },
310
+ TableName: indexTableName,
311
+ IndexName: globalStoreKeyIndexName,
312
+ }));
313
+ for (const item of res.Items || []) {
314
+ const k = (_a = item.key) === null || _a === void 0 ? void 0 : _a.S;
315
+ yield this.client.send(new client_dynamodb_1.DeleteItemCommand({
316
+ TableName: indexTableName,
317
+ Key: (0, util_dynamodb_1.marshall)({ key: k, storeKey: dbKey }),
318
+ }));
319
+ }
320
+ });
321
+ }
322
+ deleteMany(namespace, keys) {
323
+ return __awaiter(this, void 0, void 0, function* () {
324
+ if (keys.length === 0) {
325
+ return;
326
+ }
327
+ yield Promise.all(keys.map((key) => this.delete(namespace, key)));
328
+ });
329
+ }
330
+ }
331
+ exports.default = {
332
+ new: (options) => __awaiter(void 0, void 0, void 0, function* () {
333
+ return yield new DynamoDB(options).init();
334
+ }),
335
+ };
336
+ //# sourceMappingURL=dynamoDb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamoDb.js","sourceRoot":"","sources":["../../src/db/dynamoDb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAUkC;AAClC,0DAAoF;AAEpF,iDAAmC;AAEnC,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAErE,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,cAAc,GAAG,cAAc,CAAC;AACtC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAChD,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEhD,MAAM,QAAQ;IAIZ,YAAY,OAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,IAAI;;;YACR,IAAI,CAAC,MAAM,GAAG,IAAI,gCAAc,CAAC;gBAC/B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;gBAC1B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,MAAO;aACvC,CAAC,CAAC;YACH,IAAI;gBACF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,IAAI,oCAAkB,CAAC;oBACrB,SAAS,EAAE;wBACT;4BACE,aAAa,EAAE,WAAW;4BAC1B,OAAO,EAAE,MAAM;yBAChB;wBACD;4BACE,aAAa,EAAE,KAAK;4BACpB,OAAO,EAAE,OAAO;yBACjB;qBACF;oBACD,oBAAoB,EAAE;wBACpB;4BACE,aAAa,EAAE,WAAW;4BAC1B,aAAa,EAAE,GAAG;yBACnB;wBACD;4BACE,aAAa,EAAE,KAAK;4BACpB,aAAa,EAAE,GAAG;yBACnB;qBACF;oBACD,qBAAqB,EAAE;wBACrB,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,iBAAkB;wBAC5D,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,kBAAmB;qBAC/D;oBACD,SAAS,EAAE,SAAS;iBACrB,CAAC,CACH,CAAC;gBAEF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,IAAI,yCAAuB,CAAC;oBAC1B,SAAS,EAAE,SAAS;oBACpB,uBAAuB,EAAE;wBACvB,aAAa,EAAE,WAAW;wBAC1B,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC,CACH,CAAC;aACH;YAAC,OAAO,KAAU,EAAE;gBACnB,IACE,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,QAAQ,CAAC,iCAAiC,CAAC,CAAA;oBAC5D,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,WAAW,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAA,EAC/D;oBACA,MAAM,KAAK,CAAC;iBACb;aACF;YACD,IAAI;gBACF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,IAAI,oCAAkB,CAAC;oBACrB,SAAS,EAAE;wBACT;4BACE,aAAa,EAAE,KAAK;4BACpB,OAAO,EAAE,MAAM;yBAChB;wBACD;4BACE,aAAa,EAAE,UAAU;4BACzB,OAAO,EAAE,OAAO;yBACjB;qBACF;oBACD,oBAAoB,EAAE;wBACpB;4BACE,aAAa,EAAE,KAAK;4BACpB,aAAa,EAAE,GAAG;yBACnB;wBACD;4BACE,aAAa,EAAE,UAAU;4BACzB,aAAa,EAAE,GAAG;yBACnB;qBACF;oBACD,sBAAsB,EAAE;wBACtB;4BACE,SAAS,EAAE,uBAAuB;4BAClC,SAAS,EAAE;gCACT;oCACE,aAAa,EAAE,KAAK;oCACpB,OAAO,EAAE,MAAM;iCAChB;6BACF;4BACD,UAAU,EAAE;gCACV,cAAc,EAAE,KAAK;6BACtB;4BACD,qBAAqB,EAAE;gCACrB,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,iBAAkB;gCAC5D,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,kBAAmB;6BAC/D;yBACF;wBACD;4BACE,SAAS,EAAE,uBAAuB;4BAClC,SAAS,EAAE;gCACT;oCACE,aAAa,EAAE,UAAU;oCACzB,OAAO,EAAE,MAAM;iCAChB;6BACF;4BACD,UAAU,EAAE;gCACV,cAAc,EAAE,KAAK;6BACtB;4BACD,qBAAqB,EAAE;gCACrB,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,iBAAkB;gCAC5D,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,kBAAmB;6BAC/D;yBACF;qBACF;oBACD,qBAAqB,EAAE;wBACrB,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,iBAAkB;wBAC5D,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,kBAAmB;qBAC/D;oBACD,SAAS,EAAE,cAAc;iBAC1B,CAAC,CACH,CAAC;aACH;YAAC,OAAO,KAAU,EAAE;gBACnB,IACE,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,QAAQ,CAAC,iCAAiC,CAAC,CAAA;oBAC5D,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,WAAW,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAA,EAC/D;oBACA,MAAM,KAAK,CAAC;iBACb;aACF;YACD,OAAO,IAAI,CAAC;;KACb;IAED,mCAAmC;IAC7B,IAAI,CAAC,SAAiB,EAAE,GAAW;;YACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,IAAI,gCAAc,CAAC,EAAE,GAAG,EAAE,IAAA,wBAAQ,EAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAChF,CAAC;YAEF,6CAA6C;YAC7C,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAEnC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,0BAAU,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEpD,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,IAAG,GAAG,EAAE;gBACzB,OAAO,IAAI,CAAC;aACb;YAED,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;gBACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC/B;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEK,GAAG,CAAC,SAAiB,EAAE,GAAW;;YACtC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;KAAA;IAEK,MAAM,CAAC,SAAiB,EAAE,CAAU,EAAE,SAAkB,EAAE,SAAkB;;;YAChF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,IAAI,8BAAY,CAAC;gBACf,sBAAsB,EAAE,wBAAwB;gBAChD,yBAAyB,EAAE;oBACzB,YAAY,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE;iBAC/B;gBACD,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,SAAS,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACzD,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;aACnG,CAAC,CACH,CAAC;YAEF,MAAM,YAAY,GAAG,GAAG,CAAC,gBAAgB;gBACvC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACtE,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,KAAK,GAAgB,EAAE,CAAC;YAC9B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE;gBAClC,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,CAAC,CAAC;gBAC7B,MAAM,CAAC,GAAG,MAAA,IAAI,CAAC,GAAG,0CAAE,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,CAAC,CAAC;gBAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE;oBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC9B,IAAI,GAAG,EAAE;wBACP,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACjB;iBACF;aACF;YAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;;KACjD;IAED,uGAAuG;IACjG,UAAU,CACd,SAAiB,EACjB,GAAU,EACV,CAAU,EACV,EAAW,EACX,SAAkB;;;YAElB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,IAAI,8BAAY,CAAC;gBACf,sBAAsB,EAAE,aAAa;gBACrC,wBAAwB,EAAE;oBACxB,MAAM,EAAE,KAAK;iBACd;gBACD,yBAAyB,EAAE;oBACzB,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;iBACnD;gBACD,SAAS,EAAE,cAAc;gBACzB,SAAS,EAAE,uBAAuB;gBAClC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;aACnG,CAAC,CACH,CAAC;YAEF,MAAM,YAAY,GAAG,GAAG,CAAC,gBAAgB;gBACvC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACtE,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,KAAK,GAAgB,EAAE,CAAC;YAC9B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE;gBAClC,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,CAAC,CAAC;gBAC7B,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,CAAC,CAAC;gBAC5B,IAAI,EAAE,IAAI,EAAE,EAAE;oBACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,0CAA0C;oBAC/E,IAAI,GAAG,EAAE;wBACP,KAAK,CAAC,IAAI,CAAC;4BACT,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,GAAG,EAAE,GAAG,CAAC,GAAG;yBACb,CAAC,CAAC;qBACJ;iBACF;aACF;YAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;;KACjD;IAEK,GAAG,CAAC,SAAiB,EAAE,GAAW,EAAE,GAAc,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,OAAc;;YAClF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACnC,MAAM,GAAG,GAAyC;gBAChD,SAAS;gBACT,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBAC1B,SAAS,EAAE,GAAG;aACf,CAAC;YAEF,IAAI,GAAG,EAAE;gBACP,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;gBAClD,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;aACrC;YAED,MAAM,WAAW,GAAmB,EAAE,CAAC;YACvC,uCAAuC;YACvC,KAAK,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE;gBAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAEnD,WAAW,CAAC,IAAI,CAAC;oBACf,UAAU,EAAE;wBACV,IAAI,EAAE,IAAA,wBAAQ,EAAC;4BACb,SAAS;4BACT,GAAG,EAAE,MAAM;4BACX,QAAQ,EAAE,KAAK;yBAChB,CAAC;qBACH;iBACF,CAAC,CAAC;aACJ;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,MAAM,QAAQ,GAAmC,EAAE,CAAC;gBACpD,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;gBACvC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,IAAI,uCAAqB,CAAC;oBACxB,YAAY,EAAE,QAAQ;iBACvB,CAAC,CACH,CAAC;aACH;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,IAAI,gCAAc,CAAC;gBACjB,SAAS,EAAE,SAAS;gBACpB,IAAI,EAAE,IAAA,wBAAQ,EAAC,GAAG,CAAC;aACpB,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAEK,MAAM,CAAC,SAAiB,EAAE,GAAW;;;YACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,IAAI,mCAAiB,CAAC;gBACpB,SAAS,EAAE,SAAS;gBACpB,GAAG,EAAE,IAAA,wBAAQ,EAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;aACzC,CAAC,CACH,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,IAAI,8BAAY,CAAC;gBACf,sBAAsB,EAAE,sBAAsB;gBAC9C,yBAAyB,EAAE;oBACzB,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE;iBAC1B;gBACD,SAAS,EAAE,cAAc;gBACzB,SAAS,EAAE,uBAAuB;aACnC,CAAC,CACH,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE;gBAClC,MAAM,CAAC,GAAG,MAAA,IAAI,CAAC,GAAG,0CAAE,CAAC,CAAC;gBACtB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,IAAI,mCAAiB,CAAC;oBACpB,SAAS,EAAE,cAAc;oBACzB,GAAG,EAAE,IAAA,wBAAQ,EAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;iBAC3C,CAAC,CACH,CAAC;aACH;;KACF;IAEK,UAAU,CAAC,SAAiB,EAAE,IAAc;;YAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,OAAO;aACR;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;KAAA;CACF;AAED,kBAAe;IACb,GAAG,EAAE,CAAO,OAAuB,EAAqB,EAAE;QACxD,OAAO,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAA;CACF,CAAC"}
package/dist/db/mem.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { DatabaseDriver, DatabaseOption, Index, Encrypted } from '../typings';
1
+ import { DatabaseDriver, DatabaseOption, Index, Encrypted, Records } from '../typings';
2
2
  declare class Mem implements DatabaseDriver {
3
3
  private options;
4
4
  private store;
@@ -10,10 +10,11 @@ declare class Mem implements DatabaseDriver {
10
10
  constructor(options: DatabaseOption);
11
11
  init(): Promise<Mem>;
12
12
  get(namespace: string, key: string): Promise<any>;
13
- getAll(namespace: string, pageOffset?: number, pageLimit?: number): Promise<unknown[]>;
14
- getByIndex(namespace: string, idx: Index, pageOffset?: number, pageLimit?: number): Promise<any>;
13
+ getAll(namespace: string, pageOffset?: number, pageLimit?: number, _?: string): Promise<Records>;
14
+ getByIndex(namespace: string, idx: Index, pageOffset?: number, pageLimit?: number, _?: string): Promise<Records>;
15
15
  put(namespace: string, key: string, val: Encrypted, ttl?: number, ...indexes: any[]): Promise<any>;
16
16
  delete(namespace: string, key: string): Promise<any>;
17
+ deleteMany(namespace: string, keys: string[]): Promise<void>;
17
18
  }
18
19
  declare const _default: {
19
20
  new: (options: DatabaseOption) => Promise<Mem>;