@nakanoaas/notion-valibot-schema 0.0.4 → 0.0.5

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 (133) hide show
  1. package/dist/checkbox.cjs +29 -0
  2. package/dist/checkbox.cjs.map +1 -1
  3. package/dist/checkbox.d.cts +30 -0
  4. package/dist/checkbox.d.mts +30 -0
  5. package/dist/checkbox.mjs +29 -0
  6. package/dist/checkbox.mjs.map +1 -1
  7. package/dist/created-by.cjs +75 -0
  8. package/dist/created-by.cjs.map +1 -1
  9. package/dist/created-by.d.cts +76 -0
  10. package/dist/created-by.d.mts +76 -0
  11. package/dist/created-by.mjs +75 -0
  12. package/dist/created-by.mjs.map +1 -1
  13. package/dist/created-time.cjs +27 -0
  14. package/dist/created-time.cjs.map +1 -1
  15. package/dist/created-time.d.cts +28 -0
  16. package/dist/created-time.d.mts +28 -0
  17. package/dist/created-time.mjs +27 -0
  18. package/dist/created-time.mjs.map +1 -1
  19. package/dist/date.cjs +188 -0
  20. package/dist/date.cjs.map +1 -1
  21. package/dist/date.d.cts +189 -0
  22. package/dist/date.d.mts +189 -0
  23. package/dist/date.mjs +188 -0
  24. package/dist/date.mjs.map +1 -1
  25. package/dist/email.cjs +58 -0
  26. package/dist/email.cjs.map +1 -1
  27. package/dist/email.d.cts +59 -0
  28. package/dist/email.d.mts +59 -0
  29. package/dist/email.mjs +58 -0
  30. package/dist/email.mjs.map +1 -1
  31. package/dist/files.cjs +39 -0
  32. package/dist/files.cjs.map +1 -1
  33. package/dist/files.d.cts +40 -0
  34. package/dist/files.d.mts +40 -0
  35. package/dist/files.mjs +39 -0
  36. package/dist/files.mjs.map +1 -1
  37. package/dist/formula.cjs +72 -0
  38. package/dist/formula.cjs.map +1 -1
  39. package/dist/formula.d.cts +73 -0
  40. package/dist/formula.d.mts +73 -0
  41. package/dist/formula.mjs +72 -0
  42. package/dist/formula.mjs.map +1 -1
  43. package/dist/last-edited-by.cjs +68 -0
  44. package/dist/last-edited-by.cjs.map +1 -1
  45. package/dist/last-edited-by.d.cts +69 -0
  46. package/dist/last-edited-by.d.mts +69 -0
  47. package/dist/last-edited-by.mjs +68 -0
  48. package/dist/last-edited-by.mjs.map +1 -1
  49. package/dist/last-edited-time.cjs +27 -0
  50. package/dist/last-edited-time.cjs.map +1 -1
  51. package/dist/last-edited-time.d.cts +28 -0
  52. package/dist/last-edited-time.d.mts +28 -0
  53. package/dist/last-edited-time.mjs +27 -0
  54. package/dist/last-edited-time.mjs.map +1 -1
  55. package/dist/multi-select.cjs +60 -0
  56. package/dist/multi-select.cjs.map +1 -1
  57. package/dist/multi-select.d.cts +61 -0
  58. package/dist/multi-select.d.mts +61 -0
  59. package/dist/multi-select.mjs +60 -0
  60. package/dist/multi-select.mjs.map +1 -1
  61. package/dist/number.cjs +58 -0
  62. package/dist/number.cjs.map +1 -1
  63. package/dist/number.d.cts +59 -0
  64. package/dist/number.d.mts +59 -0
  65. package/dist/number.mjs +58 -0
  66. package/dist/number.mjs.map +1 -1
  67. package/dist/people.cjs +84 -0
  68. package/dist/people.cjs.map +1 -1
  69. package/dist/people.d.cts +85 -0
  70. package/dist/people.d.mts +85 -0
  71. package/dist/people.mjs +84 -0
  72. package/dist/people.mjs.map +1 -1
  73. package/dist/phone-number.cjs +58 -0
  74. package/dist/phone-number.cjs.map +1 -1
  75. package/dist/phone-number.d.cts +59 -0
  76. package/dist/phone-number.d.mts +59 -0
  77. package/dist/phone-number.mjs +58 -0
  78. package/dist/phone-number.mjs.map +1 -1
  79. package/dist/place.cjs +128 -0
  80. package/dist/place.cjs.map +1 -1
  81. package/dist/place.d.cts +85 -0
  82. package/dist/place.d.mts +85 -0
  83. package/dist/place.mjs +128 -0
  84. package/dist/place.mjs.map +1 -1
  85. package/dist/relation.cjs +131 -0
  86. package/dist/relation.cjs.map +1 -1
  87. package/dist/relation.d.cts +94 -0
  88. package/dist/relation.d.mts +94 -0
  89. package/dist/relation.mjs +131 -0
  90. package/dist/relation.mjs.map +1 -1
  91. package/dist/rollup.cjs +200 -0
  92. package/dist/rollup.cjs.map +1 -1
  93. package/dist/rollup.d.cts +201 -0
  94. package/dist/rollup.d.mts +201 -0
  95. package/dist/rollup.mjs +200 -0
  96. package/dist/rollup.mjs.map +1 -1
  97. package/dist/select.cjs +120 -0
  98. package/dist/select.cjs.map +1 -1
  99. package/dist/select.d.cts +121 -0
  100. package/dist/select.d.mts +121 -0
  101. package/dist/select.mjs +120 -0
  102. package/dist/select.mjs.map +1 -1
  103. package/dist/status.cjs +120 -0
  104. package/dist/status.cjs.map +1 -1
  105. package/dist/status.d.cts +121 -0
  106. package/dist/status.d.mts +121 -0
  107. package/dist/status.mjs +120 -0
  108. package/dist/status.mjs.map +1 -1
  109. package/dist/text.cjs +100 -0
  110. package/dist/text.cjs.map +1 -1
  111. package/dist/text.d.cts +63 -0
  112. package/dist/text.d.mts +63 -0
  113. package/dist/text.mjs +100 -0
  114. package/dist/text.mjs.map +1 -1
  115. package/dist/unique-id.cjs +69 -0
  116. package/dist/unique-id.cjs.map +1 -1
  117. package/dist/unique-id.d.cts +70 -0
  118. package/dist/unique-id.d.mts +70 -0
  119. package/dist/unique-id.mjs +69 -0
  120. package/dist/unique-id.mjs.map +1 -1
  121. package/dist/url.cjs +58 -0
  122. package/dist/url.cjs.map +1 -1
  123. package/dist/url.d.cts +59 -0
  124. package/dist/url.d.mts +59 -0
  125. package/dist/url.mjs +58 -0
  126. package/dist/url.mjs.map +1 -1
  127. package/dist/verification.cjs +80 -0
  128. package/dist/verification.cjs.map +1 -1
  129. package/dist/verification.d.cts +81 -0
  130. package/dist/verification.d.mts +81 -0
  131. package/dist/verification.mjs +80 -0
  132. package/dist/verification.mjs.map +1 -1
  133. package/package.json +1 -1
