@feltdb/core 0.4.12 → 0.4.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands.js +5 -2
- package/dist/cli/index.js +1 -1
- package/dist/create/cli.js +16 -1
- package/dist/create/create.js +30 -16
- package/dist/create/docker-compose-generator.js +48 -9
- package/dist/create/package-versions.js +1 -1
- package/dist/create/server-source/Cargo.lock +2238 -0
- package/dist/create/server-source/Cargo.toml +7 -0
- package/dist/create/server-source/crates/feltdb/Cargo.lock +175 -0
- package/dist/create/server-source/crates/feltdb/Cargo.toml +79 -0
- package/dist/create/server-source/crates/feltdb/benches/baselines/gate-13-redux.json +370 -0
- package/dist/create/server-source/crates/feltdb/benches/gate13_baseline.rs +589 -0
- package/dist/create/server-source/crates/feltdb/benches/gate13_phase_7_1_release_economics.rs +259 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_13_redux.rs +446 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_13_regression_runner.rs +272 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14a_concurrent_writer_scaling.rs +378 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14a_production_admission_revalidation.rs +414 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14a_rc2_admission_contract.rs +486 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14a_rc_root_cause.rs +273 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14a_sync1_queued_prototype.rs +587 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14a_sync_economics.rs +513 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14b_causal_backlog_scaling.rs +395 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14c_replication_contract_test.rs +469 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14c_replication_scaling.rs +409 -0
- package/dist/create/server-source/crates/feltdb/benches/gate_14d_combined_dimension_scaling.rs +627 -0
- package/dist/create/server-source/crates/feltdb/benches/phase_7_1_2_optimization_benchmark.rs +383 -0
- package/dist/create/server-source/crates/feltdb/benches/phase_7_1_3_crossover_analysis.rs +298 -0
- package/dist/create/server-source/crates/feltdb/src/acceptance_tests.rs +1698 -0
- package/dist/create/server-source/crates/feltdb/src/acquisition.rs +286 -0
- package/dist/create/server-source/crates/feltdb/src/admission.rs +192 -0
- package/dist/create/server-source/crates/feltdb/src/admission_contract_tests.rs +477 -0
- package/dist/create/server-source/crates/feltdb/src/adversarial_transport.rs +566 -0
- package/dist/create/server-source/crates/feltdb/src/analytics.rs +475 -0
- package/dist/create/server-source/crates/feltdb/src/application.rs +2244 -0
- package/dist/create/server-source/crates/feltdb/src/application_runtime.rs +1070 -0
- package/dist/create/server-source/crates/feltdb/src/authorization.rs +1030 -0
- package/dist/create/server-source/crates/feltdb/src/bin/feltdb_node.rs +266 -0
- package/dist/create/server-source/crates/feltdb/src/capabilities/mod.rs +8 -0
- package/dist/create/server-source/crates/feltdb/src/capabilities/search.rs +418 -0
- package/dist/create/server-source/crates/feltdb/src/capabilities/vector.rs +482 -0
- package/dist/create/server-source/crates/feltdb/src/capability.rs +903 -0
- package/dist/create/server-source/crates/feltdb/src/cardinality_diagnostics.rs +261 -0
- package/dist/create/server-source/crates/feltdb/src/cardinality_endpoint.rs +78 -0
- package/dist/create/server-source/crates/feltdb/src/causal_dependency_barrier.rs +2214 -0
- package/dist/create/server-source/crates/feltdb/src/causal_dependency_barrier_phase_7_1.rs +194 -0
- package/dist/create/server-source/crates/feltdb/src/concurrency_fuzzing.rs +427 -0
- package/dist/create/server-source/crates/feltdb/src/consistency_contract.rs +453 -0
- package/dist/create/server-source/crates/feltdb/src/content_distribution.rs +465 -0
- package/dist/create/server-source/crates/feltdb/src/convergence.rs +618 -0
- package/dist/create/server-source/crates/feltdb/src/crash_atomic_boundary.rs +418 -0
- package/dist/create/server-source/crates/feltdb/src/crash_injection.rs +380 -0
- package/dist/create/server-source/crates/feltdb/src/crash_recovery_tests.rs +362 -0
- package/dist/create/server-source/crates/feltdb/src/cron.rs +294 -0
- package/dist/create/server-source/crates/feltdb/src/distributed_indexing.rs +474 -0
- package/dist/create/server-source/crates/feltdb/src/distributed_tests.rs +1003 -0
- package/dist/create/server-source/crates/feltdb/src/distributed_transactions.rs +536 -0
- package/dist/create/server-source/crates/feltdb/src/durability_guarantees.rs +364 -0
- package/dist/create/server-source/crates/feltdb/src/durable_dedup_set.rs +235 -0
- package/dist/create/server-source/crates/feltdb/src/durable_operation_log.rs +207 -0
- package/dist/create/server-source/crates/feltdb/src/durable_sync.rs +316 -0
- package/dist/create/server-source/crates/feltdb/src/execution.rs +426 -0
- package/dist/create/server-source/crates/feltdb/src/in_process_transport.rs +219 -0
- package/dist/create/server-source/crates/feltdb/src/indexing.rs +779 -0
- package/dist/create/server-source/crates/feltdb/src/lib.rs +2838 -0
- package/dist/create/server-source/crates/feltdb/src/materialization.rs +184 -0
- package/dist/create/server-source/crates/feltdb/src/metrics.rs +267 -0
- package/dist/create/server-source/crates/feltdb/src/multi_node_convergence.rs +311 -0
- package/dist/create/server-source/crates/feltdb/src/observability.rs +366 -0
- package/dist/create/server-source/crates/feltdb/src/operation.rs +251 -0
- package/dist/create/server-source/crates/feltdb/src/operation_algebra.rs +438 -0
- package/dist/create/server-source/crates/feltdb/src/operation_log.rs +344 -0
- package/dist/create/server-source/crates/feltdb/src/partition_reconciliation.rs +477 -0
- package/dist/create/server-source/crates/feltdb/src/peer_registry.rs +166 -0
- package/dist/create/server-source/crates/feltdb/src/permutation_scheduler.rs +261 -0
- package/dist/create/server-source/crates/feltdb/src/persistence_reality.rs +560 -0
- package/dist/create/server-source/crates/feltdb/src/phase1b_acceptance.rs +3226 -0
- package/dist/create/server-source/crates/feltdb/src/phase1c1_acceptance.rs +201 -0
- package/dist/create/server-source/crates/feltdb/src/phase1c2_acceptance.rs +263 -0
- package/dist/create/server-source/crates/feltdb/src/phase1c3_acceptance.rs +484 -0
- package/dist/create/server-source/crates/feltdb/src/phase1c_atomicity_proof.rs +216 -0
- package/dist/create/server-source/crates/feltdb/src/phase5_integration.rs +281 -0
- package/dist/create/server-source/crates/feltdb/src/phase5_scenarios.rs +323 -0
- package/dist/create/server-source/crates/feltdb/src/phase6_adversarial_scenarios.rs +573 -0
- package/dist/create/server-source/crates/feltdb/src/phase6_convergence_validator.rs +404 -0
- package/dist/create/server-source/crates/feltdb/src/phase6_persistence.rs +418 -0
- package/dist/create/server-source/crates/feltdb/src/phase_1c_real_tcp.rs +381 -0
- package/dist/create/server-source/crates/feltdb/src/phase_1c_three_node.rs +523 -0
- package/dist/create/server-source/crates/feltdb/src/phase_2a_failures.rs +334 -0
- package/dist/create/server-source/crates/feltdb/src/phase_2b_network.rs +306 -0
- package/dist/create/server-source/crates/feltdb/src/phase_2c_cascading.rs +355 -0
- package/dist/create/server-source/crates/feltdb/src/phase_3_durability.rs +395 -0
- package/dist/create/server-source/crates/feltdb/src/phase_4_baseline.rs +346 -0
- package/dist/create/server-source/crates/feltdb/src/phase_5_soak.rs +430 -0
- package/dist/create/server-source/crates/feltdb/src/production_api.rs +400 -0
- package/dist/create/server-source/crates/feltdb/src/provenance.rs +207 -0
- package/dist/create/server-source/crates/feltdb/src/query_performance.rs +217 -0
- package/dist/create/server-source/crates/feltdb/src/references.rs +404 -0
- package/dist/create/server-source/crates/feltdb/src/replay_fuzzing.rs +401 -0
- package/dist/create/server-source/crates/feltdb/src/replication_manager.rs +160 -0
- package/dist/create/server-source/crates/feltdb/src/replication_protocol.rs +132 -0
- package/dist/create/server-source/crates/feltdb/src/routing.rs +409 -0
- package/dist/create/server-source/crates/feltdb/src/sharding.rs +523 -0
- package/dist/create/server-source/crates/feltdb/src/state_contract.rs +3118 -0
- package/dist/create/server-source/crates/feltdb/src/state_hash.rs +291 -0
- package/dist/create/server-source/crates/feltdb/src/state_transition_store.rs +376 -0
- package/dist/create/server-source/crates/feltdb/src/storage.rs +267 -0
- package/dist/create/server-source/crates/feltdb/src/submission.rs +477 -0
- package/dist/create/server-source/crates/feltdb/src/sync.rs +483 -0
- package/dist/create/server-source/crates/feltdb/src/sync_contract.rs +822 -0
- package/dist/create/server-source/crates/feltdb/src/tcp_transport.rs +366 -0
- package/dist/create/server-source/crates/feltdb/src/transaction_api.rs +473 -0
- package/dist/create/server-source/crates/feltdb/src/transaction_invariants.rs +949 -0
- package/dist/create/server-source/crates/feltdb/src/transactions.rs +646 -0
- package/dist/create/server-source/crates/feltdb/src/trigger.rs +390 -0
- package/dist/create/server-source/crates/feltdb/src/worker_mesh.rs +928 -0
- package/dist/create/server-source/crates/feltdb/src/workflow.rs +713 -0
- package/dist/create/server-source/crates/feltdb/src/workflow_acceptance_tests.rs +510 -0
- package/dist/create/server-source/crates/feltdb/src/workflow_integration.rs +354 -0
- package/dist/create/server-source/crates/feltdb/src/workflow_runtime.rs +594 -0
- package/dist/create/server-source/crates/feltdb/src/workload.rs +1310 -0
- package/dist/create/server-source/crates/feltdb-server/Cargo.toml +23 -0
- package/dist/create/server-source/crates/feltdb-server/README.md +79 -0
- package/dist/create/server-source/crates/feltdb-server/src/app_state.rs +73 -0
- package/dist/create/server-source/crates/feltdb-server/src/application_contract.rs +425 -0
- package/dist/create/server-source/crates/feltdb-server/src/artifacts.rs +449 -0
- package/dist/create/server-source/crates/feltdb-server/src/audit.rs +59 -0
- package/dist/create/server-source/crates/feltdb-server/src/auth.rs +308 -0
- package/dist/create/server-source/crates/feltdb-server/src/authorization.rs +228 -0
- package/dist/create/server-source/crates/feltdb-server/src/backup.rs +416 -0
- package/dist/create/server-source/crates/feltdb-server/src/causal.rs +218 -0
- package/dist/create/server-source/crates/feltdb-server/src/certification.rs +223 -0
- package/dist/create/server-source/crates/feltdb-server/src/clock.rs +132 -0
- package/dist/create/server-source/crates/feltdb-server/src/cluster.rs +165 -0
- package/dist/create/server-source/crates/feltdb-server/src/connections.rs +1044 -0
- package/dist/create/server-source/crates/feltdb-server/src/content.rs +111 -0
- package/dist/create/server-source/crates/feltdb-server/src/identity.rs +250 -0
- package/dist/create/server-source/crates/feltdb-server/src/key_management.rs +78 -0
- package/dist/create/server-source/crates/feltdb-server/src/key_provider.rs +247 -0
- package/dist/create/server-source/crates/feltdb-server/src/leases.rs +123 -0
- package/dist/create/server-source/crates/feltdb-server/src/lib.rs +25 -0
- package/dist/create/server-source/crates/feltdb-server/src/main.rs +8715 -0
- package/dist/create/server-source/crates/feltdb-server/src/metrics.rs +97 -0
- package/dist/create/server-source/crates/feltdb-server/src/portable_bundle.rs +350 -0
- package/dist/create/server-source/crates/feltdb-server/src/principals.rs +510 -0
- package/dist/create/server-source/crates/feltdb-server/src/providers.rs +269 -0
- package/dist/create/server-source/crates/feltdb-server/src/releases.rs +2563 -0
- package/dist/create/server-source/crates/feltdb-server/src/sessions.rs +156 -0
- package/dist/create/server-source/crates/feltdb-server/src/tenancy.rs +1097 -0
- package/dist/create/server-source/crates/feltdb-server/src/versions.rs +264 -0
- package/dist/create/server-source/crates/feltdb-wasm/Cargo.toml +31 -0
- package/dist/create/server-source/crates/feltdb-wasm/src/lib.rs +1086 -0
- package/dist/create/server-source/crates/feltdb-wasm/test.db +0 -0
- package/dist/flowspec.d.ts +2 -0
- package/dist/flowspec.d.ts.map +1 -1
- package/dist/flowspec.js +28 -4
- package/dist/state-contract.d.ts +7 -1
- package/dist/state-contract.d.ts.map +1 -1
- package/dist/studio/components/ApplicationDesigner.d.ts.map +1 -1
- package/dist/studio/components/index.js +1 -1
- package/dist/studio/{components-Q0Nx6gLE.js → components-bHTARBin.js} +156 -46
- package/dist/studio/index.js +31 -28
- package/dist/studio-app/assets/{index-BHOmLZF-.js → index-BqKquLuU.js} +8 -8
- package/dist/studio-app/index.html +1 -1
- package/package.json +1 -1
|
File without changes
|
package/dist/flowspec.d.ts
CHANGED
|
@@ -55,6 +55,8 @@ export interface FlowMigrationOperation {
|
|
|
55
55
|
safety: 'safe' | 'requires_transform' | 'destructive';
|
|
56
56
|
detail: string;
|
|
57
57
|
}
|
|
58
|
+
export declare const FLOW_PRIMITIVE_TYPES: readonly ["text", "integer", "number", "boolean", "datetime", "date", "time", "json", "uuid", "decimal", "money", "bigint", "email", "url", "phone", "binary", "file", "geo", "object"];
|
|
59
|
+
export declare function isValidFlowFieldType(type: string): boolean;
|
|
58
60
|
import type { ApplicationManifest } from './application-manifest.js';
|
|
59
61
|
/** FlowSpec is a portable source format; the returned Rust manifest is authoritative only after server validation. */
|
|
60
62
|
export declare function flowSpecToManifest(spec: FlowSpec, tenantId: string, applicationId: string): ApplicationManifest;
|
package/dist/flowspec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowspec.d.ts","sourceRoot":"","sources":["../src/flowspec.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAC5E,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAC7E,MAAM,WAAW,cAAc;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,SAAS,EAAE,CAAA;CAAE;AAC3F,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE;AACjE,MAAM,WAAW,QAAS,SAAQ,SAAS;CAAG;AAC9C,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE;AACrF,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE;AACpE,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,CAAC,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAAG,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AACjG,MAAM,WAAW,YAAY;IAAG,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE;AACvF,MAAM,WAAW,sBAAsB;IAAG,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,GAAG,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAEpK,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,sHAAsH;AACtH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"flowspec.d.ts","sourceRoot":"","sources":["../src/flowspec.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAC5E,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAC7E,MAAM,WAAW,cAAc;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,SAAS,EAAE,CAAA;CAAE;AAC3F,MAAM,WAAW,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE;AACjE,MAAM,WAAW,QAAS,SAAQ,SAAS;CAAG;AAC9C,MAAM,WAAW,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAE;AACrF,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE;AACpE,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,CAAC,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAAG,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AACjG,MAAM,WAAW,YAAY;IAAG,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE;AACvF,MAAM,WAAW,sBAAsB;IAAG,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,GAAG,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAEpK,eAAO,MAAM,oBAAoB,yLAA0L,CAAC;AAC5N,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,sHAAsH;AACtH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,mBAAmB,CAQ/G;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,QAAQ,CAG1E;AA0FD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAA4C;AAEnG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,EAAE,CAcjE;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAUrD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,YAAY,CAQ5E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,sBAAsB,EAAE,CAsBjG;AAED,wBAAgB,aAAa,CAAC,GAAG,SAAU,GAAG,QAAQ,CAAyI"}
|
package/dist/flowspec.js
CHANGED
|
@@ -1,10 +1,30 @@
|
|
|
1
|
+
export const FLOW_PRIMITIVE_TYPES = ['text', 'integer', 'number', 'boolean', 'datetime', 'date', 'time', 'json', 'uuid', 'decimal', 'money', 'bigint', 'email', 'url', 'phone', 'binary', 'file', 'geo', 'object'];
|
|
2
|
+
export function isValidFlowFieldType(type) {
|
|
3
|
+
const value = type.trim();
|
|
4
|
+
if (FLOW_PRIMITIVE_TYPES.includes(value))
|
|
5
|
+
return true;
|
|
6
|
+
if (/^ref [A-Za-z_][A-Za-z0-9_-]*$/.test(value))
|
|
7
|
+
return true;
|
|
8
|
+
if (/^enum\([^)]+\)$/.test(value))
|
|
9
|
+
return value.slice(5, -1).split(',').every(item => item.trim().length > 0);
|
|
10
|
+
if (/^vector(?:<[1-9][0-9]*>)?$/.test(value))
|
|
11
|
+
return true;
|
|
12
|
+
const container = /^(array|map)<(.+)>$/.exec(value);
|
|
13
|
+
return Boolean(container && isValidFlowFieldType(container[2]));
|
|
14
|
+
}
|
|
1
15
|
/** FlowSpec is a portable source format; the returned Rust manifest is authoritative only after server validation. */
|
|
2
16
|
export function flowSpecToManifest(spec, tenantId, applicationId) {
|
|
3
17
|
const capabilities = spec.capabilities.map(value => ({ name: value.name }));
|
|
4
|
-
|
|
18
|
+
const manifestField = (field) => {
|
|
19
|
+
const reference = field.type.startsWith('ref ') ? field.type.slice(4) : undefined;
|
|
20
|
+
const enumValues = field.type.startsWith('enum(') && field.type.endsWith(')') ? field.type.slice(5, -1).split(',').map(value => value.trim()) : undefined;
|
|
21
|
+
return { name: field.name, type: reference ? 'reference' : enumValues ? 'enum' : field.type, required: !field.optional, ...(reference ? { reference } : {}), ...(enumValues ? { enum_values: enumValues } : {}) };
|
|
22
|
+
};
|
|
23
|
+
return { application_id: applicationId, tenant_id: tenantId, schema: 1, metadata: { name: spec.app, labels: {} }, collections: spec.collections.map(value => ({ name: value.name, fields: value.fields.map(manifestField) })), indexes: spec.collections.flatMap(collection => collection.indexes.map(index => ({ name: index.name, collection: collection.name, fields: [index.expression], unique: index.kind === 'unique' }))), references: [], queries: [], actions: [], workflows: spec.workflows.map(value => ({ name: value.name, steps: value.steps.map(step => ({ name: step.name })) })), triggers: spec.triggers.map((value, index) => ({ name: `trigger-${index + 1}`, event: value.event, workflow: spec.workflows[0]?.name || '' })), schedules: spec.schedules.map(value => ({ name: value.name, expression: value.statements[0] || '', workflow: spec.workflows[0]?.name || '' })), agents: spec.agents.map(value => ({ name: value.name, capabilities: capabilities.map(capability => capability.name).filter(name => value.statements.some(statement => statement.includes(name))) })), capabilities, connections: [], policies: spec.policies.map(value => ({ name: value.name, resource: value.statements[0] || 'application', capabilities: [] })), ui: { routes: [], bindings: [], forms: [], dashboards: [] }, environments: ['development', 'preview', 'staging', 'production'].map(name => ({ name, configuration: {} })), artifacts: [], deployment: { environments: ['development', 'preview', 'staging', 'production'] }, runtime: { contract: 1, minimum_engine: '0.2.0', maximum_engine_exclusive: '2.0.0' } };
|
|
5
24
|
}
|
|
6
25
|
export function manifestToFlowSpec(manifest) {
|
|
7
|
-
|
|
26
|
+
const fieldType = (field) => field.reference ? `ref ${field.reference}` : field.enum_values?.length ? `enum(${field.enum_values.join(',')})` : field.type;
|
|
27
|
+
return { version: 1, app: manifest.metadata.name, collections: manifest.collections.map(value => ({ name: value.name, fields: value.fields.map(field => ({ name: field.name, type: fieldType(field), optional: !field.required })), indexes: manifest.indexes.filter(index => index.collection === value.name).map(index => ({ name: index.name, kind: index.unique ? 'unique' : 'index', expression: index.fields.join(', ') })) })), capabilities: manifest.capabilities.map(value => ({ name: value.name, statements: value.provider ? [`provider ${value.provider}`] : [] })), agents: manifest.agents.map(value => ({ name: value.name, statements: value.capabilities.map(capability => `capability ${capability}`) })), workflows: manifest.workflows.map(value => ({ name: value.name, parameters: '', steps: value.steps.map(step => ({ name: step.name, statements: step.capability ? [`capability ${step.capability}`] : [] })) })), triggers: manifest.triggers.map(value => ({ event: value.event, statements: [`run ${value.workflow}`] })), policies: manifest.policies.map(value => ({ name: value.name, statements: [value.resource, ...value.capabilities] })), schedules: manifest.schedules.map(value => ({ name: value.name, statements: [value.expression, `run ${value.workflow}`] })) };
|
|
8
28
|
}
|
|
9
29
|
function lex(source) {
|
|
10
30
|
const tokens = [];
|
|
@@ -154,7 +174,8 @@ class Parser {
|
|
|
154
174
|
optional = true;
|
|
155
175
|
typeParts.pop();
|
|
156
176
|
}
|
|
157
|
-
|
|
177
|
+
const type = typeParts.join(' ').replace(/\s+([,)])/g, '$1').replace(/([(])\s+/g, '$1').replace(/^enum\s+\(/, 'enum(').replace(/,\s+/g, ',');
|
|
178
|
+
fields.push({ name: first, type, optional });
|
|
158
179
|
}
|
|
159
180
|
}
|
|
160
181
|
this.take('}');
|
|
@@ -203,9 +224,12 @@ export function validateFlowSpec(spec) {
|
|
|
203
224
|
const collections = new Set(spec.collections.map(value => value.name));
|
|
204
225
|
for (const collection of spec.collections) {
|
|
205
226
|
duplicate(`field in ${collection.name}`, collection.fields.map(value => value.name));
|
|
206
|
-
for (const field of collection.fields)
|
|
227
|
+
for (const field of collection.fields) {
|
|
228
|
+
if (!isValidFlowFieldType(field.type))
|
|
229
|
+
diagnostics.push({ severity: 'error', path: `${collection.name}.${field.name}`, message: `Unsupported field type ${field.type}` });
|
|
207
230
|
if (field.type.startsWith('ref ') && !collections.has(field.type.slice(4)))
|
|
208
231
|
diagnostics.push({ severity: 'error', path: `${collection.name}.${field.name}`, message: `Unknown referenced collection ${field.type.slice(4)}` });
|
|
232
|
+
}
|
|
209
233
|
}
|
|
210
234
|
for (const workflow of spec.workflows) {
|
|
211
235
|
duplicate(`step in ${workflow.name}`, workflow.steps.map(value => value.name));
|
package/dist/state-contract.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Transport types for the Rust-owned FeltDB state contract. */
|
|
2
|
-
export type PrimitiveType = 'string' | 'integer' | 'number' | 'boolean' | 'timestamp' | 'json';
|
|
2
|
+
export type PrimitiveType = 'string' | 'integer' | 'number' | 'boolean' | 'timestamp' | 'date' | 'time' | 'json' | 'uuid' | 'decimal' | 'money' | 'bigint' | 'email' | 'url' | 'phone' | 'binary' | 'file' | 'geo_point' | 'object';
|
|
3
3
|
export type FieldType = {
|
|
4
4
|
kind: 'primitive';
|
|
5
5
|
primitive: PrimitiveType;
|
|
@@ -12,6 +12,12 @@ export type FieldType = {
|
|
|
12
12
|
} | {
|
|
13
13
|
kind: 'array';
|
|
14
14
|
items: FieldType;
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'map';
|
|
17
|
+
values: FieldType;
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'vector';
|
|
20
|
+
dimensions?: number;
|
|
15
21
|
};
|
|
16
22
|
export interface StateField {
|
|
17
23
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-contract.d.ts","sourceRoot":"","sources":["../src/state-contract.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAC,QAAQ,GAAC,SAAS,GAAC,QAAQ,GAAC,SAAS,GAAC,WAAW,GAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"state-contract.d.ts","sourceRoot":"","sources":["../src/state-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationDesigner.d.ts","sourceRoot":"","sources":["../../src/components/ApplicationDesigner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAkB,MAAM,cAAc,CAAC;AAO3E,MAAM,WAAW,wBAAwB;IAAG,EAAE,CAAC,EAAE,YAAY,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;CAAE;AAE3J,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,SAAqB,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"ApplicationDesigner.d.ts","sourceRoot":"","sources":["../../src/components/ApplicationDesigner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAkB,MAAM,cAAc,CAAC;AAO3E,MAAM,WAAW,wBAAwB;IAAG,EAAE,CAAC,EAAE,YAAY,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;CAAE;AAE3J,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,SAAqB,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,wBAAwB,qBAoHrH;AACD,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p, x as m } from "../components-
|
|
1
|
+
import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p, x as m } from "../components-bHTARBin.js";
|
|
2
2
|
import { t as h } from "../KeyManagementPanel-DZuSeWBK.js";
|
|
3
3
|
import { ManagedInstancePanel as g } from "./ManagedInstancePanel.js";
|
|
4
4
|
export { c as AgentExplorer, f as ApplicationDesigner, p as CapabilityExplorer, t as ConflictExplorer, a as ExecutionViewer, s as GlobalSearch, i as HealthCenter, h as KeyManagementPanel, g as ManagedInstancePanel, r as OperationsExplorer, m as OverviewDashboard, n as PeerMap, e as ProvenanceViewer, l as ReferenceExplorer, u as SettingsPanel, o as StateExplorer, d as WorkflowVisualizer };
|
|
@@ -1160,7 +1160,7 @@ function B({ db: e, namespace: t = "default", projectSpec: o, onSpecChange: g })
|
|
|
1160
1160
|
collection: e,
|
|
1161
1161
|
name: "",
|
|
1162
1162
|
type: "text",
|
|
1163
|
-
reference:
|
|
1163
|
+
reference: "",
|
|
1164
1164
|
optional: !1
|
|
1165
1165
|
}), Z = () => {
|
|
1166
1166
|
if (!M) return;
|
|
@@ -1173,11 +1173,17 @@ function B({ db: e, namespace: t = "default", projectSpec: o, onSpecChange: g })
|
|
|
1173
1173
|
...M,
|
|
1174
1174
|
error: "That field already exists."
|
|
1175
1175
|
});
|
|
1176
|
-
if (
|
|
1176
|
+
if ([
|
|
1177
|
+
"ref",
|
|
1178
|
+
"enum",
|
|
1179
|
+
"array",
|
|
1180
|
+
"map",
|
|
1181
|
+
"vector"
|
|
1182
|
+
].includes(M.type) && !M.reference.trim()) return N({
|
|
1177
1183
|
...M,
|
|
1178
|
-
error: "
|
|
1184
|
+
error: "Configure this field type."
|
|
1179
1185
|
});
|
|
1180
|
-
let n = M.type === "ref" ? `ref ${M.reference}` : M.type;
|
|
1186
|
+
let n = M.type === "ref" ? `ref ${M.reference}` : M.type === "enum" ? `enum(${M.reference.split(",").map((e) => e.trim()).filter(Boolean).join(",")})` : M.type === "array" ? `array<${M.reference.trim()}>` : M.type === "map" ? `map<${M.reference.trim()}>` : M.type === "vector" ? `vector<${M.reference.trim()}>` : M.type;
|
|
1181
1187
|
J({
|
|
1182
1188
|
...S,
|
|
1183
1189
|
collections: S.collections.map((t) => t.name === M.collection ? {
|
|
@@ -1529,51 +1535,155 @@ function B({ db: e, namespace: t = "default", projectSpec: o, onSpecChange: g })
|
|
|
1529
1535
|
})] }),
|
|
1530
1536
|
/* @__PURE__ */ c("div", {
|
|
1531
1537
|
className: "field-editor-row",
|
|
1532
|
-
children: [
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
children: [
|
|
1540
|
-
/* @__PURE__ */ s("option", {
|
|
1541
|
-
value: "text",
|
|
1542
|
-
children: "Text"
|
|
1543
|
-
}),
|
|
1544
|
-
/* @__PURE__ */ s("option", {
|
|
1545
|
-
value: "number",
|
|
1546
|
-
children: "Number"
|
|
1547
|
-
}),
|
|
1548
|
-
/* @__PURE__ */ s("option", {
|
|
1549
|
-
value: "boolean",
|
|
1550
|
-
children: "Boolean"
|
|
1551
|
-
}),
|
|
1552
|
-
/* @__PURE__ */ s("option", {
|
|
1553
|
-
value: "datetime",
|
|
1554
|
-
children: "Date & time"
|
|
1538
|
+
children: [
|
|
1539
|
+
/* @__PURE__ */ c("label", { children: [/* @__PURE__ */ s("span", { children: "Type" }), /* @__PURE__ */ c("select", {
|
|
1540
|
+
value: M.type,
|
|
1541
|
+
onChange: (e) => N({
|
|
1542
|
+
...M,
|
|
1543
|
+
type: e.target.value,
|
|
1544
|
+
error: void 0
|
|
1555
1545
|
}),
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1546
|
+
children: [
|
|
1547
|
+
/* @__PURE__ */ s("option", {
|
|
1548
|
+
value: "text",
|
|
1549
|
+
children: "Text"
|
|
1550
|
+
}),
|
|
1551
|
+
/* @__PURE__ */ s("option", {
|
|
1552
|
+
value: "integer",
|
|
1553
|
+
children: "Integer"
|
|
1554
|
+
}),
|
|
1555
|
+
/* @__PURE__ */ s("option", {
|
|
1556
|
+
value: "number",
|
|
1557
|
+
children: "Number"
|
|
1558
|
+
}),
|
|
1559
|
+
/* @__PURE__ */ s("option", {
|
|
1560
|
+
value: "decimal",
|
|
1561
|
+
children: "Decimal"
|
|
1562
|
+
}),
|
|
1563
|
+
/* @__PURE__ */ s("option", {
|
|
1564
|
+
value: "money",
|
|
1565
|
+
children: "Money"
|
|
1566
|
+
}),
|
|
1567
|
+
/* @__PURE__ */ s("option", {
|
|
1568
|
+
value: "bigint",
|
|
1569
|
+
children: "Big integer"
|
|
1570
|
+
}),
|
|
1571
|
+
/* @__PURE__ */ s("option", {
|
|
1572
|
+
value: "boolean",
|
|
1573
|
+
children: "Boolean"
|
|
1574
|
+
}),
|
|
1575
|
+
/* @__PURE__ */ s("option", {
|
|
1576
|
+
value: "datetime",
|
|
1577
|
+
children: "Date & time"
|
|
1578
|
+
}),
|
|
1579
|
+
/* @__PURE__ */ s("option", {
|
|
1580
|
+
value: "date",
|
|
1581
|
+
children: "Date"
|
|
1582
|
+
}),
|
|
1583
|
+
/* @__PURE__ */ s("option", {
|
|
1584
|
+
value: "time",
|
|
1585
|
+
children: "Time"
|
|
1586
|
+
}),
|
|
1587
|
+
/* @__PURE__ */ s("option", {
|
|
1588
|
+
value: "uuid",
|
|
1589
|
+
children: "UUID"
|
|
1590
|
+
}),
|
|
1591
|
+
/* @__PURE__ */ s("option", {
|
|
1592
|
+
value: "email",
|
|
1593
|
+
children: "Email"
|
|
1594
|
+
}),
|
|
1595
|
+
/* @__PURE__ */ s("option", {
|
|
1596
|
+
value: "url",
|
|
1597
|
+
children: "URL"
|
|
1598
|
+
}),
|
|
1599
|
+
/* @__PURE__ */ s("option", {
|
|
1600
|
+
value: "phone",
|
|
1601
|
+
children: "Phone"
|
|
1602
|
+
}),
|
|
1603
|
+
/* @__PURE__ */ s("option", {
|
|
1604
|
+
value: "json",
|
|
1605
|
+
children: "JSON"
|
|
1606
|
+
}),
|
|
1607
|
+
/* @__PURE__ */ s("option", {
|
|
1608
|
+
value: "object",
|
|
1609
|
+
children: "Object"
|
|
1610
|
+
}),
|
|
1611
|
+
/* @__PURE__ */ s("option", {
|
|
1612
|
+
value: "binary",
|
|
1613
|
+
children: "Binary"
|
|
1614
|
+
}),
|
|
1615
|
+
/* @__PURE__ */ s("option", {
|
|
1616
|
+
value: "file",
|
|
1617
|
+
children: "File"
|
|
1618
|
+
}),
|
|
1619
|
+
/* @__PURE__ */ s("option", {
|
|
1620
|
+
value: "geo",
|
|
1621
|
+
children: "Geo point"
|
|
1622
|
+
}),
|
|
1623
|
+
/* @__PURE__ */ s("option", {
|
|
1624
|
+
value: "enum",
|
|
1625
|
+
children: "Enum"
|
|
1626
|
+
}),
|
|
1627
|
+
/* @__PURE__ */ s("option", {
|
|
1628
|
+
value: "array",
|
|
1629
|
+
children: "Array"
|
|
1630
|
+
}),
|
|
1631
|
+
/* @__PURE__ */ s("option", {
|
|
1632
|
+
value: "map",
|
|
1633
|
+
children: "Typed map"
|
|
1634
|
+
}),
|
|
1635
|
+
/* @__PURE__ */ s("option", {
|
|
1636
|
+
value: "vector",
|
|
1637
|
+
children: "Vector"
|
|
1638
|
+
}),
|
|
1639
|
+
/* @__PURE__ */ s("option", {
|
|
1640
|
+
value: "ref",
|
|
1641
|
+
children: "Reference"
|
|
1642
|
+
})
|
|
1643
|
+
]
|
|
1644
|
+
})] }),
|
|
1645
|
+
M.type === "ref" && /* @__PURE__ */ c("label", { children: [/* @__PURE__ */ s("span", { children: "Collection" }), /* @__PURE__ */ s("select", {
|
|
1646
|
+
value: M.reference,
|
|
1647
|
+
onChange: (e) => N({
|
|
1648
|
+
...M,
|
|
1649
|
+
reference: e.target.value,
|
|
1650
|
+
error: void 0
|
|
1559
1651
|
}),
|
|
1560
|
-
/* @__PURE__ */ s("option", {
|
|
1561
|
-
value:
|
|
1562
|
-
children:
|
|
1652
|
+
children: S.collections.filter((t) => t.name !== e.name).map((e) => /* @__PURE__ */ s("option", {
|
|
1653
|
+
value: e.name,
|
|
1654
|
+
children: e.name
|
|
1655
|
+
}, e.name))
|
|
1656
|
+
})] }),
|
|
1657
|
+
M.type === "enum" && /* @__PURE__ */ c("label", { children: [/* @__PURE__ */ s("span", { children: "Values" }), /* @__PURE__ */ s("input", {
|
|
1658
|
+
placeholder: "draft,active,done",
|
|
1659
|
+
value: M.reference,
|
|
1660
|
+
onChange: (e) => N({
|
|
1661
|
+
...M,
|
|
1662
|
+
reference: e.target.value,
|
|
1663
|
+
error: void 0
|
|
1563
1664
|
})
|
|
1564
|
-
]
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1665
|
+
})] }),
|
|
1666
|
+
(M.type === "array" || M.type === "map") && /* @__PURE__ */ c("label", { children: [/* @__PURE__ */ s("span", { children: "Item type" }), /* @__PURE__ */ s("input", {
|
|
1667
|
+
placeholder: "text, uuid, ref Project…",
|
|
1668
|
+
value: M.reference,
|
|
1669
|
+
onChange: (e) => N({
|
|
1670
|
+
...M,
|
|
1671
|
+
reference: e.target.value,
|
|
1672
|
+
error: void 0
|
|
1673
|
+
})
|
|
1674
|
+
})] }),
|
|
1675
|
+
M.type === "vector" && /* @__PURE__ */ c("label", { children: [/* @__PURE__ */ s("span", { children: "Dimensions" }), /* @__PURE__ */ s("input", {
|
|
1676
|
+
type: "number",
|
|
1677
|
+
min: "1",
|
|
1678
|
+
placeholder: "1536",
|
|
1679
|
+
value: M.reference,
|
|
1680
|
+
onChange: (e) => N({
|
|
1681
|
+
...M,
|
|
1682
|
+
reference: e.target.value,
|
|
1683
|
+
error: void 0
|
|
1684
|
+
})
|
|
1685
|
+
})] })
|
|
1686
|
+
]
|
|
1577
1687
|
}),
|
|
1578
1688
|
/* @__PURE__ */ c("label", {
|
|
1579
1689
|
className: "field-optional",
|
package/dist/studio/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as e, a as t, b as n, c as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, o as f, p, r as m, s as h, t as g, u as _, v, x as y, y as b } from "./components-
|
|
1
|
+
import { _ as e, a as t, b as n, c as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, o as f, p, r as m, s as h, t as g, u as _, v, x as y, y as b } from "./components-bHTARBin.js";
|
|
2
2
|
import { t as x } from "./KeyManagementPanel-DZuSeWBK.js";
|
|
3
3
|
import { ManagedInstanceUtil as S } from "./utils/managed-instance.js";
|
|
4
4
|
import { ManagedInstancePanel as C } from "./components/ManagedInstancePanel.js";
|
|
@@ -9,7 +9,10 @@ import { jsx as B, jsxs as V } from "react/jsx-runtime";
|
|
|
9
9
|
import { parseFlowSpec as H } from "@feltdb/core";
|
|
10
10
|
//#region src/app.tsx
|
|
11
11
|
function U({ db: s, remoteUrl: b = "", token: S = "", namespace: C = "default", deploymentRuntime: w = "browser", applicationUrl: T = "", onConnect: E }) {
|
|
12
|
-
let [D, O] = F(null), k = e(s || null, C), A = o(s || null, D, C), { diagnostics: j } = n(s || null), M = v(s || null), N
|
|
12
|
+
let [D, O] = F(null), k = e(s || null, C), A = o(s || null, D, C), { diagnostics: j } = n(s || null), M = v(s || null), [N, U] = F(), W = w !== "browser" || !!b, G = (e) => ({
|
|
13
|
+
pathname: e,
|
|
14
|
+
search: window.location.search
|
|
15
|
+
});
|
|
13
16
|
return P(() => {
|
|
14
17
|
let e = !0;
|
|
15
18
|
return fetch("/_feltdb/project", { cache: "no-store" }).then(async (t) => {
|
|
@@ -49,67 +52,67 @@ function U({ db: s, remoteUrl: b = "", token: S = "", namespace: C = "default",
|
|
|
49
52
|
children: "Design"
|
|
50
53
|
}),
|
|
51
54
|
/* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
52
|
-
to: "/",
|
|
55
|
+
to: G("/"),
|
|
53
56
|
children: "Application"
|
|
54
57
|
}) }),
|
|
55
58
|
/* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
56
|
-
to: "/capabilities",
|
|
59
|
+
to: G("/capabilities"),
|
|
57
60
|
children: "Capabilities"
|
|
58
61
|
}) }),
|
|
59
62
|
/* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
60
|
-
to: "/workflows",
|
|
63
|
+
to: G("/workflows"),
|
|
61
64
|
children: "Workflows"
|
|
62
65
|
}) }),
|
|
63
66
|
/* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
64
|
-
to: "/agents",
|
|
67
|
+
to: G("/agents"),
|
|
65
68
|
children: "Agents"
|
|
66
69
|
}) }),
|
|
67
70
|
/* @__PURE__ */ B("li", {
|
|
68
71
|
className: "nav-section",
|
|
69
72
|
children: "Observe"
|
|
70
73
|
}),
|
|
71
|
-
|
|
72
|
-
to: "/overview",
|
|
74
|
+
W && /* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
75
|
+
to: G("/overview"),
|
|
73
76
|
children: "Overview"
|
|
74
77
|
}) }),
|
|
75
78
|
/* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
76
|
-
to: "/data",
|
|
79
|
+
to: G("/data"),
|
|
77
80
|
children: "Data"
|
|
78
81
|
}) }),
|
|
79
|
-
|
|
80
|
-
to: "/references",
|
|
82
|
+
W && /* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
83
|
+
to: G("/references"),
|
|
81
84
|
children: "References"
|
|
82
85
|
}) }),
|
|
83
|
-
|
|
84
|
-
to: "/operations",
|
|
86
|
+
W && /* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
87
|
+
to: G("/operations"),
|
|
85
88
|
children: "Operations"
|
|
86
89
|
}) }),
|
|
87
|
-
|
|
88
|
-
to: "/executions",
|
|
90
|
+
W && /* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
91
|
+
to: G("/executions"),
|
|
89
92
|
children: "Executions"
|
|
90
93
|
}) }),
|
|
91
|
-
|
|
92
|
-
to: "/peers",
|
|
94
|
+
W && /* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
95
|
+
to: G("/peers"),
|
|
93
96
|
children: "Peers"
|
|
94
97
|
}) }),
|
|
95
|
-
|
|
96
|
-
to: "/provenance",
|
|
98
|
+
W && /* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
99
|
+
to: G("/provenance"),
|
|
97
100
|
children: "Provenance"
|
|
98
101
|
}) }),
|
|
99
|
-
|
|
100
|
-
to: "/conflicts",
|
|
102
|
+
W && /* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
103
|
+
to: G("/conflicts"),
|
|
101
104
|
children: "Conflicts"
|
|
102
105
|
}) }),
|
|
103
|
-
|
|
104
|
-
to: "/health",
|
|
106
|
+
W && /* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
107
|
+
to: G("/health"),
|
|
105
108
|
children: "Health"
|
|
106
109
|
}) }),
|
|
107
110
|
/* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
108
|
-
to: "/settings",
|
|
111
|
+
to: G("/settings"),
|
|
109
112
|
children: "Settings"
|
|
110
113
|
}) }),
|
|
111
|
-
|
|
112
|
-
to: "/api-keys",
|
|
114
|
+
W && /* @__PURE__ */ B("li", { children: /* @__PURE__ */ B(L, {
|
|
115
|
+
to: G("/api-keys"),
|
|
113
116
|
children: "API Keys"
|
|
114
117
|
}) })
|
|
115
118
|
]
|
|
@@ -117,7 +120,7 @@ function U({ db: s, remoteUrl: b = "", token: S = "", namespace: C = "default",
|
|
|
117
120
|
]
|
|
118
121
|
}), /* @__PURE__ */ V("main", {
|
|
119
122
|
className: "studio-content",
|
|
120
|
-
children: [!
|
|
123
|
+
children: [!W && /* @__PURE__ */ B("div", {
|
|
121
124
|
className: "runtime-notice",
|
|
122
125
|
children: "Browser data is read live from the generated application origin through the local Studio bridge."
|
|
123
126
|
}), /* @__PURE__ */ V(z, { children: [
|
|
@@ -209,7 +212,7 @@ function U({ db: s, remoteUrl: b = "", token: S = "", namespace: C = "default",
|
|
|
209
212
|
db: s,
|
|
210
213
|
model: D,
|
|
211
214
|
namespace: C,
|
|
212
|
-
reference:
|
|
215
|
+
reference: N
|
|
213
216
|
})
|
|
214
217
|
}),
|
|
215
218
|
/* @__PURE__ */ B(R, {
|