@nakanoaas/notion-valibot-schema 0.0.4 → 0.0.6

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 (134) hide show
  1. package/README.md +150 -81
  2. package/dist/checkbox.cjs +29 -0
  3. package/dist/checkbox.cjs.map +1 -1
  4. package/dist/checkbox.d.cts +30 -0
  5. package/dist/checkbox.d.mts +30 -0
  6. package/dist/checkbox.mjs +29 -0
  7. package/dist/checkbox.mjs.map +1 -1
  8. package/dist/created-by.cjs +75 -0
  9. package/dist/created-by.cjs.map +1 -1
  10. package/dist/created-by.d.cts +76 -0
  11. package/dist/created-by.d.mts +76 -0
  12. package/dist/created-by.mjs +75 -0
  13. package/dist/created-by.mjs.map +1 -1
  14. package/dist/created-time.cjs +27 -0
  15. package/dist/created-time.cjs.map +1 -1
  16. package/dist/created-time.d.cts +28 -0
  17. package/dist/created-time.d.mts +28 -0
  18. package/dist/created-time.mjs +27 -0
  19. package/dist/created-time.mjs.map +1 -1
  20. package/dist/date.cjs +188 -0
  21. package/dist/date.cjs.map +1 -1
  22. package/dist/date.d.cts +189 -0
  23. package/dist/date.d.mts +189 -0
  24. package/dist/date.mjs +188 -0
  25. package/dist/date.mjs.map +1 -1
  26. package/dist/email.cjs +58 -0
  27. package/dist/email.cjs.map +1 -1
  28. package/dist/email.d.cts +59 -0
  29. package/dist/email.d.mts +59 -0
  30. package/dist/email.mjs +58 -0
  31. package/dist/email.mjs.map +1 -1
  32. package/dist/files.cjs +39 -0
  33. package/dist/files.cjs.map +1 -1
  34. package/dist/files.d.cts +40 -0
  35. package/dist/files.d.mts +40 -0
  36. package/dist/files.mjs +39 -0
  37. package/dist/files.mjs.map +1 -1
  38. package/dist/formula.cjs +72 -0
  39. package/dist/formula.cjs.map +1 -1
  40. package/dist/formula.d.cts +73 -0
  41. package/dist/formula.d.mts +73 -0
  42. package/dist/formula.mjs +72 -0
  43. package/dist/formula.mjs.map +1 -1
  44. package/dist/last-edited-by.cjs +68 -0
  45. package/dist/last-edited-by.cjs.map +1 -1
  46. package/dist/last-edited-by.d.cts +69 -0
  47. package/dist/last-edited-by.d.mts +69 -0
  48. package/dist/last-edited-by.mjs +68 -0
  49. package/dist/last-edited-by.mjs.map +1 -1
  50. package/dist/last-edited-time.cjs +27 -0
  51. package/dist/last-edited-time.cjs.map +1 -1
  52. package/dist/last-edited-time.d.cts +28 -0
  53. package/dist/last-edited-time.d.mts +28 -0
  54. package/dist/last-edited-time.mjs +27 -0
  55. package/dist/last-edited-time.mjs.map +1 -1
  56. package/dist/multi-select.cjs +60 -0
  57. package/dist/multi-select.cjs.map +1 -1
  58. package/dist/multi-select.d.cts +79 -18
  59. package/dist/multi-select.d.mts +79 -18
  60. package/dist/multi-select.mjs +60 -0
  61. package/dist/multi-select.mjs.map +1 -1
  62. package/dist/number.cjs +58 -0
  63. package/dist/number.cjs.map +1 -1
  64. package/dist/number.d.cts +59 -0
  65. package/dist/number.d.mts +59 -0
  66. package/dist/number.mjs +58 -0
  67. package/dist/number.mjs.map +1 -1
  68. package/dist/people.cjs +84 -0
  69. package/dist/people.cjs.map +1 -1
  70. package/dist/people.d.cts +85 -0
  71. package/dist/people.d.mts +85 -0
  72. package/dist/people.mjs +84 -0
  73. package/dist/people.mjs.map +1 -1
  74. package/dist/phone-number.cjs +58 -0
  75. package/dist/phone-number.cjs.map +1 -1
  76. package/dist/phone-number.d.cts +59 -0
  77. package/dist/phone-number.d.mts +59 -0
  78. package/dist/phone-number.mjs +58 -0
  79. package/dist/phone-number.mjs.map +1 -1
  80. package/dist/place.cjs +128 -0
  81. package/dist/place.cjs.map +1 -1
  82. package/dist/place.d.cts +85 -0
  83. package/dist/place.d.mts +85 -0
  84. package/dist/place.mjs +128 -0
  85. package/dist/place.mjs.map +1 -1
  86. package/dist/relation.cjs +131 -0
  87. package/dist/relation.cjs.map +1 -1
  88. package/dist/relation.d.cts +94 -0
  89. package/dist/relation.d.mts +94 -0
  90. package/dist/relation.mjs +131 -0
  91. package/dist/relation.mjs.map +1 -1
  92. package/dist/rollup.cjs +200 -0
  93. package/dist/rollup.cjs.map +1 -1
  94. package/dist/rollup.d.cts +201 -0
  95. package/dist/rollup.d.mts +201 -0
  96. package/dist/rollup.mjs +200 -0
  97. package/dist/rollup.mjs.map +1 -1
  98. package/dist/select.cjs +120 -0
  99. package/dist/select.cjs.map +1 -1
  100. package/dist/select.d.cts +157 -36
  101. package/dist/select.d.mts +157 -36
  102. package/dist/select.mjs +120 -0
  103. package/dist/select.mjs.map +1 -1
  104. package/dist/status.cjs +120 -0
  105. package/dist/status.cjs.map +1 -1
  106. package/dist/status.d.cts +157 -36
  107. package/dist/status.d.mts +157 -36
  108. package/dist/status.mjs +120 -0
  109. package/dist/status.mjs.map +1 -1
  110. package/dist/text.cjs +100 -0
  111. package/dist/text.cjs.map +1 -1
  112. package/dist/text.d.cts +63 -0
  113. package/dist/text.d.mts +63 -0
  114. package/dist/text.mjs +100 -0
  115. package/dist/text.mjs.map +1 -1
  116. package/dist/unique-id.cjs +69 -0
  117. package/dist/unique-id.cjs.map +1 -1
  118. package/dist/unique-id.d.cts +70 -0
  119. package/dist/unique-id.d.mts +70 -0
  120. package/dist/unique-id.mjs +69 -0
  121. package/dist/unique-id.mjs.map +1 -1
  122. package/dist/url.cjs +58 -0
  123. package/dist/url.cjs.map +1 -1
  124. package/dist/url.d.cts +59 -0
  125. package/dist/url.d.mts +59 -0
  126. package/dist/url.mjs +58 -0
  127. package/dist/url.mjs.map +1 -1
  128. package/dist/verification.cjs +80 -0
  129. package/dist/verification.cjs.map +1 -1
  130. package/dist/verification.d.cts +81 -0
  131. package/dist/verification.d.mts +81 -0
  132. package/dist/verification.mjs +80 -0
  133. package/dist/verification.mjs.map +1 -1
  134. package/package.json +2 -2