package/dist/date.mjs CHANGED
@@ -1,18 +1,206 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/date.ts
4
+ /**
5
+ * Schema for a Notion date object structure.
6
+ *
7
+ * **Input:**
8
+ * ```
9
+ * {
10
+ * start: string;
11
+ * end: string | null;
12
+ * time_zone: string | null;
13
+ * }
14
+ * ```
15
+ *
16
+ * **Output:**
17
+ * ```
18
+ * {
19
+ * start: string;
20
+ * end: string | null;
21
+ * time_zone: string | null;
22
+ * }
23
+ * ```
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * import * as v from "valibot";
28
+ * import { DateObjectSchema } from "@nakanoaas/notion-valibot-utils";
29
+ *
30
+ * const PageSchema = v.object({
31
+ * id: v.string(),
32
+ * properties: v.object({
33
+ * Date: v.object({
34
+ * date: DateObjectSchema,
35
+ * }),
36
+ * }),
37
+ * });
38
+ *
39
+ * const page = await notion.pages.retrieve({ page_id: "..." });
40
+ * const parsed = v.parse(PageSchema, page);
41
+ * // parsed.properties.Date.date: { start: string; end: string | null; time_zone: string | null }
42
+ * ```
43
+ *
44
+ * @internal
45
+ */
4
46
  const DateObjectSchema = v.object({
5
47
  start: v.string(),
6
48
  end: v.nullable(v.string()),
7
49
  time_zone: v.nullable(v.string())
8
50
  });
51
+ /**
52
+ * Schema to extract the `date` property from a Notion page property and transform it to a `Date` object.
53
+ *
54
+ * **Input:**
55
+ * ```
56
+ * {
57
+ * date: {
58
+ * start: string;
59
+ * end: string | null;
60
+ * time_zone: string | null;
61
+ * }
62
+ * }
63
+ * ```
64
+ *
65
+ * **Output:** `Date`
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * import * as v from "valibot";
70
+ * import { DateSchema } from "@nakanoaas/notion-valibot-utils";
71
+ *
72
+ * const PageSchema = v.object({
73
+ * id: v.string(),
74
+ * properties: v.object({
75
+ * Date: DateSchema,
76
+ * }),
77
+ * });
78
+ *
79
+ * const page = await notion.pages.retrieve({ page_id: "..." });
80
+ * const parsed = v.parse(PageSchema, page);
81
+ * // parsed.properties.Date: Date
82
+ * ```
83
+ */
9
84
  const DateSchema = v.pipe(v.object({ date: DateObjectSchema }), v.transform((v$1) => new Date(v$1.date.start)));
85
+ /**
86
+ * Schema to extract the `date` property from a Notion page property and transform it to a `Date` object or `null`.
87
+ *
88
+ * **Input:**
89
+ * ```
90
+ * {
91
+ * date: {
92
+ * start: string;
93
+ * end: string | null;
94
+ * time_zone: string | null;
95
+ * } | null
96
+ * }
97
+ * ```
98
+ *
99
+ * **Output:** `Date | null`
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * import * as v from "valibot";
104
+ * import { NullableDateSchema } from "@nakanoaas/notion-valibot-utils";
105
+ *
106
+ * const PageSchema = v.object({
107
+ * id: v.string(),
108
+ * properties: v.object({
109
+ * Date: NullableDateSchema,
110
+ * }),
111
+ * });
112
+ *
113
+ * const page = await notion.pages.retrieve({ page_id: "..." });
114
+ * const parsed = v.parse(PageSchema, page);
115
+ * // parsed.properties.Date: Date | null
116
+ * ```
117
+ */
10
118
  const NullableDateSchema = v.pipe(v.object({ date: v.nullable(DateObjectSchema) }), v.transform((v$1) => v$1.date?.start ? new Date(v$1.date.start) : null));
