@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.
- package/dist/firebase/functions/index.cjs +626 -120
- package/dist/iac/index.cjs +312 -24
- package/dist/iac/index.mjs +312 -24
- package/package.json +14 -12
package/dist/iac/index.mjs
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 (
|
|
139
|
-
else target[key] = merge([], sourceValue);
|
|
140
|
-
else if (isPlainObject$1(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.
|
|
148
|
-
|
|
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.
|
|
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
|
|
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 (
|
|
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.
|
|
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.
|
|
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) +
|
|
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.
|
|
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.
|
|
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":
|
|
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.
|
|
40
|
-
"@hot-updater/core": "0.33.
|
|
41
|
-
"@hot-updater/
|
|
42
|
-
"@hot-updater/
|
|
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": "
|
|
53
|
-
"firebase-functions-test": "^3.
|
|
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.
|
|
58
|
-
"@hot-updater/mock": "0.33.
|
|
59
|
-
"@hot-updater/test-utils": "0.33.
|
|
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": "*",
|