@feltdb/core 0.7.0 → 0.7.1
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 +5 -1
- package/dist/create/package-versions.js +1 -1
- package/dist/create/server-source/crates/feltdb/src/lib.rs +30 -20
- package/dist/create/server-source/crates/feltdb/src/transaction_preconditions.rs +43 -11
- package/dist/create/server-source/crates/feltdb-server/src/main.rs +10 -8
- package/dist/embedded-transaction.d.ts.map +1 -1
- package/dist/embedded-transaction.js +14 -8
- package/dist/studio-app/assets/{feltdb_wasm-CD744e5D.js → feltdb_wasm-C9xpYtna.js} +1 -1
- package/dist/studio-app/assets/feltdb_wasm_bg-BsXHw7eX.wasm +0 -0
- package/dist/studio-app/assets/{index-DoROs8yx.js → index-sQyf4Ewl.js} +1 -1
- package/dist/studio-app/index.html +1 -1
- package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
- package/package.json +1 -1
- package/dist/studio-app/assets/feltdb_wasm_bg-CiIXhOLi.wasm +0 -0
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ across tabs through `BroadcastChannel` when available.
|
|
|
77
77
|
|
|
78
78
|
## Atomic conditional transactions
|
|
79
79
|
|
|
80
|
-
Core 0.7.
|
|
80
|
+
Core 0.7.1 can fence a multi-record transaction on the exact version read by
|
|
81
81
|
the caller. The transaction either commits every operation or writes nothing:
|
|
82
82
|
|
|
83
83
|
```typescript
|
|
@@ -107,6 +107,10 @@ Reusing a successful `transactionId` safely replays its result without
|
|
|
107
107
|
advancing record versions twice. This API requires a FeltDB authority that
|
|
108
108
|
supports transaction-level `ifVersion` preconditions.
|
|
109
109
|
|
|
110
|
+
A write with `requireAbsent: true` is an atomic create. The authority assigns
|
|
111
|
+
it `__version: 1`—overriding any caller-supplied version—so it can immediately
|
|
112
|
+
be updated with `ifVersion: 1`.
|
|
113
|
+
|
|
110
114
|
## Durable Operation Management
|
|
111
115
|
|
|
112
116
|
FeltDB provides atomic operation admission and lifecycle management for systems that need to survive process crashes with guaranteed identity stability.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// One release train keeps generated applications installable. The repository
|
|
2
2
|
// validation script checks these values against every workspace manifest.
|
|
3
|
-
export const FELTDB_PACKAGE_VERSION = '0.
|
|
3
|
+
export const FELTDB_PACKAGE_VERSION = '0.7.1';
|
|
4
4
|
export const feltdbPackageRange = `^${FELTDB_PACKAGE_VERSION}`;
|
|
@@ -1175,18 +1175,27 @@ impl FeltDb {
|
|
|
1175
1175
|
}
|
|
1176
1176
|
}
|
|
1177
1177
|
|
|
1178
|
-
// Every precondition held.
|
|
1179
|
-
//
|
|
1180
|
-
// the authority validated version N above and writes N + 1 here,
|
|
1181
|
-
// inside the same lock, so the check and the advance cannot be
|
|
1182
|
-
// separated by another writer.
|
|
1178
|
+
// Every precondition held. The authority owns both ends of the
|
|
1179
|
+
// public document-version lifecycle inside this lock:
|
|
1183
1180
|
//
|
|
1184
|
-
//
|
|
1185
|
-
//
|
|
1186
|
-
//
|
|
1187
|
-
//
|
|
1181
|
+
// - a create protected by `requireAbsent` writes version 1;
|
|
1182
|
+
// - a write fenced by `expected_version = N` writes N + 1.
|
|
1183
|
+
//
|
|
1184
|
+
// An unconditional write remains verbatim, and a guard-only
|
|
1185
|
+
// precondition writes nothing. See
|
|
1188
1186
|
// docs/architecture/transaction-version-contract.md.
|
|
1189
|
-
let
|
|
1187
|
+
let advanced: Vec<AtomicMutation>;
|
|
1188
|
+
let creates: HashSet<(&str, &str)> = preconditions
|
|
1189
|
+
.iter()
|
|
1190
|
+
.filter(|condition| condition.expected_version.is_none())
|
|
1191
|
+
.map(|condition| (condition.capability.as_str(), condition.key.as_str()))
|
|
1192
|
+
.chain(
|
|
1193
|
+
record_preconditions
|
|
1194
|
+
.iter()
|
|
1195
|
+
.filter(|condition| condition.require_absent)
|
|
1196
|
+
.map(|condition| (condition.capability.as_str(), condition.key.as_str())),
|
|
1197
|
+
)
|
|
1198
|
+
.collect();
|
|
1190
1199
|
let fenced: HashMap<(&str, &str), u64> = record_preconditions
|
|
1191
1200
|
.iter()
|
|
1192
1201
|
.filter_map(|condition| {
|
|
@@ -1195,15 +1204,19 @@ impl FeltDb {
|
|
|
1195
1204
|
.map(|version| ((condition.capability.as_str(), condition.key.as_str()), version))
|
|
1196
1205
|
})
|
|
1197
1206
|
.collect();
|
|
1198
|
-
let mutations: &[AtomicMutation] = if fenced.is_empty() {
|
|
1207
|
+
let mutations: &[AtomicMutation] = if fenced.is_empty() && creates.is_empty() {
|
|
1199
1208
|
mutations
|
|
1200
1209
|
} else {
|
|
1201
1210
|
advanced = mutations
|
|
1202
1211
|
.iter()
|
|
1203
1212
|
.map(|mutation| {
|
|
1204
|
-
let
|
|
1205
|
-
|
|
1206
|
-
|
|
1213
|
+
let record = (mutation.capability.as_str(), mutation.key.as_str());
|
|
1214
|
+
let version = if creates.contains(&record) {
|
|
1215
|
+
Some(1)
|
|
1216
|
+
} else {
|
|
1217
|
+
fenced.get(&record).map(|expected| expected + 1)
|
|
1218
|
+
};
|
|
1219
|
+
let Some(version) = version else {
|
|
1207
1220
|
return mutation.clone();
|
|
1208
1221
|
};
|
|
1209
1222
|
// A delete has no record left to carry a version, so a
|
|
@@ -1212,12 +1225,9 @@ impl FeltDb {
|
|
|
1212
1225
|
return mutation.clone();
|
|
1213
1226
|
};
|
|
1214
1227
|
let mut fields = fields;
|
|
1215
|
-
// The
|
|
1216
|
-
//
|
|
1217
|
-
|
|
1218
|
-
// because a caller that computes a different next
|
|
1219
|
-
// version must not be able to install it.
|
|
1220
|
-
fields.insert("__version".to_string(), Value::from(expected + 1));
|
|
1228
|
+
// The caller cannot manufacture either the initial or
|
|
1229
|
+
// next authoritative version.
|
|
1230
|
+
fields.insert("__version".to_string(), Value::from(version));
|
|
1221
1231
|
AtomicMutation {
|
|
1222
1232
|
capability: mutation.capability.clone(),
|
|
1223
1233
|
key: mutation.key.clone(),
|
|
@@ -28,12 +28,9 @@
|
|
|
28
28
|
//! different numbers that happen to share a name, and fencing on the wrong one
|
|
29
29
|
//! would compare a caller's value against something the caller never sees.
|
|
30
30
|
//!
|
|
31
|
-
//!
|
|
32
|
-
//!
|
|
33
|
-
//!
|
|
34
|
-
//! other must advance `__version` in the value it writes. That is asserted
|
|
35
|
-
//! below rather than assumed, because a fence that silently stops fencing is
|
|
36
|
-
//! worse than no fence.
|
|
31
|
+
//! The authority owns conditional transaction versions: `requireAbsent`
|
|
32
|
+
//! creates version 1 and a version-fenced write of N stores N + 1. Both happen
|
|
33
|
+
//! inside the same lock as validation. Unconditional writes remain verbatim.
|
|
37
34
|
|
|
38
35
|
#[cfg(test)]
|
|
39
36
|
mod tests {
|
|
@@ -401,6 +398,7 @@ mod tests {
|
|
|
401
398
|
guarded(&db, "tx-new", &[absent("fresh")], &[set("cells", "fresh", json!({ "id": "fresh" }))])
|
|
402
399
|
.expect("absent record commits");
|
|
403
400
|
assert!(present(&db, "cells", "fresh"));
|
|
401
|
+
assert_eq!(version_of(&db, "cells", "fresh"), 1);
|
|
404
402
|
|
|
405
403
|
let error = guarded(
|
|
406
404
|
&db,
|
|
@@ -807,9 +805,7 @@ mod tests {
|
|
|
807
805
|
}
|
|
808
806
|
|
|
809
807
|
#[test]
|
|
810
|
-
fn
|
|
811
|
-
// Insert remains the client's: Collection.insert supplies __version 1,
|
|
812
|
-
// which is where record versioning begins.
|
|
808
|
+
fn a_transaction_create_gets_authority_version_one_and_can_be_fenced_immediately() {
|
|
813
809
|
let dir = TempDir::new().unwrap();
|
|
814
810
|
let db = db(&dir);
|
|
815
811
|
|
|
@@ -817,10 +813,19 @@ mod tests {
|
|
|
817
813
|
&db,
|
|
818
814
|
"tx-insert",
|
|
819
815
|
&[RecordPrecondition { require_absent: true, ..precondition("cells", "new") }],
|
|
820
|
-
&[set("cells", "new", json!({ "id": "new", "__version":
|
|
816
|
+
&[set("cells", "new", json!({ "id": "new", "__version": 999, "state": "created" }))],
|
|
821
817
|
)
|
|
822
818
|
.expect("commits");
|
|
823
|
-
assert_eq!(version_of(&db, "cells", "new"), 1, "the
|
|
819
|
+
assert_eq!(version_of(&db, "cells", "new"), 1, "the authority owns the initial version");
|
|
820
|
+
|
|
821
|
+
guarded(
|
|
822
|
+
&db,
|
|
823
|
+
"tx-update-new",
|
|
824
|
+
&[expect_version("cells", "new", 1)],
|
|
825
|
+
&[set("cells", "new", json!({ "id": "new", "state": "updated" }))],
|
|
826
|
+
)
|
|
827
|
+
.expect("the newly created version can be fenced immediately");
|
|
828
|
+
assert_eq!(version_of(&db, "cells", "new"), 2);
|
|
824
829
|
|
|
825
830
|
let missing = guarded(
|
|
826
831
|
&db,
|
|
@@ -834,6 +839,33 @@ mod tests {
|
|
|
834
839
|
);
|
|
835
840
|
}
|
|
836
841
|
|
|
842
|
+
#[test]
|
|
843
|
+
fn replayed_conditional_create_does_not_create_or_advance_twice() {
|
|
844
|
+
let dir = TempDir::new().unwrap();
|
|
845
|
+
let db = db(&dir);
|
|
846
|
+
let absent = RecordPrecondition { require_absent: true, ..precondition("cells", "new") };
|
|
847
|
+
|
|
848
|
+
let first = guarded(
|
|
849
|
+
&db,
|
|
850
|
+
"tx-create-once",
|
|
851
|
+
&[absent.clone()],
|
|
852
|
+
&[set("cells", "new", json!({ "id": "new", "delivery": 1 }))],
|
|
853
|
+
)
|
|
854
|
+
.expect("first delivery commits");
|
|
855
|
+
assert!(!first.duplicate);
|
|
856
|
+
|
|
857
|
+
let replay = guarded(
|
|
858
|
+
&db,
|
|
859
|
+
"tx-create-once",
|
|
860
|
+
&[absent],
|
|
861
|
+
&[set("cells", "new", json!({ "id": "new", "delivery": 2 }))],
|
|
862
|
+
)
|
|
863
|
+
.expect("replay returns the original transaction result");
|
|
864
|
+
assert!(replay.duplicate);
|
|
865
|
+
assert_eq!(version_of(&db, "cells", "new"), 1);
|
|
866
|
+
assert_eq!(field(&db, "cells", "new", "delivery"), 1);
|
|
867
|
+
}
|
|
868
|
+
|
|
837
869
|
#[test]
|
|
838
870
|
fn replay_of_a_fenced_transaction_does_not_advance_twice() {
|
|
839
871
|
let dir = TempDir::new().unwrap();
|
|
@@ -41,7 +41,7 @@ use feltdb::{
|
|
|
41
41
|
Grant, GrantSigner, GrantStore, Subject as GrantSubject,
|
|
42
42
|
},
|
|
43
43
|
cardinality_endpoint::{CardinalityContext, CardinalityDiagnosticResponse},
|
|
44
|
-
AtomicMutation,
|
|
44
|
+
AtomicMutation,
|
|
45
45
|
policy_evaluation::{Actor, PolicyContext, PolicyEvaluator, PolicySubject},
|
|
46
46
|
state_contract::{
|
|
47
47
|
begin_read, compare_schemas, execute_query as execute_state_query, execute_transaction,
|
|
@@ -9134,7 +9134,6 @@ async fn commit_transaction(
|
|
|
9134
9134
|
// Validate every operation before any of them is turned into a mutation, so
|
|
9135
9135
|
// a malformed request cannot commit a prefix of the transaction.
|
|
9136
9136
|
let mut mutations = Vec::with_capacity(request.operations.len());
|
|
9137
|
-
let mut preconditions = Vec::new();
|
|
9138
9137
|
let mut record_preconditions: Vec<RecordPrecondition> = Vec::new();
|
|
9139
9138
|
let mut seen = std::collections::HashSet::new();
|
|
9140
9139
|
|
|
@@ -9173,14 +9172,17 @@ async fn commit_transaction(
|
|
|
9173
9172
|
));
|
|
9174
9173
|
}
|
|
9175
9174
|
if operation.require_absent {
|
|
9176
|
-
//
|
|
9177
|
-
//
|
|
9178
|
-
//
|
|
9179
|
-
// the
|
|
9180
|
-
|
|
9175
|
+
// Use the public record-precondition path so a lost creation race
|
|
9176
|
+
// is both evaluated under the store lock and returned as a
|
|
9177
|
+
// structured presence conflict. The same condition tells the
|
|
9178
|
+
// authority to assign document version 1 to the created value.
|
|
9179
|
+
record_preconditions.push(RecordPrecondition {
|
|
9181
9180
|
capability: operation.collection.clone(),
|
|
9182
9181
|
key: key.clone(),
|
|
9182
|
+
require_absent: true,
|
|
9183
9183
|
expected_version: None,
|
|
9184
|
+
expected_epoch: None,
|
|
9185
|
+
expected_lease_id: None,
|
|
9184
9186
|
});
|
|
9185
9187
|
}
|
|
9186
9188
|
// A guard attached to a staged write. Previously declared by the
|
|
@@ -9216,7 +9218,7 @@ async fn commit_transaction(
|
|
|
9216
9218
|
&request.transaction_id,
|
|
9217
9219
|
None,
|
|
9218
9220
|
None,
|
|
9219
|
-
&
|
|
9221
|
+
&[],
|
|
9220
9222
|
&record_preconditions,
|
|
9221
9223
|
&mutations,
|
|
9222
9224
|
None,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded-transaction.d.ts","sourceRoot":"","sources":["../src/embedded-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAEV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,6DAA6D;AAC7D,MAAM,WAAW,wBAAwB;IACvC,yCAAyC;IACzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,8DAA8D;IAC9D,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3C;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC;AAErD,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhE;AAID;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,
|
|
1
|
+
{"version":3,"file":"embedded-transaction.d.ts","sourceRoot":"","sources":["../src/embedded-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAEV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,6DAA6D;AAC7D,MAAM,WAAW,wBAAwB;IACvC,yCAAyC;IACzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,8DAA8D;IAC9D,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3C;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC;AAErD,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhE;AAID;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAgJd;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,wBAAwB,EACjC,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,uBAAuB,CAQzB;AAED,iEAAiE;AACjE,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,MAAM,EAAE,MAAM;CAI3B"}
|
|
@@ -151,21 +151,27 @@ export function decideTransaction(request, state) {
|
|
|
151
151
|
if (operation.requireAbsent && state.exists(key)) {
|
|
152
152
|
return { kind: 'reject', reason: `PRECONDITION_FAILED:${key}:record already exists` };
|
|
153
153
|
}
|
|
154
|
-
// A
|
|
155
|
-
//
|
|
156
|
-
//
|
|
157
|
-
//
|
|
158
|
-
//
|
|
154
|
+
// A requireAbsent create begins the authority-owned version lifecycle at
|
|
155
|
+
// 1. A write fenced by expectedVersion is validated at N and written at
|
|
156
|
+
// N + 1. Both are resolved in the same decision the runtime applies
|
|
157
|
+
// atomically. An unconditional write remains verbatim, and a delete has no
|
|
158
|
+
// record left to carry a version.
|
|
159
159
|
//
|
|
160
160
|
// The value the caller supplied for __version is replaced rather than
|
|
161
161
|
// honoured, because a caller that computes a different next version must
|
|
162
162
|
// not be able to install it.
|
|
163
163
|
// See docs/architecture/transaction-version-contract.md.
|
|
164
|
+
const guardedCreate = operation.requireAbsent === true
|
|
165
|
+
|| guards.some(guard => guard.requireAbsent === true
|
|
166
|
+
&& guard.collection === operation.collection
|
|
167
|
+
&& String(guard.id) === operation.id);
|
|
164
168
|
const value = operation.value === undefined
|
|
165
169
|
? undefined
|
|
166
|
-
:
|
|
167
|
-
? { ...operation.value, id: operation.id }
|
|
168
|
-
:
|
|
170
|
+
: guardedCreate
|
|
171
|
+
? { ...operation.value, id: operation.id, __version: 1 }
|
|
172
|
+
: operation.expectedVersion === undefined
|
|
173
|
+
? { ...operation.value, id: operation.id }
|
|
174
|
+
: { ...operation.value, id: operation.id, __version: operation.expectedVersion + 1 };
|
|
169
175
|
mutations.push({
|
|
170
176
|
key,
|
|
171
177
|
collection: operation.collection,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,T.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,T.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_jsdb_free(e,0)}acknowledge_peer_operations(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=U.jsdb_acknowledge_peer_operations(this.__wbg_ptr,r,i,n);return t.__wrap(a)}add_sync_peer(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_add_sync_peer(this.__wbg_ptr,n,r);return t.__wrap(i)}delete(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_delete(this.__wbg_ptr,n,r);return t.__wrap(i)}execute_canonical_query(e,n,r,i){let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H,l=F(r,U.__wbindgen_malloc,U.__wbindgen_realloc),u=H,d=F(i,U.__wbindgen_malloc,U.__wbindgen_realloc),f=H,p=U.jsdb_execute_canonical_query(this.__wbg_ptr,a,o,s,c,l,u,d,f);return t.__wrap(p)}execute_canonical_transaction(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.jsdb_execute_canonical_transaction(this.__wbg_ptr,r,i,a,o);return t.__wrap(s)}get(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_get(this.__wbg_ptr,n,r);return t.__wrap(i)}get_capability_records(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_get_capability_records(this.__wbg_ptr,n,r);return t.__wrap(i)}get_pending_for_peer(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=U.jsdb_get_pending_for_peer(this.__wbg_ptr,r,i,n);return t.__wrap(a)}get_sequence(){let e=U.jsdb_get_sequence(this.__wbg_ptr);return BigInt.asUintN(64,e)}insert(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.jsdb_insert(this.__wbg_ptr,r,i,a,o);return t.__wrap(s)}instance_id(){let e,t;try{let n=U.jsdb_instance_id(this.__wbg_ptr);return e=n[0],t=n[1],j(n[0],n[1])}finally{U.__wbindgen_free(e,t,1)}}is_auto_indexed(){return U.jsdb_is_auto_indexed(this.__wbg_ptr)!==0}query(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_query(this.__wbg_ptr,n,r);return t.__wrap(i)}remove_sync_peer(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_remove_sync_peer(this.__wbg_ptr,n,r);return t.__wrap(i)}sync_info(){let e=U.jsdb_sync_info(this.__wbg_ptr);return t.__wrap(e)}update(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.jsdb_update(this.__wbg_ptr,r,i,a,o);return t.__wrap(s)}};Symbol.dispose&&(e.prototype[Symbol.dispose]=e.prototype.free);var t=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,E.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,E.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_jsresult_free(e,0)}get data(){let e=U.jsresult_data(this.__wbg_ptr),t;return e[0]!==0&&(t=j(e[0],e[1]),U.__wbindgen_free(e[0],e[1]*1,1)),t}get error(){let e=U.jsresult_error(this.__wbg_ptr),t;return e[0]!==0&&(t=j(e[0],e[1]),U.__wbindgen_free(e[0],e[1]*1,1)),t}get success(){return U.jsresult_success(this.__wbg_ptr)!==0}};Symbol.dispose&&(t.prototype[Symbol.dispose]=t.prototype.free);var n=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,D.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_wasmanalytics_free(e,0)}generate_report(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.wasmanalytics_generate_report(this.__wbg_ptr,o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}get_all_metrics(){let e,t;try{let i=U.wasmanalytics_get_all_metrics(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}get_frequent_fields(e){let t,n;try{let a=U.wasmanalytics_get_frequent_fields(this.__wbg_ptr,e);var r=a[0],i=a[1];if(a[3])throw r=0,i=0,I(a[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_index_metrics(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmanalytics_get_index_metrics(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_slowest_queries(e){let t,n;try{let a=U.wasmanalytics_get_slowest_queries(this.__wbg_ptr,e);var r=a[0],i=a[1];if(a[3])throw r=0,i=0,I(a[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}constructor(){let e=U.wasmanalytics_new();return this.__wbg_ptr=e,D.register(this,this.__wbg_ptr,this),this}record_index_usage(e,t,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H;U.wasmanalytics_record_index_usage(this.__wbg_ptr,r,i,a,o,n)}record_query(e,t,n,r,i,a){let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H;var u=P(a)?0:F(a,U.__wbindgen_malloc,U.__wbindgen_realloc),d=H;let f=U.wasmanalytics_record_query(this.__wbg_ptr,o,s,c,l,n,r,i,u,d);if(f[1])throw I(f[0])}reset(){U.wasmanalytics_reset(this.__wbg_ptr)}};Symbol.dispose&&(n.prototype[Symbol.dispose]=n.prototype.free);var r=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,O.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_wasmdistributedindexmanager_free(e,0)}create_replicated_index(e,t,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H,l=U.wasmdistributedindexmanager_create_replicated_index(this.__wbg_ptr,r,i,a,o,s,c);if(l[1])throw I(l[0])}detect_conflicts(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmdistributedindexmanager_detect_conflicts(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_replication_status(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmdistributedindexmanager_get_replication_status(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_replication_targets(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmdistributedindexmanager_get_replication_targets(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_sync_status(){let e,t;try{let i=U.wasmdistributedindexmanager_get_sync_status(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}merge_versions(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.wasmdistributedindexmanager_merge_versions(this.__wbg_ptr,t,n);if(r[1])throw I(r[0])}constructor(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.wasmdistributedindexmanager_new(t,n);return this.__wbg_ptr=r,O.register(this,this.__wbg_ptr,this),this}register_peer(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H;U.wasmdistributedindexmanager_register_peer(this.__wbg_ptr,t,n)}set_peer_reachable(e,t){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H;U.wasmdistributedindexmanager_set_peer_reachable(this.__wbg_ptr,n,r,t)}};Symbol.dispose&&(r.prototype[Symbol.dispose]=r.prototype.free);var i=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,k.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_wasmindexmanager_free(e,0)}create_index(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.wasmindexmanager_create_index(this.__wbg_ptr,t,n);if(r[1])throw I(r[0])}get_stats(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmindexmanager_get_stats(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}list_indexes(){let e,t;try{let i=U.wasmindexmanager_list_indexes(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}constructor(){let e=U.wasmindexmanager_new();return this.__wbg_ptr=e,k.register(this,this.__wbg_ptr,this),this}query_index(e,t,n){let r,i;try{let s=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H,l=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),u=H,d=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),f=H,p=U.wasmindexmanager_query_index(this.__wbg_ptr,s,c,l,u,d,f);var a=p[0],o=p[1];if(p[3])throw a=0,o=0,I(p[2]);return r=a,i=o,j(a,o)}finally{U.__wbindgen_free(r,i,1)}}update_record(e,t,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H;var a=P(t)?0:F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H;let s=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H,l=U.wasmindexmanager_update_record(this.__wbg_ptr,r,i,a,o,s,c);if(l[1])throw I(l[0])}};Symbol.dispose&&(i.prototype[Symbol.dispose]=i.prototype.free);var a=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,A.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_wasmshardmanager_free(e,0)}detect_hotspots(){let e,t;try{let i=U.wasmshardmanager_detect_hotspots(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}generate_rebalance_ops(){let e,t;try{let i=U.wasmshardmanager_generate_rebalance_ops(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}get_all_metrics(){let e,t;try{let i=U.wasmshardmanager_get_all_metrics(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}get_distribution_summary(){let e,t;try{let i=U.wasmshardmanager_get_distribution_summary(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}get_shard_for_key(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmshardmanager_get_shard_for_key(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}initialize_shards(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.wasmshardmanager_initialize_shards(this.__wbg_ptr,t,n);if(r[1])throw I(r[0])}constructor(e,t){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H,o=U.wasmshardmanager_new(n,r,i,a);return this.__wbg_ptr=o,A.register(this,this.__wbg_ptr,this),this}record_shard_operation(e,t,n,r,i){let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H;U.wasmshardmanager_record_shard_operation(this.__wbg_ptr,a,o,s,c,n,r,i)}};Symbol.dispose&&(a.prototype[Symbol.dispose]=a.prototype.free);function o(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.apply_sync_result(o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}function s(e,t,n,r,i,a){let o,s;try{let u=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),d=H,f=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),p=H,m=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),h=H,g=F(r,U.__wbindgen_malloc,U.__wbindgen_realloc),_=H,v=F(i,U.__wbindgen_malloc,U.__wbindgen_realloc),y=H,b=F(a,U.__wbindgen_malloc,U.__wbindgen_realloc),x=H,S=U.authorize_offline(u,d,f,p,m,h,g,_,v,y,b,x);var c=S[0],l=S[1];if(S[3])throw c=0,l=0,I(S[2]);return o=c,s=l,j(c,l)}finally{U.__wbindgen_free(o,s,1)}}function c(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.canonical_bundle_hash(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function l(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.canonicalize_application_manifest(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function u(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.compare_state_schemas(o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}function d(e,t){let n,r;try{var i=P(e)?0:F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H;let c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.diff_application_revisions(i,a,c,l);var o=u[0],s=u[1];if(u[3])throw o=0,s=0,I(u[2]);return n=o,r=s,j(o,s)}finally{U.__wbindgen_free(n,r,1)}}function f(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.hash_application_manifest(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function p(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.hash_application_runtime(o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}function m(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.hash_state_schema(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function h(t){let n=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.open(n,r);if(i[2])throw I(i[1]);return e.__wrap(i[0])}function g(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.resolve_application_runtime(o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}function _(e,t,n,r){let i=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H,o=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.validate_mesh_claim(i,a,o,s,c,l,r);if(u[1])throw I(u[0])}function v(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.validate_state_schema(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function y(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.validate_sync_operation(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function b(e,t){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H,o=U.validate_worker_transition(n,r,i,a);if(o[2])throw I(o[1]);return o[0]!==0}function x(e,t){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H,o=U.validate_workload_transition(n,r,i,a);if(o[2])throw I(o[1]);return o[0]!==0}function S(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.verify_bundle_integrity(t,n);if(r[2])throw I(r[1]);return r[0]!==0}function C(e,t,n,r,i,a){let o,s;try{let u=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),d=H,f=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),p=H,m=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),h=H,g=F(r,U.__wbindgen_malloc,U.__wbindgen_realloc),_=H,v=F(i,U.__wbindgen_malloc,U.__wbindgen_realloc),y=H,b=F(a,U.__wbindgen_malloc,U.__wbindgen_realloc),x=H,S=U.verify_signed_grant(u,d,f,p,m,h,g,_,v,y,b,x);var c=S[0],l=S[1];if(S[3])throw c=0,l=0,I(S[2]);return o=c,s=l,j(c,l)}finally{U.__wbindgen_free(o,s,1)}}function w(){return{__proto__:null,"./feltdb_wasm_bg.js":{__proto__:null,__wbg___wbindgen_throw_bb96b2010945f0bc:function(e,t){throw Error(j(e,t))},__wbindgen_cast_0000000000000001:function(e,t){return j(e,t)},__wbindgen_init_externref_table:function(){let e=U.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}var T=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_jsdb_free(e,1)),E=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_jsresult_free(e,1)),D=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_wasmanalytics_free(e,1)),O=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_wasmdistributedindexmanager_free(e,1)),k=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_wasmindexmanager_free(e,1)),A=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_wasmshardmanager_free(e,1));function j(e,t){return B(e>>>0,t)}var M=null;function N(){return(M===null||M.byteLength===0)&&(M=new Uint8Array(U.memory.buffer)),M}function P(e){return e==null}function F(e,t,n){if(n===void 0){let n=V.encode(e),r=t(n.length,1)>>>0;return N().subarray(r,r+n.length).set(n),H=n.length,r}let r=e.length,i=t(r,1)>>>0,a=N(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=N().subarray(i+o,i+r),a=V.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return H=o,i}function I(e){let t=U.__wbindgen_externrefs.get(e);return U.__externref_table_dealloc(e),t}var L=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});L.decode();var R=2146435072,z=0;function B(e,t){return z+=t,z>=R&&(L=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),L.decode(),z=t),L.decode(N().subarray(e,e+t))}var V=new TextEncoder;`encodeInto`in V||(V.encodeInto=function(e,t){let n=V.encode(e);return t.set(n),{read:e.length,written:n.length}});var H=0,U;function W(e,t){return U=e.exports,M=null,U.__wbindgen_start(),U}async function G(e,t){if(typeof Response==`function`&&e instanceof Response){if(!e.ok)throw Error(`failed to fetch Wasm: ${e.status} ${e.statusText} fetching '${e.url}'`);if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}function K(e){if(U!==void 0)return U;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=w();return e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e)),W(new WebAssembly.Instance(e,t),e)}async function q(e){if(U!==void 0)return U;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),e===void 0&&(e=new URL(`/assets/feltdb_wasm_bg-CiIXhOLi.wasm`,``+import.meta.url));let t=w();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await G(await e,t);return W(n,r)}export{e as JsDb,t as JsResult,n as WasmAnalytics,r as WasmDistributedIndexManager,i as WasmIndexManager,a as WasmShardManager,o as apply_sync_result,s as authorize_offline,c as canonical_bundle_hash,l as canonicalize_application_manifest,u as compare_state_schemas,q as default,d as diff_application_revisions,f as hash_application_manifest,p as hash_application_runtime,m as hash_state_schema,K as initSync,h as open,g as resolve_application_runtime,_ as validate_mesh_claim,v as validate_state_schema,y as validate_sync_operation,b as validate_worker_transition,x as validate_workload_transition,S as verify_bundle_integrity,C as verify_signed_grant};
|
|
1
|
+
var e=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,T.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,T.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_jsdb_free(e,0)}acknowledge_peer_operations(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=U.jsdb_acknowledge_peer_operations(this.__wbg_ptr,r,i,n);return t.__wrap(a)}add_sync_peer(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_add_sync_peer(this.__wbg_ptr,n,r);return t.__wrap(i)}delete(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_delete(this.__wbg_ptr,n,r);return t.__wrap(i)}execute_canonical_query(e,n,r,i){let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H,l=F(r,U.__wbindgen_malloc,U.__wbindgen_realloc),u=H,d=F(i,U.__wbindgen_malloc,U.__wbindgen_realloc),f=H,p=U.jsdb_execute_canonical_query(this.__wbg_ptr,a,o,s,c,l,u,d,f);return t.__wrap(p)}execute_canonical_transaction(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.jsdb_execute_canonical_transaction(this.__wbg_ptr,r,i,a,o);return t.__wrap(s)}get(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_get(this.__wbg_ptr,n,r);return t.__wrap(i)}get_capability_records(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_get_capability_records(this.__wbg_ptr,n,r);return t.__wrap(i)}get_pending_for_peer(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=U.jsdb_get_pending_for_peer(this.__wbg_ptr,r,i,n);return t.__wrap(a)}get_sequence(){let e=U.jsdb_get_sequence(this.__wbg_ptr);return BigInt.asUintN(64,e)}insert(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.jsdb_insert(this.__wbg_ptr,r,i,a,o);return t.__wrap(s)}instance_id(){let e,t;try{let n=U.jsdb_instance_id(this.__wbg_ptr);return e=n[0],t=n[1],j(n[0],n[1])}finally{U.__wbindgen_free(e,t,1)}}is_auto_indexed(){return U.jsdb_is_auto_indexed(this.__wbg_ptr)!==0}query(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_query(this.__wbg_ptr,n,r);return t.__wrap(i)}remove_sync_peer(e){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.jsdb_remove_sync_peer(this.__wbg_ptr,n,r);return t.__wrap(i)}sync_info(){let e=U.jsdb_sync_info(this.__wbg_ptr);return t.__wrap(e)}update(e,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.jsdb_update(this.__wbg_ptr,r,i,a,o);return t.__wrap(s)}};Symbol.dispose&&(e.prototype[Symbol.dispose]=e.prototype.free);var t=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,E.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,E.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_jsresult_free(e,0)}get data(){let e=U.jsresult_data(this.__wbg_ptr),t;return e[0]!==0&&(t=j(e[0],e[1]),U.__wbindgen_free(e[0],e[1]*1,1)),t}get error(){let e=U.jsresult_error(this.__wbg_ptr),t;return e[0]!==0&&(t=j(e[0],e[1]),U.__wbindgen_free(e[0],e[1]*1,1)),t}get success(){return U.jsresult_success(this.__wbg_ptr)!==0}};Symbol.dispose&&(t.prototype[Symbol.dispose]=t.prototype.free);var n=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,D.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_wasmanalytics_free(e,0)}generate_report(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.wasmanalytics_generate_report(this.__wbg_ptr,o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}get_all_metrics(){let e,t;try{let i=U.wasmanalytics_get_all_metrics(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}get_frequent_fields(e){let t,n;try{let a=U.wasmanalytics_get_frequent_fields(this.__wbg_ptr,e);var r=a[0],i=a[1];if(a[3])throw r=0,i=0,I(a[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_index_metrics(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmanalytics_get_index_metrics(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_slowest_queries(e){let t,n;try{let a=U.wasmanalytics_get_slowest_queries(this.__wbg_ptr,e);var r=a[0],i=a[1];if(a[3])throw r=0,i=0,I(a[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}constructor(){let e=U.wasmanalytics_new();return this.__wbg_ptr=e,D.register(this,this.__wbg_ptr,this),this}record_index_usage(e,t,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H;U.wasmanalytics_record_index_usage(this.__wbg_ptr,r,i,a,o,n)}record_query(e,t,n,r,i,a){let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H;var u=P(a)?0:F(a,U.__wbindgen_malloc,U.__wbindgen_realloc),d=H;let f=U.wasmanalytics_record_query(this.__wbg_ptr,o,s,c,l,n,r,i,u,d);if(f[1])throw I(f[0])}reset(){U.wasmanalytics_reset(this.__wbg_ptr)}};Symbol.dispose&&(n.prototype[Symbol.dispose]=n.prototype.free);var r=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,O.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_wasmdistributedindexmanager_free(e,0)}create_replicated_index(e,t,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H,a=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H,l=U.wasmdistributedindexmanager_create_replicated_index(this.__wbg_ptr,r,i,a,o,s,c);if(l[1])throw I(l[0])}detect_conflicts(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmdistributedindexmanager_detect_conflicts(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_replication_status(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmdistributedindexmanager_get_replication_status(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_replication_targets(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmdistributedindexmanager_get_replication_targets(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}get_sync_status(){let e,t;try{let i=U.wasmdistributedindexmanager_get_sync_status(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}merge_versions(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.wasmdistributedindexmanager_merge_versions(this.__wbg_ptr,t,n);if(r[1])throw I(r[0])}constructor(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.wasmdistributedindexmanager_new(t,n);return this.__wbg_ptr=r,O.register(this,this.__wbg_ptr,this),this}register_peer(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H;U.wasmdistributedindexmanager_register_peer(this.__wbg_ptr,t,n)}set_peer_reachable(e,t){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H;U.wasmdistributedindexmanager_set_peer_reachable(this.__wbg_ptr,n,r,t)}};Symbol.dispose&&(r.prototype[Symbol.dispose]=r.prototype.free);var i=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,k.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_wasmindexmanager_free(e,0)}create_index(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.wasmindexmanager_create_index(this.__wbg_ptr,t,n);if(r[1])throw I(r[0])}get_stats(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmindexmanager_get_stats(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}list_indexes(){let e,t;try{let i=U.wasmindexmanager_list_indexes(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}constructor(){let e=U.wasmindexmanager_new();return this.__wbg_ptr=e,k.register(this,this.__wbg_ptr,this),this}query_index(e,t,n){let r,i;try{let s=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H,l=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),u=H,d=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),f=H,p=U.wasmindexmanager_query_index(this.__wbg_ptr,s,c,l,u,d,f);var a=p[0],o=p[1];if(p[3])throw a=0,o=0,I(p[2]);return r=a,i=o,j(a,o)}finally{U.__wbindgen_free(r,i,1)}}update_record(e,t,n){let r=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),i=H;var a=P(t)?0:F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H;let s=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H,l=U.wasmindexmanager_update_record(this.__wbg_ptr,r,i,a,o,s,c);if(l[1])throw I(l[0])}};Symbol.dispose&&(i.prototype[Symbol.dispose]=i.prototype.free);var a=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,A.unregister(this),e}free(){let e=this.__destroy_into_raw();U.__wbg_wasmshardmanager_free(e,0)}detect_hotspots(){let e,t;try{let i=U.wasmshardmanager_detect_hotspots(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}generate_rebalance_ops(){let e,t;try{let i=U.wasmshardmanager_generate_rebalance_ops(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}get_all_metrics(){let e,t;try{let i=U.wasmshardmanager_get_all_metrics(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}get_distribution_summary(){let e,t;try{let i=U.wasmshardmanager_get_distribution_summary(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,I(i[2]);return e=n,t=r,j(n,r)}finally{U.__wbindgen_free(e,t,1)}}get_shard_for_key(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.wasmshardmanager_get_shard_for_key(this.__wbg_ptr,a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}initialize_shards(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.wasmshardmanager_initialize_shards(this.__wbg_ptr,t,n);if(r[1])throw I(r[0])}constructor(e,t){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H,o=U.wasmshardmanager_new(n,r,i,a);return this.__wbg_ptr=o,A.register(this,this.__wbg_ptr,this),this}record_shard_operation(e,t,n,r,i){let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),c=H;U.wasmshardmanager_record_shard_operation(this.__wbg_ptr,a,o,s,c,n,r,i)}};Symbol.dispose&&(a.prototype[Symbol.dispose]=a.prototype.free);function o(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.apply_sync_result(o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}function s(e,t,n,r,i,a){let o,s;try{let u=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),d=H,f=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),p=H,m=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),h=H,g=F(r,U.__wbindgen_malloc,U.__wbindgen_realloc),_=H,v=F(i,U.__wbindgen_malloc,U.__wbindgen_realloc),y=H,b=F(a,U.__wbindgen_malloc,U.__wbindgen_realloc),x=H,S=U.authorize_offline(u,d,f,p,m,h,g,_,v,y,b,x);var c=S[0],l=S[1];if(S[3])throw c=0,l=0,I(S[2]);return o=c,s=l,j(c,l)}finally{U.__wbindgen_free(o,s,1)}}function c(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.canonical_bundle_hash(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function l(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.canonicalize_application_manifest(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function u(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.compare_state_schemas(o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}function d(e,t){let n,r;try{var i=P(e)?0:F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H;let c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.diff_application_revisions(i,a,c,l);var o=u[0],s=u[1];if(u[3])throw o=0,s=0,I(u[2]);return n=o,r=s,j(o,s)}finally{U.__wbindgen_free(n,r,1)}}function f(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.hash_application_manifest(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function p(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.hash_application_runtime(o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}function m(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.hash_state_schema(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function h(t){let n=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=U.open(n,r);if(i[2])throw I(i[1]);return e.__wrap(i[0])}function g(e,t){let n,r;try{let o=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.resolve_application_runtime(o,s,c,l);var i=u[0],a=u[1];if(u[3])throw i=0,a=0,I(u[2]);return n=i,r=a,j(i,a)}finally{U.__wbindgen_free(n,r,1)}}function _(e,t,n,r){let i=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H,o=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),s=H,c=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),l=H,u=U.validate_mesh_claim(i,a,o,s,c,l,r);if(u[1])throw I(u[0])}function v(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.validate_state_schema(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function y(e){let t,n;try{let a=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),o=H,s=U.validate_sync_operation(a,o);var r=s[0],i=s[1];if(s[3])throw r=0,i=0,I(s[2]);return t=r,n=i,j(r,i)}finally{U.__wbindgen_free(t,n,1)}}function b(e,t){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H,o=U.validate_worker_transition(n,r,i,a);if(o[2])throw I(o[1]);return o[0]!==0}function x(e,t){let n=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),r=H,i=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),a=H,o=U.validate_workload_transition(n,r,i,a);if(o[2])throw I(o[1]);return o[0]!==0}function S(e){let t=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),n=H,r=U.verify_bundle_integrity(t,n);if(r[2])throw I(r[1]);return r[0]!==0}function C(e,t,n,r,i,a){let o,s;try{let u=F(e,U.__wbindgen_malloc,U.__wbindgen_realloc),d=H,f=F(t,U.__wbindgen_malloc,U.__wbindgen_realloc),p=H,m=F(n,U.__wbindgen_malloc,U.__wbindgen_realloc),h=H,g=F(r,U.__wbindgen_malloc,U.__wbindgen_realloc),_=H,v=F(i,U.__wbindgen_malloc,U.__wbindgen_realloc),y=H,b=F(a,U.__wbindgen_malloc,U.__wbindgen_realloc),x=H,S=U.verify_signed_grant(u,d,f,p,m,h,g,_,v,y,b,x);var c=S[0],l=S[1];if(S[3])throw c=0,l=0,I(S[2]);return o=c,s=l,j(c,l)}finally{U.__wbindgen_free(o,s,1)}}function w(){return{__proto__:null,"./feltdb_wasm_bg.js":{__proto__:null,__wbg___wbindgen_throw_bb96b2010945f0bc:function(e,t){throw Error(j(e,t))},__wbindgen_cast_0000000000000001:function(e,t){return j(e,t)},__wbindgen_init_externref_table:function(){let e=U.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}}}}var T=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_jsdb_free(e,1)),E=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_jsresult_free(e,1)),D=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_wasmanalytics_free(e,1)),O=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_wasmdistributedindexmanager_free(e,1)),k=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_wasmindexmanager_free(e,1)),A=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>U.__wbg_wasmshardmanager_free(e,1));function j(e,t){return B(e>>>0,t)}var M=null;function N(){return(M===null||M.byteLength===0)&&(M=new Uint8Array(U.memory.buffer)),M}function P(e){return e==null}function F(e,t,n){if(n===void 0){let n=V.encode(e),r=t(n.length,1)>>>0;return N().subarray(r,r+n.length).set(n),H=n.length,r}let r=e.length,i=t(r,1)>>>0,a=N(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=N().subarray(i+o,i+r),a=V.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return H=o,i}function I(e){let t=U.__wbindgen_externrefs.get(e);return U.__externref_table_dealloc(e),t}var L=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});L.decode();var R=2146435072,z=0;function B(e,t){return z+=t,z>=R&&(L=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),L.decode(),z=t),L.decode(N().subarray(e,e+t))}var V=new TextEncoder;`encodeInto`in V||(V.encodeInto=function(e,t){let n=V.encode(e);return t.set(n),{read:e.length,written:n.length}});var H=0,U;function W(e,t){return U=e.exports,M=null,U.__wbindgen_start(),U}async function G(e,t){if(typeof Response==`function`&&e instanceof Response){if(!e.ok)throw Error(`failed to fetch Wasm: ${e.status} ${e.statusText} fetching '${e.url}'`);if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}function K(e){if(U!==void 0)return U;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=w();return e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e)),W(new WebAssembly.Instance(e,t),e)}async function q(e){if(U!==void 0)return U;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),e===void 0&&(e=new URL(`/assets/feltdb_wasm_bg-BsXHw7eX.wasm`,``+import.meta.url));let t=w();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await G(await e,t);return W(n,r)}export{e as JsDb,t as JsResult,n as WasmAnalytics,r as WasmDistributedIndexManager,i as WasmIndexManager,a as WasmShardManager,o as apply_sync_result,s as authorize_offline,c as canonical_bundle_hash,l as canonicalize_application_manifest,u as compare_state_schemas,q as default,d as diff_application_revisions,f as hash_application_manifest,p as hash_application_runtime,m as hash_state_schema,K as initSync,h as open,g as resolve_application_runtime,_ as validate_mesh_claim,v as validate_state_schema,y as validate_sync_operation,b as validate_worker_transition,x as validate_workload_transition,S as verify_bundle_integrity,C as verify_signed_grant};
|
|
Binary file
|
|
@@ -7,7 +7,7 @@ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=
|
|
|
7
7
|
Error generating stack: `+e.message+`
|
|
8
8
|
`+e.stack}return{value:e,source:t,stack:i,digest:null}}function Os(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function ks(e,t){try{console.error(t.value)}catch(e){setTimeout(function(){throw e})}}var As=typeof WeakMap==`function`?WeakMap:Map;function js(e,t,n){n=oo(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){rl||(rl=!0,il=r),ks(e,t)},n}function Ms(e,t,n){n=oo(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r==`function`){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){ks(e,t)}}var a=e.stateNode;return a!==null&&typeof a.componentDidCatch==`function`&&(n.callback=function(){ks(e,t),typeof r!=`function`&&(al===null?al=new Set([this]):al.add(this));var n=t.stack;this.componentDidCatch(t.value,{componentStack:n===null?``:n})}),n}function Ns(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new As;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=zl.bind(null,e,t,n),t.then(e,e))}function Ps(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t===null||t.dehydrated!==null),t)return e;e=e.return}while(e!==null);return null}function Fs(e,t,n,r,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=oo(-1,1),t.tag=2,so(n,t,1))),n.lanes|=1),e)}var Is=C.ReactCurrentOwner,Ls=!1;function Rs(e,t,n,r){t.child=e===null?Ua(t,null,n,r):Ha(t,e.child,n,r)}function zs(e,t,n,r,i){n=n.render;var a=t.ref;return Za(t,i),r=Po(e,t,n,r,a,i),n=Fo(),e!==null&&!Ls?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,ac(e,t,i)):(H&&n&&Ca(t),t.flags|=1,Rs(e,t,r,i),t.child)}function Bs(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!ql(a)&&a.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=a,Vs(e,t,a,r,i)):(e=Xl(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,(e.lanes&i)===0){var o=a.memoizedProps;if(n=n.compare,n=n===null?Ir:n,n(o,r)&&e.ref===t.ref)return ac(e,t,i)}return t.flags|=1,e=Yl(a,r),e.ref=t.ref,e.return=t,t.child=e}function Vs(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Ir(a,r)&&e.ref===t.ref){if(Ls=!1,t.pendingProps=r=a,(e.lanes&i)!==0)e.flags&131072&&(Ls=!0);else return t.lanes=e.lanes,ac(e,t,i)}}return Ws(e,t,n,r,i)}function Hs(e,t,n){var r=t.pendingProps,i=r.children,a=e===null?null:e.memoizedState;if(r.mode===`hidden`){if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},V(qc,Kc),Kc|=n;else{if(!(n&1073741824))return e=a===null?n:a.baseLanes|n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,V(qc,Kc),Kc|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=a===null?n:a.baseLanes,V(qc,Kc),Kc|=r}}else a===null?r=n:(r=a.baseLanes|n,t.memoizedState=null),V(qc,Kc),Kc|=r;return Rs(e,t,i,n),t.child}function Us(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ws(e,t,n,r,i){var a=ea(n)?Qi:Xi.current;return a=$i(t,a),Za(t,i),n=Po(e,t,n,r,a,i),r=Fo(),e!==null&&!Ls?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,ac(e,t,i)):(H&&r&&Ca(t),t.flags|=1,Rs(e,t,n,i),t.child)}function Gs(e,t,n,r,i){if(ea(n)){var a=!0;ia(t)}else a=!1;if(Za(t,i),t.stateNode===null)ic(e,t),ws(t,n,r),Es(t,n,r,i),r=!0;else if(e===null){var o=t.stateNode,s=t.memoizedProps;o.props=s;var c=o.context,l=n.contextType;typeof l==`object`&&l?l=Qa(l):(l=ea(n)?Qi:Xi.current,l=$i(t,l));var u=n.getDerivedStateFromProps,d=typeof u==`function`||typeof o.getSnapshotBeforeUpdate==`function`;d||typeof o.UNSAFE_componentWillReceiveProps!=`function`&&typeof o.componentWillReceiveProps!=`function`||(s!==r||c!==l)&&Ts(t,o,r,l),ro=!1;var f=t.memoizedState;o.state=f,uo(t,r,o,i),c=t.memoizedState,s!==r||f!==c||Zi.current||ro?(typeof u==`function`&&(xs(t,n,u,r),c=t.memoizedState),(s=ro||Cs(t,n,s,r,f,c,l))?(d||typeof o.UNSAFE_componentWillMount!=`function`&&typeof o.componentWillMount!=`function`||(typeof o.componentWillMount==`function`&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount==`function`&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount==`function`&&(t.flags|=4194308)):(typeof o.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),o.props=r,o.state=c,o.context=l,r=s):(typeof o.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,ao(e,t),s=t.memoizedProps,l=t.type===t.elementType?s:bs(t.type,s),o.props=l,d=t.pendingProps,f=o.context,c=n.contextType,typeof c==`object`&&c?c=Qa(c):(c=ea(n)?Qi:Xi.current,c=$i(t,c));var p=n.getDerivedStateFromProps;(u=typeof p==`function`||typeof o.getSnapshotBeforeUpdate==`function`)||typeof o.UNSAFE_componentWillReceiveProps!=`function`&&typeof o.componentWillReceiveProps!=`function`||(s!==d||f!==c)&&Ts(t,o,r,c),ro=!1,f=t.memoizedState,o.state=f,uo(t,r,o,i);var m=t.memoizedState;s!==d||f!==m||Zi.current||ro?(typeof p==`function`&&(xs(t,n,p,r),m=t.memoizedState),(l=ro||Cs(t,n,l,r,f,m,c)||!1)?(u||typeof o.UNSAFE_componentWillUpdate!=`function`&&typeof o.componentWillUpdate!=`function`||(typeof o.componentWillUpdate==`function`&&o.componentWillUpdate(r,m,c),typeof o.UNSAFE_componentWillUpdate==`function`&&o.UNSAFE_componentWillUpdate(r,m,c)),typeof o.componentDidUpdate==`function`&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof o.componentDidUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),o.props=r,o.state=m,o.context=c,r=l):(typeof o.componentDidUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return Ks(e,t,n,r,a,i)}function Ks(e,t,n,r,i,a){Us(e,t);var o=!!(t.flags&128);if(!r&&!o)return i&&aa(t,n,!1),ac(e,t,a);r=t.stateNode,Is.current=t;var s=o&&typeof n.getDerivedStateFromError!=`function`?null:r.render();return t.flags|=1,e!==null&&o?(t.child=Ha(t,e.child,null,a),t.child=Ha(t,null,s,a)):Rs(e,t,s,a),t.memoizedState=r.state,i&&aa(t,n,!0),t.child}function qs(e){var t=e.stateNode;t.pendingContext?na(e,t.pendingContext,t.pendingContext!==t.context):t.context&&na(e,t.context,!1),vo(e,t.containerInfo)}function Js(e,t,n,r,i){return Fa(),Ia(i),t.flags|=256,Rs(e,t,n,r),t.child}var Ys={dehydrated:null,treeContext:null,retryLane:0};function Xs(e){return{baseLanes:e,cachePool:null,transitions:null}}function Zs(e,t,n){var r=t.pendingProps,i=U.current,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(i&2)),s?(a=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),V(U,i&1),e===null)return ja(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.lanes=t.mode&1?e.data===`$!`?8:1073741824:1,null):(o=r.children,e=r.fallback,a?(r=t.mode,a=t.child,o={mode:`hidden`,children:o},!(r&1)&&a!==null?(a.childLanes=0,a.pendingProps=o):a=Ql(o,r,0,null),e=Zl(e,r,n,null),a.return=t,e.return=t,a.sibling=e,t.child=a,t.child.memoizedState=Xs(n),t.memoizedState=Ys,e):Qs(t,o));if(i=e.memoizedState,i!==null&&(s=i.dehydrated,s!==null))return ec(e,t,o,r,s,i,n);if(a){a=r.fallback,o=t.mode,i=e.child,s=i.sibling;var c={mode:`hidden`,children:r.children};return!(o&1)&&t.child!==i?(r=t.child,r.childLanes=0,r.pendingProps=c,t.deletions=null):(r=Yl(i,c),r.subtreeFlags=i.subtreeFlags&14680064),s===null?(a=Zl(a,o,n,null),a.flags|=2):a=Yl(s,a),a.return=t,r.return=t,r.sibling=a,t.child=r,r=a,a=t.child,o=e.child.memoizedState,o=o===null?Xs(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},a.memoizedState=o,a.childLanes=e.childLanes&~n,t.memoizedState=Ys,r}return a=e.child,e=a.sibling,r=Yl(a,{mode:`visible`,children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Qs(e,t){return t=Ql({mode:`visible`,children:t},e.mode,0,null),t.return=e,e.child=t}function $s(e,t,n,r){return r!==null&&Ia(r),Ha(t,e.child,null,n),e=Qs(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function ec(e,t,n,i,a,o,s){if(n)return t.flags&256?(t.flags&=-257,i=Os(Error(r(422))),$s(e,t,s,i)):t.memoizedState===null?(o=i.fallback,a=t.mode,i=Ql({mode:`visible`,children:i.children},a,0,null),o=Zl(o,a,s,null),o.flags|=2,i.return=t,o.return=t,i.sibling=o,t.child=i,t.mode&1&&Ha(t,e.child,null,s),t.child.memoizedState=Xs(s),t.memoizedState=Ys,o):(t.child=e.child,t.flags|=128,null);if(!(t.mode&1))return $s(e,t,s,null);if(a.data===`$!`){if(i=a.nextSibling&&a.nextSibling.dataset,i)var c=i.dgst;return i=c,o=Error(r(419)),i=Os(o,i,void 0),$s(e,t,s,i)}if(c=(s&e.childLanes)!==0,Ls||c){if(i=X,i!==null){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}a=(a&(i.suspendedLanes|s))===0?a:0,a!==0&&a!==o.retryLane&&(o.retryLane=a,no(e,a),hl(i,e,a,-1))}return kl(),i=Os(Error(r(421))),$s(e,t,s,i)}return a.data===`$?`?(t.flags|=128,t.child=e.child,t=Vl.bind(null,e),a._reactRetry=t,null):(e=o.treeContext,Ea=R(a.nextSibling),Ta=t,H=!0,Da=null,e!==null&&(ga[_a++]=ya,ga[_a++]=ba,ga[_a++]=va,ya=e.id,ba=e.overflow,va=t),t=Qs(t,i.children),t.flags|=4096,t)}function tc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Xa(e.return,t,n)}function nc(e,t,n,r,i){var a=e.memoizedState;a===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=i)}function rc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;if(Rs(e,t,r.children,n),r=U.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&tc(e,n,t);else if(e.tag===19)tc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(V(U,r),!(t.mode&1))t.memoizedState=null;else switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&So(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),nc(t,!1,i,n,a);break;case`backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&So(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}nc(t,!0,n,null,a);break;case`together`:nc(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function ic(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function ac(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Yc|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(r(153));if(t.child!==null){for(e=t.child,n=Yl(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Yl(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function oc(e,t,n){switch(t.tag){case 3:qs(t),Fa();break;case 5:bo(t);break;case 1:ea(t.type)&&ia(t);break;case 4:vo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;V(Wa,r._currentValue),r._currentValue=i;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(V(U,U.current&1),e=ac(e,t,n),e===null?null:e.sibling):Zs(e,t,n):(V(U,U.current&1),t.flags|=128,null);V(U,U.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return rc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),V(U,U.current),r)break;return null;case 22:case 23:return t.lanes=0,Hs(e,t,n)}return ac(e,t,n)}var sc=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},cc=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,_o(mo.current);var o=null;switch(n){case`input`:i=Ce(e,i),r=Ce(e,r),o=[];break;case`select`:i=k({},i,{value:void 0}),r=k({},r,{value:void 0}),o=[];break;case`textarea`:i=je(e,i),r=je(e,r),o=[];break;default:typeof i.onClick!=`function`&&typeof r.onClick==`function`&&(e.onclick=Ti)}Ge(n,r);var s;for(u in n=null,i)if(!r.hasOwnProperty(u)&&i.hasOwnProperty(u)&&i[u]!=null){if(u===`style`){var c=i[u];for(s in c)c.hasOwnProperty(s)&&(n||={},n[s]=``)}else u!==`dangerouslySetInnerHTML`&&u!==`children`&&u!==`suppressContentEditableWarning`&&u!==`suppressHydrationWarning`&&u!==`autoFocus`&&(a.hasOwnProperty(u)?o||=[]:(o||=[]).push(u,null))}for(u in r){var l=r[u];if(c=i?.[u],r.hasOwnProperty(u)&&l!==c&&(l!=null||c!=null)){if(u===`style`){if(c){for(s in c)!c.hasOwnProperty(s)||l&&l.hasOwnProperty(s)||(n||={},n[s]=``);for(s in l)l.hasOwnProperty(s)&&c[s]!==l[s]&&(n||={},n[s]=l[s])}else n||(o||=[],o.push(u,n)),n=l}else u===`dangerouslySetInnerHTML`?(l=l?l.__html:void 0,c=c?c.__html:void 0,l!=null&&c!==l&&(o||=[]).push(u,l)):u===`children`?typeof l!=`string`&&typeof l!=`number`||(o||=[]).push(u,``+l):u!==`suppressContentEditableWarning`&&u!==`suppressHydrationWarning`&&(a.hasOwnProperty(u)?(l!=null&&u===`onScroll`&&L(`scroll`,e),o||c===l||(o=[])):(o||=[]).push(u,l))}}n&&(o||=[]).push(`style`,n);var u=o;(t.updateQueue=u)&&(t.flags|=4)}},lc=function(e,t,n,r){n!==r&&(t.flags|=4)};function uc(e,t){if(!H)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function dc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&14680064,r|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function fc(e,t,n){var i=t.pendingProps;switch(wa(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return dc(t),null;case 1:return ea(t.type)&&ta(),dc(t),null;case 3:return i=t.stateNode,yo(),B(Zi),B(Xi),wo(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(e===null||e.child===null)&&(Na(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Da!==null&&(yl(Da),Da=null))),dc(t),null;case 5:xo(t);var o=_o(go.current);if(n=t.type,e!==null&&t.stateNode!=null)cc(e,t,n,i,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!i){if(t.stateNode===null)throw Error(r(166));return dc(t),null}if(e=_o(mo.current),Na(t)){i=t.stateNode,n=t.type;var s=t.memoizedProps;switch(i[z]=t,i[Li]=s,e=!!(t.mode&1),n){case`dialog`:L(`cancel`,i),L(`close`,i);break;case`iframe`:case`object`:case`embed`:L(`load`,i);break;case`video`:case`audio`:for(o=0;o<ci.length;o++)L(ci[o],i);break;case`source`:L(`error`,i);break;case`img`:case`image`:case`link`:L(`error`,i),L(`load`,i);break;case`details`:L(`toggle`,i);break;case`input`:we(i,s),L(`invalid`,i);break;case`select`:i._wrapperState={wasMultiple:!!s.multiple},L(`invalid`,i);break;case`textarea`:Me(i,s),L(`invalid`,i)}for(var c in Ge(n,s),o=null,s)if(s.hasOwnProperty(c)){var l=s[c];c===`children`?typeof l==`string`?i.textContent!==l&&(!0!==s.suppressHydrationWarning&&wi(i.textContent,l,e),o=[`children`,l]):typeof l==`number`&&i.textContent!==``+l&&(!0!==s.suppressHydrationWarning&&wi(i.textContent,l,e),o=[`children`,``+l]):a.hasOwnProperty(c)&&l!=null&&c===`onScroll`&&L(`scroll`,i)}switch(n){case`input`:be(i),De(i,s,!0);break;case`textarea`:be(i),Pe(i);break;case`select`:case`option`:break;default:typeof s.onClick==`function`&&(i.onclick=Ti)}i=o,t.updateQueue=i,i!==null&&(t.flags|=4)}else{c=o.nodeType===9?o:o.ownerDocument,e===`http://www.w3.org/1999/xhtml`&&(e=Fe(n)),e===`http://www.w3.org/1999/xhtml`?n===`script`?(e=c.createElement(`div`),e.innerHTML=`<script><\/script>`,e=e.removeChild(e.firstChild)):typeof i.is==`string`?e=c.createElement(n,{is:i.is}):(e=c.createElement(n),n===`select`&&(c=e,i.multiple?c.multiple=!0:i.size&&(c.size=i.size))):e=c.createElementNS(e,n),e[z]=t,e[Li]=i,sc(e,t,!1,!1),t.stateNode=e;a:{switch(c=Ke(n,i),n){case`dialog`:L(`cancel`,e),L(`close`,e),o=i;break;case`iframe`:case`object`:case`embed`:L(`load`,e),o=i;break;case`video`:case`audio`:for(o=0;o<ci.length;o++)L(ci[o],e);o=i;break;case`source`:L(`error`,e),o=i;break;case`img`:case`image`:case`link`:L(`error`,e),L(`load`,e),o=i;break;case`details`:L(`toggle`,e),o=i;break;case`input`:we(e,i),o=Ce(e,i),L(`invalid`,e);break;case`option`:o=i;break;case`select`:e._wrapperState={wasMultiple:!!i.multiple},o=k({},i,{value:void 0}),L(`invalid`,e);break;case`textarea`:Me(e,i),o=je(e,i),L(`invalid`,e);break;default:o=i}for(s in Ge(n,o),l=o,l)if(l.hasOwnProperty(s)){var u=l[s];s===`style`?Ue(e,u):s===`dangerouslySetInnerHTML`?(u=u?u.__html:void 0,u!=null&&Re(e,u)):s===`children`?typeof u==`string`?(n!==`textarea`||u!==``)&&ze(e,u):typeof u==`number`&&ze(e,``+u):s!==`suppressContentEditableWarning`&&s!==`suppressHydrationWarning`&&s!==`autoFocus`&&(a.hasOwnProperty(s)?u!=null&&s===`onScroll`&&L(`scroll`,e):u!=null&&S(e,s,u,c))}switch(n){case`input`:be(e),De(e,i,!1);break;case`textarea`:be(e),Pe(e);break;case`option`:i.value!=null&&e.setAttribute(`value`,``+_e(i.value));break;case`select`:e.multiple=!!i.multiple,s=i.value,s==null?i.defaultValue!=null&&Ae(e,!!i.multiple,i.defaultValue,!0):Ae(e,!!i.multiple,s,!1);break;default:typeof o.onClick==`function`&&(e.onclick=Ti)}switch(n){case`button`:case`input`:case`select`:case`textarea`:i=!!i.autoFocus;break a;case`img`:i=!0;break a;default:i=!1}}i&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return dc(t),null;case 6:if(e&&t.stateNode!=null)lc(e,t,e.memoizedProps,i);else{if(typeof i!=`string`&&t.stateNode===null)throw Error(r(166));if(n=_o(go.current),_o(mo.current),Na(t)){if(i=t.stateNode,n=t.memoizedProps,i[z]=t,(s=i.nodeValue!==n)&&(e=Ta,e!==null))switch(e.tag){case 3:wi(i.nodeValue,n,!!(e.mode&1));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&wi(i.nodeValue,n,!!(e.mode&1))}s&&(t.flags|=4)}else i=(n.nodeType===9?n:n.ownerDocument).createTextNode(i),i[z]=t,t.stateNode=i}return dc(t),null;case 13:if(B(U),i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(H&&Ea!==null&&t.mode&1&&!(t.flags&128))Pa(),Fa(),t.flags|=98560,s=!1;else if(s=Na(t),i!==null&&i.dehydrated!==null){if(e===null){if(!s)throw Error(r(318));if(s=t.memoizedState,s=s===null?null:s.dehydrated,!s)throw Error(r(317));s[z]=t}else Fa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;dc(t),s=!1}else Da!==null&&(yl(Da),Da=null),s=!0;if(!s)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(i=i!==null,i!==(e!==null&&e.memoizedState!==null)&&i&&(t.child.flags|=8192,t.mode&1&&(e===null||U.current&1?Q===0&&(Q=3):kl())),t.updateQueue!==null&&(t.flags|=4),dc(t),null);case 4:return yo(),e===null&&mi(t.stateNode.containerInfo),dc(t),null;case 10:return Ya(t.type._context),dc(t),null;case 17:return ea(t.type)&&ta(),dc(t),null;case 19:if(B(U),s=t.memoizedState,s===null)return dc(t),null;if(i=!!(t.flags&128),c=s.rendering,c===null){if(i)uc(s,!1);else{if(Q!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(c=So(e),c!==null){for(t.flags|=128,uc(s,!1),i=c.updateQueue,i!==null&&(t.updateQueue=i,t.flags|=4),t.subtreeFlags=0,i=n,n=t.child;n!==null;)s=n,e=i,s.flags&=14680066,c=s.alternate,c===null?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=c.childLanes,s.lanes=c.lanes,s.child=c.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=c.memoizedProps,s.memoizedState=c.memoizedState,s.updateQueue=c.updateQueue,s.type=c.type,e=c.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return V(U,U.current&1|2),t.child}e=e.sibling}s.tail!==null&&A()>tl&&(t.flags|=128,i=!0,uc(s,!1),t.lanes=4194304)}}else{if(!i){if(e=So(c),e!==null){if(t.flags|=128,i=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),uc(s,!0),s.tail===null&&s.tailMode===`hidden`&&!c.alternate&&!H)return dc(t),null}else 2*A()-s.renderingStartTime>tl&&n!==1073741824&&(t.flags|=128,i=!0,uc(s,!1),t.lanes=4194304)}s.isBackwards?(c.sibling=t.child,t.child=c):(n=s.last,n===null?t.child=c:n.sibling=c,s.last=c)}return s.tail===null?(dc(t),null):(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=A(),t.sibling=null,n=U.current,V(U,i?n&1|2:n&1),t);case 22:case 23:return Tl(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?Kc&1073741824&&(dc(t),t.subtreeFlags&6&&(t.flags|=8192)):dc(t),null;case 24:return null;case 25:return null}throw Error(r(156,t.tag))}function pc(e,t){switch(wa(t),t.tag){case 1:return ea(t.type)&&ta(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return yo(),B(Zi),B(Xi),wo(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return xo(t),null;case 13:if(B(U),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));Fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return B(U),null;case 4:return yo(),null;case 10:return Ya(t.type._context),null;case 22:case 23:return Tl(),null;case 24:return null;default:return null}}var mc=!1,hc=!1,gc=typeof WeakSet==`function`?WeakSet:Set,q=null;function _c(e,t){var n=e.ref;if(n!==null){if(typeof n==`function`)try{n(null)}catch(n){$(e,t,n)}else n.current=null}}function vc(e,t,n){try{n()}catch(n){$(e,t,n)}}var yc=!1;function bc(e,t){if(Ei=Sn,e=Br(),Vr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var a=i.anchorOffset,o=i.focusNode;i=i.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||i!==0&&f.nodeType!==3||(l=s+i),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===i&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Di={focusedElem:e,selectionRange:n},Sn=!1,q=t;q!==null;)if(t=q,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,q=e;else for(;q!==null;){t=q;try{var h=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var g=h.memoizedProps,_=h.memoizedState,v=t.stateNode;v.__reactInternalSnapshotBeforeUpdate=v.getSnapshotBeforeUpdate(t.elementType===t.type?g:bs(t.type,g),_)}break;case 3:var y=t.stateNode.containerInfo;y.nodeType===1?y.textContent=``:y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(e){$(t,t.return,e)}if(e=t.sibling,e!==null){e.return=t.return,q=e;break}q=t.return}return h=yc,yc=!1,h}function xc(e,t,n){var r=t.updateQueue;if(r=r===null?null:r.lastEffect,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&vc(t,n,a)}i=i.next}while(i!==r)}}function Sc(e,t){if(t=t.updateQueue,t=t===null?null:t.lastEffect,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Cc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t==`function`?t(e):t.current=e}}function wc(e){var t=e.alternate;t!==null&&(e.alternate=null,wc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[z],delete t[Li],delete t[zi],delete t[Bi],delete t[Vi])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Tc(e){return e.tag===5||e.tag===3||e.tag===4}function Ec(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Tc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Dc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ti));else if(r!==4&&(e=e.child,e!==null))for(Dc(e,t,n),e=e.sibling;e!==null;)Dc(e,t,n),e=e.sibling}function Oc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Oc(e,t,n),e=e.sibling;e!==null;)Oc(e,t,n),e=e.sibling}var J=null,kc=!1;function Ac(e,t,n){for(n=n.child;n!==null;)jc(e,t,n),n=n.sibling}function jc(e,t,n){if(Nt&&typeof Nt.onCommitFiberUnmount==`function`)try{Nt.onCommitFiberUnmount(Mt,n)}catch{}switch(n.tag){case 5:hc||_c(n,t);case 6:var r=J,i=kc;J=null,Ac(e,t,n),J=r,kc=i,J!==null&&(kc?(e=J,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):J.removeChild(n.stateNode));break;case 18:J!==null&&(kc?(e=J,n=n.stateNode,e.nodeType===8?Pi(e.parentNode,n):e.nodeType===1&&Pi(e,n),bn(e)):Pi(J,n.stateNode));break;case 4:r=J,i=kc,J=n.stateNode.containerInfo,kc=!0,Ac(e,t,n),J=r,kc=i;break;case 0:case 11:case 14:case 15:if(!hc&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&vc(n,t,o),i=i.next}while(i!==r)}Ac(e,t,n);break;case 1:if(!hc&&(_c(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){$(n,t,e)}Ac(e,t,n);break;case 21:Ac(e,t,n);break;case 22:n.mode&1?(hc=(r=hc)||n.memoizedState!==null,Ac(e,t,n),hc=r):Ac(e,t,n);break;default:Ac(e,t,n)}}function Mc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new gc),t.forEach(function(t){var r=Hl.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))})}}function Nc(e,t){var n=t.deletions;if(n!==null)for(var i=0;i<n.length;i++){var a=n[i];try{var o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 5:J=c.stateNode,kc=!1;break a;case 3:J=c.stateNode.containerInfo,kc=!0;break a;case 4:J=c.stateNode.containerInfo,kc=!0;break a}c=c.return}if(J===null)throw Error(r(160));jc(o,s,a),J=null,kc=!1;var l=a.alternate;l!==null&&(l.return=null),a.return=null}catch(e){$(a,t,e)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Pc(t,e),t=t.sibling}function Pc(e,t){var n=e.alternate,i=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Nc(t,e),Fc(e),i&4){try{xc(3,e,e.return),Sc(3,e)}catch(t){$(e,e.return,t)}try{xc(5,e,e.return)}catch(t){$(e,e.return,t)}}break;case 1:Nc(t,e),Fc(e),i&512&&n!==null&&_c(n,n.return);break;case 5:if(Nc(t,e),Fc(e),i&512&&n!==null&&_c(n,n.return),e.flags&32){var a=e.stateNode;try{ze(a,``)}catch(t){$(e,e.return,t)}}if(i&4&&(a=e.stateNode,a!=null)){var o=e.memoizedProps,s=n===null?o:n.memoizedProps,c=e.type,l=e.updateQueue;if(e.updateQueue=null,l!==null)try{c===`input`&&o.type===`radio`&&o.name!=null&&Te(a,o),Ke(c,s);var u=Ke(c,o);for(s=0;s<l.length;s+=2){var d=l[s],f=l[s+1];d===`style`?Ue(a,f):d===`dangerouslySetInnerHTML`?Re(a,f):d===`children`?ze(a,f):S(a,d,f,u)}switch(c){case`input`:Ee(a,o);break;case`textarea`:Ne(a,o);break;case`select`:var p=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!o.multiple;var m=o.value;m==null?p!==!!o.multiple&&(o.defaultValue==null?Ae(a,!!o.multiple,o.multiple?[]:``,!1):Ae(a,!!o.multiple,o.defaultValue,!0)):Ae(a,!!o.multiple,m,!1)}a[Li]=o}catch(t){$(e,e.return,t)}}break;case 6:if(Nc(t,e),Fc(e),i&4){if(e.stateNode===null)throw Error(r(162));a=e.stateNode,o=e.memoizedProps;try{a.nodeValue=o}catch(t){$(e,e.return,t)}}break;case 3:if(Nc(t,e),Fc(e),i&4&&n!==null&&n.memoizedState.isDehydrated)try{bn(t.containerInfo)}catch(t){$(e,e.return,t)}break;case 4:Nc(t,e),Fc(e);break;case 13:Nc(t,e),Fc(e),a=e.child,a.flags&8192&&(o=a.memoizedState!==null,a.stateNode.isHidden=o,!o||a.alternate!==null&&a.alternate.memoizedState!==null||(el=A())),i&4&&Mc(e);break;case 22:if(d=n!==null&&n.memoizedState!==null,e.mode&1?(hc=(u=hc)||d,Nc(t,e),hc=u):Nc(t,e),Fc(e),i&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!d&&e.mode&1)for(q=e,d=e.child;d!==null;){for(f=q=d;q!==null;){switch(p=q,m=p.child,p.tag){case 0:case 11:case 14:case 15:xc(4,p,p.return);break;case 1:_c(p,p.return);var h=p.stateNode;if(typeof h.componentWillUnmount==`function`){i=p,n=p.return;try{t=i,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(e){$(i,n,e)}}break;case 5:_c(p,p.return);break;case 22:if(p.memoizedState!==null){zc(f);continue}}m===null?zc(f):(m.return=p,q=m)}d=d.sibling}a:for(d=null,f=e;;){if(f.tag===5){if(d===null){d=f;try{a=f.stateNode,u?(o=a.style,typeof o.setProperty==`function`?o.setProperty(`display`,`none`,`important`):o.display=`none`):(c=f.stateNode,l=f.memoizedProps.style,s=l!=null&&l.hasOwnProperty(`display`)?l.display:null,c.style.display=He(`display`,s))}catch(t){$(e,e.return,t)}}}else if(f.tag===6){if(d===null)try{f.stateNode.nodeValue=u?``:f.memoizedProps}catch(t){$(e,e.return,t)}}else if((f.tag!==22&&f.tag!==23||f.memoizedState===null||f===e)&&f.child!==null){f.child.return=f,f=f.child;continue}if(f===e)break a;for(;f.sibling===null;){if(f.return===null||f.return===e)break a;d===f&&(d=null),f=f.return}d===f&&(d=null),f.sibling.return=f.return,f=f.sibling}}break;case 19:Nc(t,e),Fc(e),i&4&&Mc(e);break;case 21:break;default:Nc(t,e),Fc(e)}}function Fc(e){var t=e.flags;if(t&2){try{a:{for(var n=e.return;n!==null;){if(Tc(n)){var i=n;break a}n=n.return}throw Error(r(160))}switch(i.tag){case 5:var a=i.stateNode;i.flags&32&&(ze(a,``),i.flags&=-33),Oc(e,Ec(e),a);break;case 3:case 4:var o=i.stateNode.containerInfo;Dc(e,Ec(e),o);break;default:throw Error(r(161))}}catch(t){$(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Ic(e,t,n){q=e,Lc(e,t,n)}function Lc(e,t,n){for(var r=!!(e.mode&1);q!==null;){var i=q,a=i.child;if(i.tag===22&&r){var o=i.memoizedState!==null||mc;if(!o){var s=i.alternate,c=s!==null&&s.memoizedState!==null||hc;s=mc;var l=hc;if(mc=o,(hc=c)&&!l)for(q=i;q!==null;)o=q,c=o.child,o.tag===22&&o.memoizedState!==null||c===null?Bc(i):(c.return=o,q=c);for(;a!==null;)q=a,Lc(a,t,n),a=a.sibling;q=i,mc=s,hc=l}Rc(e,t,n)}else i.subtreeFlags&8772&&a!==null?(a.return=i,q=a):Rc(e,t,n)}}function Rc(e){for(;q!==null;){var t=q;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:hc||Sc(5,t);break;case 1:var i=t.stateNode;if(t.flags&4&&!hc){if(n===null)i.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:bs(t.type,n.memoizedProps);i.componentDidUpdate(a,n.memoizedState,i.__reactInternalSnapshotBeforeUpdate)}}var o=t.updateQueue;o!==null&&fo(t,o,i);break;case 3:var s=t.updateQueue;if(s!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}fo(t,s,n)}break;case 5:var c=t.stateNode;if(n===null&&t.flags&4){n=c;var l=t.memoizedProps;switch(t.type){case`button`:case`input`:case`select`:case`textarea`:l.autoFocus&&n.focus();break;case`img`:l.src&&(n.src=l.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var d=u.memoizedState;if(d!==null){var f=d.dehydrated;f!==null&&bn(f)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(r(163))}hc||t.flags&512&&Cc(t)}catch(e){$(t,t.return,e)}}if(t===e){q=null;break}if(n=t.sibling,n!==null){n.return=t.return,q=n;break}q=t.return}}function zc(e){for(;q!==null;){var t=q;if(t===e){q=null;break}var n=t.sibling;if(n!==null){n.return=t.return,q=n;break}q=t.return}}function Bc(e){for(;q!==null;){var t=q;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Sc(4,t)}catch(e){$(t,n,e)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount==`function`){var i=t.return;try{r.componentDidMount()}catch(e){$(t,i,e)}}var a=t.return;try{Cc(t)}catch(e){$(t,a,e)}break;case 5:var o=t.return;try{Cc(t)}catch(e){$(t,o,e)}}}catch(e){$(t,t.return,e)}if(t===e){q=null;break}var s=t.sibling;if(s!==null){s.return=t.return,q=s;break}q=t.return}}var Vc=Math.ceil,Hc=C.ReactCurrentDispatcher,Uc=C.ReactCurrentOwner,Wc=C.ReactCurrentBatchConfig,Y=0,X=null,Z=null,Gc=0,Kc=0,qc=Ji(0),Q=0,Jc=null,Yc=0,Xc=0,Zc=0,Qc=null,$c=null,el=0,tl=1/0,nl=null,rl=!1,il=null,al=null,ol=!1,sl=null,cl=0,ll=0,ul=null,dl=-1,fl=0;function pl(){return Y&6?A():dl===-1?dl=A():dl}function ml(e){return e.mode&1?Y&2&&Gc!==0?Gc&-Gc:La.transition===null?(e=M,e===0?(e=window.event,e=e===void 0?16:Dn(e.type),e):e):(fl===0&&(fl=Gt()),fl):1}function hl(e,t,n,i){if(50<ll)throw ll=0,ul=null,Error(r(185));qt(e,n,i),(!(Y&2)||e!==X)&&(e===X&&(!(Y&2)&&(Xc|=n),Q===4&&xl(e,Gc)),gl(e,i),n===1&&Y===0&&!(t.mode&1)&&(tl=A()+500,sa&&da()))}function gl(e,t){var n=e.callbackNode;Ut(e,t);var r=Vt(e,e===X?Gc:0);if(r===0)n!==null&&Ct(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&Ct(n),t===1)e.tag===0?ua(Sl.bind(null,e)):la(Sl.bind(null,e)),Mi(function(){!(Y&6)&&da()}),n=null;else{switch(Xt(r)){case 1:n=Dt;break;case 4:n=Ot;break;case 16:n=kt;break;case 536870912:n=jt;break;default:n=kt}n=Wl(n,_l.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function _l(e,t){if(dl=-1,fl=0,Y&6)throw Error(r(327));var n=e.callbackNode;if(Ll()&&e.callbackNode!==n)return null;var i=Vt(e,e===X?Gc:0);if(i===0)return null;if(i&30||(i&e.expiredLanes)!==0||t)t=Al(e,i);else{t=i;var a=Y;Y|=2;var o=Ol();(X!==e||Gc!==t)&&(nl=null,tl=A()+500,El(e,t));do try{Ml();break}catch(t){Dl(e,t)}while(1);Ja(),Hc.current=o,Y=a,Z===null?(X=null,Gc=0,t=Q):t=0}if(t!==0){if(t===2&&(a=Wt(e),a!==0&&(i=a,t=vl(e,a))),t===1)throw n=Jc,El(e,0),xl(e,i),gl(e,A()),n;if(t===6)xl(e,i);else{if(a=e.current.alternate,!(i&30)&&!bl(a)&&(t=Al(e,i),t===2&&(o=Wt(e),o!==0&&(i=o,t=vl(e,o))),t===1))throw n=Jc,El(e,0),xl(e,i),gl(e,A()),n;switch(e.finishedWork=a,e.finishedLanes=i,t){case 0:case 1:throw Error(r(345));case 2:Fl(e,$c,nl);break;case 3:if(xl(e,i),(i&130023424)===i&&(t=el+500-A(),10<t)){if(Vt(e,0)!==0)break;if(a=e.suspendedLanes,(a&i)!==i){pl(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ki(Fl.bind(null,e,$c,nl),t);break}Fl(e,$c,nl);break;case 4:if(xl(e,i),(i&4194240)===i)break;for(t=e.eventTimes,a=-1;0<i;){var s=31-Ft(i);o=1<<s,s=t[s],s>a&&(a=s),i&=~o}if(i=a,i=A()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Vc(i/1960))-i,10<i){e.timeoutHandle=ki(Fl.bind(null,e,$c,nl),i);break}Fl(e,$c,nl);break;case 5:Fl(e,$c,nl);break;default:throw Error(r(329))}}}return gl(e,A()),e.callbackNode===n?_l.bind(null,e):null}function vl(e,t){var n=Qc;return e.current.memoizedState.isDehydrated&&(El(e,t).flags|=256),e=Al(e,t),e!==2&&(t=$c,$c=n,t!==null&&yl(t)),e}function yl(e){$c===null?$c=e:$c.push.apply($c,e)}function bl(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Fr(a(),i))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function xl(e,t){for(t&=~Zc,t&=~Xc,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ft(t),r=1<<n;e[n]=-1,t&=~r}}function Sl(e){if(Y&6)throw Error(r(327));Ll();var t=Vt(e,0);if(!(t&1))return gl(e,A()),null;var n=Al(e,t);if(e.tag!==0&&n===2){var i=Wt(e);i!==0&&(t=i,n=vl(e,i))}if(n===1)throw n=Jc,El(e,0),xl(e,t),gl(e,A()),n;if(n===6)throw Error(r(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Fl(e,$c,nl),gl(e,A()),null}function Cl(e,t){var n=Y;Y|=1;try{return e(t)}finally{Y=n,Y===0&&(tl=A()+500,sa&&da())}}function wl(e){sl!==null&&sl.tag===0&&!(Y&6)&&Ll();var t=Y;Y|=1;var n=Wc.transition,r=M;try{if(Wc.transition=null,M=1,e)return e()}finally{M=r,Wc.transition=n,Y=t,!(Y&6)&&da()}}function Tl(){Kc=qc.current,B(qc)}function El(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,Ai(n)),Z!==null)for(n=Z.return;n!==null;){var r=n;switch(wa(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&ta();break;case 3:yo(),B(Zi),B(Xi),wo();break;case 5:xo(r);break;case 4:yo();break;case 13:B(U);break;case 19:B(U);break;case 10:Ya(r.type._context);break;case 22:case 23:Tl()}n=n.return}if(X=e,Z=e=Yl(e.current,null),Gc=Kc=t,Q=0,Jc=null,Zc=Xc=Yc=0,$c=Qc=null,$a!==null){for(t=0;t<$a.length;t++)if(n=$a[t],r=n.interleaved,r!==null){n.interleaved=null;var i=r.next,a=n.pending;if(a!==null){var o=a.next;a.next=i,r.next=o}n.pending=r}$a=null}return e}function Dl(e,t){do{var n=Z;try{if(Ja(),To.current=gs,Oo){for(var i=W.memoizedState;i!==null;){var a=i.queue;a!==null&&(a.pending=null),i=i.next}Oo=!1}if(Do=0,K=G=W=null,ko=!1,Ao=0,Uc.current=null,n===null||n.return===null){Q=1,Jc=t,Z=null;break}a:{var o=e,s=n.return,c=n,l=t;if(t=Gc,c.flags|=32768,typeof l==`object`&&l&&typeof l.then==`function`){var u=l,d=c,f=d.tag;if(!(d.mode&1)&&(f===0||f===11||f===15)){var p=d.alternate;p?(d.updateQueue=p.updateQueue,d.memoizedState=p.memoizedState,d.lanes=p.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=Ps(s);if(m!==null){m.flags&=-257,Fs(m,s,c,o,t),m.mode&1&&Ns(o,u,t),t=m,l=u;var h=t.updateQueue;if(h===null){var g=new Set;g.add(l),t.updateQueue=g}else h.add(l);break a}if(!(t&1)){Ns(o,u,t),kl();break a}l=Error(r(426))}else if(H&&c.mode&1){var _=Ps(s);if(_!==null){!(_.flags&65536)&&(_.flags|=256),Fs(_,s,c,o,t),Ia(Ds(l,c));break a}}o=l=Ds(l,c),Q!==4&&(Q=2),Qc===null?Qc=[o]:Qc.push(o),o=s;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t;var v=js(o,l,t);lo(o,v);break a;case 1:c=l;var y=o.type,b=o.stateNode;if(!(o.flags&128)&&(typeof y.getDerivedStateFromError==`function`||b!==null&&typeof b.componentDidCatch==`function`&&(al===null||!al.has(b)))){o.flags|=65536,t&=-t,o.lanes|=t;var x=Ms(o,c,t);lo(o,x);break a}}o=o.return}while(o!==null)}Pl(n)}catch(e){t=e,Z===n&&n!==null&&(Z=n=n.return);continue}break}while(1)}function Ol(){var e=Hc.current;return Hc.current=gs,e===null?gs:e}function kl(){(Q===0||Q===3||Q===2)&&(Q=4),X===null||!(Yc&268435455)&&!(Xc&268435455)||xl(X,Gc)}function Al(e,t){var n=Y;Y|=2;var i=Ol();(X!==e||Gc!==t)&&(nl=null,El(e,t));do try{jl();break}catch(t){Dl(e,t)}while(1);if(Ja(),Y=n,Hc.current=i,Z!==null)throw Error(r(261));return X=null,Gc=0,Q}function jl(){for(;Z!==null;)Nl(Z)}function Ml(){for(;Z!==null&&!wt();)Nl(Z)}function Nl(e){var t=Ul(e.alternate,e,Kc);e.memoizedProps=e.pendingProps,t===null?Pl(e):Z=t,Uc.current=null}function Pl(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=pc(n,t),n!==null){n.flags&=32767,Z=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Q=6,Z=null;return}}else if(n=fc(n,t,Kc),n!==null){Z=n;return}if(t=t.sibling,t!==null){Z=t;return}Z=t=e}while(t!==null);Q===0&&(Q=5)}function Fl(e,t,n){var r=M,i=Wc.transition;try{Wc.transition=null,M=1,Il(e,t,n,r)}finally{Wc.transition=i,M=r}return null}function Il(e,t,n,i){do Ll();while(sl!==null);if(Y&6)throw Error(r(327));n=e.finishedWork;var a=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(r(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if(Jt(e,o),e===X&&(Z=X=null,Gc=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||ol||(ol=!0,Wl(kt,function(){return Ll(),null})),o=!!(n.flags&15990),n.subtreeFlags&15990||o){o=Wc.transition,Wc.transition=null;var s=M;M=1;var c=Y;Y|=4,Uc.current=null,bc(e,n),Pc(n,e),I(Di),Sn=!!Ei,Di=Ei=null,e.current=n,Ic(n,e,a),Tt(),Y=c,M=s,Wc.transition=o}else e.current=n;if(ol&&(ol=!1,sl=e,cl=a),o=e.pendingLanes,o===0&&(al=null),Pt(n.stateNode,i),gl(e,A()),t!==null)for(i=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],i(a.value,{componentStack:a.stack,digest:a.digest});if(rl)throw rl=!1,e=il,il=null,e;return cl&1&&e.tag!==0&&Ll(),o=e.pendingLanes,o&1?e===ul?ll++:(ll=0,ul=e):ll=0,da(),null}function Ll(){if(sl!==null){var e=Xt(cl),t=Wc.transition,n=M;try{if(Wc.transition=null,M=16>e?16:e,sl===null)var i=!1;else{if(e=sl,sl=null,cl=0,Y&6)throw Error(r(331));var a=Y;for(Y|=4,q=e.current;q!==null;){var o=q,s=o.child;if(q.flags&16){var c=o.deletions;if(c!==null){for(var l=0;l<c.length;l++){var u=c[l];for(q=u;q!==null;){var d=q;switch(d.tag){case 0:case 11:case 15:xc(8,d,o)}var f=d.child;if(f!==null)f.return=d,q=f;else for(;q!==null;){d=q;var p=d.sibling,m=d.return;if(wc(d),d===u){q=null;break}if(p!==null){p.return=m,q=p;break}q=m}}}var h=o.alternate;if(h!==null){var g=h.child;if(g!==null){h.child=null;do{var _=g.sibling;g.sibling=null,g=_}while(g!==null)}}q=o}}if(o.subtreeFlags&2064&&s!==null)s.return=o,q=s;else b:for(;q!==null;){if(o=q,o.flags&2048)switch(o.tag){case 0:case 11:case 15:xc(9,o,o.return)}var v=o.sibling;if(v!==null){v.return=o.return,q=v;break b}q=o.return}}var y=e.current;for(q=y;q!==null;){s=q;var b=s.child;if(s.subtreeFlags&2064&&b!==null)b.return=s,q=b;else b:for(s=y;q!==null;){if(c=q,c.flags&2048)try{switch(c.tag){case 0:case 11:case 15:Sc(9,c)}}catch(e){$(c,c.return,e)}if(c===s){q=null;break b}var x=c.sibling;if(x!==null){x.return=c.return,q=x;break b}q=c.return}}if(Y=a,da(),Nt&&typeof Nt.onPostCommitFiberRoot==`function`)try{Nt.onPostCommitFiberRoot(Mt,e)}catch{}i=!0}return i}finally{M=n,Wc.transition=t}}return!1}function Rl(e,t,n){t=Ds(n,t),t=js(e,t,1),e=so(e,t,1),t=pl(),e!==null&&(qt(e,1,t),gl(e,t))}function $(e,t,n){if(e.tag===3)Rl(e,e,n);else for(;t!==null;){if(t.tag===3){Rl(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(al===null||!al.has(r))){e=Ds(n,e),e=Ms(t,e,1),t=so(t,e,1),e=pl(),t!==null&&(qt(t,1,e),gl(t,e));break}}t=t.return}}function zl(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=pl(),e.pingedLanes|=e.suspendedLanes&n,X===e&&(Gc&n)===n&&(Q===4||Q===3&&(Gc&130023424)===Gc&&500>A()-el?El(e,0):Zc|=n),gl(e,t)}function Bl(e,t){t===0&&(e.mode&1?(t=zt,zt<<=1,!(zt&130023424)&&(zt=4194304)):t=1);var n=pl();e=no(e,t),e!==null&&(qt(e,t,n),gl(e,n))}function Vl(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Bl(e,n)}function Hl(e,t){var n=0;switch(e.tag){case 13:var i=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(r(314))}i!==null&&i.delete(t),Bl(e,n)}var Ul=function(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps||Zi.current)Ls=!0;else{if((e.lanes&n)===0&&!(t.flags&128))return Ls=!1,oc(e,t,n);Ls=!!(e.flags&131072)}}else Ls=!1,H&&t.flags&1048576&&Sa(t,ha,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;ic(e,t),e=t.pendingProps;var a=$i(t,Xi.current);Za(t,n),a=Po(null,t,i,e,a,n);var o=Fo();return t.flags|=1,typeof a==`object`&&a&&typeof a.render==`function`&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ea(i)?(o=!0,ia(t)):o=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,io(t),a.updater=Ss,t.stateNode=a,a._reactInternals=t,Es(t,i,e,n),t=Ks(null,t,i,!0,o,n)):(t.tag=0,H&&o&&Ca(t),Rs(null,t,a,n),t=t.child),t;case 16:i=t.elementType;a:{switch(ic(e,t),e=t.pendingProps,a=i._init,i=a(i._payload),t.type=i,a=t.tag=Jl(i),e=bs(i,e),a){case 0:t=Ws(null,t,i,e,n);break a;case 1:t=Gs(null,t,i,e,n);break a;case 11:t=zs(null,t,i,e,n);break a;case 14:t=Bs(null,t,i,bs(i.type,e),n);break a}throw Error(r(306,i,``))}return t;case 0:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:bs(i,a),Ws(e,t,i,a,n);case 1:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:bs(i,a),Gs(e,t,i,a,n);case 3:a:{if(qs(t),e===null)throw Error(r(387));i=t.pendingProps,o=t.memoizedState,a=o.element,ao(e,t),uo(t,i,null,n);var s=t.memoizedState;if(i=s.element,o.isDehydrated){if(o={element:i,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){a=Ds(Error(r(423)),t),t=Js(e,t,i,n,a);break a}if(i!==a){a=Ds(Error(r(424)),t),t=Js(e,t,i,n,a);break a}for(Ea=R(t.stateNode.containerInfo.firstChild),Ta=t,H=!0,Da=null,n=Ua(t,null,i,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Fa(),i===a){t=ac(e,t,n);break a}Rs(e,t,i,n)}t=t.child}return t;case 5:return bo(t),e===null&&ja(t),i=t.type,a=t.pendingProps,o=e===null?null:e.memoizedProps,s=a.children,Oi(i,a)?s=null:o!==null&&Oi(i,o)&&(t.flags|=32),Us(e,t),Rs(e,t,s,n),t.child;case 6:return e===null&&ja(t),null;case 13:return Zs(e,t,n);case 4:return vo(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=Ha(t,null,i,n):Rs(e,t,i,n),t.child;case 11:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:bs(i,a),zs(e,t,i,a,n);case 7:return Rs(e,t,t.pendingProps,n),t.child;case 8:return Rs(e,t,t.pendingProps.children,n),t.child;case 12:return Rs(e,t,t.pendingProps.children,n),t.child;case 10:a:{if(i=t.type._context,a=t.pendingProps,o=t.memoizedProps,s=a.value,V(Wa,i._currentValue),i._currentValue=s,o!==null){if(Fr(o.value,s)){if(o.children===a.children&&!Zi.current){t=ac(e,t,n);break a}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var c=o.dependencies;if(c!==null){s=o.child;for(var l=c.firstContext;l!==null;){if(l.context===i){if(o.tag===1){l=oo(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Xa(o.return,n,t),c.lanes|=n;break}l=l.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(r(341));s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),Xa(s,n,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}}Rs(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,i=t.pendingProps.children,Za(t,n),a=Qa(a),i=i(a),t.flags|=1,Rs(e,t,i,n),t.child;case 14:return i=t.type,a=bs(i,t.pendingProps),a=bs(i.type,a),Bs(e,t,i,a,n);case 15:return Vs(e,t,t.type,t.pendingProps,n);case 17:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:bs(i,a),ic(e,t),t.tag=1,ea(i)?(e=!0,ia(t)):e=!1,Za(t,n),ws(t,i,a),Es(t,i,a,n),Ks(null,t,i,!0,e,n);case 19:return rc(e,t,n);case 22:return Hs(e,t,n)}throw Error(r(156,t.tag))};function Wl(e,t){return St(e,t)}function Gl(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Kl(e,t,n,r){return new Gl(e,t,n,r)}function ql(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Jl(e){if(typeof e==`function`)return+!!ql(e);if(e!=null){if(e=e.$$typeof,e===re)return 11;if(e===O)return 14}return 2}function Yl(e,t){var n=e.alternate;return n===null?(n=Kl(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Xl(e,t,n,i,a,o){var s=2;if(i=e,typeof e==`function`)ql(e)&&(s=1);else if(typeof e==`string`)s=5;else a:switch(e){case ee:return Zl(n.children,a,o,t);case te:s=8,a|=8;break;case E:return e=Kl(12,n,t,a|2),e.elementType=E,e.lanes=o,e;case ie:return e=Kl(13,n,t,a),e.elementType=ie,e.lanes=o,e;case ae:return e=Kl(19,n,t,a),e.elementType=ae,e.lanes=o,e;case se:return Ql(n,a,o,t);default:if(typeof e==`object`&&e)switch(e.$$typeof){case D:s=10;break a;case ne:s=9;break a;case re:s=11;break a;case O:s=14;break a;case oe:s=16,i=null;break a}throw Error(r(130,e==null?e:typeof e,``))}return t=Kl(s,n,t,a),t.elementType=e,t.type=i,t.lanes=o,t}function Zl(e,t,n,r){return e=Kl(7,e,r,t),e.lanes=n,e}function Ql(e,t,n,r){return e=Kl(22,e,r,t),e.elementType=se,e.lanes=n,e.stateNode={isHidden:!1},e}function $l(e,t,n){return e=Kl(6,e,null,t),e.lanes=n,e}function eu(e,t,n){return t=Kl(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function tu(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Kt(0),this.expirationTimes=Kt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Kt(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function nu(e,t,n,r,i,a,o,s,c){return e=new tu(e,t,n,s,c),t===1?(t=1,!0===a&&(t|=8)):t=0,a=Kl(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},io(a),e}function ru(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:T,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}function iu(e){if(!e)return Yi;e=e._reactInternals;a:{if(gt(e)!==e||e.tag!==1)throw Error(r(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break a;case 1:if(ea(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break a}}t=t.return}while(t!==null);throw Error(r(171))}if(e.tag===1){var n=e.type;if(ea(n))return ra(e,n,t)}return t}function au(e,t,n,r,i,a,o,s,c){return e=nu(n,r,!0,e,i,a,o,s,c),e.context=iu(null),n=e.current,r=pl(),i=ml(n),a=oo(r,i),a.callback=t??null,so(n,a,i),e.current.lanes=i,qt(e,i,r),gl(e,r),e}function ou(e,t,n,r){var i=t.current,a=pl(),o=ml(i);return n=iu(n),t.context===null?t.context=n:t.pendingContext=n,t=oo(a,o),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=so(i,t,o),e!==null&&(hl(e,i,o,a),co(e,i,o)),o}function su(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function cu(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function lu(e,t){cu(e,t),(e=e.alternate)&&cu(e,t)}function uu(){return null}var du=typeof reportError==`function`?reportError:function(e){console.error(e)};function fu(e){this._internalRoot=e}pu.prototype.render=fu.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(r(409));ou(e,t,null,null)},pu.prototype.unmount=fu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;wl(function(){ou(null,e,null,null)}),t[Ri]=null}};function pu(e){this._internalRoot=e}pu.prototype.unstable_scheduleHydration=function(e){if(e){var t=en();e={blockedOn:null,target:e,priority:t};for(var n=0;n<un.length&&t!==0&&t<un[n].priority;n++);un.splice(n,0,e),n===0&&hn(e)}};function mu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function hu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==` react-mount-point-unstable `))}function gu(){}function _u(e,t,n,r,i){if(i){if(typeof r==`function`){var a=r;r=function(){var e=su(o);a.call(e)}}var o=au(t,r,e,0,null,!1,!1,``,gu);return e._reactRootContainer=o,e[Ri]=o.current,mi(e.nodeType===8?e.parentNode:e),wl(),o}for(;i=e.lastChild;)e.removeChild(i);if(typeof r==`function`){var s=r;r=function(){var e=su(c);s.call(e)}}var c=nu(e,0,!1,null,null,!1,!1,``,gu);return e._reactRootContainer=c,e[Ri]=c.current,mi(e.nodeType===8?e.parentNode:e),wl(function(){ou(t,c,n,r)}),c}function vu(e,t,n,r,i){var a=n._reactRootContainer;if(a){var o=a;if(typeof i==`function`){var s=i;i=function(){var e=su(o);s.call(e)}}ou(t,o,e,i)}else o=_u(n,t,e,i,r);return su(o)}Zt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Bt(t.pendingLanes);n!==0&&(Yt(t,n|1),gl(t,A()),!(Y&6)&&(tl=A()+500,da()))}break;case 13:wl(function(){var t=no(e,1);t!==null&&hl(t,e,1,pl())}),lu(e,1)}},Qt=function(e){if(e.tag===13){var t=no(e,134217728);t!==null&&hl(t,e,134217728,pl()),lu(e,134217728)}},$t=function(e){if(e.tag===13){var t=ml(e),n=no(e,t);n!==null&&hl(n,e,t,pl()),lu(e,t)}},en=function(){return M},tn=function(e,t){var n=M;try{return M=e,t()}finally{M=n}},Ye=function(e,t,n){switch(t){case`input`:if(Ee(e,n),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name=`+JSON.stringify(``+t)+`][type="radio"]`),t=0;t<n.length;t++){var i=n[t];if(i!==e&&i.form===e.form){var a=Gi(i);if(!a)throw Error(r(90));xe(i),Ee(i,a)}}}break;case`textarea`:Ne(e,n);break;case`select`:t=n.value,t!=null&&Ae(e,!!n.multiple,t,!1)}},tt=Cl,nt=wl;var yu={usingClientEntryPoint:!1,Events:[Ui,Wi,Gi,$e,et,Cl]},bu={findFiberByHostInstance:Hi,bundleType:0,version:`18.3.1`,rendererPackageName:`react-dom`},xu={bundleType:bu.bundleType,version:bu.version,rendererPackageName:bu.rendererPackageName,rendererConfig:bu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:C.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=bt(e),e===null?null:e.stateNode},findFiberByHostInstance:bu.findFiberByHostInstance||uu,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:`18.3.1-next-f1338f8080-20240426`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Su=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Su.isDisabled&&Su.supportsFiber)try{Mt=Su.inject(xu),Nt=Su}catch{}}e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=yu,e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!mu(t))throw Error(r(200));return ru(e,t,null,n)},e.createRoot=function(e,t){if(!mu(e))throw Error(r(299));var n=!1,i=``,a=du;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(i=t.identifierPrefix),t.onRecoverableError!==void 0&&(a=t.onRecoverableError)),t=nu(e,1,!1,null,null,n,!1,i,a),e[Ri]=t.current,mi(e.nodeType===8?e.parentNode:e),new fu(t)},e.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(r(188)):(e=Object.keys(e).join(`,`),Error(r(268,e)));return e=bt(t),e=e===null?null:e.stateNode,e},e.flushSync=function(e){return wl(e)},e.hydrate=function(e,t,n){if(!hu(t))throw Error(r(200));return vu(null,e,t,!0,n)},e.hydrateRoot=function(e,t,n){if(!mu(e))throw Error(r(405));var i=n!=null&&n.hydratedSources||null,a=!1,o=``,s=du;if(n!=null&&(!0===n.unstable_strictMode&&(a=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onRecoverableError!==void 0&&(s=n.onRecoverableError)),t=au(t,null,e,1,n??null,a,!1,o,s),e[Ri]=t.current,mi(e),i)for(e=0;e<i.length;e++)n=i[e],a=n._getVersion,a=a(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new pu(t)},e.render=function(e,t,n){if(!hu(t))throw Error(r(200));return vu(null,e,t,!1,n)},e.unmountComponentAtNode=function(e){if(!hu(e))throw Error(r(40));return e._reactRootContainer?(wl(function(){vu(null,null,e,!1,function(){e._reactRootContainer=null,e[Ri]=null})}),!0):!1},e.unstable_batchedUpdates=Cl,e.unstable_renderSubtreeIntoContainer=function(e,t,n,i){if(!hu(n))throw Error(r(200));if(e==null||e._reactInternals===void 0)throw Error(r(38));return vu(e,t,n,!1,i)},e.version=`18.3.1-next-f1338f8080-20240426`})),m=o(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=m();e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot})),g=c(u(),1),_=c(h(),1),v=`modulepreload`,y=function(e){return`/`+e},b={},x=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=y(t,n),t=s(t),t in b)return;b[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:v,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},S=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,C=/^[\\/]{2}/;function w(e,t){return t+e.replace(/\\/g,`/`)}var T=`popstate`;function ee(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function te(e={}){function t(e,t){let n=t.state?.masked,{pathname:r,search:i,hash:a}=n||e.location;return ie(``,{pathname:r,search:i,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||`default`,n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)}function n(e,t){return typeof t==`string`?t:ae(t)}return oe(t,n,null,e)}function E(e,t){if(e===!1||e==null)throw Error(t)}function D(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function ne(){return Math.random().toString(36).substring(2,10)}function re(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function ie(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?O(t):t,state:n,key:t&&t.key||r||ne(),mask:i}}function ae({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function O(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function oe(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=ee(e)?e:ie(h.location,e,t);n&&n(r,e),l=u()+1;let d=re(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=ee(e)?e:ie(h.location,e,t);n&&n(r,e),l=u();let i=re(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return se(i,e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(T,d),c=e,()=>{i.removeEventListener(T,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function se(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),E(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:ae(t);return i=i.replace(/ $/,`%20`),!n&&C.test(i)&&(i=r+i),new URL(i,r)}function ce(e,t,n=`/`){return le(e,t,n,!1)}function le(e,t,n,r,i){let a=De((typeof t==`string`?O(t):t).pathname||`/`,n);if(a==null)return null;let o=i??k(e),s=null,c=Ee(a);for(let e=0;s==null&&e<o.length;++e)s=Se(o[e],c,r);return s}function k(e){let t=ue(e);return fe(t),t}function ue(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;E(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=Fe([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(E(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),ue(e.children,t,u,l,o)),!(e.path==null&&!e.index)&&t.push({path:l,score:be(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=Te(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of de(e.path))a(e,t,!0,n)}),t}function de(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=de(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function fe(e){e.sort((e,t)=>e.score===t.score?xe(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var pe=/^:[\w-]+$/,me=3,he=2,ge=1,_e=10,ve=-2,ye=e=>e===`*`;function be(e,t){let n=e.split(`/`),r=n.length;return n.some(ye)&&(r+=ve),t&&(r+=he),n.filter(e=>!ye(e)).reduce((e,t)=>e+(pe.test(t)?me:t===``?ge:_e),r)}function xe(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function Se(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?we(u,l,s.matcher,s.compiledParams):Ce(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=Ce({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:Fe([a,d.pathname]),pathnameBase:Le(Fe([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=Fe([a,d.pathnameBase]))}return o}function Ce(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=Te(e.path,e.caseSensitive,e.end);return we(e,t,n,r)}function we(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=a.replace(/(.)\/+$/,`$1`),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=a.slice(0,a.length-e.length).replace(/(.)\/+$/,`$1`)}let i=s[r];return e[t]=n&&!i?void 0:(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function Te(e,t=!1,n=!0){D(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function Ee(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return D(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function De(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function Oe(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?O(e):e,a;return n?(n=Pe(n),a=n.startsWith(`/`)?ke(n.substring(1),`/`):ke(n,t)):a=t,{pathname:a,search:Re(r),hash:ze(i)}}function ke(e,t){let n=Ie(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function Ae(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function je(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Me(e){let t=je(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Ne(e,t,n,r=!1){let i;typeof e==`string`?i=O(e):(i={...e},E(!i.pathname||!i.pathname.includes(`?`),Ae(`?`,`pathname`,`search`,i)),E(!i.pathname||!i.pathname.includes(`#`),Ae(`#`,`pathname`,`hash`,i)),E(!i.search||!i.search.includes(`#`),Ae(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=Oe(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var Pe=e=>e.replace(/[\\/]{2,}/g,`/`),Fe=e=>Pe(e.join(`/`)),Ie=e=>e.replace(/\/+$/,``),Le=e=>Ie(e).replace(/^\/*/,`/`),Re=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,ze=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Be=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Ve(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function He(e){return Fe(e.map(e=>e.route.path).filter(Boolean))||`/`}var Ue=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function We(e,t){let n=e;if(typeof n!=`string`||!S.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Ue)try{let e=new URL(window.location.href),r=C.test(n)?new URL(w(n,e.protocol)):new URL(n),a=De(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{D(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var Ge=[`POST`,`PUT`,`PATCH`,`DELETE`];new Set(Ge);var Ke=[`GET`,...Ge];new Set(Ke);var qe=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function Je(e){try{return qe.includes(new URL(e).protocol)}catch{return!1}}var Ye=g.createContext(null);Ye.displayName=`DataRouter`;var Xe=g.createContext(null);Xe.displayName=`DataRouterState`;var Ze=g.createContext(!1);function Qe(){return g.useContext(Ze)}var $e=g.createContext({isTransitioning:!1});$e.displayName=`ViewTransition`;var et=g.createContext(new Map);et.displayName=`Fetchers`;var tt=g.createContext(null);tt.displayName=`Await`;var nt=g.createContext(null);nt.displayName=`Navigation`;var rt=g.createContext(null);rt.displayName=`Location`;var it=g.createContext({outlet:null,matches:[],isDataRoute:!1});it.displayName=`Route`;var at=g.createContext(null);at.displayName=`RouteError`;var ot=`REACT_ROUTER_ERROR`,st=`REDIRECT`,ct=`ROUTE_ERROR_RESPONSE`;function lt(e){if(e.startsWith(`${ot}:${st}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function ut(e){if(e.startsWith(`${ot}:${ct}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new Be(t.status,t.statusText,t.data)}catch{}}function dt(e,{relative:t}={}){E(ft(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=g.useContext(nt),{hash:i,pathname:a,search:o}=vt(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:Fe([n,a])),r.createHref({pathname:s,search:o,hash:i})}function ft(){return g.useContext(rt)!=null}function pt(){return E(ft(),`useLocation() may be used only in the context of a <Router> component.`),g.useContext(rt).location}var mt=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function ht(e){g.useContext(nt).static||g.useLayoutEffect(e)}function gt(){let{isDataRoute:e}=g.useContext(it);return e?Pt():_t()}function _t(){E(ft(),`useNavigate() may be used only in the context of a <Router> component.`);let e=g.useContext(Ye),{basename:t,navigator:n}=g.useContext(nt),{matches:r}=g.useContext(it),{pathname:i}=pt(),a=JSON.stringify(Me(r)),o=g.useRef(!1);return ht(()=>{o.current=!0}),g.useCallback((r,s={})=>{if(D(o.current,mt),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Ne(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:Fe([t,c.pathname])),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}g.createContext(null);function vt(e,{relative:t}={}){let{matches:n}=g.useContext(it),{pathname:r}=pt(),i=JSON.stringify(Me(n));return g.useMemo(()=>Ne(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function yt(e,t){return bt(e,t)}function bt(e,t,n){E(ft(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=g.useContext(nt),{matches:i}=g.useContext(it),a=i[i.length-1],o=a?a.params:{},s=a?a.pathname:`/`,c=a?a.pathnameBase:`/`,l=a&&a.route;{let e=l&&l.path||``;It(s,!l||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${s}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
9
9
|
|
|
10
|
-
Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let u=pt(),d;if(t){let e=typeof t==`string`?O(t):t;E(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):ce(e,{pathname:p});D(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),D(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let h=Et(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:Fe([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:Fe([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?g.createElement(rt.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...d},navigationType:`POP`}},h):h}function xt(){let e=Nt(),t=Ve(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=g.createElement(g.Fragment,null,g.createElement(`p`,null,`💿 Hey developer 👋`),g.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,g.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,g.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),g.createElement(g.Fragment,null,g.createElement(`h2`,null,`Unexpected Application Error!`),g.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?g.createElement(`pre`,{style:i},n):null,o)}var St=g.createElement(xt,null),Ct=class extends g.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=ut(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:g.createElement(it.Provider,{value:this.props.routeContext},g.createElement(at.Provider,{value:e,children:this.props.component}));return this.context?g.createElement(Tt,{error:e},t):t}};Ct.contextType=Ze;var wt=new WeakMap;function Tt({children:e,error:t}){let{basename:n}=g.useContext(nt);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=lt(t.digest);if(e){let r=wt.get(t);if(r)throw r;let i=We(e.location,n),a=i.absoluteURL||i.to;if(Je(a))throw Error(`Invalid redirect location`);if(Ue&&!wt.get(t)){if(i.isExternal||e.reloadDocument)window.location.href=a;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:e.replace}));throw wt.set(t,n),n}}return g.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${a}`})}}return e}function A({routeContext:e,match:t,children:n}){let r=g.useContext(Ye);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),g.createElement(it.Provider,{value:e},n)}function Et(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);E(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:He(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||St,o&&(s<0&&c===0?(It(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?g.createElement(n.route.Component,null):n.route.element?n.route.element:e,g.createElement(A,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?g.createElement(Ct,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function Dt(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Ot(e){let t=g.useContext(Ye);return E(t,Dt(e)),t}function kt(e){let t=g.useContext(Xe);return E(t,Dt(e)),t}function At(e){let t=g.useContext(it);return E(t,Dt(e)),t}function jt(e){let t=At(e),n=t.matches[t.matches.length-1];return E(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Mt(){return jt(`useRouteId`)}function Nt(){let e=g.useContext(at),t=kt(`useRouteError`),n=jt(`useRouteError`);return e===void 0?t.errors?.[n]:e}function Pt(){let{router:e}=Ot(`useNavigate`),t=jt(`useNavigate`),n=g.useRef(!1);return ht(()=>{n.current=!0}),g.useCallback(async(r,i={})=>{D(n.current,mt),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var Ft={};function It(e,t,n){!t&&!Ft[e]&&(Ft[e]=!0,D(!1,n))}g.memo(Lt);function Lt({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return bt(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function j(e){E(!1,`A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`)}function Rt({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){E(!ft(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=g.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=O(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=g.useMemo(()=>{let e=De(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return D(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:g.createElement(nt.Provider,{value:c},g.createElement(rt.Provider,{children:t,value:h}))}function zt({children:e,location:t}){return yt(Bt(e),t)}g.Component;function Bt(e,t=[]){let n=[];return g.Children.forEach(e,(e,r)=>{if(!g.isValidElement(e))return;let i=[...t,r];if(e.type===g.Fragment){n.push.apply(n,Bt(e.props.children,i));return}E(e.type===j,`[${typeof e.type==`string`?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),E(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=Bt(e.props.children,i)),n.push(a)}),n}var Vt=`get`,Ht=`application/x-www-form-urlencoded`;function Ut(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function Wt(e){return Ut(e)&&e.tagName.toLowerCase()===`button`}function Gt(e){return Ut(e)&&e.tagName.toLowerCase()===`form`}function Kt(e){return Ut(e)&&e.tagName.toLowerCase()===`input`}function qt(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Jt(e,t){return e.button===0&&(!t||t===`_self`)&&!qt(e)}var Yt=null;function M(){if(Yt===null)try{new FormData(document.createElement(`form`),0),Yt=!1}catch{Yt=!0}return Yt}var Xt=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function Zt(e){return e!=null&&!Xt.has(e)?(D(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ht}"`),null):e}function Qt(e,t){let n,r,i,a,o;if(Gt(e)){let o=e.getAttribute(`action`);r=o?De(o,t):null,n=e.getAttribute(`method`)||Vt,i=Zt(e.getAttribute(`enctype`))||Ht,a=new FormData(e)}else if(Wt(e)||Kt(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?De(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||Vt,i=Zt(e.getAttribute(`formenctype`))||Zt(o.getAttribute(`enctype`))||Ht,a=new FormData(o,e),!M()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(Ut(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=Vt,r=null,i=Ht,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function $t(e,t){if(e===!1||e==null)throw Error(t)}function en(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return i.pathname=n?i.pathname.endsWith(`/`)?`${i.pathname}_.${r}`:`${i.pathname}.${r}`:i.pathname===`/`?`_root.${r}`:t&&De(i.pathname,t)===`/`?`${Ie(t)}/_root.${r}`:`${Ie(i.pathname)}.${r}`,i}async function tn(e,t){if(e.id in t)return t[e.id];try{let n=await x(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function nn(e){return e!=null&&typeof e.page==`string`}function rn(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function an(e,t,n){return un((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await tn(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(rn).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function on(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function sn(e,t,{includeHydrateFallback:n}={}){return cn(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function cn(e){return[...new Set(e)]}function ln(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function un(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!nn(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(ln(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function dn(){let e=g.useContext(Ye);return $t(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function fn(){let e=g.useContext(Xe);return $t(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var pn=g.createContext(void 0);pn.displayName=`FrameworkContext`;function mn(){let e=g.useContext(pn);return $t(e,`You must render this element inside a <HydratedRouter> element`),e}function hn(e,t){let n=g.useContext(pn),[r,i]=g.useState(!1),[a,o]=g.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=g.useRef(null);g.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),g.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:gn(s,p),onBlur:gn(c,m),onMouseEnter:gn(l,p),onMouseLeave:gn(u,m),onTouchStart:gn(d,p)}]:[a,f,{}]:[!1,f,{}]}function gn(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function _n({page:e,...t}){let n=Qe(),{nonce:r}=mn(),{router:i}=dn(),a=g.useMemo(()=>ce(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?g.createElement(yn,{page:e,matches:a,...t}):g.createElement(bn,{page:e,matches:a,...t})):null}function vn(e){let{manifest:t,routeModules:n}=mn(),[r,i]=g.useState([]);return g.useEffect(()=>{let r=!1;return an(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function yn({page:e,matches:t,...n}){let r=pt(),{future:i}=mn(),{basename:a}=dn(),o=g.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=en(e,a,i.v8_trailingSlashAwareDataRequests,`rsc`),o=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?o=!0:s.push(e.route.id);return o&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[a,i.v8_trailingSlashAwareDataRequests,e,r,t]);return g.createElement(g.Fragment,null,o.map(e=>g.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function bn({page:e,matches:t,...n}){let r=pt(),{future:i,manifest:a,routeModules:o}=mn(),{basename:s}=dn(),{loaderData:c,matches:l}=fn(),u=g.useMemo(()=>on(e,t,l,a,r,`data`),[e,t,l,a,r]),d=g.useMemo(()=>on(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=g.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];!t||!t.hasLoader||(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=en(e,s,i.v8_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.v8_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=g.useMemo(()=>sn(d,a),[d,a]),m=vn(d);return g.createElement(g.Fragment,null,f.map(e=>g.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>g.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>g.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function xn(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}g.Component;var Sn=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{Sn&&(window.__reactRouterVersion=`7.18.2`)}catch{}function Cn({basename:e,children:t,useTransitions:n,window:r}){let i=g.useRef();i.current??=te({window:r,v5Compat:!0});let a=i.current,[o,s]=g.useState({action:a.action,location:a.location}),c=g.useCallback(e=>{n===!1?s(e):g.startTransition(()=>s(e))},[n]);return g.useLayoutEffect(()=>a.listen(c),[a,c]),g.createElement(Rt,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,useTransitions:n})}var N=g.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:_,useTransitions:v}=g.useContext(nt),y=typeof l==`string`&&S.test(l),b=We(l,h);l=b.to;let x=dt(l,{relative:r}),C=pt(),w=null;if(o){let e=Ne(o,[],C.mask?C.mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:Fe([h,e.pathname])),w=_.createHref(e)}let[T,ee,te]=hn(n,p),E=On(l,{replace:a,mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,defaultShouldRevalidate:f,useTransitions:v});function D(t){e&&e(t),t.defaultPrevented||E(t)}let ne=!(b.isExternal||i),re=g.createElement(`a`,{...p,...te,href:(ne?w:void 0)||b.absoluteURL||x,onClick:ne?D:e,ref:xn(m,ee),target:c,"data-discover":!y&&t===`render`?`true`:void 0});return T&&!y?g.createElement(g.Fragment,null,re,g.createElement(_n,{page:x})):re});N.displayName=`Link`;var wn=g.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=vt(a,{relative:c.relative}),d=pt(),f=g.useContext(Xe),{navigator:p,basename:m}=g.useContext(nt),h=f!=null&&Nn(u)&&o===!0,_=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,v=d.pathname,y=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(v=v.toLowerCase(),y=y?y.toLowerCase():null,_=_.toLowerCase()),y&&m&&(y=De(y,m)||y);let b=_!==`/`&&_.endsWith(`/`)?_.length-1:_.length,x=v===_||!r&&v.startsWith(_)&&v.charAt(b)===`/`,S=y!=null&&(y===_||!r&&y.startsWith(_)&&y.charAt(_.length)===`/`),C={isActive:x,isPending:S,isTransitioning:h},w=x?e:void 0,T;T=typeof n==`function`?n(C):[n,x?`active`:null,S?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let ee=typeof i==`function`?i(C):i;return g.createElement(N,{...c,"aria-current":w,className:T,ref:l,style:ee,to:a,viewTransition:o},typeof s==`function`?s(C):s)});wn.displayName=`NavLink`;var Tn=g.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=Vt,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m)=>{let{useTransitions:h}=g.useContext(nt),_=jn(),v=Mn(s,{relative:l}),y=o.toLowerCase()===`get`?`get`:`post`,b=typeof s==`string`&&S.test(s);return g.createElement(`form`,{ref:m,method:y,action:v,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>_(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f});h&&n!==!1?g.startTransition(()=>p()):p()},...p,"data-discover":!b&&e===`render`?`true`:void 0})});Tn.displayName=`Form`;function En(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Dn(e){let t=g.useContext(Ye);return E(t,En(e)),t}function On(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c,useTransitions:l}={}){let u=gt(),d=pt(),f=vt(e,{relative:o});return g.useCallback(p=>{if(Jt(p,t)){p.preventDefault();let t=n===void 0?ae(d)===ae(f):n,m=()=>u(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c});l?g.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}var kn=0,An=()=>`__${String(++kn)}__`;function jn(){let{router:e}=Dn(`useSubmit`),{basename:t}=g.useContext(nt),n=Mt(),r=e.fetch,i=e.navigate;return g.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=Qt(e,t);if(a.navigate===!1){let e=a.fetcherKey||An();await r(e,n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync})}else await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function Mn(e,{relative:t}={}){let{basename:n}=g.useContext(nt),r=g.useContext(it);E(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...vt(e||`.`,{relative:t})},o=pt();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:Fe([n,a.pathname])),ae(a)}function Nn(e,{relative:t}={}){let n=g.useContext($e);E(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=Dn(`useViewTransitionState`),i=vt(e,{relative:t});if(!n.isTransitioning)return!1;let a=De(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=De(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Ce(i.pathname,o)!=null||Ce(i.pathname,a)!=null}var Pn=o((e=>{var t=u(),n=Symbol.for(`react.element`),r=Symbol.for(`react.fragment`),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var s,c={},l=null,u=null;for(s in r!==void 0&&(l=``+r),t.key!==void 0&&(l=``+t.key),t.ref!==void 0&&(u=t.ref),t)i.call(t,s)&&!o.hasOwnProperty(s)&&(c[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)c[s]===void 0&&(c[s]=t[s]);return{$$typeof:n,type:e,key:l,ref:u,props:c,_owner:a.current}}e.Fragment=r,e.jsx=s,e.jsxs=s})),P=o(((e,t)=>{t.exports=Pn()}))();function Fn({stats:e}){return e?(0,P.jsxs)(`div`,{className:`overview-dashboard`,children:[(0,P.jsxs)(`div`,{className:`dashboard-header`,children:[(0,P.jsx)(`h1`,{children:`FeltDB Studio`}),(0,P.jsx)(`div`,{className:`namespace-badge`,children:e.namespace})]}),(0,P.jsxs)(`div`,{className:`dashboard-grid`,children:[(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Runtime`}),(0,P.jsx)(`div`,{className:`status-indicator ${e.status}`,children:`●`}),(0,P.jsx)(`span`,{children:e.status.charAt(0).toUpperCase()+e.status.slice(1)})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Storage`}),(0,P.jsxs)(`span`,{children:[e.persistence,` / `,e.storageBackend]})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Peers`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.peersCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Objects`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.objectsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Operations`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.operationsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Capabilities`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.capabilitiesCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Executions`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.executionsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Workflows`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.workflowsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Agents`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.agentsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Conflicts`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.conflictsCount})]})]})]}):(0,P.jsx)(`div`,{className:`overview-dashboard loading`,children:(0,P.jsx)(`p`,{children:`Loading runtime information...`})})}function In(e,t=`default`){let[n,r]=(0,g.useState)(null);return(0,g.useEffect)(()=>{if(!e){r(null);return}let n=e.runtime(),i=n.runtime===`browser`?`browser`:n.runtime===`node`?`self-hosted`:`remote`;r({db:e,connected:!0,namespace:t,instanceId:e.instanceId?.()||`unknown`,environment:i})},[e,t]),n}function Ln(e,t=null,n=`default`){let[r,i]=(0,g.useState)(null);return(0,g.useEffect)(()=>{if(!e){i(null);return}let r=async()=>{try{let r=e.runtime(),a=e.health(),o=e.sync?.(),s=t?await Promise.all(t.collections.map(t=>e.collection(t.name).count())):[];i({namespace:n,status:a?.status||`healthy`,storageBackend:r.storage,persistence:r.persistent?`durable`:`volatile`,peersCount:o?.connected_peers?.length||0,objectsCount:s.reduce((e,t)=>e+t,0),operationsCount:o?.sequence||0,capabilitiesCount:t?.capabilities.length||0,executionsCount:await e.collection(`_flow_executions`).count()||await e.collection(`Decision`).count(),workflowsCount:t?.workflows.length||0,agentsCount:t?.agents.length||0,conflictsCount:o?.conflicts_detected||0})}catch(e){console.error(`Failed to fetch dashboard stats:`,e)}};r();let a=setInterval(r,5e3);return()=>clearInterval(a)},[e,t,n]),r}function Rn(e){let[t,n]=(0,g.useState)(null),[r,i]=(0,g.useState)(!1),[a,o]=(0,g.useState)(null),s=(0,g.useCallback)(async()=>{if(e){i(!0),o(null);try{let t=e.health();n(t)}catch(e){o(e instanceof Error?e.message:`Failed to fetch diagnostics`)}finally{i(!1)}}},[e]);return(0,g.useEffect)(()=>{s()},[e,s]),{diagnostics:t,loading:r,error:a,refresh:s}}function zn(e,t){let[n,r]=(0,g.useState)([]),[i,a]=(0,g.useState)(!0),[o,s]=(0,g.useState)(null);return(0,g.useEffect)(()=>{if(e){a(!0),s(null);try{let n=e.collection(t).subscribe(e=>{r(e),a(!1)});return()=>n()}catch(e){s(e instanceof Error?e.message:`Failed to load collection`),a(!1)}}},[e,t]),{items:n,loading:i,error:o}}function Bn(e){let[t,n]=(0,g.useState)([]);return(0,g.useEffect)(()=>{if(!e){n([]);return}let t=()=>{try{let t=e.sync?.();n(t?.connected_peers||[])}catch(e){console.error(`Failed to fetch peers:`,e)}};t();let r=setInterval(t,2e3);return()=>clearInterval(r)},[e]),t}function Vn({db:e,definition:t,namespace:n,bridgedItems:r}){let{items:i,loading:a,error:o}=zn(e,t.name),s=r??i,[c,l]=(0,g.useState)(null);return(0,P.jsxs)(`article`,{className:`state-collection studio-card`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`collection`}),(0,P.jsx)(`h2`,{children:t.name})]}),(0,P.jsx)(`strong`,{children:r?r.length:a?`…`:i.length})]}),o&&(0,P.jsx)(`p`,{className:`runtime-error`,children:o}),(!a||r)&&!s.length&&(0,P.jsx)(`div`,{className:`model-empty compact`,children:`No records yet. Mutations will appear here live.`}),s.map((e,r)=>{let i=String(e.id??e.key??r);return(0,P.jsxs)(`button`,{className:`state-row`,onClick:()=>l(c===r?null:r),children:[(0,P.jsxs)(`span`,{children:[(0,P.jsx)(`b`,{children:i}),(0,P.jsxs)(`small`,{children:[`flow://`,n,`/`,t.name,`/`,i]})]}),(0,P.jsx)(`span`,{children:c===r?`−`:`+`}),c===r&&(0,P.jsx)(`pre`,{children:JSON.stringify(e,null,2)})]},i)})]})}function Hn({db:e,model:t,namespace:n=`default`,applicationUrl:r=``,developmentSession:i}){let a=(0,g.useRef)(null),[o,s]=(0,g.useState)(null);return(0,g.useEffect)(()=>{if(!r)return;let e=new URL(r).origin,t=()=>{i?.sessionId&&a.current?.contentWindow?.postMessage({type:`feltdb:dev-session`,session:i},e),a.current?.contentWindow?.postMessage({type:`feltdb:studio:read`,requestId:`live`},e)},n=n=>{n.origin===e&&(n.data?.type===`feltdb:studio:ready`&&t(),n.data?.type===`feltdb:studio:data`&&s(n.data.records))};window.addEventListener(`message`,n);let o=window.setInterval(t,1500);return()=>{window.removeEventListener(`message`,n),window.clearInterval(o)}},[r,i]),(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Data`}),(0,P.jsx)(`p`,{children:`Live application records grouped by collection. Select a record to inspect every field.`})]}),r&&(0,P.jsx)(`iframe`,{ref:a,className:`studio-data-bridge`,src:r,title:`FeltDB application data bridge`,onLoad:()=>{let e=new URL(r).origin;i?.sessionId&&a.current?.contentWindow?.postMessage({type:`feltdb:dev-session`,session:i},e),a.current?.contentWindow?.postMessage({type:`feltdb:studio:read`,requestId:`initial`},e)}}),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[t?.collections.length??0,` collections`]}),(0,P.jsxs)(`span`,{children:[n,` namespace`]}),(0,P.jsx)(`span`,{children:e?`runtime connected`:`runtime unavailable`})]}),(0,P.jsxs)(`div`,{className:`state-grid`,children:[t?.collections.map(t=>(0,P.jsx)(Vn,{db:e??null,definition:t,namespace:n,bridgedItems:o?.[t.name]},t.name)),!t?.collections.length&&(0,P.jsxs)(`div`,{className:`model-empty`,children:[`No collection model is loaded. Open Studio through `,(0,P.jsx)(`code`,{children:`feltdb dev`}),` to load the active project.`]})]})]})}function Un(e){let t=e.trim().replace(/^flow:\/\//,``).split(`/`).filter(Boolean);return e.startsWith(`flow://`)?t.length>=3?{collection:t[t.length-2],id:t[t.length-1]}:null:t.length>=2?{collection:t[t.length-2],id:t[t.length-1]}:null}function Wn({db:e,model:t,namespace:n=`default`}){let[r,i]=(0,g.useState)(``),[a,o]=(0,g.useState)(),[s,c]=(0,g.useState)(`Enter a reference to resolve live state.`),l=async()=>{let t=Un(r);if(!t||!e){o(void 0),c(e?`Use Collection/id or flow://namespace/Collection/id.`:`Runtime unavailable.`);return}let n=await e.collection(t.collection).get(t.id);o(n),c(n?`Materialized locally`:`Reference is valid but is not materialized locally`)};return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`References`}),(0,P.jsx)(`p`,{children:`Resolve stable Flow references directly into their materialized state.`})]}),(0,P.jsxs)(`div`,{className:`reference-query`,children:[(0,P.jsx)(`input`,{value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&l()},placeholder:`flow://${n}/Collection/id`}),(0,P.jsx)(`button`,{onClick:()=>void l(),children:`Resolve`})]}),(0,P.jsxs)(`div`,{className:`reference-layout`,children:[(0,P.jsxs)(`article`,{className:`studio-card`,children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`Known collections`}),t?.collections.map(e=>(0,P.jsxs)(`button`,{className:`reference-example`,onClick:()=>i(`flow://${n}/${e.name}/id`),children:[e.name,(0,P.jsxs)(`small`,{children:[e.fields.length,` fields`]})]},e.name))]}),(0,P.jsxs)(`article`,{className:`studio-card reference-result`,children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`Resolution`}),(0,P.jsx)(`h2`,{children:s}),a!==void 0&&(0,P.jsx)(`pre`,{children:JSON.stringify(a,null,2)})]})]})]})}function Gn({db:e,namespace:t=`default`}){let[n,r]=(0,g.useState)([]),[i,a]=(0,g.useState)(`all`);(0,g.useEffect)(()=>{if(!e)return;let t=!0,n=async()=>{let n=await e.auditEvents();t&&r(n.slice().reverse())};n();let i=setInterval(()=>void n(),1e3);return()=>{t=!1,clearInterval(i)}},[e]);let o=n.filter(e=>i===`all`||e.type===i);return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Operations`}),(0,P.jsx)(`p`,{children:`The runtime's durable local mutation log—not a simulated activity feed.`})]}),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[n.length,` recorded`]}),(0,P.jsxs)(`span`,{children:[t,` namespace`]}),(0,P.jsxs)(`select`,{value:i,onChange:e=>a(e.target.value),children:[(0,P.jsx)(`option`,{value:`all`,children:`All mutations`}),(0,P.jsx)(`option`,{value:`put`,children:`Writes`}),(0,P.jsx)(`option`,{value:`delete`,children:`Deletes`})]})]}),(0,P.jsx)(`div`,{className:`table-shell`,children:(0,P.jsxs)(`table`,{className:`operations-table`,children:[(0,P.jsx)(`thead`,{children:(0,P.jsxs)(`tr`,{children:[(0,P.jsx)(`th`,{children:`Sequence`}),(0,P.jsx)(`th`,{children:`Mutation`}),(0,P.jsx)(`th`,{children:`Collection`}),(0,P.jsx)(`th`,{children:`Key`}),(0,P.jsx)(`th`,{children:`Timestamp`})]})}),(0,P.jsxs)(`tbody`,{children:[o.map(e=>(0,P.jsxs)(`tr`,{children:[(0,P.jsx)(`td`,{children:e.sequence}),(0,P.jsx)(`td`,{children:(0,P.jsx)(`span`,{className:`event-pill ${e.type}`,children:e.type})}),(0,P.jsx)(`td`,{children:e.collection}),(0,P.jsx)(`td`,{children:(0,P.jsx)(`code`,{children:e.key})}),(0,P.jsx)(`td`,{children:new Date(e.timestamp).toLocaleString()})]},`${e.sequence}-${e.key}`)),!o.length&&(0,P.jsx)(`tr`,{children:(0,P.jsx)(`td`,{colSpan:5,className:`empty-message`,children:`No matching mutations yet. Create or change application state to populate this stream.`})})]})]})})]})}function Kn({peers:e=[],localInstance:t=`local`}){return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Peers`}),(0,P.jsx)(`p`,{children:`The live topology participating in this application's convergence fabric.`})]}),(0,P.jsxs)(`div`,{className:`peer-topology`,children:[(0,P.jsxs)(`article`,{className:`peer-node local`,children:[(0,P.jsx)(`span`,{children:`this instance`}),(0,P.jsx)(`h2`,{children:t}),(0,P.jsx)(`small`,{children:`online · authoritative local state`})]}),e.map(e=>(0,P.jsxs)(g.Fragment,{children:[(0,P.jsx)(`i`,{className:`peer-link`}),(0,P.jsxs)(`article`,{className:`peer-node`,children:[(0,P.jsx)(`span`,{children:`connected peer`}),(0,P.jsx)(`h2`,{children:e}),(0,P.jsx)(`small`,{children:`online · exchanging operations`})]})]},e))]}),!e.length&&(0,P.jsx)(`div`,{className:`model-empty`,children:`This embedded runtime is operating independently. Its state remains durable and can converge when a network peer is attached.`})]})}function qn({model:e}){let t=e?.capabilities??[];return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Design`}),(0,P.jsx)(`h1`,{children:`Capabilities`}),(0,P.jsxs)(`p`,{children:[`Declared authority available to workflows and autonomous agents in `,e?.app??`this application`,`.`]})]}),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[t.length,` declared`]}),(0,P.jsxs)(`span`,{children:[new Set(t.flatMap(e=>e.statements)).size,` permission rules`]})]}),(0,P.jsxs)(`div`,{className:`studio-card-grid`,children:[t.map(e=>(0,P.jsxs)(`article`,{className:`studio-card capability-card`,children:[(0,P.jsx)(`div`,{className:`card-kind`,children:`capability`}),(0,P.jsx)(`h2`,{children:e.name}),(0,P.jsx)(`div`,{className:`statement-list`,children:e.statements.map(e=>{let[t,...n]=e.split(` `);return(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`b`,{children:t}),(0,P.jsx)(`code`,{children:n.join(` `)})]},e)})})]},e.name)),!t.length&&(0,P.jsx)(`div`,{className:`model-empty`,children:`No capabilities are declared in the current project model.`})]})]})}function Jn({db:e,name:t,label:n}){let{items:r}=zn(e,t);return r.length?(0,P.jsxs)(`section`,{children:[(0,P.jsxs)(`h2`,{children:[n,(0,P.jsx)(`span`,{children:r.length})]}),(0,P.jsx)(`div`,{className:`execution-list`,children:r.map((e,r)=>(0,P.jsxs)(`article`,{className:`execution-row`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`b`,{children:String(e.name??e.workflow??e.incident_id??e.id??n)}),(0,P.jsx)(`small`,{children:t})]}),(0,P.jsx)(`span`,{className:`event-pill put`,children:String(e.status??e.state??`materialized`)}),(0,P.jsx)(`pre`,{children:JSON.stringify(e,null,2)})]},String(e.id??r)))})]}):null}function Yn({db:e,model:t}){return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Executions`}),(0,P.jsx)(`p`,{children:`Capability work, workflow runs, assignments, and agent decisions as inspectable state.`})]}),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[t?.workflows.length??0,` workflow definitions`]}),(0,P.jsxs)(`span`,{children:[t?.agents.length??0,` autonomous agents`]})]}),(0,P.jsx)(Jn,{db:e??null,name:`_flow_executions`,label:`Capability executions`}),(0,P.jsx)(Jn,{db:e??null,name:`_flow_workflow_runs`,label:`Workflow runs`}),(0,P.jsx)(Jn,{db:e??null,name:`Assignment`,label:`Materialized assignments`}),(0,P.jsx)(Jn,{db:e??null,name:`Decision`,label:`Agent decisions`}),(0,P.jsx)(Jn,{db:e??null,name:`_flow_agent_executions`,label:`Agent executions`}),(0,P.jsxs)(`div`,{className:`model-empty execution-empty`,children:[`Execution sections appear as soon as their state is committed. Defined workflows: `,t?.workflows.map(e=>e.name).join(`, `)||`none`,`.`]})]})}function Xn({db:e,diagnostics:t}){let n=(()=>{try{return e?.sync()}catch{return}})(),r=n?.conflicts_detected??0;return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Conflicts`}),(0,P.jsx)(`p`,{children:`Concurrent mutations detected while replicas converge.`})]}),(0,P.jsxs)(`div`,{className:`metric-grid`,children:[(0,P.jsxs)(`article`,{children:[(0,P.jsx)(`b`,{children:r}),(0,P.jsx)(`span`,{children:`detected`})]}),(0,P.jsxs)(`article`,{children:[(0,P.jsx)(`b`,{children:n?.pending_operations??0}),(0,P.jsx)(`span`,{children:`pending operations`})]}),(0,P.jsxs)(`article`,{children:[(0,P.jsx)(`b`,{children:n?.connected_peers.length??0}),(0,P.jsx)(`span`,{children:`connected peers`})]})]}),(0,P.jsxs)(`article`,{className:`studio-card`,children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`Convergence`}),(0,P.jsx)(`h2`,{children:r?`Conflict activity detected`:`No conflicts detected`}),(0,P.jsx)(`p`,{children:t?.sync.connected?`The fabric is connected and applying causal ordering.`:`The local replica is independent; conflict detection begins when operations converge with peers.`}),(0,P.jsx)(`code`,{children:`Causal ordering → deterministic materialization → auditable resolution`})]})]})}function Zn({model:e}){let t=e?.workflows??[],[n,r]=(0,g.useState)(),i=t.find(e=>e.name===n)??t[0];return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Design`}),(0,P.jsx)(`h1`,{children:`Workflows`}),(0,P.jsx)(`p`,{children:`Durable state transitions declared by the application model.`})]}),(0,P.jsxs)(`div`,{className:`split-browser`,children:[(0,P.jsx)(`aside`,{children:t.map(e=>(0,P.jsxs)(`button`,{className:e.name===i?.name?`active`:``,onClick:()=>r(e.name),children:[(0,P.jsx)(`strong`,{children:e.name}),(0,P.jsxs)(`span`,{children:[e.steps.length,` steps`]})]},e.name))}),(0,P.jsx)(`section`,{children:i?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`div`,{className:`card-kind`,children:`workflow`}),(0,P.jsx)(`h2`,{children:i.name}),i.parameters.length>0&&(0,P.jsxs)(`code`,{className:`signature`,children:[`(`,i.parameters,`)`]}),(0,P.jsx)(`div`,{className:`workflow-track`,children:i.steps.map((e,t)=>(0,P.jsxs)(g.Fragment,{children:[(0,P.jsxs)(`article`,{children:[(0,P.jsx)(`span`,{children:t+1}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`strong`,{children:e.name}),e.statements.map(e=>(0,P.jsx)(`code`,{children:e},e))]})]}),t<i.steps.length-1&&(0,P.jsx)(`i`,{children:`→`})]},e.name))})]}):(0,P.jsx)(`div`,{className:`model-empty`,children:`No workflows are declared.`})})]})]})}function Qn({model:e}){let t=e?.agents??[],[n,r]=(0,g.useState)(),i=t.find(e=>e.name===n)??t[0];return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Design`}),(0,P.jsx)(`h1`,{children:`Agents`}),(0,P.jsx)(`p`,{children:`Autonomous participants whose authority and workflows are part of the model.`})]}),(0,P.jsxs)(`div`,{className:`split-browser`,children:[(0,P.jsx)(`aside`,{children:t.map(e=>(0,P.jsxs)(`button`,{className:e.name===i?.name?`active`:``,onClick:()=>r(e.name),children:[(0,P.jsx)(`strong`,{children:e.name}),(0,P.jsxs)(`span`,{children:[e.statements.length,` bindings`]})]},e.name))}),(0,P.jsx)(`section`,{children:i?(0,P.jsx)(P.Fragment,{children:(0,P.jsxs)(`div`,{className:`agent-orbit`,children:[(0,P.jsxs)(`div`,{className:`agent-core`,children:[(0,P.jsx)(`span`,{children:`agent`}),(0,P.jsx)(`strong`,{children:i.name})]}),i.statements.map(e=>(0,P.jsxs)(`div`,{className:`agent-binding`,children:[(0,P.jsx)(`span`,{children:e.split(` `)[0]}),(0,P.jsx)(`strong`,{children:e.split(` `).slice(1).join(` `)})]},e))]})}):(0,P.jsx)(`div`,{className:`model-empty`,children:`No agents are declared.`})})]})]})}function $n({db:e,namespace:t=`default`,reference:n}){let[r,i]=(0,g.useState)(n??``),[a,o]=(0,g.useState)(null),[s,c]=(0,g.useState)([]),[l,u]=(0,g.useState)(`Enter a Flow reference to trace it.`);(0,g.useEffect)(()=>{n&&i(n)},[n]);let d=async()=>{if(!(!e||!r))try{let t=e.provenance(r);o(t),u(`Causal graph resolved`)}catch{o(null);let t=await e.auditEvents(),n=r.split(`/`),i=n[n.length-1]??``,a=t.filter(e=>e.key.includes(i));c(a),u(a.length?`Local mutation lineage`:`No local lineage found for this reference`)}};return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Provenance`}),(0,P.jsx)(`p`,{children:`Follow why state exists—from durable mutations to causal workflow and agent edges.`})]}),(0,P.jsxs)(`div`,{className:`reference-query`,children:[(0,P.jsx)(`input`,{value:r,onChange:e=>i(e.target.value),placeholder:`flow://${t}/Collection/id`}),(0,P.jsx)(`button`,{onClick:()=>void d(),children:`Trace`})]}),(0,P.jsxs)(`article`,{className:`studio-card provenance-result`,children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`Lineage`}),(0,P.jsx)(`h2`,{children:l}),a&&(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[a.nodes.length,` nodes`]}),(0,P.jsxs)(`span`,{children:[a.edges.length,` edges`]})]}),(0,P.jsx)(`div`,{className:`provenance-nodes`,children:a.nodes.map(e=>(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`b`,{children:e.label}),(0,P.jsx)(`small`,{children:e.type})]},e.id))})]}),!a&&s.map(e=>(0,P.jsxs)(`div`,{className:`provenance-event`,children:[(0,P.jsx)(`span`,{children:e.sequence}),(0,P.jsxs)(`b`,{children:[e.type,` `,e.collection]}),(0,P.jsx)(`code`,{children:e.key}),(0,P.jsx)(`small`,{children:new Date(e.timestamp).toLocaleString()})]},`${e.sequence}-${e.key}`))]})]})}function er({diagnostics:e,model:t}){let n=e?[[`Runtime`,e.runtime.status,e.runtime.reactive?`reactive`:`non-reactive`],[`Storage`,e.storage.status,`${e.storage.backend} · ${e.storage.persistent?`persistent`:`volatile`}`],[`Synchronization`,e.sync.status,`${e.sync.peers} peers · ${e.sync.pendingOperations} pending`],[`Fabric`,e.fabric.status,`${e.fabric.references} references`],[`Capabilities`,e.capabilities.status,`${e.capabilities.available}/${e.capabilities.count} available`],[`Execution`,e.execution.status,`${e.execution.running} running · ${e.execution.failed} failed`],[`Workflows`,e.workflow.status,`${e.workflow.active}/${e.workflow.total} active`]]:[];return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Health`}),(0,P.jsx)(`p`,{children:`Runtime diagnostics, not optimistic defaults.`})]}),(0,P.jsx)(`div`,{className:`health-grid`,children:n.map(([e,t,n])=>(0,P.jsxs)(`article`,{className:`health-item status-${t}`,children:[(0,P.jsx)(`span`,{className:`status-icon`,children:t===`healthy`?`✓`:`!`}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`b`,{children:e}),(0,P.jsx)(`small`,{children:n})]})]},e))}),!e&&(0,P.jsx)(`div`,{className:`model-empty`,children:`Diagnostics are unavailable until Studio connects to a runtime.`}),e?.issues.map((e,t)=>(0,P.jsxs)(`div`,{className:`health-issue ${e.severity}`,children:[(0,P.jsx)(`b`,{children:e.component}),` `,e.message]},t)),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[t?.collections.length??0,` collections modeled`]}),(0,P.jsxs)(`span`,{children:[t?.workflows.length??0,` workflows modeled`]}),(0,P.jsxs)(`span`,{children:[t?.agents.length??0,` agents modeled`]})]})]})}function tr({db:e,remoteUrl:t=``,token:n=``,onConnect:r}){let[i,a]=(0,g.useState)(t),[o,s]=(0,g.useState)(n),c=e?.runtime();return(0,g.useEffect)(()=>{a(t),s(n)},[t,n]),(0,P.jsxs)(`div`,{className:`settings-panel`,children:[(0,P.jsx)(`h2`,{children:`Settings`}),(0,P.jsxs)(`div`,{className:`settings-content`,children:[(0,P.jsx)(`h3`,{children:`Connection`}),(0,P.jsxs)(`div`,{className:`connection-info`,children:[(0,P.jsxs)(`div`,{className:`info-row`,children:[(0,P.jsx)(`label`,{children:`Runtime Environment`}),(0,P.jsx)(`span`,{children:c?.runtime||`unavailable`})]}),(0,P.jsxs)(`div`,{className:`info-row`,children:[(0,P.jsx)(`label`,{children:`Storage Backend`}),(0,P.jsx)(`span`,{children:c?.storage||`unavailable`})]}),(0,P.jsxs)(`div`,{className:`info-row`,children:[(0,P.jsx)(`label`,{children:`Instance ID`}),(0,P.jsx)(`span`,{className:`monospace`,children:e?.instanceId?.()||`unavailable`})]})]}),(0,P.jsxs)(`form`,{className:`connection-form`,onSubmit:e=>{e.preventDefault(),r?.(i,o)},children:[(0,P.jsxs)(`label`,{children:[`Server or managed endpoint`,(0,P.jsx)(`input`,{type:`url`,value:i,onChange:e=>a(e.target.value),placeholder:`https://your-runtime.example.com`})]}),(0,P.jsxs)(`label`,{children:[`API token`,(0,P.jsx)(`input`,{type:`password`,value:o,onChange:e=>s(e.target.value),placeholder:`fdb_live_…`,autoComplete:`off`})]}),(0,P.jsx)(`p`,{children:`Tokens are kept in this browser session and are never written to the project.`}),(0,P.jsx)(`button`,{className:`btn btn-primary`,type:`submit`,children:`Connect Studio`})]})]})]})}function nr({db:e,model:t,onSearch:n}){let[r,i]=(0,g.useState)(``),[a,o]=(0,g.useState)([]),s=e=>{i(e),n&&n(e)};return(0,g.useEffect)(()=>{let n=!0;return(async()=>{let i=r.trim().toLowerCase();if(!i){o([]);return}let a=[...t?.collections.map(e=>({kind:`collection`,name:e.name,detail:`${e.fields.length} fields`}))??[],...t?.capabilities.map(e=>({kind:`capability`,name:e.name,detail:e.statements.join(` · `)}))??[],...t?.workflows.map(e=>({kind:`workflow`,name:e.name,detail:`${e.steps.length} steps`}))??[],...t?.agents.map(e=>({kind:`agent`,name:e.name,detail:e.statements.join(` · `)}))??[]].filter(e=>JSON.stringify(e).toLowerCase().includes(i)),s=e&&t?(await Promise.all(t.collections.map(async t=>(await e.collection(t.name).all()).filter(e=>JSON.stringify(e).toLowerCase().includes(i)).slice(0,3).map(e=>({kind:`object`,name:`${t.name}/${String(e.id??`record`)}`,detail:JSON.stringify(e)}))))).flat():[];n&&o([...a,...s].slice(0,12))})(),()=>{n=!1}},[e,t,r]),(0,P.jsxs)(`div`,{className:`global-search`,children:[(0,P.jsx)(`input`,{type:`text`,placeholder:`Search: documents/123, flow://, agent/name, etc.`,value:r,onChange:e=>s(e.target.value),className:`search-input global`}),r&&(0,P.jsx)(`div`,{className:`search-results`,children:(0,P.jsxs)(`div`,{className:`results-group`,children:[(0,P.jsx)(`h4`,{children:`Model & runtime`}),a.map((e,t)=>(0,P.jsxs)(`div`,{className:`search-result`,children:[(0,P.jsx)(`b`,{children:e.name}),(0,P.jsx)(`span`,{children:e.kind}),(0,P.jsx)(`small`,{children:e.detail})]},`${e.kind}-${e.name}-${t}`)),!a.length&&(0,P.jsx)(`div`,{className:`empty-message`,children:`No matches`})]})})]})}var rr=Object.freeze({domain:`undeclared`,validation:`refresh`,invalidation:!1,reason:`the runtime does not declare a freshness capability`}),ir=class extends Error{constructor(e){super(e),this.name=`FreshnessContractViolation`}};function ar(e,t){let n=typeof t.revision==`function`;if(e.validation===`revision`){if(!n)throw new ir(`a runtime advertising revision validation must implement revision()`);if(!e.revisionScope)throw new ir(`a runtime advertising revision validation must name the scope its revisions are comparable within`);if(e.domain===`replicated`||e.domain===`multi-process-file`)throw new ir(`the ${e.domain} domain has no serialization boundary that can make a scalar revision authoritative`);return e}if(!e.reason)throw new ir(`a runtime that cannot validate by revision must say why`);return e}async function or(e){return typeof e.freshness==`function`?ar(await e.freshness(),e):ar(rr,e)}async function sr(e){let t=await or(e);if(t.validation!==`revision`)throw new ir(`this runtime does not offer revision validation: ${t.reason}`);let n=await e.revision();if(n.scope!==t.revisionScope)throw new ir(`revision scope ${n.scope} does not match the advertised scope ${t.revisionScope}`);return n}function cr(e,t){return e.scope===t.scope&&e.value===t.value}var lr=class{dependencies=new Map;subscribers=new Map;recentChanges=new Map;registerDependency(e,t){this.dependencies.has(e)||this.dependencies.set(e,new Set),this.dependencies.get(e).add(t)}subscribe(e,t){this.subscribers.has(e)||this.subscribers.set(e,new Set);let n=this.subscribers.get(e);return n.add(t),()=>{n.delete(t),n.size===0&&this.subscribers.delete(e)}}async emitChange(e,t){this.recentChanges.has(e)||this.recentChanges.set(e,[]),this.recentChanges.get(e).push(t);let n=this.subscribers.get(e);n&&await Promise.all([...n].map(e=>e(t)));let r=this.dependencies.get(e);if(r)for(let e of r)await this.emitChange(e,t)}getRecentChanges(e){return this.recentChanges.get(e)||[]}clearRecentChanges(e){this.recentChanges.delete(e)}getSubscriberCount(e){return this.subscribers.get(e)?.size??0}hasDependents(e){let t=this.dependencies.get(e);return t!==void 0&&t.size>0}getDependents(e){let t=this.dependencies.get(e);return t?Array.from(t):[]}},ur=null;function dr(){return ur||=new lr,ur}var fr=class{entries=new Map;field;stats={reads:0,writes:0,selectivity:0};constructor(e){this.field=e}add(e,t){let n=this.normalizeKey(t);this.entries.has(n)||this.entries.set(n,new Set),this.entries.get(n).add(e),this.stats.writes++}remove(e,t){let n=this.normalizeKey(t),r=this.entries.get(n);r&&(r.delete(e),r.size===0&&this.entries.delete(n)),this.stats.writes++}query(e){let t=this.normalizeKey(e);this.stats.reads++;let n=this.entries.get(t);return n?Array.from(n):[]}size(){return this.entries.size}getStats(){return{entries:this.entries.size,reads:this.stats.reads,writes:this.stats.writes,selectivity:this.entries.size>0?1/this.entries.size:0}}normalizeKey(e){return e==null?`__null__`:typeof e==`object`?JSON.stringify(e):String(e)}},pr=class{entries=[];field;stats={reads:0,writes:0,selectivity:0};constructor(e){this.field=e}add(e,t){let n=this.entries.find(e=>this.compareKeys(e.key,t)===0);n||(n={key:t,recordIds:new Set},this.entries.push(n),this.entries.sort((e,t)=>this.compareKeys(e.key,t.key))),n.recordIds.add(e),this.stats.writes++}remove(e,t){let n=this.entries.find(e=>this.compareKeys(e.key,t)===0);n&&(n.recordIds.delete(e),n.recordIds.size===0&&(this.entries=this.entries.filter(e=>e!==n))),this.stats.writes++}queryEqual(e){this.stats.reads++;let t=this.entries.find(t=>this.compareKeys(t.key,e)===0);return t?Array.from(t.recordIds):[]}queryRange(e,t,n=!0,r=!0){this.stats.reads++;let i=new Set;for(let a of this.entries){let o=this.compareKeys(a.key,e),s=this.compareKeys(a.key,t);(n?o>=0:o>0)&&(r?s<=0:s<0)&&a.recordIds.forEach(e=>i.add(e))}return Array.from(i)}size(){return this.entries.length}getStats(){return this.entries.reduce((e,t)=>e+t.recordIds.size,0),{entries:this.entries.length,reads:this.stats.reads,writes:this.stats.writes,selectivity:this.entries.length>0?1/this.entries.length:0}}compareKeys(e,t){return e==null?-1:t==null?1:e<t?-1:+(e>t)}},mr=class{tokenIndex=new Map;fields;stats={reads:0,writes:0,selectivity:0};constructor(e){this.fields=e}add(e,t){let n=this.extractText(t),r=this.tokenize(n);for(let t of r)this.tokenIndex.has(t)||this.tokenIndex.set(t,new Set),this.tokenIndex.get(t).add(e);this.stats.writes++}remove(e,t){let n=this.extractText(t),r=this.tokenize(n);for(let t of r){let n=this.tokenIndex.get(t);n&&(n.delete(e),n.size===0&&this.tokenIndex.delete(t))}this.stats.writes++}query(e){this.stats.reads++;let t=this.tokenize(e);if(t.length===0)return[];let n=this.tokenIndex.get(t[0]);if(!n)return[];n=new Set(n);for(let e=1;e<t.length;e++){let r=this.tokenIndex.get(t[e]);if(!r)return[];n=new Set([...n].filter(e=>r.has(e)))}return Array.from(n)}size(){return this.tokenIndex.size}getStats(){return{entries:this.tokenIndex.size,reads:this.stats.reads,writes:this.stats.writes,selectivity:this.tokenIndex.size>0?1/this.tokenIndex.size:0}}extractText(e){return this.fields.map(t=>{let n=e[t];return n?String(n):``}).join(` `)}tokenize(e){return e.toLowerCase().split(/\s+/).filter(e=>e.length>0)}},hr=class{indexes=new Map;config=new Map;indexStats=new Map;buildIndex(e){if(e.type===`hash`&&e.field)return new fr(e.field);if(e.type===`sorted`&&e.field)return new pr(e.field);if(e.type===`text`&&e.textFields)return new mr(e.textFields);throw Error(`Invalid index config: ${JSON.stringify(e)}`)}resetEntries(){for(let[e,t]of this.config){this.indexes.set(e,this.buildIndex(t));let n=this.indexStats.get(e);n&&(n.entries=0,n.size=0,n.lastUpdated=Date.now())}}createIndex(e){if(this.indexes.has(e.name))throw Error(`Index ${e.name} already exists`);let t=this.buildIndex(e);this.indexes.set(e.name,t),this.config.set(e.name,e),this.indexStats.set(e.name,{name:e.name,type:e.type,entries:0,size:0,lastUpdated:Date.now(),reads:0,writes:0,selectivity:0})}updateRecord(e,t,n){for(let[r,i]of this.indexes){let a=this.config.get(r);t&&(a.type===`hash`&&a.field||a.type===`sorted`&&a.field?i.remove(e,t[a.field]):a.type===`text`&&i.remove(e,t)),a.type===`hash`&&a.field||a.type===`sorted`&&a.field?i.add(e,n[a.field]):a.type===`text`&&i.add(e,n);let o=this.indexStats.get(r);o.lastUpdated=Date.now();let s=i.getStats();Object.assign(o,s)}}queryIndex(e,t){let n=this.indexes.get(e);if(!n)throw Error(`Index ${e} not found`);let r=this.config.get(e);if(r.type===`hash`)return n.query(t.value);if(r.type===`sorted`){let e=n;if(t.operator===`eq`)return e.queryEqual(t.value);if(t.operator===`range`)return e.queryRange(t.min,t.max);if(t.operator===`gte`)return e.queryRange(t.value,Number.MAX_VALUE);if(t.operator===`lte`)return e.queryRange(Number.MIN_VALUE,t.value)}else if(r.type===`text`)return n.query(t.value);return[]}listIndexes(){return Array.from(this.config.values())}getStats(e){return this.indexStats.get(e)||null}planQuery(e){let t=[];for(let n of e)for(let[e,r]of this.config)if(r.field===n||r.fields?.includes(n)){let n=this.indexStats.get(e);t.push({indexName:e,indexType:r.type,estimatedRows:Math.ceil(100/(n.selectivity||1)),cost:n.reads+n.writes,canPruneAll:r.type===`hash`,requiresPostFilter:r.type===`text`||r.type===`sorted`})}if(t.length===0)return{strategy:`full-scan`,indexes:[],estimatedRows:1e3,totalCost:1e3,explanation:`No suitable index found, using full collection scan`};t.sort((e,t)=>e.cost-t.cost);let n=t[0];return{strategy:`index-scan`,indexes:[n],estimatedRows:n.estimatedRows,totalCost:n.cost,explanation:`Using ${n.indexType} index on ${n.indexName}`}}},gr=null;async function _r(){if(gr!==null)return gr;try{let e=await x(()=>import(`./feltdb_wasm-CD744e5D.js`),[]);return gr=e,e}catch{return null}}var vr=class{tsBackend=null;wasmBackend=null;useWasm=!1;constructor(){this.tsBackend=new hr}async initializeWasm(){if(this.wasmBackend!==null)return;let e=await _r();if(e&&e.WasmIndexManager)try{this.wasmBackend=new e.WasmIndexManager,this.useWasm=!0}catch{this.useWasm=!1}}createIndex(e){if(this.useWasm&&this.wasmBackend)try{this.wasmBackend.create_index(JSON.stringify(e));return}catch{}this.tsBackend?.createIndex(e)}updateRecord(e,t,n){if(this.useWasm&&this.wasmBackend)try{let r=t?JSON.stringify(t):null,i=JSON.stringify(n);this.wasmBackend.update_record(e,r,i);return}catch{}this.tsBackend?.updateRecord(e,t,n)}resetEntries(){return this.useWasm&&this.wasmBackend?!1:(this.tsBackend?.resetEntries(),this.tsBackend!==null)}queryIndex(e,t){if(this.useWasm&&this.wasmBackend)try{let n=this.wasmBackend.query_index(e,t.operator,String(t.value||``));return JSON.parse(n)}catch{}return this.tsBackend?.queryIndex(e,t)||[]}queryCompoundIndex(e,t){if(this.useWasm&&this.wasmBackend)try{let n=Object.values(t).map(e=>String(e)).join(`\0`),r=this.wasmBackend.query_index(e,`eq`,n);return JSON.parse(r)}catch{}return[]}listIndexes(){if(this.useWasm&&this.wasmBackend)try{let e=this.wasmBackend.list_indexes();return JSON.parse(e)}catch{}return this.tsBackend?.listIndexes()||[]}},yr=class{db;collectionName;constructor(e,t){this.db=e,this.collectionName=t}async saveIndexConfig(e,t){let n=`__indexes__:${this.collectionName}:${e.name}`,r={config:e,version:1,createdAt:Date.now(),lastUpdated:Date.now(),entryCount:t},i=await this.db.insert(n,JSON.stringify(r));i.success||console.warn(`Failed to save index config for ${e.name}: ${i.error}`)}async loadIndexConfigs(){let e=await this.db.query(`__indexes__:${this.collectionName}`);if(!e.success||!e.data)return[];try{return JSON.parse(e.data).map(e=>e.config)}catch{return console.warn(`Failed to parse index configs for ${this.collectionName}`),[]}}async getIndexConfig(e){let t=`__indexes__:${this.collectionName}:${e}`,n=await this.db.get(t);if(!n.success||!n.data)return null;try{return JSON.parse(n.data).config}catch{return null}}async deleteIndexConfig(e){let t=`__indexes__:${this.collectionName}:${e}`;if(!this.db.delete){console.warn(`Failed to delete index config for ${e}: delete is not supported`);return}let n=this.db.delete(t),r=n instanceof Promise?await n:n;r?.success||console.warn(`Failed to delete index config for ${e}: ${r?.error}`)}async updateIndexStats(e,t){let n=`__indexes__:${this.collectionName}:${e}`,r=await this.db.get(n);if(!(!r.success||!r.data))try{let e=JSON.parse(r.data);e.lastUpdated=Date.now(),e.entryCount=t,await this.db.insert(n,JSON.stringify(e))}catch{console.warn(`Failed to update index stats for ${e}`)}}async getSnapshot(){let e=await this.loadIndexConfigs();return{collectionName:this.collectionName,indexes:e.map(e=>({config:e,version:1,createdAt:Date.now(),lastUpdated:Date.now(),entryCount:0})),timestamp:Date.now()}}},br=class e{db;name;collectionId;predicate=null;cache=[];subscribers=new Set;parent=null;parentId=null;isInitialized=!1;unsubscribeFunctions=new Set;graphUnsubscribe=null;runtimeUnsubscribe=null;indexBackend=new vr;indexStore;indexesLoaded=!1;cacheGeneration=0;indexedGeneration=-1;lastPlan=null;recordsById=null;lastRawSnapshot=null;cachedRevision=null;lastFreshness=null;constructor(e,t,n,r,i=!0){this.db=e,this.name=t,this.collectionId=`${t}-${Math.random().toString(36).substr(2,9)}`,this.predicate=n||null,this.parent=r||null,this.parentId=r?r.collectionId:null,this.indexStore=new yr(e,t),r&&dr().registerDependency(r.collectionId,this.collectionId),i?this.loadPersistedIndexes():this.indexesLoaded=!0}async loadPersistedIndexes(){try{let e=await this.indexStore.loadIndexConfigs();for(let t of e)this.indexBackend.createIndex(t);this.indexesLoaded=!0}catch(e){console.warn(`Failed to load persisted indexes for ${this.name}:`,e),this.indexesLoaded=!0}}async all(){return await this.refresh(),[...this.cache]}async find(e={}){let t=await this.all(),n=Object.entries(e);if(n.length===0)return this.lastPlan={strategy:`scan`,reason:`no query fields`,candidatesExamined:t.length,recordsReturned:t.length},t;let r=e=>n.every(([t,n])=>e[t]===n),i=this.indexFor(n);if(i){let e=this.indexCandidates(i.indexName,i.field,i.value);if(e){let t=e.filter(r);return this.lastPlan={strategy:`index`,indexName:i.indexName,field:i.field,candidatesExamined:e.length,recordsReturned:t.length},t}}let a=t.filter(r);return this.lastPlan={strategy:`scan`,reason:i?`index could not be trusted for this snapshot`:`no index covers the queried fields`,candidatesExamined:t.length,recordsReturned:a.length},a}lastQueryPlan(){return this.lastPlan}indexFor(e){for(let t of this.indexBackend.listIndexes()){if(t.type!==`hash`||!t.field)continue;let n=e.find(([e])=>e===t.field);if(n)return{indexName:t.name,field:t.field,value:n[1]}}return null}indexCandidates(e,t,n){if(!this.ensureIndexReflectsCache())return null;let r;try{r=this.indexBackend.queryIndex(e,{field:t,operator:`eq`,value:n})}catch{return null}let i=[];for(let e of r){let t=this.recordsById?.get(e);if(t===void 0)return null;i.push(t)}return i}ensureIndexReflectsCache(){if(this.indexedGeneration===this.cacheGeneration)return this.recordsById!==null;if(!this.indexBackend.resetEntries())return this.recordsById=null,!1;let e=new Map;for(let t of this.cache){let n=t?.id;if(n==null)return this.recordsById=null,this.indexedGeneration=this.cacheGeneration,!1;let r=String(n);e.set(r,t),this.indexBackend.updateRecord(r,null,t)}return this.recordsById=e,this.indexedGeneration=this.cacheGeneration,!0}createIndex(e){this.indexBackend.createIndex(e);for(let e of this.cache){let t=e?.id||JSON.stringify(e);this.indexBackend.updateRecord(t,null,e)}this.indexStore.saveIndexConfig(e,this.cache.length)}listIndexes(){return this.indexBackend.listIndexes()}async rebuildIndexes(){let e=this.indexBackend.listIndexes(),t=await this.all();for(let n of t){let t=n?.id||JSON.stringify(n);for(let r of e)this.indexBackend.updateRecord(t,null,n)}}async validateIndexes(){return this.indexBackend.listIndexes().length===0||(await this.all()).length,!0}async get(e){let t=`${this.name}:${e}`,n=await this.db.get(t);if(!n.success)throw Error(n.error||`Failed to read record ${e}`);return n.data?JSON.parse(n.data):null}where(t){return new e(this.db,this.name,e=>(!this.predicate||this.predicate(e))&&t(e),this.parent||this)}async insert(e,t){let n=t??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`,r=`${this.name}:${n}`,i=typeof e==`object`&&e?{...e,id:n,__version:1}:e,a=await this.db.insert(r,JSON.stringify(i));if(!a.success)throw Error(`Insert failed: ${a.error}`);this.indexBackend.updateRecord(String(n),null,i);let o={type:`insert`,key:r,value:i,timestamp:Date.now()};return await dr().emitChange(this.name,o),String(n)}async update(e,t){let n=await this.get(e);if(!n)throw Error(`Record ${e} not found`);let r={...n,...t},i=`${this.name}:${e}`,a=await(this.db.update?this.db.update(i,JSON.stringify(r)):this.db.insert(i,JSON.stringify(r)));if(!a.success)throw Error(`Update failed: ${a.error}`);this.indexBackend.updateRecord(String(e),n,r);let o={type:`update`,key:i,value:r,timestamp:Date.now()};await dr().emitChange(this.name,o)}async updateIfVersion(e,t,n,r,i,a,o){let s=o??await this.get(e);if(!s)throw Error(`Record ${e} not found`);let c={...n};delete c.__version;let l={...s,...c},u=`${this.name}:${e}`;if(!this.db.cas)throw Error(`updateIfVersion is not supported by this FeltDB runtime. Only FileJsDb (Node.js) and HTTP/Server backends support atomic version-checked updates.`);let d=await this.db.cas({key:u,expectedVersion:t,expectedEpoch:r,expectedLeaseId:i,rejectIfDiverged:a,value:JSON.stringify(l)});if(!d.updated)return{updated:!1,currentVersion:d.currentVersion,conflictCode:d.conflictCode};let f=d.item||l;f.__version=d.currentVersion,this.indexBackend.updateRecord(String(e),s,f);let p={type:`update`,key:u,value:f,timestamp:Date.now()};return await dr().emitChange(this.name,p),{updated:!0,item:f}}async delete(e){let t=`${this.name}:${e}`;if(!this.db.delete)throw Error(`Delete is not supported by this FeltDB runtime`);let n=await this.db.delete(t);if(!n.success)throw Error(`Delete failed: ${n.error}`);let r=await this.get(e);r&&this.indexBackend.updateRecord(String(e),r,{});let i={type:`delete`,key:t,value:null,timestamp:Date.now()};await dr().emitChange(this.name,i)}async count(){return(await this.all()).length}async exists(e){return await this.get(e)!==null}async putIfAbsent(e,t){let n=`${this.name}:${e}`,r=typeof t==`object`&&t?{...t,id:e}:t,i=JSON.stringify(r);if(!this.db.putIfAbsent)throw Error(`putIfAbsent is not supported by this FeltDB runtime. Only FileJsDb (Node.js) supports durable atomic conditional creation.`);let a=await this.db.putIfAbsent(n,i);if(a.inserted){let e={type:`insert`,key:n,value:r,timestamp:Date.now()};await dr().emitChange(this.name,e)}return{inserted:a.inserted,value:JSON.parse(a.value)}}subscribe(e,t){if(this.subscribers.add(e),this.isInitialized||this.refresh().catch(e=>console.error(`Failed to initialize collection:`,e)),!this.graphUnsubscribe){let e=null,t=()=>e||(e=(async()=>{await this.refresh();for(let e of this.subscribers)e([...this.cache])})().finally(()=>{e=null}),e),n=dr();this.graphUnsubscribe=n.subscribe(this.name,t),this.db.subscribe_changes&&(this.runtimeUnsubscribe=this.db.subscribe_changes(e=>{e===this.name&&t()},this.name))}return()=>{if(this.subscribers.delete(e),this.subscribers.size===0){this.graphUnsubscribe?.(),this.runtimeUnsubscribe?.(),this.graphUnsubscribe=null,this.runtimeUnsubscribe=null;for(let e of this.unsubscribeFunctions)e();this.unsubscribeFunctions.clear()}}}close(){this.graphUnsubscribe?.(),this.runtimeUnsubscribe?.(),this.graphUnsubscribe=null,this.runtimeUnsubscribe=null,this.subscribers.clear();for(let e of this.unsubscribeFunctions)e();this.unsubscribeFunctions.clear()}freshness(){return or(this.db)}lastFreshnessCheck(){return this.lastFreshness}async currentRevision(){try{return{revision:await sr(this.db)}}catch(e){return{reason:e instanceof Error?e.message:String(e)}}}async refresh(){try{let e=await this.currentRevision();if(`revision`in e){if(this.isInitialized&&this.cachedRevision&&cr(this.cachedRevision,e.revision)){this.lastFreshness={validation:`revision`,servedFromCache:!0,revision:e.revision};return}}else this.cachedRevision=null;let t=await this.db.query(this.name);if(this.lastFreshness=`revision`in e?{validation:`revision`,servedFromCache:!1,revision:e.revision}:{validation:`refresh`,servedFromCache:!1,reason:e.reason},t.success&&t.data){if(this.cachedRevision=`revision`in e?e.revision:null,this.isInitialized&&t.data===this.lastRawSnapshot)return;try{let e=JSON.parse(t.data);this.predicate&&(e=e.filter(e=>{try{return this.predicate(e)}catch{return!1}})),this.cache=e,this.cacheGeneration+=1,this.lastRawSnapshot=t.data,this.isInitialized=!0}catch(e){console.error(`Failed to parse query results:`,e)}}else t.success||console.error(`Query failed:`,t.error)}catch(e){console.error(`Refresh error:`,e)}}},xr=class extends Error{transactionId;constructor(e,t){super(e),this.name=`AtomicTransactionError`,this.transactionId=t}},Sr=class extends xr{code=`PRECONDITION_FAILED`;failure;constructor(e,t,n){super(e,t),this.name=`ConditionalConflictError`,this.failure=n}};function Cr(e){let{ifVersion:t,expectedVersion:n,...r}=e;if(t!==void 0&&n!==void 0&&t!==n)throw Error(`precondition on ${e.collection}:${e.id} supplies ifVersion ${t} and expectedVersion ${n}; they are the same predicate`);let i=t??n;return i===void 0?{...r}:{...r,expectedVersion:i}}function wr(){let e=Math.random().toString(36).slice(2,10);return`tx_${Date.now().toString(36)}_${e}`}var Tr=class{transactionId;staged=[];required=[];sealed=!1;constructor(e){this.transactionId=e||wr()}get operations(){return this.staged}collection(e){if(!e||!e.trim())throw Error(`collection name is required`);let t=e=>{let{ifVersion:t,expectedVersion:n,...r}=e;if(t!==void 0&&n!==void 0&&t!==n)throw Error(`${e.collection}:${e.id} supplies ifVersion ${t} and expectedVersion ${n}; they are the same predicate`);let i=t??n,a=i===void 0?{...r}:{...r,expectedVersion:i};if(this.sealed)throw Error(`this transaction has already been committed; start a new one`);if(this.staged.find(e=>e.collection===a.collection&&e.id===a.id))throw Error(`transaction already stages ${a.collection}:${a.id}; a transaction may write each record at most once`);this.staged.push(a)},n={set:(r,i,a)=>(t({collection:e,id:String(r),value:i,requireAbsent:a?.requireAbsent,ifVersion:a?.ifVersion,expectedVersion:a?.expectedVersion,expectedEpoch:a?.expectedEpoch,expectedLeaseId:a?.expectedLeaseId}),n),insert:(e,t,r)=>n.set(t,e,r),delete:(r,i)=>(t({collection:e,id:String(r),requireAbsent:i?.requireAbsent,ifVersion:i?.ifVersion,expectedVersion:i?.expectedVersion,expectedEpoch:i?.expectedEpoch,expectedLeaseId:i?.expectedLeaseId}),n)};return n}get preconditions(){return this.required}require(e){if(this.sealed)throw Error(`this transaction has already been committed; start a new one`);if(!e.collection?.trim()||!String(e.id??``).trim())throw Error(`a precondition requires a collection and an id`);let t=Cr(e);if(t.requireAbsent!==!0&&t.expectedVersion===void 0&&t.expectedEpoch===void 0&&t.expectedLeaseId===void 0)throw Error(`precondition on ${e.collection}:${e.id} constrains nothing`);return this.required.push({...t,id:String(e.id)}),this}seal(){return this.sealed=!0,{transactionId:this.transactionId,operations:[...this.staged],preconditions:[...this.required]}}},Er=Symbol(`FELTDB_NO_CHANGE`),Dr=class{id;jsDb;cellCollection;replicaCollection;failureObservationCollection;mutationQueue=[];isLocked=!1;changeHandlers=[];isReplica=!1;constructor(e,t){this.id=t,this.jsDb=e,this.cellCollection=new br(e,`_cells`,void 0,void 0,!1),this.replicaCollection=new br(e,`_replicas`,void 0,void 0,!1),this.failureObservationCollection=new br(e,`_failure_observations`,void 0,void 0,!1)}setReplica(e){this.isReplica=e}isReplicaCell(){return this.isReplica}async applyReplication(e){return this.acquireLock(async()=>{let t=this.encodeKey();for(;;){let n=await this.cellCollection.get(t),r=n?this.snapshotFromState(n):null;if(r&&r.version>e.version)throw Error(`REPLICATION_CONFLICT: cannot apply version ${e.version}, current is ${r.version}`);if(r&&r.version===e.version){if(JSON.stringify(r.value)!==JSON.stringify(e.value)){let n=`version ${e.version} has divergent state`;throw await this.replicaCollection.insert({cellId:this.id,version:r.version,value:r.value,updatedAt:r.updatedAt,authority:r.authority,placement:r.placement,lease:r.lease,divergent:!0,conflictReason:n},t),Error(`REPLICATION_CONFLICT: ${n}`)}await this.clearDivergenceMarker();return}let i={id:e.cellId,version:e.version,value:e.value,updatedAt:e.updatedAt,authority:{owner:e.authority.owner,epoch:e.authority.epoch,lifecycle:e.authority.lifecycle},placement:{nodeId:e.placement.nodeId},lease:e.lease};if(!r)await this.cellCollection.insert(i,t);else{let e=n?.__version??r.version;if(!(await this.cellCollection.updateIfVersion(t,e,i,r.authority.epoch)).updated)continue}await this.clearDivergenceMarker();return}})}async clearDivergenceMarker(){try{await this.replicaCollection.delete(this.encodeKey())}catch(e){if(e instanceof Error&&/^Delete failed: record(?: .+)? not found$/i.test(e.message))return;throw e}}encodeKey(){return`${this.hashId(this.id)}`}hashId(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return Math.abs(t).toString(16)}async get(){let e=this.encodeKey(),t=await this.cellCollection.get(e);return t?this.snapshotFromState(t):null}async set(e,t){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let n=await this.getUnlocked();if(n?.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let r=n?.authority.epoch??0;if(t?.authorityEpoch!==void 0&&n&&t.authorityEpoch!==r)throw Error(`AUTHORITY_CONFLICT: expected epoch ${r}, got ${t.authorityEpoch}`);if(t?.leaseId!==void 0){if(!n?.lease)throw Error(`LEASE_INVALID: no active lease`);if(n.lease.leaseId!==t.leaseId)throw Error(`LEASE_INVALID: lease ID mismatch`);if(n.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(n.lease.epoch!==r)throw Error(`LEASE_INVALID: lease epoch does not match authority epoch`)}let i=n?.version??0,a=n?.authority??{owner:null,epoch:0,lifecycle:`active`},o=n?.placement??{nodeId:null},s=n?.lease??null,c={id:this.id,version:i+1,value:e,updatedAt:new Date().toISOString(),authority:a,placement:o,lease:s},l=this.encodeKey();if(i===0)await this.cellCollection.insert(c,l);else if(!(await this.cellCollection.updateIfVersion(l,i,c,r,t?.leaseId)).updated)throw Error(`Cell ${this.id} version conflict`);return this.emitChange({cellId:this.id,version:c.version,value:e,timestamp:c.updatedAt,epoch:c.authority.epoch}),this.snapshotFromState(c)})}async update(e,t){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let n=await this.getUnlocked();if(n?.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let r=n?.authority.epoch??0;if(t?.authorityEpoch!==void 0&&n&&t.authorityEpoch!==r)throw Error(`AUTHORITY_CONFLICT: expected epoch ${r}, got ${t.authorityEpoch}`);if(t?.leaseId!==void 0){if(!n?.lease)throw Error(`LEASE_INVALID: no active lease`);if(n.lease.leaseId!==t.leaseId)throw Error(`LEASE_INVALID: lease ID mismatch`);if(n.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(n.lease.epoch!==r)throw Error(`LEASE_INVALID: lease epoch does not match authority epoch`)}let i=n?.value??null,a=n?.version??0,o=e(i);if(o===Er){if(n)return this.snapshotFromState(n);throw Error(`Cell ${this.id} update returned NO_CHANGE but cell does not exist`)}let s=n?.authority??{owner:null,epoch:0,lifecycle:`active`},c=n?.placement??{nodeId:null},l=n?.lease??null,u={id:this.id,version:a+1,value:o,updatedAt:new Date().toISOString(),authority:s,placement:c,lease:l},d=this.encodeKey();if(a===0)await this.cellCollection.insert(u,d);else if(!(await this.cellCollection.updateIfVersion(d,a,u,r,t?.leaseId)).updated)throw Error(`Cell ${this.id} conflict during update`);return this.emitChange({cellId:this.id,version:u.version,value:o,timestamp:u.updatedAt,epoch:u.authority.epoch}),this.snapshotFromState(u)})}async transact(e){return this.acquireLock(async()=>e({get:()=>this.getUnlocked(),set:(e,t)=>this.setUnlocked(e,t),update:(e,t)=>this.updateUnlocked(e,t)}))}async transitionAuthority(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(t.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);if(t.authority.epoch!==e.expectedEpoch)throw Error(`AUTHORITY_CONFLICT: expected epoch ${e.expectedEpoch}, got ${t.authority.epoch}`);e.lifecycle!==void 0&&this.validateLifecycleTransition(t.authority.lifecycle,e.lifecycle);let n={owner:e.owner===void 0?t.authority.owner:e.owner,epoch:t.authority.epoch+1,lifecycle:e.lifecycle===void 0?t.authority.lifecycle:e.lifecycle},r={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:n,placement:t.placement,lease:null},i=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(i,t.version,r,t.authority.epoch)).updated)throw Error(`AUTHORITY_CONFLICT: epoch changed during transition`);return this.emitChange({cellId:this.id,version:r.version,value:t.value,timestamp:r.updatedAt,epoch:r.authority.epoch}),this.snapshotFromState(r)})}async delegate(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(t.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);if(t.authority.epoch!==e.expectedEpoch)throw Error(`AUTHORITY_CONFLICT: expected epoch ${e.expectedEpoch}, got ${t.authority.epoch}`);if(t.authority.owner!==e.from)throw Error(`AUTHORITY_CONFLICT: expected owner ${e.from}, got ${t.authority.owner}`);let n={owner:e.to,epoch:t.authority.epoch+1,lifecycle:t.authority.lifecycle},r={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:n,placement:t.placement,lease:null},i=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(i,t.version,r,t.authority.epoch)).updated)throw Error(`AUTHORITY_CONFLICT: authority changed during delegation`);return this.emitChange({cellId:this.id,version:r.version,value:t.value,timestamp:r.updatedAt,epoch:r.authority.epoch}),this.snapshotFromState(r)})}async updatePlacement(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(t.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let n=t.authority.epoch,r={nodeId:e.nodeId},i={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:t.authority,placement:r,lease:t.lease},a=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(a,t.version,i,n)).updated)throw Error(`Cell ${this.id} conflict during placement update`);return this.emitChange({cellId:this.id,version:i.version,value:t.value,timestamp:i.updatedAt,epoch:i.authority.epoch}),this.snapshotFromState(i)})}async acquireLease(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(t.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);if(t.authority.lifecycle===`suspended`)throw Error(`Cell ${this.id} is suspended`);if(t.lease&&t.lease.expiresAt>Date.now())throw Error(`LEASE_CONFLICT: lease already held by ${t.lease.holder}`);let n=t.authority.epoch,r=`${this.id}:${Date.now()}:${Math.random().toString(36).slice(2)}`,i={holder:e.holder,leaseId:r,epoch:n,expiresAt:Date.now()+e.durationMs},a={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:t.authority,placement:t.placement,lease:i},o=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(o,t.version,a,n)).updated)throw Error(`Cell ${this.id} conflict during lease acquisition`);return this.emitChange({cellId:this.id,version:a.version,value:t.value,timestamp:a.updatedAt,epoch:a.authority.epoch}),this.snapshotFromState(a)})}async renewLease(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(!t.lease)throw Error(`Cell ${this.id} has no active lease`);if(t.lease.leaseId!==e.leaseId)throw Error(`LEASE_CONFLICT: lease ID mismatch`);if(t.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(t.lease.epoch!==t.authority.epoch)throw Error(`AUTHORITY_CONFLICT: authority epoch changed since lease acquisition`);let n=t.authority.epoch,r={holder:t.lease.holder,leaseId:t.lease.leaseId,epoch:t.lease.epoch,expiresAt:Date.now()+e.durationMs},i={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:t.authority,placement:t.placement,lease:r},a=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(a,t.version,i,n)).updated)throw Error(`Cell ${this.id} conflict during lease renewal`);return this.emitChange({cellId:this.id,version:i.version,value:t.value,timestamp:i.updatedAt,epoch:i.authority.epoch}),this.snapshotFromState(i)})}async releaseLease(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(!t.lease)throw Error(`Cell ${this.id} has no active lease`);if(t.lease.leaseId!==e.leaseId)throw Error(`LEASE_CONFLICT: lease ID mismatch`);let n=t.authority.epoch,r={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:t.authority,placement:t.placement,lease:null},i=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(i,t.version,r,n)).updated)throw Error(`Cell ${this.id} conflict during lease release`);return this.emitChange({cellId:this.id,version:r.version,value:t.value,timestamp:r.updatedAt,epoch:r.authority.epoch}),this.snapshotFromState(r)})}async promote(e){return this.acquireLock(async()=>{let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);return this.promoteSnapshot(t,e)})}async promoteSnapshot(e,t){if(e.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);if(e.version!==t.expectedVersion)throw Error(`PROMOTION_CONFLICT: expected version ${t.expectedVersion}, got ${e.version}`);if(e.authority.epoch!==t.expectedEpoch)throw Error(`PROMOTION_CONFLICT: expected epoch ${t.expectedEpoch}, got ${e.authority.epoch}`);let n={owner:t.newOwner,epoch:e.authority.epoch+1,lifecycle:e.authority.lifecycle},r={nodeId:t.newNodeId===void 0?e.placement.nodeId:t.newNodeId},i={id:this.id,version:e.version+1,value:e.value,updatedAt:new Date().toISOString(),authority:n,placement:r,lease:null},a=this.encodeKey(),o=e.lease&&e.lease.expiresAt>Date.now()?e.lease.leaseId:void 0,s=await this.cellCollection.updateIfVersion(a,e.__version??e.version,i,e.authority.epoch,o,!0,e);if(!s.updated)throw s.conflictCode===`REPLICATION_CONFLICT`?Error(`REPLICATION_CONFLICT: divergent replica cannot be promoted`):Error(`PROMOTION_CONFLICT: cell state changed during promotion`);return this.emitChange({cellId:this.id,version:i.version,value:e.value,timestamp:i.updatedAt,epoch:i.authority.epoch}),this.snapshotFromState(i)}async observeHealth(e){let t=`observation_${this.id}_${e.nodeId}`,n=await this.failureObservationCollection.get(t);if(!(n&&n.observedAt>e.observedAt)){if(n){let r=n.__version??1;if(!(await this.failureObservationCollection.updateIfVersion(t,r,e,0)).updated)return}else await this.failureObservationCollection.insert(e,t)}}async evaluateFailure(e){let t=`observation_${this.id}_${e.nodeId}`,n=await this.failureObservationCollection.get(t);if(!n)return{status:`healthy`,authorityEpoch:e.nodeId===(await this.getUnlocked())?.authority.owner?(await this.getUnlocked())?.authority.epoch??0:0,nodeId:e.nodeId};let r=await this.getUnlocked();if(r&&n.authorityEpoch<r.authority.epoch)return{status:`healthy`,authorityEpoch:r.authority.epoch,nodeId:e.nodeId};let i=e.now-n.lastSeenAt,a;return a=i<e.suspectAfterMs?`healthy`:i<e.failedAfterMs?`suspect`:`failed`,{status:a,authorityEpoch:n.authorityEpoch,nodeId:e.nodeId,ageMs:i}}async attemptAutomaticFailover(e){if(!this.isReplica)return{attempted:!1,promoted:!1,reason:`Not a replica`,diagnostics:{isReplica:!1,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};let t=e.replicaSnapshot??await this.getUnlocked();if(!t)return{attempted:!1,promoted:!1,reason:`Replica state not found`,diagnostics:{isReplica:!0,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};let n=`observation_${this.id}_${e.failureEvaluationOptions.nodeId}`,r=e.failureObservation??await this.failureObservationCollection.get(n),i=this.evaluateFailureSnapshot(e.failureEvaluationOptions,r,t);if(i.status!==`failed`)return{attempted:!1,promoted:!1,reason:`Current authority not failed (status: ${i.status})`,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};if(t.authority.lifecycle===`retired`)return{attempted:!1,promoted:!1,reason:`Cell is retired`,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};if(t.authority.epoch!==i.authorityEpoch)return{attempted:!1,promoted:!1,reason:`Replica authority epoch mismatch: replica=${t.authority.epoch}, observed=${i.authorityEpoch}`,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};try{return await this.promoteSnapshot(t,{expectedVersion:t.version,expectedEpoch:t.authority.epoch,newOwner:e.newOwner,newNodeId:t.placement.nodeId}),{attempted:!0,promoted:!0,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!0,promotionAttempted:!0,promotionSucceeded:!0}}}catch(e){return{attempted:!0,promoted:!1,reason:`Promotion failed: ${e instanceof Error?e.message:String(e)}`,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!0,promotionAttempted:!0,promotionSucceeded:!1}}}}evaluateFailureSnapshot(e,t,n){if(!t)return{status:`healthy`,authorityEpoch:e.nodeId===n.authority.owner?n.authority.epoch:0,nodeId:e.nodeId};if(t.authorityEpoch<n.authority.epoch)return{status:`healthy`,authorityEpoch:n.authority.epoch,nodeId:e.nodeId};let r=e.now-t.lastSeenAt;return{status:r<e.suspectAfterMs?`healthy`:r<e.failedAfterMs?`suspect`:`failed`,authorityEpoch:t.authorityEpoch,nodeId:e.nodeId,ageMs:r}}validateLifecycleTransition(e,t){if(!{active:[`suspended`,`retired`],suspended:[`active`,`retired`],retired:[]}[e].includes(t))throw Error(`Invalid lifecycle transition: ${e} → ${t}`)}async getUnlocked(){let e=this.encodeKey(),t=await this.cellCollection.get(e);return t?this.snapshotFromState(t):null}async setUnlocked(e,t){let n=await this.getUnlocked();if(n?.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let r=n?.authority.epoch??0;if(t?.authorityEpoch!==void 0&&n&&t.authorityEpoch!==r)throw Error(`AUTHORITY_CONFLICT: expected epoch ${r}, got ${t.authorityEpoch}`);if(t?.leaseId!==void 0){if(!n?.lease)throw Error(`LEASE_INVALID: no active lease`);if(n.lease.leaseId!==t.leaseId)throw Error(`LEASE_INVALID: lease ID mismatch`);if(n.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(n.lease.epoch!==r)throw Error(`LEASE_INVALID: lease epoch does not match authority epoch`)}let i=n?.version??0,a=n?.authority??{owner:null,epoch:0,lifecycle:`active`},o=n?.placement??{nodeId:null},s=n?.lease??null,c={id:this.id,version:i+1,value:e,updatedAt:new Date().toISOString(),authority:a,placement:o,lease:s},l=this.encodeKey();if(i===0)await this.cellCollection.insert(c,l);else if(!(await this.cellCollection.updateIfVersion(l,i,c,r)).updated)throw Error(`Cell ${this.id} version conflict`);return this.emitChange({cellId:this.id,version:c.version,value:e,timestamp:c.updatedAt,epoch:c.authority.epoch}),this.snapshotFromState(c)}async updateUnlocked(e,t){let n=await this.getUnlocked();if(n?.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let r=n?.authority.epoch??0;if(t?.authorityEpoch!==void 0&&n&&t.authorityEpoch!==r)throw Error(`AUTHORITY_CONFLICT: expected epoch ${r}, got ${t.authorityEpoch}`);if(t?.leaseId!==void 0){if(!n?.lease)throw Error(`LEASE_INVALID: no active lease`);if(n.lease.leaseId!==t.leaseId)throw Error(`LEASE_INVALID: lease ID mismatch`);if(n.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(n.lease.epoch!==r)throw Error(`LEASE_INVALID: lease epoch does not match authority epoch`)}let i=n?.value??null,a=n?.version??0,o=e(i);if(o===Er){if(n)return this.snapshotFromState(n);throw Error(`Cell ${this.id} update returned NO_CHANGE but cell does not exist`)}let s=n?.authority??{owner:null,epoch:0,lifecycle:`active`},c=n?.placement??{nodeId:null},l=n?.lease??null,u={id:this.id,version:a+1,value:o,updatedAt:new Date().toISOString(),authority:s,placement:c,lease:l},d=this.encodeKey();if(a===0)await this.cellCollection.insert(u,d);else if(!(await this.cellCollection.updateIfVersion(d,a,u,r)).updated)throw Error(`Cell ${this.id} conflict during update`);return this.emitChange({cellId:this.id,version:u.version,value:o,timestamp:u.updatedAt,epoch:u.authority.epoch}),this.snapshotFromState(u)}snapshotFromState(e){let t={id:this.id,version:e.version,value:e.value,updatedAt:e.updatedAt,authority:e.authority,placement:e.placement,lease:e.lease},n=e.__version;return n!==void 0&&Object.defineProperty(t,"__version",{value:n,enumerable:!1}),t}on(e,t){e===`change`&&this.changeHandlers.push(t)}off(e,t){if(e===`change`){let e=this.changeHandlers.indexOf(t);e>=0&&this.changeHandlers.splice(e,1)}}emitChange(e){for(let t of this.changeHandlers)try{t(e)}catch(e){console.error(`Error in cell change handler: ${e}`)}}acquireLock(e){return new Promise((t,n)=>{this.mutationQueue.push(async()=>{try{t(await e())}catch(e){n(e)}}),this.isLocked||this.processQueue()})}async processQueue(){if(this.isLocked||this.mutationQueue.length===0)return;this.isLocked=!0;let e=this.mutationQueue.shift();if(e)try{await e()}catch{}finally{this.isLocked=!1,this.processQueue()}}},F;(function(e){e.Created=`Created`,e.Planning=`Planning`,e.Observing=`Observing`,e.Deciding=`Deciding`,e.Acting=`Acting`,e.Waiting=`Waiting`,e.Completed=`Completed`,e.Failed=`Failed`,e.Cancelled=`Cancelled`,e.Blocked=`Blocked`})(F||={});function Or(e,t){return{name:e,version:t,toString(){return`flow://agent/${this.name}@${this.version}`}}}function kr(e){return`exec-${e}-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}var Ar=class{agents=new Map;register(e,t){let n=e.toString(),r={agentRef:e,definition:t,providers:[],compatibleStateVersions:[],registeredAt:Date.now(),updatedAt:Date.now(),active:!0};this.agents.set(n,r)}unregister(e){let t=e.toString();this.agents.delete(t)}get(e){let t=e.toString();return this.agents.get(t)}getByName(e){let t;for(let n of this.agents.values())n.definition.name===e&&(!t||n.agentRef.version>t.agentRef.version)&&(t=n);return t}getAll(){return Array.from(this.agents.values())}addProvider(e,t){let n=e.toString(),r=this.agents.get(n);if(!r)throw Error(`Agent not registered: ${n}`);r.providers=r.providers.filter(e=>e.peerId!==t.peerId),r.providers.push(t),r.updatedAt=Date.now()}removeProvider(e,t){let n=e.toString(),r=this.agents.get(n);if(!r)throw Error(`Agent not registered: ${n}`);r.providers=r.providers.filter(e=>e.peerId!==t),r.updatedAt=Date.now()}getAvailableProviders(e){let t=this.get(e);return t?t.providers.filter(e=>e.available):[]}findByCapability(e){let t=[];for(let n of this.agents.values())n.definition.capabilities.includes(e)&&t.push(n);return t}updateAvailability(e,t,n){let r=this.get(e);if(!r)throw Error(`Agent not registered: ${e.toString()}`);let i=r.providers.find(e=>e.peerId===t);i&&(i.available=n,i.lastHeartbeat=Date.now(),r.updatedAt=Date.now())}clear(){this.agents.clear()}},jr=class{ownership=new Map;locks=new Map;claim(e,t,n){let r=this.ownership.get(e);if(r===t)return!0;if(r)return!1;let i=this.locks.get(e);return i&&i.expiresAt>Date.now()?!1:(this.ownership.set(e,t),this.locks.set(e,{peerId:t,expiresAt:Date.now()+n}),!0)}release(e,t){this.ownership.get(e)===t&&(this.ownership.delete(e),this.locks.delete(e))}getOwner(e){return this.ownership.get(e)}isValid(e){let t=this.locks.get(e);return t?t.expiresAt>Date.now():!1}renew(e,t,n){return this.ownership.get(e)===t&&(this.locks.set(e,{peerId:t,expiresAt:Date.now()+n}),!0)}},Mr=class{config;registry;handlers=new Map;executions=new Map;ownership;triggers=new Map;constructor(e,t){this.registry=e,this.config=t,this.ownership=new jr}registerHandler(e,t){this.handlers.set(e,t)}async createExecution(e,t,n,r){let i=kr(t.name),a={executionId:i,agentRef:t,status:F.Created,goal:n,inputs:r,stateVersion:0,observationIds:[],decisionIds:[],actionIds:[],attempt:1,createdMs:Date.now()};return this.executions.set(i,a),a}async start(e,t){if(!this.ownership.claim(e.executionId,t,3e4))throw Error(`Failed to claim ownership of execution ${e.executionId}`);try{return e.status=F.Planning,e.ownedBy=t,e.startedMs=Date.now(),{execution:e,status:F.Planning,resultRef:void 0}}catch(t){return e.status=F.Failed,e.error=String(t),e.completedMs=Date.now(),{execution:e,status:F.Failed,error:String(t)}}}async resume(e,t){if(!this.ownership.claim(e.executionId,t,3e4)&&this.ownership.getOwner(e.executionId)!==t)throw Error(`Cannot resume execution ${e.executionId}: owned by ${this.ownership.getOwner(e.executionId)}`);return e.ownedBy=t,e.status=F.Observing,{execution:e,status:F.Observing}}async transition(e,t){if(!({[F.Created]:[F.Planning],[F.Planning]:[F.Observing],[F.Observing]:[F.Deciding,F.Waiting],[F.Deciding]:[F.Acting],[F.Acting]:[F.Observing,F.Waiting,F.Completed],[F.Waiting]:[F.Observing,F.Blocked],[F.Completed]:[],[F.Failed]:[],[F.Cancelled]:[],[F.Blocked]:[F.Observing]}[e.status]||[]).includes(t))throw Error(`Invalid transition from ${e.status} to ${t}`);e.status=t}async complete(e,t){e.status=F.Completed,e.resultRef=t,e.completedMs=Date.now(),e.ownedBy&&this.ownership.release(e.executionId,e.ownedBy)}async fail(e,t){e.status=F.Failed,e.error=t,e.completedMs=Date.now(),e.ownedBy&&this.ownership.release(e.executionId,e.ownedBy)}getExecution(e){return this.executions.get(e)}getOwner(e){return this.ownership.getOwner(e)}registerTriggers(e,t){this.triggers.set(e,t)}getTriggers(e){return this.triggers.get(e)||[]}};function Nr(e,t){return`${e}:${t}`}var Pr=/^[A-Za-z0-9._-]{1,128}$/;function Fr(e,t){if(!e.transactionId||!e.transactionId.trim())return{kind:`reject`,reason:`transactionId is required`};if(e.operations.length===0)return{kind:`reject`,reason:`a transaction requires at least one operation`};if(t.hasApplied(e.transactionId))return{kind:`duplicate`};let n=[...(e.preconditions??[]).map(e=>({...e})),...e.operations.filter(e=>e.expectedVersion!==void 0||e.expectedEpoch!==void 0||e.expectedLeaseId!==void 0).map(e=>({collection:e.collection,id:e.id,expectedVersion:e.expectedVersion,expectedEpoch:e.expectedEpoch,expectedLeaseId:e.expectedLeaseId}))];if(n.length>0&&!t.read)return{kind:`reject`,reason:`this runtime cannot evaluate transaction preconditions, so it refuses the transaction rather than committing it unconditionally`};for(let e of n){if(!Pr.test(e.collection)||!Pr.test(String(e.id)))return{kind:`reject`,reason:`invalid collection or id: ${e.collection}:${e.id}`};if(e.requireAbsent!==!0&&e.expectedVersion===void 0&&e.expectedEpoch===void 0&&e.expectedLeaseId===void 0)return{kind:`reject`,reason:`precondition on ${e.collection}:${e.id} constrains nothing`};let n=Nr(e.collection,String(e.id)),r=t.read(n);if(e.requireAbsent){if(r!==void 0)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:record already exists`};continue}if(r===void 0)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:record does not exist`};if(e.expectedVersion!==void 0){let t=typeof r.__version==`number`?r.__version:1;if(t!==e.expectedVersion)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:version ${t}, expected ${e.expectedVersion}`}}if(e.expectedEpoch!==void 0){let t=r.authority,i=typeof t?.epoch==`number`?t.epoch:0;if(i!==e.expectedEpoch)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:epoch ${i}, expected ${e.expectedEpoch}`}}if(e.expectedLeaseId!==void 0){let t=r.lease,i=t?.leaseId,a=typeof t?.expiresAt==`number`&&t.expiresAt>Date.now();if(i!==e.expectedLeaseId||!a)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:lease ${i??`none`}, expected ${e.expectedLeaseId}`}}}let r=[],i=new Set;for(let n of e.operations){if(!Pr.test(n.collection)||!Pr.test(n.id))return{kind:`reject`,reason:`invalid collection or id: ${n.collection}:${n.id}`};let e=Nr(n.collection,n.id);if(i.has(e))return{kind:`reject`,reason:`transaction writes ${e} more than once`};if(i.add(e),n.requireAbsent&&t.exists(e))return{kind:`reject`,reason:`PRECONDITION_FAILED:${e}:record already exists`};let a=n.value===void 0?void 0:n.expectedVersion===void 0?{...n.value,id:n.id}:{...n.value,id:n.id,__version:n.expectedVersion+1};r.push({key:e,collection:n.collection,id:n.id,value:a})}return{kind:`apply`,mutations:r}}function Ir(e,t,n,r){return{transactionId:e.transactionId,duplicate:t,operations:e.operations.length,stateBefore:n,stateAfter:r}}var Lr=class extends Error{constructor(e){super(e),this.name=`EmbeddedTransactionRejected`}},Rr=new Map,zr=new Map;function Br(e){let t=zr.get(e);return t||(t={value:0,replicated:!1},zr.set(e,t)),t}var Vr=class{rows;events=[];sequence=0;origin;revisionState;peers=new Set;applied=new Set;constructor(e){let t=Rr.get(e);t||(t=new Map,Rr.set(e,t)),this.rows=t,this.revisionState=Br(e),this.origin=`memory:${e}`}event(e,t,n,r){this.sequence+=1,this.revisionState.value+=1;let i=Date.now();this.events.push({sequence:this.sequence,collection:e,key:t,type:n,value:r,timestamp:i,origin:this.origin,id:`${this.origin}:${i}:${this.sequence}`})}async commit_transaction(e){let t=this.sequence,n=Fr(e,{exists:e=>this.rows.has(e),hasApplied:e=>this.applied.has(e),read:e=>this.rows.get(e)});if(n.kind===`duplicate`)return Ir(e,!0,t,this.sequence);if(n.kind===`reject`)throw new Lr(n.reason);for(let e of n.mutations)e.value===void 0?(this.rows.delete(e.key),this.event(e.collection,e.key,`delete`)):(this.rows.set(e.key,e.value),this.event(e.collection,e.key,`put`,e.value));return this.applied.add(e.transactionId),Ir(e,!1,t,this.sequence)}insert(e,t){try{return this.rows.set(e,JSON.parse(t)),this.event(e.split(`:`)[0],e,`put`,JSON.parse(t)),{success:!0,data:e}}catch(e){return{success:!1,error:String(e)}}}update(e,t){return this.rows.has(e)?this.insert(e,t):{success:!1,error:`Record ${e} not found`}}get(e){let t=this.rows.get(e);return t===void 0?{success:!0}:{success:!0,data:JSON.stringify(t)}}delete(e){return this.rows.delete(e),this.event(e.split(`:`)[0],e,`delete`),{success:!0,data:e}}putIfAbsent(e,t){let n=this.rows.get(e);if(n!==void 0)return Promise.resolve({inserted:!1,value:JSON.stringify(n)});let r=JSON.parse(t);return this.rows.set(e,r),this.event(e.split(`:`)[0],e,`put`,r),Promise.resolve({inserted:!0,value:t})}cas(e){let t=this.rows.get(e.key),n=JSON.parse(e.value);if(t===void 0)return Promise.resolve({updated:!1,currentVersion:0});let r=t,i=r.__version??1,a=r.authority?.epoch??0;if(i!==e.expectedVersion||e.expectedEpoch!==void 0&&a!==e.expectedEpoch)return Promise.resolve({updated:!1,currentVersion:i,currentEpoch:a});let o=e.expectedVersion+1,s={...n,__version:o};return this.rows.set(e.key,s),this.event(e.key.split(`:`)[0],e.key,`put`,s),Promise.resolve({updated:!0,currentVersion:o,currentEpoch:a})}query(e){let t=`${e}:`,n=[...this.rows].filter(([e])=>e.startsWith(t)).map(([,e])=>e);return{success:!0,data:JSON.stringify(n)}}get_capability_records(e){return this.query(e)}execute_op(){return{success:!1,error:`Raw operations are unavailable in the memory runtime`}}sync_info(){return{success:!0,data:JSON.stringify({instance_id:this.origin,sequence:this.sequence,connected_peers:[...this.peers],pending_operations:0,operations_sent:0,operations_received:0,conflicts_detected:0,last_sync_ms:0,is_connected:this.peers.size>0})}}add_peer(){return{success:!0}}add_sync_peer(e){return this.peers.add(e),{success:!0}}remove_sync_peer(e){return this.peers.delete(e),{success:!0}}acknowledge_peer_operations(){return{success:!0}}get_pending_for_peer(){return{success:!0,data:`[]`}}instance_id(){return this.origin}get_sequence(){return this.sequence}freshness(){return this.revisionState.replicated||this.peers.size>0?{domain:`replicated`,validation:`refresh`,invalidation:!1,reason:`remote operations order causally across replicas, so a local counter is not an authoritative revision`}:{domain:`single-process`,validation:`revision`,invalidation:!1,revisionScope:this.origin}}async revision(){let e=this.freshness();if(e.validation!==`revision`)throw new ir(`memory runtime: ${e.reason}`);return{value:this.revisionState.value,scope:this.origin}}audit_events(){return[...this.events]}export_operations(e){return this.events.filter(t=>t.sequence>e)}apply_remote_operations(e){e.length>0&&(this.revisionState.replicated=!0);let t=0,n=0;for(let r of e){if(this.events.some(e=>e.id===r.id)){n++;continue}let e=[...this.events].reverse().find(e=>e.key===r.key),i=`${String(r.timestamp).padStart(16,`0`)}:${r.origin}:${r.id}`,a=e?`${String(e.timestamp).padStart(16,`0`)}:${e.origin}:${e.id}`:``;this.sequence+=1,this.events.push({...r,sequence:this.sequence}),i>=a?(r.type===`delete`?this.rows.delete(r.key):this.rows.set(r.key,r.value),t++):n++}return{applied:t,ignored:n}}},I=class{url;token;constructor(e){this.url=e.url.replace(/\/$/,``),this.token=e.token}headers(e=!1){return{Authorization:`Bearer ${this.token}`,"FeltDB-Protocol":`1`,...e?{"Content-Type":`application/json`}:{}}}splitKey(e){let t=e.indexOf(`:`);if(t<1||t===e.length-1)throw Error(`Invalid FeltDB key: ${e}`);return[e.slice(0,t),e.slice(t+1)]}async get(e){try{let[t,n]=this.splitKey(e),r=await fetch(`${this.url}/collections/${encodeURIComponent(t)}/${encodeURIComponent(n)}`,{headers:this.headers()});if(r.status===404)return{success:!0};if(!r.ok)return this.failure(r);let i=await r.json();return{success:!0,data:JSON.stringify(i.value)}}catch(e){return{success:!1,error:String(e)}}}async query(e){try{let t=await fetch(`${this.url}/collections/${encodeURIComponent(e)}`,{headers:this.headers()});if(!t.ok)return this.failure(t);let n=await t.json();return{success:!0,data:JSON.stringify(n.map(e=>e.value))}}catch(e){return{success:!1,error:String(e)}}}async insert(e,t){try{let[n,r]=this.splitKey(e),i=JSON.parse(t),a=await fetch(`${this.url}/collections/${encodeURIComponent(n)}`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify({...i,id:r})});return a.ok?{success:!0,data:e}:this.failure(a)}catch(e){return{success:!1,error:String(e)}}}async update(e,t){try{let[n,r]=this.splitKey(e),i=await fetch(`${this.url}/collections/${encodeURIComponent(n)}/${encodeURIComponent(r)}`,{method:`PATCH`,headers:this.headers(!0),body:t});return i.ok?{success:!0,data:e}:this.failure(i)}catch(e){return{success:!1,error:String(e)}}}async commit_transaction(e){let t=await fetch(`${this.url}/transactions`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify(e)});if(!t.ok){let e={};try{e=await t.json()}catch{}let n=Error(e.error||`transaction failed with HTTP ${t.status}`);throw n.status=t.status,e.code&&(n.feltdbCode=e.code),e.failure&&(n.feltdbConflict=e.failure),n}return await t.json()}async cas(e){try{let[t,n]=this.splitKey(e.key),r=JSON.parse(e.value),i=await fetch(`${this.url}/collections/${encodeURIComponent(t)}/${encodeURIComponent(n)}/cas`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify({expectedVersion:e.expectedVersion,expectedEpoch:e.expectedEpoch,expectedLeaseId:e.expectedLeaseId,rejectIfDiverged:e.rejectIfDiverged,value:r})});if(i.status===409){let e=await i.json();if((e.code===`VERSION_CONFLICT`||e.code===`AUTHORITY_CONFLICT`||e.code===`LEASE_CONFLICT`||e.code===`REPLICATION_CONFLICT`)&&e.currentVersion!==void 0)return{updated:!1,currentVersion:e.currentVersion,currentEpoch:e.currentEpoch,conflictCode:e.code}}if(!i.ok){let e=await this.failure(i);throw Error(e.error||`HTTP CAS failed`)}return await i.json()}catch(e){throw e instanceof Error?e:Error(String(e))}}async delete(e){try{let[t,n]=this.splitKey(e),r=await fetch(`${this.url}/collections/${encodeURIComponent(t)}/${encodeURIComponent(n)}`,{method:`DELETE`,headers:this.headers()});return r.ok?{success:!0,data:e}:this.failure(r)}catch(e){return{success:!1,error:String(e)}}}async acquire(e,t){let n=await fetch(`${this.url}/refs/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{headers:this.headers()});if(n.status===404)return null;if(!n.ok)throw Error((await this.failure(n)).error);return(await n.json()).value}async search(e,t,n=50){let r=await fetch(`${this.url}/capabilities/search/${encodeURIComponent(e)}`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify({query:t,limit:n})});if(!r.ok)throw Error((await this.failure(r)).error);return(await r.json()).map(e=>e.value)}async provenance(e,t){let n=await fetch(`${this.url}/provenance/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{headers:this.headers()});if(!n.ok)throw Error((await this.failure(n)).error);return n.json()}async storeContent(e){let t=await fetch(`${this.url}/content`,{method:`PUT`,headers:this.headers(),body:e});if(!t.ok)throw Error((await this.failure(t)).error);return t.json()}async acquireContent(e){let t=await fetch(`${this.url}/content/${encodeURIComponent(e)}`,{headers:this.headers()});if(t.status===404)return null;if(!t.ok)throw Error((await this.failure(t)).error);return new Uint8Array(await t.arrayBuffer())}async command(e,t){let n=await fetch(`${this.url}${e}`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify(t)});if(!n.ok)throw Error((await this.failure(n)).error);return n.status===204?void 0:n.json()}subscribe_changes(e){let t=new AbortController;return this.consumeEvents(t,e),()=>t.abort()}async consumeEvents(e,t){for(;!e.signal.aborted;){try{let n=await fetch(`${this.url}/events`,{headers:this.headers(),signal:e.signal});if(!n.ok||!n.body)throw Error(`Event stream failed: HTTP ${n.status}`);let r=n.body.getReader(),i=new TextDecoder,a=``;for(;!e.signal.aborted;){let{done:e,value:n}=await r.read();if(e)break;a+=i.decode(n,{stream:!0}).replace(/\r\n/g,`
|
|
10
|
+
Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let u=pt(),d;if(t){let e=typeof t==`string`?O(t):t;E(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):ce(e,{pathname:p});D(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),D(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let h=Et(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:Fe([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:Fe([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?g.createElement(rt.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...d},navigationType:`POP`}},h):h}function xt(){let e=Nt(),t=Ve(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=g.createElement(g.Fragment,null,g.createElement(`p`,null,`💿 Hey developer 👋`),g.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,g.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,g.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),g.createElement(g.Fragment,null,g.createElement(`h2`,null,`Unexpected Application Error!`),g.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?g.createElement(`pre`,{style:i},n):null,o)}var St=g.createElement(xt,null),Ct=class extends g.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=ut(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:g.createElement(it.Provider,{value:this.props.routeContext},g.createElement(at.Provider,{value:e,children:this.props.component}));return this.context?g.createElement(Tt,{error:e},t):t}};Ct.contextType=Ze;var wt=new WeakMap;function Tt({children:e,error:t}){let{basename:n}=g.useContext(nt);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=lt(t.digest);if(e){let r=wt.get(t);if(r)throw r;let i=We(e.location,n),a=i.absoluteURL||i.to;if(Je(a))throw Error(`Invalid redirect location`);if(Ue&&!wt.get(t)){if(i.isExternal||e.reloadDocument)window.location.href=a;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:e.replace}));throw wt.set(t,n),n}}return g.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${a}`})}}return e}function A({routeContext:e,match:t,children:n}){let r=g.useContext(Ye);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),g.createElement(it.Provider,{value:e},n)}function Et(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);E(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:He(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||St,o&&(s<0&&c===0?(It(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?g.createElement(n.route.Component,null):n.route.element?n.route.element:e,g.createElement(A,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?g.createElement(Ct,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function Dt(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Ot(e){let t=g.useContext(Ye);return E(t,Dt(e)),t}function kt(e){let t=g.useContext(Xe);return E(t,Dt(e)),t}function At(e){let t=g.useContext(it);return E(t,Dt(e)),t}function jt(e){let t=At(e),n=t.matches[t.matches.length-1];return E(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Mt(){return jt(`useRouteId`)}function Nt(){let e=g.useContext(at),t=kt(`useRouteError`),n=jt(`useRouteError`);return e===void 0?t.errors?.[n]:e}function Pt(){let{router:e}=Ot(`useNavigate`),t=jt(`useNavigate`),n=g.useRef(!1);return ht(()=>{n.current=!0}),g.useCallback(async(r,i={})=>{D(n.current,mt),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var Ft={};function It(e,t,n){!t&&!Ft[e]&&(Ft[e]=!0,D(!1,n))}g.memo(Lt);function Lt({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return bt(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function j(e){E(!1,`A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`)}function Rt({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){E(!ft(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=g.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=O(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=g.useMemo(()=>{let e=De(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return D(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:g.createElement(nt.Provider,{value:c},g.createElement(rt.Provider,{children:t,value:h}))}function zt({children:e,location:t}){return yt(Bt(e),t)}g.Component;function Bt(e,t=[]){let n=[];return g.Children.forEach(e,(e,r)=>{if(!g.isValidElement(e))return;let i=[...t,r];if(e.type===g.Fragment){n.push.apply(n,Bt(e.props.children,i));return}E(e.type===j,`[${typeof e.type==`string`?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),E(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=Bt(e.props.children,i)),n.push(a)}),n}var Vt=`get`,Ht=`application/x-www-form-urlencoded`;function Ut(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function Wt(e){return Ut(e)&&e.tagName.toLowerCase()===`button`}function Gt(e){return Ut(e)&&e.tagName.toLowerCase()===`form`}function Kt(e){return Ut(e)&&e.tagName.toLowerCase()===`input`}function qt(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Jt(e,t){return e.button===0&&(!t||t===`_self`)&&!qt(e)}var Yt=null;function M(){if(Yt===null)try{new FormData(document.createElement(`form`),0),Yt=!1}catch{Yt=!0}return Yt}var Xt=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function Zt(e){return e!=null&&!Xt.has(e)?(D(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ht}"`),null):e}function Qt(e,t){let n,r,i,a,o;if(Gt(e)){let o=e.getAttribute(`action`);r=o?De(o,t):null,n=e.getAttribute(`method`)||Vt,i=Zt(e.getAttribute(`enctype`))||Ht,a=new FormData(e)}else if(Wt(e)||Kt(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?De(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||Vt,i=Zt(e.getAttribute(`formenctype`))||Zt(o.getAttribute(`enctype`))||Ht,a=new FormData(o,e),!M()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(Ut(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=Vt,r=null,i=Ht,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function $t(e,t){if(e===!1||e==null)throw Error(t)}function en(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return i.pathname=n?i.pathname.endsWith(`/`)?`${i.pathname}_.${r}`:`${i.pathname}.${r}`:i.pathname===`/`?`_root.${r}`:t&&De(i.pathname,t)===`/`?`${Ie(t)}/_root.${r}`:`${Ie(i.pathname)}.${r}`,i}async function tn(e,t){if(e.id in t)return t[e.id];try{let n=await x(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function nn(e){return e!=null&&typeof e.page==`string`}function rn(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function an(e,t,n){return un((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await tn(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(rn).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function on(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function sn(e,t,{includeHydrateFallback:n}={}){return cn(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function cn(e){return[...new Set(e)]}function ln(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function un(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!nn(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(ln(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function dn(){let e=g.useContext(Ye);return $t(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function fn(){let e=g.useContext(Xe);return $t(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var pn=g.createContext(void 0);pn.displayName=`FrameworkContext`;function mn(){let e=g.useContext(pn);return $t(e,`You must render this element inside a <HydratedRouter> element`),e}function hn(e,t){let n=g.useContext(pn),[r,i]=g.useState(!1),[a,o]=g.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=g.useRef(null);g.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),g.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:gn(s,p),onBlur:gn(c,m),onMouseEnter:gn(l,p),onMouseLeave:gn(u,m),onTouchStart:gn(d,p)}]:[a,f,{}]:[!1,f,{}]}function gn(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function _n({page:e,...t}){let n=Qe(),{nonce:r}=mn(),{router:i}=dn(),a=g.useMemo(()=>ce(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?g.createElement(yn,{page:e,matches:a,...t}):g.createElement(bn,{page:e,matches:a,...t})):null}function vn(e){let{manifest:t,routeModules:n}=mn(),[r,i]=g.useState([]);return g.useEffect(()=>{let r=!1;return an(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function yn({page:e,matches:t,...n}){let r=pt(),{future:i}=mn(),{basename:a}=dn(),o=g.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=en(e,a,i.v8_trailingSlashAwareDataRequests,`rsc`),o=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?o=!0:s.push(e.route.id);return o&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[a,i.v8_trailingSlashAwareDataRequests,e,r,t]);return g.createElement(g.Fragment,null,o.map(e=>g.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function bn({page:e,matches:t,...n}){let r=pt(),{future:i,manifest:a,routeModules:o}=mn(),{basename:s}=dn(),{loaderData:c,matches:l}=fn(),u=g.useMemo(()=>on(e,t,l,a,r,`data`),[e,t,l,a,r]),d=g.useMemo(()=>on(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=g.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];!t||!t.hasLoader||(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=en(e,s,i.v8_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.v8_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=g.useMemo(()=>sn(d,a),[d,a]),m=vn(d);return g.createElement(g.Fragment,null,f.map(e=>g.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>g.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>g.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function xn(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}g.Component;var Sn=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{Sn&&(window.__reactRouterVersion=`7.18.2`)}catch{}function Cn({basename:e,children:t,useTransitions:n,window:r}){let i=g.useRef();i.current??=te({window:r,v5Compat:!0});let a=i.current,[o,s]=g.useState({action:a.action,location:a.location}),c=g.useCallback(e=>{n===!1?s(e):g.startTransition(()=>s(e))},[n]);return g.useLayoutEffect(()=>a.listen(c),[a,c]),g.createElement(Rt,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,useTransitions:n})}var N=g.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:_,useTransitions:v}=g.useContext(nt),y=typeof l==`string`&&S.test(l),b=We(l,h);l=b.to;let x=dt(l,{relative:r}),C=pt(),w=null;if(o){let e=Ne(o,[],C.mask?C.mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:Fe([h,e.pathname])),w=_.createHref(e)}let[T,ee,te]=hn(n,p),E=On(l,{replace:a,mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,defaultShouldRevalidate:f,useTransitions:v});function D(t){e&&e(t),t.defaultPrevented||E(t)}let ne=!(b.isExternal||i),re=g.createElement(`a`,{...p,...te,href:(ne?w:void 0)||b.absoluteURL||x,onClick:ne?D:e,ref:xn(m,ee),target:c,"data-discover":!y&&t===`render`?`true`:void 0});return T&&!y?g.createElement(g.Fragment,null,re,g.createElement(_n,{page:x})):re});N.displayName=`Link`;var wn=g.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=vt(a,{relative:c.relative}),d=pt(),f=g.useContext(Xe),{navigator:p,basename:m}=g.useContext(nt),h=f!=null&&Nn(u)&&o===!0,_=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,v=d.pathname,y=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(v=v.toLowerCase(),y=y?y.toLowerCase():null,_=_.toLowerCase()),y&&m&&(y=De(y,m)||y);let b=_!==`/`&&_.endsWith(`/`)?_.length-1:_.length,x=v===_||!r&&v.startsWith(_)&&v.charAt(b)===`/`,S=y!=null&&(y===_||!r&&y.startsWith(_)&&y.charAt(_.length)===`/`),C={isActive:x,isPending:S,isTransitioning:h},w=x?e:void 0,T;T=typeof n==`function`?n(C):[n,x?`active`:null,S?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let ee=typeof i==`function`?i(C):i;return g.createElement(N,{...c,"aria-current":w,className:T,ref:l,style:ee,to:a,viewTransition:o},typeof s==`function`?s(C):s)});wn.displayName=`NavLink`;var Tn=g.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=Vt,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m)=>{let{useTransitions:h}=g.useContext(nt),_=jn(),v=Mn(s,{relative:l}),y=o.toLowerCase()===`get`?`get`:`post`,b=typeof s==`string`&&S.test(s);return g.createElement(`form`,{ref:m,method:y,action:v,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>_(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f});h&&n!==!1?g.startTransition(()=>p()):p()},...p,"data-discover":!b&&e===`render`?`true`:void 0})});Tn.displayName=`Form`;function En(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Dn(e){let t=g.useContext(Ye);return E(t,En(e)),t}function On(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c,useTransitions:l}={}){let u=gt(),d=pt(),f=vt(e,{relative:o});return g.useCallback(p=>{if(Jt(p,t)){p.preventDefault();let t=n===void 0?ae(d)===ae(f):n,m=()=>u(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c});l?g.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}var kn=0,An=()=>`__${String(++kn)}__`;function jn(){let{router:e}=Dn(`useSubmit`),{basename:t}=g.useContext(nt),n=Mt(),r=e.fetch,i=e.navigate;return g.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=Qt(e,t);if(a.navigate===!1){let e=a.fetcherKey||An();await r(e,n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync})}else await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function Mn(e,{relative:t}={}){let{basename:n}=g.useContext(nt),r=g.useContext(it);E(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...vt(e||`.`,{relative:t})},o=pt();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:Fe([n,a.pathname])),ae(a)}function Nn(e,{relative:t}={}){let n=g.useContext($e);E(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=Dn(`useViewTransitionState`),i=vt(e,{relative:t});if(!n.isTransitioning)return!1;let a=De(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=De(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Ce(i.pathname,o)!=null||Ce(i.pathname,a)!=null}var Pn=o((e=>{var t=u(),n=Symbol.for(`react.element`),r=Symbol.for(`react.fragment`),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var s,c={},l=null,u=null;for(s in r!==void 0&&(l=``+r),t.key!==void 0&&(l=``+t.key),t.ref!==void 0&&(u=t.ref),t)i.call(t,s)&&!o.hasOwnProperty(s)&&(c[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)c[s]===void 0&&(c[s]=t[s]);return{$$typeof:n,type:e,key:l,ref:u,props:c,_owner:a.current}}e.Fragment=r,e.jsx=s,e.jsxs=s})),P=o(((e,t)=>{t.exports=Pn()}))();function Fn({stats:e}){return e?(0,P.jsxs)(`div`,{className:`overview-dashboard`,children:[(0,P.jsxs)(`div`,{className:`dashboard-header`,children:[(0,P.jsx)(`h1`,{children:`FeltDB Studio`}),(0,P.jsx)(`div`,{className:`namespace-badge`,children:e.namespace})]}),(0,P.jsxs)(`div`,{className:`dashboard-grid`,children:[(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Runtime`}),(0,P.jsx)(`div`,{className:`status-indicator ${e.status}`,children:`●`}),(0,P.jsx)(`span`,{children:e.status.charAt(0).toUpperCase()+e.status.slice(1)})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Storage`}),(0,P.jsxs)(`span`,{children:[e.persistence,` / `,e.storageBackend]})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Peers`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.peersCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Objects`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.objectsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Operations`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.operationsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Capabilities`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.capabilitiesCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Executions`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.executionsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Workflows`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.workflowsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Agents`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.agentsCount})]}),(0,P.jsxs)(`div`,{className:`stat-card`,children:[(0,P.jsx)(`label`,{children:`Conflicts`}),(0,P.jsx)(`span`,{className:`stat-number`,children:e.conflictsCount})]})]})]}):(0,P.jsx)(`div`,{className:`overview-dashboard loading`,children:(0,P.jsx)(`p`,{children:`Loading runtime information...`})})}function In(e,t=`default`){let[n,r]=(0,g.useState)(null);return(0,g.useEffect)(()=>{if(!e){r(null);return}let n=e.runtime(),i=n.runtime===`browser`?`browser`:n.runtime===`node`?`self-hosted`:`remote`;r({db:e,connected:!0,namespace:t,instanceId:e.instanceId?.()||`unknown`,environment:i})},[e,t]),n}function Ln(e,t=null,n=`default`){let[r,i]=(0,g.useState)(null);return(0,g.useEffect)(()=>{if(!e){i(null);return}let r=async()=>{try{let r=e.runtime(),a=e.health(),o=e.sync?.(),s=t?await Promise.all(t.collections.map(t=>e.collection(t.name).count())):[];i({namespace:n,status:a?.status||`healthy`,storageBackend:r.storage,persistence:r.persistent?`durable`:`volatile`,peersCount:o?.connected_peers?.length||0,objectsCount:s.reduce((e,t)=>e+t,0),operationsCount:o?.sequence||0,capabilitiesCount:t?.capabilities.length||0,executionsCount:await e.collection(`_flow_executions`).count()||await e.collection(`Decision`).count(),workflowsCount:t?.workflows.length||0,agentsCount:t?.agents.length||0,conflictsCount:o?.conflicts_detected||0})}catch(e){console.error(`Failed to fetch dashboard stats:`,e)}};r();let a=setInterval(r,5e3);return()=>clearInterval(a)},[e,t,n]),r}function Rn(e){let[t,n]=(0,g.useState)(null),[r,i]=(0,g.useState)(!1),[a,o]=(0,g.useState)(null),s=(0,g.useCallback)(async()=>{if(e){i(!0),o(null);try{let t=e.health();n(t)}catch(e){o(e instanceof Error?e.message:`Failed to fetch diagnostics`)}finally{i(!1)}}},[e]);return(0,g.useEffect)(()=>{s()},[e,s]),{diagnostics:t,loading:r,error:a,refresh:s}}function zn(e,t){let[n,r]=(0,g.useState)([]),[i,a]=(0,g.useState)(!0),[o,s]=(0,g.useState)(null);return(0,g.useEffect)(()=>{if(e){a(!0),s(null);try{let n=e.collection(t).subscribe(e=>{r(e),a(!1)});return()=>n()}catch(e){s(e instanceof Error?e.message:`Failed to load collection`),a(!1)}}},[e,t]),{items:n,loading:i,error:o}}function Bn(e){let[t,n]=(0,g.useState)([]);return(0,g.useEffect)(()=>{if(!e){n([]);return}let t=()=>{try{let t=e.sync?.();n(t?.connected_peers||[])}catch(e){console.error(`Failed to fetch peers:`,e)}};t();let r=setInterval(t,2e3);return()=>clearInterval(r)},[e]),t}function Vn({db:e,definition:t,namespace:n,bridgedItems:r}){let{items:i,loading:a,error:o}=zn(e,t.name),s=r??i,[c,l]=(0,g.useState)(null);return(0,P.jsxs)(`article`,{className:`state-collection studio-card`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`collection`}),(0,P.jsx)(`h2`,{children:t.name})]}),(0,P.jsx)(`strong`,{children:r?r.length:a?`…`:i.length})]}),o&&(0,P.jsx)(`p`,{className:`runtime-error`,children:o}),(!a||r)&&!s.length&&(0,P.jsx)(`div`,{className:`model-empty compact`,children:`No records yet. Mutations will appear here live.`}),s.map((e,r)=>{let i=String(e.id??e.key??r);return(0,P.jsxs)(`button`,{className:`state-row`,onClick:()=>l(c===r?null:r),children:[(0,P.jsxs)(`span`,{children:[(0,P.jsx)(`b`,{children:i}),(0,P.jsxs)(`small`,{children:[`flow://`,n,`/`,t.name,`/`,i]})]}),(0,P.jsx)(`span`,{children:c===r?`−`:`+`}),c===r&&(0,P.jsx)(`pre`,{children:JSON.stringify(e,null,2)})]},i)})]})}function Hn({db:e,model:t,namespace:n=`default`,applicationUrl:r=``,developmentSession:i}){let a=(0,g.useRef)(null),[o,s]=(0,g.useState)(null);return(0,g.useEffect)(()=>{if(!r)return;let e=new URL(r).origin,t=()=>{i?.sessionId&&a.current?.contentWindow?.postMessage({type:`feltdb:dev-session`,session:i},e),a.current?.contentWindow?.postMessage({type:`feltdb:studio:read`,requestId:`live`},e)},n=n=>{n.origin===e&&(n.data?.type===`feltdb:studio:ready`&&t(),n.data?.type===`feltdb:studio:data`&&s(n.data.records))};window.addEventListener(`message`,n);let o=window.setInterval(t,1500);return()=>{window.removeEventListener(`message`,n),window.clearInterval(o)}},[r,i]),(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Data`}),(0,P.jsx)(`p`,{children:`Live application records grouped by collection. Select a record to inspect every field.`})]}),r&&(0,P.jsx)(`iframe`,{ref:a,className:`studio-data-bridge`,src:r,title:`FeltDB application data bridge`,onLoad:()=>{let e=new URL(r).origin;i?.sessionId&&a.current?.contentWindow?.postMessage({type:`feltdb:dev-session`,session:i},e),a.current?.contentWindow?.postMessage({type:`feltdb:studio:read`,requestId:`initial`},e)}}),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[t?.collections.length??0,` collections`]}),(0,P.jsxs)(`span`,{children:[n,` namespace`]}),(0,P.jsx)(`span`,{children:e?`runtime connected`:`runtime unavailable`})]}),(0,P.jsxs)(`div`,{className:`state-grid`,children:[t?.collections.map(t=>(0,P.jsx)(Vn,{db:e??null,definition:t,namespace:n,bridgedItems:o?.[t.name]},t.name)),!t?.collections.length&&(0,P.jsxs)(`div`,{className:`model-empty`,children:[`No collection model is loaded. Open Studio through `,(0,P.jsx)(`code`,{children:`feltdb dev`}),` to load the active project.`]})]})]})}function Un(e){let t=e.trim().replace(/^flow:\/\//,``).split(`/`).filter(Boolean);return e.startsWith(`flow://`)?t.length>=3?{collection:t[t.length-2],id:t[t.length-1]}:null:t.length>=2?{collection:t[t.length-2],id:t[t.length-1]}:null}function Wn({db:e,model:t,namespace:n=`default`}){let[r,i]=(0,g.useState)(``),[a,o]=(0,g.useState)(),[s,c]=(0,g.useState)(`Enter a reference to resolve live state.`),l=async()=>{let t=Un(r);if(!t||!e){o(void 0),c(e?`Use Collection/id or flow://namespace/Collection/id.`:`Runtime unavailable.`);return}let n=await e.collection(t.collection).get(t.id);o(n),c(n?`Materialized locally`:`Reference is valid but is not materialized locally`)};return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`References`}),(0,P.jsx)(`p`,{children:`Resolve stable Flow references directly into their materialized state.`})]}),(0,P.jsxs)(`div`,{className:`reference-query`,children:[(0,P.jsx)(`input`,{value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&l()},placeholder:`flow://${n}/Collection/id`}),(0,P.jsx)(`button`,{onClick:()=>void l(),children:`Resolve`})]}),(0,P.jsxs)(`div`,{className:`reference-layout`,children:[(0,P.jsxs)(`article`,{className:`studio-card`,children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`Known collections`}),t?.collections.map(e=>(0,P.jsxs)(`button`,{className:`reference-example`,onClick:()=>i(`flow://${n}/${e.name}/id`),children:[e.name,(0,P.jsxs)(`small`,{children:[e.fields.length,` fields`]})]},e.name))]}),(0,P.jsxs)(`article`,{className:`studio-card reference-result`,children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`Resolution`}),(0,P.jsx)(`h2`,{children:s}),a!==void 0&&(0,P.jsx)(`pre`,{children:JSON.stringify(a,null,2)})]})]})]})}function Gn({db:e,namespace:t=`default`}){let[n,r]=(0,g.useState)([]),[i,a]=(0,g.useState)(`all`);(0,g.useEffect)(()=>{if(!e)return;let t=!0,n=async()=>{let n=await e.auditEvents();t&&r(n.slice().reverse())};n();let i=setInterval(()=>void n(),1e3);return()=>{t=!1,clearInterval(i)}},[e]);let o=n.filter(e=>i===`all`||e.type===i);return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Operations`}),(0,P.jsx)(`p`,{children:`The runtime's durable local mutation log—not a simulated activity feed.`})]}),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[n.length,` recorded`]}),(0,P.jsxs)(`span`,{children:[t,` namespace`]}),(0,P.jsxs)(`select`,{value:i,onChange:e=>a(e.target.value),children:[(0,P.jsx)(`option`,{value:`all`,children:`All mutations`}),(0,P.jsx)(`option`,{value:`put`,children:`Writes`}),(0,P.jsx)(`option`,{value:`delete`,children:`Deletes`})]})]}),(0,P.jsx)(`div`,{className:`table-shell`,children:(0,P.jsxs)(`table`,{className:`operations-table`,children:[(0,P.jsx)(`thead`,{children:(0,P.jsxs)(`tr`,{children:[(0,P.jsx)(`th`,{children:`Sequence`}),(0,P.jsx)(`th`,{children:`Mutation`}),(0,P.jsx)(`th`,{children:`Collection`}),(0,P.jsx)(`th`,{children:`Key`}),(0,P.jsx)(`th`,{children:`Timestamp`})]})}),(0,P.jsxs)(`tbody`,{children:[o.map(e=>(0,P.jsxs)(`tr`,{children:[(0,P.jsx)(`td`,{children:e.sequence}),(0,P.jsx)(`td`,{children:(0,P.jsx)(`span`,{className:`event-pill ${e.type}`,children:e.type})}),(0,P.jsx)(`td`,{children:e.collection}),(0,P.jsx)(`td`,{children:(0,P.jsx)(`code`,{children:e.key})}),(0,P.jsx)(`td`,{children:new Date(e.timestamp).toLocaleString()})]},`${e.sequence}-${e.key}`)),!o.length&&(0,P.jsx)(`tr`,{children:(0,P.jsx)(`td`,{colSpan:5,className:`empty-message`,children:`No matching mutations yet. Create or change application state to populate this stream.`})})]})]})})]})}function Kn({peers:e=[],localInstance:t=`local`}){return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Peers`}),(0,P.jsx)(`p`,{children:`The live topology participating in this application's convergence fabric.`})]}),(0,P.jsxs)(`div`,{className:`peer-topology`,children:[(0,P.jsxs)(`article`,{className:`peer-node local`,children:[(0,P.jsx)(`span`,{children:`this instance`}),(0,P.jsx)(`h2`,{children:t}),(0,P.jsx)(`small`,{children:`online · authoritative local state`})]}),e.map(e=>(0,P.jsxs)(g.Fragment,{children:[(0,P.jsx)(`i`,{className:`peer-link`}),(0,P.jsxs)(`article`,{className:`peer-node`,children:[(0,P.jsx)(`span`,{children:`connected peer`}),(0,P.jsx)(`h2`,{children:e}),(0,P.jsx)(`small`,{children:`online · exchanging operations`})]})]},e))]}),!e.length&&(0,P.jsx)(`div`,{className:`model-empty`,children:`This embedded runtime is operating independently. Its state remains durable and can converge when a network peer is attached.`})]})}function qn({model:e}){let t=e?.capabilities??[];return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Design`}),(0,P.jsx)(`h1`,{children:`Capabilities`}),(0,P.jsxs)(`p`,{children:[`Declared authority available to workflows and autonomous agents in `,e?.app??`this application`,`.`]})]}),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[t.length,` declared`]}),(0,P.jsxs)(`span`,{children:[new Set(t.flatMap(e=>e.statements)).size,` permission rules`]})]}),(0,P.jsxs)(`div`,{className:`studio-card-grid`,children:[t.map(e=>(0,P.jsxs)(`article`,{className:`studio-card capability-card`,children:[(0,P.jsx)(`div`,{className:`card-kind`,children:`capability`}),(0,P.jsx)(`h2`,{children:e.name}),(0,P.jsx)(`div`,{className:`statement-list`,children:e.statements.map(e=>{let[t,...n]=e.split(` `);return(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`b`,{children:t}),(0,P.jsx)(`code`,{children:n.join(` `)})]},e)})})]},e.name)),!t.length&&(0,P.jsx)(`div`,{className:`model-empty`,children:`No capabilities are declared in the current project model.`})]})]})}function Jn({db:e,name:t,label:n}){let{items:r}=zn(e,t);return r.length?(0,P.jsxs)(`section`,{children:[(0,P.jsxs)(`h2`,{children:[n,(0,P.jsx)(`span`,{children:r.length})]}),(0,P.jsx)(`div`,{className:`execution-list`,children:r.map((e,r)=>(0,P.jsxs)(`article`,{className:`execution-row`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`b`,{children:String(e.name??e.workflow??e.incident_id??e.id??n)}),(0,P.jsx)(`small`,{children:t})]}),(0,P.jsx)(`span`,{className:`event-pill put`,children:String(e.status??e.state??`materialized`)}),(0,P.jsx)(`pre`,{children:JSON.stringify(e,null,2)})]},String(e.id??r)))})]}):null}function Yn({db:e,model:t}){return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Executions`}),(0,P.jsx)(`p`,{children:`Capability work, workflow runs, assignments, and agent decisions as inspectable state.`})]}),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[t?.workflows.length??0,` workflow definitions`]}),(0,P.jsxs)(`span`,{children:[t?.agents.length??0,` autonomous agents`]})]}),(0,P.jsx)(Jn,{db:e??null,name:`_flow_executions`,label:`Capability executions`}),(0,P.jsx)(Jn,{db:e??null,name:`_flow_workflow_runs`,label:`Workflow runs`}),(0,P.jsx)(Jn,{db:e??null,name:`Assignment`,label:`Materialized assignments`}),(0,P.jsx)(Jn,{db:e??null,name:`Decision`,label:`Agent decisions`}),(0,P.jsx)(Jn,{db:e??null,name:`_flow_agent_executions`,label:`Agent executions`}),(0,P.jsxs)(`div`,{className:`model-empty execution-empty`,children:[`Execution sections appear as soon as their state is committed. Defined workflows: `,t?.workflows.map(e=>e.name).join(`, `)||`none`,`.`]})]})}function Xn({db:e,diagnostics:t}){let n=(()=>{try{return e?.sync()}catch{return}})(),r=n?.conflicts_detected??0;return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Conflicts`}),(0,P.jsx)(`p`,{children:`Concurrent mutations detected while replicas converge.`})]}),(0,P.jsxs)(`div`,{className:`metric-grid`,children:[(0,P.jsxs)(`article`,{children:[(0,P.jsx)(`b`,{children:r}),(0,P.jsx)(`span`,{children:`detected`})]}),(0,P.jsxs)(`article`,{children:[(0,P.jsx)(`b`,{children:n?.pending_operations??0}),(0,P.jsx)(`span`,{children:`pending operations`})]}),(0,P.jsxs)(`article`,{children:[(0,P.jsx)(`b`,{children:n?.connected_peers.length??0}),(0,P.jsx)(`span`,{children:`connected peers`})]})]}),(0,P.jsxs)(`article`,{className:`studio-card`,children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`Convergence`}),(0,P.jsx)(`h2`,{children:r?`Conflict activity detected`:`No conflicts detected`}),(0,P.jsx)(`p`,{children:t?.sync.connected?`The fabric is connected and applying causal ordering.`:`The local replica is independent; conflict detection begins when operations converge with peers.`}),(0,P.jsx)(`code`,{children:`Causal ordering → deterministic materialization → auditable resolution`})]})]})}function Zn({model:e}){let t=e?.workflows??[],[n,r]=(0,g.useState)(),i=t.find(e=>e.name===n)??t[0];return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Design`}),(0,P.jsx)(`h1`,{children:`Workflows`}),(0,P.jsx)(`p`,{children:`Durable state transitions declared by the application model.`})]}),(0,P.jsxs)(`div`,{className:`split-browser`,children:[(0,P.jsx)(`aside`,{children:t.map(e=>(0,P.jsxs)(`button`,{className:e.name===i?.name?`active`:``,onClick:()=>r(e.name),children:[(0,P.jsx)(`strong`,{children:e.name}),(0,P.jsxs)(`span`,{children:[e.steps.length,` steps`]})]},e.name))}),(0,P.jsx)(`section`,{children:i?(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`div`,{className:`card-kind`,children:`workflow`}),(0,P.jsx)(`h2`,{children:i.name}),i.parameters.length>0&&(0,P.jsxs)(`code`,{className:`signature`,children:[`(`,i.parameters,`)`]}),(0,P.jsx)(`div`,{className:`workflow-track`,children:i.steps.map((e,t)=>(0,P.jsxs)(g.Fragment,{children:[(0,P.jsxs)(`article`,{children:[(0,P.jsx)(`span`,{children:t+1}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`strong`,{children:e.name}),e.statements.map(e=>(0,P.jsx)(`code`,{children:e},e))]})]}),t<i.steps.length-1&&(0,P.jsx)(`i`,{children:`→`})]},e.name))})]}):(0,P.jsx)(`div`,{className:`model-empty`,children:`No workflows are declared.`})})]})]})}function Qn({model:e}){let t=e?.agents??[],[n,r]=(0,g.useState)(),i=t.find(e=>e.name===n)??t[0];return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Design`}),(0,P.jsx)(`h1`,{children:`Agents`}),(0,P.jsx)(`p`,{children:`Autonomous participants whose authority and workflows are part of the model.`})]}),(0,P.jsxs)(`div`,{className:`split-browser`,children:[(0,P.jsx)(`aside`,{children:t.map(e=>(0,P.jsxs)(`button`,{className:e.name===i?.name?`active`:``,onClick:()=>r(e.name),children:[(0,P.jsx)(`strong`,{children:e.name}),(0,P.jsxs)(`span`,{children:[e.statements.length,` bindings`]})]},e.name))}),(0,P.jsx)(`section`,{children:i?(0,P.jsx)(P.Fragment,{children:(0,P.jsxs)(`div`,{className:`agent-orbit`,children:[(0,P.jsxs)(`div`,{className:`agent-core`,children:[(0,P.jsx)(`span`,{children:`agent`}),(0,P.jsx)(`strong`,{children:i.name})]}),i.statements.map(e=>(0,P.jsxs)(`div`,{className:`agent-binding`,children:[(0,P.jsx)(`span`,{children:e.split(` `)[0]}),(0,P.jsx)(`strong`,{children:e.split(` `).slice(1).join(` `)})]},e))]})}):(0,P.jsx)(`div`,{className:`model-empty`,children:`No agents are declared.`})})]})]})}function $n({db:e,namespace:t=`default`,reference:n}){let[r,i]=(0,g.useState)(n??``),[a,o]=(0,g.useState)(null),[s,c]=(0,g.useState)([]),[l,u]=(0,g.useState)(`Enter a Flow reference to trace it.`);(0,g.useEffect)(()=>{n&&i(n)},[n]);let d=async()=>{if(!(!e||!r))try{let t=e.provenance(r);o(t),u(`Causal graph resolved`)}catch{o(null);let t=await e.auditEvents(),n=r.split(`/`),i=n[n.length-1]??``,a=t.filter(e=>e.key.includes(i));c(a),u(a.length?`Local mutation lineage`:`No local lineage found for this reference`)}};return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Provenance`}),(0,P.jsx)(`p`,{children:`Follow why state exists—from durable mutations to causal workflow and agent edges.`})]}),(0,P.jsxs)(`div`,{className:`reference-query`,children:[(0,P.jsx)(`input`,{value:r,onChange:e=>i(e.target.value),placeholder:`flow://${t}/Collection/id`}),(0,P.jsx)(`button`,{onClick:()=>void d(),children:`Trace`})]}),(0,P.jsxs)(`article`,{className:`studio-card provenance-result`,children:[(0,P.jsx)(`span`,{className:`card-kind`,children:`Lineage`}),(0,P.jsx)(`h2`,{children:l}),a&&(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[a.nodes.length,` nodes`]}),(0,P.jsxs)(`span`,{children:[a.edges.length,` edges`]})]}),(0,P.jsx)(`div`,{className:`provenance-nodes`,children:a.nodes.map(e=>(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`b`,{children:e.label}),(0,P.jsx)(`small`,{children:e.type})]},e.id))})]}),!a&&s.map(e=>(0,P.jsxs)(`div`,{className:`provenance-event`,children:[(0,P.jsx)(`span`,{children:e.sequence}),(0,P.jsxs)(`b`,{children:[e.type,` `,e.collection]}),(0,P.jsx)(`code`,{children:e.key}),(0,P.jsx)(`small`,{children:new Date(e.timestamp).toLocaleString()})]},`${e.sequence}-${e.key}`))]})]})}function er({diagnostics:e,model:t}){let n=e?[[`Runtime`,e.runtime.status,e.runtime.reactive?`reactive`:`non-reactive`],[`Storage`,e.storage.status,`${e.storage.backend} · ${e.storage.persistent?`persistent`:`volatile`}`],[`Synchronization`,e.sync.status,`${e.sync.peers} peers · ${e.sync.pendingOperations} pending`],[`Fabric`,e.fabric.status,`${e.fabric.references} references`],[`Capabilities`,e.capabilities.status,`${e.capabilities.available}/${e.capabilities.count} available`],[`Execution`,e.execution.status,`${e.execution.running} running · ${e.execution.failed} failed`],[`Workflows`,e.workflow.status,`${e.workflow.active}/${e.workflow.total} active`]]:[];return(0,P.jsxs)(`div`,{className:`studio-model-page`,children:[(0,P.jsxs)(`header`,{children:[(0,P.jsx)(`span`,{className:`eyebrow`,children:`Observe`}),(0,P.jsx)(`h1`,{children:`Health`}),(0,P.jsx)(`p`,{children:`Runtime diagnostics, not optimistic defaults.`})]}),(0,P.jsx)(`div`,{className:`health-grid`,children:n.map(([e,t,n])=>(0,P.jsxs)(`article`,{className:`health-item status-${t}`,children:[(0,P.jsx)(`span`,{className:`status-icon`,children:t===`healthy`?`✓`:`!`}),(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`b`,{children:e}),(0,P.jsx)(`small`,{children:n})]})]},e))}),!e&&(0,P.jsx)(`div`,{className:`model-empty`,children:`Diagnostics are unavailable until Studio connects to a runtime.`}),e?.issues.map((e,t)=>(0,P.jsxs)(`div`,{className:`health-issue ${e.severity}`,children:[(0,P.jsx)(`b`,{children:e.component}),` `,e.message]},t)),(0,P.jsxs)(`div`,{className:`model-summary`,children:[(0,P.jsxs)(`span`,{children:[t?.collections.length??0,` collections modeled`]}),(0,P.jsxs)(`span`,{children:[t?.workflows.length??0,` workflows modeled`]}),(0,P.jsxs)(`span`,{children:[t?.agents.length??0,` agents modeled`]})]})]})}function tr({db:e,remoteUrl:t=``,token:n=``,onConnect:r}){let[i,a]=(0,g.useState)(t),[o,s]=(0,g.useState)(n),c=e?.runtime();return(0,g.useEffect)(()=>{a(t),s(n)},[t,n]),(0,P.jsxs)(`div`,{className:`settings-panel`,children:[(0,P.jsx)(`h2`,{children:`Settings`}),(0,P.jsxs)(`div`,{className:`settings-content`,children:[(0,P.jsx)(`h3`,{children:`Connection`}),(0,P.jsxs)(`div`,{className:`connection-info`,children:[(0,P.jsxs)(`div`,{className:`info-row`,children:[(0,P.jsx)(`label`,{children:`Runtime Environment`}),(0,P.jsx)(`span`,{children:c?.runtime||`unavailable`})]}),(0,P.jsxs)(`div`,{className:`info-row`,children:[(0,P.jsx)(`label`,{children:`Storage Backend`}),(0,P.jsx)(`span`,{children:c?.storage||`unavailable`})]}),(0,P.jsxs)(`div`,{className:`info-row`,children:[(0,P.jsx)(`label`,{children:`Instance ID`}),(0,P.jsx)(`span`,{className:`monospace`,children:e?.instanceId?.()||`unavailable`})]})]}),(0,P.jsxs)(`form`,{className:`connection-form`,onSubmit:e=>{e.preventDefault(),r?.(i,o)},children:[(0,P.jsxs)(`label`,{children:[`Server or managed endpoint`,(0,P.jsx)(`input`,{type:`url`,value:i,onChange:e=>a(e.target.value),placeholder:`https://your-runtime.example.com`})]}),(0,P.jsxs)(`label`,{children:[`API token`,(0,P.jsx)(`input`,{type:`password`,value:o,onChange:e=>s(e.target.value),placeholder:`fdb_live_…`,autoComplete:`off`})]}),(0,P.jsx)(`p`,{children:`Tokens are kept in this browser session and are never written to the project.`}),(0,P.jsx)(`button`,{className:`btn btn-primary`,type:`submit`,children:`Connect Studio`})]})]})]})}function nr({db:e,model:t,onSearch:n}){let[r,i]=(0,g.useState)(``),[a,o]=(0,g.useState)([]),s=e=>{i(e),n&&n(e)};return(0,g.useEffect)(()=>{let n=!0;return(async()=>{let i=r.trim().toLowerCase();if(!i){o([]);return}let a=[...t?.collections.map(e=>({kind:`collection`,name:e.name,detail:`${e.fields.length} fields`}))??[],...t?.capabilities.map(e=>({kind:`capability`,name:e.name,detail:e.statements.join(` · `)}))??[],...t?.workflows.map(e=>({kind:`workflow`,name:e.name,detail:`${e.steps.length} steps`}))??[],...t?.agents.map(e=>({kind:`agent`,name:e.name,detail:e.statements.join(` · `)}))??[]].filter(e=>JSON.stringify(e).toLowerCase().includes(i)),s=e&&t?(await Promise.all(t.collections.map(async t=>(await e.collection(t.name).all()).filter(e=>JSON.stringify(e).toLowerCase().includes(i)).slice(0,3).map(e=>({kind:`object`,name:`${t.name}/${String(e.id??`record`)}`,detail:JSON.stringify(e)}))))).flat():[];n&&o([...a,...s].slice(0,12))})(),()=>{n=!1}},[e,t,r]),(0,P.jsxs)(`div`,{className:`global-search`,children:[(0,P.jsx)(`input`,{type:`text`,placeholder:`Search: documents/123, flow://, agent/name, etc.`,value:r,onChange:e=>s(e.target.value),className:`search-input global`}),r&&(0,P.jsx)(`div`,{className:`search-results`,children:(0,P.jsxs)(`div`,{className:`results-group`,children:[(0,P.jsx)(`h4`,{children:`Model & runtime`}),a.map((e,t)=>(0,P.jsxs)(`div`,{className:`search-result`,children:[(0,P.jsx)(`b`,{children:e.name}),(0,P.jsx)(`span`,{children:e.kind}),(0,P.jsx)(`small`,{children:e.detail})]},`${e.kind}-${e.name}-${t}`)),!a.length&&(0,P.jsx)(`div`,{className:`empty-message`,children:`No matches`})]})})]})}var rr=Object.freeze({domain:`undeclared`,validation:`refresh`,invalidation:!1,reason:`the runtime does not declare a freshness capability`}),ir=class extends Error{constructor(e){super(e),this.name=`FreshnessContractViolation`}};function ar(e,t){let n=typeof t.revision==`function`;if(e.validation===`revision`){if(!n)throw new ir(`a runtime advertising revision validation must implement revision()`);if(!e.revisionScope)throw new ir(`a runtime advertising revision validation must name the scope its revisions are comparable within`);if(e.domain===`replicated`||e.domain===`multi-process-file`)throw new ir(`the ${e.domain} domain has no serialization boundary that can make a scalar revision authoritative`);return e}if(!e.reason)throw new ir(`a runtime that cannot validate by revision must say why`);return e}async function or(e){return typeof e.freshness==`function`?ar(await e.freshness(),e):ar(rr,e)}async function sr(e){let t=await or(e);if(t.validation!==`revision`)throw new ir(`this runtime does not offer revision validation: ${t.reason}`);let n=await e.revision();if(n.scope!==t.revisionScope)throw new ir(`revision scope ${n.scope} does not match the advertised scope ${t.revisionScope}`);return n}function cr(e,t){return e.scope===t.scope&&e.value===t.value}var lr=class{dependencies=new Map;subscribers=new Map;recentChanges=new Map;registerDependency(e,t){this.dependencies.has(e)||this.dependencies.set(e,new Set),this.dependencies.get(e).add(t)}subscribe(e,t){this.subscribers.has(e)||this.subscribers.set(e,new Set);let n=this.subscribers.get(e);return n.add(t),()=>{n.delete(t),n.size===0&&this.subscribers.delete(e)}}async emitChange(e,t){this.recentChanges.has(e)||this.recentChanges.set(e,[]),this.recentChanges.get(e).push(t);let n=this.subscribers.get(e);n&&await Promise.all([...n].map(e=>e(t)));let r=this.dependencies.get(e);if(r)for(let e of r)await this.emitChange(e,t)}getRecentChanges(e){return this.recentChanges.get(e)||[]}clearRecentChanges(e){this.recentChanges.delete(e)}getSubscriberCount(e){return this.subscribers.get(e)?.size??0}hasDependents(e){let t=this.dependencies.get(e);return t!==void 0&&t.size>0}getDependents(e){let t=this.dependencies.get(e);return t?Array.from(t):[]}},ur=null;function dr(){return ur||=new lr,ur}var fr=class{entries=new Map;field;stats={reads:0,writes:0,selectivity:0};constructor(e){this.field=e}add(e,t){let n=this.normalizeKey(t);this.entries.has(n)||this.entries.set(n,new Set),this.entries.get(n).add(e),this.stats.writes++}remove(e,t){let n=this.normalizeKey(t),r=this.entries.get(n);r&&(r.delete(e),r.size===0&&this.entries.delete(n)),this.stats.writes++}query(e){let t=this.normalizeKey(e);this.stats.reads++;let n=this.entries.get(t);return n?Array.from(n):[]}size(){return this.entries.size}getStats(){return{entries:this.entries.size,reads:this.stats.reads,writes:this.stats.writes,selectivity:this.entries.size>0?1/this.entries.size:0}}normalizeKey(e){return e==null?`__null__`:typeof e==`object`?JSON.stringify(e):String(e)}},pr=class{entries=[];field;stats={reads:0,writes:0,selectivity:0};constructor(e){this.field=e}add(e,t){let n=this.entries.find(e=>this.compareKeys(e.key,t)===0);n||(n={key:t,recordIds:new Set},this.entries.push(n),this.entries.sort((e,t)=>this.compareKeys(e.key,t.key))),n.recordIds.add(e),this.stats.writes++}remove(e,t){let n=this.entries.find(e=>this.compareKeys(e.key,t)===0);n&&(n.recordIds.delete(e),n.recordIds.size===0&&(this.entries=this.entries.filter(e=>e!==n))),this.stats.writes++}queryEqual(e){this.stats.reads++;let t=this.entries.find(t=>this.compareKeys(t.key,e)===0);return t?Array.from(t.recordIds):[]}queryRange(e,t,n=!0,r=!0){this.stats.reads++;let i=new Set;for(let a of this.entries){let o=this.compareKeys(a.key,e),s=this.compareKeys(a.key,t);(n?o>=0:o>0)&&(r?s<=0:s<0)&&a.recordIds.forEach(e=>i.add(e))}return Array.from(i)}size(){return this.entries.length}getStats(){return this.entries.reduce((e,t)=>e+t.recordIds.size,0),{entries:this.entries.length,reads:this.stats.reads,writes:this.stats.writes,selectivity:this.entries.length>0?1/this.entries.length:0}}compareKeys(e,t){return e==null?-1:t==null?1:e<t?-1:+(e>t)}},mr=class{tokenIndex=new Map;fields;stats={reads:0,writes:0,selectivity:0};constructor(e){this.fields=e}add(e,t){let n=this.extractText(t),r=this.tokenize(n);for(let t of r)this.tokenIndex.has(t)||this.tokenIndex.set(t,new Set),this.tokenIndex.get(t).add(e);this.stats.writes++}remove(e,t){let n=this.extractText(t),r=this.tokenize(n);for(let t of r){let n=this.tokenIndex.get(t);n&&(n.delete(e),n.size===0&&this.tokenIndex.delete(t))}this.stats.writes++}query(e){this.stats.reads++;let t=this.tokenize(e);if(t.length===0)return[];let n=this.tokenIndex.get(t[0]);if(!n)return[];n=new Set(n);for(let e=1;e<t.length;e++){let r=this.tokenIndex.get(t[e]);if(!r)return[];n=new Set([...n].filter(e=>r.has(e)))}return Array.from(n)}size(){return this.tokenIndex.size}getStats(){return{entries:this.tokenIndex.size,reads:this.stats.reads,writes:this.stats.writes,selectivity:this.tokenIndex.size>0?1/this.tokenIndex.size:0}}extractText(e){return this.fields.map(t=>{let n=e[t];return n?String(n):``}).join(` `)}tokenize(e){return e.toLowerCase().split(/\s+/).filter(e=>e.length>0)}},hr=class{indexes=new Map;config=new Map;indexStats=new Map;buildIndex(e){if(e.type===`hash`&&e.field)return new fr(e.field);if(e.type===`sorted`&&e.field)return new pr(e.field);if(e.type===`text`&&e.textFields)return new mr(e.textFields);throw Error(`Invalid index config: ${JSON.stringify(e)}`)}resetEntries(){for(let[e,t]of this.config){this.indexes.set(e,this.buildIndex(t));let n=this.indexStats.get(e);n&&(n.entries=0,n.size=0,n.lastUpdated=Date.now())}}createIndex(e){if(this.indexes.has(e.name))throw Error(`Index ${e.name} already exists`);let t=this.buildIndex(e);this.indexes.set(e.name,t),this.config.set(e.name,e),this.indexStats.set(e.name,{name:e.name,type:e.type,entries:0,size:0,lastUpdated:Date.now(),reads:0,writes:0,selectivity:0})}updateRecord(e,t,n){for(let[r,i]of this.indexes){let a=this.config.get(r);t&&(a.type===`hash`&&a.field||a.type===`sorted`&&a.field?i.remove(e,t[a.field]):a.type===`text`&&i.remove(e,t)),a.type===`hash`&&a.field||a.type===`sorted`&&a.field?i.add(e,n[a.field]):a.type===`text`&&i.add(e,n);let o=this.indexStats.get(r);o.lastUpdated=Date.now();let s=i.getStats();Object.assign(o,s)}}queryIndex(e,t){let n=this.indexes.get(e);if(!n)throw Error(`Index ${e} not found`);let r=this.config.get(e);if(r.type===`hash`)return n.query(t.value);if(r.type===`sorted`){let e=n;if(t.operator===`eq`)return e.queryEqual(t.value);if(t.operator===`range`)return e.queryRange(t.min,t.max);if(t.operator===`gte`)return e.queryRange(t.value,Number.MAX_VALUE);if(t.operator===`lte`)return e.queryRange(Number.MIN_VALUE,t.value)}else if(r.type===`text`)return n.query(t.value);return[]}listIndexes(){return Array.from(this.config.values())}getStats(e){return this.indexStats.get(e)||null}planQuery(e){let t=[];for(let n of e)for(let[e,r]of this.config)if(r.field===n||r.fields?.includes(n)){let n=this.indexStats.get(e);t.push({indexName:e,indexType:r.type,estimatedRows:Math.ceil(100/(n.selectivity||1)),cost:n.reads+n.writes,canPruneAll:r.type===`hash`,requiresPostFilter:r.type===`text`||r.type===`sorted`})}if(t.length===0)return{strategy:`full-scan`,indexes:[],estimatedRows:1e3,totalCost:1e3,explanation:`No suitable index found, using full collection scan`};t.sort((e,t)=>e.cost-t.cost);let n=t[0];return{strategy:`index-scan`,indexes:[n],estimatedRows:n.estimatedRows,totalCost:n.cost,explanation:`Using ${n.indexType} index on ${n.indexName}`}}},gr=null;async function _r(){if(gr!==null)return gr;try{let e=await x(()=>import(`./feltdb_wasm-C9xpYtna.js`),[]);return gr=e,e}catch{return null}}var vr=class{tsBackend=null;wasmBackend=null;useWasm=!1;constructor(){this.tsBackend=new hr}async initializeWasm(){if(this.wasmBackend!==null)return;let e=await _r();if(e&&e.WasmIndexManager)try{this.wasmBackend=new e.WasmIndexManager,this.useWasm=!0}catch{this.useWasm=!1}}createIndex(e){if(this.useWasm&&this.wasmBackend)try{this.wasmBackend.create_index(JSON.stringify(e));return}catch{}this.tsBackend?.createIndex(e)}updateRecord(e,t,n){if(this.useWasm&&this.wasmBackend)try{let r=t?JSON.stringify(t):null,i=JSON.stringify(n);this.wasmBackend.update_record(e,r,i);return}catch{}this.tsBackend?.updateRecord(e,t,n)}resetEntries(){return this.useWasm&&this.wasmBackend?!1:(this.tsBackend?.resetEntries(),this.tsBackend!==null)}queryIndex(e,t){if(this.useWasm&&this.wasmBackend)try{let n=this.wasmBackend.query_index(e,t.operator,String(t.value||``));return JSON.parse(n)}catch{}return this.tsBackend?.queryIndex(e,t)||[]}queryCompoundIndex(e,t){if(this.useWasm&&this.wasmBackend)try{let n=Object.values(t).map(e=>String(e)).join(`\0`),r=this.wasmBackend.query_index(e,`eq`,n);return JSON.parse(r)}catch{}return[]}listIndexes(){if(this.useWasm&&this.wasmBackend)try{let e=this.wasmBackend.list_indexes();return JSON.parse(e)}catch{}return this.tsBackend?.listIndexes()||[]}},yr=class{db;collectionName;constructor(e,t){this.db=e,this.collectionName=t}async saveIndexConfig(e,t){let n=`__indexes__:${this.collectionName}:${e.name}`,r={config:e,version:1,createdAt:Date.now(),lastUpdated:Date.now(),entryCount:t},i=await this.db.insert(n,JSON.stringify(r));i.success||console.warn(`Failed to save index config for ${e.name}: ${i.error}`)}async loadIndexConfigs(){let e=await this.db.query(`__indexes__:${this.collectionName}`);if(!e.success||!e.data)return[];try{return JSON.parse(e.data).map(e=>e.config)}catch{return console.warn(`Failed to parse index configs for ${this.collectionName}`),[]}}async getIndexConfig(e){let t=`__indexes__:${this.collectionName}:${e}`,n=await this.db.get(t);if(!n.success||!n.data)return null;try{return JSON.parse(n.data).config}catch{return null}}async deleteIndexConfig(e){let t=`__indexes__:${this.collectionName}:${e}`;if(!this.db.delete){console.warn(`Failed to delete index config for ${e}: delete is not supported`);return}let n=this.db.delete(t),r=n instanceof Promise?await n:n;r?.success||console.warn(`Failed to delete index config for ${e}: ${r?.error}`)}async updateIndexStats(e,t){let n=`__indexes__:${this.collectionName}:${e}`,r=await this.db.get(n);if(!(!r.success||!r.data))try{let e=JSON.parse(r.data);e.lastUpdated=Date.now(),e.entryCount=t,await this.db.insert(n,JSON.stringify(e))}catch{console.warn(`Failed to update index stats for ${e}`)}}async getSnapshot(){let e=await this.loadIndexConfigs();return{collectionName:this.collectionName,indexes:e.map(e=>({config:e,version:1,createdAt:Date.now(),lastUpdated:Date.now(),entryCount:0})),timestamp:Date.now()}}},br=class e{db;name;collectionId;predicate=null;cache=[];subscribers=new Set;parent=null;parentId=null;isInitialized=!1;unsubscribeFunctions=new Set;graphUnsubscribe=null;runtimeUnsubscribe=null;indexBackend=new vr;indexStore;indexesLoaded=!1;cacheGeneration=0;indexedGeneration=-1;lastPlan=null;recordsById=null;lastRawSnapshot=null;cachedRevision=null;lastFreshness=null;constructor(e,t,n,r,i=!0){this.db=e,this.name=t,this.collectionId=`${t}-${Math.random().toString(36).substr(2,9)}`,this.predicate=n||null,this.parent=r||null,this.parentId=r?r.collectionId:null,this.indexStore=new yr(e,t),r&&dr().registerDependency(r.collectionId,this.collectionId),i?this.loadPersistedIndexes():this.indexesLoaded=!0}async loadPersistedIndexes(){try{let e=await this.indexStore.loadIndexConfigs();for(let t of e)this.indexBackend.createIndex(t);this.indexesLoaded=!0}catch(e){console.warn(`Failed to load persisted indexes for ${this.name}:`,e),this.indexesLoaded=!0}}async all(){return await this.refresh(),[...this.cache]}async find(e={}){let t=await this.all(),n=Object.entries(e);if(n.length===0)return this.lastPlan={strategy:`scan`,reason:`no query fields`,candidatesExamined:t.length,recordsReturned:t.length},t;let r=e=>n.every(([t,n])=>e[t]===n),i=this.indexFor(n);if(i){let e=this.indexCandidates(i.indexName,i.field,i.value);if(e){let t=e.filter(r);return this.lastPlan={strategy:`index`,indexName:i.indexName,field:i.field,candidatesExamined:e.length,recordsReturned:t.length},t}}let a=t.filter(r);return this.lastPlan={strategy:`scan`,reason:i?`index could not be trusted for this snapshot`:`no index covers the queried fields`,candidatesExamined:t.length,recordsReturned:a.length},a}lastQueryPlan(){return this.lastPlan}indexFor(e){for(let t of this.indexBackend.listIndexes()){if(t.type!==`hash`||!t.field)continue;let n=e.find(([e])=>e===t.field);if(n)return{indexName:t.name,field:t.field,value:n[1]}}return null}indexCandidates(e,t,n){if(!this.ensureIndexReflectsCache())return null;let r;try{r=this.indexBackend.queryIndex(e,{field:t,operator:`eq`,value:n})}catch{return null}let i=[];for(let e of r){let t=this.recordsById?.get(e);if(t===void 0)return null;i.push(t)}return i}ensureIndexReflectsCache(){if(this.indexedGeneration===this.cacheGeneration)return this.recordsById!==null;if(!this.indexBackend.resetEntries())return this.recordsById=null,!1;let e=new Map;for(let t of this.cache){let n=t?.id;if(n==null)return this.recordsById=null,this.indexedGeneration=this.cacheGeneration,!1;let r=String(n);e.set(r,t),this.indexBackend.updateRecord(r,null,t)}return this.recordsById=e,this.indexedGeneration=this.cacheGeneration,!0}createIndex(e){this.indexBackend.createIndex(e);for(let e of this.cache){let t=e?.id||JSON.stringify(e);this.indexBackend.updateRecord(t,null,e)}this.indexStore.saveIndexConfig(e,this.cache.length)}listIndexes(){return this.indexBackend.listIndexes()}async rebuildIndexes(){let e=this.indexBackend.listIndexes(),t=await this.all();for(let n of t){let t=n?.id||JSON.stringify(n);for(let r of e)this.indexBackend.updateRecord(t,null,n)}}async validateIndexes(){return this.indexBackend.listIndexes().length===0||(await this.all()).length,!0}async get(e){let t=`${this.name}:${e}`,n=await this.db.get(t);if(!n.success)throw Error(n.error||`Failed to read record ${e}`);return n.data?JSON.parse(n.data):null}where(t){return new e(this.db,this.name,e=>(!this.predicate||this.predicate(e))&&t(e),this.parent||this)}async insert(e,t){let n=t??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`,r=`${this.name}:${n}`,i=typeof e==`object`&&e?{...e,id:n,__version:1}:e,a=await this.db.insert(r,JSON.stringify(i));if(!a.success)throw Error(`Insert failed: ${a.error}`);this.indexBackend.updateRecord(String(n),null,i);let o={type:`insert`,key:r,value:i,timestamp:Date.now()};return await dr().emitChange(this.name,o),String(n)}async update(e,t){let n=await this.get(e);if(!n)throw Error(`Record ${e} not found`);let r={...n,...t},i=`${this.name}:${e}`,a=await(this.db.update?this.db.update(i,JSON.stringify(r)):this.db.insert(i,JSON.stringify(r)));if(!a.success)throw Error(`Update failed: ${a.error}`);this.indexBackend.updateRecord(String(e),n,r);let o={type:`update`,key:i,value:r,timestamp:Date.now()};await dr().emitChange(this.name,o)}async updateIfVersion(e,t,n,r,i,a,o){let s=o??await this.get(e);if(!s)throw Error(`Record ${e} not found`);let c={...n};delete c.__version;let l={...s,...c},u=`${this.name}:${e}`;if(!this.db.cas)throw Error(`updateIfVersion is not supported by this FeltDB runtime. Only FileJsDb (Node.js) and HTTP/Server backends support atomic version-checked updates.`);let d=await this.db.cas({key:u,expectedVersion:t,expectedEpoch:r,expectedLeaseId:i,rejectIfDiverged:a,value:JSON.stringify(l)});if(!d.updated)return{updated:!1,currentVersion:d.currentVersion,conflictCode:d.conflictCode};let f=d.item||l;f.__version=d.currentVersion,this.indexBackend.updateRecord(String(e),s,f);let p={type:`update`,key:u,value:f,timestamp:Date.now()};return await dr().emitChange(this.name,p),{updated:!0,item:f}}async delete(e){let t=`${this.name}:${e}`;if(!this.db.delete)throw Error(`Delete is not supported by this FeltDB runtime`);let n=await this.db.delete(t);if(!n.success)throw Error(`Delete failed: ${n.error}`);let r=await this.get(e);r&&this.indexBackend.updateRecord(String(e),r,{});let i={type:`delete`,key:t,value:null,timestamp:Date.now()};await dr().emitChange(this.name,i)}async count(){return(await this.all()).length}async exists(e){return await this.get(e)!==null}async putIfAbsent(e,t){let n=`${this.name}:${e}`,r=typeof t==`object`&&t?{...t,id:e}:t,i=JSON.stringify(r);if(!this.db.putIfAbsent)throw Error(`putIfAbsent is not supported by this FeltDB runtime. Only FileJsDb (Node.js) supports durable atomic conditional creation.`);let a=await this.db.putIfAbsent(n,i);if(a.inserted){let e={type:`insert`,key:n,value:r,timestamp:Date.now()};await dr().emitChange(this.name,e)}return{inserted:a.inserted,value:JSON.parse(a.value)}}subscribe(e,t){if(this.subscribers.add(e),this.isInitialized||this.refresh().catch(e=>console.error(`Failed to initialize collection:`,e)),!this.graphUnsubscribe){let e=null,t=()=>e||(e=(async()=>{await this.refresh();for(let e of this.subscribers)e([...this.cache])})().finally(()=>{e=null}),e),n=dr();this.graphUnsubscribe=n.subscribe(this.name,t),this.db.subscribe_changes&&(this.runtimeUnsubscribe=this.db.subscribe_changes(e=>{e===this.name&&t()},this.name))}return()=>{if(this.subscribers.delete(e),this.subscribers.size===0){this.graphUnsubscribe?.(),this.runtimeUnsubscribe?.(),this.graphUnsubscribe=null,this.runtimeUnsubscribe=null;for(let e of this.unsubscribeFunctions)e();this.unsubscribeFunctions.clear()}}}close(){this.graphUnsubscribe?.(),this.runtimeUnsubscribe?.(),this.graphUnsubscribe=null,this.runtimeUnsubscribe=null,this.subscribers.clear();for(let e of this.unsubscribeFunctions)e();this.unsubscribeFunctions.clear()}freshness(){return or(this.db)}lastFreshnessCheck(){return this.lastFreshness}async currentRevision(){try{return{revision:await sr(this.db)}}catch(e){return{reason:e instanceof Error?e.message:String(e)}}}async refresh(){try{let e=await this.currentRevision();if(`revision`in e){if(this.isInitialized&&this.cachedRevision&&cr(this.cachedRevision,e.revision)){this.lastFreshness={validation:`revision`,servedFromCache:!0,revision:e.revision};return}}else this.cachedRevision=null;let t=await this.db.query(this.name);if(this.lastFreshness=`revision`in e?{validation:`revision`,servedFromCache:!1,revision:e.revision}:{validation:`refresh`,servedFromCache:!1,reason:e.reason},t.success&&t.data){if(this.cachedRevision=`revision`in e?e.revision:null,this.isInitialized&&t.data===this.lastRawSnapshot)return;try{let e=JSON.parse(t.data);this.predicate&&(e=e.filter(e=>{try{return this.predicate(e)}catch{return!1}})),this.cache=e,this.cacheGeneration+=1,this.lastRawSnapshot=t.data,this.isInitialized=!0}catch(e){console.error(`Failed to parse query results:`,e)}}else t.success||console.error(`Query failed:`,t.error)}catch(e){console.error(`Refresh error:`,e)}}},xr=class extends Error{transactionId;constructor(e,t){super(e),this.name=`AtomicTransactionError`,this.transactionId=t}},Sr=class extends xr{code=`PRECONDITION_FAILED`;failure;constructor(e,t,n){super(e,t),this.name=`ConditionalConflictError`,this.failure=n}};function Cr(e){let{ifVersion:t,expectedVersion:n,...r}=e;if(t!==void 0&&n!==void 0&&t!==n)throw Error(`precondition on ${e.collection}:${e.id} supplies ifVersion ${t} and expectedVersion ${n}; they are the same predicate`);let i=t??n;return i===void 0?{...r}:{...r,expectedVersion:i}}function wr(){let e=Math.random().toString(36).slice(2,10);return`tx_${Date.now().toString(36)}_${e}`}var Tr=class{transactionId;staged=[];required=[];sealed=!1;constructor(e){this.transactionId=e||wr()}get operations(){return this.staged}collection(e){if(!e||!e.trim())throw Error(`collection name is required`);let t=e=>{let{ifVersion:t,expectedVersion:n,...r}=e;if(t!==void 0&&n!==void 0&&t!==n)throw Error(`${e.collection}:${e.id} supplies ifVersion ${t} and expectedVersion ${n}; they are the same predicate`);let i=t??n,a=i===void 0?{...r}:{...r,expectedVersion:i};if(this.sealed)throw Error(`this transaction has already been committed; start a new one`);if(this.staged.find(e=>e.collection===a.collection&&e.id===a.id))throw Error(`transaction already stages ${a.collection}:${a.id}; a transaction may write each record at most once`);this.staged.push(a)},n={set:(r,i,a)=>(t({collection:e,id:String(r),value:i,requireAbsent:a?.requireAbsent,ifVersion:a?.ifVersion,expectedVersion:a?.expectedVersion,expectedEpoch:a?.expectedEpoch,expectedLeaseId:a?.expectedLeaseId}),n),insert:(e,t,r)=>n.set(t,e,r),delete:(r,i)=>(t({collection:e,id:String(r),requireAbsent:i?.requireAbsent,ifVersion:i?.ifVersion,expectedVersion:i?.expectedVersion,expectedEpoch:i?.expectedEpoch,expectedLeaseId:i?.expectedLeaseId}),n)};return n}get preconditions(){return this.required}require(e){if(this.sealed)throw Error(`this transaction has already been committed; start a new one`);if(!e.collection?.trim()||!String(e.id??``).trim())throw Error(`a precondition requires a collection and an id`);let t=Cr(e);if(t.requireAbsent!==!0&&t.expectedVersion===void 0&&t.expectedEpoch===void 0&&t.expectedLeaseId===void 0)throw Error(`precondition on ${e.collection}:${e.id} constrains nothing`);return this.required.push({...t,id:String(e.id)}),this}seal(){return this.sealed=!0,{transactionId:this.transactionId,operations:[...this.staged],preconditions:[...this.required]}}},Er=Symbol(`FELTDB_NO_CHANGE`),Dr=class{id;jsDb;cellCollection;replicaCollection;failureObservationCollection;mutationQueue=[];isLocked=!1;changeHandlers=[];isReplica=!1;constructor(e,t){this.id=t,this.jsDb=e,this.cellCollection=new br(e,`_cells`,void 0,void 0,!1),this.replicaCollection=new br(e,`_replicas`,void 0,void 0,!1),this.failureObservationCollection=new br(e,`_failure_observations`,void 0,void 0,!1)}setReplica(e){this.isReplica=e}isReplicaCell(){return this.isReplica}async applyReplication(e){return this.acquireLock(async()=>{let t=this.encodeKey();for(;;){let n=await this.cellCollection.get(t),r=n?this.snapshotFromState(n):null;if(r&&r.version>e.version)throw Error(`REPLICATION_CONFLICT: cannot apply version ${e.version}, current is ${r.version}`);if(r&&r.version===e.version){if(JSON.stringify(r.value)!==JSON.stringify(e.value)){let n=`version ${e.version} has divergent state`;throw await this.replicaCollection.insert({cellId:this.id,version:r.version,value:r.value,updatedAt:r.updatedAt,authority:r.authority,placement:r.placement,lease:r.lease,divergent:!0,conflictReason:n},t),Error(`REPLICATION_CONFLICT: ${n}`)}await this.clearDivergenceMarker();return}let i={id:e.cellId,version:e.version,value:e.value,updatedAt:e.updatedAt,authority:{owner:e.authority.owner,epoch:e.authority.epoch,lifecycle:e.authority.lifecycle},placement:{nodeId:e.placement.nodeId},lease:e.lease};if(!r)await this.cellCollection.insert(i,t);else{let e=n?.__version??r.version;if(!(await this.cellCollection.updateIfVersion(t,e,i,r.authority.epoch)).updated)continue}await this.clearDivergenceMarker();return}})}async clearDivergenceMarker(){try{await this.replicaCollection.delete(this.encodeKey())}catch(e){if(e instanceof Error&&/^Delete failed: record(?: .+)? not found$/i.test(e.message))return;throw e}}encodeKey(){return`${this.hashId(this.id)}`}hashId(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return Math.abs(t).toString(16)}async get(){let e=this.encodeKey(),t=await this.cellCollection.get(e);return t?this.snapshotFromState(t):null}async set(e,t){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let n=await this.getUnlocked();if(n?.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let r=n?.authority.epoch??0;if(t?.authorityEpoch!==void 0&&n&&t.authorityEpoch!==r)throw Error(`AUTHORITY_CONFLICT: expected epoch ${r}, got ${t.authorityEpoch}`);if(t?.leaseId!==void 0){if(!n?.lease)throw Error(`LEASE_INVALID: no active lease`);if(n.lease.leaseId!==t.leaseId)throw Error(`LEASE_INVALID: lease ID mismatch`);if(n.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(n.lease.epoch!==r)throw Error(`LEASE_INVALID: lease epoch does not match authority epoch`)}let i=n?.version??0,a=n?.authority??{owner:null,epoch:0,lifecycle:`active`},o=n?.placement??{nodeId:null},s=n?.lease??null,c={id:this.id,version:i+1,value:e,updatedAt:new Date().toISOString(),authority:a,placement:o,lease:s},l=this.encodeKey();if(i===0)await this.cellCollection.insert(c,l);else if(!(await this.cellCollection.updateIfVersion(l,i,c,r,t?.leaseId)).updated)throw Error(`Cell ${this.id} version conflict`);return this.emitChange({cellId:this.id,version:c.version,value:e,timestamp:c.updatedAt,epoch:c.authority.epoch}),this.snapshotFromState(c)})}async update(e,t){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let n=await this.getUnlocked();if(n?.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let r=n?.authority.epoch??0;if(t?.authorityEpoch!==void 0&&n&&t.authorityEpoch!==r)throw Error(`AUTHORITY_CONFLICT: expected epoch ${r}, got ${t.authorityEpoch}`);if(t?.leaseId!==void 0){if(!n?.lease)throw Error(`LEASE_INVALID: no active lease`);if(n.lease.leaseId!==t.leaseId)throw Error(`LEASE_INVALID: lease ID mismatch`);if(n.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(n.lease.epoch!==r)throw Error(`LEASE_INVALID: lease epoch does not match authority epoch`)}let i=n?.value??null,a=n?.version??0,o=e(i);if(o===Er){if(n)return this.snapshotFromState(n);throw Error(`Cell ${this.id} update returned NO_CHANGE but cell does not exist`)}let s=n?.authority??{owner:null,epoch:0,lifecycle:`active`},c=n?.placement??{nodeId:null},l=n?.lease??null,u={id:this.id,version:a+1,value:o,updatedAt:new Date().toISOString(),authority:s,placement:c,lease:l},d=this.encodeKey();if(a===0)await this.cellCollection.insert(u,d);else if(!(await this.cellCollection.updateIfVersion(d,a,u,r,t?.leaseId)).updated)throw Error(`Cell ${this.id} conflict during update`);return this.emitChange({cellId:this.id,version:u.version,value:o,timestamp:u.updatedAt,epoch:u.authority.epoch}),this.snapshotFromState(u)})}async transact(e){return this.acquireLock(async()=>e({get:()=>this.getUnlocked(),set:(e,t)=>this.setUnlocked(e,t),update:(e,t)=>this.updateUnlocked(e,t)}))}async transitionAuthority(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(t.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);if(t.authority.epoch!==e.expectedEpoch)throw Error(`AUTHORITY_CONFLICT: expected epoch ${e.expectedEpoch}, got ${t.authority.epoch}`);e.lifecycle!==void 0&&this.validateLifecycleTransition(t.authority.lifecycle,e.lifecycle);let n={owner:e.owner===void 0?t.authority.owner:e.owner,epoch:t.authority.epoch+1,lifecycle:e.lifecycle===void 0?t.authority.lifecycle:e.lifecycle},r={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:n,placement:t.placement,lease:null},i=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(i,t.version,r,t.authority.epoch)).updated)throw Error(`AUTHORITY_CONFLICT: epoch changed during transition`);return this.emitChange({cellId:this.id,version:r.version,value:t.value,timestamp:r.updatedAt,epoch:r.authority.epoch}),this.snapshotFromState(r)})}async delegate(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(t.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);if(t.authority.epoch!==e.expectedEpoch)throw Error(`AUTHORITY_CONFLICT: expected epoch ${e.expectedEpoch}, got ${t.authority.epoch}`);if(t.authority.owner!==e.from)throw Error(`AUTHORITY_CONFLICT: expected owner ${e.from}, got ${t.authority.owner}`);let n={owner:e.to,epoch:t.authority.epoch+1,lifecycle:t.authority.lifecycle},r={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:n,placement:t.placement,lease:null},i=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(i,t.version,r,t.authority.epoch)).updated)throw Error(`AUTHORITY_CONFLICT: authority changed during delegation`);return this.emitChange({cellId:this.id,version:r.version,value:t.value,timestamp:r.updatedAt,epoch:r.authority.epoch}),this.snapshotFromState(r)})}async updatePlacement(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(t.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let n=t.authority.epoch,r={nodeId:e.nodeId},i={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:t.authority,placement:r,lease:t.lease},a=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(a,t.version,i,n)).updated)throw Error(`Cell ${this.id} conflict during placement update`);return this.emitChange({cellId:this.id,version:i.version,value:t.value,timestamp:i.updatedAt,epoch:i.authority.epoch}),this.snapshotFromState(i)})}async acquireLease(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(t.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);if(t.authority.lifecycle===`suspended`)throw Error(`Cell ${this.id} is suspended`);if(t.lease&&t.lease.expiresAt>Date.now())throw Error(`LEASE_CONFLICT: lease already held by ${t.lease.holder}`);let n=t.authority.epoch,r=`${this.id}:${Date.now()}:${Math.random().toString(36).slice(2)}`,i={holder:e.holder,leaseId:r,epoch:n,expiresAt:Date.now()+e.durationMs},a={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:t.authority,placement:t.placement,lease:i},o=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(o,t.version,a,n)).updated)throw Error(`Cell ${this.id} conflict during lease acquisition`);return this.emitChange({cellId:this.id,version:a.version,value:t.value,timestamp:a.updatedAt,epoch:a.authority.epoch}),this.snapshotFromState(a)})}async renewLease(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(!t.lease)throw Error(`Cell ${this.id} has no active lease`);if(t.lease.leaseId!==e.leaseId)throw Error(`LEASE_CONFLICT: lease ID mismatch`);if(t.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(t.lease.epoch!==t.authority.epoch)throw Error(`AUTHORITY_CONFLICT: authority epoch changed since lease acquisition`);let n=t.authority.epoch,r={holder:t.lease.holder,leaseId:t.lease.leaseId,epoch:t.lease.epoch,expiresAt:Date.now()+e.durationMs},i={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:t.authority,placement:t.placement,lease:r},a=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(a,t.version,i,n)).updated)throw Error(`Cell ${this.id} conflict during lease renewal`);return this.emitChange({cellId:this.id,version:i.version,value:t.value,timestamp:i.updatedAt,epoch:i.authority.epoch}),this.snapshotFromState(i)})}async releaseLease(e){return this.acquireLock(async()=>{if(this.isReplica)throw Error(`REPLICA_READ_ONLY: Cell ${this.id} is a read-only replica`);let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);if(!t.lease)throw Error(`Cell ${this.id} has no active lease`);if(t.lease.leaseId!==e.leaseId)throw Error(`LEASE_CONFLICT: lease ID mismatch`);let n=t.authority.epoch,r={id:this.id,version:t.version+1,value:t.value,updatedAt:new Date().toISOString(),authority:t.authority,placement:t.placement,lease:null},i=this.encodeKey();if(!(await this.cellCollection.updateIfVersion(i,t.version,r,n)).updated)throw Error(`Cell ${this.id} conflict during lease release`);return this.emitChange({cellId:this.id,version:r.version,value:t.value,timestamp:r.updatedAt,epoch:r.authority.epoch}),this.snapshotFromState(r)})}async promote(e){return this.acquireLock(async()=>{let t=await this.getUnlocked();if(!t)throw Error(`Cell ${this.id} does not exist`);return this.promoteSnapshot(t,e)})}async promoteSnapshot(e,t){if(e.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);if(e.version!==t.expectedVersion)throw Error(`PROMOTION_CONFLICT: expected version ${t.expectedVersion}, got ${e.version}`);if(e.authority.epoch!==t.expectedEpoch)throw Error(`PROMOTION_CONFLICT: expected epoch ${t.expectedEpoch}, got ${e.authority.epoch}`);let n={owner:t.newOwner,epoch:e.authority.epoch+1,lifecycle:e.authority.lifecycle},r={nodeId:t.newNodeId===void 0?e.placement.nodeId:t.newNodeId},i={id:this.id,version:e.version+1,value:e.value,updatedAt:new Date().toISOString(),authority:n,placement:r,lease:null},a=this.encodeKey(),o=e.lease&&e.lease.expiresAt>Date.now()?e.lease.leaseId:void 0,s=await this.cellCollection.updateIfVersion(a,e.__version??e.version,i,e.authority.epoch,o,!0,e);if(!s.updated)throw s.conflictCode===`REPLICATION_CONFLICT`?Error(`REPLICATION_CONFLICT: divergent replica cannot be promoted`):Error(`PROMOTION_CONFLICT: cell state changed during promotion`);return this.emitChange({cellId:this.id,version:i.version,value:e.value,timestamp:i.updatedAt,epoch:i.authority.epoch}),this.snapshotFromState(i)}async observeHealth(e){let t=`observation_${this.id}_${e.nodeId}`,n=await this.failureObservationCollection.get(t);if(!(n&&n.observedAt>e.observedAt)){if(n){let r=n.__version??1;if(!(await this.failureObservationCollection.updateIfVersion(t,r,e,0)).updated)return}else await this.failureObservationCollection.insert(e,t)}}async evaluateFailure(e){let t=`observation_${this.id}_${e.nodeId}`,n=await this.failureObservationCollection.get(t);if(!n)return{status:`healthy`,authorityEpoch:e.nodeId===(await this.getUnlocked())?.authority.owner?(await this.getUnlocked())?.authority.epoch??0:0,nodeId:e.nodeId};let r=await this.getUnlocked();if(r&&n.authorityEpoch<r.authority.epoch)return{status:`healthy`,authorityEpoch:r.authority.epoch,nodeId:e.nodeId};let i=e.now-n.lastSeenAt,a;return a=i<e.suspectAfterMs?`healthy`:i<e.failedAfterMs?`suspect`:`failed`,{status:a,authorityEpoch:n.authorityEpoch,nodeId:e.nodeId,ageMs:i}}async attemptAutomaticFailover(e){if(!this.isReplica)return{attempted:!1,promoted:!1,reason:`Not a replica`,diagnostics:{isReplica:!1,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};let t=e.replicaSnapshot??await this.getUnlocked();if(!t)return{attempted:!1,promoted:!1,reason:`Replica state not found`,diagnostics:{isReplica:!0,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};let n=`observation_${this.id}_${e.failureEvaluationOptions.nodeId}`,r=e.failureObservation??await this.failureObservationCollection.get(n),i=this.evaluateFailureSnapshot(e.failureEvaluationOptions,r,t);if(i.status!==`failed`)return{attempted:!1,promoted:!1,reason:`Current authority not failed (status: ${i.status})`,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};if(t.authority.lifecycle===`retired`)return{attempted:!1,promoted:!1,reason:`Cell is retired`,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};if(t.authority.epoch!==i.authorityEpoch)return{attempted:!1,promoted:!1,reason:`Replica authority epoch mismatch: replica=${t.authority.epoch}, observed=${i.authorityEpoch}`,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!1,promotionAttempted:!1,promotionSucceeded:!1}};try{return await this.promoteSnapshot(t,{expectedVersion:t.version,expectedEpoch:t.authority.epoch,newOwner:e.newOwner,newNodeId:t.placement.nodeId}),{attempted:!0,promoted:!0,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!0,promotionAttempted:!0,promotionSucceeded:!0}}}catch(e){return{attempted:!0,promoted:!1,reason:`Promotion failed: ${e instanceof Error?e.message:String(e)}`,diagnostics:{isReplica:!0,failureStatus:i.status,eligibilityChecksPassed:!0,promotionAttempted:!0,promotionSucceeded:!1}}}}evaluateFailureSnapshot(e,t,n){if(!t)return{status:`healthy`,authorityEpoch:e.nodeId===n.authority.owner?n.authority.epoch:0,nodeId:e.nodeId};if(t.authorityEpoch<n.authority.epoch)return{status:`healthy`,authorityEpoch:n.authority.epoch,nodeId:e.nodeId};let r=e.now-t.lastSeenAt;return{status:r<e.suspectAfterMs?`healthy`:r<e.failedAfterMs?`suspect`:`failed`,authorityEpoch:t.authorityEpoch,nodeId:e.nodeId,ageMs:r}}validateLifecycleTransition(e,t){if(!{active:[`suspended`,`retired`],suspended:[`active`,`retired`],retired:[]}[e].includes(t))throw Error(`Invalid lifecycle transition: ${e} → ${t}`)}async getUnlocked(){let e=this.encodeKey(),t=await this.cellCollection.get(e);return t?this.snapshotFromState(t):null}async setUnlocked(e,t){let n=await this.getUnlocked();if(n?.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let r=n?.authority.epoch??0;if(t?.authorityEpoch!==void 0&&n&&t.authorityEpoch!==r)throw Error(`AUTHORITY_CONFLICT: expected epoch ${r}, got ${t.authorityEpoch}`);if(t?.leaseId!==void 0){if(!n?.lease)throw Error(`LEASE_INVALID: no active lease`);if(n.lease.leaseId!==t.leaseId)throw Error(`LEASE_INVALID: lease ID mismatch`);if(n.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(n.lease.epoch!==r)throw Error(`LEASE_INVALID: lease epoch does not match authority epoch`)}let i=n?.version??0,a=n?.authority??{owner:null,epoch:0,lifecycle:`active`},o=n?.placement??{nodeId:null},s=n?.lease??null,c={id:this.id,version:i+1,value:e,updatedAt:new Date().toISOString(),authority:a,placement:o,lease:s},l=this.encodeKey();if(i===0)await this.cellCollection.insert(c,l);else if(!(await this.cellCollection.updateIfVersion(l,i,c,r)).updated)throw Error(`Cell ${this.id} version conflict`);return this.emitChange({cellId:this.id,version:c.version,value:e,timestamp:c.updatedAt,epoch:c.authority.epoch}),this.snapshotFromState(c)}async updateUnlocked(e,t){let n=await this.getUnlocked();if(n?.authority.lifecycle===`retired`)throw Error(`Cell ${this.id} is retired`);let r=n?.authority.epoch??0;if(t?.authorityEpoch!==void 0&&n&&t.authorityEpoch!==r)throw Error(`AUTHORITY_CONFLICT: expected epoch ${r}, got ${t.authorityEpoch}`);if(t?.leaseId!==void 0){if(!n?.lease)throw Error(`LEASE_INVALID: no active lease`);if(n.lease.leaseId!==t.leaseId)throw Error(`LEASE_INVALID: lease ID mismatch`);if(n.lease.expiresAt<=Date.now())throw Error(`LEASE_EXPIRED: lease has expired`);if(n.lease.epoch!==r)throw Error(`LEASE_INVALID: lease epoch does not match authority epoch`)}let i=n?.value??null,a=n?.version??0,o=e(i);if(o===Er){if(n)return this.snapshotFromState(n);throw Error(`Cell ${this.id} update returned NO_CHANGE but cell does not exist`)}let s=n?.authority??{owner:null,epoch:0,lifecycle:`active`},c=n?.placement??{nodeId:null},l=n?.lease??null,u={id:this.id,version:a+1,value:o,updatedAt:new Date().toISOString(),authority:s,placement:c,lease:l},d=this.encodeKey();if(a===0)await this.cellCollection.insert(u,d);else if(!(await this.cellCollection.updateIfVersion(d,a,u,r)).updated)throw Error(`Cell ${this.id} conflict during update`);return this.emitChange({cellId:this.id,version:u.version,value:o,timestamp:u.updatedAt,epoch:u.authority.epoch}),this.snapshotFromState(u)}snapshotFromState(e){let t={id:this.id,version:e.version,value:e.value,updatedAt:e.updatedAt,authority:e.authority,placement:e.placement,lease:e.lease},n=e.__version;return n!==void 0&&Object.defineProperty(t,"__version",{value:n,enumerable:!1}),t}on(e,t){e===`change`&&this.changeHandlers.push(t)}off(e,t){if(e===`change`){let e=this.changeHandlers.indexOf(t);e>=0&&this.changeHandlers.splice(e,1)}}emitChange(e){for(let t of this.changeHandlers)try{t(e)}catch(e){console.error(`Error in cell change handler: ${e}`)}}acquireLock(e){return new Promise((t,n)=>{this.mutationQueue.push(async()=>{try{t(await e())}catch(e){n(e)}}),this.isLocked||this.processQueue()})}async processQueue(){if(this.isLocked||this.mutationQueue.length===0)return;this.isLocked=!0;let e=this.mutationQueue.shift();if(e)try{await e()}catch{}finally{this.isLocked=!1,this.processQueue()}}},F;(function(e){e.Created=`Created`,e.Planning=`Planning`,e.Observing=`Observing`,e.Deciding=`Deciding`,e.Acting=`Acting`,e.Waiting=`Waiting`,e.Completed=`Completed`,e.Failed=`Failed`,e.Cancelled=`Cancelled`,e.Blocked=`Blocked`})(F||={});function Or(e,t){return{name:e,version:t,toString(){return`flow://agent/${this.name}@${this.version}`}}}function kr(e){return`exec-${e}-${Date.now()}-${Math.random().toString(36).slice(2,11)}`}var Ar=class{agents=new Map;register(e,t){let n=e.toString(),r={agentRef:e,definition:t,providers:[],compatibleStateVersions:[],registeredAt:Date.now(),updatedAt:Date.now(),active:!0};this.agents.set(n,r)}unregister(e){let t=e.toString();this.agents.delete(t)}get(e){let t=e.toString();return this.agents.get(t)}getByName(e){let t;for(let n of this.agents.values())n.definition.name===e&&(!t||n.agentRef.version>t.agentRef.version)&&(t=n);return t}getAll(){return Array.from(this.agents.values())}addProvider(e,t){let n=e.toString(),r=this.agents.get(n);if(!r)throw Error(`Agent not registered: ${n}`);r.providers=r.providers.filter(e=>e.peerId!==t.peerId),r.providers.push(t),r.updatedAt=Date.now()}removeProvider(e,t){let n=e.toString(),r=this.agents.get(n);if(!r)throw Error(`Agent not registered: ${n}`);r.providers=r.providers.filter(e=>e.peerId!==t),r.updatedAt=Date.now()}getAvailableProviders(e){let t=this.get(e);return t?t.providers.filter(e=>e.available):[]}findByCapability(e){let t=[];for(let n of this.agents.values())n.definition.capabilities.includes(e)&&t.push(n);return t}updateAvailability(e,t,n){let r=this.get(e);if(!r)throw Error(`Agent not registered: ${e.toString()}`);let i=r.providers.find(e=>e.peerId===t);i&&(i.available=n,i.lastHeartbeat=Date.now(),r.updatedAt=Date.now())}clear(){this.agents.clear()}},jr=class{ownership=new Map;locks=new Map;claim(e,t,n){let r=this.ownership.get(e);if(r===t)return!0;if(r)return!1;let i=this.locks.get(e);return i&&i.expiresAt>Date.now()?!1:(this.ownership.set(e,t),this.locks.set(e,{peerId:t,expiresAt:Date.now()+n}),!0)}release(e,t){this.ownership.get(e)===t&&(this.ownership.delete(e),this.locks.delete(e))}getOwner(e){return this.ownership.get(e)}isValid(e){let t=this.locks.get(e);return t?t.expiresAt>Date.now():!1}renew(e,t,n){return this.ownership.get(e)===t&&(this.locks.set(e,{peerId:t,expiresAt:Date.now()+n}),!0)}},Mr=class{config;registry;handlers=new Map;executions=new Map;ownership;triggers=new Map;constructor(e,t){this.registry=e,this.config=t,this.ownership=new jr}registerHandler(e,t){this.handlers.set(e,t)}async createExecution(e,t,n,r){let i=kr(t.name),a={executionId:i,agentRef:t,status:F.Created,goal:n,inputs:r,stateVersion:0,observationIds:[],decisionIds:[],actionIds:[],attempt:1,createdMs:Date.now()};return this.executions.set(i,a),a}async start(e,t){if(!this.ownership.claim(e.executionId,t,3e4))throw Error(`Failed to claim ownership of execution ${e.executionId}`);try{return e.status=F.Planning,e.ownedBy=t,e.startedMs=Date.now(),{execution:e,status:F.Planning,resultRef:void 0}}catch(t){return e.status=F.Failed,e.error=String(t),e.completedMs=Date.now(),{execution:e,status:F.Failed,error:String(t)}}}async resume(e,t){if(!this.ownership.claim(e.executionId,t,3e4)&&this.ownership.getOwner(e.executionId)!==t)throw Error(`Cannot resume execution ${e.executionId}: owned by ${this.ownership.getOwner(e.executionId)}`);return e.ownedBy=t,e.status=F.Observing,{execution:e,status:F.Observing}}async transition(e,t){if(!({[F.Created]:[F.Planning],[F.Planning]:[F.Observing],[F.Observing]:[F.Deciding,F.Waiting],[F.Deciding]:[F.Acting],[F.Acting]:[F.Observing,F.Waiting,F.Completed],[F.Waiting]:[F.Observing,F.Blocked],[F.Completed]:[],[F.Failed]:[],[F.Cancelled]:[],[F.Blocked]:[F.Observing]}[e.status]||[]).includes(t))throw Error(`Invalid transition from ${e.status} to ${t}`);e.status=t}async complete(e,t){e.status=F.Completed,e.resultRef=t,e.completedMs=Date.now(),e.ownedBy&&this.ownership.release(e.executionId,e.ownedBy)}async fail(e,t){e.status=F.Failed,e.error=t,e.completedMs=Date.now(),e.ownedBy&&this.ownership.release(e.executionId,e.ownedBy)}getExecution(e){return this.executions.get(e)}getOwner(e){return this.ownership.getOwner(e)}registerTriggers(e,t){this.triggers.set(e,t)}getTriggers(e){return this.triggers.get(e)||[]}};function Nr(e,t){return`${e}:${t}`}var Pr=/^[A-Za-z0-9._-]{1,128}$/;function Fr(e,t){if(!e.transactionId||!e.transactionId.trim())return{kind:`reject`,reason:`transactionId is required`};if(e.operations.length===0)return{kind:`reject`,reason:`a transaction requires at least one operation`};if(t.hasApplied(e.transactionId))return{kind:`duplicate`};let n=[...(e.preconditions??[]).map(e=>({...e})),...e.operations.filter(e=>e.expectedVersion!==void 0||e.expectedEpoch!==void 0||e.expectedLeaseId!==void 0).map(e=>({collection:e.collection,id:e.id,expectedVersion:e.expectedVersion,expectedEpoch:e.expectedEpoch,expectedLeaseId:e.expectedLeaseId}))];if(n.length>0&&!t.read)return{kind:`reject`,reason:`this runtime cannot evaluate transaction preconditions, so it refuses the transaction rather than committing it unconditionally`};for(let e of n){if(!Pr.test(e.collection)||!Pr.test(String(e.id)))return{kind:`reject`,reason:`invalid collection or id: ${e.collection}:${e.id}`};if(e.requireAbsent!==!0&&e.expectedVersion===void 0&&e.expectedEpoch===void 0&&e.expectedLeaseId===void 0)return{kind:`reject`,reason:`precondition on ${e.collection}:${e.id} constrains nothing`};let n=Nr(e.collection,String(e.id)),r=t.read(n);if(e.requireAbsent){if(r!==void 0)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:record already exists`};continue}if(r===void 0)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:record does not exist`};if(e.expectedVersion!==void 0){let t=typeof r.__version==`number`?r.__version:1;if(t!==e.expectedVersion)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:version ${t}, expected ${e.expectedVersion}`}}if(e.expectedEpoch!==void 0){let t=r.authority,i=typeof t?.epoch==`number`?t.epoch:0;if(i!==e.expectedEpoch)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:epoch ${i}, expected ${e.expectedEpoch}`}}if(e.expectedLeaseId!==void 0){let t=r.lease,i=t?.leaseId,a=typeof t?.expiresAt==`number`&&t.expiresAt>Date.now();if(i!==e.expectedLeaseId||!a)return{kind:`reject`,reason:`PRECONDITION_FAILED:${n}:lease ${i??`none`}, expected ${e.expectedLeaseId}`}}}let r=[],i=new Set;for(let a of e.operations){if(!Pr.test(a.collection)||!Pr.test(a.id))return{kind:`reject`,reason:`invalid collection or id: ${a.collection}:${a.id}`};let e=Nr(a.collection,a.id);if(i.has(e))return{kind:`reject`,reason:`transaction writes ${e} more than once`};if(i.add(e),a.requireAbsent&&t.exists(e))return{kind:`reject`,reason:`PRECONDITION_FAILED:${e}:record already exists`};let o=a.requireAbsent===!0||n.some(e=>e.requireAbsent===!0&&e.collection===a.collection&&String(e.id)===a.id),s=a.value===void 0?void 0:o?{...a.value,id:a.id,__version:1}:a.expectedVersion===void 0?{...a.value,id:a.id}:{...a.value,id:a.id,__version:a.expectedVersion+1};r.push({key:e,collection:a.collection,id:a.id,value:s})}return{kind:`apply`,mutations:r}}function Ir(e,t,n,r){return{transactionId:e.transactionId,duplicate:t,operations:e.operations.length,stateBefore:n,stateAfter:r}}var Lr=class extends Error{constructor(e){super(e),this.name=`EmbeddedTransactionRejected`}},Rr=new Map,zr=new Map;function Br(e){let t=zr.get(e);return t||(t={value:0,replicated:!1},zr.set(e,t)),t}var Vr=class{rows;events=[];sequence=0;origin;revisionState;peers=new Set;applied=new Set;constructor(e){let t=Rr.get(e);t||(t=new Map,Rr.set(e,t)),this.rows=t,this.revisionState=Br(e),this.origin=`memory:${e}`}event(e,t,n,r){this.sequence+=1,this.revisionState.value+=1;let i=Date.now();this.events.push({sequence:this.sequence,collection:e,key:t,type:n,value:r,timestamp:i,origin:this.origin,id:`${this.origin}:${i}:${this.sequence}`})}async commit_transaction(e){let t=this.sequence,n=Fr(e,{exists:e=>this.rows.has(e),hasApplied:e=>this.applied.has(e),read:e=>this.rows.get(e)});if(n.kind===`duplicate`)return Ir(e,!0,t,this.sequence);if(n.kind===`reject`)throw new Lr(n.reason);for(let e of n.mutations)e.value===void 0?(this.rows.delete(e.key),this.event(e.collection,e.key,`delete`)):(this.rows.set(e.key,e.value),this.event(e.collection,e.key,`put`,e.value));return this.applied.add(e.transactionId),Ir(e,!1,t,this.sequence)}insert(e,t){try{return this.rows.set(e,JSON.parse(t)),this.event(e.split(`:`)[0],e,`put`,JSON.parse(t)),{success:!0,data:e}}catch(e){return{success:!1,error:String(e)}}}update(e,t){return this.rows.has(e)?this.insert(e,t):{success:!1,error:`Record ${e} not found`}}get(e){let t=this.rows.get(e);return t===void 0?{success:!0}:{success:!0,data:JSON.stringify(t)}}delete(e){return this.rows.delete(e),this.event(e.split(`:`)[0],e,`delete`),{success:!0,data:e}}putIfAbsent(e,t){let n=this.rows.get(e);if(n!==void 0)return Promise.resolve({inserted:!1,value:JSON.stringify(n)});let r=JSON.parse(t);return this.rows.set(e,r),this.event(e.split(`:`)[0],e,`put`,r),Promise.resolve({inserted:!0,value:t})}cas(e){let t=this.rows.get(e.key),n=JSON.parse(e.value);if(t===void 0)return Promise.resolve({updated:!1,currentVersion:0});let r=t,i=r.__version??1,a=r.authority?.epoch??0;if(i!==e.expectedVersion||e.expectedEpoch!==void 0&&a!==e.expectedEpoch)return Promise.resolve({updated:!1,currentVersion:i,currentEpoch:a});let o=e.expectedVersion+1,s={...n,__version:o};return this.rows.set(e.key,s),this.event(e.key.split(`:`)[0],e.key,`put`,s),Promise.resolve({updated:!0,currentVersion:o,currentEpoch:a})}query(e){let t=`${e}:`,n=[...this.rows].filter(([e])=>e.startsWith(t)).map(([,e])=>e);return{success:!0,data:JSON.stringify(n)}}get_capability_records(e){return this.query(e)}execute_op(){return{success:!1,error:`Raw operations are unavailable in the memory runtime`}}sync_info(){return{success:!0,data:JSON.stringify({instance_id:this.origin,sequence:this.sequence,connected_peers:[...this.peers],pending_operations:0,operations_sent:0,operations_received:0,conflicts_detected:0,last_sync_ms:0,is_connected:this.peers.size>0})}}add_peer(){return{success:!0}}add_sync_peer(e){return this.peers.add(e),{success:!0}}remove_sync_peer(e){return this.peers.delete(e),{success:!0}}acknowledge_peer_operations(){return{success:!0}}get_pending_for_peer(){return{success:!0,data:`[]`}}instance_id(){return this.origin}get_sequence(){return this.sequence}freshness(){return this.revisionState.replicated||this.peers.size>0?{domain:`replicated`,validation:`refresh`,invalidation:!1,reason:`remote operations order causally across replicas, so a local counter is not an authoritative revision`}:{domain:`single-process`,validation:`revision`,invalidation:!1,revisionScope:this.origin}}async revision(){let e=this.freshness();if(e.validation!==`revision`)throw new ir(`memory runtime: ${e.reason}`);return{value:this.revisionState.value,scope:this.origin}}audit_events(){return[...this.events]}export_operations(e){return this.events.filter(t=>t.sequence>e)}apply_remote_operations(e){e.length>0&&(this.revisionState.replicated=!0);let t=0,n=0;for(let r of e){if(this.events.some(e=>e.id===r.id)){n++;continue}let e=[...this.events].reverse().find(e=>e.key===r.key),i=`${String(r.timestamp).padStart(16,`0`)}:${r.origin}:${r.id}`,a=e?`${String(e.timestamp).padStart(16,`0`)}:${e.origin}:${e.id}`:``;this.sequence+=1,this.events.push({...r,sequence:this.sequence}),i>=a?(r.type===`delete`?this.rows.delete(r.key):this.rows.set(r.key,r.value),t++):n++}return{applied:t,ignored:n}}},I=class{url;token;constructor(e){this.url=e.url.replace(/\/$/,``),this.token=e.token}headers(e=!1){return{Authorization:`Bearer ${this.token}`,"FeltDB-Protocol":`1`,...e?{"Content-Type":`application/json`}:{}}}splitKey(e){let t=e.indexOf(`:`);if(t<1||t===e.length-1)throw Error(`Invalid FeltDB key: ${e}`);return[e.slice(0,t),e.slice(t+1)]}async get(e){try{let[t,n]=this.splitKey(e),r=await fetch(`${this.url}/collections/${encodeURIComponent(t)}/${encodeURIComponent(n)}`,{headers:this.headers()});if(r.status===404)return{success:!0};if(!r.ok)return this.failure(r);let i=await r.json();return{success:!0,data:JSON.stringify(i.value)}}catch(e){return{success:!1,error:String(e)}}}async query(e){try{let t=await fetch(`${this.url}/collections/${encodeURIComponent(e)}`,{headers:this.headers()});if(!t.ok)return this.failure(t);let n=await t.json();return{success:!0,data:JSON.stringify(n.map(e=>e.value))}}catch(e){return{success:!1,error:String(e)}}}async insert(e,t){try{let[n,r]=this.splitKey(e),i=JSON.parse(t),a=await fetch(`${this.url}/collections/${encodeURIComponent(n)}`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify({...i,id:r})});return a.ok?{success:!0,data:e}:this.failure(a)}catch(e){return{success:!1,error:String(e)}}}async update(e,t){try{let[n,r]=this.splitKey(e),i=await fetch(`${this.url}/collections/${encodeURIComponent(n)}/${encodeURIComponent(r)}`,{method:`PATCH`,headers:this.headers(!0),body:t});return i.ok?{success:!0,data:e}:this.failure(i)}catch(e){return{success:!1,error:String(e)}}}async commit_transaction(e){let t=await fetch(`${this.url}/transactions`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify(e)});if(!t.ok){let e={};try{e=await t.json()}catch{}let n=Error(e.error||`transaction failed with HTTP ${t.status}`);throw n.status=t.status,e.code&&(n.feltdbCode=e.code),e.failure&&(n.feltdbConflict=e.failure),n}return await t.json()}async cas(e){try{let[t,n]=this.splitKey(e.key),r=JSON.parse(e.value),i=await fetch(`${this.url}/collections/${encodeURIComponent(t)}/${encodeURIComponent(n)}/cas`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify({expectedVersion:e.expectedVersion,expectedEpoch:e.expectedEpoch,expectedLeaseId:e.expectedLeaseId,rejectIfDiverged:e.rejectIfDiverged,value:r})});if(i.status===409){let e=await i.json();if((e.code===`VERSION_CONFLICT`||e.code===`AUTHORITY_CONFLICT`||e.code===`LEASE_CONFLICT`||e.code===`REPLICATION_CONFLICT`)&&e.currentVersion!==void 0)return{updated:!1,currentVersion:e.currentVersion,currentEpoch:e.currentEpoch,conflictCode:e.code}}if(!i.ok){let e=await this.failure(i);throw Error(e.error||`HTTP CAS failed`)}return await i.json()}catch(e){throw e instanceof Error?e:Error(String(e))}}async delete(e){try{let[t,n]=this.splitKey(e),r=await fetch(`${this.url}/collections/${encodeURIComponent(t)}/${encodeURIComponent(n)}`,{method:`DELETE`,headers:this.headers()});return r.ok?{success:!0,data:e}:this.failure(r)}catch(e){return{success:!1,error:String(e)}}}async acquire(e,t){let n=await fetch(`${this.url}/refs/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{headers:this.headers()});if(n.status===404)return null;if(!n.ok)throw Error((await this.failure(n)).error);return(await n.json()).value}async search(e,t,n=50){let r=await fetch(`${this.url}/capabilities/search/${encodeURIComponent(e)}`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify({query:t,limit:n})});if(!r.ok)throw Error((await this.failure(r)).error);return(await r.json()).map(e=>e.value)}async provenance(e,t){let n=await fetch(`${this.url}/provenance/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{headers:this.headers()});if(!n.ok)throw Error((await this.failure(n)).error);return n.json()}async storeContent(e){let t=await fetch(`${this.url}/content`,{method:`PUT`,headers:this.headers(),body:e});if(!t.ok)throw Error((await this.failure(t)).error);return t.json()}async acquireContent(e){let t=await fetch(`${this.url}/content/${encodeURIComponent(e)}`,{headers:this.headers()});if(t.status===404)return null;if(!t.ok)throw Error((await this.failure(t)).error);return new Uint8Array(await t.arrayBuffer())}async command(e,t){let n=await fetch(`${this.url}${e}`,{method:`POST`,headers:this.headers(!0),body:JSON.stringify(t)});if(!n.ok)throw Error((await this.failure(n)).error);return n.status===204?void 0:n.json()}subscribe_changes(e){let t=new AbortController;return this.consumeEvents(t,e),()=>t.abort()}async consumeEvents(e,t){for(;!e.signal.aborted;){try{let n=await fetch(`${this.url}/events`,{headers:this.headers(),signal:e.signal});if(!n.ok||!n.body)throw Error(`Event stream failed: HTTP ${n.status}`);let r=n.body.getReader(),i=new TextDecoder,a=``;for(;!e.signal.aborted;){let{done:e,value:n}=await r.read();if(e)break;a+=i.decode(n,{stream:!0}).replace(/\r\n/g,`
|
|
11
11
|
`);let o=a.split(`
|
|
12
12
|
|
|
13
13
|
`);a=o.pop()??``;for(let e of o){let n=e.split(`
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#17211b"/><title>FeltDB Studio</title> <script type="module" crossorigin src="/assets/index-
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#17211b"/><title>FeltDB Studio</title> <script type="module" crossorigin src="/assets/index-sQyf4Ewl.js"></script>
|
|
2
2
|
<link rel="stylesheet" crossorigin href="/assets/index-C1GWyazR.css">
|
|
3
3
|
</head><body><div id="root"></div></body></html>
|
|
Binary file
|
package/package.json
CHANGED
|
Binary file
|