notion-mcp-server 1.0.0 → 2.4.2

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 (95) hide show
  1. package/README.md +383 -192
  2. package/build/config/index.js +3 -1
  3. package/build/dispatch/concurrency.js +15 -0
  4. package/build/dispatch/idempotency.js +38 -0
  5. package/build/dispatch/index.js +175 -0
  6. package/build/dispatch/rate-limit.js +56 -0
  7. package/build/dispatch/retry.js +97 -0
  8. package/build/index.js +1 -1
  9. package/build/markdown/parse.js +265 -0
  10. package/build/operations/blocks.js +331 -0
  11. package/build/operations/comments.js +191 -0
  12. package/build/operations/data-sources.js +85 -0
  13. package/build/operations/databases.js +345 -0
  14. package/build/operations/files.js +239 -0
  15. package/build/operations/index.js +19 -0
  16. package/build/operations/pages.js +486 -0
  17. package/build/operations/registry.js +16 -0
  18. package/build/operations/users.js +101 -0
  19. package/build/prompts/index.js +105 -0
  20. package/build/schema/blocks.js +19 -77
  21. package/build/schema/database.js +27 -86
  22. package/build/schema/emit.js +68 -0
  23. package/build/schema/file.js +1 -1
  24. package/build/schema/filter-dsl.js +333 -0
  25. package/build/schema/icon.js +1 -1
  26. package/build/schema/page-properties.js +17 -3
  27. package/build/schema/page.js +12 -88
  28. package/build/schema/refs.js +16 -0
  29. package/build/schema/rich-text.js +1 -1
  30. package/build/server/index.js +15 -2
  31. package/build/services/auth.js +19 -0
  32. package/build/services/notion.js +14 -17
  33. package/build/tools/index.js +119 -51
  34. package/build/utils/error.js +125 -86
  35. package/build/utils/handler.js +11 -0
  36. package/build/utils/learning-error.js +40 -0
  37. package/build/utils/notion-types.js +16 -0
  38. package/build/utils/paginate.js +35 -0
  39. package/build/utils/schema-slice.js +156 -0
  40. package/build/utils/slim.js +269 -0
  41. package/package.json +13 -7
  42. package/build/resources/imageList.js +0 -62
  43. package/build/resources/index.js +0 -1
  44. package/build/resources/predictionList.js +0 -43
  45. package/build/resources/svgList.js +0 -69
  46. package/build/schema/comments.js +0 -34
  47. package/build/schema/notion.js +0 -57
  48. package/build/schema/richText.js +0 -757
  49. package/build/schema/tools.js +0 -17
  50. package/build/schema/users.js +0 -13
  51. package/build/services/replicate.js +0 -23
  52. package/build/tools/appendBlockChildren.js +0 -25
  53. package/build/tools/batchAppendBlockChildren.js +0 -33
  54. package/build/tools/batchDeleteBlocks.js +0 -32
  55. package/build/tools/batchMixedOperations.js +0 -58
  56. package/build/tools/batchUpdateBlocks.js +0 -33
  57. package/build/tools/comments.js +0 -62
  58. package/build/tools/createDatabase.js +0 -18
  59. package/build/tools/createPage.js +0 -18
  60. package/build/tools/createPrediction.js +0 -28
  61. package/build/tools/deleteBlock.js +0 -24
  62. package/build/tools/formatRichText.js +0 -83
  63. package/build/tools/generateImage.js +0 -48
  64. package/build/tools/generateImageVariants.js +0 -105
  65. package/build/tools/generateMultipleImages.js +0 -60
  66. package/build/tools/generateSVG.js +0 -43
  67. package/build/tools/getPrediction.js +0 -22
  68. package/build/tools/predictionList.js +0 -30
  69. package/build/tools/queryDatabase.js +0 -22
  70. package/build/tools/retrieveBlock.js +0 -24
  71. package/build/tools/retrieveBlockChildren.js +0 -32
  72. package/build/tools/searchPage.js +0 -24
  73. package/build/tools/updateBlock.js +0 -25
  74. package/build/tools/updateDatabase.js +0 -18
  75. package/build/tools/updatePage.js +0 -40
  76. package/build/tools/updatePageProperties.js +0 -21
  77. package/build/tools/users.js +0 -62
  78. package/build/types/blocks.js +0 -11
  79. package/build/types/comments.js +0 -6
  80. package/build/types/database.js +0 -5
  81. package/build/types/notion.js +0 -1
  82. package/build/types/page.js +0 -7
  83. package/build/types/richText.js +0 -1
  84. package/build/types/tools.js +0 -1
  85. package/build/types/users.js +0 -5
  86. package/build/utils/blob.js +0 -5
  87. package/build/utils/image.js +0 -34
  88. package/build/utils/index.js +0 -1
  89. package/build/utils/richText.js +0 -174
  90. package/build/validation/blocks.js +0 -568
  91. package/build/validation/notion.js +0 -51
  92. package/build/validation/page.js +0 -262
  93. package/build/validation/richText.js +0 -744
  94. package/build/validation/tools.js +0 -16
  95. /package/build/{types/index.js → operations/types.js} +0 -0
