harperdb 4.5.0-beta.1 → 4.5.0-beta.2

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 (73) hide show
  1. package/README.md +1 -1
  2. package/bin/harperdb.js +79 -79
  3. package/bin/lite.js +75 -75
  4. package/config/yaml/defaultConfig.yaml +2 -2
  5. package/json/systemSchema.json +3 -0
  6. package/launchServiceScripts/launchNatsIngestService.js +75 -75
  7. package/launchServiceScripts/launchNatsReplyService.js +76 -76
  8. package/launchServiceScripts/launchUpdateNodes4-0-0.js +75 -75
  9. package/npm-shrinkwrap.json +198 -28
  10. package/package.json +3 -1
  11. package/resources/RecordEncoder.d.ts +5 -1
  12. package/resources/Resource.d.ts +1 -0
  13. package/resources/Resources.d.ts +11 -3
  14. package/resources/Table.d.ts +4 -3
  15. package/resources/blob.d.ts +1 -0
  16. package/resources/databases.d.ts +4 -3
  17. package/server/Server.d.ts +1 -0
  18. package/server/jobs/jobProcess.js +75 -75
  19. package/server/storageReclamation.d.ts +18 -0
  20. package/server/threads/threadServer.js +75 -75
  21. package/studio/build-local/asset-manifest.json +37 -37
  22. package/studio/build-local/index.html +1 -1
  23. package/studio/build-local/running.html +86 -88
  24. package/studio/build-local/static/css/{main.60857e29.css → main.34b26890.css} +1 -1
  25. package/studio/build-local/static/js/{164.3490f18f.chunk.js → 164.6e0cda73.chunk.js} +1 -1
  26. package/studio/build-local/static/js/833.22ea9ecd.chunk.js +1 -0
  27. package/studio/build-local/static/js/{122.830d4399.chunk.js → 873.55a21fe5.chunk.js} +2 -2
  28. package/studio/build-local/static/js/{browse-csvupload.cdc5e843.chunk.js → browse-csvupload.1345356f.chunk.js} +1 -1
  29. package/studio/build-local/static/js/{browse-datatable.3f426683.chunk.js → browse-datatable.8d180288.chunk.js} +1 -1
  30. package/studio/build-local/static/js/{browse-entitymanager.e9b890eb.chunk.js → browse-entitymanager.3f0871ba.chunk.js} +1 -1
  31. package/studio/build-local/static/js/{browse-jsonviewer.d19731db.chunk.js → browse-jsonviewer.7ef3cb49.chunk.js} +1 -1
  32. package/studio/build-local/static/js/custom-functions.d7869749.chunk.js +1 -0
  33. package/studio/build-local/static/js/instance-cluster.ded77459.chunk.js +1 -0
  34. package/studio/build-local/static/js/instance-config.f3087710.chunk.js +1 -0
  35. package/studio/build-local/static/js/{instance-logs.1aaf5d15.chunk.js → instance-logs.fb150c6f.chunk.js} +1 -1
  36. package/studio/build-local/static/js/{instance-roles.7ac001d5.chunk.js → instance-roles.32b7be24.chunk.js} +1 -1
  37. package/studio/build-local/static/js/{instance-status.99235f8a.chunk.js → instance-status.d7ddf38a.chunk.js} +1 -1
  38. package/studio/build-local/static/js/{instance-users-datatable.30e06140.chunk.js → instance-users-datatable.68cb8e34.chunk.js} +1 -1
  39. package/studio/build-local/static/js/{instance-users-edit.d860ecc3.chunk.js → instance-users-edit.8de84af8.chunk.js} +1 -1
  40. package/studio/build-local/static/js/{instance-users.dc880abe.chunk.js → instance-users.ff289f79.chunk.js} +1 -1
  41. package/studio/build-local/static/js/instance.127e14b8.chunk.js +1 -0
  42. package/studio/build-local/static/js/instances.1dd2b960.chunk.js +1 -0
  43. package/studio/build-local/static/js/{main.9140b0ac.js → main.95db34b0.js} +2 -2
  44. package/studio/build-local/static/js/{offline-app.5bab91f6.chunk.js → offline-app.029491be.chunk.js} +1 -1
  45. package/studio/build-local/static/js/online-app.80d24598.chunk.js +1 -0
  46. package/studio/build-local/static/js/{organization-billing.75660563.chunk.js → organization-billing.586a6019.chunk.js} +1 -1
  47. package/studio/build-local/static/js/{organization-users.d913dc35.chunk.js → organization-users.0facdb34.chunk.js} +1 -1
  48. package/studio/build-local/static/js/{organization.2cbb1871.chunk.js → organization.4e2c7ae6.chunk.js} +1 -1
  49. package/studio/build-local/static/js/{organizations.b7abb2b5.chunk.js → organizations.c8c00251.chunk.js} +1 -1
  50. package/studio/build-local/static/js/{profile.cd02eab8.chunk.js → profile.a5fbf515.chunk.js} +1 -1
  51. package/studio/build-local/static/js/{resetPassword.f56c6a03.chunk.js → resetPassword.9ad8cde1.chunk.js} +1 -1
  52. package/studio/build-local/static/js/{roles-jsonviewer.891faeff.chunk.js → roles-jsonviewer.ad6e2622.chunk.js} +1 -1
  53. package/studio/build-local/static/js/signIn.3d65d81a.chunk.js +1 -0
  54. package/studio/build-local/static/js/signUp.eaa5b3f0.chunk.js +1 -0
  55. package/studio/build-local/static/js/{structure-reloader.4a977969.chunk.js → structure-reloader.8c8f5e18.chunk.js} +1 -1
  56. package/studio/build-local/static/js/topnav.73def1f2.chunk.js +1 -0
  57. package/studio/build-local/static/js/{updatePassword.f282bf0b.chunk.js → updatePassword.e0a672ee.chunk.js} +1 -1
  58. package/studio/build-local/static/media/logo_harper_db_studio.81490e70fa4af6879c2e.png +0 -0
  59. package/utility/hdbTerms.d.ts +5 -0
  60. package/utility/scripts/restartHdb.js +75 -75
  61. package/studio/build-local/static/js/833.3aff61e3.chunk.js +0 -1
  62. package/studio/build-local/static/js/custom-functions.d0e98d37.chunk.js +0 -1
  63. package/studio/build-local/static/js/instance-cluster.d5a2a397.chunk.js +0 -1
  64. package/studio/build-local/static/js/instance-config.347093bf.chunk.js +0 -1
  65. package/studio/build-local/static/js/instance.92e42f60.chunk.js +0 -1
  66. package/studio/build-local/static/js/instances.5ca66253.chunk.js +0 -1
  67. package/studio/build-local/static/js/online-app.38675097.chunk.js +0 -1
  68. package/studio/build-local/static/js/signIn.426c63a1.chunk.js +0 -1
  69. package/studio/build-local/static/js/signUp.2caeeae2.chunk.js +0 -1
  70. package/studio/build-local/static/js/topnav.d2fd9b1a.chunk.js +0 -1
  71. package/studio/build-local/static/media/logo_harper_db_studio.856391ec8a20ac3a6bee.png +0 -0
  72. /package/studio/build-local/static/js/{122.830d4399.chunk.js.LICENSE.txt → 873.55a21fe5.chunk.js.LICENSE.txt} +0 -0
  73. /package/studio/build-local/static/js/{main.9140b0ac.js.LICENSE.txt → main.95db34b0.js.LICENSE.txt} +0 -0
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "harperdb",
3
- "version": "4.5.0-beta.1",
3
+ "version": "4.5.0-beta.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "harperdb",
9
- "version": "4.5.0-beta.1",
9
+ "version": "4.5.0-beta.2",
10
10
  "hasInstallScript": true,