@@ -1,6 +1,48 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/created-by.d.ts
4
+
5
+ /**
6
+ * Schema to extract the `created_by` person object from a Notion page.
7
+ *
8
+ * **Input:**
9
+ * ```
10
+ * {
11
+ * created_by: {
12
+ * id: string;
13
+ * object: "user" | "bot" | "group";
14
+ * name: string | null;
15
+ * ...
16
+ * }
17
+ * }
18
+ * ```
19
+ *
20
+ * **Output:**
21
+ * ```
22
+ * {
23
+ * id: string;
24
+ * object: "user" | "bot" | "group";
25
+ * name: string | null;
26
+ * }
27
+ * ```
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * import * as v from "valibot";
32
+ * import { CreatedBySchema } from "@nakanoaas/notion-valibot-schema";
33
+ *
34
+ * const PageSchema = v.object({
35
+ * id: v.string(),
36
+ * properties: v.object({
37
+ * CreatedBy: CreatedBySchema,
38
+ * }),
39
+ * });
40
+ *
41
+ * const page = await notion.pages.retrieve({ page_id: "..." });
42
+ * const parsed = v.parse(PageSchema, page);
43
+ * // parsed.properties.CreatedBy: { id: string; object: "user" | "bot" | "group"; name: string | null }
44
+ * ```
45
+ */
4
46
  declare const CreatedBySchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
5
47
  readonly created_by: v.ObjectSchema<{
6
48
  readonly id: v.StringSchema<undefined>;
@@ -18,6 +60,40 @@ declare const CreatedBySchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
18
60
  object: "user" | "bot" | "group";
19
61
  name: string | null;
20
62
  }>]>;
