@mxpicture/gcp-functions-common 0.2.64 → 0.2.65
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/helper/FirebaseTimestamp.d.ts +21 -0
- package/dist/helper/FirebaseTimestamp.d.ts.map +1 -0
- package/dist/helper/FirebaseTimestamp.js +50 -0
- package/dist/helper/FirebaseTimestamp.js.map +1 -0
- package/dist/helper/helper.date.d.ts +2 -1
- package/dist/helper/helper.date.d.ts.map +1 -1
- package/dist/helper/helper.date.js +21 -9
- package/dist/helper/helper.date.js.map +1 -1
- package/dist/helper/index.d.ts +1 -0
- package/dist/helper/index.d.ts.map +1 -1
- package/dist/helper/index.js +1 -0
- package/dist/helper/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DocumentData } from "../types/types.document.js";
|
|
2
|
+
export interface FirebaseTimestampRaw {
|
|
3
|
+
_seconds: number;
|
|
4
|
+
_nanoseconds: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class FirebaseTimestamp {
|
|
7
|
+
protected readonly _seconds: number;
|
|
8
|
+
protected readonly _nanoseconds: number;
|
|
9
|
+
static now(): FirebaseTimestamp;
|
|
10
|
+
static fromDoc(doc: DocumentData): FirebaseTimestamp | null;
|
|
11
|
+
static fromDate(date: Date): FirebaseTimestamp;
|
|
12
|
+
static fromMillis(milliseconds: number): FirebaseTimestamp;
|
|
13
|
+
constructor(seconds: number, nanoseconds: number);
|
|
14
|
+
get raw(): FirebaseTimestampRaw;
|
|
15
|
+
get seconds(): number;
|
|
16
|
+
get nanoseconds(): number;
|
|
17
|
+
date(): Date;
|
|
18
|
+
millis(): number;
|
|
19
|
+
valueOf(): string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=FirebaseTimestamp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirebaseTimestamp.d.ts","sourceRoot":"","sources":["../../src/helper/FirebaseTimestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;WAE1B,GAAG,IAAI,iBAAiB;WAIxB,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,GAAG,IAAI;WASpD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB;WAIvC,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB;gBAM9C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKvD,IAAW,GAAG,IAAI,oBAAoB,CAErC;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,WAAW,IAAI,MAAM,CAE/B;IAEM,IAAI,IAAI,IAAI;IAMZ,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,MAAM;CAMzB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const MS_TO_NANOS = 1000000;
|
|
2
|
+
const MIN_SECONDS = -62135596800;
|
|
3
|
+
// const MAX_SECONDS = 253402300799;
|
|
4
|
+
export class FirebaseTimestamp {
|
|
5
|
+
_seconds;
|
|
6
|
+
_nanoseconds;
|
|
7
|
+
static now() {
|
|
8
|
+
return FirebaseTimestamp.fromMillis(Date.now());
|
|
9
|
+
}
|
|
10
|
+
static fromDoc(doc) {
|
|
11
|
+
if (typeof doc._seconds !== "number" ||
|
|
12
|
+
typeof doc._nanoseconds !== "number")
|
|
13
|
+
return null;
|
|
14
|
+
return new FirebaseTimestamp(doc._seconds, doc._nanoseconds);
|
|
15
|
+
}
|
|
16
|
+
static fromDate(date) {
|
|
17
|
+
return FirebaseTimestamp.fromMillis(date.getTime());
|
|
18
|
+
}
|
|
19
|
+
static fromMillis(milliseconds) {
|
|
20
|
+
const seconds = Math.floor(milliseconds / 1000);
|
|
21
|
+
const nanos = Math.floor((milliseconds - seconds * 1000) * MS_TO_NANOS);
|
|
22
|
+
return new FirebaseTimestamp(seconds, nanos);
|
|
23
|
+
}
|
|
24
|
+
constructor(seconds, nanoseconds) {
|
|
25
|
+
this._seconds = seconds;
|
|
26
|
+
this._nanoseconds = nanoseconds;
|
|
27
|
+
}
|
|
28
|
+
get raw() {
|
|
29
|
+
return { _nanoseconds: this._nanoseconds, _seconds: this._seconds };
|
|
30
|
+
}
|
|
31
|
+
get seconds() {
|
|
32
|
+
return this._seconds;
|
|
33
|
+
}
|
|
34
|
+
get nanoseconds() {
|
|
35
|
+
return this._nanoseconds;
|
|
36
|
+
}
|
|
37
|
+
date() {
|
|
38
|
+
return new Date(this._seconds * 1000 + Math.round(this._nanoseconds / MS_TO_NANOS));
|
|
39
|
+
}
|
|
40
|
+
millis() {
|
|
41
|
+
return this._seconds * 1000 + Math.floor(this._nanoseconds / MS_TO_NANOS);
|
|
42
|
+
}
|
|
43
|
+
valueOf() {
|
|
44
|
+
const adjustedSeconds = this.seconds - MIN_SECONDS;
|
|
45
|
+
const formattedSeconds = String(adjustedSeconds).padStart(12, "0");
|
|
46
|
+
const formattedNanoseconds = String(this.nanoseconds).padStart(9, "0");
|
|
47
|
+
return formattedSeconds + "." + formattedNanoseconds;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=FirebaseTimestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirebaseTimestamp.js","sourceRoot":"","sources":["../../src/helper/FirebaseTimestamp.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC;AACjC,oCAAoC;AAEpC,MAAM,OAAO,iBAAiB;IACT,QAAQ,CAAS;IACjB,YAAY,CAAS;IAEjC,MAAM,CAAC,GAAG;QACf,OAAO,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,GAAiB;QACrC,IACE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAChC,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;YAEpC,OAAO,IAAI,CAAC;QACd,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAU;QAC/B,OAAO,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,YAAoB;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACxE,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,YAAmB,OAAe,EAAE,WAAmB;QACrD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtE,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,IAAI,CACb,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CACnE,CAAC;IACJ,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;IAC5E,CAAC;IAEM,OAAO;QACZ,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;QACnD,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACnE,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvE,OAAO,gBAAgB,GAAG,GAAG,GAAG,oBAAoB,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.date.d.ts","sourceRoot":"","sources":["../../src/helper/helper.date.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helper.date.d.ts","sourceRoot":"","sources":["../../src/helper/helper.date.ts"],"names":[],"mappings":"AA2DA,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,MAAM,EAAE,KAAG,CACf,CAAC;AAE5C,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,MAAM,EAAE,KAAG,CACf,CAAC"}
|
|
@@ -1,35 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
1
|
+
import { FirebaseTimestamp, } from "./FirebaseTimestamp.js";
|
|
2
|
+
const _normalizeDate = (value) => !value
|
|
3
3
|
? value
|
|
4
4
|
: typeof value?.toDate === "function"
|
|
5
5
|
? value.toDate()
|
|
6
6
|
: value?._seconds !== undefined
|
|
7
7
|
? new Date(value._seconds * 1000 + value._nanoseconds / 1e6)
|
|
8
8
|
: value;
|
|
9
|
+
const _normalizeTimestamp = (value) => {
|
|
10
|
+
if (value instanceof Date)
|
|
11
|
+
return FirebaseTimestamp.fromDate(value).raw;
|
|
12
|
+
if (typeof value === "number")
|
|
13
|
+
return FirebaseTimestamp.fromMillis(value).raw;
|
|
14
|
+
if (typeof value === "object")
|
|
15
|
+
return FirebaseTimestamp.fromDoc(value)?.raw ?? null;
|
|
16
|
+
return null;
|
|
17
|
+
};
|
|
18
|
+
const _applyPath = (
|
|
9
19
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
-
|
|
20
|
+
obj, pathParts, convert) => {
|
|
11
21
|
if (!obj)
|
|
12
22
|
return;
|
|
13
23
|
const [current, ...rest] = pathParts;
|
|
14
24
|
if (current === "*") {
|
|
15
25
|
if (Array.isArray(obj))
|
|
16
26
|
for (const item of obj)
|
|
17
|
-
|
|
27
|
+
_applyPath(item, rest, convert);
|
|
18
28
|
return;
|
|
19
29
|
}
|
|
20
30
|
if (rest.length === 0) {
|
|
21
31
|
if (obj[current] !== undefined)
|
|
22
|
-
obj[current] =
|
|
32
|
+
obj[current] = convert(obj[current]);
|
|
23
33
|
return;
|
|
24
34
|
}
|
|
25
|
-
|
|
35
|
+
_applyPath(obj[current], rest, convert);
|
|
26
36
|
};
|
|
27
|
-
|
|
37
|
+
const _convertDeep = (data, paths, convert) => {
|
|
28
38
|
if (Array.isArray(data))
|
|
29
|
-
return data.map((item) =>
|
|
39
|
+
return data.map((item) => toDatesDeep(item, paths));
|
|
30
40
|
const clone = structuredClone(data);
|
|
31
41
|
for (const path of paths)
|
|
32
|
-
|
|
42
|
+
_applyPath(clone, path.split("/"), convert);
|
|
33
43
|
return clone;
|
|
34
44
|
};
|
|
45
|
+
export const toDatesDeep = (data, paths) => _convertDeep(data, paths, _normalizeDate);
|
|
46
|
+
export const toTimestampsDeep = (data, paths) => _convertDeep(data, paths, _normalizeTimestamp);
|
|
35
47
|
//# sourceMappingURL=helper.date.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.date.js","sourceRoot":"","sources":["../../src/helper/helper.date.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"helper.date.js","sourceRoot":"","sources":["../../src/helper/helper.date.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAElB,MAAM,wBAAwB,CAAC;AAKhC,MAAM,cAAc,GAAgB,CAAC,KAAK,EAAE,EAAE,CAC5C,CAAC,KAAK;IACJ,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,OAAO,KAAK,EAAE,MAAM,KAAK,UAAU;QACnC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;QAChB,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS;YAC7B,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC;YAC5D,CAAC,CAAC,KAAK,CAAC;AAEhB,MAAM,mBAAmB,GAAgB,CACvC,KAAK,EACwB,EAAE;IAC/B,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;IACxE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;IAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG;AACjB,8DAA8D;AAC9D,GAAQ,EACR,SAAmB,EACnB,OAAoB,EACd,EAAE;IACR,IAAI,CAAC,GAAG;QAAE,OAAO;IAEjB,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IAErC,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YACpB,KAAK,MAAM,IAAI,IAAI,GAAG;gBAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAI,IAAO,EAAE,KAAe,EAAE,OAAoB,EAAK,EAAE;IAC5E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAM,CAAC;IAC3D,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,IAAO,EAAE,KAAe,EAAK,EAAE,CAC5D,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,IAAO,EAAE,KAAe,EAAK,EAAE,CACjE,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC"}
|
package/dist/helper/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helper/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helper/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
package/dist/helper/index.js
CHANGED
package/dist/helper/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helper/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helper/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|