@cravery/firebase 0.0.13 → 0.0.14
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/converter/recipe.d.ts.map +1 -1
- package/dist/converter/recipe.js +2 -1
- package/dist/converter/recipe.js.map +1 -1
- package/dist/transform/recipe.d.ts.map +1 -1
- package/dist/transform/recipe.js +2 -1
- package/dist/transform/recipe.js.map +1 -1
- package/dist/utils/timestamp.d.ts +1 -1
- package/dist/utils/timestamp.d.ts.map +1 -1
- package/dist/utils/timestamp.js +20 -15
- package/dist/utils/timestamp.js.map +1 -1
- package/package.json +2 -2
- package/src/converter/recipe.ts +2 -1
- package/src/transform/recipe.ts +2 -1
- package/src/utils/timestamp.ts +22 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/converter/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAGvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAS/D,eAAO,MAAM,mBAAmB,EAAE,sBAAsB,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/converter/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAGvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAS/D,eAAO,MAAM,mBAAmB,EAAE,sBAAsB,CAAC,UAAU,CA2ClE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,sBAAsB,CAAC,aAAa,CA0BxE,CAAC"}
|
package/dist/converter/recipe.js
CHANGED
|
@@ -29,7 +29,7 @@ exports.recipeMetaConverter = {
|
|
|
29
29
|
dietaryTags: data.dietaryTags,
|
|
30
30
|
difficulty: data.difficulty,
|
|
31
31
|
equipment: data.equipment,
|
|
32
|
-
|
|
32
|
+
images: data.images,
|
|
33
33
|
ingredientSections: data.ingredientSections,
|
|
34
34
|
instructions: data.instructions,
|
|
35
35
|
mealTypes: data.mealTypes,
|
|
@@ -42,6 +42,7 @@ exports.recipeMetaConverter = {
|
|
|
42
42
|
spiciness: data.spiciness,
|
|
43
43
|
status: data.status,
|
|
44
44
|
time: data.time,
|
|
45
|
+
videoUrl: data.videoUrl,
|
|
45
46
|
createdAt: (0, utils_1.toTimestamp)(data.createdAt),
|
|
46
47
|
updatedAt: (0, utils_1.toTimestamp)(data.updatedAt),
|
|
47
48
|
deletedAt: (0, utils_1.toOptionalTimestamp)(data.deletedAt),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/converter/recipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAMA,oCAMkB;AAEL,QAAA,mBAAmB,GAAuC;IACrE,WAAW,CAAC,UAAsB;QAChC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,KAAc,UAAU,EAAnB,IAAI,UAAK,UAAU,EAA7D,6CAAgD,CAAa,CAAC;QAEpE,OAAO,IAAA,sBAAc,kCAChB,IAAI,KACP,SAAS,EAAE,IAAA,4BAAoB,EAAC,SAAS,CAAC,EAC1C,SAAS,EAAE,IAAA,4BAAoB,EAAC,SAAS,CAAC,EAC1C,SAAS,EAAE,IAAA,oCAA4B,EAAC,SAAS,CAAC,IAClD,CAAC;IACL,CAAC;IAED,aAAa,CAAC,QAA+B;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE7B,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,
|
|
1
|
+
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/converter/recipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAMA,oCAMkB;AAEL,QAAA,mBAAmB,GAAuC;IACrE,WAAW,CAAC,UAAsB;QAChC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,KAAc,UAAU,EAAnB,IAAI,UAAK,UAAU,EAA7D,6CAAgD,CAAa,CAAC;QAEpE,OAAO,IAAA,sBAAc,kCAChB,IAAI,KACP,SAAS,EAAE,IAAA,4BAAoB,EAAC,SAAS,CAAC,EAC1C,SAAS,EAAE,IAAA,4BAAoB,EAAC,SAAS,CAAC,EAC1C,SAAS,EAAE,IAAA,oCAA4B,EAAC,SAAS,CAAC,IAClD,CAAC;IACL,CAAC;IAED,aAAa,CAAC,QAA+B;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE7B,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAA,mBAAW,EAAC,IAAI,CAAC,SAAS,CAAC;YACtC,SAAS,EAAE,IAAA,mBAAW,EAAC,IAAI,CAAC,SAAS,CAAC;YACtC,SAAS,EAAE,IAAA,2BAAmB,EAAC,IAAI,CAAC,SAAS,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF,CAAC;AAEW,QAAA,sBAAsB,GAA0C;IAC3E,WAAW,CAAC,OAAsB;QAChC,OAAO,IAAA,sBAAc,EAAC;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,QAA+B;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE7B,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/transform/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAElE,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/transform/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAElE,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CA4D5E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG;IAC3C,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;CACxB,CA4EA"}
|
package/dist/transform/recipe.js
CHANGED
|
@@ -45,7 +45,7 @@ function mergeRecipe(meta, content) {
|
|
|
45
45
|
deletedAt: meta.deletedAt,
|
|
46
46
|
dietaryTags: meta.dietaryTags,
|
|
47
47
|
difficulty: meta.difficulty,
|
|
48
|
-
|
|
48
|
+
images: meta.images,
|
|
49
49
|
mealTypes: meta.mealTypes,
|
|
50
50
|
nutrition: meta.nutrition,
|
|
51
51
|
originalLocale: meta.originalLocale,
|
|
@@ -56,6 +56,7 @@ function mergeRecipe(meta, content) {
|
|
|
56
56
|
status: meta.status,
|
|
57
57
|
time: meta.time,
|
|
58
58
|
updatedAt: meta.updatedAt,
|
|
59
|
+
videoUrl: meta.videoUrl,
|
|
59
60
|
equipment,
|
|
60
61
|
ingredientSections,
|
|
61
62
|
instructions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/transform/recipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/transform/recipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Timestamp as FirestoreTimestamp } from "firebase-admin/firestore";
|
|
2
2
|
import type { Timestamp } from "@cravery/core";
|
|
3
3
|
export declare function toTimestamp(timestamp: FirestoreTimestamp): Timestamp;
|
|
4
|
-
export declare function fromTimestamp(timestamp: Timestamp): FirestoreTimestamp;
|
|
5
4
|
export declare function toOptionalTimestamp(timestamp?: FirestoreTimestamp): Timestamp | undefined;
|
|
6
5
|
export declare function toFirestoreTimestamp(ts: Timestamp | FirestoreTimestamp | null | undefined): FirestoreTimestamp | null | undefined;
|
|
7
6
|
export declare function toOptionalFirestoreTimestamp(ts: Timestamp | FirestoreTimestamp | undefined): FirestoreTimestamp | undefined;
|
|
7
|
+
export declare function fromTimestamp(timestamp: Timestamp): FirestoreTimestamp;
|
|
8
8
|
//# sourceMappingURL=timestamp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../src/utils/timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../src/utils/timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAe/C,wBAAgB,WAAW,CAAC,SAAS,EAAE,kBAAkB,GAAG,SAAS,CAGpE;AAED,wBAAgB,mBAAmB,CACjC,SAAS,CAAC,EAAE,kBAAkB,GAC7B,SAAS,GAAG,SAAS,CAEvB;AAGD,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,SAAS,GAAG,kBAAkB,GAAG,IAAI,GAAG,SAAS,GACpD,kBAAkB,GAAG,IAAI,GAAG,SAAS,CAIvC;AAED,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,SAAS,GAAG,kBAAkB,GAAG,SAAS,GAC7C,kBAAkB,GAAG,SAAS,CAIhC;AAGD,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB,CAEtE"}
|
package/dist/utils/timestamp.js
CHANGED
|
@@ -1,38 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toTimestamp = toTimestamp;
|
|
4
|
-
exports.fromTimestamp = fromTimestamp;
|
|
5
4
|
exports.toOptionalTimestamp = toOptionalTimestamp;
|
|
6
5
|
exports.toFirestoreTimestamp = toFirestoreTimestamp;
|
|
7
6
|
exports.toOptionalFirestoreTimestamp = toOptionalFirestoreTimestamp;
|
|
7
|
+
exports.fromTimestamp = fromTimestamp;
|
|
8
8
|
const firestore_1 = require("firebase-admin/firestore");
|
|
9
|
-
|
|
9
|
+
// Helper to extract seconds/nanoseconds from any timestamp-like object
|
|
10
|
+
function getTimestampValues(ts) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
const obj = ts;
|
|
10
13
|
return {
|
|
11
|
-
seconds:
|
|
12
|
-
nanoseconds:
|
|
14
|
+
seconds: (_a = obj.seconds) !== null && _a !== void 0 ? _a : obj._seconds,
|
|
15
|
+
nanoseconds: (_b = obj.nanoseconds) !== null && _b !== void 0 ? _b : obj._nanoseconds,
|
|
13
16
|
};
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
// Firestore -> Core Timestamp (for fromFirestore)
|
|
19
|
+
function toTimestamp(timestamp) {
|
|
20
|
+
const { seconds, nanoseconds } = getTimestampValues(timestamp);
|
|
21
|
+
return { seconds, nanoseconds };
|
|
17
22
|
}
|
|
18
23
|
function toOptionalTimestamp(timestamp) {
|
|
19
24
|
return timestamp ? toTimestamp(timestamp) : undefined;
|
|
20
25
|
}
|
|
21
|
-
|
|
22
|
-
return ts instanceof firestore_1.Timestamp;
|
|
23
|
-
}
|
|
26
|
+
// Core Timestamp -> Firestore (for toFirestore)
|
|
24
27
|
function toFirestoreTimestamp(ts) {
|
|
25
28
|
if (!ts)
|
|
26
29
|
return ts;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return fromTimestamp(ts);
|
|
30
|
+
const { seconds, nanoseconds } = getTimestampValues(ts);
|
|
31
|
+
return new firestore_1.Timestamp(seconds, nanoseconds);
|
|
30
32
|
}
|
|
31
33
|
function toOptionalFirestoreTimestamp(ts) {
|
|
32
34
|
if (!ts)
|
|
33
35
|
return undefined;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
const { seconds, nanoseconds } = getTimestampValues(ts);
|
|
37
|
+
return new firestore_1.Timestamp(seconds, nanoseconds);
|
|
38
|
+
}
|
|
39
|
+
// Keep fromTimestamp for explicit conversion
|
|
40
|
+
function fromTimestamp(timestamp) {
|
|
41
|
+
return new firestore_1.Timestamp(timestamp.seconds, timestamp.nanoseconds);
|
|
37
42
|
}
|
|
38
43
|
//# sourceMappingURL=timestamp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/utils/timestamp.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../src/utils/timestamp.ts"],"names":[],"mappings":";;AAgBA,kCAGC;AAED,kDAIC;AAGD,oDAMC;AAED,oEAMC;AAGD,sCAEC;AA/CD,wDAA2E;AAG3E,uEAAuE;AACvE,SAAS,kBAAkB,CAAC,EAAW;;IAIrC,MAAM,GAAG,GAAG,EAAS,CAAC;IACtB,OAAO;QACL,OAAO,EAAE,MAAA,GAAG,CAAC,OAAO,mCAAI,GAAG,CAAC,QAAQ;QACpC,WAAW,EAAE,MAAA,GAAG,CAAC,WAAW,mCAAI,GAAG,CAAC,YAAY;KACjD,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,SAAgB,WAAW,CAAC,SAA6B;IACvD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC/D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,SAAgB,mBAAmB,CACjC,SAA8B;IAE9B,OAAO,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,gDAAgD;AAChD,SAAgB,oBAAoB,CAClC,EAAqD;IAErD,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACnB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,IAAI,qBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,4BAA4B,CAC1C,EAA8C;IAE9C,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,IAAI,qBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAED,6CAA6C;AAC7C,SAAgB,aAAa,CAAC,SAAoB;IAChD,OAAO,IAAI,qBAAkB,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;AAC1E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cravery/firebase",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"description": "Shared Firebase Admin SDK utilities for Cravery",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -54,6 +54,6 @@
|
|
|
54
54
|
"src/**/*"
|
|
55
55
|
],
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@cravery/core": "^0.0.
|
|
57
|
+
"@cravery/core": "^0.0.51"
|
|
58
58
|
}
|
|
59
59
|
}
|
package/src/converter/recipe.ts
CHANGED
|
@@ -36,7 +36,7 @@ export const recipeMetaConverter: FirestoreDataConverter<RecipeMeta> = {
|
|
|
36
36
|
dietaryTags: data.dietaryTags,
|
|
37
37
|
difficulty: data.difficulty,
|
|
38
38
|
equipment: data.equipment,
|
|
39
|
-
|
|
39
|
+
images: data.images,
|
|
40
40
|
ingredientSections: data.ingredientSections,
|
|
41
41
|
instructions: data.instructions,
|
|
42
42
|
mealTypes: data.mealTypes,
|
|
@@ -49,6 +49,7 @@ export const recipeMetaConverter: FirestoreDataConverter<RecipeMeta> = {
|
|
|
49
49
|
spiciness: data.spiciness,
|
|
50
50
|
status: data.status,
|
|
51
51
|
time: data.time,
|
|
52
|
+
videoUrl: data.videoUrl,
|
|
52
53
|
createdAt: toTimestamp(data.createdAt),
|
|
53
54
|
updatedAt: toTimestamp(data.updatedAt),
|
|
54
55
|
deletedAt: toOptionalTimestamp(data.deletedAt),
|
package/src/transform/recipe.ts
CHANGED
|
@@ -40,7 +40,7 @@ export function mergeRecipe(meta: RecipeMeta, content: RecipeContent): Recipe {
|
|
|
40
40
|
deletedAt: meta.deletedAt,
|
|
41
41
|
dietaryTags: meta.dietaryTags,
|
|
42
42
|
difficulty: meta.difficulty,
|
|
43
|
-
|
|
43
|
+
images: meta.images,
|
|
44
44
|
mealTypes: meta.mealTypes,
|
|
45
45
|
nutrition: meta.nutrition,
|
|
46
46
|
originalLocale: meta.originalLocale,
|
|
@@ -51,6 +51,7 @@ export function mergeRecipe(meta: RecipeMeta, content: RecipeContent): Recipe {
|
|
|
51
51
|
status: meta.status,
|
|
52
52
|
time: meta.time,
|
|
53
53
|
updatedAt: meta.updatedAt,
|
|
54
|
+
videoUrl: meta.videoUrl,
|
|
54
55
|
equipment,
|
|
55
56
|
ingredientSections,
|
|
56
57
|
instructions,
|
package/src/utils/timestamp.ts
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import { Timestamp as FirestoreTimestamp } from "firebase-admin/firestore";
|
|
2
2
|
import type { Timestamp } from "@cravery/core";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// Helper to extract seconds/nanoseconds from any timestamp-like object
|
|
5
|
+
function getTimestampValues(ts: unknown): {
|
|
6
|
+
seconds: number;
|
|
7
|
+
nanoseconds: number;
|
|
8
|
+
} {
|
|
9
|
+
const obj = ts as any;
|
|
5
10
|
return {
|
|
6
|
-
seconds:
|
|
7
|
-
nanoseconds:
|
|
11
|
+
seconds: obj.seconds ?? obj._seconds,
|
|
12
|
+
nanoseconds: obj.nanoseconds ?? obj._nanoseconds,
|
|
8
13
|
};
|
|
9
14
|
}
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
// Firestore -> Core Timestamp (for fromFirestore)
|
|
17
|
+
export function toTimestamp(timestamp: FirestoreTimestamp): Timestamp {
|
|
18
|
+
const { seconds, nanoseconds } = getTimestampValues(timestamp);
|
|
19
|
+
return { seconds, nanoseconds };
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
export function toOptionalTimestamp(
|
|
@@ -20,22 +25,24 @@ export function toOptionalTimestamp(
|
|
|
20
25
|
return timestamp ? toTimestamp(timestamp) : undefined;
|
|
21
26
|
}
|
|
22
27
|
|
|
23
|
-
|
|
24
|
-
return ts instanceof FirestoreTimestamp;
|
|
25
|
-
}
|
|
26
|
-
|
|
28
|
+
// Core Timestamp -> Firestore (for toFirestore)
|
|
27
29
|
export function toFirestoreTimestamp(
|
|
28
30
|
ts: Timestamp | FirestoreTimestamp | null | undefined,
|
|
29
31
|
): FirestoreTimestamp | null | undefined {
|
|
30
32
|
if (!ts) return ts;
|
|
31
|
-
|
|
32
|
-
return
|
|
33
|
+
const { seconds, nanoseconds } = getTimestampValues(ts);
|
|
34
|
+
return new FirestoreTimestamp(seconds, nanoseconds);
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
export function toOptionalFirestoreTimestamp(
|
|
36
38
|
ts: Timestamp | FirestoreTimestamp | undefined,
|
|
37
39
|
): FirestoreTimestamp | undefined {
|
|
38
40
|
if (!ts) return undefined;
|
|
39
|
-
|
|
40
|
-
return
|
|
41
|
+
const { seconds, nanoseconds } = getTimestampValues(ts);
|
|
42
|
+
return new FirestoreTimestamp(seconds, nanoseconds);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Keep fromTimestamp for explicit conversion
|
|
46
|
+
export function fromTimestamp(timestamp: Timestamp): FirestoreTimestamp {
|
|
47
|
+
return new FirestoreTimestamp(timestamp.seconds, timestamp.nanoseconds);
|
|
41
48
|
}
|