@harperfast/harper 5.0.7 → 5.0.9

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 (74) hide show
  1. package/bin/status.js +2 -2
  2. package/bin/stop.js +5 -6
  3. package/components/OptionsWatcher.ts +9 -1
  4. package/dataLayer/harperBridge/TableSizeObject.ts +35 -0
  5. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +24 -0
  6. package/dist/bin/status.js +2 -2
  7. package/dist/bin/status.js.map +1 -1
  8. package/dist/bin/stop.js +5 -5
  9. package/dist/bin/stop.js.map +1 -1
  10. package/dist/components/OptionsWatcher.js +8 -1
  11. package/dist/components/OptionsWatcher.js.map +1 -1
  12. package/dist/dataLayer/harperBridge/TableSizeObject.d.ts +20 -0
  13. package/dist/dataLayer/harperBridge/TableSizeObject.js +32 -0
  14. package/dist/dataLayer/harperBridge/TableSizeObject.js.map +1 -0
  15. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.d.ts +6 -6
  16. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +18 -19
  17. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js.map +1 -1
  18. package/dist/globals.d.ts +4 -3
  19. package/dist/globals.js +7 -4
  20. package/dist/globals.js.map +1 -1
  21. package/dist/index.d.ts +45 -7
  22. package/dist/index.js +32 -36
  23. package/dist/index.js.map +1 -1
  24. package/dist/resources/DatabaseTransaction.js +6 -1
  25. package/dist/resources/DatabaseTransaction.js.map +1 -1
  26. package/dist/resources/RecordEncoder.d.ts +1 -0
  27. package/dist/resources/RecordEncoder.js +18 -9
  28. package/dist/resources/RecordEncoder.js.map +1 -1
  29. package/dist/resources/Table.d.ts +1 -1
  30. package/dist/resources/Table.js +13 -2
  31. package/dist/resources/Table.js.map +1 -1
  32. package/dist/resources/blob.d.ts +6 -0
  33. package/dist/resources/blob.js +5 -2
  34. package/dist/resources/blob.js.map +1 -1
  35. package/dist/resources/databases.js +2 -1
  36. package/dist/resources/databases.js.map +1 -1
  37. package/dist/security/jsLoader.d.ts +3 -0
  38. package/dist/security/jsLoader.js +19 -2
  39. package/dist/security/jsLoader.js.map +1 -1
  40. package/dist/security/keys.js +1 -1
  41. package/dist/security/keys.js.map +1 -1
  42. package/dist/server/DurableSubscriptionsSession.js +2 -0
  43. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  44. package/dist/server/serverHelpers/serverUtilities.js +2 -2
  45. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  46. package/dist/utility/environment/systemInformation.d.ts +178 -49
  47. package/dist/utility/environment/systemInformation.js +359 -219
  48. package/dist/utility/environment/systemInformation.js.map +1 -1
  49. package/dist/utility/operation_authorization.js +2 -2
  50. package/dist/utility/operation_authorization.js.map +1 -1
  51. package/index.ts +113 -0
  52. package/package.json +3 -3
  53. package/resources/DatabaseTransaction.ts +8 -3
  54. package/resources/RecordEncoder.ts +11 -3
  55. package/resources/Table.ts +13 -2
  56. package/resources/blob.ts +7 -2
  57. package/resources/databases.ts +2 -1
  58. package/security/jsLoader.ts +17 -5
  59. package/security/keys.js +1 -1
  60. package/server/DurableSubscriptionsSession.ts +1 -0
  61. package/server/serverHelpers/serverUtilities.ts +2 -5
  62. package/studio/web/assets/{index-C0And10y.js → index-DL0ibcSu.js} +2 -2
  63. package/studio/web/assets/{index-C0And10y.js.map → index-DL0ibcSu.js.map} +1 -1
  64. package/studio/web/index.html +1 -1
  65. package/utility/environment/systemInformation.ts +698 -0
  66. package/utility/operation_authorization.js +2 -5
  67. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +0 -25
  68. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +0 -34
  69. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.d.ts +0 -21
  70. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +0 -24
  71. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js.map +0 -1
  72. package/index.d.ts +0 -56
  73. package/index.js +0 -41
  74. package/utility/environment/systemInformation.js +0 -355
package/bin/status.js CHANGED
@@ -6,7 +6,7 @@ const YAML = require('yaml');
6
6
 
