@visus-io/notion-sdk-ts 2.0.0 → 2.1.0

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 (206) hide show
  1. package/README.md +66 -921
  2. package/dist/api/base.api.d.ts +161 -0
  3. package/dist/api/base.api.js +228 -0
  4. package/dist/api/blocks.api.d.ts +3867 -4
  5. package/dist/api/blocks.api.js +16 -47
  6. package/dist/api/comments.api.d.ts +259 -4
  7. package/dist/api/comments.api.js +11 -29
  8. package/dist/api/dataSources.api.d.ts +788 -4
  9. package/dist/api/dataSources.api.js +14 -28
  10. package/dist/api/databases.api.d.ts +491 -4
  11. package/dist/api/databases.api.js +20 -45
  12. package/dist/api/fileUploads.api.d.ts +25 -3
  13. package/dist/api/fileUploads.api.js +7 -2
  14. package/dist/api/index.d.ts +0 -1
  15. package/dist/api/index.js +0 -1
  16. package/dist/api/pages.api.d.ts +864 -3
  17. package/dist/api/pages.api.js +14 -28
  18. package/dist/api/search.api.d.ts +0 -1
  19. package/dist/api/search.api.js +5 -11
  20. package/dist/api/users.api.d.ts +40 -4
  21. package/dist/api/users.api.js +12 -35
  22. package/dist/client.d.ts +0 -1
  23. package/dist/client.js +0 -1
  24. package/dist/errors.d.ts +0 -1
  25. package/dist/errors.js +0 -1
  26. package/dist/helpers/block.helpers.d.ts +4 -1
  27. package/dist/helpers/block.helpers.js +11 -1
  28. package/dist/helpers/file.helpers.d.ts +0 -1
  29. package/dist/helpers/file.helpers.js +0 -1
  30. package/dist/helpers/filter.helpers.d.ts +0 -1
  31. package/dist/helpers/filter.helpers.js +0 -1
  32. package/dist/helpers/index.d.ts +0 -1
  33. package/dist/helpers/index.js +0 -1
  34. package/dist/helpers/pagination.helpers.d.ts +0 -1
  35. package/dist/helpers/pagination.helpers.js +0 -1
  36. package/dist/helpers/parent.helpers.d.ts +0 -1
  37. package/dist/helpers/parent.helpers.js +0 -1
  38. package/dist/helpers/property.helpers.d.ts +0 -1
  39. package/dist/helpers/property.helpers.js +0 -1
  40. package/dist/helpers/richText.helpers.d.ts +0 -1
  41. package/dist/helpers/richText.helpers.js +0 -1
  42. package/dist/helpers/sort.helpers.d.ts +0 -1
  43. package/dist/helpers/sort.helpers.js +0 -1
  44. package/dist/index.d.ts +0 -1
  45. package/dist/index.js +0 -1
  46. package/dist/models/base.model.d.ts +2 -3
  47. package/dist/models/base.model.js +0 -1
  48. package/dist/models/block.model.d.ts +0 -1
  49. package/dist/models/block.model.js +0 -1
  50. package/dist/models/comment.model.d.ts +0 -1
  51. package/dist/models/comment.model.js +0 -1
  52. package/dist/models/dataSource.model.d.ts +0 -1
  53. package/dist/models/dataSource.model.js +0 -1
  54. package/dist/models/database.model.d.ts +0 -1
  55. package/dist/models/database.model.js +0 -1
  56. package/dist/models/fileUpload.model.d.ts +0 -1
  57. package/dist/models/fileUpload.model.js +0 -1
  58. package/dist/models/index.d.ts +0 -1
  59. package/dist/models/index.js +0 -1
  60. package/dist/models/page.model.d.ts +0 -1
  61. package/dist/models/page.model.js +0 -1
  62. package/dist/models/richText.model.d.ts +0 -1
  63. package/dist/models/richText.model.js +0 -1
  64. package/dist/models/user.model.d.ts +0 -1
  65. package/dist/models/user.model.js +0 -1
  66. package/dist/notion.d.ts +0 -1
  67. package/dist/notion.js +0 -1
  68. package/dist/schemas/block.schema.d.ts +261 -82
  69. package/dist/schemas/block.schema.js +157 -82
  70. package/dist/schemas/codeLanguages.d.ts +0 -1
  71. package/dist/schemas/codeLanguages.js +0 -1
  72. package/dist/schemas/colors.d.ts +0 -1
  73. package/dist/schemas/colors.js +0 -1
  74. package/dist/schemas/comment.schema.d.ts +9 -10
  75. package/dist/schemas/comment.schema.js +54 -21
  76. package/dist/schemas/dataSource.schema.d.ts +13 -14
  77. package/dist/schemas/dataSource.schema.js +46 -13
  78. package/dist/schemas/database.schema.d.ts +13 -14
  79. package/dist/schemas/database.schema.js +51 -18
  80. package/dist/schemas/emoji.schema.d.ts +1 -2
  81. package/dist/schemas/emoji.schema.js +37 -5
  82. package/dist/schemas/file.schema.d.ts +3 -4
  83. package/dist/schemas/file.schema.js +49 -16
  84. package/dist/schemas/fileUpload.schema.d.ts +3 -4
  85. package/dist/schemas/fileUpload.schema.js +47 -14
  86. package/dist/schemas/index.d.ts +1 -1
  87. package/dist/schemas/index.js +1 -1
  88. package/dist/schemas/page.schema.d.ts +30 -31
  89. package/dist/schemas/page.schema.js +47 -14
  90. package/dist/schemas/pageProperties.schema.d.ts +47 -48
  91. package/dist/schemas/pageProperties.schema.js +162 -129
  92. package/dist/schemas/pagination.schema.d.ts +1 -2
  93. package/dist/schemas/pagination.schema.js +40 -8
  94. package/dist/schemas/parent.schema.d.ts +1 -2
  95. package/dist/schemas/parent.schema.js +51 -19
  96. package/dist/schemas/propertyObjects.schema.d.ts +1 -2
  97. package/dist/schemas/propertyObjects.schema.js +194 -162
  98. package/dist/schemas/richText.schema.d.ts +7 -8
  99. package/dist/schemas/richText.schema.js +95 -57
  100. package/dist/schemas/shared.schema.d.ts +15 -0
  101. package/dist/schemas/shared.schema.js +54 -0
  102. package/dist/schemas/user.schema.d.ts +3 -4
  103. package/dist/schemas/user.schema.js +63 -31
  104. package/dist/validation.d.ts +0 -1
  105. package/dist/validation.js +0 -1
  106. package/package.json +3 -1
  107. package/dist/api/blocks.api.d.ts.map +0 -1
  108. package/dist/api/blocks.api.js.map +0 -1
  109. package/dist/api/comments.api.d.ts.map +0 -1
  110. package/dist/api/comments.api.js.map +0 -1
  111. package/dist/api/dataSources.api.d.ts.map +0 -1
  112. package/dist/api/dataSources.api.js.map +0 -1
  113. package/dist/api/databases.api.d.ts.map +0 -1
  114. package/dist/api/databases.api.js.map +0 -1
  115. package/dist/api/fileUploads.api.d.ts.map +0 -1
  116. package/dist/api/fileUploads.api.js.map +0 -1
  117. package/dist/api/index.d.ts.map +0 -1
  118. package/dist/api/index.js.map +0 -1
  119. package/dist/api/pages.api.d.ts.map +0 -1
  120. package/dist/api/pages.api.js.map +0 -1
  121. package/dist/api/search.api.d.ts.map +0 -1
  122. package/dist/api/search.api.js.map +0 -1
  123. package/dist/api/users.api.d.ts.map +0 -1
  124. package/dist/api/users.api.js.map +0 -1
  125. package/dist/client.d.ts.map +0 -1
  126. package/dist/client.js.map +0 -1
  127. package/dist/errors.d.ts.map +0 -1
  128. package/dist/errors.js.map +0 -1
  129. package/dist/helpers/block.helpers.d.ts.map +0 -1
  130. package/dist/helpers/block.helpers.js.map +0 -1
  131. package/dist/helpers/file.helpers.d.ts.map +0 -1
  132. package/dist/helpers/file.helpers.js.map +0 -1
  133. package/dist/helpers/filter.helpers.d.ts.map +0 -1
  134. package/dist/helpers/filter.helpers.js.map +0 -1
  135. package/dist/helpers/index.d.ts.map +0 -1
  136. package/dist/helpers/index.js.map +0 -1
  137. package/dist/helpers/pagination.helpers.d.ts.map +0 -1
  138. package/dist/helpers/pagination.helpers.js.map +0 -1
  139. package/dist/helpers/parent.helpers.d.ts.map +0 -1
  140. package/dist/helpers/parent.helpers.js.map +0 -1
  141. package/dist/helpers/property.helpers.d.ts.map +0 -1
  142. package/dist/helpers/property.helpers.js.map +0 -1
  143. package/dist/helpers/richText.helpers.d.ts.map +0 -1
  144. package/dist/helpers/richText.helpers.js.map +0 -1
  145. package/dist/helpers/sort.helpers.d.ts.map +0 -1
  146. package/dist/helpers/sort.helpers.js.map +0 -1
  147. package/dist/index.d.ts.map +0 -1
  148. package/dist/index.js.map +0 -1
  149. package/dist/models/base.model.d.ts.map +0 -1
  150. package/dist/models/base.model.js.map +0 -1
  151. package/dist/models/block.model.d.ts.map +0 -1
  152. package/dist/models/block.model.js.map +0 -1
  153. package/dist/models/comment.model.d.ts.map +0 -1
  154. package/dist/models/comment.model.js.map +0 -1
  155. package/dist/models/dataSource.model.d.ts.map +0 -1
  156. package/dist/models/dataSource.model.js.map +0 -1
  157. package/dist/models/database.model.d.ts.map +0 -1
  158. package/dist/models/database.model.js.map +0 -1
  159. package/dist/models/fileUpload.model.d.ts.map +0 -1
  160. package/dist/models/fileUpload.model.js.map +0 -1
  161. package/dist/models/index.d.ts.map +0 -1
  162. package/dist/models/index.js.map +0 -1
  163. package/dist/models/page.model.d.ts.map +0 -1
  164. package/dist/models/page.model.js.map +0 -1
  165. package/dist/models/richText.model.d.ts.map +0 -1
  166. package/dist/models/richText.model.js.map +0 -1
  167. package/dist/models/user.model.d.ts.map +0 -1
  168. package/dist/models/user.model.js.map +0 -1
  169. package/dist/notion.d.ts.map +0 -1
  170. package/dist/notion.js.map +0 -1
  171. package/dist/schemas/block.schema.d.ts.map +0 -1
  172. package/dist/schemas/block.schema.js.map +0 -1
  173. package/dist/schemas/codeLanguages.d.ts.map +0 -1
  174. package/dist/schemas/codeLanguages.js.map +0 -1
  175. package/dist/schemas/colors.d.ts.map +0 -1
  176. package/dist/schemas/colors.js.map +0 -1
  177. package/dist/schemas/comment.schema.d.ts.map +0 -1
  178. package/dist/schemas/comment.schema.js.map +0 -1
  179. package/dist/schemas/dataSource.schema.d.ts.map +0 -1
  180. package/dist/schemas/dataSource.schema.js.map +0 -1
  181. package/dist/schemas/database.schema.d.ts.map +0 -1
  182. package/dist/schemas/database.schema.js.map +0 -1
  183. package/dist/schemas/emoji.schema.d.ts.map +0 -1
  184. package/dist/schemas/emoji.schema.js.map +0 -1
  185. package/dist/schemas/file.schema.d.ts.map +0 -1
  186. package/dist/schemas/file.schema.js.map +0 -1
  187. package/dist/schemas/fileUpload.schema.d.ts.map +0 -1
  188. package/dist/schemas/fileUpload.schema.js.map +0 -1
  189. package/dist/schemas/index.d.ts.map +0 -1
  190. package/dist/schemas/index.js.map +0 -1
  191. package/dist/schemas/page.schema.d.ts.map +0 -1
  192. package/dist/schemas/page.schema.js.map +0 -1
  193. package/dist/schemas/pageProperties.schema.d.ts.map +0 -1
  194. package/dist/schemas/pageProperties.schema.js.map +0 -1
  195. package/dist/schemas/pagination.schema.d.ts.map +0 -1
  196. package/dist/schemas/pagination.schema.js.map +0 -1
  197. package/dist/schemas/parent.schema.d.ts.map +0 -1
  198. package/dist/schemas/parent.schema.js.map +0 -1
  199. package/dist/schemas/propertyObjects.schema.d.ts.map +0 -1
  200. package/dist/schemas/propertyObjects.schema.js.map +0 -1
  201. package/dist/schemas/richText.schema.d.ts.map +0 -1
  202. package/dist/schemas/richText.schema.js.map +0 -1
  203. package/dist/schemas/user.schema.d.ts.map +0 -1
  204. package/dist/schemas/user.schema.js.map +0 -1
  205. package/dist/validation.d.ts.map +0 -1
  206. package/dist/validation.js.map +0 -1