11
11
  "license": "SEE LICENSE IN LICENSE",
12
12
  "dependencies": {
@@ -32,6 +32,7 @@
32
32
  "chalk": "4.1.2",
33
33
  "cli-progress": "3.12.0",
34
34
  "clone": "2.1.2",
35
+ "dotenv": "^16.4.7",
35
36
  "fast-glob": "3.3.3",
36
37
  "fastify": "~4.29.0",
37
38
  "fastify-plugin": "~4.5.1",
@@ -94,6 +95,7 @@
94
95
  },
95
96
  "optionalDependencies": {
96
97
  "bufferutil": "^4.0.9",
98
+ "hdd-space": "^1.2.0",
97
99
  "segfault-handler": "^1.3.0",
98
100
  "utf-8-validate": "^5.0.10"
99
101
  }
@@ -2949,9 +2951,9 @@
2949
2951
  "license": "MIT"
2950
2952
  },
2951
2953
  "node_modules/@types/node": {
2952
- "version": "22.13.5",
2953
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz",
2954
- "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==",
2954
+ "version": "22.13.9",
2955
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz",
2956
+ "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==",
2955
2957
  "license": "MIT",
2956
2958
  "dependencies": {
2957
2959
  "undici-types": "~6.20.0"
@@ -3162,6 +3164,26 @@
3162
3164
  "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
3163
3165
  "license": "Python-2.0"
3164
3166
  },
3167
+ "node_modules/array-uniq": {
3168
+ "version": "1.0.3",
3169
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
3170
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
3171
+ "license": "MIT",
3172
+ "optional": true,
3173
+ "engines": {
3174
+ "node": ">=0.10.0"
3175
+ }
3176
+ },
3177
+ "node_modules/arrify": {
3178
+ "version": "1.0.1",
3179
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
3180
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
3181
+ "license": "MIT",
3182
+ "optional": true,
3183
+ "engines": {
3184
+ "node": ">=0.10.0"
3185
+ }
3186
+ },
3165
3187
  "node_modules/ast-types": {
3166
3188
  "version": "0.13.4",
3167
3189
  "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
@@ -3330,9 +3352,9 @@
3330
3352
  }
3331
3353
  },
