From af761f133b40cf7990b6e64d7d38ed950646d581 Mon Sep 17 00:00:00 2001 From: Alice Date: Tue, 26 Sep 2023 14:38:08 +0100 Subject: [PATCH] change --- .gitattributes | 1 - .github/FUNDING.yml | 1 - .github/ISSUE_TEMPLATE/bug_report.md | 33 - .github/ISSUE_TEMPLATE/feature_request.md | 19 - .github/workflows/ci.yaml | 47 - .github/workflows/deploy.yml | 45 - .gitignore | 11 - .npmrc | 1 - .obsidian/app.json | 1 + .obsidian/appearance.json | 3 + .obsidian/community-plugins.json | 7 + .obsidian/core-plugins-migration.json | 30 + .obsidian/core-plugins.json | 20 + .obsidian/hotkeys.json | 1 + .../plugins/convert-url-to-iframe/main.js | 6675 +++ .../convert-url-to-iframe/manifest.json | 9 + .../plugins/convert-url-to-iframe/styles.css | 26 + .obsidian/plugins/digitalgarden/data.json | 40 + .obsidian/plugins/digitalgarden/main.js | 27550 ++++++++++ .obsidian/plugins/digitalgarden/manifest.json | 11 + .obsidian/plugins/digitalgarden/styles.css | 43 + .../obsidian-excalidraw-plugin/data.json | 413 + .../obsidian-excalidraw-plugin/main.js | 81 + .../obsidian-excalidraw-plugin/manifest.json | 11 + .../obsidian-excalidraw-plugin/styles.css | 417 + .obsidian/plugins/obsidian-git/data.json | 53 + .obsidian/plugins/obsidian-git/main.js | 44242 ++++++++++++++++ .obsidian/plugins/obsidian-git/manifest.json | 9 + .obsidian/plugins/obsidian-git/styles.css | 512 + .../plugins/table-editor-obsidian/data.json | 6 + .../plugins/table-editor-obsidian/main.js | 28989 ++++++++++ .../table-editor-obsidian/manifest.json | 17 + .../plugins/table-editor-obsidian/styles.css | 78 + .obsidian/workspace.json | 187 + .prettierignore | 3 - .prettierrc | 7 - {content => 4a1s}/ASCN/Images.md | 0 {content => 4a1s}/ASCN/T - Aula 1.md | 0 {content => 4a1s}/ASCN/T - Aula 2.md | 0 {content => 4a1s}/CP/PL - Aula 2.md | 0 .../CP/T - Aula 2 - 19 Setembro.md | 0 {content => 4a1s}/DAA/PL - Aula 1.md | 0 {content => 4a1s}/DAA/T - Aula 1.md | 0 {content => 4a1s}/DAA/T - Aula 2.md | 0 .../ASCN/Monolithic system.excalidraw.md | 0 .../ASCN/Partitioning.excalidraw.md | 0 .../Excalidraw/ASCN/Replication.excalidraw.md | 0 .../Excalidraw/ASCN/SOA.excalidraw.md | 0 .../Excalidraw/ASCN/bus.excalidraw.md | 0 .../ASCN/client-server.excalidraw.md | 0 .../Excalidraw/ASCN/master.excalidraw.md | 0 .../Excalidraw/ASCN/multi-tier.excalidraw.md | 0 .../Excalidraw/ASCN/proxy.excalidraw.md | 0 .../ASCN/server-group.excalidraw.md | 0 .../Excalidraw/MFES/Ficha1_ex2.excalidraw.md | 12 +- {content => 4a1s}/MFES/MFES - UC Details.md | 0 {content => 4a1s}/MFES/PL - Aula 1.md | 0 {content => 4a1s}/MFES/PL - Aula 2.md | 0 {content => 4a1s}/MFES/T - Aula 2.md | 0 {content => 4a1s}/RAS/PL - Aula 1.md | 0 {content => 4a1s}/RAS/T - Aula 1.md | 0 {content => 4a1s}/RAS/T - Aula 2.md | 0 {content => 4a1s}/index.md | 0 CODE_OF_CONDUCT.md | 90 - LICENSE.txt | 21 - README.md | 20 - bun.lockb | Bin 199264 -> 0 bytes docs/advanced/architecture.md | 52 - docs/advanced/creating components.md | 233 - docs/advanced/making plugins.md | 302 - docs/advanced/paths.md | 51 - docs/authoring content.md | 48 - docs/build.md | 23 - docs/configuration.md | 82 - docs/features/Latex.md | 63 - docs/features/Mermaid diagrams.md | 28 - docs/features/Obsidian compatibility.md | 31 - docs/features/OxHugo compatibility.md | 38 - docs/features/RSS Feed.md | 7 - docs/features/SPA Routing.md | 7 - docs/features/backlinks.md | 14 - docs/features/callouts.md | 86 - docs/features/darkmode.md | 14 - docs/features/explorer.md | 227 - docs/features/folder and tag listings.md | 32 - docs/features/full-text search.md | 30 - docs/features/graph view.md | 59 - docs/features/index.md | 3 - docs/features/popover previews.md | 15 - docs/features/private pages.md | 27 - docs/features/recent notes.md | 16 - docs/features/syntax highlighting.md | 135 - docs/features/table of contents.md | 24 - docs/features/upcoming features.md | 23 - docs/features/wikilinks.md | 16 - docs/hosting.md | 168 - docs/images/dns records.png | Bin 77842 -> 0 bytes docs/images/quartz layout.png | Bin 56729 -> 0 bytes docs/images/quartz transform pipeline.png | Bin 73574 -> 0 bytes docs/index.md | 45 - docs/layout.md | 42 - docs/migrating from Quartz 3.md | 41 - docs/philosophy.md | 28 - docs/showcase.md | 21 - docs/tags/component.md | 5 - docs/upgrading.md | 19 - globals.d.ts | 12 - index.d.ts | 11 - package-lock.json | 6208 --- package.json | 109 - quartz.config.ts | 77 - quartz.layout.ts | 43 - quartz/bootstrap-cli.mjs | 41 - quartz/bootstrap-worker.mjs | 7 - quartz/build.ts | 183 - quartz/cfg.ts | 55 - quartz/cli/args.js | 98 - quartz/cli/constants.js | 15 - quartz/cli/handlers.js | 511 - quartz/cli/helpers.js | 52 - quartz/components/ArticleTitle.tsx | 17 - quartz/components/Backlinks.tsx | 29 - quartz/components/Body.tsx | 13 - quartz/components/ContentMeta.tsx | 30 - quartz/components/Darkmode.tsx | 51 - quartz/components/Date.tsx | 29 - quartz/components/DesktopOnly.tsx | 18 - quartz/components/Explorer.tsx | 110 - quartz/components/ExplorerNode.tsx | 215 - quartz/components/Footer.tsx | 32 - quartz/components/Graph.tsx | 100 - quartz/components/Head.tsx | 44 - quartz/components/Header.tsx | 22 - quartz/components/MobileOnly.tsx | 18 - quartz/components/PageList.tsx | 87 - quartz/components/PageTitle.tsx | 20 - quartz/components/RecentNotes.tsx | 82 - quartz/components/Search.tsx | 49 - quartz/components/Spacer.tsx | 8 - quartz/components/TableOfContents.tsx | 84 - quartz/components/TagList.tsx | 52 - quartz/components/index.ts | 43 - quartz/components/pages/404.tsx | 12 - quartz/components/pages/Content.tsx | 11 - quartz/components/pages/FolderContent.tsx | 49 - quartz/components/pages/TagContent.tsx | 94 - quartz/components/renderPage.tsx | 154 - quartz/components/scripts/callout.inline.ts | 44 - quartz/components/scripts/clipboard.inline.ts | 33 - quartz/components/scripts/darkmode.inline.ts | 32 - quartz/components/scripts/explorer.inline.ts | 162 - quartz/components/scripts/graph.inline.ts | 328 - quartz/components/scripts/plausible.inline.ts | 3 - quartz/components/scripts/popover.inline.ts | 83 - quartz/components/scripts/search.inline.ts | 353 - quartz/components/scripts/spa.inline.ts | 155 - quartz/components/scripts/toc.inline.ts | 42 - quartz/components/scripts/util.ts | 25 - quartz/components/styles/backlinks.scss | 20 - quartz/components/styles/clipboard.scss | 36 - quartz/components/styles/darkmode.scss | 48 - quartz/components/styles/explorer.scss | 142 - quartz/components/styles/footer.scss | 15 - quartz/components/styles/graph.scss | 70 - quartz/components/styles/legacyToc.scss | 27 - quartz/components/styles/listPage.scss | 45 - quartz/components/styles/popover.scss | 60 - quartz/components/styles/recentNotes.scss | 24 - quartz/components/styles/search.scss | 178 - quartz/components/styles/toc.scss | 59 - quartz/components/types.ts | 27 - quartz/plugins/emitters/404.tsx | 59 - quartz/plugins/emitters/aliases.ts | 52 - quartz/plugins/emitters/assets.ts | 33 - quartz/plugins/emitters/componentResources.ts | 202 - quartz/plugins/emitters/contentIndex.ts | 150 - quartz/plugins/emitters/contentPage.tsx | 56 - quartz/plugins/emitters/folderPage.tsx | 96 - quartz/plugins/emitters/index.ts | 9 - quartz/plugins/emitters/static.ts | 17 - quartz/plugins/emitters/tagPage.tsx | 94 - quartz/plugins/filters/draft.ts | 9 - quartz/plugins/filters/explicit.ts | 9 - quartz/plugins/filters/index.ts | 2 - quartz/plugins/index.ts | 34 - quartz/plugins/transformers/description.ts | 51 - quartz/plugins/transformers/frontmatter.ts | 70 - quartz/plugins/transformers/gfm.ts | 46 - quartz/plugins/transformers/index.ts | 11 - quartz/plugins/transformers/lastmod.ts | 76 - quartz/plugins/transformers/latex.ts | 45 - quartz/plugins/transformers/linebreaks.ts | 11 - quartz/plugins/transformers/links.ts | 120 - quartz/plugins/transformers/ofm.ts | 527 - quartz/plugins/transformers/oxhugofm.ts | 73 - quartz/plugins/transformers/syntax.ts | 16 - quartz/plugins/transformers/toc.ts | 70 - quartz/plugins/types.ts | 54 - quartz/plugins/vfile.ts | 12 - quartz/processors/emit.ts | 44 - quartz/processors/filter.ts | 24 - quartz/processors/parse.ts | 161 - quartz/static/icon.png | Bin 17368 -> 0 bytes quartz/static/og-image.png | Bin 39281 -> 0 bytes quartz/styles/base.scss | 478 - quartz/styles/callouts.scss | 111 - quartz/styles/custom.scss | 1 - quartz/styles/syntax.scss | 29 - quartz/styles/variables.scss | 6 - quartz/util/ctx.ts | 19 - quartz/util/escape.ts | 8 - quartz/util/glob.ts | 22 - quartz/util/lang.ts | 7 - quartz/util/log.ts | 28 - quartz/util/path.test.ts | 278 - quartz/util/path.ts | 234 - quartz/util/perf.ts | 19 - quartz/util/resources.tsx | 39 - quartz/util/sourcemap.ts | 18 - quartz/util/theme.ts | 63 - quartz/util/trace.ts | 47 - quartz/worker.ts | 19 - tsconfig.json | 20 - 223 files changed, 109433 insertions(+), 16949 deletions(-) delete mode 100644 .gitattributes delete mode 100644 .github/FUNDING.yml delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 .github/workflows/ci.yaml delete mode 100644 .github/workflows/deploy.yml delete mode 100644 .gitignore delete mode 100644 .npmrc create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/community-plugins.json create mode 100644 .obsidian/core-plugins-migration.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/hotkeys.json create mode 100644 .obsidian/plugins/convert-url-to-iframe/main.js create mode 100644 .obsidian/plugins/convert-url-to-iframe/manifest.json create mode 100644 .obsidian/plugins/convert-url-to-iframe/styles.css create mode 100644 .obsidian/plugins/digitalgarden/data.json create mode 100644 .obsidian/plugins/digitalgarden/main.js create mode 100644 .obsidian/plugins/digitalgarden/manifest.json create mode 100644 .obsidian/plugins/digitalgarden/styles.css create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/data.json create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/main.js create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/manifest.json create mode 100644 .obsidian/plugins/obsidian-excalidraw-plugin/styles.css create mode 100644 .obsidian/plugins/obsidian-git/data.json create mode 100644 .obsidian/plugins/obsidian-git/main.js create mode 100644 .obsidian/plugins/obsidian-git/manifest.json create mode 100644 .obsidian/plugins/obsidian-git/styles.css create mode 100644 .obsidian/plugins/table-editor-obsidian/data.json create mode 100644 .obsidian/plugins/table-editor-obsidian/main.js create mode 100644 .obsidian/plugins/table-editor-obsidian/manifest.json create mode 100644 .obsidian/plugins/table-editor-obsidian/styles.css create mode 100644 .obsidian/workspace.json delete mode 100644 .prettierignore delete mode 100644 .prettierrc rename {content => 4a1s}/ASCN/Images.md (100%) rename {content => 4a1s}/ASCN/T - Aula 1.md (100%) rename {content => 4a1s}/ASCN/T - Aula 2.md (100%) rename {content => 4a1s}/CP/PL - Aula 2.md (100%) rename {content => 4a1s}/CP/T - Aula 2 - 19 Setembro.md (100%) rename {content => 4a1s}/DAA/PL - Aula 1.md (100%) rename {content => 4a1s}/DAA/T - Aula 1.md (100%) rename {content => 4a1s}/DAA/T - Aula 2.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/Monolithic system.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/Partitioning.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/Replication.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/SOA.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/bus.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/client-server.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/master.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/multi-tier.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/proxy.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/ASCN/server-group.excalidraw.md (100%) rename {content => 4a1s}/Excalidraw/MFES/Ficha1_ex2.excalidraw.md (99%) rename {content => 4a1s}/MFES/MFES - UC Details.md (100%) rename {content => 4a1s}/MFES/PL - Aula 1.md (100%) rename {content => 4a1s}/MFES/PL - Aula 2.md (100%) rename {content => 4a1s}/MFES/T - Aula 2.md (100%) rename {content => 4a1s}/RAS/PL - Aula 1.md (100%) rename {content => 4a1s}/RAS/T - Aula 1.md (100%) rename {content => 4a1s}/RAS/T - Aula 2.md (100%) rename {content => 4a1s}/index.md (100%) delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 LICENSE.txt delete mode 100644 README.md delete mode 100755 bun.lockb delete mode 100644 docs/advanced/architecture.md delete mode 100644 docs/advanced/creating components.md delete mode 100644 docs/advanced/making plugins.md delete mode 100644 docs/advanced/paths.md delete mode 100644 docs/authoring content.md delete mode 100644 docs/build.md delete mode 100644 docs/configuration.md delete mode 100644 docs/features/Latex.md delete mode 100644 docs/features/Mermaid diagrams.md delete mode 100644 docs/features/Obsidian compatibility.md delete mode 100644 docs/features/OxHugo compatibility.md delete mode 100644 docs/features/RSS Feed.md delete mode 100644 docs/features/SPA Routing.md delete mode 100644 docs/features/backlinks.md delete mode 100644 docs/features/callouts.md delete mode 100644 docs/features/darkmode.md delete mode 100644 docs/features/explorer.md delete mode 100644 docs/features/folder and tag listings.md delete mode 100644 docs/features/full-text search.md delete mode 100644 docs/features/graph view.md delete mode 100644 docs/features/index.md delete mode 100644 docs/features/popover previews.md delete mode 100644 docs/features/private pages.md delete mode 100644 docs/features/recent notes.md delete mode 100644 docs/features/syntax highlighting.md delete mode 100644 docs/features/table of contents.md delete mode 100644 docs/features/upcoming features.md delete mode 100644 docs/features/wikilinks.md delete mode 100644 docs/hosting.md delete mode 100644 docs/images/dns records.png delete mode 100644 docs/images/quartz layout.png delete mode 100644 docs/images/quartz transform pipeline.png delete mode 100644 docs/index.md delete mode 100644 docs/layout.md delete mode 100644 docs/migrating from Quartz 3.md delete mode 100644 docs/philosophy.md delete mode 100644 docs/showcase.md delete mode 100644 docs/tags/component.md delete mode 100644 docs/upgrading.md delete mode 100644 globals.d.ts delete mode 100644 index.d.ts delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 quartz.config.ts delete mode 100644 quartz.layout.ts delete mode 100755 quartz/bootstrap-cli.mjs delete mode 100644 quartz/bootstrap-worker.mjs delete mode 100644 quartz/build.ts delete mode 100644 quartz/cfg.ts delete mode 100644 quartz/cli/args.js delete mode 100644 quartz/cli/constants.js delete mode 100644 quartz/cli/handlers.js delete mode 100644 quartz/cli/helpers.js delete mode 100644 quartz/components/ArticleTitle.tsx delete mode 100644 quartz/components/Backlinks.tsx delete mode 100644 quartz/components/Body.tsx delete mode 100644 quartz/components/ContentMeta.tsx delete mode 100644 quartz/components/Darkmode.tsx delete mode 100644 quartz/components/Date.tsx delete mode 100644 quartz/components/DesktopOnly.tsx delete mode 100644 quartz/components/Explorer.tsx delete mode 100644 quartz/components/ExplorerNode.tsx delete mode 100644 quartz/components/Footer.tsx delete mode 100644 quartz/components/Graph.tsx delete mode 100644 quartz/components/Head.tsx delete mode 100644 quartz/components/Header.tsx delete mode 100644 quartz/components/MobileOnly.tsx delete mode 100644 quartz/components/PageList.tsx delete mode 100644 quartz/components/PageTitle.tsx delete mode 100644 quartz/components/RecentNotes.tsx delete mode 100644 quartz/components/Search.tsx delete mode 100644 quartz/components/Spacer.tsx delete mode 100644 quartz/components/TableOfContents.tsx delete mode 100644 quartz/components/TagList.tsx delete mode 100644 quartz/components/index.ts delete mode 100644 quartz/components/pages/404.tsx delete mode 100644 quartz/components/pages/Content.tsx delete mode 100644 quartz/components/pages/FolderContent.tsx delete mode 100644 quartz/components/pages/TagContent.tsx delete mode 100644 quartz/components/renderPage.tsx delete mode 100644 quartz/components/scripts/callout.inline.ts delete mode 100644 quartz/components/scripts/clipboard.inline.ts delete mode 100644 quartz/components/scripts/darkmode.inline.ts delete mode 100644 quartz/components/scripts/explorer.inline.ts delete mode 100644 quartz/components/scripts/graph.inline.ts delete mode 100644 quartz/components/scripts/plausible.inline.ts delete mode 100644 quartz/components/scripts/popover.inline.ts delete mode 100644 quartz/components/scripts/search.inline.ts delete mode 100644 quartz/components/scripts/spa.inline.ts delete mode 100644 quartz/components/scripts/toc.inline.ts delete mode 100644 quartz/components/scripts/util.ts delete mode 100644 quartz/components/styles/backlinks.scss delete mode 100644 quartz/components/styles/clipboard.scss delete mode 100644 quartz/components/styles/darkmode.scss delete mode 100644 quartz/components/styles/explorer.scss delete mode 100644 quartz/components/styles/footer.scss delete mode 100644 quartz/components/styles/graph.scss delete mode 100644 quartz/components/styles/legacyToc.scss delete mode 100644 quartz/components/styles/listPage.scss delete mode 100644 quartz/components/styles/popover.scss delete mode 100644 quartz/components/styles/recentNotes.scss delete mode 100644 quartz/components/styles/search.scss delete mode 100644 quartz/components/styles/toc.scss delete mode 100644 quartz/components/types.ts delete mode 100644 quartz/plugins/emitters/404.tsx delete mode 100644 quartz/plugins/emitters/aliases.ts delete mode 100644 quartz/plugins/emitters/assets.ts delete mode 100644 quartz/plugins/emitters/componentResources.ts delete mode 100644 quartz/plugins/emitters/contentIndex.ts delete mode 100644 quartz/plugins/emitters/contentPage.tsx delete mode 100644 quartz/plugins/emitters/folderPage.tsx delete mode 100644 quartz/plugins/emitters/index.ts delete mode 100644 quartz/plugins/emitters/static.ts delete mode 100644 quartz/plugins/emitters/tagPage.tsx delete mode 100644 quartz/plugins/filters/draft.ts delete mode 100644 quartz/plugins/filters/explicit.ts delete mode 100644 quartz/plugins/filters/index.ts delete mode 100644 quartz/plugins/index.ts delete mode 100644 quartz/plugins/transformers/description.ts delete mode 100644 quartz/plugins/transformers/frontmatter.ts delete mode 100644 quartz/plugins/transformers/gfm.ts delete mode 100644 quartz/plugins/transformers/index.ts delete mode 100644 quartz/plugins/transformers/lastmod.ts delete mode 100644 quartz/plugins/transformers/latex.ts delete mode 100644 quartz/plugins/transformers/linebreaks.ts delete mode 100644 quartz/plugins/transformers/links.ts delete mode 100644 quartz/plugins/transformers/ofm.ts delete mode 100644 quartz/plugins/transformers/oxhugofm.ts delete mode 100644 quartz/plugins/transformers/syntax.ts delete mode 100644 quartz/plugins/transformers/toc.ts delete mode 100644 quartz/plugins/types.ts delete mode 100644 quartz/plugins/vfile.ts delete mode 100644 quartz/processors/emit.ts delete mode 100644 quartz/processors/filter.ts delete mode 100644 quartz/processors/parse.ts delete mode 100644 quartz/static/icon.png delete mode 100644 quartz/static/og-image.png delete mode 100644 quartz/styles/base.scss delete mode 100644 quartz/styles/callouts.scss delete mode 100644 quartz/styles/custom.scss delete mode 100644 quartz/styles/syntax.scss delete mode 100644 quartz/styles/variables.scss delete mode 100644 quartz/util/ctx.ts delete mode 100644 quartz/util/escape.ts delete mode 100644 quartz/util/glob.ts delete mode 100644 quartz/util/lang.ts delete mode 100644 quartz/util/log.ts delete mode 100644 quartz/util/path.test.ts delete mode 100644 quartz/util/path.ts delete mode 100644 quartz/util/perf.ts delete mode 100644 quartz/util/resources.tsx delete mode 100644 quartz/util/sourcemap.ts delete mode 100644 quartz/util/theme.ts delete mode 100644 quartz/util/trace.ts delete mode 100644 quartz/worker.ts delete mode 100644 tsconfig.json diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 6313b56..0000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto eol=lf diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 40b2d4a..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [jackyzha0] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 7f1576d..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: Bug report -about: Something about Quartz isn't working the way you expect -title: "" -labels: bug -assignees: "" ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: - -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - -- Device: [e.g. iPhone6] -- OS: [e.g. iOS] -- Browser [e.g. chrome, safari] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index e766b49..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: Feature request -about: Suggest an idea or improvement for Quartz -title: "" -labels: enhancement -assignees: "" ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index 8915143..0000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,47 +0,0 @@ -name: Build and Test - -on: - pull_request: - branches: - - v4 - push: - branches: - - v4 - -jobs: - build-and-test: - if: ${{ github.repository == 'jackyzha0/quartz' }} - strategy: - matrix: - os: [windows-latest, macos-latest, ubuntu-latest] - runs-on: ${{ matrix.os }} - permissions: - contents: write - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: 18 - - - name: Cache dependencies - uses: actions/cache@v3 - with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - - run: npm ci - - - name: Check types and style - run: npm run check - - - name: Test - run: npm test - - - name: Ensure Quartz builds, check bundle info - run: npx quartz build --bundleInfo diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index c8c129a..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Deploy Quartz site to GitHub Pages - -on: - push: - branches: - - v4 - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - build: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Fetch all history for git info - - uses: actions/setup-node@v3 - with: - node-version: 18.14 - - name: Install Dependencies - run: npm ci - - name: Build Quartz - run: npx quartz build - - name: Upload artifact - uses: actions/upload-pages-artifact@v2 - with: - path: public - - deploy: - needs: build - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 25d07db..0000000 --- a/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -.DS_Store -.gitignore -node_modules -public -prof -tsconfig.tsbuildinfo -.obsidian -.quartz-cache -private/ -.replit -replit.nix diff --git a/.npmrc b/.npmrc deleted file mode 100644 index b6f27f1..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..c8c365d --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1,3 @@ +{ + "accentColor": "" +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json new file mode 100644 index 0000000..b9e00db --- /dev/null +++ b/.obsidian/community-plugins.json @@ -0,0 +1,7 @@ +[ + "obsidian-excalidraw-plugin", + "table-editor-obsidian", + "convert-url-to-iframe", + "obsidian-git", + "digitalgarden" +] \ No newline at end of file diff --git a/.obsidian/core-plugins-migration.json b/.obsidian/core-plugins-migration.json new file mode 100644 index 0000000..436f43c --- /dev/null +++ b/.obsidian/core-plugins-migration.json @@ -0,0 +1,30 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "properties": false, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false +} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..9405bfd --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,20 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "canvas", + "outgoing-link", + "tag-pane", + "page-preview", + "daily-notes", + "templates", + "note-composer", + "command-palette", + "editor-status", + "bookmarks", + "outline", + "word-count", + "file-recovery" +] \ No newline at end of file diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/hotkeys.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/plugins/convert-url-to-iframe/main.js b/.obsidian/plugins/convert-url-to-iframe/main.js new file mode 100644 index 0000000..3303482 --- /dev/null +++ b/.obsidian/plugins/convert-url-to-iframe/main.js @@ -0,0 +1,6675 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + __markAsModule(target); + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key) && key !== "default") + __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); + } + return target; +}; +var __toModule = (module2) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; + +// node_modules/oembed-parser/src/utils/isValidURL.js +var require_isValidURL = __commonJS({ + "node_modules/oembed-parser/src/utils/isValidURL.js"(exports, module2) { + module2.exports = (url = "") => { + try { + const ourl = new URL(url); + return ourl !== null && ourl.protocol.startsWith("http"); + } catch (err) { + return false; + } + }; + } +}); + +// node_modules/axios/lib/helpers/bind.js +var require_bind = __commonJS({ + "node_modules/axios/lib/helpers/bind.js"(exports, module2) { + "use strict"; + module2.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; + }; + } +}); + +// node_modules/axios/lib/utils.js +var require_utils = __commonJS({ + "node_modules/axios/lib/utils.js"(exports, module2) { + "use strict"; + var bind = require_bind(); + var toString = Object.prototype.toString; + function isArray(val) { + return toString.call(val) === "[object Array]"; + } + function isUndefined(val) { + return typeof val === "undefined"; + } + function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === "function" && val.constructor.isBuffer(val); + } + function isArrayBuffer(val) { + return toString.call(val) === "[object ArrayBuffer]"; + } + function isFormData(val) { + return typeof FormData !== "undefined" && val instanceof FormData; + } + function isArrayBufferView(val) { + var result; + if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val); + } else { + result = val && val.buffer && val.buffer instanceof ArrayBuffer; + } + return result; + } + function isString(val) { + return typeof val === "string"; + } + function isNumber(val) { + return typeof val === "number"; + } + function isObject(val) { + return val !== null && typeof val === "object"; + } + function isPlainObject(val) { + if (toString.call(val) !== "[object Object]") { + return false; + } + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; + } + function isDate(val) { + return toString.call(val) === "[object Date]"; + } + function isFile(val) { + return toString.call(val) === "[object File]"; + } + function isBlob(val) { + return toString.call(val) === "[object Blob]"; + } + function isFunction(val) { + return toString.call(val) === "[object Function]"; + } + function isStream(val) { + return isObject(val) && isFunction(val.pipe); + } + function isURLSearchParams(val) { + return typeof URLSearchParams !== "undefined" && val instanceof URLSearchParams; + } + function trim(str) { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ""); + } + function isStandardBrowserEnv() { + if (typeof navigator !== "undefined" && (navigator.product === "ReactNative" || navigator.product === "NativeScript" || navigator.product === "NS")) { + return false; + } + return typeof window !== "undefined" && typeof document !== "undefined"; + } + function forEach(obj, fn) { + if (obj === null || typeof obj === "undefined") { + return; + } + if (typeof obj !== "object") { + obj = [obj]; + } + if (isArray(obj)) { + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } + } + function merge() { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; + } + function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === "function") { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; + } + function stripBOM(content) { + if (content.charCodeAt(0) === 65279) { + content = content.slice(1); + } + return content; + } + module2.exports = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isObject, + isPlainObject, + isUndefined, + isDate, + isFile, + isBlob, + isFunction, + isStream, + isURLSearchParams, + isStandardBrowserEnv, + forEach, + merge, + extend, + trim, + stripBOM + }; + } +}); + +// node_modules/axios/lib/helpers/buildURL.js +var require_buildURL = __commonJS({ + "node_modules/axios/lib/helpers/buildURL.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + function encode(val) { + return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]"); + } + module2.exports = function buildURL(url, params, paramsSerializer) { + if (!params) { + return url; + } + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === "undefined") { + return; + } + if (utils.isArray(val)) { + key = key + "[]"; + } else { + val = [val]; + } + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + "=" + encode(v)); + }); + }); + serializedParams = parts.join("&"); + } + if (serializedParams) { + var hashmarkIndex = url.indexOf("#"); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf("?") === -1 ? "?" : "&") + serializedParams; + } + return url; + }; + } +}); + +// node_modules/axios/lib/core/InterceptorManager.js +var require_InterceptorManager = __commonJS({ + "node_modules/axios/lib/core/InterceptorManager.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + function InterceptorManager() { + this.handlers = []; + } + InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; + }; + InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + }; + InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + }; + module2.exports = InterceptorManager; + } +}); + +// node_modules/axios/lib/helpers/normalizeHeaderName.js +var require_normalizeHeaderName = __commonJS({ + "node_modules/axios/lib/helpers/normalizeHeaderName.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + module2.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); + }; + } +}); + +// node_modules/axios/lib/core/enhanceError.js +var require_enhanceError = __commonJS({ + "node_modules/axios/lib/core/enhanceError.js"(exports, module2) { + "use strict"; + module2.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + error.request = request; + error.response = response; + error.isAxiosError = true; + error.toJSON = function toJSON() { + return { + message: this.message, + name: this.name, + description: this.description, + number: this.number, + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + config: this.config, + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + }; + return error; + }; + } +}); + +// node_modules/axios/lib/core/createError.js +var require_createError = __commonJS({ + "node_modules/axios/lib/core/createError.js"(exports, module2) { + "use strict"; + var enhanceError = require_enhanceError(); + module2.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); + }; + } +}); + +// node_modules/axios/lib/core/settle.js +var require_settle = __commonJS({ + "node_modules/axios/lib/core/settle.js"(exports, module2) { + "use strict"; + var createError = require_createError(); + module2.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError("Request failed with status code " + response.status, response.config, null, response.request, response)); + } + }; + } +}); + +// node_modules/axios/lib/helpers/cookies.js +var require_cookies = __commonJS({ + "node_modules/axios/lib/helpers/cookies.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + module2.exports = utils.isStandardBrowserEnv() ? function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + "=" + encodeURIComponent(value)); + if (utils.isNumber(expires)) { + cookie.push("expires=" + new Date(expires).toGMTString()); + } + if (utils.isString(path)) { + cookie.push("path=" + path); + } + if (utils.isString(domain)) { + cookie.push("domain=" + domain); + } + if (secure === true) { + cookie.push("secure"); + } + document.cookie = cookie.join("; "); + }, + read: function read(name) { + var match = document.cookie.match(new RegExp("(^|;\\s*)(" + name + ")=([^;]*)")); + return match ? decodeURIComponent(match[3]) : null; + }, + remove: function remove(name) { + this.write(name, "", Date.now() - 864e5); + } + }; + }() : function nonStandardBrowserEnv() { + return { + write: function write() { + }, + read: function read() { + return null; + }, + remove: function remove() { + } + }; + }(); + } +}); + +// node_modules/axios/lib/helpers/isAbsoluteURL.js +var require_isAbsoluteURL = __commonJS({ + "node_modules/axios/lib/helpers/isAbsoluteURL.js"(exports, module2) { + "use strict"; + module2.exports = function isAbsoluteURL(url) { + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); + }; + } +}); + +// node_modules/axios/lib/helpers/combineURLs.js +var require_combineURLs = __commonJS({ + "node_modules/axios/lib/helpers/combineURLs.js"(exports, module2) { + "use strict"; + module2.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL ? baseURL.replace(/\/+$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL; + }; + } +}); + +// node_modules/axios/lib/core/buildFullPath.js +var require_buildFullPath = __commonJS({ + "node_modules/axios/lib/core/buildFullPath.js"(exports, module2) { + "use strict"; + var isAbsoluteURL = require_isAbsoluteURL(); + var combineURLs = require_combineURLs(); + module2.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; + }; + } +}); + +// node_modules/axios/lib/helpers/parseHeaders.js +var require_parseHeaders = __commonJS({ + "node_modules/axios/lib/helpers/parseHeaders.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var ignoreDuplicateOf = [ + "age", + "authorization", + "content-length", + "content-type", + "etag", + "expires", + "from", + "host", + "if-modified-since", + "if-unmodified-since", + "last-modified", + "location", + "max-forwards", + "proxy-authorization", + "referer", + "retry-after", + "user-agent" + ]; + module2.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + if (!headers) { + return parsed; + } + utils.forEach(headers.split("\n"), function parser(line) { + i = line.indexOf(":"); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === "set-cookie") { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ", " + val : val; + } + } + }); + return parsed; + }; + } +}); + +// node_modules/axios/lib/helpers/isURLSameOrigin.js +var require_isURLSameOrigin = __commonJS({ + "node_modules/axios/lib/helpers/isURLSameOrigin.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + module2.exports = utils.isStandardBrowserEnv() ? function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement("a"); + var originURL; + function resolveURL(url) { + var href = url; + if (msie) { + urlParsingNode.setAttribute("href", href); + href = urlParsingNode.href; + } + urlParsingNode.setAttribute("href", href); + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "", + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "", + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "", + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname + }; + } + originURL = resolveURL(window.location.href); + return function isURLSameOrigin(requestURL) { + var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL; + return parsed.protocol === originURL.protocol && parsed.host === originURL.host; + }; + }() : function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + }(); + } +}); + +// node_modules/axios/lib/cancel/Cancel.js +var require_Cancel = __commonJS({ + "node_modules/axios/lib/cancel/Cancel.js"(exports, module2) { + "use strict"; + function Cancel(message) { + this.message = message; + } + Cancel.prototype.toString = function toString() { + return "Cancel" + (this.message ? ": " + this.message : ""); + }; + Cancel.prototype.__CANCEL__ = true; + module2.exports = Cancel; + } +}); + +// node_modules/axios/lib/adapters/xhr.js +var require_xhr = __commonJS({ + "node_modules/axios/lib/adapters/xhr.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var settle = require_settle(); + var cookies = require_cookies(); + var buildURL = require_buildURL(); + var buildFullPath = require_buildFullPath(); + var parseHeaders = require_parseHeaders(); + var isURLSameOrigin = require_isURLSameOrigin(); + var createError = require_createError(); + var defaults = require_defaults(); + var Cancel = require_Cancel(); + module2.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + var responseType = config.responseType; + var onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + if (config.signal) { + config.signal.removeEventListener("abort", onCanceled); + } + } + if (utils.isFormData(requestData)) { + delete requestHeaders["Content-Type"]; + } + var request = new XMLHttpRequest(); + if (config.auth) { + var username = config.auth.username || ""; + var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ""; + requestHeaders.Authorization = "Basic " + btoa(username + ":" + password); + } + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + request.timeout = config.timeout; + function onloadend() { + if (!request) { + return; + } + var responseHeaders = "getAllResponseHeaders" in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request + }; + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + request = null; + } + if ("onloadend" in request) { + request.onloadend = onloadend; + } else { + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) { + return; + } + setTimeout(onloadend); + }; + } + request.onabort = function handleAbort() { + if (!request) { + return; + } + reject(createError("Request aborted", config, "ECONNABORTED", request)); + request = null; + }; + request.onerror = function handleError() { + reject(createError("Network Error", config, null, request)); + request = null; + }; + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = config.timeout ? "timeout of " + config.timeout + "ms exceeded" : "timeout exceeded"; + var transitional = config.transitional || defaults.transitional; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, transitional.clarifyTimeoutError ? "ETIMEDOUT" : "ECONNABORTED", request)); + request = null; + }; + if (utils.isStandardBrowserEnv()) { + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : void 0; + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + if ("setRequestHeader" in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === "undefined" && key.toLowerCase() === "content-type") { + delete requestHeaders[key]; + } else { + request.setRequestHeader(key, val); + } + }); + } + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + if (responseType && responseType !== "json") { + request.responseType = config.responseType; + } + if (typeof config.onDownloadProgress === "function") { + request.addEventListener("progress", config.onDownloadProgress); + } + if (typeof config.onUploadProgress === "function" && request.upload) { + request.upload.addEventListener("progress", config.onUploadProgress); + } + if (config.cancelToken || config.signal) { + onCanceled = function(cancel) { + if (!request) { + return; + } + reject(!cancel || cancel && cancel.type ? new Cancel("canceled") : cancel); + request.abort(); + request = null; + }; + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener("abort", onCanceled); + } + } + if (!requestData) { + requestData = null; + } + request.send(requestData); + }); + }; + } +}); + +// node_modules/axios/lib/defaults.js +var require_defaults = __commonJS({ + "node_modules/axios/lib/defaults.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var normalizeHeaderName = require_normalizeHeaderName(); + var enhanceError = require_enhanceError(); + var DEFAULT_CONTENT_TYPE = { + "Content-Type": "application/x-www-form-urlencoded" + }; + function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers["Content-Type"])) { + headers["Content-Type"] = value; + } + } + function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== "undefined") { + adapter = require_xhr(); + } else if (typeof process !== "undefined" && Object.prototype.toString.call(process) === "[object process]") { + adapter = require_xhr(); + } + return adapter; + } + function stringifySafely(rawValue, parser, encoder) { + if (utils.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils.trim(rawValue); + } catch (e) { + if (e.name !== "SyntaxError") { + throw e; + } + } + } + return (encoder || JSON.stringify)(rawValue); + } + var defaults = { + transitional: { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false + }, + adapter: getDefaultAdapter(), + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, "Accept"); + normalizeHeaderName(headers, "Content-Type"); + if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, "application/x-www-form-urlencoded;charset=utf-8"); + return data.toString(); + } + if (utils.isObject(data) || headers && headers["Content-Type"] === "application/json") { + setContentTypeIfUnset(headers, "application/json"); + return stringifySafely(data); + } + return data; + }], + transformResponse: [function transformResponse(data) { + var transitional = this.transitional || defaults.transitional; + var silentJSONParsing = transitional && transitional.silentJSONParsing; + var forcedJSONParsing = transitional && transitional.forcedJSONParsing; + var strictJSONParsing = !silentJSONParsing && this.responseType === "json"; + if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) { + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === "SyntaxError") { + throw enhanceError(e, this, "E_JSON_PARSE"); + } + throw e; + } + } + } + return data; + }], + timeout: 0, + xsrfCookieName: "XSRF-TOKEN", + xsrfHeaderName: "X-XSRF-TOKEN", + maxContentLength: -1, + maxBodyLength: -1, + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + headers: { + common: { + "Accept": "application/json, text/plain, */*" + } + } + }; + utils.forEach(["delete", "get", "head"], function forEachMethodNoData(method) { + defaults.headers[method] = {}; + }); + utils.forEach(["post", "put", "patch"], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); + }); + module2.exports = defaults; + } +}); + +// node_modules/axios/lib/core/transformData.js +var require_transformData = __commonJS({ + "node_modules/axios/lib/core/transformData.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var defaults = require_defaults(); + module2.exports = function transformData(data, headers, fns) { + var context = this || defaults; + utils.forEach(fns, function transform(fn) { + data = fn.call(context, data, headers); + }); + return data; + }; + } +}); + +// node_modules/axios/lib/cancel/isCancel.js +var require_isCancel = __commonJS({ + "node_modules/axios/lib/cancel/isCancel.js"(exports, module2) { + "use strict"; + module2.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); + }; + } +}); + +// node_modules/axios/lib/core/dispatchRequest.js +var require_dispatchRequest = __commonJS({ + "node_modules/axios/lib/core/dispatchRequest.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var transformData = require_transformData(); + var isCancel = require_isCancel(); + var defaults = require_defaults(); + var Cancel = require_Cancel(); + function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + if (config.signal && config.signal.aborted) { + throw new Cancel("canceled"); + } + } + module2.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + config.headers = config.headers || {}; + config.data = transformData.call(config, config.data, config.headers, config.transformRequest); + config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers); + utils.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function cleanHeaderConfig(method) { + delete config.headers[method]; + }); + var adapter = config.adapter || defaults.adapter; + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + response.data = transformData.call(config, response.data, response.headers, config.transformResponse); + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + if (reason && reason.response) { + reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse); + } + } + return Promise.reject(reason); + }); + }; + } +}); + +// node_modules/axios/lib/core/mergeConfig.js +var require_mergeConfig = __commonJS({ + "node_modules/axios/lib/core/mergeConfig.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + module2.exports = function mergeConfig(config1, config2) { + config2 = config2 || {}; + var config = {}; + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(void 0, config1[prop]); + } + } + function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(void 0, config2[prop]); + } + } + function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(void 0, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(void 0, config1[prop]); + } + } + function mergeDirectKeys(prop) { + if (prop in config2) { + return getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + return getMergedValue(void 0, config1[prop]); + } + } + var mergeMap = { + "url": valueFromConfig2, + "method": valueFromConfig2, + "data": valueFromConfig2, + "baseURL": defaultToConfig2, + "transformRequest": defaultToConfig2, + "transformResponse": defaultToConfig2, + "paramsSerializer": defaultToConfig2, + "timeout": defaultToConfig2, + "timeoutMessage": defaultToConfig2, + "withCredentials": defaultToConfig2, + "adapter": defaultToConfig2, + "responseType": defaultToConfig2, + "xsrfCookieName": defaultToConfig2, + "xsrfHeaderName": defaultToConfig2, + "onUploadProgress": defaultToConfig2, + "onDownloadProgress": defaultToConfig2, + "decompress": defaultToConfig2, + "maxContentLength": defaultToConfig2, + "maxBodyLength": defaultToConfig2, + "transport": defaultToConfig2, + "httpAgent": defaultToConfig2, + "httpsAgent": defaultToConfig2, + "cancelToken": defaultToConfig2, + "socketPath": defaultToConfig2, + "responseEncoding": defaultToConfig2, + "validateStatus": mergeDirectKeys + }; + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + var merge = mergeMap[prop] || mergeDeepProperties; + var configValue = merge(prop); + utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue); + }); + return config; + }; + } +}); + +// node_modules/axios/lib/env/data.js +var require_data = __commonJS({ + "node_modules/axios/lib/env/data.js"(exports, module2) { + module2.exports = { + "version": "0.24.0" + }; + } +}); + +// node_modules/axios/lib/helpers/validator.js +var require_validator = __commonJS({ + "node_modules/axios/lib/helpers/validator.js"(exports, module2) { + "use strict"; + var VERSION = require_data().version; + var validators = {}; + ["object", "boolean", "number", "function", "string", "symbol"].forEach(function(type, i) { + validators[type] = function validator(thing) { + return typeof thing === type || "a" + (i < 1 ? "n " : " ") + type; + }; + }); + var deprecatedWarnings = {}; + validators.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return "[Axios v" + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : ""); + } + return function(value, opt, opts) { + if (validator === false) { + throw new Error(formatMessage(opt, " has been removed" + (version ? " in " + version : ""))); + } + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + console.warn(formatMessage(opt, " has been deprecated since v" + version + " and will be removed in the near future")); + } + return validator ? validator(value, opt, opts) : true; + }; + }; + function assertOptions(options, schema, allowUnknown) { + if (typeof options !== "object") { + throw new TypeError("options must be an object"); + } + var keys = Object.keys(options); + var i = keys.length; + while (i-- > 0) { + var opt = keys[i]; + var validator = schema[opt]; + if (validator) { + var value = options[opt]; + var result = value === void 0 || validator(value, opt, options); + if (result !== true) { + throw new TypeError("option " + opt + " must be " + result); + } + continue; + } + if (allowUnknown !== true) { + throw Error("Unknown option " + opt); + } + } + } + module2.exports = { + assertOptions, + validators + }; + } +}); + +// node_modules/axios/lib/core/Axios.js +var require_Axios = __commonJS({ + "node_modules/axios/lib/core/Axios.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var buildURL = require_buildURL(); + var InterceptorManager = require_InterceptorManager(); + var dispatchRequest = require_dispatchRequest(); + var mergeConfig = require_mergeConfig(); + var validator = require_validator(); + var validators = validator.validators; + function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + } + Axios.prototype.request = function request(config) { + if (typeof config === "string") { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + config = mergeConfig(this.defaults, config); + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = "get"; + } + var transitional = config.transitional; + if (transitional !== void 0) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, false); + } + var requestInterceptorChain = []; + var synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) { + return; + } + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + var responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + var promise; + if (!synchronousRequestInterceptors) { + var chain = [dispatchRequest, void 0]; + Array.prototype.unshift.apply(chain, requestInterceptorChain); + chain = chain.concat(responseInterceptorChain); + promise = Promise.resolve(config); + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + return promise; + } + var newConfig = config; + while (requestInterceptorChain.length) { + var onFulfilled = requestInterceptorChain.shift(); + var onRejected = requestInterceptorChain.shift(); + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected(error); + break; + } + } + try { + promise = dispatchRequest(newConfig); + } catch (error) { + return Promise.reject(error); + } + while (responseInterceptorChain.length) { + promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift()); + } + return promise; + }; + Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ""); + }; + utils.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) { + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data: (config || {}).data + })); + }; + }); + utils.forEach(["post", "put", "patch"], function forEachMethodWithData(method) { + Axios.prototype[method] = function(url, data, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data + })); + }; + }); + module2.exports = Axios; + } +}); + +// node_modules/axios/lib/cancel/CancelToken.js +var require_CancelToken = __commonJS({ + "node_modules/axios/lib/cancel/CancelToken.js"(exports, module2) { + "use strict"; + var Cancel = require_Cancel(); + function CancelToken(executor) { + if (typeof executor !== "function") { + throw new TypeError("executor must be a function."); + } + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + var token = this; + this.promise.then(function(cancel) { + if (!token._listeners) + return; + var i; + var l = token._listeners.length; + for (i = 0; i < l; i++) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + this.promise.then = function(onfulfilled) { + var _resolve; + var promise = new Promise(function(resolve) { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + return promise; + }; + executor(function cancel(message) { + if (token.reason) { + return; + } + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); + } + CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } + }; + CancelToken.prototype.subscribe = function subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + }; + CancelToken.prototype.unsubscribe = function unsubscribe(listener) { + if (!this._listeners) { + return; + } + var index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + }; + CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel + }; + }; + module2.exports = CancelToken; + } +}); + +// node_modules/axios/lib/helpers/spread.js +var require_spread = __commonJS({ + "node_modules/axios/lib/helpers/spread.js"(exports, module2) { + "use strict"; + module2.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; + }; + } +}); + +// node_modules/axios/lib/helpers/isAxiosError.js +var require_isAxiosError = __commonJS({ + "node_modules/axios/lib/helpers/isAxiosError.js"(exports, module2) { + "use strict"; + module2.exports = function isAxiosError(payload) { + return typeof payload === "object" && payload.isAxiosError === true; + }; + } +}); + +// node_modules/axios/lib/axios.js +var require_axios = __commonJS({ + "node_modules/axios/lib/axios.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var bind = require_bind(); + var Axios = require_Axios(); + var mergeConfig = require_mergeConfig(); + var defaults = require_defaults(); + function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + utils.extend(instance, Axios.prototype, context); + utils.extend(instance, context); + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + return instance; + } + var axios = createInstance(defaults); + axios.Axios = Axios; + axios.Cancel = require_Cancel(); + axios.CancelToken = require_CancelToken(); + axios.isCancel = require_isCancel(); + axios.VERSION = require_data().version; + axios.all = function all(promises) { + return Promise.all(promises); + }; + axios.spread = require_spread(); + axios.isAxiosError = require_isAxiosError(); + module2.exports = axios; + module2.exports.default = axios; + } +}); + +// node_modules/axios/index.js +var require_axios2 = __commonJS({ + "node_modules/axios/index.js"(exports, module2) { + module2.exports = require_axios(); + } +}); + +// node_modules/bellajs/dist/bella.min.js +var require_bella_min = __commonJS({ + "node_modules/bellajs/dist/bella.min.js"(exports, module2) { + !function(e, t) { + typeof exports == "object" && typeof module2 != "undefined" ? t(exports) : typeof define == "function" && define.amd ? define(["exports"], t) : t((e = typeof globalThis != "undefined" ? globalThis : e || self).bella = {}); + }(exports, function(e) { + const t = (e2) => ({}).toString.call(e2), r = (e2) => Array.isArray(e2), n = (e2) => String(e2) === e2, o = (e2) => Number(e2) === e2, a = (e2) => t(e2) === "[object Null]", i = (e2) => t(e2) === "[object Undefined]", l = (e2) => i(e2) || a(e2), s = (e2) => t(e2) === "[object Object]" && !r(e2), c = (e2) => e2 instanceof Date && !isNaN(e2.valueOf()), u = (e2) => !e2 || l(e2) || n(e2) && e2 === "" || r(e2) && e2.length === 0 || s(e2) && Object.keys(e2).length === 0, g = (e2, t2) => !(!e2 || !t2) && Object.prototype.hasOwnProperty.call(e2, t2), f = (e2, t2) => { + if (u(e2) && u(t2)) + return true; + if (c(e2) && c(t2)) + return e2.getTime() === t2.getTime(); + if (r(e2) && r(t2)) { + if (e2.length !== t2.length) + return false; + let r2 = true; + for (let n2 = 0; n2 < e2.length; n2++) + if (!f(e2[n2], t2[n2])) { + r2 = false; + break; + } + return r2; + } + if (s(e2) && s(t2)) { + if (Object.keys(e2).length !== Object.keys(t2).length) + return false; + let r2 = true; + for (const n2 in e2) + if (!g(t2, n2) || !f(e2[n2], t2[n2])) { + r2 = false; + break; + } + return r2; + } + return e2 === t2; + }, p = Number.MAX_SAFE_INTEGER, h = (e2, t2) => { + if ((!e2 || e2 < 0) && (e2 = 0), t2 || (t2 = p), e2 === t2) + return t2; + e2 > t2 && (e2 = Math.min(e2, t2), t2 = Math.max(e2, t2)); + const r2 = e2, n2 = t2 - e2 + 1; + return Math.floor(Math.random() * n2) + r2; + }, d = (e2) => { + const t2 = o(e2) ? String(e2) : e2; + if (!n(t2)) + throw new Error("InvalidInput: String required."); + return t2; + }, m = (e2) => { + const t2 = d(e2).toLowerCase(); + return t2.length > 1 ? t2.charAt(0).toUpperCase() + t2.slice(1) : t2.toUpperCase(); + }, b = (e2, t2, a2) => { + let i2 = d(e2); + if (o(t2) && (t2 = String(t2)), o(a2) && (a2 = String(a2)), n(t2) && n(a2)) { + const e3 = i2.split(t2); + i2 = e3.join(a2); + } else if (r(t2) && n(a2)) + t2.forEach((e3) => { + i2 = b(i2, e3, a2); + }); + else if (r(t2) && r(a2) && t2.length === a2.length) { + const e3 = t2.length; + if (e3 > 0) + for (let r2 = 0; r2 < e3; r2++) { + const e4 = t2[r2], n2 = a2[r2]; + i2 = b(i2, e4, n2); + } + } + return i2; + }, y = (e2) => { + let t2 = d(e2); + const r2 = { a: "\xE1|\xE0|\u1EA3|\xE3|\u1EA1|\u0103|\u1EAF|\u1EB7|\u1EB1|\u1EB3|\u1EB5|\xE2|\u1EA5|\u1EA7|\u1EA9|\u1EAB|\u1EAD|\xE4", A: "\xC1|\xC0|\u1EA2|\xC3|\u1EA0|\u0102|\u1EAE|\u1EB6|\u1EB0|\u1EB2|\u1EB4|\xC2|\u1EA4|\u1EA6|\u1EA8|\u1EAA|\u1EAC|\xC4", c: "\xE7", C: "\xC7", d: "\u0111", D: "\u0110", e: "\xE9|\xE8|\u1EBB|\u1EBD|\u1EB9|\xEA|\u1EBF|\u1EC1|\u1EC3|\u1EC5|\u1EC7|\xEB", E: "\xC9|\xC8|\u1EBA|\u1EBC|\u1EB8|\xCA|\u1EBE|\u1EC0|\u1EC2|\u1EC4|\u1EC6|\xCB", i: "\xED|\xEC|\u1EC9|\u0129|\u1ECB|\xEF|\xEE", I: "\xCD|\xCC|\u1EC8|\u0128|\u1ECA|\xCF|\xCE", o: "\xF3|\xF2|\u1ECF|\xF5|\u1ECD|\xF4|\u1ED1|\u1ED3|\u1ED5|\u1ED7|\u1ED9|\u01A1|\u1EDB|\u1EDD|\u1EDF|\u1EE1|\u1EE3|\xF6", O: "\xD3|\xD2|\u1ECE|\xD5|\u1ECC|\xD4|\u1ED0|\u1ED2|\u1ED4|\xD4|\u1ED8|\u01A0|\u1EDA|\u1EDC|\u1EDE|\u1EE0|\u1EE2|\xD6", u: "\xFA|\xF9|\u1EE7|\u0169|\u1EE5|\u01B0|\u1EE9|\u1EEB|\u1EED|\u1EEF|\u1EF1|\xFB", U: "\xDA|\xD9|\u1EE6|\u0168|\u1EE4|\u01AF|\u1EE8|\u1EEA|\u1EEC|\u1EEE|\u1EF0|\xDB", y: "\xFD|\u1EF3|\u1EF7|\u1EF9|\u1EF5", Y: "\xDD|\u1EF2|\u1EF6|\u1EF8|\u1EF4" }, n2 = (e3, r3) => { + t2 = b(t2, e3, r3); + }; + for (const e3 in r2) + if (g(r2, e3)) { + r2[e3].split("|").forEach((t3) => n2(t3, e3)); + } + return t2; + }, w = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], M = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], j = () => new Date(), D = () => Date.now(), S = j().getTimezoneOffset(), N = (() => { + const e2 = Math.abs(S / 60); + return ["GMT", S < 0 ? "+" : "-", String(e2).padStart(4, "0")].join(""); + })(), O = (e2) => String(e2 < 10 ? "0" + e2 : e2), A = (e2, t2 = "D, M d, Y h:i:s A") => { + const r2 = c(e2) ? e2 : new Date(e2); + if (!c(r2)) + throw new Error("InvalidInput: Number or Date required."); + const n2 = t2.includes("a") || t2.includes("A"), o2 = w, a2 = M, i2 = { Y: () => r2.getFullYear(), y: () => (i2.Y() + "").slice(-2), F: () => a2[i2.n() - 1], M: () => (i2.F() + "").slice(0, 3), m: () => O(i2.n()), n: () => r2.getMonth() + 1, S: () => ((e3) => { + let t3 = e3 + " "; + const r3 = t3.charAt(t3.length - 2); + return t3 = r3 === "1" ? "st" : r3 === "2" ? "nd" : r3 === "3" ? "rd" : "th", t3; + })(i2.j()), j: () => r2.getDate(), d: () => O(i2.j()), t: () => new Date(i2.Y(), i2.n(), 0).getDate(), w: () => r2.getDay(), l: () => o2[i2.w()], D: () => (i2.l() + "").slice(0, 3), G: () => r2.getHours(), g: () => i2.G() % 12 || 12, h: () => O(n2 ? i2.g() : i2.G()), i: () => O(r2.getMinutes()), s: () => O(r2.getSeconds()), a: () => i2.G() > 11 ? "pm" : "am", A: () => i2.a().toUpperCase(), O: () => N }; + return t2.replace(/\.*\\?([a-z])/gi, (e3, t3) => i2[e3] ? i2[e3]() : t3); + }; + const I = (e2, t2, r2, n2 = {}) => { + const { writable: o2 = false, configurable: a2 = false, enumerable: i2 = false } = n2; + Object.defineProperty(e2, t2, { value: r2, writable: o2, configurable: a2, enumerable: i2 }); + }, v = (e2) => { + const t2 = e2, r2 = () => t2 == null, n2 = Object.create({}); + return I(n2, "__value__", t2, { enumerable: true }), I(n2, "__type__", "Maybe", { enumerable: true }), I(n2, "isNil", r2), I(n2, "value", () => t2), I(n2, "map", (e3) => v(r2() ? null : e3(t2))), I(n2, "if", (e3) => v(e3(t2) === true ? t2 : null)), I(n2, "else", (e3) => v(t2 || e3())), n2; + }, T = (e2, t2 = null) => { + const n2 = t2 || new Set(); + if (n2.has(e2)) + return e2; + if (n2.add(e2), c(e2)) + return new Date(e2.valueOf()); + const o2 = (e3) => { + const t3 = Object.create({}); + for (const r2 in e3) + g(e3, r2) && (t3[r2] = T(e3[r2], n2)); + return t3; + }, a2 = (e3) => [...e3].map((e4) => r(e4) ? a2(e4) : s(e4) ? o2(e4) : T(e4, n2)); + return r(e2) ? a2(e2) : s(e2) ? o2(e2) : e2; + }, E = (e2, t2, n2 = false, o2 = []) => { + for (const a2 in e2) + if (!(o2.length > 0 && o2.includes(a2)) && (!n2 || n2 && g(t2, a2))) { + const i2 = e2[a2], l2 = t2[a2]; + s(l2) && s(i2) || r(l2) && r(i2) ? t2[a2] = E(i2, t2[a2], n2, o2) : t2[a2] = T(i2); + } + return t2; + }, _ = (e2, t2) => e2 > t2 ? 1 : e2 < t2 ? -1 : 0, q = (e2 = [], t2 = null) => { + const r2 = [...e2], n2 = t2 || _; + return r2.sort(n2), r2; + }, C = (e2 = []) => { + const t2 = [...e2], r2 = []; + let n2 = t2.length; + for (; n2 > 0; ) { + const e3 = Math.floor(Math.random() * n2); + r2.push(t2.splice(e3, 1)[0]), n2--; + } + return r2; + }; + e.clone = T, e.compose = (...e2) => e2.reduce((e3, t2) => (r2) => e3(t2(r2))), e.copies = E, e.curry = (e2) => { + const t2 = e2.length, r2 = (t3, n2) => t3 > 0 ? (...e3) => r2(t3 - e3.length, [...n2, ...e3]) : e2(...n2); + return r2(t2, []); + }, e.equals = f, e.escapeHTML = (e2) => d(e2).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """), e.genid = (e2, t2 = "") => { + const r2 = "abcdefghijklmnopqrstuvwxyz", n2 = r2.toUpperCase(), o2 = [r2, n2, "0123456789"].join("").split("").sort(() => Math.random() > 0.5).join(""), a2 = o2.length, i2 = Math.max(e2 || 32, t2.length); + let l2 = t2; + for (; l2.length < i2; ) { + const e3 = h(0, a2); + l2 += o2.charAt(e3) || ""; + } + return l2; + }, e.hasProperty = g, e.isArray = r, e.isBoolean = (e2) => Boolean(e2) === e2, e.isDate = c, e.isElement = (e2) => t(e2).match(/^\[object HTML\w*Element]$/) !== null, e.isEmail = (e2) => n(e2) && /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i.test(e2), e.isEmpty = u, e.isFunction = (e2) => t(e2) === "[object Function]", e.isInteger = (e2) => Number.isInteger(e2), e.isLetter = (e2) => n(e2) && /^[a-z]+$/i.test(e2), e.isNil = l, e.isNull = a, e.isNumber = o, e.isObject = s, e.isString = n, e.isUndefined = i, e.maybe = v, e.md5 = (e2) => { + for (var t2 = [], r2 = 0; r2 < 64; ) + t2[r2] = 0 | 4294967296 * Math.abs(Math.sin(++r2)); + for (var n2, o2, a2, i2, l2 = [], s2 = decodeURIComponent(encodeURI(e2)), c2 = s2.length, u2 = [n2 = 1732584193, o2 = -271733879, ~n2, ~o2], g2 = 0; g2 <= c2; ) + l2[g2 >> 2] |= (s2.charCodeAt(g2) || 128) << g2++ % 4 * 8; + for (l2[e2 = 16 * (c2 + 8 >> 6) + 14] = 8 * c2, g2 = 0; g2 < e2; g2 += 16) { + for (c2 = u2, i2 = 0; i2 < 64; ) + c2 = [a2 = c2[3], (n2 = 0 | c2[1]) + ((a2 = c2[0] + [n2 & (o2 = c2[2]) | ~n2 & a2, a2 & n2 | ~a2 & o2, n2 ^ o2 ^ a2, o2 ^ (n2 | ~a2)][c2 = i2 >> 4] + (t2[i2] + (0 | l2[[i2, 5 * i2 + 1, 3 * i2 + 5, 7 * i2][c2] % 16 + g2]))) << (c2 = [7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21][4 * c2 + i2++ % 4]) | a2 >>> 32 - c2), n2, o2]; + for (i2 = 4; i2; ) + u2[--i2] = u2[i2] + c2[i2]; + } + for (e2 = ""; i2 < 32; ) + e2 += (u2[i2 >> 3] >> 4 * (1 ^ 7 & i2++) & 15).toString(16); + return e2; + }, e.now = j, e.pick = (e2 = [], t2 = 1) => { + const r2 = C(e2), n2 = Math.max(1, t2), o2 = Math.min(n2, r2.length - 1); + return r2.splice(0, o2); + }, e.pipe = (...e2) => e2.reduce((e3, t2) => (r2) => t2(e3(r2))), e.randint = h, e.replaceAll = b, e.shuffle = C, e.slugify = (e2, t2 = "-") => y(e2).trim().toLowerCase().replace(/\W+/g, " ").replace(/\s+/g, " ").replace(/\s/g, t2), e.sort = q, e.sortBy = (e2 = [], t2 = 1, r2 = "") => n(r2) && g(e2[0], r2) ? q(e2, (e3, n2) => e3[r2] > n2[r2] ? t2 : e3[r2] < n2[r2] ? -1 * t2 : 0) : e2, e.stripAccent = y, e.stripTags = (e2) => d(e2).replace(/<.*?>/gi, " ").replace(/\s\s+/g, " ").trim(), e.time = D, e.toDateString = A, e.toLocalDateString = (e2 = D()) => { + const t2 = c(e2) ? e2 : new Date(e2); + if (!c(t2)) + throw new Error("InvalidInput: Number or Date required."); + return A(t2, "D, j M Y h:i:s O"); + }, e.toRelativeTime = (e2 = D()) => { + const t2 = c(e2) ? e2 : new Date(e2); + if (!c(t2)) + throw new Error("InvalidInput: Number or Date required."); + let r2 = j() - t2, n2 = parseInt(t2, 10); + if (isNaN(n2) && (n2 = 0), r2 <= n2) + return "Just now"; + let o2 = null; + const a2 = { millisecond: 1, second: 1e3, minute: 60, hour: 60, day: 24, month: 30, year: 12 }; + for (const e3 in a2) { + if (r2 < a2[e3]) + break; + o2 = e3, r2 /= a2[e3]; + } + return r2 = Math.floor(r2), r2 !== 1 && (o2 += "s"), [r2, o2].join(" ") + " ago"; + }, e.toUTCDateString = (e2 = D()) => { + const t2 = c(e2) ? e2 : new Date(e2); + if (!c(t2)) + throw new Error("InvalidInput: Number or Date required."); + const r2 = t2.getMinutes(), n2 = new Date(t2); + return n2.setMinutes(r2 + S), `${A(n2, "D, j M Y h:i:s")} GMT+0000`; + }, e.truncate = (e2, t2) => { + const r2 = d(e2), n2 = t2 || 140; + if (r2.length <= n2) + return r2; + let o2 = r2.substring(0, n2); + const a2 = o2.split(" "); + let i2 = ""; + return a2.length > 1 ? (a2.pop(), i2 += a2.join(" "), i2.length < r2.length && (i2 += "...")) : (o2 = o2.substring(0, n2 - 3), i2 = o2 + "..."), i2; + }, e.ucfirst = m, e.ucwords = (e2) => d(e2).split(" ").map((e3) => m(e3)).join(" "), e.unescapeHTML = (e2) => d(e2).replace(/"/g, '"').replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&"), e.unique = (e2 = []) => [...new Set(e2)], Object.defineProperty(e, "__esModule", { value: true }); + }); + } +}); + +// node_modules/oembed-parser/src/config.js +var require_config = __commonJS({ + "node_modules/oembed-parser/src/config.js"(exports, module2) { + var { clone, copies } = require_bella_min(); + var requestOptions = { + headers: { + "user-agent": "Mozilla/5.0 (X11; Linux i686; rv:94.0) Gecko/20100101 Firefox/94.0", + accept: "application/json; charset=utf-8" + }, + responseType: "json", + responseEncoding: "utf8", + timeout: 6e4, + maxRedirects: 3 + }; + module2.exports = { + getRequestOptions: () => { + return clone(requestOptions); + }, + setRequestOptions: (opts) => { + copies(opts, requestOptions); + } + }; + } +}); + +// node_modules/oembed-parser/src/utils/retrieve.js +var require_retrieve = __commonJS({ + "node_modules/oembed-parser/src/utils/retrieve.js"(exports, module2) { + var axios = require_axios2(); + var { getRequestOptions } = require_config(); + module2.exports = (url) => __async(exports, null, function* () { + try { + const res = yield axios.get(url, getRequestOptions()); + const contentType = res.headers["content-type"] || ""; + if (!contentType || !contentType.includes("application/json")) { + return null; + } + return res.data; + } catch (err) { + return null; + } + }); + } +}); + +// node_modules/oembed-parser/src/utils/fetchEmbed.js +var require_fetchEmbed = __commonJS({ + "node_modules/oembed-parser/src/utils/fetchEmbed.js"(exports, module2) { + var retrieve = require_retrieve(); + var isFacebookGraphDependent = (url) => { + return url.includes("facebook.com") || url.includes("instagram.com"); + }; + var getFacebookGraphToken = () => { + const env = process.env || {}; + const appId = env.FACEBOOK_APP_ID || "845078789498971"; + const clientToken = env.FACEBOOK_CLIENT_TOKEN || "8ff3ab4ddd45b8f018b35c4fb7edac62"; + return `access_token=${appId}|${clientToken}`; + }; + var getRegularUrl = (query, basseUrl) => { + return basseUrl.replace(/\{format\}/g, "json") + "?" + query; + }; + var fetchEmbed = (_0, _1, ..._2) => __async(exports, [_0, _1, ..._2], function* (url, provider, params = {}) { + const queries = [ + "format=json", + `url=${encodeURIComponent(url)}` + ]; + const { + maxwidth = 0, + maxheight = 0 + } = params; + if (maxwidth > 0) { + queries.push(`maxwidth=${maxwidth}`); + } + if (maxheight > 0) { + queries.push(`maxheight=${maxheight}`); + } + if (isFacebookGraphDependent(provider.providerUrl)) { + queries.push(getFacebookGraphToken()); + } + const query = queries.join("&"); + const link = getRegularUrl(query, provider.fetchEndpoint); + const body = retrieve(link); + return body; + }); + module2.exports = fetchEmbed; + } +}); + +// node_modules/oembed-parser/src/utils/getDomain.js +var require_getDomain = __commonJS({ + "node_modules/oembed-parser/src/utils/getDomain.js"(exports, module2) { + module2.exports = (url = "") => { + try { + const { host } = new URL(url); + return host; + } catch (err) { + return ""; + } + }; + } +}); + +// node_modules/oembed-parser/src/utils/providers.json +var require_providers = __commonJS({ + "node_modules/oembed-parser/src/utils/providers.json"(exports, module2) { + module2.exports = [ + { + provider_name: "23HQ", + provider_url: "http://www.23hq.com", + endpoints: [ + { + schemes: [ + "http://www.23hq.com/*/photo/*" + ], + url: "http://www.23hq.com/23/oembed" + } + ] + }, + { + provider_name: "Abraia", + provider_url: "https://abraia.me", + endpoints: [ + { + schemes: [ + "https://store.abraia.me/*" + ], + url: "https://api.abraia.me/oembed", + discovery: true + } + ] + }, + { + provider_name: "ActBlue", + provider_url: "https://secure.actblue.com", + endpoints: [ + { + schemes: [ + "https://secure.actblue.com/donate/*" + ], + url: "https://secure.actblue.com/cf/oembed" + } + ] + }, + { + provider_name: "Adways", + provider_url: "http://www.adways.com", + endpoints: [ + { + schemes: [ + "http://play.adpaths.com/experience/*" + ], + url: "http://play.adpaths.com/oembed/*" + } + ] + }, + { + provider_name: "afreecaTV", + provider_url: "https://www.afreecatv.com", + endpoints: [ + { + schemes: [ + "https://v.afree.ca/ST/", + "https://vod.afreecatv.com/ST/", + "https://vod.afreecatv.com/PLAYER/STATION/" + ], + url: "https://openapi.afreecatv.com/vod/embedinfo", + discovery: true + } + ] + }, + { + provider_name: "Altium LLC", + provider_url: "https://altium.com", + endpoints: [ + { + schemes: [ + "https://altium.com/viewer/*" + ], + url: "https://viewer.altium.com/shell/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Altru", + provider_url: "https://www.altrulabs.com", + endpoints: [ + { + schemes: [ + "https://app.altrulabs.com/*/*?answer_id=*", + "https://app.altrulabs.com/player/*" + ], + url: "https://api.altrulabs.com/api/v1/social/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "amCharts Live Editor", + provider_url: "https://live.amcharts.com/", + endpoints: [ + { + schemes: [ + "http://live.amcharts.com/*", + "https://live.amcharts.com/*" + ], + url: "https://live.amcharts.com/oembed" + } + ] + }, + { + provider_name: "Animatron", + provider_url: "https://www.animatron.com/", + endpoints: [ + { + schemes: [ + "https://www.animatron.com/project/*", + "https://animatron.com/project/*" + ], + url: "https://animatron.com/oembed/json", + discovery: true + } + ] + }, + { + provider_name: "Animoto", + provider_url: "http://animoto.com/", + endpoints: [ + { + schemes: [ + "http://animoto.com/play/*" + ], + url: "http://animoto.com/oembeds/create" + } + ] + }, + { + provider_name: "AnnieMusic", + provider_url: "https://anniemusic.app", + endpoints: [ + { + schemes: [ + "https://anniemusic.app/t/*", + "https://anniemusic.app/p/*" + ], + url: "https://api.anniemusic.app/api/v1/oembed" + } + ] + }, + { + provider_name: "Apester", + provider_url: "https://www.apester.com", + endpoints: [ + { + schemes: [ + "https://renderer.apester.com/v2/*?preview=true&iframe_preview=true" + ], + url: "https://display.apester.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "ArcGIS StoryMaps", + provider_url: "https://storymaps.arcgis.com", + endpoints: [ + { + schemes: [ + "https://storymaps.arcgis.com/stories/*" + ], + url: "https://storymaps.arcgis.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Archivos", + provider_url: "https://app.archivos.digital", + endpoints: [ + { + schemes: [ + "https://app.archivos.digital/app/view/*" + ], + url: "https://app.archivos.digital/oembed/" + } + ] + }, + { + provider_name: "Audioboom", + provider_url: "https://audioboom.com", + endpoints: [ + { + schemes: [ + "https://audioboom.com/channels/*", + "https://audioboom.com/channel/*", + "https://audioboom.com/posts/*" + ], + url: "https://audioboom.com/publishing/oembed/v4.{format}", + formats: [ + "json", + "xml" + ] + } + ] + }, + { + provider_name: "AudioClip", + provider_url: "https://audioclip.naver.com", + endpoints: [ + { + schemes: [ + "https://audioclip.naver.com/channels/*/clips/*", + "https://audioclip.naver.com/audiobooks/*" + ], + url: "https://audioclip.naver.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Audiomack", + provider_url: "https://audiomack.com", + endpoints: [ + { + schemes: [ + "https://audiomack.com/*/song/*", + "https://audiomack.com/*/album/*", + "https://audiomack.com/*/playlist/*" + ], + url: "https://audiomack.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Audiomeans", + provider_url: "https://audiomeans.fr", + endpoints: [ + { + schemes: [ + "https://podcasts.audiomeans.fr/*" + ], + url: "https://podcasts.audiomeans.fr/services/oembed", + discovery: false, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Avocode", + provider_url: "https://www.avocode.com/", + endpoints: [ + { + schemes: [ + "https://app.avocode.com/view/*" + ], + url: "https://stage-embed.avocode.com/api/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Backtracks", + provider_url: "https://backtracks.fm", + endpoints: [ + { + schemes: [ + "https://backtracks.fm/*/*/e/*", + "https://backtracks.fm/*/s/*/*", + "https://backtracks.fm/*/*/*/*/e/*/*", + "https://backtracks.fm/*", + "http://backtracks.fm/*" + ], + url: "https://backtracks.fm/oembed", + discovery: true + } + ] + }, + { + provider_name: "Beautiful.AI", + provider_url: "https://www.beautiful.ai/", + endpoints: [ + { + url: "https://www.beautiful.ai/api/oembed", + discovery: true + } + ] + }, + { + provider_name: "Blackfire.io", + provider_url: "https://blackfire.io", + endpoints: [ + { + schemes: [ + "https://blackfire.io/profiles/*/graph", + "https://blackfire.io/profiles/compare/*/graph" + ], + url: "https://blackfire.io/oembed", + discovery: true + } + ] + }, + { + provider_name: "Blogcast", + provider_url: "https://blogcast.host/", + endpoints: [ + { + schemes: [ + "https://blogcast.host/embed/*", + "https://blogcast.host/embedly/*" + ], + url: "https://blogcast.host/oembed", + discovery: true + } + ] + }, + { + provider_name: "Box Office Buz", + provider_url: "http://boxofficebuz.com", + endpoints: [ + { + url: "http://boxofficebuz.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "BrioVR", + provider_url: "https://view.briovr.com/", + endpoints: [ + { + schemes: [ + "https://view.briovr.com/api/v1/worlds/oembed/*" + ], + url: "https://view.briovr.com/api/v1/worlds/oembed/" + } + ] + }, + { + provider_name: "Buttondown", + provider_url: "https://buttondown.email/", + endpoints: [ + { + schemes: [ + "https://buttondown.email/*" + ], + url: "https://buttondown.email/embed", + formats: [ + "json" + ], + discovery: true + } + ] + }, + { + provider_name: "Byzart Project", + provider_url: "https://cmc.byzart.eu", + endpoints: [ + { + schemes: [ + "https://cmc.byzart.eu/files/*" + ], + url: "https://cmc.byzart.eu/oembed/", + discovery: false + } + ] + }, + { + provider_name: "Cacoo", + provider_url: "https://cacoo.com", + endpoints: [ + { + schemes: [ + "https://cacoo.com/diagrams/*" + ], + url: "http://cacoo.com/oembed.{format}" + } + ] + }, + { + provider_name: "Catapult", + provider_url: "https://www.catapult.app/", + endpoints: [ + { + schemes: [ + "https://www-catapult-app.sandbox.hs-sites.com/video-page*", + "https://www-catapult.app/video-page*" + ], + url: "https://www.catapult.app/_hcms/api/video/oembed", + discovery: true + } + ] + }, + { + provider_name: "CatBoat", + provider_url: "http://img.catbo.at/", + endpoints: [ + { + schemes: [ + "http://img.catbo.at/*" + ], + url: "http://img.catbo.at/oembed.json", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Ceros", + provider_url: "http://www.ceros.com/", + endpoints: [ + { + schemes: [ + "http://view.ceros.com/*" + ], + url: "http://view.ceros.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "ChartBlocks", + provider_url: "http://www.chartblocks.com/", + endpoints: [ + { + schemes: [ + "http://public.chartblocks.com/c/*" + ], + url: "http://embed.chartblocks.com/1.0/oembed" + } + ] + }, + { + provider_name: "chirbit.com", + provider_url: "http://www.chirbit.com/", + endpoints: [ + { + schemes: [ + "http://chirb.it/*" + ], + url: "http://chirb.it/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "CHROCO", + provider_url: "https://chroco.ooo/", + endpoints: [ + { + schemes: [ + "https://chroco.ooo/mypage/*", + "https://chroco.ooo/story/*" + ], + url: "https://chroco.ooo/embed", + discovery: true + } + ] + }, + { + provider_name: "CircuitLab", + provider_url: "https://www.circuitlab.com/", + endpoints: [ + { + schemes: [ + "https://www.circuitlab.com/circuit/*" + ], + url: "https://www.circuitlab.com/circuit/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Clipland", + provider_url: "http://www.clipland.com/", + endpoints: [ + { + schemes: [ + "http://www.clipland.com/v/*", + "https://www.clipland.com/v/*" + ], + url: "https://www.clipland.com/api/oembed", + discovery: true + } + ] + }, + { + provider_name: "Clyp", + provider_url: "http://clyp.it/", + endpoints: [ + { + schemes: [ + "http://clyp.it/*", + "http://clyp.it/playlist/*" + ], + url: "http://api.clyp.it/oembed/", + discovery: true + } + ] + }, + { + provider_name: "CoCo Corp", + provider_url: "https://ilovecoco.video", + endpoints: [ + { + schemes: [ + "https://app.ilovecoco.video/*/embed" + ], + url: "https://app.ilovecoco.video/api/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "CodeHS", + provider_url: "http://www.codehs.com", + endpoints: [ + { + schemes: [ + "https://codehs.com/editor/share_abacus/*" + ], + url: "https://codehs.com/api/sharedprogram/*/oembed/", + discovery: true + } + ] + }, + { + provider_name: "CodePen", + provider_url: "https://codepen.io", + endpoints: [ + { + schemes: [ + "http://codepen.io/*", + "https://codepen.io/*" + ], + url: "https://codepen.io/api/oembed" + } + ] + }, + { + provider_name: "Codepoints", + provider_url: "https://codepoints.net", + endpoints: [ + { + schemes: [ + "http://codepoints.net/*", + "https://codepoints.net/*", + "http://www.codepoints.net/*", + "https://www.codepoints.net/*" + ], + url: "https://codepoints.net/api/v1/oembed", + discovery: true + } + ] + }, + { + provider_name: "CodeSandbox", + provider_url: "https://codesandbox.io", + endpoints: [ + { + schemes: [ + "https://codesandbox.io/s/*", + "https://codesandbox.io/embed/*" + ], + url: "https://codesandbox.io/oembed" + } + ] + }, + { + provider_name: "CollegeHumor", + provider_url: "http://www.collegehumor.com/", + endpoints: [ + { + schemes: [ + "http://www.collegehumor.com/video/*" + ], + url: "http://www.collegehumor.com/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "Commaful", + provider_url: "https://commaful.com", + endpoints: [ + { + schemes: [ + "https://commaful.com/play/*" + ], + url: "https://commaful.com/api/oembed/" + } + ] + }, + { + provider_name: "Coub", + provider_url: "http://coub.com/", + endpoints: [ + { + schemes: [ + "http://coub.com/view/*", + "http://coub.com/embed/*" + ], + url: "http://coub.com/api/oembed.{format}" + } + ] + }, + { + provider_name: "Crowd Ranking", + provider_url: "http://crowdranking.com", + endpoints: [ + { + schemes: [ + "http://crowdranking.com/*/*" + ], + url: "http://crowdranking.com/api/oembed.{format}" + } + ] + }, + { + provider_name: "Cueup DJ Booking", + provider_url: "https://cueup.io", + endpoints: [ + { + schemes: [ + "https://cueup.io/user/*/sounds/*" + ], + url: "https://gql.cueup.io/oembed" + } + ] + }, + { + provider_name: "Curated", + provider_url: "https://curated.co/", + endpoints: [ + { + schemes: [ + "https://*.curated.co/*" + ], + url: "https://api.curated.co/oembed", + formats: [ + "json" + ], + discovery: true + } + ] + }, + { + provider_name: "CustomerDB", + provider_url: "http://customerdb.com/", + endpoints: [ + { + schemes: [ + "https://app.customerdb.com/share/*" + ], + url: "https://app.customerdb.com/embed" + } + ] + }, + { + provider_name: "Dailymotion", + provider_url: "https://www.dailymotion.com", + endpoints: [ + { + schemes: [ + "https://www.dailymotion.com/video/*" + ], + url: "https://www.dailymotion.com/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "DALEXNI", + provider_url: "https://dalexni.com/", + endpoints: [ + { + schemes: [ + "https://dalexni.com/i/*" + ], + url: "https://dalexni.com/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Datawrapper", + provider_url: "http://www.datawrapper.de", + endpoints: [ + { + schemes: [ + "https://datawrapper.dwcdn.net/*" + ], + url: "https://api.datawrapper.de/v3/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Deseret News", + provider_url: "https://www.deseret.com", + endpoints: [ + { + schemes: [ + "https://*.deseret.com/*" + ], + url: "https://embed.deseret.com/" + } + ] + }, + { + provider_name: "Deviantart.com", + provider_url: "http://www.deviantart.com", + endpoints: [ + { + schemes: [ + "http://*.deviantart.com/art/*", + "http://*.deviantart.com/*#/d*", + "http://fav.me/*", + "http://sta.sh/*", + "https://*.deviantart.com/art/*", + "https://*.deviantart.com/*/art/*", + 'https://sta.sh/*",', + 'https://*.deviantart.com/*#/d*"' + ], + url: "http://backend.deviantart.com/oembed" + } + ] + }, + { + provider_name: "Didacte", + provider_url: "https://www.didacte.com/", + endpoints: [ + { + schemes: [ + "https://*.didacte.com/a/course/*" + ], + url: "https://*.didacte.com/cards/oembed", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Digiteka", + provider_url: "https://www.ultimedia.com/", + endpoints: [ + { + schemes: [ + "https://www.ultimedia.com/central/video/edit/id/*/topic_id/*/", + "https://www.ultimedia.com/default/index/videogeneric/id/*/showtitle/1/viewnc/1", + "https://www.ultimedia.com/default/index/videogeneric/id/*" + ], + url: "https://www.ultimedia.com/api/search/oembed", + discovery: true + } + ] + }, + { + provider_name: "DocDroid", + provider_url: "https://www.docdroid.net/", + endpoints: [ + { + schemes: [ + "https://*.docdroid.net/*", + "http://*.docdroid.net/*", + "https://docdro.id/*", + "http://docdro.id/*", + "https://*.docdroid.com/*", + "http://*.docdroid.com/*" + ], + url: "https://www.docdroid.net/api/oembed", + formats: [ + "json" + ], + discovery: true + } + ] + }, + { + provider_name: "Dotsub", + provider_url: "http://dotsub.com/", + endpoints: [ + { + schemes: [ + "http://dotsub.com/view/*" + ], + url: "http://dotsub.com/services/oembed" + } + ] + }, + { + provider_name: "DTube", + provider_url: "https://d.tube/", + endpoints: [ + { + schemes: [ + "https://d.tube/v/*" + ], + url: "https://api.d.tube/oembed", + discovery: true + } + ] + }, + { + provider_name: "eduMedia", + provider_url: "https://www.edumedia-sciences.com/", + endpoints: [ + { + url: "https://www.edumedia-sciences.com/oembed.json", + discovery: true + }, + { + url: "https://www.edumedia-sciences.com/oembed.xml", + discovery: true + } + ] + }, + { + provider_name: "EgliseInfo", + provider_url: "http://egliseinfo.catholique.fr/", + endpoints: [ + { + schemes: [ + "http://egliseinfo.catholique.fr/*" + ], + url: "http://egliseinfo.catholique.fr/api/oembed", + discovery: true + } + ] + }, + { + provider_name: "Embedery", + provider_url: "https://embedery.com/", + endpoints: [ + { + schemes: [ + "https://embedery.com/widget/*" + ], + url: "https://embedery.com/api/oembed", + discovery: true + } + ] + }, + { + provider_name: "Embedly", + provider_url: "http://api.embed.ly/", + endpoints: [ + { + url: "http://api.embed.ly/1/oembed" + } + ] + }, + { + provider_name: "Enystre Music", + provider_url: "https://music.enystre.com", + endpoints: [ + { + schemes: [ + "https://music.enystre.com/lyrics/*" + ], + url: "https://music.enystre.com/oembed", + formats: [ + "json", + "xml" + ], + discovery: true + } + ] + }, + { + provider_name: "Ethfiddle", + provider_url: "https://www.ethfiddle.com/", + endpoints: [ + { + schemes: [ + "https://ethfiddle.com/*" + ], + url: "https://ethfiddle.com/services/oembed/", + discovery: true + } + ] + }, + { + provider_name: "EventLive", + provider_url: "https://eventlive.pro", + endpoints: [ + { + schemes: [ + "https://evt.live/*", + "https://evt.live/*/*", + "https://live.eventlive.pro/*", + "https://live.eventlive.pro/*/*" + ], + url: "https://evt.live/api/oembed", + discovery: true + } + ] + }, + { + provider_name: "Ex.Co", + provider_url: "https://ex.co", + endpoints: [ + { + schemes: [ + "https://app.ex.co/stories/*", + "https://www.playbuzz.com/*" + ], + url: "https://oembed.ex.co/item", + discovery: false + } + ] + }, + { + provider_name: "Eyrie", + provider_url: "https://eyrie.io/", + endpoints: [ + { + schemes: [ + "https://eyrie.io/board/*", + "https://eyrie.io/sparkfun/*" + ], + url: "https://eyrie.io/v1/oembed", + discovery: true + } + ] + }, + { + provider_name: "Facebook", + provider_url: "https://www.facebook.com/", + endpoints: [ + { + schemes: [ + "https://www.facebook.com/*/posts/*", + "https://www.facebook.com/*/activity/*", + "https://www.facebook.com/*/photos/*", + "https://www.facebook.com/photo.php?fbid=*", + "https://www.facebook.com/photos/*", + "https://www.facebook.com/permalink.php?story_fbid=*", + "https://www.facebook.com/media/set?set=*", + "https://www.facebook.com/questions/*", + "https://www.facebook.com/notes/*/*/*" + ], + url: "https://graph.facebook.com/v10.0/oembed_post", + discovery: false + }, + { + schemes: [ + "https://www.facebook.com/*/videos/*", + "https://www.facebook.com/video.php?id=*", + "https://www.facebook.com/video.php?v=*" + ], + url: "https://graph.facebook.com/v10.0/oembed_video", + discovery: false + }, + { + schemes: [ + "https://www.facebook.com/*" + ], + url: "https://graph.facebook.com/v10.0/oembed_page", + discovery: false + } + ] + }, + { + provider_name: "Fader", + provider_url: "https://app.getfader.com", + endpoints: [ + { + schemes: [ + "https://app.getfader.com/projects/*/publish" + ], + url: "https://app.getfader.com/api/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Faithlife TV", + provider_url: "https://faithlifetv.com", + endpoints: [ + { + schemes: [ + "https://faithlifetv.com/items/*", + "https://faithlifetv.com/items/resource/*/*", + "https://faithlifetv.com/media/*", + "https://faithlifetv.com/media/assets/*", + "https://faithlifetv.com/media/resource/*/*" + ], + url: "https://faithlifetv.com/api/oembed", + discovery: true + } + ] + }, + { + provider_name: "Firework", + provider_url: "https://fireworktv.com/", + endpoints: [ + { + schemes: [ + "https://*.fireworktv.com/*", + "https://*.fireworktv.com/embed/*/v/*" + ], + url: "https://www.fireworktv.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "FITE", + provider_url: "https://www.fite.tv/", + endpoints: [ + { + schemes: [ + "https://www.fite.tv/watch/*" + ], + url: "https://www.fite.tv/oembed", + discovery: true + } + ] + }, + { + provider_name: "Flat", + provider_url: "https://flat.io", + endpoints: [ + { + schemes: [ + "https://flat.io/score/*", + "https://*.flat.io/score/*" + ], + url: "https://flat.io/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "Flickr", + provider_url: "https://www.flickr.com/", + endpoints: [ + { + schemes: [ + "http://*.flickr.com/photos/*", + "http://flic.kr/p/*", + "https://*.flickr.com/photos/*", + "https://*.*.flickr.com/*/*", + "http://*.*.flickr.com/*/*", + "https://flic.kr/p/*" + ], + url: "https://www.flickr.com/services/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Flourish", + provider_url: "https://flourish.studio/", + endpoints: [ + { + schemes: [ + "https://public.flourish.studio/visualisation/*", + "https://public.flourish.studio/story/*" + ], + url: "https://app.flourish.studio/api/v1/oembed", + discovery: true + } + ] + }, + { + provider_name: "FOX SPORTS Australia", + provider_url: "http://www.foxsports.com.au", + endpoints: [ + { + schemes: [ + "http://fiso.foxsports.com.au/isomorphic-widget/*", + "https://fiso.foxsports.com.au/isomorphic-widget/*" + ], + url: "https://fiso.foxsports.com.au/oembed" + } + ] + }, + { + provider_name: "FrameBuzz", + provider_url: "https://framebuzz.com/", + endpoints: [ + { + schemes: [ + "http://framebuzz.com/v/*", + "https://framebuzz.com/v/*" + ], + url: "https://framebuzz.com/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Framer", + provider_url: "https://www.framer.com", + endpoints: [ + { + schemes: [ + "https://framer.com/share/*", + "https://framer.com/embed/*" + ], + url: "https://api.framer.com/web/oembed", + discovery: true + } + ] + }, + { + provider_name: "Geograph Britain and Ireland", + provider_url: "https://www.geograph.org.uk/", + endpoints: [ + { + schemes: [ + "http://*.geograph.org.uk/*", + "http://*.geograph.co.uk/*", + "http://*.geograph.ie/*", + "http://*.wikimedia.org/*_geograph.org.uk_*" + ], + url: "http://api.geograph.org.uk/api/oembed" + } + ] + }, + { + provider_name: "Geograph Channel Islands", + provider_url: "http://channel-islands.geograph.org/", + endpoints: [ + { + schemes: [ + "http://*.geograph.org.gg/*", + "http://*.geograph.org.je/*", + "http://channel-islands.geograph.org/*", + "http://channel-islands.geographs.org/*", + "http://*.channel.geographs.org/*" + ], + url: "http://www.geograph.org.gg/api/oembed" + } + ] + }, + { + provider_name: "Geograph Germany", + provider_url: "http://geo-en.hlipp.de/", + endpoints: [ + { + schemes: [ + "http://geo-en.hlipp.de/*", + "http://geo.hlipp.de/*", + "http://germany.geograph.org/*" + ], + url: "http://geo.hlipp.de/restapi.php/api/oembed" + } + ] + }, + { + provider_name: "Getty Images", + provider_url: "http://www.gettyimages.com/", + endpoints: [ + { + schemes: [ + "http://gty.im/*" + ], + url: "http://embed.gettyimages.com/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Gfycat", + provider_url: "https://gfycat.com/", + endpoints: [ + { + schemes: [ + "http://gfycat.com/*", + "http://www.gfycat.com/*", + "https://gfycat.com/*", + "https://www.gfycat.com/*" + ], + url: "https://api.gfycat.com/v1/oembed", + discovery: true + } + ] + }, + { + provider_name: "Gifnote", + provider_url: "https://www.gifnote.com/", + endpoints: [ + { + url: "https://www.gifnote.com/services/oembed", + schemes: [ + "https://www.gifnote.com/play/*" + ], + discovery: true + } + ] + }, + { + provider_name: "GIPHY", + provider_url: "https://giphy.com", + endpoints: [ + { + schemes: [ + "https://giphy.com/gifs/*", + "https://giphy.com/clips/*", + "http://gph.is/*", + "https://media.giphy.com/media/*/giphy.gif" + ], + url: "https://giphy.com/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "GloriaTV", + provider_url: "https://gloria.tv/", + endpoints: [ + { + url: "https://gloria.tv/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Gong", + provider_url: "https://www.gong.io/", + endpoints: [ + { + schemes: [ + "https://app.gong.io/call?id=*" + ], + url: "https://app.gong.io/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Grain", + provider_url: "https://grain.co", + endpoints: [ + { + schemes: [ + "https://grain.co/highlight/*" + ], + url: "http://api.grain.co/_/api/oembed" + } + ] + }, + { + provider_name: "GT Channel", + provider_url: "https://gtchannel.com", + endpoints: [ + { + schemes: [ + "https://gtchannel.com/watch/*" + ], + url: "https://api.luminery.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Gyazo", + provider_url: "https://gyazo.com", + endpoints: [ + { + schemes: [ + "https://gyazo.com/*" + ], + url: "https://api.gyazo.com/api/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "hearthis.at", + provider_url: "https://hearthis.at/", + endpoints: [ + { + schemes: [ + "https://hearthis.at/*/*/", + "https://hearthis.at/*/set/*/" + ], + url: "https://hearthis.at/oembed/?format=json", + discovery: true + } + ] + }, + { + provider_name: "hihaho", + provider_url: "https://www.hihaho.com", + endpoints: [ + { + schemes: [ + "https://player.hihaho.com/*" + ], + url: "https://player.hihaho.com/services/oembed", + formats: [ + "json", + "xml" + ] + } + ] + }, + { + provider_name: "HippoVideo", + provider_url: "https://hippovideo.io", + endpoints: [ + { + schemes: [ + "http://*.hippovideo.io/*", + "https://*.hippovideo.io/*" + ], + url: "https://www.hippovideo.io/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "Homey", + provider_url: "https://homey.app", + endpoints: [ + { + schemes: [ + "https://homey.app/f/*", + "https://homey.app/*/flow/*" + ], + url: "https://homey.app/api/oembed/flow", + discovery: true + } + ] + }, + { + provider_name: "HuffDuffer", + provider_url: "http://huffduffer.com", + endpoints: [ + { + schemes: [ + "http://huffduffer.com/*/*" + ], + url: "http://huffduffer.com/oembed" + } + ] + }, + { + provider_name: "Hulu", + provider_url: "http://www.hulu.com/", + endpoints: [ + { + schemes: [ + "http://www.hulu.com/watch/*" + ], + url: "http://www.hulu.com/api/oembed.{format}" + } + ] + }, + { + provider_name: "Idomoo", + provider_url: "https://idomoo.com/", + endpoints: [ + { + schemes: [ + "https://*.idomoo.com/*" + ], + url: "https://oembed.idomoo.com/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "iFixit", + provider_url: "http://www.iFixit.com", + endpoints: [ + { + schemes: [ + "http://www.ifixit.com/Guide/View/*" + ], + url: "http://www.ifixit.com/Embed" + } + ] + }, + { + provider_name: "IFTTT", + provider_url: "http://www.ifttt.com/", + endpoints: [ + { + schemes: [ + "http://ifttt.com/recipes/*" + ], + url: "http://www.ifttt.com/oembed/", + discovery: true + } + ] + }, + { + provider_name: "iHeartRadio", + provider_url: "https://www.iheart.com", + endpoints: [ + { + schemes: [ + "https://www.iheart.com/podcast/*/*" + ], + url: "https://www.iheart.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Indaco", + provider_url: "https://player.indacolive.com/", + endpoints: [ + { + schemes: [ + "https://player.indacolive.com/player/jwp/clients/*" + ], + url: "https://player.indacolive.com/services/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Infogram", + provider_url: "https://infogram.com/", + endpoints: [ + { + schemes: [ + "https://infogram.com/*" + ], + url: "https://infogram.com/oembed" + } + ] + }, + { + provider_name: "Infoveave", + provider_url: "https://infoveave.net/", + endpoints: [ + { + schemes: [ + "https://*.infoveave.net/E/*", + "https://*.infoveave.net/P/*" + ], + url: "https://infoveave.net/services/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Injurymap", + provider_url: "https://www.injurymap.com/", + endpoints: [ + { + schemes: [ + "https://www.injurymap.com/exercises/*" + ], + url: "https://www.injurymap.com/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "Inoreader", + provider_url: "https://www.inoreader.com", + endpoints: [ + { + schemes: [ + "https://www.inoreader.com/oembed/" + ], + url: "https://www.inoreader.com/oembed/api/", + discovery: true + } + ] + }, + { + provider_name: "inphood", + provider_url: "http://inphood.com/", + endpoints: [ + { + schemes: [ + "http://*.inphood.com/*" + ], + url: "http://api.inphood.com/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Instagram", + provider_url: "https://instagram.com", + endpoints: [ + { + schemes: [ + "http://instagram.com/*/p/*,", + "http://www.instagram.com/*/p/*,", + "https://instagram.com/*/p/*,", + "https://www.instagram.com/*/p/*,", + "http://instagram.com/p/*", + "http://instagr.am/p/*", + "http://www.instagram.com/p/*", + "http://www.instagr.am/p/*", + "https://instagram.com/p/*", + "https://instagr.am/p/*", + "https://www.instagram.com/p/*", + "https://www.instagr.am/p/*", + "http://instagram.com/tv/*", + "http://instagr.am/tv/*", + "http://www.instagram.com/tv/*", + "http://www.instagr.am/tv/*", + "https://instagram.com/tv/*", + "https://instagr.am/tv/*", + "https://www.instagram.com/tv/*", + "https://www.instagr.am/tv/*", + "http://www.instagram.com/reel/*", + "https://www.instagram.com/reel/*", + "http://instagram.com/reel/*", + "https://instagram.com/reel/*", + "http://instagr.am/reel/*", + "https://instagr.am/reel/*" + ], + url: "https://graph.facebook.com/v10.0/instagram_oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Insticator Inc", + provider_url: "https://www.insticator.com/", + endpoints: [ + { + schemes: [ + "https://ppa.insticator.com/embed-unit/*" + ], + url: "https://www.insticator.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Issuu", + provider_url: "https://issuu.com/", + endpoints: [ + { + schemes: [ + "https://issuu.com/*/docs/*" + ], + url: "https://issuu.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Jovian", + provider_url: "https://jovian.ai/", + endpoints: [ + { + schemes: [ + "https://jovian.ml/*", + "https://jovian.ml/viewer*", + "https://*.jovian.ml/*", + "https://jovian.ai/*", + "https://jovian.ai/viewer*", + "https://*.jovian.ai/*" + ], + url: "https://api.jovian.ai/oembed.json", + discovery: true + } + ] + }, + { + provider_name: "KakaoTv", + provider_url: "https://tv.kakao.com/", + endpoints: [ + { + schemes: [ + "https://tv.kakao.com/channel/*/cliplink/*", + "https://tv.kakao.com/m/channel/*/cliplink/*", + "https://tv.kakao.com/channel/v/*", + "https://tv.kakao.com/channel/*/livelink/*", + "https://tv.kakao.com/m/channel/*/livelink/*", + "https://tv.kakao.com/channel/l/*" + ], + url: "https://tv.kakao.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Kickstarter", + provider_url: "http://www.kickstarter.com", + endpoints: [ + { + schemes: [ + "http://www.kickstarter.com/projects/*" + ], + url: "http://www.kickstarter.com/services/oembed" + } + ] + }, + { + provider_name: "Kidoju", + provider_url: "https://www.kidoju.com/", + endpoints: [ + { + schemes: [ + "https://www.kidoju.com/en/x/*/*", + "https://www.kidoju.com/fr/x/*/*" + ], + url: "https://www.kidoju.com/api/oembed" + } + ] + }, + { + provider_name: "Kirim.Email", + provider_url: "https://kirim.email/", + endpoints: [ + { + schemes: [ + "https://halaman.email/form/*", + "https://aplikasi.kirim.email/form/*" + ], + url: "https://halaman.email/service/oembed", + discovery: true + } + ] + }, + { + provider_name: "Kit", + provider_url: "https://kit.co/", + endpoints: [ + { + schemes: [ + "http://kit.co/*/*", + "https://kit.co/*/*" + ], + url: "https://embed.kit.co/oembed", + discovery: true + } + ] + }, + { + provider_name: "Kitchenbowl", + provider_url: "http://www.kitchenbowl.com", + endpoints: [ + { + schemes: [ + "http://www.kitchenbowl.com/recipe/*" + ], + url: "http://www.kitchenbowl.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "kmdr", + provider_url: "https://kmdr.sh", + endpoints: [ + { + schemes: [ + "https://app.kmdr.sh/h/*", + "https://app.kmdr.sh/history/*" + ], + url: "https://api.kmdr.sh/services/oembed" + } + ] + }, + { + provider_name: "Knacki", + provider_url: "http://jdr.knacki.info", + endpoints: [ + { + schemes: [ + "http://jdr.knacki.info/meuh/*", + "https://jdr.knacki.info/meuh/*" + ], + url: "https://jdr.knacki.info/oembed" + } + ] + }, + { + provider_name: "Knowledge Pad", + provider_url: "https://knowledgepad.co/", + endpoints: [ + { + schemes: [ + "https://knowledgepad.co/#/knowledge/*" + ], + url: "https://api.spoonacular.com/knowledge/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Kooapp", + provider_url: "https://kooapp.com", + endpoints: [ + { + schemes: [ + "https://*.kooapp.com/koo/", + "http://*.kooapp.com/koo/" + ], + url: "https://embed-stage.kooapp.com/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "LearningApps.org", + provider_url: "http://learningapps.org/", + endpoints: [ + { + schemes: [ + "http://learningapps.org/*" + ], + url: "http://learningapps.org/oembed.php", + discovery: true + } + ] + }, + { + provider_name: "LeMans.Pod", + provider_url: "https://umotion-test.univ-lemans.fr/", + endpoints: [ + { + schemes: [ + "https://umotion-test.univ-lemans.fr/video/*" + ], + url: "https://umotion-test.univ-lemans.fr/oembed", + discovery: true + } + ] + }, + { + provider_name: "Lille.Pod", + provider_url: "https://pod.univ-lille.fr/", + endpoints: [ + { + schemes: [ + "https://pod.univ-lille.fr/video/*" + ], + url: "https://pod.univ-lille.fr/oembed", + discovery: true + } + ] + }, + { + provider_name: "Livestream", + provider_url: "https://livestream.com/", + endpoints: [ + { + schemes: [ + "https://livestream.com/accounts/*/events/*", + "https://livestream.com/accounts/*/events/*/videos/*", + "https://livestream.com/*/events/*", + "https://livestream.com/*/events/*/videos/*", + "https://livestream.com/*/*", + "https://livestream.com/*/*/videos/*" + ], + url: "https://livestream.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "LottieFiles", + provider_url: "https://lottiefiles.com/", + endpoints: [ + { + schemes: [ + "https://lottiefiles.com/*", + "https://*.lottiefiles.com/*" + ], + url: "https://embed.lottiefiles.com/oembed", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Ludus", + provider_url: "https://ludus.one", + endpoints: [ + { + schemes: [ + "https://app.ludus.one/*" + ], + url: "https://app.ludus.one/oembed", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Lumiere", + provider_url: "https://latd.com", + endpoints: [ + { + schemes: [ + "https://*.lumiere.is/v/*" + ], + url: "https://admin.lumiere.is/api/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "MathEmbed", + provider_url: "http://mathembed.com", + endpoints: [ + { + schemes: [ + "http://mathembed.com/latex?inputText=*", + "http://mathembed.com/latex?inputText=*" + ], + url: "http://mathembed.com/oembed" + } + ] + }, + { + provider_name: "Matterport", + provider_url: "https://matterport.com/", + endpoints: [ + { + url: "https://my.matterport.com/api/v1/models/oembed/", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "me.me", + provider_url: "https://me.me/", + endpoints: [ + { + schemes: [ + "https://me.me/i/*" + ], + url: "https://me.me/oembed", + discovery: true + } + ] + }, + { + provider_name: "MediaLab", + provider_url: "https://www.medialab.co/", + endpoints: [ + { + schemes: [ + "https://*.medialab.app/share/watch/*", + "https://*.medialab.co/share/watch/*", + "https://*.medialab.app/share/social/*", + "https://*.medialab.co/share/social/*", + "https://*.medialab.app/share/embed/*", + "https://*.medialab.co/share/embed/*" + ], + url: "https://*.medialab.(co|app)/api/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Medienarchiv der K\xFCnste - Z\xFCrcher Hochschule der K\xFCnste", + provider_url: "https://medienarchiv.zhdk.ch/", + endpoints: [ + { + schemes: [ + "https://medienarchiv.zhdk.ch/entries/*" + ], + url: "https://medienarchiv.zhdk.ch/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "Mermaid Ink", + provider_url: "https://mermaid.ink", + endpoints: [ + { + schemes: [ + "https://mermaid.ink/img/*", + "https://mermaid.ink/svg/*" + ], + url: "https://mermaid.ink/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "Microsoft Stream", + provider_url: "https://stream.microsoft.com", + endpoints: [ + { + schemes: [ + "https://*.microsoftstream.com/video/*", + "https://*.microsoftstream.com/channel/*" + ], + url: "https://web.microsoftstream.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Minerva", + provider_url: "https://www.minervaknows.com", + endpoints: [ + { + schemes: [ + "https://www.minervaknows.com/featured-recipes/*", + "https://www.minervaknows.com/themes/*", + "https://www.minervaknows.com/themes/*/recipes/*", + "https://app.minervaknows.com/recipes/*", + "https://app.minervaknows.com/recipes/*/follow" + ], + url: "https://oembed.minervaknows.com", + formats: [ + "json" + ], + discovery: true + } + ] + }, + { + provider_name: "MixCloud", + provider_url: "https://mixcloud.com/", + endpoints: [ + { + schemes: [ + "http://www.mixcloud.com/*/*/", + "https://www.mixcloud.com/*/*/" + ], + url: "https://www.mixcloud.com/oembed/" + } + ] + }, + { + provider_name: "Moby Picture", + provider_url: "http://www.mobypicture.com", + endpoints: [ + { + schemes: [ + "http://www.mobypicture.com/user/*/view/*", + "http://moby.to/*" + ], + url: "http://api.mobypicture.com/oEmbed" + } + ] + }, + { + provider_name: "Music Box Maniacs", + provider_url: "https://musicboxmaniacs.com/", + endpoints: [ + { + schemes: [ + "https://musicboxmaniacs.com/explore/melody/*" + ], + url: "https://musicboxmaniacs.com/embed/", + formats: [ + "json" + ], + discovery: true + } + ] + }, + { + provider_name: "myBeweeg", + provider_url: "https://mybeweeg.com", + endpoints: [ + { + schemes: [ + "https://mybeweeg.com/w/*" + ], + url: "https://mybeweeg.com/services/oembed" + } + ] + }, + { + provider_name: "Namchey", + provider_url: "https://namchey.com", + endpoints: [ + { + schemes: [ + "https://namchey.com/embeds/*" + ], + url: "https://namchey.com/api/oembed", + formats: [ + "json", + "xml" + ], + discovery: true + } + ] + }, + { + provider_name: "nanoo.tv", + provider_url: "https://www.nanoo.tv/", + endpoints: [ + { + schemes: [ + "http://*.nanoo.tv/link/*", + "http://nanoo.tv/link/*", + "http://*.nanoo.pro/link/*", + "http://nanoo.pro/link/*", + "https://*.nanoo.tv/link/*", + "https://nanoo.tv/link/*", + "https://*.nanoo.pro/link/*", + "https://nanoo.pro/link/*", + "http://media.zhdk.ch/signatur/*", + "http://new.media.zhdk.ch/signatur/*", + "https://media.zhdk.ch/signatur/*", + "https://new.media.zhdk.ch/signatur/*" + ], + url: "https://www.nanoo.tv/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "Nasjonalbiblioteket", + provider_url: "https://www.nb.no/", + endpoints: [ + { + schemes: [ + "https://www.nb.no/items/*" + ], + url: "https://api.nb.no/catalog/v1/oembed", + discovery: true + } + ] + }, + { + provider_name: "Natural Atlas", + provider_url: "https://naturalatlas.com/", + endpoints: [ + { + schemes: [ + "https://naturalatlas.com/*", + "https://naturalatlas.com/*/*", + "https://naturalatlas.com/*/*/*", + "https://naturalatlas.com/*/*/*/*" + ], + url: "https://naturalatlas.com/oembed.{format}", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "nfb.ca", + provider_url: "http://www.nfb.ca/", + endpoints: [ + { + schemes: [ + "http://*.nfb.ca/film/*" + ], + url: "http://www.nfb.ca/remote/services/oembed/", + discovery: true + } + ] + }, + { + provider_name: "NFTNDX.IO", + provider_url: "https://www.nftndx.io/", + endpoints: [ + { + url: "https://www.nftndx.io/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "NoPaste", + provider_url: "https://nopaste.ml", + endpoints: [ + { + schemes: [ + "https://nopaste.ml/*" + ], + url: "https://oembed.nopaste.ml", + discovery: false + } + ] + }, + { + provider_name: "Observable", + provider_url: "https://observablehq.com", + endpoints: [ + { + schemes: [ + "https://observablehq.com/@*/*", + "https://observablehq.com/d/*", + "https://observablehq.com/embed/*" + ], + url: "https://api.observablehq.com/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Odds.com.au", + provider_url: "https://www.odds.com.au", + endpoints: [ + { + schemes: [ + "https://www.odds.com.au/*", + "https://odds.com.au/*" + ], + url: "https://www.odds.com.au/api/oembed/" + } + ] + }, + { + provider_name: "Odesli (formerly Songlink)", + provider_url: "https://odesli.co", + endpoints: [ + { + schemes: [ + "https://song.link/*", + "https://album.link/*", + "https://artist.link/*", + "https://playlist.link/*", + "https://pods.link/*", + "https://mylink.page/*", + "https://odesli.co/*" + ], + url: "https://song.link/oembed", + formats: [ + "json" + ], + discovery: true + } + ] + }, + { + provider_name: "Odysee", + provider_url: "https://odysee.com", + endpoints: [ + { + schemes: [ + "https://odysee.com/*/*", + "https://odysee.com/*" + ], + url: "https://odysee.com/$/oembed", + discovery: true + } + ] + }, + { + provider_name: "Official FM", + provider_url: "http://official.fm", + endpoints: [ + { + schemes: [ + "http://official.fm/tracks/*", + "http://official.fm/playlists/*" + ], + url: "http://official.fm/services/oembed.{format}" + } + ] + }, + { + provider_name: "Omniscope", + provider_url: "https://omniscope.me/", + endpoints: [ + { + schemes: [ + "https://omniscope.me/*" + ], + url: "https://omniscope.me/_global_/oembed/json", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Omny Studio", + provider_url: "https://omnystudio.com", + endpoints: [ + { + schemes: [ + "https://omny.fm/shows/*" + ], + url: "https://omny.fm/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Ora TV", + provider_url: "http://www.ora.tv/", + endpoints: [ + { + discovery: true, + url: "https://www.ora.tv/oembed/*?format={format}" + } + ] + }, + { + provider_name: "Orbitvu", + provider_url: "https://orbitvu.co", + endpoints: [ + { + schemes: [ + "https://orbitvu.co/001/*/ov3601/view", + "https://orbitvu.co/001/*/ov3601/*/view", + "https://orbitvu.co/001/*/ov3602/*/view", + "https://orbitvu.co/001/*/2/orbittour/*/view", + "https://orbitvu.co/001/*/1/2/orbittour/*/view", + "http://orbitvu.co/001/*/ov3601/view", + "http://orbitvu.co/001/*/ov3601/*/view", + "http://orbitvu.co/001/*/ov3602/*/view", + "http://orbitvu.co/001/*/2/orbittour/*/view", + "http://orbitvu.co/001/*/1/2/orbittour/*/view" + ], + url: "http://orbitvu.co/service/oembed", + discovery: true + } + ] + }, + { + provider_name: "Outplayed.tv", + provider_url: "https://outplayed.tv/", + endpoints: [ + { + schemes: [ + "https://outplayed.tv/media/*" + ], + url: "https://outplayed.tv/oembed", + discovery: true + } + ] + }, + { + provider_name: "Overflow", + provider_url: "https://overflow.io", + endpoints: [ + { + schemes: [ + "https://overflow.io/s/*", + "https://overflow.io/embed/*" + ], + url: "https://overflow.io/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "OZ", + provider_url: "https://www.oz.com/", + endpoints: [ + { + schemes: [ + "https://www.oz.com/*/video/*" + ], + url: "https://core.oz.com/oembed", + formats: [ + "json", + "xml" + ] + } + ] + }, + { + provider_name: "Padlet", + provider_url: "https://padlet.com/", + endpoints: [ + { + schemes: [ + "https://padlet.com/*" + ], + url: "https://padlet.com/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Pastery", + provider_url: "https://www.pastery.net", + endpoints: [ + { + schemes: [ + "http://pastery.net/*", + "https://pastery.net/*", + "http://www.pastery.net/*", + "https://www.pastery.net/*" + ], + url: "https://www.pastery.net/oembed", + discovery: true + } + ] + }, + { + provider_name: "PingVP", + provider_url: "https://www.pingvp.com/", + endpoints: [ + { + url: "https://beta.pingvp.com.kpnis.nl/p/oembed.php", + discovery: true + } + ] + }, + { + provider_name: "Pinpoll", + provider_url: "https://www.pinpoll.com/products/tools", + endpoints: [ + { + schemes: [ + "https://tools.pinpoll.com/embed/*" + ], + url: "https://tools.pinpoll.com/oembed", + discovery: true, + formats: [ + "json", + "xml" + ] + } + ] + }, + { + provider_name: "Pinterest", + provider_url: "https://www.pinterest.com", + endpoints: [ + { + schemes: [ + "https://www.pinterest.com/*" + ], + url: "https://www.pinterest.com/oembed.json", + discovery: true + } + ] + }, + { + provider_name: "PitchHub", + provider_url: "https://www.pitchhub.com/", + endpoints: [ + { + schemes: [ + "https://*.pitchhub.com/en/public/player/*" + ], + url: "https://*.pitchhub.com.com/en/public/oembed", + discovery: true + } + ] + }, + { + provider_name: "Pixdor", + provider_url: "http://www.pixdor.com/", + endpoints: [ + { + schemes: [ + "https://store.pixdor.com/place-marker-widget/*/show", + "https://store.pixdor.com/map/*/show" + ], + url: "https://store.pixdor.com/oembed", + formats: [ + "json", + "xml" + ], + discovery: true + } + ] + }, + { + provider_name: "Podbean", + provider_url: "http://podbean.com", + endpoints: [ + { + schemes: [ + "https://*.podbean.com/e/*", + "http://*.podbean.com/e/*" + ], + url: "https://api.podbean.com/v1/oembed" + } + ] + }, + { + provider_name: "Poll Daddy", + provider_url: "http://polldaddy.com", + endpoints: [ + { + schemes: [ + "http://*.polldaddy.com/s/*", + "http://*.polldaddy.com/poll/*", + "http://*.polldaddy.com/ratings/*" + ], + url: "http://polldaddy.com/oembed/" + } + ] + }, + { + provider_name: "Portfolium", + provider_url: "https://portfolium.com", + endpoints: [ + { + schemes: [ + "https://portfolium.com/entry/*" + ], + url: "https://api.portfolium.com/oembed" + } + ] + }, + { + provider_name: "Present", + provider_url: "https://present.do", + endpoints: [ + { + schemes: [ + "https://present.do/decks/*" + ], + url: "https://gateway.cobalt.run/present/decks/oembed", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Prezi Video", + provider_url: "https://prezi.com/", + endpoints: [ + { + schemes: [ + "https://prezi.com/v/*", + "https://*.prezi.com/v/*" + ], + url: "https://prezi.com/v/oembed", + discovery: true + } + ] + }, + { + provider_name: "Quiz.biz", + provider_url: "http://www.quiz.biz/", + endpoints: [ + { + schemes: [ + "http://www.quiz.biz/quizz-*.html" + ], + url: "http://www.quiz.biz/api/oembed", + discovery: true + } + ] + }, + { + provider_name: "Quizz.biz", + provider_url: "http://www.quizz.biz/", + endpoints: [ + { + schemes: [ + "http://www.quizz.biz/quizz-*.html" + ], + url: "http://www.quizz.biz/api/oembed", + discovery: true + } + ] + }, + { + provider_name: "RadioPublic", + provider_url: "https://radiopublic.com", + endpoints: [ + { + schemes: [ + "https://play.radiopublic.com/*", + "https://radiopublic.com/*", + "https://www.radiopublic.com/*", + "http://play.radiopublic.com/*", + "http://radiopublic.com/*", + "http://www.radiopublic.com/*", + "https://*.radiopublic.com/*'" + ], + url: "https://oembed.radiopublic.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Raindrop", + provider_url: "https://raindrop.io", + endpoints: [ + { + schemes: [ + "https://raindrop.io/*", + "https://raindrop.io/*/*", + "https://raindrop.io/*/*/*", + "https://raindrop.io/*/*/*/*" + ], + url: "https://pub.raindrop.io/api/oembed", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "rcvis", + provider_url: "https://www.rcvis.com/", + endpoints: [ + { + schemes: [ + "https://www.rcvis.com/v/*", + "https://www.rcvis.com/visualize=*", + "https://www.rcvis.com/ve/*", + "https://www.rcvis.com/visualizeEmbedded=*" + ], + url: "https://animatron.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Reddit", + provider_url: "https://reddit.com/", + endpoints: [ + { + schemes: [ + "https://reddit.com/r/*/comments/*/*", + "https://www.reddit.com/r/*/comments/*/*" + ], + url: "https://www.reddit.com/oembed" + } + ] + }, + { + provider_name: "ReleaseWire", + provider_url: "http://www.releasewire.com/", + endpoints: [ + { + schemes: [ + "http://rwire.com/*" + ], + url: "http://publisher.releasewire.com/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Replit", + provider_url: "https://replit.com/", + endpoints: [ + { + schemes: [ + "https://repl.it/@*/*", + "https://replit.com/@*/*" + ], + url: "https://replit.com/data/oembed", + discovery: true + } + ] + }, + { + provider_name: "ReverbNation", + provider_url: "https://www.reverbnation.com/", + endpoints: [ + { + schemes: [ + "https://www.reverbnation.com/*", + "https://www.reverbnation.com/*/songs/*" + ], + url: "https://www.reverbnation.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Roomshare", + provider_url: "http://roomshare.jp", + endpoints: [ + { + schemes: [ + "http://roomshare.jp/post/*", + "http://roomshare.jp/en/post/*" + ], + url: "http://roomshare.jp/en/oembed.{format}" + } + ] + }, + { + provider_name: "RoosterTeeth", + provider_url: "https://roosterteeth.com", + endpoints: [ + { + schemes: [ + "https://roosterteeth.com/*" + ], + url: "https://roosterteeth.com/oembed", + formats: [ + "json" + ], + discovery: true + } + ] + }, + { + provider_name: "Rumble", + provider_url: "https://rumble.com/", + endpoints: [ + { + url: "https://rumble.com/api/Media/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "Runkit", + provider_url: "https://runkit.com", + endpoints: [ + { + schemes: [ + "http://embed.runkit.com/*,", + "https://embed.runkit.com/*," + ], + url: "https://embed.runkit.com/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Saooti", + provider_url: "https://octopus.saooti.com", + endpoints: [ + { + schemes: [ + "https://octopus.saooti.com/main/pub/podcast/*" + ], + url: "https://octopus.saooti.com/oembed" + } + ] + }, + { + provider_name: "Sapo Videos", + provider_url: "http://videos.sapo.pt", + endpoints: [ + { + schemes: [ + "http://videos.sapo.pt/*" + ], + url: "http://videos.sapo.pt/oembed" + } + ] + }, + { + provider_name: "Screen9", + provider_url: "http://www.screen9.com/", + endpoints: [ + { + schemes: [ + "https://console.screen9.com/*", + "https://*.screen9.tv/*" + ], + url: "https://api.screen9.com/oembed" + } + ] + }, + { + provider_name: "Screencast.com", + provider_url: "http://www.screencast.com/", + endpoints: [ + { + schemes: [ + "http://www.screencast.com/*" + ], + url: "https://api.screencast.com/external/oembed", + discovery: true + } + ] + }, + { + provider_name: "Screenr", + provider_url: "http://www.screenr.com/", + endpoints: [ + { + schemes: [ + "http://www.screenr.com/*/" + ], + url: "http://www.screenr.com/api/oembed.{format}" + } + ] + }, + { + provider_name: "ScribbleMaps", + provider_url: "https://scribblemaps.com", + endpoints: [ + { + schemes: [ + "http://www.scribblemaps.com/maps/view/*", + "https://www.scribblemaps.com/maps/view/*", + "http://scribblemaps.com/maps/view/*", + "https://scribblemaps.com/maps/view/*" + ], + url: "https://scribblemaps.com/api/services/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "Scribd", + provider_url: "http://www.scribd.com/", + endpoints: [ + { + schemes: [ + "http://www.scribd.com/doc/*" + ], + url: "http://www.scribd.com/services/oembed/" + } + ] + }, + { + provider_name: "SendtoNews", + provider_url: "http://www.sendtonews.com/", + endpoints: [ + { + schemes: [ + "https://embed.sendtonews.com/oembed/*" + ], + url: "https://embed.sendtonews.com/services/oembed", + discovery: true, + formats: [ + "json", + "xml" + ] + } + ] + }, + { + provider_name: "ShortNote", + provider_url: "https://www.shortnote.jp/", + endpoints: [ + { + schemes: [ + "https://www.shortnote.jp/view/notes/*" + ], + url: "https://www.shortnote.jp/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Shoudio", + provider_url: "http://shoudio.com", + endpoints: [ + { + schemes: [ + "http://shoudio.com/*", + "http://shoud.io/*" + ], + url: "http://shoudio.com/api/oembed" + } + ] + }, + { + provider_name: "Show by Animaker", + provider_url: "https://getshow.io/", + endpoints: [ + { + schemes: [ + "https://app.getshow.io/iframe/*", + "https://*.getshow.io/share/*" + ], + url: "https://api.getshow.io/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "Show the Way, actionable location info", + provider_url: "https://showtheway.io", + endpoints: [ + { + schemes: [ + "https://showtheway.io/to/*" + ], + url: "https://showtheway.io/oembed", + discovery: true + } + ] + }, + { + provider_name: "Simplecast", + provider_url: "https://simplecast.com", + endpoints: [ + { + schemes: [ + "https://simplecast.com/s/*" + ], + url: "https://simplecast.com/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Sizzle", + provider_url: "https://onsizzle.com/", + endpoints: [ + { + schemes: [ + "https://onsizzle.com/i/*" + ], + url: "https://onsizzle.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Sketchfab", + provider_url: "http://sketchfab.com", + endpoints: [ + { + schemes: [ + "http://sketchfab.com/*models/*", + "https://sketchfab.com/*models/*", + "https://sketchfab.com/*/folders/*" + ], + url: "http://sketchfab.com/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "SlideShare", + provider_url: "http://www.slideshare.net/", + endpoints: [ + { + schemes: [ + "https://www.slideshare.net/*/*", + "http://www.slideshare.net/*/*", + "https://fr.slideshare.net/*/*", + "http://fr.slideshare.net/*/*", + "https://de.slideshare.net/*/*", + "http://de.slideshare.net/*/*", + "https://es.slideshare.net/*/*", + "http://es.slideshare.net/*/*", + "https://pt.slideshare.net/*/*", + "http://pt.slideshare.net/*/*" + ], + url: "https://www.slideshare.net/api/oembed/2", + discovery: true + } + ] + }, + { + provider_name: "SmashNotes", + provider_url: "https://smashnotes.com", + endpoints: [ + { + schemes: [ + "https://smashnotes.com/p/*", + "https://smashnotes.com/p/*/e/* - https://smashnotes.com/p/*/e/*/s/*" + ], + url: "https://smashnotes.com/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "Smrthi", + provider_url: "https://www.smrthi.com", + endpoints: [ + { + schemes: [ + "https://www.smrthi.com/book/*" + ], + url: "https://www.smrthi.com/api/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "SmugMug", + provider_url: "https://www.smugmug.com/", + endpoints: [ + { + schemes: [ + "http://*.smugmug.com/*", + "https://*.smugmug.com/*" + ], + url: "https://api.smugmug.com/services/oembed/", + discovery: true + } + ] + }, + { + provider_name: "SocialExplorer", + provider_url: "https://www.socialexplorer.com/", + endpoints: [ + { + schemes: [ + "https://www.socialexplorer.com/*/explore", + "https://www.socialexplorer.com/*/view", + "https://www.socialexplorer.com/*/edit", + "https://www.socialexplorer.com/*/embed" + ], + url: "https://www.socialexplorer.com/services/oembed/", + discovery: true + } + ] + }, + { + provider_name: "SoundCloud", + provider_url: "http://soundcloud.com/", + endpoints: [ + { + schemes: [ + "http://soundcloud.com/*", + "https://soundcloud.com/*", + "https://soundcloud.app.goog.gl/*" + ], + url: "https://soundcloud.com/oembed" + } + ] + }, + { + provider_name: "SpeakerDeck", + provider_url: "https://speakerdeck.com", + endpoints: [ + { + schemes: [ + "http://speakerdeck.com/*/*", + "https://speakerdeck.com/*/*" + ], + url: "https://speakerdeck.com/oembed.json", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Spotify", + provider_url: "https://spotify.com/", + endpoints: [ + { + schemes: [ + "https://open.spotify.com/*", + "spotify:*" + ], + url: "https://open.spotify.com/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Spreaker", + provider_url: "https://www.spreaker.com/", + endpoints: [ + { + schemes: [ + "http://*.spreaker.com/*", + "https://*.spreaker.com/*" + ], + url: "https://api.spreaker.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "SproutVideo", + provider_url: "https://sproutvideo.com", + endpoints: [ + { + schemes: [ + "https://sproutvideo.com/videos/*", + "https://*.vids.io/videos/*" + ], + url: "http://sproutvideo.com/oembed.{format}", + formats: [ + "json", + "xml" + ], + discovery: true + } + ] + }, + { + provider_name: "Stanford Digital Repository", + provider_url: "https://purl.stanford.edu/", + endpoints: [ + { + schemes: [ + "https://purl.stanford.edu/*" + ], + url: "https://purl.stanford.edu/embed.{format}", + discovery: true + } + ] + }, + { + provider_name: "Streamable", + provider_url: "https://streamable.com/", + endpoints: [ + { + schemes: [ + "http://streamable.com/*", + "https://streamable.com/*" + ], + url: "https://api.streamable.com/oembed.json", + discovery: true + } + ] + }, + { + provider_name: "Streamio", + provider_url: "https://www.streamio.com", + endpoints: [ + { + schemes: [ + "https://s3m.io/*", + "https://23m.io/*" + ], + url: "https://streamio.com/api/v1/oembed", + discovery: true + } + ] + }, + { + provider_name: "Subscribi", + provider_url: "https://subscribi.io/", + endpoints: [ + { + schemes: [ + "https://subscribi.io/api/oembed*" + ], + url: "https://subscribi.io/api/oembed", + discovery: true + } + ] + }, + { + provider_name: "Sudomemo", + provider_url: "https://www.sudomemo.net/", + endpoints: [ + { + schemes: [ + "https://www.sudomemo.net/watch/*", + "http://www.sudomemo.net/watch/*", + "https://flipnot.es/*", + "http://flipnot.es/*" + ], + url: "https://www.sudomemo.net/oembed", + discovery: true + } + ] + }, + { + provider_name: "Sutori", + provider_url: "https://www.sutori.com/", + endpoints: [ + { + schemes: [ + "https://www.sutori.com/story/*" + ], + url: "https://www.sutori.com/api/oembed", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Sway", + provider_url: "https://www.sway.com", + endpoints: [ + { + schemes: [ + "https://sway.com/*", + "https://www.sway.com/*" + ], + url: "https://sway.com/api/v1.0/oembed", + discovery: true + } + ] + }, + { + provider_name: "TED", + provider_url: "https://www.ted.com", + endpoints: [ + { + schemes: [ + "http://ted.com/talks/*", + "https://ted.com/talks/*", + "https://www.ted.com/talks/*" + ], + url: "https://www.ted.com/services/v1/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "The New York Times", + provider_url: "https://www.nytimes.com", + endpoints: [ + { + schemes: [ + "https://www.nytimes.com/svc/oembed", + "https://nytimes.com/*", + "https://*.nytimes.com/*" + ], + url: "https://www.nytimes.com/svc/oembed/json/", + discovery: true + } + ] + }, + { + provider_name: "They Said So", + provider_url: "https://theysaidso.com/", + endpoints: [ + { + schemes: [ + "https://theysaidso.com/image/*" + ], + url: "https://theysaidso.com/extensions/oembed/", + discovery: true + } + ] + }, + { + provider_name: "TickCounter", + provider_url: "https://www.tickcounter.com", + endpoints: [ + { + schemes: [ + "http://www.tickcounter.com/countdown/*", + "http://www.tickcounter.com/countup/*", + "http://www.tickcounter.com/ticker/*", + "http://www.tickcounter.com/worldclock/*", + "https://www.tickcounter.com/countdown/*", + "https://www.tickcounter.com/countup/*", + "https://www.tickcounter.com/ticker/*", + "https://www.tickcounter.com/worldclock/*" + ], + url: "https://www.tickcounter.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "TikTok", + provider_url: "http://www.tiktok.com/", + endpoints: [ + { + schemes: [ + "https://www.tiktok.com/*/video/*" + ], + url: "https://www.tiktok.com/oembed" + } + ] + }, + { + provider_name: "Toornament", + provider_url: "https://www.toornament.com/", + endpoints: [ + { + schemes: [ + "https://www.toornament.com/tournaments/*/information", + "https://www.toornament.com/tournaments/*/registration/", + "https://www.toornament.com/tournaments/*/matches/schedule", + "https://www.toornament.com/tournaments/*/stages/*/" + ], + url: "https://widget.toornament.com/oembed", + discovery: true, + formats: [ + "json", + "xml" + ] + } + ] + }, + { + provider_name: "Topy", + provider_url: "http://www.topy.se/", + endpoints: [ + { + schemes: [ + "http://www.topy.se/image/*" + ], + url: "http://www.topy.se/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Totango", + provider_url: "https://totango.com", + endpoints: [ + { + schemes: [ + "https://app-test.totango.com/*" + ], + url: "https://app-test.totango.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Trinity Audio", + provider_url: "https://trinityaudio.ai", + endpoints: [ + { + schemes: [ + "https://trinitymedia.ai/player/*", + "http://trinitymedia.ai/player/*" + ], + url: "https://trinitymedia.ai/player/trinity-oembed", + discovery: true + } + ] + }, + { + provider_name: "Tumblr", + provider_url: "https://www.tumblr.com", + endpoints: [ + { + schemes: [ + "https://*.tumblr.com/post/*" + ], + url: "https://www.tumblr.com/oembed/1.0" + } + ] + }, + { + provider_name: "Tuxx", + provider_url: "https://www.tuxx.be/", + endpoints: [ + { + schemes: [ + "https://www.tuxx.be/*" + ], + url: "https://www.tuxx.be/services/oembed", + discovery: true + } + ] + }, + { + provider_name: "tvcf", + provider_url: "http://tvcf.co.kr", + endpoints: [ + { + schemes: [ + "https://play.tvcf.co.kr/*", + "https://*.tvcf.co.kr/*" + ], + url: "https://play.tvcf.co.kr/rest/oembed" + } + ] + }, + { + provider_name: "Twitter", + provider_url: "http://www.twitter.com/", + endpoints: [ + { + schemes: [ + "https://twitter.com/*/status/*", + "https://*.twitter.com/*/status/*" + ], + url: "https://publish.twitter.com/oembed" + } + ] + }, + { + provider_name: "TypeCast", + provider_url: "https://typecast.ai", + endpoints: [ + { + schemes: [ + "https://play.typecast.ai/s/*", + "https://play.typecast.ai/e/*", + "https://play.typecast.ai/*" + ], + url: "https://play.typecast.ai/oembed" + } + ] + }, + { + provider_name: "Typlog", + provider_url: "https://typlog.com", + endpoints: [ + { + url: "https://typlog.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "UAPod", + provider_url: "https://uapod.univ-antilles.fr/", + endpoints: [ + { + schemes: [ + "https://uapod.univ-antilles.fr/video/*" + ], + url: "https://uapod.univ-antilles.fr/oembed", + discovery: true + } + ] + }, + { + provider_name: "University of Cambridge Map", + provider_url: "https://map.cam.ac.uk", + endpoints: [ + { + schemes: [ + "https://map.cam.ac.uk/*" + ], + url: "https://map.cam.ac.uk/oembed/" + } + ] + }, + { + provider_name: "UnivParis1.Pod", + provider_url: "https://mediatheque.univ-paris1.fr/", + endpoints: [ + { + schemes: [ + "https://mediatheque.univ-paris1.fr/video/*" + ], + url: "https://mediatheque.univ-paris1.fr/oembed", + discovery: true + } + ] + }, + { + provider_name: "Upec.Pod", + provider_url: "https://pod.u-pec.fr/", + endpoints: [ + { + schemes: [ + "https://pod.u-pec.fr/video/*" + ], + url: "https://pod.u-pec.fr/oembed", + discovery: true + } + ] + }, + { + provider_name: "Ustream", + provider_url: "http://www.ustream.tv", + endpoints: [ + { + schemes: [ + "http://*.ustream.tv/*", + "http://*.ustream.com/*" + ], + url: "http://www.ustream.tv/oembed", + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "uStudio, Inc.", + provider_url: "https://www.ustudio.com", + endpoints: [ + { + schemes: [ + "https://*.ustudio.com/embed/*", + "https://*.ustudio.com/embed/*/*" + ], + url: "https://app.ustudio.com/api/v2/oembed", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "VeeR VR", + provider_url: "http://veer.tv/", + endpoints: [ + { + schemes: [ + "http://veer.tv/videos/*" + ], + url: "https://api.veer.tv/oembed", + discovery: true + }, + { + schemes: [ + "http://veervr.tv/videos/*" + ], + url: "https://api.veervr.tv/oembed", + discovery: true + } + ] + }, + { + provider_name: "Verse", + provider_url: "http://verse.com/", + endpoints: [ + { + url: "http://verse.com/services/oembed/" + } + ] + }, + { + provider_name: "VEVO", + provider_url: "http://www.vevo.com/", + endpoints: [ + { + schemes: [ + "http://www.vevo.com/*", + "https://www.vevo.com/*" + ], + url: "https://www.vevo.com/oembed", + discovery: false + } + ] + }, + { + provider_name: "Videfit", + provider_url: "https://videfit.com/", + endpoints: [ + { + schemes: [ + "https://videfit.com/videos/*" + ], + url: "https://videfit.com/oembed", + discovery: false + } + ] + }, + { + provider_name: "Vidyard", + provider_url: "https://vidyard.com", + endpoints: [ + { + schemes: [ + "http://*.vidyard.com/*", + "https://*.vidyard.com/*", + "http://*.hubs.vidyard.com/*", + "https://*.hubs.vidyard.com/*" + ], + url: "https://api.vidyard.com/dashboard/v1.1/oembed", + discovery: true + } + ] + }, + { + provider_name: "Vimeo", + provider_url: "https://vimeo.com/", + endpoints: [ + { + schemes: [ + "https://vimeo.com/*", + "https://vimeo.com/album/*/video/*", + "https://vimeo.com/channels/*/*", + "https://vimeo.com/groups/*/videos/*", + "https://vimeo.com/ondemand/*/*", + "https://player.vimeo.com/video/*" + ], + url: "https://vimeo.com/api/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "Viously", + provider_url: "https://www.viously.com", + endpoints: [ + { + schemes: [ + "https://www.viously.com/*/*" + ], + url: "https://www.viously.com/oembed", + discovery: true, + formats: [ + "json", + "xml" + ] + } + ] + }, + { + provider_name: "Vizydrop", + provider_url: "https://vizydrop.com", + endpoints: [ + { + schemes: [ + "https://vizydrop.com/shared/*" + ], + url: "https://vizydrop.com/oembed" + } + ] + }, + { + provider_name: "Vlipsy", + provider_url: "https://vlipsy.com/", + endpoints: [ + { + schemes: [ + "https://vlipsy.com/*" + ], + url: "https://vlipsy.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "VLIVE", + provider_url: "https://www.vlive.tv", + endpoints: [ + { + url: "https://www.vlive.tv/oembed", + schemes: [ + "https://www.vlive.tv/video/*" + ], + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "VoxSnap", + provider_url: "https://voxsnap.com/", + endpoints: [ + { + schemes: [ + "https://article.voxsnap.com/*/*" + ], + url: "https://data.voxsnap.com/oembed", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Waltrack", + provider_url: "https://waltrack/net", + endpoints: [ + { + schemes: [ + "https://waltrack.net/product/*" + ], + url: "https://waltrack.net/oembed", + discovery: true + } + ] + }, + { + provider_name: "Wave.video", + provider_url: "https://wave.video", + endpoints: [ + { + schemes: [ + "https://watch.wave.video/*", + "https://embed.wave.video/*" + ], + url: "https://embed.wave.video/oembed", + discovery: true + } + ] + }, + { + provider_name: "wecandeo", + provider_url: "https://www.wecandeo.com/", + endpoints: [ + { + url: "https://play.wecandeo.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Wiredrive", + provider_url: "https://www.wiredrive.com/", + endpoints: [ + { + schemes: [ + "https://*.wiredrive.com/*" + ], + url: "http://*.wiredrive.com/present-oembed/", + formats: [ + "json" + ], + discovery: true + } + ] + }, + { + provider_name: "Wistia, Inc.", + provider_url: "https://wistia.com/", + endpoints: [ + { + schemes: [ + "https://fast.wistia.com/embed/iframe/*", + "https://fast.wistia.com/embed/playlists/*", + "https://*.wistia.com/medias/*" + ], + url: "https://fast.wistia.com/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "wizer.me", + provider_url: "https://www.wizer.me/", + endpoints: [ + { + schemes: [ + "https://*.wizer.me/learn/*", + "https://*.wizer.me/preview/*" + ], + url: "https://app.wizer.me/api/oembed.{format}", + discovery: true + } + ] + }, + { + provider_name: "Wokwi", + provider_url: "https://wokwi.com", + endpoints: [ + { + schemes: [ + "https://wokwi.com/share/*" + ], + url: "https://wokwi.com/api/oembed", + discovery: true, + formats: [ + "json" + ] + } + ] + }, + { + provider_name: "Wolfram Cloud", + provider_url: "https://www.wolframcloud.com", + endpoints: [ + { + schemes: [ + "https://*.wolframcloud.com/*" + ], + url: "https://www.wolframcloud.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "WordPress.com", + provider_url: "http://wordpress.com/", + endpoints: [ + { + schemes: [ + "https://wordpress.com/*", + "http://wordpress.com/*", + "https://*.wordpress.com/*", + "http://*.wordpress.com/*", + "https://*.*.wordpress.com/*", + "http://*.*.wordpress.com/*", + "https://wp.me/*", + "http://wp.me/*" + ], + url: "http://public-api.wordpress.com/oembed/", + discovery: true + } + ] + }, + { + provider_name: "YouTube", + provider_url: "https://www.youtube.com/", + endpoints: [ + { + schemes: [ + "https://*.youtube.com/watch*", + "https://*.youtube.com/v/*", + "https://youtu.be/*", + "https://*.youtube.com/playlist?list=*", + "https://youtube.com/playlist?list=*" + ], + url: "https://www.youtube.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "Zeplin", + provider_url: "https://zeplin.io", + endpoints: [ + { + schemes: [ + "https://app.zeplin.io/project/*/screen/*", + "https://app.zeplin.io/project/*/screen/*/version/*", + "https://app.zeplin.io/project/*/styleguide/components?coid=*", + "https://app.zeplin.io/styleguide/*/components?coid=*" + ], + url: "https://app.zeplin.io/embed", + discovery: true + } + ] + }, + { + provider_name: "ZingSoft", + provider_url: "https://app.zingsoft.com", + endpoints: [ + { + schemes: [ + "https://app.zingsoft.com/embed/*", + "https://app.zingsoft.com/view/*" + ], + url: "https://app.zingsoft.com/oembed", + discovery: true + } + ] + }, + { + provider_name: "ZnipeTV", + provider_url: "https://www.znipe.tv/", + endpoints: [ + { + schemes: [ + "https://*.znipe.tv/*" + ], + url: "https://api.znipe.tv/v3/oembed/", + discovery: true + } + ] + }, + { + provider_name: "Zoomable", + provider_url: "https://zoomable.ca/", + endpoints: [ + { + schemes: [ + "https://srv2.zoomable.ca/viewer.php*" + ], + url: "https://srv2.zoomable.ca/oembed", + discovery: true + } + ] + } + ]; + } +}); + +// node_modules/oembed-parser/src/utils/provider.js +var require_provider = __commonJS({ + "node_modules/oembed-parser/src/utils/provider.js"(exports, module2) { + var isValidURL = require_isValidURL(); + var getDomain = require_getDomain(); + var defaultProviderList = require_providers(); + var providersFromList = (providers = []) => { + return providers.map((provider) => { + const { provider_url: url } = provider; + provider.domain = getDomain(url); + return provider; + }).filter((provider) => { + return provider.domain !== ""; + }); + }; + var store = { + providers: providersFromList(defaultProviderList) + }; + var get = () => { + return [...store.providers]; + }; + var set = (providers = []) => { + store.providers = providersFromList(providers); + return store.providers.length; + }; + var getEndpoint = (url, domain, endpoints) => { + for (let i = 0; i < endpoints.length; i++) { + const endpoint = endpoints[i]; + const { schemes = [], url: endpointUrl } = endpoint; + if (schemes.length === 0) { + const endpointDomain = getDomain(endpointUrl); + if (endpointDomain === domain) { + return endpoint; + } + } + const isMatchedScheme = schemes.some((scheme) => { + const reg = new RegExp(scheme.replace(/\*/g, "(.*)").replace(/\?/g, "\\?").replace(/,$/g, ""), "i"); + return url.match(reg); + }); + if (isMatchedScheme) { + return endpoint; + } + } + return null; + }; + var find = (url = "") => { + if (!isValidURL(url)) { + return null; + } + const domain = getDomain(url); + const providers = get(); + for (let i = 0; i < providers.length; i++) { + const prov = providers[i]; + const { + endpoints, + provider_name: providerName, + provider_url: providerUrl + } = prov; + const endpoint = getEndpoint(url, domain, endpoints); + if (endpoint) { + return { + fetchEndpoint: endpoint.url, + providerName, + providerUrl + }; + } + } + return null; + }; + var has = (url = "") => { + return find(url) !== null; + }; + module2.exports = { + get, + set, + find, + has + }; + } +}); + +// node_modules/oembed-parser/src/main.js +var require_main = __commonJS({ + "node_modules/oembed-parser/src/main.js"(exports, module2) { + var isValidURL = require_isValidURL(); + var fetchEmbed = require_fetchEmbed(); + var provider = require_provider(); + var { + setRequestOptions + } = require_config(); + var extract2 = (_0, ..._1) => __async(exports, [_0, ..._1], function* (url, params = {}) { + if (!isValidURL(url)) { + throw new Error("Invalid input URL"); + } + const p = provider.find(url); + if (!p) { + throw new Error(`No provider found with given url "${url}"`); + } + const data = yield fetchEmbed(url, p, params); + return data; + }); + module2.exports = { + extract: extract2, + hasProvider: provider.has, + findProvider: provider.find, + setProviderList: provider.set, + setRequestOptions + }; + } +}); + +// node_modules/oembed-parser/package.json +var require_package = __commonJS({ + "node_modules/oembed-parser/package.json"(exports, module2) { + module2.exports = { + version: "2.0.0", + name: "oembed-parser", + description: "Get oEmbed data from given URL.", + homepage: "https://www.npmjs.com/package/oembed-parser", + repository: { + type: "git", + url: "git@github.com:ndaidong/oembed-parser.git" + }, + author: "@ndaidong", + main: "./index.js", + types: "./index.d.ts", + engines: { + node: ">= 10.14.2" + }, + scripts: { + lint: "standard .", + pretest: "npm run lint", + test: "jest --verbose --coverage=true --unhandled-rejections=strict --detectOpenHandles", + eval: "node eval", + sync: "node sync", + tsc: "tsc --init", + build: "tsc", + reset: "node reset" + }, + dependencies: { + axios: "^0.24.0", + bellajs: "^10.0.2" + }, + devDependencies: { + jest: "^27.4.5", + nock: "^13.2.1" + }, + keywords: [ + "oembed", + "extractor", + "parser", + "util" + ], + license: "MIT", + _resolved: "https://registry.npmjs.org/oembed-parser/-/oembed-parser-2.0.0.tgz", + _integrity: "sha512-VuEGFjLBDaydO+6ZzHXBAzc7jwletgsFTHi8UT3Zdt13xT2JzXM0R3XfafKDsZVloPxGC2Ad+ubNjEDT6lN3Gg==", + _from: "oembed-parser@2.0.0" + }; + } +}); + +// node_modules/oembed-parser/index.js +var require_oembed_parser = __commonJS({ + "node_modules/oembed-parser/index.js"(exports, module2) { + var main = require_main(); + main.version = require_package().version; + module2.exports = main; + } +}); + +// node_modules/dompurify/dist/purify.js +var require_purify = __commonJS({ + "node_modules/dompurify/dist/purify.js"(exports, module2) { + (function(global, factory) { + typeof exports === "object" && typeof module2 !== "undefined" ? module2.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = global || self, global.DOMPurify = factory()); + })(exports, function() { + "use strict"; + function _toConsumableArray(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { + arr2[i] = arr[i]; + } + return arr2; + } else { + return Array.from(arr); + } + } + var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var freeze = Object.freeze, seal = Object.seal, create = Object.create; + var _ref = typeof Reflect !== "undefined" && Reflect, apply = _ref.apply, construct = _ref.construct; + if (!apply) { + apply = function apply2(fun, thisValue, args) { + return fun.apply(thisValue, args); + }; + } + if (!freeze) { + freeze = function freeze2(x) { + return x; + }; + } + if (!seal) { + seal = function seal2(x) { + return x; + }; + } + if (!construct) { + construct = function construct2(Func, args) { + return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))(); + }; + } + var arrayForEach = unapply(Array.prototype.forEach); + var arrayPop = unapply(Array.prototype.pop); + var arrayPush = unapply(Array.prototype.push); + var stringToLowerCase = unapply(String.prototype.toLowerCase); + var stringMatch = unapply(String.prototype.match); + var stringReplace = unapply(String.prototype.replace); + var stringIndexOf = unapply(String.prototype.indexOf); + var stringTrim = unapply(String.prototype.trim); + var regExpTest = unapply(RegExp.prototype.test); + var typeErrorCreate = unconstruct(TypeError); + function unapply(func) { + return function(thisArg) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + return apply(func, thisArg, args); + }; + } + function unconstruct(func) { + return function() { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + return construct(func, args); + }; + } + function addToSet(set, array) { + if (setPrototypeOf) { + setPrototypeOf(set, null); + } + var l = array.length; + while (l--) { + var element = array[l]; + if (typeof element === "string") { + var lcElement = stringToLowerCase(element); + if (lcElement !== element) { + if (!isFrozen(array)) { + array[l] = lcElement; + } + element = lcElement; + } + } + set[element] = true; + } + return set; + } + function clone(object) { + var newObject = create(null); + var property = void 0; + for (property in object) { + if (apply(hasOwnProperty, object, [property])) { + newObject[property] = object[property]; + } + } + return newObject; + } + function lookupGetter(object, prop) { + while (object !== null) { + var desc = getOwnPropertyDescriptor(object, prop); + if (desc) { + if (desc.get) { + return unapply(desc.get); + } + if (typeof desc.value === "function") { + return unapply(desc.value); + } + } + object = getPrototypeOf(object); + } + function fallbackValue(element) { + console.warn("fallback value for", element); + return null; + } + return fallbackValue; + } + var html = freeze(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]); + var svg = freeze(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]); + var svgFilters = freeze(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]); + var svgDisallowed = freeze(["animate", "color-profile", "cursor", "discard", "fedropshadow", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]); + var mathMl = freeze(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover"]); + var mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]); + var text = freeze(["#text"]); + var html$1 = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]); + var svg$1 = freeze(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]); + var mathMl$1 = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]); + var xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]); + var MUSTACHE_EXPR = seal(/\{\{[\s\S]*|[\s\S]*\}\}/gm); + var ERB_EXPR = seal(/<%[\s\S]*|[\s\S]*%>/gm); + var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/); + var ARIA_ATTR = seal(/^aria-[\-\w]+$/); + var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i); + var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i); + var ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g); + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + function _toConsumableArray$1(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { + arr2[i] = arr[i]; + } + return arr2; + } else { + return Array.from(arr); + } + } + var getGlobal = function getGlobal2() { + return typeof window === "undefined" ? null : window; + }; + var _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, document2) { + if ((typeof trustedTypes === "undefined" ? "undefined" : _typeof(trustedTypes)) !== "object" || typeof trustedTypes.createPolicy !== "function") { + return null; + } + var suffix = null; + var ATTR_NAME = "data-tt-policy-suffix"; + if (document2.currentScript && document2.currentScript.hasAttribute(ATTR_NAME)) { + suffix = document2.currentScript.getAttribute(ATTR_NAME); + } + var policyName = "dompurify" + (suffix ? "#" + suffix : ""); + try { + return trustedTypes.createPolicy(policyName, { + createHTML: function createHTML(html$$1) { + return html$$1; + } + }); + } catch (_) { + console.warn("TrustedTypes policy " + policyName + " could not be created."); + return null; + } + }; + function createDOMPurify() { + var window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal(); + var DOMPurify2 = function DOMPurify3(root) { + return createDOMPurify(root); + }; + DOMPurify2.version = "2.3.4"; + DOMPurify2.removed = []; + if (!window2 || !window2.document || window2.document.nodeType !== 9) { + DOMPurify2.isSupported = false; + return DOMPurify2; + } + var originalDocument = window2.document; + var document2 = window2.document; + var DocumentFragment = window2.DocumentFragment, HTMLTemplateElement = window2.HTMLTemplateElement, Node = window2.Node, Element = window2.Element, NodeFilter = window2.NodeFilter, _window$NamedNodeMap = window2.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window2.NamedNodeMap || window2.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window2.HTMLFormElement, DOMParser = window2.DOMParser, trustedTypes = window2.trustedTypes; + var ElementPrototype = Element.prototype; + var cloneNode = lookupGetter(ElementPrototype, "cloneNode"); + var getNextSibling = lookupGetter(ElementPrototype, "nextSibling"); + var getChildNodes = lookupGetter(ElementPrototype, "childNodes"); + var getParentNode = lookupGetter(ElementPrototype, "parentNode"); + if (typeof HTMLTemplateElement === "function") { + var template = document2.createElement("template"); + if (template.content && template.content.ownerDocument) { + document2 = template.content.ownerDocument; + } + } + var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument); + var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML("") : ""; + var _document = document2, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName; + var importNode = originalDocument.importNode; + var documentMode = {}; + try { + documentMode = clone(document2).documentMode ? document2.documentMode : {}; + } catch (_) { + } + var hooks = {}; + DOMPurify2.isSupported = typeof getParentNode === "function" && implementation && typeof implementation.createHTMLDocument !== "undefined" && documentMode !== 9; + var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR, ERB_EXPR$$1 = ERB_EXPR, DATA_ATTR$$1 = DATA_ATTR, ARIA_ATTR$$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$$1 = ATTR_WHITESPACE; + var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI; + var ALLOWED_TAGS = null; + var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text))); + var ALLOWED_ATTR = null; + var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml))); + var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, { + tagNameCheck: { + writable: true, + configurable: false, + enumerable: true, + value: null + }, + attributeNameCheck: { + writable: true, + configurable: false, + enumerable: true, + value: null + }, + allowCustomizedBuiltInElements: { + writable: true, + configurable: false, + enumerable: true, + value: false + } + })); + var FORBID_TAGS = null; + var FORBID_ATTR = null; + var ALLOW_ARIA_ATTR = true; + var ALLOW_DATA_ATTR = true; + var ALLOW_UNKNOWN_PROTOCOLS = false; + var SAFE_FOR_TEMPLATES = false; + var WHOLE_DOCUMENT = false; + var SET_CONFIG = false; + var FORCE_BODY = false; + var RETURN_DOM = false; + var RETURN_DOM_FRAGMENT = false; + var RETURN_TRUSTED_TYPE = false; + var SANITIZE_DOM = true; + var KEEP_CONTENT = true; + var IN_PLACE = false; + var USE_PROFILES = {}; + var FORBID_CONTENTS = null; + var DEFAULT_FORBID_CONTENTS = addToSet({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]); + var DATA_URI_TAGS = null; + var DEFAULT_DATA_URI_TAGS = addToSet({}, ["audio", "video", "img", "source", "image", "track"]); + var URI_SAFE_ATTRIBUTES = null; + var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]); + var MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML"; + var SVG_NAMESPACE = "http://www.w3.org/2000/svg"; + var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; + var NAMESPACE = HTML_NAMESPACE; + var IS_EMPTY_INPUT = false; + var PARSER_MEDIA_TYPE = void 0; + var SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"]; + var DEFAULT_PARSER_MEDIA_TYPE = "text/html"; + var transformCaseFunc = void 0; + var CONFIG = null; + var formElement = document2.createElement("form"); + var isRegexOrFunction = function isRegexOrFunction2(testValue) { + return testValue instanceof RegExp || testValue instanceof Function; + }; + var _parseConfig = function _parseConfig2(cfg) { + if (CONFIG && CONFIG === cfg) { + return; + } + if (!cfg || (typeof cfg === "undefined" ? "undefined" : _typeof(cfg)) !== "object") { + cfg = {}; + } + cfg = clone(cfg); + ALLOWED_TAGS = "ALLOWED_TAGS" in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS; + ALLOWED_ATTR = "ALLOWED_ATTR" in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR; + URI_SAFE_ATTRIBUTES = "ADD_URI_SAFE_ATTR" in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES; + DATA_URI_TAGS = "ADD_DATA_URI_TAGS" in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS; + FORBID_CONTENTS = "FORBID_CONTENTS" in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS; + FORBID_TAGS = "FORBID_TAGS" in cfg ? addToSet({}, cfg.FORBID_TAGS) : {}; + FORBID_ATTR = "FORBID_ATTR" in cfg ? addToSet({}, cfg.FORBID_ATTR) : {}; + USE_PROFILES = "USE_PROFILES" in cfg ? cfg.USE_PROFILES : false; + ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; + ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; + ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; + SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; + WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; + RETURN_DOM = cfg.RETURN_DOM || false; + RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; + RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; + FORCE_BODY = cfg.FORCE_BODY || false; + SANITIZE_DOM = cfg.SANITIZE_DOM !== false; + KEEP_CONTENT = cfg.KEEP_CONTENT !== false; + IN_PLACE = cfg.IN_PLACE || false; + IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1; + NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE; + if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) { + CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck; + } + if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) { + CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck; + } + if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") { + CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements; + } + PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; + transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? function(x) { + return x; + } : stringToLowerCase; + if (SAFE_FOR_TEMPLATES) { + ALLOW_DATA_ATTR = false; + } + if (RETURN_DOM_FRAGMENT) { + RETURN_DOM = true; + } + if (USE_PROFILES) { + ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text))); + ALLOWED_ATTR = []; + if (USE_PROFILES.html === true) { + addToSet(ALLOWED_TAGS, html); + addToSet(ALLOWED_ATTR, html$1); + } + if (USE_PROFILES.svg === true) { + addToSet(ALLOWED_TAGS, svg); + addToSet(ALLOWED_ATTR, svg$1); + addToSet(ALLOWED_ATTR, xml); + } + if (USE_PROFILES.svgFilters === true) { + addToSet(ALLOWED_TAGS, svgFilters); + addToSet(ALLOWED_ATTR, svg$1); + addToSet(ALLOWED_ATTR, xml); + } + if (USE_PROFILES.mathMl === true) { + addToSet(ALLOWED_TAGS, mathMl); + addToSet(ALLOWED_ATTR, mathMl$1); + addToSet(ALLOWED_ATTR, xml); + } + } + if (cfg.ADD_TAGS) { + if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) { + ALLOWED_TAGS = clone(ALLOWED_TAGS); + } + addToSet(ALLOWED_TAGS, cfg.ADD_TAGS); + } + if (cfg.ADD_ATTR) { + if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) { + ALLOWED_ATTR = clone(ALLOWED_ATTR); + } + addToSet(ALLOWED_ATTR, cfg.ADD_ATTR); + } + if (cfg.ADD_URI_SAFE_ATTR) { + addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR); + } + if (cfg.FORBID_CONTENTS) { + if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) { + FORBID_CONTENTS = clone(FORBID_CONTENTS); + } + addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS); + } + if (KEEP_CONTENT) { + ALLOWED_TAGS["#text"] = true; + } + if (WHOLE_DOCUMENT) { + addToSet(ALLOWED_TAGS, ["html", "head", "body"]); + } + if (ALLOWED_TAGS.table) { + addToSet(ALLOWED_TAGS, ["tbody"]); + delete FORBID_TAGS.tbody; + } + if (freeze) { + freeze(cfg); + } + CONFIG = cfg; + }; + var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ["mi", "mo", "mn", "ms", "mtext"]); + var HTML_INTEGRATION_POINTS = addToSet({}, ["foreignobject", "desc", "title", "annotation-xml"]); + var ALL_SVG_TAGS = addToSet({}, svg); + addToSet(ALL_SVG_TAGS, svgFilters); + addToSet(ALL_SVG_TAGS, svgDisallowed); + var ALL_MATHML_TAGS = addToSet({}, mathMl); + addToSet(ALL_MATHML_TAGS, mathMlDisallowed); + var _checkValidNamespace = function _checkValidNamespace2(element) { + var parent = getParentNode(element); + if (!parent || !parent.tagName) { + parent = { + namespaceURI: HTML_NAMESPACE, + tagName: "template" + }; + } + var tagName = stringToLowerCase(element.tagName); + var parentTagName = stringToLowerCase(parent.tagName); + if (element.namespaceURI === SVG_NAMESPACE) { + if (parent.namespaceURI === HTML_NAMESPACE) { + return tagName === "svg"; + } + if (parent.namespaceURI === MATHML_NAMESPACE) { + return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]); + } + return Boolean(ALL_SVG_TAGS[tagName]); + } + if (element.namespaceURI === MATHML_NAMESPACE) { + if (parent.namespaceURI === HTML_NAMESPACE) { + return tagName === "math"; + } + if (parent.namespaceURI === SVG_NAMESPACE) { + return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName]; + } + return Boolean(ALL_MATHML_TAGS[tagName]); + } + if (element.namespaceURI === HTML_NAMESPACE) { + if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) { + return false; + } + if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) { + return false; + } + var commonSvgAndHTMLElements = addToSet({}, ["title", "style", "font", "a", "script"]); + return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]); + } + return false; + }; + var _forceRemove = function _forceRemove2(node) { + arrayPush(DOMPurify2.removed, { element: node }); + try { + node.parentNode.removeChild(node); + } catch (_) { + try { + node.outerHTML = emptyHTML; + } catch (_2) { + node.remove(); + } + } + }; + var _removeAttribute = function _removeAttribute2(name, node) { + try { + arrayPush(DOMPurify2.removed, { + attribute: node.getAttributeNode(name), + from: node + }); + } catch (_) { + arrayPush(DOMPurify2.removed, { + attribute: null, + from: node + }); + } + node.removeAttribute(name); + if (name === "is" && !ALLOWED_ATTR[name]) { + if (RETURN_DOM || RETURN_DOM_FRAGMENT) { + try { + _forceRemove(node); + } catch (_) { + } + } else { + try { + node.setAttribute(name, ""); + } catch (_) { + } + } + } + }; + var _initDocument = function _initDocument2(dirty) { + var doc = void 0; + var leadingWhitespace = void 0; + if (FORCE_BODY) { + dirty = "" + dirty; + } else { + var matches = stringMatch(dirty, /^[\r\n\t ]+/); + leadingWhitespace = matches && matches[0]; + } + if (PARSER_MEDIA_TYPE === "application/xhtml+xml") { + dirty = '' + dirty + ""; + } + var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty; + if (NAMESPACE === HTML_NAMESPACE) { + try { + doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE); + } catch (_) { + } + } + if (!doc || !doc.documentElement) { + doc = implementation.createDocument(NAMESPACE, "template", null); + try { + doc.documentElement.innerHTML = IS_EMPTY_INPUT ? "" : dirtyPayload; + } catch (_) { + } + } + var body = doc.body || doc.documentElement; + if (dirty && leadingWhitespace) { + body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null); + } + if (NAMESPACE === HTML_NAMESPACE) { + return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0]; + } + return WHOLE_DOCUMENT ? doc.documentElement : body; + }; + var _createIterator = function _createIterator2(root) { + return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false); + }; + var _isClobbered = function _isClobbered2(elm) { + return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function"); + }; + var _isNode = function _isNode2(object) { + return (typeof Node === "undefined" ? "undefined" : _typeof(Node)) === "object" ? object instanceof Node : object && (typeof object === "undefined" ? "undefined" : _typeof(object)) === "object" && typeof object.nodeType === "number" && typeof object.nodeName === "string"; + }; + var _executeHook = function _executeHook2(entryPoint, currentNode, data) { + if (!hooks[entryPoint]) { + return; + } + arrayForEach(hooks[entryPoint], function(hook) { + hook.call(DOMPurify2, currentNode, data, CONFIG); + }); + }; + var _sanitizeElements = function _sanitizeElements2(currentNode) { + var content = void 0; + _executeHook("beforeSanitizeElements", currentNode, null); + if (_isClobbered(currentNode)) { + _forceRemove(currentNode); + return true; + } + if (stringMatch(currentNode.nodeName, /[\u0080-\uFFFF]/)) { + _forceRemove(currentNode); + return true; + } + var tagName = transformCaseFunc(currentNode.nodeName); + _executeHook("uponSanitizeElement", currentNode, { + tagName, + allowedTags: ALLOWED_TAGS + }); + if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) { + _forceRemove(currentNode); + return true; + } + if (tagName === "select" && regExpTest(/