@taskless-app/shared 0.1.45 → 0.1.46
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/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/notificationDelivery.d.ts +35 -0
- package/dist/notificationDelivery.js +178 -0
- package/dist/notificationDelivery.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -26,5 +26,6 @@ export * from "./importPackage.js";
|
|
|
26
26
|
export * from "./descriptionText.js";
|
|
27
27
|
export * from "./brokenUrl.js";
|
|
28
28
|
export * from "./sidebarSections.js";
|
|
29
|
+
export * from "./notificationDelivery.js";
|
|
29
30
|
export * from "./sourceUrl.js";
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type DeliveryLevel = "feed" | "counter" | "push";
|
|
2
|
+
/**
|
|
3
|
+
* Уровень доставки для каждого вида, который мы шлём.
|
|
4
|
+
*
|
|
5
|
+
* ДОБАВИЛ НОВЫЙ ВИД — ДОПИШИ ЕГО СЮДА. Тест
|
|
6
|
+
* `packages/api/tests/notifications.deliveryLevels.test.ts` обходит
|
|
7
|
+
* builders.ts и падает, если вид оттуда здесь не объявлен.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DELIVERY_LEVELS: Readonly<Record<string, DeliveryLevel>>;
|
|
10
|
+
/**
|
|
11
|
+
* Уровень для вида, который в реестре не объявлен.
|
|
12
|
+
*
|
|
13
|
+
* НЕ `push`: именно «дефолт — звенеть» и был багом — новый вид бил в телефон
|
|
14
|
+
* всем сразу, как только появлялся в builders.ts. И не `feed`: незамеченный
|
|
15
|
+
* вид не должен ещё и исчезать бесследно. `counter` — самое безопасное из
|
|
16
|
+
* трёх: видно, но не будит. Дефолт при этом не способ жизни, а страховка —
|
|
17
|
+
* забыть вид не даёт тест полноты реестра.
|
|
18
|
+
*/
|
|
19
|
+
export declare const DEFAULT_DELIVERY_LEVEL: DeliveryLevel;
|
|
20
|
+
/** Объявлен ли уровень доставки для этого вида. Спрашивает тест полноты. */
|
|
21
|
+
export declare function isDeliveryLevelDeclared(kind: string): boolean;
|
|
22
|
+
export declare function deliveryLevelOf(kind: string): DeliveryLevel;
|
|
23
|
+
/** Может ли вид дойти до телефона. Настройка пользователя — поверх этого. */
|
|
24
|
+
export declare function canPush(kind: string): boolean;
|
|
25
|
+
/** Двигает ли вид значок непрочитанного. */
|
|
26
|
+
export declare function countsUnread(kind: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Виды уровня «лента» — для `kind: { notIn: ... }` в запросах счётчика.
|
|
29
|
+
*
|
|
30
|
+
* Миграция не нужна: счётчик считается запросом, и прошлые строки
|
|
31
|
+
* пересчитываются сами, как только вид попал сюда.
|
|
32
|
+
*/
|
|
33
|
+
export declare const FEED_ONLY_KINDS: readonly string[];
|
|
34
|
+
export declare const SWARM_FEED_KIND = "swarm.feed";
|
|
35
|
+
export declare const SWARM_NOTE_KIND = "swarm.note";
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
// PRJ-130: уровень доставки — СВОЙСТВО ВИДА уведомления, объявленное здесь,
|
|
2
|
+
// рядом с самим видом, а не забытая настройка и не память автора.
|
|
3
|
+
//
|
|
4
|
+
// До этой правки «только лента» существовало в комментариях (`taskCreated`
|
|
5
|
+
// в builders.ts обещал «пульс по проектам»), а в коде — нет: единственный
|
|
6
|
+
// механизм, NEVER_PUSH_KINDS, знал два вида, оба про рой. Всё остальное
|
|
7
|
+
// уходило пушем, потому что `isAllowed` для незнакомого вида отвечала `true`.
|
|
8
|
+
// Из 49 видов, которые шлёт builders.ts, объявлено было 29 — про остальные
|
|
9
|
+
// «не вспомнили», и вспомнить было негде.
|
|
10
|
+
//
|
|
11
|
+
// Три уровня, по возрастанию громкости:
|
|
12
|
+
//
|
|
13
|
+
// feed — строка в истории есть, счётчик не двигает, телефон молчит;
|
|
14
|
+
// counter — то же плюс значок непрочитанного;
|
|
15
|
+
// push — то же плюс пуш на телефон.
|
|
16
|
+
//
|
|
17
|
+
// Правило, по которому вид попадает в `push`: событие адресовано человеку
|
|
18
|
+
// ЛИЧНО и от него чего-то ждут. Назначили, упомянули, ответили ему, зовут в
|
|
19
|
+
// звонок, сломался его ключ. «В проекте что-то произошло» не звенит никогда,
|
|
20
|
+
// сколько бы участников в проекте ни было.
|
|
21
|
+
//
|
|
22
|
+
// Уровень говорит, ЧЕМ вид может быть доставлен; настройка пользователя
|
|
23
|
+
// (notifications/preferences.ts) — хочет ли этого человек. Настройка стоит
|
|
24
|
+
// ПОВЕРХ уровня и может только убавить: включить пуш виду уровня `feed`
|
|
25
|
+
// нельзя, потому что управлять там нечем — тумблер, который ничего не делает,
|
|
26
|
+
// врёт человеку (так уже решили в TASWM-327).
|
|
27
|
+
//
|
|
28
|
+
// Живёт в shared, а не в api, потому что уровень нужен обеим сторонам: сервер
|
|
29
|
+
// решает по нему, слать ли пуш и считать ли строку в счётчике непрочитанного,
|
|
30
|
+
// а веб — двигать ли бейдж оптимистично на входящем SSE. Один список на два
|
|
31
|
+
// пакета; два списка неизбежно разъедутся, и разъезд означал бы тихо
|
|
32
|
+
// вернувшийся пуш.
|
|
33
|
+
/**
|
|
34
|
+
* Уровень доставки для каждого вида, который мы шлём.
|
|
35
|
+
*
|
|
36
|
+
* ДОБАВИЛ НОВЫЙ ВИД — ДОПИШИ ЕГО СЮДА. Тест
|
|
37
|
+
* `packages/api/tests/notifications.deliveryLevels.test.ts` обходит
|
|
38
|
+
* builders.ts и падает, если вид оттуда здесь не объявлен.
|
|
39
|
+
*/
|
|
40
|
+
export const DELIVERY_LEVELS = {
|
|
41
|
+
// ——— push: адресовано лично, от человека чего-то ждут ————————————————
|
|
42
|
+
"task.assigned": "push",
|
|
43
|
+
"task.mention": "push",
|
|
44
|
+
// Аудиторию комментариев сужает отдельная задача — здесь только уровень.
|
|
45
|
+
"task.comment": "push",
|
|
46
|
+
"task.reply": "push",
|
|
47
|
+
"task.priority_urgent": "push",
|
|
48
|
+
"task.deadline_near": "push",
|
|
49
|
+
"chat.mention": "push",
|
|
50
|
+
"chat.thread.replied": "push",
|
|
51
|
+
"room.mention": "push",
|
|
52
|
+
// Личка — самый адресный вид, который у нас есть. Тем же видом ходит и
|
|
53
|
+
// сообщение в канале (rooms/messageService.ts не различает их по kind), так
|
|
54
|
+
// что здесь мы платим за DM шумом каналов. Разделять аудиторию — работа
|
|
55
|
+
// отдельной задачи; ронять сюда весь чат ради каналов нельзя.
|
|
56
|
+
"room.message": "push",
|
|
57
|
+
"document.mention": "push",
|
|
58
|
+
"document.comment_mention": "push",
|
|
59
|
+
"post.mention": "push",
|
|
60
|
+
"call.incoming": "push",
|
|
61
|
+
"call.invite": "push",
|
|
62
|
+
"call.join_now": "push",
|
|
63
|
+
"call.started": "push",
|
|
64
|
+
"call.missed": "push",
|
|
65
|
+
"call.reminder_5m": "push",
|
|
66
|
+
// PRJ-130 (решено в этой задаче): гостя позвали в звонок — это зов, а не
|
|
67
|
+
// сводка. Гость обычно вне приложения, и лента, которую он не откроет,
|
|
68
|
+
// равна отсутствию приглашения.
|
|
69
|
+
"call.guest_invite": "push",
|
|
70
|
+
// «Тебя записали в созвон» — приглашение, как event.invite. Соседние
|
|
71
|
+
// call.rescheduled/cancelled ниже уровнем: там встреча уже твоя, меняются
|
|
72
|
+
// детали.
|
|
73
|
+
"call.scheduled": "push",
|
|
74
|
+
"event.invite": "push",
|
|
75
|
+
"workspace.invite": "push",
|
|
76
|
+
"ai.key_broken": "push",
|
|
77
|
+
// Лимит исчерпан → AI-фичи встали. Адресовано лично (владельцу лимита или
|
|
78
|
+
// админам воркспейса) и требует действия — поднять лимит.
|
|
79
|
+
"ai.quota.user_exceeded": "push",
|
|
80
|
+
"ai.quota.workspace_exceeded": "push",
|
|
81
|
+
// PRJ-130 (решено в этой задаче): дайджест и напоминание человек завёл САМ.
|
|
82
|
+
// Напоминание, пришедшее в ленту, — это не напоминание.
|
|
83
|
+
"agent.daily_digest": "push",
|
|
84
|
+
"agent.reminder": "push",
|
|
85
|
+
"swarm.anomaly": "push",
|
|
86
|
+
"swarm.overmind_down": "push",
|
|
87
|
+
// ——— counter: заметить нужно, будить незачем ———————————————————————
|
|
88
|
+
"task.status_changed": "counter",
|
|
89
|
+
"task.released": "counter",
|
|
90
|
+
"task.relation_added": "counter",
|
|
91
|
+
"task.deleted": "counter",
|
|
92
|
+
"document.comment": "counter",
|
|
93
|
+
"document.shared": "counter",
|
|
94
|
+
"suggestion.accepted": "counter",
|
|
95
|
+
"suggestion.rejected": "counter",
|
|
96
|
+
"call.rescheduled": "counter",
|
|
97
|
+
"call.cancelled": "counter",
|
|
98
|
+
// Тот же класс, что две строки выше: встреча уже твоя, меняются детали
|
|
99
|
+
// («изменил созвон») или тебя из неё убрали («убрал вас из созвона»).
|
|
100
|
+
// Событие адресное — пропасть из значка оно не должно.
|
|
101
|
+
"call.updated": "counter",
|
|
102
|
+
"call.removed": "counter",
|
|
103
|
+
"call.reminder_1h": "counter",
|
|
104
|
+
// Инфраструктурные тревоги: адресованы роли, а не человеку, и ждут не
|
|
105
|
+
// сиюминутной реакции.
|
|
106
|
+
"channel.alert": "counter",
|
|
107
|
+
"resource.alert": "counter",
|
|
108
|
+
"storage.quota": "counter",
|
|
109
|
+
"ci.branch_red": "counter",
|
|
110
|
+
"service.state_changed": "counter",
|
|
111
|
+
// В постановке этих двух не было — нашлись при обходе (deploys/
|
|
112
|
+
// prodLivenessWatcher.ts и github/webhook.ts). Тот же класс, что тревоги
|
|
113
|
+
// выше, поэтому тот же уровень.
|
|
114
|
+
"env.liveness_changed": "counter",
|
|
115
|
+
"workflow.changed": "counter",
|
|
116
|
+
// Поправка владельца к черновому раскладу (коммент к PRJ-130): «тебя
|
|
117
|
+
// добавили в проект» — событие адресное, пропасть оно не должно. Звенеть
|
|
118
|
+
// при этом незачем.
|
|
119
|
+
"project.member_added": "counter",
|
|
120
|
+
// «Указал вас автором новости» — то же самое, что строка выше: адресное,
|
|
121
|
+
// а не «в проекте что-то произошло».
|
|
122
|
+
"post.coauthored": "counter",
|
|
123
|
+
// В постановке не было. «Ответили в треде, за которым ты следишь» — слабее,
|
|
124
|
+
// чем chat.thread.replied («ответили ТЕБЕ»), и попадает под то же правило,
|
|
125
|
+
// что веерные виды: тебе никто не писал, ты в аудитории.
|
|
126
|
+
"chat.thread.followed": "counter",
|
|
127
|
+
// ——— feed: «в проекте что-то произошло» ————————————————————————————
|
|
128
|
+
"task.created": "feed",
|
|
129
|
+
"task.status_changed.broadcast": "feed",
|
|
130
|
+
"task.done.broadcast": "feed",
|
|
131
|
+
"task.commented.broadcast": "feed",
|
|
132
|
+
"reaction.received": "feed",
|
|
133
|
+
"project.created": "feed",
|
|
134
|
+
"project.subproject_added": "feed",
|
|
135
|
+
"call.ended": "feed",
|
|
136
|
+
// TASWM-327: тихие уровни надзора роя. Здесь они перестали быть исключением
|
|
137
|
+
// (NEVER_PUSH_KINDS) и стали обычной строкой реестра — политика та же.
|
|
138
|
+
"swarm.feed": "feed",
|
|
139
|
+
"swarm.note": "feed",
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Уровень для вида, который в реестре не объявлен.
|
|
143
|
+
*
|
|
144
|
+
* НЕ `push`: именно «дефолт — звенеть» и был багом — новый вид бил в телефон
|
|
145
|
+
* всем сразу, как только появлялся в builders.ts. И не `feed`: незамеченный
|
|
146
|
+
* вид не должен ещё и исчезать бесследно. `counter` — самое безопасное из
|
|
147
|
+
* трёх: видно, но не будит. Дефолт при этом не способ жизни, а страховка —
|
|
148
|
+
* забыть вид не даёт тест полноты реестра.
|
|
149
|
+
*/
|
|
150
|
+
export const DEFAULT_DELIVERY_LEVEL = "counter";
|
|
151
|
+
/** Объявлен ли уровень доставки для этого вида. Спрашивает тест полноты. */
|
|
152
|
+
export function isDeliveryLevelDeclared(kind) {
|
|
153
|
+
return Object.prototype.hasOwnProperty.call(DELIVERY_LEVELS, kind);
|
|
154
|
+
}
|
|
155
|
+
export function deliveryLevelOf(kind) {
|
|
156
|
+
return DELIVERY_LEVELS[kind] ?? DEFAULT_DELIVERY_LEVEL;
|
|
157
|
+
}
|
|
158
|
+
/** Может ли вид дойти до телефона. Настройка пользователя — поверх этого. */
|
|
159
|
+
export function canPush(kind) {
|
|
160
|
+
return deliveryLevelOf(kind) === "push";
|
|
161
|
+
}
|
|
162
|
+
/** Двигает ли вид значок непрочитанного. */
|
|
163
|
+
export function countsUnread(kind) {
|
|
164
|
+
return deliveryLevelOf(kind) !== "feed";
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Виды уровня «лента» — для `kind: { notIn: ... }` в запросах счётчика.
|
|
168
|
+
*
|
|
169
|
+
* Миграция не нужна: счётчик считается запросом, и прошлые строки
|
|
170
|
+
* пересчитываются сами, как только вид попал сюда.
|
|
171
|
+
*/
|
|
172
|
+
export const FEED_ONLY_KINDS = Object.keys(DELIVERY_LEVELS)
|
|
173
|
+
.filter((k) => DELIVERY_LEVELS[k] === "feed");
|
|
174
|
+
// Виды тихого надзора роя — их проставляет mcp/tools/swarm.ts, и имя обязано
|
|
175
|
+
// жить там же, где политика доставки: разъезд означал бы тихо вернувшийся пуш.
|
|
176
|
+
export const SWARM_FEED_KIND = "swarm.feed";
|
|
177
|
+
export const SWARM_NOTE_KIND = "swarm.note";
|
|
178
|
+
//# sourceMappingURL=notificationDelivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationDelivery.js","sourceRoot":"","sources":["../src/notificationDelivery.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,kEAAkE;AAClE,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,8EAA8E;AAC9E,2EAA2E;AAC3E,0CAA0C;AAC1C,EAAE;AACF,wCAAwC;AACxC,EAAE;AACF,yEAAyE;AACzE,gDAAgD;AAChD,yCAAyC;AACzC,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,2CAA2C;AAC3C,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,wEAAwE;AACxE,8EAA8E;AAC9E,8CAA8C;AAC9C,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,mBAAmB;AAInB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAA4C;IACtE,wEAAwE;IAExE,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,MAAM;IACtB,yEAAyE;IACzE,cAAc,EAAE,MAAM;IACtB,YAAY,EAAE,MAAM;IACpB,sBAAsB,EAAE,MAAM;IAC9B,oBAAoB,EAAE,MAAM;IAE5B,cAAc,EAAE,MAAM;IACtB,qBAAqB,EAAE,MAAM;IAC7B,cAAc,EAAE,MAAM;IACtB,uEAAuE;IACvE,4EAA4E;IAC5E,wEAAwE;IACxE,8DAA8D;IAC9D,cAAc,EAAE,MAAM;IAEtB,kBAAkB,EAAE,MAAM;IAC1B,0BAA0B,EAAE,MAAM;IAClC,cAAc,EAAE,MAAM;IAEtB,eAAe,EAAE,MAAM;IACvB,aAAa,EAAE,MAAM;IACrB,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,MAAM;IACrB,kBAAkB,EAAE,MAAM;IAC1B,yEAAyE;IACzE,uEAAuE;IACvE,gCAAgC;IAChC,mBAAmB,EAAE,MAAM;IAC3B,qEAAqE;IACrE,0EAA0E;IAC1E,UAAU;IACV,gBAAgB,EAAE,MAAM;IACxB,cAAc,EAAE,MAAM;IACtB,kBAAkB,EAAE,MAAM;IAE1B,eAAe,EAAE,MAAM;IACvB,0EAA0E;IAC1E,0DAA0D;IAC1D,wBAAwB,EAAE,MAAM;IAChC,6BAA6B,EAAE,MAAM;IACrC,4EAA4E;IAC5E,wDAAwD;IACxD,oBAAoB,EAAE,MAAM;IAC5B,gBAAgB,EAAE,MAAM;IAExB,eAAe,EAAE,MAAM;IACvB,qBAAqB,EAAE,MAAM;IAE7B,sEAAsE;IAEtE,qBAAqB,EAAE,SAAS;IAChC,eAAe,EAAE,SAAS;IAC1B,qBAAqB,EAAE,SAAS;IAChC,cAAc,EAAE,SAAS;IAEzB,kBAAkB,EAAE,SAAS;IAC7B,iBAAiB,EAAE,SAAS;IAE5B,qBAAqB,EAAE,SAAS;IAChC,qBAAqB,EAAE,SAAS;IAEhC,kBAAkB,EAAE,SAAS;IAC7B,gBAAgB,EAAE,SAAS;IAC3B,uEAAuE;IACvE,sEAAsE;IACtE,uDAAuD;IACvD,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,kBAAkB,EAAE,SAAS;IAE7B,sEAAsE;IACtE,uBAAuB;IACvB,eAAe,EAAE,SAAS;IAC1B,gBAAgB,EAAE,SAAS;IAC3B,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,SAAS;IAC1B,uBAAuB,EAAE,SAAS;IAClC,gEAAgE;IAChE,yEAAyE;IACzE,gCAAgC;IAChC,sBAAsB,EAAE,SAAS;IACjC,kBAAkB,EAAE,SAAS;IAE7B,qEAAqE;IACrE,yEAAyE;IACzE,oBAAoB;IACpB,sBAAsB,EAAE,SAAS;IACjC,yEAAyE;IACzE,qCAAqC;IACrC,iBAAiB,EAAE,SAAS;IAE5B,4EAA4E;IAC5E,2EAA2E;IAC3E,yDAAyD;IACzD,sBAAsB,EAAE,SAAS;IAEjC,sEAAsE;IAEtE,cAAc,EAAE,MAAM;IACtB,+BAA+B,EAAE,MAAM;IACvC,qBAAqB,EAAE,MAAM;IAC7B,0BAA0B,EAAE,MAAM;IAClC,mBAAmB,EAAE,MAAM;IAE3B,iBAAiB,EAAE,MAAM;IACzB,0BAA0B,EAAE,MAAM;IAElC,YAAY,EAAE,MAAM;IAEpB,4EAA4E;IAC5E,uEAAuE;IACvE,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,MAAM;CACrB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB,SAAS,CAAC;AAE/D,4EAA4E;AAC5E,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC;AACzD,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;AAC1C,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;KAC3E,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;AAEhD,6EAA6E;AAC7E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taskless-app/shared",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.46",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Shared types, Zod schemas and design tokens for the Taskless API contract — consumed by @taskless/api, @taskless/web and the Taskless mobile app.",
|
|
6
6
|
"license": "MIT",
|