@mathrunet/masamune 3.4.3 → 3.4.4

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.
Files changed (72) hide show
  1. package/.claude/settings.local.json +4 -1
  2. package/CHANGELOG.md +17 -0
  3. package/dist/functions/algolia.js +3 -27
  4. package/dist/functions/algolia.js.map +1 -1
  5. package/dist/functions/collection_model_firestore.js +4 -7
  6. package/dist/functions/collection_model_firestore.js.map +1 -1
  7. package/dist/functions/document_model_firestore.js +6 -9
  8. package/dist/functions/document_model_firestore.js.map +1 -1
  9. package/dist/lib/model_field_value/converters/firestore_basic_converter.d.ts +5 -0
  10. package/dist/lib/model_field_value/converters/firestore_basic_converter.js +3 -0
  11. package/dist/lib/model_field_value/converters/firestore_basic_converter.js.map +1 -1
  12. package/dist/lib/model_field_value/converters/firestore_enum_converter.d.ts +5 -0
  13. package/dist/lib/model_field_value/converters/firestore_enum_converter.js +3 -0
  14. package/dist/lib/model_field_value/converters/firestore_enum_converter.js.map +1 -1
  15. package/dist/lib/model_field_value/converters/firestore_model_command_base_converter.d.ts +5 -0
  16. package/dist/lib/model_field_value/converters/firestore_model_command_base_converter.js +20 -0
  17. package/dist/lib/model_field_value/converters/firestore_model_command_base_converter.js.map +1 -1
  18. package/dist/lib/model_field_value/converters/firestore_model_counter_converter.d.ts +5 -0
  19. package/dist/lib/model_field_value/converters/firestore_model_counter_converter.js +77 -0
  20. package/dist/lib/model_field_value/converters/firestore_model_counter_converter.js.map +1 -1
  21. package/dist/lib/model_field_value/converters/firestore_model_date_converter.d.ts +6 -0
  22. package/dist/lib/model_field_value/converters/firestore_model_date_converter.js +79 -0
  23. package/dist/lib/model_field_value/converters/firestore_model_date_converter.js.map +1 -1
  24. package/dist/lib/model_field_value/converters/firestore_model_date_range_converter.d.ts +25 -0
  25. package/dist/lib/model_field_value/converters/firestore_model_date_range_converter.js +183 -0
  26. package/dist/lib/model_field_value/converters/firestore_model_date_range_converter.js.map +1 -0
  27. package/dist/lib/model_field_value/converters/firestore_model_geo_value_converter.d.ts +5 -0
  28. package/dist/lib/model_field_value/converters/firestore_model_geo_value_converter.js +86 -0
  29. package/dist/lib/model_field_value/converters/firestore_model_geo_value_converter.js.map +1 -1
  30. package/dist/lib/model_field_value/converters/firestore_model_image_uri_converter.d.ts +5 -0
  31. package/dist/lib/model_field_value/converters/firestore_model_image_uri_converter.js +60 -0
  32. package/dist/lib/model_field_value/converters/firestore_model_image_uri_converter.js.map +1 -1
  33. package/dist/lib/model_field_value/converters/firestore_model_locale_converter.d.ts +5 -0
  34. package/dist/lib/model_field_value/converters/firestore_model_locale_converter.js +89 -0
  35. package/dist/lib/model_field_value/converters/firestore_model_locale_converter.js.map +1 -1
  36. package/dist/lib/model_field_value/converters/firestore_model_localized_value_converter.d.ts +5 -0
  37. package/dist/lib/model_field_value/converters/firestore_model_localized_value_converter.js +47 -0
  38. package/dist/lib/model_field_value/converters/firestore_model_localized_value_converter.js.map +1 -1
  39. package/dist/lib/model_field_value/converters/firestore_model_ref_converter.d.ts +5 -0
  40. package/dist/lib/model_field_value/converters/firestore_model_ref_converter.js +47 -0
  41. package/dist/lib/model_field_value/converters/firestore_model_ref_converter.js.map +1 -1
  42. package/dist/lib/model_field_value/converters/firestore_model_search_converter.d.ts +5 -0
  43. package/dist/lib/model_field_value/converters/firestore_model_search_converter.js +55 -0
  44. package/dist/lib/model_field_value/converters/firestore_model_search_converter.js.map +1 -1
  45. package/dist/lib/model_field_value/converters/firestore_model_time_converter.d.ts +26 -0
  46. package/dist/lib/model_field_value/converters/firestore_model_time_converter.js +191 -0
  47. package/dist/lib/model_field_value/converters/firestore_model_time_converter.js.map +1 -0
  48. package/dist/lib/model_field_value/converters/firestore_model_time_range_converter.d.ts +25 -0
  49. package/dist/lib/model_field_value/converters/firestore_model_time_range_converter.js +183 -0
  50. package/dist/lib/model_field_value/converters/firestore_model_time_range_converter.js.map +1 -0
  51. package/dist/lib/model_field_value/converters/firestore_model_timestamp_converter.d.ts +6 -0
  52. package/dist/lib/model_field_value/converters/firestore_model_timestamp_converter.js +117 -0
  53. package/dist/lib/model_field_value/converters/firestore_model_timestamp_converter.js.map +1 -1
  54. package/dist/lib/model_field_value/converters/firestore_model_timestamp_range_converter.d.ts +25 -0
  55. package/dist/lib/model_field_value/converters/firestore_model_timestamp_range_converter.js +183 -0
  56. package/dist/lib/model_field_value/converters/firestore_model_timestamp_range_converter.js.map +1 -0
  57. package/dist/lib/model_field_value/converters/firestore_model_token_converter.d.ts +5 -0
  58. package/dist/lib/model_field_value/converters/firestore_model_token_converter.js +55 -0
  59. package/dist/lib/model_field_value/converters/firestore_model_token_converter.js.map +1 -1
  60. package/dist/lib/model_field_value/converters/firestore_model_uri_converter.d.ts +5 -0
  61. package/dist/lib/model_field_value/converters/firestore_model_uri_converter.js +60 -0
  62. package/dist/lib/model_field_value/converters/firestore_model_uri_converter.js.map +1 -1
  63. package/dist/lib/model_field_value/converters/firestore_model_video_uri_converter.d.ts +5 -0
  64. package/dist/lib/model_field_value/converters/firestore_model_video_uri_converter.js +60 -0
  65. package/dist/lib/model_field_value/converters/firestore_model_video_uri_converter.js.map +1 -1
  66. package/dist/lib/model_field_value/converters/firestore_null_converter.d.ts +5 -0
  67. package/dist/lib/model_field_value/converters/firestore_null_converter.js +20 -0
  68. package/dist/lib/model_field_value/converters/firestore_null_converter.js.map +1 -1
  69. package/dist/lib/model_field_value/firestore_model_field_value_converter.d.ts +58 -4
  70. package/dist/lib/model_field_value/firestore_model_field_value_converter.js +79 -0
  71. package/dist/lib/model_field_value/firestore_model_field_value_converter.js.map +1 -1
  72. package/package.json +1 -1
