@doist/todoist-cli 1.29.2 → 1.29.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 (248) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +11 -4
  3. package/scripts/check-skill-sync.js +40 -0
  4. package/scripts/sync-skill.js +28 -0
  5. package/dist/__mocks__/chalk.d.ts +0 -3
  6. package/dist/__mocks__/chalk.d.ts.map +0 -1
  7. package/dist/__mocks__/chalk.js +0 -8
  8. package/dist/__mocks__/chalk.js.map +0 -1
  9. package/dist/commands/activity.d.ts +0 -3
  10. package/dist/commands/activity.d.ts.map +0 -1
  11. package/dist/commands/activity.js +0 -267
  12. package/dist/commands/activity.js.map +0 -1
  13. package/dist/commands/add.d.ts +0 -3
  14. package/dist/commands/add.d.ts.map +0 -1
  15. package/dist/commands/add.js +0 -36
  16. package/dist/commands/add.js.map +0 -1
  17. package/dist/commands/attachment.d.ts +0 -3
  18. package/dist/commands/attachment.d.ts.map +0 -1
  19. package/dist/commands/attachment.js +0 -156
  20. package/dist/commands/attachment.js.map +0 -1
  21. package/dist/commands/auth.d.ts +0 -3
  22. package/dist/commands/auth.d.ts.map +0 -1
  23. package/dist/commands/auth.js +0 -124
  24. package/dist/commands/auth.js.map +0 -1
  25. package/dist/commands/changelog.d.ts +0 -8
  26. package/dist/commands/changelog.d.ts.map +0 -1
  27. package/dist/commands/changelog.js +0 -92
  28. package/dist/commands/changelog.js.map +0 -1
  29. package/dist/commands/comment.d.ts +0 -3
  30. package/dist/commands/comment.d.ts.map +0 -1
  31. package/dist/commands/comment.js +0 -301
  32. package/dist/commands/comment.js.map +0 -1
  33. package/dist/commands/completed.d.ts +0 -3
  34. package/dist/commands/completed.d.ts.map +0 -1
  35. package/dist/commands/completed.js +0 -107
  36. package/dist/commands/completed.js.map +0 -1
  37. package/dist/commands/completion.d.ts +0 -3
  38. package/dist/commands/completion.d.ts.map +0 -1
  39. package/dist/commands/completion.js +0 -107
  40. package/dist/commands/completion.js.map +0 -1
  41. package/dist/commands/filter.d.ts +0 -5
  42. package/dist/commands/filter.d.ts.map +0 -1
  43. package/dist/commands/filter.js +0 -287
  44. package/dist/commands/filter.js.map +0 -1
  45. package/dist/commands/inbox.d.ts +0 -3
  46. package/dist/commands/inbox.d.ts.map +0 -1
  47. package/dist/commands/inbox.js +0 -25
  48. package/dist/commands/inbox.js.map +0 -1
  49. package/dist/commands/label.d.ts +0 -5
  50. package/dist/commands/label.d.ts.map +0 -1
  51. package/dist/commands/label.js +0 -328
  52. package/dist/commands/label.js.map +0 -1
  53. package/dist/commands/notification.d.ts +0 -3
  54. package/dist/commands/notification.d.ts.map +0 -1
  55. package/dist/commands/notification.js +0 -274
  56. package/dist/commands/notification.js.map +0 -1
  57. package/dist/commands/project.d.ts +0 -5
  58. package/dist/commands/project.d.ts.map +0 -1
  59. package/dist/commands/project.js +0 -528
  60. package/dist/commands/project.js.map +0 -1
  61. package/dist/commands/reminder.d.ts +0 -3
  62. package/dist/commands/reminder.d.ts.map +0 -1
  63. package/dist/commands/reminder.js +0 -271
  64. package/dist/commands/reminder.js.map +0 -1
  65. package/dist/commands/section.d.ts +0 -3
  66. package/dist/commands/section.d.ts.map +0 -1
  67. package/dist/commands/section.js +0 -172
  68. package/dist/commands/section.js.map +0 -1
  69. package/dist/commands/settings.d.ts +0 -12
  70. package/dist/commands/settings.d.ts.map +0 -1
  71. package/dist/commands/settings.js +0 -312
  72. package/dist/commands/settings.js.map +0 -1
  73. package/dist/commands/skill.d.ts +0 -3
  74. package/dist/commands/skill.d.ts.map +0 -1
  75. package/dist/commands/skill.js +0 -127
  76. package/dist/commands/skill.js.map +0 -1
  77. package/dist/commands/stats.d.ts +0 -3
  78. package/dist/commands/stats.d.ts.map +0 -1
  79. package/dist/commands/stats.js +0 -151
  80. package/dist/commands/stats.js.map +0 -1
  81. package/dist/commands/task.d.ts +0 -5
  82. package/dist/commands/task.d.ts.map +0 -1
  83. package/dist/commands/task.js +0 -559
  84. package/dist/commands/task.js.map +0 -1
  85. package/dist/commands/today.d.ts +0 -18
  86. package/dist/commands/today.d.ts.map +0 -1
  87. package/dist/commands/today.js +0 -108
  88. package/dist/commands/today.js.map +0 -1
  89. package/dist/commands/upcoming.d.ts +0 -17
  90. package/dist/commands/upcoming.d.ts.map +0 -1
  91. package/dist/commands/upcoming.js +0 -129
  92. package/dist/commands/upcoming.js.map +0 -1
  93. package/dist/commands/update.d.ts +0 -6
  94. package/dist/commands/update.d.ts.map +0 -1
  95. package/dist/commands/update.js +0 -90
  96. package/dist/commands/update.js.map +0 -1
  97. package/dist/commands/view.d.ts +0 -3
  98. package/dist/commands/view.d.ts.map +0 -1
  99. package/dist/commands/view.js +0 -79
  100. package/dist/commands/view.js.map +0 -1
  101. package/dist/commands/workspace.d.ts +0 -3
  102. package/dist/commands/workspace.d.ts.map +0 -1
  103. package/dist/commands/workspace.js +0 -309
  104. package/dist/commands/workspace.js.map +0 -1
  105. package/dist/index.d.ts +0 -3
  106. package/dist/index.d.ts.map +0 -1
  107. package/dist/index.js +0 -176
  108. package/dist/index.js.map +0 -1
  109. package/dist/lib/api/core.d.ts +0 -13
  110. package/dist/lib/api/core.d.ts.map +0 -1
  111. package/dist/lib/api/core.js +0 -170
  112. package/dist/lib/api/core.js.map +0 -1
  113. package/dist/lib/api/filters.d.ts +0 -19
  114. package/dist/lib/api/filters.d.ts.map +0 -1
  115. package/dist/lib/api/filters.js +0 -60
  116. package/dist/lib/api/filters.js.map +0 -1
  117. package/dist/lib/api/notifications.d.ts +0 -33
  118. package/dist/lib/api/notifications.d.ts.map +0 -1
  119. package/dist/lib/api/notifications.js +0 -94
  120. package/dist/lib/api/notifications.js.map +0 -1
  121. package/dist/lib/api/reminders.d.ts +0 -30
  122. package/dist/lib/api/reminders.d.ts.map +0 -1
  123. package/dist/lib/api/reminders.js +0 -65
  124. package/dist/lib/api/reminders.js.map +0 -1
  125. package/dist/lib/api/stats.d.ts +0 -41
  126. package/dist/lib/api/stats.d.ts.map +0 -1
  127. package/dist/lib/api/stats.js +0 -74
  128. package/dist/lib/api/stats.js.map +0 -1
  129. package/dist/lib/api/uploads.d.ts +0 -10
  130. package/dist/lib/api/uploads.d.ts.map +0 -1
  131. package/dist/lib/api/uploads.js +0 -31
  132. package/dist/lib/api/uploads.js.map +0 -1
  133. package/dist/lib/api/user-settings.d.ts +0 -34
  134. package/dist/lib/api/user-settings.d.ts.map +0 -1
  135. package/dist/lib/api/user-settings.js +0 -58
  136. package/dist/lib/api/user-settings.js.map +0 -1
  137. package/dist/lib/api/workspaces.d.ts +0 -23
  138. package/dist/lib/api/workspaces.d.ts.map +0 -1
  139. package/dist/lib/api/workspaces.js +0 -61
  140. package/dist/lib/api/workspaces.js.map +0 -1
  141. package/dist/lib/auth.d.ts +0 -14
  142. package/dist/lib/auth.d.ts.map +0 -1
  143. package/dist/lib/auth.js +0 -182
  144. package/dist/lib/auth.js.map +0 -1
  145. package/dist/lib/browser.d.ts +0 -2
  146. package/dist/lib/browser.d.ts.map +0 -1
  147. package/dist/lib/browser.js +0 -6
  148. package/dist/lib/browser.js.map +0 -1
  149. package/dist/lib/collaborators.d.ts +0 -29
  150. package/dist/lib/collaborators.d.ts.map +0 -1
  151. package/dist/lib/collaborators.js +0 -184
  152. package/dist/lib/collaborators.js.map +0 -1
  153. package/dist/lib/completion.d.ts +0 -41
  154. package/dist/lib/completion.d.ts.map +0 -1
  155. package/dist/lib/completion.js +0 -191
  156. package/dist/lib/completion.js.map +0 -1
  157. package/dist/lib/dates.d.ts +0 -16
  158. package/dist/lib/dates.d.ts.map +0 -1
  159. package/dist/lib/dates.js +0 -45
  160. package/dist/lib/dates.js.map +0 -1
  161. package/dist/lib/duration.d.ts +0 -14
  162. package/dist/lib/duration.d.ts.map +0 -1
  163. package/dist/lib/duration.js +0 -58
  164. package/dist/lib/duration.js.map +0 -1
  165. package/dist/lib/logger.d.ts +0 -42
  166. package/dist/lib/logger.d.ts.map +0 -1
  167. package/dist/lib/logger.js +0 -227
  168. package/dist/lib/logger.js.map +0 -1
  169. package/dist/lib/markdown.d.ts +0 -3
  170. package/dist/lib/markdown.d.ts.map +0 -1
  171. package/dist/lib/markdown.js +0 -22
  172. package/dist/lib/markdown.js.map +0 -1
  173. package/dist/lib/oauth-server.d.ts +0 -6
  174. package/dist/lib/oauth-server.d.ts.map +0 -1
  175. package/dist/lib/oauth-server.js +0 -773
  176. package/dist/lib/oauth-server.js.map +0 -1
  177. package/dist/lib/oauth.d.ts +0 -3
  178. package/dist/lib/oauth.d.ts.map +0 -1
  179. package/dist/lib/oauth.js +0 -38
  180. package/dist/lib/oauth.js.map +0 -1
  181. package/dist/lib/options.d.ts +0 -16
  182. package/dist/lib/options.d.ts.map +0 -1
  183. package/dist/lib/options.js +0 -2
  184. package/dist/lib/options.js.map +0 -1
  185. package/dist/lib/output.d.ts +0 -39
  186. package/dist/lib/output.d.ts.map +0 -1
  187. package/dist/lib/output.js +0 -311
  188. package/dist/lib/output.js.map +0 -1
  189. package/dist/lib/pagination.d.ts +0 -23
  190. package/dist/lib/pagination.d.ts.map +0 -1
  191. package/dist/lib/pagination.js +0 -26
  192. package/dist/lib/pagination.js.map +0 -1
  193. package/dist/lib/pkce.d.ts +0 -4
  194. package/dist/lib/pkce.d.ts.map +0 -1
  195. package/dist/lib/pkce.js +0 -19
  196. package/dist/lib/pkce.js.map +0 -1
  197. package/dist/lib/progress.d.ts +0 -29
  198. package/dist/lib/progress.d.ts.map +0 -1
  199. package/dist/lib/progress.js +0 -101
  200. package/dist/lib/progress.js.map +0 -1
  201. package/dist/lib/refs.d.ts +0 -52
  202. package/dist/lib/refs.d.ts.map +0 -1
  203. package/dist/lib/refs.js +0 -225
  204. package/dist/lib/refs.js.map +0 -1
  205. package/dist/lib/secure-store.d.ts +0 -11
  206. package/dist/lib/secure-store.d.ts.map +0 -1
  207. package/dist/lib/secure-store.js +0 -57
  208. package/dist/lib/secure-store.js.map +0 -1
  209. package/dist/lib/skills/content.d.ts +0 -4
  210. package/dist/lib/skills/content.d.ts.map +0 -1
  211. package/dist/lib/skills/content.js +0 -415
  212. package/dist/lib/skills/content.js.map +0 -1
  213. package/dist/lib/skills/create-installer.d.ts +0 -9
  214. package/dist/lib/skills/create-installer.d.ts.map +0 -1
  215. package/dist/lib/skills/create-installer.js +0 -77
  216. package/dist/lib/skills/create-installer.js.map +0 -1
  217. package/dist/lib/skills/index.d.ts +0 -6
  218. package/dist/lib/skills/index.d.ts.map +0 -1
  219. package/dist/lib/skills/index.js +0 -40
  220. package/dist/lib/skills/index.js.map +0 -1
  221. package/dist/lib/skills/types.d.ts +0 -11
  222. package/dist/lib/skills/types.d.ts.map +0 -1
  223. package/dist/lib/skills/types.js +0 -2
  224. package/dist/lib/skills/types.js.map +0 -1
  225. package/dist/lib/skills/update-installed.d.ts +0 -7
  226. package/dist/lib/skills/update-installed.d.ts.map +0 -1
  227. package/dist/lib/skills/update-installed.js +0 -23
  228. package/dist/lib/skills/update-installed.js.map +0 -1
  229. package/dist/lib/spinner.d.ts +0 -23
  230. package/dist/lib/spinner.d.ts.map +0 -1
  231. package/dist/lib/spinner.js +0 -138
  232. package/dist/lib/spinner.js.map +0 -1
  233. package/dist/lib/stdin.d.ts +0 -2
  234. package/dist/lib/stdin.d.ts.map +0 -1
  235. package/dist/lib/stdin.js +0 -12
  236. package/dist/lib/stdin.js.map +0 -1
  237. package/dist/lib/task-list.d.ts +0 -31
  238. package/dist/lib/task-list.d.ts.map +0 -1
  239. package/dist/lib/task-list.js +0 -271
  240. package/dist/lib/task-list.js.map +0 -1
  241. package/dist/lib/urls.d.ts +0 -8
  242. package/dist/lib/urls.d.ts.map +0 -1
  243. package/dist/lib/urls.js +0 -26
  244. package/dist/lib/urls.js.map +0 -1
  245. package/dist/postinstall.d.ts +0 -2
  246. package/dist/postinstall.d.ts.map +0 -1
  247. package/dist/postinstall.js +0 -3
  248. package/dist/postinstall.js.map +0 -1
