@cravery/firebase 0.0.13 → 0.0.15
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 +9 -3
- 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 +14 -6
- 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,CAmFA"}
|
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,
|
|
@@ -94,14 +95,19 @@ function splitRecipe(recipe) {
|
|
|
94
95
|
slug,
|
|
95
96
|
})),
|
|
96
97
|
}));
|
|
97
|
-
const instructionsMeta = instructions.map(({ duration, step, temperature }) => ({
|
|
98
|
+
const instructionsMeta = instructions.map(({ duration, equipment, ingredients, optional, step, temperature }) => ({
|
|
98
99
|
duration,
|
|
100
|
+
equipment,
|
|
101
|
+
ingredients,
|
|
102
|
+
optional,
|
|
99
103
|
step,
|
|
100
104
|
temperature,
|
|
101
105
|
}));
|
|
102
|
-
const instructionsContent = instructions.map(({ step, text }) => ({
|
|
106
|
+
const instructionsContent = instructions.map(({ step, text, tip, warning }) => ({
|
|
103
107
|
step,
|
|
104
108
|
text,
|
|
109
|
+
tip,
|
|
110
|
+
warning,
|
|
105
111
|
}));
|
|
106
112
|
const content = {
|
|
107
113
|
description,
|
|
@@ -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.15",
|
|
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.52"
|
|
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,
|
|
@@ -111,16 +112,23 @@ export function splitRecipe(recipe: Recipe): {
|
|
|
111
112
|
);
|
|
112
113
|
|
|
113
114
|
const instructionsMeta = instructions.map(
|
|
114
|
-
({ duration, step, temperature }) => ({
|
|
115
|
+
({ duration, equipment, ingredients, optional, step, temperature }) => ({
|
|
115
116
|
duration,
|
|
117
|
+
equipment,
|
|
118
|
+
ingredients,
|
|
119
|
+
optional,
|
|
116
120
|
step,
|
|
117
121
|
temperature,
|
|
118
122
|
}),
|
|
119
123
|
);
|
|
120
|
-
const instructionsContent = instructions.map(
|
|
121
|
-
step,
|
|
122
|
-
|
|
123
|
-
|
|
124
|
+
const instructionsContent = instructions.map(
|
|
125
|
+
({ step, text, tip, warning }) => ({
|
|
126
|
+
step,
|
|
127
|
+
text,
|
|
128
|
+
tip,
|
|
129
|
+
warning,
|
|
130
|
+
}),
|
|
131
|
+
);
|
|
124
132
|
|
|
125
133
|
const content: RecipeContent = {
|
|
126
134
|
description,
|
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
|
}
|