harperdb 4.5.9 → 4.6.0-alpha.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.
- package/README.md +1 -1
- package/bin/harperdb.js +79 -80
- package/bin/lite.js +68 -69
- package/config/yaml/defaultConfig.yaml +1 -0
- package/index.d.ts +8 -8
- package/index.js +5 -5
- package/json/systemSchema.json +13 -1
- package/launchServiceScripts/launchInstallNATSServer.js +3 -3
- package/launchServiceScripts/launchNatsIngestService.js +68 -69
- package/launchServiceScripts/launchNatsReplyService.js +68 -69
- package/launchServiceScripts/launchUpdateNodes4-0-0.js +68 -69
- package/npm-shrinkwrap.json +7 -7
- package/package.json +2 -2
- package/resources/DatabaseTransaction.d.ts +8 -8
- package/resources/ErrorResource.d.ts +2 -2
- package/resources/IterableEventQueue.d.ts +1 -1
- package/resources/RecordEncoder.d.ts +6 -6
- package/resources/Resource.d.ts +17 -17
- package/resources/ResourceInterface.d.ts +27 -12
- package/resources/Resources.d.ts +7 -5
- package/resources/Table.d.ts +73 -73
- package/resources/analytics/hostnames.d.ts +483 -0
- package/resources/analytics/metadata.d.ts +9 -0
- package/resources/analytics/read.d.ts +26 -0
- package/resources/{analytics.d.ts → analytics/write.d.ts} +33 -27
- package/resources/auditStore.d.ts +15 -15
- package/resources/crdt.d.ts +4 -4
- package/resources/databases.d.ts +102 -102
- package/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +84 -0
- package/resources/indexes/customIndexes.d.ts +4 -0
- package/resources/indexes/vector.d.ts +2 -0
- package/resources/search.d.ts +8 -8
- package/resources/tracked.d.ts +6 -6
- package/resources/transaction.d.ts +3 -3
- package/resources/transactionBroadcast.d.ts +5 -5
- package/security/auth.d.ts +9 -0
- package/security/tokenAuthentication.d.ts +35 -0
- package/server/Server.d.ts +5 -2
- package/server/jobs/jobProcess.js +68 -69
- package/server/operationsServer.d.ts +30 -0
- package/server/replication/knownNodes.d.ts +35 -0
- package/server/replication/nodeIdMapping.d.ts +6 -0
- package/server/replication/replicationConnection.d.ts +58 -0
- package/server/replication/replicator.d.ts +65 -0
- package/server/replication/setNode.d.ts +15 -0
- package/server/replication/subscriptionManager.d.ts +13 -0
- package/server/serverHelpers/Headers.d.ts +2 -2
- package/server/serverHelpers/OperationFunctionObject.d.ts +8 -0
- package/server/serverHelpers/contentTypes.d.ts +7 -7
- package/server/serverHelpers/serverUtilities.d.ts +23 -0
- package/server/status.d.ts +12 -0
- package/server/threads/threadServer.js +45 -46
- package/studio/build-local/asset-manifest.json +2 -2
- package/studio/build-local/index.html +1 -1
- package/studio/build-local/static/js/main.5dea46bb.js +2 -0
- package/utility/hdbTerms.d.ts +7 -0
- package/utility/password.d.ts +20 -0
- package/utility/scripts/restartHdb.js +68 -69
- package/studio/build-local/static/js/main.491129ee.js +0 -2
- /package/studio/build-local/static/js/{main.491129ee.js.LICENSE.txt → main.5dea46bb.js.LICENSE.txt} +0 -0
package/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export { Resource } from './resources/Resource';
|
|
2
|
-
import { Resource as
|
|
2
|
+
import { Resource as ResourceImport } from './resources/Resource.ts';
|
|
3
3
|
export { Query, Context, SubscriptionRequest } from './resources/ResourceInterface';
|
|
4
4
|
export { server } from './server/Server';
|
|
5
|
-
import { server as
|
|
5
|
+
import { server as serverImport } from './server/Server.ts';
|
|
6
6
|
export { tables, databases } from './resources/databases';
|
|
7
|
-
import { tables as
|
|
8
|
-
import { BlobCreationOptions } from './resources/blob';
|
|
7
|
+
import { tables as dbTables, databases as dbDatabases } from './resources/databases.ts';
|
|
8
|
+
import { BlobCreationOptions } from './resources/blob.ts';
|
|
9
9
|
declare global {
|
|
10
|
-
const tables: typeof
|
|
11
|
-
const databases: typeof
|
|
12
|
-
const server: typeof
|
|
13
|
-
const Resource: typeof
|
|
10
|
+
const tables: typeof dbTables;
|
|
11
|
+
const databases: typeof dbDatabases;
|
|
12
|
+
const server: typeof serverImport;
|
|
13
|
+
const Resource: typeof ResourceImport;
|
|
14
14
|
const createBlob: (source: Uint8Array | NodeJS.ReadableStream | string | Iterable<Uint8Array> | AsyncIterator<Uint8Array>, options?: BlobCreationOptions) => Blob;
|
|
15
15
|
}
|
package/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const
|
|
2
|
-
if (!
|
|
1
|
+
const workerThreads = require('node:worker_threads');
|
|
2
|
+
if (!workerThreads.isMainThread) {
|
|
3
3
|
// Prevents server from starting in worker threads if this was directly imported from a non-server user thread
|
|
4
|
-
if (!
|
|
5
|
-
|
|
4
|
+
if (!workerThreads.workerData) workerThreads.workerData = {};
|
|
5
|
+
workerThreads.workerData.noServerStart = true;
|
|
6
6
|
}
|
|
7
|
-
const { globals } = require('./server/threads/threadServer');
|
|
7
|
+
const { globals } = require('./server/threads/threadServer.js');
|
|
8
8
|
// these are all overwritten by the globals, but need to be here so that Node's static
|
|
9
9
|
// exports parser can analyze them
|
|
10
10
|
exports.Resource = undefined;
|
package/json/systemSchema.json
CHANGED
|
@@ -197,11 +197,23 @@
|
|
|
197
197
|
}
|
|
198
198
|
]
|
|
199
199
|
},
|
|
200
|
+
"hdb_analytics_hostname": {
|
|
201
|
+
"hash_attribute": "id",
|
|
202
|
+
"name": "hdb_analytics_hostname",
|
|
203
|
+
"schema": "system",
|
|
204
|
+
"attributes": [
|
|
205
|
+
{
|
|
206
|
+
"attribute": "id"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"attribute": "hostname"
|
|
210
|
+
}
|
|
211
|
+
]
|
|
212
|
+
},
|
|
200
213
|
"hdb_analytics": {
|
|
201
214
|
"hash_attribute": "id",
|
|
202
215
|
"name": "hdb_analytics",
|
|
203
216
|
"schema": "system",
|
|
204
|
-
"audit": false,
|
|
205
217
|
"attributes": [
|
|
206
218
|
{
|
|
207
219
|
"attribute": "id"
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`,""));return
|
|
3
|
-
`,"")}a(y,"runCommand");async function
|
|
1
|
+
"use strict";var Q=Object.defineProperty;var a=(e,t)=>Q(e,"name",{value:t,configurable:!0});var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var C=I((Fe,b)=>{"use strict";var{join:ee,dirname:F}=require("node:path"),{existsSync:te,readFileSync:ne}=require("node:fs");function re(){let t=__dirname,n,r=0;for(;!te(n=ee(t,"package.json"));)if(t===(t=F(t))||r++>10)throw new Error("Could not find package root");return n}a(re,"findPackageJson");var U=re(),oe=JSON.parse(ne(U,"utf8")),se=F(U);b.exports={packageJson:oe,PACKAGE_ROOT:se}});var q=I((be,V)=>{"use strict";if(__filename.endsWith("dev.js")&&!process.env.HARPER_SKIP_COMPILE){let e=require("fast-glob"),{tmpdir:t}=require("node:os"),{relative:n,join:r}=require("node:path"),{existsSync:p,statSync:_,readFileSync:w,writeFileSync:x,unlinkSync:P}=require("node:fs"),{isMainThread:m}=require("node:worker_threads"),{spawnSync:N,spawn:Z}=require("node:child_process");process.setSourceMapsEnabled(!0);let{PACKAGE_ROOT:i}=C(),L=["bin","components","dataLayer","resources","server","sqlTranslator","upgrade","utility","validation"],R="ts-build";if(m){let l=!1,E=!1;if(E=p(r(i,R))){let d=new Set;e.sync(L.map(o=>`${o}/**/*.ts`),{cwd:i}).forEach(o=>{let S=0,c=0;try{d.add(o),S=_(r(i,o)).mtimeMs-5e3,c=_(r(i,R,o.replace(/.ts$/,".js"))).mtimeMs}catch{}S>c&&(l=!0)}),e.sync(L.map(o=>`${o}/**/*.js`),{cwd:r(i,R)}).forEach(o=>{if(!d.has(o.replace(/.js$/,".ts")))try{P(r(i,R,o))}catch{}})}else l=!0;if(l){console.log("Compiling TypeScript...");let d=N("npx",["tsc"],{cwd:i});if(d.stdout?.length&&console.log(d.stdout.toString()),d.stderr?.length&&console.log(d.stderr.toString()),E){let o=r(t(),"harperdb-tsc.pid"),S=!1;if(p(o))try{process.kill(+w(o,"utf8"),0),S=!0}catch{}if(!S){console.log("Starting background TypeScript compilation...");let c=Z("npx",["tsc","--watch"],{detached:!0,cwd:i,stdio:"ignore"});c.on("error",h=>{console.error("Error trying to compile TypeScript",h)}),c.pid&&x(o,String(c.pid),"utf-8"),c.unref()}}}}let M=V.constructor,K=M._findPath;M._findPath=function(l,E,d){if(l.startsWith(".")&&!d&&E.length===1&&E[0].startsWith(i)&&!E[0].includes("node_modules")){let o=n(i,E[0]),S;o.startsWith(R)?S=r(i,n(R,o)):S=r(i,R,o),(l.endsWith(".js")||l.endsWith(".ts"))&&(l=l.slice(0,-3));let c=r(S,l),h=c+".js";if(p(h))return h;if(c.includes(".")&&p(c))return c}return K(l,E,d)}}});var k=I((qe,G)=>{"use strict";var{platform:Ve}=require("os"),ie="nats-server.zip",D="nats-server",ce=process.platform==="win32"?`${D}.exe`:D,ae=/^[^\s.,*>]+$/,j="__request__",le=a(e=>`${e}.${j}`,"REQUEST_SUBJECT"),de={NATS_MSG_ID:"Nats-Msg-Id",ORIGIN:"origin",TRANSACTED_NODES:"transacted_nodes"},Se={HUB_SERVER:"hub.json",LEAF_SERVER:"leaf.json"},ue={HUB:"hub.pid",LEAF:"leaf.pid"},Ee={HUB:"-hub",LEAF:"-leaf",ADMIN:"-admin"},ge={SUCCESS:"success",ERROR:"error"},pe={OPEN:"open",CLOSED:"closed",NO_RESPONDERS:"NoResponders",TIMEOUT:"Timeout"},_e={TXN:"txn",MSGID:"msgid"},A={ERR:"error",WRN:"warn",INF:"info",DBG:"debug",TRC:"trace"},Re={[A.ERR]:1,[A.WRN]:2,[A.INF]:3,[A.DBG]:4,[A.TRC]:5},Te={debug:"-D",trace:"-DVV"};G.exports={NATS_SERVER_ZIP:ie,NATS_SERVER_NAME:D,NATS_BINARY_NAME:ce,PID_FILES:ue,NATS_CONFIG_FILES:Se,SERVER_SUFFIX:Ee,NATS_TERM_CONSTRAINTS_RX:ae,REQUEST_SUFFIX:j,UPDATE_REMOTE_RESPONSE_STATUSES:ge,CLUSTER_STATUS_STATUSES:pe,REQUEST_SUBJECT:le,SUBJECT_PREFIXES:_e,MSG_HEADERS:de,LOG_LEVELS:A,LOG_LEVEL_FLAGS:Te,LOG_LEVEL_HIERARCHY:Re}});var Y=I((Ge,X)=>{"use strict";var T=require("fs-extra"),g=require("path"),s=require("chalk"),fe=require("needle"),B=require("node-stream-zip"),H=require("semver"),f=k(),Ae=require("util"),we=require("child_process"),{platform:me}=require("os"),Ne=Ae.promisify(we.exec),{packageJson:z,PACKAGE_ROOT:he}=C(),u=g.join(he,"dependencies"),ye=g.join(u,f.NATS_SERVER_ZIP),O=z.engines["go-lang"],v=z.engines[f.NATS_SERVER_NAME],ve=`${process.platform}-${process.arch}`,$=g.join(u,ve,`${f.NATS_BINARY_NAME}`),Pe=`https://github.com/nats-io/nats-server/releases/download/v${v}/nats-server-v${v}-`,W={"linux-x64":"linux-amd64.zip","linux-arm64":"linux-arm64.zip","darwin-x64":"darwin-amd64.zip","darwin-arm64":"darwin-arm64.zip","win32-x64":"windows-amd64.zip"},Ie=Object.keys(W).map(e=>e.split("-"));async function y(e,t=void 0){let{stdout:n,stderr:r}=await Ne(e,{cwd:t});if(r)throw new Error(r.replace(`
|
|
2
|
+
`,""));return n.replace(`
|
|
3
|
+
`,"")}a(y,"runCommand");async function Oe(){try{await T.access($)}catch{return!1}let e=await y(`${$} --version`,void 0),t=e.substring(e.lastIndexOf("v")+1,e.length);return H.eq(t,v)}a(Oe,"checkNATSServerInstalled");async function $e(){console.log(s.green(`Verifying go v${O} is on system.`));let e;try{e=(await y("go version",void 0)).match(/[\d.]+/)[0]}catch{throw Error("go does not appear to be installed or is not in the PATH, cannot install clustering dependencies.")}if(!H.gte(e,O))throw Error(`go version ${O} or higher must be installed.`);console.log(s.green(`go v${O} is on the system.`))}a($e,"checkGoVersion");async function xe(){console.log(s.green("Extracting NATS Server source code."));let e=new B.async({file:ye}),t=g.join(u,`${f.NATS_SERVER_NAME}-src`),n=await e.extract(null,u);return console.log(s.green(`Extracted ${n} entries.`)),await e.close(),t}a(xe,"extractNATSServer");async function Ce(e){let t=g.join(e,f.NATS_BINARY_NAME),n=g.join(u,"pkg");await T.move(t,$,{overwrite:!0}),await T.remove(e),await T.remove(n)}a(Ce,"cleanUp");async function J(e,t){let n=e&&t?`${e}-${t}`:`${process.platform}-${process.arch}`,r=W[n];if(r===void 0)throw Error(`unknown platform - architecture: ${n}`);let p=`${Pe}${r}`,_=g.join(u,n,r);await T.ensureFile(_),console.log(s.green(`****Downloading install of NATS Server: ${p}****`)),await fe("get",p,{output:_,follow_max:5}),console.log(s.green("Successfully downloaded and saved nats-server zip.")),console.log(s.green("Extracting nats-server zip."));let w=new B.async({file:_}),x=await w.entries(),P=e==="win32"||process.platform==="win32"?`${f.NATS_SERVER_NAME}.exe`:f.NATS_SERVER_NAME,m=g.join(u,n,P);for(let N of Object.values(x))!N.isDirectory&&N.name.endsWith(P)&&(await w.extract(N.name,m),console.log(s.green(`Successfully extracted nats-server zip to ${m}.`)));await w.close(),await T.remove(_),await T.chmod(m,511)}a(J,"downloadNATSServer");async function De(){if(console.log(s.green("****Starting install of NATS Server.****")),await Oe()){console.log(s.green(`****NATS Server v${v} installed.****`));return}try{await J();try{let n=await y(`${$} --version`,void 0);console.log(s.green(`****Successfully extracted ${n}.****`))}catch(n){if(n.toString().includes("file busy"))console.warn("Error checking NATS versions",n);else throw n}return}catch(n){console.error(s.red(`Error: ${n.message}. Failed to download NATS server. Building from source`))}try{await $e()}catch(n){console.error(s.red(n.message)),process.exit(1)}let t=await xe();console.log(s.green("Building NATS Server binary.")),me()=="win32"?await y(`set GOPATH=${u}&& go build`,t):await y(`export GOPATH=${u} && go build`,t),console.log(s.green("Building NATS Server binary complete.")),await Ce(t),console.log(s.green(`****NATS Server v${v} is installed.****`))}a(De,"installer");X.exports={installer:De,downloadNATSServer:J,ALL_SUPPORTED_PLATFORM_ARCHITECTURES:Ie}});q();var Be=require("fs"),He=require("path"),Le=Y();(async()=>{try{await Le.installer()}catch(e){console.error(e)}})();
|