@lobu/connector-sdk 10.2.0 → 11.1.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/dist/browser/mirror-cookies.d.ts.map +1 -1
- package/dist/browser/mirror-cookies.js +2 -3
- package/dist/browser/mirror-cookies.js.map +1 -1
- package/dist/connector-runtime.d.ts +9 -1
- package/dist/connector-runtime.d.ts.map +1 -1
- package/dist/connector-runtime.js +11 -0
- package/dist/connector-runtime.js.map +1 -1
- package/dist/connector-types.d.ts +43 -0
- package/dist/connector-types.d.ts.map +1 -1
- package/dist/define-connector.d.ts +7 -1
- package/dist/define-connector.d.ts.map +1 -1
- package/dist/define-connector.js +6 -0
- package/dist/define-connector.js.map +1 -1
- package/dist/extension-dom-scrape.d.ts +76 -0
- package/dist/extension-dom-scrape.d.ts.map +1 -0
- package/dist/extension-dom-scrape.js +25 -0
- package/dist/extension-dom-scrape.js.map +1 -0
- package/dist/extension-network.d.ts +142 -0
- package/dist/extension-network.d.ts.map +1 -0
- package/dist/extension-network.js +178 -0
- package/dist/extension-network.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/scoring.d.ts.map +1 -1
- package/dist/scoring.js +11 -14
- package/dist/scoring.js.map +1 -1
- package/dist/sources/cache.d.ts +23 -0
- package/dist/sources/cache.d.ts.map +1 -1
- package/dist/sources/cache.js +78 -1
- package/dist/sources/cache.js.map +1 -1
- package/dist/sources/git-file-source.js +2 -5
- package/dist/sources/git-file-source.js.map +1 -1
- package/dist/sources/git-http.d.ts.map +1 -1
- package/dist/sources/git-http.js +0 -4
- package/dist/sources/git-http.js.map +1 -1
- package/dist/sources/local-file-source.d.ts.map +1 -1
- package/dist/sources/local-file-source.js +3 -98
- package/dist/sources/local-file-source.js.map +1 -1
- package/dist/sources/resolver.d.ts.map +1 -1
- package/dist/sources/resolver.js +5 -11
- package/dist/sources/resolver.js.map +1 -1
- package/dist/sources/tarball-file-source.d.ts.map +1 -1
- package/dist/sources/tarball-file-source.js +4 -77
- package/dist/sources/tarball-file-source.js.map +1 -1
- package/dist/types.d.ts +1 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
*/
|
|
22
22
|
import { createReadStream, createWriteStream } from 'node:fs';
|
|
23
23
|
import { createHash, randomBytes } from 'node:crypto';
|
|
24
|
-
import { mkdir, readFile,
|
|
24
|
+
import { mkdir, readFile, realpath, rename, rm, stat, } from 'node:fs/promises';
|
|
25
25
|
import { pipeline } from 'node:stream/promises';
|
|
26
26
|
import { fileURLToPath } from 'node:url';
|
|
27
27
|
import { dirname, join, relative, sep } from 'node:path';
|
|
28
|
-
import { canonicalManifestRef, cachePathsFor, defaultCacheRoot, diffManifests, readAndVerifyMeta,
|
|
28
|
+
import { MAX_REF_DIRS, canonicalManifestRef, cachePathsFor, defaultCacheRoot, diffManifests, dirExists, pruneOldRefDirs, readAndVerifyMeta, readPerRefManifest, requireMeta, withSourceLock, writeManifest, writeMeta, writePerRefManifest, } from './cache.js';
|
|
29
29
|
import { walkDirectoryRelative } from './glob.js';
|
|
30
30
|
import { DirectorySnapshot } from './snapshot.js';
|
|
31
31
|
export class LocalFileSource {
|
|
@@ -132,7 +132,7 @@ export class LocalFileSource {
|
|
|
132
132
|
// where its mtime is older than newer entries — pruning it would
|
|
133
133
|
// ENOENT the Snapshot we just handed back. Mirrors the
|
|
134
134
|
// `protectedRefDir` argument tarball-file-source.ts already uses.
|
|
135
|
-
await pruneOldRefDirs(this.#paths.root, MAX_REF_DIRS, refDir);
|
|
135
|
+
await pruneOldRefDirs(this.#paths.root, MAX_REF_DIRS, refDir, (n) => /^[a-f0-9]{64}$/.test(n));
|
|
136
136
|
return new DirectorySnapshot(refDir, ref);
|
|
137
137
|
});
|
|
138
138
|
}
|
|
@@ -188,12 +188,6 @@ async function resolveCacheExclude(sourceRoot) {
|
|
|
188
188
|
function perRefDir(root, ref) {
|
|
189
189
|
return join(root, 'refs', ref);
|
|
190
190
|
}
|
|
191
|
-
async function dirExists(p) {
|
|
192
|
-
const s = await stat(p).catch(() => null);
|
|
193
|
-
return !!s && s.isDirectory();
|
|
194
|
-
}
|
|
195
|
-
/** Max number of `refs/<hash>` per-ref directories kept on disk. */
|
|
196
|
-
const MAX_REF_DIRS = 3;
|
|
197
191
|
/** List relative paths from the source root, applying the exclude predicate. */
|
|
198
192
|
async function listRelativeFiles(rootDir, exclude) {
|
|
199
193
|
const out = [];
|
|
@@ -251,93 +245,4 @@ async function collectFilesFromLive(rootDir, exclude) {
|
|
|
251
245
|
}
|
|
252
246
|
return out;
|
|
253
247
|
}
|
|
254
|
-
/**
|
|
255
|
-
* Keep at most `keep` per-ref directories under `${root}/refs/`. Sorted by
|
|
256
|
-
* mtime descending; the oldest are rm-rf'd. `protectedRefDir` is always
|
|
257
|
-
* preserved regardless of mtime — the cache-hit branch in fetch() returns
|
|
258
|
-
* an existing dir whose mtime may be older than newer entries, and the
|
|
259
|
-
* Snapshot we just handed back is reading from it. Pre-this-guard, the
|
|
260
|
-
* mtime sort happily pruned exactly the dir the caller was about to read,
|
|
261
|
-
* leaving the Snapshot pointing at an ENOENT. Matches the
|
|
262
|
-
* `protectedRefDir` parameter tarball-file-source.ts already uses
|
|
263
|
-
* (lines 137 + 228-273).
|
|
264
|
-
*
|
|
265
|
-
* Snapshots already handed out keep working as long as their backing
|
|
266
|
-
* dir wasn't pruned — `keep=3` accommodates a fresh fetch plus two
|
|
267
|
-
* in-flight overlapping syncs.
|
|
268
|
-
*
|
|
269
|
-
* Filters by name shape (64-hex sha256). Skips in-flight staging dirs
|
|
270
|
-
* (32-hex random names co-located in `refs/`) AND any legacy `.staging.*`
|
|
271
|
-
* directories from older builds. Per-ref manifest JSON files
|
|
272
|
-
* (`<ref>.json`) are files, not directories, and are kept indefinitely
|
|
273
|
-
* so historical diffs work even after the data dir is gone.
|
|
274
|
-
*
|
|
275
|
-
* v1 limitation: this prune is process-local (`withSourceLock` is an
|
|
276
|
-
* in-memory mutex). Two processes sharing the same
|
|
277
|
-
* `${WORKSPACE_DIR}/.lobu-cache` can race-prune each other's per-ref
|
|
278
|
-
* dirs — including the one a peer's Snapshot is reading. v1 supports
|
|
279
|
-
* one cache owner per workspace; multi-process sharing would need a
|
|
280
|
-
* filesystem advisory lock around fetch+prune.
|
|
281
|
-
*/
|
|
282
|
-
async function pruneOldRefDirs(root, keep, protectedRefDir) {
|
|
283
|
-
const refsRoot = join(root, 'refs');
|
|
284
|
-
let entries;
|
|
285
|
-
try {
|
|
286
|
-
entries = await readdir(refsRoot, { withFileTypes: true });
|
|
287
|
-
}
|
|
288
|
-
catch (err) {
|
|
289
|
-
if (err.code === 'ENOENT')
|
|
290
|
-
return;
|
|
291
|
-
throw err;
|
|
292
|
-
}
|
|
293
|
-
const candidates = [];
|
|
294
|
-
for (const ent of entries) {
|
|
295
|
-
if (!ent.isDirectory())
|
|
296
|
-
continue;
|
|
297
|
-
// Only touch completed per-ref dirs (64-hex sha256). In-flight staging
|
|
298
|
-
// dirs use a 32-hex randomBytes name and must not be pruned.
|
|
299
|
-
if (!/^[a-f0-9]{64}$/.test(ent.name))
|
|
300
|
-
continue;
|
|
301
|
-
const abs = join(refsRoot, ent.name);
|
|
302
|
-
try {
|
|
303
|
-
const s = await stat(abs);
|
|
304
|
-
candidates.push({
|
|
305
|
-
name: ent.name,
|
|
306
|
-
abs,
|
|
307
|
-
mtimeMs: s.mtimeMs,
|
|
308
|
-
protected: abs === protectedRefDir,
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
catch {
|
|
312
|
-
// Skip — concurrent prune from another process is fine.
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
if (candidates.length <= keep)
|
|
316
|
-
return;
|
|
317
|
-
const protectedDirs = candidates.filter((c) => c.protected);
|
|
318
|
-
const others = candidates
|
|
319
|
-
.filter((c) => !c.protected)
|
|
320
|
-
.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
321
|
-
const keepers = new Set([
|
|
322
|
-
...protectedDirs.map((c) => c.name),
|
|
323
|
-
...others.slice(0, Math.max(0, keep - protectedDirs.length)).map((c) => c.name),
|
|
324
|
-
]);
|
|
325
|
-
for (const c of candidates) {
|
|
326
|
-
if (keepers.has(c.name))
|
|
327
|
-
continue;
|
|
328
|
-
await rm(c.abs, { recursive: true, force: true }).catch(() => undefined);
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* Per-ref manifest storage under `<root>/refs/<ref>.json`. Lets a connector
|
|
333
|
-
* keep checkpointing arbitrary `prevRef`s without us guessing.
|
|
334
|
-
*/
|
|
335
|
-
async function writePerRefManifest(root, manifest) {
|
|
336
|
-
const { mkdir } = await import('node:fs/promises');
|
|
337
|
-
await mkdir(join(root, 'refs'), { recursive: true });
|
|
338
|
-
await writeManifest(join(root, 'refs', `${manifest.ref}.json`), manifest);
|
|
339
|
-
}
|
|
340
|
-
async function readPerRefManifest(root, ref) {
|
|
341
|
-
return readManifest(join(root, 'refs', `${ref}.json`));
|
|
342
|
-
}
|
|
343
248
|
//# sourceMappingURL=local-file-source.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-file-source.js","sourceRoot":"","sources":["../../src/sources/local-file-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,KAAK,EACL,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"local-file-source.js","sourceRoot":"","sources":["../../src/sources/local-file-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/sources/resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/sources/resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAqDxD"}
|
package/dist/sources/resolver.js
CHANGED
|
@@ -32,16 +32,10 @@ export function resolveUri(uri) {
|
|
|
32
32
|
if (uri.startsWith('http://')) {
|
|
33
33
|
throw new Error(`Unsupported scheme: http://. Plaintext tarball fetch is rejected; use https://.`);
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
throw new Error(`Scheme ${scheme} is reserved for a future implementation and not supported ` +
|
|
41
|
-
`in v1 of FileSystemSource.`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
throw new Error(`Unsupported FileSystemSource URI: ${uri}. ` +
|
|
45
|
-
`Expected git+https://…, https://…tar.gz, or file:///…`);
|
|
35
|
+
const futurePrefixes = ['s3://', 'gs://', 'azure://', 'gcs://', 'r2://'];
|
|
36
|
+
const futureMatch = futurePrefixes.find((p) => uri.startsWith(p));
|
|
37
|
+
throw new Error(futureMatch
|
|
38
|
+
? `Scheme ${futureMatch} is reserved for a future implementation and not supported in v1 of FileSystemSource.`
|
|
39
|
+
: `Unsupported FileSystemSource URI: ${uri}. Expected git+https://…, https://…tar.gz, or file:///…`);
|
|
46
40
|
}
|
|
47
41
|
//# sourceMappingURL=resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/sources/resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,wDAAwD;IACxD,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uCAAuC;YAC/E,gFAAgF,CACnF,CAAC;IACJ,CAAC;IAED,uDAAuD;IACvD,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,iEAAiE;QACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QACzD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0BAA0B,GAAG,4CAA4C;YACvE,qCAAqC,CACxC,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/sources/resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,wDAAwD;IACxD,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,uBAAuB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uCAAuC;YAC/E,gFAAgF,CACnF,CAAC;IACJ,CAAC;IAED,uDAAuD;IACvD,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,iEAAiE;QACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QACzD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0BAA0B,GAAG,4CAA4C;YACvE,qCAAqC,CACxC,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,IAAI,KAAK,CACb,WAAW;QACT,CAAC,CAAC,UAAU,WAAW,uFAAuF;QAC9G,CAAC,CAAC,qCAAqC,GAAG,yDAAyD,CACtG,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarball-file-source.d.ts","sourceRoot":"","sources":["../../src/sources/tarball-file-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tarball-file-source.d.ts","sourceRoot":"","sources":["../../src/sources/tarball-file-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAuB/E,MAAM,WAAW,wBAAwB;IACvC,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,iBAAkB,YAAW,gBAAgB;;gBAK5C,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,wBAA6B;IAgB5D,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC;IA4EpB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CA2BxD"}
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { createHash } from 'node:crypto';
|
|
18
18
|
import { createWriteStream } from 'node:fs';
|
|
19
|
-
import { mkdir, mkdtemp, readFile,
|
|
19
|
+
import { mkdir, mkdtemp, readFile, rename, rm, stat } from 'node:fs/promises';
|
|
20
20
|
import { tmpdir } from 'node:os';
|
|
21
21
|
import { join } from 'node:path';
|
|
22
22
|
import { Readable } from 'node:stream';
|
|
23
23
|
import { pipeline } from 'node:stream/promises';
|
|
24
24
|
import { x as tarExtract } from 'tar';
|
|
25
|
-
import { canonicalManifestRef, cachePathsFor, diffManifests, readAndVerifyMeta, readManifest, requireMeta, withSourceLock, writeManifest, writeMeta, } from './cache.js';
|
|
25
|
+
import { MAX_REF_DIRS, canonicalManifestRef, cachePathsFor, diffManifests, dirExists, pruneOldRefDirs, readAndVerifyMeta, readManifest, readPerRefManifest, requireMeta, withSourceLock, writeManifest, writeMeta, writePerRefManifest, } from './cache.js';
|
|
26
26
|
import { walkDirectoryRelative } from './glob.js';
|
|
27
27
|
import { DirectorySnapshot } from './snapshot.js';
|
|
28
28
|
export class TarballFileSource {
|
|
@@ -63,7 +63,6 @@ export class TarballFileSource {
|
|
|
63
63
|
if (!res.body) {
|
|
64
64
|
throw new Error(`TarballFileSource: GET ${this.#uri} returned an empty body`);
|
|
65
65
|
}
|
|
66
|
-
void res.headers.get('content-type');
|
|
67
66
|
const nodeBody = Readable.fromWeb(res.body);
|
|
68
67
|
await pipeline(nodeBody, createWriteStream(tarPath));
|
|
69
68
|
await mkdir(stagingDir, { recursive: true });
|
|
@@ -102,7 +101,7 @@ export class TarballFileSource {
|
|
|
102
101
|
await writePerRefManifest(this.#paths.root, manifest);
|
|
103
102
|
// Keep cache size bounded. We always preserve the freshly-installed
|
|
104
103
|
// ref dir, so the just-returned Snapshot is safe.
|
|
105
|
-
await pruneOldRefDirs(this.#paths.root, MAX_REF_DIRS, refDir);
|
|
104
|
+
await pruneOldRefDirs(this.#paths.root, MAX_REF_DIRS, refDir, IS_REF_DIR);
|
|
106
105
|
// Snapshot reads from the immutable per-ref dir — never overwritten.
|
|
107
106
|
return new DirectorySnapshot(refDir, ref);
|
|
108
107
|
}
|
|
@@ -143,10 +142,6 @@ export class TarballFileSource {
|
|
|
143
142
|
function perRefSnapshotDir(root, ref) {
|
|
144
143
|
return join(root, 'refs', ref);
|
|
145
144
|
}
|
|
146
|
-
async function dirExists(p) {
|
|
147
|
-
const s = await stat(p).catch(() => null);
|
|
148
|
-
return !!s && s.isDirectory();
|
|
149
|
-
}
|
|
150
145
|
async function collectFiles(rootDir) {
|
|
151
146
|
const out = [];
|
|
152
147
|
// Ensure dir exists; a 0-file archive should produce an empty manifest, not throw.
|
|
@@ -164,75 +159,7 @@ async function collectFiles(rootDir) {
|
|
|
164
159
|
function randomSuffix() {
|
|
165
160
|
return Math.random().toString(36).slice(2, 10);
|
|
166
161
|
}
|
|
167
|
-
|
|
168
|
-
await mkdir(join(root, 'refs'), { recursive: true });
|
|
169
|
-
await writeManifest(join(root, 'refs', `${manifest.ref}.json`), manifest);
|
|
170
|
-
}
|
|
171
|
-
async function readPerRefManifest(root, ref) {
|
|
172
|
-
return readManifest(join(root, 'refs', `${ref}.json`));
|
|
173
|
-
}
|
|
174
|
-
/** Max number of `refs/<hash>` per-ref directories kept on disk. */
|
|
175
|
-
const MAX_REF_DIRS = 3;
|
|
176
|
-
/**
|
|
177
|
-
* Keep at most `keep` per-ref directories under `${root}/refs/`. Sorted by
|
|
178
|
-
* mtime descending; the oldest are rm-rf'd. The current ref (the one we
|
|
179
|
-
* just installed and are about to hand a Snapshot for) is always
|
|
180
|
-
* preserved, even if its mtime happens to be older than another dir's
|
|
181
|
-
* (e.g. a cache-hit branch that didn't touch the dir).
|
|
182
|
-
*
|
|
183
|
-
* Ignores `snapshot.tmp.*` staging dirs and the per-ref manifest JSON
|
|
184
|
-
* files (`<ref>.json`) which are kept indefinitely so historical diffs
|
|
185
|
-
* keep working after a data dir is pruned.
|
|
186
|
-
*/
|
|
187
|
-
async function pruneOldRefDirs(root, keep, protectedRefDir) {
|
|
188
|
-
const refsRoot = join(root, 'refs');
|
|
189
|
-
let entries;
|
|
190
|
-
try {
|
|
191
|
-
entries = await readdir(refsRoot, { withFileTypes: true });
|
|
192
|
-
}
|
|
193
|
-
catch (err) {
|
|
194
|
-
if (err.code === 'ENOENT')
|
|
195
|
-
return;
|
|
196
|
-
throw err;
|
|
197
|
-
}
|
|
198
|
-
const candidates = [];
|
|
199
|
-
for (const ent of entries) {
|
|
200
|
-
if (!ent.isDirectory())
|
|
201
|
-
continue;
|
|
202
|
-
if (ent.name.startsWith('snapshot.tmp.'))
|
|
203
|
-
continue;
|
|
204
|
-
const abs = join(refsRoot, ent.name);
|
|
205
|
-
try {
|
|
206
|
-
const s = await stat(abs);
|
|
207
|
-
candidates.push({
|
|
208
|
-
name: ent.name,
|
|
209
|
-
abs,
|
|
210
|
-
mtimeMs: s.mtimeMs,
|
|
211
|
-
protected: abs === protectedRefDir,
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
catch {
|
|
215
|
-
// Skip — concurrent prune from another process is fine.
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (candidates.length <= keep)
|
|
219
|
-
return;
|
|
220
|
-
// Always-keep the protected (current) dir; sort the rest by mtime desc and
|
|
221
|
-
// keep the (keep - 1) most recent.
|
|
222
|
-
const protectedDirs = candidates.filter((c) => c.protected);
|
|
223
|
-
const others = candidates
|
|
224
|
-
.filter((c) => !c.protected)
|
|
225
|
-
.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
226
|
-
const keepers = new Set([
|
|
227
|
-
...protectedDirs.map((c) => c.name),
|
|
228
|
-
...others.slice(0, Math.max(0, keep - protectedDirs.length)).map((c) => c.name),
|
|
229
|
-
]);
|
|
230
|
-
for (const c of candidates) {
|
|
231
|
-
if (keepers.has(c.name))
|
|
232
|
-
continue;
|
|
233
|
-
await rm(c.abs, { recursive: true, force: true }).catch(() => undefined);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
162
|
+
const IS_REF_DIR = (name) => /^[a-f0-9]{64}$/.test(name);
|
|
236
163
|
const MAX_REDIRECTS = 5;
|
|
237
164
|
/**
|
|
238
165
|
* fetch() with manual redirect following + an https-only guard on every hop.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarball-file-source.js","sourceRoot":"","sources":["../../src/sources/tarball-file-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"tarball-file-source.js","sourceRoot":"","sources":["../../src/sources/tarball-file-source.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -11,17 +11,13 @@ export interface Env {
|
|
|
11
11
|
PUBLIC_LEGAL_URL?: string;
|
|
12
12
|
FRAME_ANCESTORS?: string;
|
|
13
13
|
LOBU_SINGLE_USER?: string;
|
|
14
|
+
LOBU_DB_EGRESS_POLICY?: string;
|
|
14
15
|
DEFAULT_SYNC_INTERVAL_MS?: string;
|
|
15
16
|
DEFAULT_SYNC_INTERVAL_HOURS?: string;
|
|
16
17
|
DEFAULT_SYNC_INTERVAL_X_MS?: string;
|
|
17
18
|
DEFAULT_SYNC_INTERVAL_REDDIT_MS?: string;
|
|
18
19
|
DEFAULT_SYNC_INTERVAL_GITHUB_MS?: string;
|
|
19
20
|
GITHUB_TOKEN?: string;
|
|
20
|
-
X_USERNAME?: string;
|
|
21
|
-
X_PASSWORD?: string;
|
|
22
|
-
X_EMAIL?: string;
|
|
23
|
-
X_2FA_SECRET?: string;
|
|
24
|
-
X_COOKIES?: string;
|
|
25
21
|
GOOGLE_MAPS_API_KEY?: string;
|
|
26
22
|
REDDIT_CLIENT_ID?: string;
|
|
27
23
|
REDDIT_CLIENT_SECRET?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,GAAG;IAElB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,GAAG;IAElB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAGzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAGhC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobu/connector-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.1.0",
|
|
4
4
|
"description": "Lobu memory SDK — build pluggable connectors for Lobu memory",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"clean": "rm -rf dist"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@lobu/core": "
|
|
51
|
+
"@lobu/core": "11.1.0",
|
|
52
52
|
"@sinclair/typebox": "^0.34.41",
|
|
53
53
|
"isomorphic-git": "^1.34.0",
|
|
54
54
|
"ky": "^1.14.0",
|