3332
3354
  "node_modules/bl": {
3333
- "version": "6.0.19",
3334
- "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.19.tgz",
3335
- "integrity": "sha512-4Ay3A3oDfGg3GGirhl4s62ebtnk0pJZA5mLp672MPKOQXsWvXjEF4dqdXySjJIs7b9OVr/O8aOo0Lm+xdjo2JA==",
3355
+ "version": "6.0.20",
3356
+ "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.20.tgz",
3357
+ "integrity": "sha512-JMP0loH6ApbpT4Aa9oU5NqAkdDvcyc8koeuK8i5mYoBCVj3XCXG0uweGNN2m6DqaCO2yRHdm+MjCeTsR5VsmcA==",
3336
3358
  "license": "MIT",
3337
3359
  "dependencies": {
3338
3360
  "@types/readable-stream": "^4.0.0",
@@ -3512,13 +3534,13 @@
3512
3534
  }
3513
3535
  },
3514
3536
  "node_modules/call-bound": {
3515
- "version": "1.0.3",
3516
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
3517
- "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
3537
+ "version": "1.0.4",
3538
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
3539
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
3518
3540
  "license": "MIT",
3519
3541
  "dependencies": {
3520
- "call-bind-apply-helpers": "^1.0.1",
3521
- "get-intrinsic": "^1.2.6"
3542
+ "call-bind-apply-helpers": "^1.0.2",
3543
+ "get-intrinsic": "^1.3.0"
3522
3544
  },
3523
3545
  "engines": {
3524
3546
  "node": ">= 0.4"
@@ -3716,6 +3738,20 @@
3716
3738
  "node": ">=0.8"
3717
3739
  }
3718
3740
  },
3741
+ "node_modules/clone-regexp": {
3742
+ "version": "1.0.1",
3743
+ "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz",
3744
+ "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==",
3745
+ "license": "MIT",
3746
+ "optional": true,
3747
+ "dependencies": {
3748
+ "is-regexp": "^1.0.0",
3749
+ "is-supported-regexp-flag": "^1.0.0"
3750
+ },
3751
+ "engines": {
3752
+ "node": ">=0.10.0"
3753
+ }
3754
+ },
3719
3755
  "node_modules/color-convert": {
3720
3756
  "version": "2.0.1",
3721
3757
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -3990,6 +4026,18 @@
3990
4026
  "node": ">=8"
3991
4027
  }
