@pagepocket/uni-fs 0.8.6 → 0.9.1
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/index.d.ts.map +1 -1
- package/dist/index.js +9 -51
- package/dist/index.js.map +1 -1
- package/dist/node/node-entry.d.ts +9 -0
- package/dist/node/node-entry.d.ts.map +1 -0
- package/dist/node/node-entry.js +64 -0
- package/dist/node/node-entry.js.map +1 -0
- package/dist/node/node-io.d.ts +8 -0
- package/dist/node/node-io.d.ts.map +1 -0
- package/dist/node/node-io.js +17 -0
- package/dist/node/node-io.js.map +1 -0
- package/dist/node-fs.d.ts.map +1 -1
- package/dist/node-fs.js +2 -2
- package/dist/node-fs.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,CAAC;AAkCjE,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBlF;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgCtF;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAoBzF;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBnF;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBpF;AAED,wBAAsB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B/F;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB/E;AAED,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { bytesToBase64, lookupMimeTypeFromPath } from "@pagepocket/shared";
|
|
2
2
|
import { OPFS_ERROR_MESSAGE } from "./constants.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { isNodeEnvironment, isOpfsAvailable } from "./env.js";
|
|
4
|
+
import { nodeExists, nodeExistsPath, nodeReadAsURL, nodeReadBinary, nodeReadText, nodeRemove, nodeWrite } from "./node/node-entry.js";
|
|
5
5
|
import { getOpfsDirectory, getOpfsRoot } from "./opfs.js";
|
|
6
6
|
import { buildFileName, normalizeExtension, splitPath } from "./path-utils.js";
|
|
7
7
|
async function dataToOpfsWritable(data) {
|
|
@@ -51,16 +51,7 @@ export async function exists(filename, extension) {
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
if (isNodeEnvironment()) {
|
|
54
|
-
|
|
55
|
-
const { access } = await import("node:fs/promises");
|
|
56
|
-
const outputPath = isAbsolute(fileName) ? fileName : join(getNodeCwd(), fileName);
|
|
57
|
-
try {
|
|
58
|
-
await access(outputPath);
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
54
|
+
return nodeExists(fileName);
|
|
64
55
|
}
|
|
65
56
|
throw new Error(OPFS_ERROR_MESSAGE);
|
|
66
57
|
}
|
|
@@ -93,16 +84,7 @@ export async function existsPath(filename, extension) {
|
|
|
93
84
|
}
|
|
94
85
|
}
|
|
95
86
|
if (isNodeEnvironment()) {
|
|
96
|
-
|
|
97
|
-
const { stat } = await import("node:fs/promises");
|
|
98
|
-
const outputPath = isAbsolute(fileName) ? fileName : join(getNodeCwd(), fileName);
|
|
99
|
-
try {
|
|
100
|
-
await stat(outputPath);
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
catch {
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
87
|
+
return nodeExistsPath(fileName);
|
|
106
88
|
}
|
|
107
89
|
throw new Error(OPFS_ERROR_MESSAGE);
|
|
108
90
|
}
|
|
@@ -120,11 +102,7 @@ export async function readBinary(filename, extension) {
|
|
|
120
102
|
return new Uint8Array(buffer);
|
|
121
103
|
}
|
|
122
104
|
if (isNodeEnvironment()) {
|
|
123
|
-
|
|
124
|
-
const { readFile } = await import("node:fs/promises");
|
|
125
|
-
const outputPath = isAbsolute(fileName) ? fileName : join(getNodeCwd(), fileName);
|
|
126
|
-
const buffer = await readFile(outputPath);
|
|
127
|
-
return new Uint8Array(buffer);
|
|
105
|
+
return nodeReadBinary(fileName);
|
|
128
106
|
}
|
|
129
107
|
throw new Error(OPFS_ERROR_MESSAGE);
|
|
130
108
|
}
|
|
@@ -141,10 +119,7 @@ export async function readText(filename, extension) {
|
|
|
141
119
|
return file.text();
|
|
142
120
|
}
|
|
143
121
|
if (isNodeEnvironment()) {
|
|
144
|
-
|
|
145
|
-
const { readFile } = await import("node:fs/promises");
|
|
146
|
-
const outputPath = isAbsolute(fileName) ? fileName : join(getNodeCwd(), fileName);
|
|
147
|
-
return readFile(outputPath, "utf-8");
|
|
122
|
+
return nodeReadText(fileName);
|
|
148
123
|
}
|
|
149
124
|
throw new Error(OPFS_ERROR_MESSAGE);
|
|
150
125
|
}
|
|
@@ -164,8 +139,7 @@ export async function readAsURL(filename, extension) {
|
|
|
164
139
|
return `data:${mimeType};base64,${base64}`;
|
|
165
140
|
}
|
|
166
141
|
if (isNodeEnvironment()) {
|
|
167
|
-
|
|
168
|
-
return isAbsolute(fileName) ? fileName : `/${fileName}`;
|
|
142
|
+
return nodeReadAsURL(fileName);
|
|
169
143
|
}
|
|
170
144
|
throw new Error(OPFS_ERROR_MESSAGE);
|
|
171
145
|
}
|
|
@@ -192,21 +166,8 @@ export async function write(filename, extension, data) {
|
|
|
192
166
|
return;
|
|
193
167
|
}
|
|
194
168
|
if (isNodeEnvironment()) {
|
|
195
|
-
const { dirname, join, isAbsolute } = await import("node:path");
|
|
196
|
-
const { writeFile, stat, rm } = await import("node:fs/promises");
|
|
197
|
-
const outputPath = isAbsolute(fileName) ? fileName : join(getNodeCwd(), fileName);
|
|
198
|
-
await ensureNodeDirectory(dirname(outputPath));
|
|
199
|
-
try {
|
|
200
|
-
const info = await stat(outputPath);
|
|
201
|
-
if (info.isDirectory()) {
|
|
202
|
-
await rm(outputPath, { recursive: true, force: true });
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
catch {
|
|
206
|
-
// Ignore missing path; we'll create/overwrite below.
|
|
207
|
-
}
|
|
208
169
|
const writableData = await dataToNodeWritable(data);
|
|
209
|
-
await
|
|
170
|
+
await nodeWrite(fileName, writableData);
|
|
210
171
|
return;
|
|
211
172
|
}
|
|
212
173
|
throw new Error(OPFS_ERROR_MESSAGE);
|
|
@@ -223,10 +184,7 @@ export async function remove(filename, extension) {
|
|
|
223
184
|
return;
|
|
224
185
|
}
|
|
225
186
|
if (isNodeEnvironment()) {
|
|
226
|
-
|
|
227
|
-
const { unlink } = await import("node:fs/promises");
|
|
228
|
-
const outputPath = isAbsolute(fileName) ? fileName : join(getNodeCwd(), fileName);
|
|
229
|
-
await unlink(outputPath);
|
|
187
|
+
await nodeRemove(fileName);
|
|
230
188
|
return;
|
|
231
189
|
}
|
|
232
190
|
throw new Error(OPFS_ERROR_MESSAGE);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const nodeExists: (fileName: string) => Promise<boolean>;
|
|
2
|
+
export declare const nodeExistsPath: (fileName: string) => Promise<boolean>;
|
|
3
|
+
export declare const nodeReadBinary: (fileName: string) => Promise<Uint8Array>;
|
|
4
|
+
export declare const nodeReadText: (fileName: string) => Promise<string>;
|
|
5
|
+
export declare const nodeReadAsURL: (fileName: string) => Promise<string>;
|
|
6
|
+
export declare const nodeWrite: (fileName: string, data: string | Uint8Array) => Promise<void>;
|
|
7
|
+
export declare const nodeRemove: (fileName: string) => Promise<void>;
|
|
8
|
+
export declare const nodeMimeTypeForExtension: (extension: string) => string;
|
|
9
|
+
//# sourceMappingURL=node-entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-entry.d.ts","sourceRoot":"","sources":["../../src/node/node-entry.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CASlE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAStE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,UAAU,CAIzE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAGnE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAMpE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAU,UAAU,MAAM,EAAE,MAAM,MAAM,GAAG,UAAU,KAAG,OAAO,CAAC,IAAI,CAWzF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAG/D,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,WAAW,MAAM,KAAG,MAE5D,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import pathMod from "node:path";
|
|
3
|
+
import { lookupMimeTypeFromPath } from "@pagepocket/shared";
|
|
4
|
+
import { getNodeCwd } from "../env.js";
|
|
5
|
+
import { ensureNodeDirectory } from "../node-fs.js";
|
|
6
|
+
import { normalizeExtension } from "../path-utils.js";
|
|
7
|
+
const resolveNodePath = (fileName) => {
|
|
8
|
+
if (pathMod.isAbsolute(fileName)) {
|
|
9
|
+
return fileName;
|
|
10
|
+
}
|
|
11
|
+
return pathMod.join(getNodeCwd(), fileName);
|
|
12
|
+
};
|
|
13
|
+
export const nodeExists = async (fileName) => {
|
|
14
|
+
const outputPath = await resolveNodePath(fileName);
|
|
15
|
+
try {
|
|
16
|
+
await fs.access(outputPath);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export const nodeExistsPath = async (fileName) => {
|
|
24
|
+
const outputPath = await resolveNodePath(fileName);
|
|
25
|
+
try {
|
|
26
|
+
await fs.stat(outputPath);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
export const nodeReadBinary = async (fileName) => {
|
|
34
|
+
const outputPath = await resolveNodePath(fileName);
|
|
35
|
+
const buffer = await fs.readFile(outputPath);
|
|
36
|
+
return new Uint8Array(buffer);
|
|
37
|
+
};
|
|
38
|
+
export const nodeReadText = async (fileName) => {
|
|
39
|
+
const outputPath = await resolveNodePath(fileName);
|
|
40
|
+
return fs.readFile(outputPath, "utf-8");
|
|
41
|
+
};
|
|
42
|
+
export const nodeReadAsURL = async (fileName) => {
|
|
43
|
+
if (pathMod.isAbsolute(fileName)) {
|
|
44
|
+
return fileName;
|
|
45
|
+
}
|
|
46
|
+
return `/${fileName}`;
|
|
47
|
+
};
|
|
48
|
+
export const nodeWrite = async (fileName, data) => {
|
|
49
|
+
const outputPath = await resolveNodePath(fileName);
|
|
50
|
+
await ensureNodeDirectory(pathMod.dirname(outputPath));
|
|
51
|
+
const outputPathInfo = await fs.stat(outputPath).catch(() => undefined);
|
|
52
|
+
if (outputPathInfo?.isDirectory()) {
|
|
53
|
+
await fs.rm(outputPath, { recursive: true, force: true });
|
|
54
|
+
}
|
|
55
|
+
await fs.writeFile(outputPath, data);
|
|
56
|
+
};
|
|
57
|
+
export const nodeRemove = async (fileName) => {
|
|
58
|
+
const outputPath = await resolveNodePath(fileName);
|
|
59
|
+
await fs.unlink(outputPath);
|
|
60
|
+
};
|
|
61
|
+
export const nodeMimeTypeForExtension = (extension) => {
|
|
62
|
+
return lookupMimeTypeFromPath(`file.${normalizeExtension(extension)}`);
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=node-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-entry.js","sourceRoot":"","sources":["../../src/node/node-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type NodePathMod = typeof import("node:path");
|
|
2
|
+
export type NodeFsPromises = typeof import("node:fs/promises");
|
|
3
|
+
export declare const loadNodeIo: () => Promise<{
|
|
4
|
+
fs: NodeFsPromises;
|
|
5
|
+
pathMod: NodePathMod;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const resolveNodePath: (fileName: string) => Promise<string>;
|
|
8
|
+
//# sourceMappingURL=node-io.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-io.d.ts","sourceRoot":"","sources":["../../src/node/node-io.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,cAAc,WAAW,CAAC,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,cAAc,kBAAkB,CAAC,CAAC;AAE/D,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC;IAC1C,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CASA,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAQtE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { getNodeCwd, isNodeEnvironment } from "../env.js";
|
|
2
|
+
export const loadNodeIo = async () => {
|
|
3
|
+
if (!isNodeEnvironment()) {
|
|
4
|
+
throw new Error("Node I/O is unavailable in this environment.");
|
|
5
|
+
}
|
|
6
|
+
const fs = await import("node:fs/promises");
|
|
7
|
+
const pathMod = await import("node:path");
|
|
8
|
+
return { fs, pathMod };
|
|
9
|
+
};
|
|
10
|
+
export const resolveNodePath = async (fileName) => {
|
|
11
|
+
const { pathMod } = await loadNodeIo();
|
|
12
|
+
if (pathMod.isAbsolute(fileName)) {
|
|
13
|
+
return fileName;
|
|
14
|
+
}
|
|
15
|
+
return pathMod.join(getNodeCwd(), fileName);
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=node-io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-io.js","sourceRoot":"","sources":["../../src/node/node-io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAK1D,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,IAG5B,EAAE;IACH,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAE1C,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAgB,EAAmB,EAAE;IACzE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;IAEvC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC,CAAC"}
|
package/dist/node-fs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-fs.d.ts","sourceRoot":"","sources":["../src/node-fs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-fs.d.ts","sourceRoot":"","sources":["../src/node-fs.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAyBzE,CAAC"}
|
package/dist/node-fs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { mkdir, rm, stat } from "node:fs/promises";
|
|
2
|
+
import { join, parse, resolve, sep } from "node:path";
|
|
1
3
|
import { getNodeCwd } from "./env.js";
|
|
2
4
|
export const ensureNodeDirectory = async (pathValue) => {
|
|
3
|
-
const { resolve, parse, join, sep } = await import("node:path");
|
|
4
|
-
const { stat, mkdir, rm } = await import("node:fs/promises");
|
|
5
5
|
const absolutePath = resolve(getNodeCwd(), pathValue);
|
|
6
6
|
const parsed = parse(absolutePath);
|
|
7
7
|
let current = parsed.root;
|
package/dist/node-fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-fs.js","sourceRoot":"","sources":["../src/node-fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"node-fs.js","sourceRoot":"","sources":["../src/node-fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,SAAiB,EAAiB,EAAE;IAC5E,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEhF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,UAA+B,CAAC;gBAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,MAAM,UAAU,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pagepocket/uni-fs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Unified filesystem helpers for Node and OPFS environments.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dist"
|
|
13
13
|
],
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@pagepocket/shared": "0.
|
|
15
|
+
"@pagepocket/shared": "0.9.1"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@types/node": "^20.17.12",
|