pushwork 1.2.3 → 1.2.4

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.
Files changed (125) hide show
  1. package/dist/browser/browser-sync-engine.d.ts +64 -0
  2. package/dist/browser/browser-sync-engine.d.ts.map +1 -0
  3. package/dist/browser/browser-sync-engine.js +303 -0
  4. package/dist/browser/browser-sync-engine.js.map +1 -0
  5. package/dist/browser/filesystem-adapter.d.ts +84 -0
  6. package/dist/browser/filesystem-adapter.d.ts.map +1 -0
  7. package/dist/browser/filesystem-adapter.js +413 -0
  8. package/dist/browser/filesystem-adapter.js.map +1 -0
  9. package/dist/browser/index.d.ts +36 -0
  10. package/dist/browser/index.d.ts.map +1 -0
  11. package/dist/browser/index.js +90 -0
  12. package/dist/browser/index.js.map +1 -0
  13. package/dist/browser/types.d.ts +70 -0
  14. package/dist/browser/types.d.ts.map +1 -0
  15. package/dist/browser/types.js +6 -0
  16. package/dist/browser/types.js.map +1 -0
  17. package/dist/cli/commands.d.ts +6 -0
  18. package/dist/cli/commands.d.ts.map +1 -1
  19. package/dist/cli/commands.js +114 -4
  20. package/dist/cli/commands.js.map +1 -1
  21. package/dist/cli/output.d.ts +75 -0
  22. package/dist/cli/output.d.ts.map +1 -0
  23. package/dist/cli/output.js +182 -0
  24. package/dist/cli/output.js.map +1 -0
  25. package/dist/config/remote-manager.d.ts +65 -0
  26. package/dist/config/remote-manager.d.ts.map +1 -0
  27. package/dist/config/remote-manager.js +243 -0
  28. package/dist/config/remote-manager.js.map +1 -0
  29. package/dist/config.d.ts +16 -0
  30. package/dist/config.d.ts.map +1 -0
  31. package/dist/config.js +83 -0
  32. package/dist/config.js.map +1 -0
  33. package/dist/core/isomorphic-snapshot.d.ts +58 -0
  34. package/dist/core/isomorphic-snapshot.d.ts.map +1 -0
  35. package/dist/core/isomorphic-snapshot.js +204 -0
  36. package/dist/core/isomorphic-snapshot.js.map +1 -0
  37. package/dist/fs-tree.d.ts +6 -0
  38. package/dist/fs-tree.d.ts.map +1 -0
  39. package/dist/fs-tree.js +99 -0
  40. package/dist/fs-tree.js.map +1 -0
  41. package/dist/ignore.d.ts +6 -0
  42. package/dist/ignore.d.ts.map +1 -0
  43. package/dist/ignore.js +74 -0
  44. package/dist/ignore.js.map +1 -0
  45. package/dist/log.d.ts +3 -0
  46. package/dist/log.d.ts.map +1 -0
  47. package/dist/log.js +14 -0
  48. package/dist/log.js.map +1 -0
  49. package/dist/platform/browser-filesystem.d.ts +26 -0
  50. package/dist/platform/browser-filesystem.d.ts.map +1 -0
  51. package/dist/platform/browser-filesystem.js +91 -0
  52. package/dist/platform/browser-filesystem.js.map +1 -0
  53. package/dist/platform/filesystem.d.ts +29 -0
  54. package/dist/platform/filesystem.d.ts.map +1 -0
  55. package/dist/platform/filesystem.js +65 -0
  56. package/dist/platform/filesystem.js.map +1 -0
  57. package/dist/platform/node-filesystem.d.ts +21 -0
  58. package/dist/platform/node-filesystem.d.ts.map +1 -0
  59. package/dist/platform/node-filesystem.js +93 -0
  60. package/dist/platform/node-filesystem.js.map +1 -0
  61. package/dist/polyfill-node-window.d.ts +13 -0
  62. package/dist/polyfill-node-window.d.ts.map +1 -0
  63. package/dist/polyfill-node-window.js +17 -0
  64. package/dist/polyfill-node-window.js.map +1 -0
  65. package/dist/pushwork.d.ts +97 -0
  66. package/dist/pushwork.d.ts.map +1 -0
  67. package/dist/pushwork.js +726 -0
  68. package/dist/pushwork.js.map +1 -0
  69. package/dist/repo.d.ts +14 -0
  70. package/dist/repo.d.ts.map +1 -0
  71. package/dist/repo.js +60 -0
  72. package/dist/repo.js.map +1 -0
  73. package/dist/shapes/custom.d.ts +3 -0
  74. package/dist/shapes/custom.d.ts.map +1 -0
  75. package/dist/shapes/custom.js +57 -0
  76. package/dist/shapes/custom.js.map +1 -0
  77. package/dist/shapes/file.d.ts +20 -0
  78. package/dist/shapes/file.d.ts.map +1 -0
  79. package/dist/shapes/file.js +140 -0
  80. package/dist/shapes/file.js.map +1 -0
  81. package/dist/shapes/index.d.ts +10 -0
  82. package/dist/shapes/index.d.ts.map +1 -0
  83. package/dist/shapes/index.js +35 -0
  84. package/dist/shapes/index.js.map +1 -0
  85. package/dist/shapes/patchwork-folder.d.ts +3 -0
  86. package/dist/shapes/patchwork-folder.d.ts.map +1 -0
  87. package/dist/shapes/patchwork-folder.js +160 -0
  88. package/dist/shapes/patchwork-folder.js.map +1 -0
  89. package/dist/shapes/types.d.ts +38 -0
  90. package/dist/shapes/types.d.ts.map +1 -0
  91. package/dist/shapes/types.js +52 -0
  92. package/dist/shapes/types.js.map +1 -0
  93. package/dist/shapes/vfs.d.ts +3 -0
  94. package/dist/shapes/vfs.d.ts.map +1 -0
  95. package/dist/shapes/vfs.js +92 -0
  96. package/dist/shapes/vfs.js.map +1 -0
  97. package/dist/snarf.d.ts +21 -0
  98. package/dist/snarf.d.ts.map +1 -0
  99. package/dist/snarf.js +117 -0
  100. package/dist/snarf.js.map +1 -0
  101. package/dist/utils/fs-browser.d.ts +57 -0
  102. package/dist/utils/fs-browser.d.ts.map +1 -0
  103. package/dist/utils/fs-browser.js +311 -0
  104. package/dist/utils/fs-browser.js.map +1 -0
  105. package/dist/utils/fs-node.d.ts +53 -0
  106. package/dist/utils/fs-node.d.ts.map +1 -0
  107. package/dist/utils/fs-node.js +220 -0
  108. package/dist/utils/fs-node.js.map +1 -0
  109. package/dist/utils/isomorphic.d.ts +29 -0
  110. package/dist/utils/isomorphic.d.ts.map +1 -0
  111. package/dist/utils/isomorphic.js +139 -0
  112. package/dist/utils/isomorphic.js.map +1 -0
  113. package/dist/utils/pure.d.ts +25 -0
  114. package/dist/utils/pure.d.ts.map +1 -0
  115. package/dist/utils/pure.js +112 -0
  116. package/dist/utils/pure.js.map +1 -0
  117. package/dist/utils/repo-factory.d.ts.map +1 -1
  118. package/dist/utils/repo-factory.js +0 -1
  119. package/dist/utils/repo-factory.js.map +1 -1
  120. package/dist/version.d.ts +11 -0
  121. package/dist/version.d.ts.map +1 -0
  122. package/dist/version.js +93 -0
  123. package/dist/version.js.map +1 -0
  124. package/package.json +5 -5
  125. package/src/utils/repo-factory.ts +78 -85
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.walkDir = walkDir;
37
+ exports.byteEq = byteEq;
38
+ exports.writeFileAtomic = writeFileAtomic;
39
+ const fs = __importStar(require("fs/promises"));
40
+ const path = __importStar(require("path"));
41
+ const ignore_js_1 = require("./ignore.js");
42
+ const log_js_1 = require("./log.js");
43
+ const dlog = (0, log_js_1.log)("fs-tree");
44
+ const toPosix = (p) => p.split(path.sep).join("/");
45
+ async function walkDir(root, ig) {
46
+ dlog("walkDir root=%s", root);
47
+ const tree = new Map();
48
+ await walk(root, root, ig, tree);
49
+ dlog("walkDir done: %d files", tree.size);
50
+ return tree;
51
+ }
52
+ async function walk(root, current, ig, tree) {
53
+ let names;
54
+ try {
55
+ names = await fs.readdir(current);
56
+ }
57
+ catch {
58
+ return;
59
+ }
60
+ for (const name of names) {
61
+ const full = path.join(current, name);
62
+ const rel = toPosix(path.relative(root, full));
63
+ if ((0, ignore_js_1.isIgnored)(ig, rel)) {
64
+ dlog("skip ignored: %s", rel);
65
+ continue;
66
+ }
67
+ let stat;
68
+ try {
69
+ stat = await fs.lstat(full);
70
+ }
71
+ catch {
72
+ continue;
73
+ }
74
+ if (stat.isSymbolicLink())
75
+ continue;
76
+ if (stat.isDirectory()) {
77
+ await walk(root, full, ig, tree);
78
+ }
79
+ else if (stat.isFile()) {
80
+ const bytes = await fs.readFile(full);
81
+ tree.set(rel, new Uint8Array(bytes));
82
+ }
83
+ }
84
+ }
85
+ function byteEq(a, b) {
86
+ if (!a)
87
+ return false;
88
+ if (a.length !== b.length)
89
+ return false;
90
+ for (let i = 0; i < a.length; i++)
91
+ if (a[i] !== b[i])
92
+ return false;
93
+ return true;
94
+ }
95
+ async function writeFileAtomic(target, bytes) {
96
+ await fs.mkdir(path.dirname(target), { recursive: true });
97
+ await fs.writeFile(target, bytes);
98
+ }
99
+ //# sourceMappingURL=fs-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-tree.js","sourceRoot":"","sources":["../src/fs-tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type Ignore } from "ignore";
2
+ export declare const ALWAYS_IGNORE: string[];
3
+ export declare const IGNORE_FILE = ".pushworkignore";
4
+ export declare function loadIgnore(root: string): Promise<Ignore>;
5
+ export declare function isIgnored(ig: Ignore, relativePath: string): boolean;
6
+ //# sourceMappingURL=ignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"AAEA,OAAe,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAK7C,eAAO,MAAM,aAAa,UAAwC,CAAC;AACnE,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB9D;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAGnE"}
package/dist/ignore.js ADDED
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.IGNORE_FILE = exports.ALWAYS_IGNORE = void 0;
40
+ exports.loadIgnore = loadIgnore;
41
+ exports.isIgnored = isIgnored;
42
+ const fs = __importStar(require("fs/promises"));
43
+ const path = __importStar(require("path"));
44
+ const ignore_1 = __importDefault(require("ignore"));
45
+ const log_js_1 = require("./log.js");
46
+ const dlog = (0, log_js_1.log)("ignore");
47
+ exports.ALWAYS_IGNORE = [".pushwork", ".git", "node_modules"];
48
+ exports.IGNORE_FILE = ".pushworkignore";
49
+ async function loadIgnore(root) {
50
+ const ig = (0, ignore_1.default)().add(exports.ALWAYS_IGNORE);
51
+ dlog("always-ignored: %o", exports.ALWAYS_IGNORE);
52
+ try {
53
+ const text = await fs.readFile(path.join(root, exports.IGNORE_FILE), "utf8");
54
+ const patterns = text
55
+ .split(/\r?\n/)
56
+ .map((l) => l.trim())
57
+ .filter((l) => l && !l.startsWith("#"));
58
+ ig.add(patterns);
59
+ dlog("loaded %d patterns from %s", patterns.length, exports.IGNORE_FILE);
60
+ }
61
+ catch (err) {
62
+ const e = err;
63
+ if (e.code !== "ENOENT")
64
+ throw err;
65
+ dlog("no %s in %s", exports.IGNORE_FILE, root);
66
+ }
67
+ return ig;
68
+ }
69
+ function isIgnored(ig, relativePath) {
70
+ if (relativePath === "" || relativePath === ".")
71
+ return false;
72
+ return ig.ignores(relativePath);
73
+ }
74
+ //# sourceMappingURL=ignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ignore.js","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,gCAiBC;AAED,8BAGC;AAhCD,gDAAkC;AAClC,2CAA6B;AAC7B,oDAA6C;AAC7C,qCAA+B;AAE/B,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,QAAQ,CAAC,CAAC;AAEd,QAAA,aAAa,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AACtD,QAAA,WAAW,GAAG,iBAAiB,CAAC;AAEtC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC5C,MAAM,EAAE,GAAG,IAAA,gBAAM,GAAE,CAAC,GAAG,CAAC,qBAAa,CAAC,CAAC;IACvC,IAAI,CAAC,oBAAoB,EAAE,qBAAa,CAAC,CAAC;IAC1C,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAW,CAAC,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI;aACnB,KAAK,CAAC,OAAO,CAAC;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjB,IAAI,CAAC,4BAA4B,EAAE,QAAQ,CAAC,MAAM,EAAE,mBAAW,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,GAAG,GAA4B,CAAC;QACvC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE,mBAAW,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAgB,SAAS,CAAC,EAAU,EAAE,YAAoB;IACzD,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC9D,OAAO,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACjC,CAAC"}
package/dist/log.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import debug from "debug";
2
+ export declare const log: (ns: string) => debug.Debugger;
3
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,eAAO,MAAM,GAAG,GAAI,IAAI,MAAM,mBAA4B,CAAC"}
package/dist/log.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.log = void 0;
7
+ const debug_1 = __importDefault(require("debug"));
8
+ if (process.env.DEBUG === "true") {
9
+ process.env.DEBUG = "*";
10
+ debug_1.default.enable("*");
11
+ }
12
+ const log = (ns) => (0, debug_1.default)(`pushwork:${ns}`);
13
+ exports.log = log;
14
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;IACxB,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAEM,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAA,eAAK,EAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAA9C,QAAA,GAAG,OAA2C"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Browser filesystem implementation using File System Access API
3
+ */
4
+ import { FileSystemInterface } from "./filesystem";
5
+ export declare class BrowserFilesystem implements FileSystemInterface {
6
+ private adapter;
7
+ private rootHandle;
8
+ constructor();
9
+ setRootDirectory(handle: any): Promise<void>;
10
+ private ensureRootHandle;
11
+ readFileContent(path: string): Promise<string | Uint8Array>;
12
+ writeFileContent(path: string, content: string | Uint8Array): Promise<void>;
13
+ removePath(path: string): Promise<void>;
14
+ movePath(fromPath: string, toPath: string): Promise<void>;
15
+ ensureDirectoryExists(path: string): Promise<void>;
16
+ listDirectory(path: string): Promise<Array<{
17
+ name: string;
18
+ type: "file" | "directory";
19
+ }>>;
20
+ getFileStats(path: string): Promise<{
21
+ size: number;
22
+ mtime: Date;
23
+ }>;
24
+ exists(path: string): Promise<boolean>;
25
+ }
26
+ //# sourceMappingURL=browser-filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-filesystem.d.ts","sourceRoot":"","sources":["../../src/platform/browser-filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,qBAAa,iBAAkB,YAAW,mBAAmB;IAC3D,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,UAAU,CAAa;;IAMzB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,OAAO,CAAC,gBAAgB;IAQlB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;IAM3D,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,UAAU,GAC3B,OAAO,CAAC,IAAI,CAAC;IAQV,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD,aAAa,CACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC,CAAC;IASzD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC;IAUlE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAc7C"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ /**
3
+ * Browser filesystem implementation using File System Access API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BrowserFilesystem = void 0;
7
+ const filesystem_adapter_1 = require("../browser/filesystem-adapter");
8
+ class BrowserFilesystem {
9
+ constructor() {
10
+ this.rootHandle = null;
11
+ this.adapter = new filesystem_adapter_1.BrowserFilesystemAdapter();
12
+ }
13
+ async setRootDirectory(handle) {
14
+ this.rootHandle = handle;
15
+ }
16
+ ensureRootHandle() {
17
+ if (!this.rootHandle) {
18
+ throw new Error("No root directory handle set. Call setRootDirectory() first.");
19
+ }
20
+ }
21
+ async readFileContent(path) {
22
+ this.ensureRootHandle();
23
+ const handle = await this.adapter.getFileHandle(this.rootHandle, path);
24
+ return this.adapter.readFileContent(handle);
25
+ }
26
+ async writeFileContent(path, content) {
27
+ this.ensureRootHandle();
28
+ const handle = await this.adapter.getFileHandle(this.rootHandle, path, {
29
+ create: true,
30
+ });
31
+ return this.adapter.writeFileContent(handle, content);
32
+ }
33
+ async removePath(path) {
34
+ this.ensureRootHandle();
35
+ return this.adapter.removePath(this.rootHandle, path);
36
+ }
37
+ async movePath(fromPath, toPath) {
38
+ this.ensureRootHandle();
39
+ return this.adapter.movePath(this.rootHandle, fromPath, toPath);
40
+ }
41
+ async ensureDirectoryExists(path) {
42
+ this.ensureRootHandle();
43
+ const parts = path.split("/").filter((p) => p);
44
+ let currentHandle = this.rootHandle;
45
+ for (const part of parts) {
46
+ try {
47
+ currentHandle = await currentHandle.getDirectoryHandle(part);
48
+ }
49
+ catch {
50
+ currentHandle = await currentHandle.getDirectoryHandle(part, {
51
+ create: true,
52
+ });
53
+ }
54
+ }
55
+ }
56
+ async listDirectory(path) {
57
+ this.ensureRootHandle();
58
+ const entries = await this.adapter.listDirectory(this.rootHandle, path);
59
+ return entries.map((entry) => ({
60
+ name: entry.name,
61
+ type: entry.type === "file" ? "file" : "directory",
62
+ }));
63
+ }
64
+ async getFileStats(path) {
65
+ this.ensureRootHandle();
66
+ const handle = await this.adapter.getFileHandle(this.rootHandle, path);
67
+ const file = await handle.getFile();
68
+ return {
69
+ size: file.size,
70
+ mtime: new Date(file.lastModified),
71
+ };
72
+ }
73
+ async exists(path) {
74
+ this.ensureRootHandle();
75
+ try {
76
+ await this.adapter.getFileHandle(this.rootHandle, path);
77
+ return true;
78
+ }
79
+ catch {
80
+ try {
81
+ await this.adapter.getDirectoryHandle(this.rootHandle, path);
82
+ return true;
83
+ }
84
+ catch {
85
+ return false;
86
+ }
87
+ }
88
+ }
89
+ }
90
+ exports.BrowserFilesystem = BrowserFilesystem;
91
+ //# sourceMappingURL=browser-filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-filesystem.js","sourceRoot":"","sources":["../../src/platform/browser-filesystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Platform-agnostic filesystem interface
3
+ */
4
+ export interface FileSystemInterface {
5
+ readFileContent(path: string): Promise<string | Uint8Array>;
6
+ writeFileContent(path: string, content: string | Uint8Array): Promise<void>;
7
+ removePath(path: string): Promise<void>;
8
+ movePath(fromPath: string, toPath: string): Promise<void>;
9
+ ensureDirectoryExists(path: string): Promise<void>;
10
+ listDirectory(path: string): Promise<Array<{
11
+ name: string;
12
+ type: "file" | "directory";
13
+ }>>;
14
+ getFileStats(path: string): Promise<{
15
+ size: number;
16
+ mtime: Date;
17
+ }>;
18
+ exists(path: string): Promise<boolean>;
19
+ }
20
+ /**
21
+ * Platform detection
22
+ */
23
+ export declare function isBrowser(): boolean;
24
+ export declare function isNode(): boolean;
25
+ /**
26
+ * Get the appropriate filesystem implementation for the current platform
27
+ */
28
+ export declare function getFilesystem(): Promise<FileSystemInterface>;
29
+ //# sourceMappingURL=filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/platform/filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC5D,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,aAAa,CACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC,CAAC,CAAC;IAChE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IACnE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAKnC;AAED,wBAAgB,MAAM,IAAI,OAAO,CAEhC;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAQlE"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * Platform-agnostic filesystem interface
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.isBrowser = isBrowser;
40
+ exports.isNode = isNode;
41
+ exports.getFilesystem = getFilesystem;
42
+ /**
43
+ * Platform detection
44
+ */
45
+ function isBrowser() {
46
+ return (typeof window !== "undefined" &&
47
+ typeof window.document !== "undefined");
48
+ }
49
+ function isNode() {
50
+ return typeof process !== "undefined" && !!process.versions?.node;
51
+ }
52
+ /**
53
+ * Get the appropriate filesystem implementation for the current platform
54
+ */
55
+ async function getFilesystem() {
56
+ if (isBrowser()) {
57
+ const { BrowserFilesystem } = await Promise.resolve().then(() => __importStar(require("./browser-filesystem")));
58
+ return new BrowserFilesystem();
59
+ }
60
+ else {
61
+ const { NodeFilesystem } = await Promise.resolve().then(() => __importStar(require("./node-filesystem")));
62
+ return new NodeFilesystem();
63
+ }
64
+ }
65
+ //# sourceMappingURL=filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/platform/filesystem.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBH,8BAKC;AAED,wBAEC;AAKD,sCAQC;AAzBD;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,CACL,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAQ,MAAc,CAAC,QAAQ,KAAK,WAAW,CAChD,CAAC;AACJ,CAAC;AAED,SAAgB,MAAM;IACpB,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,CAAE,OAAe,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7E,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa;IACjC,IAAI,SAAS,EAAE,EAAE,CAAC;QAChB,MAAM,EAAE,iBAAiB,EAAE,GAAG,wDAAa,sBAAsB,GAAC,CAAC;QACnE,OAAO,IAAI,iBAAiB,EAAE,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;QAC7D,OAAO,IAAI,cAAc,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Node.js filesystem implementation
3
+ */
4
+ import { FileSystemInterface } from "./filesystem";
5
+ export declare class NodeFilesystem implements FileSystemInterface {
6
+ readFileContent(filePath: string): Promise<string | Uint8Array>;
7
+ writeFileContent(filePath: string, content: string | Uint8Array): Promise<void>;
8
+ removePath(targetPath: string): Promise<void>;
9
+ movePath(fromPath: string, toPath: string): Promise<void>;
10
+ ensureDirectoryExists(dirPath: string): Promise<void>;
11
+ listDirectory(dirPath: string): Promise<Array<{
12
+ name: string;
13
+ type: "file" | "directory";
14
+ }>>;
15
+ getFileStats(filePath: string): Promise<{
16
+ size: number;
17
+ mtime: Date;
18
+ }>;
19
+ exists(targetPath: string): Promise<boolean>;
20
+ }
21
+ //# sourceMappingURL=node-filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-filesystem.d.ts","sourceRoot":"","sources":["../../src/platform/node-filesystem.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AASnD,qBAAa,cAAe,YAAW,mBAAmB;IAClD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;IAI/D,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,UAAU,GAC3B,OAAO,CAAC,IAAI,CAAC;IAIV,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,aAAa,CACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC,CAAC;IAYzD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC;IAYtE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQnD"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ /**
3
+ * Node.js filesystem implementation
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.NodeFilesystem = void 0;
40
+ const fs = __importStar(require("fs/promises"));
41
+ const fs_1 = require("../utils/fs");
42
+ class NodeFilesystem {
43
+ async readFileContent(filePath) {
44
+ return (0, fs_1.readFileContent)(filePath);
45
+ }
46
+ async writeFileContent(filePath, content) {
47
+ return (0, fs_1.writeFileContent)(filePath, content);
48
+ }
49
+ async removePath(targetPath) {
50
+ return (0, fs_1.removePath)(targetPath);
51
+ }
52
+ async movePath(fromPath, toPath) {
53
+ return (0, fs_1.movePath)(fromPath, toPath);
54
+ }
55
+ async ensureDirectoryExists(dirPath) {
56
+ return (0, fs_1.ensureDirectoryExists)(dirPath);
57
+ }
58
+ async listDirectory(dirPath) {
59
+ try {
60
+ const entries = await fs.readdir(dirPath, { withFileTypes: true });
61
+ return entries.map((entry) => ({
62
+ name: entry.name,
63
+ type: entry.isDirectory() ? "directory" : "file",
64
+ }));
65
+ }
66
+ catch (error) {
67
+ throw new Error(`Failed to list directory ${dirPath}: ${error}`);
68
+ }
69
+ }
70
+ async getFileStats(filePath) {
71
+ try {
72
+ const stats = await fs.stat(filePath);
73
+ return {
74
+ size: stats.size,
75
+ mtime: stats.mtime,
76
+ };
77
+ }
78
+ catch (error) {
79
+ throw new Error(`Failed to get file stats for ${filePath}: ${error}`);
80
+ }
81
+ }
82
+ async exists(targetPath) {
83
+ try {
84
+ await fs.access(targetPath);
85
+ return true;
86
+ }
87
+ catch {
88
+ return false;
89
+ }
90
+ }
91
+ }
92
+ exports.NodeFilesystem = NodeFilesystem;
93
+ //# sourceMappingURL=node-filesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-filesystem.js","sourceRoot":"","sources":["../../src/platform/node-filesystem.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,gDAAkC;AAGlC,oCAMqB;AAErB,MAAa,cAAc;IACzB,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,OAAO,IAAA,oBAAmB,EAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,OAA4B;QAE5B,OAAO,IAAA,qBAAoB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,OAAO,IAAA,eAAc,EAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,MAAc;QAC7C,OAAO,IAAA,aAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAAe;QACzC,OAAO,IAAA,0BAAyB,EAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;aACjD,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AA1DD,wCA0DC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Polyfill for browser-only code (e.g. WebCryptoSigner in @automerge/automerge_subduction)
3
+ * that expects `window`. The subduction WASM uses web_sys::window() which compiles to
4
+ * `typeof window === 'undefined' ? null : window` in JS. In Node we must define
5
+ * the global "window" before any subduction code runs.
6
+ */
7
+ declare const g: {
8
+ window?: unknown;
9
+ };
10
+ declare const nodeGlobal: {
11
+ window?: unknown;
12
+ };
13
+ //# sourceMappingURL=polyfill-node-window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfill-node-window.d.ts","sourceRoot":"","sources":["../src/polyfill-node-window.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,QAAA,MAAM,CAAC,EAA4B;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAKxD,QAAA,MAAM,UAAU;aAL8B,OAAO;CAK6C,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Polyfill for browser-only code (e.g. WebCryptoSigner in @automerge/automerge_subduction)
4
+ * that expects `window`. The subduction WASM uses web_sys::window() which compiles to
5
+ * `typeof window === 'undefined' ? null : window` in JS. In Node we must define
6
+ * the global "window" before any subduction code runs.
7
+ */
8
+ const g = globalThis;
9
+ if (typeof g.window === "undefined") {
10
+ g.window = globalThis;
11
+ }
12
+ // Node's "global" is the traditional global object; ensure it has window too
13
+ const nodeGlobal = typeof global !== "undefined" ? global : g;
14
+ if (typeof nodeGlobal.window === "undefined") {
15
+ nodeGlobal.window = globalThis;
16
+ }
17
+ //# sourceMappingURL=polyfill-node-window.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfill-node-window.js","sourceRoot":"","sources":["../src/polyfill-node-window.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;AACH,MAAM,CAAC,GAAG,UAA6C,CAAC;AACxD,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;IACpC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;AACxB,CAAC;AACD,6EAA6E;AAC7E,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAE,MAA0C,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;IAC7C,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC;AACjC,CAAC"}