119
+ /**
120
+ * Schema to extract the `date` property from a Notion page property and transform it to a date range object.
121
+ *
122
+ * **Input:**
123
+ * ```
124
+ * {
125
+ * date: {
126
+ * start: string;
127
+ * end: string | null;
128
+ * time_zone: string | null;
129
+ * }
130
+ * }
131
+ * ```
132
+ *
133
+ * **Output:**
134
+ * ```
135
+ * {
136
+ * start: Date;
137
+ * end: Date | null;
138
+ * time_zone: string | null;
139
+ * }
140
+ * ```
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * import * as v from "valibot";
145
+ * import { DateRangeSchema } from "@nakanoaas/notion-valibot-utils";
146
+ *
147
+ * const PageSchema = v.object({
148
+ * id: v.string(),
149
+ * properties: v.object({
150
+ * DateRange: DateRangeSchema,
151
+ * }),
152
+ * });
153
+ *
154
+ * const page = await notion.pages.retrieve({ page_id: "..." });
155
+ * const parsed = v.parse(PageSchema, page);
156
+ * // parsed.properties.DateRange: { start: Date; end: Date | null; time_zone: string | null }
157
+ * ```
158
+ */
11
159
  const DateRangeSchema = v.pipe(v.object({ date: DateObjectSchema }), v.transform((v$1) => ({
12
160
  start: new Date(v$1.date.start),
13
161
  end: v$1.date.end ? new Date(v$1.date.end) : null,
14
162
  time_zone: v$1.date.time_zone
15
163
  })));
