opfs-worker 2.1.0 → 2.1.2
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 +51 -37
- package/dist/BaseOPFS-Bu7FZtCb.cjs +2 -0
- package/dist/BaseOPFS-Bu7FZtCb.cjs.map +1 -0
- package/dist/{BaseOPFS-Cylz6ijk.js → BaseOPFS-C3NE4BKr.js} +804 -484
- package/dist/BaseOPFS-C3NE4BKr.js.map +1 -0
- package/dist/OPFSAsync-C0RsxCX5.cjs +2 -0
- package/dist/OPFSAsync-C0RsxCX5.cjs.map +1 -0
- package/dist/{OPFSAsync-BKSAJJeh.js → OPFSAsync-aeLUdIqd.js} +19 -19
- package/dist/OPFSAsync-aeLUdIqd.js.map +1 -0
- package/dist/OPFSFacade-BJv2yuWU.cjs +2 -0
- package/dist/OPFSFacade-BJv2yuWU.cjs.map +1 -0
- package/dist/OPFSFacade-DiogtQoq.js +308 -0
- package/dist/OPFSFacade-DiogtQoq.js.map +1 -0
- package/dist/OPFSSync-3qlSBYmz.cjs +2 -0
- package/dist/OPFSSync-3qlSBYmz.cjs.map +1 -0
- package/dist/{OPFSSync-CsSQkpk5.js → OPFSSync-CvSOswhW.js} +57 -57
- package/dist/OPFSSync-CvSOswhW.js.map +1 -0
- package/dist/assets/dedicated.worker-Bqqr9UBA.js.map +1 -0
- package/dist/core/BaseOPFS.d.ts +60 -9
- package/dist/core/BaseOPFS.d.ts.map +1 -1
- package/dist/core/OPFSAsync.d.ts.map +1 -1
- package/dist/core/OPFSSync.d.ts.map +1 -1
- package/dist/createOPFSAsync-B611B63X.js +10 -0
- package/dist/{createOPFSAsync-Y4Mg6qte.js.map → createOPFSAsync-B611B63X.js.map} +1 -1
- package/dist/createOPFSAsync-BATjJg8k.cjs +2 -0
- package/dist/{createOPFSAsync-BwKDmHsy.cjs.map → createOPFSAsync-BATjJg8k.cjs.map} +1 -1
- package/dist/createOPFSDedicated-DgudPTB8.js +2676 -0
- package/dist/createOPFSDedicated-DgudPTB8.js.map +1 -0
- package/dist/createOPFSDedicated-EmIwluQo.cjs +2597 -0
- package/dist/createOPFSDedicated-EmIwluQo.cjs.map +1 -0
- package/dist/{createOPFSShared-CGdd__PH.js → createOPFSShared-BWYln8jJ.js} +2 -2
- package/dist/{createOPFSShared-CGdd__PH.js.map → createOPFSShared-BWYln8jJ.js.map} +1 -1
- package/dist/{createOPFSShared-CskROt7U.cjs → createOPFSShared-DPJpCd7z.cjs} +2 -2
- package/dist/{createOPFSShared-CskROt7U.cjs.map → createOPFSShared-DPJpCd7z.cjs.map} +1 -1
- package/dist/dedicated.worker.js +1104 -790
- package/dist/dedicated.worker.js.map +1 -1
- package/dist/facade/OPFSFacade.d.ts +21 -3
- package/dist/facade/OPFSFacade.d.ts.map +1 -1
- package/dist/facade/createOPFSDedicated.d.ts +4 -2
- package/dist/facade/createOPFSDedicated.d.ts.map +1 -1
- package/dist/index.async.cjs +1 -1
- package/dist/index.async.js +33 -32
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -43
- package/dist/index.pure.cjs +1 -1
- package/dist/index.pure.js +38 -37
- package/dist/index.sharedworker.cjs +1 -1
- package/dist/index.sharedworker.js +34 -33
- package/dist/index.sync.cjs +1 -1
- package/dist/index.sync.d.ts +2 -0
- package/dist/index.sync.d.ts.map +1 -1
- package/dist/index.sync.js +34 -32
- package/dist/shared.worker.js +1101 -791
- package/dist/shared.worker.js.map +1 -1
- package/dist/types.d.ts +38 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/helpers.d.ts +13 -3
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/worker/createDedicatedWorker.d.ts +8 -3
- package/dist/worker/createDedicatedWorker.d.ts.map +1 -1
- package/docs/README.md +13 -25
- package/docs/api/README.md +221 -0
- package/docs/api/file-descriptors.md +137 -0
- package/docs/guides/async.md +4 -4
- package/docs/guides/dedicated.md +10 -8
- package/docs/guides/hashing.md +3 -3
- package/docs/guides/pure.md +4 -4
- package/docs/guides/sharedworker.md +2 -2
- package/docs/guides/streaming.md +146 -12
- package/docs/guides/watching.md +3 -3
- package/docs/migration.md +10 -11
- package/docs/types.md +93 -155
- package/package.json +20 -9
- package/src/core/BaseOPFS.ts +194 -29
- package/src/core/OPFSAsync.ts +4 -5
- package/src/core/OPFSSync.ts +6 -7
- package/src/facade/OPFSFacade.ts +51 -4
- package/src/facade/createOPFSDedicated.ts +4 -2
- package/src/index.sync.ts +2 -0
- package/src/index.ts +1 -5
- package/src/types.ts +42 -3
- package/src/utils/helpers.ts +32 -6
- package/src/worker/createDedicatedWorker.ts +85 -7
- package/src/worker/dedicated.worker.ts +12 -1
- package/dist/BaseOPFS-BPw9AIQ-.cjs +0 -4
- package/dist/BaseOPFS-BPw9AIQ-.cjs.map +0 -1
- package/dist/BaseOPFS-Cylz6ijk.js.map +0 -1
- package/dist/OPFSAsync-BKSAJJeh.js.map +0 -1
- package/dist/OPFSAsync-s2P7y3sw.cjs +0 -2
- package/dist/OPFSAsync-s2P7y3sw.cjs.map +0 -1
- package/dist/OPFSFacade-DePnNRgt.cjs +0 -2
- package/dist/OPFSFacade-DePnNRgt.cjs.map +0 -1
- package/dist/OPFSFacade-XohWlHuu.js +0 -281
- package/dist/OPFSFacade-XohWlHuu.js.map +0 -1
- package/dist/OPFSSync-C7KBepe_.cjs +0 -2
- package/dist/OPFSSync-C7KBepe_.cjs.map +0 -1
- package/dist/OPFSSync-CsSQkpk5.js.map +0 -1
- package/dist/assets/dedicated.worker-nY3tK4zi.js.map +0 -1
- package/dist/createOPFSAsync-BwKDmHsy.cjs +0 -2
- package/dist/createOPFSAsync-Y4Mg6qte.js +0 -10
- package/dist/createOPFSDedicated-CsnV6MLP.js +0 -2333
- package/dist/createOPFSDedicated-CsnV6MLP.js.map +0 -1
- package/dist/createOPFSDedicated-pKTRWLdz.cjs +0 -2283
- package/dist/createOPFSDedicated-pKTRWLdz.cjs.map +0 -1
- package/docs/api/backend.md +0 -36
- package/docs/api/create.md +0 -82
- package/docs/api/facade.md +0 -52
- package/docs/choosing-a-mode.md +0 -41
- package/docs/file-descriptors.md +0 -695
package/docs/types.md
CHANGED
|
@@ -1,38 +1,22 @@
|
|
|
1
1
|
# Types
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Core Types
|
|
6
|
-
|
|
7
|
-
### `FileStat`
|
|
8
|
-
|
|
9
|
-
File or directory statistics.
|
|
3
|
+
## `FileStat`
|
|
10
4
|
|
|
11
5
|
```typescript
|
|
12
6
|
interface FileStat {
|
|
13
7
|
kind: 'file' | 'directory';
|
|
14
8
|
size: number;
|
|
15
|
-
mtime: string; // ISO
|
|
16
|
-
ctime: string; // ISO
|
|
9
|
+
mtime: string; // ISO
|
|
10
|
+
ctime: string; // ISO
|
|
17
11
|
isFile: boolean;
|
|
18
12
|
isDirectory: boolean;
|
|
19
|
-
hash?: string; //
|
|
13
|
+
hash?: string; // files only, when hashing is enabled
|
|
20
14
|
}
|
|
21
15
|
```
|
|
22
16
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- `kind`: Type of the file system entry
|
|
26
|
-
- `size`: Size in bytes (0 for directories)
|
|
27
|
-
- `mtime`: Last modification time as ISO string
|
|
28
|
-
- `ctime`: Creation time as ISO string
|
|
29
|
-
- `isFile`: True if this is a file
|
|
30
|
-
- `isDirectory`: True if this is a directory
|
|
31
|
-
- `hash`: Optional hash of file content (only present for files when hashing is enabled)
|
|
17
|
+
`size` is `0` for directories.
|
|
32
18
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Directory entry information.
|
|
19
|
+
## `DirentData`
|
|
36
20
|
|
|
37
21
|
```typescript
|
|
38
22
|
interface DirentData {
|
|
@@ -43,46 +27,61 @@ interface DirentData {
|
|
|
43
27
|
}
|
|
44
28
|
```
|
|
45
29
|
|
|
46
|
-
|
|
30
|
+
## `WatchOptions`
|
|
47
31
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
32
|
+
```typescript
|
|
33
|
+
interface WatchOptions {
|
|
34
|
+
recursive?: boolean; // default: true
|
|
35
|
+
include?: string | string[]; // minimatch, default: ['**']
|
|
36
|
+
exclude?: string | string[]; // minimatch, default: []
|
|
37
|
+
}
|
|
38
|
+
```
|
|
52
39
|
|
|
53
|
-
|
|
40
|
+
## `ImportFilesProgress`
|
|
54
41
|
|
|
55
|
-
|
|
42
|
+
Fired by `importFiles` / `onProgress` for each chunk written:
|
|
56
43
|
|
|
57
44
|
```typescript
|
|
58
|
-
interface
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
45
|
+
interface ImportFilesProgress {
|
|
46
|
+
path: string; // file currently being written
|
|
47
|
+
index: number; // 0-based
|
|
48
|
+
count: number; // total entries
|
|
49
|
+
bytesWritten: number; // within current file
|
|
50
|
+
bytesTotal: number; // size of current file
|
|
51
|
+
totalBytesWritten: number;
|
|
52
|
+
totalBytes: number; // sum of all entry sizes
|
|
62
53
|
}
|
|
63
54
|
```
|
|
64
55
|
|
|
65
|
-
|
|
56
|
+
## `ImportFilesResult`
|
|
57
|
+
|
|
58
|
+
Returned when `importFiles` finishes:
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
interface ImportFilesResult {
|
|
62
|
+
paths: string[]; // written paths, in order
|
|
63
|
+
count: number; // paths.length
|
|
64
|
+
bytesWritten: number; // total bytes across all files
|
|
65
|
+
}
|
|
66
|
+
```
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
- `include`: Glob patterns to include in watching (default: all files)
|
|
69
|
-
- `exclude`: Glob patterns to exclude from watching (default: none)
|
|
68
|
+
Entries accept `Iterable<[path, string | Uint8Array | Blob]>` or `Map<string, …>` — see [streaming](./guides/streaming.md).
|
|
70
69
|
|
|
71
|
-
|
|
70
|
+
## `OPFSApi`
|
|
72
71
|
|
|
73
|
-
|
|
72
|
+
Public bytes API shared by all backends — the public methods of `BaseOPFS` (subclasses `OPFSSync` / `OPFSAsync`, or a Comlink proxy). What `OPFSFacade` talks to via `fs.backend`.
|
|
74
73
|
|
|
75
74
|
```typescript
|
|
76
|
-
type OPFSApi =
|
|
75
|
+
type OPFSApi = Pick<BaseOPFS, keyof BaseOPFS>;
|
|
77
76
|
```
|
|
78
77
|
|
|
79
|
-
|
|
78
|
+
## `PathLike`
|
|
80
79
|
|
|
81
80
|
```typescript
|
|
82
81
|
type PathLike = string | URL;
|
|
83
82
|
```
|
|
84
83
|
|
|
85
|
-
|
|
84
|
+
## `FileOpenOptions`
|
|
86
85
|
|
|
87
86
|
```typescript
|
|
88
87
|
interface FileOpenOptions {
|
|
@@ -92,40 +91,26 @@ interface FileOpenOptions {
|
|
|
92
91
|
}
|
|
93
92
|
```
|
|
94
93
|
|
|
95
|
-
##
|
|
96
|
-
|
|
97
|
-
### `OPFSOptions`
|
|
98
|
-
|
|
99
|
-
Configuration for all backends. Human-readable table: [Create helpers → Options](./api/create.md#options).
|
|
94
|
+
## `OPFSOptions`
|
|
100
95
|
|
|
101
96
|
```typescript
|
|
102
97
|
interface OPFSOptions {
|
|
103
|
-
/** Root path
|
|
98
|
+
/** Root path (default: '/') */
|
|
104
99
|
root?: string;
|
|
105
|
-
/**
|
|
100
|
+
/** Event namespace (default: 'opfs-worker:${root}') */
|
|
106
101
|
namespace?: string;
|
|
107
|
-
/** Hash algorithm
|
|
102
|
+
/** Hash algorithm, or false/null to disable (default: 'etag') */
|
|
108
103
|
hashAlgorithm?: null | false | 'etag' | 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512';
|
|
109
|
-
/**
|
|
104
|
+
/** Max bytes for SHA-* hashing (default: 50MB); ignored by 'etag' */
|
|
110
105
|
maxFileSize?: number;
|
|
111
|
-
/**
|
|
106
|
+
/** Broadcast channel name or instance (default: 'opfs-worker') */
|
|
112
107
|
broadcastChannel?: string | BroadcastChannel | null;
|
|
113
108
|
}
|
|
114
109
|
```
|
|
115
110
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
- `root`: Root path for the file system
|
|
119
|
-
- `namespace`: Namespace for events and isolation
|
|
120
|
-
- `hashAlgorithm`: `'etag'` (default, mtime+size), `'SHA-*'`, or `null`/`false` to disable
|
|
121
|
-
- `maxFileSize`: Max bytes for SHA-* content hashing (etag ignores this)
|
|
122
|
-
- `broadcastChannel`: Custom broadcast channel name or instance
|
|
123
|
-
|
|
124
|
-
## Event Types
|
|
125
|
-
|
|
126
|
-
### `WatchEventType`
|
|
111
|
+
Defaults and behavior: [API → Options](./api/README.md#options).
|
|
127
112
|
|
|
128
|
-
|
|
113
|
+
## `WatchEventType`
|
|
129
114
|
|
|
130
115
|
```typescript
|
|
131
116
|
enum WatchEventType {
|
|
@@ -135,15 +120,7 @@ enum WatchEventType {
|
|
|
135
120
|
}
|
|
136
121
|
```
|
|
137
122
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
- `Added`: File or directory was created
|
|
141
|
-
- `Changed`: File or directory was modified
|
|
142
|
-
- `Removed`: File or directory was deleted
|
|
143
|
-
|
|
144
|
-
### `WatchEvent`
|
|
145
|
-
|
|
146
|
-
File system change event sent via BroadcastChannel.
|
|
123
|
+
## `WatchEvent`
|
|
147
124
|
|
|
148
125
|
```typescript
|
|
149
126
|
interface WatchEvent {
|
|
@@ -156,91 +133,52 @@ interface WatchEvent {
|
|
|
156
133
|
}
|
|
157
134
|
```
|
|
158
135
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
- `namespace`: Event namespace for isolation
|
|
162
|
-
- `path`: Path of the changed file/directory
|
|
163
|
-
- `type`: Type of change (added, changed, removed)
|
|
164
|
-
- `isDirectory`: Whether the changed item is a directory
|
|
165
|
-
- `timestamp`: ISO timestamp of the change
|
|
166
|
-
- `hash`: Optional hash of the file content (if hashing is enabled)
|
|
167
|
-
|
|
168
|
-
## Utility Types
|
|
169
|
-
|
|
170
|
-
### `Kind`
|
|
171
|
-
|
|
172
|
-
File system entry type.
|
|
136
|
+
## Utility types
|
|
173
137
|
|
|
174
138
|
```typescript
|
|
175
139
|
type Kind = 'file' | 'directory';
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### `Encoding`
|
|
179
|
-
|
|
180
|
-
Supported text encodings.
|
|
181
|
-
|
|
182
|
-
```typescript
|
|
183
140
|
type Encoding = 'utf-8' | 'utf-16le' | 'ascii' | 'latin1' | 'base64' | 'hex' | 'binary';
|
|
184
141
|
```
|
|
185
142
|
|
|
186
|
-
##
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
The library uses standard POSIX error codes with numeric errno mapping:
|
|
230
|
-
|
|
231
|
-
- `ENOENT` (-2) - No such file or directory
|
|
232
|
-
- `EISDIR` (-21) - Is a directory
|
|
233
|
-
- `ENOTDIR` (-20) - Not a directory
|
|
234
|
-
- `EACCES` (-13) - Permission denied
|
|
235
|
-
- `EEXIST` (-17) - File exists
|
|
236
|
-
- `ENOTEMPTY` (-39) - Directory not empty
|
|
237
|
-
- `EINVAL` (-22) - Invalid argument
|
|
238
|
-
- `EIO` (-5) - I/O error
|
|
239
|
-
- `ENOSPC` (-28) - No space left on device
|
|
240
|
-
- `EBUSY` (-16) - Device or resource busy
|
|
241
|
-
- `EINTR` (-4) - Interrupted system call
|
|
242
|
-
- `ENOTSUP` (-95) - Operation not supported
|
|
243
|
-
- `ERANGE` (-34) - Result too large
|
|
244
|
-
- `EBADF` (-9) - Bad file descriptor
|
|
245
|
-
|
|
246
|
-
Each error type extends the base `OPFSError` class and provides specific error codes and context information for better debugging.
|
|
143
|
+
## Errors
|
|
144
|
+
|
|
145
|
+
Node.js SystemError-compatible. Base class: `OPFSError` (`errno`, `syscall?`, `path?`, `cause?`).
|
|
146
|
+
|
|
147
|
+
| Class | |
|
|
148
|
+
| ---------------------------- | ------------------------------------------------------------------- |
|
|
149
|
+
| `OPFSNotSupportedError` | OPFS missing in the browser |
|
|
150
|
+
| `PathError` | Bad path / traversal |
|
|
151
|
+
| `ExistenceError` | Missing entry — `new ExistenceError(msg, 'ENOENT', path)` |
|
|
152
|
+
| `PermissionError` | Access denied |
|
|
153
|
+
| `StorageError` | Quota / storage full |
|
|
154
|
+
| `TimeoutError` | Timed out |
|
|
155
|
+
| `FileBusyError` | Locked / busy |
|
|
156
|
+
| `FileTypeError` | File vs directory mismatch — `new FileTypeError('directory', path)` |
|
|
157
|
+
| `ValidationError` | Bad args — `new ValidationError(msg, 'EINVAL', path)` |
|
|
158
|
+
| `OperationAbortedError` | Aborted |
|
|
159
|
+
| `IOError` | I/O failure |
|
|
160
|
+
| `OperationNotSupportedError` | Not supported (e.g. FDs on async) |
|
|
161
|
+
| `DirectoryOperationError` | Dir op failed — `new DirectoryOperationError('RM_FAILED', path)` |
|
|
162
|
+
| `InitializationFailedError` | Init failed |
|
|
163
|
+
| `FileSystemOperationError` | Generic FS failure |
|
|
164
|
+
| `PathResolutionFailedError` | Path resolve failed |
|
|
165
|
+
| `AlreadyExistsError` | Already exists |
|
|
166
|
+
|
|
167
|
+
### errno
|
|
168
|
+
|
|
169
|
+
| Code | errno | |
|
|
170
|
+
| ----------- | ----- | ------------------------- |
|
|
171
|
+
| `ENOENT` | -2 | No such file or directory |
|
|
172
|
+
| `EISDIR` | -21 | Is a directory |
|
|
173
|
+
| `ENOTDIR` | -20 | Not a directory |
|
|
174
|
+
| `EACCES` | -13 | Permission denied |
|
|
175
|
+
| `EEXIST` | -17 | File exists |
|
|
176
|
+
| `ENOTEMPTY` | -39 | Directory not empty |
|
|
177
|
+
| `EINVAL` | -22 | Invalid argument |
|
|
178
|
+
| `EIO` | -5 | I/O error |
|
|
179
|
+
| `ENOSPC` | -28 | No space left |
|
|
180
|
+
| `EBUSY` | -16 | Busy |
|
|
181
|
+
| `EINTR` | -4 | Interrupted |
|
|
182
|
+
| `ENOTSUP` | -95 | Not supported |
|
|
183
|
+
| `ERANGE` | -34 | Result too large |
|
|
184
|
+
| `EBADF` | -9 | Bad file descriptor |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opfs-worker",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"description": "A robust TypeScript library for working with Origin Private File System (OPFS) through Web Workers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"prepublishOnly": "bun run lint && bun run type-check && bun run build",
|
|
67
67
|
"changelog": "changeset",
|
|
68
68
|
"version-packages": "changeset version",
|
|
69
|
-
"release": "
|
|
69
|
+
"release": "bun run scripts/release.mjs"
|
|
70
70
|
},
|
|
71
71
|
"keywords": [
|
|
72
72
|
"opfs",
|
|
@@ -89,33 +89,44 @@
|
|
|
89
89
|
"homepage": "https://github.com/kachurun/opfs-worker#readme",
|
|
90
90
|
"devDependencies": {
|
|
91
91
|
"@changesets/cli": "^2.29.5",
|
|
92
|
+
"@codemirror/commands": "6.10.4",
|
|
93
|
+
"@codemirror/lang-cpp": "6.0.3",
|
|
92
94
|
"@codemirror/lang-css": "6.3.1",
|
|
95
|
+
"@codemirror/lang-go": "6.0.1",
|
|
93
96
|
"@codemirror/lang-html": "6.4.11",
|
|
97
|
+
"@codemirror/lang-java": "6.0.2",
|
|
94
98
|
"@codemirror/lang-javascript": "6.2.5",
|
|
95
99
|
"@codemirror/lang-json": "6.0.2",
|
|
96
100
|
"@codemirror/lang-markdown": "6.5.1",
|
|
101
|
+
"@codemirror/lang-php": "6.0.2",
|
|
102
|
+
"@codemirror/lang-python": "6.2.1",
|
|
103
|
+
"@codemirror/lang-rust": "6.0.2",
|
|
104
|
+
"@codemirror/lang-sql": "6.10.0",
|
|
97
105
|
"@codemirror/lang-xml": "6.1.0",
|
|
106
|
+
"@codemirror/lang-yaml": "6.1.3",
|
|
107
|
+
"@codemirror/language": "6.12.4",
|
|
108
|
+
"@codemirror/legacy-modes": "6.5.3",
|
|
109
|
+
"@codemirror/state": "6.7.1",
|
|
98
110
|
"@codemirror/theme-one-dark": "6.1.3",
|
|
111
|
+
"@codemirror/view": "6.43.6",
|
|
99
112
|
"@flexbe/eslint-config": "^1.0.11",
|
|
100
113
|
"@tailwindcss/vite": "4.3.3",
|
|
101
114
|
"@types/minimatch": "^6.0.0",
|
|
102
115
|
"@types/node": "^24.2.0",
|
|
103
|
-
"@types/react": "^19.1.9",
|
|
104
|
-
"@types/react-dom": "^19.1.7",
|
|
105
116
|
"@typescript-eslint/eslint-plugin": "^8.39.0",
|
|
106
117
|
"@typescript-eslint/parser": "^8.39.0",
|
|
107
|
-
"@uiw/react-codemirror": "4.25.11",
|
|
108
118
|
"@vitest/coverage-v8": "^3.2.4",
|
|
109
119
|
"daisyui": "5.7.4",
|
|
110
120
|
"eslint": "^9.32.0",
|
|
121
|
+
"fflate": "0.8.3",
|
|
111
122
|
"happy-dom": "^18.0.1",
|
|
112
|
-
"lucide-
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"react-icons": "5.7.0",
|
|
123
|
+
"lucide-solid": "1.27.0",
|
|
124
|
+
"solid-icons": "1.2.0",
|
|
125
|
+
"solid-js": "1.9.14",
|
|
116
126
|
"tailwindcss": "4.3.3",
|
|
117
127
|
"typescript": "^5.9.2",
|
|
118
128
|
"vite": "^7.0.6",
|
|
129
|
+
"vite-plugin-solid": "2.11.13",
|
|
119
130
|
"vitest": "^3.2.4"
|
|
120
131
|
},
|
|
121
132
|
"engines": {
|