@texonom/nclient 1.5.6 → 1.5.8

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.
package/build/index.js CHANGED
@@ -1,44 +1,44 @@
1
1
  var V = Object.defineProperty, ee = Object.defineProperties;
2
2
  var te = Object.getOwnPropertyDescriptors;
3
3
  var G = Object.getOwnPropertySymbols;
4
- var se = Object.prototype.hasOwnProperty, re = Object.prototype.propertyIsEnumerable;
5
- var H = (p, s, t) => s in p ? V(p, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : p[s] = t, o = (p, s) => {
6
- for (var t in s || (s = {}))
7
- se.call(s, t) && H(p, t, s[t]);
4
+ var oe = Object.prototype.hasOwnProperty, re = Object.prototype.propertyIsEnumerable;
5
+ var H = (p, o, t) => o in p ? V(p, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : p[o] = t, s = (p, o) => {
6
+ for (var t in o || (o = {}))
7
+ oe.call(o, t) && H(p, t, o[t]);
8
8
  if (G)
9
- for (var t of G(s))
10
- re.call(s, t) && H(p, t, s[t]);
9
+ for (var t of G(o))
10
+ re.call(o, t) && H(p, t, o[t]);
11
11
  return p;
12
- }, P = (p, s) => ee(p, te(s));
13
- var y = (p, s, t) => new Promise((e, l) => {
12
+ }, C = (p, o) => ee(p, te(o));
13
+ var g = (p, o, t) => new Promise((e, l) => {
14
14
  var _ = (c) => {
15
15
  try {
16
16
  n(t.next(c));
17
- } catch (k) {
18
- l(k);
17
+ } catch (v) {
18
+ l(v);
19
19
  }
20
20
  }, a = (c) => {
21
21
  try {
22
22
  n(t.throw(c));
23
- } catch (k) {
24
- l(k);
23
+ } catch (v) {
24
+ l(v);
25
25
  }
26
26
  }, n = (c) => c.done ? e(c.value) : Promise.resolve(c.value).then(_, a);
27
- n((t = t.apply(p, s)).next());
27
+ n((t = t.apply(p, o)).next());
28
28
  });
29
- import { uuidToId as oe, getPageContentUserIds as ne, getPageContentBlockIds as F, getBlockCollectionId as ce, findAncestors as ie, parsePageId as T } from "@texonom/nutils";
29
+ import { uuidToId as se, getPageContentUserIds as ne, getPageContentBlockIds as F, getBlockCollectionId as ce, findAncestors as ie, parsePageId as M } from "@texonom/nutils";
30
30
  import ae from "p-map";
31
31
  class pe {
32
32
  constructor({
33
- apiBaseUrl: s = "https://www.notion.so/api/v3",
33
+ apiBaseUrl: o = "https://www.notion.so/api/v3",
34
34
  authToken: t,
35
35
  activeUser: e,
36
36
  userTimeZone: l = "America/New_York"
37
37
  } = {}) {
38
- this._apiBaseUrl = s, this._authToken = t, this._activeUser = e, this._userTimeZone = l;
38
+ this._apiBaseUrl = o, this._authToken = t, this._activeUser = e, this._userTimeZone = l;
39
39
  }
40
- getPage(k) {
41
- return y(this, arguments, function* (s, {
40
+ getPage(v) {
41
+ return g(this, arguments, function* (o, {
42
42
  concurrency: t = 3,
43
43
  fetchFullInfo: e = !0,
44
44
  fetchCollections: l = !0,
@@ -47,49 +47,49 @@ class pe {
47
47
  chunkNumber: n = 0,
48
48
  fetchOption: c
49
49
  } = {}) {
50
- var i, u, m;
51
- const B = yield this.getPageRaw(s, {
50
+ var i, u, B;
51
+ const I = yield this.getPageRaw(o, {
52
52
  chunkLimit: a,
53
53
  chunkNumber: n,
54
54
  fetchOption: c
55
- }), r = B == null ? void 0 : B.recordMap;
56
- if (!(r != null && r.block)) throw new Error(`Notion page not found "${oe(s)}"`);
57
- if (r.collection = (i = r.collection) != null ? i : {}, r.collection_view = (u = r.collection_view) != null ? u : {}, r.notion_user = (m = r.notion_user) != null ? m : {}, r.collection_query = {}, r.signed_urls = {}, e) {
58
- const b = [], g = ne(r).filter((f) => !r.notion_user[f]);
59
- b.push(this.getUsers(g, c).then((f) => {
60
- var R;
61
- return (R = f == null ? void 0 : f.recordMapWithRoles) == null ? void 0 : R.notion_user;
55
+ }), r = I == null ? void 0 : I.recordMap;
56
+ if (!(r != null && r.block)) throw new Error(`Notion page not found "${se(o)}"`);
57
+ if (b(r.block), b(r.collection), b(r.collection_view), b(r.notion_user), r.collection = (i = r.collection) != null ? i : {}, r.collection_view = (u = r.collection_view) != null ? u : {}, r.notion_user = (B = r.notion_user) != null ? B : {}, r.collection_query = {}, r.signed_urls = {}, e) {
58
+ const m = [], f = ne(r).filter((h) => !r.notion_user[h]);
59
+ m.push(this.getUsers(f, c).then((h) => {
60
+ var S;
61
+ return (S = h == null ? void 0 : h.recordMapWithRoles) == null ? void 0 : S.notion_user;
62
62
  }));
63
- const I = F(r).filter((f) => !r.block[f]);
64
- b.push(this.getBlocks(I, c).then((f) => f.recordMap.block));
65
- const C = Object.values(r.block)[0].value, d = C.parent_table === "space" ? [C.parent_id] : [];
66
- b.push(this.getSpaces(d, c).then((f) => {
67
- var R;
68
- return (R = f.recordMapWithRoles) == null ? void 0 : R.space;
63
+ const U = F(r).filter((h) => !r.block[h]);
64
+ m.push(this.getBlocks(U, c).then((h) => h.recordMap.block));
65
+ const R = Object.values(r.block)[0].value, d = R.parent_table === "space" ? [R.parent_id] : [];
66
+ m.push(this.getSpaces(d, c).then((h) => {
67
+ var S;
68
+ return (S = h.recordMapWithRoles) == null ? void 0 : S.space;
69
69
  }));
70
- const [q, $, x] = yield Promise.all(b);
71
- r.notion_user = o(o({}, r.notion_user), q), r.block = o(o({}, r.block), $), r.space = o(o({}, r.space), x);
70
+ const [y, $, x] = yield Promise.all(m);
71
+ r.notion_user = s(s({}, r.notion_user), y), r.block = s(s({}, r.block), $), r.space = s(s({}, r.space), x), b(r.block), b(r.collection), b(r.notion_user);
72
72
  }
73
- const v = F(r);
74
- return l && (yield this.fetchCollections(v, r, s, { concurrency: t, fetchOption: c })), _ && (yield this.addSignedUrls({ recordMap: r, contentBlockIds: v, fetchOption: c })), r;
73
+ const q = F(r);
74
+ return l && (yield this.fetchCollections(q, r, o, { concurrency: t, fetchOption: c })), _ && (yield this.addSignedUrls({ recordMap: r, contentBlockIds: q, fetchOption: c })), r;
75
75
  });
76
76
  }
77
- fetchCollections(n, c, k) {
78
- return y(this, arguments, function* (s, t, e, {
77
+ fetchCollections(n, c, v) {
78
+ return g(this, arguments, function* (o, t, e, {
79
79
  concurrency: l,
80
80
  fetchOption: _,
81
81
  collectionConcurrency: a
82
82
  } = { concurrency: 36, fetchOption: { timeout: 2e4 }, collectionConcurrency: 300 }) {
83
- const B = s.flatMap((v) => {
84
- var m, b;
85
- const i = (m = t.block[v]) == null ? void 0 : m.value;
83
+ const I = o.flatMap((q) => {
84
+ var B, m;
85
+ const i = (B = t.block[q]) == null ? void 0 : B.value;
86
86
  if (!i) return [];
87
87
  const u = i && (i.type === "collection_view" || i.type === "collection_view_page") && ce(i, t);
88
- return u && (!e || ie(t, i).includes(e)) ? (b = i.view_ids) == null ? void 0 : b.flatMap((g) => {
89
- var I;
90
- return (I = t.collection_query[u]) != null && I[g] ? [] : {
88
+ return u && (!e || ie(t, i).includes(e)) ? (m = i.view_ids) == null ? void 0 : m.flatMap((f) => {
89
+ var U;
90
+ return (U = t.collection_query[u]) != null && U[f] ? [] : {
91
91
  collectionId: u,
92
- collectionViewId: g,
92
+ collectionViewId: f,
93
93
  collectionViewBlockId: i.id
94
94
  };
95
95
  }) : [];
@@ -102,21 +102,21 @@ class pe {
102
102
  signed_urls: {}
103
103
  };
104
104
  return yield ae(
105
- B.slice(B.length - a, B.length),
106
- (v) => y(this, null, function* () {
107
- var g, I, C;
108
- const { collectionId: i, collectionViewId: u, collectionViewBlockId: m } = v, b = (g = t.collection_view[u]) == null ? void 0 : g.value;
105
+ I.slice(I.length - a, I.length),
106
+ (q) => g(this, null, function* () {
107
+ var f, U, R;
108
+ const { collectionId: i, collectionViewId: u, collectionViewBlockId: B } = q, m = (f = t.collection_view[u]) == null ? void 0 : f.value;
109
109
  try {
110
- const d = yield this.getCollectionData(i, u, b, {
110
+ const d = yield this.getCollectionData(i, u, m, {
111
111
  fetchOption: _
112
112
  });
113
- if (d.recordMap && (t.block = o(o({}, t.block), d.recordMap.block), t.collection = o(o({}, t.collection), d.recordMap.collection), t.collection_view = o(o({}, t.collection_view), d.recordMap.collection_view), t.notion_user = o(o({}, t.notion_user), d.recordMap.notion_user), t.collection_query[i] = P(o({}, t.collection_query[i]), {
114
- [u]: (I = d.result) == null ? void 0 : I.reducerResults
115
- }), r.block = o(o({}, r.block), d.recordMap.block), r.collection = o(o({}, r.collection), d.recordMap.collection), r.collection_view = o(o({}, r.collection_view), d.recordMap.collection_view), r.notion_user = o(o({}, r.notion_user), d.recordMap.notion_user), r.collection_query[i] = P(o({}, r.collection_query[i]), {
116
- [u]: (C = d.result) == null ? void 0 : C.reducerResults
117
- })), !b) {
118
- const q = yield this.getPageRaw(m, { fetchOption: _ });
119
- q.recordMap && (t.collection_view = o(o({}, t.collection_view), q.recordMap.collection_view), r.collection_view = o(o({}, r.collection_view), q.recordMap.collection_view), t.collection = o(o({}, t.collection), q.recordMap.collection), r.collection = o(o({}, r.collection), q.recordMap.collection), t.block = o(o({}, t.block), q.recordMap.block), r.block = o(o({}, r.block), q.recordMap.block));
113
+ if (d.recordMap && (t.block = s(s({}, t.block), d.recordMap.block), t.collection = s(s({}, t.collection), d.recordMap.collection), t.collection_view = s(s({}, t.collection_view), d.recordMap.collection_view), t.notion_user = s(s({}, t.notion_user), d.recordMap.notion_user), t.collection_query[i] = C(s({}, t.collection_query[i]), {
114
+ [u]: (U = d.result) == null ? void 0 : U.reducerResults
115
+ }), r.block = s(s({}, r.block), d.recordMap.block), r.collection = s(s({}, r.collection), d.recordMap.collection), r.collection_view = s(s({}, r.collection_view), d.recordMap.collection_view), r.notion_user = s(s({}, r.notion_user), d.recordMap.notion_user), r.collection_query[i] = C(s({}, r.collection_query[i]), {
116
+ [u]: (R = d.result) == null ? void 0 : R.reducerResults
117
+ })), !m) {
118
+ const y = yield this.getPageRaw(B, { fetchOption: _ });
119
+ y.recordMap && (b(y.recordMap.block), b(y.recordMap.collection), b(y.recordMap.collection_view), t.collection_view = s(s({}, t.collection_view), y.recordMap.collection_view), r.collection_view = s(s({}, r.collection_view), y.recordMap.collection_view), t.collection = s(s({}, t.collection), y.recordMap.collection), r.collection = s(s({}, r.collection), y.recordMap.collection), t.block = s(s({}, t.block), y.recordMap.block), r.block = s(s({}, r.block), y.recordMap.block));
120
120
  }
121
121
  } catch (d) {
122
122
  console.debug("NotionAPI collectionQuery error in page id ", e), console.error(d);
@@ -129,17 +129,17 @@ class pe {
129
129
  });
130
130
  }
131
131
  addSignedUrls(l) {
132
- return y(this, arguments, function* ({
133
- recordMap: s,
132
+ return g(this, arguments, function* ({
133
+ recordMap: o,
134
134
  contentBlockIds: t,
135
135
  fetchOption: e = {}
136
136
  }) {
137
- s.signed_urls = {}, t || (t = F(s));
137
+ o.signed_urls = {}, t || (t = F(o));
138
138
  const _ = t.flatMap((a) => {
139
- var c, k, B, r, v, i;
140
- const n = (c = s.block[a]) == null ? void 0 : c.value;
141
- if (n && (n.type === "pdf" || n.type === "audio" || n.type === "image" && ((k = n.file_ids) != null && k.length) || n.type === "video" || n.type === "file" || n.type === "page")) {
142
- const u = n.type === "page" ? (B = n.format) == null ? void 0 : B.page_cover : (i = (v = (r = n.properties) == null ? void 0 : r.source) == null ? void 0 : v[0]) == null ? void 0 : i[0];
139
+ var c, v, I, r, q, i;
140
+ const n = (c = o.block[a]) == null ? void 0 : c.value;
141
+ if (n && (n.type === "pdf" || n.type === "audio" || n.type === "image" && ((v = n.file_ids) != null && v.length) || n.type === "video" || n.type === "file" || n.type === "page")) {
142
+ const u = n.type === "page" ? (I = n.format) == null ? void 0 : I.page_cover : (i = (q = (r = n.properties) == null ? void 0 : r.source) == null ? void 0 : q[0]) == null ? void 0 : i[0];
143
143
  if (u)
144
144
  return !u.includes("secure.notion-static.com") && !u.includes("prod-files-secure") ? [] : {
145
145
  permissionRecord: {
@@ -156,8 +156,8 @@ class pe {
156
156
  const { signedUrls: a } = yield this.getSignedFileUrls(_, e);
157
157
  if (a.length === _.length)
158
158
  for (let n = 0; n < _.length; ++n) {
159
- const c = _[n], k = a[n];
160
- s.signed_urls[c.permissionRecord.id] = k;
159
+ const c = _[n], v = a[n];
160
+ o.signed_urls[c.permissionRecord.id] = v;
161
161
  }
162
162
  } catch (a) {
163
163
  console.warn("NotionAPI getSignedfileUrls error", a);
@@ -165,13 +165,13 @@ class pe {
165
165
  });
166
166
  }
167
167
  getPageRaw(_) {
168
- return y(this, arguments, function* (s, {
168
+ return g(this, arguments, function* (o, {
169
169
  fetchOption: t,
170
170
  chunkLimit: e = 100,
171
171
  chunkNumber: l = 0
172
172
  } = {}) {
173
- const a = T(s);
174
- if (!a) throw new Error(`invalid notion pageId "${s}"`);
173
+ const a = M(o);
174
+ if (!a) throw new Error(`invalid notion pageId "${o}"`);
175
175
  const n = {
176
176
  pageId: a,
177
177
  limit: e,
@@ -186,25 +186,25 @@ class pe {
186
186
  });
187
187
  });
188
188
  }
189
- getCollectionData(k, B, r) {
190
- return y(this, arguments, function* (s, t, e, {
189
+ getCollectionData(v, I, r) {
190
+ return g(this, arguments, function* (o, t, e, {
191
191
  limit: l = 9999,
192
192
  searchQuery: _ = "",
193
193
  userTimeZone: a = this._userTimeZone,
194
194
  loadContentCover: n = !0,
195
195
  fetchOption: c
196
196
  } = {}) {
197
- var I, C, d, q, $, x, f, R, z, W, L, J;
198
- const v = e == null ? void 0 : e.type, i = v === "board", u = i ? (I = e == null ? void 0 : e.format) == null ? void 0 : I.board_columns_by : (C = e == null ? void 0 : e.format) == null ? void 0 : C.collection_group_by;
199
- let m = [];
200
- (d = e == null ? void 0 : e.format) != null && d.property_filters && (m = (q = e.format) == null ? void 0 : q.property_filters.map((U) => {
197
+ var U, R, d, y, $, x, h, S, z, W, L, J;
198
+ const q = e == null ? void 0 : e.type, i = q === "board", u = i ? (U = e == null ? void 0 : e.format) == null ? void 0 : U.board_columns_by : (R = e == null ? void 0 : e.format) == null ? void 0 : R.collection_group_by;
199
+ let B = [];
200
+ (d = e == null ? void 0 : e.format) != null && d.property_filters && (B = (y = e.format) == null ? void 0 : y.property_filters.map((P) => {
201
201
  var A, D;
202
202
  return {
203
- filter: (A = U == null ? void 0 : U.filter) == null ? void 0 : A.filter,
204
- property: (D = U == null ? void 0 : U.filter) == null ? void 0 : D.property
203
+ filter: (A = P == null ? void 0 : P.filter) == null ? void 0 : A.filter,
204
+ property: (D = P == null ? void 0 : P.filter) == null ? void 0 : D.property
205
205
  };
206
- })), (x = ($ = e == null ? void 0 : e.query2) == null ? void 0 : $.filter) != null && x.filters && m.push(...e.query2.filter.filters);
207
- let b = P(o({
206
+ })), (x = ($ = e == null ? void 0 : e.query2) == null ? void 0 : $.filter) != null && x.filters && B.push(...e.query2.filter.filters);
207
+ let m = C(s({
208
208
  type: "reducer",
209
209
  reducers: {
210
210
  collection_group_results: {
@@ -216,14 +216,14 @@ class pe {
216
216
  sort: []
217
217
  }, e == null ? void 0 : e.query2), {
218
218
  filter: {
219
- filters: m,
219
+ filters: B,
220
220
  operator: "and"
221
221
  },
222
222
  searchQuery: _,
223
223
  userTimeZone: a
224
224
  });
225
225
  if (u) {
226
- const U = ((f = e == null ? void 0 : e.format) == null ? void 0 : f.board_columns) || ((R = e == null ? void 0 : e.format) == null ? void 0 : R.collection_groups) || [], A = [i ? "board" : "group_aggregation", "results"], D = {
226
+ const P = ((h = e == null ? void 0 : e.format) == null ? void 0 : h.board_columns) || ((S = e == null ? void 0 : e.format) == null ? void 0 : S.collection_groups) || [], A = [i ? "board" : "group_aggregation", "results"], D = {
227
227
  checkbox: "checkbox_is",
228
228
  url: "string_starts_with",
229
229
  text: "string_starts_with",
@@ -232,11 +232,11 @@ class pe {
232
232
  created_time: "date_is_within",
233
233
  undefined: "is_empty"
234
234
  }, Q = {};
235
- for (const S of U) {
235
+ for (const T of P) {
236
236
  const {
237
237
  property: X,
238
- value: { value: h, type: Y }
239
- } = S;
238
+ value: { value: k, type: Y }
239
+ } = T;
240
240
  for (const E of A) {
241
241
  const w = E === "results" ? {
242
242
  type: E,
@@ -246,16 +246,16 @@ class pe {
246
246
  aggregation: {
247
247
  aggregator: "count"
248
248
  }
249
- }, M = typeof h == "undefined", Z = h == null ? void 0 : h.range, j = M ? "uncategorized" : Z ? ((z = h.range) == null ? void 0 : z.start_date) || ((W = h.range) == null ? void 0 : W.end_date) : (h == null ? void 0 : h.value) || h, O = !M && (Z || (h == null ? void 0 : h.value) || h);
250
- Q[`${E}:${Y}:${j}`] = P(o({}, w), {
249
+ }, N = typeof k == "undefined", Z = k == null ? void 0 : k.range, j = N ? "uncategorized" : Z ? ((z = k.range) == null ? void 0 : z.start_date) || ((W = k.range) == null ? void 0 : W.end_date) : (k == null ? void 0 : k.value) || k, O = !N && (Z || (k == null ? void 0 : k.value) || k);
250
+ Q[`${E}:${Y}:${j}`] = C(s({}, w), {
251
251
  filter: {
252
252
  operator: "and",
253
253
  filters: [
254
254
  {
255
255
  property: X,
256
- filter: o({
257
- operator: M ? "is_empty" : D[Y]
258
- }, !M && {
256
+ filter: s({
257
+ operator: N ? "is_empty" : D[Y]
258
+ }, !N && {
259
259
  value: {
260
260
  type: "exact",
261
261
  value: O
@@ -267,94 +267,94 @@ class pe {
267
267
  });
268
268
  }
269
269
  }
270
- const K = i ? "board_columns" : `${v}_groups`;
271
- b = P(o({
270
+ const K = i ? "board_columns" : `${q}_groups`;
271
+ m = C(s({
272
272
  type: "reducer",
273
- reducers: o({
274
- [K]: P(o({
273
+ reducers: s({
274
+ [K]: C(s({
275
275
  type: "groups",
276
276
  groupBy: u
277
277
  }, ((L = e == null ? void 0 : e.query2) == null ? void 0 : L.filter) && {
278
278
  filter: (J = e == null ? void 0 : e.query2) == null ? void 0 : J.filter
279
279
  }), {
280
- groupSortPreference: U.map((S) => S == null ? void 0 : S.value),
280
+ groupSortPreference: P.map((T) => T == null ? void 0 : T.value),
281
281
  limit: l
282
282
  })
283
283
  }, Q)
284
284
  }, e == null ? void 0 : e.query2), {
285
285
  searchQuery: _,
286
286
  userTimeZone: a,
287
- filter: { filters: m, operator: "and" }
287
+ filter: { filters: B, operator: "and" }
288
288
  });
289
289
  }
290
- const g = yield this.fetch({
290
+ const f = yield this.fetch({
291
291
  endpoint: "queryCollection",
292
292
  body: {
293
- collection: { id: s },
293
+ collection: { id: o },
294
294
  collectionView: { id: t },
295
- loader: b
295
+ loader: m
296
296
  },
297
297
  fetchOption: c
298
298
  });
299
- return g.recordMap && (N(g.recordMap.block), N(g.recordMap.collection), N(g.recordMap.collection_view), N(g.recordMap.notion_user)), g;
299
+ return f.recordMap && (b(f.recordMap.block), b(f.recordMap.collection), b(f.recordMap.collection_view), b(f.recordMap.notion_user)), f;
300
300
  });
301
301
  }
302
- getUsers(s, t) {
303
- return y(this, null, function* () {
302
+ getUsers(o, t) {
303
+ return g(this, null, function* () {
304
304
  return this.fetch({
305
305
  endpoint: "getRecordValues",
306
- body: { requests: s.map((e) => ({ id: e, table: "notion_user" })) },
306
+ body: { requests: o.map((e) => ({ id: e, table: "notion_user" })) },
307
307
  fetchOption: t
308
308
  });
309
309
  });
310
310
  }
311
- getSpaces(s, t) {
312
- return y(this, null, function* () {
311
+ getSpaces(o, t) {
312
+ return g(this, null, function* () {
313
313
  return this.fetch({
314
314
  endpoint: "getRecordValues",
315
- body: { requests: s.map((e) => ({ id: e, table: "space" })) },
315
+ body: { requests: o.map((e) => ({ id: e, table: "space" })) },
316
316
  fetchOption: t
317
317
  });
318
318
  });
319
319
  }
320
- getBlocks(s, t) {
321
- return y(this, null, function* () {
320
+ getBlocks(o, t) {
321
+ return g(this, null, function* () {
322
322
  return this.fetch({
323
323
  endpoint: "syncRecordValues",
324
- body: { requests: s.map((e) => ({ table: "block", id: e, version: -1 })) },
324
+ body: { requests: o.map((e) => ({ table: "block", id: e, version: -1 })) },
325
325
  fetchOption: t
326
326
  });
327
327
  });
328
328
  }
329
- syncRecords(s, t) {
330
- return y(this, null, function* () {
329
+ syncRecords(o, t) {
330
+ return g(this, null, function* () {
331
331
  return this.fetch({
332
332
  endpoint: "syncRecordValues",
333
- body: { requests: s.map(({ id: e, table: l }) => ({ table: l, id: e, version: -1 })) },
333
+ body: { requests: o.map(({ id: e, table: l }) => ({ table: l, id: e, version: -1 })) },
334
334
  fetchOption: t
335
335
  });
336
336
  });
337
337
  }
338
- getSignedFileUrls(s, t) {
339
- return y(this, null, function* () {
338
+ getSignedFileUrls(o, t) {
339
+ return g(this, null, function* () {
340
340
  return this.fetch({
341
341
  endpoint: "getSignedFileUrls",
342
- body: { urls: s },
342
+ body: { urls: o },
343
343
  fetchOption: t
344
344
  });
345
345
  });
346
346
  }
347
- search(s, t) {
348
- return y(this, null, function* () {
347
+ search(o, t) {
348
+ return g(this, null, function* () {
349
349
  var l;
350
350
  const e = {
351
351
  type: "BlocksInSpace",
352
352
  source: "quick_find_filters",
353
- spaceId: T(s.spaceId),
353
+ spaceId: M(o.spaceId),
354
354
  sort: { field: "relevance" },
355
- limit: s.limit || 20,
356
- query: s.query,
357
- filters: P(o({
355
+ limit: o.limit || 20,
356
+ query: o.query,
357
+ filters: C(s({
358
358
  isDeletedOnly: !1,
359
359
  navigableBlockContentOnly: !1,
360
360
  excludeTemplates: !0,
@@ -364,8 +364,8 @@ class pe {
364
364
  editedBy: [],
365
365
  lastEditedTime: {},
366
366
  createdTime: {}
367
- }, s.filters), {
368
- ancestors: (l = s.filters) != null && l.ancestors ? s.filters.ancestors.map((_) => T(_)) : []
367
+ }, o.filters), {
368
+ ancestors: (l = o.filters) != null && l.ancestors ? o.filters.ancestors.map((_) => M(_)) : []
369
369
  })
370
370
  };
371
371
  return this.fetch({
@@ -381,12 +381,12 @@ class pe {
381
381
  * @param fetchOption Fetch options
382
382
  * @returns backlink list with recordmap
383
383
  */
384
- getBacklinks(s, t) {
385
- return y(this, null, function* () {
384
+ getBacklinks(o, t) {
385
+ return g(this, null, function* () {
386
386
  const e = {
387
387
  block: {
388
- id: T(s.block.id),
389
- spaceId: T(s.block.spaceId)
388
+ id: M(o.block.id),
389
+ spaceId: M(o.block.spaceId)
390
390
  }
391
391
  };
392
392
  return this.fetch({
@@ -397,35 +397,35 @@ class pe {
397
397
  });
398
398
  }
399
399
  fetch(_) {
400
- return y(this, arguments, function* ({
401
- endpoint: s,
400
+ return g(this, arguments, function* ({
401
+ endpoint: o,
402
402
  body: t,
403
403
  fetchOption: e,
404
404
  headers: l
405
405
  }) {
406
- const a = P(o(o({}, l), e == null ? void 0 : e.headers), {
406
+ const a = C(s(s({}, l), e == null ? void 0 : e.headers), {
407
407
  "Content-Type": "application/json"
408
408
  });
409
409
  this._authToken && (a.cookie = `token_v2=${this._authToken}`), this._activeUser && (a["x-notion-active-user-header"] = this._activeUser);
410
- const n = `${this._apiBaseUrl}/${s}`, c = o({
410
+ const n = `${this._apiBaseUrl}/${o}`, c = s({
411
411
  method: "post",
412
412
  body: JSON.stringify(t),
413
413
  headers: a
414
414
  }, e);
415
415
  if ((e == null ? void 0 : e.timeout) !== void 0) {
416
- const k = new AbortController();
417
- setTimeout(() => k.abort(), e.timeout), c.signal = k.signal;
416
+ const v = new AbortController();
417
+ setTimeout(() => v.abort(), e.timeout), c.signal = v.signal;
418
418
  }
419
- return fetch(n, c).then((k) => k.json());
419
+ return fetch(n, c).then((v) => v.json());
420
420
  });
421
421
  }
422
422
  }
423
- function N(p) {
424
- var s;
423
+ function b(p) {
424
+ var o;
425
425
  if (p)
426
426
  for (const t of Object.keys(p)) {
427
427
  const e = p[t];
428
- e != null && e.spaceId && ((s = e.value) != null && s.value) && (p[t] = e.value);
428
+ e != null && e.spaceId && ((o = e.value) != null && o.value) && (p[t] = e.value);
429
429
  }
430
430
  }
431
431
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/notion-api.ts"],"sourcesContent":["import {\n getBlockCollectionId,\n getPageContentBlockIds,\n getPageContentUserIds,\n parsePageId,\n uuidToId,\n findAncestors\n} from '@texonom/nutils'\nimport pMap from 'p-map'\n\nimport type {\n ExtendedRecordMap,\n NotionMap,\n PageChunk,\n BaseCollectionView,\n CollectionViewType,\n ReducerResponse,\n CollectionQueryResult,\n RecordValues,\n User,\n Space,\n SearchParams,\n SearchResults,\n BacklinkParams,\n BacklinkResults\n} from '@texonom/ntypes'\n\nimport type { SignedUrlRequest, FetchOption, SignedUrlResponse } from './types'\n\n/**\n * Main Notion API client.\n */\nexport class NotionAPI {\n private readonly _apiBaseUrl: string\n private readonly _authToken?: string\n private readonly _activeUser?: string\n private readonly _userTimeZone: string\n\n constructor({\n apiBaseUrl = 'https://www.notion.so/api/v3',\n authToken,\n activeUser,\n userTimeZone = 'America/New_York'\n }: {\n apiBaseUrl?: string\n authToken?: string\n userLocale?: string\n userTimeZone?: string\n activeUser?: string\n } = {}) {\n this._apiBaseUrl = apiBaseUrl\n this._authToken = authToken\n this._activeUser = activeUser\n this._userTimeZone = userTimeZone\n }\n\n public async getPage(\n pageId: string,\n {\n concurrency = 3,\n fetchFullInfo = true,\n fetchCollections = true,\n signFileUrls = true,\n chunkLimit = 100,\n chunkNumber = 0,\n fetchOption\n }: {\n concurrency?: number\n fetchFullInfo?: boolean\n fetchCollections?: boolean\n signFileUrls?: boolean\n chunkLimit?: number\n chunkNumber?: number\n fetchOption?: FetchOption\n } = {}\n ): Promise<ExtendedRecordMap> {\n const page = await this.getPageRaw(pageId, {\n chunkLimit,\n chunkNumber,\n fetchOption\n })\n const recordMap = page?.recordMap as ExtendedRecordMap\n if (!recordMap?.block) throw new Error(`Notion page not found \"${uuidToId(pageId)}\"`)\n\n // ensure that all top-level maps exist\n recordMap.collection = recordMap.collection ?? {}\n recordMap.collection_view = recordMap.collection_view ?? {}\n recordMap.notion_user = recordMap.notion_user ?? {}\n\n // additional mappings added for convenience\n // note: these are not native notion objects\n recordMap.collection_query = {}\n recordMap.signed_urls = {}\n\n // Fetch Users\n if (fetchFullInfo) {\n const promises = []\n // Fetch any missing users\n const pendingUserIDs = getPageContentUserIds(recordMap).filter(id => !recordMap.notion_user[id])\n promises.push(this.getUsers(pendingUserIDs, fetchOption).then(res => res?.recordMapWithRoles?.notion_user))\n\n // Fetch any missing content blocks\n const pendingBlocks = getPageContentBlockIds(recordMap).filter(id => !recordMap.block[id])\n promises.push(this.getBlocks(pendingBlocks, fetchOption).then(res => res.recordMap.block))\n\n // Fetch any missing content blocks\n const rootBlock = Object.values(recordMap.block)[0].value\n const pendingSpaces = rootBlock.parent_table === 'space' ? [rootBlock.parent_id] : []\n promises.push(this.getSpaces(pendingSpaces, fetchOption).then(res => res.recordMapWithRoles?.space))\n\n // Append them\n const [newUsers, newBlocks, newSpaces] = await Promise.all(promises)\n recordMap.notion_user = { ...recordMap.notion_user, ...newUsers }\n recordMap.block = { ...recordMap.block, ...newBlocks }\n recordMap.space = { ...recordMap.space, ...newSpaces }\n }\n\n // Optionally fetch all data for embedded collections and their associated views.\n // NOTE: We're eagerly fetching *all* data for each collection and all of its views.\n // This is really convenient in order to ensure that all data needed for a given\n // Notion page is readily available for use cases involving server-side rendering\n // and edge caching.\n\n const contentBlockIds = getPageContentBlockIds(recordMap)\n if (fetchCollections) await this.fetchCollections(contentBlockIds, recordMap, pageId, { concurrency, fetchOption })\n\n // Optionally fetch signed URLs for any embedded files.\n // NOTE: Similar to collection data, we default to eagerly fetching signed URL info\n // because it is preferable for many use cases as opposed to making these API calls\n // lazily from the client-side.\n if (signFileUrls) await this.addSignedUrls({ recordMap, contentBlockIds, fetchOption })\n\n return recordMap\n }\n\n public async fetchCollections(\n contentBlockIds: string[],\n recordMap: ExtendedRecordMap,\n pageId?: string,\n {\n concurrency,\n fetchOption,\n collectionConcurrency\n }: {\n concurrency: number\n collectionConcurrency?: number\n fetchOption?: FetchOption\n } = { concurrency: 36, fetchOption: { timeout: 20000 }, collectionConcurrency: 300 }\n ): Promise<ExtendedRecordMap> {\n const allCollectionInstances: Array<{\n collectionId: string\n collectionViewId: string\n collectionViewBlockId: string\n }> = contentBlockIds.flatMap(blockId => {\n const block = recordMap.block[blockId]?.value\n if (!block) return []\n const collectionId =\n block &&\n (block.type === 'collection_view' || block.type === 'collection_view_page') &&\n getBlockCollectionId(block, recordMap)\n\n if (collectionId)\n if (pageId ? findAncestors(recordMap, block).includes(pageId) : true)\n return block.view_ids?.flatMap(collectionViewId => {\n if (recordMap.collection_query[collectionId]?.[collectionViewId]) return []\n else\n return {\n collectionId,\n collectionViewId,\n collectionViewBlockId: block.id\n }\n })\n return []\n })\n\n // fetch data for all collection view instances\n const resultMap: ExtendedRecordMap = {\n block: {},\n collection: {},\n collection_view: {},\n notion_user: {},\n collection_query: {},\n signed_urls: {}\n }\n await pMap(\n allCollectionInstances.slice(allCollectionInstances.length - collectionConcurrency, allCollectionInstances.length),\n async collectionInstance => {\n const { collectionId, collectionViewId, collectionViewBlockId } = collectionInstance\n const collectionView = recordMap.collection_view[collectionViewId]?.value\n\n try {\n const collectionData = await this.getCollectionData(collectionId, collectionViewId, collectionView, {\n fetchOption\n })\n\n if (collectionData.recordMap) {\n recordMap.block = { ...recordMap.block, ...collectionData.recordMap.block }\n recordMap.collection = { ...recordMap.collection, ...collectionData.recordMap.collection }\n recordMap.collection_view = { ...recordMap.collection_view, ...collectionData.recordMap.collection_view }\n recordMap.notion_user = { ...recordMap.notion_user, ...collectionData.recordMap.notion_user }\n recordMap.collection_query![collectionId] = {\n ...recordMap.collection_query![collectionId],\n [collectionViewId]: collectionData.result?.reducerResults\n }\n resultMap.block = { ...resultMap.block, ...collectionData.recordMap.block }\n resultMap.collection = { ...resultMap.collection, ...collectionData.recordMap.collection }\n resultMap.collection_view = { ...resultMap.collection_view, ...collectionData.recordMap.collection_view }\n resultMap.notion_user = { ...resultMap.notion_user, ...collectionData.recordMap.notion_user }\n resultMap.collection_query![collectionId] = {\n ...resultMap.collection_query![collectionId],\n [collectionViewId]: collectionData.result?.reducerResults\n }\n }\n\n if (!collectionView) {\n const viewBlockData = await this.getPageRaw(collectionViewBlockId, { fetchOption })\n if (viewBlockData.recordMap) {\n recordMap.collection_view = { ...recordMap.collection_view, ...viewBlockData.recordMap.collection_view }\n resultMap.collection_view = { ...resultMap.collection_view, ...viewBlockData.recordMap.collection_view }\n recordMap.collection = { ...recordMap.collection, ...viewBlockData.recordMap.collection }\n resultMap.collection = { ...resultMap.collection, ...viewBlockData.recordMap.collection }\n recordMap.block = { ...recordMap.block, ...viewBlockData.recordMap.block }\n resultMap.block = { ...resultMap.block, ...viewBlockData.recordMap.block }\n }\n }\n } catch (err) {\n // It's possible for public pages to link to private collections, in which case\n // Notion returns a 400 error\n console.debug('NotionAPI collectionQuery error in page id ', pageId)\n console.error(err)\n }\n },\n {\n concurrency\n }\n )\n return resultMap\n }\n\n public async addSignedUrls({\n recordMap,\n contentBlockIds,\n fetchOption = {}\n }: {\n recordMap: ExtendedRecordMap\n contentBlockIds?: string[]\n fetchOption?: FetchOption\n }) {\n recordMap.signed_urls = {}\n\n if (!contentBlockIds) contentBlockIds = getPageContentBlockIds(recordMap)\n\n const allFileInstances = contentBlockIds.flatMap(blockId => {\n const block = recordMap.block[blockId]?.value\n\n if (\n block &&\n (block.type === 'pdf' ||\n block.type === 'audio' ||\n (block.type === 'image' && block.file_ids?.length) ||\n block.type === 'video' ||\n block.type === 'file' ||\n block.type === 'page')\n ) {\n const source = block.type === 'page' ? block.format?.page_cover : block.properties?.source?.[0]?.[0]\n\n if (source) {\n if (!source.includes('secure.notion-static.com') && !source.includes('prod-files-secure')) return []\n\n return {\n permissionRecord: {\n table: 'block',\n id: block.id\n },\n url: source\n }\n }\n }\n\n return []\n })\n\n if (allFileInstances.length > 0)\n try {\n const { signedUrls } = await this.getSignedFileUrls(allFileInstances, fetchOption)\n\n if (signedUrls.length === allFileInstances.length)\n for (let i = 0; i < allFileInstances.length; ++i) {\n const file = allFileInstances[i]\n const signedUrl = signedUrls[i]\n\n recordMap.signed_urls[file.permissionRecord.id] = signedUrl\n }\n } catch (err) {\n console.warn('NotionAPI getSignedfileUrls error', err)\n }\n }\n\n public async getPageRaw(\n pageId: string,\n {\n fetchOption,\n chunkLimit = 100,\n chunkNumber = 0\n }: {\n chunkLimit?: number\n chunkNumber?: number\n fetchOption?: FetchOption\n } = {}\n ) {\n const parsedPageId = parsePageId(pageId)\n\n if (!parsedPageId) throw new Error(`invalid notion pageId \"${pageId}\"`)\n\n const body = {\n pageId: parsedPageId,\n limit: chunkLimit,\n chunkNumber: chunkNumber,\n cursor: { stack: [] },\n verticalColumns: false\n }\n\n return this.fetch<PageChunk>({\n endpoint: 'loadPageChunk',\n body,\n fetchOption\n })\n }\n\n public async getCollectionData(\n collectionId: string,\n collectionViewId: string,\n collectionView: BaseCollectionView,\n {\n limit = 9999,\n searchQuery = '',\n userTimeZone = this._userTimeZone,\n loadContentCover = true,\n fetchOption\n }: {\n type?: CollectionViewType\n limit?: number\n searchQuery?: string\n userTimeZone?: string\n userLocale?: string\n loadContentCover?: boolean\n fetchOption?: FetchOption\n } = {}\n ) {\n const type = collectionView?.type\n const isBoardType = type === 'board'\n const groupBy = isBoardType ? collectionView?.format?.board_columns_by : collectionView?.format?.collection_group_by\n\n let filters = []\n if (collectionView?.format?.property_filters)\n filters = collectionView.format?.property_filters.map(filterObj => {\n //get the inner filter\n return {\n filter: filterObj?.filter?.filter,\n property: filterObj?.filter?.property\n }\n })\n\n //Fixes formula filters from not working\n if (collectionView?.query2?.filter?.filters) filters.push(...collectionView.query2.filter.filters)\n\n let loader: unknown = {\n type: 'reducer',\n reducers: {\n collection_group_results: {\n type: 'results',\n limit,\n loadContentCover\n }\n },\n sort: [],\n ...collectionView?.query2,\n filter: {\n filters: filters,\n operator: 'and'\n },\n searchQuery,\n userTimeZone\n }\n\n if (groupBy) {\n const groups = collectionView?.format?.board_columns || collectionView?.format?.collection_groups || []\n const iterators = [isBoardType ? 'board' : 'group_aggregation', 'results']\n const operators = {\n checkbox: 'checkbox_is',\n url: 'string_starts_with',\n text: 'string_starts_with',\n select: 'enum_is',\n multi_select: 'enum_contains',\n created_time: 'date_is_within',\n ['undefined']: 'is_empty'\n }\n\n const reducersQuery = {}\n for (const group of groups) {\n const {\n property,\n value: { value, type }\n } = group\n\n for (const iterator of iterators) {\n const iteratorProps =\n iterator === 'results'\n ? {\n type: iterator,\n limit\n }\n : {\n type: 'aggregation',\n aggregation: {\n aggregator: 'count'\n }\n }\n\n const isUncategorizedValue = typeof value === 'undefined'\n const isDateValue = value?.range\n // TODO: review dates reducers\n const queryLabel = isUncategorizedValue\n ? 'uncategorized'\n : isDateValue\n ? value.range?.start_date || value.range?.end_date\n : value?.value || value\n\n const queryValue = !isUncategorizedValue && (isDateValue || value?.value || value)\n\n reducersQuery[`${iterator}:${type}:${queryLabel}`] = {\n ...iteratorProps,\n filter: {\n operator: 'and',\n filters: [\n {\n property,\n filter: {\n operator: !isUncategorizedValue ? operators[type] : 'is_empty',\n ...(!isUncategorizedValue && {\n value: {\n type: 'exact',\n value: queryValue\n }\n })\n }\n }\n ]\n }\n }\n }\n }\n\n const reducerLabel = isBoardType ? 'board_columns' : `${type}_groups`\n loader = {\n type: 'reducer',\n reducers: {\n [reducerLabel]: {\n type: 'groups',\n groupBy,\n ...(collectionView?.query2?.filter && {\n filter: collectionView?.query2?.filter\n }),\n groupSortPreference: groups.map(group => group?.value),\n limit\n },\n ...reducersQuery\n },\n ...collectionView?.query2,\n searchQuery,\n userTimeZone,\n filter: { filters, operator: 'and' }\n }\n }\n\n const response = await this.fetch<ReducerResponse<CollectionQueryResult>>({\n endpoint: 'queryCollection',\n body: {\n collection: { id: collectionId },\n collectionView: { id: collectionViewId },\n loader\n },\n fetchOption\n })\n\n // Normalize queryCollection recordMap — Notion API now wraps entries with\n // {spaceId, value: {value, role}} instead of {value, role}. Unwrap so\n // downstream code can use entry.value.* consistently with loadPageChunk.\n if (response.recordMap) {\n normalizeMap(response.recordMap.block)\n normalizeMap(response.recordMap.collection)\n normalizeMap(response.recordMap.collection_view)\n normalizeMap(response.recordMap.notion_user)\n }\n\n return response\n }\n\n public async getUsers(userIds: string[], fetchOption?: FetchOption) {\n return this.fetch<RecordValues<User>>({\n endpoint: 'getRecordValues',\n body: { requests: userIds.map(id => ({ id, table: 'notion_user' })) },\n fetchOption\n })\n }\n\n public async getSpaces(spaceIds: string[], fetchOption?: FetchOption) {\n return this.fetch<RecordValues<Space>>({\n endpoint: 'getRecordValues',\n body: { requests: spaceIds.map(id => ({ id, table: 'space' })) },\n fetchOption\n })\n }\n\n public async getBlocks(blockIds: string[], fetchOption?: FetchOption) {\n return this.fetch<PageChunk>({\n endpoint: 'syncRecordValues',\n body: { requests: blockIds.map(blockId => ({ table: 'block', id: blockId, version: -1 })) },\n fetchOption\n })\n }\n\n public async syncRecords(records: { id: string; table: string }[], fetchOption?: FetchOption) {\n return this.fetch<PageChunk>({\n endpoint: 'syncRecordValues',\n body: { requests: records.map(({ id, table }) => ({ table, id, version: -1 })) },\n fetchOption\n })\n }\n\n public async getSignedFileUrls(urls: SignedUrlRequest[], fetchOption?: FetchOption) {\n return this.fetch<SignedUrlResponse>({\n endpoint: 'getSignedFileUrls',\n body: { urls },\n fetchOption\n })\n }\n\n public async search(params: SearchParams, fetchOption?: FetchOption) {\n const body: SearchParams = {\n type: 'BlocksInSpace',\n source: 'quick_find_filters',\n spaceId: parsePageId(params.spaceId),\n sort: { field: 'relevance' },\n limit: params.limit || 20,\n query: params.query,\n filters: {\n isDeletedOnly: false,\n navigableBlockContentOnly: false,\n excludeTemplates: true,\n requireEditPermissions: false,\n includePublicPagesWithoutExplicitAccess: true,\n createdBy: [],\n editedBy: [],\n lastEditedTime: {},\n createdTime: {},\n ...params.filters,\n ancestors: params.filters?.ancestors ? params.filters.ancestors.map(id => parsePageId(id)) : []\n }\n }\n return this.fetch<SearchResults>({\n endpoint: 'search',\n body,\n fetchOption\n })\n }\n\n /**\n * Backlink function which requires an authToken for NotionAPI client.\n * @param params object to pass black and space id\n * @param fetchOption Fetch options\n * @returns backlink list with recordmap\n */\n public async getBacklinks(params: BacklinkParams, fetchOption?: FetchOption) {\n const body: BacklinkParams = {\n block: {\n id: parsePageId(params.block.id),\n spaceId: parsePageId(params.block.spaceId)\n }\n }\n\n return this.fetch<BacklinkResults>({\n endpoint: 'getBacklinksForBlockInitial',\n body,\n fetchOption\n })\n }\n\n public async fetch<T>({\n endpoint,\n body,\n fetchOption,\n headers: clientHeaders\n }: {\n endpoint: string\n body: object\n fetchOption?: FetchOption\n headers?: HeadersInit\n }): Promise<T> {\n const headers: HeadersInit = {\n ...clientHeaders,\n ...fetchOption?.headers,\n 'Content-Type': 'application/json'\n }\n\n if (this._authToken) headers['cookie'] = `token_v2=${this._authToken}`\n if (this._activeUser) headers['x-notion-active-user-header'] = this._activeUser\n\n const url = `${this._apiBaseUrl}/${endpoint}`\n const requestInit = {\n method: 'post',\n body: JSON.stringify(body),\n headers,\n ...fetchOption\n }\n if (fetchOption?.timeout !== undefined) {\n const ctrl = new AbortController()\n setTimeout(() => ctrl.abort(), fetchOption.timeout)\n requestInit.signal = ctrl.signal\n }\n\n return fetch(url, requestInit).then(res => res.json())\n }\n}\n\n// Notion's queryCollection API wraps entries as {spaceId, value: {value, role}}\n// instead of {value, role}. Unwrap in-place to match loadPageChunk format.\nfunction normalizeMap<T>(map: NotionMap<T> | undefined) {\n if (!map) return\n for (const id of Object.keys(map)) {\n const entry: any = map[id]\n if (entry?.spaceId && entry.value?.value) map[id] = entry.value\n }\n}\n"],"names":["NotionAPI","apiBaseUrl","authToken","activeUser","userTimeZone","_0","__async","pageId","concurrency","fetchFullInfo","fetchCollections","signFileUrls","chunkLimit","chunkNumber","fetchOption","page","recordMap","uuidToId","_a","_b","_c","promises","pendingUserIDs","getPageContentUserIds","id","res","pendingBlocks","getPageContentBlockIds","rootBlock","pendingSpaces","newUsers","newBlocks","newSpaces","__spreadValues","contentBlockIds","_1","_2","collectionConcurrency","allCollectionInstances","blockId","block","collectionId","getBlockCollectionId","findAncestors","collectionViewId","resultMap","pMap","collectionInstance","collectionViewBlockId","collectionView","collectionData","__spreadProps","viewBlockData","err","allFileInstances","source","_f","_e","_d","signedUrls","i","file","signedUrl","parsedPageId","parsePageId","body","limit","searchQuery","loadContentCover","type","isBoardType","groupBy","filters","filterObj","loader","groups","_g","_h","iterators","operators","reducersQuery","group","property","value","iterator","iteratorProps","isUncategorizedValue","isDateValue","queryLabel","_i","_j","queryValue","reducerLabel","_k","_l","response","normalizeMap","userIds","spaceIds","blockIds","records","table","urls","params","endpoint","clientHeaders","headers","url","requestInit","ctrl","map","entry"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/notion-api.ts"],"sourcesContent":["import {\n getBlockCollectionId,\n getPageContentBlockIds,\n getPageContentUserIds,\n parsePageId,\n uuidToId,\n findAncestors\n} from '@texonom/nutils'\nimport pMap from 'p-map'\n\nimport type {\n ExtendedRecordMap,\n NotionMap,\n PageChunk,\n BaseCollectionView,\n CollectionViewType,\n ReducerResponse,\n CollectionQueryResult,\n RecordValues,\n User,\n Space,\n SearchParams,\n SearchResults,\n BacklinkParams,\n BacklinkResults\n} from '@texonom/ntypes'\n\nimport type { SignedUrlRequest, FetchOption, SignedUrlResponse } from './types'\n\n/**\n * Main Notion API client.\n */\nexport class NotionAPI {\n private readonly _apiBaseUrl: string\n private readonly _authToken?: string\n private readonly _activeUser?: string\n private readonly _userTimeZone: string\n\n constructor({\n apiBaseUrl = 'https://www.notion.so/api/v3',\n authToken,\n activeUser,\n userTimeZone = 'America/New_York'\n }: {\n apiBaseUrl?: string\n authToken?: string\n userLocale?: string\n userTimeZone?: string\n activeUser?: string\n } = {}) {\n this._apiBaseUrl = apiBaseUrl\n this._authToken = authToken\n this._activeUser = activeUser\n this._userTimeZone = userTimeZone\n }\n\n public async getPage(\n pageId: string,\n {\n concurrency = 3,\n fetchFullInfo = true,\n fetchCollections = true,\n signFileUrls = true,\n chunkLimit = 100,\n chunkNumber = 0,\n fetchOption\n }: {\n concurrency?: number\n fetchFullInfo?: boolean\n fetchCollections?: boolean\n signFileUrls?: boolean\n chunkLimit?: number\n chunkNumber?: number\n fetchOption?: FetchOption\n } = {}\n ): Promise<ExtendedRecordMap> {\n const page = await this.getPageRaw(pageId, {\n chunkLimit,\n chunkNumber,\n fetchOption\n })\n const recordMap = page?.recordMap as ExtendedRecordMap\n if (!recordMap?.block) throw new Error(`Notion page not found \"${uuidToId(pageId)}\"`)\n\n // Normalize nested API format from loadPageChunk\n normalizeMap(recordMap.block)\n normalizeMap(recordMap.collection)\n normalizeMap(recordMap.collection_view)\n normalizeMap(recordMap.notion_user)\n\n // ensure that all top-level maps exist\n recordMap.collection = recordMap.collection ?? {}\n recordMap.collection_view = recordMap.collection_view ?? {}\n recordMap.notion_user = recordMap.notion_user ?? {}\n\n // additional mappings added for convenience\n // note: these are not native notion objects\n recordMap.collection_query = {}\n recordMap.signed_urls = {}\n\n // Fetch Users\n if (fetchFullInfo) {\n const promises = []\n // Fetch any missing users\n const pendingUserIDs = getPageContentUserIds(recordMap).filter(id => !recordMap.notion_user[id])\n promises.push(this.getUsers(pendingUserIDs, fetchOption).then(res => res?.recordMapWithRoles?.notion_user))\n\n // Fetch any missing content blocks\n const pendingBlocks = getPageContentBlockIds(recordMap).filter(id => !recordMap.block[id])\n promises.push(this.getBlocks(pendingBlocks, fetchOption).then(res => res.recordMap.block))\n\n // Fetch any missing content blocks\n const rootBlock = Object.values(recordMap.block)[0].value\n const pendingSpaces = rootBlock.parent_table === 'space' ? [rootBlock.parent_id] : []\n promises.push(this.getSpaces(pendingSpaces, fetchOption).then(res => res.recordMapWithRoles?.space))\n\n // Append them\n const [newUsers, newBlocks, newSpaces] = await Promise.all(promises)\n recordMap.notion_user = { ...recordMap.notion_user, ...newUsers }\n recordMap.block = { ...recordMap.block, ...newBlocks }\n recordMap.space = { ...recordMap.space, ...newSpaces }\n\n // Normalize after merging syncRecordValues/getRecordValues data\n normalizeMap(recordMap.block)\n normalizeMap(recordMap.collection)\n normalizeMap(recordMap.notion_user)\n }\n\n // Optionally fetch all data for embedded collections and their associated views.\n // NOTE: We're eagerly fetching *all* data for each collection and all of its views.\n // This is really convenient in order to ensure that all data needed for a given\n // Notion page is readily available for use cases involving server-side rendering\n // and edge caching.\n\n const contentBlockIds = getPageContentBlockIds(recordMap)\n if (fetchCollections) await this.fetchCollections(contentBlockIds, recordMap, pageId, { concurrency, fetchOption })\n\n // Optionally fetch signed URLs for any embedded files.\n // NOTE: Similar to collection data, we default to eagerly fetching signed URL info\n // because it is preferable for many use cases as opposed to making these API calls\n // lazily from the client-side.\n if (signFileUrls) await this.addSignedUrls({ recordMap, contentBlockIds, fetchOption })\n\n return recordMap\n }\n\n public async fetchCollections(\n contentBlockIds: string[],\n recordMap: ExtendedRecordMap,\n pageId?: string,\n {\n concurrency,\n fetchOption,\n collectionConcurrency\n }: {\n concurrency: number\n collectionConcurrency?: number\n fetchOption?: FetchOption\n } = { concurrency: 36, fetchOption: { timeout: 20000 }, collectionConcurrency: 300 }\n ): Promise<ExtendedRecordMap> {\n const allCollectionInstances: Array<{\n collectionId: string\n collectionViewId: string\n collectionViewBlockId: string\n }> = contentBlockIds.flatMap(blockId => {\n const block = recordMap.block[blockId]?.value\n if (!block) return []\n const collectionId =\n block &&\n (block.type === 'collection_view' || block.type === 'collection_view_page') &&\n getBlockCollectionId(block, recordMap)\n\n if (collectionId)\n if (pageId ? findAncestors(recordMap, block).includes(pageId) : true)\n return block.view_ids?.flatMap(collectionViewId => {\n if (recordMap.collection_query[collectionId]?.[collectionViewId]) return []\n else\n return {\n collectionId,\n collectionViewId,\n collectionViewBlockId: block.id\n }\n })\n return []\n })\n\n // fetch data for all collection view instances\n const resultMap: ExtendedRecordMap = {\n block: {},\n collection: {},\n collection_view: {},\n notion_user: {},\n collection_query: {},\n signed_urls: {}\n }\n await pMap(\n allCollectionInstances.slice(allCollectionInstances.length - collectionConcurrency, allCollectionInstances.length),\n async collectionInstance => {\n const { collectionId, collectionViewId, collectionViewBlockId } = collectionInstance\n const collectionView = recordMap.collection_view[collectionViewId]?.value\n\n try {\n const collectionData = await this.getCollectionData(collectionId, collectionViewId, collectionView, {\n fetchOption\n })\n\n if (collectionData.recordMap) {\n recordMap.block = { ...recordMap.block, ...collectionData.recordMap.block }\n recordMap.collection = { ...recordMap.collection, ...collectionData.recordMap.collection }\n recordMap.collection_view = { ...recordMap.collection_view, ...collectionData.recordMap.collection_view }\n recordMap.notion_user = { ...recordMap.notion_user, ...collectionData.recordMap.notion_user }\n recordMap.collection_query![collectionId] = {\n ...recordMap.collection_query![collectionId],\n [collectionViewId]: collectionData.result?.reducerResults\n }\n resultMap.block = { ...resultMap.block, ...collectionData.recordMap.block }\n resultMap.collection = { ...resultMap.collection, ...collectionData.recordMap.collection }\n resultMap.collection_view = { ...resultMap.collection_view, ...collectionData.recordMap.collection_view }\n resultMap.notion_user = { ...resultMap.notion_user, ...collectionData.recordMap.notion_user }\n resultMap.collection_query![collectionId] = {\n ...resultMap.collection_query![collectionId],\n [collectionViewId]: collectionData.result?.reducerResults\n }\n }\n\n if (!collectionView) {\n const viewBlockData = await this.getPageRaw(collectionViewBlockId, { fetchOption })\n if (viewBlockData.recordMap) {\n normalizeMap(viewBlockData.recordMap.block)\n normalizeMap(viewBlockData.recordMap.collection)\n normalizeMap(viewBlockData.recordMap.collection_view)\n recordMap.collection_view = { ...recordMap.collection_view, ...viewBlockData.recordMap.collection_view }\n resultMap.collection_view = { ...resultMap.collection_view, ...viewBlockData.recordMap.collection_view }\n recordMap.collection = { ...recordMap.collection, ...viewBlockData.recordMap.collection }\n resultMap.collection = { ...resultMap.collection, ...viewBlockData.recordMap.collection }\n recordMap.block = { ...recordMap.block, ...viewBlockData.recordMap.block }\n resultMap.block = { ...resultMap.block, ...viewBlockData.recordMap.block }\n }\n }\n } catch (err) {\n // It's possible for public pages to link to private collections, in which case\n // Notion returns a 400 error\n console.debug('NotionAPI collectionQuery error in page id ', pageId)\n console.error(err)\n }\n },\n {\n concurrency\n }\n )\n return resultMap\n }\n\n public async addSignedUrls({\n recordMap,\n contentBlockIds,\n fetchOption = {}\n }: {\n recordMap: ExtendedRecordMap\n contentBlockIds?: string[]\n fetchOption?: FetchOption\n }) {\n recordMap.signed_urls = {}\n\n if (!contentBlockIds) contentBlockIds = getPageContentBlockIds(recordMap)\n\n const allFileInstances = contentBlockIds.flatMap(blockId => {\n const block = recordMap.block[blockId]?.value\n\n if (\n block &&\n (block.type === 'pdf' ||\n block.type === 'audio' ||\n (block.type === 'image' && block.file_ids?.length) ||\n block.type === 'video' ||\n block.type === 'file' ||\n block.type === 'page')\n ) {\n const source = block.type === 'page' ? block.format?.page_cover : block.properties?.source?.[0]?.[0]\n\n if (source) {\n if (!source.includes('secure.notion-static.com') && !source.includes('prod-files-secure')) return []\n\n return {\n permissionRecord: {\n table: 'block',\n id: block.id\n },\n url: source\n }\n }\n }\n\n return []\n })\n\n if (allFileInstances.length > 0)\n try {\n const { signedUrls } = await this.getSignedFileUrls(allFileInstances, fetchOption)\n\n if (signedUrls.length === allFileInstances.length)\n for (let i = 0; i < allFileInstances.length; ++i) {\n const file = allFileInstances[i]\n const signedUrl = signedUrls[i]\n\n recordMap.signed_urls[file.permissionRecord.id] = signedUrl\n }\n } catch (err) {\n console.warn('NotionAPI getSignedfileUrls error', err)\n }\n }\n\n public async getPageRaw(\n pageId: string,\n {\n fetchOption,\n chunkLimit = 100,\n chunkNumber = 0\n }: {\n chunkLimit?: number\n chunkNumber?: number\n fetchOption?: FetchOption\n } = {}\n ) {\n const parsedPageId = parsePageId(pageId)\n\n if (!parsedPageId) throw new Error(`invalid notion pageId \"${pageId}\"`)\n\n const body = {\n pageId: parsedPageId,\n limit: chunkLimit,\n chunkNumber: chunkNumber,\n cursor: { stack: [] },\n verticalColumns: false\n }\n\n return this.fetch<PageChunk>({\n endpoint: 'loadPageChunk',\n body,\n fetchOption\n })\n }\n\n public async getCollectionData(\n collectionId: string,\n collectionViewId: string,\n collectionView: BaseCollectionView,\n {\n limit = 9999,\n searchQuery = '',\n userTimeZone = this._userTimeZone,\n loadContentCover = true,\n fetchOption\n }: {\n type?: CollectionViewType\n limit?: number\n searchQuery?: string\n userTimeZone?: string\n userLocale?: string\n loadContentCover?: boolean\n fetchOption?: FetchOption\n } = {}\n ) {\n const type = collectionView?.type\n const isBoardType = type === 'board'\n const groupBy = isBoardType ? collectionView?.format?.board_columns_by : collectionView?.format?.collection_group_by\n\n let filters = []\n if (collectionView?.format?.property_filters)\n filters = collectionView.format?.property_filters.map(filterObj => {\n //get the inner filter\n return {\n filter: filterObj?.filter?.filter,\n property: filterObj?.filter?.property\n }\n })\n\n //Fixes formula filters from not working\n if (collectionView?.query2?.filter?.filters) filters.push(...collectionView.query2.filter.filters)\n\n let loader: unknown = {\n type: 'reducer',\n reducers: {\n collection_group_results: {\n type: 'results',\n limit,\n loadContentCover\n }\n },\n sort: [],\n ...collectionView?.query2,\n filter: {\n filters: filters,\n operator: 'and'\n },\n searchQuery,\n userTimeZone\n }\n\n if (groupBy) {\n const groups = collectionView?.format?.board_columns || collectionView?.format?.collection_groups || []\n const iterators = [isBoardType ? 'board' : 'group_aggregation', 'results']\n const operators = {\n checkbox: 'checkbox_is',\n url: 'string_starts_with',\n text: 'string_starts_with',\n select: 'enum_is',\n multi_select: 'enum_contains',\n created_time: 'date_is_within',\n ['undefined']: 'is_empty'\n }\n\n const reducersQuery = {}\n for (const group of groups) {\n const {\n property,\n value: { value, type }\n } = group\n\n for (const iterator of iterators) {\n const iteratorProps =\n iterator === 'results'\n ? {\n type: iterator,\n limit\n }\n : {\n type: 'aggregation',\n aggregation: {\n aggregator: 'count'\n }\n }\n\n const isUncategorizedValue = typeof value === 'undefined'\n const isDateValue = value?.range\n // TODO: review dates reducers\n const queryLabel = isUncategorizedValue\n ? 'uncategorized'\n : isDateValue\n ? value.range?.start_date || value.range?.end_date\n : value?.value || value\n\n const queryValue = !isUncategorizedValue && (isDateValue || value?.value || value)\n\n reducersQuery[`${iterator}:${type}:${queryLabel}`] = {\n ...iteratorProps,\n filter: {\n operator: 'and',\n filters: [\n {\n property,\n filter: {\n operator: !isUncategorizedValue ? operators[type] : 'is_empty',\n ...(!isUncategorizedValue && {\n value: {\n type: 'exact',\n value: queryValue\n }\n })\n }\n }\n ]\n }\n }\n }\n }\n\n const reducerLabel = isBoardType ? 'board_columns' : `${type}_groups`\n loader = {\n type: 'reducer',\n reducers: {\n [reducerLabel]: {\n type: 'groups',\n groupBy,\n ...(collectionView?.query2?.filter && {\n filter: collectionView?.query2?.filter\n }),\n groupSortPreference: groups.map(group => group?.value),\n limit\n },\n ...reducersQuery\n },\n ...collectionView?.query2,\n searchQuery,\n userTimeZone,\n filter: { filters, operator: 'and' }\n }\n }\n\n const response = await this.fetch<ReducerResponse<CollectionQueryResult>>({\n endpoint: 'queryCollection',\n body: {\n collection: { id: collectionId },\n collectionView: { id: collectionViewId },\n loader\n },\n fetchOption\n })\n\n // Normalize queryCollection recordMap — Notion API now wraps entries with\n // {spaceId, value: {value, role}} instead of {value, role}. Unwrap so\n // downstream code can use entry.value.* consistently with loadPageChunk.\n if (response.recordMap) {\n normalizeMap(response.recordMap.block)\n normalizeMap(response.recordMap.collection)\n normalizeMap(response.recordMap.collection_view)\n normalizeMap(response.recordMap.notion_user)\n }\n\n return response\n }\n\n public async getUsers(userIds: string[], fetchOption?: FetchOption) {\n return this.fetch<RecordValues<User>>({\n endpoint: 'getRecordValues',\n body: { requests: userIds.map(id => ({ id, table: 'notion_user' })) },\n fetchOption\n })\n }\n\n public async getSpaces(spaceIds: string[], fetchOption?: FetchOption) {\n return this.fetch<RecordValues<Space>>({\n endpoint: 'getRecordValues',\n body: { requests: spaceIds.map(id => ({ id, table: 'space' })) },\n fetchOption\n })\n }\n\n public async getBlocks(blockIds: string[], fetchOption?: FetchOption) {\n return this.fetch<PageChunk>({\n endpoint: 'syncRecordValues',\n body: { requests: blockIds.map(blockId => ({ table: 'block', id: blockId, version: -1 })) },\n fetchOption\n })\n }\n\n public async syncRecords(records: { id: string; table: string }[], fetchOption?: FetchOption) {\n return this.fetch<PageChunk>({\n endpoint: 'syncRecordValues',\n body: { requests: records.map(({ id, table }) => ({ table, id, version: -1 })) },\n fetchOption\n })\n }\n\n public async getSignedFileUrls(urls: SignedUrlRequest[], fetchOption?: FetchOption) {\n return this.fetch<SignedUrlResponse>({\n endpoint: 'getSignedFileUrls',\n body: { urls },\n fetchOption\n })\n }\n\n public async search(params: SearchParams, fetchOption?: FetchOption) {\n const body: SearchParams = {\n type: 'BlocksInSpace',\n source: 'quick_find_filters',\n spaceId: parsePageId(params.spaceId),\n sort: { field: 'relevance' },\n limit: params.limit || 20,\n query: params.query,\n filters: {\n isDeletedOnly: false,\n navigableBlockContentOnly: false,\n excludeTemplates: true,\n requireEditPermissions: false,\n includePublicPagesWithoutExplicitAccess: true,\n createdBy: [],\n editedBy: [],\n lastEditedTime: {},\n createdTime: {},\n ...params.filters,\n ancestors: params.filters?.ancestors ? params.filters.ancestors.map(id => parsePageId(id)) : []\n }\n }\n return this.fetch<SearchResults>({\n endpoint: 'search',\n body,\n fetchOption\n })\n }\n\n /**\n * Backlink function which requires an authToken for NotionAPI client.\n * @param params object to pass black and space id\n * @param fetchOption Fetch options\n * @returns backlink list with recordmap\n */\n public async getBacklinks(params: BacklinkParams, fetchOption?: FetchOption) {\n const body: BacklinkParams = {\n block: {\n id: parsePageId(params.block.id),\n spaceId: parsePageId(params.block.spaceId)\n }\n }\n\n return this.fetch<BacklinkResults>({\n endpoint: 'getBacklinksForBlockInitial',\n body,\n fetchOption\n })\n }\n\n public async fetch<T>({\n endpoint,\n body,\n fetchOption,\n headers: clientHeaders\n }: {\n endpoint: string\n body: object\n fetchOption?: FetchOption\n headers?: HeadersInit\n }): Promise<T> {\n const headers: HeadersInit = {\n ...clientHeaders,\n ...fetchOption?.headers,\n 'Content-Type': 'application/json'\n }\n\n if (this._authToken) headers['cookie'] = `token_v2=${this._authToken}`\n if (this._activeUser) headers['x-notion-active-user-header'] = this._activeUser\n\n const url = `${this._apiBaseUrl}/${endpoint}`\n const requestInit = {\n method: 'post',\n body: JSON.stringify(body),\n headers,\n ...fetchOption\n }\n if (fetchOption?.timeout !== undefined) {\n const ctrl = new AbortController()\n setTimeout(() => ctrl.abort(), fetchOption.timeout)\n requestInit.signal = ctrl.signal\n }\n\n return fetch(url, requestInit).then(res => res.json())\n }\n}\n\n// Notion's queryCollection API wraps entries as {spaceId, value: {value, role}}\n// instead of {value, role}. Unwrap in-place to match loadPageChunk format.\nfunction normalizeMap<T>(map: NotionMap<T> | undefined) {\n if (!map) return\n for (const id of Object.keys(map)) {\n const entry: any = map[id]\n if (entry?.spaceId && entry.value?.value) map[id] = entry.value\n }\n}\n"],"names":["NotionAPI","apiBaseUrl","authToken","activeUser","userTimeZone","_0","__async","pageId","concurrency","fetchFullInfo","fetchCollections","signFileUrls","chunkLimit","chunkNumber","fetchOption","page","recordMap","uuidToId","normalizeMap","_a","_b","_c","promises","pendingUserIDs","getPageContentUserIds","id","res","pendingBlocks","getPageContentBlockIds","rootBlock","pendingSpaces","newUsers","newBlocks","newSpaces","__spreadValues","contentBlockIds","_1","_2","collectionConcurrency","allCollectionInstances","blockId","block","collectionId","getBlockCollectionId","findAncestors","collectionViewId","resultMap","pMap","collectionInstance","collectionViewBlockId","collectionView","collectionData","__spreadProps","viewBlockData","err","allFileInstances","source","_f","_e","_d","signedUrls","i","file","signedUrl","parsedPageId","parsePageId","body","limit","searchQuery","loadContentCover","type","isBoardType","groupBy","filters","filterObj","loader","groups","_g","_h","iterators","operators","reducersQuery","group","property","value","iterator","iteratorProps","isUncategorizedValue","isDateValue","queryLabel","_i","_j","queryValue","reducerLabel","_k","_l","response","userIds","spaceIds","blockIds","records","table","urls","params","endpoint","clientHeaders","headers","url","requestInit","ctrl","map","entry"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCO,MAAMA,GAAU;AAAA,EAMrB,YAAY;AAAA,IACV,YAAAC,IAAa;AAAA,IACb,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,EAAA,IAOb,IAAI;AACN,SAAK,cAAcH,GACnB,KAAK,aAAaC,GAClB,KAAK,cAAcC,GACnB,KAAK,gBAAgBC;AAAA,EACvB;AAAA,EAEa,QACXC,GAkB4B;AAAA,WAAAC,EAAA,4BAlB5BC,GACA;AAAA,MACE,aAAAC,IAAc;AAAA,MACd,eAAAC,IAAgB;AAAA,MAChB,kBAAAC,IAAmB;AAAA,MACnB,cAAAC,IAAe;AAAA,MACf,YAAAC,IAAa;AAAA,MACb,aAAAC,IAAc;AAAA,MACd,aAAAC;AAAA,IAAA,IASE,IACwB;;AAC5B,YAAMC,IAAO,MAAM,KAAK,WAAWR,GAAQ;AAAA,QACzC,YAAAK;AAAA,QACA,aAAAC;AAAA,QACA,aAAAC;AAAA,MAAA,CACD,GACKE,IAAYD,KAAA,gBAAAA,EAAM;AACxB,UAAI,EAACC,KAAA,QAAAA,EAAW,OAAO,OAAM,IAAI,MAAM,0BAA0BC,GAASV,CAAM,CAAC,GAAG;AAmBpF,UAhBAW,EAAaF,EAAU,KAAK,GAC5BE,EAAaF,EAAU,UAAU,GACjCE,EAAaF,EAAU,eAAe,GACtCE,EAAaF,EAAU,WAAW,GAGlCA,EAAU,cAAaG,IAAAH,EAAU,eAAV,OAAAG,IAAwB,CAAA,GAC/CH,EAAU,mBAAkBI,IAAAJ,EAAU,oBAAV,OAAAI,IAA6B,CAAA,GACzDJ,EAAU,eAAcK,IAAAL,EAAU,gBAAV,OAAAK,IAAyB,CAAA,GAIjDL,EAAU,mBAAmB,CAAA,GAC7BA,EAAU,cAAc,CAAA,GAGpBP,GAAe;AACjB,cAAMa,IAAW,CAAA,GAEXC,IAAiBC,GAAsBR,CAAS,EAAE,OAAO,OAAM,CAACA,EAAU,YAAYS,CAAE,CAAC;AAC/F,QAAAH,EAAS,KAAK,KAAK,SAASC,GAAgBT,CAAW,EAAE,KAAK,CAAAY,MAAA;;AAAO,kBAAAP,IAAAO,KAAA,gBAAAA,EAAK,uBAAL,gBAAAP,EAAyB;AAAA,SAAW,CAAC;AAG1G,cAAMQ,IAAgBC,EAAuBZ,CAAS,EAAE,OAAO,OAAM,CAACA,EAAU,MAAMS,CAAE,CAAC;AACzF,QAAAH,EAAS,KAAK,KAAK,UAAUK,GAAeb,CAAW,EAAE,KAAK,CAAAY,MAAOA,EAAI,UAAU,KAAK,CAAC;AAGzF,cAAMG,IAAY,OAAO,OAAOb,EAAU,KAAK,EAAE,CAAC,EAAE,OAC9Cc,IAAgBD,EAAU,iBAAiB,UAAU,CAACA,EAAU,SAAS,IAAI,CAAA;AACnF,QAAAP,EAAS,KAAK,KAAK,UAAUQ,GAAehB,CAAW,EAAE,KAAK,CAAAY,MAAA;;AAAO,kBAAAP,IAAAO,EAAI,uBAAJ,gBAAAP,EAAwB;AAAA,SAAK,CAAC;AAGnG,cAAM,CAACY,GAAUC,GAAWC,CAAS,IAAI,MAAM,QAAQ,IAAIX,CAAQ;AACnE,QAAAN,EAAU,cAAckB,IAAA,IAAKlB,EAAU,cAAgBe,IACvDf,EAAU,QAAQkB,IAAA,IAAKlB,EAAU,QAAUgB,IAC3ChB,EAAU,QAAQkB,IAAA,IAAKlB,EAAU,QAAUiB,IAG3Cf,EAAaF,EAAU,KAAK,GAC5BE,EAAaF,EAAU,UAAU,GACjCE,EAAaF,EAAU,WAAW;AAAA,MACpC;AAQA,YAAMmB,IAAkBP,EAAuBZ,CAAS;AACxD,aAAIN,MAAkB,MAAM,KAAK,iBAAiByB,GAAiBnB,GAAWT,GAAQ,EAAE,aAAAC,GAAa,aAAAM,GAAa,IAM9GH,YAAoB,KAAK,cAAc,EAAE,WAAAK,GAAW,iBAAAmB,GAAiB,aAAArB,GAAa,IAE/EE;AAAA,IACT;AAAA;AAAA,EAEa,iBACXX,GACA+B,GACAC,GAU4B;AAAA,WAAA/B,EAAA,4BAZ5B6B,GACAnB,GACAT,GACA;AAAA,MACE,aAAAC;AAAA,MACA,aAAAM;AAAA,MACA,uBAAAwB;AAAA,IAAA,IAKE,EAAE,aAAa,IAAI,aAAa,EAAE,SAAS,IAAA,GAAS,uBAAuB,OACnD;AAC5B,YAAMC,IAIDJ,EAAgB,QAAQ,CAAAK,MAAW;;AACtC,cAAMC,KAAQtB,IAAAH,EAAU,MAAMwB,CAAO,MAAvB,gBAAArB,EAA0B;AACxC,YAAI,CAACsB,EAAO,QAAO,CAAA;AACnB,cAAMC,IACJD,MACCA,EAAM,SAAS,qBAAqBA,EAAM,SAAS,2BACpDE,GAAqBF,GAAOzB,CAAS;AAEvC,eAAI0B,MACE,CAAAnC,KAASqC,GAAc5B,GAAWyB,CAAK,EAAE,SAASlC,CAAM,MACnDa,IAAAqB,EAAM,aAAN,gBAAArB,EAAgB,QAAQ,CAAAyB,MAAoB;;AACjD,kBAAI1B,IAAAH,EAAU,iBAAiB0B,CAAY,MAAvC,QAAAvB,EAA2C0B,KAA0B,CAAA,IAEhE;AAAA,YACL,cAAAH;AAAA,YACA,kBAAAG;AAAA,YACA,uBAAuBJ,EAAM;AAAA,UAAA;AAAA,QAEnC,KACG,CAAA;AAAA,MACT,CAAC,GAGKK,IAA+B;AAAA,QACnC,OAAO,CAAA;AAAA,QACP,YAAY,CAAA;AAAA,QACZ,iBAAiB,CAAA;AAAA,QACjB,aAAa,CAAA;AAAA,QACb,kBAAkB,CAAA;AAAA,QAClB,aAAa,CAAA;AAAA,MAAC;AAEhB,mBAAMC;AAAA,QACJR,EAAuB,MAAMA,EAAuB,SAASD,GAAuBC,EAAuB,MAAM;AAAA,QACjH,CAAMS,MAAsB1C,EAAA;;AAC1B,gBAAM,EAAE,cAAAoC,GAAc,kBAAAG,GAAkB,uBAAAI,EAAA,IAA0BD,GAC5DE,KAAiB/B,IAAAH,EAAU,gBAAgB6B,CAAgB,MAA1C,gBAAA1B,EAA6C;AAEpE,cAAI;AACF,kBAAMgC,IAAiB,MAAM,KAAK,kBAAkBT,GAAcG,GAAkBK,GAAgB;AAAA,cAClG,aAAApC;AAAA,YAAA,CACD;AAqBD,gBAnBIqC,EAAe,cACjBnC,EAAU,QAAQkB,IAAA,IAAKlB,EAAU,QAAUmC,EAAe,UAAU,QACpEnC,EAAU,aAAakB,IAAA,IAAKlB,EAAU,aAAemC,EAAe,UAAU,aAC9EnC,EAAU,kBAAkBkB,IAAA,IAAKlB,EAAU,kBAAoBmC,EAAe,UAAU,kBACxFnC,EAAU,cAAckB,IAAA,IAAKlB,EAAU,cAAgBmC,EAAe,UAAU,cAChFnC,EAAU,iBAAkB0B,CAAY,IAAIU,EAAAlB,EAAA,IACvClB,EAAU,iBAAkB0B,CAAY,IADD;AAAA,cAE1C,CAACG,CAAgB,IAAGzB,IAAA+B,EAAe,WAAf,gBAAA/B,EAAuB;AAAA,YAAA,IAE7C0B,EAAU,QAAQZ,IAAA,IAAKY,EAAU,QAAUK,EAAe,UAAU,QACpEL,EAAU,aAAaZ,IAAA,IAAKY,EAAU,aAAeK,EAAe,UAAU,aAC9EL,EAAU,kBAAkBZ,IAAA,IAAKY,EAAU,kBAAoBK,EAAe,UAAU,kBACxFL,EAAU,cAAcZ,IAAA,IAAKY,EAAU,cAAgBK,EAAe,UAAU,cAChFL,EAAU,iBAAkBJ,CAAY,IAAIU,EAAAlB,EAAA,IACvCY,EAAU,iBAAkBJ,CAAY,IADD;AAAA,cAE1C,CAACG,CAAgB,IAAGxB,IAAA8B,EAAe,WAAf,gBAAA9B,EAAuB;AAAA,YAAA,KAI3C,CAAC6B,GAAgB;AACnB,oBAAMG,IAAgB,MAAM,KAAK,WAAWJ,GAAuB,EAAE,aAAAnC,GAAa;AAClF,cAAIuC,EAAc,cAChBnC,EAAamC,EAAc,UAAU,KAAK,GAC1CnC,EAAamC,EAAc,UAAU,UAAU,GAC/CnC,EAAamC,EAAc,UAAU,eAAe,GACpDrC,EAAU,kBAAkBkB,IAAA,IAAKlB,EAAU,kBAAoBqC,EAAc,UAAU,kBACvFP,EAAU,kBAAkBZ,IAAA,IAAKY,EAAU,kBAAoBO,EAAc,UAAU,kBACvFrC,EAAU,aAAakB,IAAA,IAAKlB,EAAU,aAAeqC,EAAc,UAAU,aAC7EP,EAAU,aAAaZ,IAAA,IAAKY,EAAU,aAAeO,EAAc,UAAU,aAC7ErC,EAAU,QAAQkB,IAAA,IAAKlB,EAAU,QAAUqC,EAAc,UAAU,QACnEP,EAAU,QAAQZ,IAAA,IAAKY,EAAU,QAAUO,EAAc,UAAU;AAAA,YAEvE;AAAA,UACF,SAASC,GAAK;AAGZ,oBAAQ,MAAM,+CAA+C/C,CAAM,GACnE,QAAQ,MAAM+C,CAAG;AAAA,UACnB;AAAA,QACF;AAAA,QACA;AAAA,UACE,aAAA9C;AAAA,QAAA;AAAA,MACF,GAEKsC;AAAA,IACT;AAAA;AAAA,EAEa,cAAczC,GAQxB;AAAA,WAAAC,EAAA,4BARwB;AAAA,MACzB,WAAAU;AAAA,MACA,iBAAAmB;AAAA,MACA,aAAArB,IAAc,CAAA;AAAA,IAAC,GAKd;AACD,MAAAE,EAAU,cAAc,CAAA,GAEnBmB,MAAiBA,IAAkBP,EAAuBZ,CAAS;AAExE,YAAMuC,IAAmBpB,EAAgB,QAAQ,CAAAK,MAAW;;AAC1D,cAAMC,KAAQtB,IAAAH,EAAU,MAAMwB,CAAO,MAAvB,gBAAArB,EAA0B;AAExC,YACEsB,MACCA,EAAM,SAAS,SACdA,EAAM,SAAS,WACdA,EAAM,SAAS,aAAWrB,IAAAqB,EAAM,aAAN,QAAArB,EAAgB,WAC3CqB,EAAM,SAAS,WACfA,EAAM,SAAS,UACfA,EAAM,SAAS,SACjB;AACA,gBAAMe,IAASf,EAAM,SAAS,UAASpB,IAAAoB,EAAM,WAAN,gBAAApB,EAAc,cAAaoC,KAAAC,KAAAC,IAAAlB,EAAM,eAAN,gBAAAkB,EAAkB,WAAlB,gBAAAD,EAA2B,OAA3B,gBAAAD,EAAgC;AAElG,cAAID;AACF,mBAAI,CAACA,EAAO,SAAS,0BAA0B,KAAK,CAACA,EAAO,SAAS,mBAAmB,IAAU,CAAA,IAE3F;AAAA,cACL,kBAAkB;AAAA,gBAChB,OAAO;AAAA,gBACP,IAAIf,EAAM;AAAA,cAAA;AAAA,cAEZ,KAAKe;AAAA,YAAA;AAAA,QAGX;AAEA,eAAO,CAAA;AAAA,MACT,CAAC;AAED,UAAID,EAAiB,SAAS;AAC5B,YAAI;AACF,gBAAM,EAAE,YAAAK,EAAA,IAAe,MAAM,KAAK,kBAAkBL,GAAkBzC,CAAW;AAEjF,cAAI8C,EAAW,WAAWL,EAAiB;AACzC,qBAASM,IAAI,GAAGA,IAAIN,EAAiB,QAAQ,EAAEM,GAAG;AAChD,oBAAMC,IAAOP,EAAiBM,CAAC,GACzBE,IAAYH,EAAWC,CAAC;AAE9B,cAAA7C,EAAU,YAAY8C,EAAK,iBAAiB,EAAE,IAAIC;AAAA,YACpD;AAAA,QACJ,SAAST,GAAK;AACZ,kBAAQ,KAAK,qCAAqCA,CAAG;AAAA,QACvD;AAAA,IACJ;AAAA;AAAA,EAEa,WACXjD,GAUA;AAAA,WAAAC,EAAA,4BAVAC,GACA;AAAA,MACE,aAAAO;AAAA,MACA,YAAAF,IAAa;AAAA,MACb,aAAAC,IAAc;AAAA,IAAA,IAKZ,IACJ;AACA,YAAMmD,IAAeC,EAAY1D,CAAM;AAEvC,UAAI,CAACyD,EAAc,OAAM,IAAI,MAAM,0BAA0BzD,CAAM,GAAG;AAEtE,YAAM2D,IAAO;AAAA,QACX,QAAQF;AAAA,QACR,OAAOpD;AAAA,QACP,aAAAC;AAAA,QACA,QAAQ,EAAE,OAAO,GAAC;AAAA,QAClB,iBAAiB;AAAA,MAAA;AAGnB,aAAO,KAAK,MAAiB;AAAA,QAC3B,UAAU;AAAA,QACV,MAAAqD;AAAA,QACA,aAAApD;AAAA,MAAA,CACD;AAAA,IACH;AAAA;AAAA,EAEa,kBACXT,GACA+B,GACAC,GAgBA;AAAA,WAAA/B,EAAA,4BAlBAoC,GACAG,GACAK,GACA;AAAA,MACE,OAAAiB,IAAQ;AAAA,MACR,aAAAC,IAAc;AAAA,MACd,cAAAhE,IAAe,KAAK;AAAA,MACpB,kBAAAiE,IAAmB;AAAA,MACnB,aAAAvD;AAAA,IAAA,IASE,IACJ;;AACA,YAAMwD,IAAOpB,KAAA,gBAAAA,EAAgB,MACvBqB,IAAcD,MAAS,SACvBE,IAAUD,KAAcpD,IAAA+B,KAAA,gBAAAA,EAAgB,WAAhB,gBAAA/B,EAAwB,oBAAmBC,IAAA8B,KAAA,gBAAAA,EAAgB,WAAhB,gBAAA9B,EAAwB;AAEjG,UAAIqD,IAAU,CAAA;AACd,OAAIpD,IAAA6B,KAAA,gBAAAA,EAAgB,WAAhB,QAAA7B,EAAwB,qBAC1BoD,KAAUd,IAAAT,EAAe,WAAf,gBAAAS,EAAuB,iBAAiB,IAAI,CAAAe,MAAa;;AAEjE,eAAO;AAAA,UACL,SAAQvD,IAAAuD,KAAA,gBAAAA,EAAW,WAAX,gBAAAvD,EAAmB;AAAA,UAC3B,WAAUC,IAAAsD,KAAA,gBAAAA,EAAW,WAAX,gBAAAtD,EAAmB;AAAA,QAAA;AAAA,MAEjC,MAGEqC,KAAAC,IAAAR,KAAA,gBAAAA,EAAgB,WAAhB,gBAAAQ,EAAwB,WAAxB,QAAAD,EAAgC,WAASgB,EAAQ,KAAK,GAAGvB,EAAe,OAAO,OAAO,OAAO;AAEjG,UAAIyB,IAAkBvB,EAAAlB,EAAA;AAAA,QACpB,MAAM;AAAA,QACN,UAAU;AAAA,UACR,0BAA0B;AAAA,YACxB,MAAM;AAAA,YACN,OAAAiC;AAAA,YACA,kBAAAE;AAAA,UAAA;AAAA,QACF;AAAA,QAEF,MAAM,CAAA;AAAA,SACHnB,KAAA,gBAAAA,EAAgB,SAVC;AAAA,QAWpB,QAAQ;AAAA,UACN,SAAAuB;AAAA,UACA,UAAU;AAAA,QAAA;AAAA,QAEZ,aAAAL;AAAA,QACA,cAAAhE;AAAA,MAAA;AAGF,UAAIoE,GAAS;AACX,cAAMI,MAASC,IAAA3B,KAAA,gBAAAA,EAAgB,WAAhB,gBAAA2B,EAAwB,oBAAiBC,IAAA5B,KAAA,gBAAAA,EAAgB,WAAhB,gBAAA4B,EAAwB,sBAAqB,CAAA,GAC/FC,IAAY,CAACR,IAAc,UAAU,qBAAqB,SAAS,GACnES,IAAY;AAAA,UAChB,UAAU;AAAA,UACV,KAAK;AAAA,UACL,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,cAAc;AAAA,UACb,WAAc;AAAA,QAAA,GAGXC,IAAgB,CAAA;AACtB,mBAAWC,KAASN,GAAQ;AAC1B,gBAAM;AAAA,YACJ,UAAAO;AAAA,YACA,OAAO,EAAE,OAAAC,GAAO,MAAAd,EAAAA;AAAAA,UAAK,IACnBY;AAEJ,qBAAWG,KAAYN,GAAW;AAChC,kBAAMO,IACJD,MAAa,YACT;AAAA,cACE,MAAMA;AAAA,cACN,OAAAlB;AAAA,YAAA,IAEF;AAAA,cACE,MAAM;AAAA,cACN,aAAa;AAAA,gBACX,YAAY;AAAA,cAAA;AAAA,YACd,GAGFoB,IAAuB,OAAOH,KAAU,aACxCI,IAAcJ,KAAA,gBAAAA,EAAO,OAErBK,IAAaF,IACf,kBACAC,MACEE,IAAAN,EAAM,UAAN,gBAAAM,EAAa,iBAAcC,IAAAP,EAAM,UAAN,gBAAAO,EAAa,aACxCP,KAAA,gBAAAA,EAAO,UAASA,GAEhBQ,IAAa,CAACL,MAAyBC,MAAeJ,KAAA,gBAAAA,EAAO,UAASA;AAE5E,YAAAH,EAAc,GAAGI,CAAQ,IAAIf,CAAI,IAAImB,CAAU,EAAE,IAAIrC,EAAAlB,EAAA,IAChDoD,IADgD;AAAA,cAEnD,QAAQ;AAAA,gBACN,UAAU;AAAA,gBACV,SAAS;AAAA,kBACP;AAAA,oBACE,UAAAH;AAAA,oBACA,QAAQjD,EAAA;AAAA,sBACN,UAAWqD,IAAyC,aAAlBP,EAAUV,CAAI;AAAA,uBAC5C,CAACiB,KAAwB;AAAA,sBAC3B,OAAO;AAAA,wBACL,MAAM;AAAA,wBACN,OAAOK;AAAA,sBAAA;AAAA,oBACT;AAAA,kBAEJ;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UAEJ;AAAA,QACF;AAEA,cAAMC,IAAetB,IAAc,kBAAkB,GAAGD,CAAI;AAC5D,QAAAK,IAASvB,EAAAlB,EAAA;AAAA,UACP,MAAM;AAAA,UACN,UAAUA,EAAA;AAAA,YACR,CAAC2D,CAAY,GAAGzC,EAAAlB,EAAA;AAAA,cACd,MAAM;AAAA,cACN,SAAAsC;AAAA,iBACIsB,IAAA5C,KAAA,gBAAAA,EAAgB,WAAhB,gBAAA4C,EAAwB,WAAU;AAAA,cACpC,SAAQC,IAAA7C,KAAA,gBAAAA,EAAgB,WAAhB,gBAAA6C,EAAwB;AAAA,YAAA,IAJpB;AAAA,cAMd,qBAAqBnB,EAAO,IAAI,CAAAM,MAASA,KAAA,gBAAAA,EAAO,KAAK;AAAA,cACrD,OAAAf;AAAA,YAAA;AAAA,aAECc;AAAA,WAEF/B,KAAA,gBAAAA,EAAgB,SAdZ;AAAA,UAeP,aAAAkB;AAAA,UACA,cAAAhE;AAAA,UACA,QAAQ,EAAE,SAAAqE,GAAS,UAAU,MAAA;AAAA,QAAM;AAAA,MAEvC;AAEA,YAAMuB,IAAW,MAAM,KAAK,MAA8C;AAAA,QACxE,UAAU;AAAA,QACV,MAAM;AAAA,UACJ,YAAY,EAAE,IAAItD,EAAA;AAAA,UAClB,gBAAgB,EAAE,IAAIG,EAAA;AAAA,UACtB,QAAA8B;AAAA,QAAA;AAAA,QAEF,aAAA7D;AAAA,MAAA,CACD;AAKD,aAAIkF,EAAS,cACX9E,EAAa8E,EAAS,UAAU,KAAK,GACrC9E,EAAa8E,EAAS,UAAU,UAAU,GAC1C9E,EAAa8E,EAAS,UAAU,eAAe,GAC/C9E,EAAa8E,EAAS,UAAU,WAAW,IAGtCA;AAAA,IACT;AAAA;AAAA,EAEa,SAASC,GAAmBnF,GAA2B;AAAA,WAAAR,EAAA;AAClE,aAAO,KAAK,MAA0B;AAAA,QACpC,UAAU;AAAA,QACV,MAAM,EAAE,UAAU2F,EAAQ,IAAI,CAAAxE,OAAO,EAAE,IAAAA,GAAI,OAAO,cAAA,EAAgB,EAAA;AAAA,QAClE,aAAAX;AAAA,MAAA,CACD;AAAA,IACH;AAAA;AAAA,EAEa,UAAUoF,GAAoBpF,GAA2B;AAAA,WAAAR,EAAA;AACpE,aAAO,KAAK,MAA2B;AAAA,QACrC,UAAU;AAAA,QACV,MAAM,EAAE,UAAU4F,EAAS,IAAI,CAAAzE,OAAO,EAAE,IAAAA,GAAI,OAAO,QAAA,EAAU,EAAA;AAAA,QAC7D,aAAAX;AAAA,MAAA,CACD;AAAA,IACH;AAAA;AAAA,EAEa,UAAUqF,GAAoBrF,GAA2B;AAAA,WAAAR,EAAA;AACpE,aAAO,KAAK,MAAiB;AAAA,QAC3B,UAAU;AAAA,QACV,MAAM,EAAE,UAAU6F,EAAS,IAAI,CAAA3D,OAAY,EAAE,OAAO,SAAS,IAAIA,GAAS,SAAS,GAAA,EAAK,EAAA;AAAA,QACxF,aAAA1B;AAAA,MAAA,CACD;AAAA,IACH;AAAA;AAAA,EAEa,YAAYsF,GAA0CtF,GAA2B;AAAA,WAAAR,EAAA;AAC5F,aAAO,KAAK,MAAiB;AAAA,QAC3B,UAAU;AAAA,QACV,MAAM,EAAE,UAAU8F,EAAQ,IAAI,CAAC,EAAE,IAAA3E,GAAI,OAAA4E,EAAA,OAAa,EAAE,OAAAA,GAAO,IAAA5E,GAAI,SAAS,GAAA,EAAK,EAAA;AAAA,QAC7E,aAAAX;AAAA,MAAA,CACD;AAAA,IACH;AAAA;AAAA,EAEa,kBAAkBwF,GAA0BxF,GAA2B;AAAA,WAAAR,EAAA;AAClF,aAAO,KAAK,MAAyB;AAAA,QACnC,UAAU;AAAA,QACV,MAAM,EAAE,MAAAgG,EAAA;AAAA,QACR,aAAAxF;AAAA,MAAA,CACD;AAAA,IACH;AAAA;AAAA,EAEa,OAAOyF,GAAsBzF,GAA2B;AAAA,WAAAR,EAAA;;AACnE,YAAM4D,IAAqB;AAAA,QACzB,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAASD,EAAYsC,EAAO,OAAO;AAAA,QACnC,MAAM,EAAE,OAAO,YAAA;AAAA,QACf,OAAOA,EAAO,SAAS;AAAA,QACvB,OAAOA,EAAO;AAAA,QACd,SAASnD,EAAAlB,EAAA;AAAA,UACP,eAAe;AAAA,UACf,2BAA2B;AAAA,UAC3B,kBAAkB;AAAA,UAClB,wBAAwB;AAAA,UACxB,yCAAyC;AAAA,UACzC,WAAW,CAAA;AAAA,UACX,UAAU,CAAA;AAAA,UACV,gBAAgB,CAAA;AAAA,UAChB,aAAa,CAAA;AAAA,WACVqE,EAAO,UAVH;AAAA,UAWP,YAAWpF,IAAAoF,EAAO,YAAP,QAAApF,EAAgB,YAAYoF,EAAO,QAAQ,UAAU,IAAI,CAAA9E,MAAMwC,EAAYxC,CAAE,CAAC,IAAI,CAAA;AAAA,QAAC;AAAA,MAChG;AAEF,aAAO,KAAK,MAAqB;AAAA,QAC/B,UAAU;AAAA,QACV,MAAAyC;AAAA,QACA,aAAApD;AAAA,MAAA,CACD;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQa,aAAayF,GAAwBzF,GAA2B;AAAA,WAAAR,EAAA;AAC3E,YAAM4D,IAAuB;AAAA,QAC3B,OAAO;AAAA,UACL,IAAID,EAAYsC,EAAO,MAAM,EAAE;AAAA,UAC/B,SAAStC,EAAYsC,EAAO,MAAM,OAAO;AAAA,QAAA;AAAA,MAC3C;AAGF,aAAO,KAAK,MAAuB;AAAA,QACjC,UAAU;AAAA,QACV,MAAArC;AAAA,QACA,aAAApD;AAAA,MAAA,CACD;AAAA,IACH;AAAA;AAAA,EAEa,MAAST,GAUP;AAAA,WAAAC,EAAA,4BAVO;AAAA,MACpB,UAAAkG;AAAA,MACA,MAAAtC;AAAA,MACA,aAAApD;AAAA,MACA,SAAS2F;AAAA,IAAA,GAMI;AACb,YAAMC,IAAuBtD,EAAAlB,IAAA,IACxBuE,IACA3F,KAAA,gBAAAA,EAAa,UAFW;AAAA,QAG3B,gBAAgB;AAAA,MAAA;AAGlB,MAAI,KAAK,eAAY4F,EAAQ,SAAY,YAAY,KAAK,UAAU,KAChE,KAAK,gBAAaA,EAAQ,6BAA6B,IAAI,KAAK;AAEpE,YAAMC,IAAM,GAAG,KAAK,WAAW,IAAIH,CAAQ,IACrCI,IAAc1E,EAAA;AAAA,QAClB,QAAQ;AAAA,QACR,MAAM,KAAK,UAAUgC,CAAI;AAAA,QACzB,SAAAwC;AAAA,SACG5F;AAEL,WAAIA,KAAA,gBAAAA,EAAa,aAAY,QAAW;AACtC,cAAM+F,IAAO,IAAI,gBAAA;AACjB,mBAAW,MAAMA,EAAK,MAAA,GAAS/F,EAAY,OAAO,GAClD8F,EAAY,SAASC,EAAK;AAAA,MAC5B;AAEA,aAAO,MAAMF,GAAKC,CAAW,EAAE,KAAK,CAAAlF,MAAOA,EAAI,MAAM;AAAA,IACvD;AAAA;AACF;AAIA,SAASR,EAAgB4F,GAA+B;;AACtD,MAAKA;AACL,eAAWrF,KAAM,OAAO,KAAKqF,CAAG,GAAG;AACjC,YAAMC,IAAaD,EAAIrF,CAAE;AACzB,MAAIsF,KAAA,QAAAA,EAAO,aAAW5F,IAAA4F,EAAM,UAAN,QAAA5F,EAAa,WAAO2F,EAAIrF,CAAE,IAAIsF,EAAM;AAAA,IAC5D;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"notion-api.d.ts","sourceRoot":"","sources":["../src/notion-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notion-api.d.ts","sourceRoot":"","sources":["../src/notion-api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@texonom/nclient",
3
- "version": "1.5.6",
3
+ "version": "1.5.8",
4
4
  "type": "module",
5
5
  "description": "Robust TypeScript client for the unofficial Notion API.",
6
6
  "repository": "texonom/notion-node",
@@ -18,8 +18,8 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "p-map": "^5.5.0",
21
- "@texonom/ntypes": "^1.5.6",
22
- "@texonom/nutils": "^1.5.6"
21
+ "@texonom/ntypes": "^1.5.8",
22
+ "@texonom/nutils": "^1.5.8"
23
23
  },
24
24
  "standard-version": {
25
25
  "skip": {