@notionhq/workers 0.5.0 → 0.6.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 (189) hide show
  1. package/dist/alpha/builder.d.ts +149 -0
  2. package/dist/alpha/builder.d.ts.map +1 -0
  3. package/dist/alpha/builder.js +260 -0
  4. package/dist/alpha/builder.test.d.ts +2 -0
  5. package/dist/alpha/builder.test.d.ts.map +1 -0
  6. package/dist/alpha/cli/build.d.ts +13 -0
  7. package/dist/alpha/cli/build.d.ts.map +1 -0
  8. package/dist/alpha/cli/build.js +36 -0
  9. package/dist/alpha/cli/build.test.d.ts +2 -0
  10. package/dist/alpha/cli/build.test.d.ts.map +1 -0
  11. package/dist/alpha/cli/codegen.d.ts +10 -0
  12. package/dist/alpha/cli/codegen.d.ts.map +1 -0
  13. package/dist/alpha/cli/codegen.js +41 -0
  14. package/dist/alpha/cli/codegen.test.d.ts +2 -0
  15. package/dist/alpha/cli/codegen.test.d.ts.map +1 -0
  16. package/dist/alpha/cli/discover.d.ts +35 -0
  17. package/dist/alpha/cli/discover.d.ts.map +1 -0
  18. package/dist/alpha/cli/discover.js +39 -0
  19. package/dist/alpha/cli/discover.test.d.ts +2 -0
  20. package/dist/alpha/cli/discover.test.d.ts.map +1 -0
  21. package/dist/alpha/cli/emit-manifest.d.ts +33 -0
  22. package/dist/alpha/cli/emit-manifest.d.ts.map +1 -0
  23. package/dist/alpha/cli/emit-manifest.js +266 -0
  24. package/dist/alpha/cli/emit-manifest.test.d.ts +2 -0
  25. package/dist/alpha/cli/emit-manifest.test.d.ts.map +1 -0
  26. package/dist/alpha/cli/index.d.ts +3 -0
  27. package/dist/alpha/cli/index.d.ts.map +1 -0
  28. package/dist/alpha/cli/index.js +36 -0
  29. package/dist/alpha/context.d.ts +8 -0
  30. package/dist/alpha/context.d.ts.map +1 -0
  31. package/dist/alpha/context.js +33 -0
  32. package/dist/alpha/database.d.ts +90 -0
  33. package/dist/alpha/database.d.ts.map +1 -0
  34. package/dist/alpha/database.js +9 -0
  35. package/dist/alpha/error.d.ts +41 -0
  36. package/dist/alpha/error.d.ts.map +1 -0
  37. package/dist/alpha/error.js +25 -0
  38. package/dist/alpha/icon-names.d.ts +6 -0
  39. package/dist/alpha/icon-names.d.ts.map +1 -0
  40. package/dist/alpha/icon-names.js +0 -0
  41. package/dist/alpha/json-schema.d.ts +117 -0
  42. package/dist/alpha/json-schema.d.ts.map +1 -0
  43. package/dist/alpha/json-schema.js +0 -0
  44. package/dist/alpha/manifest.d.ts +44 -0
  45. package/dist/alpha/manifest.d.ts.map +1 -0
  46. package/dist/alpha/manifest.js +0 -0
  47. package/dist/alpha/output.d.ts +7 -0
  48. package/dist/alpha/output.d.ts.map +1 -0
  49. package/dist/alpha/output.js +8 -0
  50. package/dist/alpha/pacer.d.ts +74 -0
  51. package/dist/alpha/pacer.d.ts.map +1 -0
  52. package/dist/alpha/pacer.js +66 -0
  53. package/dist/alpha/pacer.test.d.ts +2 -0
  54. package/dist/alpha/pacer.test.d.ts.map +1 -0
  55. package/dist/alpha/schedule.d.ts +6 -0
  56. package/dist/alpha/schedule.d.ts.map +1 -0
  57. package/dist/alpha/schedule.js +43 -0
  58. package/dist/alpha/schedule.test.d.ts +2 -0
  59. package/dist/alpha/schedule.test.d.ts.map +1 -0
  60. package/dist/alpha/schema-builder.d.ts +79 -0
  61. package/dist/alpha/schema-builder.d.ts.map +1 -0
  62. package/dist/alpha/schema-builder.js +135 -0
  63. package/dist/alpha/schema.d.ts +185 -0
  64. package/dist/alpha/schema.d.ts.map +1 -0
  65. package/dist/alpha/schema.js +115 -0
  66. package/dist/alpha/sync.d.ts +233 -0
  67. package/dist/alpha/sync.d.ts.map +1 -0
  68. package/dist/alpha/sync.js +70 -0
  69. package/dist/alpha/sync.test.d.ts +2 -0
  70. package/dist/alpha/sync.test.d.ts.map +1 -0
  71. package/dist/alpha/tool.d.ts +132 -0
  72. package/dist/alpha/tool.d.ts.map +1 -0
  73. package/dist/alpha/tool.js +156 -0
  74. package/dist/alpha/tool.test.d.ts +2 -0
  75. package/dist/alpha/tool.test.d.ts.map +1 -0
  76. package/dist/alpha/triggers.d.ts +365 -0
  77. package/dist/alpha/triggers.d.ts.map +1 -0
  78. package/dist/alpha/triggers.generated.d.ts +246 -0
  79. package/dist/alpha/triggers.generated.d.ts.map +1 -0
  80. package/dist/alpha/triggers.generated.js +239 -0
  81. package/dist/alpha/triggers.js +0 -0
  82. package/dist/alpha/types.d.ts +228 -0
  83. package/dist/alpha/types.d.ts.map +1 -0
  84. package/dist/alpha/types.js +0 -0
  85. package/dist/alpha/workflow.d.ts +70 -0
  86. package/dist/alpha/workflow.d.ts.map +1 -0
  87. package/dist/alpha/workflow.js +39 -0
  88. package/dist/alpha/workflow.test.d.ts +2 -0
  89. package/dist/alpha/workflow.test.d.ts.map +1 -0
  90. package/dist/builder.d.ts.map +1 -1
  91. package/dist/builder.js +2 -6
  92. package/dist/capabilities/ai_connector.d.ts.map +1 -1
  93. package/dist/capabilities/automation.d.ts.map +1 -1
  94. package/dist/capabilities/context.d.ts.map +1 -1
  95. package/dist/capabilities/custom-block.d.ts +124 -0
  96. package/dist/capabilities/custom-block.d.ts.map +1 -0
  97. package/dist/capabilities/custom-block.js +22 -0
  98. package/dist/capabilities/oauth.d.ts.map +1 -1
  99. package/dist/capabilities/output.d.ts.map +1 -1
  100. package/dist/capabilities/output.js +2 -4
  101. package/dist/capabilities/stateful-capability.d.ts.map +1 -1
  102. package/dist/capabilities/stateful-capability.js +2 -6
  103. package/dist/capabilities/sync.d.ts.map +1 -1
  104. package/dist/capabilities/sync.js +2 -8
  105. package/dist/capabilities/tool.d.ts.map +1 -1
  106. package/dist/capabilities/tool.js +6 -20
  107. package/dist/capabilities/webhook.d.ts.map +1 -1
  108. package/dist/capabilities/workflow.d.ts +2 -2
  109. package/dist/capabilities/workflow.d.ts.map +1 -1
  110. package/dist/index.d.ts +3 -2
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +1 -7
  113. package/dist/json-schema.d.ts.map +1 -1
  114. package/dist/schema-builder.d.ts.map +1 -1
  115. package/dist/schema.d.ts.map +1 -1
  116. package/dist/types.d.ts.map +1 -1
  117. package/dist/worker.d.ts +41 -1
  118. package/dist/worker.d.ts.map +1 -1
  119. package/dist/worker.js +51 -4
  120. package/package.json +74 -14
  121. package/src/alpha/ajv-formats.d.ts +7 -0
  122. package/src/alpha/builder.test.ts +197 -0
  123. package/src/alpha/builder.ts +338 -0
  124. package/src/alpha/cli/build.test.ts +240 -0
  125. package/src/alpha/cli/build.ts +57 -0
  126. package/src/alpha/cli/codegen.test.ts +31 -0
  127. package/src/alpha/cli/codegen.ts +51 -0
  128. package/src/alpha/cli/discover.test.ts +43 -0
  129. package/src/alpha/cli/discover.ts +81 -0
  130. package/src/alpha/cli/emit-manifest.test.ts +45 -0
  131. package/src/alpha/cli/emit-manifest.ts +409 -0
  132. package/src/alpha/cli/index.ts +41 -0
  133. package/src/alpha/context.ts +61 -0
  134. package/src/alpha/database.ts +102 -0
  135. package/src/alpha/error.ts +49 -0
  136. package/src/alpha/icon-names.ts +890 -0
  137. package/src/alpha/json-schema.ts +180 -0
  138. package/src/alpha/manifest.ts +47 -0
  139. package/src/alpha/output.ts +8 -0
  140. package/src/alpha/pacer.test.ts +81 -0
  141. package/src/alpha/pacer.ts +181 -0
  142. package/src/alpha/schedule.test.ts +31 -0
  143. package/src/alpha/schedule.ts +53 -0
  144. package/src/alpha/schema-builder.ts +193 -0
  145. package/src/alpha/schema.ts +222 -0
  146. package/src/alpha/sync.test.ts +191 -0
  147. package/src/alpha/sync.ts +340 -0
  148. package/src/alpha/tool.test.ts +116 -0
  149. package/src/alpha/tool.ts +319 -0
  150. package/src/alpha/triggers.generated.ts +489 -0
  151. package/src/alpha/triggers.ts +500 -0
  152. package/src/alpha/types.ts +284 -0
  153. package/src/alpha/workflow.test.ts +84 -0
  154. package/src/alpha/workflow.ts +131 -0
  155. package/src/builder.test.ts +28 -60
  156. package/src/builder.ts +3 -10
  157. package/src/capabilities/ai_connector.test.ts +9 -32
  158. package/src/capabilities/ai_connector.ts +5 -17
  159. package/src/capabilities/automation.test.ts +3 -12
  160. package/src/capabilities/automation.ts +3 -11
  161. package/src/capabilities/context.ts +3 -6
  162. package/src/capabilities/custom-block.ts +181 -0
  163. package/src/capabilities/oauth.test.ts +1 -0
  164. package/src/capabilities/oauth.ts +1 -3
  165. package/src/capabilities/output.ts +1 -3
  166. package/src/capabilities/stateful-capability.test.ts +1 -0
  167. package/src/capabilities/stateful-capability.ts +2 -6
  168. package/src/capabilities/sync.test.ts +15 -45
  169. package/src/capabilities/sync.ts +10 -40
  170. package/src/capabilities/tool.test.ts +106 -146
  171. package/src/capabilities/tool.ts +17 -39
  172. package/src/capabilities/webhook.ts +3 -10
  173. package/src/capabilities/workflow.test.ts +10 -31
  174. package/src/capabilities/workflow.ts +5 -12
  175. package/src/index.ts +9 -12
  176. package/src/json-schema.test.ts +2 -4
  177. package/src/json-schema.ts +7 -6
  178. package/src/pacer.test.ts +1 -3
  179. package/src/pacer_internal.ts +1 -5
  180. package/src/schema-builder.test.ts +10 -35
  181. package/src/schema-builder.ts +5 -16
  182. package/src/schema.ts +2 -10
  183. package/src/types.ts +1 -7
  184. package/src/worker.test.ts +147 -0
  185. package/src/worker.ts +67 -35
  186. package/dist/block.d.ts +0 -321
  187. package/dist/block.d.ts.map +0 -1
  188. package/src/block.ts +0 -529
  189. /package/dist/{block.js → alpha/ajv-formats.d.js} +0 -0
