okengine 0.2.5 → 0.2.8
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/AGENTS.md +24 -23
- package/README.md +52 -346
- package/docs/spec/console.md +165 -142
- package/docs/spec/example.md +490 -312
- package/docs/spec/four-applications.md +495 -314
- package/docs/spec/unified-theory.md +184 -175
- package/package.json +46 -38
- package/spec/manifest.v1.schema.json +40 -9
- package/src/auth/api-keys.ts +2 -5
- package/src/auth/attenuation.ts +2 -6
- package/src/auth/auth.test.ts +53 -31
- package/src/auth/invoke-as.ts +1 -3
- package/src/auth/operator.ts +8 -26
- package/src/auth/planes.ts +2 -7
- package/src/auth/plugin.ts +4 -7
- package/src/auth/roles.ts +1 -5
- package/src/auth/sessions.ts +10 -39
- package/src/cli/args.ts +1 -5
- package/src/cli/ask-dev-mode.ts +40 -0
- package/src/cli/build.ts +1 -2
- package/src/cli/client-add.test.ts +8 -15
- package/src/cli/client-add.ts +5 -14
- package/src/cli/completion.test.ts +1 -5
- package/src/cli/completion.ts +4 -17
- package/src/cli/db-auto-push.test.ts +64 -0
- package/src/cli/db-auto-push.ts +72 -0
- package/src/cli/db.test.ts +189 -0
- package/src/cli/db.ts +386 -0
- package/src/cli/dev-app-runner.ts +2 -8
- package/src/cli/dev-db-push.test.ts +163 -0
- package/src/cli/dev-mode.test.ts +45 -0
- package/src/cli/dev-mode.ts +78 -0
- package/src/cli/dev.test.ts +148 -21
- package/src/cli/dev.ts +208 -134
- package/src/cli/doc-drift.test.ts +3 -2
- package/src/cli/doc-drift.ts +21 -50
- package/src/cli/doc-staleness.test.ts +69 -0
- package/src/cli/docker-cli.test.ts +7 -8
- package/src/cli/docker.ts +1 -3
- package/src/cli/doctor-diff-examples.ts +1 -3
- package/src/cli/doctor-diff.test.ts +1 -5
- package/src/cli/doctor-diff.ts +17 -46
- package/src/cli/doctor-pii.ts +2 -7
- package/src/cli/doctor.test.ts +26 -4
- package/src/cli/doctor.ts +35 -11
- package/src/cli/eval.ts +4 -14
- package/src/cli/gates-list.ts +1 -4
- package/src/cli/hero-meta.test.ts +17 -19
- package/src/cli/hero-meta.ts +20 -30
- package/src/cli/images.ts +3 -8
- package/src/cli/index.ts +11 -2
- package/src/cli/load-config.images.test.ts +14 -14
- package/src/cli/load-config.ts +41 -47
- package/src/cli/mcp-from-console.ts +1 -4
- package/src/cli/mode.ts +45 -0
- package/src/cli/ports.test.ts +4 -13
- package/src/cli/ports.ts +1 -3
- package/src/cli/privacy-erase.ts +1 -3
- package/src/cli/registry.ts +75 -25
- package/src/cli/schema.ts +3 -10
- package/src/cli/stack.ts +2 -7
- package/src/cli/start.ts +4 -15
- package/src/cli/upgrade.ts +1 -4
- package/src/client/budget-entry.ts +1 -6
- package/src/client/create.test.ts +6 -12
- package/src/client/create.ts +2 -8
- package/src/client/errors.ts +1 -4
- package/src/client/index.ts +1 -6
- package/src/client/notes-contract.test.ts +4 -13
- package/src/client/transport.ts +9 -30
- package/src/client/types.ts +8 -29
- package/src/compiler/aot.test.ts +2 -9
- package/src/compiler/aot.ts +1 -4
- package/src/compiler/differential.test.ts +3 -11
- package/src/compiler/dynamic.ts +1 -4
- package/src/compiler/effects-infer.ts +8 -34
- package/src/compiler/emit.ts +1 -3
- package/src/compiler/extract.test.ts +96 -30
- package/src/compiler/extract.ts +362 -156
- package/src/compiler/fixtures/skyport/oke.config.ts +1 -1
- package/src/compiler/fixtures/skyport/src/flows/bookings/index.ts +7 -3
- package/src/compiler/fixtures/skyport/src/flows/payments/index.ts +1 -3
- package/src/compiler/fixtures/skyport/src/flows/support/index.ts +4 -1
- package/src/compiler/fixtures/skyport.expected.json +24 -83
- package/src/compiler/fixtures/triggers/five-triggers.ts +1 -2
- package/src/compiler/http-parse.ts +2 -9
- package/src/compiler/index.ts +1 -5
- package/src/compiler/response.ts +4 -7
- package/src/compiler/sucrose.ts +11 -31
- package/src/config/define-config.test.ts +57 -34
- package/src/config/index.ts +181 -37
- package/src/config/resolve-driver.test.ts +28 -17
- package/src/console/budget.test.ts +1 -4
- package/src/console/index.ts +1 -4
- package/src/console/server/access.test.ts +15 -43
- package/src/console/server/access.ts +19 -49
- package/src/console/server/ai.test.ts +3 -11
- package/src/console/server/ai.ts +23 -46
- package/src/console/server/app.ts +14 -45
- package/src/console/server/auth-rate.test.ts +4 -12
- package/src/console/server/bind.ts +1 -5
- package/src/console/server/channels.test.ts +2 -6
- package/src/console/server/channels.ts +10 -35
- package/src/console/server/claim.ts +2 -8
- package/src/console/server/clock.test.ts +2 -6
- package/src/console/server/clock.ts +8 -26
- package/src/console/server/console.test.ts +1 -3
- package/src/console/server/diff.test.ts +5 -17
- package/src/console/server/diff.ts +10 -31
- package/src/console/server/dry-run.audit.test.ts +2 -8
- package/src/console/server/flows.ts +64 -233
- package/src/console/server/gates.test.ts +14 -50
- package/src/console/server/gates.ts +13 -48
- package/src/console/server/index.ts +2 -9
- package/src/console/server/live.ts +3 -12
- package/src/console/server/operator-db.test.ts +4 -15
- package/src/console/server/operator-db.ts +13 -32
- package/src/console/server/plugin.ts +50 -53
- package/src/console/server/plugins.test.ts +2 -6
- package/src/console/server/plugins.ts +17 -56
- package/src/console/server/runs-pii.ts +2 -7
- package/src/console/server/security.gate.test.ts +18 -40
- package/src/console/server/serve.ts +10 -25
- package/src/console/server/signals.test.ts +1 -3
- package/src/console/server/signals.ts +17 -40
- package/src/console/server/state.ts +21 -59
- package/src/console/server/store.test.ts +20 -22
- package/src/console/server/store.ts +31 -76
- package/src/console/server/vault.test.ts +12 -29
- package/src/console/server/vault.ts +23 -60
- package/src/console/ui/access/AccessA11yView.tsx +6 -21
- package/src/console/ui/access/a11y.test.tsx +3 -12
- package/src/console/ui/access/acknowledgement.test.ts +1 -4
- package/src/console/ui/access/acknowledgement.ts +1 -3
- package/src/console/ui/access/blast-radius.ts +1 -3
- package/src/console/ui/access/confirmation.test.ts +1 -5
- package/src/console/ui/access/confirmation.ts +1 -4
- package/src/console/ui/access/fixture.ts +1 -5
- package/src/console/ui/access/grantable.test.ts +1 -3
- package/src/console/ui/access/grantable.ts +2 -7
- package/src/console/ui/access/index.ts +2 -9
- package/src/console/ui/access/provenance.test.ts +1 -3
- package/src/console/ui/access/provenance.ts +2 -6
- package/src/console/ui/access/search.test.ts +1 -5
- package/src/console/ui/access/search.ts +2 -6
- package/src/console/ui/ai/AiA11yView.tsx +6 -17
- package/src/console/ui/ai/a11y.test.tsx +2 -5
- package/src/console/ui/ai/fixture.ts +2 -7
- package/src/console/ui/ai/format.ts +1 -3
- package/src/console/ui/ai/group.test.ts +1 -3
- package/src/console/ui/ai/group.ts +4 -12
- package/src/console/ui/ai/index.ts +2 -9
- package/src/console/ui/ai/promotion.test.ts +2 -7
- package/src/console/ui/ai/promotion.ts +4 -13
- package/src/console/ui/ai/search.test.ts +2 -11
- package/src/console/ui/ai/search.ts +3 -13
- package/src/console/ui/ai/types.ts +1 -8
- package/src/console/ui/architecture/ArchitectureA11yView.tsx +8 -29
- package/src/console/ui/architecture/a11y.test.tsx +1 -2
- package/src/console/ui/architecture/declared.ts +1 -5
- package/src/console/ui/architecture/index.ts +7 -35
- package/src/console/ui/architecture/layout.ts +1 -3
- package/src/console/ui/architecture/pathologies.ts +10 -19
- package/src/console/ui/architecture/search.ts +6 -15
- package/src/console/ui/architecture/traffic.ts +4 -14
- package/src/console/ui/architecture/types.ts +2 -10
- package/src/console/ui/architecture/view.test.ts +7 -19
- package/src/console/ui/architecture/view.ts +9 -36
- package/src/console/ui/channels/ChannelsA11yView.tsx +4 -13
- package/src/console/ui/channels/a11y.test.tsx +1 -2
- package/src/console/ui/channels/confirmation.test.ts +1 -4
- package/src/console/ui/channels/confirmation.ts +1 -4
- package/src/console/ui/channels/findings.ts +1 -5
- package/src/console/ui/channels/index.ts +2 -8
- package/src/console/ui/channels/locale.test.ts +1 -3
- package/src/console/ui/channels/locale.ts +2 -8
- package/src/console/ui/channels/search.ts +4 -13
- package/src/console/ui/channels/taxonomy.ts +1 -3
- package/src/console/ui/clock/ClockA11yView.tsx +9 -26
- package/src/console/ui/clock/a11y.test.tsx +2 -5
- package/src/console/ui/clock/confirmation.test.ts +1 -3
- package/src/console/ui/clock/confirmation.ts +1 -4
- package/src/console/ui/clock/findings.ts +1 -4
- package/src/console/ui/clock/health.ts +2 -7
- package/src/console/ui/clock/index.ts +2 -10
- package/src/console/ui/clock/search.test.ts +1 -3
- package/src/console/ui/clock/search.ts +2 -6
- package/src/console/ui/clock/timeline.test.ts +1 -3
- package/src/console/ui/clock/waiting-on.test.ts +1 -5
- package/src/console/ui/clock/waiting-on.ts +2 -7
- package/src/console/ui/diff/DiffA11yView.tsx +8 -17
- package/src/console/ui/diff/a11y.test.tsx +2 -5
- package/src/console/ui/diff/group.test.ts +3 -13
- package/src/console/ui/diff/group.ts +2 -8
- package/src/console/ui/diff/index.ts +2 -8
- package/src/console/ui/diff/search.test.ts +1 -5
- package/src/console/ui/diff/search.ts +4 -16
- package/src/console/ui/diff/summary.ts +1 -2
- package/src/console/ui/dist/assets/{index-Dy4jht9P.js → index-BWo8R7NR.js} +2 -2
- package/src/console/ui/dist/assets/{panel-access-Dd37LU2c.js → panel-access-C0J2D-a2.js} +1 -1
- package/src/console/ui/dist/assets/{panel-ai-CC7LR6-J.js → panel-ai-D_m6WQI8.js} +1 -1
- package/src/console/ui/dist/assets/{panel-architecture-B5b3iKCz.js → panel-architecture-CKnXFyUx.js} +1 -1
- package/src/console/ui/dist/assets/{panel-channels-CeNjTKXp.js → panel-channels-BOmQ-onL.js} +1 -1
- package/src/console/ui/dist/assets/{panel-clock-DgFTLoHV.js → panel-clock-giAq0Ccv.js} +1 -1
- package/src/console/ui/dist/assets/{panel-diff-DxehccqB.js → panel-diff-cdonmH8c.js} +1 -1
- package/src/console/ui/dist/assets/{panel-flows-BtrVn-Eg.js → panel-flows-DlCU5zjA.js} +2 -2
- package/src/console/ui/dist/assets/{panel-gates-Z9MKRGdH.js → panel-gates-XclZxWD5.js} +1 -1
- package/src/console/ui/dist/assets/{panel-overview-Dt_AeXgd.js → panel-overview-BznEOTnb.js} +1 -1
- package/src/console/ui/dist/assets/{panel-plugins-DWd0TowH.js → panel-plugins-CcGM1g64.js} +1 -1
- package/src/console/ui/dist/assets/{panel-runs-DGstFHeq.js → panel-runs-CGWNHLR4.js} +1 -1
- package/src/console/ui/dist/assets/{panel-signals-DzEa2Fnt.js → panel-signals-CNywkdak.js} +1 -1
- package/src/console/ui/dist/assets/{panel-store-BJkbNgxx.js → panel-store-KmTbFHMH.js} +1 -1
- package/src/console/ui/dist/assets/{panel-traces-BaRVO3gM.js → panel-traces-DBLx2ilD.js} +1 -1
- package/src/console/ui/dist/assets/panel-vault-CEnFc0dk.js +1 -0
- package/src/console/ui/dist/index.html +1 -1
- package/src/console/ui/flows/FlowsA11yView.tsx +7 -22
- package/src/console/ui/flows/a11y.test.tsx +2 -8
- package/src/console/ui/flows/buffer.test.ts +3 -11
- package/src/console/ui/flows/buffer.ts +4 -11
- package/src/console/ui/flows/confirmation.ts +1 -3
- package/src/console/ui/flows/contract.test.ts +3 -7
- package/src/console/ui/flows/contract.ts +12 -36
- package/src/console/ui/flows/graph.test.ts +3 -11
- package/src/console/ui/flows/graph.ts +5 -15
- package/src/console/ui/flows/index.ts +1 -6
- package/src/console/ui/flows/save-as-test.ts +1 -3
- package/src/console/ui/flows/search.ts +8 -25
- package/src/console/ui/flows/tiers.ts +2 -9
- package/src/console/ui/gates/GatesA11yView.tsx +4 -13
- package/src/console/ui/gates/a11y.test.tsx +2 -5
- package/src/console/ui/gates/audit.ts +1 -3
- package/src/console/ui/gates/denial.test.ts +1 -3
- package/src/console/ui/gates/denial.ts +4 -12
- package/src/console/ui/gates/findings.ts +1 -3
- package/src/console/ui/gates/group.test.ts +3 -3
- package/src/console/ui/gates/group.ts +3 -11
- package/src/console/ui/gates/index.ts +2 -10
- package/src/console/ui/gates/search.ts +3 -10
- package/src/console/ui/overview/OverviewA11yView.tsx +9 -27
- package/src/console/ui/overview/a11y.test.tsx +1 -2
- package/src/console/ui/overview/busiest.ts +1 -3
- package/src/console/ui/overview/compose.ts +1 -13
- package/src/console/ui/overview/cost.ts +34 -38
- package/src/console/ui/overview/fixture.ts +21 -26
- package/src/console/ui/overview/golden.ts +4 -14
- package/src/console/ui/overview/index.ts +2 -9
- package/src/console/ui/overview/rank.test.ts +3 -10
- package/src/console/ui/overview/rank.ts +2 -7
- package/src/console/ui/overview/slo.test.ts +5 -9
- package/src/console/ui/overview/slo.ts +6 -23
- package/src/console/ui/overview/verdict.ts +3 -10
- package/src/console/ui/plugins/PluginsA11yView.tsx +8 -18
- package/src/console/ui/plugins/a11y.test.tsx +1 -2
- package/src/console/ui/plugins/fixture.ts +2 -4
- package/src/console/ui/plugins/group.test.ts +1 -3
- package/src/console/ui/plugins/group.ts +1 -6
- package/src/console/ui/plugins/index.ts +3 -13
- package/src/console/ui/plugins/search.ts +7 -19
- package/src/console/ui/runs/RunsA11yView.tsx +5 -20
- package/src/console/ui/runs/a11y.test.tsx +2 -5
- package/src/console/ui/runs/explain.ts +2 -6
- package/src/console/ui/runs/group.ts +3 -12
- package/src/console/ui/runs/histogram.test.ts +2 -11
- package/src/console/ui/runs/histogram.ts +1 -4
- package/src/console/ui/runs/index.ts +4 -18
- package/src/console/ui/runs/project.ts +2 -6
- package/src/console/ui/runs/query.test.ts +1 -3
- package/src/console/ui/runs/query.ts +12 -35
- package/src/console/ui/runs/search.ts +5 -19
- package/src/console/ui/runs/trace-link.test.ts +2 -6
- package/src/console/ui/runs/trace-link.ts +4 -16
- package/src/console/ui/runs/types.ts +1 -3
- package/src/console/ui/shell/App.tsx +2 -10
- package/src/console/ui/shell/client.ts +22 -115
- package/src/console/ui/shell/components/ui.tsx +1 -4
- package/src/console/ui/shell/layout/Shell.tsx +2 -4
- package/src/console/ui/shell/main.tsx +31 -96
- package/src/console/ui/shell/panels/access/AccessPanel.tsx +34 -98
- package/src/console/ui/shell/panels/ai/AiPanel.tsx +35 -106
- package/src/console/ui/shell/panels/architecture/ArchitecturePanel.tsx +18 -66
- package/src/console/ui/shell/panels/channels/ChannelsPanel.tsx +20 -57
- package/src/console/ui/shell/panels/clock/ClockPanel.tsx +22 -54
- package/src/console/ui/shell/panels/diff/DiffPanel.tsx +20 -61
- package/src/console/ui/shell/panels/flows/ContractEditor.tsx +6 -23
- package/src/console/ui/shell/panels/flows/FlowDrawer.tsx +13 -28
- package/src/console/ui/shell/panels/flows/FlowsPanel.tsx +9 -29
- package/src/console/ui/shell/panels/gates/GatesPanel.tsx +24 -80
- package/src/console/ui/shell/panels/overview/OverviewPanel.tsx +20 -58
- package/src/console/ui/shell/panels/plugins/PluginsPanel.tsx +16 -41
- package/src/console/ui/shell/panels/runs/RunsPanel.tsx +31 -99
- package/src/console/ui/shell/panels/signals/SignalsPanel.tsx +38 -101
- package/src/console/ui/shell/panels/store/StorePanel.tsx +27 -66
- package/src/console/ui/shell/panels/traces/TracesPanel.tsx +28 -89
- package/src/console/ui/shell/panels/vault/VaultPanel.tsx +22 -53
- package/src/console/ui/shell/setup/Wizard.tsx +3 -5
- package/src/console/ui/shell/styles.css +1 -2
- package/src/console/ui/signals/SignalsA11yView.tsx +9 -33
- package/src/console/ui/signals/a11y.test.tsx +2 -5
- package/src/console/ui/signals/confirmation.test.ts +1 -5
- package/src/console/ui/signals/confirmation.ts +2 -6
- package/src/console/ui/signals/dry-run.ts +1 -3
- package/src/console/ui/signals/durable.ts +1 -3
- package/src/console/ui/signals/findings.ts +1 -3
- package/src/console/ui/signals/group.test.ts +2 -8
- package/src/console/ui/signals/group.ts +2 -10
- package/src/console/ui/signals/index.ts +1 -4
- package/src/console/ui/signals/monitor.ts +2 -7
- package/src/console/ui/signals/schema-form.test.ts +3 -14
- package/src/console/ui/signals/schema-form.ts +1 -4
- package/src/console/ui/signals/search.ts +4 -13
- package/src/console/ui/store/StoreA11yView.tsx +3 -9
- package/src/console/ui/store/a11y.test.tsx +2 -5
- package/src/console/ui/store/confirmation.test.ts +1 -3
- package/src/console/ui/store/confirmation.ts +1 -4
- package/src/console/ui/store/dry-run.ts +2 -5
- package/src/console/ui/store/fixture.ts +1 -2
- package/src/console/ui/store/group.test.ts +1 -6
- package/src/console/ui/store/group.ts +1 -4
- package/src/console/ui/store/index.ts +1 -5
- package/src/console/ui/store/search.ts +2 -6
- package/src/console/ui/store/will-not-fire.ts +1 -2
- package/src/console/ui/traces/TracesA11yView.tsx +10 -29
- package/src/console/ui/traces/a11y.test.tsx +1 -2
- package/src/console/ui/traces/chain.test.ts +5 -19
- package/src/console/ui/traces/chain.ts +1 -3
- package/src/console/ui/traces/critical-path.test.ts +1 -3
- package/src/console/ui/traces/critical-path.ts +2 -6
- package/src/console/ui/traces/filter.test.ts +2 -6
- package/src/console/ui/traces/filter.ts +5 -13
- package/src/console/ui/traces/fold.test.ts +4 -12
- package/src/console/ui/traces/fold.ts +1 -3
- package/src/console/ui/traces/mini.ts +1 -3
- package/src/console/ui/traces/replay.test.ts +1 -3
- package/src/console/ui/traces/replay.ts +1 -3
- package/src/console/ui/traces/sampling.ts +1 -4
- package/src/console/ui/traces/search.ts +4 -17
- package/src/console/ui/traces/tier.ts +1 -3
- package/src/console/ui/vault/VaultA11yView.tsx +5 -17
- package/src/console/ui/vault/a11y.test.tsx +1 -2
- package/src/console/ui/vault/blast-radius.ts +1 -3
- package/src/console/ui/vault/confirmation.test.ts +1 -5
- package/src/console/ui/vault/confirmation.ts +1 -4
- package/src/console/ui/vault/dormant.test.ts +1 -4
- package/src/console/ui/vault/export-safe.test.ts +1 -5
- package/src/console/ui/vault/export-safe.ts +1 -4
- package/src/console/ui/vault/fixture.ts +3 -3
- package/src/console/ui/vault/group.ts +1 -2
- package/src/console/ui/vault/index.ts +2 -10
- package/src/console/ui/vault/search.ts +2 -6
- package/src/console/ui/vault/types.ts +1 -1
- package/src/console/xss.gate.test.ts +1 -3
- package/src/docker/compose.ts +112 -20
- package/src/docker/derive.ts +5 -19
- package/src/docker/docker.test.ts +15 -15
- package/src/docker/dockerfile.integration.test.ts +12 -21
- package/src/docker/helpers.ts +5 -4
- package/src/docker/index.ts +4 -11
- package/src/docker/pin.ts +1 -9
- package/src/docker/recipes/index.ts +5 -6
- package/src/docker/recipes/mailpit.ts +22 -0
- package/src/docker/recipes/postgres.ts +17 -6
- package/src/docker/recipes/redis.ts +6 -1
- package/src/docker/recipes/rustfs.ts +33 -0
- package/src/docker/stack-id.test.ts +33 -0
- package/src/docker/stack-id.ts +25 -13
- package/src/docker/stack.integration.test.ts +6 -21
- package/src/docker/types.ts +13 -4
- package/src/drivers/ai-anthropic.ts +5 -14
- package/src/drivers/ai-mock.ts +2 -5
- package/src/drivers/ai-openai-compatible.ts +4 -10
- package/src/drivers/ai-providers.test.ts +6 -13
- package/src/drivers/bun-native-completeness.test.ts +6 -15
- package/src/drivers/channel-console.ts +6 -7
- package/src/drivers/channel-fcm.ts +20 -30
- package/src/drivers/channel-resend.ts +1 -3
- package/src/drivers/channel-smtp.ts +2 -6
- package/src/drivers/channel-types.ts +2 -12
- package/src/drivers/channel-unifonic.ts +2 -6
- package/src/drivers/channel-wa-cloud.ts +2 -6
- package/src/drivers/channel-webpush.ts +21 -60
- package/src/drivers/conformance.test.ts +2 -10
- package/src/drivers/conformance.ts +8 -21
- package/src/drivers/fs.ts +2 -8
- package/src/drivers/index.ts +12 -56
- package/src/drivers/memory.ts +14 -41
- package/src/drivers/pgvector.ts +7 -11
- package/src/drivers/postgres.ts +7 -13
- package/src/drivers/redis.ts +13 -37
- package/src/drivers/s3.ts +5 -17
- package/src/drivers/signal-engine.ts +12 -49
- package/src/drivers/signal-memory.ts +2 -8
- package/src/drivers/signal-nats.ts +4 -9
- package/src/drivers/signal-postgres.ts +62 -129
- package/src/drivers/signal-redis.ts +7 -21
- package/src/drivers/signal-types.ts +1 -4
- package/src/drivers/sqlite.ts +3 -12
- package/src/drivers/types.ts +4 -23
- package/src/drivers/vault-env.ts +2 -6
- package/src/drivers/vault-infisical.ts +1 -5
- package/src/drivers/vault-managed.ts +1 -5
- package/src/drivers/vault-memory.ts +1 -5
- package/src/drivers/vault-openbao.ts +1 -5
- package/src/drivers/vault-sops.ts +10 -35
- package/src/drivers/vault-types.ts +1 -7
- package/src/elements/ai/declare.ts +4 -14
- package/src/elements/ai/eval.ts +2 -6
- package/src/elements/ai/pii.ts +1 -3
- package/src/elements/ai/runtime.ts +12 -50
- package/src/elements/ai/schema.ts +4 -15
- package/src/elements/ai.test.ts +13 -24
- package/src/elements/ai.ts +1 -5
- package/src/elements/channel/consent.ts +3 -12
- package/src/elements/channel/costs.ts +4 -15
- package/src/elements/channel/declare.ts +1 -4
- package/src/elements/channel/email-auth.ts +1 -4
- package/src/elements/channel/locale.ts +2 -10
- package/src/elements/channel/mask.ts +1 -3
- package/src/elements/channel/mime.ts +2 -12
- package/src/elements/channel/outcomes.test.ts +1 -5
- package/src/elements/channel/outcomes.ts +5 -15
- package/src/elements/channel/receipts.ts +2 -7
- package/src/elements/channel/runtime.ts +28 -74
- package/src/elements/channel/suppression.ts +8 -14
- package/src/elements/channel.test.ts +8 -31
- package/src/elements/channel.ts +3 -14
- package/src/elements/clock/actions.ts +6 -18
- package/src/elements/clock/declare.ts +1 -3
- package/src/elements/clock/dst.ts +1 -5
- package/src/elements/clock/durable.ts +4 -16
- package/src/elements/clock/health.ts +2 -7
- package/src/elements/clock/leader.ts +2 -9
- package/src/elements/clock/reconcile.ts +4 -15
- package/src/elements/clock/runtime.ts +2 -5
- package/src/elements/clock/schedule.ts +4 -20
- package/src/elements/clock.test.ts +2 -7
- package/src/elements/clock.ts +5 -23
- package/src/elements/gate/permissions.ts +1 -4
- package/src/elements/gate/runtime.ts +7 -28
- package/src/elements/gate.ts +1 -5
- package/src/elements/index.ts +9 -7
- package/src/elements/signal/declare.ts +2 -7
- package/src/elements/signal/reconcile.test.ts +1 -4
- package/src/elements/signal/runtime.ts +1 -3
- package/src/elements/signal.test.ts +3 -15
- package/src/elements/signal.ts +2 -8
- package/src/elements/store/cache.test.ts +46 -0
- package/src/elements/store/cache.ts +3 -11
- package/src/elements/store/classify.ts +5 -22
- package/src/elements/store/declare.ts +8 -17
- package/src/elements/store/domain-ddl.test.ts +86 -0
- package/src/elements/store/emit-drizzle.ts +363 -0
- package/src/elements/store/files-policy.test.ts +1 -5
- package/src/elements/store/files-policy.ts +4 -12
- package/src/elements/store/load-plugin-tables.ts +103 -0
- package/src/elements/store/missing-relation.test.ts +83 -0
- package/src/elements/store/missing-relation.ts +38 -0
- package/src/elements/store/replica.ts +1 -4
- package/src/elements/store/runtime.ts +25 -28
- package/src/elements/store/schema-decl.test.ts +227 -0
- package/src/elements/store/schema-decl.ts +516 -0
- package/src/elements/store/sql-condition.ts +11 -21
- package/src/elements/store/sql-session.test.ts +50 -0
- package/src/elements/store/sql-session.ts +60 -63
- package/src/elements/store/table.ts +35 -19
- package/src/elements/store.test.ts +17 -39
- package/src/elements/store.ts +37 -31
- package/src/elements/vault/chain.ts +34 -0
- package/src/elements/vault/declare.ts +22 -32
- package/src/elements/vault/fingerprint.ts +2 -7
- package/src/elements/vault/redact.ts +2 -6
- package/src/elements/vault/runtime.ts +18 -32
- package/src/elements/vault.test.ts +12 -28
- package/src/elements/vault.ts +8 -12
- package/src/index.ts +5 -2
- package/src/kernel/adopt-routes.ts +15 -29
- package/src/kernel/app.ts +34 -94
- package/src/kernel/auth-resolve.ts +2 -9
- package/src/kernel/boot-bind/ai.ts +1 -4
- package/src/kernel/boot-bind/channel.ts +2 -8
- package/src/kernel/boot-bind/clock.ts +2 -6
- package/src/kernel/boot-bind/gate.ts +2 -8
- package/src/kernel/boot-bind/runs.ts +1 -3
- package/src/kernel/boot-bind/signal.ts +3 -10
- package/src/kernel/boot-bind/store.test.ts +17 -17
- package/src/kernel/boot-bind/store.ts +44 -50
- package/src/kernel/boot-bind/vault.ts +2 -8
- package/src/kernel/boot.test.ts +4 -9
- package/src/kernel/boot.ts +29 -76
- package/src/kernel/budget.test.ts +1 -3
- package/src/kernel/capability.ts +3 -10
- package/src/kernel/dry-run.test.ts +1 -4
- package/src/kernel/dry-run.ts +3 -11
- package/src/kernel/effects.test.ts +1 -5
- package/src/kernel/effects.ts +4 -11
- package/src/kernel/errors.registry.test.ts +2 -8
- package/src/kernel/errors.ts +23 -32
- package/src/kernel/flow.test.ts +12 -25
- package/src/kernel/flow.ts +5 -25
- package/src/kernel/fx.test.ts +15 -44
- package/src/kernel/fx.ts +27 -79
- package/src/kernel/hook-timing.test.ts +3 -6
- package/src/kernel/hook-timing.ts +5 -14
- package/src/kernel/hooks.test.ts +10 -10
- package/src/kernel/hooks.ts +3 -12
- package/src/kernel/index.ts +4 -17
- package/src/kernel/journal.ts +7 -31
- package/src/kernel/on.ts +1 -6
- package/src/kernel/pipeline.test.ts +10 -19
- package/src/kernel/pipeline.ts +5 -17
- package/src/kernel/plug.ts +4 -11
- package/src/kernel/plugin/conflicts.test.ts +13 -25
- package/src/kernel/plugin/decorate.test.ts +8 -13
- package/src/kernel/plugin/scoping.test.ts +4 -11
- package/src/kernel/plugin.ts +48 -24
- package/src/kernel/registry.ts +80 -29
- package/src/kernel/router.test.ts +15 -13
- package/src/kernel/router.ts +9 -29
- package/src/kernel/routing-budget.test.ts +1 -3
- package/src/kernel/run-telemetry.ts +1 -3
- package/src/kernel/triggers.ts +4 -21
- package/src/manifest/diff.test.ts +26 -91
- package/src/manifest/diff.ts +95 -225
- package/src/manifest/index.ts +2 -9
- package/src/manifest/types.ts +29 -5
- package/src/manifest/undeclared.test.ts +4 -12
- package/src/manifest/undeclared.ts +1 -2
- package/src/manifest/validate.test.ts +2 -6
- package/src/manifest/validate.ts +4 -14
- package/src/mcp/authorization.ts +8 -27
- package/src/mcp/confirmation.ts +3 -10
- package/src/mcp/data.ts +2 -6
- package/src/mcp/docs-index.ts +4 -7
- package/src/mcp/docs-mcp.test.ts +3 -12
- package/src/mcp/docs-server.ts +7 -27
- package/src/mcp/docs-tools.ts +2 -6
- package/src/mcp/index.ts +1 -6
- package/src/mcp/injection.gate.test.ts +4 -18
- package/src/mcp/mcp.test.ts +18 -49
- package/src/mcp/protocol.ts +3 -10
- package/src/mcp/server.ts +11 -52
- package/src/mcp/session.ts +4 -14
- package/src/mcp/tools.ts +14 -50
- package/src/plugins/catalogue.test.ts +3 -7
- package/src/plugins/catalogue.ts +1 -3
- package/src/plugins/node-import-scan.ts +2 -5
- package/src/plugins/supply-chain.ts +5 -17
- package/src/release/exports.ts +3 -8
- package/src/release/measure.exports.test.ts +1 -3
- package/src/release/measure.ts +15 -43
- package/src/runs/bench.test.ts +1 -3
- package/src/runs/collect.ts +8 -25
- package/src/runs/drivers/clickhouse.ts +2 -9
- package/src/runs/drivers/files.ts +9 -31
- package/src/runs/drivers/memory.ts +5 -22
- package/src/runs/drivers/postgres.ts +8 -20
- package/src/runs/duckdb.ts +2 -8
- package/src/runs/index.ts +3 -14
- package/src/runs/outlier.ts +3 -10
- package/src/runs/parquet.ts +8 -26
- package/src/runs/privacy.ts +2 -8
- package/src/runs/runs.test.ts +3 -9
- package/src/runs/runtime.ts +7 -32
- package/src/runs/shred.ts +10 -29
- package/src/runs/types.ts +1 -4
- package/src/runtime/bun.ts +4 -15
- package/src/runtime/cold-start.bench.ts +1 -3
- package/src/runtime/dev-request-log.test.ts +1 -4
- package/src/runtime/dev-request-log.ts +1 -4
- package/src/runtime/index.ts +1 -6
- package/src/runtime/primitives.ts +5 -4
- package/src/runtime/security.ts +3 -13
- package/src/runtime/serve.test.ts +4 -7
- package/src/runtime/types.ts +1 -4
- package/src/runtime/web-standard.ts +3 -15
- package/src/term.test.ts +4 -6
- package/src/term.ts +49 -98
- package/src/test/create-test-app.test.ts +4 -14
- package/src/test/create-test-app.ts +13 -31
- package/src/test/provisions.integration.test.ts +3 -11
- package/src/upgrade/codemods.test.ts +25 -6
- package/src/upgrade/codemods.ts +116 -3
- package/src/validation/standard-schema.test.ts +2 -5
- package/src/validation/standard-schema.ts +13 -33
- package/src/console/ui/dist/assets/panel-vault-BbfWdox0.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,i as t,n,r,t as i}from"./rolldown-runtime-CNC7AqOf.js";import{C as a,Q as o,Z as s,_ as c,a as l,b as u,c as d,d as f,g as p,i as m,l as h,nt as g,o as _,s as v,tt as y,u as b,v as x,w as S,x as C,y as w}from"./panel-access-Dd37LU2c.js";import{a as T,i as E,n as D,o as ee,r as O,s as te}from"./panel-architecture-B5b3iKCz.js";var k=e(g(),1),ne=C([c(),x(`true`),x(`false`)]).transform(e=>e===!0||e===`true`),re=w({sel:p([`none`,`cause`,`flow`,`effect`]).default(`none`),cause:u().optional(),flow:u().optional(),effect:u().optional(),path:u().optional(),q:u().optional(),unit:u().optional(),attention:p([`erroring`,`cron-overdue`,`dead-letter`]).nullable().optional().default(null),density:p([`compact`,`comfortable`]).default(`comfortable`),group:p([`unit`,`alpha`]).default(`unit`),causeGroup:p([`kind`,`alpha`]).default(`kind`),transitive:ne.default(!1),hideUbiquitous:ne.default(!1),drawer:p([`closed`,`peek`,`workbench`]).default(`closed`),open:u().optional(),editor:p([`form`,`json`]).default(`form`)});function ie(e){let t=re.safeParse(e??{});return t.success?t.data:re.parse({})}function ae(e){let t={};return e.sel!==`none`&&(t.sel=e.sel),e.cause&&(t.cause=e.cause),e.flow&&(t.flow=e.flow),e.effect&&(t.effect=e.effect),e.path&&(t.path=e.path),e.q&&(t.q=e.q),e.unit&&(t.unit=e.unit),e.attention&&(t.attention=e.attention),e.density!==`comfortable`&&(t.density=e.density),e.group!==`unit`&&(t.group=e.group),e.causeGroup!==`kind`&&(t.causeGroup=e.causeGroup),e.transitive&&(t.transitive=!0),e.hideUbiquitous&&(t.hideUbiquitous=!0),e.drawer!==`closed`&&(t.drawer=e.drawer),e.open&&(t.open=e.open),e.editor!==`form`&&(t.editor=e.editor),t}function oe(e){return e?e.split(`,`).map(e=>e.trim()).filter(Boolean):[]}function se(e){if(e.length!==0)return e.join(`,`)}function ce(e,t){return{...e,sel:`cause`,cause:t,flow:void 0,effect:void 0}}function le(e,t){return{...e,sel:`flow`,flow:t,cause:void 0,effect:void 0}}function ue(e,t){let n=oe(e.path),r=n[n.length-1]===t?n:[...n,t].slice(-12);return{...e,sel:`effect`,effect:t,flow:void 0,cause:void 0,path:se(r)}}function de(e,t,n=`peek`){return{...e,open:t,drawer:n,flow:t,sel:`flow`}}function fe(e){return{...e,drawer:`closed`,open:void 0}}var pe=1024,me=0,he=class{constructor(e,t){this.from=e,this.to=t}},A=class{constructor(e={}){this.id=me++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw Error(`This node type doesn't define a deserialize function`)}),this.combine=e.combine||null}add(e){if(this.perNode)throw RangeError(`Can't add per-node props to node types`);return typeof e!=`function`&&(e=ve.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};A.closedBy=new A({deserialize:e=>e.split(` `)}),A.openedBy=new A({deserialize:e=>e.split(` `)}),A.group=new A({deserialize:e=>e.split(` `)}),A.isolate=new A({deserialize:e=>{if(e&&e!=`rtl`&&e!=`ltr`&&e!=`auto`)throw RangeError(`Invalid value for isolate: `+e);return e||`auto`}}),A.contextHash=new A({perNode:!0}),A.lookAhead=new A({perNode:!0}),A.mounted=new A({perNode:!0});var ge=class{constructor(e,t,n,r=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=r}static get(e){return e&&e.props&&e.props[A.mounted.id]}},_e=Object.create(null),ve=class e{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(t){let n=t.props&&t.props.length?Object.create(null):_e,r=!!t.top|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new e(t.name||``,n,t.id,r);if(t.props){for(let e of t.props)if(Array.isArray(e)||(e=e(i)),e){if(e[0].perNode)throw RangeError(`Can't store a per-node prop on a node type`);n[e[0].id]=e[1]}}return i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e==`string`){if(this.name==e)return!0;let t=this.prop(A.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(` `))t[r]=e[n];return e=>{for(let n=e.prop(A.group),r=-1;r<(n?n.length:0);r++){let i=t[r<0?e.name:n[r]];if(i)return i}}}};ve.none=new ve(``,Object.create(null),0,8);var ye=class e{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw RangeError(`Node type ids should correspond to array positions when creating a node set`)}extend(...t){let n=[];for(let e of this.types){let r=null;for(let n of t){let t=n(e);if(t){r||=Object.assign({},e.props);let n=t[1],i=t[0];i.combine&&i.id in r&&(n=i.combine(r[i.id],n)),r[i.id]=n}}n.push(r?new ve(e.name,r,e.id,e.flags):e)}return new e(n)}},be=new WeakMap,xe=new WeakMap,j;(function(e){e[e.ExcludeBuffers=1]=`ExcludeBuffers`,e[e.IncludeAnonymous=2]=`IncludeAnonymous`,e[e.IgnoreMounts=4]=`IgnoreMounts`,e[e.IgnoreOverlays=8]=`IgnoreOverlays`,e[e.EnterBracketed=16]=`EnterBracketed`})(j||={});var M=class e{constructor(e,t,n,r,i){if(this.type=e,this.children=t,this.positions=n,this.length=r,this.props=null,i&&i.length){this.props=Object.create(null);for(let[e,t]of i)this.props[typeof e==`number`?e:e.id]=t}}toString(){let e=ge.get(this);if(e&&!e.overlay)return e.tree.toString();let t=``;for(let e of this.children){let n=e.toString();n&&(t&&(t+=`,`),t+=n)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?`(`+t+`)`:``):t}cursor(e=0){return new Fe(this.topNode,e)}cursorAt(e,t=0,n=0){let r=new Fe(be.get(this)||this.topNode);return r.moveTo(e,t),be.set(this,r._tree),r}get topNode(){return new De(this,0,0,null)}resolve(e,t=0){let n=Te(be.get(this)||this.topNode,e,t,!1);return be.set(this,n),n}resolveInner(e,t=0){let n=Te(xe.get(this)||this.topNode,e,t,!0);return xe.set(this,n),n}resolveStack(e,t=0){return Pe(this,e,t)}iterate(e){let{enter:t,leave:n,from:r=0,to:i=this.length}=e,a=e.mode||0,o=(a&j.IncludeAnonymous)>0;for(let e=this.cursor(a|j.IncludeAnonymous);;){let a=!1;if(e.from<=i&&e.to>=r&&(!o&&e.type.isAnonymous||t(e)!==!1)){if(e.firstChild())continue;a=!0}for(;a&&n&&(o||!e.type.isAnonymous)&&n(e),!e.nextSibling();){if(!e.parent())return;a=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(t={}){return this.children.length<=8?this:Be(ve.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new e(this.type,t,n,r,this.propValues),t.makeTree||((t,n,r)=>new e(ve.none,t,n,r)))}static build(e){return Le(e)}};M.empty=new M(ve.none,[],[],0);var Se=class e{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new e(this.buffer,this.index)}},Ce=class e{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return ve.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(`,`)}childString(e){let t=this.buffer[e],n=this.buffer[e+3],r=this.set.types[t],i=r.name;if(/\W/.test(i)&&!r.isError&&(i=JSON.stringify(i)),e+=4,n==e)return i;let a=[];for(;e<n;)a.push(this.childString(e)),e=this.buffer[e+3];return i+`(`+a.join(`,`)+`)`}findChild(e,t,n,r,i){let{buffer:a}=this,o=-1;for(let s=e;s!=t&&!(we(i,r,a[s+1],a[s+2])&&(o=s,n>0));s=a[s+3]);return o}slice(t,n,r){let i=this.buffer,a=new Uint16Array(n-t),o=0;for(let e=t,s=0;e<n;){a[s++]=i[e++],a[s++]=i[e++]-r;let n=a[s++]=i[e++]-r;a[s++]=i[e++]-t,o=Math.max(o,n)}return new e(a,o,this.set)}};function we(e,t,n,r){switch(e){case-2:return n<t;case-1:return r>=t&&n<t;case 0:return n<t&&r>t;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function Te(e,t,n,r){for(;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let t=!r&&e instanceof De&&e.index<0?null:e.parent;if(!t)return e;e=t}let i=r?0:j.IgnoreOverlays;if(r)for(let r=e,a=r.parent;a;r=a,a=r.parent)r instanceof De&&r.index<0&&a.enter(t,n,i)?.from!=r.from&&(e=a);for(;;){let r=e.enter(t,n,i);if(!r)return e;e=r}}var Ee=class{cursor(e=0){return new Fe(this,e)}getChild(e,t=null,n=null){let r=Oe(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return Oe(this,e,t,n)}resolve(e,t=0){return Te(this,e,t,!1)}resolveInner(e,t=0){return Te(this,e,t,!0)}matchContext(e){return ke(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let e=t.lastChild;if(!e||e.to!=t.to)break;e.type.isError&&e.from==e.to?(n=t,t=e.prevSibling):t=e}return n}get node(){return this}get next(){return this.parent}},De=class e extends Ee{constructor(e,t,n,r){super(),this._tree=e,this.from=t,this.index=n,this._parent=r}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,n,r,i,a=0){for(let o=this;;){for(let{children:s,positions:c}=o._tree,l=n>0?s.length:-1;t!=l;t+=n){let l=s[t],u=c[t]+o.from,d;if(!(!(a&j.EnterBracketed&&l instanceof M&&(d=ge.get(l))&&!d.overlay&&d.bracketed&&r>=u&&r<=u+l.length)&&!we(i,r,u,u+l.length))){if(l instanceof Ce){if(a&j.ExcludeBuffers)continue;let e=l.findChild(0,l.buffer.length,n,r-u,i);if(e>-1)return new je(new Ae(o,l,t,u),null,e)}else if(a&j.IncludeAnonymous||!l.type.isAnonymous||Ie(l)){let s;if(!(a&j.IgnoreMounts)&&(s=ge.get(l))&&!s.overlay)return new e(s.tree,u,t,o);let c=new e(l,u,t,o);return a&j.IncludeAnonymous||!c.type.isAnonymous?c:c.nextChild(n<0?l.children.length-1:0,n,r,i,a)}}}if(a&j.IncludeAnonymous||!o.type.isAnonymous||(t=o.index>=0?o.index+n:n<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(t,n,r=0){let i;if(!(r&j.IgnoreOverlays)&&(i=ge.get(this._tree))&&i.overlay){let a=t-this.from,o=r&j.EnterBracketed&&i.bracketed;for(let{from:t,to:r}of i.overlay)if((n>0||o?t<=a:t<a)&&(n<0||o?r>=a:r>a))return new e(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,n,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function Oe(e,t,n,r){let i=e.cursor(),a=[];if(!i.firstChild())return a;if(n!=null){for(let e=!1;!e;)if(e=i.type.is(n),!i.nextSibling())return a}for(;;){if(r!=null&&i.type.is(r))return a;if(i.type.is(t)&&a.push(i.node),!i.nextSibling())return r==null?a:[]}}function ke(e,t,n=t.length-1){for(let r=e;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}var Ae=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},je=class e extends Ee{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(t,n,r){let{buffer:i}=this.context,a=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.context.start,r);return a<0?null:new e(this.context,this,a)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(t,n,r=0){if(r&j.ExcludeBuffers)return null;let{buffer:i}=this.context,a=i.findChild(this.index+4,i.buffer[this.index+3],n>0?1:-1,t-this.context.start,n);return a<0?null:new e(this.context,this,a)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:t}=this.context,n=t.buffer[this.index+3];return n<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new e(this.context,this._parent,t.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,i=n.buffer[this.index+3];if(i>r){let a=n.buffer[this.index+1];e.push(n.slice(r,i,a)),t.push(0)}return new M(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Me(e){if(!e.length)return null;let t=0,n=e[0];for(let r=1;r<e.length;r++){let i=e[r];(i.from>n.from||i.to<n.to)&&(n=i,t=r)}let r=n instanceof De&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Ne(i,n)}var Ne=class{constructor(e,t){this.heads=e,this.node=t}get next(){return Me(this.heads)}};function Pe(e,t,n){let r=e.resolveInner(t,n),i=null;for(let e=r instanceof De?r:r.context.parent;e;e=e.parent)if(e.index<0){let a=e.parent;(i||=[r]).push(a.resolve(t,n)),e=a}else{let a=ge.get(e.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let o=new De(a.tree,a.overlay[0].from+e.from,-1,e);(i||=[r]).push(Te(o,t,n,!1))}}return i?Me(i):r}var Fe=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~j.EnterBracketed,e instanceof De)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let t=e._parent;t;t=t._parent)this.stack.unshift(t.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof De?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,i=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return i<0?!1:(this.stack.push(this.index),this.yieldBuf(i))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&j.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&j.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&j.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let e=n<0?0:this.stack[n]+4;if(this.index!=e)return this.yieldBuf(t.findChild(e,this.index,-1,0,4))}else{let e=t.buffer[this.index+3];if(e<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(e)}return n<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index<r.buffer.buffer.length)return!1}else for(let e=0;e<this.index;e++)if(r.buffer.buffer[e+3]<this.index)return!1;({index:t,parent:n}=r)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let r=t+e,i=e<0?-1:n._tree.children.length;r!=i;r+=e){let e=n._tree.children[r];if(this.mode&j.IncludeAnonymous||e instanceof Ce||!e.type.isAnonymous||Ie(e))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)scan:for(let r=this.index,i=this.stack.length;i>=0;){for(let a=e;a;a=a._parent)if(a.index==r){if(r==this.index)return a;t=a,n=i+1;break scan}r=this.stack[--i]}for(let e=n;e<this.stack.length;e++)t=new je(this.buffer,t,this.stack[e]);return this.bufferNode=new je(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let r=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(r=!0)}for(;;){if(r&&t&&t(this),r=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,r=!0}}}matchContext(e){if(!this.buffer)return ke(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let r=e.length-1,i=this.stack.length-1;r>=0;i--){if(i<0)return ke(this._tree,e,r);let a=n[t.buffer[this.stack[i]]];if(!a.isAnonymous){if(e[r]&&e[r]!=a.name)return!1;r--}}return!0}};function Ie(e){return e.children.some(e=>e instanceof Ce||!e.type.isAnonymous||Ie(e))}function Le(e){let{buffer:t,nodeSet:n,maxBufferLength:r=pe,reused:i=[],minRepeatType:a=n.types.length}=e,o=Array.isArray(t)?new Se(t,t.length):t,s=n.types,c=0,l=0;function u(e,t,_,v,y,b){let{id:x,start:S,end:C,size:w}=o,T=l,E=c;if(w<0)if(o.next(),w==-1){let t=i[x];_.push(t),v.push(S-e);return}else if(w==-3){c=x;return}else if(w==-4){l=x;return}else throw RangeError(`Unrecognized record size: ${w}`);let D=s[x],ee,O,te=S-e;if(C-S<=r&&(O=h(o.pos-t,y))){let t=new Uint16Array(O.size-O.skip),r=o.pos-O.size,i=t.length;for(;o.pos>r;)i=g(O.start,t,i);ee=new Ce(t,C-O.start,n),te=O.start-e}else{let e=o.pos-w;o.next();let t=[],n=[],i=x>=a?x:-1,s=0,c=C;for(;o.pos>e;)i>=0&&o.id==i&&o.size>=0?(o.end<=c-r&&(p(t,n,S,s,o.end,c,i,T,E),s=t.length,c=o.end),o.next()):b>2500?d(S,e,t,n):u(S,e,t,n,i,b+1);if(i>=0&&s>0&&s<t.length&&p(t,n,S,s,S,c,i,T,E),t.reverse(),n.reverse(),i>-1&&s>0){let e=f(D,E);ee=Be(D,t,n,0,t.length,0,C-S,e,e)}else ee=m(D,t,n,C-S,T-C,E)}_.push(ee),v.push(te)}function d(e,t,i,a){let s=[],c=0,l=-1;for(;o.pos>t;){let{id:e,start:t,end:n,size:i}=o;if(i>4)o.next();else if(l>-1&&t<l)break;else l<0&&(l=n-r),s.push(e,t,n),c++,o.next()}if(c){let t=new Uint16Array(c*4),r=s[s.length-2];for(let e=s.length-3,n=0;e>=0;e-=3)t[n++]=s[e],t[n++]=s[e+1]-r,t[n++]=s[e+2]-r,t[n++]=n;i.push(new Ce(t,s[2]-r,n)),a.push(r-e)}}function f(e,t){return(n,r,i)=>{let a=0,o=n.length-1,s,c;if(o>=0&&(s=n[o])instanceof M){if(!o&&s.type==e&&s.length==i)return s;(c=s.prop(A.lookAhead))&&(a=r[o]+s.length+c)}return m(e,n,r,i,a,t)}}function p(e,t,r,i,a,o,s,c,l){let u=[],d=[];for(;e.length>i;)u.push(e.pop()),d.push(t.pop()+r-a);e.push(m(n.types[s],u,d,o-a,c-o,l)),t.push(a-r)}function m(e,t,n,r,i,a,o){if(a){let e=[A.contextHash,a];o=o?[e].concat(o):[e]}if(i>25){let e=[A.lookAhead,i];o=o?[e].concat(o):[e]}return new M(e,t,n,r,o)}function h(e,t){let n=o.fork(),i=0,s=0,c=0,l=n.end-r,u={size:0,start:0,skip:0};scan:for(let r=n.pos-e;n.pos>r;){let e=n.size;if(n.id==t&&e>=0){u.size=i,u.start=s,u.skip=c,c+=4,i+=4,n.next();continue}let o=n.pos-e;if(e<0||o<r||n.start<l)break;let d=n.id>=a?4:0,f=n.start;for(n.next();n.pos>o;){if(n.size<0)if(n.size==-3||n.size==-4)d+=4;else break scan;else n.id>=a&&(d+=4);n.next()}s=f,i+=e,c+=d}return(t<0||i==e)&&(u.size=i,u.start=s,u.skip=c),u.size>4?u:void 0}function g(e,t,n){let{id:r,start:i,end:s,size:u}=o;if(o.next(),u>=0&&r<a){let a=n;if(u>4){let r=o.pos-(u-4);for(;o.pos>r;)n=g(e,t,n)}t[--n]=a,t[--n]=s-e,t[--n]=i-e,t[--n]=r}else u==-3?c=r:u==-4&&(l=r);return n}let _=[],v=[];for(;o.pos>0;)u(e.start||0,e.bufferStart||0,_,v,-1,0);let y=e.length??(_.length?v[0]+_[0].length:0);return new M(s[e.topID],_.reverse(),v.reverse(),y)}var Re=new WeakMap;function ze(e,t){if(!e.isAnonymous||t instanceof Ce||t.type!=e)return 1;let n=Re.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof M)){n=1;break}n+=ze(e,r)}Re.set(t,n)}return n}function Be(e,t,n,r,i,a,o,s,c){let l=0;for(let n=r;n<i;n++)l+=ze(e,t[n]);let u=Math.ceil(l*1.5/8),d=[],f=[];function p(t,n,r,i,o){for(let s=r;s<i;){let r=s,l=n[s],m=ze(e,t[s]);for(s++;s<i;s++){let n=ze(e,t[s]);if(m+n>=u)break;m+=n}if(s==r+1){if(m>u){let e=t[r];p(e.children,e.positions,0,e.children.length,n[r]+o);continue}d.push(t[r])}else{let i=n[s-1]+t[s-1].length-l;d.push(Be(e,t,n,r,s,l,i,null,c))}f.push(l+o-a)}}return p(t,n,r,i,0),(s||c)(d,f,o)}var Ve=class e{constructor(e,t,n,r,i=!1,a=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=!!i|(a?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(t,n=[],r=!1){let i=[new e(0,t.length,t,0,!1,r)];for(let e of n)e.to>t.length&&i.push(e);return i}static applyChanges(t,n,r=128){if(!n.length)return t;let i=[],a=1,o=t.length?t[0]:null;for(let s=0,c=0,l=0;;s++){let u=s<n.length?n[s]:null,d=u?u.fromA:1e9;if(d-c>=r)for(;o&&o.from<d;){let n=o;if(c>=n.from||d<=n.to||l){let t=Math.max(n.from,c)-l,r=Math.min(n.to,d)-l;n=t>=r?null:new e(t,r,n.tree,n.offset+l,s>0,!!u)}if(n&&i.push(n),o.to>d)break;o=a<t.length?t[a++]:null}if(!u)break;c=u.toA,l=u.toA-u.toB}return i}},He=class{startParse(e,t,n){return typeof e==`string`&&(e=new Ue(e)),n=n?n.length?n.map(e=>new he(e.from,e.to)):[new he(0,0)]:[new he(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let e=r.advance();if(e)return e}}},Ue=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};new A({perNode:!0});var We=class e{constructor(e,t,n,r,i,a,o,s,c,l=0,u){this.p=e,this.stack=t,this.state=n,this.reducePos=r,this.pos=i,this.score=a,this.buffer=o,this.bufferBase=s,this.curContext=c,this.lookAhead=l,this.parent=u}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?`!`+this.score:``}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new Ge(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let t=e>>19,n=e&65535,{parser:r}=this.p,i=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),a=r.dynamicPrecedence(n);if(a&&(this.score+=a),t==0){n<r.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(r.getGoto(this.state,n,!0),this.reducePos),n<r.minRepeatTerm&&this.storeNode(n,this.reducePos,this.reducePos,i?8:4,!0),this.reduceContext(n,this.reducePos);return}let o=this.stack.length-(t-1)*3-(e&262144?6:0),s=o?this.stack[o-2]:this.p.ranges[0].from;n<r.minRepeatTerm&&s==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let c=this.reducePos-s;c>=2e3&&!this.p.parser.nodeSet.types[n]?.isAnonymous&&(s==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSize<c&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=s,this.p.lastBigReductionSize=c));let l=o?this.stack[o-1]:0,u=this.bufferBase+this.buffer.length-l;if(n<r.minRepeatTerm||e&131072){let e=r.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(n,s,e,u+4,!0)}if(e&262144)this.state=this.stack[o];else{let e=this.stack[o-3];this.state=r.getGoto(e,n,!0)}for(;this.stack.length>o;)this.stack.pop();this.reduceContext(n,s)}storeNode(e,t,n,r=4,i=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let e=this.buffer.length;if(e>0&&this.buffer[e-4]==0&&this.buffer[e-1]>-1){if(t==n)return;if(this.buffer[e-2]>=t){this.buffer[e-2]=n;return}}}if(!i||this.pos==n)this.buffer.push(e,t,n,r);else{let i=this.buffer.length;if(i>0&&(this.buffer[i-4]!=0||this.buffer[i-1]<0)){let e=!1;for(let t=i;t>0&&this.buffer[t-2]>n;t-=4)if(this.buffer[t-1]>=0){e=!0;break}if(e)for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4)}this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=r}}shift(e,t,n,r){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,r,4);else{let i=e,{parser:a}=this.p;this.pos=r;let o=a.stateFlag(i,1);!o&&(r>n||t<=a.maxNode)&&(this.reducePos=r),this.pushState(i,o?n:Math.min(n,this.reducePos)),this.shiftContext(t,n),t<=a.maxNode&&this.buffer.push(t,n,r,4)}}apply(e,t,n,r){e&65536?this.reduce(e):this.shift(e,t,n,r)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let t=this,n=t.buffer.length;for(n&&t.buffer[n-4]==0&&(n-=4);n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Ke(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let n=[];for(let r=0,i;r<t.length;r+=2)(i=t[r+1])!=this.state&&this.p.parser.hasAction(i,e)&&n.push(t[r],i);if(this.stack.length<120)for(let e=0;n.length<8&&e<t.length;e+=2){let r=t[e+1];n.some((e,t)=>t&1&&e==r)||n.push(t[e],r)}t=n}let n=[];for(let e=0;e<t.length&&n.length<4;e+=2){let r=t[e+1];if(r==this.state)continue;let i=this.split();i.pushState(r,this.pos),i.storeNode(0,i.pos,i.pos,4,!0),i.shiftContext(t[e],this.pos),i.reducePos=this.pos,i.score-=200,n.push(i)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,r=t&65535,i=this.stack.length-n*3;if(i<0||e.getGoto(this.stack[i],r,!1)<0){let e=this.findForcedReduction();if(e==null)return!1;t=e}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,i)=>{if(!t.includes(r))return t.push(r),e.allActions(r,t=>{if(!(t&393216))if(t&65536){let n=(t>>19)-i;if(n>1){let r=t&65535,i=this.stack.length-n*3;if(i>=0&&e.getGoto(this.stack[i],r,!1)>=0)return n<<19|65536|r}}else{let e=n(t,i+1);if(e!=null)return e}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Ge(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){return e<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=e,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Ge=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Ke=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},qe=class e{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}};function Je(e,t=Uint16Array){if(typeof e!=`string`)return e;let n=null;for(let r=0,i=0;r<e.length;){let a=0;for(;;){let t=e.charCodeAt(r++),n=!1;if(t==126){a=65535;break}t>=92&&t--,t>=34&&t--;let i=t-32;if(i>=46&&(i-=46,n=!0),a+=i,n)break;a*=46}n?n[i++]=a:n=new t(a)}return n}var Ye=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Xe=new Ye,Ze=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk=``,this.chunkOff=0,this.chunk2=``,this.chunk2Pos=0,this.next=-1,this.token=Xe,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,i=this.pos+e;for(;i<n.from;){if(!r)return null;let e=this.ranges[--r];i-=n.from-e.to,n=e}for(;t<0?i>n.to:i>=n.to;){if(r==this.ranges.length-1)return null;let e=this.ranges[++r];i+=e.from-n.to,n=e}return i}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t<this.chunk.length)n=this.pos+e,r=this.chunk.charCodeAt(t);else{let t=this.resolveOffset(e,1);if(t==null)return-1;if(n=t,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)r=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let e=this.rangeIndex,t=this.range;for(;t.to<=n;)t=this.ranges[++e];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>t.to&&(this.chunk2=this.chunk2.slice(0,t.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw RangeError(`Token end out of bounds`);this.token.value=e,this.token.end=n}acceptTokenTo(e,t){this.token.value=e,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk=``,this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Xe,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk=``,this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n=``;for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},Qe=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;et(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};Qe.prototype.contextual=Qe.prototype.fallback=Qe.prototype.extend=!1;var $e=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e==`string`?Je(e):e}token(e,t){let n=e.pos,r=0;for(;;){let n=e.next<0,i=e.resolveOffset(1,1);if(et(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(n||r++,i==null)break;e.reset(i,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}};$e.prototype.contextual=Qe.prototype.fallback=Qe.prototype.extend=!1;function et(e,t,n,r,i,a){let o=0,s=1<<r,{dialect:c}=n.p.parser;scan:for(;(s&e[o])!=0;){let n=e[o+1];for(let r=o+3;r<n;r+=2)if((e[r+1]&s)>0){let n=e[r];if(c.allows(n)&&(t.token.value==-1||t.token.value==n||nt(n,t.token.value,i,a))){t.acceptToken(n);break}}let r=t.next,l=0,u=e[o+2];if(t.next<0&&u>l&&e[n+u*3-3]==65535){o=e[n+u*3-1];continue scan}for(;l<u;){let i=l+u>>1,a=n+i+(i<<1),s=e[a],c=e[a+1]||65536;if(r<s)u=i;else if(r>=c)l=i+1;else{o=e[a+2],t.advance();continue scan}}break}}function tt(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function nt(e,t,n,r){let i=tt(n,r,t);return i<0||tt(n,r,e)<i}var rt=typeof process<`u`&&/\bparse\b/.test({}.LOG),it=null;function at(e,t,n){let r=e.cursor(j.IncludeAnonymous);for(r.moveTo(t);;)if(!(n<0?r.childBefore(t):r.childAfter(t)))for(;;){if((n<0?r.to<t:r.from>t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}var ot=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?at(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?at(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],r=this.index[t];if(r==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let i=n.children[r],a=this.start[t]+n.positions[r];if(a>e)return this.nextStart=a,null;if(i instanceof M){if(a==e){if(a<this.safeFrom)return null;let e=a+i.length;if(e<=this.safeTo){let t=i.prop(A.lookAhead);if(!t||e+t<this.fragment.to)return i}}this.index[t]++,a+i.length>=Math.max(this.safeFrom,e)&&(this.trees.push(i),this.start.push(a),this.index.push(0))}else this.index[t]++,this.nextStart=a+i.length}}},st=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(e=>new Ye)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:i}=r,a=r.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,s=0;for(let r=0;r<i.length;r++){if(!(1<<r&a))continue;let c=i[r],l=this.tokens[r];if(!(n&&!c.fallback)&&((c.contextual||l.start!=e.pos||l.mask!=a||l.context!=o)&&(this.updateCachedToken(l,c,e),l.mask=a,l.context=o),l.lookAhead>l.end+25&&(s=Math.max(l.lookAhead,s)),l.value!=0)){let r=t;if(l.extended>-1&&(t=this.addActions(e,l.extended,l.end,t)),t=this.addActions(e,l.value,l.end,t),!c.extend&&(n=l,t>r))break}}for(;this.actions.length>t;)this.actions.pop();return s&&e.setLookAhead(s),!n&&e.pos==this.stream.end&&(n=new Ye,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Ye,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:t}=n.p;for(let r=0;r<t.specialized.length;r++)if(t.specialized[r]==e.value){let i=t.specializers[r](this.stream.read(e.start,e.end),n);if(i>=0&&n.p.parser.dialect.allows(i>>1)){i&1?e.extended=i>>1:e.value=i>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let t=0;t<r;t+=3)if(this.actions[t]==e)return r;return this.actions[r++]=e,this.actions[r++]=t,this.actions[r++]=n,r}addActions(e,t,n,r){let{state:i}=e,{parser:a}=e.p,{data:o}=a;for(let e=0;e<2;e++)for(let s=a.stateSlot(i,e?2:1);;s+=3){if(o[s]==65535)if(o[s+1]==1)s=ft(o,s+2);else{r==0&&o[s+1]==2&&(r=this.putAction(ft(o,s+2),t,n,r));break}o[s]==t&&(r=this.putAction(ft(o,s+1),t,n,r))}return r}},ct=class{constructor(e,t,n,r){this.parser=e,this.input=t,this.ranges=r,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Ze(t,r),this.tokens=new st(e,this.stream),this.topTerm=e.top[1];let{from:i}=r[0];this.stacks=[We.start(this,e.top[0],i)],this.fragments=n.length&&this.stream.end-i>e.bufferLength*4?new ot(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,i;if(this.bigReductionCount>300&&e.length==1){let[t]=e;for(;t.forceReduce()&&t.stack.length&&t.stack[t.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<e.length;a++){let o=e[a];for(;;){if(this.tokens.mainToken=null,o.pos>t)n.push(o);else if(this.advanceStack(o,n,e))continue;else{r||(r=[],i=[]),r.push(o);let e=this.tokens.getMainToken(o);i.push(e.value,e.end)}break}}if(!n.length){let e=r&&pt(r);if(e)return rt&&console.log(`Finish with `+this.stackID(e)),this.stackToTree(e);if(this.parser.strict)throw rt&&r&&console.log(`Stuck with token `+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):`none`)),SyntaxError(`No parse at `+t);this.recovering||=5}if(this.recovering&&r){let e=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,i,n);if(e)return rt&&console.log(`Force-finish `+this.stackID(e)),this.stackToTree(e.forceAll())}if(this.recovering){let e=this.recovering==1?1:this.recovering*3;if(n.length>e)for(n.sort((e,t)=>t.score-e.score);n.length>e;)n.pop();n.some(e=>e.reducePos>t)&&this.recovering--}else if(n.length>1){outer:for(let e=0;e<n.length-1;e++){let t=n[e];for(let r=e+1;r<n.length;r++){let i=n[r];if(t.sameState(i)||t.buffer.length>500&&i.buffer.length>500)if((t.score-i.score||t.buffer.length-i.buffer.length)>0)n.splice(r--,1);else{n.splice(e--,1);continue outer}}}n.length>12&&(n.sort((e,t)=>t.score-e.score),n.splice(12,n.length-12))}this.minStackPos=n[0].pos;for(let e=1;e<n.length;e++)n[e].pos<this.minStackPos&&(this.minStackPos=n[e].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw RangeError(`Can't move stoppedAt forward`);this.stoppedAt=e}advanceStack(e,t,n){let r=e.pos,{parser:i}=this,a=rt?this.stackID(e)+` -> `:``;if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let t=e.curContext&&e.curContext.tracker.strict,n=t?e.curContext.hash:0;for(let o=this.fragments.nodeAt(r);o;){let r=this.parser.nodeSet.types[o.type.id]==o.type?i.getGoto(e.state,o.type.id):-1;if(r>-1&&o.length&&(!t||(o.prop(A.contextHash)||0)==n))return e.useNode(o,r),rt&&console.log(a+this.stackID(e)+` (via reuse of ${i.getName(o.type.id)})`),!0;if(!(o instanceof M)||o.children.length==0||o.positions[0]>0)break;let s=o.children[0];if(s instanceof M&&o.positions[0]==0)o=s;else break}}let o=i.stateSlot(e.state,4);if(o>0)return e.reduce(o),rt&&console.log(a+this.stackID(e)+` (via always-reduce ${i.getName(o&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let s=this.tokens.getActions(e);for(let o=0;o<s.length;){let c=s[o++],l=s[o++],u=s[o++],d=o==s.length||!n,f=d?e:e.split(),p=this.tokens.mainToken;if(f.apply(c,l,p?p.start:f.pos,u),rt&&console.log(a+this.stackID(f)+` (via ${c&65536?`reduce of ${i.getName(c&65535)}`:`shift`} for ${i.getName(l)} @ ${r}${f==e?``:`, split`})`),d)return!0;f.pos>r?t.push(f):n.push(f)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return lt(e,t),!0}}runRecovery(e,t,n){let r=null,i=!1;for(let a=0;a<e.length;a++){let o=e[a],s=t[a<<1],c=t[(a<<1)+1],l=rt?this.stackID(o)+` -> `:``;if(o.deadEnd&&(i||(i=!0,o.restart(),rt&&console.log(l+this.stackID(o)+` (restarted)`),this.advanceFully(o,n))))continue;let u=o.split(),d=l;for(let e=0;e<10&&u.forceReduce()&&(rt&&console.log(d+this.stackID(u)+` (via force-reduce)`),!this.advanceFully(u,n));e++)rt&&(d=this.stackID(u)+` -> `);for(let e of o.recoverByInsert(s))rt&&console.log(l+this.stackID(e)+` (via recover-insert)`),this.advanceFully(e,n);this.stream.end>o.pos?(c==o.pos&&(c++,s=0),o.recoverByDelete(s,c),rt&&console.log(l+this.stackID(o)+` (via recover-delete ${this.parser.getName(s)})`),lt(o,n)):(!r||r.score<u.score)&&(r=u)}return r}stackToTree(e){return e.close(),M.build({buffer:qe.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(it||=new WeakMap).get(e);return t||it.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function lt(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(r.pos==e.pos&&r.sameState(e)){t[n].score<e.score&&(t[n]=e);return}}t.push(e)}var ut=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}},dt=class e extends He{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(` `);this.minRepeatTerm=t.length;for(let n=0;n<e.repeatNodeCount;n++)t.push(``);let n=Object.keys(e.topRules).map(t=>e.topRules[t][1]),r=[];for(let e=0;e<t.length;e++)r.push([]);function i(e,t,n){r[e].push([t,t.deserialize(String(n))])}if(e.nodeProps)for(let t of e.nodeProps){let e=t[0];typeof e==`string`&&(e=A[e]);for(let n=1;n<t.length;){let r=t[n++];if(r>=0)i(r,e,t[n++]);else{let a=t[n+-r];for(let o=-r;o>0;o--)i(t[n++],e,a);n++}}}this.nodeSet=new ye(t.map((t,i)=>ve.define({name:i>=this.minRepeatTerm?void 0:t,id:i,props:r[i],top:n.indexOf(i)>-1,error:i==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(i)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=pe;let a=Je(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let e=0;e<this.specializerSpecs.length;e++)this.specialized[e]=this.specializerSpecs[e].term;this.specializers=this.specializerSpecs.map(mt),this.states=Je(e.states,Uint32Array),this.data=Je(e.stateData),this.goto=Je(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(e=>typeof e==`number`?new Qe(a,e):e),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new ct(this,e,t,n);for(let i of this.wrappers)r=i(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let i=r[t+1];;){let t=r[i++],a=t&1,o=r[i++];if(a&&n)return o;for(let n=i+(t>>1);i<n;i++)if(r[i]==e)return o;if(a)return-1}}hasAction(e,t){let n=this.data;for(let r=0;r<2;r++)for(let i=this.stateSlot(e,r?2:1),a;;i+=3){if((a=n[i])==65535)if(n[i+1]==1)a=n[i=ft(n,i+2)];else if(n[i+1]==2)return ft(n,i+2);else break;if(a==t||a==0)return ft(n,i+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,e=>e==t||null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let n=this.stateSlot(e,1);r==null;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=ft(this.data,n+2);else break;r=t(ft(this.data,n+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=ft(this.data,n+2);else break;if(!(this.data[n+2]&1)){let e=this.data[n+1];t.some((t,n)=>n&1&&t==e)||t.push(this.data[n],e)}}return t}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let e=this.topRules[t.top];if(!e)throw RangeError(`Invalid top rule name ${t.top}`);n.top=e}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(e=>{let n=t.tokenizers.find(t=>t.from==e);return n?n.to:e})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((e,r)=>{let i=t.specializers.find(t=>t.from==e.external);if(!i)return e;let a=Object.assign(Object.assign({},e),{external:i.to});return n.specializers[r]=mt(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let r of e.split(` `)){let e=t.indexOf(r);e>=0&&(n[e]=!0)}let r=null;for(let e=0;e<t.length;e++)if(!n[e])for(let n=this.dialects[t[e]],i;(i=this.data[n++])!=65535;)(r||=new Uint8Array(this.maxTerm+1))[i]=1;return new ut(e,n,r)}static deserialize(t){return new e(t)}};function ft(e,t){return e[t]|e[t+1]<<16}function pt(e){let t=null;for(let n of e){let e=n.p.stoppedAt;(n.pos==n.p.stream.end||e!=null&&n.pos>e)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.score<n.score)&&(t=n)}return t}function mt(e){if(e.external){let t=+!!e.extend;return(n,r)=>e.external(n,r)<<1|t}return e.get}var ht=0,gt=class e{constructor(e,t,n,r){this.name=e,this.set=t,this.base=n,this.modified=r,this.id=ht++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(t,n){let r=typeof t==`string`?t:`?`;if(t instanceof e&&(n=t),n?.base)throw Error(`Can not derive from a modified tag`);let i=new e(r,[],null,[]);if(i.set.push(i),n)for(let e of n.set)i.set.push(e);return i}static defineModifier(e){let t=new vt(e);return e=>e.modified.indexOf(t)>-1?e:vt.get(e.base||e,e.modified.concat(t).sort((e,t)=>e.id-t.id))}},_t=0,vt=class e{constructor(e){this.name=e,this.instances=[],this.id=_t++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(e=>e.base==t&&yt(n,e.modified));if(r)return r;let i=[],a=new gt(t.name,i,t,n);for(let e of n)e.instances.push(a);let o=bt(n);for(let n of t.set)if(!n.modified.length)for(let t of o)i.push(e.get(n,t));return a}};function yt(e,t){return e.length==t.length&&e.every((e,n)=>e==t[n])}function bt(e){let t=[[]];for(let n=0;n<e.length;n++)for(let r=0,i=t.length;r<i;r++)t.push(t[r].concat(e[n]));return t.sort((e,t)=>t.length-e.length)}function xt(e){let t=Object.create(null);for(let n in e){let r=e[n];Array.isArray(r)||(r=[r]);for(let e of n.split(` `))if(e){let n=[],i=2,a=e;for(let t=0;;){if(a==`...`&&t>0&&t+3==e.length){i=1;break}let r=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!r)throw RangeError(`Invalid path: `+e);if(n.push(r[0]==`*`?``:r[0][0]==`"`?JSON.parse(r[0]):r[0]),t+=r[0].length,t==e.length)break;let o=e[t++];if(t==e.length&&o==`!`){i=0;break}if(o!=`/`)throw RangeError(`Invalid path: `+e);a=e.slice(t)}let o=n.length-1,s=n[o];if(!s)throw RangeError(`Invalid path: `+e);t[s]=new Ct(r,i,o>0?n.slice(0,o):null).sort(t[s])}}return St.add(t)}var St=new A({combine(e,t){let n,r,i;for(;e||t;){if(!e||t&&e.depth>=t.depth?(i=t,t=t.next):(i=e,e=e.next),n&&n.mode==i.mode&&!i.context&&!n.context)continue;let a=new Ct(i.tags,i.mode,i.context);n?n.next=a:r=a,n=a}return r}}),Ct=class{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}};Ct.empty=new Ct([],2,null);function wt(e,t){let n=Object.create(null);for(let t of e)if(!Array.isArray(t.tag))n[t.tag.id]=t.class;else for(let e of t.tag)n[e.id]=t.class;let{scope:r,all:i=null}=t||{};return{style:e=>{let t=i;for(let r of e)for(let e of r.set){let r=n[e.id];if(r){t=t?t+` `+r:r;break}}return t},scope:r}}function Tt(e,t){let n=null;for(let r of e){let e=r.style(t);e&&(n=n?n+` `+e:e)}return n}function Et(e,t,n,r=0,i=e.length){let a=new Dt(r,Array.isArray(t)?t:[t],n);a.highlightRange(e.cursor(),r,i,``,a.highlighters),a.flush(i)}var Dt=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=``}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,i){let{type:a,from:o,to:s}=e;if(o>=n||s<=t)return;a.isTop&&(i=this.highlighters.filter(e=>!e.scope||e.scope(a)));let c=r,l=Ot(e)||Ct.empty,u=Tt(i,l.tags);if(u&&(c&&(c+=` `),c+=u,l.mode==1&&(r+=(r?` `:``)+u)),this.startSpan(Math.max(t,o),c),l.opaque)return;let d=e.tree&&e.tree.prop(A.mounted);if(d&&d.overlay){let a=e.node.enter(d.overlay[0].from+o,1),l=this.highlighters.filter(e=>!e.scope||e.scope(d.tree.type)),u=e.firstChild();for(let f=0,p=o;;f++){let m=f<d.overlay.length?d.overlay[f]:null,h=m?m.from+o:s,g=Math.max(t,p),_=Math.min(n,h);if(g<_&&u)for(;e.from<_&&(this.highlightRange(e,g,_,r,i),this.startSpan(Math.min(_,e.to),c),!(e.to>=h||!e.nextSibling())););if(!m||h>n)break;p=m.to+o,p>t&&(this.highlightRange(a.cursor(),Math.max(t,m.from+o),Math.min(n,p),``,l),this.startSpan(Math.min(n,p),c))}u&&e.parent()}else if(e.firstChild()){d&&(r=``);do{if(e.to<=t)continue;if(e.from>=n)break;this.highlightRange(e,t,n,r,i),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}};function Ot(e){let t=e.type.prop(St);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}var N=gt.define,kt=N(),At=N(),jt=N(At),Mt=N(At),Nt=N(),Pt=N(Nt),Ft=N(Nt),It=N(),Lt=N(It),Rt=N(),zt=N(),Bt=N(),Vt=N(Bt),Ht=N(),P={comment:kt,lineComment:N(kt),blockComment:N(kt),docComment:N(kt),name:At,variableName:N(At),typeName:jt,tagName:N(jt),propertyName:Mt,attributeName:N(Mt),className:N(At),labelName:N(At),namespace:N(At),macroName:N(At),literal:Nt,string:Pt,docString:N(Pt),character:N(Pt),attributeValue:N(Pt),number:Ft,integer:N(Ft),float:N(Ft),bool:N(Nt),regexp:N(Nt),escape:N(Nt),color:N(Nt),url:N(Nt),keyword:Rt,self:N(Rt),null:N(Rt),atom:N(Rt),unit:N(Rt),modifier:N(Rt),operatorKeyword:N(Rt),controlKeyword:N(Rt),definitionKeyword:N(Rt),moduleKeyword:N(Rt),operator:zt,derefOperator:N(zt),arithmeticOperator:N(zt),logicOperator:N(zt),bitwiseOperator:N(zt),compareOperator:N(zt),updateOperator:N(zt),definitionOperator:N(zt),typeOperator:N(zt),controlOperator:N(zt),punctuation:Bt,separator:N(Bt),bracket:Vt,angleBracket:N(Vt),squareBracket:N(Vt),paren:N(Vt),brace:N(Vt),content:It,heading:Lt,heading1:N(Lt),heading2:N(Lt),heading3:N(Lt),heading4:N(Lt),heading5:N(Lt),heading6:N(Lt),contentSeparator:N(It),list:N(It),quote:N(It),emphasis:N(It),strong:N(It),link:N(It),monospace:N(It),strikethrough:N(It),inserted:N(),deleted:N(),changed:N(),invalid:N(),meta:Ht,documentMeta:N(Ht),annotation:N(Ht),processingInstruction:N(Ht),definition:gt.defineModifier(`definition`),constant:gt.defineModifier(`constant`),function:gt.defineModifier(`function`),standard:gt.defineModifier(`standard`),local:gt.defineModifier(`local`),special:gt.defineModifier(`special`)};for(let e in P){let t=P[e];t instanceof gt&&(t.name=e)}wt([{tag:P.link,class:`tok-link`},{tag:P.heading,class:`tok-heading`},{tag:P.emphasis,class:`tok-emphasis`},{tag:P.strong,class:`tok-strong`},{tag:P.keyword,class:`tok-keyword`},{tag:P.atom,class:`tok-atom`},{tag:P.bool,class:`tok-bool`},{tag:P.url,class:`tok-url`},{tag:P.labelName,class:`tok-labelName`},{tag:P.inserted,class:`tok-inserted`},{tag:P.deleted,class:`tok-deleted`},{tag:P.literal,class:`tok-literal`},{tag:P.string,class:`tok-string`},{tag:P.number,class:`tok-number`},{tag:[P.regexp,P.escape,P.special(P.string)],class:`tok-string2`},{tag:P.variableName,class:`tok-variableName`},{tag:P.local(P.variableName),class:`tok-variableName tok-local`},{tag:P.definition(P.variableName),class:`tok-variableName tok-definition`},{tag:P.special(P.variableName),class:`tok-variableName2`},{tag:P.definition(P.propertyName),class:`tok-propertyName tok-definition`},{tag:P.typeName,class:`tok-typeName`},{tag:P.namespace,class:`tok-namespace`},{tag:P.className,class:`tok-className`},{tag:P.macroName,class:`tok-macroName`},{tag:P.propertyName,class:`tok-propertyName`},{tag:P.operator,class:`tok-operator`},{tag:P.comment,class:`tok-comment`},{tag:P.meta,class:`tok-meta`},{tag:P.invalid,class:`tok-invalid`},{tag:P.punctuation,class:`tok-punctuation`}]);var Ut=xt({String:P.string,Number:P.number,"True False":P.bool,PropertyName:P.propertyName,Null:P.null,", :":P.separator,"[ ]":P.squareBracket,"{ }":P.brace}),Wt=dt.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:`#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O`,goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:`⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array`,maxTerm:25,nodeProps:[[`isolate`,-2,6,11,``],[`openedBy`,7,`{`,14,`[`],[`closedBy`,8,`}`,15,`]`]],propSources:[Ut],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),Gt=[],Kt=[];(()=>{let e=`lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o`.split(`,`).map(e=>e?parseInt(e,36):1);for(let t=0,n=0;t<e.length;t++)(t%2?Kt:Gt).push(n+=e[t])})();function qt(e){if(e<768)return!1;for(let t=0,n=Gt.length;;){let r=t+n>>1;if(e<Gt[r])n=r;else if(e>=Kt[r])t=r+1;else return!0;if(t==n)return!1}}function Jt(e){return e>=127462&&e<=127487}var Yt=8205;function Xt(e,t,n=!0,r=!0){return(n?Zt:Qt)(e,t,r)}function Zt(e,t,n){if(t==e.length)return t;t&&en(e.charCodeAt(t))&&tn(e.charCodeAt(t-1))&&t--;let r=$t(e,t);for(t+=nn(r);t<e.length;){let i=$t(e,t);if(r==Yt||i==Yt||n&&qt(i))t+=nn(i),r=i;else if(Jt(i)){let n=0,r=t-2;for(;r>=0&&Jt($t(e,r));)n++,r-=2;if(n%2==0)break;t+=2}else break}return t}function Qt(e,t,n){for(;t>1;){let r=Zt(e,t-2,n);if(r<t)return r;t--}return 0}function $t(e,t){let n=e.charCodeAt(t);if(!tn(n)||t+1==e.length)return n;let r=e.charCodeAt(t+1);return en(r)?(n-55296<<10)+(r-56320)+65536:n}function en(e){return e>=56320&&e<57344}function tn(e){return e>=55296&&e<56320}function nn(e){return e<65536?1:2}var F=class e{lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=pn(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),an.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=pn(this,e,t);let n=[];return this.decompose(e,t,n,0),an.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new ln(this),i=new ln(e);for(let e=t,a=t;;){if(r.next(e),i.next(e),e=0,r.lineBreak!=i.lineBreak||r.done!=i.done||r.value!=i.value)return!1;if(a+=r.value.length,r.done||a>=n)return!0}}iter(e=1){return new ln(this,e)}iterRange(e,t=this.length){return new un(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t??=this.lines+1;let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new dn(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(t){if(t.length==0)throw RangeError(`A document must have at least one line`);return t.length==1&&!t[0]?e.empty:t.length<=32?new rn(t):an.from(rn.split(t,[]))}},rn=class e extends F{constructor(e,t=on(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let i=0;;i++){let a=this.text[i],o=r+a.length;if((t?n:o)>=e)return new fn(r,o,n,a);r=o+1,n++}}decompose(t,n,r,i){let a=t<=0&&n>=this.length?this:new e(cn(this.text,t,n),Math.min(n,this.length)-Math.max(0,t));if(i&1){let t=r.pop(),n=sn(a.text,t.text.slice(),0,a.length);if(n.length<=32)r.push(new e(n,t.length+a.length));else{let t=n.length>>1;r.push(new e(n.slice(0,t)),new e(n.slice(t)))}}else r.push(a)}replace(t,n,r){if(!(r instanceof e))return super.replace(t,n,r);[t,n]=pn(this,t,n);let i=sn(this.text,sn(r.text,cn(this.text,0,t)),n),a=this.length+r.length-(n-t);return i.length<=32?new e(i,a):an.from(e.split(i,[]),a)}sliceString(e,t=this.length,n=`
|
|
1
|
+
import{a as e,i as t,n,r,t as i}from"./rolldown-runtime-CNC7AqOf.js";import{C as a,Q as o,Z as s,_ as c,a as l,b as u,c as d,d as f,g as p,i as m,l as h,nt as g,o as _,s as v,tt as y,u as b,v as x,w as S,x as C,y as w}from"./panel-access-C0J2D-a2.js";import{a as T,i as E,n as D,o as ee,r as O,s as te}from"./panel-architecture-CKnXFyUx.js";var k=e(g(),1),ne=C([c(),x(`true`),x(`false`)]).transform(e=>e===!0||e===`true`),re=w({sel:p([`none`,`cause`,`flow`,`effect`]).default(`none`),cause:u().optional(),flow:u().optional(),effect:u().optional(),path:u().optional(),q:u().optional(),unit:u().optional(),attention:p([`erroring`,`cron-overdue`,`dead-letter`]).nullable().optional().default(null),density:p([`compact`,`comfortable`]).default(`comfortable`),group:p([`unit`,`alpha`]).default(`unit`),causeGroup:p([`kind`,`alpha`]).default(`kind`),transitive:ne.default(!1),hideUbiquitous:ne.default(!1),drawer:p([`closed`,`peek`,`workbench`]).default(`closed`),open:u().optional(),editor:p([`form`,`json`]).default(`form`)});function ie(e){let t=re.safeParse(e??{});return t.success?t.data:re.parse({})}function ae(e){let t={};return e.sel!==`none`&&(t.sel=e.sel),e.cause&&(t.cause=e.cause),e.flow&&(t.flow=e.flow),e.effect&&(t.effect=e.effect),e.path&&(t.path=e.path),e.q&&(t.q=e.q),e.unit&&(t.unit=e.unit),e.attention&&(t.attention=e.attention),e.density!==`comfortable`&&(t.density=e.density),e.group!==`unit`&&(t.group=e.group),e.causeGroup!==`kind`&&(t.causeGroup=e.causeGroup),e.transitive&&(t.transitive=!0),e.hideUbiquitous&&(t.hideUbiquitous=!0),e.drawer!==`closed`&&(t.drawer=e.drawer),e.open&&(t.open=e.open),e.editor!==`form`&&(t.editor=e.editor),t}function oe(e){return e?e.split(`,`).map(e=>e.trim()).filter(Boolean):[]}function se(e){if(e.length!==0)return e.join(`,`)}function ce(e,t){return{...e,sel:`cause`,cause:t,flow:void 0,effect:void 0}}function le(e,t){return{...e,sel:`flow`,flow:t,cause:void 0,effect:void 0}}function ue(e,t){let n=oe(e.path),r=n[n.length-1]===t?n:[...n,t].slice(-12);return{...e,sel:`effect`,effect:t,flow:void 0,cause:void 0,path:se(r)}}function de(e,t,n=`peek`){return{...e,open:t,drawer:n,flow:t,sel:`flow`}}function fe(e){return{...e,drawer:`closed`,open:void 0}}var pe=1024,me=0,he=class{constructor(e,t){this.from=e,this.to=t}},A=class{constructor(e={}){this.id=me++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw Error(`This node type doesn't define a deserialize function`)}),this.combine=e.combine||null}add(e){if(this.perNode)throw RangeError(`Can't add per-node props to node types`);return typeof e!=`function`&&(e=ve.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};A.closedBy=new A({deserialize:e=>e.split(` `)}),A.openedBy=new A({deserialize:e=>e.split(` `)}),A.group=new A({deserialize:e=>e.split(` `)}),A.isolate=new A({deserialize:e=>{if(e&&e!=`rtl`&&e!=`ltr`&&e!=`auto`)throw RangeError(`Invalid value for isolate: `+e);return e||`auto`}}),A.contextHash=new A({perNode:!0}),A.lookAhead=new A({perNode:!0}),A.mounted=new A({perNode:!0});var ge=class{constructor(e,t,n,r=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=r}static get(e){return e&&e.props&&e.props[A.mounted.id]}},_e=Object.create(null),ve=class e{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(t){let n=t.props&&t.props.length?Object.create(null):_e,r=!!t.top|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new e(t.name||``,n,t.id,r);if(t.props){for(let e of t.props)if(Array.isArray(e)||(e=e(i)),e){if(e[0].perNode)throw RangeError(`Can't store a per-node prop on a node type`);n[e[0].id]=e[1]}}return i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e==`string`){if(this.name==e)return!0;let t=this.prop(A.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(` `))t[r]=e[n];return e=>{for(let n=e.prop(A.group),r=-1;r<(n?n.length:0);r++){let i=t[r<0?e.name:n[r]];if(i)return i}}}};ve.none=new ve(``,Object.create(null),0,8);var ye=class e{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw RangeError(`Node type ids should correspond to array positions when creating a node set`)}extend(...t){let n=[];for(let e of this.types){let r=null;for(let n of t){let t=n(e);if(t){r||=Object.assign({},e.props);let n=t[1],i=t[0];i.combine&&i.id in r&&(n=i.combine(r[i.id],n)),r[i.id]=n}}n.push(r?new ve(e.name,r,e.id,e.flags):e)}return new e(n)}},be=new WeakMap,xe=new WeakMap,j;(function(e){e[e.ExcludeBuffers=1]=`ExcludeBuffers`,e[e.IncludeAnonymous=2]=`IncludeAnonymous`,e[e.IgnoreMounts=4]=`IgnoreMounts`,e[e.IgnoreOverlays=8]=`IgnoreOverlays`,e[e.EnterBracketed=16]=`EnterBracketed`})(j||={});var M=class e{constructor(e,t,n,r,i){if(this.type=e,this.children=t,this.positions=n,this.length=r,this.props=null,i&&i.length){this.props=Object.create(null);for(let[e,t]of i)this.props[typeof e==`number`?e:e.id]=t}}toString(){let e=ge.get(this);if(e&&!e.overlay)return e.tree.toString();let t=``;for(let e of this.children){let n=e.toString();n&&(t&&(t+=`,`),t+=n)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?`(`+t+`)`:``):t}cursor(e=0){return new Fe(this.topNode,e)}cursorAt(e,t=0,n=0){let r=new Fe(be.get(this)||this.topNode);return r.moveTo(e,t),be.set(this,r._tree),r}get topNode(){return new De(this,0,0,null)}resolve(e,t=0){let n=Te(be.get(this)||this.topNode,e,t,!1);return be.set(this,n),n}resolveInner(e,t=0){let n=Te(xe.get(this)||this.topNode,e,t,!0);return xe.set(this,n),n}resolveStack(e,t=0){return Pe(this,e,t)}iterate(e){let{enter:t,leave:n,from:r=0,to:i=this.length}=e,a=e.mode||0,o=(a&j.IncludeAnonymous)>0;for(let e=this.cursor(a|j.IncludeAnonymous);;){let a=!1;if(e.from<=i&&e.to>=r&&(!o&&e.type.isAnonymous||t(e)!==!1)){if(e.firstChild())continue;a=!0}for(;a&&n&&(o||!e.type.isAnonymous)&&n(e),!e.nextSibling();){if(!e.parent())return;a=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(t={}){return this.children.length<=8?this:Be(ve.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new e(this.type,t,n,r,this.propValues),t.makeTree||((t,n,r)=>new e(ve.none,t,n,r)))}static build(e){return Le(e)}};M.empty=new M(ve.none,[],[],0);var Se=class e{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new e(this.buffer,this.index)}},Ce=class e{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return ve.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(`,`)}childString(e){let t=this.buffer[e],n=this.buffer[e+3],r=this.set.types[t],i=r.name;if(/\W/.test(i)&&!r.isError&&(i=JSON.stringify(i)),e+=4,n==e)return i;let a=[];for(;e<n;)a.push(this.childString(e)),e=this.buffer[e+3];return i+`(`+a.join(`,`)+`)`}findChild(e,t,n,r,i){let{buffer:a}=this,o=-1;for(let s=e;s!=t&&!(we(i,r,a[s+1],a[s+2])&&(o=s,n>0));s=a[s+3]);return o}slice(t,n,r){let i=this.buffer,a=new Uint16Array(n-t),o=0;for(let e=t,s=0;e<n;){a[s++]=i[e++],a[s++]=i[e++]-r;let n=a[s++]=i[e++]-r;a[s++]=i[e++]-t,o=Math.max(o,n)}return new e(a,o,this.set)}};function we(e,t,n,r){switch(e){case-2:return n<t;case-1:return r>=t&&n<t;case 0:return n<t&&r>t;case 1:return n<=t&&r>t;case 2:return r>t;case 4:return!0}}function Te(e,t,n,r){for(;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let t=!r&&e instanceof De&&e.index<0?null:e.parent;if(!t)return e;e=t}let i=r?0:j.IgnoreOverlays;if(r)for(let r=e,a=r.parent;a;r=a,a=r.parent)r instanceof De&&r.index<0&&a.enter(t,n,i)?.from!=r.from&&(e=a);for(;;){let r=e.enter(t,n,i);if(!r)return e;e=r}}var Ee=class{cursor(e=0){return new Fe(this,e)}getChild(e,t=null,n=null){let r=Oe(this,e,t,n);return r.length?r[0]:null}getChildren(e,t=null,n=null){return Oe(this,e,t,n)}resolve(e,t=0){return Te(this,e,t,!1)}resolveInner(e,t=0){return Te(this,e,t,!0)}matchContext(e){return ke(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let e=t.lastChild;if(!e||e.to!=t.to)break;e.type.isError&&e.from==e.to?(n=t,t=e.prevSibling):t=e}return n}get node(){return this}get next(){return this.parent}},De=class e extends Ee{constructor(e,t,n,r){super(),this._tree=e,this.from=t,this.index=n,this._parent=r}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,n,r,i,a=0){for(let o=this;;){for(let{children:s,positions:c}=o._tree,l=n>0?s.length:-1;t!=l;t+=n){let l=s[t],u=c[t]+o.from,d;if(!(!(a&j.EnterBracketed&&l instanceof M&&(d=ge.get(l))&&!d.overlay&&d.bracketed&&r>=u&&r<=u+l.length)&&!we(i,r,u,u+l.length))){if(l instanceof Ce){if(a&j.ExcludeBuffers)continue;let e=l.findChild(0,l.buffer.length,n,r-u,i);if(e>-1)return new je(new Ae(o,l,t,u),null,e)}else if(a&j.IncludeAnonymous||!l.type.isAnonymous||Ie(l)){let s;if(!(a&j.IgnoreMounts)&&(s=ge.get(l))&&!s.overlay)return new e(s.tree,u,t,o);let c=new e(l,u,t,o);return a&j.IncludeAnonymous||!c.type.isAnonymous?c:c.nextChild(n<0?l.children.length-1:0,n,r,i,a)}}}if(a&j.IncludeAnonymous||!o.type.isAnonymous||(t=o.index>=0?o.index+n:n<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(t,n,r=0){let i;if(!(r&j.IgnoreOverlays)&&(i=ge.get(this._tree))&&i.overlay){let a=t-this.from,o=r&j.EnterBracketed&&i.bracketed;for(let{from:t,to:r}of i.overlay)if((n>0||o?t<=a:t<a)&&(n<0||o?r>=a:r>a))return new e(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,n,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function Oe(e,t,n,r){let i=e.cursor(),a=[];if(!i.firstChild())return a;if(n!=null){for(let e=!1;!e;)if(e=i.type.is(n),!i.nextSibling())return a}for(;;){if(r!=null&&i.type.is(r))return a;if(i.type.is(t)&&a.push(i.node),!i.nextSibling())return r==null?a:[]}}function ke(e,t,n=t.length-1){for(let r=e;n>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(t[n]&&t[n]!=r.name)return!1;n--}}return!0}var Ae=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},je=class e extends Ee{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(t,n,r){let{buffer:i}=this.context,a=i.findChild(this.index+4,i.buffer[this.index+3],t,n-this.context.start,r);return a<0?null:new e(this.context,this,a)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(t,n,r=0){if(r&j.ExcludeBuffers)return null;let{buffer:i}=this.context,a=i.findChild(this.index+4,i.buffer[this.index+3],n>0?1:-1,t-this.context.start,n);return a<0?null:new e(this.context,this,a)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:t}=this.context,n=t.buffer[this.index+3];return n<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new e(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new e(this.context,this._parent,t.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,i=n.buffer[this.index+3];if(i>r){let a=n.buffer[this.index+1];e.push(n.slice(r,i,a)),t.push(0)}return new M(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Me(e){if(!e.length)return null;let t=0,n=e[0];for(let r=1;r<e.length;r++){let i=e[r];(i.from>n.from||i.to<n.to)&&(n=i,t=r)}let r=n instanceof De&&n.index<0?null:n.parent,i=e.slice();return r?i[t]=r:i.splice(t,1),new Ne(i,n)}var Ne=class{constructor(e,t){this.heads=e,this.node=t}get next(){return Me(this.heads)}};function Pe(e,t,n){let r=e.resolveInner(t,n),i=null;for(let e=r instanceof De?r:r.context.parent;e;e=e.parent)if(e.index<0){let a=e.parent;(i||=[r]).push(a.resolve(t,n)),e=a}else{let a=ge.get(e.tree);if(a&&a.overlay&&a.overlay[0].from<=t&&a.overlay[a.overlay.length-1].to>=t){let o=new De(a.tree,a.overlay[0].from+e.from,-1,e);(i||=[r]).push(Te(o,t,n,!1))}}return i?Me(i):r}var Fe=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~j.EnterBracketed,e instanceof De)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let t=e._parent;t;t=t._parent)this.stack.unshift(t.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof De?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,i=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return i<0?!1:(this.stack.push(this.index),this.yieldBuf(i))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&j.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&j.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&j.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let e=n<0?0:this.stack[n]+4;if(this.index!=e)return this.yieldBuf(t.findChild(e,this.index,-1,0,4))}else{let e=t.buffer[this.index+3];if(e<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(e)}return n<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index<r.buffer.buffer.length)return!1}else for(let e=0;e<this.index;e++)if(r.buffer.buffer[e+3]<this.index)return!1;({index:t,parent:n}=r)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let r=t+e,i=e<0?-1:n._tree.children.length;r!=i;r+=e){let e=n._tree.children[r];if(this.mode&j.IncludeAnonymous||e instanceof Ce||!e.type.isAnonymous||Ie(e))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)scan:for(let r=this.index,i=this.stack.length;i>=0;){for(let a=e;a;a=a._parent)if(a.index==r){if(r==this.index)return a;t=a,n=i+1;break scan}r=this.stack[--i]}for(let e=n;e<this.stack.length;e++)t=new je(this.buffer,t,this.stack[e]);return this.bufferNode=new je(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let r=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(r=!0)}for(;;){if(r&&t&&t(this),r=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,r=!0}}}matchContext(e){if(!this.buffer)return ke(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let r=e.length-1,i=this.stack.length-1;r>=0;i--){if(i<0)return ke(this._tree,e,r);let a=n[t.buffer[this.stack[i]]];if(!a.isAnonymous){if(e[r]&&e[r]!=a.name)return!1;r--}}return!0}};function Ie(e){return e.children.some(e=>e instanceof Ce||!e.type.isAnonymous||Ie(e))}function Le(e){let{buffer:t,nodeSet:n,maxBufferLength:r=pe,reused:i=[],minRepeatType:a=n.types.length}=e,o=Array.isArray(t)?new Se(t,t.length):t,s=n.types,c=0,l=0;function u(e,t,_,v,y,b){let{id:x,start:S,end:C,size:w}=o,T=l,E=c;if(w<0)if(o.next(),w==-1){let t=i[x];_.push(t),v.push(S-e);return}else if(w==-3){c=x;return}else if(w==-4){l=x;return}else throw RangeError(`Unrecognized record size: ${w}`);let D=s[x],ee,O,te=S-e;if(C-S<=r&&(O=h(o.pos-t,y))){let t=new Uint16Array(O.size-O.skip),r=o.pos-O.size,i=t.length;for(;o.pos>r;)i=g(O.start,t,i);ee=new Ce(t,C-O.start,n),te=O.start-e}else{let e=o.pos-w;o.next();let t=[],n=[],i=x>=a?x:-1,s=0,c=C;for(;o.pos>e;)i>=0&&o.id==i&&o.size>=0?(o.end<=c-r&&(p(t,n,S,s,o.end,c,i,T,E),s=t.length,c=o.end),o.next()):b>2500?d(S,e,t,n):u(S,e,t,n,i,b+1);if(i>=0&&s>0&&s<t.length&&p(t,n,S,s,S,c,i,T,E),t.reverse(),n.reverse(),i>-1&&s>0){let e=f(D,E);ee=Be(D,t,n,0,t.length,0,C-S,e,e)}else ee=m(D,t,n,C-S,T-C,E)}_.push(ee),v.push(te)}function d(e,t,i,a){let s=[],c=0,l=-1;for(;o.pos>t;){let{id:e,start:t,end:n,size:i}=o;if(i>4)o.next();else if(l>-1&&t<l)break;else l<0&&(l=n-r),s.push(e,t,n),c++,o.next()}if(c){let t=new Uint16Array(c*4),r=s[s.length-2];for(let e=s.length-3,n=0;e>=0;e-=3)t[n++]=s[e],t[n++]=s[e+1]-r,t[n++]=s[e+2]-r,t[n++]=n;i.push(new Ce(t,s[2]-r,n)),a.push(r-e)}}function f(e,t){return(n,r,i)=>{let a=0,o=n.length-1,s,c;if(o>=0&&(s=n[o])instanceof M){if(!o&&s.type==e&&s.length==i)return s;(c=s.prop(A.lookAhead))&&(a=r[o]+s.length+c)}return m(e,n,r,i,a,t)}}function p(e,t,r,i,a,o,s,c,l){let u=[],d=[];for(;e.length>i;)u.push(e.pop()),d.push(t.pop()+r-a);e.push(m(n.types[s],u,d,o-a,c-o,l)),t.push(a-r)}function m(e,t,n,r,i,a,o){if(a){let e=[A.contextHash,a];o=o?[e].concat(o):[e]}if(i>25){let e=[A.lookAhead,i];o=o?[e].concat(o):[e]}return new M(e,t,n,r,o)}function h(e,t){let n=o.fork(),i=0,s=0,c=0,l=n.end-r,u={size:0,start:0,skip:0};scan:for(let r=n.pos-e;n.pos>r;){let e=n.size;if(n.id==t&&e>=0){u.size=i,u.start=s,u.skip=c,c+=4,i+=4,n.next();continue}let o=n.pos-e;if(e<0||o<r||n.start<l)break;let d=n.id>=a?4:0,f=n.start;for(n.next();n.pos>o;){if(n.size<0)if(n.size==-3||n.size==-4)d+=4;else break scan;else n.id>=a&&(d+=4);n.next()}s=f,i+=e,c+=d}return(t<0||i==e)&&(u.size=i,u.start=s,u.skip=c),u.size>4?u:void 0}function g(e,t,n){let{id:r,start:i,end:s,size:u}=o;if(o.next(),u>=0&&r<a){let a=n;if(u>4){let r=o.pos-(u-4);for(;o.pos>r;)n=g(e,t,n)}t[--n]=a,t[--n]=s-e,t[--n]=i-e,t[--n]=r}else u==-3?c=r:u==-4&&(l=r);return n}let _=[],v=[];for(;o.pos>0;)u(e.start||0,e.bufferStart||0,_,v,-1,0);let y=e.length??(_.length?v[0]+_[0].length:0);return new M(s[e.topID],_.reverse(),v.reverse(),y)}var Re=new WeakMap;function ze(e,t){if(!e.isAnonymous||t instanceof Ce||t.type!=e)return 1;let n=Re.get(t);if(n==null){n=1;for(let r of t.children){if(r.type!=e||!(r instanceof M)){n=1;break}n+=ze(e,r)}Re.set(t,n)}return n}function Be(e,t,n,r,i,a,o,s,c){let l=0;for(let n=r;n<i;n++)l+=ze(e,t[n]);let u=Math.ceil(l*1.5/8),d=[],f=[];function p(t,n,r,i,o){for(let s=r;s<i;){let r=s,l=n[s],m=ze(e,t[s]);for(s++;s<i;s++){let n=ze(e,t[s]);if(m+n>=u)break;m+=n}if(s==r+1){if(m>u){let e=t[r];p(e.children,e.positions,0,e.children.length,n[r]+o);continue}d.push(t[r])}else{let i=n[s-1]+t[s-1].length-l;d.push(Be(e,t,n,r,s,l,i,null,c))}f.push(l+o-a)}}return p(t,n,r,i,0),(s||c)(d,f,o)}var Ve=class e{constructor(e,t,n,r,i=!1,a=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=!!i|(a?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(t,n=[],r=!1){let i=[new e(0,t.length,t,0,!1,r)];for(let e of n)e.to>t.length&&i.push(e);return i}static applyChanges(t,n,r=128){if(!n.length)return t;let i=[],a=1,o=t.length?t[0]:null;for(let s=0,c=0,l=0;;s++){let u=s<n.length?n[s]:null,d=u?u.fromA:1e9;if(d-c>=r)for(;o&&o.from<d;){let n=o;if(c>=n.from||d<=n.to||l){let t=Math.max(n.from,c)-l,r=Math.min(n.to,d)-l;n=t>=r?null:new e(t,r,n.tree,n.offset+l,s>0,!!u)}if(n&&i.push(n),o.to>d)break;o=a<t.length?t[a++]:null}if(!u)break;c=u.toA,l=u.toA-u.toB}return i}},He=class{startParse(e,t,n){return typeof e==`string`&&(e=new Ue(e)),n=n?n.length?n.map(e=>new he(e.from,e.to)):[new he(0,0)]:[new he(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let e=r.advance();if(e)return e}}},Ue=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};new A({perNode:!0});var We=class e{constructor(e,t,n,r,i,a,o,s,c,l=0,u){this.p=e,this.stack=t,this.state=n,this.reducePos=r,this.pos=i,this.score=a,this.buffer=o,this.bufferBase=s,this.curContext=c,this.lookAhead=l,this.parent=u}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?`!`+this.score:``}`}static start(t,n,r=0){let i=t.parser.context;return new e(t,[],n,r,r,0,[],0,i?new Ge(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let t=e>>19,n=e&65535,{parser:r}=this.p,i=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),a=r.dynamicPrecedence(n);if(a&&(this.score+=a),t==0){n<r.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(r.getGoto(this.state,n,!0),this.reducePos),n<r.minRepeatTerm&&this.storeNode(n,this.reducePos,this.reducePos,i?8:4,!0),this.reduceContext(n,this.reducePos);return}let o=this.stack.length-(t-1)*3-(e&262144?6:0),s=o?this.stack[o-2]:this.p.ranges[0].from;n<r.minRepeatTerm&&s==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let c=this.reducePos-s;c>=2e3&&!this.p.parser.nodeSet.types[n]?.isAnonymous&&(s==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSize<c&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=s,this.p.lastBigReductionSize=c));let l=o?this.stack[o-1]:0,u=this.bufferBase+this.buffer.length-l;if(n<r.minRepeatTerm||e&131072){let e=r.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(n,s,e,u+4,!0)}if(e&262144)this.state=this.stack[o];else{let e=this.stack[o-3];this.state=r.getGoto(e,n,!0)}for(;this.stack.length>o;)this.stack.pop();this.reduceContext(n,s)}storeNode(e,t,n,r=4,i=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let e=this.buffer.length;if(e>0&&this.buffer[e-4]==0&&this.buffer[e-1]>-1){if(t==n)return;if(this.buffer[e-2]>=t){this.buffer[e-2]=n;return}}}if(!i||this.pos==n)this.buffer.push(e,t,n,r);else{let i=this.buffer.length;if(i>0&&(this.buffer[i-4]!=0||this.buffer[i-1]<0)){let e=!1;for(let t=i;t>0&&this.buffer[t-2]>n;t-=4)if(this.buffer[t-1]>=0){e=!0;break}if(e)for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4)}this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=r}}shift(e,t,n,r){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,r,4);else{let i=e,{parser:a}=this.p;this.pos=r;let o=a.stateFlag(i,1);!o&&(r>n||t<=a.maxNode)&&(this.reducePos=r),this.pushState(i,o?n:Math.min(n,this.reducePos)),this.shiftContext(t,n),t<=a.maxNode&&this.buffer.push(t,n,r,4)}}apply(e,t,n,r){e&65536?this.reduce(e):this.shift(e,t,n,r)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let t=this,n=t.buffer.length;for(n&&t.buffer[n-4]==0&&(n-=4);n>0&&t.buffer[n-2]>t.reducePos;)n-=4;let r=t.buffer.slice(n),i=t.bufferBase+n;for(;t&&i==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,t)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Ke(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let n=[];for(let r=0,i;r<t.length;r+=2)(i=t[r+1])!=this.state&&this.p.parser.hasAction(i,e)&&n.push(t[r],i);if(this.stack.length<120)for(let e=0;n.length<8&&e<t.length;e+=2){let r=t[e+1];n.some((e,t)=>t&1&&e==r)||n.push(t[e],r)}t=n}let n=[];for(let e=0;e<t.length&&n.length<4;e+=2){let r=t[e+1];if(r==this.state)continue;let i=this.split();i.pushState(r,this.pos),i.storeNode(0,i.pos,i.pos,4,!0),i.shiftContext(t[e],this.pos),i.reducePos=this.pos,i.score-=200,n.push(i)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,r=t&65535,i=this.stack.length-n*3;if(i<0||e.getGoto(this.stack[i],r,!1)<0){let e=this.findForcedReduction();if(e==null)return!1;t=e}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,i)=>{if(!t.includes(r))return t.push(r),e.allActions(r,t=>{if(!(t&393216))if(t&65536){let n=(t>>19)-i;if(n>1){let r=t&65535,i=this.stack.length-n*3;if(i>=0&&e.getGoto(this.stack[i],r,!1)>=0)return n<<19|65536|r}}else{let e=n(t,i+1);if(e!=null)return e}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Ge(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){return e<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=e,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Ge=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Ke=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},qe=class e{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(t,n=t.bufferBase+t.buffer.length){return new e(t,n,n-t.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new e(this.stack,this.pos,this.index)}};function Je(e,t=Uint16Array){if(typeof e!=`string`)return e;let n=null;for(let r=0,i=0;r<e.length;){let a=0;for(;;){let t=e.charCodeAt(r++),n=!1;if(t==126){a=65535;break}t>=92&&t--,t>=34&&t--;let i=t-32;if(i>=46&&(i-=46,n=!0),a+=i,n)break;a*=46}n?n[i++]=a:n=new t(a)}return n}var Ye=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Xe=new Ye,Ze=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk=``,this.chunkOff=0,this.chunk2=``,this.chunk2Pos=0,this.next=-1,this.token=Xe,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,i=this.pos+e;for(;i<n.from;){if(!r)return null;let e=this.ranges[--r];i-=n.from-e.to,n=e}for(;t<0?i>n.to:i>=n.to;){if(r==this.ranges.length-1)return null;let e=this.ranges[++r];i+=e.from-n.to,n=e}return i}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t<this.chunk.length)n=this.pos+e,r=this.chunk.charCodeAt(t);else{let t=this.resolveOffset(e,1);if(t==null)return-1;if(n=t,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)r=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let e=this.rangeIndex,t=this.range;for(;t.to<=n;)t=this.ranges[++e];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>t.to&&(this.chunk2=this.chunk2.slice(0,t.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw RangeError(`Token end out of bounds`);this.token.value=e,this.token.end=n}acceptTokenTo(e,t){this.token.value=e,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk=``,this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Xe,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk=``,this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n=``;for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},Qe=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;et(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};Qe.prototype.contextual=Qe.prototype.fallback=Qe.prototype.extend=!1;var $e=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e==`string`?Je(e):e}token(e,t){let n=e.pos,r=0;for(;;){let n=e.next<0,i=e.resolveOffset(1,1);if(et(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(n||r++,i==null)break;e.reset(i,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}};$e.prototype.contextual=Qe.prototype.fallback=Qe.prototype.extend=!1;function et(e,t,n,r,i,a){let o=0,s=1<<r,{dialect:c}=n.p.parser;scan:for(;(s&e[o])!=0;){let n=e[o+1];for(let r=o+3;r<n;r+=2)if((e[r+1]&s)>0){let n=e[r];if(c.allows(n)&&(t.token.value==-1||t.token.value==n||nt(n,t.token.value,i,a))){t.acceptToken(n);break}}let r=t.next,l=0,u=e[o+2];if(t.next<0&&u>l&&e[n+u*3-3]==65535){o=e[n+u*3-1];continue scan}for(;l<u;){let i=l+u>>1,a=n+i+(i<<1),s=e[a],c=e[a+1]||65536;if(r<s)u=i;else if(r>=c)l=i+1;else{o=e[a+2],t.advance();continue scan}}break}}function tt(e,t,n){for(let r=t,i;(i=e[r])!=65535;r++)if(i==n)return r-t;return-1}function nt(e,t,n,r){let i=tt(n,r,t);return i<0||tt(n,r,e)<i}var rt=typeof process<`u`&&/\bparse\b/.test({}.LOG),it=null;function at(e,t,n){let r=e.cursor(j.IncludeAnonymous);for(r.moveTo(t);;)if(!(n<0?r.childBefore(t):r.childAfter(t)))for(;;){if((n<0?r.to<t:r.from>t)&&!r.type.isError)return n<0?Math.max(0,Math.min(r.to-1,t-25)):Math.min(e.length,Math.max(r.from+1,t+25));if(n<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return n<0?0:e.length}}var ot=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?at(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?at(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],r=this.index[t];if(r==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let i=n.children[r],a=this.start[t]+n.positions[r];if(a>e)return this.nextStart=a,null;if(i instanceof M){if(a==e){if(a<this.safeFrom)return null;let e=a+i.length;if(e<=this.safeTo){let t=i.prop(A.lookAhead);if(!t||e+t<this.fragment.to)return i}}this.index[t]++,a+i.length>=Math.max(this.safeFrom,e)&&(this.trees.push(i),this.start.push(a),this.index.push(0))}else this.index[t]++,this.nextStart=a+i.length}}},st=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(e=>new Ye)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:i}=r,a=r.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,s=0;for(let r=0;r<i.length;r++){if(!(1<<r&a))continue;let c=i[r],l=this.tokens[r];if(!(n&&!c.fallback)&&((c.contextual||l.start!=e.pos||l.mask!=a||l.context!=o)&&(this.updateCachedToken(l,c,e),l.mask=a,l.context=o),l.lookAhead>l.end+25&&(s=Math.max(l.lookAhead,s)),l.value!=0)){let r=t;if(l.extended>-1&&(t=this.addActions(e,l.extended,l.end,t)),t=this.addActions(e,l.value,l.end,t),!c.extend&&(n=l,t>r))break}}for(;this.actions.length>t;)this.actions.pop();return s&&e.setLookAhead(s),!n&&e.pos==this.stream.end&&(n=new Ye,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Ye,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:t}=n.p;for(let r=0;r<t.specialized.length;r++)if(t.specialized[r]==e.value){let i=t.specializers[r](this.stream.read(e.start,e.end),n);if(i>=0&&n.p.parser.dialect.allows(i>>1)){i&1?e.extended=i>>1:e.value=i>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let t=0;t<r;t+=3)if(this.actions[t]==e)return r;return this.actions[r++]=e,this.actions[r++]=t,this.actions[r++]=n,r}addActions(e,t,n,r){let{state:i}=e,{parser:a}=e.p,{data:o}=a;for(let e=0;e<2;e++)for(let s=a.stateSlot(i,e?2:1);;s+=3){if(o[s]==65535)if(o[s+1]==1)s=ft(o,s+2);else{r==0&&o[s+1]==2&&(r=this.putAction(ft(o,s+2),t,n,r));break}o[s]==t&&(r=this.putAction(ft(o,s+1),t,n,r))}return r}},ct=class{constructor(e,t,n,r){this.parser=e,this.input=t,this.ranges=r,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Ze(t,r),this.tokens=new st(e,this.stream),this.topTerm=e.top[1];let{from:i}=r[0];this.stacks=[We.start(this,e.top[0],i)],this.fragments=n.length&&this.stream.end-i>e.bufferLength*4?new ot(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,i;if(this.bigReductionCount>300&&e.length==1){let[t]=e;for(;t.forceReduce()&&t.stack.length&&t.stack[t.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<e.length;a++){let o=e[a];for(;;){if(this.tokens.mainToken=null,o.pos>t)n.push(o);else if(this.advanceStack(o,n,e))continue;else{r||(r=[],i=[]),r.push(o);let e=this.tokens.getMainToken(o);i.push(e.value,e.end)}break}}if(!n.length){let e=r&&pt(r);if(e)return rt&&console.log(`Finish with `+this.stackID(e)),this.stackToTree(e);if(this.parser.strict)throw rt&&r&&console.log(`Stuck with token `+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):`none`)),SyntaxError(`No parse at `+t);this.recovering||=5}if(this.recovering&&r){let e=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,i,n);if(e)return rt&&console.log(`Force-finish `+this.stackID(e)),this.stackToTree(e.forceAll())}if(this.recovering){let e=this.recovering==1?1:this.recovering*3;if(n.length>e)for(n.sort((e,t)=>t.score-e.score);n.length>e;)n.pop();n.some(e=>e.reducePos>t)&&this.recovering--}else if(n.length>1){outer:for(let e=0;e<n.length-1;e++){let t=n[e];for(let r=e+1;r<n.length;r++){let i=n[r];if(t.sameState(i)||t.buffer.length>500&&i.buffer.length>500)if((t.score-i.score||t.buffer.length-i.buffer.length)>0)n.splice(r--,1);else{n.splice(e--,1);continue outer}}}n.length>12&&(n.sort((e,t)=>t.score-e.score),n.splice(12,n.length-12))}this.minStackPos=n[0].pos;for(let e=1;e<n.length;e++)n[e].pos<this.minStackPos&&(this.minStackPos=n[e].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw RangeError(`Can't move stoppedAt forward`);this.stoppedAt=e}advanceStack(e,t,n){let r=e.pos,{parser:i}=this,a=rt?this.stackID(e)+` -> `:``;if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let t=e.curContext&&e.curContext.tracker.strict,n=t?e.curContext.hash:0;for(let o=this.fragments.nodeAt(r);o;){let r=this.parser.nodeSet.types[o.type.id]==o.type?i.getGoto(e.state,o.type.id):-1;if(r>-1&&o.length&&(!t||(o.prop(A.contextHash)||0)==n))return e.useNode(o,r),rt&&console.log(a+this.stackID(e)+` (via reuse of ${i.getName(o.type.id)})`),!0;if(!(o instanceof M)||o.children.length==0||o.positions[0]>0)break;let s=o.children[0];if(s instanceof M&&o.positions[0]==0)o=s;else break}}let o=i.stateSlot(e.state,4);if(o>0)return e.reduce(o),rt&&console.log(a+this.stackID(e)+` (via always-reduce ${i.getName(o&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let s=this.tokens.getActions(e);for(let o=0;o<s.length;){let c=s[o++],l=s[o++],u=s[o++],d=o==s.length||!n,f=d?e:e.split(),p=this.tokens.mainToken;if(f.apply(c,l,p?p.start:f.pos,u),rt&&console.log(a+this.stackID(f)+` (via ${c&65536?`reduce of ${i.getName(c&65535)}`:`shift`} for ${i.getName(l)} @ ${r}${f==e?``:`, split`})`),d)return!0;f.pos>r?t.push(f):n.push(f)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return lt(e,t),!0}}runRecovery(e,t,n){let r=null,i=!1;for(let a=0;a<e.length;a++){let o=e[a],s=t[a<<1],c=t[(a<<1)+1],l=rt?this.stackID(o)+` -> `:``;if(o.deadEnd&&(i||(i=!0,o.restart(),rt&&console.log(l+this.stackID(o)+` (restarted)`),this.advanceFully(o,n))))continue;let u=o.split(),d=l;for(let e=0;e<10&&u.forceReduce()&&(rt&&console.log(d+this.stackID(u)+` (via force-reduce)`),!this.advanceFully(u,n));e++)rt&&(d=this.stackID(u)+` -> `);for(let e of o.recoverByInsert(s))rt&&console.log(l+this.stackID(e)+` (via recover-insert)`),this.advanceFully(e,n);this.stream.end>o.pos?(c==o.pos&&(c++,s=0),o.recoverByDelete(s,c),rt&&console.log(l+this.stackID(o)+` (via recover-delete ${this.parser.getName(s)})`),lt(o,n)):(!r||r.score<u.score)&&(r=u)}return r}stackToTree(e){return e.close(),M.build({buffer:qe.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(it||=new WeakMap).get(e);return t||it.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function lt(e,t){for(let n=0;n<t.length;n++){let r=t[n];if(r.pos==e.pos&&r.sameState(e)){t[n].score<e.score&&(t[n]=e);return}}t.push(e)}var ut=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}},dt=class e extends He{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(` `);this.minRepeatTerm=t.length;for(let n=0;n<e.repeatNodeCount;n++)t.push(``);let n=Object.keys(e.topRules).map(t=>e.topRules[t][1]),r=[];for(let e=0;e<t.length;e++)r.push([]);function i(e,t,n){r[e].push([t,t.deserialize(String(n))])}if(e.nodeProps)for(let t of e.nodeProps){let e=t[0];typeof e==`string`&&(e=A[e]);for(let n=1;n<t.length;){let r=t[n++];if(r>=0)i(r,e,t[n++]);else{let a=t[n+-r];for(let o=-r;o>0;o--)i(t[n++],e,a);n++}}}this.nodeSet=new ye(t.map((t,i)=>ve.define({name:i>=this.minRepeatTerm?void 0:t,id:i,props:r[i],top:n.indexOf(i)>-1,error:i==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(i)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=pe;let a=Je(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let e=0;e<this.specializerSpecs.length;e++)this.specialized[e]=this.specializerSpecs[e].term;this.specializers=this.specializerSpecs.map(mt),this.states=Je(e.states,Uint32Array),this.data=Je(e.stateData),this.goto=Je(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(e=>typeof e==`number`?new Qe(a,e):e),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new ct(this,e,t,n);for(let i of this.wrappers)r=i(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let i=r[t+1];;){let t=r[i++],a=t&1,o=r[i++];if(a&&n)return o;for(let n=i+(t>>1);i<n;i++)if(r[i]==e)return o;if(a)return-1}}hasAction(e,t){let n=this.data;for(let r=0;r<2;r++)for(let i=this.stateSlot(e,r?2:1),a;;i+=3){if((a=n[i])==65535)if(n[i+1]==1)a=n[i=ft(n,i+2)];else if(n[i+1]==2)return ft(n,i+2);else break;if(a==t||a==0)return ft(n,i+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,e=>e==t||null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let n=this.stateSlot(e,1);r==null;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=ft(this.data,n+2);else break;r=t(ft(this.data,n+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=ft(this.data,n+2);else break;if(!(this.data[n+2]&1)){let e=this.data[n+1];t.some((t,n)=>n&1&&t==e)||t.push(this.data[n],e)}}return t}configure(t){let n=Object.assign(Object.create(e.prototype),this);if(t.props&&(n.nodeSet=this.nodeSet.extend(...t.props)),t.top){let e=this.topRules[t.top];if(!e)throw RangeError(`Invalid top rule name ${t.top}`);n.top=e}return t.tokenizers&&(n.tokenizers=this.tokenizers.map(e=>{let n=t.tokenizers.find(t=>t.from==e);return n?n.to:e})),t.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((e,r)=>{let i=t.specializers.find(t=>t.from==e.external);if(!i)return e;let a=Object.assign(Object.assign({},e),{external:i.to});return n.specializers[r]=mt(a),a})),t.contextTracker&&(n.context=t.contextTracker),t.dialect&&(n.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(n.strict=t.strict),t.wrap&&(n.wrappers=n.wrappers.concat(t.wrap)),t.bufferLength!=null&&(n.bufferLength=t.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let r of e.split(` `)){let e=t.indexOf(r);e>=0&&(n[e]=!0)}let r=null;for(let e=0;e<t.length;e++)if(!n[e])for(let n=this.dialects[t[e]],i;(i=this.data[n++])!=65535;)(r||=new Uint8Array(this.maxTerm+1))[i]=1;return new ut(e,n,r)}static deserialize(t){return new e(t)}};function ft(e,t){return e[t]|e[t+1]<<16}function pt(e){let t=null;for(let n of e){let e=n.p.stoppedAt;(n.pos==n.p.stream.end||e!=null&&n.pos>e)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.score<n.score)&&(t=n)}return t}function mt(e){if(e.external){let t=+!!e.extend;return(n,r)=>e.external(n,r)<<1|t}return e.get}var ht=0,gt=class e{constructor(e,t,n,r){this.name=e,this.set=t,this.base=n,this.modified=r,this.id=ht++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(t,n){let r=typeof t==`string`?t:`?`;if(t instanceof e&&(n=t),n?.base)throw Error(`Can not derive from a modified tag`);let i=new e(r,[],null,[]);if(i.set.push(i),n)for(let e of n.set)i.set.push(e);return i}static defineModifier(e){let t=new vt(e);return e=>e.modified.indexOf(t)>-1?e:vt.get(e.base||e,e.modified.concat(t).sort((e,t)=>e.id-t.id))}},_t=0,vt=class e{constructor(e){this.name=e,this.instances=[],this.id=_t++}static get(t,n){if(!n.length)return t;let r=n[0].instances.find(e=>e.base==t&&yt(n,e.modified));if(r)return r;let i=[],a=new gt(t.name,i,t,n);for(let e of n)e.instances.push(a);let o=bt(n);for(let n of t.set)if(!n.modified.length)for(let t of o)i.push(e.get(n,t));return a}};function yt(e,t){return e.length==t.length&&e.every((e,n)=>e==t[n])}function bt(e){let t=[[]];for(let n=0;n<e.length;n++)for(let r=0,i=t.length;r<i;r++)t.push(t[r].concat(e[n]));return t.sort((e,t)=>t.length-e.length)}function xt(e){let t=Object.create(null);for(let n in e){let r=e[n];Array.isArray(r)||(r=[r]);for(let e of n.split(` `))if(e){let n=[],i=2,a=e;for(let t=0;;){if(a==`...`&&t>0&&t+3==e.length){i=1;break}let r=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!r)throw RangeError(`Invalid path: `+e);if(n.push(r[0]==`*`?``:r[0][0]==`"`?JSON.parse(r[0]):r[0]),t+=r[0].length,t==e.length)break;let o=e[t++];if(t==e.length&&o==`!`){i=0;break}if(o!=`/`)throw RangeError(`Invalid path: `+e);a=e.slice(t)}let o=n.length-1,s=n[o];if(!s)throw RangeError(`Invalid path: `+e);t[s]=new Ct(r,i,o>0?n.slice(0,o):null).sort(t[s])}}return St.add(t)}var St=new A({combine(e,t){let n,r,i;for(;e||t;){if(!e||t&&e.depth>=t.depth?(i=t,t=t.next):(i=e,e=e.next),n&&n.mode==i.mode&&!i.context&&!n.context)continue;let a=new Ct(i.tags,i.mode,i.context);n?n.next=a:r=a,n=a}return r}}),Ct=class{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}};Ct.empty=new Ct([],2,null);function wt(e,t){let n=Object.create(null);for(let t of e)if(!Array.isArray(t.tag))n[t.tag.id]=t.class;else for(let e of t.tag)n[e.id]=t.class;let{scope:r,all:i=null}=t||{};return{style:e=>{let t=i;for(let r of e)for(let e of r.set){let r=n[e.id];if(r){t=t?t+` `+r:r;break}}return t},scope:r}}function Tt(e,t){let n=null;for(let r of e){let e=r.style(t);e&&(n=n?n+` `+e:e)}return n}function Et(e,t,n,r=0,i=e.length){let a=new Dt(r,Array.isArray(t)?t:[t],n);a.highlightRange(e.cursor(),r,i,``,a.highlighters),a.flush(i)}var Dt=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=``}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,i){let{type:a,from:o,to:s}=e;if(o>=n||s<=t)return;a.isTop&&(i=this.highlighters.filter(e=>!e.scope||e.scope(a)));let c=r,l=Ot(e)||Ct.empty,u=Tt(i,l.tags);if(u&&(c&&(c+=` `),c+=u,l.mode==1&&(r+=(r?` `:``)+u)),this.startSpan(Math.max(t,o),c),l.opaque)return;let d=e.tree&&e.tree.prop(A.mounted);if(d&&d.overlay){let a=e.node.enter(d.overlay[0].from+o,1),l=this.highlighters.filter(e=>!e.scope||e.scope(d.tree.type)),u=e.firstChild();for(let f=0,p=o;;f++){let m=f<d.overlay.length?d.overlay[f]:null,h=m?m.from+o:s,g=Math.max(t,p),_=Math.min(n,h);if(g<_&&u)for(;e.from<_&&(this.highlightRange(e,g,_,r,i),this.startSpan(Math.min(_,e.to),c),!(e.to>=h||!e.nextSibling())););if(!m||h>n)break;p=m.to+o,p>t&&(this.highlightRange(a.cursor(),Math.max(t,m.from+o),Math.min(n,p),``,l),this.startSpan(Math.min(n,p),c))}u&&e.parent()}else if(e.firstChild()){d&&(r=``);do{if(e.to<=t)continue;if(e.from>=n)break;this.highlightRange(e,t,n,r,i),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}};function Ot(e){let t=e.type.prop(St);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}var N=gt.define,kt=N(),At=N(),jt=N(At),Mt=N(At),Nt=N(),Pt=N(Nt),Ft=N(Nt),It=N(),Lt=N(It),Rt=N(),zt=N(),Bt=N(),Vt=N(Bt),Ht=N(),P={comment:kt,lineComment:N(kt),blockComment:N(kt),docComment:N(kt),name:At,variableName:N(At),typeName:jt,tagName:N(jt),propertyName:Mt,attributeName:N(Mt),className:N(At),labelName:N(At),namespace:N(At),macroName:N(At),literal:Nt,string:Pt,docString:N(Pt),character:N(Pt),attributeValue:N(Pt),number:Ft,integer:N(Ft),float:N(Ft),bool:N(Nt),regexp:N(Nt),escape:N(Nt),color:N(Nt),url:N(Nt),keyword:Rt,self:N(Rt),null:N(Rt),atom:N(Rt),unit:N(Rt),modifier:N(Rt),operatorKeyword:N(Rt),controlKeyword:N(Rt),definitionKeyword:N(Rt),moduleKeyword:N(Rt),operator:zt,derefOperator:N(zt),arithmeticOperator:N(zt),logicOperator:N(zt),bitwiseOperator:N(zt),compareOperator:N(zt),updateOperator:N(zt),definitionOperator:N(zt),typeOperator:N(zt),controlOperator:N(zt),punctuation:Bt,separator:N(Bt),bracket:Vt,angleBracket:N(Vt),squareBracket:N(Vt),paren:N(Vt),brace:N(Vt),content:It,heading:Lt,heading1:N(Lt),heading2:N(Lt),heading3:N(Lt),heading4:N(Lt),heading5:N(Lt),heading6:N(Lt),contentSeparator:N(It),list:N(It),quote:N(It),emphasis:N(It),strong:N(It),link:N(It),monospace:N(It),strikethrough:N(It),inserted:N(),deleted:N(),changed:N(),invalid:N(),meta:Ht,documentMeta:N(Ht),annotation:N(Ht),processingInstruction:N(Ht),definition:gt.defineModifier(`definition`),constant:gt.defineModifier(`constant`),function:gt.defineModifier(`function`),standard:gt.defineModifier(`standard`),local:gt.defineModifier(`local`),special:gt.defineModifier(`special`)};for(let e in P){let t=P[e];t instanceof gt&&(t.name=e)}wt([{tag:P.link,class:`tok-link`},{tag:P.heading,class:`tok-heading`},{tag:P.emphasis,class:`tok-emphasis`},{tag:P.strong,class:`tok-strong`},{tag:P.keyword,class:`tok-keyword`},{tag:P.atom,class:`tok-atom`},{tag:P.bool,class:`tok-bool`},{tag:P.url,class:`tok-url`},{tag:P.labelName,class:`tok-labelName`},{tag:P.inserted,class:`tok-inserted`},{tag:P.deleted,class:`tok-deleted`},{tag:P.literal,class:`tok-literal`},{tag:P.string,class:`tok-string`},{tag:P.number,class:`tok-number`},{tag:[P.regexp,P.escape,P.special(P.string)],class:`tok-string2`},{tag:P.variableName,class:`tok-variableName`},{tag:P.local(P.variableName),class:`tok-variableName tok-local`},{tag:P.definition(P.variableName),class:`tok-variableName tok-definition`},{tag:P.special(P.variableName),class:`tok-variableName2`},{tag:P.definition(P.propertyName),class:`tok-propertyName tok-definition`},{tag:P.typeName,class:`tok-typeName`},{tag:P.namespace,class:`tok-namespace`},{tag:P.className,class:`tok-className`},{tag:P.macroName,class:`tok-macroName`},{tag:P.propertyName,class:`tok-propertyName`},{tag:P.operator,class:`tok-operator`},{tag:P.comment,class:`tok-comment`},{tag:P.meta,class:`tok-meta`},{tag:P.invalid,class:`tok-invalid`},{tag:P.punctuation,class:`tok-punctuation`}]);var Ut=xt({String:P.string,Number:P.number,"True False":P.bool,PropertyName:P.propertyName,Null:P.null,", :":P.separator,"[ ]":P.squareBracket,"{ }":P.brace}),Wt=dt.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:`#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O`,goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:`⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array`,maxTerm:25,nodeProps:[[`isolate`,-2,6,11,``],[`openedBy`,7,`{`,14,`[`],[`closedBy`,8,`}`,15,`]`]],propSources:[Ut],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),Gt=[],Kt=[];(()=>{let e=`lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o`.split(`,`).map(e=>e?parseInt(e,36):1);for(let t=0,n=0;t<e.length;t++)(t%2?Kt:Gt).push(n+=e[t])})();function qt(e){if(e<768)return!1;for(let t=0,n=Gt.length;;){let r=t+n>>1;if(e<Gt[r])n=r;else if(e>=Kt[r])t=r+1;else return!0;if(t==n)return!1}}function Jt(e){return e>=127462&&e<=127487}var Yt=8205;function Xt(e,t,n=!0,r=!0){return(n?Zt:Qt)(e,t,r)}function Zt(e,t,n){if(t==e.length)return t;t&&en(e.charCodeAt(t))&&tn(e.charCodeAt(t-1))&&t--;let r=$t(e,t);for(t+=nn(r);t<e.length;){let i=$t(e,t);if(r==Yt||i==Yt||n&&qt(i))t+=nn(i),r=i;else if(Jt(i)){let n=0,r=t-2;for(;r>=0&&Jt($t(e,r));)n++,r-=2;if(n%2==0)break;t+=2}else break}return t}function Qt(e,t,n){for(;t>1;){let r=Zt(e,t-2,n);if(r<t)return r;t--}return 0}function $t(e,t){let n=e.charCodeAt(t);if(!tn(n)||t+1==e.length)return n;let r=e.charCodeAt(t+1);return en(r)?(n-55296<<10)+(r-56320)+65536:n}function en(e){return e>=56320&&e<57344}function tn(e){return e>=55296&&e<56320}function nn(e){return e<65536?1:2}var F=class e{lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=pn(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),an.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=pn(this,e,t);let n=[];return this.decompose(e,t,n,0),an.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new ln(this),i=new ln(e);for(let e=t,a=t;;){if(r.next(e),i.next(e),e=0,r.lineBreak!=i.lineBreak||r.done!=i.done||r.value!=i.value)return!1;if(a+=r.value.length,r.done||a>=n)return!0}}iter(e=1){return new ln(this,e)}iterRange(e,t=this.length){return new un(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t??=this.lines+1;let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new dn(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(t){if(t.length==0)throw RangeError(`A document must have at least one line`);return t.length==1&&!t[0]?e.empty:t.length<=32?new rn(t):an.from(rn.split(t,[]))}},rn=class e extends F{constructor(e,t=on(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let i=0;;i++){let a=this.text[i],o=r+a.length;if((t?n:o)>=e)return new fn(r,o,n,a);r=o+1,n++}}decompose(t,n,r,i){let a=t<=0&&n>=this.length?this:new e(cn(this.text,t,n),Math.min(n,this.length)-Math.max(0,t));if(i&1){let t=r.pop(),n=sn(a.text,t.text.slice(),0,a.length);if(n.length<=32)r.push(new e(n,t.length+a.length));else{let t=n.length>>1;r.push(new e(n.slice(0,t)),new e(n.slice(t)))}}else r.push(a)}replace(t,n,r){if(!(r instanceof e))return super.replace(t,n,r);[t,n]=pn(this,t,n);let i=sn(this.text,sn(r.text,cn(this.text,0,t)),n),a=this.length+r.length-(n-t);return i.length<=32?new e(i,a):an.from(e.split(i,[]),a)}sliceString(e,t=this.length,n=`
|
|
2
2
|
`){[e,t]=pn(this,e,t);let r=``;for(let i=0,a=0;i<=t&&a<this.text.length;a++){let o=this.text[a],s=i+o.length;i>e&&a&&(r+=n),e<s&&t>i&&(r+=o.slice(Math.max(0,e-i),t-i)),i=s+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(t,n){let r=[],i=-1;for(let a of t)r.push(a),i+=a.length+1,r.length==32&&(n.push(new e(r,i)),r=[],i=-1);return i>-1&&n.push(new e(r,i)),n}},an=class e extends F{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let t of e)this.lines+=t.lines}lineInner(e,t,n,r){for(let i=0;;i++){let a=this.children[i],o=r+a.length,s=n+a.lines-1;if((t?s:o)>=e)return a.lineInner(e,t,n,r);r=o+1,n=s+1}}decompose(e,t,n,r){for(let i=0,a=0;a<=t&&i<this.children.length;i++){let o=this.children[i],s=a+o.length;if(e<=s&&t>=a){let i=r&(a<=e|(s>=t?2:0));a>=e&&s<=t&&!i?n.push(o):o.decompose(e-a,t-a,n,i)}a=s+1}}replace(t,n,r){if([t,n]=pn(this,t,n),r.lines<this.lines)for(let i=0,a=0;i<this.children.length;i++){let o=this.children[i],s=a+o.length;if(t>=a&&n<=s){let c=o.replace(t-a,n-a,r),l=this.lines-o.lines+c.lines;if(c.lines<l>>4&&c.lines>l>>6){let a=this.children.slice();return a[i]=c,new e(a,this.length-(n-t)+r.length)}return super.replace(a,s,c)}a=s+1}return super.replace(t,n,r)}sliceString(e,t=this.length,n=`
|
|
3
3
|
`){[e,t]=pn(this,e,t);let r=``;for(let i=0,a=0;i<this.children.length&&a<=t;i++){let o=this.children[i],s=a+o.length;a>e&&i&&(r+=n),e<s&&t>a&&(r+=o.sliceString(e-a,t-a,n)),a=s+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(t,n){if(!(t instanceof e))return 0;let r=0,[i,a,o,s]=n>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;i+=n,a+=n){if(i==o||a==s)return r;let e=this.children[i],c=t.children[a];if(e!=c)return r+e.scanIdentical(c,n);r+=e.length+1}}static from(t,n=t.reduce((e,t)=>e+t.length+1,-1)){let r=0;for(let e of t)r+=e.lines;if(r<32){let e=[];for(let n of t)n.flatten(e);return new rn(e,n)}let i=Math.max(32,r>>5),a=i<<1,o=i>>1,s=[],c=0,l=-1,u=[];function d(t){let n;if(t.lines>a&&t instanceof e)for(let e of t.children)d(e);else t.lines>o&&(c>o||!c)?(f(),s.push(t)):t instanceof rn&&c&&(n=u[u.length-1])instanceof rn&&t.lines+n.lines<=32?(c+=t.lines,l+=t.length+1,u[u.length-1]=new rn(n.text.concat(t.text),n.length+1+t.length)):(c+t.lines>i&&f(),c+=t.lines,l+=t.length+1,u.push(t))}function f(){c!=0&&(s.push(u.length==1?u[0]:e.from(u,l)),l=-1,c=u.length=0)}for(let e of t)d(e);return f(),s.length==1?s[0]:new e(s,n)}};F.empty=new rn([``],0);function on(e){let t=-1;for(let n of e)t+=n.length+1;return t}function sn(e,t,n=0,r=1e9){for(let i=0,a=0,o=!0;a<e.length&&i<=r;a++){let s=e[a],c=i+s.length;c>=n&&(c>r&&(s=s.slice(0,r-i)),i<n&&(s=s.slice(n-i)),o?(t[t.length-1]+=s,o=!1):t.push(s)),i=c+1}return t}function cn(e,t,n){return sn(e,[``],t,n)}var ln=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value=``,this.nodes=[e],this.offsets=[t>0?1:(e instanceof rn?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],i=this.offsets[n],a=i>>1,o=r instanceof rn?r.text.length:r.children.length;if(a==(t>0?o:0)){if(n==0)return this.done=!0,this.value=``,this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((i&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
|
|
4
4
|
`,this;e--}else if(r instanceof rn){let i=r.text[a+(t<0?-1:0)];if(this.offsets[n]+=t,i.length>Math.max(0,e))return this.value=e==0?i:t>0?i.slice(e):i.slice(0,i.length-e),this;e-=i.length}else{let i=r.children[a+(t<0?-1:0)];e>i.length?(e-=i.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(i),this.offsets.push(t>0?1:(i instanceof rn?i.text.length:i.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},un=class{constructor(e,t,n){this.value=``,this.done=!1,this.cursor=new ln(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value=``,this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=``}},dn=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value=``,this.done=!1}next(e=0){let{done:t,lineBreak:n,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value=``,this.afterBreak=!1):t?(this.done=!0,this.value=``):n?this.afterBreak?this.value=``:(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<`u`&&(F.prototype[Symbol.iterator]=function(){return this.iter()},ln.prototype[Symbol.iterator]=un.prototype[Symbol.iterator]=dn.prototype[Symbol.iterator]=function(){return this});var fn=class{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}};function pn(e,t,n){return t=Math.max(0,Math.min(e.length,t)),[t,Math.max(t,Math.min(e.length,n))]}function I(e,t,n=!0,r=!0){return Xt(e,t,n,r)}function mn(e){return e>=56320&&e<57344}function hn(e){return e>=55296&&e<56320}function gn(e,t){let n=e.charCodeAt(t);if(!hn(n)||t+1==e.length)return n;let r=e.charCodeAt(t+1);return mn(r)?(n-55296<<10)+(r-56320)+65536:n}function _n(e){return e<65536?1:2}var vn=/\r\n?|\n/,yn=(function(e){return e[e.Simple=0]=`Simple`,e[e.TrackDel=1]=`TrackDel`,e[e.TrackBefore=2]=`TrackBefore`,e[e.TrackAfter=3]=`TrackAfter`,e})(yn||={}),bn=class e{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,r=0;t<this.sections.length;){let i=this.sections[t++],a=this.sections[t++];a<0?(e(n,r,i),r+=i):r+=a,n+=i}}iterChangedRanges(e,t=!1){Cn(this,e,t)}get invertedDesc(){let t=[];for(let e=0;e<this.sections.length;){let n=this.sections[e++],r=this.sections[e++];r<0?t.push(n,r):t.push(r,n)}return new e(t)}composeDesc(e){return this.empty?e:e.empty?this:Tn(this,e)}mapDesc(e,t=!1){return e.empty?this:wn(this,e,t)}mapPos(e,t=-1,n=yn.Simple){let r=0,i=0;for(let a=0;a<this.sections.length;){let o=this.sections[a++],s=this.sections[a++],c=r+o;if(s<0){if(c>e)return i+(e-r);i+=o}else{if(n!=yn.Simple&&c>=e&&(n==yn.TrackDel&&r<e&&c>e||n==yn.TrackBefore&&r<e||n==yn.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!o)return e==r||t<0?i:i+s;i+=s}r=c}if(e>r)throw RangeError(`Position ${e} is out of range for changeset of length ${r}`);return i}touchesRange(e,t=e){for(let n=0,r=0;n<this.sections.length&&r<=t;){let i=this.sections[n++],a=this.sections[n++],o=r+i;if(a>=0&&r<=t&&o>=e)return r<e&&o>t?`cover`:!0;r=o}return!1}toString(){let e=``;for(let t=0;t<this.sections.length;){let n=this.sections[t++],r=this.sections[t++];e+=(e?` `:``)+n+(r>=0?`:`+r:``)}return e}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some(e=>typeof e!=`number`))throw RangeError(`Invalid JSON representation of ChangeDesc`);return new e(t)}static create(t){return new e(t)}},xn=class e extends bn{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw RangeError(`Applying change set to a document with the wrong length`);return Cn(this,(t,n,r,i,a)=>e=e.replace(r,r+(n-t),a),!1),e}mapDesc(e,t=!1){return wn(this,e,t,!0)}invert(t){let n=this.sections.slice(),r=[];for(let e=0,i=0;e<n.length;e+=2){let a=n[e],o=n[e+1];if(o>=0){n[e]=o,n[e+1]=a;let s=e>>1;for(;r.length<s;)r.push(F.empty);r.push(a?t.slice(i,i+a):F.empty)}i+=a}return new e(n,r)}compose(e){return this.empty?e:e.empty?this:Tn(this,e,!0)}map(e,t=!1){return e.empty?this:wn(this,e,t,!0)}iterChanges(e,t=!1){Cn(this,e,t)}get desc(){return bn.create(this.sections)}filter(t){let n=[],r=[],i=[],a=new En(this);done:for(let e=0,o=0;;){let s=e==t.length?1e9:t[e++];for(;o<s||o==s&&a.len==0;){if(a.done)break done;let e=Math.min(a.len,s-o);L(i,e,-1);let t=a.ins==-1?-1:a.off==0?a.ins:0;L(n,e,t),t>0&&Sn(r,n,a.text),a.forward(e),o+=e}let c=t[e++];for(;o<c;){if(a.done)break done;let e=Math.min(a.len,c-o);L(n,e,-1),L(i,e,a.ins==-1?-1:a.off==0?a.ins:0),a.forward(e),o+=e}}return{changes:new e(n,r),filtered:bn.create(i)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],r=this.sections[t+1];r<0?e.push(n):r==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(t,n,r){let i=[],a=[],o=0,s=null;function c(t=!1){if(!t&&!i.length)return;o<n&&L(i,n-o,-1);let r=new e(i,a);s=s?s.compose(r.map(s)):r,i=[],a=[],o=0}function l(t){if(Array.isArray(t))for(let e of t)l(e);else if(t instanceof e){if(t.length!=n)throw RangeError(`Mismatched change set length (got ${t.length}, expected ${n})`);c(),s=s?s.compose(t.map(s)):t}else{let{from:e,to:s=e,insert:l}=t;if(e>s||e<0||s>n)throw RangeError(`Invalid change range ${e} to ${s} (in doc of length ${n})`);let u=l?typeof l==`string`?F.of(l.split(r||vn)):l:F.empty,d=u.length;if(e==s&&d==0)return;e<o&&c(),e>o&&L(i,e-o,-1),L(i,s-e,d),Sn(a,i,u),o=s}}return l(t),c(!s),s}static empty(t){return new e(t?[t,-1]:[],[])}static fromJSON(t){if(!Array.isArray(t))throw RangeError(`Invalid JSON representation of ChangeSet`);let n=[],r=[];for(let e=0;e<t.length;e++){let i=t[e];if(typeof i==`number`)n.push(i,-1);else if(!Array.isArray(i)||typeof i[0]!=`number`||i.some((e,t)=>t&&typeof e!=`string`))throw RangeError(`Invalid JSON representation of ChangeSet`);else if(i.length==1)n.push(i[0],0);else{for(;r.length<e;)r.push(F.empty);r[e]=F.of(i.slice(1)),n.push(i[0],r[e].length)}}return new e(n,r)}static createSet(t,n){return new e(t,n)}};function L(e,t,n,r=!1){if(t==0&&n<=0)return;let i=e.length-2;i>=0&&n<=0&&n==e[i+1]?e[i]+=t:i>=0&&t==0&&e[i]==0?e[i+1]+=n:r?(e[i]+=t,e[i+1]+=n):e.push(t,n)}function Sn(e,t,n){if(n.length==0)return;let r=t.length-2>>1;if(r<e.length)e[e.length-1]=e[e.length-1].append(n);else{for(;e.length<r;)e.push(F.empty);e.push(n)}}function Cn(e,t,n){let r=e.inserted;for(let i=0,a=0,o=0;o<e.sections.length;){let s=e.sections[o++],c=e.sections[o++];if(c<0)i+=s,a+=s;else{let l=i,u=a,d=F.empty;for(;l+=s,u+=c,c&&r&&(d=d.append(r[o-2>>1])),!(n||o==e.sections.length||e.sections[o+1]<0);)s=e.sections[o++],c=e.sections[o++];t(i,l,a,u,d),i=l,a=u}}}function wn(e,t,n,r=!1){let i=[],a=r?[]:null,o=new En(e),s=new En(t);for(let e=-1;;)if(o.done&&s.len||s.done&&o.len)throw Error(`Mismatched change set lengths`);else if(o.ins==-1&&s.ins==-1){let e=Math.min(o.len,s.len);L(i,e,-1),o.forward(e),s.forward(e)}else if(s.ins>=0&&(o.ins<0||e==o.i||o.off==0&&(s.len<o.len||s.len==o.len&&!n))){let t=s.len;for(L(i,s.ins,-1);t;){let n=Math.min(o.len,t);o.ins>=0&&e<o.i&&o.len<=n&&(L(i,0,o.ins),a&&Sn(a,i,o.text),e=o.i),o.forward(n),t-=n}s.next()}else if(o.ins>=0){let t=0,n=o.len;for(;n;)if(s.ins==-1){let e=Math.min(n,s.len);t+=e,n-=e,s.forward(e)}else if(s.ins==0&&s.len<n)n-=s.len,s.next();else break;L(i,t,e<o.i?o.ins:0),a&&e<o.i&&Sn(a,i,o.text),e=o.i,o.forward(o.len-n)}else if(o.done&&s.done)return a?xn.createSet(i,a):bn.create(i);else throw Error(`Mismatched change set lengths`)}function Tn(e,t,n=!1){let r=[],i=n?[]:null,a=new En(e),o=new En(t);for(let e=!1;;)if(a.done&&o.done)return i?xn.createSet(r,i):bn.create(r);else if(a.ins==0)L(r,a.len,0,e),a.next();else if(o.len==0&&!o.done)L(r,0,o.ins,e),i&&Sn(i,r,o.text),o.next();else if(a.done||o.done)throw Error(`Mismatched change set lengths`);else{let t=Math.min(a.len2,o.len),n=r.length;if(a.ins==-1){let n=o.ins==-1?-1:o.off?0:o.ins;L(r,t,n,e),i&&n&&Sn(i,r,o.text)}else o.ins==-1?(L(r,a.off?0:a.len,t,e),i&&Sn(i,r,a.textBit(t))):(L(r,a.off?0:a.len,o.off?0:o.ins,e),i&&!o.off&&Sn(i,r,o.text));e=(a.ins>t||o.ins>=0&&o.len>t)&&(e||r.length>n),a.forward2(t),o.forward(t)}}var En=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?F.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?F.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Dn=class e{constructor(e,t,n,r){this.from=e,this.to=t,this.flags=n,this.goalColumn=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(t,n=-1){let r,i;return this.empty?r=i=t.mapPos(this.from,n):(r=t.mapPos(this.from,1),i=t.mapPos(this.to,-1)),r==this.from&&i==this.to?this:new e(r,i,this.flags,this.goalColumn)}extend(e,t=e,n=0){if(e<=this.anchor&&t>=this.anchor)return R.range(e,t,void 0,void 0,n);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return R.range(this.anchor,r,void 0,void 0,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!=`number`||typeof e.head!=`number`)throw RangeError(`Invalid JSON representation for SelectionRange`);return R.range(e.anchor,e.head)}static create(t,n,r,i){return new e(t,n,r,i)}},R=class e{constructor(e,t){this.ranges=e,this.mainIndex=t}map(t,n=-1){return t.empty?this:e.create(this.ranges.map(e=>e.map(t,n)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new e([this.main],0)}addRange(t,n=!0){return e.create([t].concat(this.ranges),n?0:this.mainIndex+1)}replaceRange(t,n=this.mainIndex){let r=this.ranges.slice();return r[n]=t,e.create(r,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||typeof t.main!=`number`||t.main>=t.ranges.length)throw RangeError(`Invalid JSON representation for EditorSelection`);return new e(t.ranges.map(e=>Dn.fromJSON(e)),t.main)}static single(t,n=t){return new e([e.range(t,n)],0)}static create(t,n=0){if(t.length==0)throw RangeError(`A selection needs at least one range`);for(let r=0,i=0;i<t.length;i++){let a=t[i];if(a.empty?a.from<=r:a.from<r)return e.normalized(t.slice(),n);r=a.to}return new e(t,n)}static cursor(e,t=0,n,r){return Dn.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n)),r)}static range(e,t,n,r,i){let a=r==null?7:Math.min(6,r);return!i&&e!=t&&(i=t<e?1:-1),i&&(a|=i<0?8:16),t<e?Dn.create(t,e,a|32,n):Dn.create(e,t,a,n)}static undirectionalRange(e,t){return Dn.create(e,t,64,void 0)}static normalized(t,n=0){let r=t[n];t.sort((e,t)=>e.from-t.from),n=t.indexOf(r);for(let r=1;r<t.length;r++){let i=t[r],a=t[r-1];if(i.empty?i.from<=a.to:i.from<a.to){let o=a.from,s=Math.max(i.to,a.to);r<=n&&n--,t.splice(--r,2,i.anchor>i.head?e.range(s,o):e.range(o,s))}}return new e(t,n)}};function On(e,t){for(let n of e.ranges)if(n.to>t)throw RangeError(`Selection points outside of document`)}var kn=0,z=class e{constructor(e,t,n,r,i){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=kn++,this.default=e([]),this.extensions=typeof i==`function`?i(this):i}get reader(){return this}static define(t={}){return new e(t.combine||(e=>e),t.compareInput||((e,t)=>e===t),t.compare||(t.combine?(e,t)=>e===t:An),!!t.static,t.enables)}of(e){return new jn([],this,0,e)}compute(e,t){if(this.isStatic)throw Error(`Can't compute a static facet`);return new jn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw Error(`Can't compute a static facet`);return new jn(e,this,2,t)}from(e,t){return t||=e=>e,this.compute([e],n=>t(n.field(e)))}};function An(e,t){return e==t||e.length==t.length&&e.every((e,n)=>e===t[n])}var jn=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=kn++}dynamicSlot(e){let t=this.value,n=this.facet.compareInput,r=this.id,i=e[r]>>1,a=this.type==2,o=!1,s=!1,c=[];for(let t of this.dependencies)t==`doc`?o=!0:t==`selection`?s=!0:(e[t.id]??1)&1||c.push(e[t.id]);return{create(e){return e.values[i]=t(e),1},update(e,r){if(o&&r.docChanged||s&&(r.docChanged||r.selection)||Nn(e,c)){let r=t(e);if(a?!Mn(r,e.values[i],n):!n(r,e.values[i]))return e.values[i]=r,1}return 0},reconfigure:(e,o)=>{let s,c=o.config.address[r];if(c!=null){let r=Kn(o,c);if(this.dependencies.every(t=>t instanceof z?o.facet(t)===e.facet(t):t instanceof In?o.field(t,!1)==e.field(t,!1):!0)||(a?Mn(s=t(e),r,n):n(s=t(e),r)))return e.values[i]=r,0}else s=t(e);return e.values[i]=s,1}}}get extension(){return this}};function Mn(e,t,n){if(e.length!=t.length)return!1;for(let r=0;r<e.length;r++)if(!n(e[r],t[r]))return!1;return!0}function Nn(e,t){let n=!1;for(let r of t)Gn(e,r)&1&&(n=!0);return n}function Pn(e,t,n){let r=n.map(t=>e[t.id]),i=n.map(e=>e.type),a=r.filter(e=>!(e&1)),o=e[t.id]>>1;function s(e){let n=[];for(let t=0;t<r.length;t++){let a=Kn(e,r[t]);if(i[t]==2)for(let e of a)n.push(e);else n.push(a)}return t.combine(n)}return{create(e){for(let t of r)Gn(e,t);return e.values[o]=s(e),1},update(e,n){if(!Nn(e,a))return 0;let r=s(e);return t.compare(r,e.values[o])?0:(e.values[o]=r,1)},reconfigure(e,i){let a=Nn(e,r),c=i.config.facets[t.id],l=i.facet(t);if(c&&!a&&An(n,c))return e.values[o]=l,0;let u=s(e);return t.compare(u,l)?(e.values[o]=l,0):(e.values[o]=u,1)}}}var Fn=z.define({static:!0}),In=class e{constructor(e,t,n,r,i){this.id=e,this.createF=t,this.updateF=n,this.compareF=r,this.spec=i,this.provides=void 0}static define(t){let n=new e(kn++,t.create,t.update,t.compare||((e,t)=>e===t),t);return t.provide&&(n.provides=t.provide(n)),n}create(e){return(e.facet(Fn).find(e=>e.field==this)?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:e=>(e.values[t]=this.create(e),1),update:(e,n)=>{let r=e.values[t],i=this.updateF(r,n);return this.compareF(r,i)?0:(e.values[t]=i,1)},reconfigure:(e,n)=>{let r=e.facet(Fn),i=n.facet(Fn),a;return(a=r.find(e=>e.field==this))&&a!=i.find(e=>e.field==this)?(e.values[t]=a.create(e),1):n.config.address[this.id]==null?(e.values[t]=this.create(e),1):(e.values[t]=n.field(this),0)}}}init(e){return[this,Fn.of({field:this,create:e})]}get extension(){return this}},Ln={lowest:4,low:3,default:2,high:1,highest:0};function Rn(e){return t=>new Bn(t,e)}var zn={highest:Rn(Ln.highest),high:Rn(Ln.high),default:Rn(Ln.default),low:Rn(Ln.low),lowest:Rn(Ln.lowest)},Bn=class{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},Vn=class e{of(e){return new Hn(this,e)}reconfigure(t){return e.reconfigure.of({compartment:this,extension:t})}get(e){return e.config.compartments.get(this)}},Hn=class{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},Un=class e{constructor(e,t,n,r,i,a){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=i,this.facets=a,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(t,n,r){let i=[],a=Object.create(null),o=new Map;for(let e of Wn(t,n,o))e instanceof In?i.push(e):(a[e.facet.id]||(a[e.facet.id]=[])).push(e);let s=Object.create(null),c=[],l=[];for(let e of i)s[e.id]=l.length<<1,l.push(t=>e.slot(t));let u=r?.config.facets;for(let e in a){let t=a[e],n=t[0].facet,i=u&&u[e]||[];if(t.every(e=>e.type==0))if(s[n.id]=c.length<<1|1,An(i,t))c.push(r.facet(n));else{let e=n.combine(t.map(e=>e.value));c.push(r&&n.compare(e,r.facet(n))?r.facet(n):e)}else{for(let e of t)e.type==0?(s[e.id]=c.length<<1|1,c.push(e.value)):(s[e.id]=l.length<<1,l.push(t=>e.dynamicSlot(t)));s[n.id]=l.length<<1,l.push(e=>Pn(e,n,t))}}let d=l.map(e=>e(s));return new e(t,o,d,s,c,a)}};function Wn(e,t,n){let r=[[],[],[],[],[]],i=new Map;function a(e,o){let s=i.get(e);if(s!=null){if(s<=o)return;let t=r[s].indexOf(e);t>-1&&r[s].splice(t,1),e instanceof Hn&&n.delete(e.compartment)}if(i.set(e,o),Array.isArray(e))for(let t of e)a(t,o);else if(e instanceof Hn){if(n.has(e.compartment))throw RangeError(`Duplicate use of compartment in extensions`);let r=t.get(e.compartment)||e.inner;n.set(e.compartment,r),a(r,o)}else if(e instanceof Bn)a(e.inner,e.prec);else if(e instanceof In)r[o].push(e),e.provides&&a(e.provides,o);else if(e instanceof jn)r[o].push(e),e.facet.extensions&&a(e.facet.extensions,Ln.default);else{let t=e.extension;if(!t)throw Error(`Unrecognized extension value in extension set (${e}).`);if(t==e)throw Error(`Unrecognized extension value in extension set (${e}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);a(t,o)}}return a(e,Ln.default),r.reduce((e,t)=>e.concat(t))}function Gn(e,t){if(t&1)return 2;let n=t>>1,r=e.status[n];if(r==4)throw Error(`Cyclic dependency between fields and/or facets`);if(r&2)return r;e.status[n]=4;let i=e.computeSlot(e,e.config.dynamicSlots[n]);return e.status[n]=2|i}function Kn(e,t){return t&1?e.config.staticValues[t>>1]:e.values[t>>1]}var qn=z.define(),Jn=z.define({combine:e=>e.some(e=>e),static:!0}),Yn=z.define({combine:e=>e.length?e[0]:void 0,static:!0}),Xn=z.define(),Zn=z.define(),Qn=z.define(),$n=z.define({combine:e=>e.length?e[0]:!1}),er=class{constructor(e,t){this.type=e,this.value=t}static define(){return new tr}},tr=class{of(e){return new er(this,e)}},nr=class{constructor(e){this.map=e}of(e){return new B(this,e)}},B=class e{constructor(e,t){this.type=e,this.value=t}map(t){let n=this.type.map(this.value,t);return n===void 0?void 0:n==this.value?this:new e(this.type,n)}is(e){return this.type==e}static define(e={}){return new nr(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let e=r.map(t);e&&n.push(e)}return n}};B.reconfigure=B.define(),B.appendConfig=B.define();var rr=class e{constructor(t,n,r,i,a,o){this.startState=t,this.changes=n,this.selection=r,this.effects=i,this.annotations=a,this.scrollIntoView=o,this._doc=null,this._state=null,r&&On(r,n.newLength),a.some(t=>t.type==e.time)||(this.annotations=a.concat(e.time.of(Date.now())))}static create(t,n,r,i,a,o){return new e(t,n,r,i,a,o)}get newDoc(){return this._doc||=this.changes.apply(this.startState.doc)}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let n=this.annotation(e.userEvent);return!!(n&&(n==t||n.length>t.length&&n.slice(0,t.length)==t&&n[t.length]==`.`))}};rr.time=er.define(),rr.userEvent=er.define(),rr.addToHistory=er.define(),rr.remote=er.define();function ir(e,t){let n=[];for(let r=0,i=0;;){let a,o;if(r<e.length&&(i==t.length||t[i]>=e[r]))a=e[r++],o=e[r++];else if(i<t.length)a=t[i++],o=t[i++];else return n;!n.length||n[n.length-1]<a?n.push(a,o):n[n.length-1]<o&&(n[n.length-1]=o)}}function ar(e,t,n){let r,i,a;return n?(r=t.changes,i=xn.empty(t.changes.length),a=e.changes.compose(t.changes)):(r=t.changes.map(e.changes),i=e.changes.mapDesc(t.changes,!0),a=e.changes.compose(r)),{changes:a,selection:t.selection?t.selection.map(i):e.selection?.map(r),effects:B.mapEffects(e.effects,r).concat(B.mapEffects(t.effects,i)),annotations:e.annotations.length?e.annotations.concat(t.annotations):t.annotations,scrollIntoView:e.scrollIntoView||t.scrollIntoView}}function or(e,t,n){let r=t.selection,i=dr(t.annotations);return t.userEvent&&(i=i.concat(rr.userEvent.of(t.userEvent))),{changes:t.changes instanceof xn?t.changes:xn.of(t.changes||[],n,e.facet(Yn)),selection:r&&(r instanceof R?r:R.single(r.anchor,r.head)),effects:dr(t.effects),annotations:i,scrollIntoView:!!t.scrollIntoView}}function sr(e,t,n){let r=or(e,t.length?t[0]:{},e.doc.length);t.length&&t[0].filter===!1&&(n=!1);for(let i=1;i<t.length;i++){t[i].filter===!1&&(n=!1);let a=!!t[i].sequential;r=ar(r,or(e,t[i],a?r.changes.newLength:e.doc.length),a)}let i=rr.create(e,r.changes,r.selection,r.effects,r.annotations,r.scrollIntoView);return lr(n?cr(i):i)}function cr(e){let t=e.startState,n=!0;for(let r of t.facet(Xn)){let t=r(e);if(t===!1){n=!1;break}Array.isArray(t)&&(n=n===!0?t:ir(n,t))}if(n!==!0){let r,i;if(n===!1)i=e.changes.invertedDesc,r=xn.empty(t.doc.length);else{let t=e.changes.filter(n);r=t.changes,i=t.filtered.mapDesc(t.changes).invertedDesc}e=rr.create(t,r,e.selection&&e.selection.map(i),B.mapEffects(e.effects,i),e.annotations,e.scrollIntoView)}let r=t.facet(Zn);for(let n=r.length-1;n>=0;n--){let i=r[n](e);e=i instanceof rr?i:Array.isArray(i)&&i.length==1&&i[0]instanceof rr?i[0]:sr(t,dr(i),!1)}return e}function lr(e){let t=e.startState,n=t.facet(Qn),r=e;for(let i=n.length-1;i>=0;i--){let a=n[i](e);a&&Object.keys(a).length&&(r=ar(r,or(t,a,e.changes.newLength),!0))}return r==e?e:rr.create(t,e.changes,e.selection,r.effects,r.annotations,r.scrollIntoView)}var ur=[];function dr(e){return e==null?ur:Array.isArray(e)?e:[e]}var fr=(function(e){return e[e.Word=0]=`Word`,e[e.Space=1]=`Space`,e[e.Other=2]=`Other`,e})(fr||={}),pr=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,mr;try{mr=RegExp(`[\\p{Alphabetic}\\p{Number}_]`,`u`)}catch{}function hr(e){if(mr)return mr.test(e);for(let t=0;t<e.length;t++){let n=e[t];if(/\w/.test(n)||n>``&&(n.toUpperCase()!=n.toLowerCase()||pr.test(n)))return!0}return!1}function gr(e){return t=>{if(!/\S/.test(t))return fr.Space;if(hr(t))return fr.Word;for(let n=0;n<e.length;n++)if(t.indexOf(e[n])>-1)return fr.Word;return fr.Other}}var V=class e{constructor(e,t,n,r,i,a){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=i,a&&(a._state=this);for(let e=0;e<this.config.dynamicSlots.length;e++)Gn(this,e<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw RangeError(`Field is not present in this state`);return}return Gn(this,n),Kn(this,n)}update(...e){return sr(this,e,!0)}applyTransaction(t){let n=this.config,{base:r,compartments:i}=n;for(let e of t.effects)e.is(Vn.reconfigure)?(n&&=(i=new Map,n.compartments.forEach((e,t)=>i.set(t,e)),null),i.set(e.value.compartment,e.value.extension)):e.is(B.reconfigure)?(n=null,r=e.value):e.is(B.appendConfig)&&(n=null,r=dr(r).concat(e.value));let a;n?a=t.startState.values.slice():(n=Un.resolve(r,i,this),a=new e(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(e,t)=>t.reconfigure(e,this),null).values);let o=t.startState.facet(Jn)?t.newSelection:t.newSelection.asSingle();new e(n,t.newDoc,o,a,(e,n)=>n.update(e,t),t)}replaceSelection(e){return typeof e==`string`&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:R.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),i=[n.range],a=dr(n.effects);for(let n=1;n<t.ranges.length;n++){let o=e(t.ranges[n]),s=this.changes(o.changes),c=s.map(r);for(let e=0;e<n;e++)i[e]=i[e].map(c);let l=r.mapDesc(s,!0);i.push(o.range.map(l)),r=r.compose(c),a=B.mapEffects(a,c).concat(B.mapEffects(dr(o.effects),l))}return{changes:r,selection:R.create(i,t.mainIndex),effects:a}}changes(t=[]){return t instanceof xn?t:xn.of(t,this.doc.length,this.facet(e.lineSeparator))}toText(t){return F.of(t.split(this.facet(e.lineSeparator)||vn))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Gn(this,t),Kn(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let r=e[n];r instanceof In&&this.config.address[r.id]!=null&&(t[n]=r.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(t,n={},r){if(!t||typeof t.doc!=`string`)throw RangeError(`Invalid JSON representation for EditorState`);let i=[];if(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(t,e)){let n=r[e],a=t[e];i.push(n.init(e=>n.spec.fromJSON(a,e)))}}return e.create({doc:t.doc,selection:R.fromJSON(t.selection),extensions:n.extensions?i.concat([n.extensions]):i})}static create(t={}){let n=Un.resolve(t.extensions||[],new Map),r=t.doc instanceof F?t.doc:F.of((t.doc||``).split(n.staticFacet(e.lineSeparator)||vn)),i=t.selection?t.selection instanceof R?t.selection:R.single(t.selection.anchor,t.selection.head):R.single(0);return On(i,r.length),n.staticFacet(Jn)||(i=i.asSingle()),new e(n,r,i,n.dynamicSlots.map(()=>null),(e,t)=>t.create(e),null)}get tabSize(){return this.facet(e.tabSize)}get lineBreak(){return this.facet(e.lineSeparator)||`
|
|
@@ -42,4 +42,4 @@ describe(${xh(`save-as-test: ${e.flowId}`)}, () => {
|
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
// basename: ${n}.ts
|
|
45
|
-
`}function yh(e){return`tests/flows/${bh(e)}.test.ts`}function bh(e){return e.replace(/[^a-zA-Z0-9._-]+/g,`_`)}function xh(e){return JSON.stringify(e,null,2)}function Sh(e){let{flow:t,mode:n}=e,[r,i]=(0,k.useState)(()=>oh(t.inSchema)),[a,c]=(0,k.useState)([]),[u,p]=(0,k.useState)(``),[h,g]=(0,k.useState)(``),[y,b]=(0,k.useState)(``),[x,S]=(0,k.useState)(null),[C,w]=(0,k.useState)(null);(0,k.useEffect)(()=>{i(oh(t.inSchema)),c([]),S(null),w(null),g(``),b(``)},[t.id,t.inSchema]);let T=o({queryKey:[`console.flows.identities`],queryFn:async()=>{let e=await f.flowsIdentities();if(e.error)throw Error(e.error.code);return e.data}});(0,k.useEffect)(()=>{let e=T.data?.identities.find(e=>e.status===`active`);e&&!u&&p(e.id)},[T.data,u]);let E=(0,k.useMemo)(()=>m(t.peakTier,{production:e.production}),[t.peakTier,e.production]),D=s({mutationFn:async()=>{let e=mh(t.inSchema,r);if(!e.ok)throw c(e.errors),Error(`validation`);if(c([]),E.kind===`typed`&&l({typed:h,reason:y,phrase:E.phrase}))throw Error(`confirm`);let n=await f.flowsInvoke({flowId:t.id,body:r,asUserId:u,confirmation:E.kind===`typed`?h:void 0,reason:E.kind===`typed`?y:void 0});if(n.error)throw Error(n.error.code);return n.data},onSuccess:t=>{S(t.response),n===`peek`&&e.onModeChange(`workbench`)}}),O=(0,k.useMemo)(()=>x===null?null:fh(t.outSchema,x),[x,t.outSchema]),te=`await api.${t.id}(${JSON.stringify(r)})`;return(0,$.jsxs)(`aside`,{className:n===`peek`?`absolute inset-y-0 left-[min(28%,20rem)] right-[min(28%,20rem)] z-20 flex flex-col border-x border-[var(--oke-line)] bg-[var(--oke-bg)]`:`absolute inset-0 z-20 flex flex-col border border-[var(--oke-line)] bg-[var(--oke-bg)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`flow-drawer-title`,children:[(0,$.jsxs)(`header`,{className:`flex flex-wrap items-start justify-between gap-3 border-b border-[var(--oke-line)] px-4 py-3`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,$.jsx)(`p`,{className:`text-xs text-[var(--oke-muted)]`,children:t.unit}),(0,$.jsx)(`h2`,{id:`flow-drawer-title`,className:`truncate text-lg font-semibold`,children:t.action}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[(0,$.jsx)(`span`,{className:`border border-[var(--oke-line)] px-1.5 py-0.5`,children:t.plane}),t.flags.durable?(0,$.jsx)(Ch,{children:`durable`}):null,t.flags.live?(0,$.jsx)(Ch,{children:`live`}):null,t.flags.external?(0,$.jsxs)(Ch,{accent:!0,children:[`external `,(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`↗`})]}):null,t.deprecated?(0,$.jsx)(Ch,{children:`deprecated`}):null]}),n===`workbench`?(0,$.jsxs)(`p`,{className:`text-xs text-[var(--oke-muted)]`,children:[`Effects:`,` `,t.peakTier===`none`?`none`:ee[t.peakTier],t.external?` · irreversible`:``]}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(_,{type:`button`,variant:t.external&&e.production?`external`:`primary`,onClick:()=>{n===`peek`&&e.onModeChange(`workbench`),D.mutate()},disabled:D.isPending||!u,children:`Invoke`}),(0,$.jsx)(_,{type:`button`,variant:`ghost`,onClick:async()=>{await navigator.clipboard.writeText(te)},children:`Copy client line`}),t.source?(0,$.jsx)(`a`,{href:`cursor://file/${t.source}`,className:`inline-flex min-h-8 items-center border border-[var(--oke-line)] px-3 text-sm`,children:`Open in editor`}):null,(0,$.jsx)(_,{type:`button`,variant:`ghost`,onClick:e.onClose,children:`Close`})]})]}),(0,$.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-4 overflow-auto p-4 lg:grid-cols-2`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsxs)(`section`,{"aria-label":`As whom`,className:`flex flex-col gap-2`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-medium`,children:`As whom`}),(0,$.jsxs)(`p`,{className:`text-xs text-[var(--oke-muted)]`,children:[`Operators hold no application scopes — invoke uses`,` `,(0,$.jsx)(`code`,{className:`font-mono`,children:`console:flows:invoke-as`}),`.`]}),(0,$.jsx)(v,{label:`Identity`,children:(0,$.jsxs)(`select`,{className:`min-h-8 w-full border border-[var(--oke-line)] bg-transparent px-3 text-sm`,value:u,onChange:e=>p(e.target.value),children:[(0,$.jsx)(`option`,{value:``,children:`Select identity…`}),(T.data?.identities??[]).map(e=>(0,$.jsxs)(`option`,{value:e.id,disabled:e.status!==`active`,children:[e.name,` · `,e.email]},e.id))]})})]}),(0,$.jsx)(ph,{schema:t.inSchema,value:r,mode:e.editorMode,onModeChange:e.onEditorModeChange,onChange:i,errors:a}),E.kind===`typed`?(0,$.jsxs)(`section`,{"aria-label":`Irreversible confirmation`,className:`flex flex-col gap-2 border border-[var(--oke-external)] p-3`,children:[(0,$.jsxs)(`p`,{className:`text-sm text-[var(--oke-external)]`,children:[`This flow has external effects in production. Type`,` `,(0,$.jsx)(`strong`,{children:E.phrase}),` and record a reason.`]}),(0,$.jsx)(v,{label:`Type ${E.phrase}`,children:(0,$.jsx)(d,{value:h,onChange:e=>g(e.currentTarget.value),autoComplete:`off`})}),(0,$.jsx)(v,{label:`Reason`,children:(0,$.jsx)(d,{value:y,onChange:e=>b(e.currentTarget.value)})})]}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsxs)(`section`,{"aria-label":`Response`,className:`flex flex-col gap-2`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-medium`,children:`Response`}),D.isError?(0,$.jsx)(`p`,{role:`alert`,className:`text-sm text-[var(--oke-danger)]`,children:D.error instanceof Error&&D.error.message===`validation`?`Fix contract errors before sending.`:D.error instanceof Error&&D.error.message===`confirm`?`Typed confirmation required.`:`Invoke failed.`}):null,x===null?(0,$.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`Invoke to see a typed response and trace.`}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`pre`,{className:`overflow-auto border border-[var(--oke-line)] p-3 font-mono text-xs`,children:JSON.stringify(x,null,2)}),O&&(O.missing.length>0||O.extra.length>0)?(0,$.jsxs)(`p`,{role:`status`,className:`text-xs text-[var(--oke-danger)]`,children:[`Schema drift — missing: `,O.missing.join(`, `)||`—`,` · extra: `,O.extra.join(`, `)||`—`]}):null,(0,$.jsxs)(_,{type:`button`,variant:`ghost`,onClick:()=>{let e=vh({flowId:t.id,request:r,response:x,asUserId:u});w(e),navigator.clipboard.writeText(e)},children:[`Save as test (`,yh(t.id),`)`]}),C?(0,$.jsx)(`pre`,{className:`max-h-48 overflow-auto border border-[var(--oke-line)] p-3 font-mono text-[11px]`,children:C}):null]})]}),t.errorNames.length>0?(0,$.jsxs)(`section`,{"aria-label":`Recent activity`,children:[(0,$.jsx)(`h3`,{className:`mb-2 text-sm font-medium`,children:`Typed errors`}),(0,$.jsx)(`p`,{className:`font-mono text-xs text-[var(--oke-muted)]`,children:t.errorNames.join(` · `)})]}):null]})]})]})}function Ch({children:e,accent:t}){return(0,$.jsx)(`span`,{className:`border px-1.5 py-0.5`,style:t?{borderColor:`var(--oke-external)`,color:`var(--oke-external)`}:{borderColor:`var(--oke-line)`},children:e})}function wh(){let e=S({from:`/flows`}),t=a({from:`/flows`}),n=e=>{t({search:ae(e),replace:!0})},r=o({queryKey:[`console.manifest.get`],queryFn:async()=>{let e=await f.manifestGet();if(e.error)throw Error(e.error.code);return e.data.manifest}}),i=(0,k.useMemo)(()=>D(r.data),[r.data]),s=(0,k.useMemo)(()=>E(i,{sel:e.sel,flow:e.flow,effect:e.effect,q:e.q}),[i,e.sel,e.flow,e.effect,e.q]),c=(0,k.useMemo)(()=>O(i,{sel:e.sel,cause:e.cause,flow:e.flow,effect:e.effect,q:e.q,unit:e.unit}),[i,e]),l=(0,k.useMemo)(()=>T(i,{sel:e.sel,cause:e.cause,flow:e.flow,q:e.q},{hideUbiquitous:e.hideUbiquitous}),[i,e]),u=e.open?i.flowById.get(e.open):void 0,p=oe(e.path),[m]=(0,k.useState)(0),g=(0,k.useMemo)(()=>{if(e.group===`alpha`)return[{unit:``,rows:[...c].sort((e,t)=>e.id.localeCompare(t.id))}];let t=new Map;for(let e of c){let n=t.get(e.unit)??[];n.push(e),t.set(e.unit,n)}return[...t.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({unit:e,rows:t.sort((e,t)=>e.action.localeCompare(t.action))}))},[c,e.group]),v=(0,k.useMemo)(()=>{let e=new Map;for(let t of te)e.set(t,[]);for(let t of l)e.get(t.tier)?.push(t);return e},[l]);return(0,$.jsxs)(`div`,{className:`relative flex h-[calc(100vh-3rem)] flex-col`,children:[(0,$.jsxs)(`header`,{className:`flex flex-wrap items-center gap-3 border-b border-[var(--oke-line)] px-4 py-2`,children:[(0,$.jsx)(`h1`,{className:`text-sm font-semibold tracking-wide`,children:`Flows`}),(0,$.jsx)(`p`,{className:`text-xs text-[var(--oke-muted)]`,children:`Causes ← Flows → Effects`}),(0,$.jsxs)(`label`,{className:`ml-auto flex min-w-[12rem] flex-1 items-center gap-2 text-xs text-[var(--oke-muted)] md:max-w-xs`,children:[(0,$.jsx)(`span`,{className:`sr-only`,children:`Filter`}),(0,$.jsx)(d,{type:`search`,placeholder:`Filter (dims, never hides)`,value:e.q??``,onChange:t=>n({...e,q:t.currentTarget.value||void 0})})]}),(0,$.jsx)(_,{type:`button`,variant:`ghost`,"aria-pressed":e.density===`compact`,onClick:()=>n({...e,density:e.density===`compact`?`comfortable`:`compact`}),children:e.density===`compact`?`Compact`:`Comfortable`}),(0,$.jsx)(_,{type:`button`,variant:`ghost`,"aria-pressed":e.transitive,onClick:()=>n({...e,transitive:!e.transitive}),children:e.transitive?`Transitive`:`Direct`}),(0,$.jsx)(h,{count:m,onFlush:()=>void 0})]}),p.length>0?(0,$.jsx)(`nav`,{"aria-label":`Traversal path`,className:`flex flex-wrap gap-1 border-b border-[var(--oke-line)] px-4 py-1.5 text-xs`,children:p.map((t,r)=>(0,$.jsxs)(`button`,{type:`button`,className:`min-h-8 px-1 text-[var(--oke-muted)] hover:text-[var(--oke-fg)]`,onClick:()=>n(ue(e,t)),children:[t,r<p.length-1?` /`:``]},`${t}-${r}`))}):null,(0,$.jsxs)(`div`,{className:`grid min-h-0 flex-1`,style:{gridTemplateColumns:`minmax(12rem,1fr) minmax(18rem,1.4fr) minmax(12rem,1fr)`},children:[(0,$.jsx)(Th,{title:`Causes`,label:`Causes`,children:(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--oke-line)]`,children:s.map(t=>(0,$.jsx)(`li`,{children:(0,$.jsx)(Eh,{cause:t,selected:e.cause===t.id,density:e.density,onSelect:()=>n(ce(e,t.id))})},t.id))})}),(0,$.jsx)(Th,{title:`Flows`,label:`Flows`,bordered:!0,children:g.map(t=>(0,$.jsxs)(`div`,{children:[t.unit?(0,$.jsx)(`p`,{className:`sticky top-0 bg-[var(--oke-bg)] px-3 py-1 text-[11px] uppercase tracking-wider text-[var(--oke-muted)]`,children:t.unit}):null,(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--oke-line)]`,children:t.rows.map(t=>(0,$.jsx)(`li`,{children:(0,$.jsx)(Dh,{flow:t,selected:e.flow===t.id||e.open===t.id,density:e.density,onSelect:()=>n(le(e,t.id)),onOpen:()=>n(de(e,t.id,`peek`))})},t.id))})]},t.unit||`all`))}),(0,$.jsxs)(Th,{title:`Effects`,label:`Effects`,children:[e.sel===`none`?(0,$.jsx)(`p`,{className:`px-3 py-2 text-xs text-[var(--oke-muted)]`,children:`Idle inventory — ranked by how many flows touch each resource.`}):null,te.map(t=>{let r=v.get(t)??[];return r.length===0?null:(0,$.jsxs)(`div`,{className:t===`capabilities`?`mt-auto border-t border-[var(--oke-line)]`:void 0,children:[(0,$.jsx)(`p`,{className:`px-3 py-1 text-[11px] uppercase tracking-wider`,style:t===`external`?{color:`var(--oke-external)`}:{color:`var(--oke-muted)`},children:ee[t]}),(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--oke-line)]`,children:r.map(t=>(0,$.jsx)(`li`,{children:(0,$.jsx)(Oh,{effect:t,selected:e.effect===t.ref,density:e.density,onSelect:()=>n(ue(e,t.ref))})},t.ref))})]},t)})]})]}),u&&e.drawer!==`closed`?(0,$.jsx)(Sh,{flow:u,mode:e.drawer===`workbench`?`workbench`:`peek`,editorMode:e.editor,production:!1,onEditorModeChange:t=>n({...e,editor:t}),onModeChange:t=>n({...e,drawer:t}),onClose:()=>n(fe(e))}):null]})}function Th({title:e,label:t,bordered:n,children:r}){return(0,$.jsxs)(`section`,{"aria-label":t,className:n?`flex min-h-0 flex-col overflow-auto border-x border-[var(--oke-line)]`:`flex min-h-0 flex-col overflow-auto`,children:[(0,$.jsx)(`h2`,{className:`sticky top-0 z-10 border-b border-[var(--oke-line)] bg-[var(--oke-bg)] px-3 py-2 text-xs font-medium uppercase tracking-[0.14em] text-[var(--oke-muted)]`,children:e}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,children:r})]})}function Eh({cause:e,selected:t,density:n,onSelect:r}){return(0,$.jsx)(_h,{match:e.match,children:(0,$.jsxs)(`button`,{type:`button`,onClick:r,"aria-pressed":t,className:n===`compact`?`flex min-h-8 w-full items-center gap-2 px-3 text-left text-sm`:`flex min-h-10 w-full flex-col items-start justify-center gap-0.5 px-3 text-left text-sm`,style:t?{background:`color-mix(in oklab, var(--oke-fg) 8%, transparent)`}:void 0,children:[(0,$.jsx)(`span`,{className:`font-mono text-[13px]`,children:e.label}),n===`comfortable`?(0,$.jsx)(`span`,{className:`text-[11px] text-[var(--oke-muted)]`,children:e.kind}):null]})})}function Dh({flow:e,selected:t,density:n,onSelect:r,onOpen:i}){return(0,$.jsx)(_h,{match:e.match,children:(0,$.jsxs)(`div`,{className:n===`compact`?`flex min-h-8 items-center gap-2 px-2`:`flex min-h-10 items-center gap-2 px-2`,style:t?{background:`color-mix(in oklab, var(--oke-fg) 8%, transparent)`}:void 0,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:r,"aria-pressed":t,className:`flex min-h-8 min-w-0 flex-1 items-center gap-2 text-left text-sm`,children:[(0,$.jsx)(kh,{hollow:!0}),(0,$.jsxs)(`span`,{className:`truncate`,children:[(0,$.jsxs)(`span`,{className:`text-[var(--oke-muted)]`,children:[e.unit,`.`]}),e.action]}),e.flags.external?(0,$.jsx)(`span`,{className:`font-mono text-[11px]`,style:{color:`var(--oke-external)`},title:`External effect`,children:`↗`}):null,e.flags.durable?(0,$.jsx)(Ah,{children:`D`}):null,e.flags.live?(0,$.jsx)(Ah,{children:`L`}):null,e.flags.readsSecret?(0,$.jsx)(Ah,{children:`S`}):null]}),(0,$.jsx)(_,{type:`button`,variant:`ghost`,className:`px-2`,onClick:i,children:`Open`})]})})}function Oh({effect:e,selected:t,density:n,onSelect:r}){let i=e.tier===`external`;return(0,$.jsx)(_h,{match:e.match,children:(0,$.jsxs)(`button`,{type:`button`,onClick:r,"aria-pressed":t,className:n===`compact`?`flex min-h-8 w-full items-center gap-2 px-3 text-left text-sm`:`flex min-h-10 w-full items-center gap-2 px-3 text-left text-sm`,style:t?{background:`color-mix(in oklab, var(--oke-fg) 8%, transparent)`}:void 0,children:[(0,$.jsx)(`span`,{className:`truncate font-mono text-[13px]`,style:i?{color:`var(--oke-external)`}:void 0,children:e.ref}),i?(0,$.jsx)(`span`,{"aria-hidden":`true`,style:{color:`var(--oke-external)`},children:`↗`}):null,e.touchCount>1?(0,$.jsx)(`span`,{className:`ml-auto text-[11px] text-[var(--oke-muted)]`,children:e.touchCount}):null,e.fanOut>0?(0,$.jsxs)(`span`,{className:`text-[11px] text-[var(--oke-muted)]`,children:[`×`,e.fanOut]}):null]})})}function kh({hollow:e}){return(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`inline-block h-2 w-2 shrink-0 rounded-full border border-[var(--oke-muted)]`,style:e?void 0:{background:`var(--oke-accent)`}})}function Ah({children:e}){return(0,$.jsx)(`span`,{className:`border border-[var(--oke-line)] px-1 font-mono text-[10px] text-[var(--oke-muted)]`,children:e})}var jh=r({default:()=>wh});function Mh(e=[]){let t=[...e],n=[],r=e=>t.findIndex(t=>t.id===e),i=e=>n.findIndex(t=>t.id===e);return{get visible(){return t},get pending(){return n},get pendingCount(){return n.length},offer(e){let a=r(e.id);if(a>=0){t[a]=e;return}let o=i(e.id);if(o>=0){n[o]=e;return}n.push(e)},updateInPlace(e,n){let i=r(e);if(i<0)return!1;let a=t[i];return a?(t[i]={...a,value:n},!0):!1},flush(){if(n.length===0)return;let e=n.splice(0,n.length);t.unshift(...e)},discardPending(){n.length=0}}}function Nh(e,t){let n=t?.trim().toLowerCase();return!n||e.some(e=>e.toLowerCase().includes(n))}export{ie as i,Nh as n,jh as r,Mh as t};
|
|
45
|
+
`}function yh(e){return`tests/flows/${bh(e)}.test.ts`}function bh(e){return e.replace(/[^a-zA-Z0-9._-]+/g,`_`)}function xh(e){return JSON.stringify(e,null,2)}function Sh(e){let{flow:t,mode:n}=e,[r,i]=(0,k.useState)(()=>oh(t.inSchema)),[a,c]=(0,k.useState)([]),[u,p]=(0,k.useState)(``),[h,g]=(0,k.useState)(``),[y,b]=(0,k.useState)(``),[x,S]=(0,k.useState)(null),[C,w]=(0,k.useState)(null);(0,k.useEffect)(()=>{i(oh(t.inSchema)),c([]),S(null),w(null),g(``),b(``)},[t.id,t.inSchema]);let T=o({queryKey:[`console.flows.identities`],queryFn:async()=>{let e=await f.flowsIdentities();if(e.error)throw Error(e.error.code);return e.data}});(0,k.useEffect)(()=>{let e=T.data?.identities.find(e=>e.status===`active`);e&&!u&&p(e.id)},[T.data,u]);let E=(0,k.useMemo)(()=>m(t.peakTier,{production:e.production}),[t.peakTier,e.production]),D=s({mutationFn:async()=>{let e=mh(t.inSchema,r);if(!e.ok)throw c(e.errors),Error(`validation`);if(c([]),E.kind===`typed`&&l({typed:h,reason:y,phrase:E.phrase}))throw Error(`confirm`);let n=await f.flowsInvoke({flowId:t.id,body:r,asUserId:u,confirmation:E.kind===`typed`?h:void 0,reason:E.kind===`typed`?y:void 0});if(n.error)throw Error(n.error.code);return n.data},onSuccess:t=>{S(t.response),n===`peek`&&e.onModeChange(`workbench`)}}),O=(0,k.useMemo)(()=>x===null?null:fh(t.outSchema,x),[x,t.outSchema]),te=`await api.${t.id}(${JSON.stringify(r)})`;return(0,$.jsxs)(`aside`,{className:n===`peek`?`absolute inset-y-0 left-[min(28%,20rem)] right-[min(28%,20rem)] z-20 flex flex-col border-x border-[var(--oke-line)] bg-[var(--oke-bg)]`:`absolute inset-0 z-20 flex flex-col border border-[var(--oke-line)] bg-[var(--oke-bg)]`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`flow-drawer-title`,children:[(0,$.jsxs)(`header`,{className:`flex flex-wrap items-start justify-between gap-3 border-b border-[var(--oke-line)] px-4 py-3`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,$.jsx)(`p`,{className:`text-xs text-[var(--oke-muted)]`,children:t.unit}),(0,$.jsx)(`h2`,{id:`flow-drawer-title`,className:`truncate text-lg font-semibold`,children:t.action}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[(0,$.jsx)(`span`,{className:`border border-[var(--oke-line)] px-1.5 py-0.5`,children:t.plane}),t.flags.durable?(0,$.jsx)(Ch,{children:`durable`}):null,t.flags.live?(0,$.jsx)(Ch,{children:`live`}):null,t.flags.external?(0,$.jsxs)(Ch,{accent:!0,children:[`external `,(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`↗`})]}):null,t.deprecated?(0,$.jsx)(Ch,{children:`deprecated`}):null]}),n===`workbench`?(0,$.jsxs)(`p`,{className:`text-xs text-[var(--oke-muted)]`,children:[`Effects: `,t.peakTier===`none`?`none`:ee[t.peakTier],t.external?` · irreversible`:``]}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsx)(_,{type:`button`,variant:t.external&&e.production?`external`:`primary`,onClick:()=>{n===`peek`&&e.onModeChange(`workbench`),D.mutate()},disabled:D.isPending||!u,children:`Invoke`}),(0,$.jsx)(_,{type:`button`,variant:`ghost`,onClick:async()=>{await navigator.clipboard.writeText(te)},children:`Copy client line`}),t.source?(0,$.jsx)(`a`,{href:`cursor://file/${t.source}`,className:`inline-flex min-h-8 items-center border border-[var(--oke-line)] px-3 text-sm`,children:`Open in editor`}):null,(0,$.jsx)(_,{type:`button`,variant:`ghost`,onClick:e.onClose,children:`Close`})]})]}),(0,$.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-4 overflow-auto p-4 lg:grid-cols-2`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsxs)(`section`,{"aria-label":`As whom`,className:`flex flex-col gap-2`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-medium`,children:`As whom`}),(0,$.jsxs)(`p`,{className:`text-xs text-[var(--oke-muted)]`,children:[`Operators hold no application scopes — invoke uses`,` `,(0,$.jsx)(`code`,{className:`font-mono`,children:`console:flows:invoke-as`}),`.`]}),(0,$.jsx)(v,{label:`Identity`,children:(0,$.jsxs)(`select`,{className:`min-h-8 w-full border border-[var(--oke-line)] bg-transparent px-3 text-sm`,value:u,onChange:e=>p(e.target.value),children:[(0,$.jsx)(`option`,{value:``,children:`Select identity…`}),(T.data?.identities??[]).map(e=>(0,$.jsxs)(`option`,{value:e.id,disabled:e.status!==`active`,children:[e.name,` · `,e.email]},e.id))]})})]}),(0,$.jsx)(ph,{schema:t.inSchema,value:r,mode:e.editorMode,onModeChange:e.onEditorModeChange,onChange:i,errors:a}),E.kind===`typed`?(0,$.jsxs)(`section`,{"aria-label":`Irreversible confirmation`,className:`flex flex-col gap-2 border border-[var(--oke-external)] p-3`,children:[(0,$.jsxs)(`p`,{className:`text-sm text-[var(--oke-external)]`,children:[`This flow has external effects in production. Type `,(0,$.jsx)(`strong`,{children:E.phrase}),` `,`and record a reason.`]}),(0,$.jsx)(v,{label:`Type ${E.phrase}`,children:(0,$.jsx)(d,{value:h,onChange:e=>g(e.currentTarget.value),autoComplete:`off`})}),(0,$.jsx)(v,{label:`Reason`,children:(0,$.jsx)(d,{value:y,onChange:e=>b(e.currentTarget.value)})})]}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsxs)(`section`,{"aria-label":`Response`,className:`flex flex-col gap-2`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-medium`,children:`Response`}),D.isError?(0,$.jsx)(`p`,{role:`alert`,className:`text-sm text-[var(--oke-danger)]`,children:D.error instanceof Error&&D.error.message===`validation`?`Fix contract errors before sending.`:D.error instanceof Error&&D.error.message===`confirm`?`Typed confirmation required.`:`Invoke failed.`}):null,x===null?(0,$.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`Invoke to see a typed response and trace.`}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`pre`,{className:`overflow-auto border border-[var(--oke-line)] p-3 font-mono text-xs`,children:JSON.stringify(x,null,2)}),O&&(O.missing.length>0||O.extra.length>0)?(0,$.jsxs)(`p`,{role:`status`,className:`text-xs text-[var(--oke-danger)]`,children:[`Schema drift — missing: `,O.missing.join(`, `)||`—`,` · extra:`,` `,O.extra.join(`, `)||`—`]}):null,(0,$.jsxs)(_,{type:`button`,variant:`ghost`,onClick:()=>{let e=vh({flowId:t.id,request:r,response:x,asUserId:u});w(e),navigator.clipboard.writeText(e)},children:[`Save as test (`,yh(t.id),`)`]}),C?(0,$.jsx)(`pre`,{className:`max-h-48 overflow-auto border border-[var(--oke-line)] p-3 font-mono text-[11px]`,children:C}):null]})]}),t.errorNames.length>0?(0,$.jsxs)(`section`,{"aria-label":`Recent activity`,children:[(0,$.jsx)(`h3`,{className:`mb-2 text-sm font-medium`,children:`Typed errors`}),(0,$.jsx)(`p`,{className:`font-mono text-xs text-[var(--oke-muted)]`,children:t.errorNames.join(` · `)})]}):null]})]})]})}function Ch({children:e,accent:t}){return(0,$.jsx)(`span`,{className:`border px-1.5 py-0.5`,style:t?{borderColor:`var(--oke-external)`,color:`var(--oke-external)`}:{borderColor:`var(--oke-line)`},children:e})}function wh(){let e=S({from:`/flows`}),t=a({from:`/flows`}),n=e=>{t({search:ae(e),replace:!0})},r=o({queryKey:[`console.manifest.get`],queryFn:async()=>{let e=await f.manifestGet();if(e.error)throw Error(e.error.code);return e.data.manifest}}),i=(0,k.useMemo)(()=>D(r.data),[r.data]),s=(0,k.useMemo)(()=>E(i,{sel:e.sel,flow:e.flow,effect:e.effect,q:e.q}),[i,e.sel,e.flow,e.effect,e.q]),c=(0,k.useMemo)(()=>O(i,{sel:e.sel,cause:e.cause,flow:e.flow,effect:e.effect,q:e.q,unit:e.unit}),[i,e]),l=(0,k.useMemo)(()=>T(i,{sel:e.sel,cause:e.cause,flow:e.flow,q:e.q},{hideUbiquitous:e.hideUbiquitous}),[i,e]),u=e.open?i.flowById.get(e.open):void 0,p=oe(e.path),[m]=(0,k.useState)(0),g=(0,k.useMemo)(()=>{if(e.group===`alpha`)return[{unit:``,rows:[...c].sort((e,t)=>e.id.localeCompare(t.id))}];let t=new Map;for(let e of c){let n=t.get(e.unit)??[];n.push(e),t.set(e.unit,n)}return[...t.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>({unit:e,rows:t.sort((e,t)=>e.action.localeCompare(t.action))}))},[c,e.group]),v=(0,k.useMemo)(()=>{let e=new Map;for(let t of te)e.set(t,[]);for(let t of l)e.get(t.tier)?.push(t);return e},[l]);return(0,$.jsxs)(`div`,{className:`relative flex h-[calc(100vh-3rem)] flex-col`,children:[(0,$.jsxs)(`header`,{className:`flex flex-wrap items-center gap-3 border-b border-[var(--oke-line)] px-4 py-2`,children:[(0,$.jsx)(`h1`,{className:`text-sm font-semibold tracking-wide`,children:`Flows`}),(0,$.jsx)(`p`,{className:`text-xs text-[var(--oke-muted)]`,children:`Causes ← Flows → Effects`}),(0,$.jsxs)(`label`,{className:`ml-auto flex min-w-[12rem] flex-1 items-center gap-2 text-xs text-[var(--oke-muted)] md:max-w-xs`,children:[(0,$.jsx)(`span`,{className:`sr-only`,children:`Filter`}),(0,$.jsx)(d,{type:`search`,placeholder:`Filter (dims, never hides)`,value:e.q??``,onChange:t=>n({...e,q:t.currentTarget.value||void 0})})]}),(0,$.jsx)(_,{type:`button`,variant:`ghost`,"aria-pressed":e.density===`compact`,onClick:()=>n({...e,density:e.density===`compact`?`comfortable`:`compact`}),children:e.density===`compact`?`Compact`:`Comfortable`}),(0,$.jsx)(_,{type:`button`,variant:`ghost`,"aria-pressed":e.transitive,onClick:()=>n({...e,transitive:!e.transitive}),children:e.transitive?`Transitive`:`Direct`}),(0,$.jsx)(h,{count:m,onFlush:()=>void 0})]}),p.length>0?(0,$.jsx)(`nav`,{"aria-label":`Traversal path`,className:`flex flex-wrap gap-1 border-b border-[var(--oke-line)] px-4 py-1.5 text-xs`,children:p.map((t,r)=>(0,$.jsxs)(`button`,{type:`button`,className:`min-h-8 px-1 text-[var(--oke-muted)] hover:text-[var(--oke-fg)]`,onClick:()=>n(ue(e,t)),children:[t,r<p.length-1?` /`:``]},`${t}-${r}`))}):null,(0,$.jsxs)(`div`,{className:`grid min-h-0 flex-1`,style:{gridTemplateColumns:`minmax(12rem,1fr) minmax(18rem,1.4fr) minmax(12rem,1fr)`},children:[(0,$.jsx)(Th,{title:`Causes`,label:`Causes`,children:(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--oke-line)]`,children:s.map(t=>(0,$.jsx)(`li`,{children:(0,$.jsx)(Eh,{cause:t,selected:e.cause===t.id,density:e.density,onSelect:()=>n(ce(e,t.id))})},t.id))})}),(0,$.jsx)(Th,{title:`Flows`,label:`Flows`,bordered:!0,children:g.map(t=>(0,$.jsxs)(`div`,{children:[t.unit?(0,$.jsx)(`p`,{className:`sticky top-0 bg-[var(--oke-bg)] px-3 py-1 text-[11px] uppercase tracking-wider text-[var(--oke-muted)]`,children:t.unit}):null,(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--oke-line)]`,children:t.rows.map(t=>(0,$.jsx)(`li`,{children:(0,$.jsx)(Dh,{flow:t,selected:e.flow===t.id||e.open===t.id,density:e.density,onSelect:()=>n(le(e,t.id)),onOpen:()=>n(de(e,t.id,`peek`))})},t.id))})]},t.unit||`all`))}),(0,$.jsxs)(Th,{title:`Effects`,label:`Effects`,children:[e.sel===`none`?(0,$.jsx)(`p`,{className:`px-3 py-2 text-xs text-[var(--oke-muted)]`,children:`Idle inventory — ranked by how many flows touch each resource.`}):null,te.map(t=>{let r=v.get(t)??[];return r.length===0?null:(0,$.jsxs)(`div`,{className:t===`capabilities`?`mt-auto border-t border-[var(--oke-line)]`:void 0,children:[(0,$.jsx)(`p`,{className:`px-3 py-1 text-[11px] uppercase tracking-wider`,style:t===`external`?{color:`var(--oke-external)`}:{color:`var(--oke-muted)`},children:ee[t]}),(0,$.jsx)(`ul`,{className:`divide-y divide-[var(--oke-line)]`,children:r.map(t=>(0,$.jsx)(`li`,{children:(0,$.jsx)(Oh,{effect:t,selected:e.effect===t.ref,density:e.density,onSelect:()=>n(ue(e,t.ref))})},t.ref))})]},t)})]})]}),u&&e.drawer!==`closed`?(0,$.jsx)(Sh,{flow:u,mode:e.drawer===`workbench`?`workbench`:`peek`,editorMode:e.editor,production:!1,onEditorModeChange:t=>n({...e,editor:t}),onModeChange:t=>n({...e,drawer:t}),onClose:()=>n(fe(e))}):null]})}function Th({title:e,label:t,bordered:n,children:r}){return(0,$.jsxs)(`section`,{"aria-label":t,className:n?`flex min-h-0 flex-col overflow-auto border-x border-[var(--oke-line)]`:`flex min-h-0 flex-col overflow-auto`,children:[(0,$.jsx)(`h2`,{className:`sticky top-0 z-10 border-b border-[var(--oke-line)] bg-[var(--oke-bg)] px-3 py-2 text-xs font-medium uppercase tracking-[0.14em] text-[var(--oke-muted)]`,children:e}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,children:r})]})}function Eh({cause:e,selected:t,density:n,onSelect:r}){return(0,$.jsx)(_h,{match:e.match,children:(0,$.jsxs)(`button`,{type:`button`,onClick:r,"aria-pressed":t,className:n===`compact`?`flex min-h-8 w-full items-center gap-2 px-3 text-left text-sm`:`flex min-h-10 w-full flex-col items-start justify-center gap-0.5 px-3 text-left text-sm`,style:t?{background:`color-mix(in oklab, var(--oke-fg) 8%, transparent)`}:void 0,children:[(0,$.jsx)(`span`,{className:`font-mono text-[13px]`,children:e.label}),n===`comfortable`?(0,$.jsx)(`span`,{className:`text-[11px] text-[var(--oke-muted)]`,children:e.kind}):null]})})}function Dh({flow:e,selected:t,density:n,onSelect:r,onOpen:i}){return(0,$.jsx)(_h,{match:e.match,children:(0,$.jsxs)(`div`,{className:n===`compact`?`flex min-h-8 items-center gap-2 px-2`:`flex min-h-10 items-center gap-2 px-2`,style:t?{background:`color-mix(in oklab, var(--oke-fg) 8%, transparent)`}:void 0,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:r,"aria-pressed":t,className:`flex min-h-8 min-w-0 flex-1 items-center gap-2 text-left text-sm`,children:[(0,$.jsx)(kh,{hollow:!0}),(0,$.jsxs)(`span`,{className:`truncate`,children:[(0,$.jsxs)(`span`,{className:`text-[var(--oke-muted)]`,children:[e.unit,`.`]}),e.action]}),e.flags.external?(0,$.jsx)(`span`,{className:`font-mono text-[11px]`,style:{color:`var(--oke-external)`},title:`External effect`,children:`↗`}):null,e.flags.durable?(0,$.jsx)(Ah,{children:`D`}):null,e.flags.live?(0,$.jsx)(Ah,{children:`L`}):null,e.flags.readsSecret?(0,$.jsx)(Ah,{children:`S`}):null]}),(0,$.jsx)(_,{type:`button`,variant:`ghost`,className:`px-2`,onClick:i,children:`Open`})]})})}function Oh({effect:e,selected:t,density:n,onSelect:r}){let i=e.tier===`external`;return(0,$.jsx)(_h,{match:e.match,children:(0,$.jsxs)(`button`,{type:`button`,onClick:r,"aria-pressed":t,className:n===`compact`?`flex min-h-8 w-full items-center gap-2 px-3 text-left text-sm`:`flex min-h-10 w-full items-center gap-2 px-3 text-left text-sm`,style:t?{background:`color-mix(in oklab, var(--oke-fg) 8%, transparent)`}:void 0,children:[(0,$.jsx)(`span`,{className:`truncate font-mono text-[13px]`,style:i?{color:`var(--oke-external)`}:void 0,children:e.ref}),i?(0,$.jsx)(`span`,{"aria-hidden":`true`,style:{color:`var(--oke-external)`},children:`↗`}):null,e.touchCount>1?(0,$.jsx)(`span`,{className:`ml-auto text-[11px] text-[var(--oke-muted)]`,children:e.touchCount}):null,e.fanOut>0?(0,$.jsxs)(`span`,{className:`text-[11px] text-[var(--oke-muted)]`,children:[`×`,e.fanOut]}):null]})})}function kh({hollow:e}){return(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`inline-block h-2 w-2 shrink-0 rounded-full border border-[var(--oke-muted)]`,style:e?void 0:{background:`var(--oke-accent)`}})}function Ah({children:e}){return(0,$.jsx)(`span`,{className:`border border-[var(--oke-line)] px-1 font-mono text-[10px] text-[var(--oke-muted)]`,children:e})}var jh=r({default:()=>wh});function Mh(e=[]){let t=[...e],n=[],r=e=>t.findIndex(t=>t.id===e),i=e=>n.findIndex(t=>t.id===e);return{get visible(){return t},get pending(){return n},get pendingCount(){return n.length},offer(e){let a=r(e.id);if(a>=0){t[a]=e;return}let o=i(e.id);if(o>=0){n[o]=e;return}n.push(e)},updateInPlace(e,n){let i=r(e);if(i<0)return!1;let a=t[i];return a?(t[i]={...a,value:n},!0):!1},flush(){if(n.length===0)return;let e=n.splice(0,n.length);t.unshift(...e)},discardPending(){n.length=0}}}function Nh(e,t){let n=t?.trim().toLowerCase();return!n||e.some(e=>e.toLowerCase().includes(n))}export{ie as i,Nh as n,jh as r,Mh as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,r as t}from"./rolldown-runtime-CNC7AqOf.js";import{C as n,Q as r,Z as i,b as a,c as o,d as s,g as c,nt as l,o as u,tt as d,u as f,w as p,y as m}from"./panel-access-Dd37LU2c.js";var h=m({q:a().optional(),from:c([`principal`,`flow`]).optional(),principal:a().optional(),flow:a().optional(),as:a().optional()});function g(e){let t=h.safeParse(e);return t.success?t.data:{}}function _(e){let t={};return e.q&&(t.q=e.q),e.from&&(t.from=e.from),e.principal&&(t.principal=e.principal),e.flow&&(t.flow=e.flow),e.as&&(t.as=e.as),t}function v(e,t){return`${e}:${t}`}function y(e){if(!e)return null;let t=e.indexOf(`:`);if(t===-1)return null;let n=e.slice(0,t),r=e.slice(t+1);return n!==`role`&&n!==`key`&&n!==`user`||!r?null:{kind:n,id:r}}function b(e,t,n){return{...e,from:`principal`,principal:v(t,n),flow:void 0}}function x(e,t){return{...e,from:`flow`,flow:t,principal:void 0}}function S(e,t=``){let n=t.trim().toLowerCase(),r=n?e.filter(e=>e.name.toLowerCase().includes(n)||e.id.toLowerCase().includes(n)||(e.email?.toLowerCase().includes(n)??!1)||e.scopes.some(e=>e.toLowerCase().includes(n))):e,i=[`role`,`key`,`user`],a={role:`Roles`,key:`API keys`,user:`Users`};return i.map(e=>({id:e,label:a[e],items:r.filter(t=>t.kind===e).map(t=>({id:`${t.kind}:${t.id}`,label:t.name,meta:e===`role`?`${t.scopes.length} scopes · ${t.memberCount??0} members`:`${t.scopes.length} scopes`,flag:t.plane===`operator`?`operator`:void 0}))})).filter(e=>e.items.length>0)}function C(e,t=``){let n=t.trim().toLowerCase(),r=n?e.filter(e=>e.flowId.toLowerCase().includes(n)||e.gates.some(e=>e.toLowerCase().includes(n))):e,i=[`user`,`operator`],a={user:`User plane`,operator:`Operator plane`};return i.map(e=>({id:e,label:a[e],items:r.filter(t=>t.plane===e).map(e=>({id:e.flowId,label:e.flowId,meta:e.gates.length===0?`ungated`:e.gates.join(` → `),flag:e.unguarded?`unguarded`:void 0}))})).filter(e=>e.items.length>0)}function w(e){let t=[];return e.unguardedFlows.length>0&&t.push({code:`unguarded`,count:e.unguardedFlows.length,message:`${e.unguardedFlows.length} user-plane flow${e.unguardedFlows.length===1?``:`s`} unguarded (public)`}),e.orphanPermissions.length>0&&t.push({code:`orphan-permissions`,count:e.orphanPermissions.length,message:`${e.orphanPermissions.length} permission${e.orphanPermissions.length===1?``:`s`} granted to no role`}),e.emptyRoles.length>0&&t.push({code:`empty-roles`,count:e.emptyRoles.length,message:`${e.emptyRoles.length} role${e.emptyRoles.length===1?``:`s`} with no members`}),e.unattachedGates.length>0&&t.push({code:`unattached`,count:e.unattachedGates.length,message:`${e.unattachedGates.length} gate${e.unattachedGates.length===1?``:`s`} never attached`}),t}function T(e){let t=e.applicationScopes.join(`, `);return`${e.email?`${e.name} <${e.email}>`:e.name} holds application scope(s): ${t}`}function E(e){return w(e).filter(e=>e.code===`unguarded`)}function D(e){switch(e.code){case`RateLimited`:return`RateLimited { retryAfterMs: ${typeof e.data.retryAfterMs==`number`?e.data.retryAfterMs:0} } · HTTP ${e.status}`;case`Forbidden`:{let t=typeof e.data.gate==`string`?e.data.gate:`?`,n=typeof e.data.reason==`string`?e.data.reason:``;return`Forbidden { gate: ${t}${n?`, reason: ${n}`:``} } · HTTP ${e.status}`}case`Unauthorized`:return`Unauthorized {} · HTTP ${e.status}`}}function O(e,t){let n=e.allowed?`pass`:`deny`,r=e.kind===`rate`&&e.retryAfterMs!==void 0?` · retryAfterMs ${e.retryAfterMs}`:e.reason?` · ${e.reason}`:``;return`${t+1}. ${e.name} — ${n}${r}`}var k=e(l(),1),A=d();function j(){let e=p({from:`/gates`}),t=n({from:`/gates`}),a=e.from??`flow`,[c,l]=(0,k.useState)(e.as??``),[d,m]=(0,k.useState)(null),[h,g]=(0,k.useState)(null),v=e=>{t({search:_(e),replace:!0})},E=r({queryKey:[`console.gates.list`],queryFn:async()=>{let e=await s.gatesList();if(e.error)throw Error(e.error.code);return e.data},refetchInterval:1e4}),j=E.data,M=j?.principals??[],N=j?.flows??[],P=j?.violations??[],F=j?.widenings??[],I=j?.audit??{unguardedFlows:[],orphanPermissions:[],emptyRoles:[],unattachedGates:[]},L=(0,k.useMemo)(()=>w(I),[I]),R=(0,k.useMemo)(()=>a===`principal`?S(M,e.q??``):C(N,e.q??``),[a,M,N,e.q]),z=y(e.principal),B=z?M.find(e=>e.kind===z.kind&&e.id===z.id):void 0,V=N.find(t=>t.flowId===e.flow),H=i({mutationFn:async()=>{if(a===`flow`){if(!V)throw Error(`Select a flow`);let t=y(c||e.as);if(!t)throw Error(`Pick a principal to simulate as`);let n=await s.gatesSimulate({flowId:V.flowId,principal:t});if(n.error)throw Error(n.error.code);return n.data}if(!z)throw Error(`Select a principal`);let t=c||e.as;if(!t)throw Error(`Pick a flow to simulate`);let n=await s.gatesSimulate({flowId:t,principal:z});if(n.error)throw Error(n.error.code);return n.data},onSuccess:e=>{m(e)}}),U=i({mutationFn:async()=>{if(!z)throw Error(`Select a principal`);let e=await s.gatesPowers(z);if(e.error)throw Error(e.error.code);return e.data},onSuccess:e=>{g(e)}});return(0,A.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,A.jsxs)(`header`,{className:`flex shrink-0 flex-wrap items-end gap-3 border-b border-[var(--oke-line)] px-4 py-3`,children:[(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h1`,{className:`text-lg font-medium text-[var(--oke-fg)]`,children:`Gates`}),(0,A.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`What can this principal do · what guards this flow`})]}),(0,A.jsxs)(`div`,{role:`group`,"aria-label":`Inquiry direction`,className:`flex gap-1`,children:[(0,A.jsx)(u,{type:`button`,variant:a===`principal`?`primary`:`ghost`,"aria-pressed":a===`principal`,onClick:()=>v({...e,from:`principal`,flow:void 0}),children:`From principal`}),(0,A.jsx)(u,{type:`button`,variant:a===`flow`?`primary`:`ghost`,"aria-pressed":a===`flow`,onClick:()=>v({...e,from:`flow`,principal:void 0}),children:`From flow`})]}),(0,A.jsxs)(`label`,{className:`ml-auto flex min-w-[12rem] flex-col gap-1 text-sm`,children:[(0,A.jsx)(`span`,{className:`text-[var(--oke-muted)]`,children:`Filter gates`}),(0,A.jsx)(o,{"aria-label":`Filter gates`,value:e.q??``,onChange:t=>v({...e,q:t.currentTarget.value||void 0})})]})]}),L.length>0?(0,A.jsxs)(`section`,{"aria-label":`Continuous security audit`,className:`border-b border-[var(--oke-line)] px-4 py-2`,role:`status`,children:[(0,A.jsx)(`h2`,{className:`sr-only`,children:`Standing audit`}),(0,A.jsx)(`ul`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-sm text-[var(--oke-danger)]`,children:L.map(e=>(0,A.jsx)(`li`,{children:e.message},e.code))})]}):null,P.length>0?(0,A.jsxs)(`section`,{"aria-label":`Plane violations`,className:`border-b border-[var(--oke-line)] bg-[var(--oke-danger)]/10 px-4 py-2`,role:`alert`,children:[(0,A.jsx)(`h2`,{className:`text-sm font-medium text-[var(--oke-danger)]`,children:`Two-plane violations`}),(0,A.jsx)(`ul`,{className:`mt-1 text-sm text-[var(--oke-fg)]`,children:P.map(e=>(0,A.jsx)(`li`,{children:T(e)},e.operatorId))})]}):null,(0,A.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,A.jsxs)(`section`,{"aria-label":a===`principal`?`Principal list`:`Flow list`,className:`w-80 shrink-0 overflow-y-auto border-r border-[var(--oke-line)]`,children:[(0,A.jsx)(`h2`,{className:`sr-only`,children:a===`principal`?`Principals`:`Flows`}),E.isLoading?(0,A.jsx)(`p`,{className:`p-4 text-sm text-[var(--oke-muted)]`,children:`Loading…`}):null,R.map(t=>(0,A.jsxs)(`section`,{"aria-label":t.label,className:`py-2`,children:[(0,A.jsx)(`h3`,{className:`px-4 py-1 text-xs uppercase tracking-wide text-[var(--oke-muted)]`,children:t.label}),(0,A.jsx)(`ul`,{children:t.items.map(t=>{let n=a===`flow`?t.id===e.flow:t.id===e.principal;return(0,A.jsx)(`li`,{children:(0,A.jsxs)(`button`,{type:`button`,"aria-pressed":n,className:f(`flex min-h-10 w-full flex-col items-start px-4 py-2 text-left text-sm`,n?`bg-[var(--oke-line)] text-[var(--oke-fg)]`:`text-[var(--oke-muted)] hover:text-[var(--oke-fg)]`),onClick:()=>{if(m(null),g(null),a===`flow`)v(x(e,t.id));else{let n=y(t.id);if(!n)return;v(b(e,n.kind,n.id))}},children:[(0,A.jsx)(`span`,{className:`font-mono`,children:t.label}),t.meta?(0,A.jsx)(`span`,{className:`truncate text-xs`,children:t.meta}):null,t.flag?(0,A.jsx)(`span`,{role:`status`,className:`text-xs text-[var(--oke-danger)]`,children:t.flag}):null]})},t.id)})})]},t.id))]}),(0,A.jsx)(`section`,{"aria-label":`Gates detail`,"aria-live":`polite`,className:`min-w-0 flex-1 overflow-y-auto p-4`,children:!V&&!B?(0,A.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`Choose a principal or a flow. The matrix is not the entry point.`}):(0,A.jsxs)(`div`,{className:`flex max-w-2xl flex-col gap-6`,children:[a===`flow`&&V?(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{className:`font-mono text-lg text-[var(--oke-fg)]`,children:V.flowId}),(0,A.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`What guards this — registration order`}),V.gates.length===0?(0,A.jsx)(`p`,{className:`mt-2 text-sm`,role:`status`,children:V.unguarded?`Unguarded — public on the user plane`:`No gates`}):(0,A.jsx)(`ol`,{"aria-label":`Gate chain`,className:`mt-3 list-decimal space-y-1 pl-5 text-sm`,children:V.gates.map(e=>(0,A.jsx)(`li`,{children:(0,A.jsx)(`code`,{className:`font-mono`,children:e})},e))})]}):null,a===`principal`&&B?(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{className:`font-mono text-lg text-[var(--oke-fg)]`,children:B.name}),(0,A.jsxs)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:[B.kind,` · `,B.plane,` plane`,B.email?` · ${B.email}`:``]}),(0,A.jsx)(`h3`,{className:`mt-4 text-sm font-medium`,children:`Scopes`}),(0,A.jsx)(`ul`,{"aria-label":`Scopes`,className:`mt-1 flex flex-wrap gap-2 text-sm`,children:B.scopes.map(e=>(0,A.jsx)(`li`,{children:(0,A.jsx)(`code`,{className:`font-mono`,children:e})},e))}),(0,A.jsx)(u,{type:`button`,variant:`ghost`,className:`mt-3`,onClick:()=>U.mutate(),children:`What can this do`}),h?(0,A.jsxs)(`div`,{className:`mt-3 text-sm`,children:[(0,A.jsxs)(`p`,{role:`status`,children:[h.allowedFlowIds.length,` flows allowed ·`,` `,h.deniedFlowIds.length,` denied`]}),(0,A.jsx)(`ul`,{"aria-label":`Allowed flows`,className:`mt-2 list-disc pl-5`,children:h.allowedFlowIds.map(e=>(0,A.jsx)(`li`,{children:(0,A.jsx)(`code`,{className:`font-mono`,children:e})},e))})]}):null]}):null,(0,A.jsxs)(`section`,{"aria-label":`Simulator`,className:`border-t border-[var(--oke-line)] pt-4`,children:[(0,A.jsx)(`h3`,{className:`text-sm font-medium text-[var(--oke-fg)]`,children:`Simulator`}),(0,A.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`Evaluates the real gate chain only — never runs the handler`}),(0,A.jsxs)(`label`,{className:`mt-3 flex max-w-md flex-col gap-1 text-sm`,children:[(0,A.jsx)(`span`,{className:`text-[var(--oke-muted)]`,children:a===`flow`?`Simulate as principal`:`Simulate against flow`}),(0,A.jsxs)(`select`,{"aria-label":`Companion selection`,className:`min-h-8 border border-[var(--oke-line)] bg-transparent px-2 text-sm text-[var(--oke-fg)]`,value:c,onChange:t=>{let n=t.currentTarget.value;l(n),v({...e,as:n||void 0})},children:[(0,A.jsx)(`option`,{value:``,children:`Select…`}),a===`flow`?M.map(e=>(0,A.jsxs)(`option`,{value:`${e.kind}:${e.id}`,children:[e.kind,`: `,e.name]},`${e.kind}:${e.id}`)):N.filter(e=>e.plane===`user`).map(e=>(0,A.jsx)(`option`,{value:e.flowId,children:e.flowId},e.flowId))]})]}),(0,A.jsx)(u,{type:`button`,className:`mt-3`,onClick:()=>H.mutate(),disabled:H.isPending,children:`Simulate`}),H.isError?(0,A.jsx)(`p`,{role:`alert`,className:`mt-2 text-sm text-[var(--oke-danger)]`,children:H.error instanceof Error?H.error.message:`Simulate failed`}):null,d?(0,A.jsxs)(`div`,{className:`mt-4`,children:[(0,A.jsx)(`ol`,{"aria-label":`Evaluation order`,className:`list-decimal space-y-1 pl-5 text-sm`,children:d.evaluations.map((e,t)=>(0,A.jsx)(`li`,{children:O(e,t)},`${e.name}-${t}`))}),(0,A.jsx)(`p`,{role:`status`,className:`mt-3 text-sm`,"data-denial":d.denial?.code??`allowed`,children:d.denial?D(d.denial):`Allowed — chain passed`})]}):null]}),F.length>0?(0,A.jsxs)(`section`,{"aria-label":`Permission widenings`,children:[(0,A.jsx)(`h3`,{className:`text-sm font-medium text-[var(--oke-danger)]`,children:`Deploy widenings`}),(0,A.jsx)(`ul`,{className:`mt-2 list-disc pl-5 text-sm`,children:F.map(e=>(0,A.jsx)(`li`,{children:e.summary},`${e.path}:${e.summary}`))})]}):null]})})]})]})}var M=t({default:()=>j});export{E as n,g as r,M as t};
|
|
1
|
+
import{a as e,r as t}from"./rolldown-runtime-CNC7AqOf.js";import{C as n,Q as r,Z as i,b as a,c as o,d as s,g as c,nt as l,o as u,tt as d,u as f,w as p,y as m}from"./panel-access-C0J2D-a2.js";var h=m({q:a().optional(),from:c([`principal`,`flow`]).optional(),principal:a().optional(),flow:a().optional(),as:a().optional()});function g(e){let t=h.safeParse(e);return t.success?t.data:{}}function _(e){let t={};return e.q&&(t.q=e.q),e.from&&(t.from=e.from),e.principal&&(t.principal=e.principal),e.flow&&(t.flow=e.flow),e.as&&(t.as=e.as),t}function v(e,t){return`${e}:${t}`}function y(e){if(!e)return null;let t=e.indexOf(`:`);if(t===-1)return null;let n=e.slice(0,t),r=e.slice(t+1);return n!==`role`&&n!==`key`&&n!==`user`||!r?null:{kind:n,id:r}}function b(e,t,n){return{...e,from:`principal`,principal:v(t,n),flow:void 0}}function x(e,t){return{...e,from:`flow`,flow:t,principal:void 0}}function S(e,t=``){let n=t.trim().toLowerCase(),r=n?e.filter(e=>e.name.toLowerCase().includes(n)||e.id.toLowerCase().includes(n)||(e.email?.toLowerCase().includes(n)??!1)||e.scopes.some(e=>e.toLowerCase().includes(n))):e,i=[`role`,`key`,`user`],a={role:`Roles`,key:`API keys`,user:`Users`};return i.map(e=>({id:e,label:a[e],items:r.filter(t=>t.kind===e).map(t=>({id:`${t.kind}:${t.id}`,label:t.name,meta:e===`role`?`${t.scopes.length} scopes · ${t.memberCount??0} members`:`${t.scopes.length} scopes`,flag:t.plane===`operator`?`operator`:void 0}))})).filter(e=>e.items.length>0)}function C(e,t=``){let n=t.trim().toLowerCase(),r=n?e.filter(e=>e.flowId.toLowerCase().includes(n)||e.gates.some(e=>e.toLowerCase().includes(n))):e,i=[`user`,`operator`],a={user:`User plane`,operator:`Operator plane`};return i.map(e=>({id:e,label:a[e],items:r.filter(t=>t.plane===e).map(e=>({id:e.flowId,label:e.flowId,meta:e.gates.length===0?`ungated`:e.gates.join(` → `),flag:e.unguarded?`unguarded`:void 0}))})).filter(e=>e.items.length>0)}function w(e){let t=[];return e.unguardedFlows.length>0&&t.push({code:`unguarded`,count:e.unguardedFlows.length,message:`${e.unguardedFlows.length} user-plane flow${e.unguardedFlows.length===1?``:`s`} unguarded (public)`}),e.orphanPermissions.length>0&&t.push({code:`orphan-permissions`,count:e.orphanPermissions.length,message:`${e.orphanPermissions.length} permission${e.orphanPermissions.length===1?``:`s`} granted to no role`}),e.emptyRoles.length>0&&t.push({code:`empty-roles`,count:e.emptyRoles.length,message:`${e.emptyRoles.length} role${e.emptyRoles.length===1?``:`s`} with no members`}),e.unattachedGates.length>0&&t.push({code:`unattached`,count:e.unattachedGates.length,message:`${e.unattachedGates.length} gate${e.unattachedGates.length===1?``:`s`} never attached`}),t}function T(e){let t=e.applicationScopes.join(`, `);return`${e.email?`${e.name} <${e.email}>`:e.name} holds application scope(s): ${t}`}function E(e){return w(e).filter(e=>e.code===`unguarded`)}function D(e){switch(e.code){case`RateLimited`:return`RateLimited { retryAfterMs: ${typeof e.data.retryAfterMs==`number`?e.data.retryAfterMs:0} } · HTTP ${e.status}`;case`Forbidden`:{let t=typeof e.data.gate==`string`?e.data.gate:`?`,n=typeof e.data.reason==`string`?e.data.reason:``;return`Forbidden { gate: ${t}${n?`, reason: ${n}`:``} } · HTTP ${e.status}`}case`Unauthorized`:return`Unauthorized {} · HTTP ${e.status}`}}function O(e,t){let n=e.allowed?`pass`:`deny`,r=e.kind===`rate`&&e.retryAfterMs!==void 0?` · retryAfterMs ${e.retryAfterMs}`:e.reason?` · ${e.reason}`:``;return`${t+1}. ${e.name} — ${n}${r}`}var k=e(l(),1),A=d();function j(){let e=p({from:`/gates`}),t=n({from:`/gates`}),a=e.from??`flow`,[c,l]=(0,k.useState)(e.as??``),[d,m]=(0,k.useState)(null),[h,g]=(0,k.useState)(null),v=e=>{t({search:_(e),replace:!0})},E=r({queryKey:[`console.gates.list`],queryFn:async()=>{let e=await s.gatesList();if(e.error)throw Error(e.error.code);return e.data},refetchInterval:1e4}),j=E.data,M=j?.principals??[],N=j?.flows??[],P=j?.violations??[],F=j?.widenings??[],I=j?.audit??{unguardedFlows:[],orphanPermissions:[],emptyRoles:[],unattachedGates:[]},L=(0,k.useMemo)(()=>w(I),[I]),R=(0,k.useMemo)(()=>a===`principal`?S(M,e.q??``):C(N,e.q??``),[a,M,N,e.q]),z=y(e.principal),B=z?M.find(e=>e.kind===z.kind&&e.id===z.id):void 0,V=N.find(t=>t.flowId===e.flow),H=i({mutationFn:async()=>{if(a===`flow`){if(!V)throw Error(`Select a flow`);let t=y(c||e.as);if(!t)throw Error(`Pick a principal to simulate as`);let n=await s.gatesSimulate({flowId:V.flowId,principal:t});if(n.error)throw Error(n.error.code);return n.data}if(!z)throw Error(`Select a principal`);let t=c||e.as;if(!t)throw Error(`Pick a flow to simulate`);let n=await s.gatesSimulate({flowId:t,principal:z});if(n.error)throw Error(n.error.code);return n.data},onSuccess:e=>{m(e)}}),U=i({mutationFn:async()=>{if(!z)throw Error(`Select a principal`);let e=await s.gatesPowers(z);if(e.error)throw Error(e.error.code);return e.data},onSuccess:e=>{g(e)}});return(0,A.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,A.jsxs)(`header`,{className:`flex shrink-0 flex-wrap items-end gap-3 border-b border-[var(--oke-line)] px-4 py-3`,children:[(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h1`,{className:`text-lg font-medium text-[var(--oke-fg)]`,children:`Gates`}),(0,A.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`What can this principal do · what guards this flow`})]}),(0,A.jsxs)(`div`,{role:`group`,"aria-label":`Inquiry direction`,className:`flex gap-1`,children:[(0,A.jsx)(u,{type:`button`,variant:a===`principal`?`primary`:`ghost`,"aria-pressed":a===`principal`,onClick:()=>v({...e,from:`principal`,flow:void 0}),children:`From principal`}),(0,A.jsx)(u,{type:`button`,variant:a===`flow`?`primary`:`ghost`,"aria-pressed":a===`flow`,onClick:()=>v({...e,from:`flow`,principal:void 0}),children:`From flow`})]}),(0,A.jsxs)(`label`,{className:`ml-auto flex min-w-[12rem] flex-col gap-1 text-sm`,children:[(0,A.jsx)(`span`,{className:`text-[var(--oke-muted)]`,children:`Filter gates`}),(0,A.jsx)(o,{"aria-label":`Filter gates`,value:e.q??``,onChange:t=>v({...e,q:t.currentTarget.value||void 0})})]})]}),L.length>0?(0,A.jsxs)(`section`,{"aria-label":`Continuous security audit`,className:`border-b border-[var(--oke-line)] px-4 py-2`,role:`status`,children:[(0,A.jsx)(`h2`,{className:`sr-only`,children:`Standing audit`}),(0,A.jsx)(`ul`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-sm text-[var(--oke-danger)]`,children:L.map(e=>(0,A.jsx)(`li`,{children:e.message},e.code))})]}):null,P.length>0?(0,A.jsxs)(`section`,{"aria-label":`Plane violations`,className:`border-b border-[var(--oke-line)] bg-[var(--oke-danger)]/10 px-4 py-2`,role:`alert`,children:[(0,A.jsx)(`h2`,{className:`text-sm font-medium text-[var(--oke-danger)]`,children:`Two-plane violations`}),(0,A.jsx)(`ul`,{className:`mt-1 text-sm text-[var(--oke-fg)]`,children:P.map(e=>(0,A.jsx)(`li`,{children:T(e)},e.operatorId))})]}):null,(0,A.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,A.jsxs)(`section`,{"aria-label":a===`principal`?`Principal list`:`Flow list`,className:`w-80 shrink-0 overflow-y-auto border-r border-[var(--oke-line)]`,children:[(0,A.jsx)(`h2`,{className:`sr-only`,children:a===`principal`?`Principals`:`Flows`}),E.isLoading?(0,A.jsx)(`p`,{className:`p-4 text-sm text-[var(--oke-muted)]`,children:`Loading…`}):null,R.map(t=>(0,A.jsxs)(`section`,{"aria-label":t.label,className:`py-2`,children:[(0,A.jsx)(`h3`,{className:`px-4 py-1 text-xs uppercase tracking-wide text-[var(--oke-muted)]`,children:t.label}),(0,A.jsx)(`ul`,{children:t.items.map(t=>{let n=a===`flow`?t.id===e.flow:t.id===e.principal;return(0,A.jsx)(`li`,{children:(0,A.jsxs)(`button`,{type:`button`,"aria-pressed":n,className:f(`flex min-h-10 w-full flex-col items-start px-4 py-2 text-left text-sm`,n?`bg-[var(--oke-line)] text-[var(--oke-fg)]`:`text-[var(--oke-muted)] hover:text-[var(--oke-fg)]`),onClick:()=>{if(m(null),g(null),a===`flow`)v(x(e,t.id));else{let n=y(t.id);if(!n)return;v(b(e,n.kind,n.id))}},children:[(0,A.jsx)(`span`,{className:`font-mono`,children:t.label}),t.meta?(0,A.jsx)(`span`,{className:`truncate text-xs`,children:t.meta}):null,t.flag?(0,A.jsx)(`span`,{role:`status`,className:`text-xs text-[var(--oke-danger)]`,children:t.flag}):null]})},t.id)})})]},t.id))]}),(0,A.jsx)(`section`,{"aria-label":`Gates detail`,"aria-live":`polite`,className:`min-w-0 flex-1 overflow-y-auto p-4`,children:!V&&!B?(0,A.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`Choose a principal or a flow. The matrix is not the entry point.`}):(0,A.jsxs)(`div`,{className:`flex max-w-2xl flex-col gap-6`,children:[a===`flow`&&V?(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{className:`font-mono text-lg text-[var(--oke-fg)]`,children:V.flowId}),(0,A.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`What guards this — registration order`}),V.gates.length===0?(0,A.jsx)(`p`,{className:`mt-2 text-sm`,role:`status`,children:V.unguarded?`Unguarded — public on the user plane`:`No gates`}):(0,A.jsx)(`ol`,{"aria-label":`Gate chain`,className:`mt-3 list-decimal space-y-1 pl-5 text-sm`,children:V.gates.map(e=>(0,A.jsx)(`li`,{children:(0,A.jsx)(`code`,{className:`font-mono`,children:e})},e))})]}):null,a===`principal`&&B?(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{className:`font-mono text-lg text-[var(--oke-fg)]`,children:B.name}),(0,A.jsxs)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:[B.kind,` · `,B.plane,` plane`,B.email?` · ${B.email}`:``]}),(0,A.jsx)(`h3`,{className:`mt-4 text-sm font-medium`,children:`Scopes`}),(0,A.jsx)(`ul`,{"aria-label":`Scopes`,className:`mt-1 flex flex-wrap gap-2 text-sm`,children:B.scopes.map(e=>(0,A.jsx)(`li`,{children:(0,A.jsx)(`code`,{className:`font-mono`,children:e})},e))}),(0,A.jsx)(u,{type:`button`,variant:`ghost`,className:`mt-3`,onClick:()=>U.mutate(),children:`What can this do`}),h?(0,A.jsxs)(`div`,{className:`mt-3 text-sm`,children:[(0,A.jsxs)(`p`,{role:`status`,children:[h.allowedFlowIds.length,` flows allowed · `,h.deniedFlowIds.length,` `,`denied`]}),(0,A.jsx)(`ul`,{"aria-label":`Allowed flows`,className:`mt-2 list-disc pl-5`,children:h.allowedFlowIds.map(e=>(0,A.jsx)(`li`,{children:(0,A.jsx)(`code`,{className:`font-mono`,children:e})},e))})]}):null]}):null,(0,A.jsxs)(`section`,{"aria-label":`Simulator`,className:`border-t border-[var(--oke-line)] pt-4`,children:[(0,A.jsx)(`h3`,{className:`text-sm font-medium text-[var(--oke-fg)]`,children:`Simulator`}),(0,A.jsx)(`p`,{className:`text-sm text-[var(--oke-muted)]`,children:`Evaluates the real gate chain only — never runs the handler`}),(0,A.jsxs)(`label`,{className:`mt-3 flex max-w-md flex-col gap-1 text-sm`,children:[(0,A.jsx)(`span`,{className:`text-[var(--oke-muted)]`,children:a===`flow`?`Simulate as principal`:`Simulate against flow`}),(0,A.jsxs)(`select`,{"aria-label":`Companion selection`,className:`min-h-8 border border-[var(--oke-line)] bg-transparent px-2 text-sm text-[var(--oke-fg)]`,value:c,onChange:t=>{let n=t.currentTarget.value;l(n),v({...e,as:n||void 0})},children:[(0,A.jsx)(`option`,{value:``,children:`Select…`}),a===`flow`?M.map(e=>(0,A.jsxs)(`option`,{value:`${e.kind}:${e.id}`,children:[e.kind,`: `,e.name]},`${e.kind}:${e.id}`)):N.filter(e=>e.plane===`user`).map(e=>(0,A.jsx)(`option`,{value:e.flowId,children:e.flowId},e.flowId))]})]}),(0,A.jsx)(u,{type:`button`,className:`mt-3`,onClick:()=>H.mutate(),disabled:H.isPending,children:`Simulate`}),H.isError?(0,A.jsx)(`p`,{role:`alert`,className:`mt-2 text-sm text-[var(--oke-danger)]`,children:H.error instanceof Error?H.error.message:`Simulate failed`}):null,d?(0,A.jsxs)(`div`,{className:`mt-4`,children:[(0,A.jsx)(`ol`,{"aria-label":`Evaluation order`,className:`list-decimal space-y-1 pl-5 text-sm`,children:d.evaluations.map((e,t)=>(0,A.jsx)(`li`,{children:O(e,t)},`${e.name}-${t}`))}),(0,A.jsx)(`p`,{role:`status`,className:`mt-3 text-sm`,"data-denial":d.denial?.code??`allowed`,children:d.denial?D(d.denial):`Allowed — chain passed`})]}):null]}),F.length>0?(0,A.jsxs)(`section`,{"aria-label":`Permission widenings`,children:[(0,A.jsx)(`h3`,{className:`text-sm font-medium text-[var(--oke-danger)]`,children:`Deploy widenings`}),(0,A.jsx)(`ul`,{className:`mt-2 list-disc pl-5 text-sm`,children:F.map(e=>(0,A.jsx)(`li`,{children:e.summary},`${e.path}:${e.summary}`))})]}):null]})})]})]})}var M=t({default:()=>j});export{E as n,g as r,M as t};
|