@@ -4,12 +4,19 @@ exports.DatabasesAPI = void 0;
4
4
  const schemas_1 = require("../schemas");
5
5
  const models_1 = require("../models");
6
6
  const validation_1 = require("../validation");
7
+ const base_api_1 = require("./base.api");
7
8
  /**
8
9
  * Databases API client for working with Notion databases.
9
10
  */
10
- class DatabasesAPI {
11
+ class DatabasesAPI extends base_api_1.BaseAPI {
11
12
  constructor(client) {
13
+ super(client);
12
14
  this.client = client;
15
+ this.config = {
16
+ schema: schemas_1.databaseSchema,
17
+ ModelClass: models_1.Database,
18
+ listType: 'database',
19
+ };
13
20
  }
14
21
  /**
15
22
  * Retrieve a database by ID.
@@ -21,18 +28,10 @@ class DatabasesAPI {
21
28
  * @see https://developers.notion.com/reference/retrieve-a-database
22
29
  */
23
30
  async retrieve(databaseId, options) {
24
- const query = {};
25
- if (options?.filter_properties) {
26
- (0, validation_1.validateArrayLength)(options.filter_properties, validation_1.LIMITS.ARRAY_ELEMENTS, 'filter_properties');
27
- query.filter_properties = options.filter_properties.join(',');
28
- }
29
- const response = await this.client.request({
30
- method: 'GET',
31
- path: `/databases/${databaseId}`,
32
- query: Object.keys(query).length > 0 ? query : undefined,
33
- });
34
- const parsed = schemas_1.databaseSchema.parse(response);
35
- return new models_1.Database(parsed);
31
+ const query = {
32
+ ...this.buildFilterPropertiesQuery(options?.filter_properties),
33
+ };
34
+ return this.retrieveResource(`/databases/${databaseId}`, query);
36
35
  }
37
36
  /**
38
37
  * Query a database with optional filters and sorts.
@@ -45,23 +44,12 @@ class DatabasesAPI {
45
44
  * @see https://developers.notion.com/reference/post-database-query
46
45
  */
47
46
  async query(databaseId, options) {
48
- const body = {};
49
- if (options?.filter) {
50
- body.filter = options.filter;
51
- }
52
- if (options?.sorts) {
53
- body.sorts = options.sorts;
54
- }
55
- if (options?.page_size) {
56
- body.page_size = options.page_size;
57
- }
58
- if (options?.start_cursor) {
59
- body.start_cursor = options.start_cursor;
60
- }
61
- if (options?.filter_properties) {
62
- (0, validation_1.validateArrayLength)(options.filter_properties, validation_1.LIMITS.ARRAY_ELEMENTS, 'filter_properties');
63
- body.filter_properties = options.filter_properties;
64
- }
47
+ const body = {
48
+ ...(options?.filter ? { filter: options.filter } : {}),
49
+ ...(options?.sorts ? { sorts: options.sorts } : {}),
50
+ ...this.buildPaginationBody(options),
51
+ ...this.buildFilterPropertiesBody(options?.filter_properties),
52
+ };
65
53
  const response = await this.client.request({
66
54
  method: 'POST',
67
55
  path: `/databases/${databaseId}/query`,
@@ -95,13 +83,7 @@ class DatabasesAPI {
95
83
  if (options.initial_data_source.title) {
96
84
  (0, validation_1.validateArrayLength)(options.initial_data_source.title, validation_1.LIMITS.ARRAY_ELEMENTS, 'initial_data_source.title');
97
85
  }
98
- const response = await this.client.request({
99
- method: 'POST',
100
- path: '/databases',
101
- body: options,
102
- });
103
- const parsed = schemas_1.databaseSchema.parse(response);
104
- return new models_1.Database(parsed);
86
+ return this.createResource('/databases', options);
105
87
  }
106
88
  /**
107
89
  * Update a database's properties, title, description, or archived status.
@@ -116,13 +98,7 @@ class DatabasesAPI {
116
98
  if (options.title) {
117
99
  (0, validation_1.validateArrayLength)(options.title, validation_1.LIMITS.ARRAY_ELEMENTS, 'title');
118
100
  }
119
- const response = await this.client.request({
120
- method: 'PATCH',
121
- path: `/databases/${databaseId}`,
122
- body: options,
123
- });
124
- const parsed = schemas_1.databaseSchema.parse(response);
125
- return new models_1.Database(parsed);
101
+ return this.updateResource(`/databases/${databaseId}`, options);
126
102
  }
127
103
  /**
128
104
  * Archive a database (convenience method).
@@ -144,4 +120,3 @@ class DatabasesAPI {
144
120
  }
145
121
  }
146
122
  exports.DatabasesAPI = DatabasesAPI;
147
- //# sourceMappingURL=databases.api.js.map
@@ -1,5 +1,7 @@
1
1
  import type { NotionClient } from '../client';
2
+ import { type NotionFileUpload } from '../schemas';
2
3
  import { FileUpload } from '../models';
4
+ import { BaseAPI } from './base.api';
3
5
  /**
4
6
  * Options for initiating a file upload.
5
7
  */
@@ -18,8 +20,29 @@ export type FileData = Buffer | ArrayBuffer | Blob | ReadableStream;
18
20
  /**
19
21
  * FileUploads API client for uploading files to Notion.
20
22
  */
21
- export declare class FileUploadsAPI {
22
- private readonly client;
23
+ export declare class FileUploadsAPI extends BaseAPI<NotionFileUpload, FileUpload> {
24
+ protected readonly client: NotionClient;
25
+ protected config: {
26
+ schema: import("zod").ZodObject<{
27
+ object: import("zod").ZodLiteral<"file_upload">;
28
+ id: import("zod").ZodUUID;
29
+ created_time: import("zod").ZodUnion<readonly [import("zod").ZodISODateTime, import("zod").ZodISODate]>;
30
+ expiry_time: import("zod").ZodNullable<import("zod").ZodUnion<readonly [import("zod").ZodISODateTime, import("zod").ZodISODate]>>;
31
+ status: import("zod").ZodEnum<{
32
+ pending: "pending";
33
+ uploaded: "uploaded";
34
+ expired: "expired";
35
+ failed: "failed";
36
+ }>;
37
+ filename: import("zod").ZodString;
38
+ content_type: import("zod").ZodNullable<import("zod").ZodString>;
39
+ content_length: import("zod").ZodNullable<import("zod").ZodNumber>;
40
+ upload_url: import("zod").ZodString;
41
+ complete_url: import("zod").ZodString;
42
+ file_import_result: import("zod").ZodString;
43
+ }, import("zod/v4/core").$strip>;
44
+ ModelClass: typeof FileUpload;
45
+ };
23
46
  constructor(client: NotionClient);
24
47
  /**
25
48
  * Initiate a file upload and get the upload URL.
@@ -70,4 +93,3 @@ export declare class FileUploadsAPI {
70
93
  */
71
94
  retrieve(fileUploadId: string): Promise<FileUpload>;
72
95
  }
73
- //# sourceMappingURL=fileUploads.api.d.ts.map
@@ -3,12 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FileUploadsAPI = void 0;
4
4
  const schemas_1 = require("../schemas");
5
5
  const models_1 = require("../models");
6
+ const base_api_1 = require("./base.api");
6
7
  /**
7
8
  * FileUploads API client for uploading files to Notion.
8
9
  */
9
- class FileUploadsAPI {
10
+ class FileUploadsAPI extends base_api_1.BaseAPI {
10
11
  constructor(client) {
12
+ super(client);
11
13
  this.client = client;
14
+ this.config = {
15
+ schema: schemas_1.fileUploadSchema,
16
+ ModelClass: models_1.FileUpload,
17
+ };
12
18
  }
13
19
  /**
14
20
  * Initiate a file upload and get the upload URL.
@@ -119,4 +125,3 @@ class FileUploadsAPI {
119
125
  }
120
126
  }
121
127
  exports.FileUploadsAPI = FileUploadsAPI;
122
- //# sourceMappingURL=fileUploads.api.js.map
@@ -6,4 +6,3 @@ export { FileUploadsAPI } from './fileUploads.api';
6
6
  export { PagesAPI } from './pages.api';
7
7
  export { SearchAPI } from './search.api';
8
8
  export { UsersAPI } from './users.api';
9
- //# sourceMappingURL=index.d.ts.map
package/dist/api/index.js CHANGED
@@ -17,4 +17,3 @@ var search_api_1 = require("./search.api");
17
17
  Object.defineProperty(exports, "SearchAPI", { enumerable: true, get: function () { return search_api_1.SearchAPI; } });
18
18
  var users_api_1 = require("./users.api");
19
19
  Object.defineProperty(exports, "UsersAPI", { enumerable: true, get: function () { return users_api_1.UsersAPI; } });
20
- //# sourceMappingURL=index.js.map