@zenfs/dom 1.2.4 → 1.2.6
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/COPYING.md +22 -0
- package/dist/IndexedDB.js +3 -1
- package/dist/access.js +6 -3
- package/dist/xml.js +1 -1
- package/package.json +2 -2
- package/tsconfig.json +7 -1
package/COPYING.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
_This document is supplemental to the license._
|
|
2
|
+
|
|
3
|
+
Feel free to reach out if you have any concerns regarding licensing. You can create a new discussion [here](https://github.com/orgs/zen-fs/discussions/new?category=q-a).
|
|
4
|
+
|
|
5
|
+
Regarding section 4(b) of version 3 of the LGPL, you are permitted to link to a copy of the LGPL and this document rather than including the full text of both.
|
|
6
|
+
|
|
7
|
+
#### Exception for web applications
|
|
8
|
+
|
|
9
|
+
You are permitted to convey the Combined Work without meeting the requirements of section 4(d) of version 3 of the LGPL if
|
|
10
|
+
|
|
11
|
+
- a) the Combined Work is only accessed by users from other computers over a network (i.e. a web application or website), and
|
|
12
|
+
- b) you also provide the [Corresponding Source](https://www.gnu.org/licenses/gpl-3.0.html#:~:text=“Corresponding%20Source”) of The Library or an offer thereof.
|
|
13
|
+
|
|
14
|
+
This exception does not excuse or waive any other requirement of the LGPL.
|
|
15
|
+
|
|
16
|
+
The practical goal of this exception is to allow ZenFS to be used in modern web apps. For the avoidance of doubt, you are permitted to bundle and minify ZenFS in a web application. Linking to ZenFS' GitHub or npm page is sufficient to satisfy the above section (b) provided you do not modify ZenFS.
|
|
17
|
+
|
|
18
|
+
For example, in a list of libraries you could have:
|
|
19
|
+
|
|
20
|
+
> - [@zenfs/dom](https://github.com/zen-fs/dom), Licensed under the [LGPL 3.0 or later](https://www.gnu.org/licenses/lgpl-3.0.html) and [COPYING.md](https://github.com/zen-fs/dom/blob/main/COPYING.md), Copyright © James Prevett and other ZenFS contributors
|
|
21
|
+
|
|
22
|
+
**This is a very easy requirement, please respect it.**
|
package/dist/IndexedDB.js
CHANGED
|
@@ -114,7 +114,9 @@ async function testAvailability(idbFactory) {
|
|
|
114
114
|
return false;
|
|
115
115
|
try {
|
|
116
116
|
const req = idbFactory.open('__zenfs_test');
|
|
117
|
-
await wrap(req);
|
|
117
|
+
const db = await wrap(req);
|
|
118
|
+
// Make sure the test db gets closed so that other zenfs instances in other workers don't get blocked
|
|
119
|
+
db.close();
|
|
118
120
|
return true;
|
|
119
121
|
}
|
|
120
122
|
catch {
|
package/dist/access.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { Async, constants, IndexFS, InMemory, Inode } from '@zenfs/core';
|
|
2
|
-
import { basename, dirname, join } from '@zenfs/core/path
|
|
2
|
+
import { basename, dirname, join } from '@zenfs/core/path';
|
|
3
3
|
import { log, withErrno } from 'kerium';
|
|
4
4
|
import { alert } from 'kerium/log';
|
|
5
5
|
import { _throw } from 'utilium';
|
|
6
6
|
import { convertException } from './utils.js';
|
|
7
|
+
function _isShared(buffer) {
|
|
8
|
+
return typeof buffer == 'object' && buffer !== null && buffer.constructor.name == 'SharedArrayBuffer';
|
|
9
|
+
}
|
|
7
10
|
function isResizable(buffer) {
|
|
8
11
|
if (buffer instanceof ArrayBuffer)
|
|
9
12
|
return buffer.resizable;
|
|
10
|
-
if (buffer
|
|
13
|
+
if (_isShared(buffer))
|
|
11
14
|
return buffer.growable;
|
|
12
15
|
return false;
|
|
13
16
|
}
|
|
@@ -137,7 +140,7 @@ export class WebAccessFS extends Async(IndexFS) {
|
|
|
137
140
|
buffer.set(new Uint8Array(data, offset, end - offset));
|
|
138
141
|
}
|
|
139
142
|
async write(path, buffer, offset) {
|
|
140
|
-
if (isResizable(buffer.buffer) || buffer.buffer
|
|
143
|
+
if (isResizable(buffer.buffer) || _isShared(buffer.buffer)) {
|
|
141
144
|
const newBuffer = new Uint8Array(new ArrayBuffer(buffer.byteLength), buffer.byteOffset, buffer.byteLength);
|
|
142
145
|
newBuffer.set(buffer);
|
|
143
146
|
buffer = newBuffer;
|
package/dist/xml.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { withErrno } from 'kerium';
|
|
2
2
|
import { _inode_fields, constants, FileSystem, Inode, Sync } from '@zenfs/core';
|
|
3
|
-
import { basename, dirname } from '@zenfs/core/path
|
|
3
|
+
import { basename, dirname } from '@zenfs/core/path';
|
|
4
4
|
import { decodeASCII, encodeASCII } from 'utilium';
|
|
5
5
|
function get_stats(node) {
|
|
6
6
|
const stats = {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenfs/dom",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.6",
|
|
4
4
|
"description": "DOM backends for ZenFS",
|
|
5
5
|
"funding": {
|
|
6
6
|
"type": "individual",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"format:check": "prettier --check .",
|
|
45
45
|
"lint": "eslint src",
|
|
46
46
|
"build": "tsc -p tsconfig.json",
|
|
47
|
-
"build:docs": "typedoc
|
|
47
|
+
"build:docs": "typedoc",
|
|
48
48
|
"test": "npx zenfs-test -abcf",
|
|
49
49
|
"prepublishOnly": "npm run build"
|
|
50
50
|
},
|
package/tsconfig.json
CHANGED
|
@@ -10,5 +10,11 @@
|
|
|
10
10
|
"verbatimModuleSyntax": true
|
|
11
11
|
},
|
|
12
12
|
"include": ["src/**/*"],
|
|
13
|
-
"exclude": ["node_modules"]
|
|
13
|
+
"exclude": ["node_modules"],
|
|
14
|
+
"typedocOptions": {
|
|
15
|
+
"entryPoints": ["./src/index.ts"],
|
|
16
|
+
"name": "ZenFS DOM",
|
|
17
|
+
"out": "docs",
|
|
18
|
+
"excludeReferences": true
|
|
19
|
+
}
|
|
14
20
|
}
|