@herowcode/utils 1.3.5 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.cjs +12 -0
- package/dist/api/index.cjs.map +1 -0
- package/dist/api/{client.d.ts → index.d.mts} +19 -8
- package/dist/api/index.d.ts +36 -3
- package/dist/api/index.js +3 -0
- package/dist/api/index.js.map +1 -0
- package/dist/array/index.cjs +16 -0
- package/dist/array/index.cjs.map +1 -0
- package/dist/array/index.d.mts +5 -0
- package/dist/array/index.d.ts +5 -3
- package/dist/array/index.js +3 -0
- package/dist/array/index.js.map +1 -0
- package/dist/chunk-2MANLCNG.cjs +23 -0
- package/dist/chunk-2MANLCNG.cjs.map +1 -0
- package/dist/chunk-2RTW37WD.js +20 -0
- package/dist/chunk-2RTW37WD.js.map +1 -0
- package/dist/chunk-2Y6M7IOG.js +250 -0
- package/dist/chunk-2Y6M7IOG.js.map +1 -0
- package/dist/chunk-3JUB2OJL.js +3 -0
- package/dist/chunk-3JUB2OJL.js.map +1 -0
- package/dist/chunk-53JMVGIG.js +187 -0
- package/dist/chunk-53JMVGIG.js.map +1 -0
- package/dist/chunk-56NHIM5J.js +151 -0
- package/dist/chunk-56NHIM5J.js.map +1 -0
- package/dist/chunk-5OLQJUNS.js +66 -0
- package/dist/chunk-5OLQJUNS.js.map +1 -0
- package/dist/chunk-5YOEKMTJ.cjs +321 -0
- package/dist/chunk-5YOEKMTJ.cjs.map +1 -0
- package/dist/chunk-6TWPZ6LL.cjs +4 -0
- package/dist/chunk-6TWPZ6LL.cjs.map +1 -0
- package/dist/chunk-AQZBHMTO.js +96 -0
- package/dist/chunk-AQZBHMTO.js.map +1 -0
- package/dist/chunk-ATWN4SRX.js +29 -0
- package/dist/chunk-ATWN4SRX.js.map +1 -0
- package/dist/chunk-GRSF4RY2.cjs +20 -0
- package/dist/chunk-GRSF4RY2.cjs.map +1 -0
- package/dist/chunk-GX5E5B4L.cjs +70 -0
- package/dist/chunk-GX5E5B4L.cjs.map +1 -0
- package/dist/chunk-HK727IAV.cjs +201 -0
- package/dist/chunk-HK727IAV.cjs.map +1 -0
- package/dist/chunk-LJ6KOZD4.cjs +154 -0
- package/dist/chunk-LJ6KOZD4.cjs.map +1 -0
- package/dist/chunk-N2DRAZ3A.cjs +29 -0
- package/dist/chunk-N2DRAZ3A.cjs.map +1 -0
- package/dist/chunk-O7SH3E3T.js +18 -0
- package/dist/chunk-O7SH3E3T.js.map +1 -0
- package/dist/chunk-P5YNRND6.cjs +4 -0
- package/dist/chunk-P5YNRND6.cjs.map +1 -0
- package/dist/chunk-QAE6Q2SA.js +317 -0
- package/dist/chunk-QAE6Q2SA.js.map +1 -0
- package/dist/chunk-QRXVUXGJ.js +378 -0
- package/dist/chunk-QRXVUXGJ.js.map +1 -0
- package/dist/chunk-SLYUARZG.cjs +99 -0
- package/dist/chunk-SLYUARZG.cjs.map +1 -0
- package/dist/chunk-SWRIT7EE.js +3 -0
- package/dist/chunk-SWRIT7EE.js.map +1 -0
- package/dist/chunk-UXEUYHBD.cjs +401 -0
- package/dist/chunk-UXEUYHBD.cjs.map +1 -0
- package/dist/chunk-V6OKXUBQ.js +22 -0
- package/dist/chunk-V6OKXUBQ.js.map +1 -0
- package/dist/chunk-VAZJXZU5.cjs +31 -0
- package/dist/chunk-VAZJXZU5.cjs.map +1 -0
- package/dist/chunk-WGSFRFRO.cjs +252 -0
- package/dist/chunk-WGSFRFRO.cjs.map +1 -0
- package/dist/date/index.cjs +56 -0
- package/dist/date/index.cjs.map +1 -0
- package/dist/date/index.d.mts +63 -0
- package/dist/date/index.d.ts +63 -8
- package/dist/date/index.js +3 -0
- package/dist/date/index.js.map +1 -0
- package/dist/extract-youtube-video-id-HSYMYXIZ.js +3 -0
- package/dist/extract-youtube-video-id-HSYMYXIZ.js.map +1 -0
- package/dist/extract-youtube-video-id-XVGNPUDX.cjs +12 -0
- package/dist/extract-youtube-video-id-XVGNPUDX.cjs.map +1 -0
- package/dist/files/index.browser.cjs +21 -0
- package/dist/files/index.browser.cjs.map +1 -0
- package/dist/files/index.browser.d.mts +14 -0
- package/dist/files/index.browser.d.ts +14 -0
- package/dist/files/index.browser.js +4 -0
- package/dist/files/index.browser.js.map +1 -0
- package/dist/files/index.cjs +31 -0
- package/dist/files/index.cjs.map +1 -0
- package/dist/files/index.d.mts +3 -0
- package/dist/files/index.d.ts +3 -6
- package/dist/files/index.js +6 -0
- package/dist/files/index.js.map +1 -0
- package/dist/files/index.node.cjs +21 -0
- package/dist/files/index.node.cjs.map +1 -0
- package/dist/files/index.node.d.mts +7 -0
- package/dist/files/index.node.d.ts +7 -0
- package/dist/files/index.node.js +4 -0
- package/dist/files/index.node.js.map +1 -0
- package/dist/format-bytes-BGjeDnvM.d.mts +3 -0
- package/dist/format-bytes-BGjeDnvM.d.ts +3 -0
- package/dist/function/index.cjs +20 -0
- package/dist/function/index.cjs.map +1 -0
- package/dist/function/index.d.mts +22 -0
- package/dist/function/index.d.ts +22 -4
- package/dist/function/index.js +3 -0
- package/dist/function/index.js.map +1 -0
- package/dist/index.cjs +188 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +12 -0
- package/dist/index.d.ts +12 -8
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/nextjs/index.browser.cjs +110 -0
- package/dist/nextjs/index.browser.cjs.map +1 -0
- package/dist/nextjs/index.browser.d.mts +10 -0
- package/dist/nextjs/index.browser.d.ts +10 -0
- package/dist/nextjs/index.browser.js +103 -0
- package/dist/nextjs/index.browser.js.map +1 -0
- package/dist/string/index.cjs +60 -0
- package/dist/string/index.cjs.map +1 -0
- package/dist/string/index.d.mts +28 -0
- package/dist/string/index.d.ts +28 -14
- package/dist/string/index.js +3 -0
- package/dist/string/index.js.map +1 -0
- package/dist/{cjs/function/try-catch.d.ts → try-catch-B7WzqcPU.d.mts} +4 -4
- package/dist/{function/try-catch.d.ts → try-catch-B7WzqcPU.d.ts} +4 -4
- package/dist/youtube/index.browser.cjs +35 -0
- package/dist/youtube/index.browser.cjs.map +1 -0
- package/dist/youtube/index.browser.d.mts +2 -0
- package/dist/youtube/index.browser.d.ts +2 -0
- package/dist/youtube/index.browser.js +6 -0
- package/dist/youtube/index.browser.js.map +1 -0
- package/dist/youtube/index.cjs +36 -0
- package/dist/youtube/index.cjs.map +1 -0
- package/dist/youtube/index.d.mts +12 -0
- package/dist/youtube/index.d.ts +12 -7
- package/dist/youtube/index.js +7 -0
- package/dist/youtube/index.js.map +1 -0
- package/dist/youtube/index.node.cjs +26 -0
- package/dist/youtube/index.node.cjs.map +1 -0
- package/dist/youtube/index.node.d.mts +49 -0
- package/dist/youtube/index.node.d.ts +49 -0
- package/dist/youtube/index.node.js +5 -0
- package/dist/youtube/index.node.js.map +1 -0
- package/package.json +164 -49
- package/dist/api/client.d.ts.map +0 -1
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/wrapper.d.ts +0 -27
- package/dist/api/wrapper.d.ts.map +0 -1
- package/dist/array/index.d.ts.map +0 -1
- package/dist/array/shuffle.d.ts +0 -2
- package/dist/array/shuffle.d.ts.map +0 -1
- package/dist/array/unique.d.ts +0 -2
- package/dist/array/unique.d.ts.map +0 -1
- package/dist/cjs/api/client.d.ts +0 -25
- package/dist/cjs/api/client.d.ts.map +0 -1
- package/dist/cjs/api/client.js +0 -148
- package/dist/cjs/api/client.js.map +0 -1
- package/dist/cjs/api/index.d.ts +0 -3
- package/dist/cjs/api/index.d.ts.map +0 -1
- package/dist/cjs/api/index.js +0 -6
- package/dist/cjs/api/index.js.map +0 -1
- package/dist/cjs/api/wrapper.d.ts +0 -27
- package/dist/cjs/api/wrapper.d.ts.map +0 -1
- package/dist/cjs/api/wrapper.js +0 -152
- package/dist/cjs/api/wrapper.js.map +0 -1
- package/dist/cjs/array/index.d.ts +0 -3
- package/dist/cjs/array/index.d.ts.map +0 -1
- package/dist/cjs/array/index.js +0 -19
- package/dist/cjs/array/index.js.map +0 -1
- package/dist/cjs/array/shuffle.d.ts +0 -2
- package/dist/cjs/array/shuffle.d.ts.map +0 -1
- package/dist/cjs/array/shuffle.js +0 -16
- package/dist/cjs/array/shuffle.js.map +0 -1
- package/dist/cjs/array/unique.d.ts +0 -2
- package/dist/cjs/array/unique.d.ts.map +0 -1
- package/dist/cjs/array/unique.js +0 -7
- package/dist/cjs/array/unique.js.map +0 -1
- package/dist/cjs/array.js +0 -1
- package/dist/cjs/date/dayjs.d.ts +0 -20
- package/dist/cjs/date/dayjs.d.ts.map +0 -1
- package/dist/cjs/date/dayjs.js +0 -123
- package/dist/cjs/date/dayjs.js.map +0 -1
- package/dist/cjs/date/fix-timezone-offset.d.ts +0 -3
- package/dist/cjs/date/fix-timezone-offset.d.ts.map +0 -1
- package/dist/cjs/date/fix-timezone-offset.js +0 -9
- package/dist/cjs/date/fix-timezone-offset.js.map +0 -1
- package/dist/cjs/date/format-date.d.ts +0 -23
- package/dist/cjs/date/format-date.d.ts.map +0 -1
- package/dist/cjs/date/format-date.js +0 -71
- package/dist/cjs/date/format-date.js.map +0 -1
- package/dist/cjs/date/get-current-date-in-utc.d.ts +0 -3
- package/dist/cjs/date/get-current-date-in-utc.d.ts.map +0 -1
- package/dist/cjs/date/get-current-date-in-utc.js +0 -8
- package/dist/cjs/date/get-current-date-in-utc.js.map +0 -1
- package/dist/cjs/date/get-date-in-utc.d.ts +0 -3
- package/dist/cjs/date/get-date-in-utc.d.ts.map +0 -1
- package/dist/cjs/date/get-date-in-utc.js +0 -8
- package/dist/cjs/date/get-date-in-utc.js.map +0 -1
- package/dist/cjs/date/get-relative-time.d.ts +0 -3
- package/dist/cjs/date/get-relative-time.d.ts.map +0 -1
- package/dist/cjs/date/get-relative-time.js +0 -8
- package/dist/cjs/date/get-relative-time.js.map +0 -1
- package/dist/cjs/date/index.d.ts +0 -8
- package/dist/cjs/date/index.d.ts.map +0 -1
- package/dist/cjs/date/index.js +0 -24
- package/dist/cjs/date/index.js.map +0 -1
- package/dist/cjs/date/parse-time-spent.d.ts +0 -15
- package/dist/cjs/date/parse-time-spent.d.ts.map +0 -1
- package/dist/cjs/date/parse-time-spent.js +0 -207
- package/dist/cjs/date/parse-time-spent.js.map +0 -1
- package/dist/cjs/date.js +0 -1
- package/dist/cjs/files/compress-image.d.ts +0 -10
- package/dist/cjs/files/compress-image.d.ts.map +0 -1
- package/dist/cjs/files/compress-image.js +0 -61
- package/dist/cjs/files/compress-image.js.map +0 -1
- package/dist/cjs/files/download-url.d.ts +0 -2
- package/dist/cjs/files/download-url.d.ts.map +0 -1
- package/dist/cjs/files/download-url.js +0 -29
- package/dist/cjs/files/download-url.js.map +0 -1
- package/dist/cjs/files/file-delete.d.ts +0 -2
- package/dist/cjs/files/file-delete.d.ts.map +0 -1
- package/dist/cjs/files/file-delete.js +0 -20
- package/dist/cjs/files/file-delete.js.map +0 -1
- package/dist/cjs/files/file-exists.d.ts +0 -2
- package/dist/cjs/files/file-exists.d.ts.map +0 -1
- package/dist/cjs/files/file-exists.js +0 -18
- package/dist/cjs/files/file-exists.js.map +0 -1
- package/dist/cjs/files/format-bytes.d.ts +0 -2
- package/dist/cjs/files/format-bytes.d.ts.map +0 -1
- package/dist/cjs/files/format-bytes.js +0 -17
- package/dist/cjs/files/format-bytes.js.map +0 -1
- package/dist/cjs/files/index.d.ts +0 -6
- package/dist/cjs/files/index.d.ts.map +0 -1
- package/dist/cjs/files/index.js +0 -22
- package/dist/cjs/files/index.js.map +0 -1
- package/dist/cjs/files.js +0 -1
- package/dist/cjs/function/debounce.d.ts +0 -11
- package/dist/cjs/function/debounce.d.ts.map +0 -1
- package/dist/cjs/function/debounce.js +0 -26
- package/dist/cjs/function/debounce.js.map +0 -1
- package/dist/cjs/function/index.d.ts +0 -4
- package/dist/cjs/function/index.d.ts.map +0 -1
- package/dist/cjs/function/index.js +0 -20
- package/dist/cjs/function/index.js.map +0 -1
- package/dist/cjs/function/throttle.d.ts +0 -10
- package/dist/cjs/function/throttle.d.ts.map +0 -1
- package/dist/cjs/function/throttle.js +0 -36
- package/dist/cjs/function/throttle.js.map +0 -1
- package/dist/cjs/function/try-catch.d.ts.map +0 -1
- package/dist/cjs/function/try-catch.js +0 -39
- package/dist/cjs/function/try-catch.js.map +0 -1
- package/dist/cjs/function.js +0 -1
- package/dist/cjs/index.d.ts +0 -8
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/string/camel-case.d.ts +0 -2
- package/dist/cjs/string/camel-case.d.ts.map +0 -1
- package/dist/cjs/string/camel-case.js +0 -25
- package/dist/cjs/string/camel-case.js.map +0 -1
- package/dist/cjs/string/capitalize.d.ts +0 -2
- package/dist/cjs/string/capitalize.d.ts.map +0 -1
- package/dist/cjs/string/capitalize.js +0 -13
- package/dist/cjs/string/capitalize.js.map +0 -1
- package/dist/cjs/string/format-hms-to-seconds.d.ts +0 -2
- package/dist/cjs/string/format-hms-to-seconds.d.ts.map +0 -1
- package/dist/cjs/string/format-hms-to-seconds.js +0 -30
- package/dist/cjs/string/format-hms-to-seconds.js.map +0 -1
- package/dist/cjs/string/format-seconds-to-fragment.d.ts +0 -3
- package/dist/cjs/string/format-seconds-to-fragment.d.ts.map +0 -1
- package/dist/cjs/string/format-seconds-to-fragment.js +0 -20
- package/dist/cjs/string/format-seconds-to-fragment.js.map +0 -1
- package/dist/cjs/string/format-seconds-to-hms.d.ts +0 -2
- package/dist/cjs/string/format-seconds-to-hms.d.ts.map +0 -1
- package/dist/cjs/string/format-seconds-to-hms.js +0 -17
- package/dist/cjs/string/format-seconds-to-hms.js.map +0 -1
- package/dist/cjs/string/format-string-to-time.d.ts +0 -2
- package/dist/cjs/string/format-string-to-time.d.ts.map +0 -1
- package/dist/cjs/string/format-string-to-time.js +0 -15
- package/dist/cjs/string/format-string-to-time.js.map +0 -1
- package/dist/cjs/string/index.d.ts +0 -14
- package/dist/cjs/string/index.d.ts.map +0 -1
- package/dist/cjs/string/index.js +0 -30
- package/dist/cjs/string/index.js.map +0 -1
- package/dist/cjs/string/kebab-case.d.ts +0 -2
- package/dist/cjs/string/kebab-case.d.ts.map +0 -1
- package/dist/cjs/string/kebab-case.js +0 -15
- package/dist/cjs/string/kebab-case.js.map +0 -1
- package/dist/cjs/string/markdown-to-text.d.ts +0 -2
- package/dist/cjs/string/markdown-to-text.d.ts.map +0 -1
- package/dist/cjs/string/markdown-to-text.js +0 -70
- package/dist/cjs/string/markdown-to-text.js.map +0 -1
- package/dist/cjs/string/remove-html-tags.d.ts +0 -2
- package/dist/cjs/string/remove-html-tags.d.ts.map +0 -1
- package/dist/cjs/string/remove-html-tags.js +0 -18
- package/dist/cjs/string/remove-html-tags.js.map +0 -1
- package/dist/cjs/string/slugify.d.ts +0 -2
- package/dist/cjs/string/slugify.d.ts.map +0 -1
- package/dist/cjs/string/slugify.js +0 -13
- package/dist/cjs/string/slugify.js.map +0 -1
- package/dist/cjs/string/snake-case.d.ts +0 -2
- package/dist/cjs/string/snake-case.d.ts.map +0 -1
- package/dist/cjs/string/snake-case.js +0 -15
- package/dist/cjs/string/snake-case.js.map +0 -1
- package/dist/cjs/string/to-sentence-case.d.ts +0 -2
- package/dist/cjs/string/to-sentence-case.d.ts.map +0 -1
- package/dist/cjs/string/to-sentence-case.js +0 -13
- package/dist/cjs/string/to-sentence-case.js.map +0 -1
- package/dist/cjs/string/truncate.d.ts +0 -2
- package/dist/cjs/string/truncate.d.ts.map +0 -1
- package/dist/cjs/string/truncate.js +0 -19
- package/dist/cjs/string/truncate.js.map +0 -1
- package/dist/cjs/string.js +0 -1
- package/dist/cjs/youtube/extract-youtube-video-id.d.ts +0 -2
- package/dist/cjs/youtube/extract-youtube-video-id.d.ts.map +0 -1
- package/dist/cjs/youtube/extract-youtube-video-id.js +0 -30
- package/dist/cjs/youtube/extract-youtube-video-id.js.map +0 -1
- package/dist/cjs/youtube/generate-youtube-url.d.ts +0 -20
- package/dist/cjs/youtube/generate-youtube-url.d.ts.map +0 -1
- package/dist/cjs/youtube/generate-youtube-url.js +0 -86
- package/dist/cjs/youtube/generate-youtube-url.js.map +0 -1
- package/dist/cjs/youtube/get-video-duration.d.ts +0 -7
- package/dist/cjs/youtube/get-video-duration.d.ts.map +0 -1
- package/dist/cjs/youtube/get-video-duration.js +0 -150
- package/dist/cjs/youtube/get-video-duration.js.map +0 -1
- package/dist/cjs/youtube/get-youtube-thumbnail.d.ts +0 -2
- package/dist/cjs/youtube/get-youtube-thumbnail.d.ts.map +0 -1
- package/dist/cjs/youtube/get-youtube-thumbnail.js +0 -68
- package/dist/cjs/youtube/get-youtube-thumbnail.js.map +0 -1
- package/dist/cjs/youtube/get-youtube-video-info.d.ts +0 -26
- package/dist/cjs/youtube/get-youtube-video-info.d.ts.map +0 -1
- package/dist/cjs/youtube/get-youtube-video-info.js +0 -244
- package/dist/cjs/youtube/get-youtube-video-info.js.map +0 -1
- package/dist/cjs/youtube/index.d.ts +0 -7
- package/dist/cjs/youtube/index.d.ts.map +0 -1
- package/dist/cjs/youtube/index.js +0 -23
- package/dist/cjs/youtube/index.js.map +0 -1
- package/dist/cjs/youtube/validate-youtube-link.d.ts +0 -2
- package/dist/cjs/youtube/validate-youtube-link.d.ts.map +0 -1
- package/dist/cjs/youtube/validate-youtube-link.js +0 -77
- package/dist/cjs/youtube/validate-youtube-link.js.map +0 -1
- package/dist/cjs/youtube.js +0 -1
- package/dist/date/dayjs.d.ts +0 -20
- package/dist/date/dayjs.d.ts.map +0 -1
- package/dist/date/fix-timezone-offset.d.ts +0 -3
- package/dist/date/fix-timezone-offset.d.ts.map +0 -1
- package/dist/date/format-date.d.ts +0 -23
- package/dist/date/format-date.d.ts.map +0 -1
- package/dist/date/get-current-date-in-utc.d.ts +0 -3
- package/dist/date/get-current-date-in-utc.d.ts.map +0 -1
- package/dist/date/get-date-in-utc.d.ts +0 -3
- package/dist/date/get-date-in-utc.d.ts.map +0 -1
- package/dist/date/get-relative-time.d.ts +0 -3
- package/dist/date/get-relative-time.d.ts.map +0 -1
- package/dist/date/index.d.ts.map +0 -1
- package/dist/date/parse-time-spent.d.ts +0 -15
- package/dist/date/parse-time-spent.d.ts.map +0 -1
- package/dist/esm/api/client.js +0 -143
- package/dist/esm/api/index.js +0 -1
- package/dist/esm/api/wrapper.js +0 -148
- package/dist/esm/array/index.js +0 -2
- package/dist/esm/array/shuffle.js +0 -12
- package/dist/esm/array/unique.js +0 -3
- package/dist/esm/array.js +0 -1
- package/dist/esm/date/dayjs.js +0 -111
- package/dist/esm/date/fix-timezone-offset.js +0 -5
- package/dist/esm/date/format-date.js +0 -67
- package/dist/esm/date/get-current-date-in-utc.js +0 -4
- package/dist/esm/date/get-date-in-utc.js +0 -4
- package/dist/esm/date/get-relative-time.js +0 -4
- package/dist/esm/date/index.js +0 -7
- package/dist/esm/date/parse-time-spent.js +0 -203
- package/dist/esm/date.js +0 -1
- package/dist/esm/files/compress-image.js +0 -57
- package/dist/esm/files/download-url.js +0 -24
- package/dist/esm/files/file-delete.js +0 -12
- package/dist/esm/files/file-exists.js +0 -10
- package/dist/esm/files/format-bytes.js +0 -13
- package/dist/esm/files/index.js +0 -5
- package/dist/esm/files.js +0 -1
- package/dist/esm/function/debounce.js +0 -22
- package/dist/esm/function/index.js +0 -3
- package/dist/esm/function/throttle.js +0 -32
- package/dist/esm/function/try-catch.js +0 -35
- package/dist/esm/function.js +0 -1
- package/dist/esm/index.js +0 -7
- package/dist/esm/string/camel-case.js +0 -21
- package/dist/esm/string/capitalize.js +0 -9
- package/dist/esm/string/format-hms-to-seconds.js +0 -25
- package/dist/esm/string/format-seconds-to-fragment.js +0 -15
- package/dist/esm/string/format-seconds-to-hms.js +0 -13
- package/dist/esm/string/format-string-to-time.js +0 -10
- package/dist/esm/string/index.js +0 -13
- package/dist/esm/string/kebab-case.js +0 -11
- package/dist/esm/string/markdown-to-text.js +0 -66
- package/dist/esm/string/remove-html-tags.js +0 -14
- package/dist/esm/string/slugify.js +0 -9
- package/dist/esm/string/snake-case.js +0 -11
- package/dist/esm/string/to-sentence-case.js +0 -9
- package/dist/esm/string/truncate.js +0 -15
- package/dist/esm/string.js +0 -1
- package/dist/esm/youtube/extract-youtube-video-id.js +0 -26
- package/dist/esm/youtube/generate-youtube-url.js +0 -81
- package/dist/esm/youtube/get-video-duration.js +0 -146
- package/dist/esm/youtube/get-youtube-thumbnail.js +0 -31
- package/dist/esm/youtube/get-youtube-video-info.js +0 -207
- package/dist/esm/youtube/index.js +0 -6
- package/dist/esm/youtube/validate-youtube-link.js +0 -40
- package/dist/esm/youtube.js +0 -1
- package/dist/files/compress-image.d.ts +0 -10
- package/dist/files/compress-image.d.ts.map +0 -1
- package/dist/files/download-url.d.ts +0 -2
- package/dist/files/download-url.d.ts.map +0 -1
- package/dist/files/file-delete.d.ts +0 -2
- package/dist/files/file-delete.d.ts.map +0 -1
- package/dist/files/file-exists.d.ts +0 -2
- package/dist/files/file-exists.d.ts.map +0 -1
- package/dist/files/format-bytes.d.ts +0 -2
- package/dist/files/format-bytes.d.ts.map +0 -1
- package/dist/files/index.d.ts.map +0 -1
- package/dist/function/debounce.d.ts +0 -11
- package/dist/function/debounce.d.ts.map +0 -1
- package/dist/function/index.d.ts.map +0 -1
- package/dist/function/throttle.d.ts +0 -10
- package/dist/function/throttle.d.ts.map +0 -1
- package/dist/function/try-catch.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/string/camel-case.d.ts +0 -2
- package/dist/string/camel-case.d.ts.map +0 -1
- package/dist/string/capitalize.d.ts +0 -2
- package/dist/string/capitalize.d.ts.map +0 -1
- package/dist/string/format-hms-to-seconds.d.ts +0 -2
- package/dist/string/format-hms-to-seconds.d.ts.map +0 -1
- package/dist/string/format-seconds-to-fragment.d.ts +0 -3
- package/dist/string/format-seconds-to-fragment.d.ts.map +0 -1
- package/dist/string/format-seconds-to-hms.d.ts +0 -2
- package/dist/string/format-seconds-to-hms.d.ts.map +0 -1
- package/dist/string/format-string-to-time.d.ts +0 -2
- package/dist/string/format-string-to-time.d.ts.map +0 -1
- package/dist/string/index.d.ts.map +0 -1
- package/dist/string/kebab-case.d.ts +0 -2
- package/dist/string/kebab-case.d.ts.map +0 -1
- package/dist/string/markdown-to-text.d.ts +0 -2
- package/dist/string/markdown-to-text.d.ts.map +0 -1
- package/dist/string/remove-html-tags.d.ts +0 -2
- package/dist/string/remove-html-tags.d.ts.map +0 -1
- package/dist/string/slugify.d.ts +0 -2
- package/dist/string/slugify.d.ts.map +0 -1
- package/dist/string/snake-case.d.ts +0 -2
- package/dist/string/snake-case.d.ts.map +0 -1
- package/dist/string/to-sentence-case.d.ts +0 -2
- package/dist/string/to-sentence-case.d.ts.map +0 -1
- package/dist/string/truncate.d.ts +0 -2
- package/dist/string/truncate.d.ts.map +0 -1
- package/dist/youtube/extract-youtube-video-id.d.ts +0 -2
- package/dist/youtube/extract-youtube-video-id.d.ts.map +0 -1
- package/dist/youtube/generate-youtube-url.d.ts +0 -20
- package/dist/youtube/generate-youtube-url.d.ts.map +0 -1
- package/dist/youtube/get-video-duration.d.ts +0 -7
- package/dist/youtube/get-video-duration.d.ts.map +0 -1
- package/dist/youtube/get-youtube-thumbnail.d.ts +0 -2
- package/dist/youtube/get-youtube-thumbnail.d.ts.map +0 -1
- package/dist/youtube/get-youtube-video-info.d.ts +0 -26
- package/dist/youtube/get-youtube-video-info.d.ts.map +0 -1
- package/dist/youtube/index.d.ts.map +0 -1
- package/dist/youtube/validate-youtube-link.d.ts +0 -2
- package/dist/youtube/validate-youtube-link.d.ts.map +0 -1
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.getYoutubeVideoInfo = getYoutubeVideoInfo;
|
|
37
|
-
const videoInfoCache = new Map();
|
|
38
|
-
async function getYoutubeVideoInfo(videoUrl) {
|
|
39
|
-
const { extractYouTubeId } = await Promise.resolve().then(() => __importStar(require("./extract-youtube-video-id")));
|
|
40
|
-
const videoId = extractYouTubeId(videoUrl);
|
|
41
|
-
if (!videoId)
|
|
42
|
-
return null;
|
|
43
|
-
const cached = videoInfoCache.get(videoId);
|
|
44
|
-
if (cached)
|
|
45
|
-
return cached;
|
|
46
|
-
const fetchPromise = fetchYoutubeVideoInfo(videoId);
|
|
47
|
-
videoInfoCache.set(videoId, fetchPromise);
|
|
48
|
-
const info = await fetchPromise;
|
|
49
|
-
if (!info) {
|
|
50
|
-
videoInfoCache.delete(videoId);
|
|
51
|
-
}
|
|
52
|
-
return info;
|
|
53
|
-
}
|
|
54
|
-
async function fetchYoutubeVideoInfo(videoId) {
|
|
55
|
-
const watchUrl = `https://www.youtube.com/watch?v=${encodeURIComponent(videoId)}`;
|
|
56
|
-
const htmlInfo = await fetchFromWatchPage(videoId, watchUrl);
|
|
57
|
-
if (htmlInfo)
|
|
58
|
-
return htmlInfo;
|
|
59
|
-
const oEmbedInfo = await fetchFromOEmbed(videoId, watchUrl);
|
|
60
|
-
if (oEmbedInfo)
|
|
61
|
-
return oEmbedInfo;
|
|
62
|
-
const noEmbedInfo = await fetchFromNoEmbed(videoId, watchUrl);
|
|
63
|
-
if (noEmbedInfo)
|
|
64
|
-
return noEmbedInfo;
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
async function fetchFromWatchPage(videoId, watchUrl) {
|
|
68
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
69
|
-
try {
|
|
70
|
-
const response = await fetch(watchUrl);
|
|
71
|
-
if (!response.ok) {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
const html = await response.text();
|
|
75
|
-
const rawJson = extractJsonBlock(html, "ytInitialPlayerResponse");
|
|
76
|
-
if (!rawJson) {
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
const data = JSON.parse(rawJson);
|
|
80
|
-
const details = data.videoDetails;
|
|
81
|
-
const microformat = (_a = data.microformat) === null || _a === void 0 ? void 0 : _a.playerMicroformatRenderer;
|
|
82
|
-
if (!details && !microformat) {
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
const thumbnails = getThumbnails(details, microformat);
|
|
86
|
-
const bestThumbnail = selectBestThumbnail(thumbnails);
|
|
87
|
-
return {
|
|
88
|
-
id: (_b = details === null || details === void 0 ? void 0 : details.videoId) !== null && _b !== void 0 ? _b : videoId,
|
|
89
|
-
url: watchUrl,
|
|
90
|
-
title: (_d = (_c = details === null || details === void 0 ? void 0 : details.title) !== null && _c !== void 0 ? _c : extractText(microformat === null || microformat === void 0 ? void 0 : microformat.title)) !== null && _d !== void 0 ? _d : "",
|
|
91
|
-
channelTitle: (_f = (_e = details === null || details === void 0 ? void 0 : details.author) !== null && _e !== void 0 ? _e : microformat === null || microformat === void 0 ? void 0 : microformat.ownerChannelName) !== null && _f !== void 0 ? _f : "",
|
|
92
|
-
channelId: (_g = details === null || details === void 0 ? void 0 : details.channelId) !== null && _g !== void 0 ? _g : microformat === null || microformat === void 0 ? void 0 : microformat.externalChannelId,
|
|
93
|
-
channelUrl: microformat === null || microformat === void 0 ? void 0 : microformat.ownerProfileUrl,
|
|
94
|
-
description: (_h = extractText(microformat === null || microformat === void 0 ? void 0 : microformat.description)) !== null && _h !== void 0 ? _h : details === null || details === void 0 ? void 0 : details.shortDescription,
|
|
95
|
-
shortDescription: details === null || details === void 0 ? void 0 : details.shortDescription,
|
|
96
|
-
thumbnails,
|
|
97
|
-
thumbnail: bestThumbnail === null || bestThumbnail === void 0 ? void 0 : bestThumbnail.url,
|
|
98
|
-
publishedAt: (_j = microformat === null || microformat === void 0 ? void 0 : microformat.publishDate) !== null && _j !== void 0 ? _j : microformat === null || microformat === void 0 ? void 0 : microformat.uploadDate,
|
|
99
|
-
uploadedAt: microformat === null || microformat === void 0 ? void 0 : microformat.uploadDate,
|
|
100
|
-
keywords: details === null || details === void 0 ? void 0 : details.keywords,
|
|
101
|
-
viewCount: parseNumber(details === null || details === void 0 ? void 0 : details.viewCount),
|
|
102
|
-
lengthSeconds: parseNumber(details === null || details === void 0 ? void 0 : details.lengthSeconds),
|
|
103
|
-
isLive: (_k = details === null || details === void 0 ? void 0 : details.isLiveContent) !== null && _k !== void 0 ? _k : (_l = microformat === null || microformat === void 0 ? void 0 : microformat.liveBroadcastDetails) === null || _l === void 0 ? void 0 : _l.isLiveNow,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
catch (_m) {
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
async function fetchFromOEmbed(videoId, watchUrl) {
|
|
111
|
-
var _a;
|
|
112
|
-
try {
|
|
113
|
-
const oEmbedUrl = `https://www.youtube.com/oembed?url=${encodeURIComponent(watchUrl)}&format=json`;
|
|
114
|
-
const response = await fetch(oEmbedUrl);
|
|
115
|
-
if (!response.ok) {
|
|
116
|
-
return null;
|
|
117
|
-
}
|
|
118
|
-
const data = (await response.json());
|
|
119
|
-
if (!(data === null || data === void 0 ? void 0 : data.title) || !(data === null || data === void 0 ? void 0 : data.author_name)) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
const thumbnails = createThumbnailList(data.thumbnail_url, data.thumbnail_width, data.thumbnail_height);
|
|
123
|
-
return {
|
|
124
|
-
id: videoId,
|
|
125
|
-
url: watchUrl,
|
|
126
|
-
title: data.title,
|
|
127
|
-
channelTitle: data.author_name,
|
|
128
|
-
channelUrl: data.author_url,
|
|
129
|
-
thumbnails,
|
|
130
|
-
thumbnail: (_a = thumbnails[0]) === null || _a === void 0 ? void 0 : _a.url,
|
|
131
|
-
description: undefined,
|
|
132
|
-
shortDescription: undefined,
|
|
133
|
-
publishedAt: undefined,
|
|
134
|
-
uploadedAt: undefined,
|
|
135
|
-
keywords: undefined,
|
|
136
|
-
viewCount: undefined,
|
|
137
|
-
lengthSeconds: undefined,
|
|
138
|
-
isLive: undefined,
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
catch (_b) {
|
|
142
|
-
return null;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
async function fetchFromNoEmbed(videoId, watchUrl) {
|
|
146
|
-
var _a;
|
|
147
|
-
try {
|
|
148
|
-
const noEmbedUrl = `https://noembed.com/embed?url=${encodeURIComponent(watchUrl)}`;
|
|
149
|
-
const response = await fetch(noEmbedUrl);
|
|
150
|
-
if (!response.ok) {
|
|
151
|
-
return null;
|
|
152
|
-
}
|
|
153
|
-
const data = (await response.json());
|
|
154
|
-
if (!(data === null || data === void 0 ? void 0 : data.title) || !(data === null || data === void 0 ? void 0 : data.author_name)) {
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
const thumbnails = createThumbnailList(data.thumbnail_url, data.thumbnail_width, data.thumbnail_height);
|
|
158
|
-
return {
|
|
159
|
-
id: videoId,
|
|
160
|
-
url: watchUrl,
|
|
161
|
-
title: data.title,
|
|
162
|
-
channelTitle: data.author_name,
|
|
163
|
-
channelUrl: data.author_url,
|
|
164
|
-
description: data.description,
|
|
165
|
-
shortDescription: data.description,
|
|
166
|
-
thumbnails,
|
|
167
|
-
thumbnail: (_a = thumbnails[0]) === null || _a === void 0 ? void 0 : _a.url,
|
|
168
|
-
publishedAt: data.upload_date,
|
|
169
|
-
uploadedAt: data.upload_date,
|
|
170
|
-
keywords: undefined,
|
|
171
|
-
viewCount: undefined,
|
|
172
|
-
lengthSeconds: undefined,
|
|
173
|
-
isLive: undefined,
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
catch (_b) {
|
|
177
|
-
return null;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
function extractJsonBlock(html, marker) {
|
|
181
|
-
const markerIndex = html.indexOf(marker);
|
|
182
|
-
if (markerIndex === -1)
|
|
183
|
-
return null;
|
|
184
|
-
const jsonStart = html.indexOf("{", markerIndex);
|
|
185
|
-
if (jsonStart === -1)
|
|
186
|
-
return null;
|
|
187
|
-
let depth = 0;
|
|
188
|
-
for (let i = jsonStart; i < html.length; i++) {
|
|
189
|
-
const char = html[i];
|
|
190
|
-
if (char === "{") {
|
|
191
|
-
depth += 1;
|
|
192
|
-
}
|
|
193
|
-
else if (char === "}") {
|
|
194
|
-
depth -= 1;
|
|
195
|
-
}
|
|
196
|
-
if (depth === 0) {
|
|
197
|
-
return html.slice(jsonStart, i + 1);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
return null;
|
|
201
|
-
}
|
|
202
|
-
function getThumbnails(details, microformat) {
|
|
203
|
-
var _a, _b, _c, _d;
|
|
204
|
-
if ((_b = (_a = details === null || details === void 0 ? void 0 : details.thumbnail) === null || _a === void 0 ? void 0 : _a.thumbnails) === null || _b === void 0 ? void 0 : _b.length) {
|
|
205
|
-
return details.thumbnail.thumbnails;
|
|
206
|
-
}
|
|
207
|
-
return (_d = (_c = microformat === null || microformat === void 0 ? void 0 : microformat.thumbnail) === null || _c === void 0 ? void 0 : _c.thumbnails) !== null && _d !== void 0 ? _d : [];
|
|
208
|
-
}
|
|
209
|
-
function selectBestThumbnail(thumbnails) {
|
|
210
|
-
if (!thumbnails.length)
|
|
211
|
-
return undefined;
|
|
212
|
-
return thumbnails.reduce((best, current) => {
|
|
213
|
-
if (!best)
|
|
214
|
-
return current;
|
|
215
|
-
if (!best.width)
|
|
216
|
-
return current;
|
|
217
|
-
if (!current.width)
|
|
218
|
-
return best;
|
|
219
|
-
return current.width > best.width ? current : best;
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
function extractText(field) {
|
|
223
|
-
var _a;
|
|
224
|
-
if (!field)
|
|
225
|
-
return undefined;
|
|
226
|
-
if (field.simpleText)
|
|
227
|
-
return field.simpleText;
|
|
228
|
-
if ((_a = field.runs) === null || _a === void 0 ? void 0 : _a.length) {
|
|
229
|
-
return field.runs.map((run) => { var _a; return (_a = run.text) !== null && _a !== void 0 ? _a : ""; }).join("");
|
|
230
|
-
}
|
|
231
|
-
return undefined;
|
|
232
|
-
}
|
|
233
|
-
function parseNumber(value) {
|
|
234
|
-
if (value === undefined)
|
|
235
|
-
return undefined;
|
|
236
|
-
const parsed = Number(value);
|
|
237
|
-
return Number.isNaN(parsed) ? undefined : parsed;
|
|
238
|
-
}
|
|
239
|
-
function createThumbnailList(url, width, height) {
|
|
240
|
-
if (!url)
|
|
241
|
-
return [];
|
|
242
|
-
return [{ url, width, height }];
|
|
243
|
-
}
|
|
244
|
-
//# sourceMappingURL=get-youtube-video-info.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-youtube-video-info.js","sourceRoot":"","sources":["../../../src/youtube/get-youtube-video-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from "./extract-youtube-video-id";
|
|
2
|
-
export * from "./generate-youtube-url";
|
|
3
|
-
export * from "./get-video-duration";
|
|
4
|
-
export * from "./get-youtube-thumbnail";
|
|
5
|
-
export * from "./get-youtube-video-info";
|
|
6
|
-
export * from "./validate-youtube-link";
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/youtube/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./extract-youtube-video-id"), exports);
|
|
18
|
-
__exportStar(require("./generate-youtube-url"), exports);
|
|
19
|
-
__exportStar(require("./get-video-duration"), exports);
|
|
20
|
-
__exportStar(require("./get-youtube-thumbnail"), exports);
|
|
21
|
-
__exportStar(require("./get-youtube-video-info"), exports);
|
|
22
|
-
__exportStar(require("./validate-youtube-link"), exports);
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/youtube/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA0C;AAC1C,yDAAsC;AACtC,uDAAoC;AACpC,0DAAuC;AACvC,2DAAwC;AACxC,0DAAuC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-youtube-link.d.ts","sourceRoot":"","sources":["../../../src/youtube/validate-youtube-link.ts"],"names":[],"mappings":"AAAA,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0C5E"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.validateYoutubeLink = validateYoutubeLink;
|
|
37
|
-
async function validateYoutubeLink(videoUrl) {
|
|
38
|
-
const { extractYouTubeId } = await Promise.resolve().then(() => __importStar(require("./extract-youtube-video-id")));
|
|
39
|
-
const videoId = extractYouTubeId(videoUrl);
|
|
40
|
-
if (!videoId)
|
|
41
|
-
return false;
|
|
42
|
-
// Try loading YouTube thumbnail images — avoids CORS problems because
|
|
43
|
-
// creating an Image and listening for load/error is not blocked by CORS.
|
|
44
|
-
const thumbs = [
|
|
45
|
-
`https://img.youtube.com/vi/${videoId}/maxresdefault.jpg`,
|
|
46
|
-
`https://img.youtube.com/vi/${videoId}/hqdefault.jpg`,
|
|
47
|
-
`https://img.youtube.com/vi/${videoId}/mqdefault.jpg`,
|
|
48
|
-
`https://img.youtube.com/vi/${videoId}/default.jpg`,
|
|
49
|
-
];
|
|
50
|
-
const loadImage = (src) => new Promise((resolve) => {
|
|
51
|
-
const img = new Image();
|
|
52
|
-
img.onload = () => resolve(true);
|
|
53
|
-
img.onerror = () => resolve(false);
|
|
54
|
-
img.src = src;
|
|
55
|
-
});
|
|
56
|
-
for (const url of thumbs) {
|
|
57
|
-
try {
|
|
58
|
-
const ok = await loadImage(url);
|
|
59
|
-
if (ok)
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
catch (_a) {
|
|
63
|
-
// ignore and try next thumbnail
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// Fallback: try oEmbed endpoint (may be subject to CORS in some environments)
|
|
67
|
-
try {
|
|
68
|
-
const watchUrl = `https://www.youtube.com/watch?v=${encodeURIComponent(videoId)}`;
|
|
69
|
-
const oembedUrl = `https://www.youtube.com/oembed?url=${encodeURIComponent(watchUrl)}&format=json`;
|
|
70
|
-
const res = await fetch(oembedUrl, { method: "GET" });
|
|
71
|
-
return res.ok;
|
|
72
|
-
}
|
|
73
|
-
catch (_b) {
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=validate-youtube-link.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-youtube-link.js","sourceRoot":"","sources":["../../../src/youtube/validate-youtube-link.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDA0CC;AA1CM,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACxD,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,4BAA4B,GAAC,CAAA;IACvE,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAE1B,sEAAsE;IACtE,yEAAyE;IACzE,MAAM,MAAM,GAAG;QACb,8BAA8B,OAAO,oBAAoB;QACzD,8BAA8B,OAAO,gBAAgB;QACrD,8BAA8B,OAAO,gBAAgB;QACrD,8BAA8B,OAAO,cAAc;KACpD,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAChC,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;QACvB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAChC,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAClC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IACf,CAAC,CAAC,CAAA;IAEJ,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAA;QACrB,CAAC;QAAC,WAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,mCAAmC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAA;QACjF,MAAM,SAAS,GAAG,sCAAsC,kBAAkB,CACxE,QAAQ,CACT,cAAc,CAAA;QACf,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QACrD,OAAO,GAAG,CAAC,EAAE,CAAA;IACf,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
package/dist/cjs/youtube.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('./youtube/index.js')
|
package/dist/date/dayjs.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import dayJs from "dayjs";
|
|
2
|
-
import "dayjs/locale/en";
|
|
3
|
-
import "dayjs/locale/es";
|
|
4
|
-
import "dayjs/locale/fr";
|
|
5
|
-
import "dayjs/locale/pt-br";
|
|
6
|
-
export interface IDayjsIntlConfig {
|
|
7
|
-
locale?: Intl.LocalesArgument;
|
|
8
|
-
options?: Intl.DateTimeFormatOptions;
|
|
9
|
-
}
|
|
10
|
-
export interface IDayjsIntlResolvedConfig {
|
|
11
|
-
locale: Intl.LocalesArgument;
|
|
12
|
-
options: Intl.DateTimeFormatOptions;
|
|
13
|
-
}
|
|
14
|
-
export declare function getDayjsGlobalIntl(): IDayjsIntlResolvedConfig;
|
|
15
|
-
export declare function setDayjsGlobalIntl(config: IDayjsIntlConfig): IDayjsIntlResolvedConfig;
|
|
16
|
-
export declare function resetDayjsGlobalIntl(): IDayjsIntlResolvedConfig;
|
|
17
|
-
export declare function withDayjsGlobalIntl<T>(config: IDayjsIntlConfig, callback: () => T): T;
|
|
18
|
-
export declare function resolveDayjsIntlConfig(config?: IDayjsIntlConfig): IDayjsIntlResolvedConfig;
|
|
19
|
-
export declare const dayjs: typeof dayJs;
|
|
20
|
-
//# sourceMappingURL=dayjs.d.ts.map
|
package/dist/date/dayjs.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dayjs.d.ts","sourceRoot":"","sources":["../../src/date/dayjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,iBAAiB,CAAA;AACxB,OAAO,iBAAiB,CAAA;AACxB,OAAO,iBAAiB,CAAA;AACxB,OAAO,oBAAoB,CAAA;AAI3B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,CAAA;IAC7B,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAA;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAA;IAC5B,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAA;CACpC;AAuFD,wBAAgB,kBAAkB,IAAI,wBAAwB,CAK7D;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,GACvB,wBAAwB,CAG1B;AAED,wBAAgB,oBAAoB,IAAI,wBAAwB,CAM/D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,CAAC,GAChB,CAAC,CAYH;AAED,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,gBAAgB,GACxB,wBAAwB,CAE1B;AAUD,eAAO,MAAM,KAAK,cAAQ,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fix-timezone-offset.d.ts","sourceRoot":"","sources":["../../src/date/fix-timezone-offset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAIlC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CAG/D"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { IDayjsIntlConfig } from "./dayjs";
|
|
2
|
-
export interface IFormatDateConfig {
|
|
3
|
-
/** Optional locale override applied to the underlying dayjs instance */
|
|
4
|
-
locale?: string;
|
|
5
|
-
/**
|
|
6
|
-
* When provided, format using dayjs tokens (e.g. "DD/MM/YYYY").
|
|
7
|
-
* Unless `useIntl` is true, this takes precedence over Intl formatting.
|
|
8
|
-
*/
|
|
9
|
-
format?: string;
|
|
10
|
-
/**
|
|
11
|
-
* Intl configuration used when formatting through `Intl.DateTimeFormat`.
|
|
12
|
-
* Values are merged on top of the global Intl configuration.
|
|
13
|
-
*/
|
|
14
|
-
intl?: IDayjsIntlConfig;
|
|
15
|
-
/**
|
|
16
|
-
* Forces the use of Intl formatting even if a format string is supplied.
|
|
17
|
-
*/
|
|
18
|
-
useIntl?: boolean;
|
|
19
|
-
}
|
|
20
|
-
type TLocaleOrConfig = Intl.LocalesArgument | IFormatDateConfig;
|
|
21
|
-
export declare function formatDate(date: Date | string | number, localeOrConfig?: TLocaleOrConfig, opts?: Intl.DateTimeFormatOptions): string;
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=format-date.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format-date.d.ts","sourceRoot":"","sources":["../../src/date/format-date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAG/C,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAA;IACvB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,KAAK,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAA;AAqC/D,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAC5B,cAAc,GAAE,eAA6C,EAC7D,IAAI,CAAC,EAAE,IAAI,CAAC,qBAAqB,GAChC,MAAM,CAkDR"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-current-date-in-utc.d.ts","sourceRoot":"","sources":["../../src/date/get-current-date-in-utc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAIlC,wBAAgB,mBAAmB,IAAI,KAAK,CAE3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-date-in-utc.d.ts","sourceRoot":"","sources":["../../src/date/get-date-in-utc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAIlC,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAE9C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-relative-time.d.ts","sourceRoot":"","sources":["../../src/date/get-relative-time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGvC,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,wBAAU,GAAG,MAAM,CAE3E"}
|
package/dist/date/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/date/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,uBAAuB,CAAA;AACrC,cAAc,eAAe,CAAA;AAC7B,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface ITimeSpent {
|
|
2
|
-
years: number;
|
|
3
|
-
months: number;
|
|
4
|
-
days: number;
|
|
5
|
-
hours: number;
|
|
6
|
-
minutes: number;
|
|
7
|
-
seconds: number;
|
|
8
|
-
formatted: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function parseTimeSpent(initialDate: string | Date, finalDate: string | Date, locale?: string, // Default to Portuguese for backward compatibility
|
|
11
|
-
options?: {
|
|
12
|
-
format?: "verbose" | "compact";
|
|
13
|
-
minimal?: boolean;
|
|
14
|
-
}): ITimeSpent;
|
|
15
|
-
//# sourceMappingURL=parse-time-spent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-time-spent.d.ts","sourceRoot":"","sources":["../../src/date/parse-time-spent.ts"],"names":[],"mappings":"AA2HA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAGD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,SAAU,EAAE,mDAAmD;AACrE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9D,UAAU,CAkHZ"}
|
package/dist/esm/api/client.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { apiWrapper } from "./wrapper.js";
|
|
2
|
-
const defaultRetryConfig = {
|
|
3
|
-
limit: 5,
|
|
4
|
-
methods: ["get"],
|
|
5
|
-
statusCodes: [413],
|
|
6
|
-
backoffLimit: 3000,
|
|
7
|
-
};
|
|
8
|
-
function buildQueryString(params) {
|
|
9
|
-
const searchParams = new URLSearchParams();
|
|
10
|
-
Object.entries(params).forEach(([key, value]) => {
|
|
11
|
-
if (value !== null && value !== undefined) {
|
|
12
|
-
searchParams.append(key, String(value));
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
const queryString = searchParams.toString();
|
|
16
|
-
return queryString ? `?${queryString}` : "";
|
|
17
|
-
}
|
|
18
|
-
async function beforeRequestHook(request, getAccessToken, getUserIP) {
|
|
19
|
-
const token = await (getAccessToken === null || getAccessToken === void 0 ? void 0 : getAccessToken());
|
|
20
|
-
const headers = new Headers(request.headers);
|
|
21
|
-
if (token) {
|
|
22
|
-
headers.set("Authorization", `Bearer ${token}`);
|
|
23
|
-
}
|
|
24
|
-
const userIP = await (getUserIP === null || getUserIP === void 0 ? void 0 : getUserIP());
|
|
25
|
-
if (userIP) {
|
|
26
|
-
headers.set("X-User-IP", userIP);
|
|
27
|
-
}
|
|
28
|
-
let body;
|
|
29
|
-
try {
|
|
30
|
-
const cloned = request.clone();
|
|
31
|
-
const text = await cloned.text();
|
|
32
|
-
body = text === "" ? undefined : text;
|
|
33
|
-
}
|
|
34
|
-
catch (_a) {
|
|
35
|
-
body = undefined;
|
|
36
|
-
}
|
|
37
|
-
return new Request(request, { headers, body });
|
|
38
|
-
}
|
|
39
|
-
async function afterResponseHook(request, response, onSignoutUnauthorized) {
|
|
40
|
-
const possibleSignInPaths = ["signin", "sign-in", "login"];
|
|
41
|
-
const isSignInPath = possibleSignInPaths.some((path) => request.url.includes(path));
|
|
42
|
-
const needsBody = response.status === 401 && !isSignInPath;
|
|
43
|
-
let responseBody = null;
|
|
44
|
-
let responseBodyFor401 = null;
|
|
45
|
-
if (needsBody) {
|
|
46
|
-
const clone = response.clone();
|
|
47
|
-
try {
|
|
48
|
-
responseBody = await clone.json();
|
|
49
|
-
responseBodyFor401 = responseBody;
|
|
50
|
-
}
|
|
51
|
-
catch (_b) {
|
|
52
|
-
responseBody = await clone.text();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (response.status === 401 && !isSignInPath) {
|
|
56
|
-
return onSignoutUnauthorized === null || onSignoutUnauthorized === void 0 ? void 0 : onSignoutUnauthorized(responseBodyFor401);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
async function fetchWithRetry(input, init) {
|
|
60
|
-
var _b, _c, _d, _e;
|
|
61
|
-
const retryConfig = (init === null || init === void 0 ? void 0 : init.retry) || defaultRetryConfig;
|
|
62
|
-
const method = ((init === null || init === void 0 ? void 0 : init.method) || "GET").toLowerCase();
|
|
63
|
-
let attempt = 0;
|
|
64
|
-
while (true) {
|
|
65
|
-
attempt++;
|
|
66
|
-
const response = await fetch(input, init);
|
|
67
|
-
const shouldRetry = ((_b = retryConfig.statusCodes) === null || _b === void 0 ? void 0 : _b.includes(response.status)) &&
|
|
68
|
-
((_c = retryConfig.methods) === null || _c === void 0 ? void 0 : _c.includes(method)) &&
|
|
69
|
-
attempt < ((_d = retryConfig.limit) !== null && _d !== void 0 ? _d : 5);
|
|
70
|
-
if (!shouldRetry)
|
|
71
|
-
return response;
|
|
72
|
-
const backoff = Math.min(2 ** attempt * 100, (_e = retryConfig.backoffLimit) !== null && _e !== void 0 ? _e : 3000);
|
|
73
|
-
await new Promise((resolve) => setTimeout(resolve, backoff));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
async function api(config, endpoint, options = {}) {
|
|
77
|
-
var _b, _c;
|
|
78
|
-
let url = endpoint.startsWith("http")
|
|
79
|
-
? endpoint
|
|
80
|
-
: `${(_b = config.baseURL) === null || _b === void 0 ? void 0 : _b.replace(/\/$/, "")}/${endpoint.replace(/^\//, "")}`;
|
|
81
|
-
// Add query parameters if provided
|
|
82
|
-
if (options.params) {
|
|
83
|
-
const queryString = buildQueryString(options.params);
|
|
84
|
-
url += queryString;
|
|
85
|
-
}
|
|
86
|
-
// Apply default options
|
|
87
|
-
const init = {
|
|
88
|
-
credentials: "include",
|
|
89
|
-
...options,
|
|
90
|
-
};
|
|
91
|
-
let body;
|
|
92
|
-
if (options.json !== undefined && options.json !== null) {
|
|
93
|
-
body = JSON.stringify(options.json);
|
|
94
|
-
// Only add Content-Type if body is not empty
|
|
95
|
-
if (body && body !== "null" && body !== "undefined") {
|
|
96
|
-
init.headers = {
|
|
97
|
-
...init.headers,
|
|
98
|
-
"Content-Type": "application/json",
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
// Remove Content-Type application/json if there's no body
|
|
103
|
-
if (!body) {
|
|
104
|
-
const headers = new Headers(init.headers);
|
|
105
|
-
if (((_c = headers.get("Content-Type")) === null || _c === void 0 ? void 0 : _c.toLowerCase()) === "application/json") {
|
|
106
|
-
headers.delete("Content-Type");
|
|
107
|
-
init.headers = headers;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
// Create initial request
|
|
111
|
-
let request = new Request(url, { ...init, body });
|
|
112
|
-
// Run pre-request hooks
|
|
113
|
-
request = await beforeRequestHook(request, config.getAccessToken, config.getUserIP);
|
|
114
|
-
// Keep init headers in sync with the mutated request so fetch keeps auth headers
|
|
115
|
-
init.headers = new Headers(request.headers);
|
|
116
|
-
// Execute request with retry logic
|
|
117
|
-
const response = await fetchWithRetry(request, init);
|
|
118
|
-
// Run post-response hooks
|
|
119
|
-
await afterResponseHook(request, response, config.onSignoutUnauthorized);
|
|
120
|
-
if (!response.ok) {
|
|
121
|
-
throw response;
|
|
122
|
-
}
|
|
123
|
-
if (response.status === 204) {
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
const text = await response.text();
|
|
127
|
-
if (!text) {
|
|
128
|
-
return null;
|
|
129
|
-
}
|
|
130
|
-
return JSON.parse(text);
|
|
131
|
-
}
|
|
132
|
-
export const apiClient = (config) => {
|
|
133
|
-
const apiConfig = {
|
|
134
|
-
...config,
|
|
135
|
-
};
|
|
136
|
-
return {
|
|
137
|
-
get: (url, options) => apiWrapper(() => api(apiConfig, url, options)),
|
|
138
|
-
post: (url, options) => apiWrapper(() => api(apiConfig, url, { ...options, method: "POST" })),
|
|
139
|
-
put: (url, options) => apiWrapper(() => api(apiConfig, url, { ...options, method: "PUT" })),
|
|
140
|
-
delete: (url, options) => apiWrapper(() => api(apiConfig, url, { ...options, method: "DELETE" })),
|
|
141
|
-
patch: (url, options) => apiWrapper(() => api(apiConfig, url, { ...options, method: "PATCH" })),
|
|
142
|
-
};
|
|
143
|
-
};
|
package/dist/esm/api/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { apiClient } from "./client.js";
|