@@ -1,744 +0,0 @@
1
- import { z } from "zod";
2
- // Common properties for all rich text objects
3
- const richTextBaseSchema = z.object({
4
- plain_text: z.string(),
5
- href: z.string().nullable().optional(),
6
- annotations: z.object({
7
- bold: z.boolean(),
8
- italic: z.boolean(),
9
- strikethrough: z.boolean(),
10
- underline: z.boolean(),
11
- code: z.boolean(),
12
- color: z.enum([
13
- "blue",
14
- "blue_background",
15
- "brown",
16
- "brown_background",
17
- "default",
18
- "gray",
19
- "gray_background",
20
- "green",
21
- "green_background",
22
- "orange",
23
- "orange_background",
24
- "pink",
25
- "pink_background",
26
- "purple",
27
- "purple_background",
28
- "red",
29
- "red_background",
30
- "yellow",
31
- "yellow_background",
32
- ]),
33
- }),
34
- });
35
- // ---- Type-specific schemas ----
36
- // Text rich text object
37
- export const textRichTextSchema = richTextBaseSchema.extend({
38
- type: z.literal("text"),
39
- text: z.object({
40
- content: z.string(),
41
- link: z.object({ url: z.string().url() }).nullable().optional(),
42
- }),
43
- });
44
- // Mention rich text objects
45
- // User mention
46
- export const userMentionSchema = richTextBaseSchema.extend({
47
- type: z.literal("mention"),
48
- mention: z.object({
49
- type: z.literal("user"),
50
- user: z.object({
51
- id: z.string(),
52
- object: z.literal("user").optional(),
53
- name: z.string().optional(),
54
- avatar_url: z.string().optional().nullable(),
55
- email: z.string().optional(),
56
- }),
57
- }),
58
- });
59
- // Page mention
60
- export const pageMentionSchema = richTextBaseSchema.extend({
61
- type: z.literal("mention"),
62
- mention: z.object({
63
- type: z.literal("page"),
64
- page: z.object({
65
- id: z.string(),
66
- }),
67
- }),
68
- });
69
- // Database mention
70
- export const databaseMentionSchema = richTextBaseSchema.extend({
71
- type: z.literal("mention"),
72
- mention: z.object({
73
- type: z.literal("database"),
74
- database: z.object({
75
- id: z.string(),
76
- }),
77
- }),
78
- });
79
- // Date mention
80
- export const dateMentionSchema = richTextBaseSchema.extend({
81
- type: z.literal("mention"),
82
- mention: z.object({
83
- type: z.literal("date"),
84
- date: z.object({
85
- start: z.string(),
86
- end: z.string().optional().nullable(),
87
- time_zone: z
88
- .enum([
89
- "Africa/Abidjan",
90
- "Africa/Accra",
91
- "Africa/Addis_Ababa",
92
- "Africa/Algiers",
93
- "Africa/Asmara",
94
- "Africa/Asmera",
95
- "Africa/Bamako",
96
- "Africa/Bangui",
97
- "Africa/Banjul",
98
- "Africa/Bissau",
99
- "Africa/Blantyre",
100
- "Africa/Brazzaville",
101
- "Africa/Bujumbura",
102
- "Africa/Cairo",
103
- "Africa/Casablanca",
104
- "Africa/Ceuta",
105
- "Africa/Conakry",
106
- "Africa/Dakar",
107
- "Africa/Dar_es_Salaam",
108
- "Africa/Djibouti",
109
- "Africa/Douala",
110
- "Africa/El_Aaiun",
111
- "Africa/Freetown",
112
- "Africa/Gaborone",
113
- "Africa/Harare",
114
- "Africa/Johannesburg",
115
- "Africa/Juba",
116
- "Africa/Kampala",
117
- "Africa/Khartoum",
118
- "Africa/Kigali",
119
- "Africa/Kinshasa",
120
- "Africa/Lagos",
121
- "Africa/Libreville",
122
- "Africa/Lome",
123
- "Africa/Luanda",
124
- "Africa/Lubumbashi",
125
- "Africa/Lusaka",
126
- "Africa/Malabo",
127
- "Africa/Maputo",
128
- "Africa/Maseru",
129
- "Africa/Mbabane",
130
- "Africa/Mogadishu",
131
- "Africa/Monrovia",
132
- "Africa/Nairobi",
133
- "Africa/Ndjamena",
134
- "Africa/Niamey",
135
- "Africa/Nouakchott",
136
- "Africa/Ouagadougou",
137
- "Africa/Porto-Novo",
138
- "Africa/Sao_Tome",
139
- "Africa/Timbuktu",
140
- "Africa/Tripoli",
141
- "Africa/Tunis",
142
- "Africa/Windhoek",
143
- "America/Adak",
144
- "America/Anchorage",
145
- "America/Anguilla",
146
- "America/Antigua",
147
- "America/Araguaina",
148
- "America/Argentina/Buenos_Aires",
149
- "America/Argentina/Catamarca",
150
- "America/Argentina/ComodRivadavia",
151
- "America/Argentina/Cordoba",
152
- "America/Argentina/Jujuy",
153
- "America/Argentina/La_Rioja",
154
- "America/Argentina/Mendoza",
155
- "America/Argentina/Rio_Gallegos",
156
- "America/Argentina/Salta",
157
- "America/Argentina/San_Juan",
158
- "America/Argentina/San_Luis",
159
- "America/Argentina/Tucuman",
160
- "America/Argentina/Ushuaia",
161
- "America/Aruba",
162
- "America/Asuncion",
163
- "America/Atikokan",
164
- "America/Atka",
165
- "America/Bahia",
166
- "America/Bahia_Banderas",
167
- "America/Barbados",
168
- "America/Belem",
169
- "America/Belize",
170
- "America/Blanc-Sablon",
171
- "America/Boa_Vista",
172
- "America/Bogota",
173
- "America/Boise",
174
- "America/Buenos_Aires",
175
- "America/Cambridge_Bay",
176
- "America/Campo_Grande",
177
- "America/Cancun",
178
- "America/Caracas",
179
- "America/Catamarca",
180
- "America/Cayenne",
181
- "America/Cayman",
182
- "America/Chicago",
183
- "America/Chihuahua",
184
- "America/Ciudad_Juarez",
185
- "America/Coral_Harbour",
186
- "America/Cordoba",
187
- "America/Costa_Rica",
188
- "America/Creston",
189
- "America/Cuiaba",
190
- "America/Curacao",
191
- "America/Danmarkshavn",
192
- "America/Dawson",
193
- "America/Dawson_Creek",
194
- "America/Denver",
195
- "America/Detroit",
196
- "America/Dominica",
197
- "America/Edmonton",
198
- "America/Eirunepe",
199
- "America/El_Salvador",
200
- "America/Ensenada",
201
- "America/Fort_Nelson",
202
- "America/Fort_Wayne",
203
- "America/Fortaleza",
204
- "America/Glace_Bay",
205
- "America/Godthab",
206
- "America/Goose_Bay",
207
- "America/Grand_Turk",
208
- "America/Grenada",
209
- "America/Guadeloupe",
210
- "America/Guatemala",
211
- "America/Guayaquil",
212
- "America/Guyana",
213
- "America/Halifax",
214
- "America/Havana",
215
- "America/Hermosillo",
216
- "America/Indiana/Indianapolis",
217
- "America/Indiana/Knox",
218
- "America/Indiana/Marengo",
219
- "America/Indiana/Petersburg",
220
- "America/Indiana/Tell_City",
221
- "America/Indiana/Vevay",
222
- "America/Indiana/Vincennes",
223
- "America/Indiana/Winamac",
224
- "America/Indianapolis",
225
- "America/Inuvik",
226
- "America/Iqaluit",
227
- "America/Jamaica",
228
- "America/Jujuy",
229
- "America/Juneau",
230
- "America/Kentucky/Louisville",
231
- "America/Kentucky/Monticello",
232
- "America/Knox_IN",
233
- "America/Kralendijk",
234
- "America/La_Paz",
235
- "America/Lima",
236
- "America/Los_Angeles",
237
- "America/Louisville",
238
- "America/Lower_Princes",
239
- "America/Maceio",
240
- "America/Managua",
241
- "America/Manaus",
242
- "America/Marigot",
243
- "America/Martinique",
244
- "America/Matamoros",
245
- "America/Mazatlan",
246
- "America/Mendoza",
247
- "America/Menominee",
248
- "America/Merida",
249
- "America/Metlakatla",
250
- "America/Mexico_City",
251
- "America/Miquelon",
252
- "America/Moncton",
253
- "America/Monterrey",
254
- "America/Montevideo",
255
- "America/Montreal",
256
- "America/Montserrat",
257
- "America/Nassau",
258
- "America/New_York",
259
- "America/Nipigon",
260
- "America/Nome",
261
- "America/Noronha",
262
- "America/North_Dakota/Beulah",
263
- "America/North_Dakota/Center",
264
- "America/North_Dakota/New_Salem",
265
- "America/Nuuk",
266
- "America/Ojinaga",
267
- "America/Panama",
268
- "America/Pangnirtung",
269
- "America/Paramaribo",
270
- "America/Phoenix",
271
- "America/Port-au-Prince",
272
- "America/Port_of_Spain",
273
- "America/Porto_Acre",
274
- "America/Porto_Velho",
275
- "America/Puerto_Rico",
276
- "America/Punta_Arenas",
277
- "America/Rainy_River",
278
- "America/Rankin_Inlet",
279
- "America/Recife",
280
- "America/Regina",
281
- "America/Resolute",
282
- "America/Rio_Branco",
283
- "America/Rosario",
284
- "America/Santa_Isabel",
285
- "America/Santarem",
286
- "America/Santiago",
287
- "America/Santo_Domingo",
288
- "America/Sao_Paulo",
289
- "America/Scoresbysund",
290
- "America/Shiprock",
291
- "America/Sitka",
292
- "America/St_Barthelemy",
293
- "America/St_Johns",
294
- "America/St_Kitts",
295
- "America/St_Lucia",
296
- "America/St_Thomas",
297
- "America/St_Vincent",
298
- "America/Swift_Current",
299
- "America/Tegucigalpa",
300
- "America/Thule",
301
- "America/Thunder_Bay",
302
- "America/Tijuana",
303
- "America/Toronto",
304
- "America/Tortola",
305
- "America/Vancouver",
306
- "America/Virgin",
307
- "America/Whitehorse",
308
- "America/Winnipeg",
309
- "America/Yakutat",
310
- "America/Yellowknife",
311
- "Antarctica/Casey",
312
- "Antarctica/Davis",
313
- "Antarctica/DumontDUrville",
314
- "Antarctica/Macquarie",
315
- "Antarctica/Mawson",
316
- "Antarctica/McMurdo",
317
- "Antarctica/Palmer",
318
- "Antarctica/Rothera",
319
- "Antarctica/South_Pole",
320
- "Antarctica/Syowa",
321
- "Antarctica/Troll",
322
- "Antarctica/Vostok",
323
- "Arctic/Longyearbyen",
324
- "Asia/Aden",
325
- "Asia/Almaty",
326
- "Asia/Amman",
327
- "Asia/Anadyr",
328
- "Asia/Aqtau",
329
- "Asia/Aqtobe",
330
- "Asia/Ashgabat",
331
- "Asia/Ashkhabad",
332
- "Asia/Atyrau",
333
- "Asia/Baghdad",
334
- "Asia/Bahrain",
335
- "Asia/Baku",
336
- "Asia/Bangkok",
337
- "Asia/Barnaul",
338
- "Asia/Beirut",
339
- "Asia/Bishkek",
340
- "Asia/Brunei",
341
- "Asia/Calcutta",
342
- "Asia/Chita",
343
- "Asia/Choibalsan",
344
- "Asia/Chongqing",
345
- "Asia/Chungking",
346
- "Asia/Colombo",
347
- "Asia/Dacca",
348
- "Asia/Damascus",
349
- "Asia/Dhaka",
350
- "Asia/Dili",
351
- "Asia/Dubai",
352
- "Asia/Dushanbe",
353
- "Asia/Famagusta",
354
- "Asia/Gaza",
355
- "Asia/Harbin",
356
- "Asia/Hebron",
357
- "Asia/Ho_Chi_Minh",
358
- "Asia/Hong_Kong",
359
- "Asia/Hovd",
360
- "Asia/Irkutsk",
361
- "Asia/Istanbul",
362
- "Asia/Jakarta",
363
- "Asia/Jayapura",
364
- "Asia/Jerusalem",
365
- "Asia/Kabul",
366
- "Asia/Kamchatka",
367
- "Asia/Karachi",
368
- "Asia/Kashgar",
369
- "Asia/Kathmandu",
370
- "Asia/Katmandu",
371
- "Asia/Khandyga",
372
- "Asia/Kolkata",
373
- "Asia/Krasnoyarsk",
374
- "Asia/Kuala_Lumpur",
375
- "Asia/Kuching",
376
- "Asia/Kuwait",
377
- "Asia/Macao",
378
- "Asia/Macau",
379
- "Asia/Magadan",
380
- "Asia/Makassar",
381
- "Asia/Manila",
382
- "Asia/Muscat",
383
- "Asia/Nicosia",
384
- "Asia/Novokuznetsk",
385
- "Asia/Novosibirsk",
386
- "Asia/Omsk",
387
- "Asia/Oral",
388
- "Asia/Phnom_Penh",
389
- "Asia/Pontianak",
390
- "Asia/Pyongyang",
391
- "Asia/Qatar",
392
- "Asia/Qostanay",
393
- "Asia/Qyzylorda",
394
- "Asia/Rangoon",
395
- "Asia/Riyadh",
396
- "Asia/Saigon",
397
- "Asia/Sakhalin",
398
- "Asia/Samarkand",
399
- "Asia/Seoul",
400
- "Asia/Shanghai",
401
- "Asia/Singapore",
402
- "Asia/Srednekolymsk",
403
- "Asia/Taipei",
404
- "Asia/Tashkent",
405
- "Asia/Tbilisi",
406
- "Asia/Tehran",
407
- "Asia/Tel_Aviv",
408
- "Asia/Thimbu",
409
- "Asia/Thimphu",
410
- "Asia/Tokyo",
411
- "Asia/Tomsk",
412
- "Asia/Ujung_Pandang",
413
- "Asia/Ulaanbaatar",
414
- "Asia/Ulan_Bator",
415
- "Asia/Urumqi",
416
- "Asia/Ust-Nera",
417
- "Asia/Vientiane",
418
- "Asia/Vladivostok",
419
- "Asia/Yakutsk",
420
- "Asia/Yangon",
421
- "Asia/Yekaterinburg",
422
- "Asia/Yerevan",
423
- "Atlantic/Azores",
424
- "Atlantic/Bermuda",
425
- "Atlantic/Canary",
426
- "Atlantic/Cape_Verde",
427
- "Atlantic/Faeroe",
428
- "Atlantic/Faroe",
429
- "Atlantic/Jan_Mayen",
430
- "Atlantic/Madeira",
431
- "Atlantic/Reykjavik",
432
- "Atlantic/South_Georgia",
433
- "Atlantic/St_Helena",
434
- "Atlantic/Stanley",
435
- "Australia/ACT",
436
- "Australia/Adelaide",
437
- "Australia/Brisbane",
438
- "Australia/Broken_Hill",
439
- "Australia/Canberra",
440
- "Australia/Currie",
441
- "Australia/Darwin",
442
- "Australia/Eucla",
443
- "Australia/Hobart",
444
- "Australia/LHI",
445
- "Australia/Lindeman",
446
- "Australia/Lord_Howe",
447
- "Australia/Melbourne",
448
- "Australia/NSW",
449
- "Australia/North",
450
- "Australia/Perth",
451
- "Australia/Queensland",
452
- "Australia/South",
453
- "Australia/Sydney",
454
- "Australia/Tasmania",
455
- "Australia/Victoria",
456
- "Australia/West",
457
- "Australia/Yancowinna",
458
- "Brazil/Acre",
459
- "Brazil/DeNoronha",
460
- "Brazil/East",
461
- "Brazil/West",
462
- "CET",
463
- "CST6CDT",
464
- "Canada/Atlantic",
465
- "Canada/Central",
466
- "Canada/Eastern",
467
- "Canada/Mountain",
468
- "Canada/Newfoundland",
469
- "Canada/Pacific",
470
- "Canada/Saskatchewan",
471
- "Canada/Yukon",
472
- "Chile/Continental",
473
- "Chile/EasterIsland",
474
- "Cuba",
475
- "EET",
476
- "EST",
477
- "EST5EDT",
478
- "Egypt",
479
- "Eire",
480
- "Etc/GMT",
481
- "Etc/GMT+0",
482
- "Etc/GMT+1",
483
- "Etc/GMT+10",
484
- "Etc/GMT+11",
485
- "Etc/GMT+12",
486
- "Etc/GMT+2",
487
- "Etc/GMT+3",
488
- "Etc/GMT+4",
489
- "Etc/GMT+5",
490
- "Etc/GMT+6",
491
- "Etc/GMT+7",
492
- "Etc/GMT+8",
493
- "Etc/GMT+9",
494
- "Etc/GMT-0",
495
- "Etc/GMT-1",
496
- "Etc/GMT-10",
497
- "Etc/GMT-11",
498
- "Etc/GMT-12",
499
- "Etc/GMT-13",
500
- "Etc/GMT-14",
501
- "Etc/GMT-2",
502
- "Etc/GMT-3",
503
- "Etc/GMT-4",
504
- "Etc/GMT-5",
505
- "Etc/GMT-6",
506
- "Etc/GMT-7",
507
- "Etc/GMT-8",
508
- "Etc/GMT-9",
509
- "Etc/GMT0",
510
- "Etc/Greenwich",
511
- "Etc/UCT",
512
- "Etc/UTC",
513
- "Etc/Universal",
514
- "Etc/Zulu",
515
- "Europe/Amsterdam",
516
- "Europe/Andorra",
517
- "Europe/Astrakhan",
518
- "Europe/Athens",
519
- "Europe/Belfast",
520
- "Europe/Belgrade",
521
- "Europe/Berlin",
522
- "Europe/Bratislava",
523
- "Europe/Brussels",
524
- "Europe/Bucharest",
525
- "Europe/Budapest",
526
- "Europe/Busingen",
527
- "Europe/Chisinau",
528
- "Europe/Copenhagen",
529
- "Europe/Dublin",
530
- "Europe/Gibraltar",
531
- "Europe/Guernsey",
532
- "Europe/Helsinki",
533
- "Europe/Isle_of_Man",
534
- "Europe/Istanbul",
535
- "Europe/Jersey",
536
- "Europe/Kaliningrad",
537
- "Europe/Kiev",
538
- "Europe/Kirov",
539
- "Europe/Kyiv",
540
- "Europe/Lisbon",
541
- "Europe/Ljubljana",
542
- "Europe/London",
543
- "Europe/Luxembourg",
544
- "Europe/Madrid",
545
- "Europe/Malta",
546
- "Europe/Mariehamn",
547
- "Europe/Minsk",
548
- "Europe/Monaco",
549
- "Europe/Moscow",
550
- "Europe/Nicosia",
551
- "Europe/Oslo",
552
- "Europe/Paris",
553
- "Europe/Podgorica",
554
- "Europe/Prague",
555
- "Europe/Riga",
556
- "Europe/Rome",
557
- "Europe/Samara",
558
- "Europe/San_Marino",
559
- "Europe/Sarajevo",
560
- "Europe/Saratov",
561
- "Europe/Simferopol",
562
- "Europe/Skopje",
563
- "Europe/Sofia",
564
- "Europe/Stockholm",
565
- "Europe/Tallinn",
566
- "Europe/Tirane",
567
- "Europe/Tiraspol",
568
- "Europe/Ulyanovsk",
569
- "Europe/Uzhgorod",
570
- "Europe/Vaduz",
571
- "Europe/Vatican",
572
- "Europe/Vienna",
573
- "Europe/Vilnius",
574
- "Europe/Volgograd",
575
- "Europe/Warsaw",
576
- "Europe/Zagreb",
577
- "Europe/Zaporozhye",
578
- "Europe/Zurich",
579
- "GB",
580
- "GB-Eire",
581
- "GMT",
582
- "GMT+0",
583
- "GMT-0",
584
- "GMT0",
585
- "Greenwich",
586
- "HST",
587
- "Hongkong",
588
- "Iceland",
589
- "Indian/Antananarivo",
590
- "Indian/Chagos",
591
- "Indian/Christmas",
592
- "Indian/Cocos",
593
- "Indian/Comoro",
594
- "Indian/Kerguelen",
595
- "Indian/Mahe",
596
- "Indian/Maldives",
597
- "Indian/Mauritius",
598
- "Indian/Mayotte",
599
- "Indian/Reunion",
600
- "Iran",
601
- "Israel",
602
- "Jamaica",
603
- "Japan",
604
- "Kwajalein",
605
- "Libya",
606
- "MET",
607
- "MST",
608
- "MST7MDT",
609
- "Mexico/BajaNorte",
610
- "Mexico/BajaSur",
611
- "Mexico/General",
612
- "NZ",
613
- "NZ-CHAT",
614
- "Navajo",
615
- "PRC",
616
- "PST8PDT",
617
- "Pacific/Apia",
618
- "Pacific/Auckland",
619
- "Pacific/Bougainville",
620
- "Pacific/Chatham",
621
- "Pacific/Chuuk",
622
- "Pacific/Easter",
623
- "Pacific/Efate",
624
- "Pacific/Enderbury",
625
- "Pacific/Fakaofo",
626
- "Pacific/Fiji",
627
- "Pacific/Funafuti",
628
- "Pacific/Galapagos",
629
- "Pacific/Gambier",
630
- "Pacific/Guadalcanal",
631
- "Pacific/Guam",
632
- "Pacific/Honolulu",
633
- "Pacific/Johnston",
634
- "Pacific/Kanton",
635
- "Pacific/Kiritimati",
636
- "Pacific/Kosrae",
637
- "Pacific/Kwajalein",
638
- "Pacific/Majuro",
639
- "Pacific/Marquesas",
640
- "Pacific/Midway",
641
- "Pacific/Nauru",
642
- "Pacific/Niue",
643
- "Pacific/Norfolk",
644
- "Pacific/Noumea",
645
- "Pacific/Pago_Pago",
646
- "Pacific/Palau",
647
- "Pacific/Pitcairn",
648
- "Pacific/Pohnpei",
649
- "Pacific/Ponape",
650
- "Pacific/Port_Moresby",
651
- "Pacific/Rarotonga",
652
- "Pacific/Saipan",
653
- "Pacific/Samoa",
654
- "Pacific/Tahiti",
655
- "Pacific/Tarawa",
656
- "Pacific/Tongatapu",
657
- "Pacific/Truk",
658
- "Pacific/Wake",
659
- "Pacific/Wallis",
660
- "Pacific/Yap",
661
- "Poland",
662
- "Portugal",
663
- "ROC",
664
- "ROK",
665
- "Singapore",
666
- "Turkey",
667
- "UCT",
668
- "US/Alaska",
669
- "US/Aleutian",
670
- "US/Arizona",
671
- "US/Central",
672
- "US/East-Indiana",
673
- "US/Eastern",
674
- "US/Hawaii",
675
- "US/Indiana-Starke",
676
- "US/Michigan",
677
- "US/Mountain",
678
- "US/Pacific",
679
- "US/Pacific-New",
680
- "US/Samoa",
681
- "UTC",
682
- "Universal",
683
- "W-SU",
684
- "WET",
685
- "Zulu",
686
- ])
687
- .optional()
688
- .nullable(),
689
- }),
690
- }),
691
- });
692
- // Link preview mention
693
- export const linkPreviewMentionSchema = richTextBaseSchema.extend({
694
- type: z.literal("mention"),
695
- mention: z.object({
696
- type: z.literal("link_preview"),
697
- link_preview: z.object({
698
- url: z.string().url(),
699
- }),
700
- }),
701
- });
702
- // Template mention types
703
- const templateMentionDateSchema = z.object({
704
- type: z.literal("template_mention_date"),
705
- template_mention_date: z.enum(["today", "now", "tomorrow", "yesterday"]),
706
- });
707
- const templateMentionUserSchema = z.object({
708
- type: z.literal("template_mention_user"),
709
- template_mention_user: z.enum(["me"]),
710
- });
711
- // Template mention
712
- export const templateMentionSchema = richTextBaseSchema.extend({
713
- type: z.literal("mention"),
714
- mention: z.object({
715
- type: z.literal("template_mention"),
716
- template_mention: z.union([
717
- templateMentionDateSchema,
718
- templateMentionUserSchema,
719
- ]),
720
- }),
721
- });
722
- // Equation rich text object
723
- export const equationRichTextSchema = richTextBaseSchema.extend({
724
- type: z.literal("equation"),
725
- equation: z.object({
726
- expression: z.string(),
727
- }),
728
- });
729
- // Combined mention schema
730
- export const mentionRichTextSchema = z.union([
731
- userMentionSchema,
732
- pageMentionSchema,
733
- databaseMentionSchema,
734
- dateMentionSchema,
735
- linkPreviewMentionSchema,
736
- templateMentionSchema,
737
- ]);
738
- // Comprehensive rich text schema that combines all types
739
- export const richTextItemSchema = z.union([
740
- textRichTextSchema,
741
- equationRichTextSchema,
742
- ]);
743
- // Array of rich text items
744
- export const richTextSchema = z.array(richTextItemSchema);