package/src/worker.ts CHANGED
@@ -11,6 +11,11 @@ import type {
11
11
  } from "./capabilities/automation.js";
12
12
  import { createAutomationCapability } from "./capabilities/automation.js";
13
13
  import type { CapabilityContext } from "./capabilities/context.js";
14
+ import type {
15
+ CustomBlockCapability,
16
+ CustomBlockConfiguration,
17
+ } from "./capabilities/custom-block.js";
18
+ import { createCustomBlockCapability } from "./capabilities/custom-block.js";
14
19
  import type {
15
20
  NotionManagedOAuthConfiguration,
16
21
  OAuthCapability,
@@ -27,10 +32,7 @@ import type {
27
32
  WebhookConfiguration,
28
33
  WebhookEvent,
29
34
  } from "./capabilities/webhook.js";
30
- import {
31
- createWebhookCapability,
32
- WebhookVerificationError,
33
- } from "./capabilities/webhook.js";
35
+ import { createWebhookCapability, WebhookVerificationError } from "./capabilities/webhook.js";
34
36
  import type {
35
37
  WorkflowCapability,
36
38
  WorkflowConfiguration,
@@ -68,12 +70,12 @@ export { WebhookVerificationError };
68
70
  type Capability =
69
71
  | SyncCapability
70
72
  | AiConnectorCapability
71
- // biome-ignore lint/suspicious/noExplicitAny: tool capabilities are generic over arbitrary input/output payloads.
72
73
  | ToolCapability<any, any>
73
74
  | AutomationCapability
74
75
  | WorkflowCapability
75
76
  | OAuthCapability
76
- | WebhookCapability;
77
+ | WebhookCapability
78
+ | CustomBlockCapability;
77
79
 
78
80
  export type CapabilityType = Capability["_tag"];
79
81
 
@@ -92,19 +94,13 @@ export type CapabilityType = Capability["_tag"];
92
94
  // incoming context matches the capability's declared input.
93
95
 
94
96
  /** A tool capability as stored: its input/output types are erased. */
95
- type StoredToolCapability = Omit<
96
- Extract<Capability, { _tag: "tool" }>,
97
- "handler"
98
- > & {
97
+ type StoredToolCapability = Omit<Extract<Capability, { _tag: "tool" }>, "handler"> & {
99
98
  handler: (input: never, options?: HandlerOptions) => Promise<unknown>;
100
99
  };
101
100
 
102
101
  /** A workflow capability as stored: its event type is erased. */
103
102
  type StoredWorkflowCapability = Omit<WorkflowCapability, "handler"> & {
104
- handler: (
105
- event: never,
106
- options?: HandlerOptions,
107
- ) => Promise<{ status: "success" } | undefined>;
103
+ handler: (event: never, options?: HandlerOptions) => Promise<{ status: "success" } | undefined>;
108
104
  };
109
105
 
110
106
  /** How `Worker` stores registered capabilities internally. */
@@ -115,6 +111,7 @@ type StoredCapability =
115
111
  | AutomationCapability
116
112
  | StoredWorkflowCapability
117
113
  | OAuthCapability
114
+ | CustomBlockCapability
118
115
  | WebhookCapability;
119
116
 
120
117
  /**
@@ -148,10 +145,7 @@ export type ManagedDatabaseConfig<PK extends string, S extends Schema<PK>> = {
148
145
  * Configuration union for all database types.
149
146
  * Currently only `"managed"` is supported.
150
147
  */
151
- export type DatabaseConfig<
152
- PK extends string,
153
- S extends Schema<PK>,
154
- > = ManagedDatabaseConfig<PK, S>;
148
+ export type DatabaseConfig<PK extends string, S extends Schema<PK>> = ManagedDatabaseConfig<PK, S>;
155
149
 
156
150
  /**
157
151
  * An opaque handle returned by `worker.database()`. Pass this to
@@ -495,10 +489,7 @@ export class Worker {
495
489
  * @param config - The automation configuration.
496
490
  * @returns The capability object.
497
491
  */
498
- automation(
499
- key: string,
500
- config: AutomationConfiguration,
501
- ): AutomationCapability {
492
+ automation(key: string, config: AutomationConfiguration): AutomationCapability {
502
493
  this.#validateUniqueKey(key);
503
494
  const capability = createAutomationCapability(key, config);
504
495
  this.#capabilities.set(key, capability);
@@ -532,9 +523,7 @@ export class Worker {
532
523
  * @param config - The workflow configuration.
533
524
  * @returns The capability object.
534
525
  */
535
- workflow<
536
- const TTriggers extends readonly [WorkflowTrigger, ...WorkflowTrigger[]],
537
- >(
526
+ workflow<const TTriggers extends readonly [WorkflowTrigger, ...WorkflowTrigger[]]>(
538
527
  key: string,
539
528
  config: WorkflowConfiguration<TTriggers>,
540
529
  ): WorkflowCapability<TTriggers> {
@@ -627,6 +616,51 @@ export class Worker {
627
616
  return capability;
628
617
  }
629
618
 
619
+ /**
620
+ * Register a custom block capability.
621
+ *
622
+ * A custom block is a front-end view that the deploy pipeline builds from
623
+ * the source entry into a deployable bundle. It can optionally declare a
624
+ * data-source *schema* (`name`, and optional `description`, `icon`, and
625
+ * `properties`) that the block reads.
626
+ *
627
+ * Example:
628
+ *
629
+ * ```ts
630
+ * const worker = new Worker();
631
+ * export default worker;
632
+ *
633
+ * worker.customBlock("issueBoard", {
634
+ * version: 1,
635
+ * path: "./views/issueBoard",
636
+ * dataSources: {
637
+ * issues: {
638
+ * name: "Issues",
639
+ * properties: {
640
+ * title: { name: "Title", type: "title" },
641
+ * status: { name: "Status", type: "status" },
642
+ * },
643
+ * },
644
+ * },
645
+ * });
646
+ * ```
647
+ *
648
+ * The manifest keys (`version`, `dataSources`) are top-level on the config;
649
+ * the SDK assembles the deploy-wire `CustomBlockManifest` from them. Binding
650
+ * each declared data source to a concrete managed database is instance-level
651
+ * and handled at deploy time — the worker does not emit bindings.
652
+ *
653
+ * @param key - The unique key for this block (the block declaration key).
654
+ * @param config - The custom block configuration (a `project`/`static` source folder + optional `version`/`dataSources` schema).
655
+ * @returns The custom block capability.
656
+ */
657
+ customBlock(key: string, config: CustomBlockConfiguration): CustomBlockCapability {
658
+ this.#validateUniqueKey(key);
659
+ const capability = createCustomBlockCapability(key, config);
660
+ this.#capabilities.set(key, capability);
661
+ return capability;
662
+ }
663
+
630
664
  /**
631
665
  * Get all registered capabilities (for discovery) without their handlers.
632
666
  */
@@ -655,11 +689,7 @@ export class Worker {
655
689
  * @param options - Additional options for execution (e.g. for testing).
656
690
  * @returns The result of the capability execution.
657
691
  */
658
- async run(
659
- key: string,
660
- context: unknown,
661
- options: HandlerOptions = {},
662
- ): Promise<unknown> {
692
+ async run(key: string, context: unknown, options: HandlerOptions = {}): Promise<unknown> {
663
693
  const capability = this.#capabilities.get(key);
664
694
 
665
695
  if (!capability) {
@@ -672,6 +702,12 @@ export class Worker {
672
702
  );
673
703
  }
674
704
 
705
+ if (capability._tag === "custom_block") {
706
+ throw new Error(
707
+ `Cannot run custom block capability "${key}" - custom blocks only provide configuration`,
708
+ );
709
+ }
710
+
675
711
  if (!capability.handler) {
676
712
  throw new Error(`Capability "${key}" cannot be executed`);
677
713
  }
@@ -687,11 +723,7 @@ export class Worker {
687
723
  if (!key || typeof key !== "string") {
688
724
  throw new Error("Capability key must be a non-empty string");
689
725
  }
690
- if (
691
- this.#capabilities.has(key) ||
692
- this.#databases.has(key) ||
693
- this.#pacers.has(key)
694
- ) {
726
+ if (this.#capabilities.has(key) || this.#databases.has(key) || this.#pacers.has(key)) {
695
727
  throw new Error(`Worker item with key "${key}" already registered`);
696
728
  }
697
729
  }
package/dist/block.d.ts DELETED
@@ -1,321 +0,0 @@
1
- type ApiColor = "default" | "gray" | "brown" | "orange" | "yellow" | "green" | "blue" | "purple" | "pink" | "red" | "gray_background" | "brown_background" | "orange_background" | "yellow_background" | "green_background" | "blue_background" | "purple_background" | "pink_background" | "red_background";
2
- type RichTextAnnotations = {
3
- bold: boolean;
4
- italic: boolean;
5
- strikethrough: boolean;
6
- underline: boolean;
7
- code: boolean;
8
- color: ApiColor;
9
- };
10
- type RichTextBase = {
11
- plain_text: string;
12
- href: string | null;
13
- annotations: RichTextAnnotations;
14
- };
15
- type TextContent = {
16
- content: string;
17
- link: {
18
- url: string;
19
- } | null;
20
- };
21
- type EquationContent = {
22
- expression: string;
23
- };
24
- type DateMention = {
25
- type: "date";
26
- date: {
27
- start: string;
28
- end?: string | null;
29
- time_zone?: string | null;
30
- };
31
- };
32
- type CustomEmojiMention = {
33
- type: "custom_emoji";
34
- custom_emoji: {
35
- id: string;
36
- name?: string;
37
- url?: string;
38
- };
39
- };
40
- type LinkPreviewMention = {
41
- type: "link_preview";
42
- link_preview: {
43
- url: string;
44
- };
45
- };
46
- type LinkMention = {
47
- type: "link_mention";
48
- link_mention: {
49
- href: string;
50
- };
51
- };
52
- type MentionContent = DateMention | CustomEmojiMention | LinkPreviewMention | LinkMention;
53
- type RichTextItem = RichTextBase & ({
54
- type: "text";
55
- text: TextContent;
56
- } | {
57
- type: "mention";
58
- mention: MentionContent;
59
- } | {
60
- type: "equation";
61
- equation: EquationContent;
62
- });
63
- type RichText = RichTextItem[];
64
- type EmojiIcon = {
65
- type: "emoji";
66
- emoji: string;
67
- };
68
- type ExternalIcon = {
69
- type: "external";
70
- external: {
71
- url: string;
72
- };
73
- };
74
- type FileIcon = {
75
- type: "file";
76
- file: {
77
- url: string;
78
- expiry_time: string;
79
- };
80
- };
81
- type Icon = EmojiIcon | ExternalIcon | FileIcon;
82
- type ExternalFile = {
83
- type: "external";
84
- external: {
85
- url: string;
86
- };
87
- };
88
- type HostedFile = {
89
- type: "file";
90
- file: {
91
- url: string;
92
- expiry_time: string;
93
- };
94
- name?: string;
95
- };
96
- type FileObject = ExternalFile | HostedFile;
97
- type BlockBase = {
98
- object: "block";
99
- };
100
- type ParagraphBlock = BlockBase & {
101
- type: "paragraph";
102
- paragraph: {
103
- rich_text: RichText;
104
- color?: ApiColor;
105
- children?: Block[];
106
- };
107
- };
108
- type Heading1Block = BlockBase & {
109
- type: "heading_1";
110
- heading_1: {
111
- rich_text: RichText;
112
- color?: ApiColor;
113
- is_toggleable?: boolean;
114
- children?: Block[];
115
- };
116
- };
117
- type Heading2Block = BlockBase & {
118
- type: "heading_2";
119
- heading_2: {
120
- rich_text: RichText;
121
- color?: ApiColor;
122
- is_toggleable?: boolean;
123
- children?: Block[];
124
- };
125
- };
126
- type Heading3Block = BlockBase & {
127
- type: "heading_3";
128
- heading_3: {
129
- rich_text: RichText;
130
- color?: ApiColor;
131
- is_toggleable?: boolean;
132
- children?: Block[];
133
- };
134
- };
135
- type BulletedListItemBlock = BlockBase & {
136
- type: "bulleted_list_item";
137
- bulleted_list_item: {
138
- rich_text: RichText;
139
- color?: ApiColor;
140
- children?: Block[];
141
- };
142
- };
143
- type NumberedListItemBlock = BlockBase & {
144
- type: "numbered_list_item";
145
- numbered_list_item: {
146
- rich_text: RichText;
147
- color?: ApiColor;
148
- children?: Block[];
149
- };
150
- };
151
- type ToDoBlock = BlockBase & {
152
- type: "to_do";
153
- to_do: {
154
- rich_text: RichText;
155
- checked: boolean;
156
- color?: ApiColor;
157
- children?: Block[];
158
- };
159
- };
160
- type ToggleBlock = BlockBase & {
161
- type: "toggle";
162
- toggle: {
163
- rich_text: RichText;
164
- color?: ApiColor;
165
- children?: Block[];
166
- };
167
- };
168
- type QuoteBlock = BlockBase & {
169
- type: "quote";
170
- quote: {
171
- rich_text: RichText;
172
- color?: ApiColor;
173
- children?: Block[];
174
- };
175
- };
176
- type CalloutBlock = BlockBase & {
177
- type: "callout";
178
- callout: {
179
- rich_text: RichText;
180
- icon?: Icon | null;
181
- color?: ApiColor;
182
- children?: Block[];
183
- };
184
- };
185
- type CodeBlock = BlockBase & {
186
- type: "code";
187
- code: {
188
- rich_text: RichText;
189
- caption?: RichText;
190
- language: string;
191
- };
192
- };
193
- type EquationBlock = BlockBase & {
194
- type: "equation";
195
- equation: {
196
- expression: string;
197
- };
198
- };
199
- type DividerBlock = BlockBase & {
200
- type: "divider";
201
- divider: Record<string, never>;
202
- };
203
- type BreadcrumbBlock = BlockBase & {
204
- type: "breadcrumb";
205
- breadcrumb: Record<string, never>;
206
- };
207
- type TableOfContentsBlock = BlockBase & {
208
- type: "table_of_contents";
209
- table_of_contents: {
210
- color?: ApiColor;
211
- };
212
- };
213
- type ColumnListBlock = BlockBase & {
214
- type: "column_list";
215
- column_list: {
216
- children: ColumnBlock[];
217
- };
218
- };
219
- type ColumnBlock = BlockBase & {
220
- type: "column";
221
- column: {
222
- children?: Block[];
223
- };
224
- };
225
- type ImageBlock = BlockBase & {
226
- type: "image";
227
- image: FileObject & {
228
- caption?: RichText;
229
- };
230
- };
231
- type VideoBlock = BlockBase & {
232
- type: "video";
233
- video: FileObject & {
234
- caption?: RichText;
235
- };
236
- };
237
- type AudioBlock = BlockBase & {
238
- type: "audio";
239
- audio: FileObject & {
240
- caption?: RichText;
241
- };
242
- };
243
- type PDFBlock = BlockBase & {
244
- type: "pdf";
245
- pdf: FileObject & {
246
- caption?: RichText;
247
- };
248
- };
249
- type FileBlock = BlockBase & {
250
- type: "file";
251
- file: FileObject & {
252
- caption?: RichText;
253
- };
254
- };
255
- type EmbedBlock = BlockBase & {
256
- type: "embed";
257
- embed: {
258
- url: string;
259
- caption?: RichText;
260
- };
261
- };
262
- type BookmarkBlock = BlockBase & {
263
- type: "bookmark";
264
- bookmark: {
265
- url: string;
266
- caption?: RichText;
267
- };
268
- };
269
- type LinkPreviewBlock = BlockBase & {
270
- type: "link_preview";
271
- link_preview: {
272
- url: string;
273
- };
274
- };
275
- type ChildPageBlock = BlockBase & {
276
- type: "child_page";
277
- child_page: {
278
- title: string;
279
- };
280
- };
281
- type ChildDatabaseBlock = BlockBase & {
282
- type: "child_database";
283
- child_database: {
284
- title: string;
285
- };
286
- };
287
- type TemplateBlock = BlockBase & {
288
- type: "template";
289
- template: {
290
- rich_text: RichText;
291
- children?: Block[];
292
- };
293
- };
294
- type TableBlock = BlockBase & {
295
- type: "table";
296
- table: {
297
- table_width: number;
298
- has_column_header: boolean;
299
- has_row_header: boolean;
300
- children: TableRowBlock[];
301
- };
302
- };
303
- type TableRowBlock = BlockBase & {
304
- type: "table_row";
305
- table_row: {
306
- cells: RichText[];
307
- };
308
- };
309
- type AIBlock = BlockBase & {
310
- type: "ai_block";
311
- ai_block: {
312
- prompt?: string;
313
- };
314
- };
315
- type UnsupportedBlock = BlockBase & {
316
- type: "unsupported";
317
- unsupported: Record<string, never>;
318
- };
319
- type Block = ParagraphBlock | Heading1Block | Heading2Block | Heading3Block | BulletedListItemBlock | NumberedListItemBlock | ToDoBlock | ToggleBlock | QuoteBlock | CalloutBlock | CodeBlock | EquationBlock | DividerBlock | BreadcrumbBlock | TableOfContentsBlock | ColumnListBlock | ColumnBlock | ImageBlock | VideoBlock | AudioBlock | PDFBlock | FileBlock | EmbedBlock | BookmarkBlock | LinkPreviewBlock | ChildPageBlock | ChildDatabaseBlock | TemplateBlock | TableBlock | TableRowBlock | AIBlock | UnsupportedBlock;
320
- export type { AIBlock, ApiColor, AudioBlock, Block, BlockBase, BookmarkBlock, BreadcrumbBlock, BulletedListItemBlock, CalloutBlock, ChildDatabaseBlock, ChildPageBlock, CodeBlock, ColumnBlock, ColumnListBlock, CustomEmojiMention, DateMention, DividerBlock, EmbedBlock, EmojiIcon, EquationBlock, EquationContent, ExternalFile, ExternalIcon, FileBlock, FileIcon, FileObject, Heading1Block, Heading2Block, Heading3Block, HostedFile, Icon, ImageBlock, LinkMention, LinkPreviewBlock, LinkPreviewMention, MentionContent, NumberedListItemBlock, ParagraphBlock, PDFBlock, QuoteBlock, RichText, RichTextAnnotations, RichTextBase, RichTextItem, TableBlock, TableOfContentsBlock, TableRowBlock, TemplateBlock, TextContent, ToDoBlock, ToggleBlock, UnsupportedBlock, VideoBlock, };
321
- //# sourceMappingURL=block.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../src/block.ts"],"names":[],"mappings":"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"}