@muhkoo/connect 0.15.0-alpha.11 → 0.15.0-alpha.13
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 +45 -2
- package/dist/browser/index.js +345 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/connect.d.ts +235 -3
- package/dist/connect.workers.d.ts +1 -0
- package/dist/server/index.js +345 -2
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
package/dist/server/index.js
CHANGED
|
@@ -7692,7 +7692,7 @@ function manifestStat(m) {
|
|
|
7692
7692
|
* expect (and isn't serving a stale cached bundle). Keep this in sync with
|
|
7693
7693
|
* `package.json` `version`.
|
|
7694
7694
|
*/
|
|
7695
|
-
const VERSION = "0.15.0-alpha.
|
|
7695
|
+
const VERSION = "0.15.0-alpha.13";
|
|
7696
7696
|
|
|
7697
7697
|
/**
|
|
7698
7698
|
* `HttpClient` — the one place the unified {@link Client} talks to the
|
|
@@ -7851,6 +7851,9 @@ class HttpClient {
|
|
|
7851
7851
|
post(path, body) {
|
|
7852
7852
|
return this.request("POST", path, body);
|
|
7853
7853
|
}
|
|
7854
|
+
put(path, body) {
|
|
7855
|
+
return this.request("PUT", path, body);
|
|
7856
|
+
}
|
|
7854
7857
|
patch(path, body) {
|
|
7855
7858
|
return this.request("PATCH", path, body);
|
|
7856
7859
|
}
|
|
@@ -16904,6 +16907,343 @@ class AppNamespace {
|
|
|
16904
16907
|
}
|
|
16905
16908
|
}
|
|
16906
16909
|
|
|
16910
|
+
/**
|
|
16911
|
+
* `client.vectors` — vector search over the app's collections. A developer
|
|
16912
|
+
* defines a collection (text or vectors mode, filterable fields, access) in the
|
|
16913
|
+
* Muhkoo portal or CLI; this namespace reads and writes its entries:
|
|
16914
|
+
*
|
|
16915
|
+
* const docs = client.vectors.collection('docs');
|
|
16916
|
+
* const { mutationId } = await docs.upsert([
|
|
16917
|
+
* { id: 'doc-1', text: 'How to reset your password…', data: { category: 'faq' } },
|
|
16918
|
+
* ]);
|
|
16919
|
+
* const state = await docs.status(mutationId); // 'pending' | 'done' | 'unknown'
|
|
16920
|
+
* const matches = await docs.query({ text: 'forgot password', topK: 5, filter: { category: 'faq' } });
|
|
16921
|
+
* const [entry] = await docs.get(['doc-1']);
|
|
16922
|
+
* await docs.delete(['doc-1']);
|
|
16923
|
+
*
|
|
16924
|
+
* Writes are asynchronous: upsert and delete return a `mutationId` at once, and
|
|
16925
|
+
* entries usually become searchable within one to two minutes. `get` returns
|
|
16926
|
+
* only entries whose writes have finished, never ones still pending.
|
|
16927
|
+
*
|
|
16928
|
+
* Entries are server-readable: Muhkoo stores the text, vectors and data you send
|
|
16929
|
+
* so it can embed and search them. Don't put anything in a collection that the
|
|
16930
|
+
* platform must not see.
|
|
16931
|
+
*
|
|
16932
|
+
* Authorization is the app key ({@link HttpClient} stamps it on every request);
|
|
16933
|
+
* the app and environment come from the key. Server errors (`{ error, code }`)
|
|
16934
|
+
* reach callers as {@link HttpError}; the SDK does no validation of its own.
|
|
16935
|
+
*/
|
|
16936
|
+
const READY_SENDER = "__muhkoo__";
|
|
16937
|
+
const READY_SUBJECT = "muhkoo.vectors.ready";
|
|
16938
|
+
const DEFAULT_WAIT_TIMEOUT_MS = 300_000;
|
|
16939
|
+
const POLL_FIRST_MS = 250;
|
|
16940
|
+
const POLL_MAX_MS = 4_000;
|
|
16941
|
+
const POLL_CONNECTED_MS = 5_000;
|
|
16942
|
+
/**
|
|
16943
|
+
* A wait for a write ran out of time. The write itself was accepted; check
|
|
16944
|
+
* {@link VectorCollection.status} later with `mutationId`.
|
|
16945
|
+
*/
|
|
16946
|
+
class VectorWaitTimeoutError extends Error {
|
|
16947
|
+
mutationId;
|
|
16948
|
+
constructor(mutationId, timeoutMs) {
|
|
16949
|
+
super(`Timed out after ${timeoutMs} ms waiting for mutation ${mutationId}`);
|
|
16950
|
+
this.name = "VectorWaitTimeoutError";
|
|
16951
|
+
this.mutationId = mutationId;
|
|
16952
|
+
}
|
|
16953
|
+
}
|
|
16954
|
+
function isReadyEvent(data) {
|
|
16955
|
+
if (!data || typeof data !== "object")
|
|
16956
|
+
return false;
|
|
16957
|
+
const d = data;
|
|
16958
|
+
return (typeof d.collection === "string" &&
|
|
16959
|
+
typeof d.mutationId === "string" &&
|
|
16960
|
+
Array.isArray(d.ids) &&
|
|
16961
|
+
d.ids.every((id) => typeof id === "string"));
|
|
16962
|
+
}
|
|
16963
|
+
/** A handle on one collection. Cheap to make; holds no state beyond its name. */
|
|
16964
|
+
class VectorCollection {
|
|
16965
|
+
http;
|
|
16966
|
+
name;
|
|
16967
|
+
base;
|
|
16968
|
+
constructor(http, name) {
|
|
16969
|
+
this.http = http;
|
|
16970
|
+
this.name = name;
|
|
16971
|
+
this.base = `/api/vectors/${encodeURIComponent(name)}`;
|
|
16972
|
+
}
|
|
16973
|
+
/** Add or replace entries. Returns once accepted; see {@link status}. */
|
|
16974
|
+
upsert(entries, opts) {
|
|
16975
|
+
const body = { entries };
|
|
16976
|
+
if (opts?.notify !== undefined)
|
|
16977
|
+
body.notify = opts.notify;
|
|
16978
|
+
return this.http.post(`${this.base}/upsert`, body);
|
|
16979
|
+
}
|
|
16980
|
+
/** Nearest entries to a text or a vector. */
|
|
16981
|
+
async query(input) {
|
|
16982
|
+
const res = await this.http.post(`${this.base}/query`, input);
|
|
16983
|
+
return res.matches;
|
|
16984
|
+
}
|
|
16985
|
+
/** Entries by id. Writes still pending are not returned. */
|
|
16986
|
+
async get(ids, opts) {
|
|
16987
|
+
const body = { ids };
|
|
16988
|
+
if (opts?.includeVector !== undefined)
|
|
16989
|
+
body.includeVector = opts.includeVector;
|
|
16990
|
+
const res = await this.http.post(`${this.base}/get`, body);
|
|
16991
|
+
return res.entries;
|
|
16992
|
+
}
|
|
16993
|
+
/** Remove entries by id. Asynchronous, like {@link upsert}. */
|
|
16994
|
+
delete(ids) {
|
|
16995
|
+
return this.http.post(`${this.base}/delete`, { ids });
|
|
16996
|
+
}
|
|
16997
|
+
/** The state of a write: `pending`, `done`, or `unknown` (never seen or expired). */
|
|
16998
|
+
async status(mutationId) {
|
|
16999
|
+
const res = await this.http.get(`${this.base}/status?mutation=${encodeURIComponent(mutationId)}`);
|
|
17000
|
+
return res.state;
|
|
17001
|
+
}
|
|
17002
|
+
/**
|
|
17003
|
+
* Listen on an open Space for this collection's ready notices. Only notices
|
|
17004
|
+
* the platform sent (sender `__muhkoo__`) reach `handler`; a member who
|
|
17005
|
+
* publishes the same subject is ignored. Needs an unlocked session, since a
|
|
17006
|
+
* Space without its keys emits no ephemeral events. Returns the unsubscribe.
|
|
17007
|
+
*/
|
|
17008
|
+
onReady(space, handler) {
|
|
17009
|
+
return space.onEphemeral((e) => {
|
|
17010
|
+
if (e.from !== READY_SENDER || e.subject !== READY_SUBJECT)
|
|
17011
|
+
return;
|
|
17012
|
+
if (!isReadyEvent(e.data) || e.data.collection !== this.name)
|
|
17013
|
+
return;
|
|
17014
|
+
handler({ collection: e.data.collection, ids: e.data.ids, mutationId: e.data.mutationId });
|
|
17015
|
+
});
|
|
17016
|
+
}
|
|
17017
|
+
/**
|
|
17018
|
+
* Resolve once a write is searchable: on its ready notice (with `space`) or
|
|
17019
|
+
* when {@link status} answers `done`. Status is polled underneath either way,
|
|
17020
|
+
* because notices are best effort.
|
|
17021
|
+
*
|
|
17022
|
+
* The notice only arrives if `space` is a registered notice Space for the
|
|
17023
|
+
* environment (see {@link VectorsNamespace.setNotices}) and the write named
|
|
17024
|
+
* it in `notify.space` or it is the environment's `defaultSpace`. Any other
|
|
17025
|
+
* Space never receives the notice, and the wait falls back to polling,
|
|
17026
|
+
* usually finishing within a minute or two.
|
|
17027
|
+
*
|
|
17028
|
+
* Rejects with an `Error` ("Unknown mutation <id>") if status answers
|
|
17029
|
+
* `unknown`, and with {@link VectorWaitTimeoutError} after `timeoutMs`
|
|
17030
|
+
* (default 300,000 ms).
|
|
17031
|
+
*/
|
|
17032
|
+
waitFor(mutationId, opts) {
|
|
17033
|
+
const space = opts?.space;
|
|
17034
|
+
const subscribe = space
|
|
17035
|
+
? (onHit) => this.onReady(space, (e) => { if (e.mutationId === mutationId)
|
|
17036
|
+
onHit(); })
|
|
17037
|
+
: undefined;
|
|
17038
|
+
return this.wait(mutationId, opts, subscribe);
|
|
17039
|
+
}
|
|
17040
|
+
/**
|
|
17041
|
+
* {@link upsert}, then {@link waitFor} its mutation. With `space`, listens
|
|
17042
|
+
* before sending, so a notice that beats the HTTP response still counts.
|
|
17043
|
+
* The notice reaches `space` only if it is a registered notice Space named
|
|
17044
|
+
* in `notify.space` or set as the environment's `defaultSpace`; naming an
|
|
17045
|
+
* unregistered Space fails the upsert with a 400
|
|
17046
|
+
* `notice_space_not_registered`. Otherwise the wait completes by polling.
|
|
17047
|
+
* An upsert error is rethrown at once.
|
|
17048
|
+
*/
|
|
17049
|
+
async upsertAndWait(entries, opts) {
|
|
17050
|
+
const space = opts?.space;
|
|
17051
|
+
if (!space) {
|
|
17052
|
+
const result = await this.upsert(entries, opts);
|
|
17053
|
+
await this.wait(result.mutationId, opts, undefined);
|
|
17054
|
+
return result;
|
|
17055
|
+
}
|
|
17056
|
+
const seen = new Set();
|
|
17057
|
+
let target = null;
|
|
17058
|
+
let hit = null;
|
|
17059
|
+
const unsubscribe = this.onReady(space, (e) => {
|
|
17060
|
+
if (target === null)
|
|
17061
|
+
seen.add(e.mutationId);
|
|
17062
|
+
else if (e.mutationId === target)
|
|
17063
|
+
hit?.();
|
|
17064
|
+
});
|
|
17065
|
+
try {
|
|
17066
|
+
const result = await this.upsert(entries, opts);
|
|
17067
|
+
target = result.mutationId;
|
|
17068
|
+
const already = seen.has(result.mutationId);
|
|
17069
|
+
seen.clear();
|
|
17070
|
+
const subscribe = (onHit) => {
|
|
17071
|
+
hit = onHit;
|
|
17072
|
+
return () => { hit = null; };
|
|
17073
|
+
};
|
|
17074
|
+
if (!already)
|
|
17075
|
+
await this.wait(result.mutationId, opts, subscribe);
|
|
17076
|
+
return result;
|
|
17077
|
+
}
|
|
17078
|
+
finally {
|
|
17079
|
+
unsubscribe();
|
|
17080
|
+
}
|
|
17081
|
+
}
|
|
17082
|
+
wait(mutationId, opts, subscribe) {
|
|
17083
|
+
const timeoutMs = opts?.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS;
|
|
17084
|
+
const space = opts?.space;
|
|
17085
|
+
return new Promise((resolve, reject) => {
|
|
17086
|
+
let finished = false;
|
|
17087
|
+
let pollTimer;
|
|
17088
|
+
let backoff = POLL_FIRST_MS;
|
|
17089
|
+
const subscription = {};
|
|
17090
|
+
const finish = (err) => {
|
|
17091
|
+
if (finished)
|
|
17092
|
+
return;
|
|
17093
|
+
finished = true;
|
|
17094
|
+
clearTimeout(deadline);
|
|
17095
|
+
if (pollTimer !== undefined)
|
|
17096
|
+
clearTimeout(pollTimer);
|
|
17097
|
+
subscription.off?.();
|
|
17098
|
+
if (err)
|
|
17099
|
+
reject(err);
|
|
17100
|
+
else
|
|
17101
|
+
resolve();
|
|
17102
|
+
};
|
|
17103
|
+
const schedule = () => {
|
|
17104
|
+
if (finished)
|
|
17105
|
+
return;
|
|
17106
|
+
let delay;
|
|
17107
|
+
if (space?.isConnected()) {
|
|
17108
|
+
delay = POLL_CONNECTED_MS;
|
|
17109
|
+
}
|
|
17110
|
+
else {
|
|
17111
|
+
delay = backoff;
|
|
17112
|
+
backoff = Math.min(backoff * 2, POLL_MAX_MS);
|
|
17113
|
+
}
|
|
17114
|
+
pollTimer = setTimeout(poll, delay);
|
|
17115
|
+
};
|
|
17116
|
+
const poll = async () => {
|
|
17117
|
+
pollTimer = undefined;
|
|
17118
|
+
let state = null;
|
|
17119
|
+
try {
|
|
17120
|
+
state = await this.status(mutationId);
|
|
17121
|
+
}
|
|
17122
|
+
catch {
|
|
17123
|
+
state = null; // retried at the same cadence
|
|
17124
|
+
}
|
|
17125
|
+
if (finished)
|
|
17126
|
+
return;
|
|
17127
|
+
if (state === "done")
|
|
17128
|
+
finish();
|
|
17129
|
+
else if (state === "unknown")
|
|
17130
|
+
finish(new Error(`Unknown mutation ${mutationId}`));
|
|
17131
|
+
else
|
|
17132
|
+
schedule();
|
|
17133
|
+
};
|
|
17134
|
+
const deadline = setTimeout(() => finish(new VectorWaitTimeoutError(mutationId, timeoutMs)), timeoutMs);
|
|
17135
|
+
subscription.off = subscribe?.(() => finish());
|
|
17136
|
+
if (finished) {
|
|
17137
|
+
subscription.off?.();
|
|
17138
|
+
return;
|
|
17139
|
+
}
|
|
17140
|
+
schedule();
|
|
17141
|
+
});
|
|
17142
|
+
}
|
|
17143
|
+
}
|
|
17144
|
+
/** A collection's creation failed; `info.envs.*.error` says why. */
|
|
17145
|
+
class VectorCollectionFailedError extends Error {
|
|
17146
|
+
info;
|
|
17147
|
+
constructor(info) {
|
|
17148
|
+
const reason = info.envs?.live?.error ?? info.envs?.test?.error;
|
|
17149
|
+
super(`Collection ${info.name} failed${reason ? `: ${reason}` : ""}`);
|
|
17150
|
+
this.name = "VectorCollectionFailedError";
|
|
17151
|
+
this.info = info;
|
|
17152
|
+
}
|
|
17153
|
+
}
|
|
17154
|
+
const COLLECTION_POLL_MS = 2_000;
|
|
17155
|
+
const DEFAULT_COLLECTION_TIMEOUT_MS = 600_000;
|
|
17156
|
+
class VectorsNamespace {
|
|
17157
|
+
deps;
|
|
17158
|
+
constructor(deps) {
|
|
17159
|
+
this.deps = deps;
|
|
17160
|
+
}
|
|
17161
|
+
/** A handle on the named collection, made fresh on each call. */
|
|
17162
|
+
collection(name) {
|
|
17163
|
+
return new VectorCollection(this.deps.http, name);
|
|
17164
|
+
}
|
|
17165
|
+
// Owner management. Authorized by the developer session (owner only, like
|
|
17166
|
+
// the database tables API), not the app key.
|
|
17167
|
+
/** The app's collections, sorted by name. */
|
|
17168
|
+
async listCollections(appId) {
|
|
17169
|
+
const res = await this.deps.http.get(this.ownerPath(appId));
|
|
17170
|
+
return res.collections;
|
|
17171
|
+
}
|
|
17172
|
+
/** One collection. A missing or badly named one is 404 `collection_not_found`. */
|
|
17173
|
+
getCollection(appId, name) {
|
|
17174
|
+
return this.deps.http.get(this.ownerPath(appId, name));
|
|
17175
|
+
}
|
|
17176
|
+
/**
|
|
17177
|
+
* Create a collection. Asynchronous: it answers with status `creating`; use
|
|
17178
|
+
* {@link waitForCollection} to wait for `ready`. Repeating it with the same
|
|
17179
|
+
* definition returns the existing collection; a different definition is
|
|
17180
|
+
* 409 `collection_exists`. Definitions never change: drop and recreate.
|
|
17181
|
+
*/
|
|
17182
|
+
createCollection(appId, name, definition) {
|
|
17183
|
+
return this.deps.http.put(this.ownerPath(appId, name), definition);
|
|
17184
|
+
}
|
|
17185
|
+
/**
|
|
17186
|
+
* Drop a collection and its entries in both environments. Asynchronous; the
|
|
17187
|
+
* collection shows status `dropping` until it is gone. Safe to repeat: a 503
|
|
17188
|
+
* `vectors_unavailable` means the drop couldn't start, and calling again is
|
|
17189
|
+
* the remedy.
|
|
17190
|
+
*/
|
|
17191
|
+
async dropCollection(appId, name) {
|
|
17192
|
+
await this.deps.http.del(this.ownerPath(appId, name));
|
|
17193
|
+
}
|
|
17194
|
+
/** Set which Spaces receive ready notices for one environment. */
|
|
17195
|
+
setNotices(appId, name, env, notices) {
|
|
17196
|
+
return this.deps.http.patch(`${this.ownerPath(appId, name)}/notices?env=${encodeURIComponent(env)}`, notices);
|
|
17197
|
+
}
|
|
17198
|
+
/**
|
|
17199
|
+
* Poll {@link getCollection} every 2 s until status is `ready`. Rejects with
|
|
17200
|
+
* {@link VectorCollectionFailedError} on `failed`, and with
|
|
17201
|
+
* `Error("Timed out waiting for collection <name>")` after `timeoutMs`
|
|
17202
|
+
* (default 600,000 ms: creation waits for filter fields to settle).
|
|
17203
|
+
*/
|
|
17204
|
+
waitForCollection(appId, name, opts) {
|
|
17205
|
+
const timeoutMs = opts?.timeoutMs ?? DEFAULT_COLLECTION_TIMEOUT_MS;
|
|
17206
|
+
return new Promise((resolve, reject) => {
|
|
17207
|
+
let finished = false;
|
|
17208
|
+
let pollTimer;
|
|
17209
|
+
const done = (fn) => {
|
|
17210
|
+
if (finished)
|
|
17211
|
+
return;
|
|
17212
|
+
finished = true;
|
|
17213
|
+
clearTimeout(deadline);
|
|
17214
|
+
if (pollTimer !== undefined)
|
|
17215
|
+
clearTimeout(pollTimer);
|
|
17216
|
+
fn();
|
|
17217
|
+
};
|
|
17218
|
+
const poll = async () => {
|
|
17219
|
+
pollTimer = undefined;
|
|
17220
|
+
let info;
|
|
17221
|
+
try {
|
|
17222
|
+
info = await this.getCollection(appId, name);
|
|
17223
|
+
}
|
|
17224
|
+
catch (err) {
|
|
17225
|
+
done(() => reject(err));
|
|
17226
|
+
return;
|
|
17227
|
+
}
|
|
17228
|
+
if (finished)
|
|
17229
|
+
return;
|
|
17230
|
+
if (info.status === "ready")
|
|
17231
|
+
done(() => resolve(info));
|
|
17232
|
+
else if (info.status === "failed")
|
|
17233
|
+
done(() => reject(new VectorCollectionFailedError(info)));
|
|
17234
|
+
else
|
|
17235
|
+
pollTimer = setTimeout(poll, COLLECTION_POLL_MS);
|
|
17236
|
+
};
|
|
17237
|
+
const deadline = setTimeout(() => done(() => reject(new Error(`Timed out waiting for collection ${name}`))), timeoutMs);
|
|
17238
|
+
void poll();
|
|
17239
|
+
});
|
|
17240
|
+
}
|
|
17241
|
+
ownerPath(appId, name) {
|
|
17242
|
+
const base = `/api/apps/${encodeURIComponent(appId)}/vectors/collections`;
|
|
17243
|
+
return name === undefined ? base : `${base}/${encodeURIComponent(name)}`;
|
|
17244
|
+
}
|
|
17245
|
+
}
|
|
17246
|
+
|
|
16907
17247
|
/**
|
|
16908
17248
|
* POST /api/auth/identity (SpecA §4.1 as amended by CS-7). An unknown name
|
|
16909
17249
|
* answers a deterministic decoy, so a lookup never says whether an account
|
|
@@ -24799,6 +25139,8 @@ class Client {
|
|
|
24799
25139
|
accessTokens;
|
|
24800
25140
|
/** This app — `client.app.access()`: may the signed-in user add data here? */
|
|
24801
25141
|
app;
|
|
25142
|
+
/** Vector search — `client.vectors.collection("docs").query({ text })`, plus owner management of collections. */
|
|
25143
|
+
vectors;
|
|
24802
25144
|
/** Offline cache + sync — `client.offline.status`, `client.offline.snapshot`, etc. */
|
|
24803
25145
|
offline;
|
|
24804
25146
|
session;
|
|
@@ -25071,6 +25413,7 @@ class Client {
|
|
|
25071
25413
|
this.agents = new AgentsNamespace({ http: this.http });
|
|
25072
25414
|
this.functions = new FunctionsNamespace({ http: this.http, fnHostSuffix: options.functionsHostSuffix });
|
|
25073
25415
|
this.accessTokens = new AccessTokensNamespace({ http: this.http });
|
|
25416
|
+
this.vectors = new VectorsNamespace({ http: this.http });
|
|
25074
25417
|
// Each "allowed" sends what the offline queue kept after a refusal for
|
|
25075
25418
|
// payment, without waiting for the next reconnect.
|
|
25076
25419
|
this.app = new AppNamespace({ http: this.http, onAllowed: () => this.offline.resume() });
|
|
@@ -25494,5 +25837,5 @@ var bundledLoader = /*#__PURE__*/Object.freeze({
|
|
|
25494
25837
|
default: loadRsWasm
|
|
25495
25838
|
});
|
|
25496
25839
|
|
|
25497
|
-
export { ACCESS_TOKEN_SCOPES, AES_GCM_IV_BYTES$1 as AES_GCM_IV_BYTES, AES_GCM_KEY_BYTES, AES_GCM_TAG_BYTES$1 as AES_GCM_TAG_BYTES, AccessTokensNamespace, AdmissionDeniedError, AgentsNamespace, AppNamespace, AuthClient, AuthHttpError, AuthNamespace, AuthPublicInput, Authenticator, BlockEngine, BroadcastChannel, BroadcastChannelEvents, ChannelExistsError, ChannelNotFoundError, ChunkCipher, CircuitIntegrityError, Client, ConnectivityManager, DEFAULT_AUTH_BASE_URL, DEFAULT_BASE_URL, DEFAULT_BRANCH, DEFAULT_FN_HOST_SUFFIX, DEVICE_IDENTITY_STORAGE_KEY, DEVICE_KEY_DB_NAME, DbCache, DbNamespace, DbTable, DevicePairingError, DeviceRevokedError, DeviceStoreUnavailableError, DoubleRatchet, DoubleRatchetCipher, DoubleRatchetManager, EncryptedSession, EventCore, EventCoreEvents, Field, Field as FieldElement, FileStorage, FunctionsNamespace, GoogleNotLinkedError, GuestLoginConflictError, HLC, HashKnowledge, HostedAuth, HttpClient, HttpError, IdentityLockedError, IdentityUnavailableError, IndexedDbStore, InvalidRecoveryCodeError, KEEPER_MEMBER_ID$1 as KEEPER_MEMBER_ID, KeyStore, KeyringClient, KeyringHttpError, KvCache, KvNamespace, LocalEngineHost, LocalStorageSessionStore, Logger, MAX_SHARE_SUCCESSOR_HOPS, MemorySessionStore, Message, Message as MessageDefault, MessageNamespace, MuhkooAgent, MuhkooDB, MuhkooFunction, MuhkooSpace, NOT_MEMBER_CLOSE_CODE, NOT_MEMBER_RECHECK_MS, NoopStore, OfflineLockedError, OfflineManager, OutboundQueue, P2P_SUBJECT, PAIRING_CODE_ALPHABET, PAIRING_CODE_LENGTH, PBKDF2_DEFAULT_ITERATIONS, PINNED_CIRCUIT_DIGESTS, PREIMAGE_POK_VERIFICATION_KEY, Packet, PasskeyOriginError, PaymentRequiredError, PeerExchange, PeerNetwork, PersonalSpaceClient, Poseidon, PreimagePoK, ROOT_ID, Ready, ReauthRequiredError, ReedSolomonCodec, Repo, Retry, Space as Room, RotationInProgressError, RotationIncompleteError, RotationMismatchError, SHARE_DIR_TYPE, SHARE_GUEST_DEVICE_LABEL, SHARE_PASSWORD_ITERATIONS, SerializeMessage, SessionState, ShardCache, ShardClient, Share, ShareClosedError, ShareFullError, ShareMemberLimitError, SharePasswordError, SharePasswordRateError, ShareSpaceNotEmptyError, ShareSpaceNotReadyError, SharedSpaceClient, SharesClient, SharesNamespace, SnapshotNamespace, Space, SpaceCache, SpaceKeyring, SpaceNamespace, SpacePacketCipher, SpaceSignaler, SpaceTrustError, StorageNamespace, SyncEngine, VERSION, VFS_ROOT_INFO, VaultProtocolMismatchError, VaultUnavailableError, VcsError, VcsNamespace, VfsConflictError, VfsCorruptRecordError, VfsLimitError, VfsLockedError, VfsNamespace, VfsNotFoundError, WSTransport, WebRtcTransport, WorkerEngineHost, ZERO_HLC, ZkAuth, _accountId, _formatBytes, _messageId, _objectId, _packetId, _socketId, _userId, appLogger$1 as appLogger, assertType, base58Decode, base58Encode, buildCommitment, canonicalUserCode, clearDeviceIdentity, compareHlc, compilePrograms, concatBytes$1 as concatBytes, configureDeviceStore, createPasskeyWithPrf, decodeFromHex, decorators, decryptAesGcm, defaultCircuitUrls, defaultRpId, defaultSessionStore, defaultSharesStore, deleteBeatsWrite, deleteRegister, deriveAesKeyFromPassphrase, deriveBitsHkdf, deriveIdentity, deriveIdentityFromSeed, deriveMasterSeedFromPassword, deserialize, deviceFingerprint, deviceIdentityIsEphemeral, deviceIdentityKey, dirKey, ejectAgentPrompt, ejectAgentTools, emptyMap, emptyRegister, encodeToHex, encryptAesGcm, evaluatePasskeyPrf, exportPublicKeyBase64, exportPublicKeyHex, formatUserCode, fromBase64$2 as fromBase64, fromBase64Url, fromHex, generateAuthProof, generateChecksum, generateDevicePairingKeypair, generateId, generatePkce, getIPAddress, getId, getMuhkooAppDescriptor, getSubtle, guestRecoveryCode, guestRecoveryOf, hasDeviceIdentity, headKey, historyKey, initBn128Wasm, initRsWasm, initializeCircuits, isNewer, isNumber, isOfflineCapable, isP2pCapable, isProvisional, isSameOriginPath, loadDeviceIdentity, log, manifestToStat, materializeRow, memorySharesStore, merge3, merge3Text, mergeKey, mergeMap, mergeMessage, mergeRegister, messageKey, newPasswordVerifier, objectKey, pack, padHandle, pairingVerificationCode, parseGuestRecoveryCode, passkeyPrfCapable, passkeySupported, passkeyUsableFromOrigin, passwordProof, persistDeviceIdentity, poseidonHash, protocol, provisionalHandle, quickVerify, randomBytes, randomState, refKey, refsIndexKey, rpIdUsableForOrigin, sealSeed, sealSeedToDevice, serialize, shardHash, shareErrorFrom, signMessage, stableStringify, toBase64$2 as toBase64, toBase64Url, toField, toHex, tombstoneRow, unpack, unsealSeed, unsealSeedFromDevice, unwrapWithPassphrase, utf8Decode, utf8Encode, verify, verifyChecksum, verifyGroth16, verifyHashKnowledge, verifyPreimagePoK, wrapWithPassphrase, writeBeatsTombstone, writeColumns, writeRegister };
|
|
25840
|
+
export { ACCESS_TOKEN_SCOPES, AES_GCM_IV_BYTES$1 as AES_GCM_IV_BYTES, AES_GCM_KEY_BYTES, AES_GCM_TAG_BYTES$1 as AES_GCM_TAG_BYTES, AccessTokensNamespace, AdmissionDeniedError, AgentsNamespace, AppNamespace, AuthClient, AuthHttpError, AuthNamespace, AuthPublicInput, Authenticator, BlockEngine, BroadcastChannel, BroadcastChannelEvents, ChannelExistsError, ChannelNotFoundError, ChunkCipher, CircuitIntegrityError, Client, ConnectivityManager, DEFAULT_AUTH_BASE_URL, DEFAULT_BASE_URL, DEFAULT_BRANCH, DEFAULT_FN_HOST_SUFFIX, DEVICE_IDENTITY_STORAGE_KEY, DEVICE_KEY_DB_NAME, DbCache, DbNamespace, DbTable, DevicePairingError, DeviceRevokedError, DeviceStoreUnavailableError, DoubleRatchet, DoubleRatchetCipher, DoubleRatchetManager, EncryptedSession, EventCore, EventCoreEvents, Field, Field as FieldElement, FileStorage, FunctionsNamespace, GoogleNotLinkedError, GuestLoginConflictError, HLC, HashKnowledge, HostedAuth, HttpClient, HttpError, IdentityLockedError, IdentityUnavailableError, IndexedDbStore, InvalidRecoveryCodeError, KEEPER_MEMBER_ID$1 as KEEPER_MEMBER_ID, KeyStore, KeyringClient, KeyringHttpError, KvCache, KvNamespace, LocalEngineHost, LocalStorageSessionStore, Logger, MAX_SHARE_SUCCESSOR_HOPS, MemorySessionStore, Message, Message as MessageDefault, MessageNamespace, MuhkooAgent, MuhkooDB, MuhkooFunction, MuhkooSpace, NOT_MEMBER_CLOSE_CODE, NOT_MEMBER_RECHECK_MS, NoopStore, OfflineLockedError, OfflineManager, OutboundQueue, P2P_SUBJECT, PAIRING_CODE_ALPHABET, PAIRING_CODE_LENGTH, PBKDF2_DEFAULT_ITERATIONS, PINNED_CIRCUIT_DIGESTS, PREIMAGE_POK_VERIFICATION_KEY, Packet, PasskeyOriginError, PaymentRequiredError, PeerExchange, PeerNetwork, PersonalSpaceClient, Poseidon, PreimagePoK, ROOT_ID, Ready, ReauthRequiredError, ReedSolomonCodec, Repo, Retry, Space as Room, RotationInProgressError, RotationIncompleteError, RotationMismatchError, SHARE_DIR_TYPE, SHARE_GUEST_DEVICE_LABEL, SHARE_PASSWORD_ITERATIONS, SerializeMessage, SessionState, ShardCache, ShardClient, Share, ShareClosedError, ShareFullError, ShareMemberLimitError, SharePasswordError, SharePasswordRateError, ShareSpaceNotEmptyError, ShareSpaceNotReadyError, SharedSpaceClient, SharesClient, SharesNamespace, SnapshotNamespace, Space, SpaceCache, SpaceKeyring, SpaceNamespace, SpacePacketCipher, SpaceSignaler, SpaceTrustError, StorageNamespace, SyncEngine, VERSION, VFS_ROOT_INFO, VaultProtocolMismatchError, VaultUnavailableError, VcsError, VcsNamespace, VectorCollection, VectorCollectionFailedError, VectorWaitTimeoutError, VectorsNamespace, VfsConflictError, VfsCorruptRecordError, VfsLimitError, VfsLockedError, VfsNamespace, VfsNotFoundError, WSTransport, WebRtcTransport, WorkerEngineHost, ZERO_HLC, ZkAuth, _accountId, _formatBytes, _messageId, _objectId, _packetId, _socketId, _userId, appLogger$1 as appLogger, assertType, base58Decode, base58Encode, buildCommitment, canonicalUserCode, clearDeviceIdentity, compareHlc, compilePrograms, concatBytes$1 as concatBytes, configureDeviceStore, createPasskeyWithPrf, decodeFromHex, decorators, decryptAesGcm, defaultCircuitUrls, defaultRpId, defaultSessionStore, defaultSharesStore, deleteBeatsWrite, deleteRegister, deriveAesKeyFromPassphrase, deriveBitsHkdf, deriveIdentity, deriveIdentityFromSeed, deriveMasterSeedFromPassword, deserialize, deviceFingerprint, deviceIdentityIsEphemeral, deviceIdentityKey, dirKey, ejectAgentPrompt, ejectAgentTools, emptyMap, emptyRegister, encodeToHex, encryptAesGcm, evaluatePasskeyPrf, exportPublicKeyBase64, exportPublicKeyHex, formatUserCode, fromBase64$2 as fromBase64, fromBase64Url, fromHex, generateAuthProof, generateChecksum, generateDevicePairingKeypair, generateId, generatePkce, getIPAddress, getId, getMuhkooAppDescriptor, getSubtle, guestRecoveryCode, guestRecoveryOf, hasDeviceIdentity, headKey, historyKey, initBn128Wasm, initRsWasm, initializeCircuits, isNewer, isNumber, isOfflineCapable, isP2pCapable, isProvisional, isSameOriginPath, loadDeviceIdentity, log, manifestToStat, materializeRow, memorySharesStore, merge3, merge3Text, mergeKey, mergeMap, mergeMessage, mergeRegister, messageKey, newPasswordVerifier, objectKey, pack, padHandle, pairingVerificationCode, parseGuestRecoveryCode, passkeyPrfCapable, passkeySupported, passkeyUsableFromOrigin, passwordProof, persistDeviceIdentity, poseidonHash, protocol, provisionalHandle, quickVerify, randomBytes, randomState, refKey, refsIndexKey, rpIdUsableForOrigin, sealSeed, sealSeedToDevice, serialize, shardHash, shareErrorFrom, signMessage, stableStringify, toBase64$2 as toBase64, toBase64Url, toField, toHex, tombstoneRow, unpack, unsealSeed, unsealSeedFromDevice, unwrapWithPassphrase, utf8Decode, utf8Encode, verify, verifyChecksum, verifyGroth16, verifyHashKnowledge, verifyPreimagePoK, wrapWithPassphrase, writeBeatsTombstone, writeColumns, writeRegister };
|
|
25498
25841
|
//# sourceMappingURL=index.js.map
|