3992
4028
  },
4029
+ "node_modules/dotenv": {
4030
+ "version": "16.4.7",
4031
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
4032
+ "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
4033
+ "license": "BSD-2-Clause",
4034
+ "engines": {
4035
+ "node": ">=12"
4036
+ },
4037
+ "funding": {
4038
+ "url": "https://dotenvx.com"
4039
+ }
4040
+ },
3993
4041
  "node_modules/dunder-proto": {
3994
4042
  "version": "1.0.1",
3995
4043
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -4228,6 +4276,19 @@
4228
4276
  "node": ">=0.8.x"
4229
4277
  }
4230
4278
  },
4279
+ "node_modules/execall": {
4280
+ "version": "1.0.0",
4281
+ "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz",
4282
+ "integrity": "sha512-/J0Q8CvOvlAdpvhfkD/WnTQ4H1eU0exze2nFGPj/RSC7jpQ0NkKe2r28T5eMkhEEs+fzepMZNy1kVRKNlC04nQ==",
4283
+ "license": "MIT",
4284
+ "optional": true,
4285
+ "dependencies": {
4286
+ "clone-regexp": "^1.0.0"
4287
+ },
4288
+ "engines": {
4289
+ "node": ">=0.10.0"
4290
+ }
4291
+ },
4231
4292
  "node_modules/external-editor": {
4232
4293
  "version": "3.1.0",
4233
4294
  "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
@@ -4495,9 +4556,9 @@
4495
4556
  }
4496
4557
  },
4497
4558
  "node_modules/fastq": {
4498
- "version": "1.19.0",
4499
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz",
4500
- "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==",
4559
+ "version": "1.19.1",
4560
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
4561
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
4501
4562
  "license": "ISC",
4502
4563
  "dependencies": {
4503
4564
  "reusify": "^1.0.4"
@@ -4940,6 +5001,16 @@
4940
5001
  "node": ">= 0.4"
4941
5002
  }
4942
5003
  },
5004
+ "node_modules/hdd-space": {
5005
+ "version": "1.2.0",
5006
+ "resolved": "https://registry.npmjs.org/hdd-space/-/hdd-space-1.2.0.tgz",
5007
+ "integrity": "sha512-7m3tHCNg44BIRozpqaFthaKXoPhEv9F63yjFIjhhjoNlF2uFYlu72TAUo6ynlx/JN31BRKHUnwd7Ysox2s+cgQ==",
5008
+ "license": "MIT",
5009
+ "optional": true,
5010
+ "dependencies": {
5011
+ "parse-columns": "git+https://github.com/int0h/parse-columns.git"
5012
+ }
5013
+ },
4943
5014
  "node_modules/http-errors": {
4944
5015
  "version": "2.0.0",
4945
5016
  "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
@@ -5179,6 +5250,19 @@
5179
5250
  "node": ">=0.10.0"
5180
5251
  }
5181
5252
  },
5253
+ "node_modules/is-finite": {
5254
+ "version": "1.1.0",
5255
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
5256
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
5257
+ "license": "MIT",
5258
+ "optional": true,
5259
+ "engines": {
5260
+ "node": ">=0.10.0"
5261
+ },
5262
+ "funding": {
5263
+ "url": "https://github.com/sponsors/sindresorhus"
5264
+ }
5265
+ },
5182
5266
  "node_modules/is-fullwidth-code-point": {
5183
5267
  "version": "3.0.0",
5184
5268
  "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -5245,6 +5329,26 @@
5245
5329
  "url": "https://github.com/sponsors/ljharb"
5246
5330
  }
5247
5331
  },
5332
+ "node_modules/is-regexp": {
5333
+ "version": "1.0.0",
5334
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
5335
+ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
5336
+ "license": "MIT",
5337
+ "optional": true,
5338
+ "engines": {
5339
+ "node": ">=0.10.0"
5340
+ }
5341
+ },
5342
+ "node_modules/is-supported-regexp-flag": {
5343
+ "version": "1.0.1",
5344
+ "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz",
5345
+ "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==",
5346
+ "license": "MIT",
5347
+ "optional": true,
5348
+ "engines": {
5349
+ "node": ">=0.10.0"
5350
+ }
5351
+ },
5248
5352
  "node_modules/is-unicode-supported": {
5249
5353
  "version": "0.1.0",
5250
5354
  "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
@@ -5809,9 +5913,9 @@
5809
5913
  }