@@ -4,12 +4,25 @@ exports.FirestoreModelTimestampConverter = void 0;
4
4
  const firestore_model_field_value_converter_1 = require("../firestore_model_field_value_converter");
5
5
  const utils_1 = require("../../utils");
6
6
  const firestore_1 = require("firebase-admin/firestore");
7
+ const firestore_2 = require("@google-cloud/firestore");
7
8
  /**
8
9
  * FirestoreConverter for [ModelTimestamp].
9
10
  *
10
11
  * [ModelTimestamp]用のFirestoreConverter。
11
12
  */
12
13
  class FirestoreModelTimestampConverter extends firestore_model_field_value_converter_1.FirestoreModelFieldValueConverter {
14
+ static _createTimestampFromMicroseconds(microseconds) {
15
+ if (microseconds >= 0) {
16
+ return firestore_1.Timestamp.fromMillis(microseconds / 1000);
17
+ }
18
+ const seconds = Math.floor(microseconds / 1000000);
19
+ const remainingMicros = microseconds - (seconds * 1000000);
20
+ const nanoseconds = remainingMicros * 1000;
21
+ if (nanoseconds < 0) {
22
+ return new firestore_1.Timestamp(seconds - 1, nanoseconds + 1000000000);
23
+ }
24
+ return new firestore_1.Timestamp(seconds, nanoseconds);
25
+ }
13
26
  /**
14
27
  * FirestoreConverter for [ModelTimestamp].
15
28
  *
@@ -90,6 +103,110 @@ class FirestoreModelTimestampConverter extends firestore_model_field_value_conve
90
103
  }
91
104
  return null;
92
105
  }
106
+ convertTo(key, value, _original) {
107
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
108
+ if (value != null && typeof value === "object" && "@type" in value) {
109
+ const type = (_a = value["@type"]) !== null && _a !== void 0 ? _a : "";
110
+ if (type === this.type) {
111
+ const fromUser = ((_b = value["@source"]) !== null && _b !== void 0 ? _b : "") === "user";
112
+ const val = (_c = value["@timestamp"]) !== null && _c !== void 0 ? _c : 0;
113
+ const useNow = (_d = value["@now"]) !== null && _d !== void 0 ? _d : false;
114
+ const targetKey = `#${key}`;
115
+ const result = {
116
+ [targetKey]: {
117
+ "@type": this.type,
118
+ "@timestamp": val,
119
+ "@target": key,
120
+ },
121
+ };
122
+ if (fromUser) {
123
+ if (useNow) {
124
+ result[key] = firestore_2.FieldValue.serverTimestamp();
125
+ }
126
+ else {
127
+ result[key] = FirestoreModelTimestampConverter._createTimestampFromMicroseconds(val);
128
+ }
129
+ }
130
+ else {
131
+ result[key] = FirestoreModelTimestampConverter._createTimestampFromMicroseconds(val);
132
+ }
133
+ return result;
134
+ }
135
+ }
136
+ else if (Array.isArray(value)) {
137
+ const list = value.filter((e) => e != null && typeof e === "object" && "@type" in e);
138
+ if (list.length > 0 && list.every((e) => e["@type"] === this.type)) {
139
+ const target = [];
140
+ const res = [];
141
+ const targetKey = `#${key}`;
142
+ for (const entry of list) {
143
+ const fromUser = ((_e = entry["@source"]) !== null && _e !== void 0 ? _e : "") === "user";
144
+ const time = (_f = entry["@timestamp"]) !== null && _f !== void 0 ? _f : 0;
145
+ const useNow = (_g = entry["@now"]) !== null && _g !== void 0 ? _g : false;
146
+ target.push({
147
+ "@type": this.type,
148
+ "@timestamp": time,
149
+ "@target": key,
150
+ });
151
+ if (fromUser) {
152
+ if (useNow) {
153
+ res.push(firestore_2.FieldValue.serverTimestamp());
154
+ }
155
+ else {
156
+ res.push(FirestoreModelTimestampConverter._createTimestampFromMicroseconds(time));
157
+ }
158
+ }
159
+ else {
160
+ res.push(FirestoreModelTimestampConverter._createTimestampFromMicroseconds(time));
161
+ }
162
+ }
163
+ return {
164
+ [targetKey]: target,
165
+ [key]: res,
166
+ };
167
+ }
168
+ }
169
+ else if ((0, utils_1.isDynamicMap)(value)) {
170
+ const map = {};
171
+ for (const k in value) {
172
+ const v = value[k];
173
+ if (v != null && typeof v === "object" && "@type" in v) {
174
+ map[k] = v;
175
+ }
176
+ }
177
+ if (Object.keys(map).length > 0 && Object.values(map).every((e) => e["@type"] === this.type)) {
178
+ const target = {};
179
+ const res = {};
180
+ const targetKey = `#${key}`;
181
+ for (const [k, entry] of Object.entries(map)) {
182
+ const fromUser = ((_h = entry["@source"]) !== null && _h !== void 0 ? _h : "") === "user";
183
+ const time = (_j = entry["@timestamp"]) !== null && _j !== void 0 ? _j : 0;
184
+ const useNow = (_k = entry["@now"]) !== null && _k !== void 0 ? _k : false;
185
+ target[k] = {
186
+ "@type": this.type,
187
+ "@timestamp": time,
188
+ "@target": key,
189
+ };
190
+ if (fromUser) {
191
+ if (useNow) {
192
+ res[k] = firestore_2.FieldValue.serverTimestamp();
193
+ }
194
+ else {
195
+ res[k] = FirestoreModelTimestampConverter._createTimestampFromMicroseconds(time);
196
+ }
197
+ }
198
+ else {
199
+ res[k] = FirestoreModelTimestampConverter._createTimestampFromMicroseconds(time);
200
+ }
201
+ }
202
+ return {
203
+ [targetKey]: target,
204
+ [key]: res,
205
+ };
206
+ }
207
+ }
208
+ return null;
209
+ }
93
210
  }
94
211
  exports.FirestoreModelTimestampConverter = FirestoreModelTimestampConverter;
95
212
  //# sourceMappingURL=firestore_model_timestamp_converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestore_model_timestamp_converter.js","sourceRoot":"","sources":["../../../../src/lib/model_field_value/converters/firestore_model_timestamp_converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firestore_model_timestamp_converter.js","sourceRoot":"","sources":["../../../../src/lib/model_field_value/converters/firestore_model_timestamp_converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { FirestoreModelFieldValueConverter } from "../firestore_model_field_value_converter";
2
+ /**
3
+ * FirestoreConverter for [ModelTimestampRange].
4
+ *
5
+ * [ModelTimestampRange]用のFirestoreConverter。
6
+ */
7
+ export declare class FirestoreModelTimestampRangeConverter extends FirestoreModelFieldValueConverter {
8
+ /**
9
+ * FirestoreConverter for [ModelTimestampRange].
10
+ *
11
+ * [ModelTimestampRange]用のFirestoreConverter。
12
+ */
13
+ constructor();
14
+ type: string;
15
+ convertFrom(key: string, value: any, original: {
16
+ [field: string]: any;
17
+ }): {
18
+ [field: string]: any;
19
+ } | null;
20
+ convertTo(key: string, value: any, _original: {
21
+ [field: string]: any;
22
+ }): {
23
+ [field: string]: any;
24
+ } | null;
25
+ }
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FirestoreModelTimestampRangeConverter = void 0;
4
+ const firestore_model_field_value_converter_1 = require("../firestore_model_field_value_converter");
5
+ const utils_1 = require("../../utils");
6
+ /**
7
+ * FirestoreConverter for [ModelTimestampRange].
8
+ *
9
+ * [ModelTimestampRange]用のFirestoreConverter。
10
+ */
11
+ class FirestoreModelTimestampRangeConverter extends firestore_model_field_value_converter_1.FirestoreModelFieldValueConverter {
12
+ /**
13
+ * FirestoreConverter for [ModelTimestampRange].
14
+ *
15
+ * [ModelTimestampRange]用のFirestoreConverter。
16
+ */
17
+ constructor() {
18
+ super();
19
+ this.type = "ModelTimestampRange";
20
+ }
21
+ convertFrom(key, value, original) {
22
+ var _a, _b, _c, _d, _e, _f;
23
+ if (typeof value === "string") {
24
+ const targetKey = `#${key}`;
25
+ const targetMap = (_a = original[targetKey]) !== null && _a !== void 0 ? _a : {};
26
+ const type = (_b = targetMap["@type"]) !== null && _b !== void 0 ? _b : "";
27
+ if (type == this.type) {
28
+ const splitted = value.split("|");
29
+ if (splitted.length === 2) {
30
+ const start = new Date(splitted[0]);
31
+ const end = new Date(splitted[1]);
32
+ if (!isNaN(start.getTime()) && !isNaN(end.getTime())) {
33
+ return {
34
+ [key]: {
35
+ "@type": this.type,
36
+ "@start": start.getTime() * 1000,
37
+ "@end": end.getTime() * 1000,
38
+ },
39
+ };
40
+ }
41
+ }
42
+ }
43
+ }
44
+ else if (Array.isArray(value)) {
45
+ const targetKey = `#${key}`;
46
+ const targetList = (_c = original[targetKey]) !== null && _c !== void 0 ? _c : [];
47
+ if (targetList != null && targetList.length > 0 && targetList.every((e) => e["@type"] === this.type)) {
48
+ const res = [];
49
+ for (const tmp of value) {
50
+ if (typeof tmp === "string") {
51
+ const splitted = tmp.split("|");
52
+ if (splitted.length === 2) {
53
+ const start = new Date(splitted[0]);
54
+ const end = new Date(splitted[1]);
55
+ if (!isNaN(start.getTime()) && !isNaN(end.getTime())) {
56
+ res.push({
57
+ "@type": this.type,
58
+ "@start": start.getTime() * 1000,
59
+ "@end": end.getTime() * 1000,
60
+ });
61
+ }
62
+ }
63
+ }
64
+ }
65
+ if (res.length > 0) {
66
+ return {
67
+ [key]: res,
68
+ };
69
+ }
70
+ }
71
+ }
72
+ else if ((0, utils_1.isDynamicMap)(value)) {
73
+ const targetKey = `#${key}`;
74
+ const targetMap = (_d = original[targetKey]) !== null && _d !== void 0 ? _d : {};
75
+ if (targetMap != null) {
76
+ const res = {};
77
+ for (const k in value) {
78
+ const val = value[k];
79
+ const mapVal = (_e = targetMap[k]) !== null && _e !== void 0 ? _e : {};
80
+ const type = (_f = mapVal["@type"]) !== null && _f !== void 0 ? _f : "";
81
+ if (type != this.type) {
82
+ continue;
83
+ }
84
+ if (typeof val === "string") {
85
+ const splitted = val.split("|");
86
+ if (splitted.length === 2) {
87
+ const start = new Date(splitted[0]);
88
+ const end = new Date(splitted[1]);
89
+ if (!isNaN(start.getTime()) && !isNaN(end.getTime())) {
90
+ res[k] = {
91
+ "@type": this.type,
92
+ "@start": start.getTime() * 1000,
93
+ "@end": end.getTime() * 1000,
94
+ };
95
+ }
96
+ }
97
+ }
98
+ }
99
+ if (Object.keys(res).length > 0) {
100
+ return {
101
+ [key]: res,
102
+ };
103
+ }
104
+ }
105
+ }
106
+ return null;
107
+ }
108
+ convertTo(key, value, _original) {
109
+ var _a, _b, _c, _d, _e, _f, _g;
110
+ if (value != null && typeof value === "object" && "@type" in value) {
111
+ const type = (_a = value["@type"]) !== null && _a !== void 0 ? _a : "";
112
+ if (type === this.type) {
113
+ const start = (_b = value["@start"]) !== null && _b !== void 0 ? _b : 0;
114
+ const end = (_c = value["@end"]) !== null && _c !== void 0 ? _c : 0;
115
+ const targetKey = `#${key}`;
116
+ return {
117
+ [targetKey]: {
118
+ "@type": this.type,
119
+ "@start": start,
120
+ "@end": end,
121
+ "@target": key,
122
+ },
123
+ [key]: `${new Date(start / 1000).toISOString()}|${new Date(end / 1000).toISOString()}`,
124
+ };
125
+ }
126
+ }
127
+ else if (Array.isArray(value)) {
128
+ const list = value.filter((e) => e != null && typeof e === "object" && "@type" in e);
129
+ if (list.length > 0 && list.every((e) => e["@type"] === this.type)) {
130
+ const target = [];
131
+ const res = [];
132
+ const targetKey = `#${key}`;
133
+ for (const entry of list) {
134
+ const start = (_d = entry["@start"]) !== null && _d !== void 0 ? _d : 0;
135
+ const end = (_e = entry["@end"]) !== null && _e !== void 0 ? _e : 0;
136
+ target.push({
137
+ "@type": this.type,
138
+ "@start": start,
139
+ "@end": end,
140
+ "@target": key,
141
+ });
142
+ res.push(`${new Date(start / 1000).toISOString()}|${new Date(end / 1000).toISOString()}`);
143
+ }
144
+ return {
145
+ [targetKey]: target,
146
+ [key]: res,
147
+ };
148
+ }
149
+ }
150
+ else if ((0, utils_1.isDynamicMap)(value)) {
151
+ const map = {};
152
+ for (const k in value) {
153
+ const v = value[k];
154
+ if (v != null && typeof v === "object" && "@type" in v) {
155
+ map[k] = v;
156
+ }
157
+ }
158
+ if (Object.keys(map).length > 0 && Object.values(map).every((e) => e["@type"] === this.type)) {
159
+ const target = {};
160
+ const res = {};
161
+ const targetKey = `#${key}`;
162
+ for (const [k, entry] of Object.entries(map)) {
163
+ const start = (_f = entry["@start"]) !== null && _f !== void 0 ? _f : 0;
164
+ const end = (_g = entry["@end"]) !== null && _g !== void 0 ? _g : 0;
165
+ target[k] = {
166
+ "@type": this.type,
167
+ "@start": start,
168
+ "@end": end,
169
+ "@target": key,
170
+ };
171
+ res[k] = `${new Date(start / 1000).toISOString()}|${new Date(end / 1000).toISOString()}`;
172
+ }
173
+ return {
174
+ [targetKey]: target,
175
+ [key]: res,
176
+ };
177
+ }
178
+ }
179
+ return null;
180
+ }
181
+ }
182
+ exports.FirestoreModelTimestampRangeConverter = FirestoreModelTimestampRangeConverter;
183
+ //# sourceMappingURL=firestore_model_timestamp_range_converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore_model_timestamp_range_converter.js","sourceRoot":"","sources":["../../../../src/lib/model_field_value/converters/firestore_model_timestamp_range_converter.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,9 @@ export declare class FirestoreModelTokenConverter extends FirestoreModelFieldVal
17
17
  }): {
18
18
  [field: string]: any;
19
19
  } | null;
