@feltdb/core 0.4.4 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/bin/create-feltdb.js +3 -0
- package/bin/feltdb.js +3 -0
- package/dist/analytics-backend.js +1 -1
- package/dist/cli/api-client.js +236 -0
- package/dist/cli/cli.js +18 -0
- package/dist/cli/commands.js +795 -0
- package/dist/cli/config.js +66 -0
- package/dist/cli/index.js +399 -0
- package/dist/create/application-identity.js +132 -0
- package/dist/create/cli-scripts-generator.js +211 -0
- package/dist/create/cli.js +202 -0
- package/dist/create/create.js +638 -0
- package/dist/create/docker-compose-generator.js +258 -0
- package/dist/create/index.js +4 -0
- package/dist/create/package-versions.js +4 -0
- package/dist/create/runtime-templates.js +272 -0
- package/dist/index-backend.js +1 -1
- package/dist/migrate/analyzer/index.d.ts +2 -0
- package/dist/migrate/analyzer/index.js +34 -0
- package/dist/migrate/benchmark/index.d.ts +13 -0
- package/dist/migrate/benchmark/index.js +8 -0
- package/dist/migrate/capability-gate/index.d.ts +3 -0
- package/dist/migrate/capability-gate/index.js +3 -0
- package/dist/migrate/classifier/index.d.ts +3 -0
- package/dist/migrate/classifier/index.js +53 -0
- package/dist/migrate/cli/index.d.ts +2 -0
- package/dist/migrate/cli/index.js +201 -0
- package/dist/migrate/domain-model/index.d.ts +2 -0
- package/dist/migrate/domain-model/index.js +4 -0
- package/dist/migrate/generator/index.d.ts +2 -0
- package/dist/migrate/generator/index.js +21 -0
- package/dist/migrate/index.d.ts +16 -0
- package/dist/migrate/index.js +16 -0
- package/dist/migrate/measurement/index.d.ts +7 -0
- package/dist/migrate/measurement/index.js +1 -0
- package/dist/migrate/migrator/index.d.ts +2 -0
- package/dist/migrate/migrator/index.js +35 -0
- package/dist/migrate/planner/index.d.ts +2 -0
- package/dist/migrate/planner/index.js +12 -0
- package/dist/migrate/prover/index.d.ts +9 -0
- package/dist/migrate/prover/index.js +3 -0
- package/dist/migrate/reporter/index.d.ts +4 -0
- package/dist/migrate/reporter/index.js +1 -0
- package/dist/migrate/runtime-dependencies/index.d.ts +13 -0
- package/dist/migrate/runtime-dependencies/index.js +112 -0
- package/dist/migrate/state-contract/index.d.ts +13 -0
- package/dist/migrate/state-contract/index.js +49 -0
- package/dist/migrate/types/index.d.ts +228 -0
- package/dist/migrate/types/index.js +1 -0
- package/dist/migrate/ui-wiring/index.d.ts +18 -0
- package/dist/migrate/ui-wiring/index.js +2 -0
- package/dist/migrate/util.d.ts +5 -0
- package/dist/migrate/util.js +10 -0
- package/dist/react/index.d.ts +7 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +6 -0
- package/dist/react/useCapability.d.ts +11 -0
- package/dist/react/useCapability.d.ts.map +1 -0
- package/dist/react/useCapability.js +30 -0
- package/dist/react/useCollection.d.ts +17 -0
- package/dist/react/useCollection.d.ts.map +1 -0
- package/dist/react/useCollection.js +69 -0
- package/dist/react/useFeltDB.d.ts +136 -0
- package/dist/react/useFeltDB.d.ts.map +1 -0
- package/dist/react/useFeltDB.js +350 -0
- package/dist/studio/.gitkeep +1 -0
- package/dist/studio/KeyManagementPanel-BOvWTRyH.js +246 -0
- package/dist/studio/app.d.ts +10 -0
- package/dist/studio/app.d.ts.map +1 -0
- package/dist/studio/components/AgentExplorer.d.ts +9 -0
- package/dist/studio/components/AgentExplorer.d.ts.map +1 -0
- package/dist/studio/components/ApplicationDesigner.d.ts +11 -0
- package/dist/studio/components/ApplicationDesigner.d.ts.map +1 -0
- package/dist/studio/components/CapabilityExplorer.d.ts +9 -0
- package/dist/studio/components/CapabilityExplorer.d.ts.map +1 -0
- package/dist/studio/components/ConflictExplorer.d.ts +9 -0
- package/dist/studio/components/ConflictExplorer.d.ts.map +1 -0
- package/dist/studio/components/ExecutionViewer.d.ts +9 -0
- package/dist/studio/components/ExecutionViewer.d.ts.map +1 -0
- package/dist/studio/components/GlobalSearch.d.ts +10 -0
- package/dist/studio/components/GlobalSearch.d.ts.map +1 -0
- package/dist/studio/components/HealthCenter.d.ts +9 -0
- package/dist/studio/components/HealthCenter.d.ts.map +1 -0
- package/dist/studio/components/KeyManagementPanel.d.ts +9 -0
- package/dist/studio/components/KeyManagementPanel.d.ts.map +1 -0
- package/dist/studio/components/KeyManagementPanel.js +2 -0
- package/dist/studio/components/ManagedInstancePanel.d.ts +4 -0
- package/dist/studio/components/ManagedInstancePanel.d.ts.map +1 -0
- package/dist/studio/components/ManagedInstancePanel.js +281 -0
- package/dist/studio/components/OperationsExplorer.d.ts +10 -0
- package/dist/studio/components/OperationsExplorer.d.ts.map +1 -0
- package/dist/studio/components/OverviewDashboard.d.ts +8 -0
- package/dist/studio/components/OverviewDashboard.d.ts.map +1 -0
- package/dist/studio/components/PeerMap.d.ts +8 -0
- package/dist/studio/components/PeerMap.d.ts.map +1 -0
- package/dist/studio/components/ProvenanceViewer.d.ts +11 -0
- package/dist/studio/components/ProvenanceViewer.d.ts.map +1 -0
- package/dist/studio/components/ReferenceExplorer.d.ts +10 -0
- package/dist/studio/components/ReferenceExplorer.d.ts.map +1 -0
- package/dist/studio/components/SettingsPanel.d.ts +7 -0
- package/dist/studio/components/SettingsPanel.d.ts.map +1 -0
- package/dist/studio/components/StateExplorer.d.ts +10 -0
- package/dist/studio/components/StateExplorer.d.ts.map +1 -0
- package/dist/studio/components/WorkflowVisualizer.d.ts +9 -0
- package/dist/studio/components/WorkflowVisualizer.d.ts.map +1 -0
- package/dist/studio/components/index.d.ts +24 -0
- package/dist/studio/components/index.d.ts.map +1 -0
- package/dist/studio/components/index.js +4 -0
- package/dist/studio/components-BRYUceo9.js +1711 -0
- package/dist/studio/hooks/index.d.ts +37 -0
- package/dist/studio/hooks/index.d.ts.map +1 -0
- package/dist/studio/index.d.ts +27 -0
- package/dist/studio/index.d.ts.map +1 -0
- package/dist/studio/index.html +30 -0
- package/dist/studio/index.js +236 -0
- package/dist/studio/main.d.ts +1 -0
- package/dist/studio/main.d.ts.map +1 -0
- package/dist/studio/studio.css +2 -0
- package/dist/studio/types/index.d.ts +133 -0
- package/dist/studio/types/index.d.ts.map +1 -0
- package/dist/studio/utils/api.d.ts +27 -0
- package/dist/studio/utils/api.d.ts.map +1 -0
- package/dist/studio/utils/format.d.ts +24 -0
- package/dist/studio/utils/format.d.ts.map +1 -0
- package/dist/studio/utils/index.d.ts +7 -0
- package/dist/studio/utils/index.d.ts.map +1 -0
- package/dist/studio/utils/index.js +75 -0
- package/dist/studio/utils/managed-instance.d.ts +40 -0
- package/dist/studio/utils/managed-instance.d.ts.map +1 -0
- package/dist/studio/utils/managed-instance.js +51 -0
- package/dist/studio-app/.gitkeep +1 -0
- package/dist/studio-app/assets/feltdb_wasm-BXMn9UxO.js +1 -0
- package/dist/studio-app/assets/feltdb_wasm_bg-bYYbZeRM.wasm +0 -0
- package/dist/studio-app/assets/index-B-lZjdtI.js +28 -0
- package/dist/studio-app/assets/index-CB-Eed9V.css +1 -0
- package/dist/studio-app/index.html +3 -0
- package/dist/wasm/feltdb_wasm.d.ts +461 -0
- package/dist/wasm/feltdb_wasm.js +1690 -0
- package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
- package/dist/wasm/feltdb_wasm_bg.wasm.d.ts +84 -0
- package/dist/wasm/package.json +16 -0
- package/package.json +40 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._panel_1cbba_1{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2rem}._header_1cbba_8{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}._header_1cbba_8 h2{color:var(--text-primary);margin:0;font-size:1.5rem}._createButton_1cbba_23{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._createButton_1cbba_23:hover{background:var(--accent-hover)}._error_1cbba_38{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:4px;margin-bottom:1rem;padding:1rem}._createForm_1cbba_47{background:var(--surface-alt);border:1px solid var(--border);border-radius:4px;margin-bottom:2rem;padding:1.5rem}._formGroup_1cbba_55{margin-bottom:1.5rem}._formGroup_1cbba_55 label{color:var(--text-primary);margin-bottom:.5rem;font-weight:600;display:block}._formGroup_1cbba_55 input[type=text]{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text-primary);border-radius:4px;padding:.5rem;font-family:inherit}._scopeList_1cbba_76{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}._scopeCheckbox_1cbba_82{cursor:pointer;color:var(--text-primary);align-items:center;display:flex}._scopeCheckbox_1cbba_82 input{cursor:pointer;margin-right:.5rem}._submitButton_1cbba_94{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;width:100%;padding:.75rem 1.5rem;font-weight:600}._submitButton_1cbba_94:hover{background:var(--accent-hover)}._empty_1cbba_109{text-align:center;color:var(--text-secondary);background:var(--surface-alt);border-radius:4px;padding:2rem}._keysList_1cbba_117{flex-direction:column;gap:1rem;display:flex}._keyCard_1cbba_123{border:1px solid var(--border);background:var(--surface-alt);border-radius:4px;padding:1.5rem;transition:border-color .2s}._keyCard_1cbba_123:hover{border-color:var(--accent)}._keyHeader_1cbba_135{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;display:flex}._keyHeader_1cbba_135 h3{color:var(--text-primary);margin:0 0 .25rem;font-size:1.1rem}._namespace_1cbba_150{color:var(--text-secondary);margin:0;font-size:.85rem}._status_1cbba_156{border-radius:12px;padding:.25rem .75rem;font-size:.85rem;font-weight:600}._status_1cbba_156._active_1cbba_163{background:var(--success-bg);color:var(--success-text)}._status_1cbba_156._expired_1cbba_168{background:var(--warning-bg);color:var(--warning-text)}._keyDetails_1cbba_173{gap:1rem;margin-bottom:1rem;display:grid}._detail_1cbba_179{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}._detail_1cbba_179 strong{color:var(--text-primary)}._detail_1cbba_179 span,._detail_1cbba_179 code{color:var(--text-secondary)}._detail_1cbba_179 code{background:var(--code-bg);border-radius:3px;padding:.25rem .5rem;font-family:monospace;font-size:.9rem}._copyBtn_1cbba_203{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:.25rem .5rem;font-size:.85rem}._copyBtn_1cbba_203:hover{background:var(--accent-hover)}._daysLeft_1cbba_217{color:var(--warning-text);font-size:.85rem;font-weight:600}._scopes_1cbba_223{margin-top:.75rem}._scopeTags_1cbba_227{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}._scopeTag_1cbba_227{background:var(--tag-bg);color:var(--tag-text);border-radius:12px;padding:.25rem .75rem;font-family:monospace;font-size:.85rem}._keyActions_1cbba_243{border-top:1px solid var(--border);gap:.5rem;padding-top:1rem;display:flex}._revokeBtn_1cbba_250{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);cursor:pointer;border-radius:4px;padding:.5rem 1rem;font-weight:600;transition:background-color .2s}._revokeBtn_1cbba_250:hover{background:var(--error-hover-bg)}._info_1cbba_265{background:var(--info-bg);color:var(--text-secondary);border-radius:4px;margin-top:2rem;padding:1rem;font-size:.9rem}._info_1cbba_265 p{margin:0}:root{--surface:#fff;--surface-alt:#f5f5f5;--text-primary:#000;--text-secondary:#666;--border:#e0e0e0;--accent:#007bff;--accent-hover:#0056b3;--error-bg:#f8d7da;--error-border:#f5c6cb;--error-text:#721c24;--error-hover-bg:#f5c6cb;--success-bg:#d4edda;--success-text:#155724;--warning-bg:#fff3cd;--warning-text:#856404;--info-bg:#e2e3e5;--input-bg:#fff;--code-bg:#f4f4f4;--tag-bg:#e9ecef;--tag-text:#495057}@media (prefers-color-scheme:dark){:root{--surface:#1e1e1e;--surface-alt:#2d2d2d;--text-primary:#fff;--text-secondary:#b0b0b0;--border:#404040;--accent:#0d6efd;--accent-hover:#0a58ca;--error-bg:#3d1f1f;--error-border:#664141;--error-text:#f8b7bc;--error-hover-bg:#4a2828;--success-bg:#1f3f1f;--success-text:#7ddc7d;--warning-bg:#3f3f1f;--warning-text:#ffdd57;--info-bg:#2d2d3d;--input-bg:#2d2d2d;--code-bg:#2d2d2d;--tag-bg:#3d3d4d;--tag-text:#b0b0b0}}.studio-app{color:#333;background:#f5f5f5;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;display:flex}.studio-nav{color:#fff;background:#1a1a1a;border-right:1px solid #333;width:250px;padding:20px;overflow-y:auto}.nav-header h1{margin:0 0 30px;font-size:18px;font-weight:600}.instance-info{color:#999;border-bottom:1px solid #333;margin-top:-20px;margin-bottom:20px;padding-bottom:10px;font-size:12px}.nav-search{margin-bottom:20px}.nav-search .search-input{color:#fff;background:#2a2a2a;border:1px solid #444;border-radius:4px;width:100%;padding:8px;font-size:12px}.nav-menu{margin:0;padding:0;list-style:none}.nav-menu li{margin-bottom:8px}.nav-menu .nav-section{color:#71717a;letter-spacing:.14em;text-transform:uppercase;margin:22px 14px 7px;font-size:10px;font-weight:800}.application-designer{--ink:#17211b;--muted:#68756d;--line:#dce4de;--paper:#fbfcf9;min-height:100%;color:var(--ink)}.designer-header{justify-content:space-between;align-items:flex-end;gap:24px;padding:8px 4px 22px;display:flex}.designer-header h1{letter-spacing:-.03em;font-family:Georgia,serif;font-size:34px}.designer-header p{color:var(--muted);margin-top:5px}.eyebrow{color:#287052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.designer-actions{flex-wrap:wrap;gap:8px;display:flex}.btn-ghost{color:#33443a;border:1px solid var(--line);background:#fff}.designer-actions .btn-primary{background:#1f684c}.cloud-publisher{background:#fff;border:1px solid #cbdad0;border-radius:10px;gap:14px;margin-bottom:12px;padding:18px;display:grid;box-shadow:0 10px 28px #26372d1a}.cloud-publisher-heading{justify-content:space-between;gap:18px;display:flex}.cloud-publisher-heading h2{margin-top:3px;font:600 20px/1.2 Georgia,serif}.cloud-publisher-heading p{color:var(--muted);margin-top:4px;font-size:12px}.cloud-publisher-heading>button{color:#718078;cursor:pointer;background:0 0;border:0;align-self:flex-start;font-size:22px}.cloud-fields{grid-template-columns:1.4fr .7fr 1fr;gap:10px;display:grid}.cloud-fields label{color:#65736a;letter-spacing:.07em;text-transform:uppercase;gap:5px;font-size:9px;font-weight:800;display:grid}.cloud-fields input{color:#20342a;background:#f9fbf9;border:1px solid #cbd8cf;border-radius:6px;outline:0;width:100%;padding:9px 10px;font-size:12px}.cloud-fields input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.cloud-destructive{color:#8b4d22;align-items:center;gap:7px;font-size:11px;display:flex}.cloud-destructive input{accent-color:#a55d2b}.local-destructive{color:#8b4d22;background:#fff7ed;border:1px solid #f0d7bb;border-radius:7px;align-items:center;gap:7px;margin-bottom:12px;padding:9px 12px;font-size:11px;display:flex}.local-destructive input{accent-color:#a55d2b}.cloud-error{color:#9b2c2c;background:#fff0f0;border:1px solid #f1caca;border-radius:6px;padding:8px 10px;font-size:11px}.cloud-actions{justify-content:flex-end;gap:8px;display:flex}.cloud-actions .btn:disabled{cursor:wait;opacity:.65}.designer-status{color:#286046;background:#eaf5ee;border:1px solid #cce5d5;border-radius:8px;justify-content:space-between;margin-bottom:12px;padding:9px 13px;font-size:12px;display:flex}.designer-status.error{color:#9b2c2c;background:#fff0f0;border-color:#f1caca}.designer-grid{background:var(--paper);border:1px solid var(--line);border-radius:12px;grid-template-columns:190px minmax(420px,1fr) minmax(340px,.8fr);height:calc(100vh - 150px);min-height:620px;display:grid;overflow:hidden;box-shadow:0 12px 40px #26372d14}.model-tree,.model-canvas,.dsl-panel{min-width:0}.model-tree{border-right:1px solid var(--line);background:#f2f5f0;padding:14px;overflow:auto}.panel-title{color:#34463b;letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:38px;font-size:12px;font-weight:800;display:flex}.panel-title button{color:#286046;cursor:pointer;background:#dce9df;border:0;border-radius:6px;width:25px;height:25px}.model-tree section{margin-top:16px}.model-tree section h3{color:#7a857e;letter-spacing:.12em;text-transform:uppercase;margin:0 7px 6px;font-size:10px}.tree-item,.tree-empty{border-radius:6px;padding:6px 8px;font-size:12px}.tree-item{color:#27372e;background:#ffffffb3;margin-bottom:3px}.tree-empty{color:#9aa39d;font-style:italic}.collection-editor{background:#fff;border:1px solid #d3ded6;border-radius:7px;gap:7px;margin-top:10px;padding:9px;display:grid}.collection-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:800;display:grid}.collection-editor input{color:#20342a;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font-size:11px}.collection-editor input:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.collection-editor>div:last-child{justify-content:flex-end;gap:4px;display:flex}.collection-editor button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 7px;font-size:10px}.collection-editor .collection-save{color:#fff;background:#287052}.model-canvas{background-color:#f8faf6;background-image:radial-gradient(#d8e0da 1px,#0000 1px);background-size:18px 18px;flex-direction:column;padding:14px;display:flex;overflow:hidden}.graph-legend{color:#859189;text-transform:none;letter-spacing:0;font-weight:500}.graph-board{flex:1;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:16px;padding:22px 8px;display:grid;overflow:auto}.model-node{background:#fff;border:1px solid #cfdbd2;border-top:3px solid #327258;border-radius:9px;padding:14px;position:relative;box-shadow:0 5px 14px #273d3014}.model-node.workflow-node{border-top-color:#9b6a2f}.model-node.agent-node{border-top-color:#70539b}.node-kind{color:#849087;letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:800}.model-node h3{margin:3px 0 10px;font-family:Georgia,serif;font-size:18px}.node-field,.node-step{border-top:1px solid #eef1ee;justify-content:space-between;gap:8px;padding:5px 0;font-size:11px;display:flex}.node-field code{color:#527060;font-size:10px}.node-step{color:#59675f;display:block}.node-add{color:#357257;cursor:pointer;background:#f0f7f2;border:1px dashed #b9d2c1;border-radius:5px;margin-top:9px;padding:4px 7px;font-size:10px}.field-editor{background:#f5f8f5;border:1px solid #d7e2da;border-radius:7px;gap:9px;margin-top:10px;padding:11px;display:grid}.field-editor label{color:#65736a;letter-spacing:.06em;text-transform:uppercase;gap:4px;font-size:9px;font-weight:700;display:grid}.field-editor input[type=text],.field-editor input:not([type]),.field-editor select{color:#20342a;background:#fff;border:1px solid #cbd8cf;border-radius:5px;outline:0;width:100%;min-width:0;padding:7px 8px;font:11px/1.2 inherit}.field-editor input:focus,.field-editor select:focus{border-color:#398166;box-shadow:0 0 0 2px #39816624}.field-editor-row{grid-template-columns:1fr 1fr;gap:7px;display:grid}.field-editor .field-optional{color:#43564a;letter-spacing:0;text-transform:none;align-items:center;gap:6px;font-size:10px;font-weight:500;display:flex}.field-optional input{accent-color:#287052}.field-error{color:#a13d3d;font-size:10px}.field-editor-actions{justify-content:flex-end;gap:6px;display:flex}.field-editor-actions button{color:#526158;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 8px;font-size:10px}.field-editor-actions .field-save{color:#fff;background:#287052}.change-strip{border-top:1px solid var(--line);white-space:nowrap;background:#ffffffeb;align-items:center;gap:12px;min-height:42px;padding:7px 10px;font-size:10px;display:flex;overflow:auto}.change-strip .added{color:#24714f}.change-strip .changed{color:#94611e}.change-strip .removed{color:#a13d3d}.dsl-panel{color:#d9e4dc;background:#17211b;border-left:1px solid #0c1510;flex-direction:column;padding:14px;display:flex}.dsl-panel .panel-title{color:#aebdb3;border-color:#344139}.dsl-panel .panel-title span:last-child{color:#6f8276;text-transform:none;font-weight:500}.dsl-panel textarea{resize:none;color:#d9e4dc;tab-size:2;background:0 0;border:0;outline:0;flex:1;width:100%;padding:15px 2px;font:12px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.diagnostics{border-top:1px solid #344139;max-height:120px;padding-top:8px;font:10px/1.5 ui-monospace,monospace;overflow:auto}.diagnostics .error{color:#ff9f9f}.diagnostics .warning{color:#f3d18a}@media (width<=1100px){.designer-grid{grid-template-columns:160px 1fr;height:auto}.dsl-panel{grid-column:1/-1;height:480px}.designer-header{flex-direction:column;align-items:flex-start}.cloud-fields{grid-template-columns:1fr}}.nav-menu a{color:#ccc;border-radius:4px;padding:10px 15px;text-decoration:none;transition:all .2s;display:block}.nav-menu a:hover{color:#fff;background:#333}.studio-content{flex:1;padding:20px;overflow-y:auto}.search-input{border:1px solid #ddd;border-radius:4px;width:100%;padding:10px;font-size:14px}.filter-select{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:8px;font-size:14px}.btn{cursor:pointer;border:none;border-radius:4px;padding:10px 15px;font-size:14px;font-weight:500;transition:all .2s}.btn-primary{color:#fff;background:#007bff}.btn-primary:hover{background:#0056b3}.overview-dashboard{background:#fff;border-radius:8px;padding:30px;box-shadow:0 1px 3px #0000001a}.dashboard-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;display:flex}.dashboard-header h1{margin:0;font-size:28px}.namespace-badge{color:#fff;background:#007bff;border-radius:20px;padding:5px 15px;font-size:12px;font-weight:600}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;display:grid}.stat-card{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.stat-card label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.stat-card .status-indicator{margin-right:5px;font-size:20px}.stat-card .status-indicator.healthy{color:#28a745}.stat-card .status-indicator.degraded{color:#ffc107}.stat-card .status-indicator.unhealthy{color:#dc3545}.stat-number{color:#007bff;font-size:24px;font-weight:700;display:block}.explorer-placeholder,.capabilities-placeholder,.executions-placeholder,.provenance-placeholder,.peer-placeholder,.empty-message,.placeholder-text{text-align:center;color:#999;background:#f9f9f9;border:2px dashed #ddd;border-radius:6px;margin-top:20px;padding:40px}.placeholder-text{border:none;padding:20px}.peer-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px;margin-top:20px;display:grid}.peer-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.peer-status{font-size:12px}.peer-status.online{color:#28a745}.peer-name{font-weight:500}.health-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.health-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:10px;padding:15px;display:flex}.health-item.status-healthy{background:#f8f9fa;border-color:#d4edda}.health-item.status-warning{background:#fffbf0;border-color:#fff3cd}.health-item.status-error{background:#fff5f5;border-color:#f8d7da}.status-icon{font-size:16px;font-weight:700}.health-item.status-healthy .status-icon{color:#28a745}.health-item.status-warning .status-icon{color:#ffc107}.health-item.status-error .status-icon{color:#dc3545}.component-name{font-weight:500}.reference-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.search-box{margin-bottom:20px}.reference-details{margin-top:20px}.detail-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.detail-row label{color:#666;font-weight:600}.detail-row span{color:#333}.status-materialized{color:#28a745;font-weight:500}.operations-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.filter-controls{margin-bottom:20px}.operations-table{border-collapse:collapse;width:100%;margin-top:20px}.operations-table th{text-align:left;background:#f5f5f5;border-bottom:2px solid #ddd;padding:10px;font-weight:600}.operations-table td{border-bottom:1px solid #f0f0f0;padding:10px}.conflict-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.conflict-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-top:20px;display:grid}.summary-stat{text-align:center;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;padding:15px}.summary-stat label{color:#666;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.workflow-visualizer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.workflow-controls{margin-bottom:20px}.workflows-list,.workflow-detail{margin-top:20px}.agent-explorer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.agents-grid,.agent-detail{margin-top:20px}.provenance-viewer{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.provenance-content{margin-top:20px}.settings-panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.settings-tabs{border-bottom:1px solid #e0e0e0;gap:10px;margin:20px 0;display:flex}.tab{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 15px;font-weight:500;transition:all .2s}.tab.active{color:#007bff;border-bottom-color:#007bff}.settings-content{margin-top:20px}.keys-list,.connection-info{margin:20px 0}.info-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:10px 0;display:flex}.info-row label{color:#666;font-weight:600}.monospace{font-family:Monaco,Courier New,monospace;font-size:12px}.global-search{position:relative}.search-input.global{margin-bottom:10px}.search-results{z-index:1000;background:#fff;border:1px solid #ddd;border-radius:4px;max-height:400px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 2px 8px #0000001a}.results-group{border-bottom:1px solid #f0f0f0;padding:10px}.results-group h4{color:#666;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:600}.results-group .empty-message{color:#999;background:0 0;border:none;padding:5px 0;font-size:12px}@media (width<=768px){.studio-app{flex-direction:column}.studio-nav{border-bottom:1px solid #333;border-right:none;width:100%;max-height:200px}.nav-menu{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.nav-menu a{padding:8px 5px;font-size:12px}}.studio-model-page{color:#19251f;max-width:1280px;margin:0 auto}.studio-model-page>header{margin-bottom:22px}.studio-model-page>header h1{margin:4px 0 6px;font-family:Georgia,serif;font-size:36px}.studio-model-page>header p{color:#68776f;margin:0}.eyebrow,.card-kind{color:#217052;letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:800}.model-summary{flex-wrap:wrap;gap:10px;margin:0 0 18px;display:flex}.model-summary>span,.model-summary select{color:#426052;background:#f8fbf9;border:1px solid #d6e1da;border-radius:999px;padding:7px 12px;font-size:12px}.studio-card-grid,.state-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.studio-card{background:#fff;border:1px solid #d7e0da;border-radius:12px;padding:18px;box-shadow:0 6px 22px #1937280d}.studio-card h2{margin:6px 0 14px;font-family:Georgia,serif;font-size:22px}.model-empty{color:#75847c;text-align:center;background:#fafcfb;border:1px dashed #cbd8d0;border-radius:10px;grid-column:1/-1;padding:34px}.model-empty.compact{padding:20px 10px}.state-collection>header{justify-content:space-between;align-items:center;display:flex}.state-collection>header h2{margin-bottom:8px}.state-collection>header strong{color:#237154;font:30px Georgia,serif}.state-row{text-align:left;color:#26372f;cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;grid-template-columns:1fr auto;gap:8px;width:100%;padding:12px 2px;display:grid}.state-row span:first-child{flex-direction:column;gap:3px;display:flex}.state-row small{color:#859189}.state-row pre{color:#dcebe2;background:#13231b;border-radius:8px;grid-column:1/-1;margin:4px 0 0;padding:12px;overflow:auto}.table-shell{background:#fff;border:1px solid #d7e0da;border-radius:12px;overflow:auto}.table-shell table{width:100%;margin:0}.event-pill{text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-block}.event-pill.put{color:#176443;background:#dff4e9}.event-pill.delete{color:#963e2c;background:#fbe4df}.reference-query{gap:8px;margin-bottom:18px;display:flex}.reference-query input{border:1px solid #cad7cf;border-radius:8px;flex:1;padding:12px 14px;font-family:monospace}.reference-query button{color:#fff;cursor:pointer;background:#1f7152;border:0;border-radius:8px;padding:0 20px;font-weight:700}.reference-layout{grid-template-columns:minmax(220px,.35fr) 1fr;gap:16px;display:grid}.reference-example{cursor:pointer;background:0 0;border:0;border-top:1px solid #e8edea;justify-content:space-between;width:100%;padding:12px 0;display:flex}.reference-example small{color:#829087}.reference-result pre,.execution-row pre{color:#dcebe2;background:#14231c;border-radius:8px;padding:14px;overflow:auto}.execution-list{gap:10px;margin-bottom:20px;display:grid}.execution-row{background:#fff;border:1px solid #d8e1db;border-radius:10px;grid-template-columns:1fr auto;gap:10px;padding:14px;display:grid}.execution-row>div{flex-direction:column;display:flex}.execution-row small{color:#829087}.execution-row pre{grid-column:1/-1;max-height:180px;margin:0}.execution-empty{margin-top:14px}.provenance-nodes{flex-wrap:wrap;gap:10px;display:flex}.provenance-nodes>div,.provenance-event{border:1px solid #d8e1db;border-radius:8px;flex-direction:column;gap:3px;padding:12px;display:flex}.provenance-nodes small,.provenance-event small{color:#849087}.provenance-event{grid-template-columns:45px 1fr 1fr auto;margin-top:8px;display:grid}.peer-topology{align-items:center;gap:10px;padding:30px 4px;display:flex;overflow:auto}.peer-node{background:#fff;border:1px solid #cad8cf;border-radius:12px;min-width:230px;padding:18px}.peer-node.local{color:#eef7f2;background:#183429}.peer-node span,.peer-node small{opacity:.7;font-size:11px}.peer-node h2{margin:6px 0;font-size:15px}.peer-link{background:#81a893;width:45px;height:2px}.metric-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.metric-grid article{color:#fff;background:#183429;border-radius:10px;flex-direction:column;padding:18px;display:flex}.metric-grid b{font:32px Georgia,serif}.metric-grid span{opacity:.7;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.health-item{align-items:center;gap:12px;display:flex}.health-item div{flex-direction:column;gap:3px;display:flex}.health-item small{color:#78857e}.health-issue{background:#fff2dc;border-radius:8px;margin:10px 0;padding:12px}.search-result{border-top:1px solid #edf0ee;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 0;display:grid}.search-result span{color:#287254;text-transform:uppercase;font-size:10px}.search-result small{color:#829087;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;overflow:hidden}@media (width<=800px){.reference-layout,.metric-grid{grid-template-columns:1fr}.provenance-event{grid-template-columns:35px 1fr}.provenance-event code,.provenance-event small{grid-column:2}}:root{--primary-color:#007bff;--success-color:#28a745;--warning-color:#ffc107;--danger-color:#dc3545;--dark:#1a1a1a;--light:#f5f5f5;--border:#e0e0e0;--text-muted:#999}*{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}#root{width:100%;height:100%}body{background:var(--light);color:#333}a{color:var(--primary-color);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600}p{line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#999}*{scrollbar-color:#ccc transparent;scrollbar-width:thin}
|
|
@@ -0,0 +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-B-lZjdtI.js"></script>
|
|
2
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CB-Eed9V.css">
|
|
3
|
+
</head><body><div id="root"></div></body></html>
|
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Wrapper around FeltDb for JavaScript interop
|
|
6
|
+
*/
|
|
7
|
+
export class JsDb {
|
|
8
|
+
private constructor();
|
|
9
|
+
free(): void;
|
|
10
|
+
[Symbol.dispose](): void;
|
|
11
|
+
/**
|
|
12
|
+
* Acknowledge receipt of operations from a peer
|
|
13
|
+
*
|
|
14
|
+
* # Arguments
|
|
15
|
+
* * `peer_id` - Unique identifier for the peer
|
|
16
|
+
* * `sequence` - Acknowledge operations up to this sequence number
|
|
17
|
+
*
|
|
18
|
+
* # Returns
|
|
19
|
+
* JsResult with success status
|
|
20
|
+
*/
|
|
21
|
+
acknowledge_peer_operations(peer_id: string, sequence: bigint): JsResult;
|
|
22
|
+
/**
|
|
23
|
+
* Add a peer for synchronization
|
|
24
|
+
*
|
|
25
|
+
* # Arguments
|
|
26
|
+
* * `peer_id` - Unique identifier for the peer
|
|
27
|
+
*
|
|
28
|
+
* # Returns
|
|
29
|
+
* JsResult with success status
|
|
30
|
+
*/
|
|
31
|
+
add_sync_peer(peer_id: string): JsResult;
|
|
32
|
+
/**
|
|
33
|
+
* Delete a record from the database.
|
|
34
|
+
*/
|
|
35
|
+
delete(key: string): JsResult;
|
|
36
|
+
execute_canonical_query(schema: string, authorization: string, state_namespace: string, query: string): JsResult;
|
|
37
|
+
execute_canonical_transaction(schema: string, request: string): JsResult;
|
|
38
|
+
/**
|
|
39
|
+
* Retrieve a record from the database
|
|
40
|
+
*
|
|
41
|
+
* # Arguments
|
|
42
|
+
* * `key` - Key for the record
|
|
43
|
+
*
|
|
44
|
+
* # Returns
|
|
45
|
+
* JSON string of the record or error
|
|
46
|
+
*/
|
|
47
|
+
get(key: string): JsResult;
|
|
48
|
+
/**
|
|
49
|
+
* Get all records in a capability namespace
|
|
50
|
+
*
|
|
51
|
+
* # Arguments
|
|
52
|
+
* * `capability` - Capability/namespace name
|
|
53
|
+
*
|
|
54
|
+
* # Returns
|
|
55
|
+
* JSON array string of all records in the capability
|
|
56
|
+
*/
|
|
57
|
+
get_capability_records(capability: string): JsResult;
|
|
58
|
+
/**
|
|
59
|
+
* Get pending operations for a peer since a given sequence
|
|
60
|
+
*
|
|
61
|
+
* # Arguments
|
|
62
|
+
* * `peer_id` - Unique identifier for the peer
|
|
63
|
+
* * `since_sequence` - Get operations after this sequence number
|
|
64
|
+
*
|
|
65
|
+
* # Returns
|
|
66
|
+
* JSON array of operations as a string
|
|
67
|
+
*/
|
|
68
|
+
get_pending_for_peer(peer_id: string, since_sequence: bigint): JsResult;
|
|
69
|
+
/**
|
|
70
|
+
* Get the current sequence number for this instance
|
|
71
|
+
*
|
|
72
|
+
* # Returns
|
|
73
|
+
* The current sequence number
|
|
74
|
+
*/
|
|
75
|
+
get_sequence(): bigint;
|
|
76
|
+
/**
|
|
77
|
+
* Insert a record into the database
|
|
78
|
+
*
|
|
79
|
+
* # Arguments
|
|
80
|
+
* * `key` - Key for the record (e.g., "users:123")
|
|
81
|
+
* * `value` - JSON object as a string
|
|
82
|
+
*
|
|
83
|
+
* # Returns
|
|
84
|
+
* JsResult with success status
|
|
85
|
+
*/
|
|
86
|
+
insert(key: string, value: string): JsResult;
|
|
87
|
+
/**
|
|
88
|
+
* Get the instance ID for this FeltDB instance
|
|
89
|
+
*
|
|
90
|
+
* # Returns
|
|
91
|
+
* The unique instance ID as a string
|
|
92
|
+
*/
|
|
93
|
+
instance_id(): string;
|
|
94
|
+
/**
|
|
95
|
+
* Check if a type is auto-indexed
|
|
96
|
+
*
|
|
97
|
+
* # Returns
|
|
98
|
+
* Whether the default (generic JSON) type is auto-indexed
|
|
99
|
+
*/
|
|
100
|
+
is_auto_indexed(): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Query records in the database with a predicate
|
|
103
|
+
*
|
|
104
|
+
* For now, this returns all records of a given type namespace as a simplified implementation.
|
|
105
|
+
* The full closure-based predicate from Rust cannot be directly represented in WASM bindings.
|
|
106
|
+
*
|
|
107
|
+
* # Arguments
|
|
108
|
+
* * `capability` - Capability/namespace to query (e.g., "users")
|
|
109
|
+
*
|
|
110
|
+
* # Returns
|
|
111
|
+
* JSON array string of matching records
|
|
112
|
+
*/
|
|
113
|
+
query(capability: string): JsResult;
|
|
114
|
+
/**
|
|
115
|
+
* Remove a peer from synchronization
|
|
116
|
+
*
|
|
117
|
+
* # Arguments
|
|
118
|
+
* * `peer_id` - Unique identifier for the peer
|
|
119
|
+
*
|
|
120
|
+
* # Returns
|
|
121
|
+
* JsResult with success status
|
|
122
|
+
*/
|
|
123
|
+
remove_sync_peer(peer_id: string): JsResult;
|
|
124
|
+
/**
|
|
125
|
+
* Get current sync state information
|
|
126
|
+
*
|
|
127
|
+
* # Returns
|
|
128
|
+
* JSON string containing sync state metrics
|
|
129
|
+
*/
|
|
130
|
+
sync_info(): JsResult;
|
|
131
|
+
/**
|
|
132
|
+
* Update an existing record through the canonical update operation.
|
|
133
|
+
*/
|
|
134
|
+
update(key: string, value: string): JsResult;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Result type for WASM operations
|
|
139
|
+
*/
|
|
140
|
+
export class JsResult {
|
|
141
|
+
private constructor();
|
|
142
|
+
free(): void;
|
|
143
|
+
[Symbol.dispose](): void;
|
|
144
|
+
readonly data: string | undefined;
|
|
145
|
+
readonly error: string | undefined;
|
|
146
|
+
readonly success: boolean;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* High-performance analytics engine for index monitoring.
|
|
151
|
+
* Tracks metrics, generates reports, and provides tuning recommendations.
|
|
152
|
+
*/
|
|
153
|
+
export class WasmAnalytics {
|
|
154
|
+
free(): void;
|
|
155
|
+
[Symbol.dispose](): void;
|
|
156
|
+
/**
|
|
157
|
+
* Generate performance report for a collection.
|
|
158
|
+
*/
|
|
159
|
+
generate_report(collection_name: string, period: string): string;
|
|
160
|
+
/**
|
|
161
|
+
* Get metrics for all indexes.
|
|
162
|
+
*/
|
|
163
|
+
get_all_metrics(): string;
|
|
164
|
+
/**
|
|
165
|
+
* Get most frequently accessed fields.
|
|
166
|
+
*/
|
|
167
|
+
get_frequent_fields(limit: number): string;
|
|
168
|
+
/**
|
|
169
|
+
* Get metrics for a specific index.
|
|
170
|
+
*/
|
|
171
|
+
get_index_metrics(index_name: string): string;
|
|
172
|
+
/**
|
|
173
|
+
* Get slowest queries.
|
|
174
|
+
*/
|
|
175
|
+
get_slowest_queries(limit: number): string;
|
|
176
|
+
constructor();
|
|
177
|
+
/**
|
|
178
|
+
* Record an index usage event.
|
|
179
|
+
*/
|
|
180
|
+
record_index_usage(index_name: string, operation: string, time_ms: number): void;
|
|
181
|
+
/**
|
|
182
|
+
* Record a query execution with performance metrics.
|
|
183
|
+
*/
|
|
184
|
+
record_query(fields_json: string, operator: string, execution_time_ms: number, rows_scanned: bigint, result_count: bigint, index_used?: string | null): void;
|
|
185
|
+
/**
|
|
186
|
+
* Reset all collected metrics.
|
|
187
|
+
*/
|
|
188
|
+
reset(): void;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Distributed index manager for multi-node synchronization.
|
|
193
|
+
* Coordinates index replication, consistency, and conflict resolution.
|
|
194
|
+
*/
|
|
195
|
+
export class WasmDistributedIndexManager {
|
|
196
|
+
free(): void;
|
|
197
|
+
[Symbol.dispose](): void;
|
|
198
|
+
/**
|
|
199
|
+
* Create a replicated index
|
|
200
|
+
*/
|
|
201
|
+
create_replicated_index(name: string, field: string, index_type: string): void;
|
|
202
|
+
/**
|
|
203
|
+
* Detect version conflicts
|
|
204
|
+
*/
|
|
205
|
+
detect_conflicts(index_name: string): string;
|
|
206
|
+
/**
|
|
207
|
+
* Get replication status for an index
|
|
208
|
+
*/
|
|
209
|
+
get_replication_status(index_name: string): string;
|
|
210
|
+
/**
|
|
211
|
+
* Get list of peers needing replication for an index
|
|
212
|
+
*/
|
|
213
|
+
get_replication_targets(index_name: string): string;
|
|
214
|
+
/**
|
|
215
|
+
* Get overall synchronization status
|
|
216
|
+
*/
|
|
217
|
+
get_sync_status(): string;
|
|
218
|
+
/**
|
|
219
|
+
* Merge concurrent versions
|
|
220
|
+
*/
|
|
221
|
+
merge_versions(index_name: string): void;
|
|
222
|
+
constructor(peer_id: string);
|
|
223
|
+
/**
|
|
224
|
+
* Register a peer for replication
|
|
225
|
+
*/
|
|
226
|
+
register_peer(peer_id: string): void;
|
|
227
|
+
/**
|
|
228
|
+
* Set peer reachability
|
|
229
|
+
*/
|
|
230
|
+
set_peer_reachable(peer_id: string, reachable: boolean): void;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* High-performance index manager for collections.
|
|
235
|
+
* Wraps Rust IndexManager for optimal query performance.
|
|
236
|
+
*/
|
|
237
|
+
export class WasmIndexManager {
|
|
238
|
+
free(): void;
|
|
239
|
+
[Symbol.dispose](): void;
|
|
240
|
+
/**
|
|
241
|
+
* Create a new index on the collection.
|
|
242
|
+
*/
|
|
243
|
+
create_index(config: string): void;
|
|
244
|
+
/**
|
|
245
|
+
* Get statistics for an index.
|
|
246
|
+
*/
|
|
247
|
+
get_stats(name: string): string;
|
|
248
|
+
/**
|
|
249
|
+
* List all indexes.
|
|
250
|
+
*/
|
|
251
|
+
list_indexes(): string;
|
|
252
|
+
constructor();
|
|
253
|
+
/**
|
|
254
|
+
* Query an index.
|
|
255
|
+
*/
|
|
256
|
+
query_index(index_name: string, operator: string, value: string): string;
|
|
257
|
+
/**
|
|
258
|
+
* Update a record's index entries.
|
|
259
|
+
*/
|
|
260
|
+
update_record(record_id: string, old_value: string | null | undefined, new_value: string): void;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Shard manager for horizontal scaling.
|
|
265
|
+
* Distributes data across shards and handles rebalancing.
|
|
266
|
+
*/
|
|
267
|
+
export class WasmShardManager {
|
|
268
|
+
free(): void;
|
|
269
|
+
[Symbol.dispose](): void;
|
|
270
|
+
/**
|
|
271
|
+
* Detect hotspots
|
|
272
|
+
*/
|
|
273
|
+
detect_hotspots(): string;
|
|
274
|
+
/**
|
|
275
|
+
* Generate rebalance operations
|
|
276
|
+
*/
|
|
277
|
+
generate_rebalance_ops(): string;
|
|
278
|
+
/**
|
|
279
|
+
* Get all shard metrics
|
|
280
|
+
*/
|
|
281
|
+
get_all_metrics(): string;
|
|
282
|
+
/**
|
|
283
|
+
* Get distribution summary
|
|
284
|
+
*/
|
|
285
|
+
get_distribution_summary(): string;
|
|
286
|
+
/**
|
|
287
|
+
* Get shard for a key
|
|
288
|
+
*/
|
|
289
|
+
get_shard_for_key(key: string): string;
|
|
290
|
+
/**
|
|
291
|
+
* Initialize shards
|
|
292
|
+
*/
|
|
293
|
+
initialize_shards(shard_ids_json: string): void;
|
|
294
|
+
constructor(shard_field: string, strategy: string);
|
|
295
|
+
/**
|
|
296
|
+
* Record a shard operation
|
|
297
|
+
*/
|
|
298
|
+
record_shard_operation(shard_id: string, operation: string, time_ms: number, records_affected: number, size_bytes: bigint): void;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
export function apply_sync_result(local_runtime: string, result: string): string;
|
|
302
|
+
|
|
303
|
+
export function authorize_offline(signed_grant: string, key_id: string, verification_key: string, request: string, grant_chain: string, revocations: string): string;
|
|
304
|
+
|
|
305
|
+
export function canonical_bundle_hash(bundle_json: string): string;
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Canonicalizes a typed application manifest using the same Rust implementation
|
|
309
|
+
* used by the server. JavaScript never defines revision identity independently.
|
|
310
|
+
*/
|
|
311
|
+
export function canonicalize_application_manifest(input: string): string;
|
|
312
|
+
|
|
313
|
+
export function compare_state_schemas(before: string, after: string): string;
|
|
314
|
+
|
|
315
|
+
export function diff_application_revisions(from: string | null | undefined, to: string): string;
|
|
316
|
+
|
|
317
|
+
export function hash_application_manifest(input: string): string;
|
|
318
|
+
|
|
319
|
+
export function hash_application_runtime(revision: string, environment: string): string;
|
|
320
|
+
|
|
321
|
+
export function hash_state_schema(schema: string): string;
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Opens or creates a FeltDB database
|
|
325
|
+
*
|
|
326
|
+
* # Arguments
|
|
327
|
+
* * `path` - Path to the database file
|
|
328
|
+
*
|
|
329
|
+
* # Returns
|
|
330
|
+
* JsDb instance or error
|
|
331
|
+
*/
|
|
332
|
+
export function open(path: string): JsDb;
|
|
333
|
+
|
|
334
|
+
export function resolve_application_runtime(revision: string, environment: string): string;
|
|
335
|
+
|
|
336
|
+
export function validate_mesh_claim(claim: string, worker: string, workload: string, now: bigint): void;
|
|
337
|
+
|
|
338
|
+
export function validate_state_schema(schema: string): string;
|
|
339
|
+
|
|
340
|
+
export function validate_sync_operation(operation: string): string;
|
|
341
|
+
|
|
342
|
+
export function validate_worker_transition(from: string, to: string): boolean;
|
|
343
|
+
|
|
344
|
+
export function validate_workload_transition(from: string, to: string): boolean;
|
|
345
|
+
|
|
346
|
+
export function verify_bundle_integrity(bundle_json: string): boolean;
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Verify a portable signed grant with the exact Rust canonicalization used by
|
|
350
|
+
* the server. The verification key is provisioned with the offline app shell.
|
|
351
|
+
*/
|
|
352
|
+
export function verify_signed_grant(signed_grant: string, key_id: string, verification_key: string, request: string, grant_chain: string, revocations: string): string;
|
|
353
|
+
|
|
354
|
+
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
|
355
|
+
|
|
356
|
+
export interface InitOutput {
|
|
357
|
+
readonly memory: WebAssembly.Memory;
|
|
358
|
+
readonly __wbg_jsdb_free: (a: number, b: number) => void;
|
|
359
|
+
readonly __wbg_jsresult_free: (a: number, b: number) => void;
|
|
360
|
+
readonly __wbg_wasmanalytics_free: (a: number, b: number) => void;
|
|
361
|
+
readonly __wbg_wasmdistributedindexmanager_free: (a: number, b: number) => void;
|
|
362
|
+
readonly __wbg_wasmindexmanager_free: (a: number, b: number) => void;
|
|
363
|
+
readonly __wbg_wasmshardmanager_free: (a: number, b: number) => void;
|
|
364
|
+
readonly apply_sync_result: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
365
|
+
readonly authorize_offline: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number, number];
|
|
366
|
+
readonly canonical_bundle_hash: (a: number, b: number) => [number, number, number, number];
|
|
367
|
+
readonly canonicalize_application_manifest: (a: number, b: number) => [number, number, number, number];
|
|
368
|
+
readonly compare_state_schemas: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
369
|
+
readonly diff_application_revisions: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
370
|
+
readonly hash_application_manifest: (a: number, b: number) => [number, number, number, number];
|
|
371
|
+
readonly hash_application_runtime: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
372
|
+
readonly hash_state_schema: (a: number, b: number) => [number, number, number, number];
|
|
373
|
+
readonly jsdb_acknowledge_peer_operations: (a: number, b: number, c: number, d: bigint) => number;
|
|
374
|
+
readonly jsdb_add_sync_peer: (a: number, b: number, c: number) => number;
|
|
375
|
+
readonly jsdb_delete: (a: number, b: number, c: number) => number;
|
|
376
|
+
readonly jsdb_execute_canonical_query: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
377
|
+
readonly jsdb_execute_canonical_transaction: (a: number, b: number, c: number, d: number, e: number) => number;
|
|
378
|
+
readonly jsdb_get: (a: number, b: number, c: number) => number;
|
|
379
|
+
readonly jsdb_get_capability_records: (a: number, b: number, c: number) => number;
|
|
380
|
+
readonly jsdb_get_pending_for_peer: (a: number, b: number, c: number, d: bigint) => number;
|
|
381
|
+
readonly jsdb_get_sequence: (a: number) => bigint;
|
|
382
|
+
readonly jsdb_insert: (a: number, b: number, c: number, d: number, e: number) => number;
|
|
383
|
+
readonly jsdb_instance_id: (a: number) => [number, number];
|
|
384
|
+
readonly jsdb_is_auto_indexed: (a: number) => number;
|
|
385
|
+
readonly jsdb_query: (a: number, b: number, c: number) => number;
|
|
386
|
+
readonly jsdb_remove_sync_peer: (a: number, b: number, c: number) => number;
|
|
387
|
+
readonly jsdb_sync_info: (a: number) => number;
|
|
388
|
+
readonly jsdb_update: (a: number, b: number, c: number, d: number, e: number) => number;
|
|
389
|
+
readonly jsresult_data: (a: number) => [number, number];
|
|
390
|
+
readonly jsresult_error: (a: number) => [number, number];
|
|
391
|
+
readonly jsresult_success: (a: number) => number;
|
|
392
|
+
readonly open: (a: number, b: number) => [number, number, number];
|
|
393
|
+
readonly resolve_application_runtime: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
394
|
+
readonly validate_mesh_claim: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint) => [number, number];
|
|
395
|
+
readonly validate_state_schema: (a: number, b: number) => [number, number, number, number];
|
|
396
|
+
readonly validate_sync_operation: (a: number, b: number) => [number, number, number, number];
|
|
397
|
+
readonly validate_worker_transition: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
398
|
+
readonly validate_workload_transition: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
399
|
+
readonly verify_bundle_integrity: (a: number, b: number) => [number, number, number];
|
|
400
|
+
readonly verify_signed_grant: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number, number];
|
|
401
|
+
readonly wasmanalytics_generate_report: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
402
|
+
readonly wasmanalytics_get_all_metrics: (a: number) => [number, number, number, number];
|
|
403
|
+
readonly wasmanalytics_get_frequent_fields: (a: number, b: number) => [number, number, number, number];
|
|
404
|
+
readonly wasmanalytics_get_index_metrics: (a: number, b: number, c: number) => [number, number, number, number];
|
|
405
|
+
readonly wasmanalytics_get_slowest_queries: (a: number, b: number) => [number, number, number, number];
|
|
406
|
+
readonly wasmanalytics_new: () => number;
|
|
407
|
+
readonly wasmanalytics_record_index_usage: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
408
|
+
readonly wasmanalytics_record_query: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: bigint, i: number, j: number) => [number, number];
|
|
409
|
+
readonly wasmanalytics_reset: (a: number) => void;
|
|
410
|
+
readonly wasmdistributedindexmanager_create_replicated_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
411
|
+
readonly wasmdistributedindexmanager_detect_conflicts: (a: number, b: number, c: number) => [number, number, number, number];
|
|
412
|
+
readonly wasmdistributedindexmanager_get_replication_status: (a: number, b: number, c: number) => [number, number, number, number];
|
|
413
|
+
readonly wasmdistributedindexmanager_get_replication_targets: (a: number, b: number, c: number) => [number, number, number, number];
|
|
414
|
+
readonly wasmdistributedindexmanager_get_sync_status: (a: number) => [number, number, number, number];
|
|
415
|
+
readonly wasmdistributedindexmanager_merge_versions: (a: number, b: number, c: number) => [number, number];
|
|
416
|
+
readonly wasmdistributedindexmanager_new: (a: number, b: number) => number;
|
|
417
|
+
readonly wasmdistributedindexmanager_register_peer: (a: number, b: number, c: number) => void;
|
|
418
|
+
readonly wasmdistributedindexmanager_set_peer_reachable: (a: number, b: number, c: number, d: number) => void;
|
|
419
|
+
readonly wasmindexmanager_create_index: (a: number, b: number, c: number) => [number, number];
|
|
420
|
+
readonly wasmindexmanager_get_stats: (a: number, b: number, c: number) => [number, number, number, number];
|
|
421
|
+
readonly wasmindexmanager_list_indexes: (a: number) => [number, number, number, number];
|
|
422
|
+
readonly wasmindexmanager_new: () => number;
|
|
423
|
+
readonly wasmindexmanager_query_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
|
|
424
|
+
readonly wasmindexmanager_update_record: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
425
|
+
readonly wasmshardmanager_detect_hotspots: (a: number) => [number, number, number, number];
|
|
426
|
+
readonly wasmshardmanager_generate_rebalance_ops: (a: number) => [number, number, number, number];
|
|
427
|
+
readonly wasmshardmanager_get_all_metrics: (a: number) => [number, number, number, number];
|
|
428
|
+
readonly wasmshardmanager_get_distribution_summary: (a: number) => [number, number, number, number];
|
|
429
|
+
readonly wasmshardmanager_get_shard_for_key: (a: number, b: number, c: number) => [number, number, number, number];
|
|
430
|
+
readonly wasmshardmanager_initialize_shards: (a: number, b: number, c: number) => [number, number];
|
|
431
|
+
readonly wasmshardmanager_new: (a: number, b: number, c: number, d: number) => number;
|
|
432
|
+
readonly wasmshardmanager_record_shard_operation: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: bigint) => void;
|
|
433
|
+
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
434
|
+
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
435
|
+
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
436
|
+
readonly __externref_table_dealloc: (a: number) => void;
|
|
437
|
+
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
438
|
+
readonly __wbindgen_start: () => void;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Instantiates the given `module`, which can either be bytes or
|
|
445
|
+
* a precompiled `WebAssembly.Module`.
|
|
446
|
+
*
|
|
447
|
+
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
448
|
+
*
|
|
449
|
+
* @returns {InitOutput}
|
|
450
|
+
*/
|
|
451
|
+
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
455
|
+
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
456
|
+
*
|
|
457
|
+
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
458
|
+
*
|
|
459
|
+
* @returns {Promise<InitOutput>}
|
|
460
|
+
*/
|
|
461
|
+
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|