5810
5914
  },
5811
5915
  "node_modules/mqtt-packet": {
5812
- "version": "9.0.1",
5813
- "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-9.0.1.tgz",
5814
- "integrity": "sha512-koZF1V/X2RZUI6uD9wN5OK1JxxcG1ofAR4H3LjCw1FkeKzruZQ26aAA6v2m1lZyWONZIR5wMMJFrZJDRNzbiQw==",
5916
+ "version": "9.0.2",
5917
+ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-9.0.2.tgz",
5918
+ "integrity": "sha512-MvIY0B8/qjq7bKxdN1eD+nrljoeaai+qjLJgfRn3TiMuz0pamsIWY2bFODPZMSNmabsLANXsLl4EMoWvlaTZWA==",
5815
5919
  "license": "MIT",
5816
5920
  "dependencies": {
5817
5921
  "bl": "^6.0.8",
@@ -5878,9 +5982,9 @@
5878
5982
  "license": "ISC"
5879
5983
  },
5880
5984
  "node_modules/nan": {
5881
- "version": "2.22.1",
5882
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.1.tgz",
5883
- "integrity": "sha512-pfRR4ZcNTSm2ZFHaztuvbICf+hyiG6ecA06SfAxoPmuHjvMu0KUIae7Y8GyVkbBqeEIidsmXeYooWIX9+qjfRQ==",
5985
+ "version": "2.22.2",
5986
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz",
5987
+ "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==",
5884
5988
  "license": "MIT",
5885
5989
  "optional": true
5886
5990
  },
@@ -6180,6 +6284,29 @@
6180
6284
  "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==",
6181
6285
  "license": "MIT"
6182
6286
  },
6287
+ "node_modules/num-sort": {
6288
+ "version": "1.0.0",
6289
+ "resolved": "https://registry.npmjs.org/num-sort/-/num-sort-1.0.0.tgz",
6290
+ "integrity": "sha512-rlgHFHwHtMw93TwRpcPanY83xaSrVzAnKRJCp5yXylFGNObD2tRm+HjtvinLnqM0mHXx6I1+/7SeEcbQeV73OQ==",
6291
+ "license": "MIT",
6292
+ "optional": true,
6293
+ "dependencies": {
6294
+ "number-is-nan": "^1.0.0"
6295
+ },
6296
+ "engines": {
6297
+ "node": ">=0.10.0"
6298
+ }
6299
+ },
6300
+ "node_modules/number-is-nan": {
6301
+ "version": "1.0.1",
6302
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
6303
+ "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
6304
+ "license": "MIT",
6305
+ "optional": true,
6306
+ "engines": {
6307
+ "node": ">=0.10.0"
6308
+ }
6309
+ },
6183
6310
  "node_modules/object-is": {
6184
6311
  "version": "1.1.6",
6185
6312
  "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
@@ -6378,6 +6505,21 @@
6378
6505
  "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw==",
6379
6506
  "license": "MIT"
6380
6507
  },
6508
+ "node_modules/parse-columns": {
6509
+ "version": "1.3.0",
6510
+ "resolved": "git+ssh://git@github.com/int0h/parse-columns.git#2318231da6fec1e35aca00a24d58d6b3d9552552",
6511
+ "license": "MIT",
6512
+ "optional": true,
6513
+ "dependencies": {
6514
+ "escape-string-regexp": "^1.0.3",
6515
+ "execall": "^1.0.0",
6516
+ "repeating": "^2.0.0",
6517
+ "split-at": "^1.1.0"
6518
+ },
6519
+ "engines": {
6520
+ "node": ">=0.10.0"
6521
+ }
6522
+ },
6381
6523
  "node_modules/parseurl": {
6382
6524
  "version": "1.3.3",
6383
6525
  "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -7098,6 +7240,19 @@
7098
7240
  "url": "https://github.com/sponsors/ljharb"
7099
7241
  }
