gitextract_8y8r4zl3/ ├── .eslintignore ├── .eslintrc.js ├── .github/ │ └── workflows/ │ ├── publish.yml │ └── test.yml ├── .gitignore ├── .husky/ │ ├── pre-commit │ └── pre-push ├── .lintstagedrc.json ├── .npmignore ├── .nvmrc ├── .prettierrc.js ├── Dockerfile.test ├── LICENSE ├── Makefile ├── README.md ├── docker-compose.test.yml ├── jest.config.js ├── package.json ├── src/ │ ├── __tests__/ │ │ └── mocks/ │ │ ├── blocks.ts │ │ ├── html.ts │ │ ├── img/ │ │ │ └── base64.ts │ │ └── notion-api-responses.ts │ ├── data/ │ │ ├── helpers/ │ │ │ ├── block-to-inner-html.ts │ │ │ ├── block-to-inner-text.ts │ │ │ ├── blocks-to-html.ts │ │ │ ├── color-to-hex.ts │ │ │ └── replace-line-break-to-br-tag.ts │ │ ├── protocols/ │ │ │ ├── blocks/ │ │ │ │ ├── block.ts │ │ │ │ ├── decorable-text.ts │ │ │ │ ├── decoration.ts │ │ │ │ ├── format.ts │ │ │ │ ├── index.ts │ │ │ │ └── list-blocks-wrapper.ts │ │ │ ├── html-options/ │ │ │ │ └── html-options.ts │ │ │ ├── http-request/ │ │ │ │ ├── http-get-client.ts │ │ │ │ ├── http-post-client.ts │ │ │ │ ├── http-response.ts │ │ │ │ └── index.ts │ │ │ └── page-props/ │ │ │ ├── image-cover.ts │ │ │ ├── index.ts │ │ │ └── page-props.ts │ │ └── use-cases/ │ │ ├── blocks-to-html-converter/ │ │ │ ├── block-dispatcher.ts │ │ │ ├── block-parsers/ │ │ │ │ ├── callout.ts │ │ │ │ ├── code.ts │ │ │ │ ├── decorations/ │ │ │ │ │ ├── decoration-dispatcher.ts │ │ │ │ │ ├── decoration-parsers/ │ │ │ │ │ │ ├── bold.ts │ │ │ │ │ │ ├── code.ts │ │ │ │ │ │ ├── color.test.ts │ │ │ │ │ │ ├── color.ts │ │ │ │ │ │ ├── equation.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── italic.ts │ │ │ │ │ │ ├── link.ts │ │ │ │ │ │ ├── strikethrough.ts │ │ │ │ │ │ ├── underline.ts │ │ │ │ │ │ └── unknown.ts │ │ │ │ │ └── decorator.ts │ │ │ │ ├── divider.ts │ │ │ │ ├── equation.ts │ │ │ │ ├── header.ts │ │ │ │ ├── image.ts │ │ │ │ ├── index.ts │ │ │ │ ├── list/ │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── list-item.ts │ │ │ │ │ └── list.ts │ │ │ │ ├── page.ts │ │ │ │ ├── quote.ts │ │ │ │ ├── sub-header.ts │ │ │ │ ├── sub-sub-header.ts │ │ │ │ ├── text.ts │ │ │ │ ├── to-do.ts │ │ │ │ ├── toggle.ts │ │ │ │ ├── unknown.ts │ │ │ │ └── youtube-video.ts │ │ │ ├── blocks-to-html-converter.test.ts │ │ │ ├── blocks-to-html-converter.ts │ │ │ ├── index.ts │ │ │ └── list-blocks-wrapper.ts │ │ ├── format-to-style/ │ │ │ ├── format-to-style.ts │ │ │ └── index.ts │ │ ├── html-wrapper/ │ │ │ ├── header-from-template.test.ts │ │ │ ├── header-from-template.ts │ │ │ ├── options-html-wrapper.ts │ │ │ ├── scripts.ts │ │ │ └── styles.ts │ │ └── page-block-to-page-props/ │ │ ├── index.ts │ │ ├── page-block-to-cover-image-block.ts │ │ ├── page-block-to-icon.ts │ │ ├── page-block-to-page-props.test.ts │ │ ├── page-block-to-page-props.ts │ │ └── page-block-to-title.ts │ ├── domain/ │ │ └── use-cases/ │ │ ├── html-wrapper.ts │ │ └── to-html.ts │ ├── index.ts │ ├── infra/ │ │ ├── errors/ │ │ │ ├── index.ts │ │ │ ├── invalid-page-url.ts │ │ │ ├── missing-content.ts │ │ │ ├── missing-page-id.ts │ │ │ ├── notion-page-access.ts │ │ │ └── notion-page-not-found.ts │ │ ├── protocols/ │ │ │ ├── notion-api-content-response.ts │ │ │ └── validation.ts │ │ └── use-cases/ │ │ ├── http-post/ │ │ │ └── node-http-post-client.ts │ │ ├── to-blocks/ │ │ │ ├── decoration-array-to-decorations.ts │ │ │ ├── format-filter.ts │ │ │ ├── notion-api-content-response-to-blocks.test.ts │ │ │ ├── notion-api-content-response-to-blocks.ts │ │ │ ├── prop-title-to-decorable-texts.ts │ │ │ └── properties-parser.ts │ │ ├── to-notion-api-content-responses/ │ │ │ ├── notion-api-page-fetcher.test.ts │ │ │ ├── notion-api-page-fetcher.ts │ │ │ └── services/ │ │ │ ├── index.ts │ │ │ ├── notion-page-id-validation.service.ts │ │ │ ├── page-chunk-validation.service.test.ts │ │ │ ├── page-chunk-validation.service.ts │ │ │ └── page-record-validation.service.ts │ │ └── to-page-id/ │ │ ├── index.ts │ │ ├── notion-url-to-page-id.test.ts │ │ ├── notion-url-to-page-id.ts │ │ └── services/ │ │ ├── id-normalizer.ts │ │ ├── index.ts │ │ └── url-validator.ts │ ├── main/ │ │ ├── factories/ │ │ │ ├── blocks-to-html.factory.ts │ │ │ ├── index.ts │ │ │ ├── notion-api-page-fetcher.factory.ts │ │ │ └── notion-url-to-page-id.factory.ts │ │ ├── protocols/ │ │ │ └── notion-page.ts │ │ └── use-cases/ │ │ └── notion-api-to-html/ │ │ ├── index.ts │ │ ├── notion-page-to-html.test.ts │ │ └── notion-page-to-html.ts │ └── utils/ │ ├── base-64-converter.ts │ ├── either.ts │ ├── errors/ │ │ ├── forbidden-error.ts │ │ ├── image-not-found-error.ts │ │ └── index.ts │ └── use-cases/ │ └── http-get/ │ └── node-http-get.ts ├── tsconfig.build.json └── tsconfig.json