notion-utility-personal 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/build/.tsbuildinfo +1 -0
  2. package/build/estimate-page-read-time.d.ts +35 -0
  3. package/build/estimate-page-read-time.d.ts.map +1 -0
  4. package/build/estimate-page-read-time.js +183 -0
  5. package/build/estimate-page-read-time.js.map +1 -0
  6. package/build/format-date.d.ts +4 -0
  7. package/build/format-date.d.ts.map +1 -0
  8. package/build/format-date.js +6 -0
  9. package/build/format-date.js.map +1 -0
  10. package/build/format-notion-date-time.d.ts +8 -0
  11. package/build/format-notion-date-time.d.ts.map +1 -0
  12. package/build/format-notion-date-time.js +7 -0
  13. package/build/format-notion-date-time.js.map +1 -0
  14. package/build/get-all-pages-in-space.d.ts +22 -0
  15. package/build/get-all-pages-in-space.d.ts.map +1 -0
  16. package/build/get-all-pages-in-space.js +110 -0
  17. package/build/get-all-pages-in-space.js.map +1 -0
  18. package/build/get-block-collection-id.d.ts +3 -0
  19. package/build/get-block-collection-id.d.ts.map +1 -0
  20. package/build/get-block-collection-id.js +18 -0
  21. package/build/get-block-collection-id.js.map +1 -0
  22. package/build/get-block-icon.d.ts +3 -0
  23. package/build/get-block-icon.d.ts.map +1 -0
  24. package/build/get-block-icon.js +19 -0
  25. package/build/get-block-icon.js.map +1 -0
  26. package/build/get-block-parent-page.d.ts +11 -0
  27. package/build/get-block-parent-page.d.ts.map +1 -0
  28. package/build/get-block-parent-page.js +31 -0
  29. package/build/get-block-parent-page.js.map +1 -0
  30. package/build/get-block-title.d.ts +3 -0
  31. package/build/get-block-title.d.ts.map +1 -0
  32. package/build/get-block-title.js +20 -0
  33. package/build/get-block-title.js.map +1 -0
  34. package/build/get-canonical-page-id.d.ts +8 -0
  35. package/build/get-canonical-page-id.d.ts.map +1 -0
  36. package/build/get-canonical-page-id.js +29 -0
  37. package/build/get-canonical-page-id.js.map +1 -0
  38. package/build/get-date-value.d.ts +6 -0
  39. package/build/get-date-value.d.ts.map +1 -0
  40. package/build/get-date-value.js +20 -0
  41. package/build/get-date-value.js.map +1 -0
  42. package/build/get-page-breadcrumbs.d.ts +3 -0
  43. package/build/get-page-breadcrumbs.d.ts.map +1 -0
  44. package/build/get-page-breadcrumbs.js +37 -0
  45. package/build/get-page-breadcrumbs.js.map +1 -0
  46. package/build/get-page-content-block-ids.d.ts +6 -0
  47. package/build/get-page-content-block-ids.d.ts.map +1 -0
  48. package/build/get-page-content-block-ids.js +58 -0
  49. package/build/get-page-content-block-ids.js.map +1 -0
  50. package/build/get-page-image-urls.d.ts +8 -0
  51. package/build/get-page-image-urls.d.ts.map +1 -0
  52. package/build/get-page-image-urls.js +63 -0
  53. package/build/get-page-image-urls.js.map +1 -0
  54. package/build/get-page-property.d.ts +16 -0
  55. package/build/get-page-property.d.ts.map +1 -0
  56. package/build/get-page-property.js +61 -0
  57. package/build/get-page-property.js.map +1 -0
  58. package/build/get-page-table-of-contents.d.ts +13 -0
  59. package/build/get-page-table-of-contents.d.ts.map +1 -0
  60. package/build/get-page-table-of-contents.js +67 -0
  61. package/build/get-page-table-of-contents.js.map +1 -0
  62. package/build/get-page-title.d.ts +3 -0
  63. package/build/get-page-title.d.ts.map +1 -0
  64. package/build/get-page-title.js +10 -0
  65. package/build/get-page-title.js.map +1 -0
  66. package/build/get-text-content.d.ts +9 -0
  67. package/build/get-text-content.d.ts.map +1 -0
  68. package/build/get-text-content.js +19 -0
  69. package/build/get-text-content.js.map +1 -0
  70. package/build/id-to-uuid.d.ts +2 -0
  71. package/build/id-to-uuid.d.ts.map +1 -0
  72. package/build/id-to-uuid.js +2 -0
  73. package/build/id-to-uuid.js.map +1 -0
  74. package/build/index.d.ts +25 -0
  75. package/build/index.d.ts.map +1 -0
  76. package/build/index.js +25 -0
  77. package/build/index.js.map +1 -0
  78. package/build/is-url.d.ts +3 -0
  79. package/build/is-url.d.ts.map +1 -0
  80. package/build/is-url.js +3 -0
  81. package/build/is-url.js.map +1 -0
  82. package/build/merge-record-maps.d.ts +3 -0
  83. package/build/merge-record-maps.d.ts.map +1 -0
  84. package/build/merge-record-maps.js +13 -0
  85. package/build/merge-record-maps.js.map +1 -0
  86. package/build/normalize-title.d.ts +2 -0
  87. package/build/normalize-title.d.ts.map +1 -0
  88. package/build/normalize-title.js +11 -0
  89. package/build/normalize-title.js.map +1 -0
  90. package/build/normalize-url.d.ts +2 -0
  91. package/build/normalize-url.d.ts.map +1 -0
  92. package/build/normalize-url.js +27 -0
  93. package/build/normalize-url.js.map +1 -0
  94. package/build/normalize-url.test.d.ts +2 -0
  95. package/build/normalize-url.test.d.ts.map +1 -0
  96. package/build/normalize-url.test.js +30 -0
  97. package/build/normalize-url.test.js.map +1 -0
  98. package/build/parse-page-id.d.ts +9 -0
  99. package/build/parse-page-id.d.ts.map +1 -0
  100. package/build/parse-page-id.js +24 -0
  101. package/build/parse-page-id.js.map +1 -0
  102. package/build/parse-page-id.test.d.ts +2 -0
  103. package/build/parse-page-id.test.d.ts.map +1 -0
  104. package/build/parse-page-id.test.js +54 -0
  105. package/build/parse-page-id.test.js.map +1 -0
  106. package/build/uuid-to-id.d.ts +2 -0
  107. package/build/uuid-to-id.d.ts.map +1 -0
  108. package/build/uuid-to-id.js +2 -0
  109. package/build/uuid-to-id.js.map +1 -0
  110. package/package.json +51 -0