7
7
  const hdbTerms = require('../utility/hdbTerms.ts');
8
8
  const hdbLog = require('../utility/logging/harper_logger.js');
9
- const sysInfo = require('../utility/environment/systemInformation.js');
9
+ const systemInformation = require('../utility/environment/systemInformation.ts');
10
10
  const envMgr = require('../utility/environment/environmentManager.js');
11
11
  const installation = require('../utility/installation.ts');
12
12
  envMgr.initSync();
@@ -51,7 +51,7 @@ async function status() {
51
51
  }
52
52
 
53
53
  // Check the saved pid against any running hdb processes
54
- const hdbSysInfo = await sysInfo.getHDBProcessInfo();
54
+ const hdbSysInfo = await systemInformation.getHDBProcessInfo();
55
55
  for (const proc of hdbSysInfo.core) {
56
56
  if (proc.pid === hdbPid) {
57
57
  status.harperdb.status = STATUSES.RUNNING;
package/bin/stop.js CHANGED
@@ -4,7 +4,7 @@ const hdbLogger = require('../utility/logging/harper_logger.js');
4
4
  const util = require('util');
5
5
  const childProcess = require('child_process');
6
6
  const exec = util.promisify(childProcess.exec);
7
- const sysInfo = require('../utility/environment/systemInformation.js');
7
+ const systemInformation = require('../utility/environment/systemInformation.ts');
8
8
 
9
9
  const STOP_MSG = 'Stopping Harper.';
10
10
 
@@ -14,9 +14,8 @@ async function stop() {
14
14
  console.log(STOP_MSG);
15
15
  hdbLogger.notify(STOP_MSG);
16
16
 
17
- const processes = await sysInfo.getHDBProcessInfo();
18
-
19
- processes.core.forEach((p) => {
20
- exec(`kill ${p.pid}`);
21
- });
17
+ const processes = await systemInformation.getHDBProcessInfo();
18
+ for (const { pid } of processes.core) {
19
+ exec(`kill ${pid}`);
20
+ }
22
21
  }
@@ -178,7 +178,9 @@ export class OptionsWatcher extends EventEmitter<OptionsWatcherEventMap> {
178
178
  // First, ensure current and new config values are Config objects (not null, undefined, or a primitive)
179
179
  if (!this.#isConfig(currentConfigValue) || !this.#isConfig(newConfigValue)) {
180
180
  // If either is not a config, then just set as there is no need to diff/merge
181
- this.#setValue(prevKeys, newConfigValue);
181
+ if (!isDeepStrictEqual(currentConfigValue, newConfigValue)) {
182
+ this.#setValue(prevKeys, newConfigValue);
183
+ }
182
184
  return;
183
185
  }
184
186
 
@@ -256,6 +258,12 @@ export class OptionsWatcher extends EventEmitter<OptionsWatcherEventMap> {
256
258
  throw new InvalidValueTypeError(keys, value);
257
259
  }
258
260
 
261
+ if (keys.length === 0) {
262
+ this.#scopedConfig = value;
263
+ this.emit('change', keys, value, this.#scopedConfig);
264
+ return;
265
+ }
266
+
259
267
  let obj: ConfigValue = this.#scopedConfig;
260
268
 
261
269
  for (const key of keys.slice(0, -1)) {
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Represents the table size entry for a RocksDB or LMDB table.
3
+ */
4
+ export class TableSizeObject {
5
+ schema: string;
6
+ table: string;
7
+ tableSize: number;
8
+ recordCount: number;
9
+ transactionLogSize: number;
10
+ transactionLogRecordCount?: number;
11
+
12
+ /**
13
+ * @param schema - The schema of the table
14
+ * @param table - The name of the table
15
+ * @param tableSize - The data size of the table in bytes
16
+ * @param recordCount - The number of entries in the table
17
+ * @param transactionLogSize - The number of entries in the transaction log
18
+ * @param transactionLogRecordCount - The data size of the transaction log in bytes
19
+ */
20
+ constructor(
21
+ schema: string,
22
+ table: string,
23
+ tableSize: number = 0,
24
+ recordCount: number = 0,
25
+ transactionLogSize: number = 0,
26
+ transactionLogRecordCount?: number
27
+ ) {
28
+ this.schema = schema;
29
+ this.table = table;
30
+ this.tableSize = tableSize;
31
+ this.recordCount = recordCount;
32
+ this.transactionLogSize = transactionLogSize;
33
+ this.transactionLogRecordCount = transactionLogRecordCount;
34
+ }
35
+ }
@@ -0,0 +1,24 @@
1
+ import { TableSizeObject } from '../../TableSizeObject.ts';
2
+ import logger from '../../../../utility/logging/harper_logger.js';
3
+ import type { Table } from '../../../../resources/databases.ts';
4
+
5
+ /**
6
+ * Calculates the number of entries & data size in bytes for a table & its transaction log
7
+ * @param table
8
+ * @returns {TableSizeObject}
9
+ */
10
+ export function lmdbGetTableSize(table: Table) {
11
+ const tableStats = new TableSizeObject(table.databaseName, table.tableName);
12
+ try {
13
+ const dbiStat = table.primaryStore.getStats();
14
+
15
+ //get the txn log record count
16
+ const txnDbiStat = table.auditStore?.getStats();
17
+
18
+ tableStats.recordCount = dbiStat.entryCount;
19
+ tableStats.transactionLogRecordCount = txnDbiStat.entryCount;
20
+ } catch (e) {
21
+ logger.warn(`unable to stat table dbi due to ${e}`);
22
+ }
23
+ return tableStats;
24
+ }
@@ -4,7 +4,7 @@ const path = require('path');
4
4
  const YAML = require('yaml');
5
5
  const hdbTerms = require("../utility/hdbTerms.js");
6
6
  const hdbLog = require('../utility/logging/harper_logger.js');
7
- const sysInfo = require('../utility/environment/systemInformation.js');
7
+ const systemInformation = require("../utility/environment/systemInformation.js");
8
8
  const envMgr = require('../utility/environment/environmentManager.js');
9
9
  const installation = require("../utility/installation.js");
10
10
  envMgr.initSync();
@@ -42,7 +42,7 @@ async function status() {
42
42
  throw err;
43
43
  }
44
44
  // Check the saved pid against any running hdb processes
45
- const hdbSysInfo = await sysInfo.getHDBProcessInfo();
45
+ const hdbSysInfo = await systemInformation.getHDBProcessInfo();
46
46
  for (const proc of hdbSysInfo.core) {
47
47
  if (proc.pid === hdbPid) {
48
48
  status.harperdb.status = STATUSES.RUNNING;
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../bin/status.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACnD,MAAM,MAAM,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AACvE,MAAM,MAAM,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;AACvE,MAAM,YAAY,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAC3D,MAAM,CAAC,QAAQ,EAAE,CAAC;AAElB,MAAM,QAAQ,GAAG;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;CAC9B,CAAC;AAEF,IAAI,OAAO,CAAC;AAEZ,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;AAExB,KAAK,UAAU,MAAM;IACpB,IAAI,MAAM,GAAG;QACZ,QAAQ,EAAE;YACT,MAAM,EAAE,QAAQ,CAAC,OAAO;SACxB;KACD,CAAC;IAEF,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,OAAO;IACR,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAChG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACpC,OAAO;QACR,CAAC;QAED,MAAM,GAAG,CAAC;IACX,CAAC;IAED,wDAAwD;IACxD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC;YAC7B,MAAM;QACP,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../bin/status.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AACnD,MAAM,MAAM,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAC9D,MAAM,iBAAiB,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AACjF,MAAM,MAAM,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;AACvE,MAAM,YAAY,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAC3D,MAAM,CAAC,QAAQ,EAAE,CAAC;AAElB,MAAM,QAAQ,GAAG;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;CAC9B,CAAC;AAEF,IAAI,OAAO,CAAC;AAEZ,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;AAExB,KAAK,UAAU,MAAM;IACpB,IAAI,MAAM,GAAG;QACZ,QAAQ,EAAE;YACT,MAAM,EAAE,QAAQ,CAAC,OAAO;SACxB;KACD,CAAC;IAEF,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,OAAO;IACR,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAChG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACpC,OAAO;QACR,CAAC;QAED,MAAM,GAAG,CAAC;IACX,CAAC;IAED,wDAAwD;IACxD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;IAC/D,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC;YAC7B,MAAM;QACP,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,EAAE,CAAC;AAChB,CAAC"}
package/dist/bin/stop.js CHANGED
@@ -3,15 +3,15 @@ const hdbLogger = require('../utility/logging/harper_logger.js');
3
3
  const util = require('util');
4
4
  const childProcess = require('child_process');
5
5
  const exec = util.promisify(childProcess.exec);
6
- const sysInfo = require('../utility/environment/systemInformation.js');
6
+ const systemInformation = require("../utility/environment/systemInformation.js");
7
7
  const STOP_MSG = 'Stopping Harper.';
8
8
  module.exports = stop;
9
9
  async function stop() {
10
10
  console.log(STOP_MSG);
11
11
  hdbLogger.notify(STOP_MSG);
12
- const processes = await sysInfo.getHDBProcessInfo();
13
- processes.core.forEach((p) => {
14
- exec(`kill ${p.pid}`);
15
- });
12
+ const processes = await systemInformation.getHDBProcessInfo();
13
+ for (const { pid } of processes.core) {
14
+ exec(`kill ${pid}`);
15
+ }
16
16
  }
17
17
  //# sourceMappingURL=stop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../bin/stop.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,SAAS,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AAEvE,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AAEpC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AAEtB,KAAK,UAAU,IAAI;IAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAEpD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../bin/stop.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,SAAS,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,iBAAiB,GAAG,OAAO,CAAC,6CAA6C,CAAC,CAAC;AAEjF,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AAEpC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;AAEtB,KAAK,UAAU,IAAI;IAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3B,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;IAC9D,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IACrB,CAAC;AACF,CAAC"}
@@ -157,7 +157,9 @@ class OptionsWatcher extends events_1.EventEmitter {
157
157
  // First, ensure current and new config values are Config objects (not null, undefined, or a primitive)
158
158
  if (!this.#isConfig(currentConfigValue) || !this.#isConfig(newConfigValue)) {
159
159
  // If either is not a config, then just set as there is no need to diff/merge
160
- this.#setValue(prevKeys, newConfigValue);
160
+ if (!(0, util_1.isDeepStrictEqual)(currentConfigValue, newConfigValue)) {
161
+ this.#setValue(prevKeys, newConfigValue);
162
+ }
161
163
  return;
162
164
  }
163
165
  // Check for any missing keys (new config has removed keys from current config)
@@ -222,6 +224,11 @@ class OptionsWatcher extends events_1.EventEmitter {
222
224
  if (!['object', 'string', 'array', 'number', 'boolean', 'undefined'].includes(typeof value)) {
223
225
  throw new InvalidValueTypeError(keys, value);
224
226
  }
227
+ if (keys.length === 0) {
228
+ this.#scopedConfig = value;
229
+ this.emit('change', keys, value, this.#scopedConfig);
230
+ return;
231
+ }
225
232
  let obj = this.#scopedConfig;
226
233
  for (const key of keys.slice(0, -1)) {
227
234
  if (obj === null || obj === undefined || typeof obj !== 'object' || !(key in obj)) {
@@ -1 +1 @@
1
- {"version":3,"file":"OptionsWatcher.js","sourceRoot":"","sources":["../../components/OptionsWatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OptionsWatcher.js","sourceRoot":"","sources":["../../components/OptionsWatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Represents the table size entry for a RocksDB or LMDB table.
3
+ */
4
+ export declare class TableSizeObject {
5
+ schema: string;
6
+ table: string;
7
+ tableSize: number;
8
+ recordCount: number;
9
+ transactionLogSize: number;
10
+ transactionLogRecordCount?: number;
11
+ /**
12
+ * @param schema - The schema of the table
13
+ * @param table - The name of the table
14
+ * @param tableSize - The data size of the table in bytes
15
+ * @param recordCount - The number of entries in the table
16
+ * @param transactionLogSize - The number of entries in the transaction log
17
+ * @param transactionLogRecordCount - The data size of the transaction log in bytes
18
+ */
19
+ constructor(schema: string, table: string, tableSize?: number, recordCount?: number, transactionLogSize?: number, transactionLogRecordCount?: number);
20
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableSizeObject = void 0;
4
+ /**
5
+ * Represents the table size entry for a RocksDB or LMDB table.
6
+ */
7
+ class TableSizeObject {
8
+ schema;
9
+ table;
10
+ tableSize;
11
+ recordCount;
12
+ transactionLogSize;
13
+ transactionLogRecordCount;
14
+ /**
15
+ * @param schema - The schema of the table
16
+ * @param table - The name of the table
17
+ * @param tableSize - The data size of the table in bytes
18
+ * @param recordCount - The number of entries in the table
19
+ * @param transactionLogSize - The number of entries in the transaction log
20
+ * @param transactionLogRecordCount - The data size of the transaction log in bytes
21
+ */
22
+ constructor(schema, table, tableSize = 0, recordCount = 0, transactionLogSize = 0, transactionLogRecordCount) {
23
+ this.schema = schema;
24
+ this.table = table;
25
+ this.tableSize = tableSize;
26
+ this.recordCount = recordCount;
27
+ this.transactionLogSize = transactionLogSize;
28
+ this.transactionLogRecordCount = transactionLogRecordCount;
29
+ }
30
+ }
31
+ exports.TableSizeObject = TableSizeObject;
32
+ //# sourceMappingURL=TableSizeObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSizeObject.js","sourceRoot":"","sources":["../../../dataLayer/harperBridge/TableSizeObject.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,eAAe;IAC3B,MAAM,CAAS;IACf,KAAK,CAAS;IACd,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,kBAAkB,CAAS;IAC3B,yBAAyB,CAAU;IAEnC;;;;;;;OAOG;IACH,YACC,MAAc,EACd,KAAa,EACb,YAAoB,CAAC,EACrB,cAAsB,CAAC,EACvB,qBAA6B,CAAC,EAC9B,yBAAkC;QAElC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;IAC5D,CAAC;CACD;AA/BD,0CA+BC"}
@@ -1,8 +1,8 @@
1
- export = lmdbGetTableSize;
1
+ import { TableSizeObject } from '../../TableSizeObject.ts';
2
+ import type { Table } from '../../../../resources/databases.ts';
2
3
  /**
3
- * calculates the number of entries & data size in bytes for a table & its transaction log
4
- * @param tableObject
5
- * @returns {Promise<TableSizeObject>}
4
+ * Calculates the number of entries & data size in bytes for a table & its transaction log
5
+ * @param table
6
+ * @returns {TableSizeObject}
6
7
  */
7
- declare function lmdbGetTableSize(tableObject: any): Promise<TableSizeObject>;
8
- import TableSizeObject = require("./TableSizeObject.js");
8
+ export declare function lmdbGetTableSize(table: Table): TableSizeObject;
@@ -1,28 +1,27 @@
1
- 'use strict';
2
- const TableSizeObject = require('./TableSizeObject.js');
3
- const log = require('../../../../utility/logging/harper_logger.js');
4
- const { getDatabases } = require("../../../../resources/databases.js");
5
- module.exports = lmdbGetTableSize;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.lmdbGetTableSize = lmdbGetTableSize;
7
+ const TableSizeObject_ts_1 = require("../../TableSizeObject.js");
8
+ const harper_logger_js_1 = __importDefault(require("../../../../utility/logging/harper_logger.js"));
6
9
  /**
7
- * calculates the number of entries & data size in bytes for a table & its transaction log
8
- * @param tableObject
9
- * @returns {Promise<TableSizeObject>}
10
+ * Calculates the number of entries & data size in bytes for a table & its transaction log
11
+ * @param table
12
+ * @returns {TableSizeObject}
10
13
  */
11
- async function lmdbGetTableSize(tableObject) {
12
- let tableStats = new TableSizeObject();
14
+ function lmdbGetTableSize(table) {
15
+ const tableStats = new TableSizeObject_ts_1.TableSizeObject(table.databaseName, table.tableName);
13
16
  try {
14
- //get the table record count
15
- let table = getDatabases()[tableObject.schema]?.[tableObject.name];
16
- let dbiStat = table.primaryStore.getStats();
17
+ const dbiStat = table.primaryStore.getStats();
17
18
  //get the txn log record count
18
- let txnDbiStat = table.auditStore?.getStats();
19
- tableStats.schema = tableObject.schema;
20
- tableStats.table = tableObject.name;
21
- tableStats.record_count = dbiStat.entryCount;
22
- tableStats.transaction_log_record_count = txnDbiStat.entryCount;
19
+ const txnDbiStat = table.auditStore?.getStats();
20
+ tableStats.recordCount = dbiStat.entryCount;
21
+ tableStats.transactionLogRecordCount = txnDbiStat.entryCount;
23
22
  }
24
23
  catch (e) {
25
- log.warn(`unable to stat table dbi due to ${e}`);
24
+ harper_logger_js_1.default.warn(`unable to stat table dbi due to ${e}`);
26
25
  }
27
26
  return tableStats;
28
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lmdbGetTableSize.js","sourceRoot":"","sources":["../../../../../dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACxD,MAAM,GAAG,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;AACpE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;AAEvE,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC;AAElC;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAAC,WAAW;IAC1C,IAAI,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,IAAI,CAAC;QACJ,4BAA4B;QAC5B,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEnE,IAAI,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE5C,8BAA8B;QAC9B,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;QAE9C,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QACvC,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;QACpC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;QAC7C,UAAU,CAAC,4BAA4B,GAAG,UAAU,CAAC,UAAU,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"lmdbGetTableSize.js","sourceRoot":"","sources":["../../../../../dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts"],"names":[],"mappings":";;;;;AASA,4CAcC;AAvBD,iEAA2D;AAC3D,oGAAkE;AAGlE;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,KAAY;IAC5C,MAAM,UAAU,GAAG,IAAI,oCAAe,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5E,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE9C,8BAA8B;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;QAEhD,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5C,UAAU,CAAC,yBAAyB,GAAG,UAAU,CAAC,UAAU,CAAC;IAC9D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,0BAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC"}
package/dist/globals.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- export { undefined as Resource };
2
- export const tables: {};
1
+ export const contentTypes: any;
3
2
  export const databases: {};
3
+ export const logger: {};
4
4
  export const server: {};
5
- export const contentTypes: any;
5
+ export const tables: {};
6
6
  export const threads: any[];
7
7
  export function _assignPackageExport(name: any, value: any): void;
8
+ export { undefined as createBlob, undefined as operation, undefined as Resource, undefined as transaction };
package/dist/globals.js CHANGED
@@ -1,11 +1,14 @@
1
1
  'use strict';
2
- global.Resource = exports.Resource = undefined;
3
- global.tables = exports.tables = {};
2
+ global.contentTypes = exports.contentTypes = null;
3
+ global.createBlob = exports.createBlob = undefined;
4
4
  global.databases = exports.databases = {};
5
+ global.logger = exports.logger = {};
6
+ global.operation = exports.operation = undefined;
7
+ global.Resource = exports.Resource = undefined;
5
8
  global.server = exports.server = {};
6
- global.contentTypes = exports.contentTypes = null;
9
+ global.tables = exports.tables = {};
7
10
  global.threads = exports.threads = [];
8
- global.logger = {};
11
+ global.transaction = exports.transaction = undefined;
9
12
  exports._assignPackageExport = (name, value) => {
10
13
  global[name] = exports[name] = value;
11
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"globals.js","sourceRoot":"","sources":["../globals.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC/C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;AAClD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB,OAAO,CAAC,oBAAoB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../globals.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;AAClD,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;AACnD,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC/C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;AACrD,OAAO,CAAC,oBAAoB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACtC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,45 @@
1
- export const tables: {};
2
- export const databases: {};
3
- export const server: {};
4
- export const contentTypes: any;
5
- export const threads: any[];
6
- export const logger: {};
7
- export { undefined as Attribute, undefined as Config, undefined as ConfigValue, undefined as Context, undefined as FileAndURLPathConfig, undefined as FilesOption, undefined as FilesOptionObject, undefined as IterableEventQueue, undefined as Logger, undefined as Query, undefined as RecordObject, undefined as RequestTarget, undefined as RequestTargetOrId, undefined as Resource, undefined as ResourceInterface, undefined as Scope, undefined as Session, undefined as SourceContext, undefined as SubscriptionRequest, undefined as Table, undefined as User, undefined as getUser };
1
+ export { RequestTarget } from './resources/RequestTarget.ts';
2
+ export { getContext, getResponse, getUser } from './security/jsLoader.ts';
3
+ export type { Query, Context, Session, SourceContext, SubscriptionRequest, RequestTargetOrId, ResourceInterface, } from './resources/ResourceInterface.ts';
4
+ export type { User } from './security/user.ts';
5
+ export type { RecordObject } from './resources/RecordEncoder.ts';
6
+ export type { IterableEventQueue } from './resources/IterableEventQueue.ts';
7
+ export type { Table } from './resources/databases.ts';
8
+ export type { Attribute } from './resources/Table.ts';
9
+ export type { Scope } from './components/Scope.ts';
10
+ export type { FilesOption, FilesOptionObject } from './components/deriveGlobOptions.ts';
11
+ export type { FileAndURLPathConfig } from './components/Component.ts';
12
+ export type { OptionsWatcher, Config, ConfigValue } from './components/OptionsWatcher.ts';
13
+ export type { EntryHandler, BaseEntry, FileEntry, EntryEvent, AddFileEvent, ChangeFileEvent, UnlinkFileEvent, FileEntryEvent, AddDirectoryEvent, UnlinkDirectoryEvent, DirectoryEntryEvent, } from './components/EntryHandler.ts';
14
+ import type { contentTypes as ContentTypesImport } from './server/serverHelpers/contentTypes.ts';
15
+ import type { createBlob as CreateBlobImport } from './resources/blob.ts';
16
+ import type { databases as DatabasesImport } from './resources/databases.ts';
17
+ import type { Logger } from './utility/logging/logger.ts';
18
+ import type { operation as OperationImport } from './server/serverHelpers/serverUtilities.ts';
19
+ import type { Resource as ResourceImport } from './resources/Resource.ts';
20
+ import type { server as ServerImport } from './server/Server.ts';
21
+ import type { tables as TablesImport } from './resources/databases.ts';
22
+ type ThreadsImport = unknown[];
23
+ import type { transaction as TransactionImport } from './resources/transaction.ts';
24
+ declare global {
25
+ const contentTypes: typeof ContentTypesImport;
26
+ const createBlob: typeof CreateBlobImport;
27
+ const databases: typeof DatabasesImport;
28
+ const logger: Logger;
29
+ const operation: typeof OperationImport;
30
+ const Resource: typeof ResourceImport;
31
+ const server: typeof ServerImport;
32
+ const tables: typeof TablesImport;
33
+ const threads: ThreadsImport;
34
+ const transaction: typeof TransactionImport;
35
+ }
36
+ export declare const contentTypes: typeof ContentTypesImport;
37
+ export declare const createBlob: typeof CreateBlobImport;
38
+ export declare const databases: typeof DatabasesImport;
39
+ export declare const logger: Logger;
40
+ export declare const operation: typeof OperationImport;
41
+ export declare const Resource: typeof ResourceImport;
42
+ export declare const server: typeof ServerImport;
43
+ export declare const tables: typeof TablesImport;
44
+ export declare const threads: ThreadsImport;
45
+ export declare const transaction: typeof TransactionImport;
package/dist/index.js CHANGED
@@ -1,42 +1,38 @@
1
1
  "use strict";
2
- const workerThreads = require('node:worker_threads');
3
- if (!workerThreads.isMainThread) {
4
- // Prevents server from starting in worker threads if this was directly imported from a non-server user thread
5
- if (!workerThreads.workerData)
6
- workerThreads.workerData = {};
7
- workerThreads.workerData.noServerStart = true;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getUser = exports.getResponse = exports.getContext = exports.RequestTarget = void 0;
7
+ // Prevents server from starting in worker threads if this was directly imported from a non-server user thread
8
+ const node_worker_threads_1 = __importDefault(require("node:worker_threads"));
9
+ if (!node_worker_threads_1.default.isMainThread) {
10
+ // @ts-expect-error - Idk this has been here for a while. Types say its readonly, but that must not be true.
11
+ if (!node_worker_threads_1.default.workerData)
12
+ node_worker_threads_1.default.workerData = {};
13
+ node_worker_threads_1.default.workerData.noServerStart = true;
8
14
  }
9
- const { globals } = require('./server/threads/threadServer.js');
10
- // exported types are needed for parsing as well
11
- exports.Attribute = undefined;
12
- exports.Config = undefined;
13
- exports.ConfigValue = undefined;
14
- exports.Context = undefined;
15
- exports.FileAndURLPathConfig = undefined;
16
- exports.FilesOption = undefined;
17
- exports.FilesOptionObject = undefined;
18
- exports.IterableEventQueue = undefined;
19
- exports.Logger = undefined;
20
- exports.Query = undefined;
21
- exports.RecordObject = undefined;
22
- exports.RequestTarget = undefined;
23
- exports.RequestTargetOrId = undefined;
24
- exports.Resource = undefined;
25
- exports.ResourceInterface = undefined;
26
- exports.Scope = undefined;
27
- exports.Session = undefined;
28
- exports.SourceContext = undefined;
29
- exports.SubscriptionRequest = undefined;
30
- exports.Table = undefined;
31
- exports.User = undefined;
32
- // these are all overwritten by the globals, but need to be here so that Node's static
33
- // exports parser can analyze them
34
- exports.tables = {};
15
+ // Regular exports (don't require the same initialization as the globals at the end of this file do)
16
+ var RequestTarget_ts_1 = require("./resources/RequestTarget.js");
17
+ Object.defineProperty(exports, "RequestTarget", { enumerable: true, get: function () { return RequestTarget_ts_1.RequestTarget; } });
18
+ var jsLoader_ts_1 = require("./security/jsLoader.js");
19
+ Object.defineProperty(exports, "getContext", { enumerable: true, get: function () { return jsLoader_ts_1.getContext; } });
20
+ Object.defineProperty(exports, "getResponse", { enumerable: true, get: function () { return jsLoader_ts_1.getResponse; } });
21
+ Object.defineProperty(exports, "getUser", { enumerable: true, get: function () { return jsLoader_ts_1.getUser; } });
22
+ // Actual define the values on the `exports` for CJS static analysis
23
+ exports.contentTypes = null;
24
+ exports.createBlob = undefined;
35
25
  exports.databases = {};
36
- exports.getUser = undefined;
26
+ exports.logger = {};
27
+ exports.operation = undefined;
28
+ exports.Resource = undefined;
37
29
  exports.server = {};
38
- exports.contentTypes = null;
30
+ exports.tables = {};
39
31
  exports.threads = [];
40
- exports.logger = {};
41
- Object.assign(exports, globals);
32
+ exports.transaction = undefined;
33
+ // And finally assign globals to exports.
34
+ // These values are populated at runtime by `_assignPackageExport()` in their respective modules
35
+ // (e.g. Resource.ts, databases.ts, Server.ts, etc.)
36
+ const threadServer_js_1 = require("./server/threads/threadServer.js");
37
+ Object.assign(exports, threadServer_js_1.globals);
42
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.js"],"names":[],"mappings":";AAAA,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACrD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IACjC,8GAA8G;IAC9G,IAAI,CAAC,aAAa,CAAC,UAAU;QAAE,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7D,aAAa,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;AAC/C,CAAC;AACD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAEhE,gDAAgD;AAChD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;AAC9B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;AAC3B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;AAChC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;AAC5B,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;AACzC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;AAChC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACtC,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;AACvC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;AAC3B,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;AAC1B,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;AACjC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;AAClC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACtC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC7B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACtC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;AAC1B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;AAC5B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;AAClC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;AACxC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;AAC1B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;AAEzB,sFAAsF;AACtF,kCAAkC;AAClC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACvB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;AAC5B,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;AACrB,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;AAAA,8GAA8G;AAC9G,8EAAgD;AAChD,IAAI,CAAC,6BAAa,CAAC,YAAY,EAAE,CAAC;IACjC,4GAA4G;IAC5G,IAAI,CAAC,6BAAa,CAAC,UAAU;QAAE,6BAAa,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7D,6BAAa,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;AAC/C,CAAC;AAED,oGAAoG;AACpG,iEAA6D;AAApD,iHAAA,aAAa,OAAA;AACtB,sDAA0E;AAAjE,yGAAA,UAAU,OAAA;AAAE,0GAAA,WAAW,OAAA;AAAE,sGAAA,OAAO,OAAA;AAqFzC,oEAAoE;AACpE,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;AAC/B,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACvB,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;AAC9B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC7B,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;AACrB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;AAEhC,yCAAyC;AACzC,gGAAgG;AAChG,oDAAoD;AACpD,sEAA2D;AAE3D,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAO,CAAC,CAAC"}
@@ -251,7 +251,12 @@ class DatabaseTransaction {
251
251
  if (!outstandingCommit) {
252
252
  outstandingCommit = commitResolution;
253
253
  outstandingCommitStart = performance.now();
254
- outstandingCommit.finally(() => {
254
+ outstandingCommit
255
+ // if `commitResolution` rejects with and `ERR_BUSY` error, the retry logic
256
+ // will correct course, but the reject will still be propagated on the
257
+ // `outstandingCommit` promise and needs to be caught and silenced
258
+ .catch(() => { })
259
+ .finally(() => {
255
260
  outstandingCommit = null;
256
261
  });
257
262
  }