164
+ /**
165
+ * Schema to extract the `date` property from a Notion page property and transform it to a date range object or `null`.
166
+ *
167
+ * **Input:**
168
+ * ```
169
+ * {
170
+ * date: {
171
+ * start: string;
172
+ * end: string | null;
173
+ * time_zone: string | null;
174
+ * } | null
175
+ * }
176
+ * ```
177
+ *
178
+ * **Output:**
179
+ * ```
180
+ * {
181
+ * start: Date;
182
+ * end: Date | null;
183
+ * time_zone: string | null;
184
+ * } | null
185
+ * ```
186
+ *
187
+ * @example
188
+ * ```ts
189
+ * import * as v from "valibot";
190
+ * import { NullableDateRangeSchema } from "@nakanoaas/notion-valibot-utils";
191
+ *
192
+ * const PageSchema = v.object({
193
+ * id: v.string(),
194
+ * properties: v.object({
195
+ * DateRange: NullableDateRangeSchema,
196
+ * }),
197
+ * });
198
+ *
199
+ * const page = await notion.pages.retrieve({ page_id: "..." });
200
+ * const parsed = v.parse(PageSchema, page);
201
+ * // parsed.properties.DateRange: { start: Date; end: Date | null; time_zone: string | null } | null
202
+ * ```
203
+ */
16
204
  const NullableDateRangeSchema = v.pipe(v.object({ date: v.nullable(DateObjectSchema) }), v.transform((v$1) => v$1.date ? {
17
205
  start: new Date(v$1.date.start),
18
206
  end: v$1.date.end ? new Date(v$1.date.end) : null,
package/dist/date.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"date.mjs","names":["v"],"sources":["../src/date.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const DateObjectSchema = v.object({\n\tstart: v.string(),\n\tend: v.nullable(v.string()),\n\ttime_zone: v.nullable(v.string()),\n});\n\nexport const DateSchema = v.pipe(\n\tv.object({\n\t\tdate: DateObjectSchema,\n\t}),\n\tv.transform((v) => new Date(v.date.start)),\n);\n\nexport const NullableDateSchema = v.pipe(\n\tv.object({\n\t\tdate: v.nullable(DateObjectSchema),\n\t}),\n\tv.transform((v) => (v.date?.start ? new Date(v.date.start) : null)),\n);\n\nexport const DateRangeSchema = v.pipe(\n\tv.object({\n\t\tdate: DateObjectSchema,\n\t}),\n\tv.transform((v) => ({\n\t\tstart: new Date(v.date.start),\n\t\tend: v.date.end ? new Date(v.date.end) : null,\n\t\ttime_zone: v.date.time_zone,\n\t})),\n);\n\nexport const NullableDateRangeSchema = v.pipe(\n\tv.object({\n\t\tdate: v.nullable(DateObjectSchema),\n\t}),\n\tv.transform((v) =>\n\t\tv.date\n\t\t\t? {\n\t\t\t\t\tstart: new Date(v.date.start),\n\t\t\t\t\tend: v.date.end ? new Date(v.date.end) : null,\n\t\t\t\t\ttime_zone: v.date.time_zone,\n\t\t\t\t}\n\t\t\t: null,\n\t),\n);\n"],"mappings":";;;AAEA,MAAa,mBAAmB,EAAE,OAAO;CACxC,OAAO,EAAE,QAAQ;CACjB,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;CAC3B,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC;CACjC,CAAC;AAEF,MAAa,aAAa,EAAE,KAC3B,EAAE,OAAO,EACR,MAAM,kBACN,CAAC,EACF,EAAE,WAAW,QAAM,IAAI,KAAKA,IAAE,KAAK,MAAM,CAAC,CAC1C;AAED,MAAa,qBAAqB,EAAE,KACnC,EAAE,OAAO,EACR,MAAM,EAAE,SAAS,iBAAiB,EAClC,CAAC,EACF,EAAE,WAAW,QAAOA,IAAE,MAAM,QAAQ,IAAI,KAAKA,IAAE,KAAK,MAAM,GAAG,KAAM,CACnE;AAED,MAAa,kBAAkB,EAAE,KAChC,EAAE,OAAO,EACR,MAAM,kBACN,CAAC,EACF,EAAE,WAAW,SAAO;CACnB,OAAO,IAAI,KAAKA,IAAE,KAAK,MAAM;CAC7B,KAAKA,IAAE,KAAK,MAAM,IAAI,KAAKA,IAAE,KAAK,IAAI,GAAG;CACzC,WAAWA,IAAE,KAAK;CAClB,EAAE,CACH;AAED,MAAa,0BAA0B,EAAE,KACxC,EAAE,OAAO,EACR,MAAM,EAAE,SAAS,iBAAiB,EAClC,CAAC,EACF,EAAE,WAAW,QACZA,IAAE,OACC;CACA,OAAO,IAAI,KAAKA,IAAE,KAAK,MAAM;CAC7B,KAAKA,IAAE,KAAK,MAAM,IAAI,KAAKA,IAAE,KAAK,IAAI,GAAG;CACzC,WAAWA,IAAE,KAAK;CAClB,GACA,KACH,CACD"}
1
+ {"version":3,"file":"date.mjs","names":["v"],"sources":["../src/date.ts"],"sourcesContent":["import * as v from \"valibot\";\n\n/**\n * Schema for a Notion date object structure.\n *\n * **Input:**\n * ```\n * {\n * start: string;\n * end: string | null;\n * time_zone: string | null;\n * }\n * ```\n *\n * **Output:**\n * ```\n * {\n * start: string;\n * end: string | null;\n * time_zone: string | null;\n * }\n * ```\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { DateObjectSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * Date: v.object({\n * date: DateObjectSchema,\n * }),\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.Date.date: { start: string; end: string | null; time_zone: string | null }\n * ```\n *\n * @internal\n */\nexport const DateObjectSchema = v.object({\n\tstart: v.string(),\n\tend: v.nullable(v.string()),\n\ttime_zone: v.nullable(v.string()),\n});\n\n/**\n * Schema to extract the `date` property from a Notion page property and transform it to a `Date` object.\n *\n * **Input:**\n * ```\n * {\n * date: {\n * start: string;\n * end: string | null;\n * time_zone: string | null;\n * }\n * }\n * ```\n *\n * **Output:** `Date`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { DateSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * Date: DateSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.Date: Date\n * ```\n */\nexport const DateSchema = v.pipe(\n\tv.object({\n\t\tdate: DateObjectSchema,\n\t}),\n\tv.transform((v) => new Date(v.date.start)),\n);\n\n/**\n * Schema to extract the `date` property from a Notion page property and transform it to a `Date` object or `null`.\n *\n * **Input:**\n * ```\n * {\n * date: {\n * start: string;\n * end: string | null;\n * time_zone: string | null;\n * } | null\n * }\n * ```\n *\n * **Output:** `Date | null`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { NullableDateSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * Date: NullableDateSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.Date: Date | null\n * ```\n */\nexport const NullableDateSchema = v.pipe(\n\tv.object({\n\t\tdate: v.nullable(DateObjectSchema),\n\t}),\n\tv.transform((v) => (v.date?.start ? new Date(v.date.start) : null)),\n);\n\n/**\n * Schema to extract the `date` property from a Notion page property and transform it to a date range object.\n *\n * **Input:**\n * ```\n * {\n * date: {\n * start: string;\n * end: string | null;\n * time_zone: string | null;\n * }\n * }\n * ```\n *\n * **Output:**\n * ```\n * {\n * start: Date;\n * end: Date | null;\n * time_zone: string | null;\n * }\n * ```\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { DateRangeSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * DateRange: DateRangeSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.DateRange: { start: Date; end: Date | null; time_zone: string | null }\n * ```\n */\nexport const DateRangeSchema = v.pipe(\n\tv.object({\n\t\tdate: DateObjectSchema,\n\t}),\n\tv.transform((v) => ({\n\t\tstart: new Date(v.date.start),\n\t\tend: v.date.end ? new Date(v.date.end) : null,\n\t\ttime_zone: v.date.time_zone,\n\t})),\n);\n\n/**\n * Schema to extract the `date` property from a Notion page property and transform it to a date range object or `null`.\n *\n * **Input:**\n * ```\n * {\n * date: {\n * start: string;\n * end: string | null;\n * time_zone: string | null;\n * } | null\n * }\n * ```\n *\n * **Output:**\n * ```\n * {\n * start: Date;\n * end: Date | null;\n * time_zone: string | null;\n * } | null\n * ```\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { NullableDateRangeSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * DateRange: NullableDateRangeSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.DateRange: { start: Date; end: Date | null; time_zone: string | null } | null\n * ```\n */\nexport const NullableDateRangeSchema = v.pipe(\n\tv.object({\n\t\tdate: v.nullable(DateObjectSchema),\n\t}),\n\tv.transform((v) =>\n\t\tv.date\n\t\t\t? {\n\t\t\t\t\tstart: new Date(v.date.start),\n\t\t\t\t\tend: v.date.end ? new Date(v.date.end) : null,\n\t\t\t\t\ttime_zone: v.date.time_zone,\n\t\t\t\t}\n\t\t\t: null,\n\t),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,MAAa,mBAAmB,EAAE,OAAO;CACxC,OAAO,EAAE,QAAQ;CACjB,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;CAC3B,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC;CACjC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCF,MAAa,aAAa,EAAE,KAC3B,EAAE,OAAO,EACR,MAAM,kBACN,CAAC,EACF,EAAE,WAAW,QAAM,IAAI,KAAKA,IAAE,KAAK,MAAM,CAAC,CAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCD,MAAa,qBAAqB,EAAE,KACnC,EAAE,OAAO,EACR,MAAM,EAAE,SAAS,iBAAiB,EAClC,CAAC,EACF,EAAE,WAAW,QAAOA,IAAE,MAAM,QAAQ,IAAI,KAAKA,IAAE,KAAK,MAAM,GAAG,KAAM,CACnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CD,MAAa,kBAAkB,EAAE,KAChC,EAAE,OAAO,EACR,MAAM,kBACN,CAAC,EACF,EAAE,WAAW,SAAO;CACnB,OAAO,IAAI,KAAKA,IAAE,KAAK,MAAM;CAC7B,KAAKA,IAAE,KAAK,MAAM,IAAI,KAAKA,IAAE,KAAK,IAAI,GAAG;CACzC,WAAWA,IAAE,KAAK;CAClB,EAAE,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CD,MAAa,0BAA0B,EAAE,KACxC,EAAE,OAAO,EACR,MAAM,EAAE,SAAS,iBAAiB,EAClC,CAAC,EACF,EAAE,WAAW,QACZA,IAAE,OACC;CACA,OAAO,IAAI,KAAKA,IAAE,KAAK,MAAM;CAC7B,KAAKA,IAAE,KAAK,MAAM,IAAI,KAAKA,IAAE,KAAK,IAAI,GAAG;CACzC,WAAWA,IAAE,KAAK;CAClB,GACA,KACH,CACD"}
package/dist/email.cjs CHANGED
@@ -3,7 +3,65 @@ let valibot = require("valibot");
3
3
  valibot = require_rolldown_runtime.__toESM(valibot);
4
4
 
5
5
  //#region src/email.ts
6
+ /**
7
+ * Schema to extract the `email` property from a Notion page property.
8
+ *
9
+ * **Input:**
10
+ * ```
11
+ * {
12
+ * email: string;
13
+ * }
14
+ * ```
15
+ *
16
+ * **Output:** `string`
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import * as v from "valibot";
21
+ * import { EmailSchema } from "@nakanoaas/notion-valibot-utils";
22
+ *
23
+ * const PageSchema = v.object({
24
+ * id: v.string(),
25
+ * properties: v.object({
26
+ * Email: EmailSchema,
27
+ * }),
28
+ * });
29
+ *
30
+ * const page = await notion.pages.retrieve({ page_id: "..." });
31
+ * const parsed = v.parse(PageSchema, page);
32
+ * // parsed.properties.Email: string
33
+ * ```
34
+ */
6
35
  const EmailSchema = valibot.pipe(valibot.object({ email: valibot.string() }), valibot.transform((v) => v.email));
36
+ /**
37
+ * Schema to extract the `email` property from a Notion page property or `null`.
38
+ *
39
+ * **Input:**
40
+ * ```
41
+ * {
42
+ * email: string | null;
43
+ * }
44
+ * ```
45
+ *
46
+ * **Output:** `string | null`
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * import * as v from "valibot";
51
+ * import { NullableEmailSchema } from "@nakanoaas/notion-valibot-utils";
52
+ *
53
+ * const PageSchema = v.object({
54
+ * id: v.string(),
55
+ * properties: v.object({
56
+ * Email: NullableEmailSchema,
57
+ * }),
58
+ * });
59
+ *
60
+ * const page = await notion.pages.retrieve({ page_id: "..." });
61
+ * const parsed = v.parse(PageSchema, page);
62
+ * // parsed.properties.Email: string | null
63
+ * ```
64
+ */
7
65
  const NullableEmailSchema = valibot.pipe(valibot.object({ email: valibot.nullable(valibot.string()) }), valibot.transform((v) => v.email));
8
66
 
9
67
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"email.cjs","names":["v"],"sources":["../src/email.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const EmailSchema = v.pipe(\n\tv.object({\n\t\temail: v.string(),\n\t}),\n\tv.transform((v) => v.email),\n);\n\nexport const NullableEmailSchema = v.pipe(\n\tv.object({\n\t\temail: v.nullable(v.string()),\n\t}),\n\tv.transform((v) => v.email),\n);\n"],"mappings":";;;;;AAEA,MAAa,cAAcA,QAAE,KAC5BA,QAAE,OAAO,EACR,OAAOA,QAAE,QAAQ,EACjB,CAAC,EACFA,QAAE,WAAW,MAAM,EAAE,MAAM,CAC3B;AAED,MAAa,sBAAsBA,QAAE,KACpCA,QAAE,OAAO,EACR,OAAOA,QAAE,SAASA,QAAE,QAAQ,CAAC,EAC7B,CAAC,EACFA,QAAE,WAAW,MAAM,EAAE,MAAM,CAC3B"}
1
+ {"version":3,"file":"email.cjs","names":["v"],"sources":["../src/email.ts"],"sourcesContent":["import * as v from \"valibot\";\n\n/**\n * Schema to extract the `email` property from a Notion page property.\n *\n * **Input:**\n * ```\n * {\n * email: string;\n * }\n * ```\n *\n * **Output:** `string`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { EmailSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * Email: EmailSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.Email: string\n * ```\n */\nexport const EmailSchema = v.pipe(\n\tv.object({\n\t\temail: v.string(),\n\t}),\n\tv.transform((v) => v.email),\n);\n\n/**\n * Schema to extract the `email` property from a Notion page property or `null`.\n *\n * **Input:**\n * ```\n * {\n * email: string | null;\n * }\n * ```\n *\n * **Output:** `string | null`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { NullableEmailSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * Email: NullableEmailSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.Email: string | null\n * ```\n */\nexport const NullableEmailSchema = v.pipe(\n\tv.object({\n\t\temail: v.nullable(v.string()),\n\t}),\n\tv.transform((v) => v.email),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,cAAcA,QAAE,KAC5BA,QAAE,OAAO,EACR,OAAOA,QAAE,QAAQ,EACjB,CAAC,EACFA,QAAE,WAAW,MAAM,EAAE,MAAM,CAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BD,MAAa,sBAAsBA,QAAE,KACpCA,QAAE,OAAO,EACR,OAAOA,QAAE,SAASA,QAAE,QAAQ,CAAC,EAC7B,CAAC,EACFA,QAAE,WAAW,MAAM,EAAE,MAAM,CAC3B"}
package/dist/email.d.cts CHANGED
@@ -1,11 +1,70 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/email.d.ts
4
+
5
+ /**
6
+ * Schema to extract the `email` property from a Notion page property.
7
+ *
8
+ * **Input:**
9
+ * ```
10
+ * {
11
+ * email: string;
12
+ * }
13
+ * ```
14
+ *
15
+ * **Output:** `string`
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import * as v from "valibot";
20
+ * import { EmailSchema } from "@nakanoaas/notion-valibot-utils";
21
+ *
22
+ * const PageSchema = v.object({
23
+ * id: v.string(),
24
+ * properties: v.object({
25
+ * Email: EmailSchema,
26
+ * }),
27
+ * });
28
+ *
29
+ * const page = await notion.pages.retrieve({ page_id: "..." });
30
+ * const parsed = v.parse(PageSchema, page);
31
+ * // parsed.properties.Email: string
32
+ * ```
33
+ */
4
34
  declare const EmailSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
5
35
  readonly email: v.StringSchema<undefined>;
6
36
  }, undefined>, v.TransformAction<{
7
37
  email: string;
8
38
  }, string>]>;
39
+ /**
40
+ * Schema to extract the `email` property from a Notion page property or `null`.
41
+ *
42
+ * **Input:**
43
+ * ```
44
+ * {
45
+ * email: string | null;
46
+ * }
47
+ * ```
48
+ *
49
+ * **Output:** `string | null`
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * import * as v from "valibot";
54
+ * import { NullableEmailSchema } from "@nakanoaas/notion-valibot-utils";
55
+ *
56
+ * const PageSchema = v.object({
57
+ * id: v.string(),
58
+ * properties: v.object({
59
+ * Email: NullableEmailSchema,
60
+ * }),
61
+ * });
62
+ *
63
+ * const page = await notion.pages.retrieve({ page_id: "..." });
64
+ * const parsed = v.parse(PageSchema, page);
65
+ * // parsed.properties.Email: string | null
66
+ * ```
67
+ */
9
68
  declare const NullableEmailSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
10
69
  readonly email: v.NullableSchema<v.StringSchema<undefined>, undefined>;
11
70
  }, undefined>, v.TransformAction<{
package/dist/email.d.mts CHANGED
@@ -1,11 +1,70 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/email.d.ts
4
+
5
+ /**
6
+ * Schema to extract the `email` property from a Notion page property.
7
+ *
8
+ * **Input:**
9
+ * ```
10
+ * {
11
+ * email: string;
12
+ * }
13
+ * ```
14
+ *
15
+ * **Output:** `string`
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import * as v from "valibot";
20
+ * import { EmailSchema } from "@nakanoaas/notion-valibot-utils";
21
+ *
22
+ * const PageSchema = v.object({
23
+ * id: v.string(),
24
+ * properties: v.object({
25
+ * Email: EmailSchema,
26
+ * }),
27
+ * });
28
+ *
29
+ * const page = await notion.pages.retrieve({ page_id: "..." });
30
+ * const parsed = v.parse(PageSchema, page);
31
+ * // parsed.properties.Email: string
32
+ * ```
33
+ */
4
34
  declare const EmailSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
5
35
  readonly email: v.StringSchema<undefined>;
6
36
  }, undefined>, v.TransformAction<{
7
37
  email: string;
8
38
  }, string>]>;