@@ -0,0 +1,3 @@
1
+ import isUrl from 'is-url-superb';
2
+ export { isUrl };
3
+ //# sourceMappingURL=is-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-url.d.ts","sourceRoot":"","sources":["../src/is-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,eAAe,CAAA;AAEjC,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import isUrl from 'is-url-superb';
2
+ export { isUrl };
3
+ //# sourceMappingURL=is-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-url.js","sourceRoot":"","sources":["../src/is-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,eAAe,CAAA;AAEjC,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ExtendedRecordMap } from "notion-types-personal";
2
+ export declare function mergeRecordMaps(recordMapA: ExtendedRecordMap, recordMapB: ExtendedRecordMap): ExtendedRecordMap;
3
+ //# sourceMappingURL=merge-record-maps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-record-maps.d.ts","sourceRoot":"","sources":["../src/merge-record-maps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,wBAAgB,eAAe,CAC7B,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,iBAAiB,GAC5B,iBAAiB,CAiCnB"}
@@ -0,0 +1,13 @@
1
+ export function mergeRecordMaps(recordMapA, recordMapB) {
2
+ const mergedRecordMap = {
3
+ block: Object.assign(Object.assign({}, recordMapA.block), recordMapB.block),
4
+ collection: Object.assign(Object.assign({}, recordMapA.collection), recordMapB.collection),
5
+ collection_view: Object.assign(Object.assign({}, recordMapA.collection_view), recordMapB.collection_view),
6
+ notion_user: Object.assign(Object.assign({}, recordMapA.notion_user), recordMapB.notion_user),
7
+ collection_query: Object.assign(Object.assign({}, recordMapA.collection_query), recordMapB.collection_query),
8
+ signed_urls: Object.assign(Object.assign({}, recordMapA.signed_urls), recordMapB.signed_urls),
9
+ preview_images: Object.assign(Object.assign({}, recordMapA.preview_images), recordMapB.preview_images),
10
+ };
11
+ return mergedRecordMap;
12
+ }
13
+ //# sourceMappingURL=merge-record-maps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-record-maps.js","sourceRoot":"","sources":["../src/merge-record-maps.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAC7B,UAA6B,EAC7B,UAA6B;IAE7B,MAAM,eAAe,GAAsB;QACzC,KAAK,kCACA,UAAU,CAAC,KAAK,GAChB,UAAU,CAAC,KAAK,CACpB;QACD,UAAU,kCACL,UAAU,CAAC,UAAU,GACrB,UAAU,CAAC,UAAU,CACzB;QACD,eAAe,kCACV,UAAU,CAAC,eAAe,GAC1B,UAAU,CAAC,eAAe,CAC9B;QACD,WAAW,kCACN,UAAU,CAAC,WAAW,GACtB,UAAU,CAAC,WAAW,CAC1B;QACD,gBAAgB,kCACX,UAAU,CAAC,gBAAgB,GAC3B,UAAU,CAAC,gBAAgB,CAC/B;QACD,WAAW,kCACN,UAAU,CAAC,WAAW,GACtB,UAAU,CAAC,WAAW,CAC1B;QACD,cAAc,kCACT,UAAU,CAAC,cAAc,GACzB,UAAU,CAAC,cAAc,CAC7B;KACF,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const normalizeTitle: (title?: string | null) => string;
2
+ //# sourceMappingURL=normalize-title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-title.d.ts","sourceRoot":"","sources":["../src/normalize-title.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,WAAY,MAAM,GAAG,IAAI,KAAG,MAYtD,CAAA"}
@@ -0,0 +1,11 @@
1
+ export const normalizeTitle = (title) => {
2
+ return (title || '')
3
+ .replace(/ /g, '-')
4
+ .replace(/[^a-zA-Z0-9-\u4e00-\u9FFF\u3041-\u3096\u30A1-\u30FC\u3000-\u303F]/g, '')
5
+ .replace(/--/g, '-')
6
+ .replace(/-$/, '')
7
+ .replace(/^-/, '')
8
+ .trim()
9
+ .toLowerCase();
10
+ };
11
+ //# sourceMappingURL=normalize-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-title.js","sourceRoot":"","sources":["../src/normalize-title.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAqB,EAAU,EAAE;IAC9D,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CACN,oEAAoE,EACpE,EAAE,CACH;SACA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,IAAI,EAAE;SACN,WAAW,EAAE,CAAA;AAClB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const normalizeUrl: (url?: string) => string;
2
+ //# sourceMappingURL=normalize-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-url.d.ts","sourceRoot":"","sources":["../src/normalize-url.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,SAAc,MAAM,WAwB3C,CAAA"}
@@ -0,0 +1,27 @@
1
+ import mem from 'mem';
2
+ import normalizeUrlImpl from 'normalize-url';
3
+ export const normalizeUrl = mem((url) => {
4
+ if (!url) {
5
+ return '';
6
+ }
7
+ try {
8
+ if (url.startsWith('https://www.notion.so/image/')) {
9
+ const u = new URL(url);
10
+ const subUrl = decodeURIComponent(u.pathname.substr('/image/'.length));
11
+ const normalizedSubUrl = normalizeUrl(subUrl);
12
+ u.pathname = `/image/${encodeURIComponent(normalizedSubUrl)}`;
13
+ url = u.toString();
14
+ }
15
+ return normalizeUrlImpl(url, {
16
+ stripProtocol: true,
17
+ stripWWW: true,
18
+ stripHash: true,
19
+ stripTextFragment: true,
20
+ removeQueryParameters: true
21
+ });
22
+ }
23
+ catch (err) {
24
+ return '';
25
+ }
26
+ });
27
+ //# sourceMappingURL=normalize-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-url.js","sourceRoot":"","sources":["../src/normalize-url.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,gBAAgB,MAAM,eAAe,CAAA;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,GAAY,EAAE,EAAE;IAC/C,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,EAAE,CAAA;KACV;IAED,IAAI;QACF,IAAI,GAAG,CAAC,UAAU,CAAC,8BAA8B,CAAC,EAAE;YAClD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;YACtB,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;YACtE,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;YAC7C,CAAC,CAAC,QAAQ,GAAG,UAAU,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAA;YAC7D,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;SACnB;QAED,OAAO,gBAAgB,CAAC,GAAG,EAAE;YAC3B,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,IAAI;YACvB,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CAAA;KACH;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,CAAA;KACV;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=normalize-url.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-url.test.d.ts","sourceRoot":"","sources":["../src/normalize-url.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import test from 'ava';
2
+ import { normalizeUrl } from './normalize-url';
3
+ test('normalizeUrl invalid', (t) => {
4
+ t.is(normalizeUrl(), '');
5
+ t.is(normalizeUrl(''), '');
6
+ t.is(normalizeUrl('#'), '');
7
+ t.is(normalizeUrl('#foo'), '');
8
+ t.is(normalizeUrl('/foo'), '');
9
+ t.is(normalizeUrl('/foo/bar'), '');
10
+ t.is(normalizeUrl('://test.com'), '');
11
+ });
12
+ test('normalizeUrl valid', (t) => {
13
+ const fixtures = [
14
+ 'test.com',
15
+ 'test.com/123',
16
+ '//test.com',
17
+ 'https://test.com',
18
+ 'https://www.test.com',
19
+ 'https://test.com/foo/bar',
20
+ 'https://test.com/foo/bar/',
21
+ 'https://test.com/foo/bar?foo=bar&cat=dog',
22
+ 'https://www.notion.so/image/https%3A%2F%2Fs3.us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fae16c287-668f-4ea7-90a8-5ed96302e14f%2Fquilt-opt.jpg%3FX-Amz-Algorithm%3DAWS4-HMAC-SHA256%26X-Amz-Content-Sha256%3DUNSIGNED-PAYLOAD%26X-Amz-Credential%3DAKIAT73L2G45EIPT3X45%252F20220327%252Fus-west-2%252Fs3%252Faws4_request%26X-Amz-Date%3D20220327T124856Z%26X-Amz-Expires%3D86400%26X-Amz-Signature%3Dfdaa47d722db4b4052267d999003c6392bbd3d8c4169268b202b8268b2af12ab%26X-Amz-SignedHeaders%3Dhost%26x-id%3DGetObject?table=block&id=ddec4f2d-6afa-498f-8141-405647e02ea5&cache=v2'
23
+ ];
24
+ for (const url of fixtures) {
25
+ const normalizedUrl = normalizeUrl(url);
26
+ t.truthy(normalizedUrl);
27
+ t.snapshot(normalizedUrl);
28
+ }
29
+ });
30
+ //# sourceMappingURL=normalize-url.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-url.test.js","sourceRoot":"","sources":["../src/normalize-url.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAA;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE;IACjC,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IACxB,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAC1B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAA;IAClC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAA;AACvC,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/B,MAAM,QAAQ,GAAG;QACf,UAAU;QACV,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,sBAAsB;QACtB,0BAA0B;QAC1B,2BAA2B;QAC3B,0CAA0C;QAC1C,8jBAA8jB;KAC/jB,CAAA;IAED,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;QAC1B,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACvB,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;KAC1B;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Robustly extracts the notion page ID from a notion URL or pathname suffix.
3
+ *
4
+ * Defaults to returning a UUID (with dashes).
5
+ */
6
+ export declare const parsePageId: (id?: string | null, { uuid }?: {
7
+ uuid?: boolean;
8
+ }) => string;
9
+ //# sourceMappingURL=parse-page-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-page-id.d.ts","sourceRoot":"","sources":["../src/parse-page-id.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAClB,MAAM,GAAG,IAAI;WACS,OAAO;YAmBlC,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { idToUuid } from './id-to-uuid';
2
+ const pageIdRe = /\b([a-f0-9]{32})\b/;
3
+ const pageId2Re = /\b([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})\b/;
4
+ /**
5
+ * Robustly extracts the notion page ID from a notion URL or pathname suffix.
6
+ *
7
+ * Defaults to returning a UUID (with dashes).
8
+ */
9
+ export const parsePageId = (id = '', { uuid = true } = {}) => {
10
+ if (!id) {
11
+ return null;
12
+ }
13
+ id = id.split('?')[0];
14
+ const match = id.match(pageIdRe);
15
+ if (match) {
16
+ return uuid ? idToUuid(match[1]) : match[1];
17
+ }
18
+ const match2 = id.match(pageId2Re);
19
+ if (match2) {
20
+ return uuid ? match2[1] : match2[1].replace(/-/g, '');
21
+ }
22
+ return null;
23
+ };
24
+ //# sourceMappingURL=parse-page-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-page-id.js","sourceRoot":"","sources":["../src/parse-page-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,MAAM,QAAQ,GAAG,oBAAoB,CAAA;AACrC,MAAM,SAAS,GACb,oEAAoE,CAAA;AAEtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAoB,EAAE,EACtB,EAAE,IAAI,GAAG,IAAI,KAAyB,EAAE,EACxC,EAAE;IACF,IAAI,CAAC,EAAE,EAAE;QACP,OAAO,IAAI,CAAA;KACZ;IAED,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACrB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAEhC,IAAI,KAAK,EAAE;QACT,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KAC5C;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAClC,IAAI,MAAM,EAAE;QACV,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;KACtD;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parse-page-id.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-page-id.test.d.ts","sourceRoot":"","sources":["../src/parse-page-id.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
1
+ import test from 'ava';
2
+ import { parsePageId } from './parse-page-id';
3
+ const pageIdFixturesSuccess = [
4
+ '267c0d1f1df8457f9b5c8f7efca16d83',
5
+ 'Twitter-Automation-Tool-267c0d1f1df8457f9b5c8f7efca16d83',
6
+ 'www.notion.so/saasifysh/Twitter-Automation-Tool-267c0d1f1df8457f9b5c8f7efca16d83',
7
+ 'www.notion.so/saasifysh/Twitter-Automation-Tool-267c0d1f1df8457f9b5c8f7efca16d83?foo=bar&bar=foo',
8
+ 'https://www.notion.so/saasifysh/Standalone-Notion-Hosting-717a3608b1874cc5bafb5b9680b53395',
9
+ 'Standalone-Notion-Hosting-717a3608b1874cc5bafb5b9680b53395',
10
+ 'Standalone-Notion-Hosting-717a3608b1874cc5bafb5b9680b53395?foo',
11
+ '-717a3608b1874cc5bafb5b9680b53395',
12
+ '717a3608b1874cc5bafb5b9680b53395',
13
+ '717a3608b1874cc5bafb5b9680b53395?',
14
+ 'e5a735e3-3baa-458b-9889-93b55a54ee54',
15
+ 'fde5ac74-eea3-4527-8f00-4482710e1af3',
16
+ 'about-e5a735e3-3baa-458b-9889-93b55a54ee54',
17
+ '.com/about-e5a735e3-3baa-458b-9889-93b55a54ee54',
18
+ 'About-d9ae0c6e7cad49a78e21d240cf2e3d04'
19
+ ];
20
+ const pageIdFixturesFailure = [
21
+ '717A3608b1874CC5bafb5b9680b53395',
22
+ '717A36',
23
+ '',
24
+ 'notion.so/saasifysh/Twitter-Automation-Tool-267c0d1f1df8457f9b5c8f7efca16d83abc',
25
+ 'a267c0d1f1df8457f9b5c8f7efca16d83',
26
+ '267c0d1f1df8457f9b5c8f7efca16d83a',
27
+ '267c0d1f1%f8457f9b5c8f7efca16d83',
28
+ 'Twitter-Automation-Tool',
29
+ 'fde5ac74-eea3-4527-8f00-4482710e1af',
30
+ null
31
+ ];
32
+ test('utils.parsePageId non-uuid success', (t) => {
33
+ for (const id of pageIdFixturesSuccess) {
34
+ const pageId = parsePageId(id, { uuid: false });
35
+ t.truthy(pageId);
36
+ t.falsy(pageId.includes('-'));
37
+ t.snapshot(pageId);
38
+ }
39
+ });
40
+ test('utils.parsePageId uuid success', (t) => {
41
+ for (const id of pageIdFixturesSuccess) {
42
+ const pageId = parsePageId(id, { uuid: true });
43
+ t.truthy(pageId);
44
+ t.truthy(pageId.includes('-'));
45
+ t.snapshot(pageId);
46
+ }
47
+ });
48
+ test('utils.parsePageId failure', (t) => {
49
+ for (const id of pageIdFixturesFailure) {
50
+ const pageId = parsePageId(id);
51
+ t.falsy(pageId);
52
+ }
53
+ });
54
+ //# sourceMappingURL=parse-page-id.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-page-id.test.js","sourceRoot":"","sources":["../src/parse-page-id.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAA;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,MAAM,qBAAqB,GAAG;IAC5B,kCAAkC;IAClC,0DAA0D;IAC1D,kFAAkF;IAClF,kGAAkG;IAClG,4FAA4F;IAC5F,4DAA4D;IAC5D,gEAAgE;IAChE,mCAAmC;IACnC,kCAAkC;IAClC,mCAAmC;IACnC,sCAAsC;IACtC,sCAAsC;IACtC,4CAA4C;IAC5C,iDAAiD;IACjD,wCAAwC;CACzC,CAAA;AAED,MAAM,qBAAqB,GAAG;IAC5B,kCAAkC;IAClC,QAAQ;IACR,EAAE;IACF,iFAAiF;IACjF,mCAAmC;IACnC,mCAAmC;IACnC,kCAAkC;IAClC,yBAAyB;IACzB,qCAAqC;IACrC,IAAI;CACL,CAAA;AAED,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/C,KAAK,MAAM,EAAE,IAAI,qBAAqB,EAAE;QACtC,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC/C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAChB,CAAC,CAAC,KAAK,CAAE,MAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QACzC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KACnB;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3C,KAAK,MAAM,EAAE,IAAI,qBAAqB,EAAE;QACtC,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAChB,CAAC,CAAC,MAAM,CAAE,MAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KACnB;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,EAAE;IACtC,KAAK,MAAM,EAAE,IAAI,qBAAqB,EAAE;QACtC,MAAM,MAAM,GAAG,WAAW,CAAC,EAAY,CAAC,CAAA;QACxC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KAChB;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const uuidToId: (uuid: string) => string;
2
+ //# sourceMappingURL=uuid-to-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-to-id.d.ts","sourceRoot":"","sources":["../src/uuid-to-id.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,SAAU,MAAM,WAA2B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const uuidToId = (uuid) => uuid.replace(/-/g, '');
2
+ //# sourceMappingURL=uuid-to-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-to-id.js","sourceRoot":"","sources":["../src/uuid-to-id.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA"}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "notion-utility-personal",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "description": "Useful utilities for working with data. Isomorphic.",
6
+ "main": "./build/index.js",
7
+ "module": "./build/index.js",
8
+ "types": "./build/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./build/index.d.ts",
12
+ "default": "./build/index.js"
13
+ }
14
+ },
15
+ "sideEffects": false,
16
+ "files": [
17
+ "build"
18
+ ],
19
+ "engines": {
20
+ "node": ">=12"
21
+ },
22
+ "scripts": {
23
+ "build:tsc": "tsc --build",
24
+ "test": "ava"
25
+ },
26
+ "author": "Asha",
27
+ "license": "ISC",
28
+ "dependencies": {
29
+ "is-url-superb": "^6.1.0",
30
+ "mem": "^9.0.2",
31
+ "normalize-url": "^8.0.0",
32
+ "notion-types-personal": "^1.0.0",
33
+ "p-queue": "^7.3.4"
34
+ },
35
+ "devDependencies": {
36
+ "ava": "^5.3.1",
37
+ "tsup": "^7.1.0",
38
+ "typescript": "^5.1.6"
39
+ },
40
+ "ava": {
41
+ "snapshotDir": ".snapshots",
42
+ "extensions": {
43
+ "ts": "module"
44
+ },
45
+ "nodeArguments": [
46
+ "--loader=ts-node/esm",
47
+ "--no-warnings",
48
+ "--experimental-specifier-resolution=node"
49
+ ]
50
+ }
51
+ }