diff --git a/integ/browser-tests/package.json b/integ/browser-tests/package.json index cac11f7a..c326bf6f 100644 --- a/integ/browser-tests/package.json +++ b/integ/browser-tests/package.json @@ -25,15 +25,15 @@ "devDependencies": { "@nodelib/fs.walk": "^2.0.0", "@types/webpack": "^5.28.5", - "@zenfs/core": "0.16.3", - "@zenfs/dom": "0.2.14", + "@zenfs/core": "1.0.2", + "@zenfs/dom": "0.2.16", "fork-ts-checker-webpack-plugin": "^9.0.2", "html-webpack-plugin": "^5.6.0", - "puppeteer": "^23.4.0", + "puppeteer": "^23.5.0", "ts-loader": "^9.5.1", "tslib": "^2.7.0", "type-fest": "^4.26.1", - "webpack": "^5.94.0", + "webpack": "^5.95.0", "webpack-cli": "^5.1.4", "webpack-dev-server": "^5.1.0" } diff --git a/integ/browser-tests/tests/segmented-object/browser.ts b/integ/browser-tests/tests/segmented-object/browser.ts index c13d4982..8188efbb 100644 --- a/integ/browser-tests/tests/segmented-object/browser.ts +++ b/integ/browser-tests/tests/segmented-object/browser.ts @@ -42,7 +42,7 @@ window.testZenFS = async (payloadHex): Promise => { await zenfsConfigure({ mounts: { "/W": { - backend: WebAccess, + backend: WebAccess as any, // https://github.com/zen-fs/dom/issues/18 handle: root, }, }, diff --git a/mk/tsconfig-base.json b/mk/tsconfig-base.json index 8d984209..c5f1e7fc 100644 --- a/mk/tsconfig-base.json +++ b/mk/tsconfig-base.json @@ -6,7 +6,7 @@ "experimentalDecorators": true, "forceConsistentCasingInFileNames": true, "importHelpers": true, - "lib": ["DOM", "ES2023", "ESNext.Promise"], + "lib": ["DOM", "ES2023", "ESNext.Decorators", "ESNext.Promise"], "module": "ES2022", "moduleResolution": "Node", "noEmitOnError": true, diff --git a/package.json b/package.json index be206262..c0889164 100644 --- a/package.json +++ b/package.json @@ -13,18 +13,18 @@ "test": "vitest", "typedoc": "bash mk/typedoc.sh" }, - "packageManager": "pnpm@9.11.0+sha512.0a203ffaed5a3f63242cd064c8fb5892366c103e328079318f78062f24ea8c9d50bc6a47aa3567cabefd824d170e78fa2745ed1f16b132e16436146b7688f19b", + "packageManager": "pnpm@9.12.0+sha512.4abf725084d7bcbafbd728bfc7bee61f2f791f977fd87542b3579dcb23504d170d46337945e4c66485cd12d588a0c0e570ed9c477e7ccdd8507cf05f3f92eaca", "devDependencies": { - "@types/node": "^20.16.5", + "@types/node": "^20.16.10", "@types/wtfnode": "^0.7.3", - "@typescript/lib-dom": "npm:@types/web@0.0.163", - "@vitest/coverage-v8": "^2.1.1", + "@typescript/lib-dom": "npm:@types/web@0.0.169", + "@vitest/coverage-v8": "^2.1.2", "@yoursunny/xo-config": "0.58.0", "codedown": "^3.2.0", "tslib": "^2.7.0", - "typedoc": "^0.26.7", + "typedoc": "^0.26.8", "typescript": "~5.5.4", - "vitest": "^2.1.1" + "vitest": "^2.1.2" }, "engines": { "node": "^20.12.0 || ^22.0.0" diff --git a/pkg/fileserver/package.json b/pkg/fileserver/package.json index 139682e2..2f28b80c 100644 --- a/pkg/fileserver/package.json +++ b/pkg/fileserver/package.json @@ -32,7 +32,7 @@ "@ndn/segmented-object": "workspace:*", "@ndn/tlv": "workspace:*", "@ndn/util": "workspace:*", - "@zenfs/core": "0.16.3", + "@zenfs/core": "1.0.2", "mnemonist": "^0.39.8", "obliterator": "^2.0.4", "streaming-iterables": "^8.0.1", diff --git a/pkg/fileserver/src/zenfs.ts b/pkg/fileserver/src/zenfs.ts index 5158f22e..849cbd3a 100644 --- a/pkg/fileserver/src/zenfs.ts +++ b/pkg/fileserver/src/zenfs.ts @@ -73,7 +73,7 @@ export class NDNFileSystem extends Async(Readonly(FileSystem)) { throw new ErrnoError(Errno.EPERM, path); } const m = await this.getFileMetadata(path); - return new NDNFile(path, this.client, m); + return new NDNFile(this, path, this.client, m); } } export namespace NDNFileSystem { @@ -85,11 +85,12 @@ export namespace NDNFileSystem { class NDNFile extends File { constructor( - public override readonly path: string, + fs: NDNFileSystem, + path: string, private readonly client: Client, private readonly m: FileMetadata, ) { - super(); + super(fs, path); } public override position = 0; diff --git a/pkg/segmented-object/package.json b/pkg/segmented-object/package.json index 4c1e4e3c..525a8893 100644 --- a/pkg/segmented-object/package.json +++ b/pkg/segmented-object/package.json @@ -31,7 +31,7 @@ "@ndn/naming-convention2": "workspace:*", "@ndn/packet": "workspace:*", "@ndn/util": "workspace:*", - "@zenfs/core": "0.16.3", + "@zenfs/core": "1.0.2", "it-keepalive": "^1.2.0", "mnemonist": "^0.39.8", "obliterator": "^2.0.4", diff --git a/pkg/segmented-object/src/serve/chunk-source/file.ts b/pkg/segmented-object/src/serve/chunk-source/file.ts index f4cd089e..03c96bce 100644 --- a/pkg/segmented-object/src/serve/chunk-source/file.ts +++ b/pkg/segmented-object/src/serve/chunk-source/file.ts @@ -65,7 +65,7 @@ export namespace FileChunkSource { * * @remarks * - Set `true` to use ZenFS, which is a cross-platform virtual filesystem independent from - * the underlying operating system. This is the default in browser environment. + * the underlying operating system. This is the only choice in browser environment. * - Set `false` to use Node.js native filesystem. This is the default in Node.js. */ zenfs?: boolean;