sensemaking 0.27.0 → 0.28.0
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/bin/cli.js +16 -7
- package/dist/cjs/chunk/extract.js.map +1 -1
- package/dist/cjs/chunk/group.js.map +1 -1
- package/dist/cjs/chunk/index.js.map +1 -1
- package/dist/cjs/chunk/parse.js.map +1 -1
- package/dist/cjs/chunk/parser.js.map +1 -1
- package/dist/cjs/chunk/tokens.js.map +1 -1
- package/dist/cjs/chunk/version.js.map +1 -1
- package/dist/cjs/cli/build.js.map +1 -1
- package/dist/cjs/cli/constants.d.cts +2 -0
- package/dist/cjs/cli/constants.d.ts +2 -0
- package/dist/cjs/cli/constants.js +21 -0
- package/dist/cjs/cli/constants.js.map +1 -0
- package/dist/cjs/cli/download.js.map +1 -1
- package/dist/cjs/cli/index.js.map +1 -1
- package/dist/cjs/cli/init.js.map +1 -1
- package/dist/cjs/cli/map.js.map +1 -1
- package/dist/cjs/cli/named.js +2 -1
- package/dist/cjs/cli/named.js.map +1 -1
- package/dist/cjs/cli/path.js.map +1 -1
- package/dist/cjs/cli/peek.js.map +1 -1
- package/dist/cjs/cli/related.js.map +1 -1
- package/dist/cjs/cli/search.js.map +1 -1
- package/dist/cjs/cli/shared.js +5 -4
- package/dist/cjs/cli/shared.js.map +1 -1
- package/dist/cjs/cli/sql.js.map +1 -1
- package/dist/cjs/cli/status.js.map +1 -1
- package/dist/cjs/cli/watch.js.map +1 -1
- package/dist/cjs/cli.js +10 -9
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/commands/index.js.map +1 -1
- package/dist/cjs/commands/map.js.map +1 -1
- package/dist/cjs/commands/path.js.map +1 -1
- package/dist/cjs/commands/peek.js.map +1 -1
- package/dist/cjs/commands/related.js.map +1 -1
- package/dist/cjs/commands/scope.js.map +1 -1
- package/dist/cjs/commands/search.js.map +1 -1
- package/dist/cjs/commands/signals.js.map +1 -1
- package/dist/cjs/commands/snapshot.js.map +1 -1
- package/dist/cjs/commands/status.js.map +1 -1
- package/dist/cjs/config/access.js.map +1 -1
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/config/load.js.map +1 -1
- package/dist/cjs/config/resolve.js.map +1 -1
- package/dist/cjs/config/signals.js.map +1 -1
- package/dist/cjs/config/types.js.map +1 -1
- package/dist/cjs/config/validate.js.map +1 -1
- package/dist/cjs/embed/cohere.js.map +1 -1
- package/dist/cjs/embed/distribution.js.map +1 -1
- package/dist/cjs/embed/endpoint.js.map +1 -1
- package/dist/cjs/embed/handoff.js.map +1 -1
- package/dist/cjs/embed/http.js.map +1 -1
- package/dist/cjs/embed/identity.js.map +1 -1
- package/dist/cjs/embed/langfit.js.map +1 -1
- package/dist/cjs/embed/languages.js.map +1 -1
- package/dist/cjs/embed/openai.js.map +1 -1
- package/dist/cjs/embed/query.js.map +1 -1
- package/dist/cjs/embed/registry.js.map +1 -1
- package/dist/cjs/embed/static.js.map +1 -1
- package/dist/cjs/embed/store.js.map +1 -1
- package/dist/cjs/embed/types.js.map +1 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/features/embed.js.map +1 -1
- package/dist/cjs/features/fences.js.map +1 -1
- package/dist/cjs/features/index.js.map +1 -1
- package/dist/cjs/features/links.js.map +1 -1
- package/dist/cjs/features/rank.js.map +1 -1
- package/dist/cjs/features/sections.js.map +1 -1
- package/dist/cjs/features/tags.js.map +1 -1
- package/dist/cjs/graph/graph.js.map +1 -1
- package/dist/cjs/graph/traverse.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/atomic-write.js.map +1 -1
- package/dist/cjs/lib/guarded-tick.js.map +1 -1
- package/dist/cjs/lib/serial-query.js.map +1 -1
- package/dist/cjs/lib/watch-notification.js.map +1 -1
- package/dist/cjs/lib/worker-file.js.map +1 -1
- package/dist/cjs/output/column-hint.js.map +1 -1
- package/dist/cjs/output/output.js.map +1 -1
- package/dist/cjs/output/progress.js.map +1 -1
- package/dist/cjs/output/search-error.js.map +1 -1
- package/dist/cjs/scan/frontmatter.js.map +1 -1
- package/dist/cjs/scan/index.js.map +1 -1
- package/dist/cjs/scan/list.js.map +1 -1
- package/dist/cjs/scan/pool.js.map +1 -1
- package/dist/cjs/scan/reparse.js.map +1 -1
- package/dist/cjs/scan/worker-error.js.map +1 -1
- package/dist/cjs/store/batch.js.map +1 -1
- package/dist/cjs/store/builder.js.map +1 -1
- package/dist/cjs/store/cache.js.map +1 -1
- package/dist/cjs/store/duckdb/batch.js.map +1 -1
- package/dist/cjs/store/duckdb/connection.js.map +1 -1
- package/dist/cjs/store/duckdb/engine.d.cts +11 -0
- package/dist/cjs/store/duckdb/engine.d.ts +11 -0
- package/dist/cjs/store/duckdb/engine.js +193 -0
- package/dist/cjs/store/duckdb/engine.js.map +1 -0
- package/dist/cjs/store/duckdb/fieldStats.js.map +1 -1
- package/dist/cjs/store/duckdb/lexical.d.cts +1 -6
- package/dist/cjs/store/duckdb/lexical.d.ts +1 -6
- package/dist/cjs/store/duckdb/lexical.js +48 -45
- package/dist/cjs/store/duckdb/lexical.js.map +1 -1
- package/dist/cjs/store/duckdb/native.d.cts +5 -3
- package/dist/cjs/store/duckdb/native.d.ts +5 -3
- package/dist/cjs/store/duckdb/native.js +157 -18
- package/dist/cjs/store/duckdb/native.js.map +1 -1
- package/dist/cjs/store/duckdb/open.js +151 -3
- package/dist/cjs/store/duckdb/open.js.map +1 -1
- package/dist/cjs/store/duckdb/ordered-bm25.d.cts +3 -16
- package/dist/cjs/store/duckdb/ordered-bm25.d.ts +3 -16
- package/dist/cjs/store/duckdb/ordered-bm25.js +24 -80
- package/dist/cjs/store/duckdb/ordered-bm25.js.map +1 -1
- package/dist/cjs/store/duckdb/reconcile.js.map +1 -1
- package/dist/cjs/store/duckdb/sql-functions.js.map +1 -1
- package/dist/cjs/store/duckdb/store.js.map +1 -1
- package/dist/cjs/store/duckdb/vectors.js.map +1 -1
- package/dist/cjs/store/embed-scope.js.map +1 -1
- package/dist/cjs/store/engine.d.cts +28 -0
- package/dist/cjs/store/engine.d.ts +28 -0
- package/dist/cjs/store/engine.js +362 -0
- package/dist/cjs/store/engine.js.map +1 -0
- package/dist/cjs/store/feature-scope.js.map +1 -1
- package/dist/cjs/store/index.js.map +1 -1
- package/dist/cjs/store/lock-wait.js.map +1 -1
- package/dist/cjs/store/native.d.cts +8 -5
- package/dist/cjs/store/native.d.ts +8 -5
- package/dist/cjs/store/native.js +78 -73
- package/dist/cjs/store/native.js.map +1 -1
- package/dist/cjs/store/open.js +100 -40
- package/dist/cjs/store/open.js.map +1 -1
- package/dist/cjs/store/preset-scope.js.map +1 -1
- package/dist/cjs/store/readiness.js.map +1 -1
- package/dist/cjs/store/reconcile.js.map +1 -1
- package/dist/cjs/store/shared.js.map +1 -1
- package/dist/cjs/store/signature.js.map +1 -1
- package/dist/cjs/store/sql-functions.js.map +1 -1
- package/dist/cjs/store/sqlite/connection.js.map +1 -1
- package/dist/cjs/store/sqlite/engine.d.cts +12 -0
- package/dist/cjs/store/sqlite/engine.d.ts +12 -0
- package/dist/cjs/store/sqlite/engine.js +53 -0
- package/dist/cjs/store/sqlite/engine.js.map +1 -0
- package/dist/cjs/store/sqlite/fieldStats.js.map +1 -1
- package/dist/cjs/store/sqlite/lexical.js +3 -4
- package/dist/cjs/store/sqlite/lexical.js.map +1 -1
- package/dist/cjs/store/sqlite/open.js +119 -6
- package/dist/cjs/store/sqlite/open.js.map +1 -1
- package/dist/cjs/store/sqlite/reconcile.js.map +1 -1
- package/dist/cjs/store/sqlite/sql-functions.js.map +1 -1
- package/dist/cjs/store/sqlite/store.js.map +1 -1
- package/dist/cjs/store/sqlite/vectors.js.map +1 -1
- package/dist/cjs/store/stages.js.map +1 -1
- package/dist/cjs/store/transaction.js.map +1 -1
- package/dist/cjs/store/turso/connection.js.map +1 -1
- package/dist/cjs/store/turso/engine.d.cts +9 -0
- package/dist/cjs/store/turso/engine.d.ts +9 -0
- package/dist/cjs/store/turso/engine.js +189 -0
- package/dist/cjs/store/turso/engine.js.map +1 -0
- package/dist/cjs/store/turso/fieldStats.js.map +1 -1
- package/dist/cjs/store/turso/lexical-text.js.map +1 -1
- package/dist/cjs/store/turso/lexical.js +16 -11
- package/dist/cjs/store/turso/lexical.js.map +1 -1
- package/dist/cjs/store/turso/native.d.cts +5 -1
- package/dist/cjs/store/turso/native.d.ts +5 -1
- package/dist/cjs/store/turso/native.js +157 -8
- package/dist/cjs/store/turso/native.js.map +1 -1
- package/dist/cjs/store/turso/open.js +172 -27
- package/dist/cjs/store/turso/open.js.map +1 -1
- package/dist/cjs/store/turso/reconcile.d.cts +0 -1
- package/dist/cjs/store/turso/reconcile.d.ts +0 -1
- package/dist/cjs/store/turso/reconcile.js +22 -23
- package/dist/cjs/store/turso/reconcile.js.map +1 -1
- package/dist/cjs/store/turso/sql-functions.js.map +1 -1
- package/dist/cjs/store/turso/store.js.map +1 -1
- package/dist/cjs/store/turso/vectors.js.map +1 -1
- package/dist/cjs/store/types.d.cts +2 -0
- package/dist/cjs/store/types.d.ts +2 -0
- package/dist/cjs/store/types.js.map +1 -1
- package/dist/cjs/store/vectors.js.map +1 -1
- package/dist/cjs/text/segment.js.map +1 -1
- package/dist/cjs/text/strip.js.map +1 -1
- package/dist/cjs/watch-claim.js.map +1 -1
- package/dist/cjs/watch.js.map +1 -1
- package/dist/cjs/workers/parse.js.map +1 -1
- package/dist/cjs/workers/watch-heartbeat.js.map +1 -1
- package/dist/esm/chunk/extract.js.map +1 -1
- package/dist/esm/chunk/group.js.map +1 -1
- package/dist/esm/chunk/index.js.map +1 -1
- package/dist/esm/chunk/parse.js.map +1 -1
- package/dist/esm/chunk/parser.js.map +1 -1
- package/dist/esm/chunk/tokens.js.map +1 -1
- package/dist/esm/chunk/types.js.map +1 -1
- package/dist/esm/chunk/version.js.map +1 -1
- package/dist/esm/cli/build.js.map +1 -1
- package/dist/esm/cli/constants.d.ts +2 -0
- package/dist/esm/cli/constants.js +2 -0
- package/dist/esm/cli/constants.js.map +1 -0
- package/dist/esm/cli/download.js.map +1 -1
- package/dist/esm/cli/index.js.map +1 -1
- package/dist/esm/cli/init.js.map +1 -1
- package/dist/esm/cli/map.js.map +1 -1
- package/dist/esm/cli/named.js +2 -1
- package/dist/esm/cli/named.js.map +1 -1
- package/dist/esm/cli/path.js.map +1 -1
- package/dist/esm/cli/peek.js.map +1 -1
- package/dist/esm/cli/related.js.map +1 -1
- package/dist/esm/cli/search.js.map +1 -1
- package/dist/esm/cli/shared.js +6 -5
- package/dist/esm/cli/shared.js.map +1 -1
- package/dist/esm/cli/sql.js.map +1 -1
- package/dist/esm/cli/status.js.map +1 -1
- package/dist/esm/cli/types.js.map +1 -1
- package/dist/esm/cli/watch.js.map +1 -1
- package/dist/esm/cli.js +10 -9
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/commands/index.js.map +1 -1
- package/dist/esm/commands/map.js.map +1 -1
- package/dist/esm/commands/path.js.map +1 -1
- package/dist/esm/commands/peek.js.map +1 -1
- package/dist/esm/commands/related.js.map +1 -1
- package/dist/esm/commands/scope.js.map +1 -1
- package/dist/esm/commands/search.js.map +1 -1
- package/dist/esm/commands/signals.js.map +1 -1
- package/dist/esm/commands/snapshot.js.map +1 -1
- package/dist/esm/commands/status.js.map +1 -1
- package/dist/esm/config/access.js.map +1 -1
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/config/load.js.map +1 -1
- package/dist/esm/config/resolve.js.map +1 -1
- package/dist/esm/config/signals.js.map +1 -1
- package/dist/esm/config/types.js.map +1 -1
- package/dist/esm/config/validate.js.map +1 -1
- package/dist/esm/embed/cohere.js.map +1 -1
- package/dist/esm/embed/distribution.js.map +1 -1
- package/dist/esm/embed/endpoint.js.map +1 -1
- package/dist/esm/embed/handoff.js.map +1 -1
- package/dist/esm/embed/http.js.map +1 -1
- package/dist/esm/embed/identity.js.map +1 -1
- package/dist/esm/embed/langfit.js.map +1 -1
- package/dist/esm/embed/languages.js.map +1 -1
- package/dist/esm/embed/openai.js.map +1 -1
- package/dist/esm/embed/query.js +1 -1
- package/dist/esm/embed/query.js.map +1 -1
- package/dist/esm/embed/registry.js.map +1 -1
- package/dist/esm/embed/static.js.map +1 -1
- package/dist/esm/embed/store.js.map +1 -1
- package/dist/esm/embed/types.js.map +1 -1
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/features/embed.js.map +1 -1
- package/dist/esm/features/fences.js.map +1 -1
- package/dist/esm/features/index.js.map +1 -1
- package/dist/esm/features/links.js.map +1 -1
- package/dist/esm/features/rank.js.map +1 -1
- package/dist/esm/features/sections.js.map +1 -1
- package/dist/esm/features/tags.js.map +1 -1
- package/dist/esm/features/types.js.map +1 -1
- package/dist/esm/graph/graph.js.map +1 -1
- package/dist/esm/graph/traverse.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/atomic-write.js.map +1 -1
- package/dist/esm/lib/guarded-tick.js.map +1 -1
- package/dist/esm/lib/serial-query.js.map +1 -1
- package/dist/esm/lib/watch-notification.js.map +1 -1
- package/dist/esm/lib/worker-file.js.map +1 -1
- package/dist/esm/output/column-hint.js.map +1 -1
- package/dist/esm/output/output.js.map +1 -1
- package/dist/esm/output/progress.js.map +1 -1
- package/dist/esm/output/search-error.js.map +1 -1
- package/dist/esm/scan/frontmatter.js.map +1 -1
- package/dist/esm/scan/index.js.map +1 -1
- package/dist/esm/scan/list.js.map +1 -1
- package/dist/esm/scan/pool.js.map +1 -1
- package/dist/esm/scan/reparse.js.map +1 -1
- package/dist/esm/scan/worker-error.js.map +1 -1
- package/dist/esm/store/batch.js.map +1 -1
- package/dist/esm/store/builder.js.map +1 -1
- package/dist/esm/store/cache.js.map +1 -1
- package/dist/esm/store/duckdb/batch.js.map +1 -1
- package/dist/esm/store/duckdb/connection.js.map +1 -1
- package/dist/esm/store/duckdb/engine.d.ts +11 -0
- package/dist/esm/store/duckdb/engine.js +18 -0
- package/dist/esm/store/duckdb/engine.js.map +1 -0
- package/dist/esm/store/duckdb/fieldStats.js.map +1 -1
- package/dist/esm/store/duckdb/lexical.d.ts +1 -6
- package/dist/esm/store/duckdb/lexical.js +16 -20
- package/dist/esm/store/duckdb/lexical.js.map +1 -1
- package/dist/esm/store/duckdb/native.d.ts +5 -3
- package/dist/esm/store/duckdb/native.js +16 -14
- package/dist/esm/store/duckdb/native.js.map +1 -1
- package/dist/esm/store/duckdb/open.js +40 -2
- package/dist/esm/store/duckdb/open.js.map +1 -1
- package/dist/esm/store/duckdb/ordered-bm25.d.ts +3 -16
- package/dist/esm/store/duckdb/ordered-bm25.js +14 -55
- package/dist/esm/store/duckdb/ordered-bm25.js.map +1 -1
- package/dist/esm/store/duckdb/reconcile.js.map +1 -1
- package/dist/esm/store/duckdb/sql-functions.js.map +1 -1
- package/dist/esm/store/duckdb/store.js.map +1 -1
- package/dist/esm/store/duckdb/vectors.js.map +1 -1
- package/dist/esm/store/embed-scope.js.map +1 -1
- package/dist/esm/store/engine.d.ts +28 -0
- package/dist/esm/store/engine.js +85 -0
- package/dist/esm/store/engine.js.map +1 -0
- package/dist/esm/store/feature-scope.js.map +1 -1
- package/dist/esm/store/index.js.map +1 -1
- package/dist/esm/store/lock-wait.js.map +1 -1
- package/dist/esm/store/native.d.ts +8 -5
- package/dist/esm/store/native.js +59 -57
- package/dist/esm/store/native.js.map +1 -1
- package/dist/esm/store/open.js +24 -7
- package/dist/esm/store/open.js.map +1 -1
- package/dist/esm/store/preset-scope.js.map +1 -1
- package/dist/esm/store/readiness.js.map +1 -1
- package/dist/esm/store/reconcile.js.map +1 -1
- package/dist/esm/store/shared.js.map +1 -1
- package/dist/esm/store/signature.js.map +1 -1
- package/dist/esm/store/sql-functions.js.map +1 -1
- package/dist/esm/store/sqlite/connection.js.map +1 -1
- package/dist/esm/store/sqlite/engine.d.ts +12 -0
- package/dist/esm/store/sqlite/engine.js +16 -0
- package/dist/esm/store/sqlite/engine.js.map +1 -0
- package/dist/esm/store/sqlite/fieldStats.js.map +1 -1
- package/dist/esm/store/sqlite/lexical.js +2 -3
- package/dist/esm/store/sqlite/lexical.js.map +1 -1
- package/dist/esm/store/sqlite/open.js +38 -7
- package/dist/esm/store/sqlite/open.js.map +1 -1
- package/dist/esm/store/sqlite/reconcile.js.map +1 -1
- package/dist/esm/store/sqlite/sql-functions.js.map +1 -1
- package/dist/esm/store/sqlite/store.js.map +1 -1
- package/dist/esm/store/sqlite/vectors.js.map +1 -1
- package/dist/esm/store/stages.js.map +1 -1
- package/dist/esm/store/transaction.js.map +1 -1
- package/dist/esm/store/turso/connection.js.map +1 -1
- package/dist/esm/store/turso/engine.d.ts +9 -0
- package/dist/esm/store/turso/engine.js +14 -0
- package/dist/esm/store/turso/engine.js.map +1 -0
- package/dist/esm/store/turso/fieldStats.js.map +1 -1
- package/dist/esm/store/turso/lexical-text.js.map +1 -1
- package/dist/esm/store/turso/lexical.js +9 -9
- package/dist/esm/store/turso/lexical.js.map +1 -1
- package/dist/esm/store/turso/native.d.ts +5 -1
- package/dist/esm/store/turso/native.js +16 -10
- package/dist/esm/store/turso/native.js.map +1 -1
- package/dist/esm/store/turso/open.js +44 -3
- package/dist/esm/store/turso/open.js.map +1 -1
- package/dist/esm/store/turso/reconcile.d.ts +0 -1
- package/dist/esm/store/turso/reconcile.js +3 -8
- package/dist/esm/store/turso/reconcile.js.map +1 -1
- package/dist/esm/store/turso/sql-functions.js.map +1 -1
- package/dist/esm/store/turso/store.js.map +1 -1
- package/dist/esm/store/turso/vectors.js.map +1 -1
- package/dist/esm/store/types.d.ts +2 -0
- package/dist/esm/store/types.js.map +1 -1
- package/dist/esm/store/vectors.js.map +1 -1
- package/dist/esm/text/segment.js.map +1 -1
- package/dist/esm/text/strip.js.map +1 -1
- package/dist/esm/watch-claim.js.map +1 -1
- package/dist/esm/watch.js.map +1 -1
- package/dist/esm/workers/parse.js.map +1 -1
- package/dist/esm/workers/watch-heartbeat.js.map +1 -1
- package/package.json +21 -6
- package/skills/sense/SKILL.md +1 -1
- package/skills/sense/references/stores/duckdb.md +1 -1
- package/skills/sense/references/stores/sqlite.md +1 -1
- package/skills/sense/references/stores/turso.md +1 -1
- package/skills/sense-setup/references/stores/duckdb.md +1 -1
- package/skills/sense-setup/references/stores/sqlite.md +1 -1
package/dist/cjs/store/native.js
CHANGED
|
@@ -14,12 +14,16 @@ _export(exports, {
|
|
|
14
14
|
},
|
|
15
15
|
get packageNodeModules () {
|
|
16
16
|
return packageNodeModules;
|
|
17
|
+
},
|
|
18
|
+
get peerRange () {
|
|
19
|
+
return peerRange;
|
|
17
20
|
}
|
|
18
21
|
});
|
|
19
22
|
var _nodefs = require("node:fs");
|
|
20
23
|
var _nodemodule = /*#__PURE__*/ _interop_require_default(require("node:module"));
|
|
21
24
|
var _nodepath = require("node:path");
|
|
22
25
|
var _nodeurl = require("node:url");
|
|
26
|
+
var _semver = /*#__PURE__*/ _interop_require_default(require("semver"));
|
|
23
27
|
var _errorsts = require("../errors.js");
|
|
24
28
|
function _array_like_to_array(arr, len) {
|
|
25
29
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -212,19 +216,33 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
212
216
|
// ~110MB), so it is required lazily inside the gated branch below, not for every store/index.ts load.
|
|
213
217
|
var _require = typeof require === 'undefined' ? _nodemodule.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
214
218
|
var _dirname = (0, _nodepath.dirname)(typeof __filename !== 'undefined' ? __filename : (0, _nodeurl.fileURLToPath)(require("url").pathToFileURL(__filename).toString()));
|
|
215
|
-
|
|
219
|
+
// Walks up from this file's own directory rather than a fixed dot-count: it sits at a
|
|
220
|
+
// different depth under src/ than under built dist/{cjs,esm}/store output.
|
|
221
|
+
function packageRoot() {
|
|
216
222
|
var dir = _dirname;
|
|
217
223
|
for(;;){
|
|
218
224
|
var candidate = (0, _nodepath.join)(dir, 'package.json');
|
|
219
225
|
if ((0, _nodefs.existsSync)(candidate)) {
|
|
220
|
-
var
|
|
221
|
-
if (
|
|
226
|
+
var manifest = JSON.parse((0, _nodefs.readFileSync)(candidate, 'utf8'));
|
|
227
|
+
if (manifest.name === 'sensemaking') return {
|
|
228
|
+
dir: dir,
|
|
229
|
+
manifest: manifest
|
|
230
|
+
};
|
|
222
231
|
}
|
|
223
232
|
var parent = (0, _nodepath.dirname)(dir);
|
|
224
233
|
if (parent === dir) throw new Error('could not locate the sensemaking package root to install a native dependency into');
|
|
225
234
|
dir = parent;
|
|
226
235
|
}
|
|
227
236
|
}
|
|
237
|
+
function packageNodeModules() {
|
|
238
|
+
return (0, _nodepath.join)(packageRoot().dir, 'node_modules');
|
|
239
|
+
}
|
|
240
|
+
function peerRange(pkg) {
|
|
241
|
+
var _packageRoot_manifest_peerDependencies;
|
|
242
|
+
var range = (_packageRoot_manifest_peerDependencies = packageRoot().manifest.peerDependencies) === null || _packageRoot_manifest_peerDependencies === void 0 ? void 0 : _packageRoot_manifest_peerDependencies[pkg];
|
|
243
|
+
if (!range) throw new Error("sensemaking's package.json declares no peerDependencies entry for ".concat(pkg));
|
|
244
|
+
return range;
|
|
245
|
+
}
|
|
228
246
|
var installing = new Map();
|
|
229
247
|
// De-dupes concurrent installs: since the install is async, concurrent callers await the same
|
|
230
248
|
// in-flight promise, keyed by specifier and target. A failed install is not cached, so a later call retries.
|
|
@@ -241,6 +259,13 @@ function installOnce(specifier, nodeModulesPath) {
|
|
|
241
259
|
}
|
|
242
260
|
return promise;
|
|
243
261
|
}
|
|
262
|
+
function readPackageMetadata(pkgDir) {
|
|
263
|
+
try {
|
|
264
|
+
return JSON.parse((0, _nodefs.readFileSync)((0, _nodepath.join)(pkgDir, 'package.json'), 'utf8'));
|
|
265
|
+
} catch (unused) {
|
|
266
|
+
return undefined;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
244
269
|
// Node caches a bare specifier's resolution, including a "not found" miss, for the process
|
|
245
270
|
// lifetime; use the installed entry directly, as a URL for ESM and a path for CJS.
|
|
246
271
|
function resolveEntrySpecifier(importName, nodeModulesPath) {
|
|
@@ -253,32 +278,12 @@ function resolveEntrySpecifier(importName, nodeModulesPath) {
|
|
|
253
278
|
var entryPath = (0, _nodepath.join)(pkgDir, entry);
|
|
254
279
|
return typeof require === 'undefined' ? (0, _nodeurl.pathToFileURL)(entryPath).href : entryPath;
|
|
255
280
|
}
|
|
256
|
-
function
|
|
257
|
-
try {
|
|
258
|
-
return JSON.parse((0, _nodefs.readFileSync)((0, _nodepath.join)(pkgDir, 'package.json'), 'utf8'));
|
|
259
|
-
} catch (unused) {
|
|
260
|
-
return undefined;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
function targetPackageMetadata(importName, nodeModulesPath) {
|
|
264
|
-
var pkgDir = _nodepath.join.apply(void 0, [
|
|
265
|
-
nodeModulesPath
|
|
266
|
-
].concat(_to_consumable_array(importName.split('/'))));
|
|
267
|
-
return {
|
|
268
|
-
exists: (0, _nodefs.existsSync)(pkgDir),
|
|
269
|
-
metadata: readPackageMetadata(pkgDir)
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
function resolvedPackageMetadata(importName) {
|
|
281
|
+
function resolvedVersion(importName) {
|
|
273
282
|
try {
|
|
274
283
|
var dir = (0, _nodepath.dirname)(_require.resolve(importName));
|
|
275
284
|
for(;;){
|
|
276
|
-
var
|
|
277
|
-
if ((0
|
|
278
|
-
var pkg = readPackageMetadata(dir);
|
|
279
|
-
if (!pkg) return undefined;
|
|
280
|
-
if (pkg.name === importName) return pkg;
|
|
281
|
-
}
|
|
285
|
+
var pkg = readPackageMetadata(dir);
|
|
286
|
+
if ((pkg === null || pkg === void 0 ? void 0 : pkg.name) === importName) return pkg.version;
|
|
282
287
|
var parent = (0, _nodepath.dirname)(dir);
|
|
283
288
|
if (parent === dir) return undefined;
|
|
284
289
|
dir = parent;
|
|
@@ -287,35 +292,26 @@ function resolvedPackageMetadata(importName) {
|
|
|
287
292
|
return undefined;
|
|
288
293
|
}
|
|
289
294
|
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
return new _errorsts.SenseError('STORE_DEPENDENCY_MISSING', 'store "'.concat(descriptor.store, '" needs ').concat(installSpec, ", but ").concat(detail, "; refusing to overwrite it -- run `npm install ").concat(installSpec, "` yourself and try again"));
|
|
295
|
-
}
|
|
296
|
-
function assertExpectedVersion(descriptor, metadata) {
|
|
297
|
-
if (!descriptor.version) return;
|
|
298
|
-
if (!(metadata === null || metadata === void 0 ? void 0 : metadata.version) || metadata.version !== descriptor.version) throw versionContractError(descriptor, metadata === null || metadata === void 0 ? void 0 : metadata.version);
|
|
295
|
+
// Any installed version is used; one outside the tested range is reported, not refused (the store's engine check decides).
|
|
296
|
+
function reportVersion(descriptor, version) {
|
|
297
|
+
if (version && _semver.default.satisfies(version, descriptor.range)) return;
|
|
298
|
+
console.error('sense: store "'.concat(descriptor.store, '" using ').concat(descriptor.pkg, "@").concat(version !== null && version !== void 0 ? version : 'unknown version', " (tested ").concat(descriptor.range, ")"));
|
|
299
299
|
}
|
|
300
300
|
function loadOrInstall(_0, _1) {
|
|
301
301
|
return _async_to_generator(function(descriptor, nodeModulesPath) {
|
|
302
|
-
var importName,
|
|
302
|
+
var importName, api, version, unused, spec, installSpec, installErr, _readPackageMetadata, api1, version1, loadErr;
|
|
303
303
|
var _arguments = arguments;
|
|
304
304
|
return _ts_generator(this, function(_state) {
|
|
305
305
|
switch(_state.label){
|
|
306
306
|
case 0:
|
|
307
307
|
importName = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : descriptor.pkg;
|
|
308
|
-
if (descriptor.version) {
|
|
309
|
-
target = targetPackageMetadata(importName, nodeModulesPath);
|
|
310
|
-
if (target.exists) assertExpectedVersion(descriptor, target.metadata);
|
|
311
|
-
}
|
|
312
308
|
_state.label = 1;
|
|
313
309
|
case 1:
|
|
314
310
|
_state.trys.push([
|
|
315
311
|
1,
|
|
316
312
|
3,
|
|
317
313
|
,
|
|
318
|
-
|
|
314
|
+
4
|
|
319
315
|
]);
|
|
320
316
|
return [
|
|
321
317
|
4,
|
|
@@ -324,43 +320,53 @@ function loadOrInstall(_0, _1) {
|
|
|
324
320
|
})
|
|
325
321
|
];
|
|
326
322
|
case 2:
|
|
327
|
-
|
|
323
|
+
api = _state.sent();
|
|
324
|
+
version = resolvedVersion(importName);
|
|
325
|
+
reportVersion(descriptor, version);
|
|
328
326
|
return [
|
|
329
|
-
|
|
330
|
-
|
|
327
|
+
2,
|
|
328
|
+
{
|
|
329
|
+
api: api,
|
|
330
|
+
version: version
|
|
331
|
+
}
|
|
331
332
|
];
|
|
332
333
|
case 3:
|
|
333
334
|
unused = _state.sent();
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
335
|
+
return [
|
|
336
|
+
3,
|
|
337
|
+
4
|
|
338
|
+
];
|
|
338
339
|
case 4:
|
|
340
|
+
spec = "".concat(descriptor.pkg, "@").concat(descriptor.range);
|
|
341
|
+
installSpec = "".concat(importName, "@").concat(descriptor.range);
|
|
342
|
+
console.error('sense: store "'.concat(descriptor.store, '" needs ').concat(spec, "; installing it now (one-time download, ").concat(descriptor.sizeHint, ")..."));
|
|
343
|
+
_state.label = 5;
|
|
344
|
+
case 5:
|
|
339
345
|
_state.trys.push([
|
|
340
|
-
|
|
341
|
-
|
|
346
|
+
5,
|
|
347
|
+
7,
|
|
342
348
|
,
|
|
343
|
-
|
|
349
|
+
8
|
|
344
350
|
]);
|
|
345
351
|
return [
|
|
346
352
|
4,
|
|
347
353
|
installOnce(installSpec, nodeModulesPath)
|
|
348
354
|
];
|
|
349
|
-
case
|
|
355
|
+
case 6:
|
|
350
356
|
_state.sent();
|
|
351
357
|
return [
|
|
352
358
|
3,
|
|
353
|
-
|
|
359
|
+
8
|
|
354
360
|
];
|
|
355
|
-
case 6:
|
|
356
|
-
installErr = _state.sent();
|
|
357
|
-
throw new _errorsts.SenseError('STORE_DEPENDENCY_MISSING', 'store "'.concat(descriptor.store, '" needs ').concat(displaySpec, ", and installing it automatically failed (").concat(installErr.message, "); this can happen offline, in a sandboxed environment, or when node_modules is read-only or owned by another user (e.g. under a global install) -- run `npm install ").concat(displaySpec, "` yourself and try again"));
|
|
358
361
|
case 7:
|
|
362
|
+
installErr = _state.sent();
|
|
363
|
+
throw new _errorsts.SenseError('STORE_DEPENDENCY_MISSING', 'store "'.concat(descriptor.store, '" needs ').concat(spec, ", and installing it automatically failed (").concat(installErr.message, "); this can happen offline, in a sandboxed environment, or when node_modules is read-only or owned by another user (e.g. under a global install) -- run `npm install ").concat(spec, "` yourself and try again"));
|
|
364
|
+
case 8:
|
|
359
365
|
_state.trys.push([
|
|
360
|
-
|
|
361
|
-
|
|
366
|
+
8,
|
|
367
|
+
10,
|
|
362
368
|
,
|
|
363
|
-
|
|
369
|
+
11
|
|
364
370
|
]);
|
|
365
371
|
return [
|
|
366
372
|
4,
|
|
@@ -368,26 +374,25 @@ function loadOrInstall(_0, _1) {
|
|
|
368
374
|
return /*#__PURE__*/ _interop_require_wildcard(require(p));
|
|
369
375
|
})
|
|
370
376
|
];
|
|
371
|
-
case
|
|
372
|
-
|
|
373
|
-
|
|
377
|
+
case 9:
|
|
378
|
+
api1 = _state.sent();
|
|
379
|
+
version1 = (_readPackageMetadata = readPackageMetadata(_nodepath.join.apply(void 0, [
|
|
380
|
+
nodeModulesPath
|
|
381
|
+
].concat(_to_consumable_array(importName.split('/')))))) === null || _readPackageMetadata === void 0 ? void 0 : _readPackageMetadata.version;
|
|
382
|
+
reportVersion(descriptor, version1);
|
|
374
383
|
return [
|
|
375
384
|
2,
|
|
376
|
-
|
|
385
|
+
{
|
|
386
|
+
api: api1,
|
|
387
|
+
version: version1
|
|
388
|
+
}
|
|
377
389
|
];
|
|
378
|
-
case 9:
|
|
379
|
-
loadErr = _state.sent();
|
|
380
|
-
throw new _errorsts.SenseError('STORE_DEPENDENCY_MISSING', 'store "'.concat(descriptor.store, '" installed ').concat(displaySpec, " but it could not be loaded (").concat(loadErr.message, "); it may not be available for this platform (").concat(process.platform, "-").concat(process.arch, ") -- run `npm install ").concat(displaySpec, "` to see the underlying error"));
|
|
381
390
|
case 10:
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
11
|
|
385
|
-
];
|
|
391
|
+
loadErr = _state.sent();
|
|
392
|
+
throw new _errorsts.SenseError('STORE_DEPENDENCY_MISSING', 'store "'.concat(descriptor.store, '" installed ').concat(spec, " but it could not be loaded (").concat(loadErr.message, "); it may not be available for this platform (").concat(process.platform, "-").concat(process.arch, ") -- run `npm install ").concat(spec, "` to see the underlying error"));
|
|
386
393
|
case 11:
|
|
387
|
-
if (descriptor.version) assertExpectedVersion(descriptor, resolvedPackageMetadata(importName));
|
|
388
394
|
return [
|
|
389
|
-
2
|
|
390
|
-
loaded
|
|
395
|
+
2
|
|
391
396
|
];
|
|
392
397
|
}
|
|
393
398
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/store/native.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport Module from 'node:module';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\nimport { SenseError } from '../errors.ts';\n\n// A store's optional native package, and the strings its error messages and install notice name.\nexport interface NativeDescriptor {\n store: string;\n pkg: string;\n sizeHint: string;\n /** Optional exact package version required by this native binding. */\n version?: string;\n /** npm specifier used only when installation is required (imports stay bare). */\n installSpec?: string;\n}\n\n// install-module-linked is small, but a target native package can be large (@duckdb/node-api's\n// ~110MB), so it is required lazily inside the gated branch below, not for every store/index.ts load.\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst _dirname = dirname(typeof __filename !== 'undefined' ? __filename : fileURLToPath(import.meta.url));\n\n// Walks up from this file's own directory rather than a fixed dot-count: it sits at a\n// different depth under src/ than under built dist/{cjs,esm}/store output.\nexport function packageNodeModules(): string {\n let dir = _dirname;\n for (;;) {\n const candidate = join(dir, 'package.json');\n if (existsSync(candidate)) {\n const pkg = JSON.parse(readFileSync(candidate, 'utf8')) as { name?: string };\n if (pkg.name === 'sensemaking') return join(dir, 'node_modules');\n }\n const parent = dirname(dir);\n if (parent === dir) throw new Error('could not locate the sensemaking package root to install a native dependency into');\n dir = parent;\n }\n}\n\nconst installing = new Map<string, Promise<void>>();\n\n// De-dupes concurrent installs: since the install is async, concurrent callers await the same\n// in-flight promise, keyed by specifier and target. A failed install is not cached, so a later call retries.\nfunction installOnce(specifier: string, nodeModulesPath: string): Promise<void> {\n const key = `${specifier}\\n${nodeModulesPath}`;\n let promise = installing.get(key);\n if (!promise) {\n const installModuleLinked = (_require('install-module-linked') as { default: (specifier: string, nodeModulesPath: string) => Promise<string> }).default;\n promise = installModuleLinked(specifier, nodeModulesPath).then(\n () => {},\n (err) => {\n installing.delete(key);\n throw err;\n }\n );\n installing.set(key, promise);\n }\n return promise;\n}\n\n// Node caches a bare specifier's resolution, including a \"not found\" miss, for the process\n// lifetime; use the installed entry directly, as a URL for ESM and a path for CJS.\nfunction resolveEntrySpecifier(importName: string, nodeModulesPath: string): string {\n const pkgDir = join(nodeModulesPath, ...importName.split('/'));\n const pkg = JSON.parse(readFileSync(join(pkgDir, 'package.json'), 'utf8')) as { main?: string; exports?: string };\n const entry = typeof pkg.exports === 'string' ? pkg.exports : (pkg.main ?? 'index.js');\n const entryPath = join(pkgDir, entry);\n return typeof require === 'undefined' ? pathToFileURL(entryPath).href : entryPath;\n}\n\ntype PackageMetadata = { name?: string; version?: string };\n\nfunction readPackageMetadata(pkgDir: string): PackageMetadata | undefined {\n try {\n return JSON.parse(readFileSync(join(pkgDir, 'package.json'), 'utf8')) as PackageMetadata;\n } catch {\n return undefined;\n }\n}\n\nfunction targetPackageMetadata(importName: string, nodeModulesPath: string): { exists: boolean; metadata?: PackageMetadata } {\n const pkgDir = join(nodeModulesPath, ...importName.split('/'));\n return { exists: existsSync(pkgDir), metadata: readPackageMetadata(pkgDir) };\n}\n\nfunction resolvedPackageMetadata(importName: string): PackageMetadata | undefined {\n try {\n let dir = dirname(_require.resolve(importName));\n for (;;) {\n const manifest = join(dir, 'package.json');\n if (existsSync(manifest)) {\n const pkg = readPackageMetadata(dir);\n if (!pkg) return undefined;\n if (pkg.name === importName) return pkg;\n }\n const parent = dirname(dir);\n if (parent === dir) return undefined;\n dir = parent;\n }\n } catch {\n return undefined;\n }\n}\n\nfunction versionContractError(descriptor: NativeDescriptor, installed?: string): SenseError {\n const installSpec = descriptor.installSpec ?? descriptor.pkg;\n const detail = installed ? `${descriptor.pkg}@${installed} is installed` : `${descriptor.pkg} has missing or unreadable version metadata`;\n return new SenseError('STORE_DEPENDENCY_MISSING', `store \"${descriptor.store}\" needs ${installSpec}, but ${detail}; refusing to overwrite it -- run \\`npm install ${installSpec}\\` yourself and try again`);\n}\n\nfunction assertExpectedVersion(descriptor: NativeDescriptor, metadata: PackageMetadata | undefined): void {\n if (!descriptor.version) return;\n if (!metadata?.version || metadata.version !== descriptor.version) throw versionContractError(descriptor, metadata?.version);\n}\n\n// Import-then-install-then-retry, over an injectable importName so the failure path can be\n// exercised in tests without a real native binding. Thrown errors always name descriptor.pkg.\nexport async function loadOrInstall<T>(descriptor: NativeDescriptor, nodeModulesPath: string, importName: string = descriptor.pkg): Promise<T> {\n if (descriptor.version) {\n const target = targetPackageMetadata(importName, nodeModulesPath);\n if (target.exists) assertExpectedVersion(descriptor, target.metadata);\n }\n let loaded: T;\n try {\n loaded = (await import(importName)) as T;\n } catch {\n const installSpec = descriptor.installSpec ?? importName;\n const displaySpec = descriptor.installSpec ?? descriptor.pkg;\n console.error(`sense: store \"${descriptor.store}\" needs ${displaySpec}; installing it now (one-time download, ${descriptor.sizeHint})...`);\n try {\n await installOnce(installSpec, nodeModulesPath);\n } catch (installErr) {\n throw new SenseError(\n 'STORE_DEPENDENCY_MISSING',\n `store \"${descriptor.store}\" needs ${displaySpec}, and installing it automatically failed (${(installErr as Error).message}); this can happen offline, in a sandboxed environment, or when node_modules is read-only or owned by another user (e.g. under a global install) -- run \\`npm install ${displaySpec}\\` yourself and try again`\n );\n }\n try {\n const loaded = (await import(resolveEntrySpecifier(importName, nodeModulesPath))) as T;\n assertExpectedVersion(descriptor, targetPackageMetadata(importName, nodeModulesPath).metadata);\n return loaded;\n } catch (loadErr) {\n throw new SenseError('STORE_DEPENDENCY_MISSING', `store \"${descriptor.store}\" installed ${displaySpec} but it could not be loaded (${(loadErr as Error).message}); it may not be available for this platform (${process.platform}-${process.arch}) -- run \\`npm install ${displaySpec}\\` to see the underlying error`);\n }\n }\n if (descriptor.version) assertExpectedVersion(descriptor, resolvedPackageMetadata(importName));\n return loaded;\n}\n"],"names":["loadOrInstall","packageNodeModules","_require","require","Module","createRequire","_dirname","dirname","__filename","fileURLToPath","dir","candidate","join","existsSync","pkg","JSON","parse","readFileSync","name","parent","Error","installing","Map","installOnce","specifier","nodeModulesPath","key","promise","get","installModuleLinked","default","then","err","delete","set","resolveEntrySpecifier","importName","pkgDir","split","entry","exports","main","entryPath","pathToFileURL","href","readPackageMetadata","undefined","targetPackageMetadata","exists","metadata","resolvedPackageMetadata","resolve","manifest","versionContractError","descriptor","installed","installSpec","detail","SenseError","store","assertExpectedVersion","version","target","loaded","displaySpec","installErr","loadErr","console","error","sizeHint","message","process","platform","arch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/open-source/ai/sensemaking/src/store/native.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport Module from 'node:module';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\nimport semver from 'semver';\nimport { SenseError } from '../errors.ts';\n\n// A store's optional native package, and the strings its error messages and install notice name.\nexport interface NativeDescriptor {\n store: string;\n pkg: string;\n sizeHint: string;\n /** The tested semver range: sensemaking's own `peerDependencies` entry for `pkg` (see `peerRange`). */\n range: string;\n}\n\n// A loaded native package and the version that actually resolved, which the store's engine identity records.\nexport interface NativeModule<T> {\n api: T;\n version: string | undefined;\n}\n\n// install-module-linked is small, but a target native package can be large (@duckdb/node-api's\n// ~110MB), so it is required lazily inside the gated branch below, not for every store/index.ts load.\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst _dirname = dirname(typeof __filename !== 'undefined' ? __filename : fileURLToPath(import.meta.url));\n\ntype PackageMetadata = { name?: string; version?: string; peerDependencies?: Record<string, string> };\n\n// Walks up from this file's own directory rather than a fixed dot-count: it sits at a\n// different depth under src/ than under built dist/{cjs,esm}/store output.\nfunction packageRoot(): { dir: string; manifest: PackageMetadata } {\n let dir = _dirname;\n for (;;) {\n const candidate = join(dir, 'package.json');\n if (existsSync(candidate)) {\n const manifest = JSON.parse(readFileSync(candidate, 'utf8')) as PackageMetadata;\n if (manifest.name === 'sensemaking') return { dir, manifest };\n }\n const parent = dirname(dir);\n if (parent === dir) throw new Error('could not locate the sensemaking package root to install a native dependency into');\n dir = parent;\n }\n}\n\nexport function packageNodeModules(): string {\n return join(packageRoot().dir, 'node_modules');\n}\n\n// The published contract for an optional native package: the range it is tested against.\nexport function peerRange(pkg: string): string {\n const range = packageRoot().manifest.peerDependencies?.[pkg];\n if (!range) throw new Error(`sensemaking's package.json declares no peerDependencies entry for ${pkg}`);\n return range;\n}\n\nconst installing = new Map<string, Promise<void>>();\n\n// De-dupes concurrent installs: since the install is async, concurrent callers await the same\n// in-flight promise, keyed by specifier and target. A failed install is not cached, so a later call retries.\nfunction installOnce(specifier: string, nodeModulesPath: string): Promise<void> {\n const key = `${specifier}\\n${nodeModulesPath}`;\n let promise = installing.get(key);\n if (!promise) {\n const installModuleLinked = (_require('install-module-linked') as { default: (specifier: string, nodeModulesPath: string) => Promise<string> }).default;\n promise = installModuleLinked(specifier, nodeModulesPath).then(\n () => {},\n (err) => {\n installing.delete(key);\n throw err;\n }\n );\n installing.set(key, promise);\n }\n return promise;\n}\n\nfunction readPackageMetadata(pkgDir: string): PackageMetadata | undefined {\n try {\n return JSON.parse(readFileSync(join(pkgDir, 'package.json'), 'utf8')) as PackageMetadata;\n } catch {\n return undefined;\n }\n}\n\n// Node caches a bare specifier's resolution, including a \"not found\" miss, for the process\n// lifetime; use the installed entry directly, as a URL for ESM and a path for CJS.\nfunction resolveEntrySpecifier(importName: string, nodeModulesPath: string): string {\n const pkgDir = join(nodeModulesPath, ...importName.split('/'));\n const pkg = JSON.parse(readFileSync(join(pkgDir, 'package.json'), 'utf8')) as { main?: string; exports?: string };\n const entry = typeof pkg.exports === 'string' ? pkg.exports : (pkg.main ?? 'index.js');\n const entryPath = join(pkgDir, entry);\n return typeof require === 'undefined' ? pathToFileURL(entryPath).href : entryPath;\n}\n\nfunction resolvedVersion(importName: string): string | undefined {\n try {\n let dir = dirname(_require.resolve(importName));\n for (;;) {\n const pkg = readPackageMetadata(dir);\n if (pkg?.name === importName) return pkg.version;\n const parent = dirname(dir);\n if (parent === dir) return undefined;\n dir = parent;\n }\n } catch {\n return undefined;\n }\n}\n\n// Any installed version is used; one outside the tested range is reported, not refused (the store's engine check decides).\nfunction reportVersion(descriptor: NativeDescriptor, version: string | undefined): void {\n if (version && semver.satisfies(version, descriptor.range)) return;\n console.error(`sense: store \"${descriptor.store}\" using ${descriptor.pkg}@${version ?? 'unknown version'} (tested ${descriptor.range})`);\n}\n\n// Import-then-install-then-retry, over an injectable importName so the failure path can be\n// exercised in tests without a real native binding. Thrown errors always name descriptor.pkg.\nexport async function loadOrInstall<T>(descriptor: NativeDescriptor, nodeModulesPath: string, importName: string = descriptor.pkg): Promise<NativeModule<T>> {\n try {\n const api = (await import(importName)) as T;\n const version = resolvedVersion(importName);\n reportVersion(descriptor, version);\n return { api, version };\n } catch {\n // Not resolvable here: install the newest version npm would pick for the tested range.\n }\n const spec = `${descriptor.pkg}@${descriptor.range}`;\n const installSpec = `${importName}@${descriptor.range}`;\n console.error(`sense: store \"${descriptor.store}\" needs ${spec}; installing it now (one-time download, ${descriptor.sizeHint})...`);\n try {\n await installOnce(installSpec, nodeModulesPath);\n } catch (installErr) {\n throw new SenseError(\n 'STORE_DEPENDENCY_MISSING',\n `store \"${descriptor.store}\" needs ${spec}, and installing it automatically failed (${(installErr as Error).message}); this can happen offline, in a sandboxed environment, or when node_modules is read-only or owned by another user (e.g. under a global install) -- run \\`npm install ${spec}\\` yourself and try again`\n );\n }\n try {\n const api = (await import(resolveEntrySpecifier(importName, nodeModulesPath))) as T;\n const version = readPackageMetadata(join(nodeModulesPath, ...importName.split('/')))?.version;\n reportVersion(descriptor, version);\n return { api, version };\n } catch (loadErr) {\n throw new SenseError('STORE_DEPENDENCY_MISSING', `store \"${descriptor.store}\" installed ${spec} but it could not be loaded (${(loadErr as Error).message}); it may not be available for this platform (${process.platform}-${process.arch}) -- run \\`npm install ${spec}\\` to see the underlying error`);\n }\n}\n"],"names":["loadOrInstall","packageNodeModules","peerRange","_require","require","Module","createRequire","_dirname","dirname","__filename","fileURLToPath","packageRoot","dir","candidate","join","existsSync","manifest","JSON","parse","readFileSync","name","parent","Error","pkg","range","peerDependencies","installing","Map","installOnce","specifier","nodeModulesPath","key","promise","get","installModuleLinked","default","then","err","delete","set","readPackageMetadata","pkgDir","undefined","resolveEntrySpecifier","importName","split","entry","exports","main","entryPath","pathToFileURL","href","resolvedVersion","resolve","version","reportVersion","descriptor","semver","satisfies","console","error","store","api","spec","installSpec","installErr","loadErr","sizeHint","SenseError","message","process","platform","arch"],"mappings":"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"}
|
package/dist/cjs/store/open.js
CHANGED
|
@@ -29,6 +29,7 @@ var _errorsts = require("../errors.js");
|
|
|
29
29
|
var _indexts1 = require("../features/index.js");
|
|
30
30
|
var _builderts = require("./builder.js");
|
|
31
31
|
var _cachets = require("./cache.js");
|
|
32
|
+
var _enginets = require("./engine.js");
|
|
32
33
|
var _lockwaitts = require("./lock-wait.js");
|
|
33
34
|
var _readinessts = require("./readiness.js");
|
|
34
35
|
var _sharedts = require("./shared.js");
|
|
@@ -316,7 +317,7 @@ function assertCoreSchema(conn) {
|
|
|
316
317
|
}
|
|
317
318
|
function connectExisting(cfg, dialect, requirements) {
|
|
318
319
|
return _async_to_generator(function() {
|
|
319
|
-
var _cfg_configDir, configDir, dbPath, _ref, handle, conn, state, unused, _state_version, wantFeatures, _dialect_assertLexicalReady, err;
|
|
320
|
+
var _cfg_configDir, configDir, dbPath, _ref, handle, conn, _dialect_engineIdentity, state, unused, _state_version, engine, _state_engine, wantFeatures, _dialect_assertLexicalReady, err;
|
|
320
321
|
return _ts_generator(this, function(_state) {
|
|
321
322
|
switch(_state.label){
|
|
322
323
|
case 0:
|
|
@@ -336,9 +337,9 @@ function connectExisting(cfg, dialect, requirements) {
|
|
|
336
337
|
case 2:
|
|
337
338
|
_state.trys.push([
|
|
338
339
|
2,
|
|
339
|
-
|
|
340
|
+
10,
|
|
340
341
|
,
|
|
341
|
-
|
|
342
|
+
12
|
|
342
343
|
]);
|
|
343
344
|
_state.label = 3;
|
|
344
345
|
case 3:
|
|
@@ -352,7 +353,7 @@ function connectExisting(cfg, dialect, requirements) {
|
|
|
352
353
|
4,
|
|
353
354
|
(0, _transactionts.withTransaction)(conn, function() {
|
|
354
355
|
return _async_to_generator(function() {
|
|
355
|
-
var version, features, ready;
|
|
356
|
+
var version, features, ready, engine;
|
|
356
357
|
return _ts_generator(this, function(_state) {
|
|
357
358
|
switch(_state.label){
|
|
358
359
|
case 0:
|
|
@@ -376,16 +377,23 @@ function connectExisting(cfg, dialect, requirements) {
|
|
|
376
377
|
ready = _state.sent();
|
|
377
378
|
return [
|
|
378
379
|
4,
|
|
379
|
-
|
|
380
|
+
(0, _sharedts.getMeta)(conn, _enginets.ENGINE_IDENTITY_META_KEY)
|
|
380
381
|
];
|
|
381
382
|
case 4:
|
|
383
|
+
engine = _state.sent();
|
|
384
|
+
return [
|
|
385
|
+
4,
|
|
386
|
+
assertCoreSchema(conn)
|
|
387
|
+
];
|
|
388
|
+
case 5:
|
|
382
389
|
_state.sent();
|
|
383
390
|
return [
|
|
384
391
|
2,
|
|
385
392
|
{
|
|
386
393
|
version: version,
|
|
387
394
|
features: features,
|
|
388
|
-
ready: ready
|
|
395
|
+
ready: ready,
|
|
396
|
+
engine: engine
|
|
389
397
|
}
|
|
390
398
|
];
|
|
391
399
|
}
|
|
@@ -408,6 +416,16 @@ function connectExisting(cfg, dialect, requirements) {
|
|
|
408
416
|
;
|
|
409
417
|
throw notReady("the derived index at ".concat(dbPath, " uses schema ").concat((_state_version = state.version) !== null && _state_version !== void 0 ? _state_version : 'unknown', ", but this sense version requires ").concat(dialect.schemaVersion));
|
|
410
418
|
}
|
|
419
|
+
return [
|
|
420
|
+
4,
|
|
421
|
+
(_dialect_engineIdentity = dialect.engineIdentity) === null || _dialect_engineIdentity === void 0 ? void 0 : _dialect_engineIdentity.call(dialect)
|
|
422
|
+
];
|
|
423
|
+
case 7:
|
|
424
|
+
engine = _state.sent();
|
|
425
|
+
if (engine !== undefined && state.engine !== engine) {
|
|
426
|
+
;
|
|
427
|
+
throw notReady("the derived index at ".concat(dbPath, " was built with ").concat((_state_engine = state.engine) !== null && _state_engine !== void 0 ? _state_engine : 'an unrecorded engine', ", but this process loads ").concat(engine));
|
|
428
|
+
}
|
|
411
429
|
wantFeatures = (0, _indexts.featureSignature)(cfg, _indexts1.FEATURES);
|
|
412
430
|
if (!(0, _readinessts.isPublishedFeatureSignature)(state.features, wantFeatures)) {
|
|
413
431
|
throw notReady("the derived index at ".concat(dbPath, " was built for different configuration features"));
|
|
@@ -417,16 +435,16 @@ function connectExisting(cfg, dialect, requirements) {
|
|
|
417
435
|
}
|
|
418
436
|
if (!requirements.has('lexical')) return [
|
|
419
437
|
3,
|
|
420
|
-
|
|
438
|
+
9
|
|
421
439
|
];
|
|
422
440
|
return [
|
|
423
441
|
4,
|
|
424
442
|
(_dialect_assertLexicalReady = dialect.assertLexicalReady) === null || _dialect_assertLexicalReady === void 0 ? void 0 : _dialect_assertLexicalReady.call(dialect, conn)
|
|
425
443
|
];
|
|
426
|
-
case 7:
|
|
427
|
-
_state.sent();
|
|
428
|
-
_state.label = 8;
|
|
429
444
|
case 8:
|
|
445
|
+
_state.sent();
|
|
446
|
+
_state.label = 9;
|
|
447
|
+
case 9:
|
|
430
448
|
if (!(0, _nodefs.existsSync)(dbPath)) throw notReady("the derived index was deleted while opening ".concat(dbPath));
|
|
431
449
|
return [
|
|
432
450
|
2,
|
|
@@ -441,7 +459,7 @@ function connectExisting(cfg, dialect, requirements) {
|
|
|
441
459
|
observational: true
|
|
442
460
|
}
|
|
443
461
|
];
|
|
444
|
-
case
|
|
462
|
+
case 10:
|
|
445
463
|
err = _state.sent();
|
|
446
464
|
return [
|
|
447
465
|
4,
|
|
@@ -449,10 +467,10 @@ function connectExisting(cfg, dialect, requirements) {
|
|
|
449
467
|
observational: true
|
|
450
468
|
})
|
|
451
469
|
];
|
|
452
|
-
case
|
|
470
|
+
case 11:
|
|
453
471
|
_state.sent();
|
|
454
472
|
throw err;
|
|
455
|
-
case
|
|
473
|
+
case 12:
|
|
456
474
|
return [
|
|
457
475
|
2
|
|
458
476
|
];
|
|
@@ -463,7 +481,7 @@ function connectExisting(cfg, dialect, requirements) {
|
|
|
463
481
|
function connectForBuild(cfg, dialect, requirements) {
|
|
464
482
|
var cacheReplaced = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
|
|
465
483
|
return _async_to_generator(function() {
|
|
466
|
-
var _cfg_configDir, configDir, stateDir, dbPath, _ref, handle, conn, closed, builder, _dialect_prepareConnection, version, _ref1, recordedMaxMs, _ref2, parsed, warnings, stages, messages, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, message, _dialect_prepareLexical, err, cleanupTasks, builderToClose, cleanup, cleanupErrors;
|
|
484
|
+
var _cfg_configDir, configDir, stateDir, dbPath, _ref, handle, conn, closed, builder, _dialect_engineIdentity, _dialect_prepareConnection, version, engine, builtWith, _tmp, engineChanged, _dialect_checkEngine, _ref1, recordedMaxMs, _ref2, parsed, warnings, stages, messages, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, message, _dialect_prepareLexical, err, cleanupTasks, builderToClose, cleanup, cleanupErrors;
|
|
467
485
|
return _ts_generator(this, function(_state) {
|
|
468
486
|
switch(_state.label){
|
|
469
487
|
case 0:
|
|
@@ -487,9 +505,9 @@ function connectForBuild(cfg, dialect, requirements) {
|
|
|
487
505
|
case 2:
|
|
488
506
|
_state.trys.push([
|
|
489
507
|
2,
|
|
490
|
-
|
|
508
|
+
23,
|
|
491
509
|
,
|
|
492
|
-
|
|
510
|
+
25
|
|
493
511
|
]);
|
|
494
512
|
return [
|
|
495
513
|
4,
|
|
@@ -503,52 +521,94 @@ function connectForBuild(cfg, dialect, requirements) {
|
|
|
503
521
|
];
|
|
504
522
|
case 4:
|
|
505
523
|
version = _state.sent();
|
|
506
|
-
|
|
524
|
+
return [
|
|
525
|
+
4,
|
|
526
|
+
(_dialect_engineIdentity = dialect.engineIdentity) === null || _dialect_engineIdentity === void 0 ? void 0 : _dialect_engineIdentity.call(dialect)
|
|
527
|
+
];
|
|
528
|
+
case 5:
|
|
529
|
+
engine = _state.sent();
|
|
530
|
+
if (!(version === null)) return [
|
|
507
531
|
3,
|
|
508
532
|
6
|
|
509
533
|
];
|
|
510
|
-
|
|
534
|
+
_tmp = null;
|
|
535
|
+
return [
|
|
536
|
+
3,
|
|
537
|
+
8
|
|
538
|
+
];
|
|
539
|
+
case 6:
|
|
540
|
+
return [
|
|
541
|
+
4,
|
|
542
|
+
(0, _sharedts.getMeta)(conn, _enginets.ENGINE_IDENTITY_META_KEY)
|
|
543
|
+
];
|
|
544
|
+
case 7:
|
|
545
|
+
_tmp = _state.sent();
|
|
546
|
+
_state.label = 8;
|
|
547
|
+
case 8:
|
|
548
|
+
builtWith = _tmp;
|
|
549
|
+
engineChanged = version !== null && engine !== undefined && builtWith !== engine;
|
|
550
|
+
if (!(version !== null && (version !== dialect.schemaVersion || engineChanged))) return [
|
|
551
|
+
3,
|
|
552
|
+
10
|
|
553
|
+
];
|
|
554
|
+
console.error(version !== dialect.schemaVersion ? 'sense: cache format changed (new sensemaking version); rebuilding the index' : "sense: index was built with ".concat(builtWith !== null && builtWith !== void 0 ? builtWith : 'an unrecorded engine', "; rebuilding it with ").concat(engine));
|
|
511
555
|
return [
|
|
512
556
|
4,
|
|
513
557
|
dialect.close(handle)
|
|
514
558
|
];
|
|
515
|
-
case
|
|
559
|
+
case 9:
|
|
516
560
|
_state.sent();
|
|
517
561
|
closed = true;
|
|
518
|
-
if (cacheReplaced) throw notReady("the derived index at ".concat(dbPath, " still reports incompatible schema ").concat(version, " after cache replacement"));
|
|
562
|
+
if (cacheReplaced) throw notReady("the derived index at ".concat(dbPath, " still reports incompatible schema ").concat(version, " or engine ").concat(builtWith !== null && builtWith !== void 0 ? builtWith : 'unrecorded', " after cache replacement"));
|
|
519
563
|
(0, _cachets.clearCache)(cfg);
|
|
520
564
|
return [
|
|
521
565
|
2,
|
|
522
566
|
connectForBuild(cfg, dialect, requirements, true)
|
|
523
567
|
];
|
|
524
|
-
case
|
|
568
|
+
case 10:
|
|
525
569
|
if (!(version === null)) return [
|
|
526
570
|
3,
|
|
527
|
-
|
|
571
|
+
14
|
|
528
572
|
];
|
|
573
|
+
return [
|
|
574
|
+
4,
|
|
575
|
+
(_dialect_checkEngine = dialect.checkEngine) === null || _dialect_checkEngine === void 0 ? void 0 : _dialect_checkEngine.call(dialect)
|
|
576
|
+
];
|
|
577
|
+
case 11:
|
|
578
|
+
_state.sent();
|
|
529
579
|
return [
|
|
530
580
|
4,
|
|
531
581
|
dialect.ensureCoreSchema(handle, conn)
|
|
532
582
|
];
|
|
533
|
-
case
|
|
583
|
+
case 12:
|
|
534
584
|
_state.sent();
|
|
535
|
-
|
|
536
|
-
|
|
585
|
+
if (!(engine !== undefined)) return [
|
|
586
|
+
3,
|
|
587
|
+
14
|
|
588
|
+
];
|
|
589
|
+
return [
|
|
590
|
+
4,
|
|
591
|
+
(0, _sharedts.setMeta)(conn, _enginets.ENGINE_IDENTITY_META_KEY, engine)
|
|
592
|
+
];
|
|
593
|
+
case 13:
|
|
594
|
+
_state.sent();
|
|
595
|
+
_state.label = 14;
|
|
596
|
+
case 14:
|
|
537
597
|
return [
|
|
538
598
|
4,
|
|
539
599
|
(_dialect_prepareConnection = dialect.prepareConnection) === null || _dialect_prepareConnection === void 0 ? void 0 : _dialect_prepareConnection.call(dialect, handle, conn, cfg)
|
|
540
600
|
];
|
|
541
|
-
case
|
|
601
|
+
case 15:
|
|
542
602
|
_state.sent();
|
|
543
603
|
if (!dialect.setDerivedBusyTimeout) return [
|
|
544
604
|
3,
|
|
545
|
-
|
|
605
|
+
18
|
|
546
606
|
];
|
|
547
607
|
return [
|
|
548
608
|
4,
|
|
549
609
|
(0, _sharedts.getMeta)(conn, 'reconcile_max_ms')
|
|
550
610
|
];
|
|
551
|
-
case
|
|
611
|
+
case 16:
|
|
552
612
|
recordedMaxMs = Number.apply(void 0, [
|
|
553
613
|
(_ref1 = _state.sent()) !== null && _ref1 !== void 0 ? _ref1 : '0'
|
|
554
614
|
]);
|
|
@@ -556,10 +616,10 @@ function connectForBuild(cfg, dialect, requirements) {
|
|
|
556
616
|
4,
|
|
557
617
|
dialect.setDerivedBusyTimeout(handle, conn, Math.min(Math.max(30000, 3 * recordedMaxMs), 600000))
|
|
558
618
|
];
|
|
559
|
-
case
|
|
619
|
+
case 17:
|
|
560
620
|
_state.sent();
|
|
561
|
-
_state.label =
|
|
562
|
-
case
|
|
621
|
+
_state.label = 18;
|
|
622
|
+
case 18:
|
|
563
623
|
builder = (0, _builderts.createBuilder)(conn, cfg, dialect.reconcileDialect, function(snapshotCfg) {
|
|
564
624
|
return dialect.ensureFeatureSchema(handle, conn, snapshotCfg);
|
|
565
625
|
});
|
|
@@ -567,7 +627,7 @@ function connectForBuild(cfg, dialect, requirements) {
|
|
|
567
627
|
4,
|
|
568
628
|
builder.build()
|
|
569
629
|
];
|
|
570
|
-
case
|
|
630
|
+
case 19:
|
|
571
631
|
_ref2 = _state.sent(), parsed = _ref2.parsed, warnings = _ref2.warnings, stages = _ref2.stages, messages = _ref2.messages;
|
|
572
632
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
573
633
|
try {
|
|
@@ -591,21 +651,21 @@ function connectForBuild(cfg, dialect, requirements) {
|
|
|
591
651
|
}
|
|
592
652
|
if (!requirements.has('lexical')) return [
|
|
593
653
|
3,
|
|
594
|
-
|
|
654
|
+
21
|
|
595
655
|
];
|
|
596
656
|
return [
|
|
597
657
|
4,
|
|
598
658
|
(_dialect_prepareLexical = dialect.prepareLexical) === null || _dialect_prepareLexical === void 0 ? void 0 : _dialect_prepareLexical.call(dialect, conn)
|
|
599
659
|
];
|
|
600
|
-
case
|
|
660
|
+
case 20:
|
|
601
661
|
_state.sent();
|
|
602
|
-
_state.label =
|
|
603
|
-
case
|
|
662
|
+
_state.label = 21;
|
|
663
|
+
case 21:
|
|
604
664
|
return [
|
|
605
665
|
4,
|
|
606
666
|
builder.close()
|
|
607
667
|
];
|
|
608
|
-
case
|
|
668
|
+
case 22:
|
|
609
669
|
_state.sent();
|
|
610
670
|
return [
|
|
611
671
|
2,
|
|
@@ -620,7 +680,7 @@ function connectForBuild(cfg, dialect, requirements) {
|
|
|
620
680
|
observational: false
|
|
621
681
|
}
|
|
622
682
|
];
|
|
623
|
-
case
|
|
683
|
+
case 23:
|
|
624
684
|
err = _state.sent();
|
|
625
685
|
cleanupTasks = [];
|
|
626
686
|
if (builder) {
|
|
@@ -636,7 +696,7 @@ function connectForBuild(cfg, dialect, requirements) {
|
|
|
636
696
|
4,
|
|
637
697
|
Promise.allSettled(cleanupTasks)
|
|
638
698
|
];
|
|
639
|
-
case
|
|
699
|
+
case 24:
|
|
640
700
|
cleanup = _state.sent();
|
|
641
701
|
cleanupErrors = cleanup.filter(function(result) {
|
|
642
702
|
return result.status === 'rejected';
|
|
@@ -647,7 +707,7 @@ function connectForBuild(cfg, dialect, requirements) {
|
|
|
647
707
|
err
|
|
648
708
|
].concat(_to_consumable_array(cleanupErrors)), 'opening the derived index failed and cleanup also failed');
|
|
649
709
|
throw err;
|
|
650
|
-
case
|
|
710
|
+
case 25:
|
|
651
711
|
return [
|
|
652
712
|
2
|
|
653
713
|
];
|