@voxendar/shared 0.1.0 → 0.2.0
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/constants.d.ts +21 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +34 -2
- package/dist/constants.js.map +1 -1
- package/dist/i18n/templates.d.ts +87 -6
- package/dist/i18n/templates.d.ts.map +1 -1
- package/dist/i18n/templates.js +48 -15
- package/dist/i18n/templates.js.map +1 -1
- package/package.json +3 -3
package/dist/constants.d.ts
CHANGED
|
@@ -4,8 +4,27 @@
|
|
|
4
4
|
* channel policy, and provider choices are confirmed by Rob in Phase 0
|
|
5
5
|
* (Implementation_Plan.md Phase 0).
|
|
6
6
|
*/
|
|
7
|
-
/**
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* The launch languages (decided by Rob 2026-09-23; Phase 0's last open item).
|
|
9
|
+
*
|
|
10
|
+
* Every entry here is **verified to round-trip**: a reminder sentence is
|
|
11
|
+
* synthesised by the TTS provider and the audio is transcribed back, and the
|
|
12
|
+
* transcript matches what was said (see `daily_development_log.md` →
|
|
13
|
+
* 2026-09-23 "语言集扩容"). That test is the bar for adding a language, because
|
|
14
|
+
* a provider can accept a request for an unsupported language and still
|
|
15
|
+
* mispronounce it — Hebrew failed exactly that way on `eleven_multilingual_v2`.
|
|
16
|
+
*
|
|
17
|
+
* `he-IL` is included because it **passes on `eleven_v3`** (70+ languages); see
|
|
18
|
+
* `ELEVEN_MODEL_BY_LANGUAGE` in `functions/` for the per-language model choice.
|
|
19
|
+
* Arabic and Hebrew are RTL — the *content* renders fine, but app-UI
|
|
20
|
+
* localisation for RTL is a separate, still-open workstream.
|
|
21
|
+
*
|
|
22
|
+
* Adding a language is not one constant: it also needs a reminder template in
|
|
23
|
+
* `i18n/templates.ts` (an unknown language silently falls back to English), a
|
|
24
|
+
* native-name label in the app, and a republish of this package + a functions
|
|
25
|
+
* redeploy, since the backend resolves it from the registry.
|
|
26
|
+
*/
|
|
27
|
+
export declare const SUPPORTED_LANGUAGES: readonly ["en-US", "zh-CN", "es-MX", "fr-FR", "de-DE", "pt-BR", "ru-RU", "ar-SA", "hi-IN", "he-IL", "ja-JP", "ko-KR"];
|
|
9
28
|
/** Google Calendar color ids "1"–"11" (color-to-member assignment decided in Phase 0). */
|
|
10
29
|
export declare const GOOGLE_CALENDAR_COLOR_IDS: readonly ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"];
|
|
11
30
|
/** Default per-event reminder offsets in minutes (1 day, 2 hours). */
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,mBAAmB,uHAatB,CAAC;AAEX,0FAA0F;AAC1F,eAAO,MAAM,yBAAyB,oEAY5B,CAAC;AAEX,sEAAsE;AACtE,eAAO,MAAM,gCAAgC,sBAAuB,CAAC;AAErE,qEAAqE;AACrE,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,mEAAmE;AACnE,eAAO,MAAM,wCAAwC,MAAM,CAAC;AAE5D,iCAAiC;AACjC,eAAO,MAAM,qBAAqB;;;;;;;CAOxB,CAAC;AAEX,sCAAsC;AACtC,eAAO,MAAM,aAAa;;;CAGhB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -7,8 +7,40 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.STORAGE_PATHS = exports.FIRESTORE_COLLECTIONS = exports.SCHEDULER_HORIZON_MARGIN_MINUTES_DEFAULT = exports.SCHEDULER_INTERVAL_MINUTES_DEFAULT = exports.DEFAULT_REMINDER_OFFSETS_MINUTES = exports.GOOGLE_CALENDAR_COLOR_IDS = exports.SUPPORTED_LANGUAGES = void 0;
|
|
10
|
-
/**
|
|
11
|
-
|
|
10
|
+
/**
|
|
11
|
+
* The launch languages (decided by Rob 2026-09-23; Phase 0's last open item).
|
|
12
|
+
*
|
|
13
|
+
* Every entry here is **verified to round-trip**: a reminder sentence is
|
|
14
|
+
* synthesised by the TTS provider and the audio is transcribed back, and the
|
|
15
|
+
* transcript matches what was said (see `daily_development_log.md` →
|
|
16
|
+
* 2026-09-23 "语言集扩容"). That test is the bar for adding a language, because
|
|
17
|
+
* a provider can accept a request for an unsupported language and still
|
|
18
|
+
* mispronounce it — Hebrew failed exactly that way on `eleven_multilingual_v2`.
|
|
19
|
+
*
|
|
20
|
+
* `he-IL` is included because it **passes on `eleven_v3`** (70+ languages); see
|
|
21
|
+
* `ELEVEN_MODEL_BY_LANGUAGE` in `functions/` for the per-language model choice.
|
|
22
|
+
* Arabic and Hebrew are RTL — the *content* renders fine, but app-UI
|
|
23
|
+
* localisation for RTL is a separate, still-open workstream.
|
|
24
|
+
*
|
|
25
|
+
* Adding a language is not one constant: it also needs a reminder template in
|
|
26
|
+
* `i18n/templates.ts` (an unknown language silently falls back to English), a
|
|
27
|
+
* native-name label in the app, and a republish of this package + a functions
|
|
28
|
+
* redeploy, since the backend resolves it from the registry.
|
|
29
|
+
*/
|
|
30
|
+
exports.SUPPORTED_LANGUAGES = [
|
|
31
|
+
"en-US",
|
|
32
|
+
"zh-CN",
|
|
33
|
+
"es-MX",
|
|
34
|
+
"fr-FR",
|
|
35
|
+
"de-DE",
|
|
36
|
+
"pt-BR",
|
|
37
|
+
"ru-RU",
|
|
38
|
+
"ar-SA",
|
|
39
|
+
"hi-IN",
|
|
40
|
+
"he-IL",
|
|
41
|
+
"ja-JP",
|
|
42
|
+
"ko-KR",
|
|
43
|
+
];
|
|
12
44
|
/** Google Calendar color ids "1"–"11" (color-to-member assignment decided in Phase 0). */
|
|
13
45
|
exports.GOOGLE_CALENDAR_COLOR_IDS = [
|
|
14
46
|
"1",
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACU,QAAA,mBAAmB,GAAG;IACjC,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACC,CAAC;AAEX,0FAA0F;AAC7E,QAAA,yBAAyB,GAAG;IACvC,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;CACI,CAAC;AAEX,sEAAsE;AACzD,QAAA,gCAAgC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAU,CAAC;AAErE,qEAAqE;AACxD,QAAA,kCAAkC,GAAG,EAAE,CAAC;AAErD,mEAAmE;AACtD,QAAA,wCAAwC,GAAG,GAAG,CAAC;AAE5D,iCAAiC;AACpB,QAAA,qBAAqB,GAAG;IACnC,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,kBAAkB;IACpC,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,eAAe;CACtB,CAAC;AAEX,sCAAsC;AACzB,QAAA,aAAa,GAAG;IAC3B,QAAQ,EAAE,OAAO,EAAE,gDAAgD;IACnE,QAAQ,EAAE,KAAK,EAAE,6CAA6C;CACtD,CAAC"}
|
package/dist/i18n/templates.d.ts
CHANGED
|
@@ -11,13 +11,94 @@ export interface ReminderMessageParams {
|
|
|
11
11
|
/** Optional location included in the message. */
|
|
12
12
|
location?: string | null;
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Per-language copy, as data rather than one function per language: with 12
|
|
16
|
+
* languages the only thing that varies is punctuation and word order, so the
|
|
17
|
+
* variation belongs in a table a reviewer can scan in one screen.
|
|
18
|
+
*
|
|
19
|
+
* Two things worth knowing when adding a row:
|
|
20
|
+
* - **`lead` + `join` are the whole sentence shape.** `{location}` in `location`
|
|
21
|
+
* is replaced only when the event has one, which is why the parentheses live
|
|
22
|
+
* in the table (Japanese uses full-width ones, English half-width).
|
|
23
|
+
* - **Anything outside GSM-7 costs a second SMS segment.** Latin/Cyrillic-adjacent
|
|
24
|
+
* text is 160 chars per segment on the Latin-1 path, but Arabic, Hebrew, Hindi,
|
|
25
|
+
* Japanese and Korean are UCS-2 — 70 chars per segment — and Chinese already
|
|
26
|
+
* is. So the 9 new languages make a long title likelier to bill as 2 segments;
|
|
27
|
+
* this is exactly why the file header rejects free-form LLM copy.
|
|
28
|
+
*/
|
|
29
|
+
declare const COPY: {
|
|
30
|
+
readonly "en-US": {
|
|
31
|
+
readonly lead: "⏰ Reminder: ";
|
|
32
|
+
readonly join: " — ";
|
|
33
|
+
readonly location: " (📍 {location})";
|
|
34
|
+
};
|
|
35
|
+
readonly "zh-CN": {
|
|
36
|
+
readonly lead: "⏰ 提醒:";
|
|
37
|
+
readonly join: ",";
|
|
38
|
+
readonly location: "(📍 {location})";
|
|
39
|
+
};
|
|
40
|
+
readonly "es-MX": {
|
|
41
|
+
readonly lead: "⏰ Recordatorio: ";
|
|
42
|
+
readonly join: " — ";
|
|
43
|
+
readonly location: " (📍 {location})";
|
|
44
|
+
};
|
|
45
|
+
readonly "fr-FR": {
|
|
46
|
+
readonly lead: "⏰ Rappel : ";
|
|
47
|
+
readonly join: " — ";
|
|
48
|
+
readonly location: " (📍 {location})";
|
|
49
|
+
};
|
|
50
|
+
readonly "de-DE": {
|
|
51
|
+
readonly lead: "⏰ Erinnerung: ";
|
|
52
|
+
readonly join: " — ";
|
|
53
|
+
readonly location: " (📍 {location})";
|
|
54
|
+
};
|
|
55
|
+
readonly "pt-BR": {
|
|
56
|
+
readonly lead: "⏰ Lembrete: ";
|
|
57
|
+
readonly join: " — ";
|
|
58
|
+
readonly location: " (📍 {location})";
|
|
59
|
+
};
|
|
60
|
+
readonly "ru-RU": {
|
|
61
|
+
readonly lead: "⏰ Напоминание: ";
|
|
62
|
+
readonly join: " — ";
|
|
63
|
+
readonly location: " (📍 {location})";
|
|
64
|
+
};
|
|
65
|
+
readonly "ar-SA": {
|
|
66
|
+
readonly lead: "⏰ تذكير: ";
|
|
67
|
+
readonly join: " — ";
|
|
68
|
+
readonly location: " (📍 {location})";
|
|
69
|
+
};
|
|
70
|
+
readonly "hi-IN": {
|
|
71
|
+
readonly lead: "⏰ रिमाइंडर: ";
|
|
72
|
+
readonly join: " — ";
|
|
73
|
+
readonly location: " (📍 {location})";
|
|
74
|
+
};
|
|
75
|
+
readonly "he-IL": {
|
|
76
|
+
readonly lead: "⏰ תזכורת: ";
|
|
77
|
+
readonly join: " — ";
|
|
78
|
+
readonly location: " (📍 {location})";
|
|
79
|
+
};
|
|
80
|
+
readonly "ja-JP": {
|
|
81
|
+
readonly lead: "⏰ リマインダー:";
|
|
82
|
+
readonly join: " — ";
|
|
83
|
+
readonly location: "(📍 {location})";
|
|
84
|
+
};
|
|
85
|
+
readonly "ko-KR": {
|
|
86
|
+
readonly lead: "⏰ 알림: ";
|
|
87
|
+
readonly join: " — ";
|
|
88
|
+
readonly location: " (📍 {location})";
|
|
89
|
+
};
|
|
18
90
|
};
|
|
19
|
-
export type TemplateKey = keyof typeof
|
|
20
|
-
/**
|
|
91
|
+
export type TemplateKey = keyof typeof COPY;
|
|
92
|
+
/**
|
|
93
|
+
* Closest template for a BCP-47 tag: exact → base language ("zh" → "zh-CN") →
|
|
94
|
+
* "en-US".
|
|
95
|
+
*
|
|
96
|
+
* The base-language step now matters more than it did with three languages: a
|
|
97
|
+
* member on `pt-PT` or `ar-EG` gets `pt-BR` / `ar-SA` rather than English. That
|
|
98
|
+
* is the right trade for a message *template* — the times inside `when` are
|
|
99
|
+
* already resolved in the member's own timezone by the caller — but it is a
|
|
100
|
+
* deliberate approximation, not true localisation.
|
|
101
|
+
*/
|
|
21
102
|
export declare function resolveTemplateKey(language: string): TemplateKey;
|
|
22
103
|
/** Build the reminder message text for a member's language. */
|
|
23
104
|
export declare function buildReminderMessage(language: string, params: ReminderMessageParams): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/i18n/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,qBAAqB;IACpC,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,QAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/i18n/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,qBAAqB;IACpC,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBT,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,IAAI,CAAC;AAE5C;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAUhE;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAI5F"}
|
package/dist/i18n/templates.js
CHANGED
|
@@ -7,24 +7,56 @@
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.resolveTemplateKey = resolveTemplateKey;
|
|
9
9
|
exports.buildReminderMessage = buildReminderMessage;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Per-language copy, as data rather than one function per language: with 12
|
|
12
|
+
* languages the only thing that varies is punctuation and word order, so the
|
|
13
|
+
* variation belongs in a table a reviewer can scan in one screen.
|
|
14
|
+
*
|
|
15
|
+
* Two things worth knowing when adding a row:
|
|
16
|
+
* - **`lead` + `join` are the whole sentence shape.** `{location}` in `location`
|
|
17
|
+
* is replaced only when the event has one, which is why the parentheses live
|
|
18
|
+
* in the table (Japanese uses full-width ones, English half-width).
|
|
19
|
+
* - **Anything outside GSM-7 costs a second SMS segment.** Latin/Cyrillic-adjacent
|
|
20
|
+
* text is 160 chars per segment on the Latin-1 path, but Arabic, Hebrew, Hindi,
|
|
21
|
+
* Japanese and Korean are UCS-2 — 70 chars per segment — and Chinese already
|
|
22
|
+
* is. So the 9 new languages make a long title likelier to bill as 2 segments;
|
|
23
|
+
* this is exactly why the file header rejects free-form LLM copy.
|
|
24
|
+
*/
|
|
25
|
+
const COPY = {
|
|
26
|
+
"en-US": { lead: "⏰ Reminder: ", join: " — ", location: " (📍 {location})" },
|
|
27
|
+
"zh-CN": { lead: "⏰ 提醒:", join: ",", location: "(📍 {location})" },
|
|
28
|
+
"es-MX": { lead: "⏰ Recordatorio: ", join: " — ", location: " (📍 {location})" },
|
|
29
|
+
// French puts a space before the colon — `Rappel :` — not `Rappel:`.
|
|
30
|
+
"fr-FR": { lead: "⏰ Rappel : ", join: " — ", location: " (📍 {location})" },
|
|
31
|
+
"de-DE": { lead: "⏰ Erinnerung: ", join: " — ", location: " (📍 {location})" },
|
|
32
|
+
"pt-BR": { lead: "⏰ Lembrete: ", join: " — ", location: " (📍 {location})" },
|
|
33
|
+
"ru-RU": { lead: "⏰ Напоминание: ", join: " — ", location: " (📍 {location})" },
|
|
34
|
+
// Arabic is RTL: the whole line renders right-to-left, but `lead` still comes
|
|
35
|
+
// first in logical order, which is what the messaging APIs expect.
|
|
36
|
+
"ar-SA": { lead: "⏰ تذكير: ", join: " — ", location: " (📍 {location})" },
|
|
37
|
+
"hi-IN": { lead: "⏰ रिमाइंडर: ", join: " — ", location: " (📍 {location})" },
|
|
38
|
+
"he-IL": { lead: "⏰ תזכורת: ", join: " — ", location: " (📍 {location})" },
|
|
39
|
+
// Japanese uses `:` after the lead and `、`-style separation; full-width
|
|
40
|
+
// parentheses keep the location visually inside the sentence.
|
|
41
|
+
"ja-JP": { lead: "⏰ リマインダー:", join: " — ", location: "(📍 {location})" },
|
|
42
|
+
"ko-KR": { lead: "⏰ 알림: ", join: " — ", location: " (📍 {location})" },
|
|
20
43
|
};
|
|
21
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Closest template for a BCP-47 tag: exact → base language ("zh" → "zh-CN") →
|
|
46
|
+
* "en-US".
|
|
47
|
+
*
|
|
48
|
+
* The base-language step now matters more than it did with three languages: a
|
|
49
|
+
* member on `pt-PT` or `ar-EG` gets `pt-BR` / `ar-SA` rather than English. That
|
|
50
|
+
* is the right trade for a message *template* — the times inside `when` are
|
|
51
|
+
* already resolved in the member's own timezone by the caller — but it is a
|
|
52
|
+
* deliberate approximation, not true localisation.
|
|
53
|
+
*/
|
|
22
54
|
function resolveTemplateKey(language) {
|
|
23
|
-
if (language in
|
|
55
|
+
if (language in COPY)
|
|
24
56
|
return language;
|
|
25
57
|
const base = language.split("-")[0] ?? "";
|
|
26
58
|
if (base.length >= 2) {
|
|
27
|
-
const baseKey = Object.keys(
|
|
59
|
+
const baseKey = Object.keys(COPY).find((key) => key.startsWith(`${base}-`));
|
|
28
60
|
if (baseKey)
|
|
29
61
|
return baseKey;
|
|
30
62
|
}
|
|
@@ -32,7 +64,8 @@ function resolveTemplateKey(language) {
|
|
|
32
64
|
}
|
|
33
65
|
/** Build the reminder message text for a member's language. */
|
|
34
66
|
function buildReminderMessage(language, params) {
|
|
35
|
-
const
|
|
36
|
-
|
|
67
|
+
const copy = COPY[resolveTemplateKey(language)];
|
|
68
|
+
const body = `${copy.lead}${params.title}${copy.join}${params.when}`;
|
|
69
|
+
return params.location ? body + copy.location.replace("{location}", params.location) : body;
|
|
37
70
|
}
|
|
38
71
|
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/i18n/templates.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/i18n/templates.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA6DH,gDAUC;AAGD,oDAIC;AAnED;;;;;;;;;;;;;;GAcG;AACH,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAC5E,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE;IAClE,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAChF,qEAAqE;IACrE,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAC3E,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAC9E,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAC5E,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAC/E,8EAA8E;IAC9E,mEAAmE;IACnE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IACzE,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAC5E,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;IAC1E,wEAAwE;IACxE,8DAA8D;IAC9D,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE;IACxE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE;CAIvE,CAAC;AAIF;;;;;;;;;GASG;AACH,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,QAAuB,CAAC;IACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAChE,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAC3B,CAAC;QACF,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+DAA+D;AAC/D,SAAgB,oBAAoB,CAAC,QAAgB,EAAE,MAA6B;IAClF,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACrE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxendar/shared",
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"private": false,
|
|
5
5
|
"description": "Shared contracts, schemas, constants and pure logic for Voxendar/Tellie (consumed by functions/ and app/)",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -21,4 +21,4 @@
|
|
|
21
21
|
"typescript": "^5.5.4",
|
|
22
22
|
"vitest": "^2.1.9"
|
|
23
23
|
}
|
|
24
|
-
}
|
|
24
|
+
}
|