@hot-updater/firebase 0.33.0 → 0.33.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,14 +42,48 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
42
42
  }) : target, mod));
43
43
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
44
44
  //#endregion
45
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/_internal/compareValues.mjs
45
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/_internal/compareValues.mjs
46
46
  function compareValues(a, b, order) {
47
47
  if (a < b) return order === "asc" ? -1 : 1;
48
48
  if (a > b) return order === "asc" ? 1 : -1;
49
49
  return 0;
50
50
  }
51
51
  //#endregion
52
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/array/orderBy.mjs
52
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/array/orderBy.mjs
53
+ /**
54
+ * Sorts an array of objects based on the given `criteria` and their corresponding order directions.
55
+ *
56
+ * - If you provide keys, it sorts the objects by the values of those keys.
57
+ * - If you provide functions, it sorts based on the values returned by those functions.
58
+ *
59
+ * The function returns the array of objects sorted in corresponding order directions.
60
+ * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
61
+ * If the number of orders is less than the number of criteria, it uses the last order for the rest of the criteria.
62
+ *
63
+ * @template T - The type of elements in the array.
64
+ * @param {T[]} arr - The array of objects to be sorted.
65
+ * @param {Array<((item: T) => unknown) | keyof T>} criteria - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
66
+ * @param {Array<'asc' | 'desc'>} orders - An array of order directions ('asc' for ascending or 'desc' for descending).
67
+ * @returns {T[]} - The sorted array.
68
+ *
69
+ * @example
70
+ * // Sort an array of objects by 'user' in ascending order and 'age' in descending order.
71
+ * const users = [
72
+ * { user: 'fred', age: 48 },
73
+ * { user: 'barney', age: 34 },
74
+ * { user: 'fred', age: 40 },
75
+ * { user: 'barney', age: 36 },
76
+ * ];
77
+ *
78
+ * const result = orderBy(users, [obj => obj.user, 'age'], ['asc', 'desc']);
79
+ * // result will be:
80
+ * // [
81
+ * // { user: 'barney', age: 36 },
82
+ * // { user: 'barney', age: 34 },
83
+ * // { user: 'fred', age: 48 },
84
+ * // { user: 'fred', age: 40 },
85
+ * // ]
86
+ */
53
87
  function orderBy(arr, criteria, orders) {
54
88
  return arr.slice().sort((a, b) => {
55
89
  const ordersLength = orders.length;
@@ -64,12 +98,59 @@ function orderBy(arr, criteria, orders) {
64
98
  });
65
99
  }
66
100
  //#endregion
67
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/array/sortBy.mjs
101
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/array/sortBy.mjs
102
+ /**
103
+ * Sorts an array of objects based on the given `criteria`.
104
+ *
105
+ * - If you provide keys, it sorts the objects by the values of those keys.
106
+ * - If you provide functions, it sorts based on the values returned by those functions.
107
+ *
108
+ * The function returns the array of objects sorted in ascending order.
109
+ * If two objects have the same value for the current criterion, it uses the next criterion to determine their order.
110
+ *
111
+ * @template T - The type of the objects in the array.
112
+ * @param {T[]} arr - The array of objects to be sorted.
113
+ * @param {Array<((item: T) => unknown) | keyof T>} criteria - The criteria for sorting. This can be an array of object keys or functions that return values used for sorting.
114
+ * @returns {T[]} - The sorted array.
115
+ *
116
+ * @example
117
+ * const users = [
118
+ * { user: 'foo', age: 24 },
119
+ * { user: 'bar', age: 7 },
120
+ * { user: 'foo', age: 8 },
121
+ * { user: 'bar', age: 29 },
122
+ * ];
123
+ *
124
+ * sortBy(users, ['user', 'age']);
125
+ * sortBy(users, [obj => obj.user, 'age']);
126
+ * // results will be:
127
+ * // [
128
+ * // { user : 'bar', age: 7 },
129
+ * // { user : 'bar', age: 29 },
130
+ * // { user : 'foo', age: 8 },
131
+ * // { user : 'foo', age: 24 },
132
+ * // ]
133
+ */
68
134
  function sortBy(arr, criteria) {
69
135
  return orderBy(arr, criteria, ["asc"]);
70
136
  }
71
137
  //#endregion
72
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/array/uniqWith.mjs
138
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/array/uniqWith.mjs
139
+ /**
140
+ * Returns a new array containing only the unique elements from the original array,
141
+ * based on the values returned by the comparator function.
142
+ *
143
+ * @template T - The type of elements in the array.
144
+ * @param {T[]} arr - The array to process.
145
+ * @param {(item1: T, item2: T) => boolean} areItemsEqual - The function used to compare the array elements.
146
+ * @returns {T[]} A new array containing only the unique elements from the original array, based on the values returned by the comparator function.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * uniqWith([1.2, 1.5, 2.1, 3.2, 5.7, 5.3, 7.19], (a, b) => Math.abs(a - b) < 1);
151
+ * // [1.2, 3.2, 5.7, 7.19]
152
+ * ```
153
+ */
73
154
  function uniqWith(arr, areItemsEqual) {
74
155
  const result = [];
75
156
  for (let i = 0; i < arr.length; i++) {
@@ -79,21 +160,65 @@ function uniqWith(arr, areItemsEqual) {
79
160
  return result;
80
161
  }
81
162
  //#endregion
82
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/function/noop.mjs
163
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/_internal/globalThis.mjs
164
+ const globalThis_ = typeof globalThis === "object" && globalThis || typeof window === "object" && window || typeof self === "object" && self || typeof global === "object" && global || (function() {
165
+ return this;
166
+ })() || Function("return this")();
167
+ //#endregion
168
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/function/noop.mjs
169
+ /**
170
+ * A no-operation function that does nothing.
171
+ * This can be used as a placeholder or default function.
172
+ *
173
+ * @example
174
+ * noop(); // Does nothing
175
+ *
176
+ * @returns {void} This function does not return anything.
177
+ */
83
178
  function noop$2() {}
84
179
  //#endregion
85
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs
180
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/predicate/isBuffer.mjs
181
+ /**
182
+ * Checks if the given value is a Buffer instance.
183
+ *
184
+ * This function tests whether the provided value is an instance of Buffer.
185
+ * It returns `true` if the value is a Buffer, and `false` otherwise.
186
+ *
187
+ * This function can also serve as a type predicate in TypeScript, narrowing the type of the argument to `Buffer`.
188
+ *
189
+ * @param {unknown} x - The value to check if it is a Buffer.
190
+ * @returns {boolean} Returns `true` if `x` is a Buffer, else `false`.
191
+ *
192
+ * @example
193
+ * const buffer = Buffer.from("test");
194
+ * console.log(isBuffer(buffer)); // true
195
+ *
196
+ * const notBuffer = "not a buffer";
197
+ * console.log(isBuffer(notBuffer)); // false
198
+ */
199
+ function isBuffer(x) {
200
+ return typeof globalThis_.Buffer !== "undefined" && globalThis_.Buffer.isBuffer(x);
201
+ }
202
+ //#endregion
203
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs
86
204
  function getSymbols(object) {
87
205
  return Object.getOwnPropertySymbols(object).filter((symbol) => Object.prototype.propertyIsEnumerable.call(object, symbol));
88
206
  }
89
207
  //#endregion
90
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/compat/_internal/getTag.mjs
208
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/compat/_internal/getTag.mjs
209
+ /**
210
+ * Gets the `toStringTag` of `value`.
211
+ *
212
+ * @private
213
+ * @param {T} value The value to query.
214
+ * @returns {string} Returns the `Object.prototype.toString.call` result.
215
+ */
91
216
  function getTag(value) {
92
217
  if (value == null) return value === void 0 ? "[object Undefined]" : "[object Null]";
93
218
  return Object.prototype.toString.call(value);
94
219
  }
95
220
  //#endregion
96
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/compat/_internal/tags.mjs
221
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/compat/_internal/tags.mjs
97
222
  const regexpTag = "[object RegExp]";
98
223
  const stringTag = "[object String]";
99
224
  const numberTag = "[object Number]";
@@ -120,7 +245,49 @@ const bigInt64ArrayTag = "[object BigInt64Array]";
120
245
  const float32ArrayTag = "[object Float32Array]";
121
246
  const float64ArrayTag = "[object Float64Array]";
122
247
  //#endregion
123
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/predicate/isPlainObject.mjs
248
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/predicate/isPlainObject.mjs
249
+ /**
250
+ * Checks if a given value is a plain object.
251
+ *
252
+ * @param {object} value - The value to check.
253
+ * @returns {value is Record<PropertyKey, any>} - True if the value is a plain object, otherwise false.
254
+ *
255
+ * @example
256
+ * ```typescript
257
+ * // ✅👇 True
258
+ *
259
+ * isPlainObject({ }); // ✅
260
+ * isPlainObject({ key: 'value' }); // ✅
261
+ * isPlainObject({ key: new Date() }); // ✅
262
+ * isPlainObject(new Object()); // ✅
263
+ * isPlainObject(Object.create(null)); // ✅
264
+ * isPlainObject({ nested: { key: true} }); // ✅
265
+ * isPlainObject(new Proxy({}, {})); // ✅
266
+ * isPlainObject({ [Symbol('tag')]: 'A' }); // ✅
267
+ *
268
+ * // ✅👇 (cross-realms, node context, workers, ...)
269
+ * const runInNewContext = await import('node:vm').then(
270
+ * (mod) => mod.runInNewContext
271
+ * );
272
+ * isPlainObject(runInNewContext('({})')); // ✅
273
+ *
274
+ * // ❌👇 False
275
+ *
276
+ * class Test { };
277
+ * isPlainObject(new Test()) // ❌
278
+ * isPlainObject(10); // ❌
279
+ * isPlainObject(null); // ❌
280
+ * isPlainObject('hello'); // ❌
281
+ * isPlainObject([]); // ❌
282
+ * isPlainObject(new Date()); // ❌
283
+ * isPlainObject(new Uint8Array([1])); // ❌
284
+ * isPlainObject(Buffer.from('ABC')); // ❌
285
+ * isPlainObject(Promise.resolve({})); // ❌
286
+ * isPlainObject(Object.create({})); // ❌
287
+ * isPlainObject(new (class Cls {})); // ❌
288
+ * isPlainObject(globalThis); // ❌,
289
+ * ```
290
+ */
124
291
  function isPlainObject$1(value) {
125
292
  if (!value || typeof value !== "object") return false;
126
293
  const proto = Object.getPrototypeOf(value);
@@ -128,28 +295,134 @@ function isPlainObject$1(value) {
128
295
  return Object.prototype.toString.call(value) === "[object Object]";
129
296
  }
130
297
  //#endregion
131
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/object/merge.mjs
298
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs
299
+ /**
300
+ * Checks if a property key is unsafe to modify directly.
301
+ *
302
+ * This function is used in functions like `merge` to prevent prototype pollution attacks
303
+ * by identifying property keys that could modify the object's prototype chain or constructor.
304
+ *
305
+ * @param key - The property key to check
306
+ * @returns `true` if the property is unsafe to modify directly, `false` otherwise
307
+ * @internal
308
+ */
309
+ function isUnsafeProperty(key) {
310
+ return key === "__proto__";
311
+ }
312
+ //#endregion
313
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/object/merge.mjs
314
+ /**
315
+ * Merges the properties of the source object into the target object.
316
+ *
317
+ * This function performs a deep merge, meaning nested objects and arrays are merged recursively.
318
+ * If a property in the source object is an array or an object and the corresponding property in the target object is also an array or object, they will be merged.
319
+ * If a property in the source object is undefined, it will not overwrite a defined property in the target object.
320
+ *
321
+ * Note that this function mutates the target object.
322
+ *
323
+ * @param {T} target - The target object into which the source object properties will be merged. This object is modified in place.
324
+ * @param {S} source - The source object whose properties will be merged into the target object.
325
+ * @returns {T & S} The updated target object with properties from the source object merged in.
326
+ *
327
+ * @template T - Type of the target object.
328
+ * @template S - Type of the source object.
329
+ *
330
+ * @example
331
+ * const target = { a: 1, b: { x: 1, y: 2 } };
332
+ * const source = { b: { y: 3, z: 4 }, c: 5 };
333
+ *
334
+ * const result = merge(target, source);
335
+ * console.log(result);
336
+ * // Output: { a: 1, b: { x: 1, y: 3, z: 4 }, c: 5 }
337
+ *
338
+ * @example
339
+ * const target = { a: [1, 2], b: { x: 1 } };
340
+ * const source = { a: [3], b: { y: 2 } };
341
+ *
342
+ * const result = merge(target, source);
343
+ * console.log(result);
344
+ * // Output: { a: [3, 2], b: { x: 1, y: 2 } }
345
+ *
346
+ * @example
347
+ * const target = { a: null };
348
+ * const source = { a: [1, 2, 3] };
349
+ *
350
+ * const result = merge(target, source);
351
+ * console.log(result);
352
+ * // Output: { a: [1, 2, 3] }
353
+ */
132
354
  function merge(target, source) {
133
355
  const sourceKeys = Object.keys(source);
134
356
  for (let i = 0; i < sourceKeys.length; i++) {
135
357
  const key = sourceKeys[i];
358
+ if (isUnsafeProperty(key)) continue;
136
359
  const sourceValue = source[key];
137
360
  const targetValue = target[key];
138
- if (Array.isArray(sourceValue)) if (Array.isArray(targetValue)) target[key] = merge(targetValue, sourceValue);
139
- else target[key] = merge([], sourceValue);
140
- else if (isPlainObject$1(sourceValue)) if (isPlainObject$1(targetValue)) target[key] = merge(targetValue, sourceValue);
141
- else target[key] = merge({}, sourceValue);
361
+ if (isMergeableValue(sourceValue) && isMergeableValue(targetValue)) target[key] = merge(targetValue, sourceValue);
362
+ else if (Array.isArray(sourceValue)) target[key] = merge([], sourceValue);
363
+ else if (isPlainObject$1(sourceValue)) target[key] = merge({}, sourceValue);
142
364
  else if (targetValue === void 0 || sourceValue !== void 0) target[key] = sourceValue;
143
365
  }
144
366
  return target;
145
367
  }
368
+ function isMergeableValue(value) {
369
+ return isPlainObject$1(value) || Array.isArray(value);
370
+ }
146
371
  //#endregion
147
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/compat/util/eq.mjs
148
- function eq(value, other) {
372
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/_internal/isEqualsSameValueZero.mjs
373
+ /**
374
+ * Performs a `SameValueZero` comparison between two values to determine if they are equivalent.
375
+ *
376
+ * @param {any} value - The value to compare.
377
+ * @param {any} other - The other value to compare.
378
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
379
+ *
380
+ * @example
381
+ * eq(1, 1); // true
382
+ * eq(0, -0); // true
383
+ * eq(NaN, NaN); // true
384
+ * eq('a', Object('a')); // false
385
+ */
386
+ function isEqualsSameValueZero(value, other) {
149
387
  return value === other || Number.isNaN(value) && Number.isNaN(other);
150
388
  }
151
389
  //#endregion
152
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/predicate/isEqualWith.mjs
390
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/predicate/isEqualWith.mjs
391
+ /**
392
+ * Compares two values for equality using a custom comparison function.
393
+ *
394
+ * The custom function allows for fine-tuned control over the comparison process. If it returns a boolean, that result determines the equality. If it returns undefined, the function falls back to the default equality comparison.
395
+ *
396
+ * This function also uses the custom equality function to compare values inside objects,
397
+ * arrays, maps, sets, and other complex structures, ensuring a deep comparison.
398
+ *
399
+ * This approach provides flexibility in handling complex comparisons while maintaining efficient default behavior for simpler cases.
400
+ *
401
+ * The custom comparison function can take up to six parameters:
402
+ * - `x`: The value from the first object `a`.
403
+ * - `y`: The value from the second object `b`.
404
+ * - `property`: The property key used to get `x` and `y`.
405
+ * - `xParent`: The parent of the first value `x`.
406
+ * - `yParent`: The parent of the second value `y`.
407
+ * - `stack`: An internal stack (Map) to handle circular references.
408
+ *
409
+ * @param {unknown} a - The first value to compare.
410
+ * @param {unknown} b - The second value to compare.
411
+ * @param {(x: any, y: any, property?: PropertyKey, xParent?: any, yParent?: any, stack?: Map<any, any>) => boolean | void} areValuesEqual - A function to customize the comparison.
412
+ * If it returns a boolean, that result will be used. If it returns undefined,
413
+ * the default equality comparison will be used.
414
+ * @returns {boolean} `true` if the values are equal according to the customizer, otherwise `false`.
415
+ *
416
+ * @example
417
+ * const customizer = (a, b) => {
418
+ * if (typeof a === 'string' && typeof b === 'string') {
419
+ * return a.toLowerCase() === b.toLowerCase();
420
+ * }
421
+ * };
422
+ * isEqualWith('Hello', 'hello', customizer); // true
423
+ * isEqualWith({ a: 'Hello' }, { a: 'hello' }, customizer); // true
424
+ * isEqualWith([1, 2, 3], [1, 2, 3], customizer); // true
425
+ */
153
426
  function isEqualWith(a, b, areValuesEqual) {
154
427
  return isEqualWithImpl(a, b, void 0, void 0, void 0, void 0, areValuesEqual);
155
428
  }
@@ -177,7 +450,7 @@ function areObjectsEqual(a, b, stack, areValuesEqual) {
177
450
  if (aTag !== bTag) return false;
178
451
  switch (aTag) {
179
452
  case stringTag: return a.toString() === b.toString();
180
- case numberTag: return eq(a.valueOf(), b.valueOf());
453
+ case numberTag: return isEqualsSameValueZero(a.valueOf(), b.valueOf());
181
454
  case booleanTag:
182
455
  case dateTag:
183
456
  case symbolTag: return Object.is(a.valueOf(), b.valueOf());
@@ -222,7 +495,7 @@ function areObjectsEqual(a, b, stack, areValuesEqual) {
222
495
  case bigInt64ArrayTag:
223
496
  case float32ArrayTag:
224
497
  case float64ArrayTag:
225
- if (typeof Buffer !== "undefined" && Buffer.isBuffer(a) !== Buffer.isBuffer(b)) return false;
498
+ if (isBuffer(a) !== isBuffer(b)) return false;
226
499
  if (a.length !== b.length) return false;
227
500
  for (let i = 0; i < a.length; i++) if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual)) return false;
228
501
  return true;
@@ -255,7 +528,21 @@ function areObjectsEqual(a, b, stack, areValuesEqual) {
255
528
  }
256
529
  }
257
530
  //#endregion
258
- //#region ../../node_modules/.pnpm/es-toolkit@1.32.0/node_modules/es-toolkit/dist/predicate/isEqual.mjs
531
+ //#region ../../node_modules/.pnpm/es-toolkit@1.47.0/node_modules/es-toolkit/dist/predicate/isEqual.mjs
532
+ /**
533
+ * Checks if two values are equal, including support for `Date`, `RegExp`, and deep object comparison.
534
+ *
535
+ * @param {unknown} a - The first value to compare.
536
+ * @param {unknown} b - The second value to compare.
537
+ * @returns {boolean} `true` if the values are equal, otherwise `false`.
538
+ *
539
+ * @example
540
+ * isEqual(1, 1); // true
541
+ * isEqual({ a: 1 }, { a: 1 }); // true
542
+ * isEqual(/abc/g, /abc/g); // true
543
+ * isEqual(new Date('2020-01-01'), new Date('2020-01-01')); // true
544
+ * isEqual([1, 2, 3], [1, 2, 3]); // true
545
+ */
259
546
  function isEqual(a, b) {
260
547
  return isEqualWith(a, b, noop$2);
261
548
  }
@@ -833,7 +1120,7 @@ const fallbackSymbols = {
833
1120
  const figures = isUnicodeSupported() ? mainSymbols : fallbackSymbols;
834
1121
  Object.entries(specialMainSymbols);
835
1122
  //#endregion
836
- //#region ../../node_modules/.pnpm/yoctocolors@2.1.1/node_modules/yoctocolors/base.js
1123
+ //#region ../../node_modules/.pnpm/yoctocolors@2.1.2/node_modules/yoctocolors/base.js
837
1124
  const hasColors = tty?.WriteStream?.prototype?.hasColors?.() ?? false;
838
1125
  const format = (open, close) => {
839
1126
  if (!hasColors) return (input) => input;
@@ -845,8 +1132,9 @@ const format = (open, close) => {
845
1132
  if (index === -1) return openCode + string + closeCode;
846
1133
  let result = openCode;
847
1134
  let lastIndex = 0;
1135
+ const replaceCode = (close === 22 ? closeCode : "") + openCode;
848
1136
  while (index !== -1) {
849
- result += string.slice(lastIndex, index) + openCode;
1137
+ result += string.slice(lastIndex, index) + replaceCode;
850
1138
  lastIndex = index + closeCode.length;
851
1139
  index = string.indexOf(closeCode, lastIndex);
852
1140
  }
@@ -3246,7 +3534,7 @@ function parseMilliseconds(milliseconds) {
3246
3534
  throw new TypeError("Expected a finite number or bigint");
3247
3535
  }
3248
3536
  //#endregion
3249
- //#region ../../node_modules/.pnpm/pretty-ms@9.2.0/node_modules/pretty-ms/index.js
3537
+ //#region ../../node_modules/.pnpm/pretty-ms@9.3.0/node_modules/pretty-ms/index.js
3250
3538
  const isZero = (value) => value === 0 || value === 0n;
3251
3539
  const pluralize = (word, count) => count === 1 || count === 1n ? word : `${word}s`;
3252
3540
  const SECOND_ROUNDING_EPSILON = 1e-7;
@@ -3295,7 +3583,7 @@ function prettyMilliseconds(milliseconds, options) {
3295
3583
  add(Number(parsed.hours), "hour", "h");
3296
3584
  }
3297
3585
  add(Number(parsed.minutes), "minute", "m");
3298
- if (!options.hideSeconds) if (options.separateMilliseconds || options.formatSubMilliseconds || !options.colonNotation && milliseconds < 1e3) {
3586
+ if (!options.hideSeconds) if (options.separateMilliseconds || options.formatSubMilliseconds || !options.colonNotation && milliseconds < 1e3 && !options.subSecondsAsDecimals) {
3299
3587
  const seconds = Number(parsed.seconds);
3300
3588
  const milliseconds = Number(parsed.milliseconds);
3301
3589
  const microseconds = Number(parsed.microseconds);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hot-updater/firebase",
3
3
  "type": "module",
4
- "version": "0.33.0",
4
+ "version": "0.33.2",
5
5
  "description": "React Native OTA solution for self-hosted",
6
6
  "main": "dist/index.cjs",
7
7
  "types": "dist/index.d.cts",
@@ -23,7 +23,10 @@
23
23
  "./package.json": "./package.json"
24
24
  },
25
25
  "license": "MIT",
26
- "repository": "https://github.com/gronxb/hot-updater",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/gronxb/hot-updater"
29
+ },
27
30
  "author": "gronxb <gron1gh1@gmail.com> (https://github.com/gronxb)",
28
31
  "bugs": {
29
32
  "url": "https://github.com/gronxb/hot-updater/issues"
@@ -34,12 +37,11 @@
34
37
  "package.json"
35
38
  ],
36
39
  "dependencies": {
37
- "firebase": "^11.3.1",
38
40
  "hono": "4.12.9",
39
- "@hot-updater/cli-tools": "0.33.0",
40
- "@hot-updater/core": "0.33.0",
41
- "@hot-updater/plugin-core": "0.33.0",
42
- "@hot-updater/server": "0.33.0"
41
+ "@hot-updater/cli-tools": "0.33.2",
42
+ "@hot-updater/plugin-core": "0.33.2",
43
+ "@hot-updater/server": "0.33.2",
44
+ "@hot-updater/core": "0.33.2"
43
45
  },
44
46
  "publishConfig": {
45
47
  "access": "public"
@@ -49,14 +51,14 @@
49
51
  "es-toolkit": "^1.32.0",
50
52
  "execa": "9.5.2",
51
53
  "firebase-admin": "13.6.0",
52
- "firebase-functions": "^6.3.2",
53
- "firebase-functions-test": "^3.4.0",
54
+ "firebase-functions": "6.3.2",
55
+ "firebase-functions-test": "^3.5.0",
54
56
  "firebase-tools": "^13.32.0",
55
57
  "fkill": "^9.0.0",
56
58
  "mime": "^4.0.4",
57
- "@hot-updater/js": "0.33.0",
58
- "@hot-updater/mock": "0.33.0",
59
- "@hot-updater/test-utils": "0.33.0"
59
+ "@hot-updater/js": "0.33.2",
60
+ "@hot-updater/mock": "0.33.2",
61
+ "@hot-updater/test-utils": "0.33.2"
60
62
  },
61
63
  "peerDependencies": {
62
64
  "firebase-admin": "*",