39
+ /**
40
+ * Schema to extract the `email` property from a Notion page property or `null`.
41
+ *
42
+ * **Input:**
43
+ * ```
44
+ * {
45
+ * email: string | null;
46
+ * }
47
+ * ```
48
+ *
49
+ * **Output:** `string | null`
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * import * as v from "valibot";
54
+ * import { NullableEmailSchema } from "@nakanoaas/notion-valibot-utils";
55
+ *
56
+ * const PageSchema = v.object({
57
+ * id: v.string(),
58
+ * properties: v.object({
59
+ * Email: NullableEmailSchema,
60
+ * }),
61
+ * });
62
+ *
63
+ * const page = await notion.pages.retrieve({ page_id: "..." });
64
+ * const parsed = v.parse(PageSchema, page);
65
+ * // parsed.properties.Email: string | null
66
+ * ```
67
+ */
9
68
  declare const NullableEmailSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
10
69
  readonly email: v.NullableSchema<v.StringSchema<undefined>, undefined>;
11
70
  }, undefined>, v.TransformAction<{
package/dist/email.mjs CHANGED
@@ -1,7 +1,65 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/email.ts
4
+ /**
5
+ * Schema to extract the `email` property from a Notion page property.
6
+ *
7
+ * **Input:**
8
+ * ```
9
+ * {
10
+ * email: string;
11
+ * }
12
+ * ```
13
+ *
14
+ * **Output:** `string`
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import * as v from "valibot";
19
+ * import { EmailSchema } from "@nakanoaas/notion-valibot-utils";
20
+ *
21
+ * const PageSchema = v.object({
22
+ * id: v.string(),
23
+ * properties: v.object({
24
+ * Email: EmailSchema,
25
+ * }),
26
+ * });
27
+ *
28
+ * const page = await notion.pages.retrieve({ page_id: "..." });
29
+ * const parsed = v.parse(PageSchema, page);
30
+ * // parsed.properties.Email: string
31
+ * ```
32
+ */
4
33
  const EmailSchema = v.pipe(v.object({ email: v.string() }), v.transform((v$1) => v$1.email));
34
+ /**
35
+ * Schema to extract the `email` property from a Notion page property or `null`.
36
+ *
37
+ * **Input:**
38
+ * ```
39
+ * {
40
+ * email: string | null;
41
+ * }
42
+ * ```
43
+ *
44
+ * **Output:** `string | null`
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * import * as v from "valibot";
49
+ * import { NullableEmailSchema } from "@nakanoaas/notion-valibot-utils";
50
+ *
51
+ * const PageSchema = v.object({
52
+ * id: v.string(),
53
+ * properties: v.object({
54
+ * Email: NullableEmailSchema,
55
+ * }),
56
+ * });
57
+ *
58
+ * const page = await notion.pages.retrieve({ page_id: "..." });
59
+ * const parsed = v.parse(PageSchema, page);
60
+ * // parsed.properties.Email: string | null
61
+ * ```
62
+ */
5
63
  const NullableEmailSchema = v.pipe(v.object({ email: v.nullable(v.string()) }), v.transform((v$1) => v$1.email));
6
64
 
7
65
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"email.mjs","names":["v"],"sources":["../src/email.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const EmailSchema = v.pipe(\n\tv.object({\n\t\temail: v.string(),\n\t}),\n\tv.transform((v) => v.email),\n);\n\nexport const NullableEmailSchema = v.pipe(\n\tv.object({\n\t\temail: v.nullable(v.string()),\n\t}),\n\tv.transform((v) => v.email),\n);\n"],"mappings":";;;AAEA,MAAa,cAAc,EAAE,KAC5B,EAAE,OAAO,EACR,OAAO,EAAE,QAAQ,EACjB,CAAC,EACF,EAAE,WAAW,QAAMA,IAAE,MAAM,CAC3B;AAED,MAAa,sBAAsB,EAAE,KACpC,EAAE,OAAO,EACR,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC7B,CAAC,EACF,EAAE,WAAW,QAAMA,IAAE,MAAM,CAC3B"}
1
+ {"version":3,"file":"email.mjs","names":["v"],"sources":["../src/email.ts"],"sourcesContent":["import * as v from \"valibot\";\n\n/**\n * Schema to extract the `email` property from a Notion page property.\n *\n * **Input:**\n * ```\n * {\n * email: string;\n * }\n * ```\n *\n * **Output:** `string`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { EmailSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * Email: EmailSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.Email: string\n * ```\n */\nexport const EmailSchema = v.pipe(\n\tv.object({\n\t\temail: v.string(),\n\t}),\n\tv.transform((v) => v.email),\n);\n\n/**\n * Schema to extract the `email` property from a Notion page property or `null`.\n *\n * **Input:**\n * ```\n * {\n * email: string | null;\n * }\n * ```\n *\n * **Output:** `string | null`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { NullableEmailSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * Email: NullableEmailSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.Email: string | null\n * ```\n */\nexport const NullableEmailSchema = v.pipe(\n\tv.object({\n\t\temail: v.nullable(v.string()),\n\t}),\n\tv.transform((v) => v.email),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,cAAc,EAAE,KAC5B,EAAE,OAAO,EACR,OAAO,EAAE,QAAQ,EACjB,CAAC,EACF,EAAE,WAAW,QAAMA,IAAE,MAAM,CAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BD,MAAa,sBAAsB,EAAE,KACpC,EAAE,OAAO,EACR,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC7B,CAAC,EACF,EAAE,WAAW,QAAMA,IAAE,MAAM,CAC3B"}
package/dist/files.cjs CHANGED
@@ -3,6 +3,45 @@ let valibot = require("valibot");
3
3
  valibot = require_rolldown_runtime.__toESM(valibot);
4
4
 
5
5
  //#region src/files.ts
6
+ /**
7
+ * Schema to extract the `files` property from a Notion page property and transform it to an array of URLs.
8
+ *
9
+ * **Input:**
10
+ * ```
11
+ * {
12
+ * files: Array<{
13
+ * type: "file";
14
+ * file: {
15
+ * url: string;
16
+ * };
17
+ * } | {
18
+ * type: "external";
19
+ * external: {
20
+ * url: string;
21
+ * };
22
+ * }>;
23
+ * }
24
+ * ```
25
+ *
26
+ * **Output:** `string[]`
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * import * as v from "valibot";
31
+ * import { FilesSchema } from "@nakanoaas/notion-valibot-utils";
32
+ *
33
+ * const PageSchema = v.object({
34
+ * id: v.string(),
35
+ * properties: v.object({
36
+ * Files: FilesSchema,
37
+ * }),
38
+ * });
39
+ *
40
+ * const page = await notion.pages.retrieve({ page_id: "..." });
41
+ * const parsed = v.parse(PageSchema, page);
42
+ * // parsed.properties.Files: string[]
43
+ * ```
44
+ */
6
45
  const FilesSchema = valibot.pipe(valibot.object({ files: valibot.array(valibot.variant("type", [valibot.object({
7
46
  type: valibot.literal("file"),
8
47
  file: valibot.object({ url: valibot.string() })
@@ -1 +1 @@
1
- {"version":3,"file":"files.cjs","names":["v"],"sources":["../src/files.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const FilesSchema = v.pipe(\n\tv.object({\n\t\tfiles: v.array(\n\t\t\tv.variant(\"type\", [\n\t\t\t\tv.object({\n\t\t\t\t\ttype: v.literal(\"file\"),\n\t\t\t\t\tfile: v.object({\n\t\t\t\t\t\turl: v.string(),\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t\tv.object({\n\t\t\t\t\ttype: v.literal(\"external\"),\n\t\t\t\t\texternal: v.object({\n\t\t\t\t\t\turl: v.string(),\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t]),\n\t\t),\n\t}),\n\tv.transform((v) =>\n\t\tv.files.map((v) => (v.type === \"file\" ? v.file.url : v.external.url)),\n\t),\n);\n"],"mappings":";;;;;AAEA,MAAa,cAAcA,QAAE,KAC5BA,QAAE,OAAO,EACR,OAAOA,QAAE,MACRA,QAAE,QAAQ,QAAQ,CACjBA,QAAE,OAAO;CACR,MAAMA,QAAE,QAAQ,OAAO;CACvB,MAAMA,QAAE,OAAO,EACd,KAAKA,QAAE,QAAQ,EACf,CAAC;CACF,CAAC,EACFA,QAAE,OAAO;CACR,MAAMA,QAAE,QAAQ,WAAW;CAC3B,UAAUA,QAAE,OAAO,EAClB,KAAKA,QAAE,QAAQ,EACf,CAAC;CACF,CAAC,CACF,CAAC,CACF,EACD,CAAC,EACFA,QAAE,WAAW,MACZ,EAAE,MAAM,KAAK,QAAOA,IAAE,SAAS,SAASA,IAAE,KAAK,MAAMA,IAAE,SAAS,IAAK,CACrE,CACD"}
1
+ {"version":3,"file":"files.cjs","names":["v"],"sources":["../src/files.ts"],"sourcesContent":["import * as v from \"valibot\";\n\n/**\n * Schema to extract the `files` property from a Notion page property and transform it to an array of URLs.\n *\n * **Input:**\n * ```\n * {\n * files: Array<{\n * type: \"file\";\n * file: {\n * url: string;\n * };\n * } | {\n * type: \"external\";\n * external: {\n * url: string;\n * };\n * }>;\n * }\n * ```\n *\n * **Output:** `string[]`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { FilesSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * Files: FilesSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.Files: string[]\n * ```\n */\nexport const FilesSchema = v.pipe(\n\tv.object({\n\t\tfiles: v.array(\n\t\t\tv.variant(\"type\", [\n\t\t\t\tv.object({\n\t\t\t\t\ttype: v.literal(\"file\"),\n\t\t\t\t\tfile: v.object({\n\t\t\t\t\t\turl: v.string(),\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t\tv.object({\n\t\t\t\t\ttype: v.literal(\"external\"),\n\t\t\t\t\texternal: v.object({\n\t\t\t\t\t\turl: v.string(),\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t]),\n\t\t),\n\t}),\n\tv.transform((v) =>\n\t\tv.files.map((v) => (v.type === \"file\" ? v.file.url : v.external.url)),\n\t),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAa,cAAcA,QAAE,KAC5BA,QAAE,OAAO,EACR,OAAOA,QAAE,MACRA,QAAE,QAAQ,QAAQ,CACjBA,QAAE,OAAO;CACR,MAAMA,QAAE,QAAQ,OAAO;CACvB,MAAMA,QAAE,OAAO,EACd,KAAKA,QAAE,QAAQ,EACf,CAAC;CACF,CAAC,EACFA,QAAE,OAAO;CACR,MAAMA,QAAE,QAAQ,WAAW;CAC3B,UAAUA,QAAE,OAAO,EAClB,KAAKA,QAAE,QAAQ,EACf,CAAC;CACF,CAAC,CACF,CAAC,CACF,EACD,CAAC,EACFA,QAAE,WAAW,MACZ,EAAE,MAAM,KAAK,QAAOA,IAAE,SAAS,SAASA,IAAE,KAAK,MAAMA,IAAE,SAAS,IAAK,CACrE,CACD"}
package/dist/files.d.cts CHANGED
@@ -1,6 +1,46 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/files.d.ts
4
+
5
+ /**
6
+ * Schema to extract the `files` property from a Notion page property and transform it to an array of URLs.
7
+ *
8
+ * **Input:**
9
+ * ```
10
+ * {
11
+ * files: Array<{
12
+ * type: "file";
13
+ * file: {
14
+ * url: string;
15
+ * };
16
+ * } | {
17
+ * type: "external";
18
+ * external: {
19
+ * url: string;
20
+ * };
21
+ * }>;
22
+ * }
23
+ * ```
24
+ *
25
+ * **Output:** `string[]`
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * import * as v from "valibot";
30
+ * import { FilesSchema } from "@nakanoaas/notion-valibot-utils";
31
+ *
32
+ * const PageSchema = v.object({
33
+ * id: v.string(),
34
+ * properties: v.object({
35
+ * Files: FilesSchema,
36
+ * }),
37
+ * });
38
+ *
39
+ * const page = await notion.pages.retrieve({ page_id: "..." });
40
+ * const parsed = v.parse(PageSchema, page);
41
+ * // parsed.properties.Files: string[]
42
+ * ```
43
+ */
4
44
  declare const FilesSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
5
45
  readonly files: v.ArraySchema<v.VariantSchema<"type", [v.ObjectSchema<{
6
46
  readonly type: v.LiteralSchema<"file", undefined>;
package/dist/files.d.mts CHANGED
@@ -1,6 +1,46 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/files.d.ts
4
+
5
+ /**
6
+ * Schema to extract the `files` property from a Notion page property and transform it to an array of URLs.
7
+ *
8
+ * **Input:**
9
+ * ```
10
+ * {
11
+ * files: Array<{
12
+ * type: "file";
13
+ * file: {
14
+ * url: string;
15
+ * };
16
+ * } | {
17
+ * type: "external";
18
+ * external: {
19
+ * url: string;
20
+ * };
21
+ * }>;
22
+ * }
23
+ * ```
24
+ *
25
+ * **Output:** `string[]`
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * import * as v from "valibot";
30
+ * import { FilesSchema } from "@nakanoaas/notion-valibot-utils";
31
+ *
32
+ * const PageSchema = v.object({
33
+ * id: v.string(),
34
+ * properties: v.object({
35
+ * Files: FilesSchema,
36
+ * }),
37
+ * });
38
+ *
39
+ * const page = await notion.pages.retrieve({ page_id: "..." });
40
+ * const parsed = v.parse(PageSchema, page);
41
+ * // parsed.properties.Files: string[]
42
+ * ```
43
+ */
4
44
  declare const FilesSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
5
45
  readonly files: v.ArraySchema<v.VariantSchema<"type", [v.ObjectSchema<{
6
46
  readonly type: v.LiteralSchema<"file", undefined>;