lakutata 2.0.34 → 2.0.35

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 (210) hide show
  1. package/com/cacher.cjs +211 -0
  2. package/com/cacher.d.ts +514 -0
  3. package/com/cacher.mjs +185 -0
  4. package/com/database.cjs +6 -2
  5. package/com/database.mjs +6 -2
  6. package/com/docker.cjs +23 -17
  7. package/com/docker.mjs +19 -13
  8. package/com/entrypoint.cjs +1 -1
  9. package/com/entrypoint.mjs +1 -1
  10. package/com/logger.cjs +6 -2
  11. package/com/logger.mjs +6 -2
  12. package/decorator/ctrl.cjs +1 -1
  13. package/decorator/ctrl.mjs +1 -1
  14. package/decorator/orm.cjs +22 -18
  15. package/decorator/orm.mjs +6 -2
  16. package/helper.cjs +1 -1
  17. package/helper.mjs +1 -1
  18. package/lakutata.cjs +7 -3
  19. package/lakutata.mjs +7 -3
  20. package/orm.cjs +19 -15
  21. package/orm.mjs +15 -11
  22. package/package.json +6 -1
  23. package/provider/database.cjs +6 -2
  24. package/provider/database.mjs +6 -2
  25. package/src/components/Database.cjs +6 -2
  26. package/src/components/Database.mjs +6 -2
  27. package/src/components/Logger.cjs +6 -2
  28. package/src/components/Logger.mjs +6 -2
  29. package/src/components/cacher/Cacher.cjs +193 -0
  30. package/src/components/cacher/Cacher.mjs +183 -0
  31. package/src/components/cacher/options/CacherOptions.cjs +93 -0
  32. package/src/components/cacher/options/CacherOptions.mjs +87 -0
  33. package/src/components/cacher/options/FileCacheOptions.cjs +77 -0
  34. package/src/components/cacher/options/FileCacheOptions.mjs +71 -0
  35. package/src/components/cacher/options/MemcacheCacheOptions.cjs +79 -0
  36. package/src/components/cacher/options/MemcacheCacheOptions.mjs +73 -0
  37. package/src/components/cacher/options/MongoCacheOptions.cjs +83 -0
  38. package/src/components/cacher/options/MongoCacheOptions.mjs +77 -0
  39. package/src/components/cacher/options/MysqlCacheOptions.cjs +83 -0
  40. package/src/components/cacher/options/MysqlCacheOptions.mjs +77 -0
  41. package/src/components/cacher/options/PostgresCacheOptions.cjs +87 -0
  42. package/src/components/cacher/options/PostgresCacheOptions.mjs +81 -0
  43. package/src/components/cacher/options/RedisCacheOptions.cjs +99 -0
  44. package/src/components/cacher/options/RedisCacheOptions.mjs +93 -0
  45. package/src/components/cacher/options/SqliteCacheOptions.cjs +77 -0
  46. package/src/components/cacher/options/SqliteCacheOptions.mjs +71 -0
  47. package/src/components/cacher/types/CacheStoreOptions.cjs +1 -0
  48. package/src/components/cacher/types/CacheStoreOptions.mjs +1 -0
  49. package/src/components/docker/ConnectionOptionsBuilder.cjs +19 -13
  50. package/src/components/docker/ConnectionOptionsBuilder.mjs +19 -13
  51. package/src/components/docker/Docker.cjs +19 -13
  52. package/src/components/docker/Docker.mjs +19 -13
  53. package/src/components/docker/lib/DockerContainer.cjs +26 -20
  54. package/src/components/docker/lib/DockerContainer.mjs +20 -14
  55. package/src/components/docker/lib/DockerContainerTTY.cjs +15 -9
  56. package/src/components/docker/lib/DockerContainerTTY.mjs +15 -9
  57. package/src/components/entrypoint/Entrypoint.cjs +1 -1
  58. package/src/components/entrypoint/Entrypoint.mjs +1 -1
  59. package/src/decorators/ctrl/CLIAction.cjs +1 -1
  60. package/src/decorators/ctrl/CLIAction.mjs +1 -1
  61. package/src/decorators/ctrl/HTTPAction.cjs +1 -1
  62. package/src/decorators/ctrl/HTTPAction.mjs +1 -1
  63. package/src/decorators/ctrl/ServiceAction.cjs +1 -1
  64. package/src/decorators/ctrl/ServiceAction.mjs +1 -1
  65. package/src/decorators/ctrl/http/DELETE.cjs +1 -1
  66. package/src/decorators/ctrl/http/DELETE.mjs +1 -1
  67. package/src/decorators/ctrl/http/GET.cjs +1 -1
  68. package/src/decorators/ctrl/http/GET.mjs +1 -1
  69. package/src/decorators/ctrl/http/HEAD.cjs +1 -1
  70. package/src/decorators/ctrl/http/HEAD.mjs +1 -1
  71. package/src/decorators/ctrl/http/OPTIONS.cjs +1 -1
  72. package/src/decorators/ctrl/http/OPTIONS.mjs +1 -1
  73. package/src/decorators/ctrl/http/PATCH.cjs +1 -1
  74. package/src/decorators/ctrl/http/PATCH.mjs +1 -1
  75. package/src/decorators/ctrl/http/POST.cjs +1 -1
  76. package/src/decorators/ctrl/http/POST.mjs +1 -1
  77. package/src/decorators/ctrl/http/PUT.cjs +1 -1
  78. package/src/decorators/ctrl/http/PUT.mjs +1 -1
  79. package/src/decorators/orm/AfterInsert.cjs +6 -2
  80. package/src/decorators/orm/AfterInsert.mjs +13 -9
  81. package/src/decorators/orm/AfterLoad.cjs +6 -2
  82. package/src/decorators/orm/AfterLoad.mjs +16 -12
  83. package/src/decorators/orm/AfterRecover.cjs +6 -2
  84. package/src/decorators/orm/AfterRecover.mjs +10 -6
  85. package/src/decorators/orm/AfterRemove.cjs +6 -2
  86. package/src/decorators/orm/AfterRemove.mjs +10 -6
  87. package/src/decorators/orm/AfterSoftRemove.cjs +6 -2
  88. package/src/decorators/orm/AfterSoftRemove.mjs +10 -6
  89. package/src/decorators/orm/AfterUpdate.cjs +6 -2
  90. package/src/decorators/orm/AfterUpdate.mjs +14 -10
  91. package/src/decorators/orm/BeforeInsert.cjs +6 -2
  92. package/src/decorators/orm/BeforeInsert.mjs +10 -6
  93. package/src/decorators/orm/BeforeRecover.cjs +13 -9
  94. package/src/decorators/orm/BeforeRecover.mjs +6 -2
  95. package/src/decorators/orm/BeforeRemove.cjs +13 -9
  96. package/src/decorators/orm/BeforeRemove.mjs +6 -2
  97. package/src/decorators/orm/BeforeSoftRemove.cjs +10 -6
  98. package/src/decorators/orm/BeforeSoftRemove.mjs +6 -2
  99. package/src/decorators/orm/BeforeUpdate.cjs +6 -2
  100. package/src/decorators/orm/BeforeUpdate.mjs +11 -7
  101. package/src/decorators/orm/Check.cjs +6 -2
  102. package/src/decorators/orm/Check.mjs +6 -2
  103. package/src/decorators/orm/ChildEntity.cjs +11 -7
  104. package/src/decorators/orm/ChildEntity.mjs +6 -2
  105. package/src/decorators/orm/Column.cjs +23 -19
  106. package/src/decorators/orm/Column.mjs +6 -2
  107. package/src/decorators/orm/CreateDateColumn.cjs +8 -4
  108. package/src/decorators/orm/CreateDateColumn.mjs +6 -2
  109. package/src/decorators/orm/DeleteDateColumn.cjs +6 -2
  110. package/src/decorators/orm/DeleteDateColumn.mjs +6 -2
  111. package/src/decorators/orm/Entity.cjs +6 -2
  112. package/src/decorators/orm/Entity.mjs +12 -8
  113. package/src/decorators/orm/EventSubscriber.cjs +6 -2
  114. package/src/decorators/orm/EventSubscriber.mjs +6 -2
  115. package/src/decorators/orm/Exclusion.cjs +6 -2
  116. package/src/decorators/orm/Exclusion.mjs +12 -8
  117. package/src/decorators/orm/Generated.cjs +10 -6
  118. package/src/decorators/orm/Generated.mjs +12 -8
  119. package/src/decorators/orm/Index.cjs +14 -10
  120. package/src/decorators/orm/Index.mjs +24 -20
  121. package/src/decorators/orm/JoinColumn.cjs +6 -2
  122. package/src/decorators/orm/JoinColumn.mjs +6 -2
  123. package/src/decorators/orm/JoinTable.cjs +6 -2
  124. package/src/decorators/orm/JoinTable.mjs +8 -4
  125. package/src/decorators/orm/ManyToMany.cjs +13 -9
  126. package/src/decorators/orm/ManyToMany.mjs +17 -13
  127. package/src/decorators/orm/ManyToOne.cjs +6 -2
  128. package/src/decorators/orm/ManyToOne.mjs +6 -2
  129. package/src/decorators/orm/ObjectIdColumn.cjs +6 -2
  130. package/src/decorators/orm/ObjectIdColumn.mjs +12 -8
  131. package/src/decorators/orm/OneToMany.cjs +14 -10
  132. package/src/decorators/orm/OneToMany.mjs +6 -2
  133. package/src/decorators/orm/OneToOne.cjs +15 -11
  134. package/src/decorators/orm/OneToOne.mjs +13 -9
  135. package/src/decorators/orm/PrimaryColumn.cjs +6 -2
  136. package/src/decorators/orm/PrimaryColumn.mjs +26 -22
  137. package/src/decorators/orm/PrimaryGeneratedColumn.cjs +6 -2
  138. package/src/decorators/orm/PrimaryGeneratedColumn.mjs +8 -4
  139. package/src/decorators/orm/RelationId.cjs +11 -7
  140. package/src/decorators/orm/RelationId.mjs +12 -8
  141. package/src/decorators/orm/TableInheritance.cjs +6 -2
  142. package/src/decorators/orm/TableInheritance.mjs +10 -6
  143. package/src/decorators/orm/Tree.cjs +6 -2
  144. package/src/decorators/orm/Tree.mjs +6 -2
  145. package/src/decorators/orm/TreeChildren.cjs +6 -2
  146. package/src/decorators/orm/TreeChildren.mjs +17 -13
  147. package/src/decorators/orm/TreeLevelColumn.cjs +6 -2
  148. package/src/decorators/orm/TreeLevelColumn.mjs +6 -2
  149. package/src/decorators/orm/TreeParent.cjs +12 -8
  150. package/src/decorators/orm/TreeParent.mjs +6 -2
  151. package/src/decorators/orm/Unique.cjs +6 -2
  152. package/src/decorators/orm/Unique.mjs +6 -2
  153. package/src/decorators/orm/UpdateDateColumn.cjs +8 -4
  154. package/src/decorators/orm/UpdateDateColumn.mjs +6 -2
  155. package/src/decorators/orm/VersionColumn.cjs +6 -2
  156. package/src/decorators/orm/VersionColumn.mjs +6 -2
  157. package/src/decorators/orm/ViewColumn.cjs +6 -2
  158. package/src/decorators/orm/ViewColumn.mjs +6 -2
  159. package/src/decorators/orm/ViewEntity.cjs +8 -4
  160. package/src/decorators/orm/ViewEntity.mjs +6 -2
  161. package/src/decorators/orm/VirtualColumn.cjs +6 -2
  162. package/src/decorators/orm/VirtualColumn.mjs +10 -6
  163. package/src/lib/base/internal/ControllerEntrypoint.cjs +1 -1
  164. package/src/lib/base/internal/ControllerEntrypoint.mjs +1 -1
  165. package/src/lib/core/Application.cjs +11 -7
  166. package/src/lib/core/Application.mjs +7 -3
  167. package/src/lib/core/Module.cjs +1 -1
  168. package/src/lib/core/Module.mjs +1 -1
  169. package/src/lib/helpers/NonceStr.cjs +1 -1
  170. package/src/lib/helpers/NonceStr.mjs +1 -1
  171. package/src/lib/helpers/ObjectHash.cjs +1 -1
  172. package/src/lib/helpers/ObjectHash.mjs +1 -1
  173. package/src/lib/helpers/RandomString.cjs +1 -1
  174. package/src/lib/helpers/RandomString.mjs +1 -1
  175. package/src/providers/Database.cjs +6 -2
  176. package/src/providers/Database.mjs +6 -2
  177. package/vendor/Package.112.cjs +5498 -5500
  178. package/vendor/Package.112.mjs +5504 -5506
  179. package/vendor/Package.12.cjs +4 -80
  180. package/vendor/Package.12.mjs +4 -74
  181. package/vendor/Package.122.cjs +87 -0
  182. package/vendor/Package.122.mjs +79 -0
  183. package/vendor/Package.13.cjs +1 -1
  184. package/vendor/Package.13.mjs +1 -1
  185. package/vendor/Package.14.cjs +1 -14055
  186. package/vendor/Package.14.mjs +1 -14029
  187. package/vendor/Package.15.cjs +12449 -46635
  188. package/vendor/Package.15.mjs +12435 -46611
  189. package/vendor/Package.16.cjs +3 -0
  190. package/vendor/Package.16.mjs +1 -0
  191. package/vendor/Package.17.cjs +48245 -0
  192. package/vendor/Package.17.mjs +48202 -0
  193. package/vendor/Package.18.cjs +3 -0
  194. package/vendor/Package.18.mjs +1 -0
  195. package/vendor/Package.19.cjs +4466 -0
  196. package/vendor/Package.19.mjs +4442 -0
  197. package/vendor/Package.610.cjs +196 -0
  198. package/vendor/Package.610.mjs +180 -0
  199. package/vendor/Package.62.cjs +1 -1
  200. package/vendor/Package.62.mjs +1 -1
  201. package/vendor/Package.65.cjs +860 -0
  202. package/vendor/Package.65.mjs +832 -0
  203. package/vendor/Package.66.cjs +321 -0
  204. package/vendor/Package.66.mjs +305 -0
  205. package/vendor/Package.67.cjs +341 -0
  206. package/vendor/Package.67.mjs +327 -0
  207. package/vendor/Package.68.cjs +333 -0
  208. package/vendor/Package.68.mjs +315 -0
  209. package/vendor/Package.69.cjs +353 -0
  210. package/vendor/Package.69.mjs +335 -0
