@redneckz/wildless-cms-uni-blocks 0.14.858 → 0.14.859
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/bundle.umd.js +1 -1
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/ContentPage/computeAPIFallback.d.ts +3 -0
- package/bundle/content-page-repository/ContentPageRepository.d.ts +10 -0
- package/bundle/content-page-repository/JSONDocContentBox.d.ts +8 -0
- package/bundle/content-page-repository/TransformationOptions.d.ts +4 -0
- package/bundle/content-page-repository/clearAttachmentHref.d.ts +2 -0
- package/bundle/content-page-repository/computeImgOutputPath.d.ts +3 -0
- package/bundle/content-page-repository/extensions.d.ts +3 -0
- package/bundle/content-page-repository/index.d.ts +3 -0
- package/bundle/content-page-repository/mapJSON.d.ts +1 -0
- package/bundle/content-page-repository/mergePages.d.ts +2 -0
- package/bundle/content-page-repository/replaceHeadingTags.d.ts +1 -0
- package/bundle/content-page-repository/resizeImg.d.ts +3 -0
- package/bundle/content-page-repository/transformAttachmentLink.d.ts +3 -0
- package/bundle/content-page-repository/transformContentPage.d.ts +4 -0
- package/bundle/content-page-repository/transformDocument.d.ts +3 -0
- package/bundle/content-page-repository/transformHTML.d.ts +1 -0
- package/bundle/content-page-repository/transformImg.d.ts +12 -0
- package/bundle/content-page-repository/transformMarkdown.d.ts +1 -0
- package/bundle/content-page-repository/transformPicture.d.ts +3 -0
- package/dist/components/ContentPage/computeAPIFallback.d.ts +3 -0
- package/dist/components/ContentPage/computeAPIFallback.js +22 -0
- package/dist/components/ContentPage/computeAPIFallback.js.map +1 -0
- package/dist/content-page-repository/ContentPageRepository.d.ts +10 -0
- package/dist/content-page-repository/ContentPageRepository.js +31 -0
- package/dist/content-page-repository/ContentPageRepository.js.map +1 -0
- package/dist/content-page-repository/JSONDocContentBox.d.ts +8 -0
- package/dist/content-page-repository/JSONDocContentBox.js +39 -0
- package/dist/content-page-repository/JSONDocContentBox.js.map +1 -0
- package/dist/content-page-repository/TransformationOptions.d.ts +4 -0
- package/dist/content-page-repository/TransformationOptions.js +2 -0
- package/dist/content-page-repository/TransformationOptions.js.map +1 -0
- package/dist/content-page-repository/clearAttachmentHref.d.ts +2 -0
- package/dist/content-page-repository/clearAttachmentHref.js +6 -0
- package/dist/content-page-repository/clearAttachmentHref.js.map +1 -0
- package/dist/content-page-repository/computeImgOutputPath.d.ts +3 -0
- package/dist/content-page-repository/computeImgOutputPath.js +18 -0
- package/dist/content-page-repository/computeImgOutputPath.js.map +1 -0
- package/dist/content-page-repository/extensions.d.ts +3 -0
- package/dist/content-page-repository/extensions.js +18 -0
- package/dist/content-page-repository/extensions.js.map +1 -0
- package/dist/content-page-repository/index.d.ts +3 -0
- package/dist/content-page-repository/index.js +9 -0
- package/dist/content-page-repository/index.js.map +1 -0
- package/dist/content-page-repository/mapJSON.d.ts +1 -0
- package/dist/content-page-repository/mapJSON.js +26 -0
- package/dist/content-page-repository/mapJSON.js.map +1 -0
- package/dist/content-page-repository/mergePages.d.ts +2 -0
- package/dist/content-page-repository/mergePages.js +7 -0
- package/dist/content-page-repository/mergePages.js.map +1 -0
- package/dist/content-page-repository/replaceHeadingTags.d.ts +1 -0
- package/dist/content-page-repository/replaceHeadingTags.js +5 -0
- package/dist/content-page-repository/replaceHeadingTags.js.map +1 -0
- package/dist/content-page-repository/resizeImg.d.ts +3 -0
- package/dist/content-page-repository/resizeImg.js +19 -0
- package/dist/content-page-repository/resizeImg.js.map +1 -0
- package/dist/content-page-repository/transformAttachmentLink.d.ts +3 -0
- package/dist/content-page-repository/transformAttachmentLink.js +40 -0
- package/dist/content-page-repository/transformAttachmentLink.js.map +1 -0
- package/dist/content-page-repository/transformContentPage.d.ts +4 -0
- package/dist/content-page-repository/transformContentPage.js +78 -0
- package/dist/content-page-repository/transformContentPage.js.map +1 -0
- package/dist/content-page-repository/transformDocument.d.ts +3 -0
- package/dist/content-page-repository/transformDocument.js +38 -0
- package/dist/content-page-repository/transformDocument.js.map +1 -0
- package/dist/content-page-repository/transformHTML.d.ts +1 -0
- package/dist/content-page-repository/transformHTML.js +54 -0
- package/dist/content-page-repository/transformHTML.js.map +1 -0
- package/dist/content-page-repository/transformImg.d.ts +12 -0
- package/dist/content-page-repository/transformImg.js +51 -0
- package/dist/content-page-repository/transformImg.js.map +1 -0
- package/dist/content-page-repository/transformMarkdown.d.ts +1 -0
- package/dist/content-page-repository/transformMarkdown.js +18 -0
- package/dist/content-page-repository/transformMarkdown.js.map +1 -0
- package/dist/content-page-repository/transformPicture.d.ts +3 -0
- package/dist/content-page-repository/transformPicture.js +28 -0
- package/dist/content-page-repository/transformPicture.js.map +1 -0
- package/lib/components/ContentPage/computeAPIFallback.d.ts +3 -0
- package/lib/components/ContentPage/computeAPIFallback.js +19 -0
- package/lib/components/ContentPage/computeAPIFallback.js.map +1 -0
- package/lib/content-page-repository/ContentPageRepository.d.ts +10 -0
- package/lib/content-page-repository/ContentPageRepository.js +25 -0
- package/lib/content-page-repository/ContentPageRepository.js.map +1 -0
- package/lib/content-page-repository/JSONDocContentBox.d.ts +8 -0
- package/lib/content-page-repository/JSONDocContentBox.js +36 -0
- package/lib/content-page-repository/JSONDocContentBox.js.map +1 -0
- package/lib/content-page-repository/TransformationOptions.d.ts +4 -0
- package/lib/content-page-repository/TransformationOptions.js +2 -0
- package/lib/content-page-repository/TransformationOptions.js.map +1 -0
- package/lib/content-page-repository/clearAttachmentHref.d.ts +2 -0
- package/lib/content-page-repository/clearAttachmentHref.js +3 -0
- package/lib/content-page-repository/clearAttachmentHref.js.map +1 -0
- package/lib/content-page-repository/computeImgOutputPath.d.ts +3 -0
- package/lib/content-page-repository/computeImgOutputPath.js +12 -0
- package/lib/content-page-repository/computeImgOutputPath.js.map +1 -0
- package/lib/content-page-repository/extensions.d.ts +3 -0
- package/lib/content-page-repository/extensions.js +16 -0
- package/lib/content-page-repository/extensions.js.map +1 -0
- package/lib/content-page-repository/index.d.ts +3 -0
- package/lib/content-page-repository/index.js +4 -0
- package/lib/content-page-repository/index.js.map +1 -0
- package/lib/content-page-repository/mapJSON.d.ts +1 -0
- package/lib/content-page-repository/mapJSON.js +23 -0
- package/lib/content-page-repository/mapJSON.js.map +1 -0
- package/lib/content-page-repository/mergePages.d.ts +2 -0
- package/lib/content-page-repository/mergePages.js +4 -0
- package/lib/content-page-repository/mergePages.js.map +1 -0
- package/lib/content-page-repository/replaceHeadingTags.d.ts +1 -0
- package/lib/content-page-repository/replaceHeadingTags.js +2 -0
- package/lib/content-page-repository/replaceHeadingTags.js.map +1 -0
- package/lib/content-page-repository/resizeImg.d.ts +3 -0
- package/lib/content-page-repository/resizeImg.js +13 -0
- package/lib/content-page-repository/resizeImg.js.map +1 -0
- package/lib/content-page-repository/transformAttachmentLink.d.ts +3 -0
- package/lib/content-page-repository/transformAttachmentLink.js +34 -0
- package/lib/content-page-repository/transformAttachmentLink.js.map +1 -0
- package/lib/content-page-repository/transformContentPage.d.ts +4 -0
- package/lib/content-page-repository/transformContentPage.js +71 -0
- package/lib/content-page-repository/transformContentPage.js.map +1 -0
- package/lib/content-page-repository/transformDocument.d.ts +3 -0
- package/lib/content-page-repository/transformDocument.js +32 -0
- package/lib/content-page-repository/transformDocument.js.map +1 -0
- package/lib/content-page-repository/transformHTML.d.ts +1 -0
- package/lib/content-page-repository/transformHTML.js +25 -0
- package/lib/content-page-repository/transformHTML.js.map +1 -0
- package/lib/content-page-repository/transformImg.d.ts +12 -0
- package/lib/content-page-repository/transformImg.js +45 -0
- package/lib/content-page-repository/transformImg.js.map +1 -0
- package/lib/content-page-repository/transformMarkdown.d.ts +1 -0
- package/lib/content-page-repository/transformMarkdown.js +12 -0
- package/lib/content-page-repository/transformMarkdown.js.map +1 -0
- package/lib/content-page-repository/transformPicture.d.ts +3 -0
- package/lib/content-page-repository/transformPicture.js +22 -0
- package/lib/content-page-repository/transformPicture.js.map +1 -0
- package/mobile/bundle/bundle.umd.js +1 -1
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/ContentPage/computeAPIFallback.d.ts +3 -0
- package/mobile/bundle/content-page-repository/ContentPageRepository.d.ts +10 -0
- package/mobile/bundle/content-page-repository/JSONDocContentBox.d.ts +8 -0
- package/mobile/bundle/content-page-repository/TransformationOptions.d.ts +4 -0
- package/mobile/bundle/content-page-repository/clearAttachmentHref.d.ts +2 -0
- package/mobile/bundle/content-page-repository/computeImgOutputPath.d.ts +3 -0
- package/mobile/bundle/content-page-repository/extensions.d.ts +3 -0
- package/mobile/bundle/content-page-repository/index.d.ts +3 -0
- package/mobile/bundle/content-page-repository/mapJSON.d.ts +1 -0
- package/mobile/bundle/content-page-repository/mergePages.d.ts +2 -0
- package/mobile/bundle/content-page-repository/replaceHeadingTags.d.ts +1 -0
- package/mobile/bundle/content-page-repository/resizeImg.d.ts +3 -0
- package/mobile/bundle/content-page-repository/transformAttachmentLink.d.ts +3 -0
- package/mobile/bundle/content-page-repository/transformContentPage.d.ts +4 -0
- package/mobile/bundle/content-page-repository/transformDocument.d.ts +3 -0
- package/mobile/bundle/content-page-repository/transformHTML.d.ts +1 -0
- package/mobile/bundle/content-page-repository/transformImg.d.ts +12 -0
- package/mobile/bundle/content-page-repository/transformMarkdown.d.ts +1 -0
- package/mobile/bundle/content-page-repository/transformPicture.d.ts +3 -0
- package/mobile/dist/components/ContentPage/computeAPIFallback.d.ts +3 -0
- package/mobile/dist/components/ContentPage/computeAPIFallback.js +22 -0
- package/mobile/dist/components/ContentPage/computeAPIFallback.js.map +1 -0
- package/mobile/dist/content-page-repository/ContentPageRepository.d.ts +10 -0
- package/mobile/dist/content-page-repository/ContentPageRepository.js +31 -0
- package/mobile/dist/content-page-repository/ContentPageRepository.js.map +1 -0
- package/mobile/dist/content-page-repository/JSONDocContentBox.d.ts +8 -0
- package/mobile/dist/content-page-repository/JSONDocContentBox.js +39 -0
- package/mobile/dist/content-page-repository/JSONDocContentBox.js.map +1 -0
- package/mobile/dist/content-page-repository/TransformationOptions.d.ts +4 -0
- package/mobile/dist/content-page-repository/TransformationOptions.js +2 -0
- package/mobile/dist/content-page-repository/TransformationOptions.js.map +1 -0
- package/mobile/dist/content-page-repository/clearAttachmentHref.d.ts +2 -0
- package/mobile/dist/content-page-repository/clearAttachmentHref.js +6 -0
- package/mobile/dist/content-page-repository/clearAttachmentHref.js.map +1 -0
- package/mobile/dist/content-page-repository/computeImgOutputPath.d.ts +3 -0
- package/mobile/dist/content-page-repository/computeImgOutputPath.js +18 -0
- package/mobile/dist/content-page-repository/computeImgOutputPath.js.map +1 -0
- package/mobile/dist/content-page-repository/extensions.d.ts +3 -0
- package/mobile/dist/content-page-repository/extensions.js +18 -0
- package/mobile/dist/content-page-repository/extensions.js.map +1 -0
- package/mobile/dist/content-page-repository/index.d.ts +3 -0
- package/mobile/dist/content-page-repository/index.js +9 -0
- package/mobile/dist/content-page-repository/index.js.map +1 -0
- package/mobile/dist/content-page-repository/mapJSON.d.ts +1 -0
- package/mobile/dist/content-page-repository/mapJSON.js +26 -0
- package/mobile/dist/content-page-repository/mapJSON.js.map +1 -0
- package/mobile/dist/content-page-repository/mergePages.d.ts +2 -0
- package/mobile/dist/content-page-repository/mergePages.js +7 -0
- package/mobile/dist/content-page-repository/mergePages.js.map +1 -0
- package/mobile/dist/content-page-repository/replaceHeadingTags.d.ts +1 -0
- package/mobile/dist/content-page-repository/replaceHeadingTags.js +5 -0
- package/mobile/dist/content-page-repository/replaceHeadingTags.js.map +1 -0
- package/mobile/dist/content-page-repository/resizeImg.d.ts +3 -0
- package/mobile/dist/content-page-repository/resizeImg.js +19 -0
- package/mobile/dist/content-page-repository/resizeImg.js.map +1 -0
- package/mobile/dist/content-page-repository/transformAttachmentLink.d.ts +3 -0
- package/mobile/dist/content-page-repository/transformAttachmentLink.js +40 -0
- package/mobile/dist/content-page-repository/transformAttachmentLink.js.map +1 -0
- package/mobile/dist/content-page-repository/transformContentPage.d.ts +4 -0
- package/mobile/dist/content-page-repository/transformContentPage.js +78 -0
- package/mobile/dist/content-page-repository/transformContentPage.js.map +1 -0
- package/mobile/dist/content-page-repository/transformDocument.d.ts +3 -0
- package/mobile/dist/content-page-repository/transformDocument.js +38 -0
- package/mobile/dist/content-page-repository/transformDocument.js.map +1 -0
- package/mobile/dist/content-page-repository/transformHTML.d.ts +1 -0
- package/mobile/dist/content-page-repository/transformHTML.js +54 -0
- package/mobile/dist/content-page-repository/transformHTML.js.map +1 -0
- package/mobile/dist/content-page-repository/transformImg.d.ts +12 -0
- package/mobile/dist/content-page-repository/transformImg.js +51 -0
- package/mobile/dist/content-page-repository/transformImg.js.map +1 -0
- package/mobile/dist/content-page-repository/transformMarkdown.d.ts +1 -0
- package/mobile/dist/content-page-repository/transformMarkdown.js +18 -0
- package/mobile/dist/content-page-repository/transformMarkdown.js.map +1 -0
- package/mobile/dist/content-page-repository/transformPicture.d.ts +3 -0
- package/mobile/dist/content-page-repository/transformPicture.js +28 -0
- package/mobile/dist/content-page-repository/transformPicture.js.map +1 -0
- package/mobile/lib/components/ContentPage/computeAPIFallback.d.ts +3 -0
- package/mobile/lib/components/ContentPage/computeAPIFallback.js +19 -0
- package/mobile/lib/components/ContentPage/computeAPIFallback.js.map +1 -0
- package/mobile/lib/content-page-repository/ContentPageRepository.d.ts +10 -0
- package/mobile/lib/content-page-repository/ContentPageRepository.js +25 -0
- package/mobile/lib/content-page-repository/ContentPageRepository.js.map +1 -0
- package/mobile/lib/content-page-repository/JSONDocContentBox.d.ts +8 -0
- package/mobile/lib/content-page-repository/JSONDocContentBox.js +36 -0
- package/mobile/lib/content-page-repository/JSONDocContentBox.js.map +1 -0
- package/mobile/lib/content-page-repository/TransformationOptions.d.ts +4 -0
- package/mobile/lib/content-page-repository/TransformationOptions.js +2 -0
- package/mobile/lib/content-page-repository/TransformationOptions.js.map +1 -0
- package/mobile/lib/content-page-repository/clearAttachmentHref.d.ts +2 -0
- package/mobile/lib/content-page-repository/clearAttachmentHref.js +3 -0
- package/mobile/lib/content-page-repository/clearAttachmentHref.js.map +1 -0
- package/mobile/lib/content-page-repository/computeImgOutputPath.d.ts +3 -0
- package/mobile/lib/content-page-repository/computeImgOutputPath.js +12 -0
- package/mobile/lib/content-page-repository/computeImgOutputPath.js.map +1 -0
- package/mobile/lib/content-page-repository/extensions.d.ts +3 -0
- package/mobile/lib/content-page-repository/extensions.js +16 -0
- package/mobile/lib/content-page-repository/extensions.js.map +1 -0
- package/mobile/lib/content-page-repository/index.d.ts +3 -0
- package/mobile/lib/content-page-repository/index.js +4 -0
- package/mobile/lib/content-page-repository/index.js.map +1 -0
- package/mobile/lib/content-page-repository/mapJSON.d.ts +1 -0
- package/mobile/lib/content-page-repository/mapJSON.js +23 -0
- package/mobile/lib/content-page-repository/mapJSON.js.map +1 -0
- package/mobile/lib/content-page-repository/mergePages.d.ts +2 -0
- package/mobile/lib/content-page-repository/mergePages.js +4 -0
- package/mobile/lib/content-page-repository/mergePages.js.map +1 -0
- package/mobile/lib/content-page-repository/replaceHeadingTags.d.ts +1 -0
- package/mobile/lib/content-page-repository/replaceHeadingTags.js +2 -0
- package/mobile/lib/content-page-repository/replaceHeadingTags.js.map +1 -0
- package/mobile/lib/content-page-repository/resizeImg.d.ts +3 -0
- package/mobile/lib/content-page-repository/resizeImg.js +13 -0
- package/mobile/lib/content-page-repository/resizeImg.js.map +1 -0
- package/mobile/lib/content-page-repository/transformAttachmentLink.d.ts +3 -0
- package/mobile/lib/content-page-repository/transformAttachmentLink.js +34 -0
- package/mobile/lib/content-page-repository/transformAttachmentLink.js.map +1 -0
- package/mobile/lib/content-page-repository/transformContentPage.d.ts +4 -0
- package/mobile/lib/content-page-repository/transformContentPage.js +71 -0
- package/mobile/lib/content-page-repository/transformContentPage.js.map +1 -0
- package/mobile/lib/content-page-repository/transformDocument.d.ts +3 -0
- package/mobile/lib/content-page-repository/transformDocument.js +32 -0
- package/mobile/lib/content-page-repository/transformDocument.js.map +1 -0
- package/mobile/lib/content-page-repository/transformHTML.d.ts +1 -0
- package/mobile/lib/content-page-repository/transformHTML.js +25 -0
- package/mobile/lib/content-page-repository/transformHTML.js.map +1 -0
- package/mobile/lib/content-page-repository/transformImg.d.ts +12 -0
- package/mobile/lib/content-page-repository/transformImg.js +45 -0
- package/mobile/lib/content-page-repository/transformImg.js.map +1 -0
- package/mobile/lib/content-page-repository/transformMarkdown.d.ts +1 -0
- package/mobile/lib/content-page-repository/transformMarkdown.js +12 -0
- package/mobile/lib/content-page-repository/transformMarkdown.js.map +1 -0
- package/mobile/lib/content-page-repository/transformPicture.d.ts +3 -0
- package/mobile/lib/content-page-repository/transformPicture.js +22 -0
- package/mobile/lib/content-page-repository/transformPicture.js.map +1 -0
- package/mobile/src/components/ContentPage/computeAPIFallback.ts +35 -0
- package/mobile/src/content-page-repository/ContentPageRepository.ts +31 -0
- package/mobile/src/content-page-repository/JSONDocContentBox.ts +56 -0
- package/mobile/src/content-page-repository/TransformationOptions.ts +4 -0
- package/mobile/src/content-page-repository/clearAttachmentHref.ts +3 -0
- package/mobile/src/content-page-repository/computeImgOutputPath.ts +21 -0
- package/mobile/src/content-page-repository/extensions.ts +17 -0
- package/mobile/src/content-page-repository/index.ts +3 -0
- package/mobile/src/content-page-repository/mapJSON.ts +30 -0
- package/mobile/src/content-page-repository/mergePages.ts +8 -0
- package/mobile/src/content-page-repository/replaceHeadingTags.ts +2 -0
- package/mobile/src/content-page-repository/resizeImg.ts +17 -0
- package/mobile/src/content-page-repository/transformAttachmentLink.ts +46 -0
- package/mobile/src/content-page-repository/transformContentPage.ts +102 -0
- package/mobile/src/content-page-repository/transformDocument.ts +43 -0
- package/mobile/src/content-page-repository/transformHTML.ts +28 -0
- package/mobile/src/content-page-repository/transformImg.ts +81 -0
- package/mobile/src/content-page-repository/transformMarkdown.ts +14 -0
- package/mobile/src/content-page-repository/transformPicture.ts +35 -0
- package/package.json +21 -1
- package/src/components/ContentPage/computeAPIFallback.ts +35 -0
- package/src/content-page-repository/ContentPageRepository.ts +31 -0
- package/src/content-page-repository/JSONDocContentBox.ts +56 -0
- package/src/content-page-repository/TransformationOptions.ts +4 -0
- package/src/content-page-repository/clearAttachmentHref.ts +3 -0
- package/src/content-page-repository/computeImgOutputPath.ts +21 -0
- package/src/content-page-repository/extensions.ts +17 -0
- package/src/content-page-repository/index.ts +3 -0
- package/src/content-page-repository/mapJSON.ts +30 -0
- package/src/content-page-repository/mergePages.ts +8 -0
- package/src/content-page-repository/replaceHeadingTags.ts +2 -0
- package/src/content-page-repository/resizeImg.ts +17 -0
- package/src/content-page-repository/transformAttachmentLink.ts +46 -0
- package/src/content-page-repository/transformContentPage.ts +102 -0
- package/src/content-page-repository/transformDocument.ts +43 -0
- package/src/content-page-repository/transformHTML.ts +28 -0
- package/src/content-page-repository/transformImg.ts +81 -0
- package/src/content-page-repository/transformMarkdown.ts +14 -0
- package/src/content-page-repository/transformPicture.ts +35 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { type JSONRecord } from '@redneckz/json-op';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import util from 'util';
|
|
4
|
+
import { type Attachment } from '../model/Attachment';
|
|
5
|
+
import { type ContentPageDef } from '../model/ContentPageDef';
|
|
6
|
+
import { type LinkProps } from '../model/LinkProps';
|
|
7
|
+
import { type Picture } from '../model/Picture';
|
|
8
|
+
import { isUUID } from '../utils/isUUID';
|
|
9
|
+
import { tableFunc } from '../utils/tableFunc';
|
|
10
|
+
import { ATTACHMENT_PREFIX } from './clearAttachmentHref';
|
|
11
|
+
import { DOCUMENT_EXT_LIST, IMAGE_EXT_LIST, OUTPUT_SUFFIX } from './extensions';
|
|
12
|
+
import { mapJSON } from './mapJSON';
|
|
13
|
+
import { mergePages } from './mergePages';
|
|
14
|
+
import { type TransformationOptions } from './TransformationOptions';
|
|
15
|
+
import { transformAttachmentLink } from './transformAttachmentLink';
|
|
16
|
+
import { transformDocument } from './transformDocument';
|
|
17
|
+
import { transformHTML } from './transformHTML';
|
|
18
|
+
import { transformMarkdown } from './transformMarkdown';
|
|
19
|
+
import { transformPicture } from './transformPicture';
|
|
20
|
+
|
|
21
|
+
const readFile = util.promisify(fs.readFile);
|
|
22
|
+
const writeFile = util.promisify(fs.writeFile);
|
|
23
|
+
|
|
24
|
+
const DEFAULT_PARENT_CONTENT = {};
|
|
25
|
+
|
|
26
|
+
export async function transformContentPage(
|
|
27
|
+
pagePath: string,
|
|
28
|
+
options: TransformationOptions,
|
|
29
|
+
): Promise<ContentPageDef> {
|
|
30
|
+
const content: JSONRecord = JSON.parse(await readFile(pagePath, 'utf8'));
|
|
31
|
+
const parentContent: JSONRecord = await (content?._extends
|
|
32
|
+
? JSON.parse(await readFile(content._extends as string, 'utf-8'))
|
|
33
|
+
: DEFAULT_PARENT_CONTENT);
|
|
34
|
+
|
|
35
|
+
const mergedContent = mergePages(parentContent, content);
|
|
36
|
+
|
|
37
|
+
const result = await mapJSON(mergedContent as ContentPageDef, async (value: any, [key]) => {
|
|
38
|
+
try {
|
|
39
|
+
return await transform([value, key])(value, pagePath, options);
|
|
40
|
+
} catch (ex) {
|
|
41
|
+
console.warn(`Error while transforming field "${key}" on page: ${pagePath}`);
|
|
42
|
+
console.error(ex);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return value;
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
await writeFile(generatedPagePath(pagePath), JSON.stringify(result), 'utf-8');
|
|
49
|
+
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const transform = tableFunc<
|
|
54
|
+
[any, string],
|
|
55
|
+
(value: any, pagePath: string, options: TransformationOptions) => Promise<any>
|
|
56
|
+
>([
|
|
57
|
+
[([value, key]) => isMarkdown(key, value), async (value: string) => transformMarkdown(value)],
|
|
58
|
+
[([value, key]) => isHTML(key, value), async (value: string) => transformHTML(value)],
|
|
59
|
+
[([value]) => isUUID(value?.src as string), async (value) => ({ src: value?.src })],
|
|
60
|
+
[
|
|
61
|
+
([value]) => isAttachmentLink(value),
|
|
62
|
+
async (value, pagePath, options) =>
|
|
63
|
+
transformAttachmentLink(value as LinkProps, pagePath, options),
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
([value]) => isAttachmentFile(value, DOCUMENT_EXT_LIST),
|
|
67
|
+
async (value, pagePath, options) => transformDocument(value as Attachment, pagePath, options),
|
|
68
|
+
],
|
|
69
|
+
[
|
|
70
|
+
([value]) => isAttachmentFile(value, IMAGE_EXT_LIST),
|
|
71
|
+
async (value, pagePath, options) => transformPicture(value as Picture, pagePath, options),
|
|
72
|
+
],
|
|
73
|
+
[() => true, async (value) => value],
|
|
74
|
+
]);
|
|
75
|
+
|
|
76
|
+
export const generatedPagePath = (pagePath: string) => `${pagePath}${OUTPUT_SUFFIX}`;
|
|
77
|
+
|
|
78
|
+
const isMarkdown = (key: string, value: any): value is string =>
|
|
79
|
+
isString(value) && key?.endsWith('__md');
|
|
80
|
+
const isHTML = (key: string, value: any): value is string =>
|
|
81
|
+
isString(value) && key?.endsWith('__html');
|
|
82
|
+
|
|
83
|
+
const isAttachmentLink = (_: any): _ is LinkProps =>
|
|
84
|
+
isLocalPath(_?.href) && (_.href.startsWith(ATTACHMENT_PREFIX) || isLocalFile(_.href));
|
|
85
|
+
|
|
86
|
+
const isAttachmentFile = (_: any, exts: string[]): _ is Attachment =>
|
|
87
|
+
Boolean(_ && isLocalPath(_?.src)) && exts.some((ext) => _.src.toLowerCase().endsWith(ext));
|
|
88
|
+
|
|
89
|
+
const isLocalPath = (_: any): _ is string => isString(_) && _.length < 1024 && !isURL(_);
|
|
90
|
+
const isURL = (src: string) => ['data:', 'https:', 'http:'].some((proto) => src.startsWith(proto));
|
|
91
|
+
|
|
92
|
+
const isString = (_: any): _ is string => Boolean(_ && typeof _ === 'string');
|
|
93
|
+
|
|
94
|
+
const isLocalFile = (_: any): _ is string => isString(_) && isFileExists(_);
|
|
95
|
+
|
|
96
|
+
const isFileExists = (_: string) => {
|
|
97
|
+
try {
|
|
98
|
+
return fs.statSync(_).isFile();
|
|
99
|
+
} catch (ex) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import util from 'util';
|
|
4
|
+
import { type Attachment } from '../model/Attachment';
|
|
5
|
+
import { isUUID } from '../utils/isUUID';
|
|
6
|
+
import { type TransformationOptions } from './TransformationOptions';
|
|
7
|
+
|
|
8
|
+
const mkdir = util.promisify(fs.mkdir);
|
|
9
|
+
const copyFile = util.promisify(fs.copyFile);
|
|
10
|
+
const stat = util.promisify(fs.stat);
|
|
11
|
+
|
|
12
|
+
export async function transformDocument(
|
|
13
|
+
attachment: Attachment,
|
|
14
|
+
pagePath: string,
|
|
15
|
+
options: TransformationOptions,
|
|
16
|
+
): Promise<Attachment> {
|
|
17
|
+
if (!attachment?.src || isUUID(attachment.src)) {
|
|
18
|
+
return attachment;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const { contentDir, publicDir } = options;
|
|
22
|
+
const input = attachment.src;
|
|
23
|
+
const docRelativePath = path.relative(contentDir, input);
|
|
24
|
+
const output = path.join(publicDir, docRelativePath);
|
|
25
|
+
const inputFileSize = (await stat(input)).size;
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
await mkdir(path.dirname(output), { recursive: true });
|
|
29
|
+
await copyFile(input, output);
|
|
30
|
+
} catch (e) {
|
|
31
|
+
console.info(`No "${input}" attachment found on page: "${pagePath}"`);
|
|
32
|
+
|
|
33
|
+
return attachment;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const src = path.join('/', docRelativePath);
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
...attachment,
|
|
40
|
+
src,
|
|
41
|
+
fileSize: inputFileSize,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import rehypeParse from 'rehype-parse';
|
|
2
|
+
import rehypeSanitize, { defaultSchema } from 'rehype-sanitize';
|
|
3
|
+
import rehypeStringify from 'rehype-stringify';
|
|
4
|
+
import { unified } from 'unified';
|
|
5
|
+
import { replaceHeadingTags } from './replaceHeadingTags';
|
|
6
|
+
|
|
7
|
+
export async function transformHTML(html: string | null | undefined): Promise<string> {
|
|
8
|
+
if (!html) {
|
|
9
|
+
return '';
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const extendedSchema = {
|
|
13
|
+
...defaultSchema,
|
|
14
|
+
protocols: {
|
|
15
|
+
...defaultSchema.protocols,
|
|
16
|
+
href: [...(defaultSchema?.protocols?.href || []), 'tel'],
|
|
17
|
+
src: [...(defaultSchema.protocols?.src ?? []), 'data'],
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const result = await unified()
|
|
22
|
+
.use(rehypeParse)
|
|
23
|
+
.use(rehypeSanitize, extendedSchema)
|
|
24
|
+
.use(rehypeStringify)
|
|
25
|
+
.process(html);
|
|
26
|
+
|
|
27
|
+
return replaceHeadingTags(result.toString('utf-8'));
|
|
28
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import sharp, { type Sharp } from 'sharp';
|
|
4
|
+
import util from 'util';
|
|
5
|
+
import { type ImageSize } from '../model/ImageSize';
|
|
6
|
+
import { type ImgSource } from '../model/Picture';
|
|
7
|
+
import { isPictureSizeEmpty } from '../utils/isPictureSizeEmpty';
|
|
8
|
+
import { computeImgOutputPath } from './computeImgOutputPath';
|
|
9
|
+
import { resizeImg } from './resizeImg';
|
|
10
|
+
import { type TransformationOptions } from './TransformationOptions';
|
|
11
|
+
|
|
12
|
+
const mkdir = util.promisify(fs.mkdir);
|
|
13
|
+
const copyFile = util.promisify(fs.copyFile);
|
|
14
|
+
|
|
15
|
+
type ImgOutputPath = string;
|
|
16
|
+
type TransformationTaskKey = ImgOutputPath;
|
|
17
|
+
type TransformationTasksCache = Map<TransformationTaskKey, Promise<ImgOutputPath>>;
|
|
18
|
+
|
|
19
|
+
type TransformImgOptions = TransformationOptions &
|
|
20
|
+
ImgSource & { containerSize?: ImageSize; cache?: TransformationTasksCache };
|
|
21
|
+
|
|
22
|
+
const defaultTransformationCache: TransformationTasksCache = new Map();
|
|
23
|
+
|
|
24
|
+
const isNilTransform = ({ size, containerSize, format }: TransformImgOptions) =>
|
|
25
|
+
isPictureSizeEmpty(size) && isPictureSizeEmpty(containerSize) && !format;
|
|
26
|
+
|
|
27
|
+
const isVectorInput = (input: string) =>
|
|
28
|
+
['.svg', '.eps', '.epsf', '.epsi', '.pdf'].some((ext) => input.toLowerCase().endsWith(ext));
|
|
29
|
+
|
|
30
|
+
export function transformImg(
|
|
31
|
+
src: string,
|
|
32
|
+
pagePath: string,
|
|
33
|
+
options: TransformImgOptions,
|
|
34
|
+
): ImgOutputPath | Promise<ImgOutputPath> {
|
|
35
|
+
if (!src) {
|
|
36
|
+
return src;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const withoutTransform = isNilTransform(options) || isVectorInput(src);
|
|
40
|
+
|
|
41
|
+
const output = computeImgOutputPath(src, options, withoutTransform);
|
|
42
|
+
|
|
43
|
+
const { cache = defaultTransformationCache } = options;
|
|
44
|
+
|
|
45
|
+
const cachedResult = cache.get(output);
|
|
46
|
+
if (cachedResult) {
|
|
47
|
+
return cachedResult;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const result = (async () => {
|
|
51
|
+
try {
|
|
52
|
+
await mkdir(path.dirname(output), { recursive: true });
|
|
53
|
+
if (withoutTransform) {
|
|
54
|
+
await copyFile(src, output);
|
|
55
|
+
} else {
|
|
56
|
+
const chain = await computeTransformationChain(options)(sharp(src));
|
|
57
|
+
await chain.toFile(output);
|
|
58
|
+
}
|
|
59
|
+
} catch (e) {
|
|
60
|
+
console.info(`No "${src}" attachment found on page: "${pagePath}"`);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return output;
|
|
64
|
+
})();
|
|
65
|
+
cache.set(output, result);
|
|
66
|
+
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const computeTransformationChain = ({
|
|
71
|
+
size,
|
|
72
|
+
containerSize,
|
|
73
|
+
format,
|
|
74
|
+
options,
|
|
75
|
+
}: TransformImgOptions) =>
|
|
76
|
+
pipe(resizeImg(isPictureSizeEmpty(size) ? containerSize : size), (_) =>
|
|
77
|
+
format ? _.toFormat(format, { ...options, lossless: true }) : _,
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
const pipe = (...operations: Array<(chain: Sharp) => Promise<Sharp> | Sharp>) =>
|
|
81
|
+
operations.reduce((a, b) => async (chain: Sharp) => b(await a(chain)));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import remarkHtml from 'remark-html';
|
|
2
|
+
import remarkParse from 'remark-parse';
|
|
3
|
+
import { unified } from 'unified';
|
|
4
|
+
import { replaceHeadingTags } from './replaceHeadingTags';
|
|
5
|
+
|
|
6
|
+
export async function transformMarkdown(markdown: string | null | undefined): Promise<string> {
|
|
7
|
+
if (!markdown) {
|
|
8
|
+
return '';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const result = await unified().use(remarkParse).use(remarkHtml).process(markdown);
|
|
12
|
+
|
|
13
|
+
return replaceHeadingTags(result.toString('utf-8'));
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import sharp from 'sharp';
|
|
3
|
+
import { type Picture } from '../model/Picture';
|
|
4
|
+
import { type TransformationOptions } from './TransformationOptions';
|
|
5
|
+
import { transformImg } from './transformImg';
|
|
6
|
+
|
|
7
|
+
export async function transformPicture(
|
|
8
|
+
picture: Picture,
|
|
9
|
+
pagePath: string,
|
|
10
|
+
options: TransformationOptions,
|
|
11
|
+
): Promise<Picture> {
|
|
12
|
+
const src = picture?.src || '';
|
|
13
|
+
|
|
14
|
+
const transformedImgPath = await transformImg(src, pagePath, { ...options, ...picture });
|
|
15
|
+
|
|
16
|
+
const { width, height } = await sharp(transformedImgPath).metadata();
|
|
17
|
+
const containerSize = width && height ? { width, height } : undefined;
|
|
18
|
+
|
|
19
|
+
const sources = picture.sources || [];
|
|
20
|
+
const transformedSources = await Promise.all(
|
|
21
|
+
sources.map((_) => transformImg(src, pagePath, { ...options, ..._, containerSize })),
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
const imgPathToSrc = (_: string) => path.join('/', path.relative(options.publicDir, _));
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
...picture,
|
|
28
|
+
src: imgPathToSrc(transformedImgPath),
|
|
29
|
+
sources: transformedSources.map((_, i) => ({
|
|
30
|
+
...sources[i],
|
|
31
|
+
src: imgPathToSrc(_),
|
|
32
|
+
size: { width, height },
|
|
33
|
+
})),
|
|
34
|
+
};
|
|
35
|
+
}
|