@@ -1,10 +0,0 @@
1
- export interface UploadResult {
2
- fileName: string;
3
- fileSize: number;
4
- fileType: string;
5
- fileUrl: string;
6
- resourceType: string;
7
- uploadState: string;
8
- }
9
- export declare function uploadFile(filePath: string): Promise<UploadResult>;
10
- //# sourceMappingURL=uploads.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uploads.d.ts","sourceRoot":"","sources":["../../../src/lib/api/uploads.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACtB;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiCxE"}
@@ -1,31 +0,0 @@
1
- import { getApiToken } from '../auth.js';
2
- export async function uploadFile(filePath) {
3
- const fs = await import('node:fs');
4
- const path = await import('node:path');
5
- const token = await getApiToken();
6
- const fileName = path.basename(filePath);
7
- const fileBuffer = fs.readFileSync(filePath);
8
- const formData = new FormData();
9
- formData.append('file_name', fileName);
10
- formData.append('file', new Blob([fileBuffer]), fileName);
11
- const response = await fetch('https://api.todoist.com/api/v1/uploads', {
12
- method: 'POST',
13
- headers: {
14
- Authorization: `Bearer ${token}`,
15
- },
16
- body: formData,
17
- });
18
- if (!response.ok) {
19
- throw new Error(`Upload failed: ${response.status} ${response.statusText}`);
20
- }
21
- const data = await response.json();
22
- return {
23
- fileName: data.file_name,
24
- fileSize: data.file_size,
25
- fileType: data.file_type,
26
- fileUrl: data.file_url,
27
- resourceType: data.resource_type,
28
- uploadState: data.upload_state,
29
- };
30
- }
31
- //# sourceMappingURL=uploads.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../../src/lib/api/uploads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAWxC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC7C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;IAEtC,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAA;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAE5C,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IAEzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,wCAAwC,EAAE;QACnE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,KAAK,EAAE;SACnC;QACD,IAAI,EAAE,QAAQ;KACjB,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IAC/E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,OAAO;QACH,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,WAAW,EAAE,IAAI,CAAC,YAAY;KACjC,CAAA;AACL,CAAC"}
@@ -1,34 +0,0 @@
1
- import { type DateFormat, type DayOfWeek, type TimeFormat } from '@doist/todoist-api-typescript';
2
- export interface UserSettings {
3
- timezone: string;
4
- timeFormat: TimeFormat;
5
- dateFormat: DateFormat;
6
- startDay: DayOfWeek;
7
- theme: number;
8
- autoReminder: number;
9
- nextWeek: DayOfWeek;
10
- startPage: string;
11
- reminderPush: boolean;
12
- reminderDesktop: boolean;
13
- reminderEmail: boolean;
14
- completedSoundDesktop: boolean;
15
- completedSoundMobile: boolean;
16
- }
17
- export declare function fetchUserSettings(): Promise<UserSettings>;
18
- export interface UpdateUserSettingsArgs {
19
- timezone?: string;
20
- timeFormat?: TimeFormat;
21
- dateFormat?: DateFormat;
22
- startDay?: DayOfWeek;
23
- theme?: number;
24
- autoReminder?: number;
25
- nextWeek?: DayOfWeek;
26
- startPage?: string;
27
- reminderPush?: boolean;
28
- reminderDesktop?: boolean;
29
- reminderEmail?: boolean;
30
- completedSoundDesktop?: boolean;
31
- completedSoundMobile?: boolean;
32
- }
33
- export declare function updateUserSettings(args: UpdateUserSettingsArgs): Promise<void>;
34
- //# sourceMappingURL=user-settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-settings.d.ts","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EAIlB,MAAM,+BAA+B,CAAA;AAGtC,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,SAAS,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,oBAAoB,EAAE,OAAO,CAAA;CAChC;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CAyB/D;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCpF"}
@@ -1,58 +0,0 @@
1
- import { createCommand, DATE_FORMAT_TO_API, DAY_OF_WEEK_TO_API, TIME_FORMAT_TO_API, } from '@doist/todoist-api-typescript';
2
- import { getApi, pickDefined } from './core.js';
3
- export async function fetchUserSettings() {
4
- const api = await getApi();
5
- const response = await api.sync({
6
- resourceTypes: ['user', 'user_settings'],
7
- syncToken: '*',
8
- });
9
- const user = response.user;
10
- const settings = response.userSettings;
11
- return {
12
- timezone: user?.tzInfo?.timezone ?? 'UTC',
13
- timeFormat: user?.timeFormat ?? '24h',
14
- dateFormat: user?.dateFormat ?? 'DD/MM/YYYY',
15
- startDay: user?.startDay ?? 'Monday',
16
- theme: Number(user?.themeId ?? 0),
17
- autoReminder: user?.autoReminder ?? 0,
18
- nextWeek: user?.nextWeek ?? 'Monday',
19
- startPage: user?.startPage ?? 'today',
20
- reminderPush: settings?.reminderPush ?? true,
21
- reminderDesktop: settings?.reminderDesktop ?? true,
22
- reminderEmail: settings?.reminderEmail ?? false,
23
- completedSoundDesktop: settings?.completedSoundDesktop ?? true,
24
- completedSoundMobile: settings?.completedSoundMobile ?? true,
25
- };
26
- }
27
- export async function updateUserSettings(args) {
28
- const commands = [];
29
- const userArgs = pickDefined({
30
- timezone: args.timezone,
31
- time_format: args.timeFormat !== undefined ? TIME_FORMAT_TO_API[args.timeFormat] : undefined,
32
- date_format: args.dateFormat !== undefined ? DATE_FORMAT_TO_API[args.dateFormat] : undefined,
33
- start_day: args.startDay !== undefined ? DAY_OF_WEEK_TO_API[args.startDay] : undefined,
34
- theme_id: args.theme !== undefined ? String(args.theme) : undefined,
35
- auto_reminder: args.autoReminder,
36
- next_week: args.nextWeek !== undefined ? DAY_OF_WEEK_TO_API[args.nextWeek] : undefined,
37
- start_page: args.startPage,
38
- });
39
- if (Object.keys(userArgs).length > 0) {
40
- commands.push(createCommand('user_update', userArgs));
41
- }
42
- const settingsArgs = pickDefined({
43
- reminderPush: args.reminderPush,
44
- reminderDesktop: args.reminderDesktop,
45
- reminderEmail: args.reminderEmail,
46
- completedSoundDesktop: args.completedSoundDesktop,
47
- completedSoundMobile: args.completedSoundMobile,
48
- });
49
- if (Object.keys(settingsArgs).length > 0) {
50
- commands.push(createCommand('user_settings_update', settingsArgs));
51
- }
52
- if (commands.length === 0) {
53
- throw new Error('No settings to update');
54
- }
55
- const api = await getApi();
56
- await api.sync({ commands });
57
- }
58
- //# sourceMappingURL=user-settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-settings.js","sourceRoot":"","sources":["../../../src/lib/api/user-settings.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- export interface Workspace {
2
- id: string;
3
- name: string;
4
- role: 'ADMIN' | 'MEMBER' | 'GUEST';
5
- plan: string;
6
- domainName: string | null;
7
- currentMemberCount: number;
8
- currentActiveProjects: number;
9
- memberCountByType: {
10
- adminCount: number;
11
- memberCount: number;
12
- guestCount: number;
13
- };
14
- }
15
- export interface WorkspaceFolder {
16
- id: string;
17
- name: string;
18
- workspaceId: string;
19
- }
20
- export declare function fetchWorkspaces(): Promise<Workspace[]>;
21
- export declare function fetchWorkspaceFolders(): Promise<WorkspaceFolder[]>;
22
- export declare function clearWorkspaceCache(): void;
23
- //# sourceMappingURL=workspaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../../src/lib/api/workspaces.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE;QACf,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;KACrB,CAAA;CACJ;AAED,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACtB;AAsDD,wBAAsB,eAAe,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAG5D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAOxE;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
@@ -1,61 +0,0 @@
1
- import { getApi } from './core.js';
2
- let workspaceCache = null;
3
- let folderCache = null;
4
- function toWorkspace(w) {
5
- const raw = w;
6
- const memberCounts = raw.member_count_by_type;
7
- return {
8
- id: String(w.id),
9
- name: w.name,
10
- role: w.role,
11
- plan: w.plan,
12
- domainName: w.domainName ?? null,
13
- currentMemberCount: w.currentMemberCount ?? 0,
14
- currentActiveProjects: w.currentActiveProjects ?? 0,
15
- memberCountByType: {
16
- adminCount: memberCounts?.admin_count ?? 0,
17
- memberCount: memberCounts?.member_count ?? 0,
18
- guestCount: memberCounts?.guest_count ?? 0,
19
- },
20
- };
21
- }
22
- function toFolder(f) {
23
- return {
24
- id: String(f.id),
25
- name: f.name,
26
- workspaceId: f.workspaceId,
27
- };
28
- }
29
- async function fetchWorkspaceData() {
30
- if (workspaceCache !== null && folderCache !== null) {
31
- return { workspaces: workspaceCache, folders: folderCache };
32
- }
33
- const api = await getApi();
34
- const response = await api.sync({
35
- resourceTypes: ['workspaces', 'folders'],
36
- syncToken: '*',
37
- });
38
- const workspaces = (response.workspaces ?? []).map(toWorkspace);
39
- const folders = (response.folders ?? []).map(toFolder);
40
- workspaceCache = workspaces;
41
- folderCache = folders;
42
- return { workspaces, folders };
43
- }
44
- export async function fetchWorkspaces() {
45
- const { workspaces } = await fetchWorkspaceData();
46
- return workspaces;
47
- }
48
- export async function fetchWorkspaceFolders() {
49
- try {
50
- const { folders } = await fetchWorkspaceData();
51
- return folders;
52
- }
53
- catch {
54
- return [];
55
- }
56
- }
57
- export function clearWorkspaceCache() {
58
- workspaceCache = null;
59
- folderCache = null;
60
- }
61
- //# sourceMappingURL=workspaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../src/lib/api/workspaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAuBlC,IAAI,cAAc,GAAuB,IAAI,CAAA;AAC7C,IAAI,WAAW,GAA6B,IAAI,CAAA;AAEhD,SAAS,WAAW,CAAC,CAAgB;IACjC,MAAM,GAAG,GAAG,CAAuC,CAAA;IACnD,MAAM,YAAY,GAAG,GAAG,CAAC,oBAA0D,CAAA;IACnF,OAAO;QACH,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;QAChC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,IAAI,CAAC;QAC7C,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,IAAI,CAAC;QACnD,iBAAiB,EAAE;YACf,UAAU,EAAE,YAAY,EAAE,WAAW,IAAI,CAAC;YAC1C,WAAW,EAAE,YAAY,EAAE,YAAY,IAAI,CAAC;YAC5C,UAAU,EAAE,YAAY,EAAE,WAAW,IAAI,CAAC;SAC7C;KACJ,CAAA;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,CAAY;IAC1B,OAAO;QACH,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;KAC7B,CAAA;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB;IAI7B,IAAI,cAAc,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;IAC/D,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC;QAC5B,aAAa,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;QACxC,SAAS,EAAE,GAAG;KACjB,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAEtD,cAAc,GAAG,UAAU,CAAA;IAC3B,WAAW,GAAG,OAAO,CAAA;IACrB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACjC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAA;IACjD,OAAO,UAAU,CAAA;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACvC,IAAI,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAA;QAC9C,OAAO,OAAO,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAA;IACb,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB;IAC/B,cAAc,GAAG,IAAI,CAAA;IACrB,WAAW,GAAG,IAAI,CAAA;AACtB,CAAC"}
@@ -1,14 +0,0 @@
1
- export declare const CONFIG_PATH: string;
2
- export declare const TOKEN_ENV_VAR = "TODOIST_API_TOKEN";
3
- export declare class NoTokenError extends Error {
4
- constructor();
5
- }
6
- export type TokenStorageLocation = 'secure-store' | 'config-file';
7
- export interface TokenStorageResult {
8
- storage: TokenStorageLocation;
9
- warning?: string;
10
- }
11
- export declare function getApiToken(): Promise<string>;
12
- export declare function saveApiToken(token: string): Promise<TokenStorageResult>;
13
- export declare function clearApiToken(): Promise<TokenStorageResult>;
14
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,WAAW,QAA2D,CAAA;AACnF,eAAO,MAAM,aAAa,sBAAsB,CAAA;AAEhD,qBAAa,YAAa,SAAQ,KAAK;;CAOtC;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,aAAa,CAAA;AAEjE,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAOD,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAmEnD;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4B7E;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAmBjE"}
package/dist/lib/auth.js DELETED
@@ -1,182 +0,0 @@
1
- import { mkdir, readFile, unlink, writeFile } from 'node:fs/promises';
2
- import { homedir } from 'node:os';
3
- import { dirname, join } from 'node:path';
4
- import { createSecureStore, SecureStoreUnavailableError, SECURE_STORE_DESCRIPTION, } from './secure-store.js';
5
- export const CONFIG_PATH = join(homedir(), '.config', 'todoist-cli', 'config.json');
6
- export const TOKEN_ENV_VAR = 'TODOIST_API_TOKEN';
7
- export class NoTokenError extends Error {
8
- constructor() {
9
- super(`No API token found. Set ${TOKEN_ENV_VAR} or run \`td auth login\` or \`td auth token <token>\`.`);
10
- this.name = 'NoTokenError';
11
- }
12
- }
13
- export async function getApiToken() {
14
- // Priority 1: Environment variable
15
- const envToken = process.env[TOKEN_ENV_VAR];
16
- if (envToken) {
17
- return envToken;
18
- }
19
- const config = await readConfig();
20
- const configToken = getConfigToken(config);
21
- const secureStore = createSecureStore();
22
- if (configToken) {
23
- try {
24
- await secureStore.setSecret(configToken);
25
- const cleanupWarning = await cleanupAuthFallbackState(config, 'Token was migrated to secure storage,');
26
- if (cleanupWarning) {
27
- warn(cleanupWarning);
28
- }
29
- }
30
- catch (error) {
31
- if (error instanceof SecureStoreUnavailableError) {
32
- warnSecureStoreFallback('using plaintext token from');
33
- }
34
- else {
35
- throw error;
36
- }
37
- }
38
- return configToken;
39
- }
40
- if (config.pendingSecureStoreClear) {
41
- try {
42
- await secureStore.deleteSecret();
43
- const cleanupWarning = await cleanupAuthFallbackState(config, 'Secure-store token was removed,');
44
- if (cleanupWarning) {
45
- warn(cleanupWarning);
46
- }
47
- }
48
- catch (error) {
49
- if (!(error instanceof SecureStoreUnavailableError)) {
50
- throw error;
51
- }
52
- }
53
- throw new NoTokenError();
54
- }
55
- try {
56
- const storedToken = await secureStore.getSecret();
57
- if (storedToken?.trim()) {
58
- return storedToken;
59
- }
60
- }
61
- catch (error) {
62
- if (error instanceof SecureStoreUnavailableError) {
63
- warnSecureStoreFallback('using plaintext token from');
64
- }
65
- else {
66
- throw error;
67
- }
68
- }
69
- throw new Error(`No API token found. Set ${TOKEN_ENV_VAR} or run \`td auth login\` or \`td auth token <token>\`.`);
70
- }
71
- export async function saveApiToken(token) {
72
- // Validate token (non-empty, reasonable length)
73
- if (!token || token.trim().length < 10) {
74
- throw new Error('Invalid token: Token must be at least 10 characters');
75
- }
76
- const trimmedToken = token.trim();
77
- const secureStore = createSecureStore();
78
- try {
79
- await secureStore.setSecret(trimmedToken);
80
- const existingConfig = await readConfig();
81
- const warning = await cleanupAuthFallbackState(existingConfig, 'Token was stored securely,');
82
- return warning ? { storage: 'secure-store', warning } : { storage: 'secure-store' };
83
- }
84
- catch (error) {
85
- if (!(error instanceof SecureStoreUnavailableError)) {
86
- throw error;
87
- }
88
- }
89
- const config = await readConfig();
90
- config.api_token = trimmedToken;
91
- delete config.pendingSecureStoreClear;
92
- await writeConfig(config);
93
- return {
94
- storage: 'config-file',
95
- warning: buildFallbackWarning('token saved as plaintext in'),
96
- };
97
- }
98
- export async function clearApiToken() {
99
- const config = await readConfig();
100
- const secureStore = createSecureStore();
101
- try {
102
- await secureStore.deleteSecret();
103
- const warning = await cleanupAuthFallbackState(config, 'Secure-store token was removed,');
104
- return warning ? { storage: 'secure-store', warning } : { storage: 'secure-store' };
105
- }
106
- catch (error) {
107
- if (!(error instanceof SecureStoreUnavailableError)) {
108
- throw error;
109
- }
110
- }
111
- await writeConfig(withPendingSecureStoreClear(config));
112
- return {
113
- storage: 'config-file',
114
- warning: buildFallbackWarning('local auth state cleared in'),
115
- };
116
- }
117
- async function readConfig() {
118
- try {
119
- const content = await readFile(CONFIG_PATH, 'utf-8');
120
- const parsed = JSON.parse(content);
121
- return isObject(parsed) ? parsed : {};
122
- }
123
- catch {
124
- return {};
125
- }
126
- }
127
- async function writeConfig(config) {
128
- if (Object.keys(config).length === 0) {
129
- try {
130
- await unlink(CONFIG_PATH);
131
- }
132
- catch (error) {
133
- if (!isMissingFileError(error)) {
134
- throw error;
135
- }
136
- }
137
- return;
138
- }
139
- await mkdir(dirname(CONFIG_PATH), { recursive: true });
140
- await writeFile(CONFIG_PATH, `${JSON.stringify(config, null, 2)}\n`);
141
- }
142
- async function cleanupAuthFallbackState(config, warningPrefix) {
143
- try {
144
- await writeConfig(withoutAuthFallbackState(config));
145
- return undefined;
146
- }
147
- catch (error) {
148
- return buildConfigCleanupWarning(warningPrefix, error);
149
- }
150
- }
151
- function getConfigToken(config) {
152
- return typeof config.api_token === 'string' && config.api_token.trim()
153
- ? config.api_token.trim()
154
- : null;
155
- }
156
- function withoutAuthFallbackState(config) {
157
- const { api_token: _token, pendingSecureStoreClear: _pending, ...rest } = config;
158
- return rest;
159
- }
160
- function withPendingSecureStoreClear(config) {
161
- return { ...withoutAuthFallbackState(config), pendingSecureStoreClear: true };
162
- }
163
- function isObject(value) {
164
- return typeof value === 'object' && value !== null && !Array.isArray(value);
165
- }
166
- function isMissingFileError(error) {
167
- return error instanceof Error && 'code' in error && error.code === 'ENOENT';
168
- }
169
- function buildFallbackWarning(action) {
170
- return `${SECURE_STORE_DESCRIPTION} unavailable; ${action} ${CONFIG_PATH}`;
171
- }
172
- function buildConfigCleanupWarning(prefix, error) {
173
- const detail = error instanceof Error && error.message ? ` (${error.message})` : '';
174
- return `${prefix} but could not remove legacy plaintext token from ${CONFIG_PATH}${detail}`;
175
- }
176
- function warn(message) {
177
- console.error(`Warning: ${message}`);
178
- }
179
- function warnSecureStoreFallback(action) {
180
- warn(buildFallbackWarning(action));
181
- }
182
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function openInBrowser(url: string): Promise<void>;
2
- //# sourceMappingURL=browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/lib/browser.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D"}
@@ -1,6 +0,0 @@
1
- import open from 'open';
2
- export async function openInBrowser(url) {
3
- console.log(`Opening ${url}`);
4
- await open(url);
5
- }
6
- //# sourceMappingURL=browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/lib/browser.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAA;IAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,CAAA;AACnB,CAAC"}
@@ -1,29 +0,0 @@
1
- import type { TodoistApi } from '@doist/todoist-api-typescript';
2
- import { type Project, type Task } from './api/core.js';
3
- export interface CollaboratorInfo {
4
- id: string;
5
- name: string;
6
- email: string;
7
- }
8
- export declare class CollaboratorCache {
9
- private workspaceUsers;
10
- private projectCollaborators;
11
- preload(api: TodoistApi, tasks: Task[], projects: Map<string, Project>): Promise<void>;
12
- private fetchWorkspaceUsers;
13
- private fetchProjectCollaborators;
14
- getUserName({ userId, projectId, projects, }: {
15
- userId: string;
16
- projectId: string;
17
- projects: Map<string, Project>;
18
- }): string | null;
19
- }
20
- export declare function formatUserShortName(fullName: string): string;
21
- export interface FormatAssigneeOptions {
22
- userId: string | null;
23
- projectId: string;
24
- projects: Map<string, Project>;
25
- cache: CollaboratorCache;
26
- }
27
- export declare function formatAssignee({ userId, projectId, projects, cache, }: FormatAssigneeOptions): string | null;
28
- export declare function resolveAssigneeId(api: TodoistApi, ref: string, project: Project): Promise<string>;
29
- //# sourceMappingURL=collaborators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collaborators.d.ts","sourceRoot":"","sources":["../../src/lib/collaborators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAwC,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAA;AAI7F,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,cAAc,CAAmD;IACzE,OAAO,CAAC,oBAAoB,CAAmD;IAEzE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAyC9E,mBAAmB;YA2BnB,yBAAyB;IAsBvC,WAAW,CAAC,EACR,MAAM,EACN,SAAS,EACT,QAAQ,GACX,EAAE;QACC,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACjC,GAAG,MAAM,GAAG,IAAI;CAcpB;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,EAAE,iBAAiB,CAAA;CAC3B;AAED,wBAAgB,cAAc,CAAC,EAC3B,MAAM,EACN,SAAS,EACT,QAAQ,EACR,KAAK,GACR,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAQvC;AA0DD,wBAAsB,iBAAiB,CACnC,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC,CA+BjB"}