63
+ /**
64
+ * Schema to extract the `created_by` person ID from a Notion page.
65
+ *
66
+ * **Input:**
67
+ * ```
68
+ * {
69
+ * created_by: {
70
+ * id: string;
71
+ * object: "user" | "bot" | "group";
72
+ * name: string | null;
73
+ * ...
74
+ * }
75
+ * }
76
+ * ```
77
+ *
78
+ * **Output:** `string`
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * import * as v from "valibot";
83
+ * import { CreatedByIdSchema } from "@nakanoaas/notion-valibot-schema";
84
+ *
85
+ * const PageSchema = v.object({
86
+ * id: v.string(),
87
+ * properties: v.object({
88
+ * CreatedById: CreatedByIdSchema,
89
+ * }),
90
+ * });
91
+ *
92
+ * const page = await notion.pages.retrieve({ page_id: "..." });
93
+ * const parsed = v.parse(PageSchema, page);
94
+ * // parsed.properties.CreatedById: string
95
+ * ```
96
+ */
21
97
  declare const CreatedByIdSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
22
98
  readonly created_by: v.ObjectSchema<{
23
99
  readonly id: v.StringSchema<undefined>;
@@ -2,7 +2,82 @@ import { PersonSchema } from "./people.mjs";
2
2
  import * as v from "valibot";
3
3
 
4
4
  //#region src/created-by.ts
5
+ /**
6
+ * Schema to extract the `created_by` person object from a Notion page.
7
+ *
8
+ * **Input:**
9
+ * ```
10
+ * {
11
+ * created_by: {
12
+ * id: string;
13
+ * object: "user" | "bot" | "group";
14
+ * name: string | null;
15
+ * ...
16
+ * }
17
+ * }
18
+ * ```
19
+ *
20
+ * **Output:**
21
+ * ```
22
+ * {
23
+ * id: string;
24
+ * object: "user" | "bot" | "group";
25
+ * name: string | null;
26
+ * }
27
+ * ```
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * import * as v from "valibot";
32
+ * import { CreatedBySchema } from "@nakanoaas/notion-valibot-schema";
33
+ *
34
+ * const PageSchema = v.object({
35
+ * id: v.string(),
36
+ * properties: v.object({
37
+ * CreatedBy: CreatedBySchema,
38
+ * }),
39
+ * });
40
+ *
41
+ * const page = await notion.pages.retrieve({ page_id: "..." });
42
+ * const parsed = v.parse(PageSchema, page);
43
+ * // parsed.properties.CreatedBy: { id: string; object: "user" | "bot" | "group"; name: string | null }
44
+ * ```
45
+ */
5
46
  const CreatedBySchema = v.pipe(v.object({ created_by: PersonSchema }), v.transform((v$1) => v$1.created_by));
47
+ /**
48
+ * Schema to extract the `created_by` person ID from a Notion page.
49
+ *
50
+ * **Input:**
51
+ * ```
52
+ * {
53
+ * created_by: {
54
+ * id: string;
55
+ * object: "user" | "bot" | "group";
56
+ * name: string | null;
57
+ * ...
58
+ * }
59
+ * }
60
+ * ```
61
+ *
62
+ * **Output:** `string`
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * import * as v from "valibot";
67
+ * import { CreatedByIdSchema } from "@nakanoaas/notion-valibot-schema";
68
+ *
69
+ * const PageSchema = v.object({
70
+ * id: v.string(),
71
+ * properties: v.object({
72
+ * CreatedById: CreatedByIdSchema,
73
+ * }),
74
+ * });
75
+ *
76
+ * const page = await notion.pages.retrieve({ page_id: "..." });
77
+ * const parsed = v.parse(PageSchema, page);
78
+ * // parsed.properties.CreatedById: string
79
+ * ```
80
+ */
6
81
  const CreatedByIdSchema = v.pipe(v.object({ created_by: PersonSchema }), v.transform((v$1) => v$1.created_by.id));
7
82
 
8
83
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"created-by.mjs","names":["v"],"sources":["../src/created-by.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport { PersonSchema } from \"./people\";\n\nexport const CreatedBySchema = v.pipe(\n\tv.object({\n\t\tcreated_by: PersonSchema,\n\t}),\n\tv.transform((v) => v.created_by),\n);\n\nexport const CreatedByIdSchema = v.pipe(\n\tv.object({\n\t\tcreated_by: PersonSchema,\n\t}),\n\tv.transform((v) => v.created_by.id),\n);\n"],"mappings":";;;;AAIA,MAAa,kBAAkB,EAAE,KAChC,EAAE,OAAO,EACR,YAAY,cACZ,CAAC,EACF,EAAE,WAAW,QAAMA,IAAE,WAAW,CAChC;AAED,MAAa,oBAAoB,EAAE,KAClC,EAAE,OAAO,EACR,YAAY,cACZ,CAAC,EACF,EAAE,WAAW,QAAMA,IAAE,WAAW,GAAG,CACnC"}
1
+ {"version":3,"file":"created-by.mjs","names":["v"],"sources":["../src/created-by.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport { PersonSchema } from \"./people\";\n\n/**\n * Schema to extract the `created_by` person object from a Notion page.\n *\n * **Input:**\n * ```\n * {\n * created_by: {\n * id: string;\n * object: \"user\" | \"bot\" | \"group\";\n * name: string | null;\n * ...\n * }\n * }\n * ```\n *\n * **Output:**\n * ```\n * {\n * id: string;\n * object: \"user\" | \"bot\" | \"group\";\n * name: string | null;\n * }\n * ```\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { CreatedBySchema } from \"@nakanoaas/notion-valibot-schema\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * CreatedBy: CreatedBySchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.CreatedBy: { id: string; object: \"user\" | \"bot\" | \"group\"; name: string | null }\n * ```\n */\nexport const CreatedBySchema = v.pipe(\n\tv.object({\n\t\tcreated_by: PersonSchema,\n\t}),\n\tv.transform((v) => v.created_by),\n);\n\n/**\n * Schema to extract the `created_by` person ID from a Notion page.\n *\n * **Input:**\n * ```\n * {\n * created_by: {\n * id: string;\n * object: \"user\" | \"bot\" | \"group\";\n * name: string | null;\n * ...\n * }\n * }\n * ```\n *\n * **Output:** `string`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { CreatedByIdSchema } from \"@nakanoaas/notion-valibot-schema\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * properties: v.object({\n * CreatedById: CreatedByIdSchema,\n * }),\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.properties.CreatedById: string\n * ```\n */\nexport const CreatedByIdSchema = v.pipe(\n\tv.object({\n\t\tcreated_by: PersonSchema,\n\t}),\n\tv.transform((v) => v.created_by.id),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAa,kBAAkB,EAAE,KAChC,EAAE,OAAO,EACR,YAAY,cACZ,CAAC,EACF,EAAE,WAAW,QAAMA,IAAE,WAAW,CAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCD,MAAa,oBAAoB,EAAE,KAClC,EAAE,OAAO,EACR,YAAY,cACZ,CAAC,EACF,EAAE,WAAW,QAAMA,IAAE,WAAW,GAAG,CACnC"}
@@ -3,6 +3,33 @@ let valibot = require("valibot");
3
3
  valibot = require_rolldown_runtime.__toESM(valibot);
4
4
 
5
5
  //#region src/created-time.ts
6
+ /**
7
+ * Schema to extract the `created_time` property from a Notion page and transform it to a `Date` object.
8
+ *
9
+ * **Input:**
10
+ * ```
11
+ * {
12
+ * created_time: string;
13
+ * }
14
+ * ```
15
+ *
16
+ * **Output:** `Date`
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * import * as v from "valibot";
21
+ * import { CreatedTimeSchema } from "@nakanoaas/notion-valibot-utils";
22
+ *
23
+ * const PageSchema = v.object({
24
+ * id: v.string(),
25
+ * created_time: CreatedTimeSchema,
26
+ * });
27
+ *
28
+ * const page = await notion.pages.retrieve({ page_id: "..." });
29
+ * const parsed = v.parse(PageSchema, page);
30
+ * // parsed.created_time: Date
31
+ * ```
32
+ */
6
33
  const CreatedTimeSchema = valibot.pipe(valibot.object({ created_time: valibot.string() }), valibot.transform((v) => new Date(v.created_time)));
7
34
 
8
35
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"created-time.cjs","names":["v"],"sources":["../src/created-time.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const CreatedTimeSchema = v.pipe(\n\tv.object({\n\t\tcreated_time: v.string(),\n\t}),\n\tv.transform((v) => new Date(v.created_time)),\n);\n"],"mappings":";;;;;AAEA,MAAa,oBAAoBA,QAAE,KAClCA,QAAE,OAAO,EACR,cAAcA,QAAE,QAAQ,EACxB,CAAC,EACFA,QAAE,WAAW,MAAM,IAAI,KAAK,EAAE,aAAa,CAAC,CAC5C"}
1
+ {"version":3,"file":"created-time.cjs","names":["v"],"sources":["../src/created-time.ts"],"sourcesContent":["import * as v from \"valibot\";\n\n/**\n * Schema to extract the `created_time` property from a Notion page and transform it to a `Date` object.\n *\n * **Input:**\n * ```\n * {\n * created_time: string;\n * }\n * ```\n *\n * **Output:** `Date`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { CreatedTimeSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * created_time: CreatedTimeSchema,\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.created_time: Date\n * ```\n */\nexport const CreatedTimeSchema = v.pipe(\n\tv.object({\n\t\tcreated_time: v.string(),\n\t}),\n\tv.transform((v) => new Date(v.created_time)),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAa,oBAAoBA,QAAE,KAClCA,QAAE,OAAO,EACR,cAAcA,QAAE,QAAQ,EACxB,CAAC,EACFA,QAAE,WAAW,MAAM,IAAI,KAAK,EAAE,aAAa,CAAC,CAC5C"}
@@ -1,6 +1,34 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/created-time.d.ts
4
+
5
+ /**
6
+ * Schema to extract the `created_time` property from a Notion page and transform it to a `Date` object.
7
+ *
8
+ * **Input:**
9
+ * ```
10
+ * {
11
+ * created_time: string;
12
+ * }
13
+ * ```
14
+ *
15
+ * **Output:** `Date`
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import * as v from "valibot";
20
+ * import { CreatedTimeSchema } from "@nakanoaas/notion-valibot-utils";
21
+ *
22
+ * const PageSchema = v.object({
23
+ * id: v.string(),
24
+ * created_time: CreatedTimeSchema,
25
+ * });
26
+ *
27
+ * const page = await notion.pages.retrieve({ page_id: "..." });
28
+ * const parsed = v.parse(PageSchema, page);
29
+ * // parsed.created_time: Date
30
+ * ```
31
+ */
4
32
  declare const CreatedTimeSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
5
33
  readonly created_time: v.StringSchema<undefined>;
6
34
  }, undefined>, v.TransformAction<{
@@ -1,6 +1,34 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/created-time.d.ts
4
+
5
+ /**
6
+ * Schema to extract the `created_time` property from a Notion page and transform it to a `Date` object.
7
+ *
8
+ * **Input:**
9
+ * ```
10
+ * {
11
+ * created_time: string;
12
+ * }
13
+ * ```
14
+ *
15
+ * **Output:** `Date`
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import * as v from "valibot";
20
+ * import { CreatedTimeSchema } from "@nakanoaas/notion-valibot-utils";
21
+ *
22
+ * const PageSchema = v.object({
23
+ * id: v.string(),
24
+ * created_time: CreatedTimeSchema,
25
+ * });
26
+ *
27
+ * const page = await notion.pages.retrieve({ page_id: "..." });
28
+ * const parsed = v.parse(PageSchema, page);
29
+ * // parsed.created_time: Date
30
+ * ```
31
+ */
4
32
  declare const CreatedTimeSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
5
33
  readonly created_time: v.StringSchema<undefined>;
6
34
  }, undefined>, v.TransformAction<{
@@ -1,6 +1,33 @@
1
1
  import * as v from "valibot";
2
2
 
3
3
  //#region src/created-time.ts
4
+ /**
5
+ * Schema to extract the `created_time` property from a Notion page and transform it to a `Date` object.
6
+ *
7
+ * **Input:**
8
+ * ```
9
+ * {
10
+ * created_time: string;
11
+ * }
12
+ * ```
13
+ *
14
+ * **Output:** `Date`
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import * as v from "valibot";
19
+ * import { CreatedTimeSchema } from "@nakanoaas/notion-valibot-utils";
20
+ *
21
+ * const PageSchema = v.object({
22
+ * id: v.string(),
23
+ * created_time: CreatedTimeSchema,
24
+ * });
25
+ *
26
+ * const page = await notion.pages.retrieve({ page_id: "..." });
27
+ * const parsed = v.parse(PageSchema, page);
28
+ * // parsed.created_time: Date
29
+ * ```
30
+ */
4
31
  const CreatedTimeSchema = v.pipe(v.object({ created_time: v.string() }), v.transform((v$1) => new Date(v$1.created_time)));
5
32
 
6
33
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"created-time.mjs","names":["v"],"sources":["../src/created-time.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const CreatedTimeSchema = v.pipe(\n\tv.object({\n\t\tcreated_time: v.string(),\n\t}),\n\tv.transform((v) => new Date(v.created_time)),\n);\n"],"mappings":";;;AAEA,MAAa,oBAAoB,EAAE,KAClC,EAAE,OAAO,EACR,cAAc,EAAE,QAAQ,EACxB,CAAC,EACF,EAAE,WAAW,QAAM,IAAI,KAAKA,IAAE,aAAa,CAAC,CAC5C"}
1
+ {"version":3,"file":"created-time.mjs","names":["v"],"sources":["../src/created-time.ts"],"sourcesContent":["import * as v from \"valibot\";\n\n/**\n * Schema to extract the `created_time` property from a Notion page and transform it to a `Date` object.\n *\n * **Input:**\n * ```\n * {\n * created_time: string;\n * }\n * ```\n *\n * **Output:** `Date`\n *\n * @example\n * ```ts\n * import * as v from \"valibot\";\n * import { CreatedTimeSchema } from \"@nakanoaas/notion-valibot-utils\";\n *\n * const PageSchema = v.object({\n * id: v.string(),\n * created_time: CreatedTimeSchema,\n * });\n *\n * const page = await notion.pages.retrieve({ page_id: \"...\" });\n * const parsed = v.parse(PageSchema, page);\n * // parsed.created_time: Date\n * ```\n */\nexport const CreatedTimeSchema = v.pipe(\n\tv.object({\n\t\tcreated_time: v.string(),\n\t}),\n\tv.transform((v) => new Date(v.created_time)),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAa,oBAAoB,EAAE,KAClC,EAAE,OAAO,EACR,cAAc,EAAE,QAAQ,EACxB,CAAC,EACF,EAAE,WAAW,QAAM,IAAI,KAAKA,IAAE,aAAa,CAAC,CAC5C"}
package/dist/date.cjs CHANGED
@@ -3,18 +3,206 @@ let valibot = require("valibot");
3
3
  valibot = require_rolldown_runtime.__toESM(valibot);
4
4
 
5
5
  //#region src/date.ts
6
+ /**
7
+ * Schema for a Notion date object structure.
8
+ *
9
+ * **Input:**
10
+ * ```
11
+ * {
12
+ * start: string;
13
+ * end: string | null;
14
+ * time_zone: string | null;
15
+ * }
16
+ * ```
17
+ *
18
+ * **Output:**
19
+ * ```
20
+ * {
21
+ * start: string;
22
+ * end: string | null;
23
+ * time_zone: string | null;
24
+ * }
25
+ * ```
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * import * as v from "valibot";
30
+ * import { DateObjectSchema } from "@nakanoaas/notion-valibot-utils";
31
+ *
32
+ * const PageSchema = v.object({
33
+ * id: v.string(),
34
+ * properties: v.object({
35
+ * Date: v.object({
36
+ * date: DateObjectSchema,
37
+ * }),
38
+ * }),
39
+ * });
40
+ *
41
+ * const page = await notion.pages.retrieve({ page_id: "..." });
42
+ * const parsed = v.parse(PageSchema, page);
43
+ * // parsed.properties.Date.date: { start: string; end: string | null; time_zone: string | null }
44
+ * ```
45
+ *
46
+ * @internal
47
+ */
6
48
  const DateObjectSchema = valibot.object({
7
49
  start: valibot.string(),
8
50
  end: valibot.nullable(valibot.string()),
9
51
  time_zone: valibot.nullable(valibot.string())
10
52
  });
53
+ /**
54
+ * Schema to extract the `date` property from a Notion page property and transform it to a `Date` object.
55
+ *
56
+ * **Input:**
57
+ * ```
58
+ * {
59
+ * date: {
60
+ * start: string;
61
+ * end: string | null;
62
+ * time_zone: string | null;
63
+ * }
64
+ * }
65
+ * ```
66
+ *
67
+ * **Output:** `Date`
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * import * as v from "valibot";
72
+ * import { DateSchema } from "@nakanoaas/notion-valibot-utils";
73
+ *
74
+ * const PageSchema = v.object({
75
+ * id: v.string(),
76
+ * properties: v.object({
77
+ * Date: DateSchema,
78
+ * }),
79
+ * });
80
+ *
81
+ * const page = await notion.pages.retrieve({ page_id: "..." });
82
+ * const parsed = v.parse(PageSchema, page);
83
+ * // parsed.properties.Date: Date
84
+ * ```
85
+ */
11
86
  const DateSchema = valibot.pipe(valibot.object({ date: DateObjectSchema }), valibot.transform((v) => new Date(v.date.start)));
87
+ /**
88
+ * Schema to extract the `date` property from a Notion page property and transform it to a `Date` object or `null`.
89
+ *
90
+ * **Input:**
91
+ * ```
92
+ * {
93
+ * date: {
94
+ * start: string;
95
+ * end: string | null;
96
+ * time_zone: string | null;
97
+ * } | null
98
+ * }
99
+ * ```
100
+ *
101
+ * **Output:** `Date | null`
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * import * as v from "valibot";
106
+ * import { NullableDateSchema } from "@nakanoaas/notion-valibot-utils";
107
+ *
108
+ * const PageSchema = v.object({
109
+ * id: v.string(),
110
+ * properties: v.object({
111
+ * Date: NullableDateSchema,
112
+ * }),
113
+ * });
114
+ *
115
+ * const page = await notion.pages.retrieve({ page_id: "..." });
116
+ * const parsed = v.parse(PageSchema, page);
117
+ * // parsed.properties.Date: Date | null
118
+ * ```
119
+ */
12
120
  const NullableDateSchema = valibot.pipe(valibot.object({ date: valibot.nullable(DateObjectSchema) }), valibot.transform((v) => v.date?.start ? new Date(v.date.start) : null));
121
+ /**
122
+ * Schema to extract the `date` property from a Notion page property and transform it to a date range object.
123
+ *
124
+ * **Input:**
125
+ * ```
126
+ * {
127
+ * date: {
128
+ * start: string;
129
+ * end: string | null;
130
+ * time_zone: string | null;
131
+ * }
132
+ * }
133
+ * ```
134
+ *
135
+ * **Output:**
136
+ * ```
137
+ * {
138
+ * start: Date;
139
+ * end: Date | null;
140
+ * time_zone: string | null;
141
+ * }
142
+ * ```
143
+ *
144
+ * @example
145
+ * ```ts
146
+ * import * as v from "valibot";
147
+ * import { DateRangeSchema } from "@nakanoaas/notion-valibot-utils";
148
+ *
149
+ * const PageSchema = v.object({
150
+ * id: v.string(),
151
+ * properties: v.object({
152
+ * DateRange: DateRangeSchema,
153
+ * }),
154
+ * });
155
+ *
156
+ * const page = await notion.pages.retrieve({ page_id: "..." });
157
+ * const parsed = v.parse(PageSchema, page);
158
+ * // parsed.properties.DateRange: { start: Date; end: Date | null; time_zone: string | null }
159
+ * ```
160
+ */
13
161
  const DateRangeSchema = valibot.pipe(valibot.object({ date: DateObjectSchema }), valibot.transform((v) => ({
14
162
  start: new Date(v.date.start),
15
163
  end: v.date.end ? new Date(v.date.end) : null,
16
164
  time_zone: v.date.time_zone
17
165
  })));
166
+ /**
167
+ * Schema to extract the `date` property from a Notion page property and transform it to a date range object or `null`.
168
+ *
169
+ * **Input:**
170
+ * ```
171
+ * {
172
+ * date: {
173
+ * start: string;
174
+ * end: string | null;
175
+ * time_zone: string | null;
176
+ * } | null
177
+ * }
178
+ * ```
179
+ *
180
+ * **Output:**
181
+ * ```
182
+ * {
183
+ * start: Date;
184
+ * end: Date | null;
185
+ * time_zone: string | null;
186
+ * } | null
187
+ * ```
188
+ *
189
+ * @example
190
+ * ```ts
191
+ * import * as v from "valibot";
192
+ * import { NullableDateRangeSchema } from "@nakanoaas/notion-valibot-utils";
193
+ *
194
+ * const PageSchema = v.object({
195
+ * id: v.string(),
196
+ * properties: v.object({
197
+ * DateRange: NullableDateRangeSchema,
198
+ * }),
199
+ * });
200
+ *
201
+ * const page = await notion.pages.retrieve({ page_id: "..." });
202
+ * const parsed = v.parse(PageSchema, page);
203
+ * // parsed.properties.DateRange: { start: Date; end: Date | null; time_zone: string | null } | null
204
+ * ```
205
+ */
18
206
  const NullableDateRangeSchema = valibot.pipe(valibot.object({ date: valibot.nullable(DateObjectSchema) }), valibot.transform((v) => v.date ? {
19
207
  start: new Date(v.date.start),
20
208
  end: v.date.end ? new Date(v.date.end) : null,
package/dist/date.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"date.cjs","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,mBAAmBA,QAAE,OAAO;CACxC,OAAOA,QAAE,QAAQ;CACjB,KAAKA,QAAE,SAASA,QAAE,QAAQ,CAAC;CAC3B,WAAWA,QAAE,SAASA,QAAE,QAAQ,CAAC;CACjC,CAAC;AAEF,MAAa,aAAaA,QAAE,KAC3BA,QAAE,OAAO,EACR,MAAM,kBACN,CAAC,EACFA,QAAE,WAAW,MAAM,IAAI,KAAK,EAAE,KAAK,MAAM,CAAC,CAC1C;AAED,MAAa,qBAAqBA,QAAE,KACnCA,QAAE,OAAO,EACR,MAAMA,QAAE,SAAS,iBAAiB,EAClC,CAAC,EACFA,QAAE,WAAW,MAAO,EAAE,MAAM,QAAQ,IAAI,KAAK,EAAE,KAAK,MAAM,GAAG,KAAM,CACnE;AAED,MAAa,kBAAkBA,QAAE,KAChCA,QAAE,OAAO,EACR,MAAM,kBACN,CAAC,EACFA,QAAE,WAAW,OAAO;CACnB,OAAO,IAAI,KAAK,EAAE,KAAK,MAAM;CAC7B,KAAK,EAAE,KAAK,MAAM,IAAI,KAAK,EAAE,KAAK,IAAI,GAAG;CACzC,WAAW,EAAE,KAAK;CAClB,EAAE,CACH;AAED,MAAa,0BAA0BA,QAAE,KACxCA,QAAE,OAAO,EACR,MAAMA,QAAE,SAAS,iBAAiB,EAClC,CAAC,EACFA,QAAE,WAAW,MACZ,EAAE,OACC;CACA,OAAO,IAAI,KAAK,EAAE,KAAK,MAAM;CAC7B,KAAK,EAAE,KAAK,MAAM,IAAI,KAAK,EAAE,KAAK,IAAI,GAAG;CACzC,WAAW,EAAE,KAAK;CAClB,GACA,KACH,CACD"}
1
+ {"version":3,"file":"date.cjs","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,mBAAmBA,QAAE,OAAO;CACxC,OAAOA,QAAE,QAAQ;CACjB,KAAKA,QAAE,SAASA,QAAE,QAAQ,CAAC;CAC3B,WAAWA,QAAE,SAASA,QAAE,QAAQ,CAAC;CACjC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCF,MAAa,aAAaA,QAAE,KAC3BA,QAAE,OAAO,EACR,MAAM,kBACN,CAAC,EACFA,QAAE,WAAW,MAAM,IAAI,KAAK,EAAE,KAAK,MAAM,CAAC,CAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCD,MAAa,qBAAqBA,QAAE,KACnCA,QAAE,OAAO,EACR,MAAMA,QAAE,SAAS,iBAAiB,EAClC,CAAC,EACFA,QAAE,WAAW,MAAO,EAAE,MAAM,QAAQ,IAAI,KAAK,EAAE,KAAK,MAAM,GAAG,KAAM,CACnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CD,MAAa,kBAAkBA,QAAE,KAChCA,QAAE,OAAO,EACR,MAAM,kBACN,CAAC,EACFA,QAAE,WAAW,OAAO;CACnB,OAAO,IAAI,KAAK,EAAE,KAAK,MAAM;CAC7B,KAAK,EAAE,KAAK,MAAM,IAAI,KAAK,EAAE,KAAK,IAAI,GAAG;CACzC,WAAW,EAAE,KAAK;CAClB,EAAE,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CD,MAAa,0BAA0BA,QAAE,KACxCA,QAAE,OAAO,EACR,MAAMA,QAAE,SAAS,iBAAiB,EAClC,CAAC,EACFA,QAAE,WAAW,MACZ,EAAE,OACC;CACA,OAAO,IAAI,KAAK,EAAE,KAAK,MAAM;CAC7B,KAAK,EAAE,KAAK,MAAM,IAAI,KAAK,EAAE,KAAK,IAAI,GAAG;CACzC,WAAW,EAAE,KAAK;CAClB,GACA,KACH,CACD"}