@pyric/cli 0.1.0-alpha.18 → 0.1.0-alpha.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -4
- package/README.md.orig +5 -1
- package/dist/bridge/server/mcp-contract.d.ts +2 -2
- package/dist/bridge/server/mcp-contract.d.ts.map +1 -1
- package/dist/bridge/server/mcp-contract.js +3 -0
- package/dist/bridge/server/mcp-contract.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp-proxy.d.ts.map +1 -1
- package/dist/cli/mcp-proxy.js.map +1 -1
- package/dist/cli/rules.d.ts +1 -0
- package/dist/cli/rules.d.ts.map +1 -1
- package/dist/cli/rules.js +18 -4
- package/dist/cli/rules.js.map +1 -1
- package/dist/cli/service-command-records/storage-rules-resolve.d.ts +4 -0
- package/dist/cli/service-command-records/storage-rules-resolve.d.ts.map +1 -0
- package/dist/cli/service-command-records/storage-rules-resolve.js +3 -0
- package/dist/cli/service-command-records/storage-rules-resolve.js.map +1 -0
- package/dist/cli/service-commands.generated.d.ts +3 -0
- package/dist/cli/service-commands.generated.d.ts.map +1 -1
- package/dist/cli/service-commands.generated.js +2 -0
- package/dist/cli/service-commands.generated.js.map +1 -1
- package/dist/serve/rules.d.ts +3 -3
- package/dist/serve/rules.d.ts.map +1 -1
- package/dist/serve/rules.js +13 -5
- package/dist/serve/rules.js.map +1 -1
- package/dist/serve/site-ui/_astro/{RulesCodeEditor.CzwHdCi9.js → RulesCodeEditor.Bl-XMkhD.js} +1 -1
- package/dist/serve/site-ui/_astro/_example_.B9DG9HLJ.css +1 -0
- package/dist/serve/site-ui/_astro/{_slug_.C6QfVOxJ.css → _slug_.CupVK4TM.css} +1 -1
- package/dist/serve/site-ui/_astro/_studio_.CfxiQWkk.css +1 -0
- package/dist/serve/site-ui/_astro/app.Ce3MTLQm.js +1 -0
- package/dist/serve/site-ui/_astro/app.taqzyjD0.js +11 -0
- package/dist/serve/site-ui/_astro/chess-showcase.Dh5D8kqe.js +354 -0
- package/dist/serve/site-ui/_astro/{example-runtime.B0byNQOl.js → example-runtime.CuyAjjiG.js} +2 -26
- package/dist/serve/site-ui/_astro/sandbox-controls.BP4M5f1M.js +1169 -0
- package/dist/serve/site-ui/_astro/seed.CSUkloMi.js +20 -0
- package/dist/serve/site-ui/_astro/writes.C57paAj2.js +99 -0
- package/dist/serve/site-ui/auth/index.html +2 -2
- package/dist/serve/site-ui/docs/_rhythm/index.html +1 -1
- package/dist/serve/site-ui/docs/agent/set-up-your-agent/index.html +29 -4
- package/dist/serve/site-ui/docs/agent/set-up-your-agent.md +8 -5
- package/dist/serve/site-ui/docs/agent/watch-and-review/index.html +1 -1
- package/dist/serve/site-ui/docs/agent/work-with-an-agent/index.html +1 -1
- package/dist/serve/site-ui/docs/ai-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/api-reference/index.html +1 -1
- package/dist/serve/site-ui/docs/app-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/auth-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/build/ai-logic/index.html +1 -1
- package/dist/serve/site-ui/docs/build/authentication/index.html +1 -1
- package/dist/serve/site-ui/docs/build/cloud-firestore/index.html +30 -52
- package/dist/serve/site-ui/docs/build/cloud-firestore.md +40 -36
- package/dist/serve/site-ui/docs/build/cloud-messaging/index.html +1 -1
- package/dist/serve/site-ui/docs/build/cloud-storage/index.html +1 -1
- package/dist/serve/site-ui/docs/build/realtime-database/index.html +1 -1
- package/dist/serve/site-ui/docs/conformance-scores/index.html +1 -1
- package/dist/serve/site-ui/docs/create-pyric-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/database-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/examples/chess/index.html +645 -249
- package/dist/serve/site-ui/docs/examples/chess.md +45 -16
- package/dist/serve/site-ui/docs/examples/index.html +2 -2
- package/dist/serve/site-ui/docs/firestore-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/functions-rtdb-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/how-the-swap-works/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/nextjs/index.html +1 -1
- package/dist/serve/site-ui/docs/get-started/start-building/index.html +29 -3
- package/dist/serve/site-ui/docs/get-started/start-building.md +9 -4
- package/dist/serve/site-ui/docs/get-started/vite/index.html +1 -1
- package/dist/serve/site-ui/docs/index.json +23 -18
- package/dist/serve/site-ui/docs/messaging-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/observe/resolve-runtime-status/index.html +1 -1
- package/dist/serve/site-ui/docs/observe/see-whats-happening/index.html +1 -1
- package/dist/serve/site-ui/docs/observe/shape-your-data/index.html +1 -1
- package/dist/serve/site-ui/docs/overview/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-app-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-auth-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-database-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-messaging-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-admin-storage-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ai-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-app-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-auth-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-assurance-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-bridge-client-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-bridge-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-browser-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-docs-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-conformance-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-credentials-node-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-discover-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-next-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-register-app-bridge-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-register-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-remote-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-verify-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-cli-vite-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-database-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-messaging-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-messaging-sw-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-rules-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-sandbox-database-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-sandbox-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-sandbox-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-storage-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-agents-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-auth-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-events-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-events-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-firestore-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-primitives-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-rtdb-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-rules-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-storage-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/pyric-ui-traffic-reference-api/index.html +1 -1
- package/dist/serve/site-ui/docs/rules-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/audit-your-rules/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/firestore-rules-limits/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/read-a-denial/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/rtdb-rules-in-typescript/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/rules-standard-library/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/secure-it-with-rules/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/simulate-and-lint/index.html +1 -1
- package/dist/serve/site-ui/docs/secure/write-a-rules-test-suite/index.html +1 -1
- package/dist/serve/site-ui/docs/ship/ship-to-production/index.html +1 -1
- package/dist/serve/site-ui/docs/ship/test-in-node/index.html +1 -1
- package/dist/serve/site-ui/docs/storage-compat/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/how-we-know-it-matches-firebase/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/rules-standard-library/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/storage-rules-stdlib-research/index.html +1 -1
- package/dist/serve/site-ui/docs/trust/versioning-and-compatibility/index.html +1 -1
- package/dist/serve/site-ui/docs/tutorial/index.html +1 -1
- package/dist/serve/site-ui/examples/chess/index.html +2 -2
- package/dist/serve/site-ui/firestore/index.html +2 -2
- package/dist/serve/site-ui/index.html +2 -2
- package/dist/serve/site-ui/rtdb/index.html +2 -2
- package/dist/serve/site-ui/settings/index.html +2 -2
- package/dist/serve/site-ui/storage/index.html +2 -2
- package/dist/serve/site-ui/traffic/index.html +2 -2
- package/dist/serve/vite-rules-source.d.ts.map +1 -1
- package/dist/serve/vite-rules-source.js +28 -7
- package/dist/serve/vite-rules-source.js.map +1 -1
- package/package.json +4 -4
- package/src/bridge/server/mcp-contract.ts +3 -0
- package/src/cli/index.ts +3 -0
- package/src/cli/mcp-proxy.ts +6 -7
- package/src/cli/rules.ts +31 -4
- package/src/cli/service-command-records/storage-rules-resolve.ts +4 -0
- package/src/cli/service-commands.generated.ts +2 -0
- package/src/serve/rules.ts +15 -5
- package/src/serve/vite-rules-source.ts +29 -7
- package/dist/serve/site-ui/_astro/_example_.jevZ7OdV.css +0 -1
- package/dist/serve/site-ui/_astro/_studio_.B6b_G1ev.css +0 -1
- package/dist/serve/site-ui/_astro/app.B7pBzz5N.js +0 -11
- package/dist/serve/site-ui/_astro/app.boex5SnQ.js +0 -1
- package/dist/serve/site-ui/_astro/chess-showcase.DDqE-QGe.js +0 -1
- package/dist/serve/site-ui/_astro/chess-source-explorer.C5k9c5yK.js +0 -1
- package/dist/serve/site-ui/_astro/chess-v2.CFHmd3UL.js +0 -354
- package/dist/serve/site-ui/_astro/index.uwPvjH_1.js +0 -1
- package/dist/serve/site-ui/_astro/jsx-runtime.D_zvdyIk.js +0 -9
- package/dist/serve/site-ui/_astro/reads.Dh3z0fJy.js +0 -1
- package/dist/serve/site-ui/_astro/sandbox-controls.C2IqtoSw.js +0 -1252
- package/dist/serve/site-ui/_astro/seed.CCmj00su.js +0 -20
- package/dist/serve/site-ui/examples/firestore-first-write/index.html +0 -2
package/README.md
CHANGED
|
@@ -32,11 +32,16 @@ npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/
|
|
|
32
32
|
npx skills add https://github.com/davideast/pyric/tree/main/pyric-plugin/skills/pyric-start --agent opencode
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
Then
|
|
35
|
+
Then invoke the skill:
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
| Agent | Enter |
|
|
38
|
+
|---|---|
|
|
39
|
+
| Codex | `$pyric-start` |
|
|
40
|
+
| Claude Code | `/pyric:pyric-start` |
|
|
41
|
+
| Antigravity CLI | `/pyric-start` |
|
|
42
|
+
| OpenCode | `/pyric-start` |
|
|
43
|
+
|
|
44
|
+
The leading `$` or `/` is part of the command.
|
|
40
45
|
|
|
41
46
|
The skill chooses the project launcher, starts one local sandbox bridge, opens the application, and confirms that the browser sandbox is connected.
|
|
42
47
|
|
package/README.md.orig
CHANGED
|
@@ -31,6 +31,7 @@ Console to ship rules, indexes, hosting, and functions to a real project.
|
|
|
31
31
|
| `pyric firestore rules resolve <path>` | Resolve `2+modules` imports into a Firebase rules artifact |
|
|
32
32
|
| `pyric firestore indexes generate <path...>` | Derive composite-index definitions from application source |
|
|
33
33
|
| `pyric storage rules lint <path>` / `simulate` | Run local Storage rules lint or simulation |
|
|
34
|
+
| `pyric storage rules resolve <path> --out storage.rules` | Resolve `storage.modules.rules` into a deployable Storage rules artifact |
|
|
34
35
|
| `pyric database rules lint <path>` | Lint a Realtime Database rules JSON file |
|
|
35
36
|
| `pyric database rules validate <path>` | Validate Realtime Database rules expressions |
|
|
36
37
|
| `pyric database rules simulate` | Run the local Realtime Database rules simulator |
|
|
@@ -120,7 +121,10 @@ Assurance campaign tools remain available programmatically from
|
|
|
120
121
|
without a live `ProjectScope`, so no Rules Test API tool):
|
|
121
122
|
|
|
122
123
|
- `firestore_simulate_rules`
|
|
123
|
-
- `
|
|
124
|
+
- `rules_stdlib_list` / `_get` (Firestore or Storage), with
|
|
125
|
+
`firestore_rules_stdlib_list` / `_get` retained as compatibility aliases
|
|
126
|
+
- `rules_resolve_modules` (Firestore or Storage), with
|
|
127
|
+
`firestore_resolve_modules` retained as a compatibility alias
|
|
124
128
|
- `firestore_lint_rules`
|
|
125
129
|
- `firestore_resolve_modules`
|
|
126
130
|
|
|
@@ -7,8 +7,8 @@ import { type ToolMetadata } from './tool-metadata.js';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const DEFAULT_MCP_FORWARDED_TOOL_NAMES: readonly ["firestore_simulator_create", "firestore_simulator_execute", "firestore_simulator_read", "firestore_simulator_batch", "firestore_create_with_auto_id", "firestore_simulator_undo", "firestore_simulator_redo", "firestore_simulator_events", "firestore_simulator_transaction", "firestore_get_document", "firestore_list_documents", "firestore_create_document", "firestore_add_document", "firestore_update_document", "firestore_delete_document", "firestore_batch_write", "firestore_query_where", "sandbox_inspect", "rtdb_simulate_access", "rtdb_crawl_structure"];
|
|
9
9
|
/** Local rules tools that run in the MCP process without a browser peer. */
|
|
10
|
-
export declare const DEFAULT_MCP_IN_PROCESS_TOOL_NAMES: readonly ["firestore_simulate_rules", "firestore_rules_stdlib_list", "firestore_rules_stdlib_get", "firestore_lint_rules", "firestore_resolve_modules", "pyric_can_i_use"];
|
|
11
|
-
export declare const DEFAULT_MCP_TOOL_NAMES: readonly ["firestore_simulator_create", "firestore_simulator_execute", "firestore_simulator_read", "firestore_simulator_batch", "firestore_create_with_auto_id", "firestore_simulator_undo", "firestore_simulator_redo", "firestore_simulator_events", "firestore_simulator_transaction", "firestore_get_document", "firestore_list_documents", "firestore_create_document", "firestore_add_document", "firestore_update_document", "firestore_delete_document", "firestore_batch_write", "firestore_query_where", "sandbox_inspect", "rtdb_simulate_access", "rtdb_crawl_structure", "firestore_simulate_rules", "firestore_rules_stdlib_list", "firestore_rules_stdlib_get", "firestore_lint_rules", "firestore_resolve_modules", "pyric_can_i_use"];
|
|
10
|
+
export declare const DEFAULT_MCP_IN_PROCESS_TOOL_NAMES: readonly ["firestore_simulate_rules", "firestore_rules_stdlib_list", "firestore_rules_stdlib_get", "firestore_lint_rules", "firestore_resolve_modules", "rules_stdlib_list", "rules_stdlib_get", "rules_resolve_modules", "pyric_can_i_use"];
|
|
11
|
+
export declare const DEFAULT_MCP_TOOL_NAMES: readonly ["firestore_simulator_create", "firestore_simulator_execute", "firestore_simulator_read", "firestore_simulator_batch", "firestore_create_with_auto_id", "firestore_simulator_undo", "firestore_simulator_redo", "firestore_simulator_events", "firestore_simulator_transaction", "firestore_get_document", "firestore_list_documents", "firestore_create_document", "firestore_add_document", "firestore_update_document", "firestore_delete_document", "firestore_batch_write", "firestore_query_where", "sandbox_inspect", "rtdb_simulate_access", "rtdb_crawl_structure", "firestore_simulate_rules", "firestore_rules_stdlib_list", "firestore_rules_stdlib_get", "firestore_lint_rules", "firestore_resolve_modules", "rules_stdlib_list", "rules_stdlib_get", "rules_resolve_modules", "pyric_can_i_use"];
|
|
12
12
|
export interface DefaultMcpToolSurface {
|
|
13
13
|
forwarded: ToolMetadata[];
|
|
14
14
|
inProcess: ToolHandler[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-contract.d.ts","sourceRoot":"","sources":["../../../src/bridge/server/mcp-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,ujBAqBnC,CAAC;AAEX,4EAA4E;AAC5E,eAAO,MAAM,iCAAiC,
|
|
1
|
+
{"version":3,"file":"mcp-contract.d.ts","sourceRoot":"","sources":["../../../src/bridge/server/mcp-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,ujBAqBnC,CAAC;AAEX,4EAA4E;AAC5E,eAAO,MAAM,iCAAiC,8OAUpC,CAAC;AAEX,eAAO,MAAM,sBAAsB,0xBAGzB,CAAC;AAEX,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B;AAqBD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,qBAAqB,CAchE"}
|
|
@@ -33,6 +33,9 @@ export const DEFAULT_MCP_IN_PROCESS_TOOL_NAMES = [
|
|
|
33
33
|
'firestore_rules_stdlib_get',
|
|
34
34
|
'firestore_lint_rules',
|
|
35
35
|
'firestore_resolve_modules',
|
|
36
|
+
'rules_stdlib_list',
|
|
37
|
+
'rules_stdlib_get',
|
|
38
|
+
'rules_resolve_modules',
|
|
36
39
|
'pyric_can_i_use',
|
|
37
40
|
];
|
|
38
41
|
export const DEFAULT_MCP_TOOL_NAMES = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-contract.js","sourceRoot":"","sources":["../../../src/bridge/server/mcp-contract.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,4BAA4B;IAC5B,6BAA6B;IAC7B,0BAA0B;IAC1B,2BAA2B;IAC3B,+BAA+B;IAC/B,0BAA0B;IAC1B,0BAA0B;IAC1B,4BAA4B;IAC5B,iCAAiC;IACjC,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,2BAA2B;IAC3B,2BAA2B;IAC3B,uBAAuB;IACvB,uBAAuB;IACvB,iBAAiB;IACjB,sBAAsB;IACtB,sBAAsB;CACd,CAAC;AAEX,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,0BAA0B;IAC1B,6BAA6B;IAC7B,4BAA4B;IAC5B,sBAAsB;IACtB,2BAA2B;IAC3B,iBAAiB;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,GAAG,gCAAgC;IACnC,GAAG,iCAAiC;CAC5B,CAAC;AAOX,SAAS,gBAAgB,CACvB,KAAa,EACb,MAAyB,EACzB,QAA2B;IAE3B,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IACE,YAAY,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;QAC7C,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,EAClE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,0CAA0C;YAChD,aAAa,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACpC,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,wBAAwB,EAAE,CAAC;IAC7C,gBAAgB,CACd,yBAAyB,EACzB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAClC,gCAAgC,CACjC,CAAC;IACF,gBAAgB,CACd,kBAAkB,EAClB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAClC,iCAAiC,CAClC,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp-contract.js","sourceRoot":"","sources":["../../../src/bridge/server/mcp-contract.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,4BAA4B;IAC5B,6BAA6B;IAC7B,0BAA0B;IAC1B,2BAA2B;IAC3B,+BAA+B;IAC/B,0BAA0B;IAC1B,0BAA0B;IAC1B,4BAA4B;IAC5B,iCAAiC;IACjC,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,2BAA2B;IAC3B,2BAA2B;IAC3B,uBAAuB;IACvB,uBAAuB;IACvB,iBAAiB;IACjB,sBAAsB;IACtB,sBAAsB;CACd,CAAC;AAEX,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,0BAA0B;IAC1B,6BAA6B;IAC7B,4BAA4B;IAC5B,sBAAsB;IACtB,2BAA2B;IAC3B,mBAAmB;IACnB,kBAAkB;IAClB,uBAAuB;IACvB,iBAAiB;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,GAAG,gCAAgC;IACnC,GAAG,iCAAiC;CAC5B,CAAC;AAOX,SAAS,gBAAgB,CACvB,KAAa,EACb,MAAyB,EACzB,QAA2B;IAE3B,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IACE,YAAY,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM;QAC7C,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,EAClE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,0CAA0C;YAChD,aAAa,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACpC,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,wBAAwB,EAAE,CAAC;IAC7C,gBAAgB,CACd,yBAAyB,EACzB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAClC,gCAAgC,CACjC,CAAC;IACF,gBAAgB,CACd,kBAAkB,EAClB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAClC,iCAAiC,CAClC,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAClC,CAAC"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* pyric firestore rules resolve <path> [--out <path>]
|
|
16
16
|
* pyric firestore indexes generate <path...> [--out <path>]
|
|
17
17
|
* pyric storage rules lint <path>
|
|
18
|
+
* pyric storage rules resolve <path> [--out <path>]
|
|
18
19
|
* pyric storage rules simulate [--stdin]
|
|
19
20
|
* pyric database rules lint <path>
|
|
20
21
|
* pyric database rules validate <path>
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAIH,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA+Q7D;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAyClE;AAQD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,OAAO,CASrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAUhC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* pyric firestore rules resolve <path> [--out <path>]
|
|
16
16
|
* pyric firestore indexes generate <path...> [--out <path>]
|
|
17
17
|
* pyric storage rules lint <path>
|
|
18
|
+
* pyric storage rules resolve <path> [--out <path>]
|
|
18
19
|
* pyric storage rules simulate [--stdin]
|
|
19
20
|
* pyric database rules lint <path>
|
|
20
21
|
* pyric database rules validate <path>
|
|
@@ -68,6 +69,7 @@ USAGE
|
|
|
68
69
|
pyric firestore rules resolve <path> [--out <path>]
|
|
69
70
|
pyric firestore indexes generate <path...> [--out <path>]
|
|
70
71
|
pyric storage rules lint <path>
|
|
72
|
+
pyric storage rules resolve <path> [--out <path>]
|
|
71
73
|
pyric storage rules simulate [--stdin]
|
|
72
74
|
pyric database rules lint <path>
|
|
73
75
|
pyric database rules validate <path>
|
|
@@ -124,6 +126,7 @@ COMMANDS
|
|
|
124
126
|
firestore rules resolve Resolve Firestore 2+modules imports to one ruleset.
|
|
125
127
|
firestore indexes generate Generate firestore.indexes.json from application source.
|
|
126
128
|
storage rules lint Check Storage rules syntax locally.
|
|
129
|
+
storage rules resolve Resolve Storage 2+modules imports to one ruleset.
|
|
127
130
|
storage rules simulate Run the local Storage rules evaluator.
|
|
128
131
|
database rules lint Run the Realtime Database rules expression linter.
|
|
129
132
|
database rules validate Validate Realtime Database rules expressions.
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-proxy.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-proxy.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-proxy.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAc,MAAM,uBAAuB,CAAC;AAKlE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAsBtD,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,aAAa,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,UAAU,EACnB,GAAG,GAAE,MAAsB,EAC3B,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,MAAM,CAAC,CAsHjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-proxy.js","sourceRoot":"","sources":["../../src/cli/mcp-proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-proxy.js","sourceRoot":"","sources":["../../src/cli/mcp-proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/rules.d.ts
CHANGED
|
@@ -51,5 +51,6 @@ export interface ResolveRulesDeps {
|
|
|
51
51
|
export declare function runRulesLint(parsed: ParsedArgs, deps?: RulesDeps): Promise<number>;
|
|
52
52
|
export declare function runRulesValidate(parsed: ParsedArgs, deps?: RulesDeps): Promise<number>;
|
|
53
53
|
export declare function runRulesResolve(parsed: ParsedArgs, deps?: ResolveRulesDeps): Promise<number>;
|
|
54
|
+
export declare function runStorageRulesResolve(parsed: ParsedArgs, deps?: ResolveRulesDeps): Promise<number>;
|
|
54
55
|
export declare function runRulesSimulate(parsed: ParsedArgs, deps?: RulesDeps): Promise<number>;
|
|
55
56
|
//# sourceMappingURL=rules.d.ts.map
|
package/dist/cli/rules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/cli/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAGtB,KAAK,QAAQ,EAGb,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;IAC3B,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACvD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,wBAAwB,CAAC;IAC3E,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACpC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACpC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACrC;AAcD,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB5F;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BhG;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/cli/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAGtB,KAAK,QAAQ,EAGb,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;IAC3B,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACvD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,wBAAwB,CAAC;IAC3E,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACpC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACpC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACrC;AAcD,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB5F;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BhG;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAkED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,MAAM,CAAC,CAgFjB"}
|
package/dist/cli/rules.js
CHANGED
|
@@ -84,12 +84,19 @@ export async function runRulesValidate(parsed, deps = {}) {
|
|
|
84
84
|
return 0;
|
|
85
85
|
}
|
|
86
86
|
export async function runRulesResolve(parsed, deps = {}) {
|
|
87
|
+
return runServiceRulesResolve('firestore', parsed, deps);
|
|
88
|
+
}
|
|
89
|
+
export async function runStorageRulesResolve(parsed, deps = {}) {
|
|
90
|
+
return runServiceRulesResolve('storage', parsed, deps);
|
|
91
|
+
}
|
|
92
|
+
async function runServiceRulesResolve(service, parsed, deps) {
|
|
87
93
|
const out = deps.stdout ?? process.stdout;
|
|
88
94
|
const err = deps.stderr ?? process.stderr;
|
|
89
95
|
const cwd = deps.cwd ?? process.cwd();
|
|
96
|
+
const command = `pyric ${service} rules resolve`;
|
|
90
97
|
const sourcePath = parsed.positional[0];
|
|
91
98
|
if (!sourcePath) {
|
|
92
|
-
err.write(
|
|
99
|
+
err.write(`${command}: missing rules-file path. Usage: ${command} <path> [--out <path>]\n`);
|
|
93
100
|
return 1;
|
|
94
101
|
}
|
|
95
102
|
const absoluteSourcePath = resolvePath(cwd, sourcePath);
|
|
@@ -98,14 +105,21 @@ export async function runRulesResolve(parsed, deps = {}) {
|
|
|
98
105
|
source = await (deps.readFile ?? readFile)(absoluteSourcePath, 'utf-8');
|
|
99
106
|
}
|
|
100
107
|
catch (error) {
|
|
101
|
-
err.write(
|
|
108
|
+
err.write(`${command}: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
102
109
|
return 1;
|
|
103
110
|
}
|
|
111
|
+
const expectedService = service === 'storage' ? 'firebase.storage' : 'cloud.firestore';
|
|
112
|
+
const parsedSource = parseToAST(source);
|
|
113
|
+
if (parsedSource && parsedSource.service.name !== expectedService) {
|
|
114
|
+
err.write(`${command}: source declares service ${parsedSource.service.name}; expected ${expectedService}\n`);
|
|
115
|
+
return 2;
|
|
116
|
+
}
|
|
104
117
|
const result = (deps.resolveModules ?? resolveModules)(source, {
|
|
105
118
|
basePath: dirname(absoluteSourcePath),
|
|
119
|
+
sourceFile: sourcePath,
|
|
106
120
|
});
|
|
107
121
|
if (!result.success) {
|
|
108
|
-
err.write(
|
|
122
|
+
err.write(`${command}: ${result.error.message}\n`);
|
|
109
123
|
return 2;
|
|
110
124
|
}
|
|
111
125
|
const outFlag = parsed.flags.get('out');
|
|
@@ -116,7 +130,7 @@ export async function runRulesResolve(parsed, deps = {}) {
|
|
|
116
130
|
const outputPath = resolvePath(cwd, outFlag);
|
|
117
131
|
await (deps.mkdir ?? mkdir)(dirname(outputPath), { recursive: true });
|
|
118
132
|
await (deps.writeFile ?? writeFile)(outputPath, result.data.resolved.endsWith('\n') ? result.data.resolved : `${result.data.resolved}\n`, 'utf-8');
|
|
119
|
-
out.write(
|
|
133
|
+
out.write(`${command}: wrote ${outputPath}\n`);
|
|
120
134
|
return 0;
|
|
121
135
|
}
|
|
122
136
|
export async function runRulesSimulate(parsed, deps = {}) {
|
package/dist/cli/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/cli/rules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/cli/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-rules-resolve.d.ts","sourceRoot":"","sources":["../../../src/cli/service-command-records/storage-rules-resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;;AAGrD,wBAAsE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-rules-resolve.js","sourceRoot":"","sources":["../../../src/cli/service-command-records/storage-rules-resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,eAAe,sBAAsD,CAAC"}
|
|
@@ -28,6 +28,9 @@ export declare const SERVICE_COMMANDS: readonly [{
|
|
|
28
28
|
}, {
|
|
29
29
|
readonly path: readonly ["storage", "rules", "lint"];
|
|
30
30
|
readonly run: typeof import("./storage-rules.js").runStorageRulesLint;
|
|
31
|
+
}, {
|
|
32
|
+
readonly path: readonly ["storage", "rules", "resolve"];
|
|
33
|
+
readonly run: typeof import("./rules.js").runStorageRulesResolve;
|
|
31
34
|
}, {
|
|
32
35
|
readonly path: readonly ["storage", "rules", "simulate"];
|
|
33
36
|
readonly run: typeof import("./storage-rules.js").runStorageRulesSimulate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-commands.generated.d.ts","sourceRoot":"","sources":["../../src/cli/service-commands.generated.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service-commands.generated.d.ts","sourceRoot":"","sources":["../../src/cli/service-commands.generated.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaiB,CAAC"}
|
|
@@ -8,6 +8,7 @@ import firestoreRulesResolve from './service-command-records/firestore-rules-res
|
|
|
8
8
|
import firestoreRulesSimulate from './service-command-records/firestore-rules-simulate.js';
|
|
9
9
|
import firestoreRulesValidate from './service-command-records/firestore-rules-validate.js';
|
|
10
10
|
import storageRulesLint from './service-command-records/storage-rules-lint.js';
|
|
11
|
+
import storageRulesResolve from './service-command-records/storage-rules-resolve.js';
|
|
11
12
|
import storageRulesSimulate from './service-command-records/storage-rules-simulate.js';
|
|
12
13
|
export const SERVICE_COMMANDS = [
|
|
13
14
|
{ path: ["database", "rules", "generate"], run: databaseRulesGenerate },
|
|
@@ -20,6 +21,7 @@ export const SERVICE_COMMANDS = [
|
|
|
20
21
|
{ path: ["firestore", "rules", "simulate"], run: firestoreRulesSimulate },
|
|
21
22
|
{ path: ["firestore", "rules", "validate"], run: firestoreRulesValidate },
|
|
22
23
|
{ path: ["storage", "rules", "lint"], run: storageRulesLint },
|
|
24
|
+
{ path: ["storage", "rules", "resolve"], run: storageRulesResolve },
|
|
23
25
|
{ path: ["storage", "rules", "simulate"], run: storageRulesSimulate },
|
|
24
26
|
];
|
|
25
27
|
//# sourceMappingURL=service-commands.generated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-commands.generated.js","sourceRoot":"","sources":["../../src/cli/service-commands.generated.ts"],"names":[],"mappings":"AAEA,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AACzF,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AACjF,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AACzF,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AACzF,OAAO,wBAAwB,MAAM,yDAAyD,CAAC;AAC/F,OAAO,kBAAkB,MAAM,mDAAmD,CAAC;AACnF,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AACzF,OAAO,sBAAsB,MAAM,uDAAuD,CAAC;AAC3F,OAAO,sBAAsB,MAAM,uDAAuD,CAAC;AAC3F,OAAO,gBAAgB,MAAM,iDAAiD,CAAC;AAC/E,OAAO,oBAAoB,MAAM,qDAAqD,CAAC;AAEvF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,IAAI,EAAE,CAAC,UAAU,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IACrE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAC,OAAO,EAAC,MAAM,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE;IAC7D,EAAE,IAAI,EAAE,CAAC,UAAU,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IACrE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IACrE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,SAAS,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE;IAC3E,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,MAAM,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE;IAC/D,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,SAAS,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IACrE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE;IACvE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE;IACvE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAC,OAAO,EAAC,MAAM,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE;IAC3D,EAAE,IAAI,EAAE,CAAC,SAAS,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE;CACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"service-commands.generated.js","sourceRoot":"","sources":["../../src/cli/service-commands.generated.ts"],"names":[],"mappings":"AAEA,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AACzF,OAAO,iBAAiB,MAAM,kDAAkD,CAAC;AACjF,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AACzF,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AACzF,OAAO,wBAAwB,MAAM,yDAAyD,CAAC;AAC/F,OAAO,kBAAkB,MAAM,mDAAmD,CAAC;AACnF,OAAO,qBAAqB,MAAM,sDAAsD,CAAC;AACzF,OAAO,sBAAsB,MAAM,uDAAuD,CAAC;AAC3F,OAAO,sBAAsB,MAAM,uDAAuD,CAAC;AAC3F,OAAO,gBAAgB,MAAM,iDAAiD,CAAC;AAC/E,OAAO,mBAAmB,MAAM,oDAAoD,CAAC;AACrF,OAAO,oBAAoB,MAAM,qDAAqD,CAAC;AAEvF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,IAAI,EAAE,CAAC,UAAU,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IACrE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAC,OAAO,EAAC,MAAM,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE;IAC7D,EAAE,IAAI,EAAE,CAAC,UAAU,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IACrE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IACrE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,SAAS,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE;IAC3E,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,MAAM,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE;IAC/D,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,SAAS,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE;IACrE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE;IACvE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,sBAAsB,EAAE;IACvE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAC,OAAO,EAAC,MAAM,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE;IAC3D,EAAE,IAAI,EAAE,CAAC,SAAS,EAAC,OAAO,EAAC,SAAS,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE;IACjE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAC,OAAO,EAAC,UAAU,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE;CACvB,CAAC"}
|
package/dist/serve/rules.d.ts
CHANGED
|
@@ -38,9 +38,9 @@ export declare function prepareRulesSource(raw: string, sourcePath: string): str
|
|
|
38
38
|
*/
|
|
39
39
|
export declare function loadProjectRules(cwd: string, config: FirebaseJson | null): Promise<LoadedRules>;
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
41
|
+
* Resolve and validate a raw Storage rules source. Modular sources are
|
|
42
|
+
* authored in storage.modules.rules and resolved in memory before the
|
|
43
|
+
* sandbox sees them; firebase.json can continue to point at storage.rules.
|
|
44
44
|
*/
|
|
45
45
|
export declare function prepareStorageRulesSource(raw: string, sourcePath: string): string;
|
|
46
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/serve/rules.ts"],"names":[],"mappings":"AAYA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAKhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,MAAM,WAAW,WAAW;IAC1B;yCACqC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gEAAgE;IAChE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC;gEAC4D;IAC5D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA0B1E;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,GAAG,IAAI,GAC1B,OAAO,CAAC,WAAW,CAAC,CAkBtB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/serve/rules.ts"],"names":[],"mappings":"AAYA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAKhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,MAAM,WAAW,WAAW;IAC1B;yCACqC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gEAAgE;IAChE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC;gEAC4D;IAC5D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA0B1E;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,GAAG,IAAI,GAC1B,OAAO,CAAC,WAAW,CAAC,CAkBtB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAmBjF;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,GAAG,IAAI,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAoB7B;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,GAAG,IAAI,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAuC9B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,EAC9D,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,UAAU,SAAM,GACf,SAAS,CAEX;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,EAC9D,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,UAAU,SAAM,GACf,SAAS,CAEX"}
|
package/dist/serve/rules.js
CHANGED
|
@@ -72,18 +72,26 @@ export async function loadProjectRules(cwd, config) {
|
|
|
72
72
|
return { rules, rulesHash: rulesHashOf(rules), sourcePath: path };
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
75
|
+
* Resolve and validate a raw Storage rules source. Modular sources are
|
|
76
|
+
* authored in storage.modules.rules and resolved in memory before the
|
|
77
|
+
* sandbox sees them; firebase.json can continue to point at storage.rules.
|
|
78
78
|
*/
|
|
79
79
|
export function prepareStorageRulesSource(raw, sourcePath) {
|
|
80
|
+
let source = raw;
|
|
81
|
+
if (/^\s*rules_version\s*=\s*['"]2\+modules['"]/m.test(raw)) {
|
|
82
|
+
const resolved = resolveModulesBrowser(raw, { sourceFile: sourcePath });
|
|
83
|
+
if (!resolved.success) {
|
|
84
|
+
throw new Error(`pyric dev: ${sourcePath} uses 2+modules but module resolution failed: ${resolved.error.message}`);
|
|
85
|
+
}
|
|
86
|
+
source = resolved.data.resolved;
|
|
87
|
+
}
|
|
80
88
|
try {
|
|
81
|
-
parseStorageRules(
|
|
89
|
+
parseStorageRules(source);
|
|
82
90
|
}
|
|
83
91
|
catch (e) {
|
|
84
92
|
throw new Error(`pyric dev: ${sourcePath} failed to parse: ${e instanceof Error ? e.message : String(e)} — fix the rules before serving.`);
|
|
85
93
|
}
|
|
86
|
-
return
|
|
94
|
+
return source;
|
|
87
95
|
}
|
|
88
96
|
/**
|
|
89
97
|
* Load the project's storage rules per `firebase.json` (`storage.rules`
|
package/dist/serve/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/serve/rules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/serve/rules.ts"],"names":[],"mappings":"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"}
|
package/dist/serve/site-ui/_astro/{RulesCodeEditor.CzwHdCi9.js → RulesCodeEditor.Bl-XMkhD.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as $c}from"./
|
|
1
|
+
import{j as $c}from"./sandbox-controls.BP4M5f1M.js";import{r as nt}from"./index.DBy5LfQW.js";let Tr=[],Ll=[];(()=>{let n="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 e=0,t=0;e<n.length;e++)(e%2?Ll:Tr).push(t=t+n[e])})();function Pc(n){if(n<768)return!1;for(let e=0,t=Tr.length;;){let i=e+t>>1;if(n<Tr[i])t=i;else if(n>=Ll[i])e=i+1;else return!0;if(e==t)return!1}}function to(n){return n>=127462&&n<=127487}const io=8205;function vc(n,e,t=!0,i=!0){return(t?zl:Zc)(n,e,i)}function zl(n,e,t){if(e==n.length)return e;e&&Dl(n.charCodeAt(e))&&Yl(n.charCodeAt(e-1))&&e--;let i=er(n,e);for(e+=no(i);e<n.length;){let r=er(n,e);if(i==io||r==io||t&&Pc(r))e+=no(r),i=r;else if(to(r)){let s=0,o=e-2;for(;o>=0&&to(er(n,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function Zc(n,e,t){for(;e>1;){let i=zl(n,e-2,t);if(i<e)return i;e--}return 0}function er(n,e){let t=n.charCodeAt(e);if(!Yl(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return Dl(i)?(t-55296<<10)+(i-56320)+65536:t}function Dl(n){return n>=56320&&n<57344}function Yl(n){return n>=55296&&n<56320}function no(n){return n<65536?1:2}class L{lineAt(e){if(e<0||e>this.length)throw new 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 new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=qt(this,e,t);let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),qe.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=qt(this,e,t);let i=[];return this.decompose(e,t,i,0),qe.from(i,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),i=this.length-this.scanIdentical(e,-1),r=new ui(this),s=new ui(e);for(let o=t,l=t;;){if(r.next(o),s.next(o),o=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(l+=r.value.length,r.done||l>=i)return!0}}iter(e=1){return new ui(this,e)}iterRange(e,t=this.length){return new El(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new _l(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?L.empty:e.length<=32?new F(e):qe.from(F.split(e,[]))}}class F extends L{constructor(e,t=Tc(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let s=0;;s++){let o=this.text[s],l=r+o.length;if((t?i:l)>=e)return new Cc(r,l,i,o);r=l+1,i++}}decompose(e,t,i,r){let s=e<=0&&t>=this.length?this:new F(ro(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let o=i.pop(),l=an(s.text,o.text.slice(),0,s.length);if(l.length<=32)i.push(new F(l,o.length+s.length));else{let a=l.length>>1;i.push(new F(l.slice(0,a)),new F(l.slice(a)))}}else i.push(s)}replace(e,t,i){if(!(i instanceof F))return super.replace(e,t,i);[e,t]=qt(this,e,t);let r=an(this.text,an(i.text,ro(this.text,0,e)),t),s=this.length+i.length-(t-e);return r.length<=32?new F(r,s):qe.from(F.split(r,[]),s)}sliceString(e,t=this.length,i=`
|
|
2
2
|
`){[e,t]=qt(this,e,t);let r="";for(let s=0,o=0;s<=t&&o<this.text.length;o++){let l=this.text[o],a=s+l.length;s>e&&o&&(r+=i),e<a&&t>s&&(r+=l.slice(Math.max(0,e-s),t-s)),s=a+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],r=-1;for(let s of e)i.push(s),r+=s.length+1,i.length==32&&(t.push(new F(i,r)),i=[],r=-1);return r>-1&&t.push(new F(i,r)),t}}class qe extends L{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,r){for(let s=0;;s++){let o=this.children[s],l=r+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,r);r=l+1,i=a+1}}decompose(e,t,i,r){for(let s=0,o=0;o<=t&&s<this.children.length;s++){let l=this.children[s],a=o+l.length;if(e<=a&&t>=o){let h=r&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if([e,t]=qt(this,e,t),i.lines<this.lines)for(let r=0,s=0;r<this.children.length;r++){let o=this.children[r],l=s+o.length;if(e>=s&&t<=l){let a=o.replace(e-s,t-s,i),h=this.lines-o.lines+a.lines;if(a.lines<h>>4&&a.lines>h>>6){let c=this.children.slice();return c[r]=a,new qe(c,this.length-(t-e)+i.length)}return super.replace(s,l,a)}s=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=`
|
|
3
3
|
`){[e,t]=qt(this,e,t);let r="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let l=this.children[s],a=o+l.length;o>e&&s&&(r+=i),e<a&&t>o&&(r+=l.sliceString(e-o,t-o,i)),o=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof qe))return 0;let i=0,[r,s,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==o||s==l)return i;let a=this.children[r],h=e.children[s];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,r)=>i+r.length+1,-1)){let i=0;for(let O of e)i+=O.lines;if(i<32){let O=[];for(let d of e)d.flatten(O);return new F(O,t)}let r=Math.max(32,i>>5),s=r<<1,o=r>>1,l=[],a=0,h=-1,c=[];function f(O){let d;if(O.lines>s&&O instanceof qe)for(let p of O.children)f(p);else O.lines>o&&(a>o||!a)?(u(),l.push(O)):O instanceof F&&a&&(d=c[c.length-1])instanceof F&&O.lines+d.lines<=32?(a+=O.lines,h+=O.length+1,c[c.length-1]=new F(d.text.concat(O.text),d.length+1+O.length)):(a+O.lines>r&&u(),a+=O.lines,h+=O.length+1,c.push(O))}function u(){a!=0&&(l.push(c.length==1?c[0]:qe.from(c,h)),h=-1,a=c.length=0)}for(let O of e)f(O);return u(),l.length==1?l[0]:new qe(l,t)}}L.empty=new F([""],0);function Tc(n){let e=-1;for(let t of n)e+=t.length+1;return e}function an(n,e,t=0,i=1e9){for(let r=0,s=0,o=!0;s<n.length&&r<=i;s++){let l=n[s],a=r+l.length;a>=t&&(a>i&&(l=l.slice(0,i-r)),r<t&&(l=l.slice(t-r)),o?(e[e.length-1]+=l,o=!1):e.push(l)),r=a+1}return e}function ro(n,e,t){return an(n,[""],e,t)}class ui{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 F?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],s=this.offsets[i],o=s>>1,l=r instanceof F?r.text.length:r.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=`
|
|
4
4
|
`,this;e--}else if(r instanceof F){let a=r.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof F?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class El{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new ui(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}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 i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=i?r:t<0?r.slice(r.length-i):r.slice(0,i),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!=""}}class _l{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(L.prototype[Symbol.iterator]=function(){return this.iter()},ui.prototype[Symbol.iterator]=El.prototype[Symbol.iterator]=_l.prototype[Symbol.iterator]=function(){return this});class Cc{constructor(e,t,i,r){this.from=e,this.to=t,this.number=i,this.text=r}get length(){return this.to-this.from}}function qt(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function te(n,e,t=!0,i=!0){return vc(n,e,t,i)}function Ac(n){return n>=56320&&n<57344}function Mc(n){return n>=55296&&n<56320}function Tt(n,e){let t=n.charCodeAt(e);if(!Mc(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return Ac(i)?(t-55296<<10)+(i-56320)+65536:t}function Bl(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Ai(n){return n<65536?1:2}const Cr=/\r\n?|\n/;var le=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(le||(le={}));class Fe{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 i=this.sections[t+1];e+=i<0?this.sections[t]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,i=0,r=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(i,r,s),r+=s):r+=o,i+=s}}iterChangedRanges(e,t=!1){Ar(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let i=this.sections[t++],r=this.sections[t++];r<0?e.push(i,r):e.push(r,i)}return new Fe(e)}composeDesc(e){return this.empty?e:e.empty?this:ql(this,e)}mapDesc(e,t=!1){return e.empty?this:Mr(this,e,t)}mapPos(e,t=-1,i=le.Simple){let r=0,s=0;for(let o=0;o<this.sections.length;){let l=this.sections[o++],a=this.sections[o++],h=r+l;if(a<0){if(h>e)return s+(e-r);s+=l}else{if(i!=le.Simple&&h>=e&&(i==le.TrackDel&&r<e&&h>e||i==le.TrackBefore&&r<e||i==le.TrackAfter&&h>e))return null;if(h>e||h==e&&t<0&&!l)return e==r||t<0?s:s+a;s+=a}r=h}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let i=0,r=0;i<this.sections.length&&r<=t;){let s=this.sections[i++],o=this.sections[i++],l=r+s;if(o>=0&&r<=t&&l>=e)return r<e&&l>t?"cover":!0;r=l}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let i=this.sections[t++],r=this.sections[t++];e+=(e?" ":"")+i+(r>=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new Fe(e)}static create(e){return new Fe(e)}}class J extends Fe{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Ar(this,(t,i,r,s,o)=>e=e.replace(r,r+(i-t),o),!1),e}mapDesc(e,t=!1){return Mr(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let r=0,s=0;r<t.length;r+=2){let o=t[r],l=t[r+1];if(l>=0){t[r]=l,t[r+1]=o;let a=r>>1;for(;i.length<a;)i.push(L.empty);i.push(o?e.slice(s,s+o):L.empty)}s+=o}return new J(t,i)}compose(e){return this.empty?e:e.empty?this:ql(this,e,!0)}map(e,t=!1){return e.empty?this:Mr(this,e,t,!0)}iterChanges(e,t=!1){Ar(this,e,t)}get desc(){return Fe.create(this.sections)}filter(e){let t=[],i=[],r=[],s=new Si(this);e:for(let o=0,l=0;;){let a=o==e.length?1e9:e[o++];for(;l<a||l==a&&s.len==0;){if(s.done)break e;let c=Math.min(s.len,a-l);oe(r,c,-1);let f=s.ins==-1?-1:s.off==0?s.ins:0;oe(t,c,f),f>0&&at(i,t,s.text),s.forward(c),l+=c}let h=e[o++];for(;l<h;){if(s.done)break e;let c=Math.min(s.len,h-l);oe(t,c,-1),oe(r,c,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(c),l+=c}}return{changes:new J(t,i),filtered:Fe.create(r)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t],r=this.sections[t+1];r<0?e.push(i):r==0?e.push([i]):e.push([i].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,i){let r=[],s=[],o=0,l=null;function a(c=!1){if(!c&&!r.length)return;o<t&&oe(r,t-o,-1);let f=new J(r,s);l=l?l.compose(f.map(l)):f,r=[],s=[],o=0}function h(c){if(Array.isArray(c))for(let f of c)h(f);else if(c instanceof J){if(c.length!=t)throw new RangeError(`Mismatched change set length (got ${c.length}, expected ${t})`);a(),l=l?l.compose(c.map(l)):c}else{let{from:f,to:u=f,insert:O}=c;if(f>u||f<0||u>t)throw new RangeError(`Invalid change range ${f} to ${u} (in doc of length ${t})`);let d=O?typeof O=="string"?L.of(O.split(i||Cr)):O:L.empty,p=d.length;if(f==u&&p==0)return;f<o&&a(),f>o&&oe(r,f-o,-1),oe(r,u-f,p),at(s,r,d),o=u}}return h(e),a(!l),l}static empty(e){return new J(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let r=0;r<e.length;r++){let s=e[r];if(typeof s=="number")t.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((o,l)=>l&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;i.length<r;)i.push(L.empty);i[r]=L.of(s.slice(1)),t.push(s[0],i[r].length)}}}return new J(t,i)}static createSet(e,t){return new J(e,t)}}function oe(n,e,t,i=!1){if(e==0&&t<=0)return;let r=n.length-2;r>=0&&t<=0&&t==n[r+1]?n[r]+=e:r>=0&&e==0&&n[r]==0?n[r+1]+=t:i?(n[r]+=e,n[r+1]+=t):n.push(e,t)}function at(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i<n.length)n[n.length-1]=n[n.length-1].append(t);else{for(;n.length<i;)n.push(L.empty);n.push(t)}}function Ar(n,e,t){let i=n.inserted;for(let r=0,s=0,o=0;o<n.sections.length;){let l=n.sections[o++],a=n.sections[o++];if(a<0)r+=l,s+=l;else{let h=r,c=s,f=L.empty;for(;h+=l,c+=a,a&&i&&(f=f.append(i[o-2>>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];e(r,h,s,c,f),r=h,s=c}}}function Mr(n,e,t,i=!1){let r=[],s=i?[]:null,o=new Si(n),l=new Si(e);for(let a=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);oe(r,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len<o.len||l.len==o.len&&!t))){let h=l.len;for(oe(r,l.ins,-1);h;){let c=Math.min(o.len,h);o.ins>=0&&a<o.i&&o.len<=c&&(oe(r,0,o.ins),s&&at(s,r,o.text),a=o.i),o.forward(c),h-=c}l.next()}else if(o.ins>=0){let h=0,c=o.len;for(;c;)if(l.ins==-1){let f=Math.min(c,l.len);h+=f,c-=f,l.forward(f)}else if(l.ins==0&&l.len<c)c-=l.len,l.next();else break;oe(r,h,a<o.i?o.ins:0),s&&a<o.i&&at(s,r,o.text),a=o.i,o.forward(o.len-c)}else{if(o.done&&l.done)return s?J.createSet(r,s):Fe.create(r);throw new Error("Mismatched change set lengths")}}}function ql(n,e,t=!1){let i=[],r=t?[]:null,s=new Si(n),o=new Si(e);for(let l=!1;;){if(s.done&&o.done)return r?J.createSet(i,r):Fe.create(i);if(s.ins==0)oe(i,s.len,0,l),s.next();else if(o.len==0&&!o.done)oe(i,0,o.ins,l),r&&at(r,i,o.text),o.next();else{if(s.done||o.done)throw new Error("Mismatched change set lengths");{let a=Math.min(s.len2,o.len),h=i.length;if(s.ins==-1){let c=o.ins==-1?-1:o.off?0:o.ins;oe(i,a,c,l),r&&c&&at(r,i,o.text)}else o.ins==-1?(oe(i,s.off?0:s.len,a,l),r&&at(r,i,s.textBit(a))):(oe(i,s.off?0:s.len,o.off?0:o.ins,l),r&&!o.off&&at(r,i,o.text));l=(s.ins>a||o.ins>=0&&o.len>a)&&(l||i.length>h),s.forward2(a),o.forward(a)}}}}class Si{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?L.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?L.empty:t[i].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)}}class ot{constructor(e,t,i,r){this.from=e,this.to=t,this.flags=i,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(e,t=-1){let i,r;return this.empty?i=r=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new ot(i,r,this.flags,this.goalColumn)}extend(e,t=e,i=0){if(e<=this.anchor&&t>=this.anchor)return Q.range(e,t,void 0,void 0,i);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return Q.range(this.anchor,r,void 0,void 0,i)}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 new RangeError("Invalid JSON representation for SelectionRange");return Q.range(e.anchor,e.head)}static create(e,t,i,r){return new ot(e,t,i,r)}}class Q{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:Q.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(e.ranges[i],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new Q([this.main],0)}addRange(e,t=!0){return Q.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let i=this.ranges.slice();return i[t]=e,Q.create(i,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Q(e.ranges.map(t=>ot.fromJSON(t)),e.main)}static single(e,t=e){return new Q([Q.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;r<e.length;r++){let s=e[r];if(s.empty?s.from<=i:s.from<i)return Q.normalized(e.slice(),t);i=s.to}return new Q(e,t)}static cursor(e,t=0,i,r){return ot.create(e,e,(t==0?0:t<0?8:16)|(i==null?7:Math.min(6,i)),r)}static range(e,t,i,r,s){let o=r==null?7:Math.min(6,r);return!s&&e!=t&&(s=t<e?1:-1),s&&(o|=s<0?8:16),t<e?ot.create(t,e,o|32,i):ot.create(e,t,o,i)}static undirectionalRange(e,t){return ot.create(e,t,64,void 0)}static normalized(e,t=0){let i=e[t];e.sort((r,s)=>r.from-s.from),t=e.indexOf(i);for(let r=1;r<e.length;r++){let s=e[r],o=e[r-1];if(s.empty?s.from<=o.to:s.from<o.to){let l=o.from,a=Math.max(s.to,o.to);r<=t&&t--,e.splice(--r,2,s.anchor>s.head?Q.range(a,l):Q.range(l,a))}}return new Q(e,t)}}function Vl(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let xs=0;class v{constructor(e,t,i,r,s){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=r,this.id=xs++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new v(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:bs),!!e.static,e.enables)}of(e){return new hn([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new hn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new hn(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function bs(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class hn{constructor(e,t,i,r){this.dependencies=e,this.facet=t,this.type=i,this.value=r,this.id=xs++}dynamicSlot(e){var t;let i=this.value,r=this.facet.compareInput,s=this.id,o=e[s]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?h=!0:(((t=e[f.id])!==null&&t!==void 0?t:1)&1)==0&&c.push(e[f.id]);return{create(f){return f.values[o]=i(f),1},update(f,u){if(a&&u.docChanged||h&&(u.docChanged||u.selection)||Rr(f,c)){let O=i(f);if(l?!so(O,f.values[o],r):!r(O,f.values[o]))return f.values[o]=O,1}return 0},reconfigure:(f,u)=>{let O,d=u.config.address[s];if(d!=null){let p=gn(u,d);if(this.dependencies.every(g=>g instanceof v?u.facet(g)===f.facet(g):g instanceof Qe?u.field(g,!1)==f.field(g,!1):!0)||(l?so(O=i(f),p,r):r(O=i(f),p)))return f.values[o]=p,0}else O=i(f);return f.values[o]=O,1}}}get extension(){return this}}function so(n,e,t){if(n.length!=e.length)return!1;for(let i=0;i<n.length;i++)if(!t(n[i],e[i]))return!1;return!0}function Rr(n,e){let t=!1;for(let i of e)Oi(n,i)&1&&(t=!0);return t}function Rc(n,e,t){let i=t.map(a=>n[a.id]),r=t.map(a=>a.type),s=i.filter(a=>!(a&1)),o=n[e.id]>>1;function l(a){let h=[];for(let c=0;c<i.length;c++){let f=gn(a,i[c]);if(r[c]==2)for(let u of f)h.push(u);else h.push(f)}return e.combine(h)}return{create(a){for(let h of i)Oi(a,h);return a.values[o]=l(a),1},update(a,h){if(!Rr(a,s))return 0;let c=l(a);return e.compare(c,a.values[o])?0:(a.values[o]=c,1)},reconfigure(a,h){let c=Rr(a,i),f=h.config.facets[e.id],u=h.facet(e);if(f&&!c&&bs(t,f))return a.values[o]=u,0;let O=l(a);return e.compare(O,u)?(a.values[o]=u,0):(a.values[o]=O,1)}}}const Bi=v.define({static:!0});class Qe{constructor(e,t,i,r,s){this.id=e,this.createF=t,this.updateF=i,this.compareF=r,this.spec=s,this.provides=void 0}static define(e){let t=new Qe(xs++,e.create,e.update,e.compare||((i,r)=>i===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Bi).find(i=>i.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,r)=>{let s=i.values[t],o=this.updateF(s,r);return this.compareF(s,o)?0:(i.values[t]=o,1)},reconfigure:(i,r)=>{let s=i.facet(Bi),o=r.facet(Bi),l;return(l=s.find(a=>a.field==this))&&l!=o.find(a=>a.field==this)?(i.values[t]=l.create(i),1):r.config.address[this.id]!=null?(i.values[t]=r.field(this),0):(i.values[t]=this.create(i),1)}}}init(e){return[this,Bi.of({field:this,create:e})]}get extension(){return this}}const yt={lowest:4,low:3,default:2,high:1,highest:0};function ni(n){return e=>new jl(e,n)}const Kt={highest:ni(yt.highest),high:ni(yt.high),default:ni(yt.default),low:ni(yt.low),lowest:ni(yt.lowest)};class jl{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}}class Mi{of(e){return new Xr(this,e)}reconfigure(e){return Mi.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Xr{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}}class pn{constructor(e,t,i,r,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=r,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<i.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,i){let r=[],s=Object.create(null),o=new Map;for(let u of Xc(e,t,o))u instanceof Qe?r.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],h=[];for(let u of r)l[u.id]=h.length<<1,h.push(O=>u.slot(O));let c=i?.config.facets;for(let u in s){let O=s[u],d=O[0].facet,p=c&&c[u]||[];if(O.every(g=>g.type==0))if(l[d.id]=a.length<<1|1,bs(p,O))a.push(i.facet(d));else{let g=d.combine(O.map(S=>S.value));a.push(i&&d.compare(g,i.facet(d))?i.facet(d):g)}else{for(let g of O)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=h.length<<1,h.push(S=>g.dynamicSlot(S)));l[d.id]=h.length<<1,h.push(g=>Rc(g,d,O))}}let f=h.map(u=>u(l));return new pn(e,o,f,l,a,s)}}function Xc(n,e,t){let i=[[],[],[],[],[]],r=new Map;function s(o,l){let a=r.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof Xr&&t.delete(o.compartment)}if(r.set(o,l),Array.isArray(o))for(let h of o)s(h,l);else if(o instanceof Xr){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),s(h,l)}else if(o instanceof jl)s(o.inner,o.prec);else if(o instanceof Qe)i[l].push(o),o.provides&&s(o.provides,l);else if(o instanceof hn)i[l].push(o),o.facet.extensions&&s(o.facet.extensions,yt.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(h==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(h,l)}}return s(n,yt.default),i.reduce((o,l)=>o.concat(l))}function Oi(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let r=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|r}function gn(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const Il=v.define(),Wr=v.define({combine:n=>n.some(e=>e),static:!0}),Gl=v.define({combine:n=>n.length?n[0]:void 0,static:!0}),Nl=v.define(),Ul=v.define(),Fl=v.define(),Hl=v.define({combine:n=>n.length?n[0]:!1});class it{constructor(e,t){this.type=e,this.value=t}static define(){return new Wc}}class Wc{of(e){return new it(this,e)}}class Lc{constructor(e){this.map=e}of(e){return new E(this,e)}}class E{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new E(this.type,t)}is(e){return this.type==e}static define(e={}){return new Lc(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let r of e){let s=r.map(t);s&&i.push(s)}return i}}E.reconfigure=E.define();E.appendConfig=E.define();class K{constructor(e,t,i,r,s,o){this.startState=e,this.changes=t,this.selection=i,this.effects=r,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,i&&Vl(i,t.newLength),s.some(l=>l.type==K.time)||(this.annotations=s.concat(K.time.of(Date.now())))}static create(e,t,i,r,s,o){return new K(e,t,i,r,s,o)}get newDoc(){return this._doc||(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(e){let t=this.annotation(K.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}K.time=it.define();K.userEvent=it.define();K.addToHistory=it.define();K.remote=it.define();function zc(n,e){let t=[];for(let i=0,r=0;;){let s,o;if(i<n.length&&(r==e.length||e[r]>=n[i]))s=n[i++],o=n[i++];else if(r<e.length)s=e[r++],o=e[r++];else return t;!t.length||t[t.length-1]<s?t.push(s,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function Kl(n,e,t){var i;let r,s,o;return t?(r=e.changes,s=J.empty(e.changes.length),o=n.changes.compose(e.changes)):(r=e.changes.map(n.changes),s=n.changes.mapDesc(e.changes,!0),o=n.changes.compose(r)),{changes:o,selection:e.selection?e.selection.map(s):(i=n.selection)===null||i===void 0?void 0:i.map(r),effects:E.mapEffects(n.effects,r).concat(E.mapEffects(e.effects,s)),annotations:n.annotations.length?n.annotations.concat(e.annotations):e.annotations,scrollIntoView:n.scrollIntoView||e.scrollIntoView}}function Lr(n,e,t){let i=e.selection,r=zt(e.annotations);return e.userEvent&&(r=r.concat(K.userEvent.of(e.userEvent))),{changes:e.changes instanceof J?e.changes:J.of(e.changes||[],t,n.facet(Gl)),selection:i&&(i instanceof Q?i:Q.single(i.anchor,i.head)),effects:zt(e.effects),annotations:r,scrollIntoView:!!e.scrollIntoView}}function Jl(n,e,t){let i=Lr(n,e.length?e[0]:{},n.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(t=!1);let o=!!e[s].sequential;i=Kl(i,Lr(n,e[s],o?i.changes.newLength:n.doc.length),o)}let r=K.create(n,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return Yc(t?Dc(r):r)}function Dc(n){let e=n.startState,t=!0;for(let r of e.facet(Nl)){let s=r(n);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:zc(t,s))}if(t!==!0){let r,s;if(t===!1)s=n.changes.invertedDesc,r=J.empty(e.doc.length);else{let o=n.changes.filter(t);r=o.changes,s=o.filtered.mapDesc(o.changes).invertedDesc}n=K.create(e,r,n.selection&&n.selection.map(s),E.mapEffects(n.effects,s),n.annotations,n.scrollIntoView)}let i=e.facet(Ul);for(let r=i.length-1;r>=0;r--){let s=i[r](n);s instanceof K?n=s:Array.isArray(s)&&s.length==1&&s[0]instanceof K?n=s[0]:n=Jl(e,zt(s),!1)}return n}function Yc(n){let e=n.startState,t=e.facet(Fl),i=n;for(let r=t.length-1;r>=0;r--){let s=t[r](n);s&&Object.keys(s).length&&(i=Kl(i,Lr(e,s,n.changes.newLength),!0))}return i==n?n:K.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const Ec=[];function zt(n){return n==null?Ec:Array.isArray(n)?n:[n]}var I=(function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n})(I||(I={}));const _c=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let zr;try{zr=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function Bc(n){if(zr)return zr.test(n);for(let e=0;e<n.length;e++){let t=n[e];if(/\w/.test(t)||t>""&&(t.toUpperCase()!=t.toLowerCase()||_c.test(t)))return!0}return!1}function qc(n){return e=>{if(!/\S/.test(e))return I.Space;if(Bc(e))return I.Word;for(let t=0;t<n.length;t++)if(e.indexOf(n[t])>-1)return I.Word;return I.Other}}class D{constructor(e,t,i,r,s,o){this.config=e,this.doc=t,this.selection=i,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let l=0;l<this.config.dynamicSlots.length;l++)Oi(this,l<<1);this.computeSlot=null}field(e,t=!0){let i=this.config.address[e.id];if(i==null){if(t)throw new RangeError("Field is not present in this state");return}return Oi(this,i),gn(this,i)}update(...e){return Jl(this,e,!0)}applyTransaction(e){let t=this.config,{base:i,compartments:r}=t;for(let l of e.effects)l.is(Mi.reconfigure)?(t&&(r=new Map,t.compartments.forEach((a,h)=>r.set(h,a)),t=null),r.set(l.value.compartment,l.value.extension)):l.is(E.reconfigure)?(t=null,i=l.value):l.is(E.appendConfig)&&(t=null,i=zt(i).concat(l.value));let s;t?s=e.startState.values.slice():(t=pn.resolve(i,r,this),s=new D(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,h)=>h.reconfigure(a,this),null).values);let o=e.startState.facet(Wr)?e.newSelection:e.newSelection.asSingle();new D(t,e.newDoc,o,s,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:Q.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),r=this.changes(i.changes),s=[i.range],o=zt(i.effects);for(let l=1;l<t.ranges.length;l++){let a=e(t.ranges[l]),h=this.changes(a.changes),c=h.map(r);for(let u=0;u<l;u++)s[u]=s[u].map(c);let f=r.mapDesc(h,!0);s.push(a.range.map(f)),r=r.compose(c),o=E.mapEffects(o,c).concat(E.mapEffects(zt(a.effects),f))}return{changes:r,selection:Q.create(s,t.mainIndex),effects:o}}changes(e=[]){return e instanceof J?e:J.of(e,this.doc.length,this.facet(D.lineSeparator))}toText(e){return L.of(e.split(this.facet(D.lineSeparator)||Cr))}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:(Oi(this,t),gn(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let i in e){let r=e[i];r instanceof Qe&&this.config.address[r.id]!=null&&(t[i]=r.spec.toJSON(this.field(e[i]),this))}return t}static fromJSON(e,t={},i){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let r=[];if(i){for(let s in i)if(Object.prototype.hasOwnProperty.call(e,s)){let o=i[s],l=e[s];r.push(o.init(a=>o.spec.fromJSON(l,a)))}}return D.create({doc:e.doc,selection:Q.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=pn.resolve(e.extensions||[],new Map),i=e.doc instanceof L?e.doc:L.of((e.doc||"").split(t.staticFacet(D.lineSeparator)||Cr)),r=e.selection?e.selection instanceof Q?e.selection:Q.single(e.selection.anchor,e.selection.head):Q.single(0);return Vl(r,i.length),t.staticFacet(Wr)||(r=r.asSingle()),new D(t,i,r,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(D.tabSize)}get lineBreak(){return this.facet(D.lineSeparator)||`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
html,body{min-width:0;overflow-x:hidden}body{margin:0;background:#15151d;color:#f4f4f7;font-family:Inter,sans-serif}.example-runtime{box-sizing:border-box;display:grid;align-content:start;min-height:100vh;gap:.85rem;padding:1rem}.example-runtime header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.runtime-status{display:inline-flex;align-items:center;gap:.5rem;color:#c6c4cf;font-size:.78rem;font-weight:600}.example-runtime button{border:1px solid #4a4a58;border-radius:.45rem;padding:.45rem .65rem;background:#24242f;color:inherit;cursor:pointer}.example-runtime button:hover{border-color:#777284;background:#2d2b38}.runtime-result{min-width:0;overflow:hidden;border:1px solid #3b3946;border-radius:.55rem;background:#1b1a23}.runtime-result-ready{border-color:#3e604b}.runtime-result-error{border-color:#70434f}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .85rem;border-bottom:1px solid #35333f}.result-heading div{min-width:0}.result-heading span{display:block;color:#9995a6;font-size:.65rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.result-heading strong{display:block;margin-top:.18rem;color:#f4f4f7;font:600 .82rem/1.3 JetBrains Mono,monospace}.example-runtime pre{box-sizing:border-box;min-height:7rem;max-height:20rem;margin:0;overflow:auto;padding:.9rem;background:#0f0f17;color:#d9f99d;font:.78rem/1.55 JetBrains Mono,monospace;overflow-wrap:anywhere;white-space:pre-wrap}.status{width:.55rem;height:.55rem;border-radius:50%;background:#eab308}.status-ready{background:#22c55e}.status-error{background:#ef4444}.copy-error{flex:0 0 auto}@media(max-width:430px){.example-runtime{padding:.75rem}.result-heading{align-items:flex-start;flex-direction:column}}.chess-showcase{padding:clamp(1rem,3vw,2.25rem);background:#15151d;color:#f4f4f7}.chess-play{display:grid;grid-template-columns:minmax(20rem,42rem) minmax(18rem,25rem);gap:clamp(1rem,3vw,2rem);align-items:start;max-width:70rem;margin:0 auto}.chess-board-wrap{padding:clamp(.55rem,1.5vw,1rem);border:1px solid #474258;border-radius:.5rem;background:#201f2a}.chess-board{display:grid;grid-template:repeat(8,minmax(0,1fr)) / repeat(8,minmax(0,1fr));overflow:hidden;width:100%;aspect-ratio:1}.chess-square{position:relative;display:grid;width:100%;height:100%;min-width:0;min-height:0;place-items:center;overflow:hidden;border:0;border-radius:0;padding:0;cursor:pointer;font-size:clamp(1.6rem,5vw,3.6rem);line-height:1;text-shadow:0 2px 2px #0005}.chess-piece{position:absolute;inset:0;display:grid;place-items:center;line-height:1}.chess-square.is-light{background:#d7d0e3;color:#17151d}.chess-square.is-dark{background:#756b91;color:#111018}.chess-square:hover{box-shadow:inset 0 0 0 .22rem #c7ff5f;z-index:1}.chess-square.is-selected{box-shadow:inset 0 0 0 .3rem #b8ff3d;background:#9caa64;z-index:2}.chess-square small{position:absolute;font:700 .58rem/1 Inter,sans-serif;opacity:.65}.rank-label{top:.25rem;left:.25rem}.file-label{right:.25rem;bottom:.22rem}.chess-console{display:grid;gap:1rem}.turn-row,.identity-picker,.scenario-picker,.verdict{border:1px solid #413e4d;border-radius:.5rem;background:#1e1d27;padding:1rem}.turn-row{display:flex;gap:1rem;align-items:center;justify-content:space-between}.turn-row strong{display:block;margin-top:.25rem;font-size:1rem}.verdict strong{display:flex;align-items:center;gap:.45rem;margin-top:.25rem;font-size:1rem}.verdict strong i{width:.48rem;height:.48rem;border-radius:50%;background:#8f8b9d}.console-label{color:#9995a6;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.chess-showcase button{border:1px solid #504c5d;border-radius:.5rem;padding:.55rem .7rem;background:#292733;color:inherit;cursor:pointer}.chess-showcase button:hover{border-color:#8d84ae;background:#322f40}.chess-showcase button:disabled{opacity:.45;cursor:not-allowed}.identity-picker{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.identity-picker legend,.scenario-picker legend{grid-column:1 / -1;padding:0 .2rem;color:#aaa6b7;font-size:.78rem}.identity-picker button[aria-pressed=true],.source-tabs button[aria-selected=true]{border-color:#9d8dff;background:#443c70}.identity-picker code{display:block;margin-top:.2rem;color:#c5bfd6;font-size:.65rem}.try-row{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.scenario-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem}.scenario-action select{min-width:0;border:1px solid #504c5d;border-radius:.5rem;padding:.55rem .7rem;background:#292733;color:inherit;font:inherit}.scenario-picker p{margin:.7rem 0 .35rem}.scenario-picker>code{color:#c5bfd6;font-size:.7rem;line-height:1.5}.verdict{min-height:10rem}.verdict.is-allowed{border-color:#4d735c}.verdict.is-denied{border-color:#754956}.verdict.is-allowed strong i{background:#4ade80}.verdict.is-denied strong i{background:#fb7185}.verdict dl{display:grid;gap:.3rem;margin:.85rem 0}.verdict dl div{display:flex;justify-content:space-between;gap:1rem}.verdict dt{color:#9995a6;font-size:.75rem}.verdict dd{margin:0;font-size:.75rem}.verdict p{margin:.75rem 0 0;color:#bbb8c8;font-size:.8rem;line-height:1.5}@media(max-width:820px){.chess-play{grid-template-columns:1fr}}@media(max-width:430px){.chess-showcase{padding:.75rem}.chess-square{font-size:1.8rem}.try-row,.scenario-action{grid-template-columns:1fr}}
|