@paroicms/server 1.84.1 → 1.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bo-backend/backup/backup.resolver.js +2 -2
- package/dist/bo-backend/labeling/labeling.queries.d.ts +15 -0
- package/dist/bo-backend/labeling/labeling.queries.js +47 -0
- package/dist/bo-backend/labeling/labeling.queries.js.map +1 -0
- package/dist/bo-backend/labeling/labeling.resolver.d.ts +3 -0
- package/dist/bo-backend/labeling/labeling.resolver.js +21 -0
- package/dist/bo-backend/labeling/labeling.resolver.js.map +1 -0
- package/dist/bo-backend/login/login.controller.d.ts +1 -1
- package/dist/bo-backend/site-constants/site-constants.resolver.js +2 -2
- package/dist/common/api-error-handler.d.ts +10 -0
- package/dist/common/api-error-handler.js +28 -0
- package/dist/common/api-error-handler.js.map +1 -0
- package/dist/common/data-format.js +2 -2
- package/dist/context.d.ts +3 -1
- package/dist/context.js +5 -1
- package/dist/context.js.map +1 -1
- package/dist/express/create-redirect-url.d.ts +4 -0
- package/dist/express/create-redirect-url.js +25 -0
- package/dist/express/create-redirect-url.js.map +1 -0
- package/dist/express/small-middlewares.d.ts +4 -0
- package/dist/express/small-middlewares.js +25 -0
- package/dist/express/small-middlewares.js.map +1 -0
- package/dist/graphql/complexity-plugin.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/app.controller.d.ts +3 -0
- package/dist/modules/app.controller.js +52 -0
- package/dist/modules/app.controller.js.map +1 -0
- package/dist/modules/bo-backend/account/account.formatters.d.ts +2 -0
- package/dist/modules/bo-backend/account/account.formatters.js +7 -0
- package/dist/modules/bo-backend/account/account.formatters.js.map +1 -0
- package/dist/modules/bo-backend/account/account.queries.d.ts +41 -0
- package/dist/modules/bo-backend/account/account.queries.js +231 -0
- package/dist/modules/bo-backend/account/account.queries.js.map +1 -0
- package/dist/modules/bo-backend/account/account.resolver.d.ts +3 -0
- package/dist/modules/bo-backend/account/account.resolver.js +65 -0
- package/dist/modules/bo-backend/account/account.resolver.js.map +1 -0
- package/dist/modules/bo-backend/auth/auth.helper.d.ts +15 -0
- package/dist/modules/bo-backend/auth/auth.helper.js +69 -0
- package/dist/modules/bo-backend/auth/auth.helper.js.map +1 -0
- package/dist/modules/bo-backend/auth/auth.service.d.ts +5 -0
- package/dist/modules/bo-backend/auth/auth.service.js +144 -0
- package/dist/modules/bo-backend/auth/auth.service.js.map +1 -0
- package/dist/modules/bo-backend/auth/auth.types.d.ts +27 -0
- package/dist/modules/bo-backend/auth/auth.types.js +2 -0
- package/dist/modules/bo-backend/auth/auth.types.js.map +1 -0
- package/dist/modules/bo-backend/backup/backup.controller.d.ts +2 -0
- package/dist/modules/bo-backend/backup/backup.controller.js +26 -0
- package/dist/modules/bo-backend/backup/backup.controller.js.map +1 -0
- package/dist/modules/bo-backend/backup/backup.helper.d.ts +6 -0
- package/dist/modules/bo-backend/backup/backup.helper.js +15 -0
- package/dist/modules/bo-backend/backup/backup.helper.js.map +1 -0
- package/dist/modules/bo-backend/backup/backup.resolver.d.ts +7 -0
- package/dist/modules/bo-backend/backup/backup.resolver.js +24 -0
- package/dist/modules/bo-backend/backup/backup.resolver.js.map +1 -0
- package/dist/modules/bo-backend/document/document.helper.d.ts +2 -0
- package/dist/modules/bo-backend/document/document.helper.js +6 -0
- package/dist/modules/bo-backend/document/document.helper.js.map +1 -0
- package/dist/modules/bo-backend/document/document.resolver.d.ts +3 -0
- package/dist/modules/bo-backend/document/document.resolver.extend.d.ts +3 -0
- package/dist/modules/bo-backend/document/document.resolver.extend.js +25 -0
- package/dist/modules/bo-backend/document/document.resolver.extend.js.map +1 -0
- package/dist/modules/bo-backend/document/document.resolver.js +83 -0
- package/dist/modules/bo-backend/document/document.resolver.js.map +1 -0
- package/dist/modules/bo-backend/document/load-documents.queries.d.ts +17 -0
- package/dist/modules/bo-backend/document/load-documents.queries.js +90 -0
- package/dist/modules/bo-backend/document/load-documents.queries.js.map +1 -0
- package/dist/modules/bo-backend/document/save-documents.queries.d.ts +36 -0
- package/dist/modules/bo-backend/document/save-documents.queries.js +206 -0
- package/dist/modules/bo-backend/document/save-documents.queries.js.map +1 -0
- package/dist/modules/bo-backend/fields/_fields.helpers.d.ts +2 -0
- package/dist/modules/bo-backend/fields/_fields.helpers.js +8 -0
- package/dist/modules/bo-backend/fields/_fields.helpers.js.map +1 -0
- package/dist/modules/bo-backend/fields/fields.resolver.d.ts +5 -0
- package/dist/modules/bo-backend/fields/fields.resolver.js +119 -0
- package/dist/modules/bo-backend/fields/fields.resolver.js.map +1 -0
- package/dist/modules/bo-backend/fields/load-fields-of.queries.d.ts +14 -0
- package/dist/modules/bo-backend/fields/load-fields-of.queries.js +93 -0
- package/dist/modules/bo-backend/fields/load-fields-of.queries.js.map +1 -0
- package/dist/modules/bo-backend/fields/load-fields.queries.d.ts +16 -0
- package/dist/modules/bo-backend/fields/load-fields.queries.js +206 -0
- package/dist/modules/bo-backend/fields/load-fields.queries.js.map +1 -0
- package/dist/modules/bo-backend/fields/preprocess-fields.d.ts +6 -0
- package/dist/modules/bo-backend/fields/preprocess-fields.js +28 -0
- package/dist/modules/bo-backend/fields/preprocess-fields.js.map +1 -0
- package/dist/modules/bo-backend/fields/save-fields.queries.d.ts +10 -0
- package/dist/modules/bo-backend/fields/save-fields.queries.js +173 -0
- package/dist/modules/bo-backend/fields/save-fields.queries.js.map +1 -0
- package/dist/modules/bo-backend/labeling/labeling.queries.d.ts +15 -0
- package/dist/modules/bo-backend/labeling/labeling.queries.js +47 -0
- package/dist/modules/bo-backend/labeling/labeling.queries.js.map +1 -0
- package/dist/modules/bo-backend/labeling/labeling.resolver.d.ts +3 -0
- package/dist/modules/bo-backend/labeling/labeling.resolver.js +21 -0
- package/dist/modules/bo-backend/labeling/labeling.resolver.js.map +1 -0
- package/dist/modules/bo-backend/login/login.controller.d.ts +2 -0
- package/dist/modules/bo-backend/login/login.controller.js +17 -0
- package/dist/modules/bo-backend/login/login.controller.js.map +1 -0
- package/dist/modules/bo-backend/media/add-media-to-node.d.ts +14 -0
- package/dist/modules/bo-backend/media/add-media-to-node.js +116 -0
- package/dist/modules/bo-backend/media/add-media-to-node.js.map +1 -0
- package/dist/modules/bo-backend/media/media-upload.controller.d.ts +2 -0
- package/dist/modules/bo-backend/media/media-upload.controller.js +36 -0
- package/dist/modules/bo-backend/media/media-upload.controller.js.map +1 -0
- package/dist/modules/bo-backend/media/media.d.ts +21 -0
- package/dist/modules/bo-backend/media/media.js +63 -0
- package/dist/modules/bo-backend/media/media.js.map +1 -0
- package/dist/modules/bo-backend/media/media.resolver.d.ts +3 -0
- package/dist/modules/bo-backend/media/media.resolver.extend.d.ts +3 -0
- package/dist/modules/bo-backend/media/media.resolver.extend.js +10 -0
- package/dist/modules/bo-backend/media/media.resolver.extend.js.map +1 -0
- package/dist/modules/bo-backend/media/media.resolver.js +145 -0
- package/dist/modules/bo-backend/media/media.resolver.js.map +1 -0
- package/dist/modules/bo-backend/node/node.queries.d.ts +26 -0
- package/dist/modules/bo-backend/node/node.queries.js +137 -0
- package/dist/modules/bo-backend/node/node.queries.js.map +1 -0
- package/dist/modules/bo-backend/node/node.resolver.d.ts +3 -0
- package/dist/modules/bo-backend/node/node.resolver.extend.d.ts +3 -0
- package/dist/modules/bo-backend/node/node.resolver.extend.js +11 -0
- package/dist/modules/bo-backend/node/node.resolver.extend.js.map +1 -0
- package/dist/modules/bo-backend/node/node.resolver.js +39 -0
- package/dist/modules/bo-backend/node/node.resolver.js.map +1 -0
- package/dist/modules/bo-backend/node/ordered-node.queries.d.ts +6 -0
- package/dist/modules/bo-backend/node/ordered-node.queries.js +49 -0
- package/dist/modules/bo-backend/node/ordered-node.queries.js.map +1 -0
- package/dist/modules/bo-backend/nodel/nodel-wrap.formatters.d.ts +3 -0
- package/dist/modules/bo-backend/nodel/nodel-wrap.formatters.js +14 -0
- package/dist/modules/bo-backend/nodel/nodel-wrap.formatters.js.map +1 -0
- package/dist/modules/bo-backend/nodel/nodel-wrap.resolver.d.ts +3 -0
- package/dist/modules/bo-backend/nodel/nodel-wrap.resolver.js +100 -0
- package/dist/modules/bo-backend/nodel/nodel-wrap.resolver.js.map +1 -0
- package/dist/modules/bo-backend/nodel/nodel.queries.d.ts +58 -0
- package/dist/modules/bo-backend/nodel/nodel.queries.js +266 -0
- package/dist/modules/bo-backend/nodel/nodel.queries.js.map +1 -0
- package/dist/modules/bo-backend/part/part-node.queries.d.ts +9 -0
- package/dist/modules/bo-backend/part/part-node.queries.js +38 -0
- package/dist/modules/bo-backend/part/part-node.queries.js.map +1 -0
- package/dist/modules/bo-backend/part/part.queries.d.ts +37 -0
- package/dist/modules/bo-backend/part/part.queries.js +235 -0
- package/dist/modules/bo-backend/part/part.queries.js.map +1 -0
- package/dist/modules/bo-backend/part/part.resolver.d.ts +3 -0
- package/dist/modules/bo-backend/part/part.resolver.extend.d.ts +3 -0
- package/dist/modules/bo-backend/part/part.resolver.extend.js +37 -0
- package/dist/modules/bo-backend/part/part.resolver.extend.js.map +1 -0
- package/dist/modules/bo-backend/part/part.resolver.js +50 -0
- package/dist/modules/bo-backend/part/part.resolver.js.map +1 -0
- package/dist/modules/bo-backend/site-constants/site-constants.resolver.d.ts +3 -0
- package/dist/modules/bo-backend/site-constants/site-constants.resolver.js +45 -0
- package/dist/modules/bo-backend/site-constants/site-constants.resolver.js.map +1 -0
- package/dist/modules/bo-backend/unprotected/unprotected.resolver.d.ts +9 -0
- package/dist/modules/bo-backend/unprotected/unprotected.resolver.js +59 -0
- package/dist/modules/bo-backend/unprotected/unprotected.resolver.js.map +1 -0
- package/dist/modules/core/account/account.formatters.d.ts +2 -0
- package/dist/modules/core/account/account.formatters.js +7 -0
- package/dist/modules/core/account/account.formatters.js.map +1 -0
- package/dist/modules/core/account/account.queries.d.ts +41 -0
- package/dist/modules/core/account/account.queries.js +231 -0
- package/dist/modules/core/account/account.queries.js.map +1 -0
- package/dist/modules/core/account/account.resolver.d.ts +3 -0
- package/dist/modules/core/account/account.resolver.js +65 -0
- package/dist/modules/core/account/account.resolver.js.map +1 -0
- package/dist/modules/core/account-auth/account-auth.service.d.ts +3 -0
- package/dist/modules/core/account-auth/account-auth.service.js +25 -0
- package/dist/modules/core/account-auth/account-auth.service.js.map +1 -0
- package/dist/modules/core/account-auth/account-auth.strategy.d.ts +3 -0
- package/dist/modules/core/account-auth/account-auth.strategy.js +26 -0
- package/dist/modules/core/account-auth/account-auth.strategy.js.map +1 -0
- package/dist/modules/core/auth/auth.helper.d.ts +15 -0
- package/dist/modules/core/auth/auth.helper.js +69 -0
- package/dist/modules/core/auth/auth.helper.js.map +1 -0
- package/dist/modules/core/auth/auth.service.d.ts +5 -0
- package/dist/modules/core/auth/auth.service.js +144 -0
- package/dist/modules/core/auth/auth.service.js.map +1 -0
- package/dist/modules/core/auth/auth.types.d.ts +27 -0
- package/dist/modules/core/auth/auth.types.js +2 -0
- package/dist/modules/core/auth/auth.types.js.map +1 -0
- package/dist/modules/core/backup/backup.controller.d.ts +2 -0
- package/dist/modules/core/backup/backup.controller.js +26 -0
- package/dist/modules/core/backup/backup.controller.js.map +1 -0
- package/dist/modules/core/backup/backup.helper.d.ts +6 -0
- package/dist/modules/core/backup/backup.helper.js +15 -0
- package/dist/modules/core/backup/backup.helper.js.map +1 -0
- package/dist/modules/core/backup/backup.resolver.d.ts +7 -0
- package/dist/modules/core/backup/backup.resolver.js +24 -0
- package/dist/modules/core/backup/backup.resolver.js.map +1 -0
- package/dist/modules/core/document/document.helper.d.ts +2 -0
- package/dist/modules/core/document/document.helper.js +6 -0
- package/dist/modules/core/document/document.helper.js.map +1 -0
- package/dist/modules/core/document/document.resolver.d.ts +3 -0
- package/dist/modules/core/document/document.resolver.extend.d.ts +3 -0
- package/dist/modules/core/document/document.resolver.extend.js +25 -0
- package/dist/modules/core/document/document.resolver.extend.js.map +1 -0
- package/dist/modules/core/document/document.resolver.js +83 -0
- package/dist/modules/core/document/document.resolver.js.map +1 -0
- package/dist/modules/core/document/load-documents.queries.d.ts +17 -0
- package/dist/modules/core/document/load-documents.queries.js +90 -0
- package/dist/modules/core/document/load-documents.queries.js.map +1 -0
- package/dist/modules/core/document/save-documents.queries.d.ts +36 -0
- package/dist/modules/core/document/save-documents.queries.js +206 -0
- package/dist/modules/core/document/save-documents.queries.js.map +1 -0
- package/dist/modules/core/fields/_fields.helpers.d.ts +2 -0
- package/dist/modules/core/fields/_fields.helpers.js +8 -0
- package/dist/modules/core/fields/_fields.helpers.js.map +1 -0
- package/dist/modules/core/fields/fields.resolver.d.ts +5 -0
- package/dist/modules/core/fields/fields.resolver.js +119 -0
- package/dist/modules/core/fields/fields.resolver.js.map +1 -0
- package/dist/modules/core/fields/load-fields-of.queries.d.ts +14 -0
- package/dist/modules/core/fields/load-fields-of.queries.js +93 -0
- package/dist/modules/core/fields/load-fields-of.queries.js.map +1 -0
- package/dist/modules/core/fields/load-fields.queries.d.ts +16 -0
- package/dist/modules/core/fields/load-fields.queries.js +206 -0
- package/dist/modules/core/fields/load-fields.queries.js.map +1 -0
- package/dist/modules/core/fields/preprocess-fields.d.ts +6 -0
- package/dist/modules/core/fields/preprocess-fields.js +28 -0
- package/dist/modules/core/fields/preprocess-fields.js.map +1 -0
- package/dist/modules/core/fields/save-fields.queries.d.ts +10 -0
- package/dist/modules/core/fields/save-fields.queries.js +173 -0
- package/dist/modules/core/fields/save-fields.queries.js.map +1 -0
- package/dist/modules/core/labeling/labeling.queries.d.ts +15 -0
- package/dist/modules/core/labeling/labeling.queries.js +47 -0
- package/dist/modules/core/labeling/labeling.queries.js.map +1 -0
- package/dist/modules/core/labeling/labeling.resolver.d.ts +3 -0
- package/dist/modules/core/labeling/labeling.resolver.js +21 -0
- package/dist/modules/core/labeling/labeling.resolver.js.map +1 -0
- package/dist/modules/core/login/login.controller.d.ts +2 -0
- package/dist/modules/core/login/login.controller.js +17 -0
- package/dist/modules/core/login/login.controller.js.map +1 -0
- package/dist/modules/core/media/add-media-to-node.d.ts +14 -0
- package/dist/modules/core/media/add-media-to-node.js +116 -0
- package/dist/modules/core/media/add-media-to-node.js.map +1 -0
- package/dist/modules/core/media/media-upload.controller.d.ts +2 -0
- package/dist/modules/core/media/media-upload.controller.js +36 -0
- package/dist/modules/core/media/media-upload.controller.js.map +1 -0
- package/dist/modules/core/media/media.d.ts +21 -0
- package/dist/modules/core/media/media.js +63 -0
- package/dist/modules/core/media/media.js.map +1 -0
- package/dist/modules/core/media/media.resolver.d.ts +3 -0
- package/dist/modules/core/media/media.resolver.extend.d.ts +3 -0
- package/dist/modules/core/media/media.resolver.extend.js +10 -0
- package/dist/modules/core/media/media.resolver.extend.js.map +1 -0
- package/dist/modules/core/media/media.resolver.js +145 -0
- package/dist/modules/core/media/media.resolver.js.map +1 -0
- package/dist/modules/core/node/node.queries.d.ts +26 -0
- package/dist/modules/core/node/node.queries.js +137 -0
- package/dist/modules/core/node/node.queries.js.map +1 -0
- package/dist/modules/core/node/node.resolver.d.ts +3 -0
- package/dist/modules/core/node/node.resolver.extend.d.ts +3 -0
- package/dist/modules/core/node/node.resolver.extend.js +11 -0
- package/dist/modules/core/node/node.resolver.extend.js.map +1 -0
- package/dist/modules/core/node/node.resolver.js +39 -0
- package/dist/modules/core/node/node.resolver.js.map +1 -0
- package/dist/modules/core/node/ordered-node.queries.d.ts +6 -0
- package/dist/modules/core/node/ordered-node.queries.js +49 -0
- package/dist/modules/core/node/ordered-node.queries.js.map +1 -0
- package/dist/modules/core/nodel/nodel-wrap.formatters.d.ts +3 -0
- package/dist/modules/core/nodel/nodel-wrap.formatters.js +14 -0
- package/dist/modules/core/nodel/nodel-wrap.formatters.js.map +1 -0
- package/dist/modules/core/nodel/nodel-wrap.resolver.d.ts +3 -0
- package/dist/modules/core/nodel/nodel-wrap.resolver.js +100 -0
- package/dist/modules/core/nodel/nodel-wrap.resolver.js.map +1 -0
- package/dist/modules/core/nodel/nodel.queries.d.ts +58 -0
- package/dist/modules/core/nodel/nodel.queries.js +266 -0
- package/dist/modules/core/nodel/nodel.queries.js.map +1 -0
- package/dist/modules/core/part/part-node.queries.d.ts +9 -0
- package/dist/modules/core/part/part-node.queries.js +38 -0
- package/dist/modules/core/part/part-node.queries.js.map +1 -0
- package/dist/modules/core/part/part.queries.d.ts +37 -0
- package/dist/modules/core/part/part.queries.js +235 -0
- package/dist/modules/core/part/part.queries.js.map +1 -0
- package/dist/modules/core/part/part.resolver.d.ts +3 -0
- package/dist/modules/core/part/part.resolver.extend.d.ts +3 -0
- package/dist/modules/core/part/part.resolver.extend.js +37 -0
- package/dist/modules/core/part/part.resolver.extend.js.map +1 -0
- package/dist/modules/core/part/part.resolver.js +50 -0
- package/dist/modules/core/part/part.resolver.js.map +1 -0
- package/dist/modules/core/site-constants/site-constants.resolver.d.ts +3 -0
- package/dist/modules/core/site-constants/site-constants.resolver.js +45 -0
- package/dist/modules/core/site-constants/site-constants.resolver.js.map +1 -0
- package/dist/modules/core/unprotected/unprotected.resolver.d.ts +9 -0
- package/dist/modules/core/unprotected/unprotected.resolver.js +59 -0
- package/dist/modules/core/unprotected/unprotected.resolver.js.map +1 -0
- package/dist/modules/graphql.types.d.ts +7 -0
- package/dist/modules/graphql.types.js +2 -0
- package/dist/modules/graphql.types.js.map +1 -0
- package/dist/modules/public-api/mail/validate-recaptcha-response.d.ts +5 -0
- package/dist/modules/public-api/mail/validate-recaptcha-response.js +21 -0
- package/dist/modules/public-api/mail/validate-recaptcha-response.js.map +1 -0
- package/dist/modules/public-api/partials/partials-params.dto.d.ts +6 -0
- package/dist/modules/public-api/partials/partials-params.dto.js +41 -0
- package/dist/modules/public-api/partials/partials-params.dto.js.map +1 -0
- package/dist/modules/public-api/password-reset/password-reset.controller.d.ts +5 -0
- package/dist/modules/public-api/password-reset/password-reset.controller.js +22 -0
- package/dist/modules/public-api/password-reset/password-reset.controller.js.map +1 -0
- package/dist/modules/public-api/password-reset/password-reset.dto.d.ts +3 -0
- package/dist/modules/public-api/password-reset/password-reset.dto.js +29 -0
- package/dist/modules/public-api/password-reset/password-reset.dto.js.map +1 -0
- package/dist/modules/public-api/password-reset/password-reset.service.d.ts +19 -0
- package/dist/modules/public-api/password-reset/password-reset.service.js +57 -0
- package/dist/modules/public-api/password-reset/password-reset.service.js.map +1 -0
- package/dist/modules/public-api/public-api-controller.d.ts +8 -0
- package/dist/modules/public-api/public-api-controller.js +6 -0
- package/dist/modules/public-api/public-api-controller.js.map +1 -0
- package/dist/modules/public-api/public-api-rendering.d.ts +20 -0
- package/dist/modules/public-api/public-api-rendering.js +115 -0
- package/dist/modules/public-api/public-api-rendering.js.map +1 -0
- package/dist/modules/public-api/search-text/search-text.dto.d.ts +7 -0
- package/dist/modules/public-api/search-text/search-text.dto.js +46 -0
- package/dist/modules/public-api/search-text/search-text.dto.js.map +1 -0
- package/dist/modules/public-api/search-text/search-text.queries.d.ts +15 -0
- package/dist/modules/public-api/search-text/search-text.queries.js +82 -0
- package/dist/modules/public-api/search-text/search-text.queries.js.map +1 -0
- package/dist/modules/public-site/feed/feed-generator.d.ts +20 -0
- package/dist/modules/public-site/feed/feed-generator.js +199 -0
- package/dist/modules/public-site/feed/feed-generator.js.map +1 -0
- package/dist/modules/public-site/feed/feed-helpers.d.ts +3 -0
- package/dist/modules/public-site/feed/feed-helpers.js +7 -0
- package/dist/modules/public-site/feed/feed-helpers.js.map +1 -0
- package/dist/modules/public-site/feed/feed.middleware.d.ts +2 -0
- package/dist/modules/public-site/feed/feed.middleware.js +59 -0
- package/dist/modules/public-site/feed/feed.middleware.js.map +1 -0
- package/dist/modules/public-site/helpers/format-date.helper.d.ts +4 -0
- package/dist/modules/public-site/helpers/format-date.helper.js +28 -0
- package/dist/modules/public-site/helpers/format-date.helper.js.map +1 -0
- package/dist/modules/public-site/helpers/medias.helpers.d.ts +7 -0
- package/dist/modules/public-site/helpers/medias.helpers.js +14 -0
- package/dist/modules/public-site/helpers/medias.helpers.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/format-date.d.ts +7 -0
- package/dist/modules/public-site/liquidjs-filters/format-date.js +11 -0
- package/dist/modules/public-site/liquidjs-filters/format-date.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/format-number.d.ts +6 -0
- package/dist/modules/public-site/liquidjs-filters/format-number.js +13 -0
- package/dist/modules/public-site/liquidjs-filters/format-number.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/head-tags-filter.d.ts +6 -0
- package/dist/modules/public-site/liquidjs-filters/head-tags-filter.js +55 -0
- package/dist/modules/public-site/liquidjs-filters/head-tags-filter.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/image-zoom-url.d.ts +6 -0
- package/dist/modules/public-site/liquidjs-filters/image-zoom-url.js +22 -0
- package/dist/modules/public-site/liquidjs-filters/image-zoom-url.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/info-filter.d.ts +1 -0
- package/dist/modules/public-site/liquidjs-filters/info-filter.js +183 -0
- package/dist/modules/public-site/liquidjs-filters/info-filter.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/inject-menu-items-data.d.ts +6 -0
- package/dist/modules/public-site/liquidjs-filters/inject-menu-items-data.js +21 -0
- package/dist/modules/public-site/liquidjs-filters/inject-menu-items-data.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/make-excerpt.d.ts +3 -0
- package/dist/modules/public-site/liquidjs-filters/make-excerpt.js +6 -0
- package/dist/modules/public-site/liquidjs-filters/make-excerpt.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/obfuscate.d.ts +8 -0
- package/dist/modules/public-site/liquidjs-filters/obfuscate.js +21 -0
- package/dist/modules/public-site/liquidjs-filters/obfuscate.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/open-graph-filter.d.ts +9 -0
- package/dist/modules/public-site/liquidjs-filters/open-graph-filter.js +37 -0
- package/dist/modules/public-site/liquidjs-filters/open-graph-filter.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/plugin-asset-url-filter.d.ts +7 -0
- package/dist/modules/public-site/liquidjs-filters/plugin-asset-url-filter.js +22 -0
- package/dist/modules/public-site/liquidjs-filters/plugin-asset-url-filter.js.map +1 -0
- package/dist/modules/public-site/liquidjs-filters/translate-filter.d.ts +7 -0
- package/dist/modules/public-site/liquidjs-filters/translate-filter.js +19 -0
- package/dist/modules/public-site/liquidjs-filters/translate-filter.js.map +1 -0
- package/dist/modules/public-site/liquidjs-tags/get-doc-tag.d.ts +15 -0
- package/dist/modules/public-site/liquidjs-tags/get-doc-tag.js +70 -0
- package/dist/modules/public-site/liquidjs-tags/get-doc-tag.js.map +1 -0
- package/dist/modules/public-site/liquidjs-tags/get-docs-tag.d.ts +15 -0
- package/dist/modules/public-site/liquidjs-tags/get-docs-tag.js +108 -0
- package/dist/modules/public-site/liquidjs-tags/get-docs-tag.js.map +1 -0
- package/dist/modules/public-site/liquidjs-tags/get-paginated-docs-tag.d.ts +28 -0
- package/dist/modules/public-site/liquidjs-tags/get-paginated-docs-tag.js +80 -0
- package/dist/modules/public-site/liquidjs-tags/get-paginated-docs-tag.js.map +1 -0
- package/dist/modules/public-site/liquidjs-tags/use-image-tag.d.ts +13 -0
- package/dist/modules/public-site/liquidjs-tags/use-image-tag.js +73 -0
- package/dist/modules/public-site/liquidjs-tags/use-image-tag.js.map +1 -0
- package/dist/modules/public-site/media-serve/_media-serve-helpers.d.ts +5 -0
- package/dist/modules/public-site/media-serve/_media-serve-helpers.js +15 -0
- package/dist/modules/public-site/media-serve/_media-serve-helpers.js.map +1 -0
- package/dist/modules/public-site/media-serve/media-serve.controller.d.ts +4 -0
- package/dist/modules/public-site/media-serve/media-serve.controller.js +173 -0
- package/dist/modules/public-site/media-serve/media-serve.controller.js.map +1 -0
- package/dist/modules/public-site/public-route/make-url.d.ts +11 -0
- package/dist/modules/public-site/public-route/make-url.js +160 -0
- package/dist/modules/public-site/public-route/make-url.js.map +1 -0
- package/dist/modules/public-site/public-route/public-route-parser.d.ts +17 -0
- package/dist/modules/public-site/public-route/public-route-parser.js +176 -0
- package/dist/modules/public-site/public-route/public-route-parser.js.map +1 -0
- package/dist/modules/public-site/public-route/raw-document-payload.d.ts +4 -0
- package/dist/modules/public-site/public-route/raw-document-payload.js +77 -0
- package/dist/modules/public-site/public-route/raw-document-payload.js.map +1 -0
- package/dist/modules/public-site/public-site.controller.d.ts +2 -0
- package/dist/modules/public-site/public-site.controller.js +27 -0
- package/dist/modules/public-site/public-site.controller.js.map +1 -0
- package/dist/modules/public-site/public-site.middleware.d.ts +2 -0
- package/dist/modules/public-site/public-site.middleware.js +47 -0
- package/dist/modules/public-site/public-site.middleware.js.map +1 -0
- package/dist/modules/public-site/serve-document/serve-document.d.ts +20 -0
- package/dist/modules/public-site/serve-document/serve-document.js +50 -0
- package/dist/modules/public-site/serve-document/serve-document.js.map +1 -0
- package/dist/public-api/partials/partials-params.dto.d.ts +6 -0
- package/dist/public-api/partials/partials-params.dto.js +41 -0
- package/dist/public-api/partials/partials-params.dto.js.map +1 -0
- package/dist/public-api/password-reset/password-reset.dto.d.ts +3 -0
- package/dist/public-api/password-reset/password-reset.dto.js +29 -0
- package/dist/public-api/password-reset/password-reset.dto.js.map +1 -0
- package/dist/public-api/search-text/search-text.dto.d.ts +7 -0
- package/dist/public-api/search-text/search-text.dto.js +46 -0
- package/dist/public-api/search-text/search-text.dto.js.map +1 -0
- package/dist/public-payload/taxonomies.queries.d.ts +14 -0
- package/dist/public-payload/taxonomies.queries.js +42 -0
- package/dist/public-payload/taxonomies.queries.js.map +1 -0
- package/dist/public-site/feed/feed-generator.js +2 -2
- package/dist/public-site/liquidjs-filters/head-tags-filter.d.ts +1 -1
- package/dist/public-site/liquidjs-filters/open-graph-filter.d.ts +1 -1
- package/dist/public-site/public-site.controller.d.ts +2 -0
- package/dist/public-site/public-site.controller.js +27 -0
- package/dist/public-site/public-site.controller.js.map +1 -0
- package/dist/site-context/create-site-context.js +2 -2
- package/dist/site-context/create-site-context.js.map +1 -1
- package/dist/start.js +1 -1
- package/dist/start.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/schema.graphql +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-docs-tag.js","sourceRoot":"","sources":["../../../../src/modules/public-site/liquidjs-tags/get-docs-tag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ParsedNodelId } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
import { type Context, Hash, type Liquid, type TagToken, type TopLevelToken } from "liquidjs";
|
|
3
|
+
import type { DropInst } from "../../../liquidjs-tools/liquidjs-drop.js";
|
|
4
|
+
import { type RenderingContext } from "../../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
5
|
+
import { type PaginatedResult } from "../../../public-payload/doc-values.queries.js";
|
|
6
|
+
import type { DocPayload } from "../../../public-payload/public-payload.types.js";
|
|
7
|
+
import type { SiteContext } from "../../../site-context/site-context.types.js";
|
|
8
|
+
export declare function createGetPaginatedDocsLiquidJsTag(siteContext: SiteContext): {
|
|
9
|
+
new (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid): {
|
|
10
|
+
tokenizer: any;
|
|
11
|
+
"__#6@#varName": string;
|
|
12
|
+
"__#6@#args": Hash;
|
|
13
|
+
render(ctx: Context): Generator<unknown, void, any>;
|
|
14
|
+
name: string;
|
|
15
|
+
liquid: Liquid;
|
|
16
|
+
token: TagToken;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
interface GetPaginatedDocsRawParameters {
|
|
20
|
+
parentId?: string;
|
|
21
|
+
orderBy?: string;
|
|
22
|
+
fields?: string;
|
|
23
|
+
labeledById?: string;
|
|
24
|
+
pageIndex?: number;
|
|
25
|
+
pageSize: number;
|
|
26
|
+
}
|
|
27
|
+
export declare function loadPaginatedDocs(siteContext: SiteContext, renderingContext: RenderingContext, parentId: ParsedNodelId, options: GetPaginatedDocsRawParameters): Promise<PaginatedResult<DropInst<DocPayload>>>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { isDef, nbVal, nbValOrUndef, strValOrUndef } from "@paroi/data-formatters-lib";
|
|
2
|
+
import { parseSorting } from "@paroicms/connector";
|
|
3
|
+
import { parseNodelId } from "@paroicms/public-anywhere-lib";
|
|
4
|
+
import { Hash, Tag } from "liquidjs";
|
|
5
|
+
import { makeCacheDependencyKey } from "../../../common/text-cache.js";
|
|
6
|
+
import { toNodeId } from "../../../helpers/utils-helper.js";
|
|
7
|
+
import { makeTagCacheKeyForRendering, } from "../../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
8
|
+
import { extractRenderingContext } from "../../../liquidjs-tools/liquidjs-utils.js";
|
|
9
|
+
import { createDocPayloadDrop } from "../../../public-payload/create-doc-drop.js";
|
|
10
|
+
import { getPaginatedListOfDocValues, } from "../../../public-payload/doc-values.queries.js";
|
|
11
|
+
const availableParameterNames = new Set([
|
|
12
|
+
"parentId",
|
|
13
|
+
"orderBy",
|
|
14
|
+
"fields",
|
|
15
|
+
"labeledById",
|
|
16
|
+
"pageIndex",
|
|
17
|
+
"pageSize",
|
|
18
|
+
]);
|
|
19
|
+
export function createGetPaginatedDocsLiquidJsTag(siteContext) {
|
|
20
|
+
return class GetPaginatedDocsTag extends Tag {
|
|
21
|
+
#varName;
|
|
22
|
+
#args;
|
|
23
|
+
constructor(token, remainTokens, liquid) {
|
|
24
|
+
super(token, remainTokens, liquid);
|
|
25
|
+
this.#varName = this.tokenizer.readIdentifier().content;
|
|
26
|
+
this.#args = new Hash(token.args);
|
|
27
|
+
}
|
|
28
|
+
*render(ctx) {
|
|
29
|
+
const options = validateParameters(yield this.#args.render(ctx), this.#varName, siteContext);
|
|
30
|
+
if (options.parentId === undefined)
|
|
31
|
+
return;
|
|
32
|
+
const parentId = parseNodelId(options.parentId);
|
|
33
|
+
const cacheKey = makeTagCacheKeyForRendering("getPaginatedDocs", { tagParameters: options });
|
|
34
|
+
const renderingContext = extractRenderingContext(ctx);
|
|
35
|
+
renderingContext.addDependencyKey(makeCacheDependencyKey({ documentId: parentId, relation: "children" }));
|
|
36
|
+
const cacheVal = renderingContext.getValueFromCache(cacheKey);
|
|
37
|
+
if (cacheVal.found) {
|
|
38
|
+
ctx.bottom()[this.#varName] = cacheVal.val;
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const val = yield loadPaginatedDocs(siteContext, renderingContext, parentId, options);
|
|
42
|
+
renderingContext.setValueIntoCache(cacheKey, val);
|
|
43
|
+
ctx.bottom()[this.#varName] = val;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function validateParameters(values, varName, { logger }) {
|
|
48
|
+
for (const name of Object.keys(values)) {
|
|
49
|
+
if (!availableParameterNames.has(name) && name !== varName) {
|
|
50
|
+
logger.warn(`[getPaginatedDocs] unknown parameter "${name}"`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
parentId: strValOrUndef(values.parentId, { varName: "parentId" }),
|
|
55
|
+
orderBy: strValOrUndef(values.orderBy, { varName: "orderBy" }),
|
|
56
|
+
fields: strValOrUndef(values.fields, { varName: "fields" }),
|
|
57
|
+
labeledById: strValOrUndef(values.labeledById, { varName: "labeledById" }),
|
|
58
|
+
pageIndex: nbValOrUndef(values.pageIndex, { varName: "pageIndex" }),
|
|
59
|
+
pageSize: nbVal(values.pageSize, { varName: "pageSize" }),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export async function loadPaginatedDocs(siteContext, renderingContext, parentId, options) {
|
|
63
|
+
const fieldNames = options.fields?.trim().split(/\s*,\s*/);
|
|
64
|
+
const labeledByTermId = isDef(options.labeledById) ? toNodeId(options.labeledById) : undefined;
|
|
65
|
+
const result = await getPaginatedListOfDocValues(siteContext, renderingContext.tracker, {
|
|
66
|
+
parentId,
|
|
67
|
+
documentKind: "regular",
|
|
68
|
+
orderBy: options.orderBy ? parseSorting(options.orderBy) : undefined,
|
|
69
|
+
labeledByTermId: labeledByTermId,
|
|
70
|
+
pageIndex: options.pageIndex ?? 0,
|
|
71
|
+
pageSize: options.pageSize,
|
|
72
|
+
});
|
|
73
|
+
return {
|
|
74
|
+
...result,
|
|
75
|
+
items: result.items.map((item) => createDocPayloadDrop(siteContext, renderingContext, item, {
|
|
76
|
+
fieldNames: fieldNames && fieldNames.length > 0 ? fieldNames : undefined,
|
|
77
|
+
})),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=get-paginated-docs-tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-paginated-docs-tag.js","sourceRoot":"","sources":["../../../../src/modules/public-site/liquidjs-tags/get-paginated-docs-tag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Context, Hash, type Liquid, type TagToken, type TopLevelToken } from "liquidjs";
|
|
2
|
+
import type { SiteContext } from "../../../site-context/site-context.types.js";
|
|
3
|
+
export declare function createUseImageLiquidJsTag(siteContext: SiteContext): {
|
|
4
|
+
new (tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid): {
|
|
5
|
+
tokenizer: any;
|
|
6
|
+
"__#8@#hash": Hash;
|
|
7
|
+
"__#8@#varName": string;
|
|
8
|
+
render(ctx: Context): Generator<unknown, void, unknown>;
|
|
9
|
+
name: string;
|
|
10
|
+
liquid: Liquid;
|
|
11
|
+
token: TagToken;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { boolValOrUndef, strVal, strValOrUndef } from "@paroi/data-formatters-lib";
|
|
2
|
+
import { applyRatioToImageSize, isImageSize } from "@paroicms/public-server-lib";
|
|
3
|
+
import { Hash, Tag } from "liquidjs";
|
|
4
|
+
import { makeTagCacheKeyForRendering } from "../../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
5
|
+
import { extractRenderingContext } from "../../../liquidjs-tools/liquidjs-utils.js";
|
|
6
|
+
import { makeImageAvailable, } from "../../../public-payload/make-image-available.js";
|
|
7
|
+
const availableParameterNames = new Set(["uid", "handle", "size", "autoCrop", "noPixelRatio"]);
|
|
8
|
+
export function createUseImageLiquidJsTag(siteContext) {
|
|
9
|
+
return class UseImageTag extends Tag {
|
|
10
|
+
#hash;
|
|
11
|
+
#varName;
|
|
12
|
+
constructor(tagToken, remainTokens, liquid) {
|
|
13
|
+
super(tagToken, remainTokens, liquid);
|
|
14
|
+
this.#varName = this.tokenizer.readIdentifier().content;
|
|
15
|
+
this.#hash = new Hash(tagToken.args);
|
|
16
|
+
}
|
|
17
|
+
*render(ctx) {
|
|
18
|
+
const options = validateParameters(yield this.#hash.render(ctx), this.#varName, siteContext);
|
|
19
|
+
if (!options)
|
|
20
|
+
return;
|
|
21
|
+
const cacheKey = makeTagCacheKeyForRendering("useImage", { tagParameters: options });
|
|
22
|
+
const renderingContext = extractRenderingContext(ctx);
|
|
23
|
+
const cacheVal = renderingContext.getValueFromCache(cacheKey);
|
|
24
|
+
if (cacheVal.found) {
|
|
25
|
+
ctx.bottom()[this.#varName] = cacheVal.val;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const realSize = options.noPixelRatio
|
|
29
|
+
? options.size
|
|
30
|
+
: applyRatioToImageSize(options.size, siteContext.themeConf.pixelRatio);
|
|
31
|
+
const image = (yield makeImageAvailable(siteContext, renderingContext, {
|
|
32
|
+
...options,
|
|
33
|
+
size: realSize,
|
|
34
|
+
}));
|
|
35
|
+
if (!image)
|
|
36
|
+
throw new Error("useImage: missing image");
|
|
37
|
+
const imageSize = options.noPixelRatio
|
|
38
|
+
? {
|
|
39
|
+
width: image.width,
|
|
40
|
+
height: image.height,
|
|
41
|
+
}
|
|
42
|
+
: {
|
|
43
|
+
width: Math.round(image.width / siteContext.themeConf.pixelRatio),
|
|
44
|
+
height: Math.round(image.height / siteContext.themeConf.pixelRatio),
|
|
45
|
+
};
|
|
46
|
+
const val = {
|
|
47
|
+
...image,
|
|
48
|
+
...imageSize,
|
|
49
|
+
};
|
|
50
|
+
renderingContext.setValueIntoCache(cacheKey, val);
|
|
51
|
+
ctx.bottom()[this.#varName] = val;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function validateParameters(values, varName, { logger }) {
|
|
56
|
+
for (const name of Object.keys(values)) {
|
|
57
|
+
if (!availableParameterNames.has(name) && name !== varName) {
|
|
58
|
+
logger.warn(`[useImage] unknown parameter "${name}"`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const size = strVal(values.size);
|
|
62
|
+
if (!isImageSize(size))
|
|
63
|
+
throw new Error(`useImage param size is not valid, size:${size}`);
|
|
64
|
+
const uid = strValOrUndef(values.uid);
|
|
65
|
+
const handle = strValOrUndef(values.handle);
|
|
66
|
+
const autoCrop = boolValOrUndef(values.autoCrop);
|
|
67
|
+
const noPixelRatio = boolValOrUndef(values.noPixelRatio);
|
|
68
|
+
if (uid)
|
|
69
|
+
return { imageSel: { uid }, size, autoCrop, noPixelRatio };
|
|
70
|
+
if (handle)
|
|
71
|
+
return { imageSel: { handle }, size, autoCrop, noPixelRatio };
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=use-image-tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-image-tag.js","sourceRoot":"","sources":["../../../../src/modules/public-site/liquidjs-tags/use-image-tag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isVariantName } from "@paroicms/public-server-lib";
|
|
2
|
+
export function parseNameAndExt(nameAndExt) {
|
|
3
|
+
const extIndex = nameAndExt.lastIndexOf(".");
|
|
4
|
+
if (extIndex === -1)
|
|
5
|
+
return;
|
|
6
|
+
const name = nameAndExt.slice(0, extIndex);
|
|
7
|
+
const match = name.match(/^(.+)-([0-9]+x[0-9]+)$/);
|
|
8
|
+
if (!match)
|
|
9
|
+
return;
|
|
10
|
+
const [, slug, variantName] = match;
|
|
11
|
+
if (!isVariantName(variantName))
|
|
12
|
+
return;
|
|
13
|
+
return { slug, variantName };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=_media-serve-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_media-serve-helpers.js","sourceRoot":"","sources":["../../../../src/modules/public-site/media-serve/_media-serve-helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,UAAU,eAAe,CAC7B,UAAkB;IAElB,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO;IAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC;IACpC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAAE,OAAO;IACxC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Request, Response } from "express";
|
|
2
|
+
export declare function serveFilecontroller(req: Request, res: Response): Promise<void>;
|
|
3
|
+
export declare function serveVersionedImageController(req: Request, res: Response): Promise<void>;
|
|
4
|
+
export declare function serveUnversionedImageController(req: Request, res: Response): Promise<void>;
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { generateImageSlug, isVariantName, makeUrlOfImageVariant, makeUrlOfMediaFile, } from "@paroicms/public-server-lib";
|
|
2
|
+
import { ApiError } from "../../../common/api-error-handler.js";
|
|
3
|
+
import { HTTP_MAX_AGE } from "../../../express/http-constants.js";
|
|
4
|
+
import { getHttpRequestParameter, getReqSiteContext, serve301Redirect, serve304NotModified, } from "../../../express/http-helpers.js";
|
|
5
|
+
import { parseNameAndExt } from "./_media-serve-helpers.js";
|
|
6
|
+
export async function serveFilecontroller(req, res) {
|
|
7
|
+
const siteContext = getReqSiteContext(req);
|
|
8
|
+
const mediaUid = getHttpRequestParameter(req, "mediaUid");
|
|
9
|
+
const nameAndExt = getHttpRequestParameter(req, "nameAndExt");
|
|
10
|
+
const cacheControl = "max-age=0";
|
|
11
|
+
const fts = await getFileToServe(siteContext, {
|
|
12
|
+
mediaUid,
|
|
13
|
+
ifNoneMatch: req.headers["if-none-match"],
|
|
14
|
+
});
|
|
15
|
+
if (fts.status === 304) {
|
|
16
|
+
return serve304NotModified(res, {
|
|
17
|
+
cacheControl,
|
|
18
|
+
etag: fts.resourceVersion,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
const { file } = fts;
|
|
22
|
+
const { url, fileName } = makeUrlOfMediaFile(siteContext, { mediaUid, mediaType: file.mediaType, originalName: file.originalName }, { returnObj: true });
|
|
23
|
+
if (fileName !== nameAndExt)
|
|
24
|
+
return serve301Redirect(res, url);
|
|
25
|
+
res.append("Cache-Control", cacheControl);
|
|
26
|
+
res.append("Etag", file.resourceVersion);
|
|
27
|
+
res.append("Content-Type", file.mediaType);
|
|
28
|
+
res.append("Content-Length", file.binaryFile.byteLength.toString());
|
|
29
|
+
res.send(file.binaryFile);
|
|
30
|
+
}
|
|
31
|
+
export async function serveVersionedImageController(req, res) {
|
|
32
|
+
const siteContext = getReqSiteContext(req);
|
|
33
|
+
const cacheControl = `public, max-age=${HTTP_MAX_AGE}, immutable`;
|
|
34
|
+
const mediaUid = getHttpRequestParameter(req, "mediaUid");
|
|
35
|
+
const resourceVersion = getHttpRequestParameter(req, "resourceVersion");
|
|
36
|
+
const nameAndExt = getHttpRequestParameter(req, "nameAndExt");
|
|
37
|
+
const parsed = parseNameAndExt(nameAndExt);
|
|
38
|
+
if (!parsed)
|
|
39
|
+
throw new ApiError("invalid name and ext", { status: 404 });
|
|
40
|
+
const { variantName } = parsed;
|
|
41
|
+
const fts = await getVariantImageToServe(siteContext, {
|
|
42
|
+
mediaUid,
|
|
43
|
+
variantName,
|
|
44
|
+
canCreateVariant: false,
|
|
45
|
+
ifNoneMatch: req.headers["if-none-match"],
|
|
46
|
+
});
|
|
47
|
+
if (fts.status === 304) {
|
|
48
|
+
return serve304NotModified(res, {
|
|
49
|
+
cacheControl,
|
|
50
|
+
etag: fts.resourceVersion,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const { file } = fts;
|
|
54
|
+
const newUrl = makeUrlOfImageVariant(siteContext, {
|
|
55
|
+
mediaUid,
|
|
56
|
+
mediaType: file.mediaType,
|
|
57
|
+
variantName,
|
|
58
|
+
resourceVersion: file.resourceVersion,
|
|
59
|
+
slug: file.slug,
|
|
60
|
+
}, { returnObj: true });
|
|
61
|
+
if (file.resourceVersion !== resourceVersion || newUrl.fileName !== nameAndExt) {
|
|
62
|
+
return serve301Redirect(res, newUrl.url);
|
|
63
|
+
}
|
|
64
|
+
res.append("Cache-Control", cacheControl);
|
|
65
|
+
res.append("Etag", file.resourceVersion);
|
|
66
|
+
res.append("Content-Type", file.mediaType);
|
|
67
|
+
res.append("Content-Length", file.binaryFile.byteLength.toString());
|
|
68
|
+
res.send(file.binaryFile);
|
|
69
|
+
}
|
|
70
|
+
export async function serveUnversionedImageController(req, res) {
|
|
71
|
+
const siteContext = getReqSiteContext(req);
|
|
72
|
+
const cacheControl = "max-age=0";
|
|
73
|
+
const mediaUid = getHttpRequestParameter(req, "mediaUid");
|
|
74
|
+
const nameAndExt = getHttpRequestParameter(req, "nameAndExt");
|
|
75
|
+
const parsed = parseNameAndExt(nameAndExt);
|
|
76
|
+
if (!parsed) {
|
|
77
|
+
throw new ApiError("invalid name and ext", {
|
|
78
|
+
status: 404,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
const { variantName } = parsed;
|
|
82
|
+
if (!isVariantName(variantName))
|
|
83
|
+
throw new ApiError("invalid variant name", { status: 404 });
|
|
84
|
+
const fts = await getVariantImageToServe(siteContext, {
|
|
85
|
+
mediaUid,
|
|
86
|
+
variantName,
|
|
87
|
+
canCreateVariant: true,
|
|
88
|
+
ifNoneMatch: req.headers["if-none-match"],
|
|
89
|
+
});
|
|
90
|
+
if (fts.status === 304) {
|
|
91
|
+
return serve304NotModified(res, {
|
|
92
|
+
cacheControl,
|
|
93
|
+
etag: fts.resourceVersion,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
const { file } = fts;
|
|
97
|
+
const newUrl = makeUrlOfImageVariant(siteContext, {
|
|
98
|
+
mediaUid,
|
|
99
|
+
mediaType: file.mediaType,
|
|
100
|
+
variantName,
|
|
101
|
+
resourceVersion: undefined,
|
|
102
|
+
slug: file.slug,
|
|
103
|
+
}, { returnObj: true });
|
|
104
|
+
if (newUrl.fileName !== nameAndExt) {
|
|
105
|
+
return serve301Redirect(res, newUrl.url);
|
|
106
|
+
}
|
|
107
|
+
res.append("Cache-Control", cacheControl);
|
|
108
|
+
res.append("Etag", file.resourceVersion);
|
|
109
|
+
res.append("Content-Type", file.mediaType);
|
|
110
|
+
res.append("Content-Length", file.binaryFile.byteLength.toString());
|
|
111
|
+
res.send(file.binaryFile);
|
|
112
|
+
}
|
|
113
|
+
async function getVariantImageToServe(siteContext, options) {
|
|
114
|
+
const { mediaUid, variantName, canCreateVariant, ifNoneMatch } = options;
|
|
115
|
+
let file = await siteContext.imageCache.getImageVariantWithBinary({
|
|
116
|
+
imageUid: mediaUid,
|
|
117
|
+
variantName,
|
|
118
|
+
});
|
|
119
|
+
if (file) {
|
|
120
|
+
if (ifNoneMatch === file.resourceVersion) {
|
|
121
|
+
return {
|
|
122
|
+
status: 304,
|
|
123
|
+
resourceVersion: file.resourceVersion,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
if (canCreateVariant) {
|
|
129
|
+
file = await tryToCreateImageVariant(siteContext, { mediaUid, variantName });
|
|
130
|
+
}
|
|
131
|
+
if (!file)
|
|
132
|
+
throw new ApiError("image not found", { status: 404 });
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
status: 200,
|
|
136
|
+
file,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
async function getFileToServe(siteContext, options) {
|
|
140
|
+
const { mediaUid, ifNoneMatch } = options;
|
|
141
|
+
const media = await siteContext.mediaStorage.getMediaWithBinary(mediaUid);
|
|
142
|
+
if (!media)
|
|
143
|
+
throw new ApiError(`media '${mediaUid}' not found`, { status: 404 });
|
|
144
|
+
if (media.resourceVersion === ifNoneMatch) {
|
|
145
|
+
return {
|
|
146
|
+
status: 304,
|
|
147
|
+
resourceVersion: media.resourceVersion,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
status: 200,
|
|
152
|
+
file: media,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
async function tryToCreateImageVariant(siteContext, options) {
|
|
156
|
+
const { mediaUid, variantName } = options;
|
|
157
|
+
const media = await siteContext.mediaStorage.getMedia({ uid: mediaUid });
|
|
158
|
+
if (!media || media.kind !== "image") {
|
|
159
|
+
throw new ApiError(`image '${mediaUid}' not found`, { status: 404 });
|
|
160
|
+
}
|
|
161
|
+
return await siteContext.imageCache.conditionallyCreateImageVariantWithBinary({
|
|
162
|
+
imageUid: media.uid,
|
|
163
|
+
mediaType: media.mediaType,
|
|
164
|
+
width: media.width,
|
|
165
|
+
height: media.height,
|
|
166
|
+
}, {
|
|
167
|
+
authorisedImageSizes: siteContext.themeConf.fTextImages.map((val) => val.realSize),
|
|
168
|
+
variantName,
|
|
169
|
+
slug: generateImageSlug(media.originalName),
|
|
170
|
+
dependsOnUsedKey: "themeConf.fTextImages",
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=media-serve.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-serve.controller.js","sourceRoot":"","sources":["../../../../src/modules/public-site/media-serve/media-serve.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Tracker } from "@paroicms/internal-server-lib";
|
|
2
|
+
import type { ParsedNodelId } from "@paroicms/public-anywhere-lib";
|
|
3
|
+
import type { SiteContext } from "../../../site-context/site-context.types.js";
|
|
4
|
+
export declare function getUrlOfDocument(siteContext: SiteContext, tracker: Tracker, documentId: ParsedNodelId): Promise<string>;
|
|
5
|
+
export declare function getUrlOfDocument(siteContext: SiteContext, tracker: Tracker, documentId: ParsedNodelId, options: {
|
|
6
|
+
returnUrlDependencyKeys: true;
|
|
7
|
+
}): Promise<{
|
|
8
|
+
url: string;
|
|
9
|
+
dependencyKeys: string[];
|
|
10
|
+
}>;
|
|
11
|
+
export declare function getHomeUrl(siteContext: Pick<SiteContext, "siteSchema">, language: string): string;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { dateVal, strVal, strValOrUndef } from "@paroi/data-formatters-lib";
|
|
2
|
+
import { mainDbSchemaName } from "@paroicms/connector";
|
|
3
|
+
import { getDocumentTypeByName } from "@paroicms/internal-anywhere-lib";
|
|
4
|
+
import { makeCacheDependencyKey, makeCacheKey } from "../../../common/text-cache.js";
|
|
5
|
+
import { getNodeDepth } from "../../core/node/node.queries.js";
|
|
6
|
+
export async function getUrlOfDocument(siteContext, tracker, documentId, options = {}) {
|
|
7
|
+
const cacheKey = makeCacheKey(siteContext.logger, { kind: "url", documentId });
|
|
8
|
+
const cacheValue = await siteContext.textCache.getCacheValue(cacheKey, tracker);
|
|
9
|
+
if (cacheValue) {
|
|
10
|
+
if (!options.returnUrlDependencyKeys)
|
|
11
|
+
return cacheValue.value;
|
|
12
|
+
return {
|
|
13
|
+
url: cacheValue.value,
|
|
14
|
+
dependencyKeys: await siteContext.textCache.getDependencyKeys(cacheKey, tracker),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
let dependencyKeys;
|
|
18
|
+
let url;
|
|
19
|
+
const { nodeId, language } = documentId;
|
|
20
|
+
const depth = await getNodeDepth(siteContext, tracker, nodeId);
|
|
21
|
+
if (depth === 0) {
|
|
22
|
+
url = getHomeUrl(siteContext, language);
|
|
23
|
+
dependencyKeys = [];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const query = buildUrlQuery(siteContext, documentId, depth);
|
|
27
|
+
const rows = await query;
|
|
28
|
+
tracker.trackAccess(mainDbSchemaName, "PaNode", "read");
|
|
29
|
+
if (!rows || rows.length === 0) {
|
|
30
|
+
throw new Error(`invalid url data for document "${language}:${nodeId}"`);
|
|
31
|
+
}
|
|
32
|
+
const urlData = formatUrlData(rows[0], depth);
|
|
33
|
+
url = makeDocumentUrl(siteContext, urlData, language);
|
|
34
|
+
dependencyKeys = makeUrlDependencyKeys(urlData, language);
|
|
35
|
+
}
|
|
36
|
+
await siteContext.textCache.setCacheValue({
|
|
37
|
+
cacheKey,
|
|
38
|
+
value: url,
|
|
39
|
+
dependencyKeys,
|
|
40
|
+
}, tracker);
|
|
41
|
+
return options.returnUrlDependencyKeys ? { url, dependencyKeys } : url;
|
|
42
|
+
}
|
|
43
|
+
function buildUrlQuery(siteContext, nodelId, depth) {
|
|
44
|
+
const { cn } = siteContext;
|
|
45
|
+
const { nodeId, language } = nodelId;
|
|
46
|
+
let cur = depth;
|
|
47
|
+
let query = cn(`PaNode as l${cur}`)
|
|
48
|
+
.select([
|
|
49
|
+
`l${cur}.id as id${cur}`,
|
|
50
|
+
`l${cur}.typeName as typeName${cur}`,
|
|
51
|
+
`l${cur}.relativeId as relativeId${cur}`,
|
|
52
|
+
`l${cur}.publishDate as publishDate${cur}`,
|
|
53
|
+
`d${cur}.slug as slug${cur}`,
|
|
54
|
+
])
|
|
55
|
+
.innerJoin(`PaNodel as s${cur}`, {
|
|
56
|
+
[`s${cur}.nodeId`]: `l${cur}.id`,
|
|
57
|
+
[`s${cur}.language`]: cn.raw("?", [language]),
|
|
58
|
+
})
|
|
59
|
+
.leftJoin(`PaDocument as d${cur}`, {
|
|
60
|
+
[`d${cur}.nodeId`]: `s${cur}.nodeId`,
|
|
61
|
+
[`d${cur}.language`]: `s${cur}.language`,
|
|
62
|
+
})
|
|
63
|
+
.where(`l${cur}.id`, nodeId)
|
|
64
|
+
.whereNotNull(`l${cur}.publishDate`);
|
|
65
|
+
let prev = cur;
|
|
66
|
+
while (prev > 1) {
|
|
67
|
+
cur = prev - 1;
|
|
68
|
+
query = query.select([
|
|
69
|
+
`l${prev}.id as id${prev}`,
|
|
70
|
+
`l${prev}.typeName as typeName${prev}`,
|
|
71
|
+
`l${prev}.relativeId as relativeId${prev}`,
|
|
72
|
+
`l${prev}.publishDate as publishDate${prev}`,
|
|
73
|
+
`d${prev}.slug as slug${prev}`,
|
|
74
|
+
`l${cur}.id as id${cur}`,
|
|
75
|
+
`l${cur}.typeName as typeName${cur}`,
|
|
76
|
+
`l${cur}.relativeId as relativeId${cur}`,
|
|
77
|
+
`l${cur}.publishDate as publishDate${cur}`,
|
|
78
|
+
`d${cur}.slug as slug${cur}`,
|
|
79
|
+
]);
|
|
80
|
+
query = query
|
|
81
|
+
.innerJoin(`PaNode as l${cur}`, `l${cur}.id`, `l${prev}.parentId`)
|
|
82
|
+
.innerJoin(`PaNodel as s${cur}`, {
|
|
83
|
+
[`s${cur}.nodeId`]: `l${cur}.id`,
|
|
84
|
+
[`s${cur}.language`]: cn.raw("?", [language]),
|
|
85
|
+
})
|
|
86
|
+
.leftJoin(`PaDocument as d${cur}`, {
|
|
87
|
+
[`d${cur}.nodeId`]: `s${cur}.nodeId`,
|
|
88
|
+
[`d${cur}.language`]: `s${cur}.language`,
|
|
89
|
+
})
|
|
90
|
+
.whereNotNull(`l${cur}.publishDate`);
|
|
91
|
+
prev = cur;
|
|
92
|
+
}
|
|
93
|
+
query = query.where(`l${prev}.parentId`, siteContext.siteIds.homeIds.nodeId);
|
|
94
|
+
return query;
|
|
95
|
+
}
|
|
96
|
+
function formatUrlData(row, depth) {
|
|
97
|
+
const parts = new Map();
|
|
98
|
+
for (let cur = 1; cur <= depth; ++cur) {
|
|
99
|
+
parts.set(cur, {
|
|
100
|
+
nodeId: strVal(row[`id${cur}`]),
|
|
101
|
+
typeName: strVal(row[`typeName${cur}`]),
|
|
102
|
+
relativeId: strVal(row[`relativeId${cur}`]),
|
|
103
|
+
slug: strValOrUndef(row[`slug${cur}`]),
|
|
104
|
+
publishDate: dateVal(row[`publishDate${cur}`]),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return { depth, parts };
|
|
108
|
+
}
|
|
109
|
+
export function getHomeUrl(siteContext, language) {
|
|
110
|
+
return siteContext.siteSchema.isMultilingual ? `/${language}` : "/";
|
|
111
|
+
}
|
|
112
|
+
function makeDocumentUrl(siteContext, urlData, language) {
|
|
113
|
+
const { siteSchema } = siteContext;
|
|
114
|
+
const urlParts = siteSchema.isMultilingual ? [language] : [];
|
|
115
|
+
let parent = getDocumentTypeByName(siteSchema, "home");
|
|
116
|
+
for (let cur = 1; cur <= urlData.depth; ++cur) {
|
|
117
|
+
const part = urlData.parts.get(cur);
|
|
118
|
+
if (!part)
|
|
119
|
+
throw new Error(`missing url part for depth '${cur}'`);
|
|
120
|
+
if (!parent.regularChildren?.includes(part.typeName) &&
|
|
121
|
+
!parent.routingChildren?.includes(part.typeName)) {
|
|
122
|
+
throw new Error(`schema and database are not compatible, '${part.typeName}' should not be a child of '${parent.typeName}'`);
|
|
123
|
+
}
|
|
124
|
+
const docType = getDocumentTypeByName(siteSchema, part.typeName);
|
|
125
|
+
if (docType.documentKind === "routing") {
|
|
126
|
+
const part = docType.route?.[language];
|
|
127
|
+
if (!part) {
|
|
128
|
+
throw new Error(`missing urlPath['${language}'] in document type '${docType.typeName}'`);
|
|
129
|
+
}
|
|
130
|
+
urlParts.push(part);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
if (docType.route === ":relativeId-:slug") {
|
|
134
|
+
urlParts.push(makeRelativeIdSlugUrlPart(part));
|
|
135
|
+
}
|
|
136
|
+
else if (docType.route === ":yyyy/:mm/:dd/:relativeId-:slug") {
|
|
137
|
+
const { publishDate } = part;
|
|
138
|
+
urlParts.push(String(publishDate.getFullYear()).padStart(4, "0"));
|
|
139
|
+
urlParts.push(String(publishDate.getMonth() + 1).padStart(2, "0"));
|
|
140
|
+
urlParts.push(String(publishDate.getDate()).padStart(2, "0"));
|
|
141
|
+
urlParts.push(makeRelativeIdSlugUrlPart(part));
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
throw new Error(`in '${docType.typeName}', unknown value for route: '${docType.route}'`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
parent = docType;
|
|
148
|
+
}
|
|
149
|
+
return `/${urlParts.join("/")}`;
|
|
150
|
+
}
|
|
151
|
+
function makeRelativeIdSlugUrlPart(part) {
|
|
152
|
+
return part.slug ? `${part.relativeId}-${part.slug}` : part.relativeId;
|
|
153
|
+
}
|
|
154
|
+
function makeUrlDependencyKeys(urlData, language) {
|
|
155
|
+
return Array.from(urlData.parts.values()).map((part) => makeCacheDependencyKey({
|
|
156
|
+
documentId: { language, nodeId: part.nodeId },
|
|
157
|
+
perimeter: "slug",
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=make-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-url.js","sourceRoot":"","sources":["../../../../src/modules/public-site/public-route/make-url.ts"],"names":[],"mappings":"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"}
|