@@ -0,0 +1,4442 @@
1
+ import { _ as e, a as t } from "./Package.1.mjs";
2
+
3
+ import r from "events";
4
+
5
+ import n, { Buffer as i } from "buffer";
6
+
7
+ import { c as s, g as o } from "./Package.5.mjs";
8
+
9
+ import { r as c } from "./Package.12.mjs";
10
+
11
+ import "./Package.8.mjs";
12
+
13
+ import "./Package.18.mjs";
14
+
15
+ import a from "constants";
16
+
17
+ import f from "stream";
18
+
19
+ import "./Package.10.mjs";
20
+
21
+ import "./Package.16.mjs";
22
+
23
+ import u from "fs";
24
+
25
+ import l from "util";
26
+
27
+ import h from "assert";
28
+
29
+ import p from "os";
30
+
31
+ import y from "path";
32
+
33
+ import "./Package.13.mjs";
34
+
35
+ import { CacherOptions as d } from "../src/components/cacher/options/CacherOptions.mjs";
36
+
37
+ import { Component as m } from "../src/lib/core/Component.mjs";
38
+
39
+ import { Configurable as v } from "../src/decorators/di/Configurable.mjs";
40
+
41
+ import { URLBuilder as w } from "../src/lib/helpers/URLBuilder.mjs";
42
+
43
+ import { As as S } from "../src/lib/helpers/As.mjs";
44
+
45
+
46
+ // -- Shims --
47
+ import cjsUrl from 'node:url';
48
+ import cjsPath from 'node:path';
49
+ import cjsModule from 'node:module';
50
+ const __filename = cjsUrl.fileURLToPath(import.meta.url);
51
+ const __dirname = cjsPath.dirname(__filename);
52
+ const require = cjsModule.createRequire(import.meta.url);
53
+ var g = e => {
54
+ if (e === void 0 || e === null) {
55
+ return "null";
56
+ }
57
+ if (typeof e === "string") {
58
+ return JSON.stringify(e.startsWith(":") ? ":" + e : e);
59
+ }
60
+ if (i.isBuffer(e)) {
61
+ return JSON.stringify(":base64:" + e.toString("base64"));
62
+ }
63
+ if (e?.toJSON) {
64
+ e = e.toJSON();
65
+ }
66
+ if (typeof e === "object") {
67
+ let t = "";
68
+ const r = Array.isArray(e);
69
+ t = r ? "[" : "{";
70
+ let n = true;
71
+ for (const i in e) {
72
+ const s = typeof e[i] === "function" || !r && e[i] === void 0;
73
+ if (!Object.hasOwn(e, i) || s) {
74
+ continue;
75
+ }
76
+ if (!n) {
77
+ t += ",";
78
+ }
79
+ n = false;
80
+ if (r) {
81
+ t += g(e[i]);
82
+ } else if (e[i] !== void 0) {
83
+ t += g(i) + ":" + g(e[i]);
84
+ }
85
+ }
86
+ t += r ? "]" : "}";
87
+ return t;
88
+ }
89
+ return JSON.stringify(e);
90
+ };
91
+
92
+ var k = e => JSON.parse(e, ((e, t) => {
93
+ if (typeof t === "string") {
94
+ if (t.startsWith(":base64:")) {
95
+ return i.from(t.slice(8), "base64");
96
+ }
97
+ return t.startsWith(":") ? t.slice(1) : t;
98
+ }
99
+ return t;
100
+ }));
101
+
102
+ var E = class {
103
+ _eventListeners;
104
+ _maxListeners;
105
+ constructor() {
106
+ this._eventListeners = new Map;
107
+ this._maxListeners = 100;
108
+ }
109
+ maxListeners() {
110
+ return this._maxListeners;
111
+ }
112
+ addListener(e, t) {
113
+ this.on(e, t);
114
+ }
115
+ on(e, t) {
116
+ if (!this._eventListeners.has(e)) {
117
+ this._eventListeners.set(e, []);
118
+ }
119
+ const r = this._eventListeners.get(e);
120
+ if (r) {
121
+ if (r.length >= this._maxListeners) {
122
+ console.warn(`MaxListenersExceededWarning: Possible event memory leak detected. ${r.length + 1} ${e} listeners added. Use setMaxListeners() to increase limit.`);
123
+ }
124
+ r.push(t);
125
+ }
126
+ return this;
127
+ }
128
+ removeListener(e, t) {
129
+ this.off(e, t);
130
+ }
131
+ off(e, t) {
132
+ const r = this._eventListeners.get(e) ?? [];
133
+ const n = r.indexOf(t);
134
+ if (n !== -1) {
135
+ r.splice(n, 1);
136
+ }
137
+ if (r.length === 0) {
138
+ this._eventListeners.delete(e);
139
+ }
140
+ }
141
+ once(e, t) {
142
+ const r = (...n) => {
143
+ t(...n);
144
+ this.off(e, r);
145
+ };
146
+ this.on(e, r);
147
+ }
148
+ emit(e, ...t) {
149
+ const r = this._eventListeners.get(e);
150
+ if (r && r.length > 0) {
151
+ for (const e of r) {
152
+ e(...t);
153
+ }
154
+ }
155
+ }
156
+ listeners(e) {
157
+ return this._eventListeners.get(e) ?? [];
158
+ }
159
+ removeAllListeners(e) {
160
+ if (e) {
161
+ this._eventListeners.delete(e);
162
+ } else {
163
+ this._eventListeners.clear();
164
+ }
165
+ }
166
+ setMaxListeners(e) {
167
+ this._maxListeners = e;
168
+ }
169
+ };
170
+
171
+ var _ = E;
172
+
173
+ var b = class extends _ {
174
+ _hookHandlers;
175
+ constructor() {
176
+ super();
177
+ this._hookHandlers = new Map;
178
+ }
179
+ addHandler(e, t) {
180
+ const r = this._hookHandlers.get(e);
181
+ if (r) {
182
+ r.push(t);
183
+ } else {
184
+ this._hookHandlers.set(e, [ t ]);
185
+ }
186
+ }
187
+ removeHandler(e, t) {
188
+ const r = this._hookHandlers.get(e);
189
+ if (r) {
190
+ const e = r.indexOf(t);
191
+ if (e !== -1) {
192
+ r.splice(e, 1);
193
+ }
194
+ }
195
+ }
196
+ trigger(e, t) {
197
+ const r = this._hookHandlers.get(e);
198
+ if (r) {
199
+ for (const n of r) {
200
+ try {
201
+ n(t);
202
+ } catch (t) {
203
+ this.emit("error", new Error(`Error in hook handler for event "${e}": ${t.message}`));
204
+ }
205
+ }
206
+ }
207
+ }
208
+ get handlers() {
209
+ return new Map(this._hookHandlers);
210
+ }
211
+ };
212
+
213
+ var x = b;
214
+
215
+ var P = class extends _ {
216
+ enabled=true;
217
+ hits=0;
218
+ misses=0;
219
+ sets=0;
220
+ deletes=0;
221
+ errors=0;
222
+ constructor(e) {
223
+ super();
224
+ if (e !== void 0) {
225
+ this.enabled = e;
226
+ }
227
+ this.reset();
228
+ }
229
+ hit() {
230
+ if (this.enabled) {
231
+ this.hits++;
232
+ }
233
+ }
234
+ miss() {
235
+ if (this.enabled) {
236
+ this.misses++;
237
+ }
238
+ }
239
+ set() {
240
+ if (this.enabled) {
241
+ this.sets++;
242
+ }
243
+ }
244
+ delete() {
245
+ if (this.enabled) {
246
+ this.deletes++;
247
+ }
248
+ }
249
+ reset() {
250
+ this.hits = 0;
251
+ this.misses = 0;
252
+ this.sets = 0;
253
+ this.deletes = 0;
254
+ this.errors = 0;
255
+ }
256
+ };
257
+
258
+ var O = P;
259
+
260
+ var D = (e => {
261
+ e["PRE_SET"] = "preSet";
262
+ e["POST_SET"] = "postSet";
263
+ e["PRE_GET"] = "preGet";
264
+ e["POST_GET"] = "postGet";
265
+ e["PRE_GET_MANY"] = "preGetMany";
266
+ e["POST_GET_MANY"] = "postGetMany";
267
+ e["PRE_DELETE"] = "preDelete";
268
+ e["POST_DELETE"] = "postDelete";
269
+ return e;
270
+ })(D || {});
271
+
272
+ var j = [ "sqlite", "postgres", "mysql", "mongo", "redis", "valkey", "etcd" ];
273
+
274
+ var M = class extends _ {
275
+ opts;
276
+ iterator;
277
+ hooks=new x;
278
+ stats=new O(false);
279
+ _ttl;
280
+ _namespace;
281
+ _store=new Map;
282
+ _serialize=g;
283
+ _deserialize=k;
284
+ _compression;
285
+ _useKeyPrefix=true;
286
+ constructor(e, t) {
287
+ super();
288
+ t ??= {};
289
+ e ??= {};
290
+ this.opts = {
291
+ namespace: "keyv",
292
+ serialize: g,
293
+ deserialize: k,
294
+ emitErrors: true,
295
+ store: new Map,
296
+ ...t
297
+ };
298
+ if (e && e.get) {
299
+ this.opts.store = e;
300
+ } else {
301
+ this.opts = {
302
+ ...this.opts,
303
+ ...e
304
+ };
305
+ }
306
+ this._store = this.opts.store ?? new Map;
307
+ this._compression = this.opts.compression;
308
+ this._serialize = this.opts.serialize;
309
+ this._deserialize = this.opts.deserialize;
310
+ if (this.opts.namespace) {
311
+ this._namespace = this.opts.namespace;
312
+ }
313
+ if (this._store) {
314
+ if (!this._isValidStorageAdapter(this._store)) {
315
+ throw new Error("Invalid storage adapter");
316
+ }
317
+ if (typeof this._store.on === "function") {
318
+ this._store.on("error", (e => this.emit("error", e)));
319
+ }
320
+ this._store.namespace = this._namespace;
321
+ if (typeof this._store[Symbol.iterator] === "function" && this._store instanceof Map) {
322
+ this.iterator = this.generateIterator(this._store);
323
+ } else if ("iterator" in this._store && this._store.opts && this._checkIterableAdapter()) {
324
+ this.iterator = this.generateIterator(this._store.iterator.bind(this._store));
325
+ }
326
+ }
327
+ if (this.opts.stats) {
328
+ this.stats.enabled = this.opts.stats;
329
+ }
330
+ if (this.opts.ttl) {
331
+ this._ttl = this.opts.ttl;
332
+ }
333
+ if (this.opts.useKeyPrefix !== void 0) {
334
+ this._useKeyPrefix = this.opts.useKeyPrefix;
335
+ }
336
+ }
337
+ get store() {
338
+ return this._store;
339
+ }
340
+ set store(e) {
341
+ if (this._isValidStorageAdapter(e)) {
342
+ this._store = e;
343
+ this.opts.store = e;
344
+ if (typeof e.on === "function") {
345
+ e.on("error", (e => this.emit("error", e)));
346
+ }
347
+ if (this._namespace) {
348
+ this._store.namespace = this._namespace;
349
+ }
350
+ if (typeof e[Symbol.iterator] === "function" && e instanceof Map) {
351
+ this.iterator = this.generateIterator(e);
352
+ } else if ("iterator" in e && e.opts && this._checkIterableAdapter()) {
353
+ this.iterator = this.generateIterator(e.iterator.bind(e));
354
+ }
355
+ } else {
356
+ throw new Error("Invalid storage adapter");
357
+ }
358
+ }
359
+ get compression() {
360
+ return this._compression;
361
+ }
362
+ set compression(e) {
363
+ this._compression = e;
364
+ }
365
+ get namespace() {
366
+ return this._namespace;
367
+ }
368
+ set namespace(e) {
369
+ this._namespace = e;
370
+ this.opts.namespace = e;
371
+ this._store.namespace = e;
372
+ if (this.opts.store) {
373
+ this.opts.store.namespace = e;
374
+ }
375
+ }
376
+ get ttl() {
377
+ return this._ttl;
378
+ }
379
+ set ttl(e) {
380
+ this.opts.ttl = e;
381
+ this._ttl = e;
382
+ }
383
+ get serialize() {
384
+ return this._serialize;
385
+ }
386
+ set serialize(e) {
387
+ this.opts.serialize = e;
388
+ this._serialize = e;
389
+ }
390
+ get deserialize() {
391
+ return this._deserialize;
392
+ }
393
+ set deserialize(e) {
394
+ this.opts.deserialize = e;
395
+ this._deserialize = e;
396
+ }
397
+ get useKeyPrefix() {
398
+ return this._useKeyPrefix;
399
+ }
400
+ set useKeyPrefix(e) {
401
+ this._useKeyPrefix = e;
402
+ this.opts.useKeyPrefix = e;
403
+ }
404
+ generateIterator(e) {
405
+ const t = async function*() {
406
+ for await (const [t, r] of typeof e === "function" ? e(this._store.namespace) : e) {
407
+ const e = await this.deserializeData(r);
408
+ if (this._useKeyPrefix && this._store.namespace && !t.includes(this._store.namespace)) {
409
+ continue;
410
+ }
411
+ if (typeof e.expires === "number" && Date.now() > e.expires) {
412
+ this.delete(t);
413
+ continue;
414
+ }
415
+ yield [ this._getKeyUnprefix(t), e.value ];
416
+ }
417
+ };
418
+ return t.bind(this);
419
+ }
420
+ _checkIterableAdapter() {
421
+ return j.includes(this._store.opts.dialect) || j.some((e => this._store.opts.url.includes(e)));
422
+ }
423
+ _getKeyPrefix(e) {
424
+ if (!this._useKeyPrefix) {
425
+ return e;
426
+ }
427
+ if (!this._namespace) {
428
+ return e;
429
+ }
430
+ return `${this._namespace}:${e}`;
431
+ }
432
+ _getKeyPrefixArray(e) {
433
+ if (!this._useKeyPrefix) {
434
+ return e;
435
+ }
436
+ if (!this._namespace) {
437
+ return e;
438
+ }
439
+ return e.map((e => `${this._namespace}:${e}`));
440
+ }
441
+ _getKeyUnprefix(e) {
442
+ if (!this._useKeyPrefix) {
443
+ return e;
444
+ }
445
+ return e.split(":").splice(1).join(":");
446
+ }
447
+ _isValidStorageAdapter(e) {
448
+ return e instanceof Map || typeof e.get === "function" && typeof e.set === "function" && typeof e.delete === "function" && typeof e.clear === "function";
449
+ }
450
+ async get(e, t) {
451
+ const {store: r} = this.opts;
452
+ const n = Array.isArray(e);
453
+ const i = n ? this._getKeyPrefixArray(e) : this._getKeyPrefix(e);
454
+ const s = e => typeof e.expires === "number" && Date.now() > e.expires;
455
+ if (n) {
456
+ if (t?.raw === true) {
457
+ return this.getMany(e, {
458
+ raw: true
459
+ });
460
+ }
461
+ return this.getMany(e, {
462
+ raw: false
463
+ });
464
+ }
465
+ this.hooks.trigger("preGet", {
466
+ key: i
467
+ });
468
+ const o = await r.get(i);
469
+ const c = typeof o === "string" || this.opts.compression ? await this.deserializeData(o) : o;
470
+ if (c === void 0 || c === null) {
471
+ this.stats.miss();
472
+ return void 0;
473
+ }
474
+ if (s(c)) {
475
+ await this.delete(e);
476
+ this.stats.miss();
477
+ return void 0;
478
+ }
479
+ this.hooks.trigger("postGet", {
480
+ key: i,
481
+ value: c
482
+ });
483
+ this.stats.hit();
484
+ return t?.raw ? c : c.value;
485
+ }
486
+ async getMany(e, t) {
487
+ const {store: r} = this.opts;
488
+ const n = this._getKeyPrefixArray(e);
489
+ const i = e => typeof e.expires === "number" && Date.now() > e.expires;
490
+ this.hooks.trigger("preGetMany", {
491
+ keys: n
492
+ });
493
+ if (r.getMany === void 0) {
494
+ const e = n.map((async e => {
495
+ const n = await r.get(e);
496
+ const s = typeof n === "string" || this.opts.compression ? await this.deserializeData(n) : n;
497
+ if (s === void 0 || s === null) {
498
+ return void 0;
499
+ }
500
+ if (i(s)) {
501
+ await this.delete(e);
502
+ return void 0;
503
+ }
504
+ return t?.raw ? s : s.value;
505
+ }));
506
+ const s = await Promise.allSettled(e);
507
+ const o = s.map((e => e.value));
508
+ this.hooks.trigger("postGetMany", o);
509
+ if (o.length > 0) {
510
+ this.stats.hit();
511
+ }
512
+ return o;
513
+ }
514
+ const s = await r.getMany(n);
515
+ const o = [];
516
+ for (const r in s) {
517
+ let n = s[r];
518
+ if (typeof n === "string") {
519
+ n = await this.deserializeData(n);
520
+ }
521
+ if (n === void 0 || n === null) {
522
+ o.push(void 0);
523
+ continue;
524
+ }
525
+ if (i(n)) {
526
+ await this.delete(e[r]);
527
+ o.push(void 0);
528
+ continue;
529
+ }
530
+ const c = t?.raw ? n : n.value;
531
+ o.push(c);
532
+ }
533
+ this.hooks.trigger("postGetMany", o);
534
+ if (o.length > 0) {
535
+ this.stats.hit();
536
+ }
537
+ return o;
538
+ }
539
+ async set(e, t, r) {
540
+ const n = {
541
+ key: e,
542
+ value: t,
543
+ ttl: r
544
+ };
545
+ this.hooks.trigger("preSet", n);
546
+ const i = this._getKeyPrefix(n.key);
547
+ n.ttl ??= this._ttl;
548
+ if (n.ttl === 0) {
549
+ n.ttl = void 0;
550
+ }
551
+ const {store: s} = this.opts;
552
+ const o = typeof n.ttl === "number" ? Date.now() + n.ttl : void 0;
553
+ if (typeof n.value === "symbol") {
554
+ this.emit("error", "symbol cannot be serialized");
555
+ throw new Error("symbol cannot be serialized");
556
+ }
557
+ const c = {
558
+ value: n.value,
559
+ expires: o
560
+ };
561
+ const a = await this.serializeData(c);
562
+ let f = true;
563
+ try {
564
+ const e = await s.set(i, a, n.ttl);
565
+ if (typeof e === "boolean") {
566
+ f = e;
567
+ }
568
+ } catch (e) {
569
+ f = false;
570
+ this.emit("error", e);
571
+ }
572
+ this.hooks.trigger("postSet", {
573
+ key: i,
574
+ value: a,
575
+ ttl: r
576
+ });
577
+ this.stats.set();
578
+ return f;
579
+ }
580
+ async setMany(e) {
581
+ let t = [];
582
+ try {
583
+ if (this._store.setMany !== void 0) {
584
+ const r = await Promise.all(e.map((async ({key: e, value: t, ttl: r}) => {
585
+ r ??= this._ttl;
586
+ if (r === 0) {
587
+ r = void 0;
588
+ }
589
+ const n = typeof r === "number" ? Date.now() + r : void 0;
590
+ if (typeof t === "symbol") {
591
+ this.emit("error", "symbol cannot be serialized");
592
+ throw new Error("symbol cannot be serialized");
593
+ }
594
+ const i = {
595
+ value: t,
596
+ expires: n
597
+ };
598
+ const s = await this.serializeData(i);
599
+ return {
600
+ key: e,
601
+ value: s,
602
+ ttl: r
603
+ };
604
+ })));
605
+ t = await this._store.setMany(r);
606
+ }
607
+ const r = [];
608
+ for (const t of e) {
609
+ r.push(this.set(t.key, t.value, t.ttl));
610
+ }
611
+ const n = await Promise.allSettled(r);
612
+ t = n.map((e => e.value));
613
+ } catch (r) {
614
+ this.emit("error", r);
615
+ t = e.map((() => false));
616
+ }
617
+ return t;
618
+ }
619
+ async delete(e) {
620
+ const {store: t} = this.opts;
621
+ if (Array.isArray(e)) {
622
+ return this.deleteMany(e);
623
+ }
624
+ const r = this._getKeyPrefix(e);
625
+ this.hooks.trigger("preDelete", {
626
+ key: r
627
+ });
628
+ let n = true;
629
+ try {
630
+ const e = await t.delete(r);
631
+ if (typeof e === "boolean") {
632
+ n = e;
633
+ }
634
+ } catch (e) {
635
+ n = false;
636
+ this.emit("error", e);
637
+ }
638
+ this.hooks.trigger("postDelete", {
639
+ key: r,
640
+ value: n
641
+ });
642
+ this.stats.delete();
643
+ return n;
644
+ }
645
+ async deleteMany(e) {
646
+ try {
647
+ const {store: t} = this.opts;
648
+ const r = this._getKeyPrefixArray(e);
649
+ this.hooks.trigger("preDelete", {
650
+ key: r
651
+ });
652
+ if (t.deleteMany !== void 0) {
653
+ return await t.deleteMany(r);
654
+ }
655
+ const n = r.map((async e => t.delete(e)));
656
+ const i = await Promise.allSettled(n);
657
+ const s = i.every((e => e.value === true));
658
+ this.hooks.trigger("postDelete", {
659
+ key: r,
660
+ value: s
661
+ });
662
+ return s;
663
+ } catch (e) {
664
+ this.emit("error", e);
665
+ return false;
666
+ }
667
+ }
668
+ async clear() {
669
+ this.emit("clear");
670
+ const {store: e} = this.opts;
671
+ try {
672
+ await e.clear();
673
+ } catch (e) {
674
+ this.emit("error", e);
675
+ }
676
+ }
677
+ async has(e) {
678
+ if (Array.isArray(e)) {
679
+ return this.hasMany(e);
680
+ }
681
+ const t = this._getKeyPrefix(e);
682
+ const {store: r} = this.opts;
683
+ if (r.has !== void 0 && !(r instanceof Map)) {
684
+ return r.has(t);
685
+ }
686
+ let n;
687
+ try {
688
+ n = await r.get(t);
689
+ } catch (e) {
690
+ this.emit("error", e);
691
+ }
692
+ if (n) {
693
+ const e = await this.deserializeData(n);
694
+ if (e) {
695
+ if (e.expires === void 0 || e.expires === null) {
696
+ return true;
697
+ }
698
+ return e.expires > Date.now();
699
+ }
700
+ }
701
+ return false;
702
+ }
703
+ async hasMany(e) {
704
+ const t = this._getKeyPrefixArray(e);
705
+ const {store: r} = this.opts;
706
+ if (r.hasMany !== void 0) {
707
+ return r.hasMany(t);
708
+ }
709
+ const n = [];
710
+ for (const e of t) {
711
+ n.push(await this.has(e));
712
+ }
713
+ return n;
714
+ }
715
+ async disconnect() {
716
+ const {store: e} = this.opts;
717
+ this.emit("disconnect");
718
+ if (typeof e.disconnect === "function") {
719
+ return e.disconnect();
720
+ }
721
+ }
722
+ emit(e, ...t) {
723
+ if (e === "error" && !this.opts.emitErrors) {
724
+ return;
725
+ }
726
+ super.emit(e, ...t);
727
+ }
728
+ async serializeData(e) {
729
+ if (!this._serialize) {
730
+ return e;
731
+ }
732
+ if (this._compression?.compress) {
733
+ return this._serialize({
734
+ value: await this._compression.compress(e.value),
735
+ expires: e.expires
736
+ });
737
+ }
738
+ return this._serialize(e);
739
+ }
740
+ async deserializeData(e) {
741
+ if (!this._deserialize) {
742
+ return e;
743
+ }
744
+ if (this._compression?.decompress && typeof e === "string") {
745
+ const t = await this._deserialize(e);
746
+ return {
747
+ value: await this._compression.decompress(t?.value),
748
+ expires: t?.expires
749
+ };
750
+ }
751
+ if (typeof e === "string") {
752
+ return this._deserialize(e);
753
+ }
754
+ return void 0;
755
+ }
756
+ };
757
+
758
+ var F = M;
759
+
760
+ var N = new Map;
761
+
762
+ function T(e) {
763
+ return N.has(e);
764
+ }
765
+
766
+ function L(e) {
767
+ N.set(e, []);
768
+ }
769
+
770
+ function R(e) {
771
+ N.delete(e);
772
+ }
773
+
774
+ function I(e, t) {
775
+ const r = z(e);
776
+ r.push(t);
777
+ N.set(e, r);
778
+ }
779
+
780
+ function z(e) {
781
+ return N.get(e) ?? [];
782
+ }
783
+
784
+ async function A(e) {
785
+ return new Promise(((t, r) => {
786
+ const n = {
787
+ resolve: t,
788
+ reject: r
789
+ };
790
+ I(e, n);
791
+ }));
792
+ }
793
+
794
+ function C(e) {
795
+ const t = z(e);
796
+ R(e);
797
+ return t;
798
+ }
799
+
800
+ function K(e) {
801
+ const {key: t, error: r, result: n} = e;
802
+ for (const e of C(t)) {
803
+ if (r) {
804
+ e.reject(r);
805
+ } else {
806
+ e.resolve(n);
807
+ }
808
+ }
809
+ }
810
+
811
+ async function q(e, t) {
812
+ if (!T(e)) {
813
+ L(e);
814
+ try {
815
+ const r = await Promise.resolve(t());
816
+ K({
817
+ key: e,
818
+ result: r
819
+ });
820
+ return r;
821
+ } catch (t) {
822
+ K({
823
+ key: e,
824
+ error: t
825
+ });
826
+ throw t;
827
+ }
828
+ }
829
+ return A(e);
830
+ }
831
+
832
+ function J(e) {
833
+ return e !== null && typeof e === "object" && !Array.isArray(e);
834
+ }
835
+
836
+ function W(e, ...t) {
837
+ return typeof e === "function" ? e(...t) : e;
838
+ }
839
+
840
+ function $(e, t) {
841
+ return typeof e === "number" && typeof t === "number" ? e < t : false;
842
+ }
843
+
844
+ var B = class {
845
+ opts;
846
+ namespace;
847
+ _cache;
848
+ constructor(e) {
849
+ this._cache = e;
850
+ }
851
+ async get(e) {
852
+ const t = await this._cache.get(e);
853
+ if (t !== void 0 && t !== null) {
854
+ return t;
855
+ }
856
+ return void 0;
857
+ }
858
+ async set(e, t, r) {
859
+ await this._cache.set(e, t, r);
860
+ return true;
861
+ }
862
+ async delete(e) {
863
+ await this._cache.del(e);
864
+ return true;
865
+ }
866
+ async clear() {
867
+ return this._cache.reset?.();
868
+ }
869
+ async has(e) {
870
+ const t = await this._cache.get(e);
871
+ if (t) {
872
+ return true;
873
+ }
874
+ return false;
875
+ }
876
+ async getMany(e) {
877
+ return this._cache.mget(...e).then((e => e.map((e => e))));
878
+ }
879
+ async deleteMany(e) {
880
+ await this._cache.mdel(...e);
881
+ return true;
882
+ }
883
+ on(e, t) {
884
+ this._cache.on?.(e, t);
885
+ return this;
886
+ }
887
+ async disconnect() {
888
+ await (this._cache.disconnect?.());
889
+ }
890
+ };
891
+
892
+ var G = e => {
893
+ const t = new r;
894
+ const n = new M;
895
+ n.serialize = void 0;
896
+ n.deserialize = void 0;
897
+ const i = e?.stores?.length ? e.stores : [ n ];
898
+ const s = e?.nonBlocking ?? false;
899
+ const o = e?.cacheId ?? Math.random().toString(36).slice(2);
900
+ const c = async e => {
901
+ let r;
902
+ if (s) {
903
+ try {
904
+ r = await Promise.race(i.map((async t => t.get(e))));
905
+ if (r === void 0) {
906
+ return void 0;
907
+ }
908
+ } catch (r) {
909
+ t.emit("get", {
910
+ key: e,
911
+ error: r
912
+ });
913
+ }
914
+ } else {
915
+ for (const n of i) {
916
+ try {
917
+ const i = await n.get(e);
918
+ if (i !== void 0) {
919
+ r = i;
920
+ t.emit("get", {
921
+ key: e,
922
+ value: r
923
+ });
924
+ break;
925
+ }
926
+ } catch (r) {
927
+ t.emit("get", {
928
+ key: e,
929
+ error: r
930
+ });
931
+ }
932
+ }
933
+ }
934
+ return r;
935
+ };
936
+ const a = async e => {
937
+ const t = [];
938
+ for (const r of e) {
939
+ const e = await c(r);
940
+ t.push(e);
941
+ }
942
+ return t;
943
+ };
944
+ const f = async e => {
945
+ let r;
946
+ if (s) {
947
+ try {
948
+ r = await Promise.race(i.map((async t => t.get(e, {
949
+ raw: true
950
+ }))));
951
+ if (r === void 0) {
952
+ return void 0;
953
+ }
954
+ } catch (r) {
955
+ t.emit("ttl", {
956
+ key: e,
957
+ error: r
958
+ });
959
+ }
960
+ } else {
961
+ for (const n of i) {
962
+ try {
963
+ const i = await n.get(e, {
964
+ raw: true
965
+ });
966
+ if (i !== void 0) {
967
+ r = i;
968
+ t.emit("ttl", {
969
+ key: e,
970
+ value: r
971
+ });
972
+ break;
973
+ }
974
+ } catch (r) {
975
+ t.emit("ttl", {
976
+ key: e,
977
+ error: r
978
+ });
979
+ }
980
+ }
981
+ }
982
+ if (r?.expires) {
983
+ return r.expires;
984
+ }
985
+ return void 0;
986
+ };
987
+ const u = async (r, n, i, o) => {
988
+ try {
989
+ if (s) {
990
+ Promise.all(r.map((async t => t.set(n, i, o ?? e?.ttl))));
991
+ t.emit("set", {
992
+ key: n,
993
+ value: i
994
+ });
995
+ return i;
996
+ }
997
+ await Promise.all(r.map((async t => t.set(n, i, o ?? e?.ttl))));
998
+ t.emit("set", {
999
+ key: n,
1000
+ value: i
1001
+ });
1002
+ return i;
1003
+ } catch (e) {
1004
+ t.emit("set", {
1005
+ key: n,
1006
+ value: i,
1007
+ error: e
1008
+ });
1009
+ return Promise.reject(e);
1010
+ }
1011
+ };
1012
+ const l = async (e, r) => {
1013
+ const n = r.map((({key: e, value: t, ttl: r}) => ({
1014
+ key: e,
1015
+ value: t,
1016
+ ttl: r
1017
+ })));
1018
+ try {
1019
+ const n = [];
1020
+ for (const t of r) {
1021
+ n.push(...e.map((async e => e.set(t.key, t.value, t.ttl))));
1022
+ }
1023
+ if (s) {
1024
+ Promise.all(n);
1025
+ t.emit("mset", {
1026
+ list: r
1027
+ });
1028
+ return r;
1029
+ }
1030
+ await Promise.all(n);
1031
+ t.emit("mset", {
1032
+ list: r
1033
+ });
1034
+ return r;
1035
+ } catch (e) {
1036
+ t.emit("mset", {
1037
+ list: r,
1038
+ error: e
1039
+ });
1040
+ return Promise.reject(e);
1041
+ }
1042
+ };
1043
+ const h = async e => {
1044
+ try {
1045
+ if (s) {
1046
+ Promise.all(i.map((async t => t.delete(e))));
1047
+ t.emit("del", {
1048
+ key: e
1049
+ });
1050
+ return true;
1051
+ }
1052
+ await Promise.all(i.map((async t => t.delete(e))));
1053
+ t.emit("del", {
1054
+ key: e
1055
+ });
1056
+ return true;
1057
+ } catch (r) {
1058
+ t.emit("del", {
1059
+ key: e,
1060
+ error: r
1061
+ });
1062
+ return Promise.reject(r);
1063
+ }
1064
+ };
1065
+ const p = async e => {
1066
+ try {
1067
+ const r = [];
1068
+ for (const t of e) {
1069
+ r.push(...i.map((async e => e.delete(t))));
1070
+ }
1071
+ if (s) {
1072
+ Promise.all(r);
1073
+ t.emit("mdel", {
1074
+ keys: e
1075
+ });
1076
+ return true;
1077
+ }
1078
+ await Promise.all(r);
1079
+ t.emit("mdel", {
1080
+ keys: e
1081
+ });
1082
+ return true;
1083
+ } catch (r) {
1084
+ t.emit("mdel", {
1085
+ keys: e,
1086
+ error: r
1087
+ });
1088
+ return Promise.reject(r);
1089
+ }
1090
+ };
1091
+ const y = async () => {
1092
+ try {
1093
+ if (s) {
1094
+ Promise.all(i.map((async e => e.clear())));
1095
+ t.emit("clear");
1096
+ return true;
1097
+ }
1098
+ await Promise.all(i.map((async e => e.clear())));
1099
+ t.emit("clear");
1100
+ return true;
1101
+ } catch (e) {
1102
+ t.emit("clear", e);
1103
+ return Promise.reject(e);
1104
+ }
1105
+ };
1106
+ const d = async (r, n, s, c) => q(`${o}::${r}`, (async () => {
1107
+ let a;
1108
+ let f;
1109
+ let l = 0;
1110
+ let h;
1111
+ const {ttl: p, refreshThreshold: y, raw: d} = J(s) ? s : {
1112
+ ttl: s,
1113
+ refreshThreshold: c
1114
+ };
1115
+ const m = t => W(p, t) ?? e?.ttl;
1116
+ for (;l < i.length; l++) {
1117
+ try {
1118
+ const e = await i[l].get(r, {
1119
+ raw: true
1120
+ });
1121
+ if (e !== void 0) {
1122
+ a = e.value;
1123
+ f = e;
1124
+ if (typeof e.expires === "number") {
1125
+ h = Math.max(0, e.expires - Date.now());
1126
+ }
1127
+ break;
1128
+ }
1129
+ } catch {}
1130
+ }
1131
+ if (a === void 0) {
1132
+ const e = await n();
1133
+ const t = m(e);
1134
+ await u(i, r, e, t);
1135
+ return d ? {
1136
+ value: e,
1137
+ expires: Date.now() + t
1138
+ } : e;
1139
+ }
1140
+ const v = $(h, W(y, a) ?? e?.refreshThreshold);
1141
+ if (v) {
1142
+ q(`+++${o}__${r}`, n).then((async n => {
1143
+ try {
1144
+ await u(e?.refreshAllStores ? i : i.slice(0, l + 1), r, n, m(n));
1145
+ t.emit("refresh", {
1146
+ key: r,
1147
+ value: n
1148
+ });
1149
+ } catch (e) {
1150
+ t.emit("refresh", {
1151
+ key: r,
1152
+ value: a,
1153
+ error: e
1154
+ });
1155
+ }
1156
+ })).catch((e => {
1157
+ t.emit("refresh", {
1158
+ key: r,
1159
+ value: a,
1160
+ error: e
1161
+ });
1162
+ }));
1163
+ }
1164
+ if (!v && l > 0) {
1165
+ await u(i.slice(0, l), r, a, m(a));
1166
+ }
1167
+ return d ? f : a;
1168
+ }));
1169
+ const m = (e, r) => t.addListener(e, r);
1170
+ const v = (e, r) => t.removeListener(e, r);
1171
+ const w = async () => {
1172
+ try {
1173
+ await Promise.all(i.map((async e => e.disconnect())));
1174
+ } catch (e) {
1175
+ return Promise.reject(e);
1176
+ }
1177
+ };
1178
+ const S = () => o;
1179
+ return {
1180
+ get: c,
1181
+ mget: a,
1182
+ ttl: f,
1183
+ set: async (e, t, r) => u(i, e, t, r),
1184
+ mset: async e => l(i, e),
1185
+ del: h,
1186
+ mdel: p,
1187
+ clear: y,
1188
+ wrap: d,
1189
+ on: m,
1190
+ off: v,
1191
+ disconnect: w,
1192
+ cacheId: S,
1193
+ stores: i
1194
+ };
1195
+ };
1196
+
1197
+ var U = {};
1198
+
1199
+ var Y;
1200
+
1201
+ var H;
1202
+
1203
+ function V() {
1204
+ if (H) return Y;
1205
+ H = 1;
1206
+ "use strict";
1207
+ function e() {
1208
+ const e = [].slice.call(arguments).filter((e => e));
1209
+ const t = e.shift();
1210
+ e.forEach((e => {
1211
+ Object.keys(e).forEach((r => {
1212
+ t[r] = e[r];
1213
+ }));
1214
+ }));
1215
+ return t;
1216
+ }
1217
+ Y = e;
1218
+ return Y;
1219
+ }
1220
+
1221
+ var X = {};
1222
+
1223
+ var Q = {};
1224
+
1225
+ var Z;
1226
+
1227
+ function ee() {
1228
+ if (Z) return Q;
1229
+ Z = 1;
1230
+ "use strict";
1231
+ Q.fromCallback = function(e) {
1232
+ return Object.defineProperty((function() {
1233
+ if (typeof arguments[arguments.length - 1] === "function") e.apply(this, arguments); else {
1234
+ return new Promise(((t, r) => {
1235
+ arguments[arguments.length] = (e, n) => {
1236
+ if (e) return r(e);
1237
+ t(n);
1238
+ };
1239
+ arguments.length++;
1240
+ e.apply(this, arguments);
1241
+ }));
1242
+ }
1243
+ }), "name", {
1244
+ value: e.name
1245
+ });
1246
+ };
1247
+ Q.fromPromise = function(e) {
1248
+ return Object.defineProperty((function() {
1249
+ const t = arguments[arguments.length - 1];
1250
+ if (typeof t !== "function") return e.apply(this, arguments); else e.apply(this, arguments).then((e => t(null, e)), t);
1251
+ }), "name", {
1252
+ value: e.name
1253
+ });
1254
+ };
1255
+ return Q;
1256
+ }
1257
+
1258
+ var te;
1259
+
1260
+ var re;
1261
+
1262
+ function ne() {
1263
+ if (re) return te;
1264
+ re = 1;
1265
+ var e = a;
1266
+ var t = process.cwd;
1267
+ var r = null;
1268
+ var n = process.env.GRACEFUL_FS_PLATFORM || process.platform;
1269
+ process.cwd = function() {
1270
+ if (!r) r = t.call(process);
1271
+ return r;
1272
+ };
1273
+ try {
1274
+ process.cwd();
1275
+ } catch (e) {}
1276
+ if (typeof process.chdir === "function") {
1277
+ var i = process.chdir;
1278
+ process.chdir = function(e) {
1279
+ r = null;
1280
+ i.call(process, e);
1281
+ };
1282
+ if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, i);
1283
+ }
1284
+ te = s;
1285
+ function s(t) {
1286
+ if (e.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
1287
+ r(t);
1288
+ }
1289
+ if (!t.lutimes) {
1290
+ i(t);
1291
+ }
1292
+ t.chown = c(t.chown);
1293
+ t.fchown = c(t.fchown);
1294
+ t.lchown = c(t.lchown);
1295
+ t.chmod = s(t.chmod);
1296
+ t.fchmod = s(t.fchmod);
1297
+ t.lchmod = s(t.lchmod);
1298
+ t.chownSync = a(t.chownSync);
1299
+ t.fchownSync = a(t.fchownSync);
1300
+ t.lchownSync = a(t.lchownSync);
1301
+ t.chmodSync = o(t.chmodSync);
1302
+ t.fchmodSync = o(t.fchmodSync);
1303
+ t.lchmodSync = o(t.lchmodSync);
1304
+ t.stat = f(t.stat);
1305
+ t.fstat = f(t.fstat);
1306
+ t.lstat = f(t.lstat);
1307
+ t.statSync = u(t.statSync);
1308
+ t.fstatSync = u(t.fstatSync);
1309
+ t.lstatSync = u(t.lstatSync);
1310
+ if (t.chmod && !t.lchmod) {
1311
+ t.lchmod = function(e, t, r) {
1312
+ if (r) process.nextTick(r);
1313
+ };
1314
+ t.lchmodSync = function() {};
1315
+ }
1316
+ if (t.chown && !t.lchown) {
1317
+ t.lchown = function(e, t, r, n) {
1318
+ if (n) process.nextTick(n);
1319
+ };
1320
+ t.lchownSync = function() {};
1321
+ }
1322
+ if (n === "win32") {
1323
+ t.rename = typeof t.rename !== "function" ? t.rename : function(e) {
1324
+ function r(r, n, i) {
1325
+ var s = Date.now();
1326
+ var o = 0;
1327
+ e(r, n, (function c(a) {
1328
+ if (a && (a.code === "EACCES" || a.code === "EPERM" || a.code === "EBUSY") && Date.now() - s < 6e4) {
1329
+ setTimeout((function() {
1330
+ t.stat(n, (function(t, s) {
1331
+ if (t && t.code === "ENOENT") e(r, n, c); else i(a);
1332
+ }));
1333
+ }), o);
1334
+ if (o < 100) o += 10;
1335
+ return;
1336
+ }
1337
+ if (i) i(a);
1338
+ }));
1339
+ }
1340
+ if (Object.setPrototypeOf) Object.setPrototypeOf(r, e);
1341
+ return r;
1342
+ }(t.rename);
1343
+ }
1344
+ t.read = typeof t.read !== "function" ? t.read : function(e) {
1345
+ function r(r, n, i, s, o, c) {
1346
+ var a;
1347
+ if (c && typeof c === "function") {
1348
+ var f = 0;
1349
+ a = function(u, l, h) {
1350
+ if (u && u.code === "EAGAIN" && f < 10) {
1351
+ f++;
1352
+ return e.call(t, r, n, i, s, o, a);
1353
+ }
1354
+ c.apply(this, arguments);
1355
+ };
1356
+ }
1357
+ return e.call(t, r, n, i, s, o, a);
1358
+ }
1359
+ if (Object.setPrototypeOf) Object.setPrototypeOf(r, e);
1360
+ return r;
1361
+ }(t.read);
1362
+ t.readSync = typeof t.readSync !== "function" ? t.readSync : function(e) {
1363
+ return function(r, n, i, s, o) {
1364
+ var c = 0;
1365
+ while (true) {
1366
+ try {
1367
+ return e.call(t, r, n, i, s, o);
1368
+ } catch (e) {
1369
+ if (e.code === "EAGAIN" && c < 10) {
1370
+ c++;
1371
+ continue;
1372
+ }
1373
+ throw e;
1374
+ }
1375
+ }
1376
+ };
1377
+ }(t.readSync);
1378
+ function r(t) {
1379
+ t.lchmod = function(r, n, i) {
1380
+ t.open(r, e.O_WRONLY | e.O_SYMLINK, n, (function(e, r) {
1381
+ if (e) {
1382
+ if (i) i(e);
1383
+ return;
1384
+ }
1385
+ t.fchmod(r, n, (function(e) {
1386
+ t.close(r, (function(t) {
1387
+ if (i) i(e || t);
1388
+ }));
1389
+ }));
1390
+ }));
1391
+ };
1392
+ t.lchmodSync = function(r, n) {
1393
+ var i = t.openSync(r, e.O_WRONLY | e.O_SYMLINK, n);
1394
+ var s = true;
1395
+ var o;
1396
+ try {
1397
+ o = t.fchmodSync(i, n);
1398
+ s = false;
1399
+ } finally {
1400
+ if (s) {
1401
+ try {
1402
+ t.closeSync(i);
1403
+ } catch (e) {}
1404
+ } else {
1405
+ t.closeSync(i);
1406
+ }
1407
+ }
1408
+ return o;
1409
+ };
1410
+ }
1411
+ function i(t) {
1412
+ if (e.hasOwnProperty("O_SYMLINK") && t.futimes) {
1413
+ t.lutimes = function(r, n, i, s) {
1414
+ t.open(r, e.O_SYMLINK, (function(e, r) {
1415
+ if (e) {
1416
+ if (s) s(e);
1417
+ return;
1418
+ }
1419
+ t.futimes(r, n, i, (function(e) {
1420
+ t.close(r, (function(t) {
1421
+ if (s) s(e || t);
1422
+ }));
1423
+ }));
1424
+ }));
1425
+ };
1426
+ t.lutimesSync = function(r, n, i) {
1427
+ var s = t.openSync(r, e.O_SYMLINK);
1428
+ var o;
1429
+ var c = true;
1430
+ try {
1431
+ o = t.futimesSync(s, n, i);
1432
+ c = false;
1433
+ } finally {
1434
+ if (c) {
1435
+ try {
1436
+ t.closeSync(s);
1437
+ } catch (e) {}
1438
+ } else {
1439
+ t.closeSync(s);
1440
+ }
1441
+ }
1442
+ return o;
1443
+ };
1444
+ } else if (t.futimes) {
1445
+ t.lutimes = function(e, t, r, n) {
1446
+ if (n) process.nextTick(n);
1447
+ };
1448
+ t.lutimesSync = function() {};
1449
+ }
1450
+ }
1451
+ function s(e) {
1452
+ if (!e) return e;
1453
+ return function(r, n, i) {
1454
+ return e.call(t, r, n, (function(e) {
1455
+ if (l(e)) e = null;
1456
+ if (i) i.apply(this, arguments);
1457
+ }));
1458
+ };
1459
+ }
1460
+ function o(e) {
1461
+ if (!e) return e;
1462
+ return function(r, n) {
1463
+ try {
1464
+ return e.call(t, r, n);
1465
+ } catch (e) {
1466
+ if (!l(e)) throw e;
1467
+ }
1468
+ };
1469
+ }
1470
+ function c(e) {
1471
+ if (!e) return e;
1472
+ return function(r, n, i, s) {
1473
+ return e.call(t, r, n, i, (function(e) {
1474
+ if (l(e)) e = null;
1475
+ if (s) s.apply(this, arguments);
1476
+ }));
1477
+ };
1478
+ }
1479
+ function a(e) {
1480
+ if (!e) return e;
1481
+ return function(r, n, i) {
1482
+ try {
1483
+ return e.call(t, r, n, i);
1484
+ } catch (e) {
1485
+ if (!l(e)) throw e;
1486
+ }
1487
+ };
1488
+ }
1489
+ function f(e) {
1490
+ if (!e) return e;
1491
+ return function(r, n, i) {
1492
+ if (typeof n === "function") {
1493
+ i = n;
1494
+ n = null;
1495
+ }
1496
+ function s(e, t) {
1497
+ if (t) {
1498
+ if (t.uid < 0) t.uid += 4294967296;
1499
+ if (t.gid < 0) t.gid += 4294967296;
1500
+ }
1501
+ if (i) i.apply(this, arguments);
1502
+ }
1503
+ return n ? e.call(t, r, n, s) : e.call(t, r, s);
1504
+ };
1505
+ }
1506
+ function u(e) {
1507
+ if (!e) return e;
1508
+ return function(r, n) {
1509
+ var i = n ? e.call(t, r, n) : e.call(t, r);
1510
+ if (i) {
1511
+ if (i.uid < 0) i.uid += 4294967296;
1512
+ if (i.gid < 0) i.gid += 4294967296;
1513
+ }
1514
+ return i;
1515
+ };
1516
+ }
1517
+ function l(e) {
1518
+ if (!e) return true;
1519
+ if (e.code === "ENOSYS") return true;
1520
+ var t = !process.getuid || process.getuid() !== 0;
1521
+ if (t) {
1522
+ if (e.code === "EINVAL" || e.code === "EPERM") return true;
1523
+ }
1524
+ return false;
1525
+ }
1526
+ }
1527
+ return te;
1528
+ }
1529
+
1530
+ var ie;
1531
+
1532
+ var se;
1533
+
1534
+ function oe() {
1535
+ if (se) return ie;
1536
+ se = 1;
1537
+ var e = f.Stream;
1538
+ ie = t;
1539
+ function t(t) {
1540
+ return {
1541
+ ReadStream: r,
1542
+ WriteStream: n
1543
+ };
1544
+ function r(n, i) {
1545
+ if (!(this instanceof r)) return new r(n, i);
1546
+ e.call(this);
1547
+ var s = this;
1548
+ this.path = n;
1549
+ this.fd = null;
1550
+ this.readable = true;
1551
+ this.paused = false;
1552
+ this.flags = "r";
1553
+ this.mode = 438;
1554
+ this.bufferSize = 64 * 1024;
1555
+ i = i || {};
1556
+ var o = Object.keys(i);
1557
+ for (var c = 0, a = o.length; c < a; c++) {
1558
+ var f = o[c];
1559
+ this[f] = i[f];
1560
+ }
1561
+ if (this.encoding) this.setEncoding(this.encoding);
1562
+ if (this.start !== undefined) {
1563
+ if ("number" !== typeof this.start) {
1564
+ throw TypeError("start must be a Number");
1565
+ }
1566
+ if (this.end === undefined) {
1567
+ this.end = Infinity;
1568
+ } else if ("number" !== typeof this.end) {
1569
+ throw TypeError("end must be a Number");
1570
+ }
1571
+ if (this.start > this.end) {
1572
+ throw new Error("start must be <= end");
1573
+ }
1574
+ this.pos = this.start;
1575
+ }
1576
+ if (this.fd !== null) {
1577
+ process.nextTick((function() {
1578
+ s._read();
1579
+ }));
1580
+ return;
1581
+ }
1582
+ t.open(this.path, this.flags, this.mode, (function(e, t) {
1583
+ if (e) {
1584
+ s.emit("error", e);
1585
+ s.readable = false;
1586
+ return;
1587
+ }
1588
+ s.fd = t;
1589
+ s.emit("open", t);
1590
+ s._read();
1591
+ }));
1592
+ }
1593
+ function n(r, i) {
1594
+ if (!(this instanceof n)) return new n(r, i);
1595
+ e.call(this);
1596
+ this.path = r;
1597
+ this.fd = null;
1598
+ this.writable = true;
1599
+ this.flags = "w";
1600
+ this.encoding = "binary";
1601
+ this.mode = 438;
1602
+ this.bytesWritten = 0;
1603
+ i = i || {};
1604
+ var s = Object.keys(i);
1605
+ for (var o = 0, c = s.length; o < c; o++) {
1606
+ var a = s[o];
1607
+ this[a] = i[a];
1608
+ }
1609
+ if (this.start !== undefined) {
1610
+ if ("number" !== typeof this.start) {
1611
+ throw TypeError("start must be a Number");
1612
+ }
1613
+ if (this.start < 0) {
1614
+ throw new Error("start must be >= zero");
1615
+ }
1616
+ this.pos = this.start;
1617
+ }
1618
+ this.busy = false;
1619
+ this._queue = [];
1620
+ if (this.fd === null) {
1621
+ this._open = t.open;
1622
+ this._queue.push([ this._open, this.path, this.flags, this.mode, undefined ]);
1623
+ this.flush();
1624
+ }
1625
+ }
1626
+ }
1627
+ return ie;
1628
+ }
1629
+
1630
+ var ce;
1631
+
1632
+ var ae;
1633
+
1634
+ function fe() {
1635
+ if (ae) return ce;
1636
+ ae = 1;
1637
+ "use strict";
1638
+ ce = t;
1639
+ var e = Object.getPrototypeOf || function(e) {
1640
+ return e.__proto__;
1641
+ };
1642
+ function t(t) {
1643
+ if (t === null || typeof t !== "object") return t;
1644
+ if (t instanceof Object) var r = {
1645
+ __proto__: e(t)
1646
+ }; else var r = Object.create(null);
1647
+ Object.getOwnPropertyNames(t).forEach((function(e) {
1648
+ Object.defineProperty(r, e, Object.getOwnPropertyDescriptor(t, e));
1649
+ }));
1650
+ return r;
1651
+ }
1652
+ return ce;
1653
+ }
1654
+
1655
+ var ue;
1656
+
1657
+ var le;
1658
+
1659
+ function he() {
1660
+ if (le) return ue;
1661
+ le = 1;
1662
+ var e = u;
1663
+ var t = ne();
1664
+ var r = oe();
1665
+ var n = fe();
1666
+ var i = l;
1667
+ var o;
1668
+ var c;
1669
+ if (typeof Symbol === "function" && typeof Symbol.for === "function") {
1670
+ o = Symbol.for("graceful-fs.queue");
1671
+ c = Symbol.for("graceful-fs.previous");
1672
+ } else {
1673
+ o = "___graceful-fs.queue";
1674
+ c = "___graceful-fs.previous";
1675
+ }
1676
+ function a() {}
1677
+ function f(e, t) {
1678
+ Object.defineProperty(e, o, {
1679
+ get: function() {
1680
+ return t;
1681
+ }
1682
+ });
1683
+ }
1684
+ var p = a;
1685
+ if (i.debuglog) p = i.debuglog("gfs4"); else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) p = function() {
1686
+ var e = i.format.apply(i, arguments);
1687
+ e = "GFS4: " + e.split(/\n/).join("\nGFS4: ");
1688
+ console.error(e);
1689
+ };
1690
+ if (!e[o]) {
1691
+ var y = s[o] || [];
1692
+ f(e, y);
1693
+ e.close = function(t) {
1694
+ function r(r, n) {
1695
+ return t.call(e, r, (function(e) {
1696
+ if (!e) {
1697
+ w();
1698
+ }
1699
+ if (typeof n === "function") n.apply(this, arguments);
1700
+ }));
1701
+ }
1702
+ Object.defineProperty(r, c, {
1703
+ value: t
1704
+ });
1705
+ return r;
1706
+ }(e.close);
1707
+ e.closeSync = function(t) {
1708
+ function r(r) {
1709
+ t.apply(e, arguments);
1710
+ w();
1711
+ }
1712
+ Object.defineProperty(r, c, {
1713
+ value: t
1714
+ });
1715
+ return r;
1716
+ }(e.closeSync);
1717
+ if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) {
1718
+ process.on("exit", (function() {
1719
+ p(e[o]);
1720
+ h.equal(e[o].length, 0);
1721
+ }));
1722
+ }
1723
+ }
1724
+ if (!s[o]) {
1725
+ f(s, e[o]);
1726
+ }
1727
+ ue = d(n(e));
1728
+ if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !e.__patched) {
1729
+ ue = d(e);
1730
+ e.__patched = true;
1731
+ }
1732
+ function d(e) {
1733
+ t(e);
1734
+ e.gracefulify = d;
1735
+ e.createReadStream = x;
1736
+ e.createWriteStream = P;
1737
+ var n = e.readFile;
1738
+ e.readFile = i;
1739
+ function i(e, t, r) {
1740
+ if (typeof t === "function") r = t, t = null;
1741
+ return i(e, t, r);
1742
+ function i(e, t, r, s) {
1743
+ return n(e, t, (function(n) {
1744
+ if (n && (n.code === "EMFILE" || n.code === "ENFILE")) m([ i, [ e, t, r ], n, s || Date.now(), Date.now() ]); else {
1745
+ if (typeof r === "function") r.apply(this, arguments);
1746
+ }
1747
+ }));
1748
+ }
1749
+ }
1750
+ var s = e.writeFile;
1751
+ e.writeFile = o;
1752
+ function o(e, t, r, n) {
1753
+ if (typeof r === "function") n = r, r = null;
1754
+ return i(e, t, r, n);
1755
+ function i(e, t, r, n, o) {
1756
+ return s(e, t, r, (function(s) {
1757
+ if (s && (s.code === "EMFILE" || s.code === "ENFILE")) m([ i, [ e, t, r, n ], s, o || Date.now(), Date.now() ]); else {
1758
+ if (typeof n === "function") n.apply(this, arguments);
1759
+ }
1760
+ }));
1761
+ }
1762
+ }
1763
+ var c = e.appendFile;
1764
+ if (c) e.appendFile = a;
1765
+ function a(e, t, r, n) {
1766
+ if (typeof r === "function") n = r, r = null;
1767
+ return i(e, t, r, n);
1768
+ function i(e, t, r, n, s) {
1769
+ return c(e, t, r, (function(o) {
1770
+ if (o && (o.code === "EMFILE" || o.code === "ENFILE")) m([ i, [ e, t, r, n ], o, s || Date.now(), Date.now() ]); else {
1771
+ if (typeof n === "function") n.apply(this, arguments);
1772
+ }
1773
+ }));
1774
+ }
1775
+ }
1776
+ var f = e.copyFile;
1777
+ if (f) e.copyFile = u;
1778
+ function u(e, t, r, n) {
1779
+ if (typeof r === "function") {
1780
+ n = r;
1781
+ r = 0;
1782
+ }
1783
+ return i(e, t, r, n);
1784
+ function i(e, t, r, n, s) {
1785
+ return f(e, t, r, (function(o) {
1786
+ if (o && (o.code === "EMFILE" || o.code === "ENFILE")) m([ i, [ e, t, r, n ], o, s || Date.now(), Date.now() ]); else {
1787
+ if (typeof n === "function") n.apply(this, arguments);
1788
+ }
1789
+ }));
1790
+ }
1791
+ }
1792
+ var l = e.readdir;
1793
+ e.readdir = p;
1794
+ var h = /^v[0-5]\./;
1795
+ function p(e, t, r) {
1796
+ if (typeof t === "function") r = t, t = null;
1797
+ var n = h.test(process.version) ? function e(t, r, n, s) {
1798
+ return l(t, i(t, r, n, s));
1799
+ } : function e(t, r, n, s) {
1800
+ return l(t, r, i(t, r, n, s));
1801
+ };
1802
+ return n(e, t, r);
1803
+ function i(e, t, r, i) {
1804
+ return function(s, o) {
1805
+ if (s && (s.code === "EMFILE" || s.code === "ENFILE")) m([ n, [ e, t, r ], s, i || Date.now(), Date.now() ]); else {
1806
+ if (o && o.sort) o.sort();
1807
+ if (typeof r === "function") r.call(this, s, o);
1808
+ }
1809
+ };
1810
+ }
1811
+ }
1812
+ if (process.version.substr(0, 4) === "v0.8") {
1813
+ var y = r(e);
1814
+ k = y.ReadStream;
1815
+ _ = y.WriteStream;
1816
+ }
1817
+ var v = e.ReadStream;
1818
+ if (v) {
1819
+ k.prototype = Object.create(v.prototype);
1820
+ k.prototype.open = E;
1821
+ }
1822
+ var w = e.WriteStream;
1823
+ if (w) {
1824
+ _.prototype = Object.create(w.prototype);
1825
+ _.prototype.open = b;
1826
+ }
1827
+ Object.defineProperty(e, "ReadStream", {
1828
+ get: function() {
1829
+ return k;
1830
+ },
1831
+ set: function(e) {
1832
+ k = e;
1833
+ },
1834
+ enumerable: true,
1835
+ configurable: true
1836
+ });
1837
+ Object.defineProperty(e, "WriteStream", {
1838
+ get: function() {
1839
+ return _;
1840
+ },
1841
+ set: function(e) {
1842
+ _ = e;
1843
+ },
1844
+ enumerable: true,
1845
+ configurable: true
1846
+ });
1847
+ var S = k;
1848
+ Object.defineProperty(e, "FileReadStream", {
1849
+ get: function() {
1850
+ return S;
1851
+ },
1852
+ set: function(e) {
1853
+ S = e;
1854
+ },
1855
+ enumerable: true,
1856
+ configurable: true
1857
+ });
1858
+ var g = _;
1859
+ Object.defineProperty(e, "FileWriteStream", {
1860
+ get: function() {
1861
+ return g;
1862
+ },
1863
+ set: function(e) {
1864
+ g = e;
1865
+ },
1866
+ enumerable: true,
1867
+ configurable: true
1868
+ });
1869
+ function k(e, t) {
1870
+ if (this instanceof k) return v.apply(this, arguments), this; else return k.apply(Object.create(k.prototype), arguments);
1871
+ }
1872
+ function E() {
1873
+ var e = this;
1874
+ D(e.path, e.flags, e.mode, (function(t, r) {
1875
+ if (t) {
1876
+ if (e.autoClose) e.destroy();
1877
+ e.emit("error", t);
1878
+ } else {
1879
+ e.fd = r;
1880
+ e.emit("open", r);
1881
+ e.read();
1882
+ }
1883
+ }));
1884
+ }
1885
+ function _(e, t) {
1886
+ if (this instanceof _) return w.apply(this, arguments), this; else return _.apply(Object.create(_.prototype), arguments);
1887
+ }
1888
+ function b() {
1889
+ var e = this;
1890
+ D(e.path, e.flags, e.mode, (function(t, r) {
1891
+ if (t) {
1892
+ e.destroy();
1893
+ e.emit("error", t);
1894
+ } else {
1895
+ e.fd = r;
1896
+ e.emit("open", r);
1897
+ }
1898
+ }));
1899
+ }
1900
+ function x(t, r) {
1901
+ return new e.ReadStream(t, r);
1902
+ }
1903
+ function P(t, r) {
1904
+ return new e.WriteStream(t, r);
1905
+ }
1906
+ var O = e.open;
1907
+ e.open = D;
1908
+ function D(e, t, r, n) {
1909
+ if (typeof r === "function") n = r, r = null;
1910
+ return i(e, t, r, n);
1911
+ function i(e, t, r, n, s) {
1912
+ return O(e, t, r, (function(o, c) {
1913
+ if (o && (o.code === "EMFILE" || o.code === "ENFILE")) m([ i, [ e, t, r, n ], o, s || Date.now(), Date.now() ]); else {
1914
+ if (typeof n === "function") n.apply(this, arguments);
1915
+ }
1916
+ }));
1917
+ }
1918
+ }
1919
+ return e;
1920
+ }
1921
+ function m(t) {
1922
+ p("ENQUEUE", t[0].name, t[1]);
1923
+ e[o].push(t);
1924
+ S();
1925
+ }
1926
+ var v;
1927
+ function w() {
1928
+ var t = Date.now();
1929
+ for (var r = 0; r < e[o].length; ++r) {
1930
+ if (e[o][r].length > 2) {
1931
+ e[o][r][3] = t;
1932
+ e[o][r][4] = t;
1933
+ }
1934
+ }
1935
+ S();
1936
+ }
1937
+ function S() {
1938
+ clearTimeout(v);
1939
+ v = undefined;
1940
+ if (e[o].length === 0) return;
1941
+ var t = e[o].shift();
1942
+ var r = t[0];
1943
+ var n = t[1];
1944
+ var i = t[2];
1945
+ var s = t[3];
1946
+ var c = t[4];
1947
+ if (s === undefined) {
1948
+ p("RETRY", r.name, n);
1949
+ r.apply(null, n);
1950
+ } else if (Date.now() - s >= 6e4) {
1951
+ p("TIMEOUT", r.name, n);
1952
+ var a = n.pop();
1953
+ if (typeof a === "function") a.call(null, i);
1954
+ } else {
1955
+ var f = Date.now() - c;
1956
+ var u = Math.max(c - s, 1);
1957
+ var l = Math.min(u * 1.2, 100);
1958
+ if (f >= l) {
1959
+ p("RETRY", r.name, n);
1960
+ r.apply(null, n.concat([ s ]));
1961
+ } else {
1962
+ e[o].push(t);
1963
+ }
1964
+ }
1965
+ if (v === undefined) {
1966
+ v = setTimeout(S, 0);
1967
+ }
1968
+ }
1969
+ return ue;
1970
+ }
1971
+
1972
+ var pe;
1973
+
1974
+ function ye() {
1975
+ if (pe) return X;
1976
+ pe = 1;
1977
+ (function(e) {
1978
+ const t = ee().fromCallback;
1979
+ const r = he();
1980
+ const n = [ "access", "appendFile", "chmod", "chown", "close", "copyFile", "fchmod", "fchown", "fdatasync", "fstat", "fsync", "ftruncate", "futimes", "lchown", "link", "lstat", "mkdir", "mkdtemp", "open", "readFile", "readdir", "readlink", "realpath", "rename", "rmdir", "stat", "symlink", "truncate", "unlink", "utimes", "writeFile" ].filter((e => typeof r[e] === "function"));
1981
+ Object.keys(r).forEach((t => {
1982
+ e[t] = r[t];
1983
+ }));
1984
+ n.forEach((n => {
1985
+ e[n] = t(r[n]);
1986
+ }));
1987
+ e.exists = function(e, t) {
1988
+ if (typeof t === "function") {
1989
+ return r.exists(e, t);
1990
+ }
1991
+ return new Promise((t => r.exists(e, t)));
1992
+ };
1993
+ e.read = function(e, t, n, i, s, o) {
1994
+ if (typeof o === "function") {
1995
+ return r.read(e, t, n, i, s, o);
1996
+ }
1997
+ return new Promise(((o, c) => {
1998
+ r.read(e, t, n, i, s, ((e, t, r) => {
1999
+ if (e) return c(e);
2000
+ o({
2001
+ bytesRead: t,
2002
+ buffer: r
2003
+ });
2004
+ }));
2005
+ }));
2006
+ };
2007
+ e.write = function(e, t, n, i, s, o) {
2008
+ if (typeof arguments[arguments.length - 1] === "function") {
2009
+ return r.write(e, t, n, i, s, o);
2010
+ }
2011
+ if (typeof t === "string") {
2012
+ return new Promise(((s, o) => {
2013
+ r.write(e, t, n, i, ((e, t, r) => {
2014
+ if (e) return o(e);
2015
+ s({
2016
+ bytesWritten: t,
2017
+ buffer: r
2018
+ });
2019
+ }));
2020
+ }));
2021
+ }
2022
+ return new Promise(((o, c) => {
2023
+ r.write(e, t, n, i, s, ((e, t, r) => {
2024
+ if (e) return c(e);
2025
+ o({
2026
+ bytesWritten: t,
2027
+ buffer: r
2028
+ });
2029
+ }));
2030
+ }));
2031
+ };
2032
+ })(X);
2033
+ return X;
2034
+ }
2035
+
2036
+ var de;
2037
+
2038
+ var me;
2039
+
2040
+ function ve() {
2041
+ if (me) return de;
2042
+ me = 1;
2043
+ "use strict";
2044
+ const e = he();
2045
+ const t = p;
2046
+ const r = y;
2047
+ function n() {
2048
+ let n = r.join("millis-test-sync" + Date.now().toString() + Math.random().toString().slice(2));
2049
+ n = r.join(t.tmpdir(), n);
2050
+ const i = new Date(1435410243862);
2051
+ e.writeFileSync(n, "https://github.com/jprichardson/node-fs-extra/pull/141");
2052
+ const s = e.openSync(n, "r+");
2053
+ e.futimesSync(s, i, i);
2054
+ e.closeSync(s);
2055
+ return e.statSync(n).mtime > 1435410243e3;
2056
+ }
2057
+ function i(n) {
2058
+ let i = r.join("millis-test" + Date.now().toString() + Math.random().toString().slice(2));
2059
+ i = r.join(t.tmpdir(), i);
2060
+ const s = new Date(1435410243862);
2061
+ e.writeFile(i, "https://github.com/jprichardson/node-fs-extra/pull/141", (t => {
2062
+ if (t) return n(t);
2063
+ e.open(i, "r+", ((t, r) => {
2064
+ if (t) return n(t);
2065
+ e.futimes(r, s, s, (t => {
2066
+ if (t) return n(t);
2067
+ e.close(r, (t => {
2068
+ if (t) return n(t);
2069
+ e.stat(i, ((e, t) => {
2070
+ if (e) return n(e);
2071
+ n(null, t.mtime > 1435410243e3);
2072
+ }));
2073
+ }));
2074
+ }));
2075
+ }));
2076
+ }));
2077
+ }
2078
+ function s(e) {
2079
+ if (typeof e === "number") {
2080
+ return Math.floor(e / 1e3) * 1e3;
2081
+ } else if (e instanceof Date) {
2082
+ return new Date(Math.floor(e.getTime() / 1e3) * 1e3);
2083
+ } else {
2084
+ throw new Error("fs-extra: timeRemoveMillis() unknown parameter type");
2085
+ }
2086
+ }
2087
+ function o(t, r, n, i) {
2088
+ e.open(t, "r+", ((t, s) => {
2089
+ if (t) return i(t);
2090
+ e.futimes(s, r, n, (t => {
2091
+ e.close(s, (e => {
2092
+ if (i) i(t || e);
2093
+ }));
2094
+ }));
2095
+ }));
2096
+ }
2097
+ de = {
2098
+ hasMillisRes: i,
2099
+ hasMillisResSync: n,
2100
+ timeRemoveMillis: s,
2101
+ utimesMillis: o
2102
+ };
2103
+ return de;
2104
+ }
2105
+
2106
+ var we;
2107
+
2108
+ var Se;
2109
+
2110
+ function ge() {
2111
+ if (Se) return we;
2112
+ Se = 1;
2113
+ var e = he();
2114
+ var t = y;
2115
+ var r = ve();
2116
+ function n(n, i, s, o) {
2117
+ if (!o) {
2118
+ o = s;
2119
+ s = {};
2120
+ }
2121
+ var c = process.cwd();
2122
+ var a = t.resolve(c, n);
2123
+ var f = t.resolve(c, i);
2124
+ var u = s.filter;
2125
+ var l = s.transform;
2126
+ var h = s.overwrite;
2127
+ if (h === undefined) h = s.clobber;
2128
+ if (h === undefined) h = true;
2129
+ var p = s.errorOnExist;
2130
+ var y = s.dereference;
2131
+ var d = s.preserveTimestamps === true;
2132
+ var m = 0;
2133
+ var v = 0;
2134
+ var w = 0;
2135
+ var S = false;
2136
+ g(a);
2137
+ function g(e) {
2138
+ m++;
2139
+ if (u) {
2140
+ if (u instanceof RegExp) {
2141
+ console.warn("Warning: fs-extra: Passing a RegExp filter is deprecated, use a function");
2142
+ if (!u.test(e)) {
2143
+ return T(true);
2144
+ }
2145
+ } else if (typeof u === "function") {
2146
+ if (!u(e, i)) {
2147
+ return T(true);
2148
+ }
2149
+ }
2150
+ }
2151
+ return k(e);
2152
+ }
2153
+ function k(t) {
2154
+ var r = y ? e.stat : e.lstat;
2155
+ w++;
2156
+ r(t, (function(e, r) {
2157
+ if (e) return N(e);
2158
+ var n = {
2159
+ name: t,
2160
+ mode: r.mode,
2161
+ mtime: r.mtime,
2162
+ atime: r.atime,
2163
+ stats: r
2164
+ };
2165
+ if (r.isDirectory()) {
2166
+ return x(n);
2167
+ } else if (r.isFile() || r.isCharacterDevice() || r.isBlockDevice()) {
2168
+ return E(n);
2169
+ } else if (r.isSymbolicLink()) {
2170
+ return D(t);
2171
+ }
2172
+ }));
2173
+ }
2174
+ function E(e) {
2175
+ var t = e.name.replace(a, f.replace("$", "$$$$"));
2176
+ F(t, (function(r) {
2177
+ if (r) {
2178
+ _(e, t);
2179
+ } else {
2180
+ if (h) {
2181
+ b(t, (function() {
2182
+ _(e, t);
2183
+ }));
2184
+ } else if (p) {
2185
+ N(new Error(t + " already exists"));
2186
+ } else {
2187
+ T();
2188
+ }
2189
+ }
2190
+ }));
2191
+ }
2192
+ function _(t, n) {
2193
+ var i = e.createReadStream(t.name);
2194
+ var s = e.createWriteStream(n, {
2195
+ mode: t.mode
2196
+ });
2197
+ i.on("error", N);
2198
+ s.on("error", N);
2199
+ if (l) {
2200
+ l(i, s, t);
2201
+ } else {
2202
+ s.on("open", (function() {
2203
+ i.pipe(s);
2204
+ }));
2205
+ }
2206
+ s.once("close", (function() {
2207
+ e.chmod(n, t.mode, (function(e) {
2208
+ if (e) return N(e);
2209
+ if (d) {
2210
+ r.utimesMillis(n, t.atime, t.mtime, (function(e) {
2211
+ if (e) return N(e);
2212
+ return T();
2213
+ }));
2214
+ } else {
2215
+ T();
2216
+ }
2217
+ }));
2218
+ }));
2219
+ }
2220
+ function b(t, r) {
2221
+ e.unlink(t, (function(e) {
2222
+ if (e) return N(e);
2223
+ return r();
2224
+ }));
2225
+ }
2226
+ function x(e) {
2227
+ var t = e.name.replace(a, f.replace("$", "$$$$"));
2228
+ F(t, (function(r) {
2229
+ if (r) {
2230
+ return P(e, t);
2231
+ }
2232
+ O(e.name);
2233
+ }));
2234
+ }
2235
+ function P(t, r) {
2236
+ e.mkdir(r, t.mode, (function(n) {
2237
+ if (n) return N(n);
2238
+ e.chmod(r, t.mode, (function(e) {
2239
+ if (e) return N(e);
2240
+ O(t.name);
2241
+ }));
2242
+ }));
2243
+ }
2244
+ function O(r) {
2245
+ e.readdir(r, (function(e, n) {
2246
+ if (e) return N(e);
2247
+ n.forEach((function(e) {
2248
+ g(t.join(r, e));
2249
+ }));
2250
+ return T();
2251
+ }));
2252
+ }
2253
+ function D(t) {
2254
+ var r = t.replace(a, f);
2255
+ e.readlink(t, (function(e, t) {
2256
+ if (e) return N(e);
2257
+ j(t, r);
2258
+ }));
2259
+ }
2260
+ function j(r, n) {
2261
+ if (y) {
2262
+ r = t.resolve(c, r);
2263
+ }
2264
+ F(n, (function(i) {
2265
+ if (i) {
2266
+ return M(r, n);
2267
+ }
2268
+ e.readlink(n, (function(e, i) {
2269
+ if (e) return N(e);
2270
+ if (y) {
2271
+ i = t.resolve(c, i);
2272
+ }
2273
+ if (i === r) {
2274
+ return T();
2275
+ }
2276
+ return b(n, (function() {
2277
+ M(r, n);
2278
+ }));
2279
+ }));
2280
+ }));
2281
+ }
2282
+ function M(t, r) {
2283
+ e.symlink(t, r, (function(e) {
2284
+ if (e) return N(e);
2285
+ return T();
2286
+ }));
2287
+ }
2288
+ function F(t, r) {
2289
+ e.lstat(t, (function(e) {
2290
+ if (e) {
2291
+ if (e.code === "ENOENT") return r(true);
2292
+ return r(false);
2293
+ }
2294
+ return r(false);
2295
+ }));
2296
+ }
2297
+ function N(e) {
2298
+ if (!S && o !== undefined) {
2299
+ S = true;
2300
+ return o(e);
2301
+ }
2302
+ }
2303
+ function T(e) {
2304
+ if (!e) w--;
2305
+ v++;
2306
+ if (m === v && w === 0) {
2307
+ if (o !== undefined) {
2308
+ return o(null);
2309
+ }
2310
+ }
2311
+ }
2312
+ }
2313
+ we = n;
2314
+ return we;
2315
+ }
2316
+
2317
+ var ke;
2318
+
2319
+ var Ee;
2320
+
2321
+ function _e() {
2322
+ if (Ee) return ke;
2323
+ Ee = 1;
2324
+ "use strict";
2325
+ const e = y;
2326
+ function t(t) {
2327
+ t = e.normalize(e.resolve(t)).split(e.sep);
2328
+ if (t.length > 0) return t[0];
2329
+ return null;
2330
+ }
2331
+ const r = /[<>:"|?*]/;
2332
+ function n(e) {
2333
+ const n = t(e);
2334
+ e = e.replace(n, "");
2335
+ return r.test(e);
2336
+ }
2337
+ ke = {
2338
+ getRootPath: t,
2339
+ invalidWin32Path: n
2340
+ };
2341
+ return ke;
2342
+ }
2343
+
2344
+ var be;
2345
+
2346
+ var xe;
2347
+
2348
+ function Pe() {
2349
+ if (xe) return be;
2350
+ xe = 1;
2351
+ "use strict";
2352
+ const e = he();
2353
+ const t = y;
2354
+ const r = _e().invalidWin32Path;
2355
+ const n = parseInt("0777", 8);
2356
+ function i(s, o, c, a) {
2357
+ if (typeof o === "function") {
2358
+ c = o;
2359
+ o = {};
2360
+ } else if (!o || typeof o !== "object") {
2361
+ o = {
2362
+ mode: o
2363
+ };
2364
+ }
2365
+ if (process.platform === "win32" && r(s)) {
2366
+ const e = new Error(s + " contains invalid WIN32 path characters.");
2367
+ e.code = "EINVAL";
2368
+ return c(e);
2369
+ }
2370
+ let f = o.mode;
2371
+ const u = o.fs || e;
2372
+ if (f === undefined) {
2373
+ f = n & ~process.umask();
2374
+ }
2375
+ if (!a) a = null;
2376
+ c = c || function() {};
2377
+ s = t.resolve(s);
2378
+ u.mkdir(s, f, (e => {
2379
+ if (!e) {
2380
+ a = a || s;
2381
+ return c(null, a);
2382
+ }
2383
+ switch (e.code) {
2384
+ case "ENOENT":
2385
+ if (t.dirname(s) === s) return c(e);
2386
+ i(t.dirname(s), o, ((e, t) => {
2387
+ if (e) c(e, t); else i(s, o, c, t);
2388
+ }));
2389
+ break;
2390
+
2391
+ default:
2392
+ u.stat(s, ((t, r) => {
2393
+ if (t || !r.isDirectory()) c(e, a); else c(null, a);
2394
+ }));
2395
+ break;
2396
+ }
2397
+ }));
2398
+ }
2399
+ be = i;
2400
+ return be;
2401
+ }
2402
+
2403
+ var Oe;
2404
+
2405
+ var De;
2406
+
2407
+ function je() {
2408
+ if (De) return Oe;
2409
+ De = 1;
2410
+ "use strict";
2411
+ const e = he();
2412
+ const t = y;
2413
+ const r = _e().invalidWin32Path;
2414
+ const n = parseInt("0777", 8);
2415
+ function i(s, o, c) {
2416
+ if (!o || typeof o !== "object") {
2417
+ o = {
2418
+ mode: o
2419
+ };
2420
+ }
2421
+ let a = o.mode;
2422
+ const f = o.fs || e;
2423
+ if (process.platform === "win32" && r(s)) {
2424
+ const e = new Error(s + " contains invalid WIN32 path characters.");
2425
+ e.code = "EINVAL";
2426
+ throw e;
2427
+ }
2428
+ if (a === undefined) {
2429
+ a = n & ~process.umask();
2430
+ }
2431
+ if (!c) c = null;
2432
+ s = t.resolve(s);
2433
+ try {
2434
+ f.mkdirSync(s, a);
2435
+ c = c || s;
2436
+ } catch (e) {
2437
+ switch (e.code) {
2438
+ case "ENOENT":
2439
+ if (t.dirname(s) === s) throw e;
2440
+ c = i(t.dirname(s), o, c);
2441
+ i(s, o, c);
2442
+ break;
2443
+
2444
+ default:
2445
+ let r;
2446
+ try {
2447
+ r = f.statSync(s);
2448
+ } catch (t) {
2449
+ throw e;
2450
+ }
2451
+ if (!r.isDirectory()) throw e;
2452
+ break;
2453
+ }
2454
+ }
2455
+ return c;
2456
+ }
2457
+ Oe = i;
2458
+ return Oe;
2459
+ }
2460
+
2461
+ var Me;
2462
+
2463
+ var Fe;
2464
+
2465
+ function Ne() {
2466
+ if (Fe) return Me;
2467
+ Fe = 1;
2468
+ "use strict";
2469
+ const e = ee().fromCallback;
2470
+ const t = e(Pe());
2471
+ const r = je();
2472
+ Me = {
2473
+ mkdirs: t,
2474
+ mkdirsSync: r,
2475
+ mkdirp: t,
2476
+ mkdirpSync: r,
2477
+ ensureDir: t,
2478
+ ensureDirSync: r
2479
+ };
2480
+ return Me;
2481
+ }
2482
+
2483
+ var Te;
2484
+
2485
+ var Le;
2486
+
2487
+ function Re() {
2488
+ if (Le) return Te;
2489
+ Le = 1;
2490
+ "use strict";
2491
+ const e = ee().fromPromise;
2492
+ const t = ye();
2493
+ function r(e) {
2494
+ return t.access(e).then((() => true)).catch((() => false));
2495
+ }
2496
+ Te = {
2497
+ pathExists: e(r),
2498
+ pathExistsSync: t.existsSync
2499
+ };
2500
+ return Te;
2501
+ }
2502
+
2503
+ var Ie;
2504
+
2505
+ var ze;
2506
+
2507
+ function Ae() {
2508
+ if (ze) return Ie;
2509
+ ze = 1;
2510
+ "use strict";
2511
+ const e = he();
2512
+ const t = y;
2513
+ const r = ge();
2514
+ const n = Ne();
2515
+ const i = Re().pathExists;
2516
+ function s(s, o, c, a) {
2517
+ if (typeof c === "function" && !a) {
2518
+ a = c;
2519
+ c = {};
2520
+ } else if (typeof c === "function" || c instanceof RegExp) {
2521
+ c = {
2522
+ filter: c
2523
+ };
2524
+ }
2525
+ a = a || function() {};
2526
+ c = c || {};
2527
+ if (c.preserveTimestamps && process.arch === "ia32") {
2528
+ console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`);
2529
+ }
2530
+ const f = process.cwd();
2531
+ const u = t.resolve(f, s);
2532
+ const l = t.resolve(f, o);
2533
+ if (u === l) return a(new Error("Source and destination must not be the same."));
2534
+ e.lstat(s, ((e, f) => {
2535
+ if (e) return a(e);
2536
+ let u = null;
2537
+ if (f.isDirectory()) {
2538
+ const e = o.split(t.sep);
2539
+ e.pop();
2540
+ u = e.join(t.sep);
2541
+ } else {
2542
+ u = t.dirname(o);
2543
+ }
2544
+ i(u, ((e, t) => {
2545
+ if (e) return a(e);
2546
+ if (t) return r(s, o, c, a);
2547
+ n.mkdirs(u, (e => {
2548
+ if (e) return a(e);
2549
+ r(s, o, c, a);
2550
+ }));
2551
+ }));
2552
+ }));
2553
+ }
2554
+ Ie = s;
2555
+ return Ie;
2556
+ }
2557
+
2558
+ var Ce;
2559
+
2560
+ var Ke;
2561
+
2562
+ function qe() {
2563
+ if (Ke) return Ce;
2564
+ Ke = 1;
2565
+ const e = ee().fromCallback;
2566
+ Ce = {
2567
+ copy: e(Ae())
2568
+ };
2569
+ return Ce;
2570
+ }
2571
+
2572
+ var Je;
2573
+
2574
+ var We;
2575
+
2576
+ function $e() {
2577
+ if (We) return Je;
2578
+ We = 1;
2579
+ Je = function(e) {
2580
+ if (typeof Buffer.allocUnsafe === "function") {
2581
+ try {
2582
+ return Buffer.allocUnsafe(e);
2583
+ } catch (t) {
2584
+ return new Buffer(e);
2585
+ }
2586
+ }
2587
+ return new Buffer(e);
2588
+ };
2589
+ return Je;
2590
+ }
2591
+
2592
+ var Be;
2593
+
2594
+ var Ge;
2595
+
2596
+ function Ue() {
2597
+ if (Ge) return Be;
2598
+ Ge = 1;
2599
+ "use strict";
2600
+ const e = he();
2601
+ const t = 64 * 1024;
2602
+ const r = $e()(t);
2603
+ function n(n, i, s) {
2604
+ const o = s.overwrite;
2605
+ const c = s.errorOnExist;
2606
+ const a = s.preserveTimestamps;
2607
+ if (e.existsSync(i)) {
2608
+ if (o) {
2609
+ e.unlinkSync(i);
2610
+ } else if (c) {
2611
+ throw new Error(`${i} already exists`);
2612
+ } else return;
2613
+ }
2614
+ const f = e.openSync(n, "r");
2615
+ const u = e.fstatSync(f);
2616
+ const l = e.openSync(i, "w", u.mode);
2617
+ let h = 1;
2618
+ let p = 0;
2619
+ while (h > 0) {
2620
+ h = e.readSync(f, r, 0, t, p);
2621
+ e.writeSync(l, r, 0, h);
2622
+ p += h;
2623
+ }
2624
+ if (a) {
2625
+ e.futimesSync(l, u.atime, u.mtime);
2626
+ }
2627
+ e.closeSync(f);
2628
+ e.closeSync(l);
2629
+ }
2630
+ Be = n;
2631
+ return Be;
2632
+ }
2633
+
2634
+ var Ye;
2635
+
2636
+ var He;
2637
+
2638
+ function Ve() {
2639
+ if (He) return Ye;
2640
+ He = 1;
2641
+ "use strict";
2642
+ const e = he();
2643
+ const t = y;
2644
+ const r = Ue();
2645
+ const n = Ne();
2646
+ function i(s, o, c) {
2647
+ if (typeof c === "function" || c instanceof RegExp) {
2648
+ c = {
2649
+ filter: c
2650
+ };
2651
+ }
2652
+ c = c || {};
2653
+ c.recursive = !!c.recursive;
2654
+ c.clobber = "clobber" in c ? !!c.clobber : true;
2655
+ c.overwrite = "overwrite" in c ? !!c.overwrite : c.clobber;
2656
+ c.dereference = "dereference" in c ? !!c.dereference : false;
2657
+ c.preserveTimestamps = "preserveTimestamps" in c ? !!c.preserveTimestamps : false;
2658
+ c.filter = c.filter || function() {
2659
+ return true;
2660
+ };
2661
+ if (c.preserveTimestamps && process.arch === "ia32") {
2662
+ console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`);
2663
+ }
2664
+ const a = c.recursive && !c.dereference ? e.lstatSync(s) : e.statSync(s);
2665
+ const f = t.dirname(o);
2666
+ const u = e.existsSync(f);
2667
+ let l = false;
2668
+ if (c.filter instanceof RegExp) {
2669
+ console.warn("Warning: fs-extra: Passing a RegExp filter is deprecated, use a function");
2670
+ l = c.filter.test(s);
2671
+ } else if (typeof c.filter === "function") l = c.filter(s, o);
2672
+ if (a.isFile() && l) {
2673
+ if (!u) n.mkdirsSync(f);
2674
+ r(s, o, {
2675
+ overwrite: c.overwrite,
2676
+ errorOnExist: c.errorOnExist,
2677
+ preserveTimestamps: c.preserveTimestamps
2678
+ });
2679
+ } else if (a.isDirectory() && l) {
2680
+ if (!e.existsSync(o)) n.mkdirsSync(o);
2681
+ const r = e.readdirSync(s);
2682
+ r.forEach((e => {
2683
+ const r = c;
2684
+ r.recursive = true;
2685
+ i(t.join(s, e), t.join(o, e), r);
2686
+ }));
2687
+ } else if (c.recursive && a.isSymbolicLink() && l) {
2688
+ const t = e.readlinkSync(s);
2689
+ e.symlinkSync(t, o);
2690
+ }
2691
+ }
2692
+ Ye = i;
2693
+ return Ye;
2694
+ }
2695
+
2696
+ var Xe;
2697
+
2698
+ var Qe;
2699
+
2700
+ function Ze() {
2701
+ if (Qe) return Xe;
2702
+ Qe = 1;
2703
+ Xe = {
2704
+ copySync: Ve()
2705
+ };
2706
+ return Xe;
2707
+ }
2708
+
2709
+ var et;
2710
+
2711
+ var tt;
2712
+
2713
+ function rt() {
2714
+ if (tt) return et;
2715
+ tt = 1;
2716
+ "use strict";
2717
+ const e = he();
2718
+ const t = y;
2719
+ const r = h;
2720
+ const n = process.platform === "win32";
2721
+ function i(t) {
2722
+ const r = [ "unlink", "chmod", "stat", "lstat", "rmdir", "readdir" ];
2723
+ r.forEach((r => {
2724
+ t[r] = t[r] || e[r];
2725
+ r = r + "Sync";
2726
+ t[r] = t[r] || e[r];
2727
+ }));
2728
+ t.maxBusyTries = t.maxBusyTries || 3;
2729
+ }
2730
+ function s(e, t, n) {
2731
+ let s = 0;
2732
+ if (typeof t === "function") {
2733
+ n = t;
2734
+ t = {};
2735
+ }
2736
+ r(e, "rimraf: missing path");
2737
+ r.equal(typeof e, "string", "rimraf: path should be a string");
2738
+ r.equal(typeof n, "function", "rimraf: callback function required");
2739
+ r(t, "rimraf: invalid options argument provided");
2740
+ r.equal(typeof t, "object", "rimraf: options should be object");
2741
+ i(t);
2742
+ o(e, t, (function r(i) {
2743
+ if (i) {
2744
+ if ((i.code === "EBUSY" || i.code === "ENOTEMPTY" || i.code === "EPERM") && s < t.maxBusyTries) {
2745
+ s++;
2746
+ let n = s * 100;
2747
+ return setTimeout((() => o(e, t, r)), n);
2748
+ }
2749
+ if (i.code === "ENOENT") i = null;
2750
+ }
2751
+ n(i);
2752
+ }));
2753
+ }
2754
+ function o(e, t, i) {
2755
+ r(e);
2756
+ r(t);
2757
+ r(typeof i === "function");
2758
+ t.lstat(e, ((r, s) => {
2759
+ if (r && r.code === "ENOENT") {
2760
+ return i(null);
2761
+ }
2762
+ if (r && r.code === "EPERM" && n) {
2763
+ return c(e, t, r, i);
2764
+ }
2765
+ if (s && s.isDirectory()) {
2766
+ return f(e, t, r, i);
2767
+ }
2768
+ t.unlink(e, (r => {
2769
+ if (r) {
2770
+ if (r.code === "ENOENT") {
2771
+ return i(null);
2772
+ }
2773
+ if (r.code === "EPERM") {
2774
+ return n ? c(e, t, r, i) : f(e, t, r, i);
2775
+ }
2776
+ if (r.code === "EISDIR") {
2777
+ return f(e, t, r, i);
2778
+ }
2779
+ }
2780
+ return i(r);
2781
+ }));
2782
+ }));
2783
+ }
2784
+ function c(e, t, n, i) {
2785
+ r(e);
2786
+ r(t);
2787
+ r(typeof i === "function");
2788
+ if (n) {
2789
+ r(n instanceof Error);
2790
+ }
2791
+ t.chmod(e, 438, (r => {
2792
+ if (r) {
2793
+ i(r.code === "ENOENT" ? null : n);
2794
+ } else {
2795
+ t.stat(e, ((r, s) => {
2796
+ if (r) {
2797
+ i(r.code === "ENOENT" ? null : n);
2798
+ } else if (s.isDirectory()) {
2799
+ f(e, t, n, i);
2800
+ } else {
2801
+ t.unlink(e, i);
2802
+ }
2803
+ }));
2804
+ }
2805
+ }));
2806
+ }
2807
+ function a(e, t, n) {
2808
+ let i;
2809
+ r(e);
2810
+ r(t);
2811
+ if (n) {
2812
+ r(n instanceof Error);
2813
+ }
2814
+ try {
2815
+ t.chmodSync(e, 438);
2816
+ } catch (e) {
2817
+ if (e.code === "ENOENT") {
2818
+ return;
2819
+ } else {
2820
+ throw n;
2821
+ }
2822
+ }
2823
+ try {
2824
+ i = t.statSync(e);
2825
+ } catch (e) {
2826
+ if (e.code === "ENOENT") {
2827
+ return;
2828
+ } else {
2829
+ throw n;
2830
+ }
2831
+ }
2832
+ if (i.isDirectory()) {
2833
+ p(e, t, n);
2834
+ } else {
2835
+ t.unlinkSync(e);
2836
+ }
2837
+ }
2838
+ function f(e, t, n, i) {
2839
+ r(e);
2840
+ r(t);
2841
+ if (n) {
2842
+ r(n instanceof Error);
2843
+ }
2844
+ r(typeof i === "function");
2845
+ t.rmdir(e, (r => {
2846
+ if (r && (r.code === "ENOTEMPTY" || r.code === "EEXIST" || r.code === "EPERM")) {
2847
+ u(e, t, i);
2848
+ } else if (r && r.code === "ENOTDIR") {
2849
+ i(n);
2850
+ } else {
2851
+ i(r);
2852
+ }
2853
+ }));
2854
+ }
2855
+ function u(e, n, i) {
2856
+ r(e);
2857
+ r(n);
2858
+ r(typeof i === "function");
2859
+ n.readdir(e, ((r, o) => {
2860
+ if (r) return i(r);
2861
+ let c = o.length;
2862
+ let a;
2863
+ if (c === 0) return n.rmdir(e, i);
2864
+ o.forEach((r => {
2865
+ s(t.join(e, r), n, (t => {
2866
+ if (a) {
2867
+ return;
2868
+ }
2869
+ if (t) return i(a = t);
2870
+ if (--c === 0) {
2871
+ n.rmdir(e, i);
2872
+ }
2873
+ }));
2874
+ }));
2875
+ }));
2876
+ }
2877
+ function l(e, t) {
2878
+ let s;
2879
+ t = t || {};
2880
+ i(t);
2881
+ r(e, "rimraf: missing path");
2882
+ r.equal(typeof e, "string", "rimraf: path should be a string");
2883
+ r(t, "rimraf: missing options");
2884
+ r.equal(typeof t, "object", "rimraf: options should be object");
2885
+ try {
2886
+ s = t.lstatSync(e);
2887
+ } catch (r) {
2888
+ if (r.code === "ENOENT") {
2889
+ return;
2890
+ }
2891
+ if (r.code === "EPERM" && n) {
2892
+ a(e, t, r);
2893
+ }
2894
+ }
2895
+ try {
2896
+ if (s && s.isDirectory()) {
2897
+ p(e, t, null);
2898
+ } else {
2899
+ t.unlinkSync(e);
2900
+ }
2901
+ } catch (r) {
2902
+ if (r.code === "ENOENT") {
2903
+ return;
2904
+ } else if (r.code === "EPERM") {
2905
+ return n ? a(e, t, r) : p(e, t, r);
2906
+ } else if (r.code !== "EISDIR") {
2907
+ throw r;
2908
+ }
2909
+ p(e, t, r);
2910
+ }
2911
+ }
2912
+ function p(e, t, n) {
2913
+ r(e);
2914
+ r(t);
2915
+ if (n) {
2916
+ r(n instanceof Error);
2917
+ }
2918
+ try {
2919
+ t.rmdirSync(e);
2920
+ } catch (r) {
2921
+ if (r.code === "ENOTDIR") {
2922
+ throw n;
2923
+ } else if (r.code === "ENOTEMPTY" || r.code === "EEXIST" || r.code === "EPERM") {
2924
+ d(e, t);
2925
+ } else if (r.code !== "ENOENT") {
2926
+ throw r;
2927
+ }
2928
+ }
2929
+ }
2930
+ function d(e, i) {
2931
+ r(e);
2932
+ r(i);
2933
+ i.readdirSync(e).forEach((r => l(t.join(e, r), i)));
2934
+ const s = n ? 100 : 1;
2935
+ let o = 0;
2936
+ do {
2937
+ let t = true;
2938
+ try {
2939
+ const r = i.rmdirSync(e, i);
2940
+ t = false;
2941
+ return r;
2942
+ } finally {
2943
+ if (++o < s && t) continue;
2944
+ }
2945
+ } while (true);
2946
+ }
2947
+ et = s;
2948
+ s.sync = l;
2949
+ return et;
2950
+ }
2951
+
2952
+ var nt;
2953
+
2954
+ var it;
2955
+
2956
+ function st() {
2957
+ if (it) return nt;
2958
+ it = 1;
2959
+ "use strict";
2960
+ const e = ee().fromCallback;
2961
+ const t = rt();
2962
+ nt = {
2963
+ remove: e(t),
2964
+ removeSync: t.sync
2965
+ };
2966
+ return nt;
2967
+ }
2968
+
2969
+ var ot;
2970
+
2971
+ var ct;
2972
+
2973
+ function at() {
2974
+ if (ct) return ot;
2975
+ ct = 1;
2976
+ var e;
2977
+ try {
2978
+ e = he();
2979
+ } catch (t) {
2980
+ e = u;
2981
+ }
2982
+ function t(t, r, n) {
2983
+ if (n == null) {
2984
+ n = r;
2985
+ r = {};
2986
+ }
2987
+ if (typeof r === "string") {
2988
+ r = {
2989
+ encoding: r
2990
+ };
2991
+ }
2992
+ r = r || {};
2993
+ var i = r.fs || e;
2994
+ var s = true;
2995
+ if ("throws" in r) {
2996
+ s = r.throws;
2997
+ }
2998
+ i.readFile(t, r, (function(e, i) {
2999
+ if (e) return n(e);
3000
+ i = o(i);
3001
+ var c;
3002
+ try {
3003
+ c = JSON.parse(i, r ? r.reviver : null);
3004
+ } catch (e) {
3005
+ if (s) {
3006
+ e.message = t + ": " + e.message;
3007
+ return n(e);
3008
+ } else {
3009
+ return n(null, null);
3010
+ }
3011
+ }
3012
+ n(null, c);
3013
+ }));
3014
+ }
3015
+ function r(t, r) {
3016
+ r = r || {};
3017
+ if (typeof r === "string") {
3018
+ r = {
3019
+ encoding: r
3020
+ };
3021
+ }
3022
+ var n = r.fs || e;
3023
+ var i = true;
3024
+ if ("throws" in r) {
3025
+ i = r.throws;
3026
+ }
3027
+ try {
3028
+ var s = n.readFileSync(t, r);
3029
+ s = o(s);
3030
+ return JSON.parse(s, r.reviver);
3031
+ } catch (e) {
3032
+ if (i) {
3033
+ e.message = t + ": " + e.message;
3034
+ throw e;
3035
+ } else {
3036
+ return null;
3037
+ }
3038
+ }
3039
+ }
3040
+ function n(e, t) {
3041
+ var r;
3042
+ var n = "\n";
3043
+ if (typeof t === "object" && t !== null) {
3044
+ if (t.spaces) {
3045
+ r = t.spaces;
3046
+ }
3047
+ if (t.EOL) {
3048
+ n = t.EOL;
3049
+ }
3050
+ }
3051
+ var i = JSON.stringify(e, t ? t.replacer : null, r);
3052
+ return i.replace(/\n/g, n) + n;
3053
+ }
3054
+ function i(t, r, i, s) {
3055
+ if (s == null) {
3056
+ s = i;
3057
+ i = {};
3058
+ }
3059
+ i = i || {};
3060
+ var o = i.fs || e;
3061
+ var c = "";
3062
+ try {
3063
+ c = n(r, i);
3064
+ } catch (e) {
3065
+ if (s) s(e, null);
3066
+ return;
3067
+ }
3068
+ o.writeFile(t, c, i, s);
3069
+ }
3070
+ function s(t, r, i) {
3071
+ i = i || {};
3072
+ var s = i.fs || e;
3073
+ var o = n(r, i);
3074
+ return s.writeFileSync(t, o, i);
3075
+ }
3076
+ function o(e) {
3077
+ if (Buffer.isBuffer(e)) e = e.toString("utf8");
3078
+ e = e.replace(/^\uFEFF/, "");
3079
+ return e;
3080
+ }
3081
+ var c = {
3082
+ readFile: t,
3083
+ readFileSync: r,
3084
+ writeFile: i,
3085
+ writeFileSync: s
3086
+ };
3087
+ ot = c;
3088
+ return ot;
3089
+ }
3090
+
3091
+ var ft;
3092
+
3093
+ var ut;
3094
+
3095
+ function lt() {
3096
+ if (ut) return ft;
3097
+ ut = 1;
3098
+ "use strict";
3099
+ const e = ee().fromCallback;
3100
+ const t = at();
3101
+ ft = {
3102
+ readJson: e(t.readFile),
3103
+ readJsonSync: t.readFileSync,
3104
+ writeJson: e(t.writeFile),
3105
+ writeJsonSync: t.writeFileSync
3106
+ };
3107
+ return ft;
3108
+ }
3109
+
3110
+ var ht;
3111
+
3112
+ var pt;
3113
+
3114
+ function yt() {
3115
+ if (pt) return ht;
3116
+ pt = 1;
3117
+ "use strict";
3118
+ const e = y;
3119
+ const t = Ne();
3120
+ const r = Re().pathExists;
3121
+ const n = lt();
3122
+ function i(i, s, o, c) {
3123
+ if (typeof o === "function") {
3124
+ c = o;
3125
+ o = {};
3126
+ }
3127
+ const a = e.dirname(i);
3128
+ r(a, ((e, r) => {
3129
+ if (e) return c(e);
3130
+ if (r) return n.writeJson(i, s, o, c);
3131
+ t.mkdirs(a, (e => {
3132
+ if (e) return c(e);
3133
+ n.writeJson(i, s, o, c);
3134
+ }));
3135
+ }));
3136
+ }
3137
+ ht = i;
3138
+ return ht;
3139
+ }
3140
+
3141
+ var dt;
3142
+
3143
+ var mt;
3144
+
3145
+ function vt() {
3146
+ if (mt) return dt;
3147
+ mt = 1;
3148
+ "use strict";
3149
+ const e = he();
3150
+ const t = y;
3151
+ const r = Ne();
3152
+ const n = lt();
3153
+ function i(i, s, o) {
3154
+ const c = t.dirname(i);
3155
+ if (!e.existsSync(c)) {
3156
+ r.mkdirsSync(c);
3157
+ }
3158
+ n.writeJsonSync(i, s, o);
3159
+ }
3160
+ dt = i;
3161
+ return dt;
3162
+ }
3163
+
3164
+ var wt;
3165
+
3166
+ var St;
3167
+
3168
+ function gt() {
3169
+ if (St) return wt;
3170
+ St = 1;
3171
+ "use strict";
3172
+ const e = ee().fromCallback;
3173
+ const t = lt();
3174
+ t.outputJson = e(yt());
3175
+ t.outputJsonSync = vt();
3176
+ t.outputJSON = t.outputJson;
3177
+ t.outputJSONSync = t.outputJsonSync;
3178
+ t.writeJSON = t.writeJson;
3179
+ t.writeJSONSync = t.writeJsonSync;
3180
+ t.readJSON = t.readJson;
3181
+ t.readJSONSync = t.readJsonSync;
3182
+ wt = t;
3183
+ return wt;
3184
+ }
3185
+
3186
+ var kt;
3187
+
3188
+ var Et;
3189
+
3190
+ function _t() {
3191
+ if (Et) return kt;
3192
+ Et = 1;
3193
+ "use strict";
3194
+ const e = ee().fromCallback;
3195
+ const t = he();
3196
+ const r = ge();
3197
+ const n = y;
3198
+ const i = st().remove;
3199
+ const s = Ne().mkdirs;
3200
+ function o(e, r, a, f) {
3201
+ if (typeof a === "function") {
3202
+ f = a;
3203
+ a = {};
3204
+ }
3205
+ const l = a.overwrite || a.clobber || false;
3206
+ u(e, r, ((t, i) => {
3207
+ if (t) return f(t);
3208
+ if (i) return f(new Error(`Cannot move '${e}' to a subdirectory of itself, '${r}'.`));
3209
+ s(n.dirname(r), (e => {
3210
+ if (e) return f(e);
3211
+ h();
3212
+ }));
3213
+ }));
3214
+ function h() {
3215
+ if (n.resolve(e) === n.resolve(r)) {
3216
+ t.access(e, f);
3217
+ } else if (l) {
3218
+ t.rename(e, r, (t => {
3219
+ if (!t) return f();
3220
+ if (t.code === "ENOTEMPTY" || t.code === "EEXIST") {
3221
+ i(r, (t => {
3222
+ if (t) return f(t);
3223
+ a.overwrite = false;
3224
+ o(e, r, a, f);
3225
+ }));
3226
+ return;
3227
+ }
3228
+ if (t.code === "EPERM") {
3229
+ setTimeout((() => {
3230
+ i(r, (t => {
3231
+ if (t) return f(t);
3232
+ a.overwrite = false;
3233
+ o(e, r, a, f);
3234
+ }));
3235
+ }), 200);
3236
+ return;
3237
+ }
3238
+ if (t.code !== "EXDEV") return f(t);
3239
+ c(e, r, l, f);
3240
+ }));
3241
+ } else {
3242
+ t.link(e, r, (n => {
3243
+ if (n) {
3244
+ if (n.code === "EXDEV" || n.code === "EISDIR" || n.code === "EPERM" || n.code === "ENOTSUP") {
3245
+ return c(e, r, l, f);
3246
+ }
3247
+ return f(n);
3248
+ }
3249
+ return t.unlink(e, f);
3250
+ }));
3251
+ }
3252
+ }
3253
+ }
3254
+ function c(e, r, n, i) {
3255
+ t.stat(e, ((t, s) => {
3256
+ if (t) return i(t);
3257
+ if (s.isDirectory()) {
3258
+ f(e, r, n, i);
3259
+ } else {
3260
+ a(e, r, n, i);
3261
+ }
3262
+ }));
3263
+ }
3264
+ function a(e, r, n, i) {
3265
+ const s = n ? "w" : "wx";
3266
+ const o = t.createReadStream(e);
3267
+ const c = t.createWriteStream(r, {
3268
+ flags: s
3269
+ });
3270
+ o.on("error", (s => {
3271
+ o.destroy();
3272
+ c.destroy();
3273
+ c.removeListener("close", a);
3274
+ t.unlink(r, (() => {
3275
+ if (s.code === "EISDIR" || s.code === "EPERM") {
3276
+ f(e, r, n, i);
3277
+ } else {
3278
+ i(s);
3279
+ }
3280
+ }));
3281
+ }));
3282
+ c.on("error", (e => {
3283
+ o.destroy();
3284
+ c.destroy();
3285
+ c.removeListener("close", a);
3286
+ i(e);
3287
+ }));
3288
+ c.once("close", a);
3289
+ o.pipe(c);
3290
+ function a() {
3291
+ t.unlink(e, i);
3292
+ }
3293
+ }
3294
+ function f(e, t, n, s) {
3295
+ const o = {
3296
+ overwrite: false
3297
+ };
3298
+ if (n) {
3299
+ i(t, (e => {
3300
+ if (e) return s(e);
3301
+ c();
3302
+ }));
3303
+ } else {
3304
+ c();
3305
+ }
3306
+ function c() {
3307
+ r(e, t, o, (t => {
3308
+ if (t) return s(t);
3309
+ i(e, s);
3310
+ }));
3311
+ }
3312
+ }
3313
+ function u(e, r, i) {
3314
+ t.stat(e, ((t, s) => {
3315
+ if (t) return i(t);
3316
+ if (s.isDirectory()) {
3317
+ const t = r.split(n.dirname(e) + n.sep)[1];
3318
+ if (t) {
3319
+ const s = t.split(n.sep)[0];
3320
+ if (s) return i(null, e !== r && r.indexOf(e) > -1 && s === n.basename(e));
3321
+ return i(null, false);
3322
+ }
3323
+ return i(null, false);
3324
+ }
3325
+ return i(null, false);
3326
+ }));
3327
+ }
3328
+ kt = {
3329
+ move: e(o)
3330
+ };
3331
+ return kt;
3332
+ }
3333
+
3334
+ var bt;
3335
+
3336
+ var xt;
3337
+
3338
+ function Pt() {
3339
+ if (xt) return bt;
3340
+ xt = 1;
3341
+ "use strict";
3342
+ const e = he();
3343
+ const t = y;
3344
+ const r = Ze().copySync;
3345
+ const n = st().removeSync;
3346
+ const i = Ne().mkdirsSync;
3347
+ const s = $e();
3348
+ function o(r, s, a) {
3349
+ a = a || {};
3350
+ const f = a.overwrite || a.clobber || false;
3351
+ r = t.resolve(r);
3352
+ s = t.resolve(s);
3353
+ if (r === s) return e.accessSync(r);
3354
+ if (u(r, s)) throw new Error(`Cannot move '${r}' into itself '${s}'.`);
3355
+ i(t.dirname(s));
3356
+ l();
3357
+ function l() {
3358
+ if (f) {
3359
+ try {
3360
+ return e.renameSync(r, s);
3361
+ } catch (e) {
3362
+ if (e.code === "ENOTEMPTY" || e.code === "EEXIST" || e.code === "EPERM") {
3363
+ n(s);
3364
+ a.overwrite = false;
3365
+ return o(r, s, a);
3366
+ }
3367
+ if (e.code !== "EXDEV") throw e;
3368
+ return c(r, s, f);
3369
+ }
3370
+ } else {
3371
+ try {
3372
+ e.linkSync(r, s);
3373
+ return e.unlinkSync(r);
3374
+ } catch (e) {
3375
+ if (e.code === "EXDEV" || e.code === "EISDIR" || e.code === "EPERM" || e.code === "ENOTSUP") {
3376
+ return c(r, s, f);
3377
+ }
3378
+ throw e;
3379
+ }
3380
+ }
3381
+ }
3382
+ }
3383
+ function c(t, r, n) {
3384
+ const i = e.statSync(t);
3385
+ if (i.isDirectory()) {
3386
+ return f(t, r, n);
3387
+ } else {
3388
+ return a(t, r, n);
3389
+ }
3390
+ }
3391
+ function a(t, r, n) {
3392
+ const i = 64 * 1024;
3393
+ const o = s(i);
3394
+ const c = n ? "w" : "wx";
3395
+ const a = e.openSync(t, "r");
3396
+ const f = e.fstatSync(a);
3397
+ const u = e.openSync(r, c, f.mode);
3398
+ let l = 1;
3399
+ let h = 0;
3400
+ while (l > 0) {
3401
+ l = e.readSync(a, o, 0, i, h);
3402
+ e.writeSync(u, o, 0, l);
3403
+ h += l;
3404
+ }
3405
+ e.closeSync(a);
3406
+ e.closeSync(u);
3407
+ return e.unlinkSync(t);
3408
+ }
3409
+ function f(e, t, i) {
3410
+ const s = {
3411
+ overwrite: false
3412
+ };
3413
+ if (i) {
3414
+ n(t);
3415
+ o();
3416
+ } else {
3417
+ o();
3418
+ }
3419
+ function o() {
3420
+ r(e, t, s);
3421
+ return n(e);
3422
+ }
3423
+ }
3424
+ function u(r, n) {
3425
+ try {
3426
+ return e.statSync(r).isDirectory() && r !== n && n.indexOf(r) > -1 && n.split(t.dirname(r) + t.sep)[1].split(t.sep)[0] === t.basename(r);
3427
+ } catch (e) {
3428
+ return false;
3429
+ }
3430
+ }
3431
+ bt = {
3432
+ moveSync: o
3433
+ };
3434
+ return bt;
3435
+ }
3436
+
3437
+ var Ot;
3438
+
3439
+ var Dt;
3440
+
3441
+ function jt() {
3442
+ if (Dt) return Ot;
3443
+ Dt = 1;
3444
+ "use strict";
3445
+ const e = ee().fromCallback;
3446
+ const t = u;
3447
+ const r = y;
3448
+ const n = Ne();
3449
+ const i = st();
3450
+ const s = e((function e(s, o) {
3451
+ o = o || function() {};
3452
+ t.readdir(s, ((e, t) => {
3453
+ if (e) return n.mkdirs(s, o);
3454
+ t = t.map((e => r.join(s, e)));
3455
+ c();
3456
+ function c() {
3457
+ const e = t.pop();
3458
+ if (!e) return o();
3459
+ i.remove(e, (e => {
3460
+ if (e) return o(e);
3461
+ c();
3462
+ }));
3463
+ }
3464
+ }));
3465
+ }));
3466
+ function o(e) {
3467
+ let s;
3468
+ try {
3469
+ s = t.readdirSync(e);
3470
+ } catch (t) {
3471
+ return n.mkdirsSync(e);
3472
+ }
3473
+ s.forEach((t => {
3474
+ t = r.join(e, t);
3475
+ i.removeSync(t);
3476
+ }));
3477
+ }
3478
+ Ot = {
3479
+ emptyDirSync: o,
3480
+ emptydirSync: o,
3481
+ emptyDir: s,
3482
+ emptydir: s
3483
+ };
3484
+ return Ot;
3485
+ }
3486
+
3487
+ var Mt;
3488
+
3489
+ var Ft;
3490
+
3491
+ function Nt() {
3492
+ if (Ft) return Mt;
3493
+ Ft = 1;
3494
+ "use strict";
3495
+ const e = ee().fromCallback;
3496
+ const t = y;
3497
+ const r = he();
3498
+ const n = Ne();
3499
+ const i = Re().pathExists;
3500
+ function s(e, s) {
3501
+ function o() {
3502
+ r.writeFile(e, "", (e => {
3503
+ if (e) return s(e);
3504
+ s();
3505
+ }));
3506
+ }
3507
+ r.stat(e, ((r, c) => {
3508
+ if (!r && c.isFile()) return s();
3509
+ const a = t.dirname(e);
3510
+ i(a, ((e, t) => {
3511
+ if (e) return s(e);
3512
+ if (t) return o();
3513
+ n.mkdirs(a, (e => {
3514
+ if (e) return s(e);
3515
+ o();
3516
+ }));
3517
+ }));
3518
+ }));
3519
+ }
3520
+ function o(e) {
3521
+ let i;
3522
+ try {
3523
+ i = r.statSync(e);
3524
+ } catch (e) {}
3525
+ if (i && i.isFile()) return;
3526
+ const s = t.dirname(e);
3527
+ if (!r.existsSync(s)) {
3528
+ n.mkdirsSync(s);
3529
+ }
3530
+ r.writeFileSync(e, "");
3531
+ }
3532
+ Mt = {
3533
+ createFile: e(s),
3534
+ createFileSync: o
3535
+ };
3536
+ return Mt;
3537
+ }
3538
+
3539
+ var Tt;
3540
+
3541
+ var Lt;
3542
+
3543
+ function Rt() {
3544
+ if (Lt) return Tt;
3545
+ Lt = 1;
3546
+ "use strict";
3547
+ const e = ee().fromCallback;
3548
+ const t = y;
3549
+ const r = he();
3550
+ const n = Ne();
3551
+ const i = Re().pathExists;
3552
+ function s(e, s, o) {
3553
+ function c(e, t) {
3554
+ r.link(e, t, (e => {
3555
+ if (e) return o(e);
3556
+ o(null);
3557
+ }));
3558
+ }
3559
+ i(s, ((a, f) => {
3560
+ if (a) return o(a);
3561
+ if (f) return o(null);
3562
+ r.lstat(e, ((r, a) => {
3563
+ if (r) {
3564
+ r.message = r.message.replace("lstat", "ensureLink");
3565
+ return o(r);
3566
+ }
3567
+ const f = t.dirname(s);
3568
+ i(f, ((t, r) => {
3569
+ if (t) return o(t);
3570
+ if (r) return c(e, s);
3571
+ n.mkdirs(f, (t => {
3572
+ if (t) return o(t);
3573
+ c(e, s);
3574
+ }));
3575
+ }));
3576
+ }));
3577
+ }));
3578
+ }
3579
+ function o(e, i, s) {
3580
+ const o = r.existsSync(i);
3581
+ if (o) return undefined;
3582
+ try {
3583
+ r.lstatSync(e);
3584
+ } catch (e) {
3585
+ e.message = e.message.replace("lstat", "ensureLink");
3586
+ throw e;
3587
+ }
3588
+ const c = t.dirname(i);
3589
+ const a = r.existsSync(c);
3590
+ if (a) return r.linkSync(e, i);
3591
+ n.mkdirsSync(c);
3592
+ return r.linkSync(e, i);
3593
+ }
3594
+ Tt = {
3595
+ createLink: e(s),
3596
+ createLinkSync: o
3597
+ };
3598
+ return Tt;
3599
+ }
3600
+
3601
+ var It;
3602
+
3603
+ var zt;
3604
+
3605
+ function At() {
3606
+ if (zt) return It;
3607
+ zt = 1;
3608
+ "use strict";
3609
+ const e = y;
3610
+ const t = he();
3611
+ const r = Re().pathExists;
3612
+ function n(n, i, s) {
3613
+ if (e.isAbsolute(n)) {
3614
+ return t.lstat(n, ((e, t) => {
3615
+ if (e) {
3616
+ e.message = e.message.replace("lstat", "ensureSymlink");
3617
+ return s(e);
3618
+ }
3619
+ return s(null, {
3620
+ toCwd: n,
3621
+ toDst: n
3622
+ });
3623
+ }));
3624
+ } else {
3625
+ const o = e.dirname(i);
3626
+ const c = e.join(o, n);
3627
+ return r(c, ((r, i) => {
3628
+ if (r) return s(r);
3629
+ if (i) {
3630
+ return s(null, {
3631
+ toCwd: c,
3632
+ toDst: n
3633
+ });
3634
+ } else {
3635
+ return t.lstat(n, ((t, r) => {
3636
+ if (t) {
3637
+ t.message = t.message.replace("lstat", "ensureSymlink");
3638
+ return s(t);
3639
+ }
3640
+ return s(null, {
3641
+ toCwd: n,
3642
+ toDst: e.relative(o, n)
3643
+ });
3644
+ }));
3645
+ }
3646
+ }));
3647
+ }
3648
+ }
3649
+ function i(r, n) {
3650
+ let i;
3651
+ if (e.isAbsolute(r)) {
3652
+ i = t.existsSync(r);
3653
+ if (!i) throw new Error("absolute srcpath does not exist");
3654
+ return {
3655
+ toCwd: r,
3656
+ toDst: r
3657
+ };
3658
+ } else {
3659
+ const s = e.dirname(n);
3660
+ const o = e.join(s, r);
3661
+ i = t.existsSync(o);
3662
+ if (i) {
3663
+ return {
3664
+ toCwd: o,
3665
+ toDst: r
3666
+ };
3667
+ } else {
3668
+ i = t.existsSync(r);
3669
+ if (!i) throw new Error("relative srcpath does not exist");
3670
+ return {
3671
+ toCwd: r,
3672
+ toDst: e.relative(s, r)
3673
+ };
3674
+ }
3675
+ }
3676
+ }
3677
+ It = {
3678
+ symlinkPaths: n,
3679
+ symlinkPathsSync: i
3680
+ };
3681
+ return It;
3682
+ }
3683
+
3684
+ var Ct;
3685
+
3686
+ var Kt;
3687
+
3688
+ function qt() {
3689
+ if (Kt) return Ct;
3690
+ Kt = 1;
3691
+ "use strict";
3692
+ const e = he();
3693
+ function t(t, r, n) {
3694
+ n = typeof r === "function" ? r : n;
3695
+ r = typeof r === "function" ? false : r;
3696
+ if (r) return n(null, r);
3697
+ e.lstat(t, ((e, t) => {
3698
+ if (e) return n(null, "file");
3699
+ r = t && t.isDirectory() ? "dir" : "file";
3700
+ n(null, r);
3701
+ }));
3702
+ }
3703
+ function r(t, r) {
3704
+ let n;
3705
+ if (r) return r;
3706
+ try {
3707
+ n = e.lstatSync(t);
3708
+ } catch (e) {
3709
+ return "file";
3710
+ }
3711
+ return n && n.isDirectory() ? "dir" : "file";
3712
+ }
3713
+ Ct = {
3714
+ symlinkType: t,
3715
+ symlinkTypeSync: r
3716
+ };
3717
+ return Ct;
3718
+ }
3719
+
3720
+ var Jt;
3721
+
3722
+ var Wt;
3723
+
3724
+ function $t() {
3725
+ if (Wt) return Jt;
3726
+ Wt = 1;
3727
+ "use strict";
3728
+ const e = ee().fromCallback;
3729
+ const t = y;
3730
+ const r = he();
3731
+ const n = Ne();
3732
+ const i = n.mkdirs;
3733
+ const s = n.mkdirsSync;
3734
+ const o = At();
3735
+ const c = o.symlinkPaths;
3736
+ const a = o.symlinkPathsSync;
3737
+ const f = qt();
3738
+ const u = f.symlinkType;
3739
+ const l = f.symlinkTypeSync;
3740
+ const h = Re().pathExists;
3741
+ function p(e, n, s, o) {
3742
+ o = typeof s === "function" ? s : o;
3743
+ s = typeof s === "function" ? false : s;
3744
+ h(n, ((a, f) => {
3745
+ if (a) return o(a);
3746
+ if (f) return o(null);
3747
+ c(e, n, ((c, a) => {
3748
+ if (c) return o(c);
3749
+ e = a.toDst;
3750
+ u(a.toCwd, s, ((s, c) => {
3751
+ if (s) return o(s);
3752
+ const a = t.dirname(n);
3753
+ h(a, ((t, s) => {
3754
+ if (t) return o(t);
3755
+ if (s) return r.symlink(e, n, c, o);
3756
+ i(a, (t => {
3757
+ if (t) return o(t);
3758
+ r.symlink(e, n, c, o);
3759
+ }));
3760
+ }));
3761
+ }));
3762
+ }));
3763
+ }));
3764
+ }
3765
+ function d(e, n, i, o) {
3766
+ o = typeof i === "function" ? i : o;
3767
+ i = typeof i === "function" ? false : i;
3768
+ const c = r.existsSync(n);
3769
+ if (c) return undefined;
3770
+ const f = a(e, n);
3771
+ e = f.toDst;
3772
+ i = l(f.toCwd, i);
3773
+ const u = t.dirname(n);
3774
+ const h = r.existsSync(u);
3775
+ if (h) return r.symlinkSync(e, n, i);
3776
+ s(u);
3777
+ return r.symlinkSync(e, n, i);
3778
+ }
3779
+ Jt = {
3780
+ createSymlink: e(p),
3781
+ createSymlinkSync: d
3782
+ };
3783
+ return Jt;
3784
+ }
3785
+
3786
+ var Bt;
3787
+
3788
+ var Gt;
3789
+
3790
+ function Ut() {
3791
+ if (Gt) return Bt;
3792
+ Gt = 1;
3793
+ "use strict";
3794
+ const e = Nt();
3795
+ const t = Rt();
3796
+ const r = $t();
3797
+ Bt = {
3798
+ createFile: e.createFile,
3799
+ createFileSync: e.createFileSync,
3800
+ ensureFile: e.createFile,
3801
+ ensureFileSync: e.createFileSync,
3802
+ createLink: t.createLink,
3803
+ createLinkSync: t.createLinkSync,
3804
+ ensureLink: t.createLink,
3805
+ ensureLinkSync: t.createLinkSync,
3806
+ createSymlink: r.createSymlink,
3807
+ createSymlinkSync: r.createSymlinkSync,
3808
+ ensureSymlink: r.createSymlink,
3809
+ ensureSymlinkSync: r.createSymlinkSync
3810
+ };
3811
+ return Bt;
3812
+ }
3813
+
3814
+ var Yt;
3815
+
3816
+ var Ht;
3817
+
3818
+ function Vt() {
3819
+ if (Ht) return Yt;
3820
+ Ht = 1;
3821
+ "use strict";
3822
+ const e = ee().fromCallback;
3823
+ const t = he();
3824
+ const r = y;
3825
+ const n = Ne();
3826
+ const i = Re().pathExists;
3827
+ function s(e, s, o, c) {
3828
+ if (typeof o === "function") {
3829
+ c = o;
3830
+ o = "utf8";
3831
+ }
3832
+ const a = r.dirname(e);
3833
+ i(a, ((r, i) => {
3834
+ if (r) return c(r);
3835
+ if (i) return t.writeFile(e, s, o, c);
3836
+ n.mkdirs(a, (r => {
3837
+ if (r) return c(r);
3838
+ t.writeFile(e, s, o, c);
3839
+ }));
3840
+ }));
3841
+ }
3842
+ function o(e, i, s) {
3843
+ const o = r.dirname(e);
3844
+ if (t.existsSync(o)) {
3845
+ return t.writeFileSync.apply(t, arguments);
3846
+ }
3847
+ n.mkdirsSync(o);
3848
+ t.writeFileSync.apply(t, arguments);
3849
+ }
3850
+ Yt = {
3851
+ outputFile: e(s),
3852
+ outputFileSync: o
3853
+ };
3854
+ return Yt;
3855
+ }
3856
+
3857
+ var Xt;
3858
+
3859
+ var Qt;
3860
+
3861
+ function Zt() {
3862
+ if (Qt) return Xt;
3863
+ Qt = 1;
3864
+ "use strict";
3865
+ const e = V();
3866
+ const t = {};
3867
+ e(t, ye());
3868
+ e(t, qe());
3869
+ e(t, Ze());
3870
+ e(t, Ne());
3871
+ e(t, st());
3872
+ e(t, gt());
3873
+ e(t, _t());
3874
+ e(t, Pt());
3875
+ e(t, jt());
3876
+ e(t, Ut());
3877
+ e(t, Vt());
3878
+ e(t, Re());
3879
+ Xt = t;
3880
+ return Xt;
3881
+ }
3882
+
3883
+ var er;
3884
+
3885
+ var tr;
3886
+
3887
+ function rr() {
3888
+ if (tr) return er;
3889
+ tr = 1;
3890
+ "use strict";
3891
+ var e = Object.defineProperty;
3892
+ var t = Object.getOwnPropertyDescriptor;
3893
+ var r = Object.getOwnPropertyNames;
3894
+ var i = Object.prototype.hasOwnProperty;
3895
+ var s = (t, r) => {
3896
+ for (var n in r) e(t, n, {
3897
+ get: r[n],
3898
+ enumerable: true
3899
+ });
3900
+ };
3901
+ var o = (n, s, o, c) => {
3902
+ if (s && typeof s === "object" || typeof s === "function") {
3903
+ for (let a of r(s)) if (!i.call(n, a) && a !== o) e(n, a, {
3904
+ get: () => s[a],
3905
+ enumerable: !(c = t(s, a)) || c.enumerable
3906
+ });
3907
+ }
3908
+ return n;
3909
+ };
3910
+ var c = t => o(e({}, "__esModule", {
3911
+ value: true
3912
+ }), t);
3913
+ var a = {};
3914
+ s(a, {
3915
+ defaultDeserialize: () => l,
3916
+ defaultSerialize: () => u
3917
+ });
3918
+ er = c(a);
3919
+ var f = n;
3920
+ var u = e => {
3921
+ if (e === void 0 || e === null) {
3922
+ return "null";
3923
+ }
3924
+ if (typeof e === "string") {
3925
+ return JSON.stringify(e.startsWith(":") ? ":" + e : e);
3926
+ }
3927
+ if (f.Buffer.isBuffer(e)) {
3928
+ return JSON.stringify(":base64:" + e.toString("base64"));
3929
+ }
3930
+ if (e?.toJSON) {
3931
+ e = e.toJSON();
3932
+ }
3933
+ if (typeof e === "object") {
3934
+ let t = "";
3935
+ const r = Array.isArray(e);
3936
+ t = r ? "[" : "{";
3937
+ let n = true;
3938
+ for (const i in e) {
3939
+ const s = typeof e[i] === "function" || !r && e[i] === void 0;
3940
+ if (!Object.hasOwn(e, i) || s) {
3941
+ continue;
3942
+ }
3943
+ if (!n) {
3944
+ t += ",";
3945
+ }
3946
+ n = false;
3947
+ if (r) {
3948
+ t += u(e[i]);
3949
+ } else if (e[i] !== void 0) {
3950
+ t += u(i) + ":" + u(e[i]);
3951
+ }
3952
+ }
3953
+ t += r ? "]" : "}";
3954
+ return t;
3955
+ }
3956
+ return JSON.stringify(e);
3957
+ };
3958
+ var l = e => JSON.parse(e, ((e, t) => {
3959
+ if (typeof t === "string") {
3960
+ if (t.startsWith(":base64:")) {
3961
+ return f.Buffer.from(t.slice(8), "base64");
3962
+ }
3963
+ return t.startsWith(":") ? t.slice(1) : t;
3964
+ }
3965
+ return t;
3966
+ }));
3967
+ 0 && (module.exports = {
3968
+ defaultDeserialize: l,
3969
+ defaultSerialize: u
3970
+ });
3971
+ return er;
3972
+ }
3973
+
3974
+ (function(e) {
3975
+ "use strict";
3976
+ Object.defineProperty(e, "__esModule", {
3977
+ value: true
3978
+ });
3979
+ e.Field = e.KeyvFile = e.defaultOpts = void 0;
3980
+ e.makeField = f;
3981
+ const t = c;
3982
+ const n = t.__importStar(p);
3983
+ const i = t.__importStar(Zt());
3984
+ const s = t.__importDefault(r);
3985
+ const o = rr();
3986
+ e.defaultOpts = {
3987
+ deserialize: o.defaultDeserialize,
3988
+ dialect: "redis",
3989
+ expiredCheckDelay: 24 * 3600 * 1e3,
3990
+ filename: `${n.tmpdir()}/keyv-file/default.json`,
3991
+ serialize: o.defaultSerialize,
3992
+ writeDelay: 100,
3993
+ checkFileLock: false
3994
+ };
3995
+ function a(e) {
3996
+ return typeof e === "number";
3997
+ }
3998
+ class KeyvFile extends s.default {
3999
+ constructor(t) {
4000
+ super();
4001
+ this.ttlSupport = true;
4002
+ this.opts = Object.assign({}, e.defaultOpts, t);
4003
+ if (this.opts.checkFileLock) {
4004
+ this.acquireFileLock();
4005
+ }
4006
+ try {
4007
+ const e = this.opts.deserialize(i.readFileSync(this.opts.filename, "utf8"));
4008
+ if (!Array.isArray(e.cache)) {
4009
+ const t = e.cache;
4010
+ e.cache = [];
4011
+ for (const r in t) {
4012
+ if (t.hasOwnProperty(r)) {
4013
+ e.cache.push([ r, t[r] ]);
4014
+ }
4015
+ }
4016
+ }
4017
+ this._cache = new Map(e.cache);
4018
+ this._lastExpire = e.lastExpire;
4019
+ } catch (e) {
4020
+ this._cache = new Map;
4021
+ this._lastExpire = Date.now();
4022
+ }
4023
+ }
4024
+ get _lockFile() {
4025
+ return this.opts.filename + ".lock";
4026
+ }
4027
+ acquireFileLock() {
4028
+ try {
4029
+ let e = i.openSync(this._lockFile, "wx");
4030
+ i.closeSync(e);
4031
+ process.on("SIGINT", (() => {
4032
+ this.releaseFileLock();
4033
+ process.exit(0);
4034
+ }));
4035
+ process.on("exit", (() => {
4036
+ this.releaseFileLock();
4037
+ }));
4038
+ } catch (e) {
4039
+ console.error(`[keyv-file] There is another process using this file`);
4040
+ throw e;
4041
+ }
4042
+ }
4043
+ releaseFileLock() {
4044
+ try {
4045
+ i.unlinkSync(this._lockFile);
4046
+ } catch (e) {}
4047
+ }
4048
+ get(e) {
4049
+ return t.__awaiter(this, void 0, void 0, (function*() {
4050
+ return Promise.resolve(this.getSync(e));
4051
+ }));
4052
+ }
4053
+ getSync(e) {
4054
+ try {
4055
+ const t = this._cache.get(e);
4056
+ if (!t) {
4057
+ return undefined;
4058
+ } else if (this.isExpired(t)) {
4059
+ this.delete(e);
4060
+ return undefined;
4061
+ } else {
4062
+ return t.value;
4063
+ }
4064
+ } catch (e) {}
4065
+ }
4066
+ getMany(e) {
4067
+ return t.__awaiter(this, void 0, void 0, (function*() {
4068
+ const r = yield Promise.all(e.map((e => t.__awaiter(this, void 0, void 0, (function*() {
4069
+ const t = yield this.get(e);
4070
+ return t;
4071
+ })))));
4072
+ return r;
4073
+ }));
4074
+ }
4075
+ set(e, r, n) {
4076
+ return t.__awaiter(this, void 0, void 0, (function*() {
4077
+ if (n === 0) {
4078
+ n = undefined;
4079
+ }
4080
+ this._cache.set(e, {
4081
+ expire: a(n) ? Date.now() + n : undefined,
4082
+ value: r
4083
+ });
4084
+ return this.save();
4085
+ }));
4086
+ }
4087
+ delete(e) {
4088
+ return t.__awaiter(this, void 0, void 0, (function*() {
4089
+ const t = this._cache.delete(e);
4090
+ yield this.save();
4091
+ return t;
4092
+ }));
4093
+ }
4094
+ deleteMany(e) {
4095
+ return t.__awaiter(this, void 0, void 0, (function*() {
4096
+ const t = e.map((e => this.delete(e)));
4097
+ const r = yield Promise.all(t);
4098
+ return r.every((e => e));
4099
+ }));
4100
+ }
4101
+ clear() {
4102
+ return t.__awaiter(this, void 0, void 0, (function*() {
4103
+ this._cache = new Map;
4104
+ this._lastExpire = Date.now();
4105
+ return this.save();
4106
+ }));
4107
+ }
4108
+ has(e) {
4109
+ return t.__awaiter(this, void 0, void 0, (function*() {
4110
+ const t = yield this.get(e);
4111
+ return t !== undefined;
4112
+ }));
4113
+ }
4114
+ isExpired(e) {
4115
+ return a(e.expire) && e.expire <= Date.now();
4116
+ }
4117
+ clearExpire() {
4118
+ const e = Date.now();
4119
+ if (e - this._lastExpire <= this.opts.expiredCheckDelay) {
4120
+ return;
4121
+ }
4122
+ for (const e of this._cache.keys()) {
4123
+ const t = this._cache.get(e);
4124
+ if (this.isExpired(t)) {
4125
+ this._cache.delete(e);
4126
+ }
4127
+ }
4128
+ this._lastExpire = e;
4129
+ }
4130
+ saveToDisk() {
4131
+ const e = [];
4132
+ for (const [t, r] of this._cache) {
4133
+ e.push([ t, r ]);
4134
+ }
4135
+ const t = this.opts.serialize({
4136
+ cache: e,
4137
+ lastExpire: this._lastExpire
4138
+ });
4139
+ return new Promise(((e, r) => {
4140
+ i.outputFile(this.opts.filename, t, (t => {
4141
+ if (t) {
4142
+ r(t);
4143
+ } else {
4144
+ e();
4145
+ }
4146
+ }));
4147
+ }));
4148
+ }
4149
+ save() {
4150
+ this.clearExpire();
4151
+ if (this._savePromise) {
4152
+ return this._savePromise;
4153
+ }
4154
+ this._savePromise = new Promise(((e, t) => {
4155
+ setTimeout((() => {
4156
+ this.saveToDisk().then(e, t).finally((() => {
4157
+ this._savePromise = void 0;
4158
+ }));
4159
+ }), this.opts.writeDelay);
4160
+ }));
4161
+ return this._savePromise;
4162
+ }
4163
+ disconnect() {
4164
+ return Promise.resolve();
4165
+ }
4166
+ iterator(e) {
4167
+ return t.__asyncGenerator(this, arguments, (function* r() {
4168
+ for (const [r, n] of this._cache.entries()) {
4169
+ if (r === undefined) {
4170
+ continue;
4171
+ }
4172
+ if (!e || r.includes(e)) {
4173
+ yield yield t.__await([ r, n.value ]);
4174
+ }
4175
+ }
4176
+ }));
4177
+ }
4178
+ }
4179
+ e.KeyvFile = KeyvFile;
4180
+ e.default = KeyvFile;
4181
+ class Field {
4182
+ constructor(e, t, r) {
4183
+ this.kv = e;
4184
+ this.key = t;
4185
+ this.defaults = r;
4186
+ }
4187
+ get() {
4188
+ return t.__awaiter(this, arguments, void 0, (function*(e = this.defaults) {
4189
+ var t;
4190
+ return (t = yield this.kv.get(this.key)) !== null && t !== void 0 ? t : e;
4191
+ }));
4192
+ }
4193
+ getSync(e = this.defaults) {
4194
+ var t;
4195
+ if ("getSync" in this.kv) {
4196
+ return (t = this.kv.getSync(this.key)) !== null && t !== void 0 ? t : e;
4197
+ }
4198
+ throw new Error("kv does not support getSync");
4199
+ }
4200
+ set(e, t) {
4201
+ return this.kv.set(this.key, e, t);
4202
+ }
4203
+ delete() {
4204
+ return this.kv.delete(this.key);
4205
+ }
4206
+ }
4207
+ e.Field = Field;
4208
+ function f(e, t, r) {
4209
+ return new Field(e, t, r);
4210
+ }
4211
+ })(U);
4212
+
4213
+ const nr = o(U);
4214
+
4215
+ const ir = e => ({
4216
+ class: Cacher,
4217
+ options: e
4218
+ });
4219
+
4220
+ class Cacher extends m {
4221
+ async init() {
4222
+ let e = undefined;
4223
+ const t = this.options?.stores ? Array.isArray(this.options.stores) ? this.options.stores : [ this.options.stores ] : [];
4224
+ for (const r of t) {
4225
+ switch (r.type) {
4226
+ case "file":
4227
+ {
4228
+ if (!e) e = [];
4229
+ e.push(new F({
4230
+ store: new U.KeyvFile({
4231
+ filename: r.filename,
4232
+ expiredCheckDelay: r.expiredCheckDelay,
4233
+ writeDelay: r.writeDelay
4234
+ }),
4235
+ namespace: r.namespace
4236
+ }));
4237
+ }
4238
+ break;
4239
+
4240
+ case "redis":
4241
+ {
4242
+ try {
4243
+ require.resolve("redis");
4244
+ } catch (e) {
4245
+ throw new Error('Node-Redis package is required for this driver. Run "npm install redis".');
4246
+ }
4247
+ if (!e) e = [];
4248
+ const t = (await import("./Package.65.mjs")).default;
4249
+ e.push(new F({
4250
+ store: new t({
4251
+ username: r.username,
4252
+ password: r.password,
4253
+ database: r.database,
4254
+ socket: {
4255
+ host: r.host,
4256
+ port: r.port,
4257
+ tls: r.tls,
4258
+ keepAlive: r.keepAlive,
4259
+ reconnectStrategy: r.reconnect ? 10 : false
4260
+ }
4261
+ }, {
4262
+ namespace: r.namespace,
4263
+ keyPrefixSeparator: r.keyPrefixSeparator,
4264
+ clearBatchSize: r.clearBatchSize,
4265
+ useUnlink: r.useUnlink,
4266
+ noNamespaceAffectsAll: r.noNamespaceAffectsAll,
4267
+ connectionTimeout: r.connectTimeout,
4268
+ throwOnConnectError: r.throwOnConnectError
4269
+ }),
4270
+ namespace: r.namespace
4271
+ }));
4272
+ }
4273
+ break;
4274
+
4275
+ case "memcache":
4276
+ {
4277
+ try {
4278
+ require.resolve("memjs");
4279
+ } catch (e) {
4280
+ throw new Error('MemJS package is required for this driver. Run "npm install memjs".');
4281
+ }
4282
+ if (!e) e = [];
4283
+ const t = (await import("./Package.66.mjs")).KeyvMemcache;
4284
+ const n = new w;
4285
+ n.host = r.host;
4286
+ n.port = r.port;
4287
+ n.username = r.username;
4288
+ n.password = r.password;
4289
+ e.push(new F({
4290
+ store: new t(n.toString()),
4291
+ namespace: r.namespace
4292
+ }));
4293
+ }
4294
+ break;
4295
+
4296
+ case "mongo":
4297
+ {
4298
+ try {
4299
+ require.resolve("mongodb");
4300
+ } catch (e) {
4301
+ throw new Error('MongoDB package is required for this driver. Run "npm install mongodb".');
4302
+ }
4303
+ if (!e) e = [];
4304
+ const t = (await import("./Package.67.mjs")).KeyvMongo;
4305
+ const n = new w;
4306
+ n.protocol = "mongodb";
4307
+ n.host = r.host;
4308
+ n.port = r.port;
4309
+ n.username = r.username;
4310
+ n.password = r.password;
4311
+ e.push(new F({
4312
+ store: new t(n.toString(), {
4313
+ db: r.database,
4314
+ namespace: r.namespace,
4315
+ collection: r.collection
4316
+ }),
4317
+ namespace: r.namespace
4318
+ }));
4319
+ }
4320
+ break;
4321
+
4322
+ case "sqlite":
4323
+ {
4324
+ try {
4325
+ require.resolve("sqlite3");
4326
+ } catch (e) {
4327
+ throw new Error('SQLite3 package is required for this driver. Run "npm install sqlite3".');
4328
+ }
4329
+ if (!e) e = [];
4330
+ const t = (await import("./Package.68.mjs")).KeyvSqlite;
4331
+ const n = new w;
4332
+ n.protocol = "sqlite";
4333
+ n.pathname = r.database;
4334
+ e.push(new F({
4335
+ store: new t({
4336
+ uri: n.toString(),
4337
+ table: r.table,
4338
+ busyTimeout: r.busyTimeout
4339
+ }),
4340
+ namespace: r.namespace
4341
+ }));
4342
+ }
4343
+ break;
4344
+
4345
+ case "postgres":
4346
+ {
4347
+ try {
4348
+ require.resolve("pg");
4349
+ } catch (e) {
4350
+ throw new Error('Node-Postgres package is required for this driver. Run "npm install pg".');
4351
+ }
4352
+ if (!e) e = [];
4353
+ const t = (await import("./Package.69.mjs")).KeyvPostgres;
4354
+ const n = new w;
4355
+ n.protocol = "postgresql";
4356
+ n.host = r.host;
4357
+ n.port = r.port;
4358
+ n.username = r.username;
4359
+ n.password = r.password;
4360
+ n.pathname = r.database;
4361
+ e.push(new F({
4362
+ store: new t({
4363
+ uri: n.toString(),
4364
+ table: r.table,
4365
+ schema: r.schema,
4366
+ max: r.maxPoolSize
4367
+ }),
4368
+ namespace: r.namespace
4369
+ }));
4370
+ }
4371
+ break;
4372
+
4373
+ case "mysql":
4374
+ {
4375
+ try {
4376
+ require.resolve("mysql2");
4377
+ } catch (e) {
4378
+ throw new Error('MySQL2 package is required for this driver. Run "npm install mysql2".');
4379
+ }
4380
+ if (!e) e = [];
4381
+ const t = (await import("./Package.610.mjs")).KeyvMysql;
4382
+ e.push(new F({
4383
+ store: new t({
4384
+ host: r.host,
4385
+ port: r.port,
4386
+ user: r.username,
4387
+ password: r.password,
4388
+ database: r.database,
4389
+ table: r.table
4390
+ }),
4391
+ namespace: r.namespace
4392
+ }));
4393
+ }
4394
+ break;
4395
+ }
4396
+ }
4397
+ this.cache = G({
4398
+ ...this.options,
4399
+ stores: e
4400
+ });
4401
+ this.cache.on("set", (e => this.emit("set", e)));
4402
+ this.cache.on("del", (e => this.emit("del", e)));
4403
+ this.cache.on("clear", (e => this.emit("clear", e)));
4404
+ this.cache.on("refresh", (e => this.emit("refresh", e)));
4405
+ }
4406
+ async destroy() {
4407
+ await this.cache.disconnect();
4408
+ }
4409
+ async set(e, t, r) {
4410
+ return await this.cache.set(e, t, r);
4411
+ }
4412
+ async multipleSet(e) {
4413
+ return await this.cache.mset(e);
4414
+ }
4415
+ async get(e) {
4416
+ return S(await this.cache.get(e));
4417
+ }
4418
+ async multipleGet(e) {
4419
+ return await this.cache.mget(e);
4420
+ }
4421
+ async ttl(e) {
4422
+ const t = await this.cache.ttl(e);
4423
+ if (t === undefined) return -1;
4424
+ return t;
4425
+ }
4426
+ async del(e) {
4427
+ return await this.cache.del(e);
4428
+ }
4429
+ async multipleDel(e) {
4430
+ return await this.cache.mdel(e);
4431
+ }
4432
+ async clear() {
4433
+ return await this.cache.clear();
4434
+ }
4435
+ on(e, t) {
4436
+ return super.on(e, t);
4437
+ }
4438
+ }
4439
+
4440
+ e([ v(d.optional()), t("design:type", d) ], Cacher.prototype, "options", void 0);
4441
+
4442
+ export { ir as B, Cacher as C, M as K, k as d, F as i };