7100
7242
  },
7243
+ "node_modules/repeating": {
7244
+ "version": "2.0.1",
7245
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
7246
+ "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==",
7247
+ "license": "MIT",
7248
+ "optional": true,
7249
+ "dependencies": {
7250
+ "is-finite": "^1.0.0"
7251
+ },
7252
+ "engines": {
7253
+ "node": ">=0.10.0"
7254
+ }
7255
+ },
7101
7256
  "node_modules/require-directory": {
7102
7257
  "version": "2.1.1",
7103
7258
  "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -7179,9 +7334,9 @@
7179
7334
  }
7180
7335
  },
7181
7336
  "node_modules/reusify": {
7182
- "version": "1.0.4",
7183
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
7184
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
7337
+ "version": "1.1.0",
7338
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
7339
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
7185
7340
  "license": "MIT",
7186
7341
  "engines": {
7187
7342
  "iojs": ">=1.0.0",
@@ -7582,6 +7737,21 @@
7582
7737
  "integrity": "sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A==",
7583
7738
  "license": "MIT"
7584
7739
  },
7740
+ "node_modules/split-at": {
7741
+ "version": "1.2.0",
7742
+ "resolved": "https://registry.npmjs.org/split-at/-/split-at-1.2.0.tgz",
7743
+ "integrity": "sha512-hTyZobArNQZhG6jp5crQEtIBRNbP3kPqPuEjqiv4xcABvqTS3ov3xfnPL9fw+3qfg5eDI4sXwk+eReZNVG6VCA==",
7744
+ "license": "MIT",
7745
+ "optional": true,
7746
+ "dependencies": {
7747
+ "array-uniq": "^1.0.2",
7748
+ "arrify": "^1.0.0",
7749
+ "num-sort": "^1.0.0"
7750
+ },
7751
+ "engines": {
7752
+ "node": ">=0.10.0"
7753
+ }
7754
+ },
7585
7755
  "node_modules/split2": {
7586
7756
  "version": "4.2.0",
7587
7757
  "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
@@ -7743,9 +7913,9 @@
7743
7913
  }
7744
7914
  },
