create-sitecore-jss 22.2.0-canary.1 → 22.2.0-canary.10
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/bin.js +70 -28
- package/dist/common/index.js +5 -3
- package/dist/common/processes/install.js +9 -2
- package/dist/common/processes/next.js +3 -3
- package/dist/common/processes/transform.js +29 -14
- package/dist/common/prompts/base.js +0 -12
- package/dist/common/prompts/sxp.js +20 -0
- package/dist/common/utils/helpers.js +28 -43
- package/dist/init-runner.js +16 -11
- package/dist/initializers/angular/index.js +13 -0
- package/dist/initializers/angular/prompts.js +22 -1
- package/dist/initializers/angular-sxp/index.js +62 -0
- package/dist/initializers/angular-xmcloud/index.js +66 -0
- package/dist/initializers/nextjs/index.js +2 -2
- package/dist/initializers/nextjs/prompts.js +2 -0
- package/dist/initializers/nextjs/remove-dev-dependencies.js +2 -2
- package/dist/initializers/nextjs-multisite/index.js +1 -1
- package/dist/initializers/nextjs-styleguide/index.js +1 -1
- package/dist/initializers/nextjs-styleguide-tracking/index.js +1 -1
- package/dist/initializers/nextjs-sxa/index.js +1 -1
- package/dist/initializers/nextjs-xmcloud/index.js +1 -1
- package/dist/initializers/node-xmcloud-proxy/index.js +32 -0
- package/dist/initializers/react/index.js +3 -3
- package/dist/initializers/react/prompts.js +1 -1
- package/dist/initializers/react-native/prompts.js +1 -0
- package/dist/initializers/vue/prompts.js +1 -1
- package/dist/templates/angular/.env +5 -3
- package/dist/templates/angular/README.md +5 -45
- package/dist/templates/angular/angular.json +1 -6
- package/dist/templates/angular/package.json +5 -15
- package/dist/templates/angular/proxy.conf.js +5 -23
- package/dist/templates/angular/scripts/bootstrap.ts +5 -24
- package/dist/templates/angular/scripts/config/index.ts +28 -0
- package/dist/templates/angular/scripts/config/plugins/computed.ts +21 -0
- package/dist/templates/angular/scripts/config/plugins/fallback.ts +23 -0
- package/dist/templates/angular/scripts/config/plugins/package-json.ts +22 -0
- package/dist/templates/angular/scripts/config/plugins/scjssconfig.ts +29 -0
- package/dist/templates/angular/scripts/generate-config.ts +53 -73
- package/dist/templates/angular/scripts/generate-plugins.ts +28 -0
- package/dist/templates/angular/scripts/temp/gitignore +2 -0
- package/dist/templates/angular/scripts/update-graphql-fragment-data.ts +4 -2
- package/dist/templates/angular/server.bundle.ts +19 -1
- package/dist/templates/angular/src/app/JssState.ts +1 -4
- package/dist/templates/angular/src/app/app.module.ts +0 -2
- package/dist/templates/angular/src/app/components/app-components.shared.module.ts +4 -19
- package/dist/templates/angular/src/app/jss-context.server-side.service.ts +0 -2
- package/dist/templates/angular/src/app/lib/config.ts +16 -0
- package/dist/templates/angular/src/app/lib/dictionary-service-factory.ts +21 -13
- package/dist/templates/angular/src/app/lib/layout-service-factory.ts +20 -12
- package/dist/templates/angular/src/app/routing/layout/layout.component.html +1 -1
- package/dist/templates/angular/src/app/routing/layout/layout.component.ts +1 -2
- package/dist/templates/angular/src/app/routing/navigation/navigation.component.html +5 -6
- package/dist/templates/angular/src/app/routing/navigation/navigation.component.ts +1 -2
- package/dist/templates/angular/src/app/routing/routing.module.ts +14 -21
- package/dist/templates/angular/src/app/routing/scripts/scripts.component.html +1 -0
- package/dist/templates/angular/src/app/routing/scripts/scripts.component.ts +7 -0
- package/dist/templates/angular/src/app/routing/scripts/scripts.module.ts +8 -0
- package/dist/templates/angular/src/graphql-fragment-types.ts +0 -95
- package/dist/templates/angular/tsconfig.json +7 -2
- package/dist/templates/angular-sxp/package.json +12 -0
- package/dist/templates/angular-sxp/proxy.conf.js +43 -0
- package/dist/templates/angular-sxp/scripts/config/plugins/disconnected.ts +27 -0
- package/dist/templates/angular-sxp/src/app/components/app-components.shared.module.ts +35 -0
- package/dist/templates/{angular → angular-sxp}/src/app/jss-data-fetcher.service.ts +3 -1
- package/dist/templates/angular-sxp/src/app/routing/navigation/navigation.component.html +23 -0
- package/dist/templates/angular-sxp/src/app/routing/scripts/scripts.component.html +3 -0
- package/dist/templates/angular-sxp/src/app/routing/scripts/scripts.module.ts +9 -0
- package/dist/templates/{angular/src/app/routing → angular-sxp/src/app/routing/scripts}/visitor-identification/visitor-identification.component.ts +9 -3
- package/dist/templates/angular-sxp/src/graphql-fragment-types.ts +219 -0
- package/dist/templates/angular-xmcloud/.env +8 -0
- package/dist/templates/angular-xmcloud/angular.json +34 -0
- package/dist/templates/angular-xmcloud/package.json +15 -0
- package/dist/templates/angular-xmcloud/scripts/config/plugins/xmcloud.ts +23 -0
- package/dist/templates/angular-xmcloud/scripts/proxy-build.ts +15 -0
- package/dist/templates/angular-xmcloud/src/app/components/container/container.component.html +15 -0
- package/dist/templates/angular-xmcloud/src/app/components/container/container.component.ts +30 -0
- package/dist/templates/angular-xmcloud/src/app/components/richtext/richtext.component.html +13 -0
- package/dist/templates/angular-xmcloud/src/app/components/richtext/richtext.component.ts +16 -0
- package/dist/templates/angular-xmcloud/src/app/components/sxa.component.ts +15 -0
- package/dist/templates/angular-xmcloud/src/app/jss-link.service.ts +51 -0
- package/dist/templates/angular-xmcloud/src/app/lib/config.ts +15 -0
- package/dist/templates/angular-xmcloud/src/app/lib/graphql-client-factory.ts +44 -0
- package/dist/templates/angular-xmcloud/src/app/routing/layout/layout.component.html +39 -0
- package/dist/templates/angular-xmcloud/src/app/routing/layout/layout.component.ts +111 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/_component.scss +48 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/_container.scss +64 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/_fonts.scss +3 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/_footer.scss +31 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/_header.scss +49 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/_navigation.scss +150 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/_promo.scss +58 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/_rich-text.scss +11 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/_variables.scss +10 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/basic/main.scss +8 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/main.scss +4 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/_app.scss +103 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_functions.scss +8 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_mixins.scss +121 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_vars.scss +3 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_colors.scss +283 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_fontSizes.scss +16 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_margins.scss +11 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/fonts/_fonts.scss +1 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/fonts/index.scss +1 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/index.scss +3 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/links/_link-button.scss +26 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/links/index.scss +1 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_inputs.scss +58 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_links.scss +14 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_ui-datepicker.scss +7 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/_richtext-files-icons.scss +86 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/_richtext.scss +101 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/index.scss +2 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/typehead/_typehead.scss +95 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/typehead/index.scss +1 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-column-splitter.scss +14 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-container.scss +27 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-image.scss +18 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-navigation.scss +51 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-promo.scss +42 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-richtext-content.scss +19 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_alignment.scss +26 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_boxed.scss +16 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_clearfix.scss +11 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_highlighted.scss +63 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_link-button.scss +16 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_promoted-box.scss +3 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/index.scss +6 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/_bordered.scss +24 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/_title-row-box.scss +66 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/index.scss +1 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image/_image-default-size.scss +6 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image/index.scss +1 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image-alignment/_image-left.scss +3 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image-alignment/_image-right.scss +3 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/index.scss +17 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/_acaindent.scss +5 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/_background.scss +27 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/index.scss +1 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/_component-link-list.scss +45 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/_list-vertical.scss +20 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/index.scss +2 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-fat.scss +58 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-main-horizontal-vertical.scss +176 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-mobile.scss +85 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-sidebar.scss +29 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_sitemap-navigation.scss +20 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/index.scss +5 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_absolute-bottom-link.scss +8 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_promo-hero.scss +40 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_promo-shadow.scss +42 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/index.scss +3 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/rich-text/_rich-text-lists.scss +63 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/rich-text/index.scss +1 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/_background-colors.scss +14 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/_indent.scss +13 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/index.scss +2 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/title/_component-title.scss +30 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/title/index.scss +1 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/main.scss +4 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/index.scss +6 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/link-list/index.scss +0 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/navigation/index.scss +0 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/page-content/index.scss +0 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/promo/index.scss +0 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/rich-text/index.scss +0 -0
- package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/title/index.scss +0 -0
- package/dist/templates/nextjs-sxa/src/assets/sass/components/_component-image.scss +1 -1
- package/dist/templates/node-xmcloud-proxy/.env +8 -0
- package/dist/templates/node-xmcloud-proxy/README.md +36 -0
- package/dist/templates/node-xmcloud-proxy/package.json +25 -0
- package/dist/templates/node-xmcloud-proxy/src/config.ts +19 -0
- package/dist/templates/node-xmcloud-proxy/src/index.ts +161 -0
- package/dist/templates/node-xmcloud-proxy/src/types.ts +59 -0
- package/dist/templates/node-xmcloud-proxy/tsconfig.json +22 -0
- package/package.json +2 -2
- /package/dist/templates/angular/src/app/lib/{client-factory.ts → graphql-client-factory.ts} +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/component-content/Styleguide/ContentReuse/LoremIpsumContentBlock/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/component-content/gitignore +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ContentListField/Item1/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ContentListField/Item2/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item1/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item2/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item1/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item2/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/content/gitignore +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/dictionary/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/dictionary/{{language}}.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/media/files/jss.pdf +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/media/img/jss_logo.png +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/media/img/sc_logo.png +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/graphql/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/graphql/sample-1/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/graphql/sample-2/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/custom-route-type/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/en.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/{{language}}.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/data/routes/{{language}}.yml +0 -0
- /package/dist/templates/{angular → angular-sxp}/scripts/disconnected-mode-proxy.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/scripts/lint-yml.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/config/{{appName}}.config +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/component-content.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Reuse.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Tabs-Tab.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Tabs.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Multilingual.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Section.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/content-block.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-connected-demo.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-integrated-demo.sitecore.graphql +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-integrated-demo.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-layout.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-angular-lazy-loading.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-component-params.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-custom-route-type.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-edit-frame.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-checkbox.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-content-list.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-custom.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-date.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-file.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-image.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-item-link.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-link.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-number.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-rich-text.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-text.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-route-fields.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-sitecore-context.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-tracking.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/config.js +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/content.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/dictionary.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/placeholders.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/routes.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/Styleguide-Explanatory-Component.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-content-list-template.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-edit-frame-list-item-template.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-item-link-template.sitecore.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/gitignore +0 -0
- /package/dist/templates/{angular → angular-sxp}/sitecore/pipelines/example.patch.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.graphql +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-integrated-demo/graph-ql-integrated-demo.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-integrated-demo/graph-ql-integrated-demo.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-layout/graph-ql-layout.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-layout/graph-ql-layout.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/shared/styleguide-specimen/styleguide-specimen.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.module.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-component-params/styleguide-component-params.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-component-params/styleguide-component-params.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-custom-route-type/styleguide-custom-route-type.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-custom-route-type/styleguide-custom-route-type.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-edit-frame/styleguide-edit-frame.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-edit-frame/styleguide-edit-frame.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-checkbox/styleguide-field-usage-checkbox.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-checkbox/styleguide-field-usage-checkbox.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-content-list/styleguide-field-usage-content-list.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-content-list/styleguide-field-usage-content-list.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-custom/styleguide-field-usage-custom.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-custom/styleguide-field-usage-custom.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-date/styleguide-field-usage-date.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-date/styleguide-field-usage-date.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-file/styleguide-field-usage-file.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-file/styleguide-field-usage-file.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-image/styleguide-field-usage-image.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-image/styleguide-field-usage-image.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-item-link/styleguide-field-usage-item-link.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-item-link/styleguide-field-usage-item-link.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-link/styleguide-field-usage-link.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-link/styleguide-field-usage-link.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-number/styleguide-field-usage-number.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-number/styleguide-field-usage-number.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-rich-text/styleguide-field-usage-rich-text.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-rich-text/styleguide-field-usage-rich-text.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-text/styleguide-field-usage-text.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-text/styleguide-field-usage-text.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout/styleguide-layout.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout/styleguide-layout.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-reuse/styleguide-layout-reuse.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-reuse/styleguide-layout-reuse.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs/styleguide-layout-tabs.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs/styleguide-layout-tabs.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs-tab/styleguide-layout-tabs-tab.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs-tab/styleguide-layout-tabs-tab.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-multilingual/styleguide-multilingual.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-multilingual/styleguide-multilingual.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-route-fields/styleguide-route-fields.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-route-fields/styleguide-route-fields.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-section/styleguide-section.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-section/styleguide-section.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-sitecore-context/styleguide-sitecore-context.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-sitecore-context/styleguide-sitecore-context.component.ts +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-tracking/styleguide-tracking.component.html +0 -0
- /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-tracking/styleguide-tracking.component.ts +0 -0
package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_promo-shadow.scss
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
@import "sass/abstracts/vars";
|
|
2
|
+
@import "sass/abstracts/mixins";
|
|
3
|
+
|
|
4
|
+
.promo-shadow {
|
|
5
|
+
max-width: 960px;
|
|
6
|
+
padding: 0;
|
|
7
|
+
border-top-width: 3px;
|
|
8
|
+
border-top-color: $promo-shadow-border;
|
|
9
|
+
border-style: solid;
|
|
10
|
+
overflow: visible;
|
|
11
|
+
position: relative;
|
|
12
|
+
&.promo {
|
|
13
|
+
float: left;
|
|
14
|
+
}
|
|
15
|
+
>.component-content {
|
|
16
|
+
@include respond-to(all-mobile) {
|
|
17
|
+
margin: 0 10px 30px 10px;
|
|
18
|
+
}
|
|
19
|
+
padding: 15px;
|
|
20
|
+
margin: 0 0 30px 0;
|
|
21
|
+
&:before, &:after {
|
|
22
|
+
opacity: 0.7;
|
|
23
|
+
box-shadow: 0 17px 10px rgba(0, 0, 0, 0.7);
|
|
24
|
+
position: absolute;
|
|
25
|
+
z-index: -1;
|
|
26
|
+
height: 20%;
|
|
27
|
+
max-height: 100px;
|
|
28
|
+
max-width: 460px;
|
|
29
|
+
width: 47%;
|
|
30
|
+
content: "";
|
|
31
|
+
bottom: 10px;
|
|
32
|
+
}
|
|
33
|
+
&:before {
|
|
34
|
+
left: 2%;
|
|
35
|
+
transform: rotate(-3deg);
|
|
36
|
+
}
|
|
37
|
+
&:after {
|
|
38
|
+
right: 2%;
|
|
39
|
+
transform: rotate(3deg);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
@import 'sass/abstracts/vars';
|
|
2
|
+
@import 'sass/abstracts/mixins';
|
|
3
|
+
|
|
4
|
+
.rich-text-lists,
|
|
5
|
+
.field-featurelist {
|
|
6
|
+
ul {
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
margin: 0;
|
|
9
|
+
padding: 0;
|
|
10
|
+
li {
|
|
11
|
+
@include font-size(1.3);
|
|
12
|
+
position: relative;
|
|
13
|
+
line-height: 21px;
|
|
14
|
+
list-style: none;
|
|
15
|
+
margin: 0;
|
|
16
|
+
padding: 5px 0 5px 25px;
|
|
17
|
+
&:before {
|
|
18
|
+
display: inline-block;
|
|
19
|
+
vertical-align: middle;
|
|
20
|
+
@include font-size(1.2);
|
|
21
|
+
font-family: 'FontAwesome', sans-serif;
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 3px;
|
|
24
|
+
left: 0;
|
|
25
|
+
color: $text-basic;
|
|
26
|
+
text-align: center;
|
|
27
|
+
content: '\f00c';
|
|
28
|
+
width: 20px;
|
|
29
|
+
margin: 0 5px 0 0;
|
|
30
|
+
padding: 0;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
.field-featurelist {
|
|
36
|
+
ul {
|
|
37
|
+
li {
|
|
38
|
+
&:before {
|
|
39
|
+
display: inline-block;
|
|
40
|
+
vertical-align: middle;
|
|
41
|
+
@include font-size(1.2);
|
|
42
|
+
font-family: 'FontAwesome', sans-serif;
|
|
43
|
+
position: absolute;
|
|
44
|
+
top: 3px;
|
|
45
|
+
left: 0;
|
|
46
|
+
color: $text-basic;
|
|
47
|
+
text-align: center;
|
|
48
|
+
content: '\f046';
|
|
49
|
+
width: 20px;
|
|
50
|
+
margin: 0 5px 0 0;
|
|
51
|
+
padding: 0;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
.media-link {
|
|
57
|
+
&.file-type-icon-media-link {
|
|
58
|
+
float: left;
|
|
59
|
+
.field-filetypeicon {
|
|
60
|
+
text-align: center;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "rich-text-lists";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
@import 'sass/abstracts/vars';
|
|
2
|
+
|
|
3
|
+
.container-gray-background {
|
|
4
|
+
background: $bg-light-gray;
|
|
5
|
+
}
|
|
6
|
+
.container-clean-background {
|
|
7
|
+
background: $bg-basic-color;
|
|
8
|
+
}
|
|
9
|
+
.container-dark-background {
|
|
10
|
+
background: $bg-black-active;
|
|
11
|
+
}
|
|
12
|
+
.container-color-background {
|
|
13
|
+
background: $bg-blue;
|
|
14
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@import 'sass/abstracts/vars';
|
|
2
|
+
.indent {
|
|
3
|
+
margin: 0 $extralarge-margin;
|
|
4
|
+
&.col-xxl-12, &.col-xl-12, &.col-lg-12, &.col-md-12, &.col-12 {
|
|
5
|
+
width: calc(100% - ($extralarge-margin * 2));
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
.indent-top {
|
|
9
|
+
margin-top: $middle-margin;
|
|
10
|
+
}
|
|
11
|
+
.indent-bottom {
|
|
12
|
+
margin-bottom: $middle-margin;
|
|
13
|
+
}
|
package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/title/_component-title.scss
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
@import 'sass/abstracts/vars';
|
|
2
|
+
@import 'sass/abstracts/mixins';
|
|
3
|
+
|
|
4
|
+
.title {
|
|
5
|
+
background: $title-bg;
|
|
6
|
+
|
|
7
|
+
h1,
|
|
8
|
+
.field-title {
|
|
9
|
+
@include border-basic(bottom, $border-basic-color);
|
|
10
|
+
font-size: $font-extrabig;
|
|
11
|
+
margin-bottom: $small-margin;
|
|
12
|
+
color: $title-color;
|
|
13
|
+
line-height: normal;
|
|
14
|
+
padding-bottom: 10px;
|
|
15
|
+
display: block;
|
|
16
|
+
text-decoration: none;
|
|
17
|
+
cursor: pointer;
|
|
18
|
+
|
|
19
|
+
&:hover {
|
|
20
|
+
color: $title-color-active;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
> a,
|
|
24
|
+
> span {
|
|
25
|
+
text-decoration: none;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@import 'sass/variants/title';
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "component-title";
|
|
File without changes
|
|
File without changes
|
package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/page-content/index.scss
ADDED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Your proxy port (default: 3001)
|
|
2
|
+
PROXY_PORT=
|
|
3
|
+
|
|
4
|
+
# Your proxy server bundle path
|
|
5
|
+
PROXY_BUNDLE_PATH=
|
|
6
|
+
|
|
7
|
+
# Set the DEBUG environment variable to 'sitecore-jss:*,sitecore-jss:proxy,http-proxy-middleware*' to see all logs:
|
|
8
|
+
#DEBUG=sitecore-jss:*,http-proxy-middleware*
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Node XM Cloud Proxy
|
|
2
|
+
|
|
3
|
+
> Sitecore JSS Proxy for XM Cloud is considered experimental.
|
|
4
|
+
|
|
5
|
+
[Documentation](<TODO>)
|
|
6
|
+
|
|
7
|
+
This is a sample setup showing one of how you can configure XM Cloud rendering server.
|
|
8
|
+
|
|
9
|
+
## Pre-requisites
|
|
10
|
+
|
|
11
|
+
1. SPA sample supports XM Cloud out of the box.
|
|
12
|
+
|
|
13
|
+
1. Build your SPA app bundle with `jss build`. The build output should be placed in the `dist` folder.
|
|
14
|
+
|
|
15
|
+
## Setup
|
|
16
|
+
|
|
17
|
+
Open `config.js` and specify your application settings.
|
|
18
|
+
|
|
19
|
+
### Environment Variables
|
|
20
|
+
|
|
21
|
+
The following environment variables can be set to configure the Proxy sample instead of modifying `config.js`. You can use the `.env` file located in the root of the app or set these directly in the environment (for example, in containers).
|
|
22
|
+
|
|
23
|
+
| Parameter | Description |
|
|
24
|
+
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
25
|
+
| `PROXY_BUNDLE_PATH` | Path to the JSS SPA app's `server.bundle.js`. Default can be seen in [config.js](./config.js) file. |
|
|
26
|
+
| `PROXY_PORT` | Optional. Port which will be used when start sample. Default can be seen in [config.js](./config.js) file. |
|
|
27
|
+
| `DEBUG` | Optional. Debug level for the proxy. Set the DEBUG environment variable to 'sitecore-jss:*,proxy*,http-proxy-middleware*' to see all logs. |
|
|
28
|
+
|
|
29
|
+
## Build & run
|
|
30
|
+
|
|
31
|
+
1. Run `npm install`
|
|
32
|
+
|
|
33
|
+
1. Run `npm run start`
|
|
34
|
+
|
|
35
|
+
You should be able to see the following message:
|
|
36
|
+
`server listening on port 3001!`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "node-xmcloud-sample",
|
|
3
|
+
"version": "22.1.0-canary",
|
|
4
|
+
"description": "Node XM Cloud Proxy sample for running XM Cloud JSS SPA apps",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Sitecore Corporation",
|
|
7
|
+
"url": "https://jss.sitecore.com"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"start": "ts-node ./src/index.ts"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"compression": "^1.7.4",
|
|
14
|
+
"express": "^4.18.2",
|
|
15
|
+
"dotenv": "^16.0.3",
|
|
16
|
+
"http-proxy-middleware": "^3.0.0"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@sitecore-jss/sitecore-jss": "~22.1.0-canary",
|
|
20
|
+
"@types/compression": "^1.7.2",
|
|
21
|
+
"@types/express": "^4.17.17",
|
|
22
|
+
"ts-node": "^10.9.1",
|
|
23
|
+
"typescript": "~4.9.5"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Config, ServerBundle } from './types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The server.bundle.js file from your pre-built SPA app.
|
|
5
|
+
*/
|
|
6
|
+
const bundlePath = process.env.PROXY_BUNDLE_PATH || `../dist/server.bundle`;
|
|
7
|
+
|
|
8
|
+
const serverBundle: ServerBundle = require(bundlePath);
|
|
9
|
+
|
|
10
|
+
export const config: Config = {
|
|
11
|
+
/**
|
|
12
|
+
* The require'd server.bundle.js file from your pre-built SPA app.
|
|
13
|
+
*/
|
|
14
|
+
serverBundle,
|
|
15
|
+
/**
|
|
16
|
+
* Port which will be used when start the proxy
|
|
17
|
+
*/
|
|
18
|
+
port: process.env.PROXY_PORT || 3001,
|
|
19
|
+
};
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
import express, { Response } from 'express';
|
|
3
|
+
import compression from 'compression';
|
|
4
|
+
import { createProxyMiddleware } from 'http-proxy-middleware';
|
|
5
|
+
import { debug } from '@sitecore-jss/sitecore-jss';
|
|
6
|
+
import { config } from './config';
|
|
7
|
+
|
|
8
|
+
const server = express();
|
|
9
|
+
|
|
10
|
+
const {
|
|
11
|
+
renderView,
|
|
12
|
+
parseRouteUrl,
|
|
13
|
+
dictionaryServiceFactory,
|
|
14
|
+
layoutServiceFactory,
|
|
15
|
+
} = config.serverBundle;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Required server bundle properties
|
|
19
|
+
*/
|
|
20
|
+
const requiredProperties = [
|
|
21
|
+
'renderView',
|
|
22
|
+
'parseRouteUrl',
|
|
23
|
+
'clientFactory',
|
|
24
|
+
'siteName',
|
|
25
|
+
'defaultLanguage',
|
|
26
|
+
'layoutServiceFactory',
|
|
27
|
+
'dictionaryServiceFactory',
|
|
28
|
+
'graphQLEndpointPath',
|
|
29
|
+
'graphQLEndpoint',
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const missingProperties = requiredProperties.filter((property) => !config.serverBundle[property]);
|
|
33
|
+
|
|
34
|
+
if (missingProperties.length > 0) {
|
|
35
|
+
throw new Error(
|
|
36
|
+
`ERROR: The serverBundle should export the following properties: ${missingProperties.join(
|
|
37
|
+
', '
|
|
38
|
+
)}. Please check your server bundle.`
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const layoutService = layoutServiceFactory.create();
|
|
43
|
+
|
|
44
|
+
const dictionaryService = dictionaryServiceFactory.create();
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Parse requested url in order to detect current route and language
|
|
48
|
+
* @param {string} reqRoute requested route
|
|
49
|
+
*/
|
|
50
|
+
const getRouteParams = (reqRoute: string) => {
|
|
51
|
+
const routeParams = parseRouteUrl(reqRoute);
|
|
52
|
+
let lang;
|
|
53
|
+
let route;
|
|
54
|
+
|
|
55
|
+
if (routeParams) {
|
|
56
|
+
route = routeParams.sitecoreRoute || '/';
|
|
57
|
+
|
|
58
|
+
if (!route.startsWith('/')) {
|
|
59
|
+
route = `/${route}`;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
lang = routeParams.lang || '';
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return { route, lang };
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Handle unexpected error
|
|
70
|
+
* @param {Response} res server response
|
|
71
|
+
* @param {Error} err error
|
|
72
|
+
*/
|
|
73
|
+
const handleError = (res: Response, err: unknown) => {
|
|
74
|
+
debug.proxy('response error %o', err);
|
|
75
|
+
|
|
76
|
+
res.status(500).send('Internal Server Error');
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
// enable gzip compression for appropriate file types
|
|
80
|
+
server.use(compression());
|
|
81
|
+
|
|
82
|
+
// turn off x-powered-by http header
|
|
83
|
+
server.settings['x-powered-by'] = false;
|
|
84
|
+
|
|
85
|
+
// Serve static app assets from local /dist folder
|
|
86
|
+
server.use(
|
|
87
|
+
'/dist',
|
|
88
|
+
express.static('dist', {
|
|
89
|
+
fallthrough: false, // force 404 for unknown assets under /dist
|
|
90
|
+
})
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Proxy browser GraphQL requests to the Sitecore GraphQL endpoint
|
|
95
|
+
*/
|
|
96
|
+
server.use(
|
|
97
|
+
config.serverBundle.graphQLEndpointPath,
|
|
98
|
+
createProxyMiddleware({
|
|
99
|
+
target: config.serverBundle.graphQLEndpoint,
|
|
100
|
+
changeOrigin: true,
|
|
101
|
+
})
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
server.use(async (req, res) => {
|
|
105
|
+
debug.proxy(`performing SSR for ${req.originalUrl}`);
|
|
106
|
+
|
|
107
|
+
try {
|
|
108
|
+
const { route, lang } = getRouteParams(req.originalUrl);
|
|
109
|
+
|
|
110
|
+
if (!route) {
|
|
111
|
+
debug.proxy('no route detected, returning 404');
|
|
112
|
+
|
|
113
|
+
res.sendStatus(404);
|
|
114
|
+
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Language is required. In case it's not specified in the requested URL, fallback to the default language from the app configuration.
|
|
119
|
+
const layoutData = await layoutService.fetchLayoutData(
|
|
120
|
+
route,
|
|
121
|
+
lang || config.serverBundle.defaultLanguage
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
const viewBag = { dictionary: {} };
|
|
125
|
+
|
|
126
|
+
viewBag.dictionary = await dictionaryService.fetchDictionaryData(
|
|
127
|
+
layoutData.sitecore.context.language || config.serverBundle.defaultLanguage
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
renderView(
|
|
131
|
+
(err, result) => {
|
|
132
|
+
if (err) {
|
|
133
|
+
handleError(res, err);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (!result) {
|
|
138
|
+
debug.proxy('no result returned from renderView, returning 204');
|
|
139
|
+
|
|
140
|
+
res.status(204).send();
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const statusCode = layoutData.sitecore.route ? 200 : 404;
|
|
145
|
+
|
|
146
|
+
debug.proxy('sending response with status %s', statusCode);
|
|
147
|
+
|
|
148
|
+
res.status(statusCode).send(result.html);
|
|
149
|
+
},
|
|
150
|
+
route,
|
|
151
|
+
layoutData,
|
|
152
|
+
viewBag
|
|
153
|
+
);
|
|
154
|
+
} catch (err) {
|
|
155
|
+
handleError(res, err);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
server.listen(config.port, () => {
|
|
160
|
+
console.log(`server listening on port ${config.port}!`);
|
|
161
|
+
});
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { GraphQLRequestClientFactory } from '@sitecore-jss/sitecore-jss';
|
|
2
|
+
import { DictionaryService } from '@sitecore-jss/sitecore-jss/i18n';
|
|
3
|
+
import { LayoutService, LayoutServiceData } from '@sitecore-jss/sitecore-jss/layout';
|
|
4
|
+
|
|
5
|
+
interface ServerResponse {
|
|
6
|
+
/**
|
|
7
|
+
* The rendered HTML to return to the client
|
|
8
|
+
*/
|
|
9
|
+
html: string;
|
|
10
|
+
/**
|
|
11
|
+
* Set the HTTP status code. If not set, the status code returned from Layout Service is returned.
|
|
12
|
+
*/
|
|
13
|
+
status?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Sets a redirect URL, causing the reply to send a HTTP redirect instead of the HTML content.
|
|
16
|
+
* Note: when using this you must set the status code to 301 or 302.
|
|
17
|
+
*/
|
|
18
|
+
redirect?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare type AppRenderer = (
|
|
22
|
+
callback: (error: Error | null, result: ServerResponse | null) => void,
|
|
23
|
+
path: string,
|
|
24
|
+
/**
|
|
25
|
+
* Data returned by Layout Service. If the route does not exist, null.
|
|
26
|
+
*/
|
|
27
|
+
layoutData: LayoutServiceData,
|
|
28
|
+
viewBag: {
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
dictionary: { [key: string]: string };
|
|
31
|
+
}
|
|
32
|
+
) => void;
|
|
33
|
+
|
|
34
|
+
declare type RouteUrlParser = (
|
|
35
|
+
url: string
|
|
36
|
+
) => {
|
|
37
|
+
sitecoreRoute?: string;
|
|
38
|
+
lang?: string;
|
|
39
|
+
qsParams?: string;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export interface ServerBundle {
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
renderView: AppRenderer;
|
|
45
|
+
parseRouteUrl: RouteUrlParser;
|
|
46
|
+
clientFactory: GraphQLRequestClientFactory;
|
|
47
|
+
siteName: string;
|
|
48
|
+
defaultLanguage: string;
|
|
49
|
+
layoutServiceFactory: { create: () => LayoutService };
|
|
50
|
+
dictionaryServiceFactory: { create: () => DictionaryService };
|
|
51
|
+
graphQLEndpointPath: string;
|
|
52
|
+
graphQLEndpoint: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface Config {
|
|
56
|
+
[key: string]: unknown;
|
|
57
|
+
port: string | number;
|
|
58
|
+
serverBundle: ServerBundle;
|
|
59
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"newLine": "LF",
|
|
4
|
+
"emitDecoratorMetadata": true,
|
|
5
|
+
"experimentalDecorators": true,
|
|
6
|
+
"noFallthroughCasesInSwitch": true,
|
|
7
|
+
"rootDir": ".",
|
|
8
|
+
"esModuleInterop": true,
|
|
9
|
+
"forceConsistentCasingInFileNames": true,
|
|
10
|
+
"strict": true,
|
|
11
|
+
"noImplicitAny": true,
|
|
12
|
+
"noUnusedLocals": true,
|
|
13
|
+
"noUnusedParameters": true,
|
|
14
|
+
"noImplicitReturns": true,
|
|
15
|
+
"strictFunctionTypes": false,
|
|
16
|
+
"downlevelIteration": true,
|
|
17
|
+
"moduleResolution": "node",
|
|
18
|
+
"isolatedModules": true,
|
|
19
|
+
"allowSyntheticDefaultImports": true
|
|
20
|
+
},
|
|
21
|
+
"exclude": ["node_modules", "dist"]
|
|
22
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-sitecore-jss",
|
|
3
|
-
"version": "22.2.0-canary.
|
|
3
|
+
"version": "22.2.0-canary.10",
|
|
4
4
|
"description": "Sitecore JSS initializer",
|
|
5
5
|
"bin": "./dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"ts-node": "^10.9.1",
|
|
64
64
|
"typescript": "~4.9.5"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "d5b46f1661d99e8936746e964dc3c2ecd61b9e05"
|
|
67
67
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item1/en.yml
RENAMED
|
File without changes
|
/package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item2/en.yml
RENAMED
|
File without changes
|
/package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item1/en.yml
RENAMED
|
File without changes
|
/package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item2/en.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/custom-route-type/en.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/templates/{angular → angular-sxp}/sitecore/definitions/component-content.sitecore.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|