@reifydb/wasm 0.4.1 → 0.4.6

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/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  import { WasmDB as WasmDB$1 } from '../wasm/reifydb_webassembly';
2
2
  export { TypeValuePair, Value, decode } from '@reifydb/core';
3
3
 
4
+ interface LoginResult {
5
+ token: string;
6
+ identity: string;
7
+ }
4
8
  /**
5
9
  * Recursively transforms raw WASM output into decoded Value instances.
6
10
  *
@@ -23,6 +27,9 @@ declare class WasmDB {
23
27
  commandWithParams(rql: string, params: unknown): unknown;
24
28
  query(rql: string): unknown;
25
29
  queryWithParams(rql: string, params: unknown): unknown;
30
+ loginWithPassword(identifier: string, password: string): LoginResult;
31
+ loginWithToken(token: string): LoginResult;
32
+ logout(): void;
26
33
  free(): void;
27
34
  }
28
35
  /**
@@ -43,4 +50,4 @@ declare class WasmDB {
43
50
  */
44
51
  declare function createWasmDB(): Promise<WasmDB>;
45
52
 
46
- export { WasmDB, createWasmDB, transformToValueInstances };
53
+ export { type LoginResult, WasmDB, createWasmDB, transformToValueInstances };
package/dist/index.js CHANGED
@@ -40,6 +40,21 @@ var WasmDB = class {
40
40
  queryWithParams(rql, params) {
41
41
  return transformToValueInstances(this.db.queryWithParams(rql, params));
42
42
  }
43
+ loginWithPassword(identifier, password) {
44
+ const raw = this.db.loginWithPassword(identifier, password);
45
+ const result = { token: raw.token, identity: raw.identity };
46
+ raw.free();
47
+ return result;
48
+ }
49
+ loginWithToken(token) {
50
+ const raw = this.db.loginWithToken(token);
51
+ const result = { token: raw.token, identity: raw.identity };
52
+ raw.free();
53
+ return result;
54
+ }
55
+ logout() {
56
+ this.db.logout();
57
+ }
43
58
  free() {
44
59
  this.db.free();
45
60
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2025 ReifyDB\n\nimport { decode, type TypeValuePair } from '@reifydb/core';\nimport type { WasmDB as RawWasmDB } from '../wasm/reifydb_webassembly';\n\nexport { decode } from '@reifydb/core';\nexport type { TypeValuePair, Value } from '@reifydb/core';\n\n/**\n * Recursively transforms raw WASM output into decoded Value instances.\n *\n * The WASM engine returns typed values as `{type, value}` pairs.\n * This function walks the result tree and decodes each pair using `@reifydb/core`'s `decode()`.\n */\nexport function transformToValueInstances(result: unknown): unknown {\n if (result === null || result === undefined) return result;\n if (typeof result !== 'object') return result;\n if (Array.isArray(result)) {\n return result.map(transformToValueInstances);\n }\n const obj = result as Record<string, unknown>;\n if ('type' in obj && 'value' in obj && Object.keys(obj).length === 2) {\n return decode(obj as unknown as TypeValuePair);\n }\n const transformed: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n transformed[key] = transformToValueInstances(value);\n }\n return transformed;\n}\n\n/**\n * High-level wrapper around the raw WASM database engine.\n *\n * Provides typed methods for admin, command, and query operations,\n * automatically decoding WASM type-value pairs into Value instances.\n */\nexport class WasmDB {\n private db: RawWasmDB;\n\n constructor(db: RawWasmDB) {\n this.db = db;\n }\n\n admin(rql: string): unknown {\n return transformToValueInstances(this.db.admin(rql));\n }\n\n adminWithParams(rql: string, params: unknown): unknown {\n return transformToValueInstances(this.db.adminWithParams(rql, params));\n }\n\n command(rql: string): unknown {\n return transformToValueInstances(this.db.command(rql));\n }\n\n commandWithParams(rql: string, params: unknown): unknown {\n return transformToValueInstances(this.db.commandWithParams(rql, params));\n }\n\n query(rql: string): unknown {\n return transformToValueInstances(this.db.query(rql));\n }\n\n queryWithParams(rql: string, params: unknown): unknown {\n return transformToValueInstances(this.db.queryWithParams(rql, params));\n }\n\n free(): void {\n this.db.free();\n }\n}\n\n/**\n * Creates a new WasmDB instance by dynamically importing the WASM module.\n *\n * The dynamic import ensures the WASM glue code is not bundled by tsup\n * and is instead resolved by the consumer's bundler (Vite, webpack, etc.).\n *\n * @example\n * ```typescript\n * import { createWasmDB } from '@reifydb/wasm';\n *\n * const db = await createWasmDB();\n * db.admin('CREATE NAMESPACE demo');\n * const results = db.query('FROM demo.users');\n * db.free();\n * ```\n */\nexport async function createWasmDB(): Promise<WasmDB> {\n const mod = await import('../wasm/reifydb_webassembly.js');\n return new WasmDB(new mod.WasmDB());\n}\n"],"mappings":";AAGA,SAAS,cAAkC;AAG3C,SAAS,UAAAA,eAAc;AAShB,SAAS,0BAA0B,QAA0B;AAClE,MAAI,WAAW,QAAQ,WAAW,OAAW,QAAO;AACpD,MAAI,OAAO,WAAW,SAAU,QAAO;AACvC,MAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,WAAO,OAAO,IAAI,yBAAyB;AAAA,EAC7C;AACA,QAAM,MAAM;AACZ,MAAI,UAAU,OAAO,WAAW,OAAO,OAAO,KAAK,GAAG,EAAE,WAAW,GAAG;AACpE,WAAO,OAAO,GAA+B;AAAA,EAC/C;AACA,QAAM,cAAuC,CAAC;AAC9C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,gBAAY,GAAG,IAAI,0BAA0B,KAAK;AAAA,EACpD;AACA,SAAO;AACT;AAQO,IAAM,SAAN,MAAa;AAAA,EACV;AAAA,EAER,YAAY,IAAe;AACzB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,MAAM,KAAsB;AAC1B,WAAO,0BAA0B,KAAK,GAAG,MAAM,GAAG,CAAC;AAAA,EACrD;AAAA,EAEA,gBAAgB,KAAa,QAA0B;AACrD,WAAO,0BAA0B,KAAK,GAAG,gBAAgB,KAAK,MAAM,CAAC;AAAA,EACvE;AAAA,EAEA,QAAQ,KAAsB;AAC5B,WAAO,0BAA0B,KAAK,GAAG,QAAQ,GAAG,CAAC;AAAA,EACvD;AAAA,EAEA,kBAAkB,KAAa,QAA0B;AACvD,WAAO,0BAA0B,KAAK,GAAG,kBAAkB,KAAK,MAAM,CAAC;AAAA,EACzE;AAAA,EAEA,MAAM,KAAsB;AAC1B,WAAO,0BAA0B,KAAK,GAAG,MAAM,GAAG,CAAC;AAAA,EACrD;AAAA,EAEA,gBAAgB,KAAa,QAA0B;AACrD,WAAO,0BAA0B,KAAK,GAAG,gBAAgB,KAAK,MAAM,CAAC;AAAA,EACvE;AAAA,EAEA,OAAa;AACX,SAAK,GAAG,KAAK;AAAA,EACf;AACF;AAkBA,eAAsB,eAAgC;AACpD,QAAM,MAAM,MAAM,OAAO,gCAAgC;AACzD,SAAO,IAAI,OAAO,IAAI,IAAI,OAAO,CAAC;AACpC;","names":["decode"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2025 ReifyDB\n\nimport { decode, type TypeValuePair } from '@reifydb/core';\nimport type { WasmDB as RawWasmDB } from '../wasm/reifydb_webassembly';\n\nexport { decode } from '@reifydb/core';\nexport type { TypeValuePair, Value } from '@reifydb/core';\n\nexport interface LoginResult {\n token: string;\n identity: string;\n}\n\n/**\n * Recursively transforms raw WASM output into decoded Value instances.\n *\n * The WASM engine returns typed values as `{type, value}` pairs.\n * This function walks the result tree and decodes each pair using `@reifydb/core`'s `decode()`.\n */\nexport function transformToValueInstances(result: unknown): unknown {\n if (result === null || result === undefined) return result;\n if (typeof result !== 'object') return result;\n if (Array.isArray(result)) {\n return result.map(transformToValueInstances);\n }\n const obj = result as Record<string, unknown>;\n if ('type' in obj && 'value' in obj && Object.keys(obj).length === 2) {\n return decode(obj as unknown as TypeValuePair);\n }\n const transformed: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n transformed[key] = transformToValueInstances(value);\n }\n return transformed;\n}\n\n/**\n * High-level wrapper around the raw WASM database engine.\n *\n * Provides typed methods for admin, command, and query operations,\n * automatically decoding WASM type-value pairs into Value instances.\n */\nexport class WasmDB {\n private db: RawWasmDB;\n\n constructor(db: RawWasmDB) {\n this.db = db;\n }\n\n admin(rql: string): unknown {\n return transformToValueInstances(this.db.admin(rql));\n }\n\n adminWithParams(rql: string, params: unknown): unknown {\n return transformToValueInstances(this.db.adminWithParams(rql, params));\n }\n\n command(rql: string): unknown {\n return transformToValueInstances(this.db.command(rql));\n }\n\n commandWithParams(rql: string, params: unknown): unknown {\n return transformToValueInstances(this.db.commandWithParams(rql, params));\n }\n\n query(rql: string): unknown {\n return transformToValueInstances(this.db.query(rql));\n }\n\n queryWithParams(rql: string, params: unknown): unknown {\n return transformToValueInstances(this.db.queryWithParams(rql, params));\n }\n\n loginWithPassword(identifier: string, password: string): LoginResult {\n const raw = this.db.loginWithPassword(identifier, password);\n const result = { token: raw.token, identity: raw.identity };\n raw.free();\n return result;\n }\n\n loginWithToken(token: string): LoginResult {\n const raw = this.db.loginWithToken(token);\n const result = { token: raw.token, identity: raw.identity };\n raw.free();\n return result;\n }\n\n logout(): void {\n this.db.logout();\n }\n\n free(): void {\n this.db.free();\n }\n}\n\n/**\n * Creates a new WasmDB instance by dynamically importing the WASM module.\n *\n * The dynamic import ensures the WASM glue code is not bundled by tsup\n * and is instead resolved by the consumer's bundler (Vite, webpack, etc.).\n *\n * @example\n * ```typescript\n * import { createWasmDB } from '@reifydb/wasm';\n *\n * const db = await createWasmDB();\n * db.admin('CREATE NAMESPACE demo');\n * const results = db.query('FROM demo.users');\n * db.free();\n * ```\n */\nexport async function createWasmDB(): Promise<WasmDB> {\n const mod = await import('../wasm/reifydb_webassembly.js');\n return new WasmDB(new mod.WasmDB());\n}\n"],"mappings":";AAGA,SAAS,cAAkC;AAG3C,SAAS,UAAAA,eAAc;AAchB,SAAS,0BAA0B,QAA0B;AAClE,MAAI,WAAW,QAAQ,WAAW,OAAW,QAAO;AACpD,MAAI,OAAO,WAAW,SAAU,QAAO;AACvC,MAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,WAAO,OAAO,IAAI,yBAAyB;AAAA,EAC7C;AACA,QAAM,MAAM;AACZ,MAAI,UAAU,OAAO,WAAW,OAAO,OAAO,KAAK,GAAG,EAAE,WAAW,GAAG;AACpE,WAAO,OAAO,GAA+B;AAAA,EAC/C;AACA,QAAM,cAAuC,CAAC;AAC9C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,gBAAY,GAAG,IAAI,0BAA0B,KAAK;AAAA,EACpD;AACA,SAAO;AACT;AAQO,IAAM,SAAN,MAAa;AAAA,EACV;AAAA,EAER,YAAY,IAAe;AACzB,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,MAAM,KAAsB;AAC1B,WAAO,0BAA0B,KAAK,GAAG,MAAM,GAAG,CAAC;AAAA,EACrD;AAAA,EAEA,gBAAgB,KAAa,QAA0B;AACrD,WAAO,0BAA0B,KAAK,GAAG,gBAAgB,KAAK,MAAM,CAAC;AAAA,EACvE;AAAA,EAEA,QAAQ,KAAsB;AAC5B,WAAO,0BAA0B,KAAK,GAAG,QAAQ,GAAG,CAAC;AAAA,EACvD;AAAA,EAEA,kBAAkB,KAAa,QAA0B;AACvD,WAAO,0BAA0B,KAAK,GAAG,kBAAkB,KAAK,MAAM,CAAC;AAAA,EACzE;AAAA,EAEA,MAAM,KAAsB;AAC1B,WAAO,0BAA0B,KAAK,GAAG,MAAM,GAAG,CAAC;AAAA,EACrD;AAAA,EAEA,gBAAgB,KAAa,QAA0B;AACrD,WAAO,0BAA0B,KAAK,GAAG,gBAAgB,KAAK,MAAM,CAAC;AAAA,EACvE;AAAA,EAEA,kBAAkB,YAAoB,UAA+B;AACnE,UAAM,MAAM,KAAK,GAAG,kBAAkB,YAAY,QAAQ;AAC1D,UAAM,SAAS,EAAE,OAAO,IAAI,OAAO,UAAU,IAAI,SAAS;AAC1D,QAAI,KAAK;AACT,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,OAA4B;AACzC,UAAM,MAAM,KAAK,GAAG,eAAe,KAAK;AACxC,UAAM,SAAS,EAAE,OAAO,IAAI,OAAO,UAAU,IAAI,SAAS;AAC1D,QAAI,KAAK;AACT,WAAO;AAAA,EACT;AAAA,EAEA,SAAe;AACb,SAAK,GAAG,OAAO;AAAA,EACjB;AAAA,EAEA,OAAa;AACX,SAAK,GAAG,KAAK;AAAA,EACf;AACF;AAkBA,eAAsB,eAAgC;AACpD,QAAM,MAAM,MAAM,OAAO,gCAAgC;AACzD,SAAO,IAAI,OAAO,IAAI,IAAI,OAAO,CAAC;AACpC;","names":["decode"]}
package/package.json CHANGED
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "name": "@reifydb/wasm",
3
- "version": "0.4.1",
3
+ "version": "0.4.6",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "dependencies": {
8
- "@reifydb/core": "0.4.1"
8
+ "@reifydb/core": "0.4.6"
9
9
  },