7745
7915
  "node_modules/strnum": {
7746
- "version": "1.1.1",
7747
- "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.1.tgz",
7748
- "integrity": "sha512-O7aCHfYCamLCctjAiaucmE+fHf2DYHkus2OKCn4Wv03sykfFtgeECn505X6K4mPl8CRNd/qurC9guq+ynoN4pw==",
7916
+ "version": "1.1.2",
7917
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz",
7918
+ "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==",
7749
7919
  "funding": [
7750
7920
  {
7751
7921
  "type": "github",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harperdb",
3
- "version": "4.5.0-beta.1",
3
+ "version": "4.5.0-beta.2",
4
4
  "description": "HarperDB is a distributed database, caching service, streaming broker, and application development platform focused on performance and ease of use.",
5
5
  "keywords": [
6
6
  "database",
@@ -65,6 +65,7 @@
65
65
  "chalk": "4.1.2",
66
66
  "cli-progress": "3.12.0",
67
67
  "clone": "2.1.2",
68
+ "dotenv": "^16.4.7",
68
69
  "fast-glob": "3.3.3",
69
70
  "fastify": "~4.29.0",
70
71
  "fastify-plugin": "~4.5.1",
@@ -124,6 +125,7 @@
124
125
  },
125
126
  "optionalDependencies": {
126
127
  "bufferutil": "^4.0.9",
128
+ "hdd-space": "^1.2.0",
127
129
  "segfault-handler": "^1.3.0",
128
130
  "utf-8-validate": "^5.0.10"
129
131
  },
@@ -9,6 +9,7 @@ import './blob';
9
9
  export declare const TIMESTAMP_PLACEHOLDER: Uint8Array<ArrayBuffer>;
10
10
  export declare const LAST_TIMESTAMP_PLACEHOLDER: Uint8Array<ArrayBuffer>;
11
11
  export declare const PREVIOUS_TIMESTAMP_PLACEHOLDER: Uint8Array<ArrayBuffer>;
12
+ export declare const NEW_TIMESTAMP_PLACEHOLDER: Uint8Array<ArrayBuffer>;
12
13
  export declare const LOCAL_TIMESTAMP: unique symbol;
13
14
  export declare const METADATA: unique symbol;
14
15
  export declare const NO_TIMESTAMP = 0;
@@ -25,5 +26,8 @@ export declare class RecordEncoder extends Encoder {
25
26
  decode(buffer: any, options: any): any;
26
27
  }
27
28
  export declare function handleLocalTimeForGets(store: any, root_store: any): any;
28
- export declare function recordUpdater(store: any, table_id: any, audit_store: any): (id: any, record: any, existing_entry: any, new_version: any, assign_metadata?: number, audit?: boolean, options?: any, type?: string, resolve_record?: boolean, audit_record?: any) => any;
29
+ export declare function recordUpdater(store: any, table_id: any, audit_store: any): (id: any, record: any, existing_entry: any, new_version: any, assign_metadata?: number, // when positive, this has a set of metadata flags for the record
30
+ audit?: boolean, // true -> audit this record. false -> do not. null -> retain any audit timestamp
31
+ options?: any, type?: string, resolve_record?: boolean, // indicates that we are resolving (from source) record that was previously invalidated
32
+ audit_record?: any) => Promise<void>;
29
33
  export declare function removeEntry(store: any, entry: any, existing_version?: number): any;
@@ -17,6 +17,7 @@ export declare class Resource implements ResourceInterface {
17
17
  static transactions: Transaction[] & {
18
18
  timestamp: number;
19
19
  };
20
+ static directURLMapping: boolean;
20
21
  constructor(identifier: Id, source: any);
21
22
  /**
22
23
  * The get methods are for directly getting a resource, and called for HTTP GET requests.
@@ -1,8 +1,15 @@
1
1
  import { Resource } from './Resource';
2
+ interface ResourceEntry {
3
+ Resource: typeof Resource;
4
+ path: string;
5
+ exportTypes: any;
6
+ hasSubPaths: boolean;
7
+ relativeURL: string;
8
+ }
2
9
  /**
3
10
  * This is the global set of all resources that have been registered on this server.
4
11
  */
5
- export declare class Resources extends Map<string, typeof Resource> {
12
+ export declare class Resources extends Map<string, ResourceEntry> {
6
13
  isWorker: boolean;
7
14
  loginPath?: (request: any) => string;
8
15
  set(path: any, resource: any, export_types?: string[], force?: boolean): void;
@@ -15,11 +22,12 @@ export declare class Resources extends Map<string, typeof Resource> {
15
22
  * that can further transform data from the main structured object resources).
16
23
  * @return The matched Resource class. Note that the remaining path is "returned" by setting the relativeURL property
17
24
  */
18
- getMatch(url: string, export_type?: string): any;
19
- getResource(path: string, resource_info: any): any;
25
+ getMatch(url: string, export_type?: string): ResourceEntry | undefined;
26
+ getResource(path: string, resource_info: any): Resource | Promise<Resource>;
20
27
  call(path: string, request: any, callback: Function): Promise<any>;
21
28
  setRepresentation(path: any, type: any, representation: any): void;
22
29
  }
23
30
  export declare let resources: Resources;
24
31
  export declare function resetResources(): Resources;
25
32
  export declare function keyArrayToString(key: any): any;
33
+ export {};
@@ -567,7 +567,7 @@ export declare function makeTable(options: any): {
567
567
  /**
568
568
  * Evicting a record will remove it from a caching table. This is not considered a canonical data change, and it is assumed that retrieving this record from the source will still yield the same record, this is only removing the local copy of the record.
569
569
  */
570
- evict(id: any, existing_record: any, existing_version: any): any;
570
+ evict(id: any, existing_record: any, existing_version: any): Promise<void>;
571
571
  operation(operation: any, context: any): any;
572
572
  /**
573
573
  * This is responsible for ordering and select()ing the attributes/properties from returned entries
@@ -608,13 +608,13 @@ export declare function makeTable(options: any): {
608
608
  free: number;
609
609
  size: number;
610
610
  };
611
- getRecordCount(options: any): {
611
+ getRecordCount(options?: any): Promise<{
612
612
  recordCount: number;
613
613
  estimatedRange: number[];
614
614
  } | {
615
615
  recordCount: number;
616
616
  estimatedRange?: undefined;
617
- };
617
+ }>;
618
618
  /**
619
619
  * When attributes have been changed, we update the accessors that are assigned to this table
620
620
  */
@@ -635,6 +635,7 @@ export declare function makeTable(options: any): {
635
635
  transactions: import("./DatabaseTransaction").Transaction[] & {
636
636
  timestamp: number;
637
637
  };
638
+ directURLMapping: boolean;
638
639
  get(identifier: Id, context?: Context): Promise<Resource>;
639
640
  get(query: Query, context?: Context): Promise<AsyncIterable<object>>;
640
641
  put: {
@@ -116,4 +116,5 @@ export declare function decodeFromDatabase(callback: () => void, rootStore: LMDB
116
116
  * @param object
117
117
  */
118
118
  export declare function deleteBlobsInObject(object: any): void;
119
+ export declare function findBlobsInObject(object: any, callback: (blob: Blob) => void): void;
119
120
  export {};
@@ -454,7 +454,7 @@ export declare function table(table_definition: TableDefinition): {
454
454
  coerceId(id: string): number | string;
455
455
  dropTable(): Promise<void>;
456
456
  _recordRelocate(existing_entry: any, entry: any): void;
457
- evict(id: any, existing_record: any, existing_version: any): any;
457
+ evict(id: any, existing_record: any, existing_version: any): Promise<void>;
458
458
  operation(operation: any, context: any): any;
459
459
  transformToOrderedSelect(entries: any[], select: (string | import("./ResourceInterface").SubSelect)[], sort: import("./ResourceInterface").Sort, context: import("./ResourceInterface").Context, read_txn: any, transformToRecord: Function): any;
460
460
  transformEntryForSelect(select: any, context: any, read_txn: any, filtered: any, ensure_loaded?: any, can_skip?: any): (entry: any) => any;
@@ -468,13 +468,13 @@ export declare function table(table_definition: TableDefinition): {
468
468
  free: number;
469
469
  size: number;
470
470
  };
471
- getRecordCount(options: any): {
471
+ getRecordCount(options?: any): Promise<{
472
472
  recordCount: number;
473
473
  estimatedRange: number[];
474
474
  } | {
475
475
  recordCount: number;
476
476
  estimatedRange?: undefined;
477
- };
477
+ }>;
478
478
  updatedAttributes(): void;
479
479
  setComputedAttribute(attribute_name: any, resolver: any): void;
480
480
  deleteHistory(end_time?: number, cleanup_deleted_records?: boolean): Promise<void>;
@@ -492,6 +492,7 @@ export declare function table(table_definition: TableDefinition): {
492
492
  transactions: import("./DatabaseTransaction").Transaction[] & {
493
493
  timestamp: number;
494
494
  };
495
+ directURLMapping: boolean;
495
496
  get(identifier: import("./ResourceInterface").Id, context?: import("./ResourceInterface").Context): Promise<import("./Resource").Resource>;
496
497
  get(query: import("./ResourceInterface").Query, context?: import("./ResourceInterface").Context): Promise<AsyncIterable<object>>;
497
498
  put: {
@@ -11,6 +11,7 @@ interface Server {
11
11
  ws?(listener: (ws: WebSocket, request: Request, requestCompletion: Promise<any>) => any, options?: WebSocketOptions): void;
12
12
  contentTypes: Map<string, ContentTypeHandler>;
13
13
  getUser(username: string, password: string | null, request: Request): any;
14
+ authenticateUser(username: string, password: string, request: Request): any;
14
15
  operation(operation: any, context: any, authorize?: boolean): Promise<any>;
15
16
  recordAnalytics(value: Value, metric: string, path?: string, method?: string, type?: string): void;
16
17
  }