@texonom/ncompat 1.4.6 → 1.5.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.
@@ -1,5 +1,5 @@
1
- import type { Block as BlockType } from '@texonom/ntypes';
2
- import type { PartialBlock, PageMap, BlockMap, ParentMap } from './types';
1
+ import { Block as BlockType } from '@texonom/ntypes';
2
+ import { PartialBlock, PageMap, BlockMap, ParentMap } from './types';
3
3
  export declare function convertBlock({ block: partialBlock, children, pageMap, blockMap, parentMap }: {
4
4
  block: PartialBlock;
5
5
  children?: string[];
@@ -1,3 +1,3 @@
1
- import type { Color } from '@texonom/ntypes';
1
+ import { Color } from '@texonom/ntypes';
2
2
  export declare function convertColor(color: string): Color;
3
3
  //# sourceMappingURL=convert-color.d.ts.map
@@ -1,5 +1,5 @@
1
- import type { ExtendedRecordMap, Block as BlockType } from '@texonom/ntypes';
2
- import type { PageMap, BlockMap, BlockChildrenMap, ParentMap } from './types';
1
+ import { ExtendedRecordMap, Block as BlockType } from '@texonom/ntypes';
2
+ import { PageMap, BlockMap, BlockChildrenMap, ParentMap } from './types';
3
3
  export declare function convertPage({ pageId, blockMap, blockChildrenMap, pageMap, parentMap }: {
4
4
  pageId: string;
5
5
  blockMap: BlockMap;
@@ -1,5 +1,5 @@
1
- import type { Decoration } from '@texonom/ntypes';
2
- import type { RichText, RichTextItem } from './types';
1
+ import { Decoration } from '@texonom/ntypes';
2
+ import { RichText, RichTextItem } from './types';
3
3
  export declare function convertRichText(richText: RichText): Decoration[];
4
4
  export declare function convertRichTextItem(richTextItem: RichTextItem): Decoration;
5
5
  //# sourceMappingURL=convert-rich-text.d.ts.map
package/build/index.js CHANGED
@@ -1,2 +1,548 @@
1
- import{parsePageId as E}from"@texonom/nutils";import G from"p-queue";function P(r){switch(r){case"green":return"teal";case"green_background":return"teal_background";default:return r}}function w(r){return r.map(S).filter(Boolean)}function S(r){var l;let t=[];r.annotations.bold&&t.push(["b"]),r.annotations.italic&&t.push(["i"]),r.annotations.strikethrough&&t.push(["s"]),r.annotations.underline&&t.push(["_"]),r.annotations.code&&t.push(["c"]),r.annotations.color!=="default"&&t.push(["h",P(r.annotations.color)]);let s=r[r.type];switch(s&&s.link&&t.push(["a",s.link.url]),r.type){case"text":return t.length?[r.text.content,t]:[r.text.content];case"equation":return(l=r.equation)!=null&&l.expression&&t.unshift(["e",r.equation.expression]),["\u204D",t];case"mention":{let{mention:p}=r;if(p)switch(p.type){case"link_preview":t.push(["a",p.link_preview.url]);break;case"page":return t.push(["p",p.page.id]),["\u2023",t];case"database":return t.push(["p",p.database.id]),["\u2023",t];case"date":t.unshift(["d",{type:"date",start_date:p.date.start,end_date:p.date.end,time_zone:p.date.time_zone}]);break;case"user":t.push(["u",p.user.id]);break;case"template_mention":break;default:break}return[r.plain_text,t]}default:return[""]}}function M(r){if(r)try{return new Date(r).getTime()}catch{}}function C({block:r,children:t=[],pageMap:s,blockMap:l,parentMap:p}){var m,d,n,B,f,u,h,k,x,g,_,b;let e={id:r.id};t&&t.length&&(e.content=t);let a=r;if(!a.type)return e;if(e.properties={},e.format={},e.type=a.type,e.created_time=M(a.created_time),e.last_edited_time=M(a.last_edited_time),a.created_by&&(e.created_by_table=`notion_${a.created_by.object}`,e.created_by_id=a.created_by.id),e.last_edited_by_table=(m=a.last_edited_by)==null?void 0:m.object,e.last_edited_by_id=(d=a.last_edited_by)==null?void 0:d.id,e.alive=a.archived!==!0,p){let o=p[a.id];if(o){e.parent_id=o;let c=l==null?void 0:l[o];if(c)switch(c.type){case"child_database":e.parent_table="table";break;case"child_page":default:e.parent_table="block";break}else(s==null?void 0:s[o])&&(e.parent_table="block")}}let i=a[a.type];if(i){if(i.rich_text&&(e.properties.title=w(i.rich_text)),i.color&&(e.format.block_color=P(i.color)),i.icon)switch(i.icon.type){case"emoji":e.format.page_icon=i.icon.emoji;break;case"external":e.format.page_icon=i.icon.external.url;break;case"file":e.format.page_icon=i.icon.file.url;break}if(i.type)switch(i.type){case"external":e.properties.source=[[i.external.url]];break;case"file":e.properties.source=[[i.file.url]];break}}switch(a.type){case"paragraph":e.type="text",(B=(n=a.paragraph)==null?void 0:n.rich_text)!=null&&B.length||delete e.properties;break;case"heading_1":e.type="header";break;case"heading_2":e.type="sub_header";break;case"heading_3":e.type="sub_sub_header";break;case"bulleted_list_item":e.type="bulleted_list";break;case"numbered_list_item":e.type="numbered_list";break;case"quote":break;case"to_do":(f=a.to_do)!=null&&f.checked&&(e.properties.checked=[["Yes"]]);break;case"toggle":break;case"code":a.code.language&&(e.properties.language=[[a.code.language]]);break;case"callout":break;case"file":break;case"divider":break;case"breadcrumb":break;case"table_of_contents":break;case"column_list":break;case"column":break;case"bookmark":a.bookmark.url&&(e.properties.link=[[a.bookmark.url]]),a.bookmark.caption&&(e.properties.description=w(a.bookmark.caption));break;case"link_to_page":switch(e.type="alias",(u=a.link_to_page)==null?void 0:u.type){case"page_id":e.format.alias_pointer={id:a.link_to_page.page_id,table:"block"};break;case"database_id":e.format.alias_pointer={id:a.link_to_page.database_id,table:"table"};break}break;case"child_page":{if(e.type="page",s){let o=s[a.id];if(o){if(o.properties.title&&(e.properties.title=w(o.properties.title.title)),o.cover){switch(o.cover.type){case"external":e.format.page_cover=o.cover.external.url;break;case"file":e.format.page_cover=o.cover.file.url;break}e.format.page_cover_position=.5}if(o.icon)switch(o.icon.type){case"emoji":e.format.page_icon=o.icon.emoji;break;case"external":e.format.page_icon=o.icon.external.url;break;case"file":e.format.page_icon=o.icon.file.url;break}if(o.parent)switch(o.parent.type){case"workspace":e.parent_table="space";break;case"database_id":e.parent_table="table";break;case"page_id":e.parent_table="block";break}}}a.child_page&&a.child_page.title&&(e.properties.title=[[a.child_page.title]]);break}case"template":break;case"synced_block":a.synced_block.synced_from?(e.type="transclusion_reference",e.format.transclusion_reference_pointer={id:a.synced_block.synced_from.block_id,table:"block"}):e.type="transclusion_container";break;case"equation":(h=a.equation)!=null&&h.expression&&(e.properties.title=[[a.equation.expression]]);break;case"child_database":break;case"table":i.table_width&&i.table_width>0&&(e.format.table_block_column_order=Array.from({length:i.table_width},(o,c)=>""+c),e.format.table_block_column_format=e.format.table_block_column_order.map(o=>({[o]:{}}))),i.has_column_header&&(e.format.table_block_column_header=i.has_column_header),i.has_row_header&&(e.format.table_block_row_header=i.has_row_header);break;case"table_row":e.properties={...(x=(k=a.table_row)==null?void 0:k.cells)==null?void 0:x.map(o=>w(o))};break;case"pdf":e.format.block_page_width=!0,e.format.block_height="80vh";break;case"video":{e.format.block_page_width=!0,e.format.block_aspect_ratio=.5620608899297423;try{let o=(_=(g=e.properties.source)==null?void 0:g[0])==null?void 0:_[0];if(!o)break;let c=new URL(o);switch(c.hostname){case"loom.com":case"www.loom.com":c.pathname=c.pathname.replace(/^\/share\//i,"/embed/"),e.format.display_source=c.toString();break}}catch{}break}case"embed":{let o=(b=a.embed)==null?void 0:b.url;if(e.format.block_page_width=!0,e.format.block_height="30vh",o){e.properties.source=[[o]];try{let c=new URL(o);switch(c.hostname){case"twitter.com":e.type="tweet",delete e.format;break;case"maps.google.com":e.type="maps";break;case"excalidraw.com":e.type="excalidraw";break;case"codepen.io":e.type="codepen";break;case"docs.google.com":case"drive.google.com":e.type="drive";break;case"figma.com":e.type="figma";break;case"open.spotify.com":if(c.pathname.includes("/embed/")||c.pathname.includes("/embed-podcast/"))break;c.pathname.startsWith("/playlist/")?c.pathname=`/embed${c.pathname}`:c.pathname.startsWith("/episode/")&&(c.pathname=`/embed-podcast${c.pathname}`),c.search="",e.format.display_source=c.toString();break;case"airtable.com":c.pathname.startsWith("/embed/")||(c.pathname=`/embed${c.pathname}`,e.format.display_source=c.toString());break;case"soundcloud.com":break}}catch{}}break}case"image":break;case"audio":break;case"link_preview":break;case"unsupported":break}return e}function j({pageId:r,blockMap:t,blockChildrenMap:s,pageMap:l,parentMap:p}){let e=Object.values(t).map(d=>C({block:d,children:s[d.id],pageMap:l,blockMap:t,parentMap:p})),a=q({pageId:r,blockMap:t,blockChildrenMap:s,pageMap:l,parentMap:p}),i=Object.keys(l).filter(d=>d!==r).map(d=>q({pageId:d,blockMap:t,blockChildrenMap:s,pageMap:l,parentMap:p}));return{block:[a,...e,...i].reduce((d,n)=>({...d,[n.id]:{type:"reader",value:n}}),{}),collection:{},collection_view:{},collection_query:{},signed_urls:{},notion_user:{}}}function q({pageId:r,blockMap:t,blockChildrenMap:s,pageMap:l,parentMap:p}){let a=l[r];return a?C({block:{...a,type:"child_page"},children:s[a.id],pageMap:l,blockMap:t,parentMap:p}):null}var D=class{constructor(t){this.client=t}async getPage(t){let s=E(t),[l,p,e]=await Promise.all([this.client.pages.retrieve({page_id:s}),this.client.blocks.retrieve({block_id:s}),this.getAllBlockChildren(s)]),{blockMap:a,blockChildrenMap:i,pageMap:m,parentMap:d}=await this.resolvePage(s),n=j({pageId:s,blockMap:a,blockChildrenMap:i,pageMap:m,parentMap:d});return n.raw={page:l,block:p,children:e},n}async resolvePage(t,{concurrency:s=4}={}){let l={},p={},e={},a={},i=new Set,m=new G({concurrency:s}),d=async(n,{shallow:B=!1}={})=>{!n||i.has(n)||(i.add(n),m.add(async()=>{var f,u,h;try{let k=l[n];if(k||(k=await this.client.blocks.retrieve({block_id:n}),l[n]=k),k.type==="child_page"){if(!p[n]){let _=await this.client.pages.retrieve({page_id:n});p[n]=_;let b=_;switch((f=b.parent)==null?void 0:f.type){case"page_id":d(b.parent.page_id,{shallow:!0}),e[n]||(e[n]=b.parent.page_id);break;case"database_id":d(b.parent.database_id,{shallow:!0}),e[n]||(e[n]=b.parent.database_id);break}}if(n!==t)return}if(B)return;let g=await this.getAllBlockChildren(n);a[n]=g.map(_=>_.id);for(let _ of g){let b=_,o=l[_.id];if(!o||!o.type&&b.type){l[_.id]=b,e[_.id]=n;let c=b[b.type];if(c!=null&&c.rich_text){let R=c.rich_text.filter(y=>y.type==="mention");for(let y of R)switch((u=y.mention)==null?void 0:u.type){case"page":{let v=y.mention.page.id;d(v,{shallow:!0});break}case"database":{let v=y.mention.database.id;d(v,{shallow:!0});break}}}if(b.type==="link_to_page")switch((h=b.link_to_page)==null?void 0:h.type){case"page_id":d(b.link_to_page.page_id,{shallow:!0});break;case"database_id":d(b.link_to_page.database_id,{shallow:!0});break}b.has_children&&b.type!=="child_database"&&d(b.id)}}}catch(k){console.warn("failed resolving block",n,k.message)}finally{i.delete(n)}}))};return await d(t),await m.onIdle(),{blockMap:l,blockChildrenMap:a,pageMap:p,parentMap:e}}async getAllBlockChildren(t){let s=[],l;do{console.debug("blocks.children.list",{blockId:t,cursor:l});let p=await this.client.blocks.children.list({block_id:t,start_cursor:l});s=s.concat(p.results),l=p.next_cursor}while(l);return s}};export{D as NotionCompatAPI,C as convertBlock,P as convertColor,j as convertPage,q as convertPageBlock,w as convertRichText,S as convertRichTextItem,M as convertTime};
2
- //# sourceMappingURL=index.js.map
1
+ var U = Object.defineProperty, N = Object.defineProperties;
2
+ var Q = Object.getOwnPropertyDescriptors;
3
+ var S = Object.getOwnPropertySymbols;
4
+ var Y = Object.prototype.hasOwnProperty, E = Object.prototype.propertyIsEnumerable;
5
+ var $ = (r, a, i) => a in r ? U(r, a, { enumerable: !0, configurable: !0, writable: !0, value: i }) : r[a] = i, B = (r, a) => {
6
+ for (var i in a || (a = {}))
7
+ Y.call(a, i) && $(r, i, a[i]);
8
+ if (S)
9
+ for (var i of S(a))
10
+ E.call(a, i) && $(r, i, a[i]);
11
+ return r;
12
+ }, j = (r, a) => N(r, Q(a));
13
+ var h = (r, a, i) => new Promise((l, n) => {
14
+ var e = (b) => {
15
+ try {
16
+ s(i.next(b));
17
+ } catch (d) {
18
+ n(d);
19
+ }
20
+ }, t = (b) => {
21
+ try {
22
+ s(i.throw(b));
23
+ } catch (d) {
24
+ n(d);
25
+ }
26
+ }, s = (b) => b.done ? l(b.value) : Promise.resolve(b.value).then(e, t);
27
+ s((i = i.apply(r, a)).next());
28
+ });
29
+ import { parsePageId as F } from "@texonom/nutils";
30
+ import G from "p-queue";
31
+ function D(r) {
32
+ switch (r) {
33
+ case "green":
34
+ return "teal";
35
+ case "green_background":
36
+ return "teal_background";
37
+ default:
38
+ return r;
39
+ }
40
+ }
41
+ function P(r) {
42
+ return r.map(H).filter(Boolean);
43
+ }
44
+ function H(r) {
45
+ var l;
46
+ const a = [];
47
+ r.annotations.bold && a.push(["b"]), r.annotations.italic && a.push(["i"]), r.annotations.strikethrough && a.push(["s"]), r.annotations.underline && a.push(["_"]), r.annotations.code && a.push(["c"]), r.annotations.color !== "default" && a.push(["h", D(r.annotations.color)]);
48
+ const i = r[r.type];
49
+ switch (i && i.link && a.push(["a", i.link.url]), r.type) {
50
+ case "text":
51
+ return a.length ? [r.text.content, a] : [r.text.content];
52
+ case "equation":
53
+ return (l = r.equation) != null && l.expression && a.unshift(["e", r.equation.expression]), ["⁍", a];
54
+ case "mention": {
55
+ const { mention: n } = r;
56
+ if (n)
57
+ switch (n.type) {
58
+ case "link_preview":
59
+ a.push(["a", n.link_preview.url]);
60
+ break;
61
+ case "page":
62
+ return a.push(["p", n.page.id]), ["‣", a];
63
+ case "database":
64
+ return a.push(["p", n.database.id]), ["‣", a];
65
+ case "date":
66
+ a.unshift([
67
+ "d",
68
+ {
69
+ type: "date",
70
+ // TODO
71
+ start_date: n.date.start,
72
+ end_date: n.date.end,
73
+ time_zone: n.date.time_zone
74
+ }
75
+ ]);
76
+ break;
77
+ case "user":
78
+ a.push(["u", n.user.id]);
79
+ break;
80
+ }
81
+ return [r.plain_text, a];
82
+ }
83
+ default:
84
+ return [""];
85
+ }
86
+ }
87
+ function W(r) {
88
+ if (r)
89
+ try {
90
+ return new Date(r).getTime();
91
+ } catch (a) {
92
+ }
93
+ }
94
+ function L({
95
+ block: r,
96
+ children: a = [],
97
+ pageMap: i,
98
+ blockMap: l,
99
+ parentMap: n
100
+ }) {
101
+ var b, d, u, p, w, C, A, k, m, g, f, x;
102
+ const e = {
103
+ id: r.id
104
+ };
105
+ a && a.length && (e.content = a);
106
+ const t = r;
107
+ if (!t.type) return e;
108
+ if (e.properties = {}, e.format = {}, e.type = t.type, e.created_time = W(t.created_time), e.last_edited_time = W(t.last_edited_time), t.created_by && (e.created_by_table = `notion_${t.created_by.object}`, e.created_by_id = t.created_by.id), e.last_edited_by_table = (b = t.last_edited_by) == null ? void 0 : b.object, e.last_edited_by_id = (d = t.last_edited_by) == null ? void 0 : d.id, e.alive = t.archived !== !0, n) {
109
+ const c = n[t.id];
110
+ if (c) {
111
+ e.parent_id = c;
112
+ const o = l == null ? void 0 : l[c];
113
+ if (o)
114
+ switch (o.type) {
115
+ case "child_database":
116
+ e.parent_table = "table";
117
+ break;
118
+ case "child_page":
119
+ // fallthrough
120
+ default:
121
+ e.parent_table = "block";
122
+ break;
123
+ }
124
+ else
125
+ (i == null ? void 0 : i[c]) && (e.parent_table = "block");
126
+ }
127
+ }
128
+ const s = t[t.type];
129
+ if (s) {
130
+ if (s.rich_text && (e.properties.title = P(s.rich_text)), s.color && (e.format.block_color = D(s.color)), s.icon)
131
+ switch (s.icon.type) {
132
+ case "emoji":
133
+ e.format.page_icon = s.icon.emoji;
134
+ break;
135
+ case "external":
136
+ e.format.page_icon = s.icon.external.url;
137
+ break;
138
+ case "file":
139
+ e.format.page_icon = s.icon.file.url;
140
+ break;
141
+ }
142
+ if (s.type)
143
+ switch (s.type) {
144
+ case "external":
145
+ e.properties.source = [[s.external.url]];
146
+ break;
147
+ case "file":
148
+ e.properties.source = [[s.file.url]];
149
+ break;
150
+ }
151
+ }
152
+ switch (t.type) {
153
+ case "paragraph":
154
+ e.type = "text", (p = (u = t.paragraph) == null ? void 0 : u.rich_text) != null && p.length || delete e.properties;
155
+ break;
156
+ case "heading_1":
157
+ e.type = "header";
158
+ break;
159
+ case "heading_2":
160
+ e.type = "sub_header";
161
+ break;
162
+ case "heading_3":
163
+ e.type = "sub_sub_header";
164
+ break;
165
+ case "bulleted_list_item":
166
+ e.type = "bulleted_list";
167
+ break;
168
+ case "numbered_list_item":
169
+ e.type = "numbered_list";
170
+ break;
171
+ case "quote":
172
+ break;
173
+ case "to_do":
174
+ (w = t.to_do) != null && w.checked && (e.properties.checked = [["Yes"]]);
175
+ break;
176
+ case "toggle":
177
+ break;
178
+ case "code":
179
+ t.code.language && (e.properties.language = [[t.code.language]]);
180
+ break;
181
+ case "callout":
182
+ break;
183
+ case "file":
184
+ break;
185
+ case "divider":
186
+ break;
187
+ case "breadcrumb":
188
+ break;
189
+ case "table_of_contents":
190
+ break;
191
+ case "column_list":
192
+ break;
193
+ case "column":
194
+ break;
195
+ case "bookmark":
196
+ t.bookmark.url && (e.properties.link = [[t.bookmark.url]]), t.bookmark.caption && (e.properties.description = P(t.bookmark.caption));
197
+ break;
198
+ case "link_to_page":
199
+ switch (e.type = "alias", (C = t.link_to_page) == null ? void 0 : C.type) {
200
+ case "page_id":
201
+ e.format.alias_pointer = {
202
+ id: t.link_to_page.page_id,
203
+ table: "block"
204
+ };
205
+ break;
206
+ case "database_id":
207
+ e.format.alias_pointer = {
208
+ id: t.link_to_page.database_id,
209
+ table: "table"
210
+ };
211
+ break;
212
+ }
213
+ break;
214
+ case "child_page": {
215
+ if (e.type = "page", i) {
216
+ const c = i[t.id];
217
+ if (c) {
218
+ if (c.properties.title && (e.properties.title = P(c.properties.title.title)), c.cover) {
219
+ switch (c.cover.type) {
220
+ case "external":
221
+ e.format.page_cover = c.cover.external.url;
222
+ break;
223
+ case "file":
224
+ e.format.page_cover = c.cover.file.url;
225
+ break;
226
+ }
227
+ e.format.page_cover_position = 0.5;
228
+ }
229
+ if (c.icon)
230
+ switch (c.icon.type) {
231
+ case "emoji":
232
+ e.format.page_icon = c.icon.emoji;
233
+ break;
234
+ case "external":
235
+ e.format.page_icon = c.icon.external.url;
236
+ break;
237
+ case "file":
238
+ e.format.page_icon = c.icon.file.url;
239
+ break;
240
+ }
241
+ if (c.parent)
242
+ switch (c.parent.type) {
243
+ case "workspace":
244
+ e.parent_table = "space";
245
+ break;
246
+ case "database_id":
247
+ e.parent_table = "table";
248
+ break;
249
+ case "page_id":
250
+ e.parent_table = "block";
251
+ break;
252
+ }
253
+ }
254
+ }
255
+ t.child_page && t.child_page.title && (e.properties.title = [[t.child_page.title]]);
256
+ break;
257
+ }
258
+ case "template":
259
+ break;
260
+ case "synced_block":
261
+ t.synced_block.synced_from ? (e.type = "transclusion_reference", e.format.transclusion_reference_pointer = {
262
+ id: t.synced_block.synced_from.block_id,
263
+ table: "block"
264
+ }) : e.type = "transclusion_container";
265
+ break;
266
+ case "equation":
267
+ (A = t.equation) != null && A.expression && (e.properties.title = [[t.equation.expression]]);
268
+ break;
269
+ case "child_database":
270
+ break;
271
+ case "table":
272
+ s.table_width && s.table_width > 0 && (e.format.table_block_column_order = Array.from({ length: s.table_width }, (c, o) => "" + o), e.format.table_block_column_format = e.format.table_block_column_order.map((c) => ({
273
+ [c]: {
274
+ // TODO: The SimpleTable column has no width and color. API is not supported.
275
+ // width: 155,
276
+ // color:
277
+ }
278
+ }))), s.has_column_header && (e.format.table_block_column_header = s.has_column_header), s.has_row_header && (e.format.table_block_row_header = s.has_row_header);
279
+ break;
280
+ case "table_row":
281
+ e.properties = B({}, (m = (k = t.table_row) == null ? void 0 : k.cells) == null ? void 0 : m.map((c) => P(c)));
282
+ break;
283
+ case "pdf":
284
+ e.format.block_page_width = !0, e.format.block_height = "80vh";
285
+ break;
286
+ case "video": {
287
+ e.format.block_page_width = !0, e.format.block_aspect_ratio = 0.5620608899297423;
288
+ try {
289
+ const c = (f = (g = e.properties.source) == null ? void 0 : g[0]) == null ? void 0 : f[0];
290
+ if (!c) break;
291
+ const o = new URL(c);
292
+ switch (o.hostname) {
293
+ case "loom.com":
294
+ case "www.loom.com":
295
+ o.pathname = o.pathname.replace(/^\/share\//i, "/embed/"), e.format.display_source = o.toString();
296
+ break;
297
+ }
298
+ } catch (c) {
299
+ }
300
+ break;
301
+ }
302
+ case "embed": {
303
+ const c = (x = t.embed) == null ? void 0 : x.url;
304
+ if (e.format.block_page_width = !0, e.format.block_height = "30vh", c) {
305
+ e.properties.source = [[c]];
306
+ try {
307
+ const o = new URL(c);
308
+ switch (o.hostname) {
309
+ case "twitter.com":
310
+ e.type = "tweet", delete e.format;
311
+ break;
312
+ case "maps.google.com":
313
+ e.type = "maps";
314
+ break;
315
+ case "excalidraw.com":
316
+ e.type = "excalidraw";
317
+ break;
318
+ case "codepen.io":
319
+ e.type = "codepen";
320
+ break;
321
+ case "docs.google.com":
322
+ // fallthrough
323
+ case "drive.google.com":
324
+ e.type = "drive";
325
+ break;
326
+ case "figma.com":
327
+ e.type = "figma";
328
+ break;
329
+ case "open.spotify.com":
330
+ if (o.pathname.includes("/embed/") || o.pathname.includes("/embed-podcast/")) break;
331
+ o.pathname.startsWith("/playlist/") ? o.pathname = `/embed${o.pathname}` : o.pathname.startsWith("/episode/") && (o.pathname = `/embed-podcast${o.pathname}`), o.search = "", e.format.display_source = o.toString();
332
+ break;
333
+ case "airtable.com":
334
+ o.pathname.startsWith("/embed/") || (o.pathname = `/embed${o.pathname}`, e.format.display_source = o.toString());
335
+ break;
336
+ case "soundcloud.com":
337
+ break;
338
+ }
339
+ } catch (o) {
340
+ }
341
+ }
342
+ break;
343
+ }
344
+ }
345
+ return e;
346
+ }
347
+ function J({
348
+ pageId: r,
349
+ blockMap: a,
350
+ blockChildrenMap: i,
351
+ pageMap: l,
352
+ parentMap: n
353
+ }) {
354
+ const e = Object.values(a).map(
355
+ (d) => L({
356
+ block: d,
357
+ children: i[d.id],
358
+ pageMap: l,
359
+ blockMap: a,
360
+ parentMap: n
361
+ })
362
+ ), t = z({
363
+ pageId: r,
364
+ blockMap: a,
365
+ blockChildrenMap: i,
366
+ pageMap: l,
367
+ parentMap: n
368
+ }), s = Object.keys(l).filter((d) => d !== r).map(
369
+ (d) => z({
370
+ pageId: d,
371
+ blockMap: a,
372
+ blockChildrenMap: i,
373
+ pageMap: l,
374
+ parentMap: n
375
+ })
376
+ );
377
+ return {
378
+ block: [t, ...e, ...s].reduce(
379
+ (d, u) => j(B({}, d), {
380
+ [u.id]: {
381
+ type: "reader",
382
+ value: u
383
+ }
384
+ }),
385
+ {}
386
+ ),
387
+ collection: {},
388
+ collection_view: {},
389
+ collection_query: {},
390
+ signed_urls: {},
391
+ notion_user: {}
392
+ };
393
+ }
394
+ function z({
395
+ pageId: r,
396
+ blockMap: a,
397
+ blockChildrenMap: i,
398
+ pageMap: l,
399
+ parentMap: n
400
+ }) {
401
+ const t = l[r];
402
+ return t ? L({
403
+ block: j(B({}, t), { type: "child_page" }),
404
+ children: i[t.id],
405
+ pageMap: l,
406
+ blockMap: a,
407
+ parentMap: n
408
+ }) : null;
409
+ }
410
+ class Z {
411
+ constructor(a) {
412
+ this.client = a;
413
+ }
414
+ getPage(a) {
415
+ return h(this, null, function* () {
416
+ const i = F(a), [l, n, e] = yield Promise.all([
417
+ this.client.pages.retrieve({ page_id: i }),
418
+ this.client.blocks.retrieve({ block_id: i }),
419
+ this.getAllBlockChildren(i)
420
+ ]), { blockMap: t, blockChildrenMap: s, pageMap: b, parentMap: d } = yield this.resolvePage(i), u = J({
421
+ pageId: i,
422
+ blockMap: t,
423
+ blockChildrenMap: s,
424
+ pageMap: b,
425
+ parentMap: d
426
+ });
427
+ return u.raw = {
428
+ page: l,
429
+ block: n,
430
+ children: e
431
+ }, u;
432
+ });
433
+ }
434
+ resolvePage(l) {
435
+ return h(this, arguments, function* (a, {
436
+ concurrency: i = 4
437
+ } = {}) {
438
+ const n = {}, e = {}, t = {}, s = {}, b = /* @__PURE__ */ new Set(), d = new G({ concurrency: i }), u = (C, ...A) => h(this, [C, ...A], function* (p, { shallow: w = !1 } = {}) {
439
+ !p || b.has(p) || (b.add(p), d.add(() => h(this, null, function* () {
440
+ var k, m, g;
441
+ try {
442
+ let f = n[p];
443
+ if (f || (f = yield this.client.blocks.retrieve({
444
+ block_id: p
445
+ }), n[p] = f), f.type === "child_page") {
446
+ if (!e[p]) {
447
+ const o = yield this.client.pages.retrieve({
448
+ page_id: p
449
+ });
450
+ e[p] = o;
451
+ const _ = o;
452
+ switch ((k = _.parent) == null ? void 0 : k.type) {
453
+ case "page_id":
454
+ u(_.parent.page_id, {
455
+ shallow: !0
456
+ }), t[p] || (t[p] = _.parent.page_id);
457
+ break;
458
+ case "database_id":
459
+ u(_.parent.database_id, {
460
+ shallow: !0
461
+ }), t[p] || (t[p] = _.parent.database_id);
462
+ break;
463
+ }
464
+ }
465
+ if (p !== a)
466
+ return;
467
+ }
468
+ if (w) return;
469
+ const c = yield this.getAllBlockChildren(p);
470
+ s[p] = c.map((o) => o.id);
471
+ for (const o of c) {
472
+ const _ = o, R = n[o.id];
473
+ if (!R || !R.type && _.type) {
474
+ n[o.id] = _, t[o.id] = p;
475
+ const v = _[_.type];
476
+ if (v != null && v.rich_text) {
477
+ const O = v.rich_text.filter((y) => y.type === "mention");
478
+ for (const y of O)
479
+ switch ((m = y.mention) == null ? void 0 : m.type) {
480
+ case "page": {
481
+ const q = y.mention.page.id;
482
+ u(q, { shallow: !0 });
483
+ break;
484
+ }
485
+ case "database": {
486
+ const q = y.mention.database.id;
487
+ u(q, { shallow: !0 });
488
+ break;
489
+ }
490
+ }
491
+ }
492
+ if (_.type === "link_to_page")
493
+ switch ((g = _.link_to_page) == null ? void 0 : g.type) {
494
+ case "page_id":
495
+ u(_.link_to_page.page_id, {
496
+ shallow: !0
497
+ });
498
+ break;
499
+ case "database_id":
500
+ u(_.link_to_page.database_id, {
501
+ shallow: !0
502
+ });
503
+ break;
504
+ }
505
+ _.has_children && _.type !== "child_database" && u(_.id);
506
+ }
507
+ }
508
+ } catch (f) {
509
+ console.warn("failed resolving block", p, f.message);
510
+ } finally {
511
+ b.delete(p);
512
+ }
513
+ })));
514
+ });
515
+ return yield u(a), yield d.onIdle(), {
516
+ blockMap: n,
517
+ blockChildrenMap: s,
518
+ pageMap: e,
519
+ parentMap: t
520
+ };
521
+ });
522
+ }
523
+ getAllBlockChildren(a) {
524
+ return h(this, null, function* () {
525
+ let i = [], l;
526
+ do {
527
+ console.debug("blocks.children.list", { blockId: a, cursor: l });
528
+ const n = yield this.client.blocks.children.list({
529
+ block_id: a,
530
+ start_cursor: l
531
+ });
532
+ i = i.concat(n.results), l = n.next_cursor;
533
+ } while (l);
534
+ return i;
535
+ });
536
+ }
537
+ }
538
+ export {
539
+ Z as NotionCompatAPI,
540
+ L as convertBlock,
541
+ D as convertColor,
542
+ J as convertPage,
543
+ z as convertPageBlock,
544
+ P as convertRichText,
545
+ H as convertRichTextItem,
546
+ W as convertTime
547
+ };
548
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/notion-compat-api.ts","../src/convert-color.ts","../src/convert-rich-text.ts","../src/convert-time.ts","../src/convert-block.ts","../src/convert-page.ts"],"sourcesContent":["import type { Client } from '@notionhq/client'\nimport { parsePageId } from '@texonom/nutils'\nimport PQueue from 'p-queue'\n\nimport { convertPage } from './convert-page'\n\nimport type { BlockMap, PageMap, ParentMap, BlockChildrenMap, Block, Page, BlockChildren } from './types'\nimport type { ExtendedRecordMap } from '@texonom/ntypes'\nimport type { GetBlockResponse, GetPageResponse } from '@notionhq/client/build/src/api-endpoints'\n\nexport class NotionCompatAPI {\n client: Client\n\n constructor(client: Client) {\n this.client = client\n }\n\n public async getPage(rawPageId: string): Promise<ExtendedRecordMap> {\n const pageId = parsePageId(rawPageId)\n\n const [page, block, children] = await Promise.all([\n this.client.pages.retrieve({ page_id: pageId }),\n this.client.blocks.retrieve({ block_id: pageId }),\n this.getAllBlockChildren(pageId)\n ])\n const { blockMap, blockChildrenMap, pageMap, parentMap } = await this.resolvePage(pageId)\n\n const recordMap = convertPage({\n pageId,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n })\n\n ;(\n recordMap as ExtendedRecordMap & {\n raw: { page: GetPageResponse; block: GetBlockResponse; children: GetBlockResponse[] }\n }\n ).raw = {\n page,\n block,\n children\n }\n\n return recordMap\n }\n\n async resolvePage(\n rootBlockId: string,\n {\n concurrency = 4\n }: {\n concurrency?: number\n } = {}\n ) {\n const blockMap: BlockMap = {}\n const pageMap: PageMap = {}\n const parentMap: ParentMap = {}\n const blockChildrenMap: BlockChildrenMap = {}\n const pendingBlockIds = new Set<string>()\n const queue = new PQueue({ concurrency })\n\n const processBlock = async (blockId: string, { shallow = false }: { shallow?: boolean } = {}) => {\n if (!blockId || pendingBlockIds.has(blockId)) return\n\n pendingBlockIds.add(blockId)\n queue.add(async () => {\n try {\n let partialBlock = blockMap[blockId]\n if (!partialBlock) {\n partialBlock = await this.client.blocks.retrieve({\n block_id: blockId\n })\n blockMap[blockId] = partialBlock\n }\n\n const block = partialBlock as Block\n if (block.type === 'child_page') {\n if (!pageMap[blockId]) {\n const partialPage = await this.client.pages.retrieve({\n page_id: blockId\n })\n\n pageMap[blockId] = partialPage\n\n const page = partialPage as Page\n switch (page.parent?.type) {\n case 'page_id':\n processBlock(page.parent.page_id, {\n shallow: true\n })\n if (!parentMap[blockId]) parentMap[blockId] = page.parent.page_id\n\n break\n\n case 'database_id':\n processBlock(page.parent.database_id, {\n shallow: true\n })\n if (!parentMap[blockId]) parentMap[blockId] = page.parent.database_id\n\n break\n }\n }\n\n if (blockId !== rootBlockId)\n // don't fetch children or recurse on subpages\n return\n }\n\n if (shallow) return\n\n const children = await this.getAllBlockChildren(blockId)\n blockChildrenMap[blockId] = children.map(child => child.id)\n\n for (const child of children) {\n const childBlock = child as Block\n const mappedChildBlock = blockMap[child.id] as Block\n if (!mappedChildBlock || (!mappedChildBlock.type && childBlock.type)) {\n blockMap[child.id] = childBlock\n parentMap[child.id] = blockId\n\n const details = childBlock[childBlock.type]\n if (details?.rich_text) {\n const richTextMentions = details.rich_text.filter(richTextItem => richTextItem.type === 'mention')\n\n for (const richTextMention of richTextMentions)\n switch (richTextMention.mention?.type) {\n case 'page': {\n const pageId = richTextMention.mention.page.id\n processBlock(pageId, { shallow: true })\n break\n }\n\n case 'database': {\n const databaseId = richTextMention.mention.database.id\n processBlock(databaseId, { shallow: true })\n break\n }\n }\n }\n\n if (childBlock.type === 'link_to_page')\n switch (childBlock.link_to_page?.type) {\n case 'page_id':\n processBlock(childBlock.link_to_page.page_id, {\n shallow: true\n })\n break\n\n case 'database_id':\n processBlock(childBlock.link_to_page.database_id, {\n shallow: true\n })\n break\n }\n\n if (childBlock.has_children && childBlock.type !== 'child_database') processBlock(childBlock.id)\n }\n }\n } catch (err) {\n console.warn('failed resolving block', blockId, err.message)\n } finally {\n pendingBlockIds.delete(blockId)\n }\n })\n }\n\n await processBlock(rootBlockId)\n await queue.onIdle()\n\n return {\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n }\n }\n\n async getAllBlockChildren(blockId: string) {\n let blocks: BlockChildren = []\n let cursor: string\n\n do {\n console.debug('blocks.children.list', { blockId, cursor })\n const res = await this.client.blocks.children.list({\n block_id: blockId,\n start_cursor: cursor\n })\n\n blocks = blocks.concat(res.results)\n cursor = res.next_cursor\n } while (cursor)\n\n return blocks\n }\n}\n","import type { Color } from '@texonom/ntypes'\n\nexport function convertColor(color: string): Color {\n switch (color) {\n case 'green':\n return 'teal'\n\n case 'green_background':\n return 'teal_background'\n\n default:\n return color as Color\n }\n}\n","import { convertColor } from './convert-color'\n\nimport type { SubDecoration, Decoration } from '@texonom/ntypes'\nimport type { RichText, RichTextItem } from './types'\n\nexport function convertRichText(richText: RichText): Decoration[] {\n return richText.map(convertRichTextItem).filter(Boolean)\n}\n\nexport function convertRichTextItem(richTextItem: RichTextItem): Decoration {\n const subdecorations: SubDecoration[] = []\n\n if (richTextItem.annotations.bold) subdecorations.push(['b'])\n if (richTextItem.annotations.italic) subdecorations.push(['i'])\n if (richTextItem.annotations.strikethrough) subdecorations.push(['s'])\n if (richTextItem.annotations.underline) subdecorations.push(['_'])\n if (richTextItem.annotations.code) subdecorations.push(['c'])\n if (richTextItem.annotations.color !== 'default') subdecorations.push(['h', convertColor(richTextItem.annotations.color)])\n\n const details = richTextItem[richTextItem.type]\n if (details) if (details.link) subdecorations.push(['a', details.link.url])\n\n switch (richTextItem.type) {\n case 'text':\n if (subdecorations.length) return [richTextItem.text.content, subdecorations]\n else return [richTextItem.text.content]\n\n case 'equation':\n if (richTextItem.equation?.expression) subdecorations.unshift(['e', richTextItem.equation.expression])\n return ['⁍', subdecorations]\n\n case 'mention': {\n const { mention } = richTextItem\n\n if (mention)\n switch (mention.type) {\n case 'link_preview':\n // TODO: this should be an eoi, but we don't hae the proper data\n subdecorations.push(['a', mention.link_preview.url])\n break\n\n case 'page':\n subdecorations.push(['p', mention.page.id])\n return ['‣', subdecorations]\n\n case 'database':\n subdecorations.push(['p', mention.database.id])\n return ['‣', subdecorations]\n\n case 'date':\n subdecorations.unshift([\n 'd',\n {\n type: 'date', // TODO\n start_date: mention.date.start,\n end_date: mention.date.end,\n time_zone: mention.date.time_zone\n }\n ])\n break\n\n case 'user':\n subdecorations.push(['u', mention.user.id])\n break\n\n case 'template_mention':\n // TODO\n // subdecorations.push(['m', mention.template_mention.type])\n break\n\n default:\n // TODO\n break\n }\n\n return [richTextItem.plain_text, subdecorations]\n }\n\n default:\n return ['']\n }\n}\n","export function convertTime(time?: string): number | undefined {\n if (time)\n try {\n return new Date(time).getTime()\n } catch {\n // ignore invalid time strings\n }\n\n return undefined\n}\n","import { convertColor } from './convert-color'\nimport { convertRichText } from './convert-rich-text'\nimport { convertTime } from './convert-time'\n\nimport type { BaseBlock, Block as BlockType } from '@texonom/ntypes'\nimport type { PartialBlock, PageMap, BlockMap, ParentMap, Block, Page } from './types'\n\nexport function convertBlock({\n block: partialBlock,\n children = [],\n pageMap,\n blockMap,\n parentMap\n}: {\n block: PartialBlock\n children?: string[]\n pageMap?: PageMap\n blockMap?: BlockMap\n parentMap?: ParentMap\n}): BlockType {\n const compatBlock: Partial<BaseBlock> = {\n id: partialBlock.id\n }\n\n if (children && children.length) compatBlock.content = children\n\n const block = partialBlock as Block\n if (!block.type) return compatBlock as BlockType\n\n compatBlock.properties = {}\n compatBlock.format = {}\n compatBlock.type = block.type\n compatBlock.created_time = convertTime(block.created_time)\n compatBlock.last_edited_time = convertTime(block.last_edited_time)\n if (block.created_by) {\n compatBlock.created_by_table = `notion_${block.created_by.object}`\n compatBlock.created_by_id = block.created_by.id\n }\n compatBlock.last_edited_by_table = block.last_edited_by?.object\n compatBlock.last_edited_by_id = block.last_edited_by?.id\n compatBlock.alive = block.archived !== true\n\n if (parentMap) {\n const parentId = parentMap[block.id]\n\n if (parentId) {\n compatBlock.parent_id = parentId\n const parentBlock = blockMap?.[parentId] as Block\n if (parentBlock) {\n switch (parentBlock.type) {\n case 'child_database':\n compatBlock.parent_table = 'table'\n break\n case 'child_page':\n // fallthrough\n default:\n compatBlock.parent_table = 'block'\n break\n }\n } else {\n const parentPage = pageMap?.[parentId] as Page\n if (parentPage) compatBlock.parent_table = 'block'\n }\n }\n }\n\n const blockDetails = block[block.type]\n if (blockDetails) {\n if (blockDetails.rich_text) compatBlock.properties.title = convertRichText(blockDetails.rich_text)\n\n if (blockDetails.color) compatBlock.format.block_color = convertColor(blockDetails.color)\n\n if (blockDetails.icon)\n switch (blockDetails.icon.type) {\n case 'emoji':\n compatBlock.format.page_icon = blockDetails.icon.emoji\n break\n\n case 'external':\n compatBlock.format.page_icon = blockDetails.icon.external.url\n break\n\n case 'file':\n compatBlock.format.page_icon = blockDetails.icon.file.url\n break\n }\n\n if (blockDetails.type)\n switch (blockDetails.type) {\n case 'external':\n compatBlock.properties.source = [[blockDetails.external.url]]\n break\n\n case 'file':\n compatBlock.properties.source = [[blockDetails.file.url]]\n break\n }\n }\n\n switch (block.type) {\n case 'paragraph':\n compatBlock.type = 'text'\n if (!block.paragraph?.rich_text?.length) delete compatBlock.properties\n\n break\n\n case 'heading_1':\n compatBlock.type = 'header'\n break\n\n case 'heading_2':\n compatBlock.type = 'sub_header'\n break\n\n case 'heading_3':\n compatBlock.type = 'sub_sub_header'\n break\n\n case 'bulleted_list_item':\n compatBlock.type = 'bulleted_list'\n break\n\n case 'numbered_list_item':\n compatBlock.type = 'numbered_list'\n break\n\n case 'quote':\n // no-op\n break\n\n case 'to_do':\n if (block.to_do?.checked) compatBlock.properties.checked = [['Yes']]\n\n break\n\n case 'toggle':\n // no-op\n break\n\n case 'code':\n if (block.code.language) compatBlock.properties.language = [[block.code.language]]\n break\n\n case 'callout':\n // no-op\n break\n\n case 'file':\n // no-op\n break\n\n case 'divider':\n // no-op\n break\n\n case 'breadcrumb':\n // TODO\n break\n\n case 'table_of_contents':\n // no-op\n break\n\n case 'column_list':\n // no-op\n break\n\n case 'column':\n // no-op\n break\n\n case 'bookmark':\n if (block.bookmark.url) compatBlock.properties.link = [[block.bookmark.url]]\n\n if (block.bookmark.caption) compatBlock.properties.description = convertRichText(block.bookmark.caption)\n\n break\n\n case 'link_to_page':\n compatBlock.type = 'alias'\n switch (block.link_to_page?.type) {\n case 'page_id':\n compatBlock.format.alias_pointer = {\n id: block.link_to_page.page_id,\n table: 'block'\n }\n break\n\n case 'database_id':\n compatBlock.format.alias_pointer = {\n id: block.link_to_page.database_id,\n table: 'table'\n }\n break\n }\n break\n\n case 'child_page': {\n compatBlock.type = 'page'\n\n if (pageMap) {\n const page = pageMap[block.id] as Page\n if (page) {\n if (page.properties.title) compatBlock.properties.title = convertRichText((page.properties.title as any).title)\n\n if (page.cover) {\n switch (page.cover.type) {\n case 'external':\n compatBlock.format.page_cover = page.cover.external.url\n break\n\n case 'file':\n compatBlock.format.page_cover = page.cover.file.url\n break\n }\n\n // TODO\n compatBlock.format.page_cover_position = 0.5\n }\n\n if (page.icon)\n switch (page.icon.type) {\n case 'emoji':\n compatBlock.format.page_icon = page.icon.emoji\n break\n\n case 'external':\n compatBlock.format.page_icon = page.icon.external.url\n break\n\n case 'file':\n compatBlock.format.page_icon = page.icon.file.url\n break\n }\n\n if (page.parent)\n switch (page.parent.type) {\n case 'workspace':\n compatBlock.parent_table = 'space'\n break\n\n case 'database_id':\n compatBlock.parent_table = 'table'\n break\n\n case 'page_id':\n compatBlock.parent_table = 'block'\n break\n }\n }\n }\n\n if (block.child_page) if (block.child_page.title) compatBlock.properties.title = [[block.child_page.title]]\n\n break\n }\n\n case 'template':\n // TODO\n break\n\n case 'synced_block':\n if (block.synced_block.synced_from) {\n // TODO: handle block.synced_block.synced_from.type for non-block types\n compatBlock.type = 'transclusion_reference'\n compatBlock.format.transclusion_reference_pointer = {\n id: block.synced_block.synced_from.block_id,\n table: 'block'\n }\n } else {\n compatBlock.type = 'transclusion_container'\n }\n break\n\n case 'equation':\n if (block.equation?.expression) compatBlock.properties.title = [[block.equation.expression]]\n\n break\n\n case 'child_database':\n // TODO\n break\n\n case 'table':\n if (blockDetails.table_width && blockDetails.table_width > 0) {\n // There is no API to get the column ID. Used the index instead.\n compatBlock.format.table_block_column_order = Array.from({ length: blockDetails.table_width }, (_, i) => '' + i)\n compatBlock.format.table_block_column_format = compatBlock.format.table_block_column_order.map(order => {\n return {\n [order]: {\n // TODO: The SimpleTable column has no width and color. API is not supported.\n // width: 155,\n // color:\n }\n }\n })\n }\n if (blockDetails.has_column_header) compatBlock.format.table_block_column_header = blockDetails.has_column_header\n\n if (blockDetails.has_row_header) compatBlock.format.table_block_row_header = blockDetails.has_row_header\n\n break\n\n case 'table_row':\n compatBlock.properties = {\n ...block.table_row?.cells?.map(cell => convertRichText(cell))\n }\n break\n\n case 'pdf':\n // TODO: formatting\n compatBlock.format.block_page_width = true\n compatBlock.format.block_height = '80vh'\n break\n\n case 'video': {\n // TODO: formatting\n compatBlock.format.block_page_width = true\n compatBlock.format.block_aspect_ratio = 0.5620608899297423\n\n try {\n const url = compatBlock.properties.source?.[0]?.[0]\n\n if (!url) break\n const u = new URL(url)\n\n switch (u.hostname) {\n case 'loom.com':\n case 'www.loom.com':\n u.pathname = u.pathname.replace(/^\\/share\\//i, '/embed/')\n compatBlock.format.display_source = u.toString()\n break\n }\n } catch {\n // ignore invalid urls\n }\n break\n }\n\n case 'embed': {\n // TODO: embedding really needs to use some sort of externaly embed API like\n // embedly or microlinkhq. Currently, many embed use cases will not work or\n // display properly.\n const url = block.embed?.url\n\n // TODO: formatting\n compatBlock.format.block_page_width = true\n compatBlock.format.block_height = '30vh'\n\n if (url) {\n compatBlock.properties.source = [[url]]\n\n try {\n const u = new URL(url)\n\n switch (u.hostname) {\n case 'twitter.com':\n compatBlock.type = 'tweet'\n delete compatBlock.format\n break\n\n case 'maps.google.com':\n compatBlock.type = 'maps'\n break\n\n case 'excalidraw.com':\n compatBlock.type = 'excalidraw'\n break\n\n case 'codepen.io':\n compatBlock.type = 'codepen'\n break\n\n case 'docs.google.com':\n // fallthrough\n case 'drive.google.com':\n compatBlock.type = 'drive'\n\n // TODO: fetch drive_properties\n break\n\n case 'figma.com':\n compatBlock.type = 'figma'\n break\n\n case 'open.spotify.com':\n if (u.pathname.includes('/embed/') || u.pathname.includes('/embed-podcast/')) break\n\n if (u.pathname.startsWith('/playlist/')) u.pathname = `/embed${u.pathname}`\n else if (u.pathname.startsWith('/episode/')) u.pathname = `/embed-podcast${u.pathname}`\n\n u.search = ''\n compatBlock.format.display_source = u.toString()\n break\n\n case 'airtable.com':\n if (!u.pathname.startsWith('/embed/')) {\n u.pathname = `/embed${u.pathname}`\n compatBlock.format.display_source = u.toString()\n }\n break\n\n case 'soundcloud.com':\n // TODO\n break\n }\n } catch {\n // ignore invalid urls\n }\n }\n break\n }\n\n case 'image':\n // no-op\n // TODO: handle formatting\n break\n\n case 'audio':\n // no-op\n break\n\n case 'link_preview':\n // TODO\n break\n\n case 'unsupported':\n // no-op\n break\n }\n\n return compatBlock as BlockType\n}\n","import { convertBlock } from './convert-block'\n\nimport type { ExtendedRecordMap, Block as BlockType } from '@texonom/ntypes'\nimport type { PageMap, BlockMap, BlockChildrenMap, ParentMap, Page, Block } from './types'\n\nexport function convertPage({\n pageId,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n}: {\n pageId: string\n blockMap: BlockMap\n blockChildrenMap: BlockChildrenMap\n pageMap: PageMap\n parentMap: ParentMap\n}): ExtendedRecordMap {\n const compatBlocks = Object.values(blockMap).map(block =>\n convertBlock({\n block,\n children: blockChildrenMap[block.id],\n pageMap,\n blockMap,\n parentMap\n })\n )\n\n const compatPageBlock = convertPageBlock({\n pageId,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n })\n\n const compatPageBlocks = Object.keys(pageMap)\n .filter(id => id !== pageId)\n .map(id =>\n convertPageBlock({\n pageId: id,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n })\n )\n\n const compatBlockMap = [compatPageBlock, ...compatBlocks, ...compatPageBlocks].reduce(\n (blockMap, block) => ({\n ...blockMap,\n [block.id]: {\n type: 'reader',\n value: block\n }\n }),\n {}\n )\n\n return {\n block: compatBlockMap,\n collection: {},\n collection_view: {},\n collection_query: {},\n signed_urls: {},\n notion_user: {}\n }\n}\n\nexport function convertPageBlock({\n pageId,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n}: {\n pageId: string\n blockMap: BlockMap\n blockChildrenMap: BlockChildrenMap\n pageMap: PageMap\n parentMap: ParentMap\n}): BlockType | null {\n const partialPage = pageMap[pageId]\n const page = partialPage as Page\n\n if (page) {\n const compatPageBlock = convertBlock({\n block: { ...page, type: 'child_page' } as unknown as Block,\n children: blockChildrenMap[page.id],\n pageMap,\n blockMap,\n parentMap\n })\n\n return compatPageBlock\n }\n\n return null\n}\n"],"mappings":"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","names":["parsePageId","PQueue","convertColor","color","convertRichText","richText","convertRichTextItem","richTextItem","_a","subdecorations","convertColor","details","mention","convertTime","time","convertBlock","partialBlock","children","pageMap","blockMap","parentMap","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","compatBlock","block","convertTime","parentId","parentBlock","blockDetails","convertRichText","convertColor","page","_","i","order","cell","url","u","convertPage","pageId","blockMap","blockChildrenMap","pageMap","parentMap","compatBlocks","block","convertBlock","compatPageBlock","convertPageBlock","compatPageBlocks","id","page","NotionCompatAPI","client","rawPageId","pageId","parsePageId","page","block","children","blockMap","blockChildrenMap","pageMap","parentMap","recordMap","convertPage","rootBlockId","concurrency","pendingBlockIds","queue","PQueue","processBlock","blockId","shallow","_a","_b","_c","partialBlock","partialPage","child","childBlock","mappedChildBlock","details","richTextMentions","richTextItem","richTextMention","databaseId","err","blocks","cursor","res"]}
1
+ {"version":3,"file":"index.js","sources":["../src/convert-color.ts","../src/convert-rich-text.ts","../src/convert-time.ts","../src/convert-block.ts","../src/convert-page.ts","../src/notion-compat-api.ts"],"sourcesContent":["import type { Color } from '@texonom/ntypes'\n\nexport function convertColor(color: string): Color {\n switch (color) {\n case 'green':\n return 'teal'\n\n case 'green_background':\n return 'teal_background'\n\n default:\n return color as Color\n }\n}\n","import { convertColor } from './convert-color'\n\nimport type { SubDecoration, Decoration } from '@texonom/ntypes'\nimport type { RichText, RichTextItem } from './types'\n\nexport function convertRichText(richText: RichText): Decoration[] {\n return richText.map(convertRichTextItem).filter(Boolean)\n}\n\nexport function convertRichTextItem(richTextItem: RichTextItem): Decoration {\n const subdecorations: SubDecoration[] = []\n\n if (richTextItem.annotations.bold) subdecorations.push(['b'])\n if (richTextItem.annotations.italic) subdecorations.push(['i'])\n if (richTextItem.annotations.strikethrough) subdecorations.push(['s'])\n if (richTextItem.annotations.underline) subdecorations.push(['_'])\n if (richTextItem.annotations.code) subdecorations.push(['c'])\n if (richTextItem.annotations.color !== 'default') subdecorations.push(['h', convertColor(richTextItem.annotations.color)])\n\n const details = richTextItem[richTextItem.type]\n if (details) if (details.link) subdecorations.push(['a', details.link.url])\n\n switch (richTextItem.type) {\n case 'text':\n if (subdecorations.length) return [richTextItem.text.content, subdecorations]\n else return [richTextItem.text.content]\n\n case 'equation':\n if (richTextItem.equation?.expression) subdecorations.unshift(['e', richTextItem.equation.expression])\n return ['⁍', subdecorations]\n\n case 'mention': {\n const { mention } = richTextItem\n\n if (mention)\n switch (mention.type) {\n case 'link_preview':\n // TODO: this should be an eoi, but we don't hae the proper data\n subdecorations.push(['a', mention.link_preview.url])\n break\n\n case 'page':\n subdecorations.push(['p', mention.page.id])\n return ['‣', subdecorations]\n\n case 'database':\n subdecorations.push(['p', mention.database.id])\n return ['‣', subdecorations]\n\n case 'date':\n subdecorations.unshift([\n 'd',\n {\n type: 'date', // TODO\n start_date: mention.date.start,\n end_date: mention.date.end,\n time_zone: mention.date.time_zone\n }\n ])\n break\n\n case 'user':\n subdecorations.push(['u', mention.user.id])\n break\n\n case 'template_mention':\n // TODO\n // subdecorations.push(['m', mention.template_mention.type])\n break\n\n default:\n // TODO\n break\n }\n\n return [richTextItem.plain_text, subdecorations]\n }\n\n default:\n return ['']\n }\n}\n","export function convertTime(time?: string): number | undefined {\n if (time)\n try {\n return new Date(time).getTime()\n } catch {\n // ignore invalid time strings\n }\n\n return undefined\n}\n","import { convertColor } from './convert-color'\nimport { convertRichText } from './convert-rich-text'\nimport { convertTime } from './convert-time'\n\nimport type { BaseBlock, Block as BlockType } from '@texonom/ntypes'\nimport type { PartialBlock, PageMap, BlockMap, ParentMap, Block, Page } from './types'\n\nexport function convertBlock({\n block: partialBlock,\n children = [],\n pageMap,\n blockMap,\n parentMap\n}: {\n block: PartialBlock\n children?: string[]\n pageMap?: PageMap\n blockMap?: BlockMap\n parentMap?: ParentMap\n}): BlockType {\n const compatBlock: Partial<BaseBlock> = {\n id: partialBlock.id\n }\n\n if (children && children.length) compatBlock.content = children\n\n const block = partialBlock as Block\n if (!block.type) return compatBlock as BlockType\n\n compatBlock.properties = {}\n compatBlock.format = {}\n compatBlock.type = block.type\n compatBlock.created_time = convertTime(block.created_time)\n compatBlock.last_edited_time = convertTime(block.last_edited_time)\n if (block.created_by) {\n compatBlock.created_by_table = `notion_${block.created_by.object}`\n compatBlock.created_by_id = block.created_by.id\n }\n compatBlock.last_edited_by_table = block.last_edited_by?.object\n compatBlock.last_edited_by_id = block.last_edited_by?.id\n compatBlock.alive = block.archived !== true\n\n if (parentMap) {\n const parentId = parentMap[block.id]\n\n if (parentId) {\n compatBlock.parent_id = parentId\n const parentBlock = blockMap?.[parentId] as Block\n if (parentBlock) {\n switch (parentBlock.type) {\n case 'child_database':\n compatBlock.parent_table = 'table'\n break\n case 'child_page':\n // fallthrough\n default:\n compatBlock.parent_table = 'block'\n break\n }\n } else {\n const parentPage = pageMap?.[parentId] as Page\n if (parentPage) compatBlock.parent_table = 'block'\n }\n }\n }\n\n const blockDetails = block[block.type]\n if (blockDetails) {\n if (blockDetails.rich_text) compatBlock.properties.title = convertRichText(blockDetails.rich_text)\n\n if (blockDetails.color) compatBlock.format.block_color = convertColor(blockDetails.color)\n\n if (blockDetails.icon)\n switch (blockDetails.icon.type) {\n case 'emoji':\n compatBlock.format.page_icon = blockDetails.icon.emoji\n break\n\n case 'external':\n compatBlock.format.page_icon = blockDetails.icon.external.url\n break\n\n case 'file':\n compatBlock.format.page_icon = blockDetails.icon.file.url\n break\n }\n\n if (blockDetails.type)\n switch (blockDetails.type) {\n case 'external':\n compatBlock.properties.source = [[blockDetails.external.url]]\n break\n\n case 'file':\n compatBlock.properties.source = [[blockDetails.file.url]]\n break\n }\n }\n\n switch (block.type) {\n case 'paragraph':\n compatBlock.type = 'text'\n if (!block.paragraph?.rich_text?.length) delete compatBlock.properties\n\n break\n\n case 'heading_1':\n compatBlock.type = 'header'\n break\n\n case 'heading_2':\n compatBlock.type = 'sub_header'\n break\n\n case 'heading_3':\n compatBlock.type = 'sub_sub_header'\n break\n\n case 'bulleted_list_item':\n compatBlock.type = 'bulleted_list'\n break\n\n case 'numbered_list_item':\n compatBlock.type = 'numbered_list'\n break\n\n case 'quote':\n // no-op\n break\n\n case 'to_do':\n if (block.to_do?.checked) compatBlock.properties.checked = [['Yes']]\n\n break\n\n case 'toggle':\n // no-op\n break\n\n case 'code':\n if (block.code.language) compatBlock.properties.language = [[block.code.language]]\n break\n\n case 'callout':\n // no-op\n break\n\n case 'file':\n // no-op\n break\n\n case 'divider':\n // no-op\n break\n\n case 'breadcrumb':\n // TODO\n break\n\n case 'table_of_contents':\n // no-op\n break\n\n case 'column_list':\n // no-op\n break\n\n case 'column':\n // no-op\n break\n\n case 'bookmark':\n if (block.bookmark.url) compatBlock.properties.link = [[block.bookmark.url]]\n\n if (block.bookmark.caption) compatBlock.properties.description = convertRichText(block.bookmark.caption)\n\n break\n\n case 'link_to_page':\n compatBlock.type = 'alias'\n switch (block.link_to_page?.type) {\n case 'page_id':\n compatBlock.format.alias_pointer = {\n id: block.link_to_page.page_id,\n table: 'block'\n }\n break\n\n case 'database_id':\n compatBlock.format.alias_pointer = {\n id: block.link_to_page.database_id,\n table: 'table'\n }\n break\n }\n break\n\n case 'child_page': {\n compatBlock.type = 'page'\n\n if (pageMap) {\n const page = pageMap[block.id] as Page\n if (page) {\n if (page.properties.title) compatBlock.properties.title = convertRichText((page.properties.title as any).title)\n\n if (page.cover) {\n switch (page.cover.type) {\n case 'external':\n compatBlock.format.page_cover = page.cover.external.url\n break\n\n case 'file':\n compatBlock.format.page_cover = page.cover.file.url\n break\n }\n\n // TODO\n compatBlock.format.page_cover_position = 0.5\n }\n\n if (page.icon)\n switch (page.icon.type) {\n case 'emoji':\n compatBlock.format.page_icon = page.icon.emoji\n break\n\n case 'external':\n compatBlock.format.page_icon = page.icon.external.url\n break\n\n case 'file':\n compatBlock.format.page_icon = page.icon.file.url\n break\n }\n\n if (page.parent)\n switch (page.parent.type) {\n case 'workspace':\n compatBlock.parent_table = 'space'\n break\n\n case 'database_id':\n compatBlock.parent_table = 'table'\n break\n\n case 'page_id':\n compatBlock.parent_table = 'block'\n break\n }\n }\n }\n\n if (block.child_page) if (block.child_page.title) compatBlock.properties.title = [[block.child_page.title]]\n\n break\n }\n\n case 'template':\n // TODO\n break\n\n case 'synced_block':\n if (block.synced_block.synced_from) {\n // TODO: handle block.synced_block.synced_from.type for non-block types\n compatBlock.type = 'transclusion_reference'\n compatBlock.format.transclusion_reference_pointer = {\n id: block.synced_block.synced_from.block_id,\n table: 'block'\n }\n } else {\n compatBlock.type = 'transclusion_container'\n }\n break\n\n case 'equation':\n if (block.equation?.expression) compatBlock.properties.title = [[block.equation.expression]]\n\n break\n\n case 'child_database':\n // TODO\n break\n\n case 'table':\n if (blockDetails.table_width && blockDetails.table_width > 0) {\n // There is no API to get the column ID. Used the index instead.\n compatBlock.format.table_block_column_order = Array.from({ length: blockDetails.table_width }, (_, i) => '' + i)\n compatBlock.format.table_block_column_format = compatBlock.format.table_block_column_order.map(order => {\n return {\n [order]: {\n // TODO: The SimpleTable column has no width and color. API is not supported.\n // width: 155,\n // color:\n }\n }\n })\n }\n if (blockDetails.has_column_header) compatBlock.format.table_block_column_header = blockDetails.has_column_header\n\n if (blockDetails.has_row_header) compatBlock.format.table_block_row_header = blockDetails.has_row_header\n\n break\n\n case 'table_row':\n compatBlock.properties = {\n ...block.table_row?.cells?.map(cell => convertRichText(cell))\n }\n break\n\n case 'pdf':\n // TODO: formatting\n compatBlock.format.block_page_width = true\n compatBlock.format.block_height = '80vh'\n break\n\n case 'video': {\n // TODO: formatting\n compatBlock.format.block_page_width = true\n compatBlock.format.block_aspect_ratio = 0.5620608899297423\n\n try {\n const url = compatBlock.properties.source?.[0]?.[0]\n\n if (!url) break\n const u = new URL(url)\n\n switch (u.hostname) {\n case 'loom.com':\n case 'www.loom.com':\n u.pathname = u.pathname.replace(/^\\/share\\//i, '/embed/')\n compatBlock.format.display_source = u.toString()\n break\n }\n } catch {\n // ignore invalid urls\n }\n break\n }\n\n case 'embed': {\n // TODO: embedding really needs to use some sort of externaly embed API like\n // embedly or microlinkhq. Currently, many embed use cases will not work or\n // display properly.\n const url = block.embed?.url\n\n // TODO: formatting\n compatBlock.format.block_page_width = true\n compatBlock.format.block_height = '30vh'\n\n if (url) {\n compatBlock.properties.source = [[url]]\n\n try {\n const u = new URL(url)\n\n switch (u.hostname) {\n case 'twitter.com':\n compatBlock.type = 'tweet'\n delete compatBlock.format\n break\n\n case 'maps.google.com':\n compatBlock.type = 'maps'\n break\n\n case 'excalidraw.com':\n compatBlock.type = 'excalidraw'\n break\n\n case 'codepen.io':\n compatBlock.type = 'codepen'\n break\n\n case 'docs.google.com':\n // fallthrough\n case 'drive.google.com':\n compatBlock.type = 'drive'\n\n // TODO: fetch drive_properties\n break\n\n case 'figma.com':\n compatBlock.type = 'figma'\n break\n\n case 'open.spotify.com':\n if (u.pathname.includes('/embed/') || u.pathname.includes('/embed-podcast/')) break\n\n if (u.pathname.startsWith('/playlist/')) u.pathname = `/embed${u.pathname}`\n else if (u.pathname.startsWith('/episode/')) u.pathname = `/embed-podcast${u.pathname}`\n\n u.search = ''\n compatBlock.format.display_source = u.toString()\n break\n\n case 'airtable.com':\n if (!u.pathname.startsWith('/embed/')) {\n u.pathname = `/embed${u.pathname}`\n compatBlock.format.display_source = u.toString()\n }\n break\n\n case 'soundcloud.com':\n // TODO\n break\n }\n } catch {\n // ignore invalid urls\n }\n }\n break\n }\n\n case 'image':\n // no-op\n // TODO: handle formatting\n break\n\n case 'audio':\n // no-op\n break\n\n case 'link_preview':\n // TODO\n break\n\n case 'unsupported':\n // no-op\n break\n }\n\n return compatBlock as BlockType\n}\n","import { convertBlock } from './convert-block'\n\nimport type { ExtendedRecordMap, Block as BlockType } from '@texonom/ntypes'\nimport type { PageMap, BlockMap, BlockChildrenMap, ParentMap, Page, Block } from './types'\n\nexport function convertPage({\n pageId,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n}: {\n pageId: string\n blockMap: BlockMap\n blockChildrenMap: BlockChildrenMap\n pageMap: PageMap\n parentMap: ParentMap\n}): ExtendedRecordMap {\n const compatBlocks = Object.values(blockMap).map(block =>\n convertBlock({\n block,\n children: blockChildrenMap[block.id],\n pageMap,\n blockMap,\n parentMap\n })\n )\n\n const compatPageBlock = convertPageBlock({\n pageId,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n })\n\n const compatPageBlocks = Object.keys(pageMap)\n .filter(id => id !== pageId)\n .map(id =>\n convertPageBlock({\n pageId: id,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n })\n )\n\n const compatBlockMap = [compatPageBlock, ...compatBlocks, ...compatPageBlocks].reduce(\n (blockMap, block) => ({\n ...blockMap,\n [block.id]: {\n type: 'reader',\n value: block\n }\n }),\n {}\n )\n\n return {\n block: compatBlockMap,\n collection: {},\n collection_view: {},\n collection_query: {},\n signed_urls: {},\n notion_user: {}\n }\n}\n\nexport function convertPageBlock({\n pageId,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n}: {\n pageId: string\n blockMap: BlockMap\n blockChildrenMap: BlockChildrenMap\n pageMap: PageMap\n parentMap: ParentMap\n}): BlockType | null {\n const partialPage = pageMap[pageId]\n const page = partialPage as Page\n\n if (page) {\n const compatPageBlock = convertBlock({\n block: { ...page, type: 'child_page' } as unknown as Block,\n children: blockChildrenMap[page.id],\n pageMap,\n blockMap,\n parentMap\n })\n\n return compatPageBlock\n }\n\n return null\n}\n","import type { Client } from '@notionhq/client'\nimport { parsePageId } from '@texonom/nutils'\nimport PQueue from 'p-queue'\n\nimport { convertPage } from './convert-page'\n\nimport type { BlockMap, PageMap, ParentMap, BlockChildrenMap, Block, Page, BlockChildren } from './types'\nimport type { ExtendedRecordMap } from '@texonom/ntypes'\nimport type { GetBlockResponse, GetPageResponse } from '@notionhq/client/build/src/api-endpoints'\n\nexport class NotionCompatAPI {\n client: Client\n\n constructor(client: Client) {\n this.client = client\n }\n\n public async getPage(rawPageId: string): Promise<ExtendedRecordMap> {\n const pageId = parsePageId(rawPageId)\n\n const [page, block, children] = await Promise.all([\n this.client.pages.retrieve({ page_id: pageId }),\n this.client.blocks.retrieve({ block_id: pageId }),\n this.getAllBlockChildren(pageId)\n ])\n const { blockMap, blockChildrenMap, pageMap, parentMap } = await this.resolvePage(pageId)\n\n const recordMap = convertPage({\n pageId,\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n })\n\n ;(\n recordMap as ExtendedRecordMap & {\n raw: { page: GetPageResponse; block: GetBlockResponse; children: GetBlockResponse[] }\n }\n ).raw = {\n page,\n block,\n children\n }\n\n return recordMap\n }\n\n async resolvePage(\n rootBlockId: string,\n {\n concurrency = 4\n }: {\n concurrency?: number\n } = {}\n ) {\n const blockMap: BlockMap = {}\n const pageMap: PageMap = {}\n const parentMap: ParentMap = {}\n const blockChildrenMap: BlockChildrenMap = {}\n const pendingBlockIds = new Set<string>()\n const queue = new PQueue({ concurrency })\n\n const processBlock = async (blockId: string, { shallow = false }: { shallow?: boolean } = {}) => {\n if (!blockId || pendingBlockIds.has(blockId)) return\n\n pendingBlockIds.add(blockId)\n queue.add(async () => {\n try {\n let partialBlock = blockMap[blockId]\n if (!partialBlock) {\n partialBlock = await this.client.blocks.retrieve({\n block_id: blockId\n })\n blockMap[blockId] = partialBlock\n }\n\n const block = partialBlock as Block\n if (block.type === 'child_page') {\n if (!pageMap[blockId]) {\n const partialPage = await this.client.pages.retrieve({\n page_id: blockId\n })\n\n pageMap[blockId] = partialPage\n\n const page = partialPage as Page\n switch (page.parent?.type) {\n case 'page_id':\n processBlock(page.parent.page_id, {\n shallow: true\n })\n if (!parentMap[blockId]) parentMap[blockId] = page.parent.page_id\n\n break\n\n case 'database_id':\n processBlock(page.parent.database_id, {\n shallow: true\n })\n if (!parentMap[blockId]) parentMap[blockId] = page.parent.database_id\n\n break\n }\n }\n\n if (blockId !== rootBlockId)\n // don't fetch children or recurse on subpages\n return\n }\n\n if (shallow) return\n\n const children = await this.getAllBlockChildren(blockId)\n blockChildrenMap[blockId] = children.map(child => child.id)\n\n for (const child of children) {\n const childBlock = child as Block\n const mappedChildBlock = blockMap[child.id] as Block\n if (!mappedChildBlock || (!mappedChildBlock.type && childBlock.type)) {\n blockMap[child.id] = childBlock\n parentMap[child.id] = blockId\n\n const details = childBlock[childBlock.type]\n if (details?.rich_text) {\n const richTextMentions = details.rich_text.filter(richTextItem => richTextItem.type === 'mention')\n\n for (const richTextMention of richTextMentions)\n switch (richTextMention.mention?.type) {\n case 'page': {\n const pageId = richTextMention.mention.page.id\n processBlock(pageId, { shallow: true })\n break\n }\n\n case 'database': {\n const databaseId = richTextMention.mention.database.id\n processBlock(databaseId, { shallow: true })\n break\n }\n }\n }\n\n if (childBlock.type === 'link_to_page')\n switch (childBlock.link_to_page?.type) {\n case 'page_id':\n processBlock(childBlock.link_to_page.page_id, {\n shallow: true\n })\n break\n\n case 'database_id':\n processBlock(childBlock.link_to_page.database_id, {\n shallow: true\n })\n break\n }\n\n if (childBlock.has_children && childBlock.type !== 'child_database') processBlock(childBlock.id)\n }\n }\n } catch (err) {\n console.warn('failed resolving block', blockId, err.message)\n } finally {\n pendingBlockIds.delete(blockId)\n }\n })\n }\n\n await processBlock(rootBlockId)\n await queue.onIdle()\n\n return {\n blockMap,\n blockChildrenMap,\n pageMap,\n parentMap\n }\n }\n\n async getAllBlockChildren(blockId: string) {\n let blocks: BlockChildren = []\n let cursor: string\n\n do {\n console.debug('blocks.children.list', { blockId, cursor })\n const res = await this.client.blocks.children.list({\n block_id: blockId,\n start_cursor: cursor\n })\n\n blocks = blocks.concat(res.results)\n cursor = res.next_cursor\n } while (cursor)\n\n return blocks\n }\n}\n"],"names":["convertColor","color","convertRichText","richText","convertRichTextItem","richTextItem","subdecorations","details","_a","mention","convertTime","time","e","convertBlock","partialBlock","children","pageMap","blockMap","parentMap","compatBlock","block","_b","parentId","parentBlock","blockDetails","_d","_c","_e","_f","page","_g","_","i","order","__spreadValues","_i","_h","cell","url","_k","_j","u","_l","convertPage","pageId","blockChildrenMap","compatBlocks","compatPageBlock","convertPageBlock","compatPageBlocks","id","__spreadProps","NotionCompatAPI","client","rawPageId","__async","parsePageId","recordMap","_0","rootBlockId","concurrency","pendingBlockIds","queue","PQueue","processBlock","_1","blockId","shallow","partialPage","child","childBlock","mappedChildBlock","richTextMentions","richTextMention","databaseId","err","blocks","cursor","res"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { Client } from '@notionhq/client';
2
- import type { BlockMap, PageMap, ParentMap, BlockChildrenMap } from './types';
3
- import type { ExtendedRecordMap } from '@texonom/ntypes';
1
+ import { Client } from '@notionhq/client';
2
+ import { BlockMap, PageMap, ParentMap, BlockChildrenMap } from './types';
3
+ import { ExtendedRecordMap } from '@texonom/ntypes';
4
4
  export declare class NotionCompatAPI {
5
5
  client: Client;
6
6
  constructor(client: Client);
@@ -13,6 +13,6 @@ export declare class NotionCompatAPI {
13
13
  pageMap: PageMap;
14
14
  parentMap: ParentMap;
15
15
  }>;
16
- getAllBlockChildren(blockId: string): Promise<(import("@notionhq/client").PartialBlockObjectResponse | import("@notionhq/client").BlockObjectResponse)[]>;
16
+ getAllBlockChildren(blockId: string): Promise<(import('@notionhq/client').PartialBlockObjectResponse | import('@notionhq/client').BlockObjectResponse)[]>;
17
17
  }
18
18
  //# sourceMappingURL=notion-compat-api.d.ts.map
package/build/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Client } from '@notionhq/client';
1
+ import { Client } from '@notionhq/client';
2
2
  type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
3
3
  export type PartialPage = Awaited<ReturnType<InstanceType<typeof Client>['pages']['retrieve']>>;
4
4
  export type Page = Extract<Awaited<ReturnType<InstanceType<typeof Client>['pages']['retrieve']>>, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@texonom/ncompat",
3
- "version": "1.4.6",
3
+ "version": "1.5.0",
4
4
  "type": "module",
5
5
  "description": "Compatibility layer between the official Notion API and unofficial private API.",
6
6
  "repository": "texonom/notion-node",
@@ -14,16 +14,16 @@
14
14
  "build"
15
15
  ],
16
16
  "engines": {
17
- "node": ">=22.16.0"
17
+ "node": ">=22.22.0"
18
18
  },
19
19
  "dependencies": {
20
- "p-queue": "^8.1.0",
21
- "@texonom/ntypes": "^1.4.6",
22
- "@texonom/nutils": "^1.4.6"
20
+ "p-queue": "^9.1.0",
21
+ "@texonom/ntypes": "^1.5.0",
22
+ "@texonom/nutils": "^1.5.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@notionhq/client": "^3.1.3",
26
- "@texonom/nclient": "^1.4.6"
25
+ "@notionhq/client": "^5.9.0",
26
+ "@texonom/nclient": "^1.5.0"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "@notionhq/client": "^1.0.4"
@@ -35,8 +35,8 @@
35
35
  }
36
36
  },
37
37
  "scripts": {
38
- "build": "tsc && tsup",
39
- "watch": "tsup --watch --silent --onSuccess 'echo build successful'",
38
+ "build": "tsc && vite build",
39
+ "watch": "vite build --watch --mode development",
40
40
  "prerelease": "standard-version --skip.changelog --prerelease",
41
41
  "release": "standard-version --release-as",
42
42
  "pu": "pnpm publish"
package/readme.md CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  ## Features
8
8
 
9
+ - Uses the official Notion API while keeping the response structure of the unofficial API
10
+
9
11
  - fully compatible with `nreact`
10
12
  - backwards compatible with `nclient` and the unofficial notion API
11
13
 
@@ -20,8 +22,28 @@ const notion = new NotionCompatAPI(new Client({ auth: process.env.NOTION_TOKEN }
20
22
  const recordMap = await notion.getPage(pageId)
21
23
  ```
22
24
 
25
+ ```ts
26
+ // searching works too
27
+ const results = await notion.search({ query: 'Texonom' })
28
+ ```
29
+
23
30
  The resulting `recordMap` is compatible with notion's unofficial API and nreact.
24
31
 
32
+ ## API
33
+
34
+ Exports:
35
+
36
+ - `NotionCompatAPI` – wrapper around '@notionhq/client'
37
+ - `convertPage({ pageId, blockMap })`
38
+ - `convertBlock({ block, blockMap })`
39
+ - `convertTime(time)`
40
+ - `convertColor(color)`
41
+ - `convertRichText(rich)`
42
+
43
+ ## Difference from React Notion X
44
+
45
+ This layer lets you use the official API while retaining the features of the original unofficial client.
46
+
25
47
  ## Demo
26
48
 
27
49
  You can preview `nreact` using the official client and compatibility layer here: https://nreact-official-api-demo.transitivebullsh.it/
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2022 Seonglae Cho
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1 +0,0 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../ntypes/build/index.d.ts","../src/convert-color.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/dom-events.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.15.30/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@notionhq+client@3.1.3/node_modules/@notionhq/client/build/src/api-endpoints.d.ts","../../../node_modules/.pnpm/@notionhq+client@3.1.3/node_modules/@notionhq/client/build/src/logging.d.ts","../../../node_modules/.pnpm/@notionhq+client@3.1.3/node_modules/@notionhq/client/build/src/fetch-types.d.ts","../../../node_modules/.pnpm/@notionhq+client@3.1.3/node_modules/@notionhq/client/build/src/client.d.ts","../../../node_modules/.pnpm/@notionhq+client@3.1.3/node_modules/@notionhq/client/build/src/errors.d.ts","../../../node_modules/.pnpm/@notionhq+client@3.1.3/node_modules/@notionhq/client/build/src/helpers.d.ts","../../../node_modules/.pnpm/@notionhq+client@3.1.3/node_modules/@notionhq/client/build/src/index.d.ts","../src/types.ts","../src/convert-rich-text.ts","../src/convert-time.ts","../src/convert-block.ts","../src/convert-page.ts","../../../node_modules/.pnpm/is-url-superb@6.1.0/node_modules/is-url-superb/index.d.ts","../../nutils/build/index.d.ts","../../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.d.ts","../../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/queue.d.ts","../../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/options.d.ts","../../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/priority-queue.d.ts","../../../node_modules/.pnpm/p-queue@8.1.0/node_modules/p-queue/dist/index.d.ts","../src/notion-compat-api.ts","../src/index.ts"],"fileIdsList":[[87,130,180],[87,130,145,180,181,182,183],[87,130,183],[87,130,145,180],[87,130,181],[87,130,181,182,184,185,186],[87,130],[87,127,130],[87,129,130],[130],[87,130,135,165],[87,130,131,136,142,143,150,162,173],[87,130,131,132,142,150],[82,83,84,87,130],[87,130,133,174],[87,130,134,135,143,151],[87,130,135,162,170],[87,130,136,138,142,150],[87,129,130,137],[87,130,138,139],[87,130,140,142],[87,129,130,142],[87,130,142,143,144,162,173],[87,130,142,143,144,157,162,165],[87,125,130],[87,125,130,138,142,145,150,162,173],[87,130,142,143,145,146,150,162,170,173],[87,130,145,147,162,170,173],[85,86,87,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],[87,130,142,148],[87,130,149,173],[87,130,138,142,150,162],[87,130,151],[87,130,152],[87,129,130,153],[87,127,128,129,130,131,132,133,134,135,136,137,138,139,140,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],[87,130,155],[87,130,156],[87,130,142,157,158],[87,130,157,159,174,176],[87,130,142,162,163,165],[87,130,164,165],[87,130,162,163],[87,130,165],[87,130,166],[87,127,130,162],[87,130,142,168,169],[87,130,168,169],[87,130,135,150,162,170],[87,130,171],[87,130,150,172],[87,130,145,156,173],[87,130,135,174],[87,130,162,175],[87,130,149,176],[87,130,177],[87,130,142,144,153,162,165,173,176,178],[87,130,162,179],[87,130,195,196,197,198],[87,130,196],[87,130,196,197],[87,97,101,130,173],[87,97,130,162,173],[87,92,130],[87,94,97,130,170,173],[87,130,150,170],[87,92,130,180],[87,94,97,130,150,173],[87,89,90,93,96,130,142,162,173],[87,97,104,130],[87,89,95,130],[87,97,118,119,130],[87,93,97,130,165,173,180],[87,118,130,180],[87,91,92,130,180],[87,97,130],[87,91,92,93,94,95,96,97,98,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,130],[87,97,112,130],[87,97,104,105,130],[87,95,97,105,106,130],[87,96,130],[87,89,92,97,130],[87,97,101,105,106,130],[87,101,130],[87,95,97,100,130,173],[87,89,94,97,104,130],[87,130,162],[87,92,97,118,130,178,180],[80,81,87,130,188,189,190],[80,87,130],[80,87,130,188,191],[80,81,87,130,188],[81,87,130,189,190,191,192,200],[80,87,130,181,187,188,192,194,199],[87,130,187],[80,87,130,193]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"042bd95c78f3a2be4fa69bff4cc2921d64ee9bf19dcbf4a797fa80a057b3b207",{"version":"f064bf1ea7298b701404f73405c3aee8c60ea0ea759509b2a2708a685812b956","signature":"bd85421e5496b8a17dbf98ef7d90f96a7c0b99e005eee3a5e08222955330cd72"},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"a4ef5ccfd69b5bc2a2c29896aa07daaff7c5924a12e70cb3d9819145c06897db","affectsGlobalScope":true,"impliedFormat":1},{"version":"a38efe83ff77c34e0f418a806a01ca3910c02ee7d64212a59d59bca6c2c38fa1","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"3fe4022ba1e738034e38ad9afacbf0f1f16b458ed516326f5bf9e4a31e9be1dc","impliedFormat":1},{"version":"a957197054b074bcdf5555d26286e8461680c7c878040d0f4e2d5509a7524944","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f478f6f5902dc144c0d6d7bdc919c5177cac4d17a8ca8653c2daf6d7dc94317f","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a0a1dda070290b92da5a50113b73ecc4dd6bcbffad66e3c86503d483eafbadcf","impliedFormat":1},{"version":"59dcad36c4549175a25998f6a8b33c1df8e18df9c12ebad1dfb25af13fd4b1ce","impliedFormat":1},{"version":"206a70e72af3e24688397b81304358526ce70d020e4c2606c4acfd1fa1e81fb2","impliedFormat":1},{"version":"017caf5d2a8ef581cf94f678af6ce7415e06956317946315560f1487b9a56167","impliedFormat":1},{"version":"528b62e4272e3ddfb50e8eed9e359dedea0a4d171c3eb8f337f4892aac37b24b","impliedFormat":1},{"version":"d71535813e39c23baa113bc4a29a0e187b87d1105ccc8c5a6ebaca38d9a9bff2","impliedFormat":1},{"version":"4a1c5b43d4d408cb0df0a6cc82ca7be314553d37e432fc1fd801bae1a9ab2cb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"915e18c559321c0afaa8d34674d3eb77e1ded12c3e85bf2a9891ec48b07a1ca5","affectsGlobalScope":true,"impliedFormat":1},{"version":"636302a00dfd1f9fe6e8e91e4e9350c6518dcc8d51a474e4fc3a9ba07135100b","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"e1ce1d622f1e561f6cdf246372ead3bbc07ce0342024d0e9c7caf3136f712698","impliedFormat":1},{"version":"199c8269497136f3a0f4da1d1d90ab033f899f070e0dd801946f2a241c8abba2","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"27e4532aaaa1665d0dd19023321e4dc12a35a741d6b8e1ca3517fcc2544e0efe","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"8c2ad42d5d1a2e8e6112625767f8794d9537f1247907378543106f7ba6c7df90","affectsGlobalScope":true,"impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"a7692a54334fd08960cd0c610ff509c2caa93998e0dcefa54021489bcc67c22d","affectsGlobalScope":true,"impliedFormat":1},{"version":"74736930d108365d7bbe740c7154706ccfb1b2a3855a897963ab3e5c07ecbf19","impliedFormat":1},{"version":"3a051941721a7f905544732b0eb819c8d88333a96576b13af08b82c4f17581e4","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"c6ab0dd29bf74b71a54ff2bbce509eb8ae3c4294d57cc54940f443c01cd1baae","affectsGlobalScope":true,"impliedFormat":1},{"version":"3797dd6f4ea3dc15f356f8cdd3128bfa18122213b38a80d6c1f05d8e13cbdad8","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"ab77b8be46e44ea6e8f302f8f616bcfaf11f560248f9c73e28fdafd8bcefe356","impliedFormat":1},{"version":"19917e33ccf4db083bf16b50db2fdb123623894cf77c2a47d389869b2560e9e6","impliedFormat":1},{"version":"96af54fd78c38f1399d8ecd6520dbf7afdd8cf7d30fb65ad36e6cb11b5d2511e","impliedFormat":1},{"version":"62fcb1ef8208be6da84408bb0fd10105ca6ee0a0c0cd7e2b6257ab52db656252","impliedFormat":1},{"version":"69cbc18ea20ebe63c234ab768cc2efdca64f439095ed0a132d21c00107b0bac1","impliedFormat":1},{"version":"53fb8207966592e25325942d610d5710df5909c7e3c597ee141e9df1a10279ad","impliedFormat":1},{"version":"3bf98b0b6bca69bd425e7685fff8e6416ae1125ceb4f46ece1bf22bd635e3b89","impliedFormat":1},{"version":"77417f309dbe7c974e7970338d11fdfe964de0b042e8687aba89427a4e967374","signature":"9b91985b92a4a1f1da81b8bc163ac4bb2ac419661a77dbb242b1a2ddcb80eb9b"},{"version":"59384029f532de6a8c2634ac4ead02e70f8cd3885fa70fa7c07790308f0ba9b0","signature":"0b5fcf1a3577be19e1122a0eedaca81b20de1383e1ac803d6ab0fa5fb37c57f8"},{"version":"5fde20b6f28077cc40299297546d4848030915c15f0ed7010228aa4eb18e8bb7","signature":"77e3320fe1530f28fe258692bb56ee25636a3e67f370d7d1daac218e19fc611e"},{"version":"dd668b6fd3ab6e9f58b3782fbcb13cb4989fb8560da0dba76d539ddc3a7486aa","signature":"80179171737f47de624a451a0b9e364916725f3837b8a2578b7f623e40955568"},{"version":"5b88cc29fa28bd6c9c09ae5b78f3fc923ca0d253c1fefccaaf2e513f539f956b","signature":"49eb67287433e2b8e7a462b7f9bcd8fc0497177c22f639c851363139611d9b72"},{"version":"a87e5902fd92d16a80e0020ac03d6477bc2e7a6f5b0407a73aff6b7aa9e01d55","impliedFormat":99},"21a44ac96c8100b4a7094d990c022bc5c6397c460f4ac635606c94ed0e63e92f",{"version":"27679e96d1bd38c5938178aaf4abe8627493090b63d6bae2ce8436e6a87ebe4d","impliedFormat":1},{"version":"ee8fcb09c02b9731957ae073ade2a78507b981e89c90ec37e7d91e8a4cd88e03","impliedFormat":99},{"version":"0ed2e1af3a3ab01c2941f1b54462f59601251aec2e74909dd6cb6d6607616027","impliedFormat":99},{"version":"0ba90ee789528702e657fdfccfab87166648ce6705481ff56df9e1ad1dc9ef68","impliedFormat":99},{"version":"bc02e9ca0522734f5a8f54a8364b2f183d9ce271d2585d4aef77c8376a925cb9","impliedFormat":99},{"version":"9b1807f9e9e885ac4612193c573136332b3ddd1bf4c7d97e7e0bf6915fbdf8a8","signature":"76355b810666ae2febb31f94c89c4a5a7c319bd58a7e96b309ce052d6577a254"},{"version":"cd0ba552fe26843c3139d9950a93ed3a1cab761ca71e500fd4c2a3f4dab7d823","signature":"6aa2d249dd2ab28c7791229f7692b348a8ac7f1a8ede53b5b4d5b8b6b78eb4f6"}],"root":[81,[188,192],200,201],"options":{"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","sourceMap":true,"strict":false,"target":2,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[181,1],[184,2],[185,3],[183,4],[186,5],[187,6],[182,7],[127,8],[128,8],[129,9],[87,10],[130,11],[131,12],[132,13],[82,7],[85,14],[83,7],[84,7],[133,15],[134,16],[135,17],[136,18],[137,19],[138,20],[139,20],[141,7],[140,21],[142,22],[143,23],[144,24],[126,25],[86,7],[145,26],[146,27],[147,28],[180,29],[148,30],[149,31],[150,32],[151,33],[152,34],[153,35],[154,36],[155,37],[156,38],[157,39],[158,39],[159,40],[160,7],[161,7],[162,41],[164,42],[163,43],[165,44],[166,45],[167,46],[168,47],[169,48],[170,49],[171,50],[172,51],[173,52],[174,53],[175,54],[176,55],[177,56],[178,57],[179,58],[88,7],[195,7],[193,7],[199,59],[197,60],[198,61],[196,7],[78,7],[79,7],[13,7],[15,7],[14,7],[2,7],[16,7],[17,7],[18,7],[19,7],[20,7],[21,7],[22,7],[23,7],[3,7],[24,7],[25,7],[4,7],[26,7],[30,7],[27,7],[28,7],[29,7],[31,7],[32,7],[33,7],[5,7],[34,7],[35,7],[36,7],[37,7],[6,7],[41,7],[38,7],[39,7],[40,7],[42,7],[7,7],[43,7],[48,7],[49,7],[44,7],[45,7],[46,7],[47,7],[8,7],[53,7],[50,7],[51,7],[52,7],[54,7],[9,7],[55,7],[56,7],[57,7],[59,7],[58,7],[60,7],[61,7],[10,7],[62,7],[63,7],[64,7],[11,7],[65,7],[66,7],[67,7],[68,7],[69,7],[1,7],[70,7],[71,7],[12,7],[75,7],[73,7],[77,7],[72,7],[76,7],[74,7],[104,62],[114,63],[103,62],[124,64],[95,65],[94,66],[123,1],[117,67],[122,68],[97,69],[111,70],[96,71],[120,72],[92,73],[91,1],[121,74],[93,75],[98,76],[99,7],[102,76],[89,7],[125,77],[115,78],[106,79],[107,80],[109,81],[105,82],[108,83],[118,1],[100,84],[101,85],[110,86],[90,87],[113,78],[112,76],[116,7],[119,88],[191,89],[81,90],[192,91],[189,92],[190,7],[201,93],[200,94],[188,95],[80,7],[194,96]],"version":"5.8.3"}