10
10
  "devDependencies": {
11
11
  "@types/node": "^24.0.10",
12
12
  "tsup": "^8.5.0",
13
13
  "typescript": "^5.8.3",
14
+ "vite-plugin-top-level-await": "^1.6.0",
15
+ "vite-plugin-wasm": "^3.6.0",
14
16
  "vitest": "^2.1.8"
15
17
  },
16
18
  "engines": {
@@ -48,6 +50,6 @@
48
50
  "test": "pnpm test:unit",
49
51
  "test:unit": "vitest run --config vitest.config.ts",
50
52
  "test:unit:watch": "vitest --config vitest.config.ts",
51
- "publish:npm": "pnpm publish --access public"
53
+ "publish:npm": "pnpm publish --access public --no-git-checks"
52
54
  }
53
55
  }
package/wasm/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Dominique Chuo <dominique@reifydb.com>"
6
6
  ],
7
7
  "description": "WebAssembly bindings for ReifyDB query engine",
8
- "version": "0.4.0",
8
+ "version": "0.4.2",
9
9
  "license": "Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",
@@ -15,11 +15,16 @@ export class JsError {
15
15
  }
16
16
 
17
17
  /**
18
- * WebAssembly ReifyDB Engine
19
- *
20
- * Provides an in-memory query engine that runs entirely in the browser.
21
- * All data is stored in memory and lost when the page is closed.
18
+ * Result of a successful login, returned to JavaScript.
22
19
  */