20
+ convertTo(key: string, value: any, original: {
21
+ [field: string]: any;
22
+ }): {
23
+ [field: string]: any;
24
+ } | null;
20
25
  }
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FirestoreModelTokenConverter = void 0;
4
4
  const firestore_model_field_value_converter_1 = require("../firestore_model_field_value_converter");
5
+ const utils_1 = require("../../utils");
6
+ const firestore_1 = require("@google-cloud/firestore");
5
7
  /**
6
8
  * FirestoreConverter for [ModelToken].
7
9
  *
@@ -31,6 +33,59 @@ class FirestoreModelTokenConverter extends firestore_model_field_value_converter
31
33
  }
32
34
  return null;
33
35
  }
36
+ convertTo(key, value, original) {
37
+ var _a, _b, _c, _d;
38
+ if (value != null && typeof value === "object" && "@type" in value) {
39
+ const type = (_a = value["@type"]) !== null && _a !== void 0 ? _a : "";
40
+ if (type === this.type) {
41
+ const fromUser = ((_b = value["@source"]) !== null && _b !== void 0 ? _b : "") === "user";
42
+ const val = (_c = value["@list"]) !== null && _c !== void 0 ? _c : [];
43
+ const targetKey = `#${key}`;
44
+ // Handle deletion of existing keys similar to Dart implementation
45
+ const keys = {};
46
+ const targetData = original[targetKey];
47
+ const existingKeys = (_d = (targetData && targetData["@list"])) !== null && _d !== void 0 ? _d : {};
48
+ // Mark existing keys for deletion
49
+ for (const existingKey in existingKeys) {
50
+ keys[existingKey] = firestore_1.FieldValue.delete();
51
+ }
52
+ // Set new keys to true
53
+ for (const tokenKey of val) {
54
+ keys[tokenKey] = true;
55
+ }
56
+ const result = {
57
+ [targetKey]: {
58
+ "@type": this.type,
59
+ "@list": keys,
60
+ "@target": key,
61
+ },
62
+ };
63
+ if (fromUser) {
64
+ result[key] = val;
65
+ }
66
+ return result;
67
+ }
68
+ }
69
+ else if (Array.isArray(value)) {
70
+ const list = value.filter((e) => e != null && typeof e === "object" && "@type" in e);
71
+ if (list.length > 0 && list.every((e) => e["@type"] === this.type)) {
72
+ throw new Error("ModelToken cannot be included in a listing or map. It must be placed in the top field.");
73
+ }
74
+ }
75
+ else if ((0, utils_1.isDynamicMap)(value)) {
76
+ const map = {};
77
+ for (const k in value) {
78
+ const v = value[k];
79
+ if (v != null && typeof v === "object" && "@type" in v) {
80
+ map[k] = v;
81
+ }
82
+ }
83
+ if (Object.keys(map).length > 0 && Object.values(map).every((e) => e["@type"] === this.type)) {
84
+ throw new Error("ModelToken cannot be included in a listing or map. It must be placed in the top field.");
85
+ }
86
+ }
87
+ return null;
88
+ }
34
89
  }
35
90
  exports.FirestoreModelTokenConverter = FirestoreModelTokenConverter;
36
91
  //# sourceMappingURL=firestore_model_token_converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestore_model_token_converter.js","sourceRoot":"","sources":["../../../../src/lib/model_field_value/converters/firestore_model_token_converter.ts"],"names":[],"mappings":";;;AAAA,oGAA6F;AAE7F;;;;GAIG;AACH,MAAa,4BAA6B,SAAQ,yEAAiC;IACjF;;;;OAIG;IACH;QACE,KAAK,EAAE,CAAC;QAGV,SAAI,GAAW,YAAY,CAAC;IAF5B,CAAC;IAID,WAAW,CACT,GAAW,EACX,KAAU,EACV,QAAkC;;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,SAAS,CAAgD,mCAAI,EAAE,CAAC;YAC3F,MAAM,IAAI,GAAG,MAAA,SAAS,CAAC,OAAO,CAA8B,mCAAI,EAAE,CAAC;YACnE,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtB,OAAO;oBACL,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACnC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA5BD,oEA4BC"}
1
+ {"version":3,"file":"firestore_model_token_converter.js","sourceRoot":"","sources":["../../../../src/lib/model_field_value/converters/firestore_model_token_converter.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,9 @@ export declare class FirestoreModelUriConverter extends FirestoreModelFieldValue
17
17
  }): {
18
18
  [field: string]: any;
19
19
  } | null;
20
+ convertTo(key: string, value: any, original: {
21
+ [field: string]: any;
22
+ }): {
23
+ [field: string]: any;
24
+ } | null;
20
25
  }
@@ -69,6 +69,66 @@ class FirestoreModelUriConverter extends firestore_model_field_value_converter_1
69
69
  }
70
70
  return null;
71
71
  }
72
+ convertTo(key, value, original) {
73
+ if ((0, utils_1.isDynamicMap)(value) && value["@type"] !== undefined) {
74
+ const type = value["@type"] || "";
75
+ if (type === this.type) {
76
+ const val = value["@uri"] || "";
77
+ const targetKey = `#${key}`;
78
+ return {
79
+ [targetKey]: {
80
+ "@type": this.type,
81
+ "@uri": val,
82
+ "@target": key,
83
+ },
84
+ [key]: val,
85
+ };
86
+ }
87
+ }
88
+ else if (Array.isArray(value)) {
89
+ const list = value.filter(e => (0, utils_1.isDynamicMap)(e));
90
+ if (list.length > 0 && list.every((e) => e["@type"] === this.type)) {
91
+ const target = [];
92
+ const res = [];
93
+ const targetKey = `#${key}`;
94
+ for (const entry of list) {
95
+ const uri = entry["@uri"] || "";
96
+ target.push({
97
+ "@type": this.type,
98
+ "@uri": uri,
99
+ "@target": key,
100
+ });
101
+ res.push(uri);
102
+ }
103
+ return {
104
+ [targetKey]: target,
105
+ [key]: res,
106
+ };
107
+ }
108
+ }
109
+ else if ((0, utils_1.isDynamicMap)(value)) {
110
+ const map = Object.entries(value).filter(([_, v]) => (0, utils_1.isDynamicMap)(v));
111
+ if (map.length > 0 && map.every(([_, v]) => v["@type"] === this.type)) {
112
+ const target = {};
113
+ const res = {};
114
+ const targetKey = `#${key}`;
115
+ for (const [k, v] of map) {
116
+ const uri = v["@uri"] || "";
117
+ target[k] = {
118
+ "@type": this.type,
119
+ "@uri": uri,
120
+ "@target": key,
121
+ };
122
+ res[k] = uri;
123
+ }
124
+ return {
125
+ [targetKey]: target,
126
+ [key]: res,
127
+ };
128
+ }
129
+ }
130
+ return null;
131
+ }
72
132
  }
73
133
  exports.FirestoreModelUriConverter = FirestoreModelUriConverter;
74
134
  //# sourceMappingURL=firestore_model_uri_converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firestore_model_uri_converter.js","sourceRoot":"","sources":["../../../../src/lib/model_field_value/converters/firestore_model_uri_converter.ts"],"names":[],"mappings":";;;AAAA,oGAA6F;AAC7F,uCAA2C;AAE3C;;;;GAIG;AACH,MAAa,0BAA2B,SAAQ,yEAAiC;IAC/E;;;;OAIG;IACH;QACE,KAAK,EAAE,CAAC;QAGV,SAAI,GAAW,UAAU,CAAC;IAF1B,CAAC;IAID,WAAW,CACT,GAAW,EACX,KAAU,EACV,QAAkC;;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,SAAS,CAAgD,mCAAI,EAAE,CAAC;YAC3F,MAAM,IAAI,GAAG,MAAA,SAAS,CAAC,OAAO,CAA8B,mCAAI,EAAE,CAAC;YACnE,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtB,OAAO;oBACL,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;iBACrB,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,MAAA,QAAQ,CAAC,SAAS,CAAkD,mCAAI,EAAE,CAAC;YAC9F,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrG,MAAM,GAAG,GAAa,EAAE,CAAC;gBACzB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnB,OAAO;wBACL,CAAC,GAAG,CAAC,EAAE,GAAG;qBACX,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,SAAS,CAAqE,mCAAI,EAAE,CAAC;YAChH,SAAS,CAAA;YACT,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,MAAM,GAAG,GAEL,EAAE,CAAC;gBACP,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACvB,MAAM,MAAM,GAAG,MAAA,SAAS,CAAC,GAAG,CAAgD,mCAAI,EAAE,CAAC;oBACnF,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,OAAO,CAA8B,mCAAI,EAAE,CAAC;oBAChE,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACtB,SAAS;oBACX,CAAC;oBACD,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,OAAO;wBACL,CAAC,GAAG,CAAC,EAAE,GAAG;qBACX,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAjED,gEAiEC"}
1
+ {"version":3,"file":"firestore_model_uri_converter.js","sourceRoot":"","sources":["../../../../src/lib/model_field_value/converters/firestore_model_uri_converter.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,9 @@ export declare class FirestoreModelVideoUriConverter extends FirestoreModelField
17
17
  }): {
18
18
  [field: string]: any;
19
19
  } | null;
20
+ convertTo(key: string, value: any, original: {
21
+ [field: string]: any;
22
+ }): {
23
+ [field: string]: any;
24
+ } | null;
20
25
  }
@@ -69,6 +69,66 @@ class FirestoreModelVideoUriConverter extends firestore_model_field_value_conver
69
69
  }
70
70
  return null;
71
71
  }
72
+ convertTo(key, value, original) {
73
+ if ((0, utils_1.isDynamicMap)(value) && value["@type"] !== undefined) {
74
+ const type = value["@type"] || "";
75
+ if (type === this.type) {
76
+ const val = value["@uri"] || "";
77
+ const targetKey = `#${key}`;
78
+ return {
79
+ [targetKey]: {
80
+ "@type": this.type,
81
+ "@uri": val,
82
+ "@target": key,
83
+ },
84
+ [key]: val,
85
+ };
86
+ }
87
+ }
88
+ else if (Array.isArray(value)) {
89
+ const list = value.filter(e => (0, utils_1.isDynamicMap)(e));
90
+ if (list.length > 0 && list.every((e) => e["@type"] === this.type)) {
91
+ const target = [];
92
+ const res = [];
93
+ const targetKey = `#${key}`;
94
+ for (const entry of list) {
95
+ const uri = entry["@uri"] || "";
96
+ target.push({
97
+ "@type": this.type,
98
+ "@uri": uri,
99
+ "@target": key,
100
+ });
101
+ res.push(uri);
102
+ }
103
+ return {
104
+ [targetKey]: target,
105
+ [key]: res,
106
+ };
107
+ }
108
+ }
109
+ else if ((0, utils_1.isDynamicMap)(value)) {
110
+ const map = Object.entries(value).filter(([_, v]) => (0, utils_1.isDynamicMap)(v));
111
+ if (map.length > 0 && map.every(([_, v]) => v["@type"] === this.type)) {
112
+ const target = {};
113
+ const res = {};
114
+ const targetKey = `#${key}`;
115
+ for (const [k, v] of map) {
116
+ const uri = v["@uri"] || "";
117
+ target[k] = {
118
+ "@type": this.type,
119
+ "@uri": uri,
120
+ "@target": key,
121
+ };
122
+ res[k] = uri;
123
+ }
124
+ return {
125
+ [targetKey]: target,
126
+ [key]: res,
127
+ };
128
+ }
129
+ }
130
+ return null;
131
+ }
72
132
  }
73
133
  exports.FirestoreModelVideoUriConverter = FirestoreModelVideoUriConverter;
74
134
  //# sourceMappingURL=firestore_model_video_uri_converter.js.map