dirsql 0.3.102 → 0.3.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core.d.ts +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/dirsql.d.ts +7 -6
- package/dist/dirsql.d.ts.map +1 -1
- package/dist/dirsql.js +11 -4
- package/dist/dirsql.js.map +1 -1
- package/dist/resolve-config-extensions.d.ts +10 -9
- package/dist/resolve-config-extensions.d.ts.map +1 -1
- package/dist/resolve-config-extensions.js +43 -7
- package/dist/resolve-config-extensions.js.map +1 -1
- package/docs/reference/sdk.md +10 -3
- package/package.json +11 -11
package/dist/core.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface NativeDirSQL {
|
|
|
6
6
|
pollEvents(timeoutMs: number): Promise<RowEvent[]>;
|
|
7
7
|
}
|
|
8
8
|
export interface NativeDirSQLConstructor {
|
|
9
|
-
openAsync(root: string | null, tables: TableDef[] | null, ignore: string[] | null, config: string | null, persist: boolean | null, persistPath: string | null, extensions: ExtensionSpec[] | null, suppressConfigExtensions: boolean | null): Promise<NativeDirSQL>;
|
|
9
|
+
openAsync(root: string | null, tables: TableDef[] | null, ignore: string[] | null, config: string[] | null, persist: boolean | null, persistPath: string | null, extensions: ExtensionSpec[] | null, suppressConfigExtensions: boolean | null): Promise<NativeDirSQL>;
|
|
10
10
|
}
|
|
11
11
|
export interface CoreModule {
|
|
12
12
|
DirSQL: NativeDirSQLConstructor;
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACvD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CACP,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EACzB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EACvB,MAAM,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACvD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CACP,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EACzB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EACvB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EACvB,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,UAAU,EAAE,aAAa,EAAE,GAAG,IAAI,EAGlC,wBAAwB,EAAE,OAAO,GAAG,IAAI,GACvC,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,uBAAuB,CAAC;IAChC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5C;AAMD,wBAAgB,OAAO,IAAI,UAAU,CAKpC"}
|
package/dist/dirsql.d.ts
CHANGED
|
@@ -32,13 +32,14 @@ export interface DirSQLOptions {
|
|
|
32
32
|
/** Glob patterns (relative to `root`) to ignore. */
|
|
33
33
|
ignore?: string[];
|
|
34
34
|
/**
|
|
35
|
-
* Path to a `.dirsql.toml` config file
|
|
36
|
-
*
|
|
37
|
-
* are appended to any explicit
|
|
38
|
-
*
|
|
39
|
-
*
|
|
35
|
+
* Path to a `.dirsql.toml` config file, or an array of paths that merge in
|
|
36
|
+
* order. Each config's `[[table]]` entries are appended to any programmatic
|
|
37
|
+
* `tables`; its `[dirsql].ignore` patterns are appended to any explicit
|
|
38
|
+
* `ignore`; a duplicate table name across configs errors. The config file's
|
|
39
|
+
* location does not affect the index root — that is the explicit `root` when
|
|
40
|
+
* given, otherwise the process working directory.
|
|
40
41
|
*/
|
|
41
|
-
config?: string;
|
|
42
|
+
config?: string | string[];
|
|
42
43
|
/**
|
|
43
44
|
* Enable persistent on-disk SQLite cache. When `true`, the database is
|
|
44
45
|
* written to `<root>/.dirsql/cache.db` (override via `persistPath`) so
|
package/dist/dirsql.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dirsql.d.ts","sourceRoot":"","sources":["../src/dirsql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"dirsql.d.ts","sourceRoot":"","sources":["../src/dirsql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,qDAAqD;AACrD,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,MAAM;IAIjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IAEvC;;;;;;OAMG;IACH,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzB;IAGD,OAAO,CAAC,MAAM,CAAgB;IAE9B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IAEjC,wDAAwD;gBAC5C,UAAU,EAAE,MAAM;IAC9B,yCAAyC;gBAC7B,OAAO,EAAE,aAAa;IAqDlC;;;;;;OAMG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAK5D;;;;;;;OAOG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnC;;;;;;;OAOG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKxD;;;;;;;;;;OAUG;IACI,KAAK,IAAI,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;CAYxD"}
|
package/dist/dirsql.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getCore } from "./core.js";
|
|
2
|
-
import {
|
|
2
|
+
import { resolveConfigsExtensionSpecs } from "./resolve-config-extensions.js";
|
|
3
3
|
import { resolveExtensionPath } from "./resolve-extension.js";
|
|
4
4
|
/**
|
|
5
5
|
* Ephemeral SQL index over a local directory.
|
|
@@ -52,6 +52,13 @@ export class DirSQL {
|
|
|
52
52
|
constructor(arg) {
|
|
53
53
|
const options = typeof arg === "string" ? { config: arg } : arg;
|
|
54
54
|
this._options = options;
|
|
55
|
+
// A single path or an array; the array merges in order (each config's
|
|
56
|
+
// [[table]] / ignore / [[dirsql.extension]] accumulate).
|
|
57
|
+
const configPaths = options.config == null
|
|
58
|
+
? []
|
|
59
|
+
: typeof options.config === "string"
|
|
60
|
+
? [options.config]
|
|
61
|
+
: options.config;
|
|
55
62
|
const Ctor = getCore().DirSQL;
|
|
56
63
|
// Extension paths (possibly bare package names) are resolved inside the
|
|
57
64
|
// promise chain so a resolution error rejects `ready` rather than
|
|
@@ -66,13 +73,13 @@ export class DirSQL {
|
|
|
66
73
|
// (bare package names need require.resolve, which the core lacks) and
|
|
67
74
|
// suppresses the core's own config-extension loading so they are not
|
|
68
75
|
// loaded twice.
|
|
69
|
-
const configExtensions =
|
|
70
|
-
?
|
|
76
|
+
const configExtensions = configPaths.length > 0
|
|
77
|
+
? resolveConfigsExtensionSpecs(configPaths)
|
|
71
78
|
: null;
|
|
72
79
|
const merged = configExtensions !== null
|
|
73
80
|
? [...(extensions ?? []), ...configExtensions]
|
|
74
81
|
: extensions;
|
|
75
|
-
return Ctor.openAsync(options.root ?? null, options.tables ?? null, options.ignore ?? null,
|
|
82
|
+
return Ctor.openAsync(options.root ?? null, options.tables ?? null, options.ignore ?? null, configPaths.length > 0 ? configPaths : null, options.persist ?? null, options.persistPath ?? null, merged, configExtensions !== null);
|
|
76
83
|
})
|
|
77
84
|
.then((inner) => {
|
|
78
85
|
this._inner = inner;
|
package/dist/dirsql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dirsql.js","sourceRoot":"","sources":["../src/dirsql.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dirsql.js","sourceRoot":"","sources":["../src/dirsql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import type { ExtensionSpec } from "./dirsql.js";
|
|
2
|
+
export declare function resolveConfigExtensionSpecs(configPath: string): ExtensionSpec[] | null;
|
|
2
3
|
/**
|
|
3
|
-
* Resolve
|
|
4
|
+
* Resolve the `[[dirsql.extension]]` entries of several configs, in order.
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
6
|
+
* The SDK intervenes for the whole set only when **some** config names an
|
|
7
|
+
* extension by bare package name (the core can resolve neither package names
|
|
8
|
+
* nor — once globally suppressed — the literal entries of the other configs).
|
|
9
|
+
* When it intervenes it resolves **every** config's entries, each against that
|
|
10
|
+
* config's own parent directory, concatenated in `configPaths` order. Returns
|
|
11
|
+
* `null` when no config uses a package name, leaving every config's loading to
|
|
12
|
+
* the core.
|
|
12
13
|
*/
|
|
13
|
-
export declare function
|
|
14
|
+
export declare function resolveConfigsExtensionSpecs(configPaths: string[]): ExtensionSpec[] | null;
|
|
14
15
|
//# sourceMappingURL=resolve-config-extensions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-config-extensions.d.ts","sourceRoot":"","sources":["../src/resolve-config-extensions.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-config-extensions.d.ts","sourceRoot":"","sources":["../src/resolve-config-extensions.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqDjD,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,GACjB,aAAa,EAAE,GAAG,IAAI,CAMxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,MAAM,EAAE,GACpB,aAAa,EAAE,GAAG,IAAI,CAYxB"}
|
|
@@ -22,7 +22,12 @@ import { isBareName, resolveExtensionPath } from "./resolve-extension.js";
|
|
|
22
22
|
* (and error reporting) untouched. Throws if a package name cannot be
|
|
23
23
|
* resolved.
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
/** Load a config's `[[dirsql.extension]]` entries with its base directory.
|
|
26
|
+
*
|
|
27
|
+
* `null` when the config is missing, unreadable/malformed, or declares no
|
|
28
|
+
* extension array — the caller leaves such configs to the core.
|
|
29
|
+
*/
|
|
30
|
+
function loadExtensionEntries(configPath) {
|
|
26
31
|
if (!existsSync(configPath)) {
|
|
27
32
|
return null;
|
|
28
33
|
}
|
|
@@ -38,15 +43,46 @@ export function resolveConfigExtensionSpecs(configPath) {
|
|
|
38
43
|
if (!Array.isArray(dirsql.extension)) {
|
|
39
44
|
return null;
|
|
40
45
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
return { entries: dirsql.extension, base: dirname(resolvePath(configPath)) };
|
|
47
|
+
}
|
|
48
|
+
function hasBareName(entries) {
|
|
49
|
+
return entries.some((e) => typeof e.path === "string" && isBareName(e.path));
|
|
50
|
+
}
|
|
51
|
+
function resolveEntries(entries, base) {
|
|
47
52
|
return entries.map((e) => ({
|
|
48
53
|
path: resolveExtensionPath(e.path, base, true),
|
|
49
54
|
entrypoint: typeof e.entrypoint === "string" ? e.entrypoint : undefined,
|
|
50
55
|
}));
|
|
51
56
|
}
|
|
57
|
+
export function resolveConfigExtensionSpecs(configPath) {
|
|
58
|
+
const loaded = loadExtensionEntries(configPath);
|
|
59
|
+
if (loaded === null || !hasBareName(loaded.entries)) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
return resolveEntries(loaded.entries, loaded.base);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Resolve the `[[dirsql.extension]]` entries of several configs, in order.
|
|
66
|
+
*
|
|
67
|
+
* The SDK intervenes for the whole set only when **some** config names an
|
|
68
|
+
* extension by bare package name (the core can resolve neither package names
|
|
69
|
+
* nor — once globally suppressed — the literal entries of the other configs).
|
|
70
|
+
* When it intervenes it resolves **every** config's entries, each against that
|
|
71
|
+
* config's own parent directory, concatenated in `configPaths` order. Returns
|
|
72
|
+
* `null` when no config uses a package name, leaving every config's loading to
|
|
73
|
+
* the core.
|
|
74
|
+
*/
|
|
75
|
+
export function resolveConfigsExtensionSpecs(configPaths) {
|
|
76
|
+
const loaded = configPaths.map(loadExtensionEntries);
|
|
77
|
+
if (!loaded.some((item) => item !== null && hasBareName(item.entries))) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
const specs = [];
|
|
81
|
+
for (const item of loaded) {
|
|
82
|
+
if (item !== null) {
|
|
83
|
+
specs.push(...resolveEntries(item.entries, item.base));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return specs;
|
|
87
|
+
}
|
|
52
88
|
//# sourceMappingURL=resolve-config-extensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-config-extensions.js","sourceRoot":"","sources":["../src/resolve-config-extensions.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,8DAA8D;AAC9D,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,oEAAoE;AACpE,EAAE;AACF,6EAA6E;AAE7E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAK1E;;;;;;;;;;GAUG;AACH,
|
|
1
|
+
{"version":3,"file":"resolve-config-extensions.js","sourceRoot":"","sources":["../src/resolve-config-extensions.ts"],"names":[],"mappings":"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"}
|
package/docs/reference/sdk.md
CHANGED
|
@@ -68,7 +68,7 @@ new DirSQL({
|
|
|
68
68
|
root?: string,
|
|
69
69
|
tables?: TableDef[],
|
|
70
70
|
ignore?: string[],
|
|
71
|
-
config?: string,
|
|
71
|
+
config?: string | string[],
|
|
72
72
|
persist?: boolean,
|
|
73
73
|
persistPath?: string,
|
|
74
74
|
extensions?: ExtensionSpec[], // [{ path: string, entrypoint?: string }]
|
|
@@ -80,7 +80,8 @@ DirSQL::builder()
|
|
|
80
80
|
.root(root) // optional
|
|
81
81
|
.tables(tables) // optional; append one with .table(t)
|
|
82
82
|
.ignore(patterns) // optional
|
|
83
|
-
.config(config_toml_path) // optional
|
|
83
|
+
.config(config_toml_path) // optional; repeatable — call again to
|
|
84
|
+
// merge another config in call order
|
|
84
85
|
.persist(cache_path) // optional; Some(path), or None for the
|
|
85
86
|
// default <root>/.dirsql/cache.db
|
|
86
87
|
.extensions(extensions) // optional; append one with .extension(e)
|
|
@@ -107,7 +108,13 @@ never sets the root.
|
|
|
107
108
|
entries are appended after any programmatic `tables`; its `ignore`
|
|
108
109
|
patterns and `[[dirsql.extension]]` entries are appended likewise. The
|
|
109
110
|
config file does **not** set the index root: with no explicit `root`, the
|
|
110
|
-
index roots at the process cwd.
|
|
111
|
+
index roots at the process cwd. **Multiple configs merge in order** — the
|
|
112
|
+
**Rust** builder's `.config()` is repeatable (call it once per file) and
|
|
113
|
+
**TypeScript** `config` accepts a `string` or a `string[]`; the configs
|
|
114
|
+
merge in call order (`[[table]]` / `ignore` / `[[dirsql.extension]]`
|
|
115
|
+
accumulate; a duplicate table name across configs errors), mirroring the
|
|
116
|
+
CLI's repeatable [`-c/--config`](./cli.md#flags). Python currently accepts a
|
|
117
|
+
single `config` path.
|
|
111
118
|
- `persist` — Keep the SQLite index on disk between runs (default off:
|
|
112
119
|
ephemeral, rebuilt every startup). The cache lives at
|
|
113
120
|
`<root>/.dirsql/cache.db` by default; on restart, only files whose stat
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dirsql",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.104",
|
|
4
4
|
"description": "Ephemeral SQL index over a local directory",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "https://github.com/thekevinscott/dirsql",
|
|
@@ -212,15 +212,15 @@
|
|
|
212
212
|
]
|
|
213
213
|
},
|
|
214
214
|
"optionalDependencies": {
|
|
215
|
-
"@dirsql/lib-linux-x64-gnu": "0.3.
|
|
216
|
-
"@dirsql/lib-linux-arm64-gnu": "0.3.
|
|
217
|
-
"@dirsql/lib-darwin-x64": "0.3.
|
|
218
|
-
"@dirsql/lib-darwin-arm64": "0.3.
|
|
219
|
-
"@dirsql/lib-win32-x64-msvc": "0.3.
|
|
220
|
-
"@dirsql/cli-linux-x64-gnu": "0.3.
|
|
221
|
-
"@dirsql/cli-linux-arm64-gnu": "0.3.
|
|
222
|
-
"@dirsql/cli-darwin-x64": "0.3.
|
|
223
|
-
"@dirsql/cli-darwin-arm64": "0.3.
|
|
224
|
-
"@dirsql/cli-win32-x64-msvc": "0.3.
|
|
215
|
+
"@dirsql/lib-linux-x64-gnu": "0.3.104",
|
|
216
|
+
"@dirsql/lib-linux-arm64-gnu": "0.3.104",
|
|
217
|
+
"@dirsql/lib-darwin-x64": "0.3.104",
|
|
218
|
+
"@dirsql/lib-darwin-arm64": "0.3.104",
|
|
219
|
+
"@dirsql/lib-win32-x64-msvc": "0.3.104",
|
|
220
|
+
"@dirsql/cli-linux-x64-gnu": "0.3.104",
|
|
221
|
+
"@dirsql/cli-linux-arm64-gnu": "0.3.104",
|
|
222
|
+
"@dirsql/cli-darwin-x64": "0.3.104",
|
|
223
|
+
"@dirsql/cli-darwin-arm64": "0.3.104",
|
|
224
|
+
"@dirsql/cli-win32-x64-msvc": "0.3.104"
|
|
225
225
|
}
|
|
226
226
|
}
|