20
+ export class LoginResult {
21
+ private constructor();
22
+ free(): void;
23
+ [Symbol.dispose](): void;
24
+ readonly identity: string;
25
+ readonly token: string;
26
+ }
27
+
23
28
  export class WasmDB {
24
29
  free(): void;
25
30
  [Symbol.dispose](): void;
@@ -41,6 +46,10 @@ export class WasmDB {
41
46
  * ```
42
47
  */
43
48
  admin(rql: string): any;
49
+ /**
50
+ * Execute an admin operation and return Display-formatted text output
51
+ */
52
+ adminText(rql: string): string;
44
53
  /**
45
54
  * Execute admin with JSON parameters
46
55
  */
@@ -52,10 +61,26 @@ export class WasmDB {
52
61
  * For DDL operations (CREATE, ALTER), use `admin()` instead.
53
62
  */
54
63
  command(rql: string): any;
64
+ /**
65
+ * Execute a command and return Display-formatted text output
66
+ */
67
+ commandText(rql: string): string;
55
68
  /**
56
69
  * Execute command with JSON parameters
57
70
  */
58
71
  commandWithParams(rql: string, params_js: any): any;
72
+ /**
73
+ * Authenticate with a password and return a session token.
74
+ */
75
+ loginWithPassword(identifier: string, password: string): LoginResult;
76
+ /**
77
+ * Authenticate with a token credential and return a session token.
78
+ */
79
+ loginWithToken(token: string): LoginResult;
80
+ /**
81
+ * Logout and revoke the current session token.
82
+ */
83
+ logout(): void;
59
84
  /**
60
85
  * Create a new in-memory ReifyDB engine
61
86
  *
@@ -83,6 +108,10 @@ export class WasmDB {
83
108
  * ```
84
109
  */
85
110
  query(rql: string): any;
111
+ /**
112
+ * Execute a query and return Display-formatted text output
113
+ */
114
+ queryText(rql: string): string;
86
115
  /**
87
116
  * Execute query with JSON parameters
88
117
  *
@@ -5,5 +5,5 @@ import { __wbg_set_wasm } from "./reifydb_webassembly_bg.js";
5
5
  __wbg_set_wasm(wasm);
6
6
  wasm.__wbindgen_start();
7
7
  export {
8
- JsError, WasmDB
8
+ JsError, LoginResult, WasmDB
9
9
  } from "./reifydb_webassembly_bg.js";
@@ -32,11 +32,59 @@ export class JsError {
32
32
  if (Symbol.dispose) JsError.prototype[Symbol.dispose] = JsError.prototype.free;
33
33
 
34
34
  /**
35
- * WebAssembly ReifyDB Engine
36
- *
37
- * Provides an in-memory query engine that runs entirely in the browser.
38
- * All data is stored in memory and lost when the page is closed.
35
+ * Result of a successful login, returned to JavaScript.
39
36
  */
37
+ export class LoginResult {
38
+ static __wrap(ptr) {
39
+ ptr = ptr >>> 0;
40
+ const obj = Object.create(LoginResult.prototype);
41
+ obj.__wbg_ptr = ptr;
42
+ LoginResultFinalization.register(obj, obj.__wbg_ptr, obj);
43
+ return obj;
44
+ }
45
+ __destroy_into_raw() {
46
+ const ptr = this.__wbg_ptr;
47
+ this.__wbg_ptr = 0;
48
+ LoginResultFinalization.unregister(this);
49
+ return ptr;
50
+ }
51
+ free() {
52
+ const ptr = this.__destroy_into_raw();
53
+ wasm.__wbg_loginresult_free(ptr, 0);
54
+ }
55
+ /**
56
+ * @returns {string}
57
+ */
58
+ get identity() {
59
+ let deferred1_0;
60
+ let deferred1_1;
61
+ try {
62
+ const ret = wasm.loginresult_identity(this.__wbg_ptr);
63
+ deferred1_0 = ret[0];
64
+ deferred1_1 = ret[1];
65
+ return getStringFromWasm0(ret[0], ret[1]);
66
+ } finally {
67
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
68
+ }
69
+ }
70
+ /**
71
+ * @returns {string}
72
+ */
73
+ get token() {
74
+ let deferred1_0;
75
+ let deferred1_1;
76
+ try {
77
+ const ret = wasm.loginresult_token(this.__wbg_ptr);
78
+ deferred1_0 = ret[0];
79
+ deferred1_1 = ret[1];
80
+ return getStringFromWasm0(ret[0], ret[1]);
81
+ } finally {
82
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
83
+ }
84
+ }
85
+ }
86
+ if (Symbol.dispose) LoginResult.prototype[Symbol.dispose] = LoginResult.prototype.free;
87
+
40
88
  export class WasmDB {
41
89
  __destroy_into_raw() {
42
90
  const ptr = this.__wbg_ptr;
@@ -76,6 +124,31 @@ export class WasmDB {
76
124
  }
77
125
  return takeFromExternrefTable0(ret[0]);
78
126
  }
127
+ /**
128
+ * Execute an admin operation and return Display-formatted text output
129
+ * @param {string} rql
130
+ * @returns {string}
131
+ */
132
+ adminText(rql) {
133
+ let deferred3_0;
134
+ let deferred3_1;
135
+ try {
136
+ const ptr0 = passStringToWasm0(rql, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
137
+ const len0 = WASM_VECTOR_LEN;
138
+ const ret = wasm.wasmdb_adminText(this.__wbg_ptr, ptr0, len0);
139
+ var ptr2 = ret[0];
140
+ var len2 = ret[1];
141
+ if (ret[3]) {
142
+ ptr2 = 0; len2 = 0;
143
+ throw takeFromExternrefTable0(ret[2]);
144
+ }
145
+ deferred3_0 = ptr2;
146
+ deferred3_1 = len2;
147
+ return getStringFromWasm0(ptr2, len2);
148
+ } finally {
149
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
150
+ }
151
+ }
79
152
  /**
80
153
  * Execute admin with JSON parameters
81
154
  * @param {string} rql
@@ -108,6 +181,31 @@ export class WasmDB {
108
181
  }
109
182
  return takeFromExternrefTable0(ret[0]);
110
183
  }
184
+ /**
185
+ * Execute a command and return Display-formatted text output
186
+ * @param {string} rql
187
+ * @returns {string}
188
+ */
189
+ commandText(rql) {
190
+ let deferred3_0;
191
+ let deferred3_1;
192
+ try {
193
+ const ptr0 = passStringToWasm0(rql, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
194
+ const len0 = WASM_VECTOR_LEN;
195
+ const ret = wasm.wasmdb_commandText(this.__wbg_ptr, ptr0, len0);
196
+ var ptr2 = ret[0];
197
+ var len2 = ret[1];
198
+ if (ret[3]) {
199
+ ptr2 = 0; len2 = 0;
200
+ throw takeFromExternrefTable0(ret[2]);
201
+ }
202
+ deferred3_0 = ptr2;
203
+ deferred3_1 = len2;
204
+ return getStringFromWasm0(ptr2, len2);
205
+ } finally {
206
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
207
+ }
208
+ }
111
209
  /**
112
210
  * Execute command with JSON parameters
113
211
  * @param {string} rql
@@ -123,6 +221,46 @@ export class WasmDB {
123
221
  }
124
222
  return takeFromExternrefTable0(ret[0]);
125
223
  }
224
+ /**
225
+ * Authenticate with a password and return a session token.
226
+ * @param {string} identifier
227
+ * @param {string} password
228
+ * @returns {LoginResult}
229
+ */
230
+ loginWithPassword(identifier, password) {
231
+ const ptr0 = passStringToWasm0(identifier, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
232
+ const len0 = WASM_VECTOR_LEN;
233
+ const ptr1 = passStringToWasm0(password, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
234
+ const len1 = WASM_VECTOR_LEN;
235
+ const ret = wasm.wasmdb_loginWithPassword(this.__wbg_ptr, ptr0, len0, ptr1, len1);
236
+ if (ret[2]) {
237
+ throw takeFromExternrefTable0(ret[1]);
238
+ }
239
+ return LoginResult.__wrap(ret[0]);
240
+ }
241
+ /**
242
+ * Authenticate with a token credential and return a session token.
243
+ * @param {string} token
244
+ * @returns {LoginResult}
245
+ */
246
+ loginWithToken(token) {
247
+ const ptr0 = passStringToWasm0(token, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
248
+ const len0 = WASM_VECTOR_LEN;
249
+ const ret = wasm.wasmdb_loginWithToken(this.__wbg_ptr, ptr0, len0);
250
+ if (ret[2]) {
251
+ throw takeFromExternrefTable0(ret[1]);
252
+ }
253
+ return LoginResult.__wrap(ret[0]);
254
+ }
255
+ /**
256
+ * Logout and revoke the current session token.
257
+ */
258
+ logout() {
259
+ const ret = wasm.wasmdb_logout(this.__wbg_ptr);
260
+ if (ret[1]) {
261
+ throw takeFromExternrefTable0(ret[0]);
262
+ }
263
+ }
126
264
  /**
127
265
  * Create a new in-memory ReifyDB engine
128
266
  *
@@ -168,6 +306,31 @@ export class WasmDB {
168
306
  }
169
307
  return takeFromExternrefTable0(ret[0]);
170
308
  }
309
+ /**
310
+ * Execute a query and return Display-formatted text output
311
+ * @param {string} rql
312
+ * @returns {string}
313
+ */
314
+ queryText(rql) {
315
+ let deferred3_0;
316
+ let deferred3_1;
317
+ try {
318
+ const ptr0 = passStringToWasm0(rql, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
319
+ const len0 = WASM_VECTOR_LEN;
320
+ const ret = wasm.wasmdb_queryText(this.__wbg_ptr, ptr0, len0);
321
+ var ptr2 = ret[0];
322
+ var len2 = ret[1];
323
+ if (ret[3]) {
324
+ ptr2 = 0; len2 = 0;
325
+ throw takeFromExternrefTable0(ret[2]);
326
+ }
327
+ deferred3_0 = ptr2;
328
+ deferred3_1 = len2;
329
+ return getStringFromWasm0(ptr2, len2);
330
+ } finally {
331
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
332
+ }
333
+ }
171
334
  /**
172
335
  * Execute query with JSON parameters
173
336
  *
@@ -194,22 +357,15 @@ export class WasmDB {
194
357
  }
195
358
  }
196
359
  if (Symbol.dispose) WasmDB.prototype[Symbol.dispose] = WasmDB.prototype.free;
197
- export function __wbg___wbindgen_debug_string_0bc8482c6e3508ae(arg0, arg1) {
198
- const ret = debugString(arg1);
199
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
200
- const len1 = WASM_VECTOR_LEN;
201
- getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
202
- getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
203
- }
204
- export function __wbg___wbindgen_is_null_ac34f5003991759a(arg0) {
360
+ export function __wbg___wbindgen_is_null_0b605fc6b167c56f(arg0) {
205
361
  const ret = arg0 === null;
206
362
  return ret;
207
363
  }
208
- export function __wbg___wbindgen_is_undefined_9e4d92534c42d778(arg0) {
364
+ export function __wbg___wbindgen_is_undefined_52709e72fb9f179c(arg0) {
209
365
  const ret = arg0 === undefined;
210
366
  return ret;
211
367
  }
212
- export function __wbg___wbindgen_string_get_72fb696202c56729(arg0, arg1) {
368
+ export function __wbg___wbindgen_string_get_395e606bd0ee4427(arg0, arg1) {
213
369
  const obj = arg1;
214
370
  const ret = typeof(obj) === 'string' ? obj : undefined;
215
371
  var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
@@ -217,17 +373,13 @@ export function __wbg___wbindgen_string_get_72fb696202c56729(arg0, arg1) {
217
373
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
218
374
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
219
375
  }
220
- export function __wbg___wbindgen_throw_be289d5034ed271b(arg0, arg1) {
376
+ export function __wbg___wbindgen_throw_6ddd609b62940d55(arg0, arg1) {
221
377
  throw new Error(getStringFromWasm0(arg0, arg1));
222
378
  }
223
- export function __wbg_call_389efe28435a9388() { return handleError(function (arg0, arg1) {
224
- const ret = arg0.call(arg1);
225
- return ret;
226
- }, arguments); }
227
- export function __wbg_clearInterval_c75df0651e74fbb8(arg0, arg1) {
228
- arg0.clearInterval(arg1);
379
+ export function __wbg_clearInterval_7960da511f83dbcd(arg0) {
380
+ clearInterval(arg0);
229
381
  }
230
- export function __wbg_error_7534b8e9a36f1ab4(arg0, arg1) {
382
+ export function __wbg_error_a6fa202b58aa1cd3(arg0, arg1) {
231
383
  let deferred0_0;
232
384
  let deferred0_1;
233
385
  try {
@@ -238,13 +390,13 @@ export function __wbg_error_7534b8e9a36f1ab4(arg0, arg1) {
238
390
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
239
391
  }
240
392
  }
241
- export function __wbg_getRandomValues_2a91986308c74a93() { return handleError(function (arg0, arg1) {
393
+ export function __wbg_getRandomValues_76dfc69825c9c552() { return handleError(function (arg0, arg1) {
242
394
  globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
243
395
  }, arguments); }
244
- export function __wbg_getRandomValues_9b655bdd369112f2() { return handleError(function (arg0, arg1) {
396
+ export function __wbg_getRandomValues_a1cf2e70b003a59d() { return handleError(function (arg0, arg1) {
245
397
  globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
246
398
  }, arguments); }
247
- export function __wbg_instanceof_Window_ed49b2db8df90359(arg0) {
399
+ export function __wbg_instanceof_Window_23e677d2c6843922(arg0) {
248
400
  let result;
249
401
  try {
250
402
  result = arg0 instanceof Window;
@@ -254,98 +406,86 @@ export function __wbg_instanceof_Window_ed49b2db8df90359(arg0) {
254
406
  const ret = result;
255
407
  return ret;
256
408
  }
257
- export function __wbg_length_32ed9a279acd054c(arg0) {
258
- const ret = arg0.length;
259
- return ret;
260
- }
261
- export function __wbg_log_6b5ca2e6124b2808(arg0) {
409
+ export function __wbg_log_524eedafa26daa59(arg0) {
262
410
  console.log(arg0);
263
411
  }
264
- export function __wbg_new_361308b2356cecd0() {
265
- const ret = new Object();
412
+ export function __wbg_new_227d7c05414eb861() {
413
+ const ret = new Error();
266
414
  return ret;
267
415
  }
268
- export function __wbg_new_3eb36ae241fe6f44() {
416
+ export function __wbg_new_a70fbab9066b301f() {
269
417
  const ret = new Array();
270
418
  return ret;
271
419
  }
272
- export function __wbg_new_8a6f238a6ece86ea() {
273
- const ret = new Error();
274
- return ret;
275
- }
276
- export function __wbg_new_no_args_1c7c842f08d00ebb(arg0, arg1) {
277
- const ret = new Function(getStringFromWasm0(arg0, arg1));
420
+ export function __wbg_new_ab79df5bd7c26067() {
421
+ const ret = new Object();
278
422
  return ret;
279
423
  }
280
- export function __wbg_new_with_length_a2c39cbe88fd8ff1(arg0) {
281
- const ret = new Uint8Array(arg0 >>> 0);
424
+ export function __wbg_now_16f0c993d5dd6c27() {
425
+ const ret = Date.now();
282
426
  return ret;
283
427
  }
284
- export function __wbg_now_37839916ec63896b() { return handleError(function () {
428
+ export function __wbg_now_ad1121946ba97ea0() { return handleError(function () {
285
429
  const ret = Date.now();
286
430
  return ret;
287
431
  }, arguments); }
288
- export function __wbg_now_a3af9a2f4bbaa4d1() {
289
- const ret = Date.now();
432
+ export function __wbg_now_c6d7a7d35f74f6f1(arg0) {
433
+ const ret = arg0.now();
290
434
  return ret;
291
435
  }
292
- export function __wbg_push_8ffdcb2063340ba5(arg0, arg1) {
436
+ export function __wbg_performance_28be169151161678(arg0) {
437
+ const ret = arg0.performance;
438
+ return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
439
+ }
440
+ export function __wbg_push_e87b0e732085a946(arg0, arg1) {
293
441
  const ret = arg0.push(arg1);
294
442
  return ret;
295
443
  }
296
- export function __wbg_setInterval_612728cce80dfecf() { return handleError(function (arg0, arg1, arg2) {
297
- const ret = arg0.setInterval(arg1, arg2);
444
+ export function __wbg_setInterval_ca4bde6c19982a0a(arg0, arg1) {
445
+ const ret = setInterval(arg0, arg1);
298
446
  return ret;
299
- }, arguments); }
300
- export function __wbg_setTimeout_eff32631ea138533() { return handleError(function (arg0, arg1, arg2) {
301
- const ret = arg0.setTimeout(arg1, arg2);
447
+ }
448
+ export function __wbg_setTimeout_69ff57a2ae460e10(arg0, arg1) {
449
+ const ret = setTimeout(arg0, arg1);
302
450
  return ret;
303
- }, arguments); }
304
- export function __wbg_set_6cb8631f80447a67() { return handleError(function (arg0, arg1, arg2) {
451
+ }
452
+ export function __wbg_set_7eaa4f96924fd6b3() { return handleError(function (arg0, arg1, arg2) {
305
453
  const ret = Reflect.set(arg0, arg1, arg2);
306
454
  return ret;
307
455
  }, arguments); }
308
- export function __wbg_set_cc56eefd2dd91957(arg0, arg1, arg2) {
309
- arg0.set(getArrayU8FromWasm0(arg1, arg2));
310
- }
311
- export function __wbg_stack_0ed75d68575b0f3c(arg0, arg1) {
456
+ export function __wbg_stack_3b0d974bbf31e44f(arg0, arg1) {
312
457
  const ret = arg1.stack;
313
458
  const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
314
459
  const len1 = WASM_VECTOR_LEN;
315
460
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
316
461
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
317
462
  }
318
- export function __wbg_static_accessor_GLOBAL_12837167ad935116() {
463
+ export function __wbg_static_accessor_GLOBAL_8adb955bd33fac2f() {
319
464
  const ret = typeof global === 'undefined' ? null : global;
320
465
  return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
321
466
  }
322
- export function __wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f() {
467
+ export function __wbg_static_accessor_GLOBAL_THIS_ad356e0db91c7913() {
323
468
  const ret = typeof globalThis === 'undefined' ? null : globalThis;
324
469
  return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
325
470
  }
326
- export function __wbg_static_accessor_SELF_a621d3dfbb60d0ce() {
471
+ export function __wbg_static_accessor_SELF_f207c857566db248() {
327
472
  const ret = typeof self === 'undefined' ? null : self;
328
473
  return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
329
474
  }
330
- export function __wbg_static_accessor_WINDOW_f8727f0cf888e0bd() {
475
+ export function __wbg_static_accessor_WINDOW_bb9f1ba69d61b386() {
331
476
  const ret = typeof window === 'undefined' ? null : window;
332
477
  return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
333
478
  }
334
- export function __wbg_stringify_8d1cc6ff383e8bae() { return handleError(function (arg0) {
479
+ export function __wbg_stringify_5ae93966a84901ac() { return handleError(function (arg0) {
335
480
  const ret = JSON.stringify(arg0);
336
481
  return ret;
337
482
  }, arguments); }
338
483
  export function __wbindgen_cast_0000000000000001(arg0, arg1) {
339
- // Cast intrinsic for `Closure(Closure { dtor_idx: 2617, function: Function { arguments: [], shim_idx: 2618, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
340
- const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h8b1ea05c1c073803, wasm_bindgen__convert__closures_____invoke__h205d784230941d7a);
484
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 2899, function: Function { arguments: [], shim_idx: 2900, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
485
+ const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h354a99c17ad162eb, wasm_bindgen__convert__closures_____invoke__h75c1ed67905ffecb);
341
486
  return ret;
342
487
  }
343
- export function __wbindgen_cast_0000000000000002(arg0) {
344
- // Cast intrinsic for `F64 -> Externref`.
345
- const ret = arg0;
346
- return ret;
347
- }
348
- export function __wbindgen_cast_0000000000000003(arg0, arg1) {
488
+ export function __wbindgen_cast_0000000000000002(arg0, arg1) {
349
489
  // Cast intrinsic for `Ref(String) -> Externref`.
350
490
  const ret = getStringFromWasm0(arg0, arg1);
351
491
  return ret;
@@ -359,13 +499,16 @@ export function __wbindgen_init_externref_table() {
359
499
  table.set(offset + 2, true);
360
500
  table.set(offset + 3, false);
361
501
  }
362
- function wasm_bindgen__convert__closures_____invoke__h205d784230941d7a(arg0, arg1) {
363
- wasm.wasm_bindgen__convert__closures_____invoke__h205d784230941d7a(arg0, arg1);
502
+ function wasm_bindgen__convert__closures_____invoke__h75c1ed67905ffecb(arg0, arg1) {
503
+ wasm.wasm_bindgen__convert__closures_____invoke__h75c1ed67905ffecb(arg0, arg1);
364
504
  }
365
505
 
366
506
  const JsErrorFinalization = (typeof FinalizationRegistry === 'undefined')
367
507
  ? { register: () => {}, unregister: () => {} }
368
508
  : new FinalizationRegistry(ptr => wasm.__wbg_jserror_free(ptr >>> 0, 1));
509
+ const LoginResultFinalization = (typeof FinalizationRegistry === 'undefined')
510
+ ? { register: () => {}, unregister: () => {} }
511
+ : new FinalizationRegistry(ptr => wasm.__wbg_loginresult_free(ptr >>> 0, 1));
369
512
  const WasmDBFinalization = (typeof FinalizationRegistry === 'undefined')
370
513
  ? { register: () => {}, unregister: () => {} }
371
514
  : new FinalizationRegistry(ptr => wasm.__wbg_wasmdb_free(ptr >>> 0, 1));
@@ -380,71 +523,6 @@ const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')
380
523
  ? { register: () => {}, unregister: () => {} }
381
524
  : new FinalizationRegistry(state => state.dtor(state.a, state.b));
382
525
 
383
- function debugString(val) {
384
- // primitive types
385
- const type = typeof val;
386
- if (type == 'number' || type == 'boolean' || val == null) {
387
- return `${val}`;
388
- }
389
- if (type == 'string') {
390
- return `"${val}"`;
391
- }
392
- if (type == 'symbol') {
393
- const description = val.description;
394
- if (description == null) {
395
- return 'Symbol';
396
- } else {
397
- return `Symbol(${description})`;
398
- }
399
- }
400
- if (type == 'function') {
401
- const name = val.name;
402
- if (typeof name == 'string' && name.length > 0) {
403
- return `Function(${name})`;
404
- } else {
405
- return 'Function';
406
- }
407
- }
408
- // objects
409
- if (Array.isArray(val)) {
410
- const length = val.length;
411
- let debug = '[';
412
- if (length > 0) {
413
- debug += debugString(val[0]);
414
- }
415
- for(let i = 1; i < length; i++) {
416
- debug += ', ' + debugString(val[i]);
417
- }
418
- debug += ']';
419
- return debug;
420
- }
421
- // Test for built-in
422
- const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
423
- let className;
424
- if (builtInMatches && builtInMatches.length > 1) {
425
- className = builtInMatches[1];
426
- } else {
427
- // Failed to match the standard '[object ClassName]'
428
- return toString.call(val);
429
- }
430
- if (className == 'Object') {
431
- // we're a user defined class or Object
432
- // JSON.stringify avoids problems with cycles, and is generally much
433
- // easier than looping through ownProperties of `val`.
434
- try {
435
- return 'Object(' + JSON.stringify(val) + ')';
436
- } catch (_) {
437
- return 'Object';
438
- }
439
- }
440
- // errors
441
- if (val instanceof Error) {
442
- return `${val.name}: ${val.message}\n${val.stack}`;
443
- }
444
- // TODO we could test for more things here, like `Set`s and `Map`s.
445
- return className;
446
- }
447
-
448
526
  function getArrayU8FromWasm0(ptr, len) {
449
527
  ptr = ptr >>> 0;
450
528
  return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
Binary file
@@ -1,20 +1,29 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
+ export const __wbg_loginresult_free: (a: number, b: number) => void;
4
5
  export const __wbg_wasmdb_free: (a: number, b: number) => void;
6
+ export const loginresult_identity: (a: number) => [number, number];
7
+ export const loginresult_token: (a: number) => [number, number];
5
8
  export const wasmdb_admin: (a: number, b: number, c: number) => [number, number, number];
9
+ export const wasmdb_adminText: (a: number, b: number, c: number) => [number, number, number, number];
6
10
  export const wasmdb_adminWithParams: (a: number, b: number, c: number, d: any) => [number, number, number];
7
11
  export const wasmdb_command: (a: number, b: number, c: number) => [number, number, number];
12
+ export const wasmdb_commandText: (a: number, b: number, c: number) => [number, number, number, number];
8
13
  export const wasmdb_commandWithParams: (a: number, b: number, c: number, d: any) => [number, number, number];
14
+ export const wasmdb_loginWithPassword: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
15
+ export const wasmdb_loginWithToken: (a: number, b: number, c: number) => [number, number, number];
16
+ export const wasmdb_logout: (a: number) => [number, number];
9
17
  export const wasmdb_new: () => [number, number, number];
10
18
  export const wasmdb_query: (a: number, b: number, c: number) => [number, number, number];
19
+ export const wasmdb_queryText: (a: number, b: number, c: number) => [number, number, number, number];
11
20
  export const wasmdb_queryWithParams: (a: number, b: number, c: number, d: any) => [number, number, number];
12
21
  export const __wbg_jserror_free: (a: number, b: number) => void;
13
22
  export const jserror_message: (a: number) => [number, number];
23
+ export const host_log_message: (a: bigint, b: number, c: number, d: number) => void;
14
24
  export const host_alloc: (a: number) => number;
15
25
  export const host_free: (a: number, b: number) => void;
16
26
  export const host_realloc: (a: number, b: number, c: number) => number;
17
- export const host_log_message: (a: bigint, b: number, c: number, d: number) => void;
18
27
  export const test_alloc: (a: number) => number;
19
28
  export const test_free: (a: number, b: number) => void;
20
29
  export const test_log_message: (a: bigint, b: number, c: number, d: number) => void;
@@ -27,13 +36,13 @@ export const test_state_prefix: (a: bigint, b: number, c: number, d: number, e:
27
36
  export const test_state_range: (a: bigint, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
28
37
  export const test_state_remove: (a: bigint, b: number, c: number, d: number) => number;
29
38
  export const test_state_set: (a: bigint, b: number, c: number, d: number, e: number, f: number) => number;
30
- export const wasm_bindgen__closure__destroy__h8b1ea05c1c073803: (a: number, b: number) => void;
31
- export const wasm_bindgen__convert__closures_____invoke__h205d784230941d7a: (a: number, b: number) => void;
39
+ export const wasm_bindgen__closure__destroy__h354a99c17ad162eb: (a: number, b: number) => void;
40
+ export const wasm_bindgen__convert__closures_____invoke__h75c1ed67905ffecb: (a: number, b: number) => void;
32
41
  export const __wbindgen_malloc: (a: number, b: number) => number;
33
42
  export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
43
+ export const __wbindgen_free: (a: number, b: number, c: number) => void;
34
44
  export const __wbindgen_exn_store: (a: number) => void;
35
45
  export const __externref_table_alloc: () => number;
36
46
  export const __wbindgen_externrefs: WebAssembly.Table;
37
- export const __wbindgen_free: (a: number, b: number, c: number) => void;
38
47
  export const __externref_table_dealloc: (a: number) => void;
39
48
  export const __wbindgen_start: () => void;