dirsql 0.3.84__tar.gz → 0.3.86__tar.gz
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.
- {dirsql-0.3.84 → dirsql-0.3.86}/Cargo.lock +1 -1
- {dirsql-0.3.84 → dirsql-0.3.86}/PKG-INFO +1 -1
- {dirsql-0.3.84/packages/rust → dirsql-0.3.86}/docs/reference/cli.md +1 -1
- {dirsql-0.3.84/packages/rust → dirsql-0.3.86}/docs/reference/config.md +5 -1
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/Cargo.toml +1 -1
- {dirsql-0.3.84 → dirsql-0.3.86/packages/python}/docs/reference/cli.md +1 -1
- {dirsql-0.3.84 → dirsql-0.3.86/packages/python}/docs/reference/config.md +5 -1
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/e2e-attestation.json +2 -2
- {dirsql-0.3.84/packages/python → dirsql-0.3.86/packages/rust}/docs/reference/cli.md +1 -1
- {dirsql-0.3.84/packages/python → dirsql-0.3.86/packages/rust}/docs/reference/config.md +5 -1
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/bin/dirsql.rs +1 -1
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/config.rs +47 -5
- {dirsql-0.3.84 → dirsql-0.3.86}/Cargo.toml +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/README.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/__init__.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/_async.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/cli/binary_path.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/cli/is_windows.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/cli/main.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/cli/resolve_config_extensions.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/py.typed +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/resolve_config_extensions.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/dirsql/resolve_extension.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/AGENTS.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/explanation.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/getting-started.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/howto/define-tables.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/howto/embed.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/howto/load-extension.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/howto/persist.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/howto/skip-files.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/index.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/migrations.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/package.json +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/playwright.config.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/reference/columns.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/reference/hooks.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/reference/http-api.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/reference/sdk.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/tests/integration/home.spec.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/tests/integration/language-flag.spec.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/tests/integration/sidebar.spec.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/tests/unit/config.test.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/tests/unit/lang.test.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/docs/vitest.config.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/README.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/conftest.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/explanation.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/getting-started.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/howto/define-tables.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/howto/embed.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/howto/load-extension.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/howto/persist.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/howto/skip-files.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/index.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/migrations.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/package.json +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/playwright.config.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/reference/columns.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/reference/hooks.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/reference/http-api.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/reference/sdk.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/tests/integration/home.spec.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/tests/integration/language-flag.spec.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/tests/integration/sidebar.spec.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/tests/unit/config.test.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/tests/unit/lang.test.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/vitest.config.ts +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/src/lib.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/tests/integration/binding/__init__.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/python/tests/integration/hermetic/__init__.py +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/Cargo.toml +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/README.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/explanation.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/getting-started.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/howto/define-tables.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/howto/embed.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/howto/load-extension.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/howto/persist.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/howto/skip-files.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/index.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/migrations.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/reference/columns.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/reference/hooks.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/reference/http-api.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/docs/reference/sdk.md +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/cli/execute.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/cli/router.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/command.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/db.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/default_config.toml +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/lib.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/matcher.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/persist.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/scanner.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.3.84 → dirsql-0.3.86}/pyproject.toml +0 -0
|
@@ -45,7 +45,7 @@ requests, closes open `/events` streams, and exits.
|
|
|
45
45
|
|
|
46
46
|
| Flag | Default | Description |
|
|
47
47
|
|---|---|---|
|
|
48
|
-
|
|
|
48
|
+
| `-c, --config <path>` | `./.dirsql.toml` | Path to the [config file](./config.md). The index is rooted at the directory containing this file (unless the config sets `[dirsql].root`). When the file does not exist, the server runs in [zero-config mode](#zero-config-mode). |
|
|
49
49
|
| `--host <addr>` | `localhost` | Bind address. |
|
|
50
50
|
| `--port <n>` | `7117` | TCP port to bind. |
|
|
51
51
|
| `--extension <path>` | none | Load a SQLite extension by literal path, overriding the config's `[[dirsql.extension]]` entries. Repeatable. Format: `<path>` or `<path>::<entrypoint>`. Internal plumbing for the pip/npm launchers, which resolve package-name extensions and pass the resolved paths here — not intended for direct use. When any `--extension` is present, the config file's own extension entries are not loaded. |
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
`.dirsql.toml` is a TOML file with one optional `[dirsql]` section, zero or
|
|
4
4
|
more `[[dirsql.extension]]` entries, and zero or more `[[table]]` entries.
|
|
5
5
|
An empty file is valid. A missing `[dirsql]` section behaves as an
|
|
6
|
-
all-defaults one. Unknown keys are
|
|
6
|
+
all-defaults one. Unknown keys are a parse error at every level (top level,
|
|
7
|
+
`[dirsql]`, `[[table]]`, `[[dirsql.extension]]`) — a typo or a removed key
|
|
8
|
+
fails loudly, naming the offending key, rather than silently no-opping.
|
|
7
9
|
|
|
8
10
|
The [CLI](./cli.md) loads `./.dirsql.toml` by default (`--config <path>`
|
|
9
11
|
overrides). The [SDKs](./sdk.md) load a config via the `config` constructor
|
|
@@ -136,6 +138,8 @@ Loading fails (the CLI enters [degraded mode](./cli.md#degraded-mode); the
|
|
|
136
138
|
SDKs raise/reject) when:
|
|
137
139
|
|
|
138
140
|
- The TOML is malformed.
|
|
141
|
+
- Any table contains an unknown key (top level, `[dirsql]`, `[[table]]`, or
|
|
142
|
+
`[[dirsql.extension]]`). The error names the offending key.
|
|
139
143
|
- A `[[table]]` entry omits `ddl` or `glob`.
|
|
140
144
|
- A `[[dirsql.extension]]` entry omits `path`, or `path` is empty.
|
|
141
145
|
- `on-file`, `pre-query`, or `post-query` is present but empty/whitespace.
|
|
@@ -4,7 +4,7 @@ name = "dirsql-py-ext"
|
|
|
4
4
|
# pypi/maturin handler can rewrite it via `write-version` before
|
|
5
5
|
# `maturin build`. `pyproject.toml` declares `dynamic = ["version"]`
|
|
6
6
|
# and maturin reads this field. Mirrors `packages/rust/Cargo.toml`.
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.86"
|
|
8
8
|
# abi3 note: the `abi3-py311` pyo3 feature (below) builds ONE stable-ABI
|
|
9
9
|
# `cp311-abi3` wheel per platform that loads on every CPython >= 3.11
|
|
10
10
|
# (matching `pyproject.toml`'s `requires-python = ">=3.11"`), instead of
|
|
@@ -45,7 +45,7 @@ requests, closes open `/events` streams, and exits.
|
|
|
45
45
|
|
|
46
46
|
| Flag | Default | Description |
|
|
47
47
|
|---|---|---|
|
|
48
|
-
|
|
|
48
|
+
| `-c, --config <path>` | `./.dirsql.toml` | Path to the [config file](./config.md). The index is rooted at the directory containing this file (unless the config sets `[dirsql].root`). When the file does not exist, the server runs in [zero-config mode](#zero-config-mode). |
|
|
49
49
|
| `--host <addr>` | `localhost` | Bind address. |
|
|
50
50
|
| `--port <n>` | `7117` | TCP port to bind. |
|
|
51
51
|
| `--extension <path>` | none | Load a SQLite extension by literal path, overriding the config's `[[dirsql.extension]]` entries. Repeatable. Format: `<path>` or `<path>::<entrypoint>`. Internal plumbing for the pip/npm launchers, which resolve package-name extensions and pass the resolved paths here — not intended for direct use. When any `--extension` is present, the config file's own extension entries are not loaded. |
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
`.dirsql.toml` is a TOML file with one optional `[dirsql]` section, zero or
|
|
4
4
|
more `[[dirsql.extension]]` entries, and zero or more `[[table]]` entries.
|
|
5
5
|
An empty file is valid. A missing `[dirsql]` section behaves as an
|
|
6
|
-
all-defaults one. Unknown keys are
|
|
6
|
+
all-defaults one. Unknown keys are a parse error at every level (top level,
|
|
7
|
+
`[dirsql]`, `[[table]]`, `[[dirsql.extension]]`) — a typo or a removed key
|
|
8
|
+
fails loudly, naming the offending key, rather than silently no-opping.
|
|
7
9
|
|
|
8
10
|
The [CLI](./cli.md) loads `./.dirsql.toml` by default (`--config <path>`
|
|
9
11
|
overrides). The [SDKs](./sdk.md) load a config via the `config` constructor
|
|
@@ -136,6 +138,8 @@ Loading fails (the CLI enters [degraded mode](./cli.md#degraded-mode); the
|
|
|
136
138
|
SDKs raise/reject) when:
|
|
137
139
|
|
|
138
140
|
- The TOML is malformed.
|
|
141
|
+
- Any table contains an unknown key (top level, `[dirsql]`, `[[table]]`, or
|
|
142
|
+
`[[dirsql.extension]]`). The error names the offending key.
|
|
139
143
|
- A `[[table]]` entry omits `ddl` or `glob`.
|
|
140
144
|
- A `[[dirsql.extension]]` entry omits `path`, or `path` is empty.
|
|
141
145
|
- `on-file`, `pre-query`, or `post-query` is present but empty/whitespace.
|
|
@@ -45,7 +45,7 @@ requests, closes open `/events` streams, and exits.
|
|
|
45
45
|
|
|
46
46
|
| Flag | Default | Description |
|
|
47
47
|
|---|---|---|
|
|
48
|
-
|
|
|
48
|
+
| `-c, --config <path>` | `./.dirsql.toml` | Path to the [config file](./config.md). The index is rooted at the directory containing this file (unless the config sets `[dirsql].root`). When the file does not exist, the server runs in [zero-config mode](#zero-config-mode). |
|
|
49
49
|
| `--host <addr>` | `localhost` | Bind address. |
|
|
50
50
|
| `--port <n>` | `7117` | TCP port to bind. |
|
|
51
51
|
| `--extension <path>` | none | Load a SQLite extension by literal path, overriding the config's `[[dirsql.extension]]` entries. Repeatable. Format: `<path>` or `<path>::<entrypoint>`. Internal plumbing for the pip/npm launchers, which resolve package-name extensions and pass the resolved paths here — not intended for direct use. When any `--extension` is present, the config file's own extension entries are not loaded. |
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
`.dirsql.toml` is a TOML file with one optional `[dirsql]` section, zero or
|
|
4
4
|
more `[[dirsql.extension]]` entries, and zero or more `[[table]]` entries.
|
|
5
5
|
An empty file is valid. A missing `[dirsql]` section behaves as an
|
|
6
|
-
all-defaults one. Unknown keys are
|
|
6
|
+
all-defaults one. Unknown keys are a parse error at every level (top level,
|
|
7
|
+
`[dirsql]`, `[[table]]`, `[[dirsql.extension]]`) — a typo or a removed key
|
|
8
|
+
fails loudly, naming the offending key, rather than silently no-opping.
|
|
7
9
|
|
|
8
10
|
The [CLI](./cli.md) loads `./.dirsql.toml` by default (`--config <path>`
|
|
9
11
|
overrides). The [SDKs](./sdk.md) load a config via the `config` constructor
|
|
@@ -136,6 +138,8 @@ Loading fails (the CLI enters [degraded mode](./cli.md#degraded-mode); the
|
|
|
136
138
|
SDKs raise/reject) when:
|
|
137
139
|
|
|
138
140
|
- The TOML is malformed.
|
|
141
|
+
- Any table contains an unknown key (top level, `[dirsql]`, `[[table]]`, or
|
|
142
|
+
`[[dirsql.extension]]`). The error names the offending key.
|
|
139
143
|
- A `[[table]]` entry omits `ddl` or `glob`.
|
|
140
144
|
- A `[[dirsql.extension]]` entry omits `path`, or `path` is empty.
|
|
141
145
|
- `on-file`, `pre-query`, or `post-query` is present but empty/whitespace.
|
|
@@ -37,7 +37,7 @@ struct Cli {
|
|
|
37
37
|
/// rooted at the directory containing this file. When the file does
|
|
38
38
|
/// not exist, a default `files` table is served. Used by server mode
|
|
39
39
|
/// and by the `query` subcommand.
|
|
40
|
-
#[arg(long, default_value = "./.dirsql.toml", global = true)]
|
|
40
|
+
#[arg(short = 'c', long, default_value = "./.dirsql.toml", global = true)]
|
|
41
41
|
config: PathBuf,
|
|
42
42
|
|
|
43
43
|
/// Bind address. Used when no subcommand is given.
|
|
@@ -269,12 +269,14 @@ pub struct TableConfig {
|
|
|
269
269
|
}
|
|
270
270
|
|
|
271
271
|
#[derive(Deserialize)]
|
|
272
|
+
#[serde(deny_unknown_fields)]
|
|
272
273
|
struct RawConfig {
|
|
273
274
|
dirsql: Option<RawDirsql>,
|
|
274
275
|
table: Option<Vec<RawTable>>,
|
|
275
276
|
}
|
|
276
277
|
|
|
277
278
|
#[derive(Deserialize, Default)]
|
|
279
|
+
#[serde(deny_unknown_fields)]
|
|
278
280
|
struct RawDirsql {
|
|
279
281
|
root: Option<PathBuf>,
|
|
280
282
|
ignore: Option<Vec<String>>,
|
|
@@ -290,12 +292,14 @@ struct RawDirsql {
|
|
|
290
292
|
}
|
|
291
293
|
|
|
292
294
|
#[derive(Deserialize)]
|
|
295
|
+
#[serde(deny_unknown_fields)]
|
|
293
296
|
struct RawExtension {
|
|
294
297
|
path: Option<String>,
|
|
295
298
|
entrypoint: Option<String>,
|
|
296
299
|
}
|
|
297
300
|
|
|
298
301
|
#[derive(Deserialize)]
|
|
302
|
+
#[serde(deny_unknown_fields)]
|
|
299
303
|
struct RawTable {
|
|
300
304
|
ddl: Option<String>,
|
|
301
305
|
glob: Option<String>,
|
|
@@ -587,17 +591,55 @@ glob = "c/*.yaml"
|
|
|
587
591
|
}
|
|
588
592
|
|
|
589
593
|
#[test]
|
|
590
|
-
fn
|
|
591
|
-
//
|
|
592
|
-
//
|
|
594
|
+
fn unknown_key_in_table_is_rejected() {
|
|
595
|
+
// An unknown `[[table]]` key (a removed key like `format`, or a typo)
|
|
596
|
+
// is a hard parse error naming the key, never silently dropped.
|
|
593
597
|
let toml = r#"
|
|
594
598
|
[[table]]
|
|
595
599
|
ddl = "CREATE TABLE t (path TEXT)"
|
|
596
600
|
glob = "*.json"
|
|
597
601
|
format = "json"
|
|
598
602
|
"#;
|
|
599
|
-
let
|
|
600
|
-
|
|
603
|
+
let err = load_config_str(toml).unwrap_err();
|
|
604
|
+
assert!(matches!(err, ConfigError::Toml(_)), "got: {err:?}");
|
|
605
|
+
assert!(err.to_string().contains("format"), "got: {err}");
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
#[test]
|
|
609
|
+
fn unknown_key_in_dirsql_section_is_rejected() {
|
|
610
|
+
// A misspelled `[dirsql]` key (`persistpath` for `persist_path`) errors
|
|
611
|
+
// rather than silently no-opping.
|
|
612
|
+
let toml = r#"
|
|
613
|
+
[dirsql]
|
|
614
|
+
persistpath = "cache.db"
|
|
615
|
+
"#;
|
|
616
|
+
let err = load_config_str(toml).unwrap_err();
|
|
617
|
+
assert!(matches!(err, ConfigError::Toml(_)), "got: {err:?}");
|
|
618
|
+
assert!(err.to_string().contains("persistpath"), "got: {err}");
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
#[test]
|
|
622
|
+
fn unknown_top_level_key_is_rejected() {
|
|
623
|
+
// A stray key outside any known section (`glbo` for `[dirsql]`) errors.
|
|
624
|
+
let toml = r#"
|
|
625
|
+
glbo = "typo"
|
|
626
|
+
"#;
|
|
627
|
+
let err = load_config_str(toml).unwrap_err();
|
|
628
|
+
assert!(matches!(err, ConfigError::Toml(_)), "got: {err:?}");
|
|
629
|
+
assert!(err.to_string().contains("glbo"), "got: {err}");
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
#[test]
|
|
633
|
+
fn unknown_key_in_extension_is_rejected() {
|
|
634
|
+
// A misspelled `[[dirsql.extension]]` key (`entrypont`) errors.
|
|
635
|
+
let toml = r#"
|
|
636
|
+
[[dirsql.extension]]
|
|
637
|
+
path = "vec0.so"
|
|
638
|
+
entrypont = "sqlite3_vec_init"
|
|
639
|
+
"#;
|
|
640
|
+
let err = load_config_str(toml).unwrap_err();
|
|
641
|
+
assert!(matches!(err, ConfigError::Toml(_)), "got: {err:?}");
|
|
642
|
+
assert!(err.to_string().contains("entrypont"), "got: {err}");
|
|
601
643
|
}
|
|
602
644
|
|
|
603
645
|
#[test]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.3.84 → dirsql-0.3.86}/packages/python/docs/tests/integration/language-flag.spec.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|