@spool-lab/core 0.4.12 → 0.5.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/README.md +2 -2
- package/dist/db/db.d.ts +10 -2
- package/dist/db/db.d.ts.map +1 -1
- package/dist/db/db.js +119 -10
- package/dist/db/db.js.map +1 -1
- package/dist/db/queries.d.ts +5 -5
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +32 -14
- package/dist/db/queries.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/observability/exporter-file.d.ts +30 -0
- package/dist/observability/exporter-file.d.ts.map +1 -0
- package/dist/observability/exporter-file.js +125 -0
- package/dist/observability/exporter-file.js.map +1 -0
- package/dist/observability/exporter-pretty.d.ts +27 -0
- package/dist/observability/exporter-pretty.d.ts.map +1 -0
- package/dist/observability/exporter-pretty.js +84 -0
- package/dist/observability/exporter-pretty.js.map +1 -0
- package/dist/observability/index.d.ts +2 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +2 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/layer.d.ts +29 -0
- package/dist/observability/layer.d.ts.map +1 -0
- package/dist/observability/layer.js +45 -0
- package/dist/observability/layer.js.map +1 -0
- package/dist/parsers/opencode.d.ts +23 -0
- package/dist/parsers/opencode.d.ts.map +1 -0
- package/dist/parsers/opencode.js +358 -0
- package/dist/parsers/opencode.js.map +1 -0
- package/dist/projects/sessions.d.ts +29 -1
- package/dist/projects/sessions.d.ts.map +1 -1
- package/dist/projects/sessions.js +115 -11
- package/dist/projects/sessions.js.map +1 -1
- package/dist/security/index.d.ts +14 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +7 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/maintenance.d.ts +15 -0
- package/dist/security/maintenance.d.ts.map +1 -0
- package/dist/security/maintenance.js +68 -0
- package/dist/security/maintenance.js.map +1 -0
- package/dist/security/profile.d.ts +47 -0
- package/dist/security/profile.d.ts.map +1 -0
- package/dist/security/profile.js +131 -0
- package/dist/security/profile.js.map +1 -0
- package/dist/security/purge.d.ts +68 -0
- package/dist/security/purge.d.ts.map +1 -0
- package/dist/security/purge.js +193 -0
- package/dist/security/purge.js.map +1 -0
- package/dist/security/repo.d.ts +190 -0
- package/dist/security/repo.d.ts.map +1 -0
- package/dist/security/repo.js +594 -0
- package/dist/security/repo.js.map +1 -0
- package/dist/security/scan.d.ts +50 -0
- package/dist/security/scan.d.ts.map +1 -0
- package/dist/security/scan.js +122 -0
- package/dist/security/scan.js.map +1 -0
- package/dist/security/types.d.ts +146 -0
- package/dist/security/types.d.ts.map +1 -0
- package/dist/security/types.js +10 -0
- package/dist/security/types.js.map +1 -0
- package/dist/security/worker.d.ts +69 -0
- package/dist/security/worker.d.ts.map +1 -0
- package/dist/security/worker.js +228 -0
- package/dist/security/worker.js.map +1 -0
- package/dist/sync/source-paths.d.ts +1 -0
- package/dist/sync/source-paths.d.ts.map +1 -1
- package/dist/sync/source-paths.js +48 -6
- package/dist/sync/source-paths.js.map +1 -1
- package/dist/sync/syncer.d.ts +9 -1
- package/dist/sync/syncer.d.ts.map +1 -1
- package/dist/sync/syncer.js +128 -16
- package/dist/sync/syncer.js.map +1 -1
- package/dist/sync/watcher.d.ts.map +1 -1
- package/dist/sync/watcher.js +8 -2
- package/dist/sync/watcher.js.map +1 -1
- package/dist/types.d.ts +15 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/util/resolve-bin.d.ts +34 -0
- package/dist/util/resolve-bin.d.ts.map +1 -1
- package/dist/util/resolve-bin.js +175 -20
- package/dist/util/resolve-bin.js.map +1 -1
- package/package.json +11 -2
|
@@ -1,6 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a binary path that works in both terminal-launched and
|
|
3
|
+
* GUI-launched (minimal PATH) contexts on macOS.
|
|
4
|
+
*
|
|
5
|
+
* Strategy: process PATH → user login+interactive shell → bash fallback →
|
|
6
|
+
* well-known install locations (homebrew, ~/.local/bin, nvm, mise).
|
|
7
|
+
*
|
|
8
|
+
* The interactive (-i) flag is what picks up version managers that activate
|
|
9
|
+
* in .zshrc / .bashrc (mise, asdf, fnm, etc.) rather than only profile files.
|
|
10
|
+
*/
|
|
11
|
+
export declare function nvmVersionBins(home: string, name: string): string[];
|
|
12
|
+
/**
|
|
13
|
+
* Enumerate mise-managed binary paths for a given tool name.
|
|
14
|
+
* mise installs under ~/.local/share/mise/installs/<plugin>/<version>/bin/<name>,
|
|
15
|
+
* and exposes shims at ~/.local/share/mise/shims/<name>. We check the shim first
|
|
16
|
+
* (it's a stable entry point), then scan installed versions newest-first.
|
|
17
|
+
*/
|
|
18
|
+
export declare function miseVersionBins(home: string, name: string): string[];
|
|
19
|
+
/** Ordered list of filesystem paths to probe for `name`. Pure. */
|
|
20
|
+
export declare function wellKnownBinPaths(name: string, home: string, extras?: string[]): string[];
|
|
1
21
|
export declare function resolveSystemBinary(name: string, extraSearchPaths?: string[]): string | null;
|
|
2
22
|
/** Cached version of resolveSystemBinary — result persists for process lifetime. */
|
|
3
23
|
export declare function cachedResolve(name: string, extras?: string[]): string | null;
|
|
4
24
|
/** Clear a cached resolve entry (e.g. after installing a new binary). */
|
|
5
25
|
export declare function clearResolveCache(name: string): void;
|
|
26
|
+
export declare function resolveSystemBinaryAsync(name: string, extraSearchPaths?: string[]): Promise<string | null>;
|
|
27
|
+
/** Async equivalent of `cachedResolve`. Shares the same in-memory cache as
|
|
28
|
+
* the sync version, so once either resolves a binary the other returns
|
|
29
|
+
* it instantly. Path validation: cached entries are verified with a
|
|
30
|
+
* filesystem check before being returned, so a brew upgrade or manual
|
|
31
|
+
* removal triggers a re-resolve instead of leaking a stale path. */
|
|
32
|
+
export declare function cachedResolveAsync(name: string, extras?: string[]): Promise<string | null>;
|
|
33
|
+
/** Bulk-populate the in-memory cache from an external store (e.g. a JSON
|
|
34
|
+
* file persisted across app launches). Entries already present are left
|
|
35
|
+
* alone so a live resolve doesn't get overwritten by stale disk data. */
|
|
36
|
+
export declare function hydrateResolveCache(entries: Record<string, string | null>): void;
|
|
37
|
+
/** Snapshot the current cache for persistence. Returns only completed
|
|
38
|
+
* entries (resolved or definitively unresolved) — no in-flight requests. */
|
|
39
|
+
export declare function getResolveCacheSnapshot(): Record<string, string | null>;
|
|
6
40
|
//# sourceMappingURL=resolve-bin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-bin.d.ts","sourceRoot":"","sources":["../../src/util/resolve-bin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-bin.d.ts","sourceRoot":"","sources":["../../src/util/resolve-bin.ts"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AAEH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAUnE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BpE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAU7F;AAeD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAM,EAAO,GAAG,MAAM,GAAG,IAAI,CAyBhG;AAID,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,GAAG,MAAM,GAAG,IAAI,CAKhF;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEpD;AA+BD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BpH;AAED;;;;qEAIqE;AACrE,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWpG;AAED;;0EAE0E;AAC1E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAIhF;AAED;6EAC6E;AAC7E,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAEvE"}
|
package/dist/util/resolve-bin.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import { execSync } from 'node:child_process';
|
|
1
|
+
import { exec, execSync } from 'node:child_process';
|
|
2
2
|
import { existsSync, readdirSync } from 'node:fs';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
|
+
import { promisify } from 'node:util';
|
|
6
|
+
const execAsync = promisify(exec);
|
|
5
7
|
/**
|
|
6
8
|
* Resolve a binary path that works in both terminal-launched and
|
|
7
9
|
* GUI-launched (minimal PATH) contexts on macOS.
|
|
8
10
|
*
|
|
9
|
-
* Strategy:
|
|
11
|
+
* Strategy: process PATH → user login+interactive shell → bash fallback →
|
|
12
|
+
* well-known install locations (homebrew, ~/.local/bin, nvm, mise).
|
|
13
|
+
*
|
|
14
|
+
* The interactive (-i) flag is what picks up version managers that activate
|
|
15
|
+
* in .zshrc / .bashrc (mise, asdf, fnm, etc.) rather than only profile files.
|
|
10
16
|
*/
|
|
11
|
-
function nvmVersionBins(home, name) {
|
|
17
|
+
export function nvmVersionBins(home, name) {
|
|
12
18
|
const versionsDir = join(home, '.nvm', 'versions', 'node');
|
|
13
19
|
try {
|
|
14
20
|
return readdirSync(versionsDir)
|
|
@@ -20,32 +26,89 @@ function nvmVersionBins(home, name) {
|
|
|
20
26
|
return [];
|
|
21
27
|
}
|
|
22
28
|
}
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Enumerate mise-managed binary paths for a given tool name.
|
|
31
|
+
* mise installs under ~/.local/share/mise/installs/<plugin>/<version>/bin/<name>,
|
|
32
|
+
* and exposes shims at ~/.local/share/mise/shims/<name>. We check the shim first
|
|
33
|
+
* (it's a stable entry point), then scan installed versions newest-first.
|
|
34
|
+
*/
|
|
35
|
+
export function miseVersionBins(home, name) {
|
|
36
|
+
const root = join(home, '.local', 'share', 'mise');
|
|
37
|
+
const result = [join(root, 'shims', name)];
|
|
38
|
+
const installsDir = join(root, 'installs');
|
|
39
|
+
let plugins;
|
|
25
40
|
try {
|
|
26
|
-
|
|
27
|
-
if (p)
|
|
28
|
-
return p;
|
|
41
|
+
plugins = readdirSync(installsDir);
|
|
29
42
|
}
|
|
30
|
-
catch {
|
|
31
|
-
|
|
32
|
-
try {
|
|
33
|
-
const p = execSync(`bash -lc "which ${name}"`, { encoding: 'utf8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
34
|
-
if (p)
|
|
35
|
-
return p;
|
|
43
|
+
catch {
|
|
44
|
+
return result;
|
|
36
45
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
for (const plugin of plugins) {
|
|
47
|
+
const pluginDir = join(installsDir, plugin);
|
|
48
|
+
let versions;
|
|
49
|
+
try {
|
|
50
|
+
versions = readdirSync(pluginDir);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const ordered = versions.includes('latest')
|
|
56
|
+
? ['latest', ...versions.filter(v => v !== 'latest').sort().reverse()]
|
|
57
|
+
: versions.sort().reverse();
|
|
58
|
+
for (const v of ordered) {
|
|
59
|
+
result.push(join(pluginDir, v, 'bin', name));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
/** Ordered list of filesystem paths to probe for `name`. Pure. */
|
|
65
|
+
export function wellKnownBinPaths(name, home, extras = []) {
|
|
66
|
+
return [
|
|
67
|
+
...extras,
|
|
42
68
|
`/usr/local/bin/${name}`,
|
|
43
69
|
`/opt/homebrew/bin/${name}`,
|
|
44
70
|
`${home}/.local/bin/${name}`,
|
|
45
71
|
`${home}/.nvm/current/bin/${name}`,
|
|
46
72
|
...nvmVersionBins(home, name),
|
|
73
|
+
...miseVersionBins(home, name),
|
|
47
74
|
];
|
|
48
|
-
|
|
75
|
+
}
|
|
76
|
+
function shellLookup(shell, flags, name, timeoutMs) {
|
|
77
|
+
try {
|
|
78
|
+
const p = execSync(`${shell} ${flags} 'command -v ${name}'`, {
|
|
79
|
+
encoding: 'utf8',
|
|
80
|
+
timeout: timeoutMs,
|
|
81
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
82
|
+
}).trim();
|
|
83
|
+
return p || null;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export function resolveSystemBinary(name, extraSearchPaths = []) {
|
|
90
|
+
// 1. Current process PATH — fast path for terminal-launched contexts
|
|
91
|
+
try {
|
|
92
|
+
const p = execSync(`command -v ${name}`, { encoding: 'utf8', timeout: 3000, stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
93
|
+
if (p)
|
|
94
|
+
return p;
|
|
95
|
+
}
|
|
96
|
+
catch { }
|
|
97
|
+
// 2. User's login+interactive shell — covers mise/asdf/fnm activated in .zshrc/.bashrc
|
|
98
|
+
const userShell = process.env['SHELL'];
|
|
99
|
+
if (userShell) {
|
|
100
|
+
const p = shellLookup(userShell, '-ilc', name, 5000);
|
|
101
|
+
if (p)
|
|
102
|
+
return p;
|
|
103
|
+
}
|
|
104
|
+
// 3. Bash fallback — in case SHELL is unset or the user's shell is broken
|
|
105
|
+
if (!userShell || !userShell.endsWith('bash')) {
|
|
106
|
+
const p = shellLookup('bash', '-lc', name, 5000);
|
|
107
|
+
if (p)
|
|
108
|
+
return p;
|
|
109
|
+
}
|
|
110
|
+
// 4. Well-known install locations
|
|
111
|
+
for (const p of wellKnownBinPaths(name, homedir(), extraSearchPaths)) {
|
|
49
112
|
if (existsSync(p))
|
|
50
113
|
return p;
|
|
51
114
|
}
|
|
@@ -63,4 +126,96 @@ export function cachedResolve(name, extras = []) {
|
|
|
63
126
|
export function clearResolveCache(name) {
|
|
64
127
|
delete resolvedPaths[name];
|
|
65
128
|
}
|
|
129
|
+
// ── Async API ─────────────────────────────────────────────────────────────
|
|
130
|
+
// The sync variants above use execSync('<shell> -ilc ...') which spawns a
|
|
131
|
+
// fresh interactive login shell and can take seconds when the user's
|
|
132
|
+
// .zshrc is heavy. Awaiting calls to those from the Electron main process
|
|
133
|
+
// stalls the event loop and produces a launch beachball. Async callers
|
|
134
|
+
// should prefer this set: it both removes the main-thread block and lets
|
|
135
|
+
// independent resolves run concurrently via Promise.all.
|
|
136
|
+
//
|
|
137
|
+
// Tries cheaper sources first — process PATH, then well-known install
|
|
138
|
+
// locations (which catch homebrew, ~/.local/bin, nvm and mise shims via
|
|
139
|
+
// straight filesystem checks) — and only falls back to the slow
|
|
140
|
+
// interactive-shell lookup when nothing else turned up. Empirically the
|
|
141
|
+
// well-known paths cover almost every install on macOS, so the slow path
|
|
142
|
+
// is reserved for users whose binaries genuinely only exist behind a
|
|
143
|
+
// shell-activated alias or function.
|
|
144
|
+
async function shellLookupAsync(shell, flags, name, timeoutMs) {
|
|
145
|
+
try {
|
|
146
|
+
const { stdout } = await execAsync(`${shell} ${flags} 'command -v ${name}'`, {
|
|
147
|
+
encoding: 'utf8',
|
|
148
|
+
timeout: timeoutMs,
|
|
149
|
+
});
|
|
150
|
+
const p = stdout.trim();
|
|
151
|
+
return p || null;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
export async function resolveSystemBinaryAsync(name, extraSearchPaths = []) {
|
|
158
|
+
// 1. Current process PATH — fastest, covers terminal-launched contexts
|
|
159
|
+
try {
|
|
160
|
+
const { stdout } = await execAsync(`command -v ${name}`, { encoding: 'utf8', timeout: 3000 });
|
|
161
|
+
const p = stdout.trim();
|
|
162
|
+
if (p)
|
|
163
|
+
return p;
|
|
164
|
+
}
|
|
165
|
+
catch { }
|
|
166
|
+
// 2. Well-known install locations — pure filesystem probes, no shell exec.
|
|
167
|
+
// Covers homebrew, ~/.local/bin, nvm versions, and mise installs/shims.
|
|
168
|
+
for (const p of wellKnownBinPaths(name, homedir(), extraSearchPaths)) {
|
|
169
|
+
if (existsSync(p))
|
|
170
|
+
return p;
|
|
171
|
+
}
|
|
172
|
+
// 3. User's login+interactive shell — last because each spawn pays for
|
|
173
|
+
// the user's full shell init (mise/asdf/fnm activation, .zshrc).
|
|
174
|
+
const userShell = process.env['SHELL'];
|
|
175
|
+
if (userShell) {
|
|
176
|
+
const p = await shellLookupAsync(userShell, '-ilc', name, 5000);
|
|
177
|
+
if (p)
|
|
178
|
+
return p;
|
|
179
|
+
}
|
|
180
|
+
// 4. Bash fallback — for shell=unset or broken-zsh scenarios.
|
|
181
|
+
if (!userShell || !userShell.endsWith('bash')) {
|
|
182
|
+
const p = await shellLookupAsync('bash', '-lc', name, 5000);
|
|
183
|
+
if (p)
|
|
184
|
+
return p;
|
|
185
|
+
}
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
/** Async equivalent of `cachedResolve`. Shares the same in-memory cache as
|
|
189
|
+
* the sync version, so once either resolves a binary the other returns
|
|
190
|
+
* it instantly. Path validation: cached entries are verified with a
|
|
191
|
+
* filesystem check before being returned, so a brew upgrade or manual
|
|
192
|
+
* removal triggers a re-resolve instead of leaking a stale path. */
|
|
193
|
+
export async function cachedResolveAsync(name, extras = []) {
|
|
194
|
+
if (name in resolvedPaths) {
|
|
195
|
+
const cached = resolvedPaths[name] ?? null;
|
|
196
|
+
if (cached === null)
|
|
197
|
+
return null;
|
|
198
|
+
if (existsSync(cached))
|
|
199
|
+
return cached;
|
|
200
|
+
// Path went away — fall through to a fresh resolve.
|
|
201
|
+
delete resolvedPaths[name];
|
|
202
|
+
}
|
|
203
|
+
const p = await resolveSystemBinaryAsync(name, extras);
|
|
204
|
+
resolvedPaths[name] = p;
|
|
205
|
+
return p;
|
|
206
|
+
}
|
|
207
|
+
/** Bulk-populate the in-memory cache from an external store (e.g. a JSON
|
|
208
|
+
* file persisted across app launches). Entries already present are left
|
|
209
|
+
* alone so a live resolve doesn't get overwritten by stale disk data. */
|
|
210
|
+
export function hydrateResolveCache(entries) {
|
|
211
|
+
for (const [name, path] of Object.entries(entries)) {
|
|
212
|
+
if (!(name in resolvedPaths))
|
|
213
|
+
resolvedPaths[name] = path;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/** Snapshot the current cache for persistence. Returns only completed
|
|
217
|
+
* entries (resolved or definitively unresolved) — no in-flight requests. */
|
|
218
|
+
export function getResolveCacheSnapshot() {
|
|
219
|
+
return { ...resolvedPaths };
|
|
220
|
+
}
|
|
66
221
|
//# sourceMappingURL=resolve-bin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-bin.js","sourceRoot":"","sources":["../../src/util/resolve-bin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"resolve-bin.js","sourceRoot":"","sources":["../../src/util/resolve-bin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spool-lab/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,9 +18,18 @@
|
|
|
18
18
|
"access": "public"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"
|
|
21
|
+
"@effect/opentelemetry": "^0.63.0",
|
|
22
|
+
"@opentelemetry/api": "^1.9.1",
|
|
23
|
+
"@opentelemetry/resources": "^2.7.1",
|
|
24
|
+
"@opentelemetry/sdk-trace-base": "^2.7.1",
|
|
25
|
+
"@opentelemetry/sdk-trace-node": "^2.7.1",
|
|
26
|
+
"@opentelemetry/semantic-conventions": "^1.41.1",
|
|
27
|
+
"better-sqlite3": "^11.10.0",
|
|
28
|
+
"effect": "^3.21.2",
|
|
29
|
+
"@spool-lab/redact": "0.0.1"
|
|
22
30
|
},
|
|
23
31
|
"devDependencies": {
|
|
32
|
+
"@effect/vitest": "^0.29.0",
|
|
24
33
|
"@types/better-sqlite3": "^7.6.13",
|
|
25
34
|
"@types/node": "^22.19.17",
|
|
26
35
|
"vitest": "^3.2.4"
|