create-sitecore-jss 22.2.0-canary.83 → 22.3.0-canary.1

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.
Files changed (369) hide show
  1. package/dist/bin.js +35 -19
  2. package/dist/common/index.js +5 -3
  3. package/dist/common/processes/install.js +9 -2
  4. package/dist/common/processes/next.js +6 -3
  5. package/dist/common/processes/transform.js +18 -13
  6. package/dist/common/prompts/base.js +0 -25
  7. package/dist/common/prompts/proxy.js +35 -0
  8. package/dist/common/prompts/sxp.js +34 -0
  9. package/dist/common/utils/helpers.js +29 -19
  10. package/dist/init-runner.js +16 -11
  11. package/dist/initializers/angular/index.js +13 -0
  12. package/dist/initializers/angular/prompts.js +22 -1
  13. package/dist/initializers/angular-sxp/index.js +62 -0
  14. package/dist/initializers/angular-xmcloud/index.js +80 -0
  15. package/dist/initializers/nextjs/index.js +2 -2
  16. package/dist/initializers/nextjs/prompts.js +2 -0
  17. package/dist/initializers/nextjs/remove-dev-dependencies.js +2 -2
  18. package/dist/initializers/nextjs-multisite/index.js +1 -1
  19. package/dist/initializers/nextjs-styleguide/index.js +1 -1
  20. package/dist/initializers/nextjs-styleguide-tracking/index.js +1 -1
  21. package/dist/initializers/nextjs-sxa/index.js +1 -1
  22. package/dist/initializers/nextjs-xmcloud/index.js +1 -1
  23. package/dist/initializers/node-xmcloud-proxy/index.js +33 -0
  24. package/dist/initializers/react/index.js +3 -3
  25. package/dist/initializers/react/prompts.js +1 -1
  26. package/dist/initializers/react-native/prompts.js +1 -0
  27. package/dist/initializers/vue/prompts.js +1 -1
  28. package/dist/templates/angular/.env +4 -3
  29. package/dist/templates/angular/.eslintrc +1 -0
  30. package/dist/templates/angular/README.md +5 -45
  31. package/dist/templates/angular/angular.json +1 -6
  32. package/dist/templates/angular/gitignore +5 -0
  33. package/dist/templates/angular/package.json +11 -23
  34. package/dist/templates/angular/proxy.conf.js +5 -23
  35. package/dist/templates/angular/scripts/bootstrap.ts +5 -24
  36. package/dist/templates/angular/scripts/config/index.ts +28 -0
  37. package/dist/templates/angular/scripts/config/plugins/computed.ts +21 -0
  38. package/dist/templates/angular/scripts/config/plugins/fallback.ts +22 -0
  39. package/dist/templates/angular/scripts/config/plugins/package-json.ts +22 -0
  40. package/dist/templates/angular/scripts/config/plugins/scjssconfig.ts +29 -0
  41. package/dist/templates/angular/scripts/generate-component-factory/index.ts +45 -0
  42. package/dist/templates/angular/scripts/generate-component-factory/plugins/component-factory.ts +147 -0
  43. package/dist/templates/angular/scripts/generate-component-factory/plugins/components.ts +19 -0
  44. package/dist/templates/angular/scripts/generate-component-factory/plugins/packages.ts +29 -0
  45. package/dist/templates/angular/scripts/generate-component-factory/template.ts +46 -0
  46. package/dist/templates/angular/scripts/generate-config.ts +71 -72
  47. package/dist/templates/angular/scripts/generate-plugins.ts +33 -0
  48. package/dist/templates/angular/scripts/temp/gitignore +2 -0
  49. package/dist/templates/angular/scripts/update-graphql-fragment-data.ts +21 -28
  50. package/dist/templates/angular/server.bundle.ts +3 -5
  51. package/dist/templates/angular/server.exports.ts +13 -0
  52. package/dist/templates/angular/src/app/JssState.ts +2 -9
  53. package/dist/templates/angular/src/app/app.module.ts +5 -6
  54. package/dist/templates/angular/src/app/app.server.module.ts +9 -6
  55. package/dist/templates/angular/src/app/components/app-components.shared.module.ts +4 -19
  56. package/dist/templates/angular/src/app/components/gitignore +1 -1
  57. package/dist/templates/angular/src/app/i18n/jss-translation-client-loader.service.ts +15 -7
  58. package/dist/templates/angular/src/app/i18n/jss-translation-server-loader.service.ts +14 -2
  59. package/dist/templates/angular/src/app/jss-context.server-side.service.ts +4 -4
  60. package/dist/templates/angular/src/app/jss-context.service.ts +14 -11
  61. package/dist/templates/angular/src/app/jss-graphql.service.ts +7 -7
  62. package/dist/templates/angular/src/app/layout/jss-layout.service.ts +2 -2
  63. package/dist/templates/angular/src/app/lib/config.ts +16 -0
  64. package/dist/templates/angular/src/app/lib/dictionary-service-factory.ts +24 -13
  65. package/dist/templates/angular/src/app/lib/graphql-client-factory/config.ts +21 -0
  66. package/dist/templates/angular/src/app/lib/graphql-client-factory/index.ts +16 -0
  67. package/dist/templates/angular/src/app/lib/layout-service-factory.ts +20 -12
  68. package/dist/templates/angular/src/app/routing/layout/layout.component.html +1 -1
  69. package/dist/templates/angular/src/app/routing/layout/layout.component.ts +11 -11
  70. package/dist/templates/angular/src/app/routing/navigation/navigation.component.html +5 -6
  71. package/dist/templates/angular/src/app/routing/navigation/navigation.component.ts +1 -2
  72. package/dist/templates/angular/src/app/routing/routing.module.ts +14 -21
  73. package/dist/templates/angular/src/app/routing/scripts/scripts.component.html +1 -0
  74. package/dist/templates/angular/src/app/routing/scripts/scripts.component.ts +7 -0
  75. package/dist/templates/angular/src/app/routing/scripts/scripts.module.ts +8 -0
  76. package/dist/templates/angular/src/environments/gitignore +2 -1
  77. package/dist/templates/angular/src/graphql-fragment-types.ts +0 -95
  78. package/dist/templates/angular/tsconfig.json +7 -2
  79. package/dist/templates/angular-sxp/.env +2 -0
  80. package/dist/templates/angular-sxp/package.json +12 -0
  81. package/dist/templates/angular-sxp/proxy.conf.js +43 -0
  82. package/dist/templates/angular-sxp/scripts/config/plugins/disconnected.ts +29 -0
  83. package/dist/templates/angular-sxp/src/app/components/app-components.shared.module.ts +35 -0
  84. package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-layout/graph-ql-layout.component.ts +1 -1
  85. package/dist/templates/{angular → angular-sxp}/src/app/jss-data-fetcher.service.ts +3 -1
  86. package/dist/templates/angular-sxp/src/app/routing/navigation/navigation.component.html +23 -0
  87. package/dist/templates/angular-sxp/src/app/routing/scripts/scripts.component.html +3 -0
  88. package/dist/templates/angular-sxp/src/app/routing/scripts/scripts.module.ts +9 -0
  89. package/dist/templates/{angular/src/app/routing → angular-sxp/src/app/routing/scripts}/visitor-identification/visitor-identification.component.ts +9 -3
  90. package/dist/templates/angular-sxp/src/graphql-fragment-types.ts +219 -0
  91. package/dist/templates/angular-xmcloud/.env +21 -0
  92. package/dist/templates/angular-xmcloud/angular.json +33 -0
  93. package/dist/templates/angular-xmcloud/package.json +17 -0
  94. package/dist/templates/angular-xmcloud/scripts/bootstrap.ts +28 -0
  95. package/dist/templates/angular-xmcloud/scripts/config/plugins/xmcloud.ts +39 -0
  96. package/dist/templates/angular-xmcloud/scripts/generate-component-factory/plugins/packages.ts +34 -0
  97. package/dist/templates/angular-xmcloud/scripts/generate-component-factory/template.ts +57 -0
  98. package/dist/templates/angular-xmcloud/scripts/generate-metadata.ts +25 -0
  99. package/dist/templates/angular-xmcloud/scripts/proxy-build.ts +15 -0
  100. package/dist/templates/angular-xmcloud/server.exports.ts +24 -0
  101. package/dist/templates/angular-xmcloud/src/app/components/app-components.shared.module.ts +21 -0
  102. package/dist/templates/angular-xmcloud/src/app/components/column-splitter/column-splitter.component.html +5 -0
  103. package/dist/templates/angular-xmcloud/src/app/components/column-splitter/column-splitter.component.ts +40 -0
  104. package/dist/templates/angular-xmcloud/src/app/components/container/container.component.html +14 -0
  105. package/dist/templates/angular-xmcloud/src/app/components/container/container.component.ts +30 -0
  106. package/dist/templates/angular-xmcloud/src/app/components/image/image.component.html +36 -0
  107. package/dist/templates/angular-xmcloud/src/app/components/image/image.component.ts +67 -0
  108. package/dist/templates/angular-xmcloud/src/app/components/link-list/link-list.component.html +15 -0
  109. package/dist/templates/angular-xmcloud/src/app/components/link-list/link-list.component.ts +41 -0
  110. package/dist/templates/angular-xmcloud/src/app/components/navigation/navigation-item.component.html +23 -0
  111. package/dist/templates/angular-xmcloud/src/app/components/navigation/navigation-item.component.ts +65 -0
  112. package/dist/templates/angular-xmcloud/src/app/components/navigation/navigation.component.html +21 -0
  113. package/dist/templates/angular-xmcloud/src/app/components/navigation/navigation.component.ts +49 -0
  114. package/dist/templates/angular-xmcloud/src/app/components/page-content/page-content.component.html +5 -0
  115. package/dist/templates/angular-xmcloud/src/app/components/page-content/page-content.component.ts +39 -0
  116. package/dist/templates/angular-xmcloud/src/app/components/partial-design-dynamic-placeholder/partial-design-dynamic-placeholder.component.html +1 -0
  117. package/dist/templates/angular-xmcloud/src/app/components/partial-design-dynamic-placeholder/partial-design-dynamic-placeholder.component.ts +15 -0
  118. package/dist/templates/angular-xmcloud/src/app/components/promo/promo.component.html +21 -0
  119. package/dist/templates/angular-xmcloud/src/app/components/promo/promo.component.ts +13 -0
  120. package/dist/templates/angular-xmcloud/src/app/components/richtext/richtext.component.html +8 -0
  121. package/dist/templates/angular-xmcloud/src/app/components/richtext/richtext.component.ts +21 -0
  122. package/dist/templates/angular-xmcloud/src/app/components/row-splitter/row-splitter.component.html +11 -0
  123. package/dist/templates/angular-xmcloud/src/app/components/row-splitter/row-splitter.component.ts +35 -0
  124. package/dist/templates/angular-xmcloud/src/app/components/sxa.component.ts +15 -0
  125. package/dist/templates/angular-xmcloud/src/app/components/title/title.component.html +10 -0
  126. package/dist/templates/angular-xmcloud/src/app/components/title/title.component.ts +56 -0
  127. package/dist/templates/angular-xmcloud/src/app/jss-link.service.ts +55 -0
  128. package/dist/templates/angular-xmcloud/src/app/lib/config.ts +17 -0
  129. package/dist/templates/angular-xmcloud/src/app/lib/graphql-client-factory/config.ts +58 -0
  130. package/dist/templates/angular-xmcloud/src/app/routing/layout/layout.component.html +38 -0
  131. package/dist/templates/angular-xmcloud/src/app/routing/layout/layout.component.ts +104 -0
  132. package/dist/templates/angular-xmcloud/src/app/routing/scripts/cdp-page-view.component.ts +77 -0
  133. package/dist/templates/angular-xmcloud/src/app/routing/scripts/cloud-sdk-init.component.ts +48 -0
  134. package/dist/templates/angular-xmcloud/src/app/routing/scripts/scripts.component.html +5 -0
  135. package/dist/templates/angular-xmcloud/src/app/routing/scripts/scripts.module.ts +12 -0
  136. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_component.scss +48 -0
  137. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_container.scss +64 -0
  138. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_fonts.scss +3 -0
  139. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_footer.scss +31 -0
  140. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_header.scss +51 -0
  141. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_navigation.scss +150 -0
  142. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_promo.scss +58 -0
  143. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_rich-text.scss +11 -0
  144. package/dist/templates/angular-xmcloud/src/assets/styles/basic/_variables.scss +10 -0
  145. package/dist/templates/angular-xmcloud/src/assets/styles/basic/main.scss +8 -0
  146. package/dist/templates/angular-xmcloud/src/assets/styles/main.scss +14 -0
  147. package/dist/templates/angular-xmcloud/src/assets/styles/sass/_app.scss +103 -0
  148. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_functions.scss +8 -0
  149. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_mixins.scss +121 -0
  150. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/_vars.scss +3 -0
  151. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_colors.scss +283 -0
  152. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_fontSizes.scss +16 -0
  153. package/dist/templates/angular-xmcloud/src/assets/styles/sass/abstracts/vars/_margins.scss +11 -0
  154. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/fonts/_fonts.scss +1 -0
  155. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/fonts/index.scss +1 -0
  156. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/index.scss +3 -0
  157. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/links/_link-button.scss +26 -0
  158. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/links/index.scss +1 -0
  159. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_inputs.scss +58 -0
  160. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_links.scss +14 -0
  161. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/reset/_ui-datepicker.scss +7 -0
  162. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/_richtext-files-icons.scss +86 -0
  163. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/_richtext.scss +101 -0
  164. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/richtext/index.scss +2 -0
  165. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/typehead/_typehead.scss +95 -0
  166. package/dist/templates/angular-xmcloud/src/assets/styles/sass/base/typehead/index.scss +1 -0
  167. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-column-splitter.scss +14 -0
  168. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-container.scss +27 -0
  169. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-image.scss +18 -0
  170. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-navigation.scss +51 -0
  171. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-promo.scss +42 -0
  172. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/_component-richtext-content.scss +19 -0
  173. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_alignment.scss +26 -0
  174. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_boxed.scss +16 -0
  175. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_clearfix.scss +11 -0
  176. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_highlighted.scss +63 -0
  177. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_link-button.scss +16 -0
  178. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/_promoted-box.scss +3 -0
  179. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/common/index.scss +6 -0
  180. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/_bordered.scss +24 -0
  181. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/_title-row-box.scss +66 -0
  182. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/container/index.scss +1 -0
  183. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image/_image-default-size.scss +6 -0
  184. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image/index.scss +1 -0
  185. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image-alignment/_image-left.scss +3 -0
  186. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/image-alignment/_image-right.scss +3 -0
  187. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/index.scss +17 -0
  188. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/_acaindent.scss +5 -0
  189. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/_background.scss +27 -0
  190. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/layout/index.scss +1 -0
  191. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/_component-link-list.scss +45 -0
  192. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/_list-vertical.scss +20 -0
  193. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/link-list/index.scss +2 -0
  194. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-fat.scss +58 -0
  195. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-main-horizontal-vertical.scss +176 -0
  196. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-mobile.scss +85 -0
  197. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_navigation-sidebar.scss +29 -0
  198. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/_sitemap-navigation.scss +20 -0
  199. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/navigation/index.scss +5 -0
  200. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_absolute-bottom-link.scss +8 -0
  201. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_promo-hero.scss +40 -0
  202. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/_promo-shadow.scss +42 -0
  203. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/promo/index.scss +3 -0
  204. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/rich-text/_rich-text-lists.scss +63 -0
  205. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/rich-text/index.scss +1 -0
  206. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/_background-colors.scss +14 -0
  207. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/_indent.scss +13 -0
  208. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/spacing/index.scss +2 -0
  209. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/title/_component-title.scss +30 -0
  210. package/dist/templates/angular-xmcloud/src/assets/styles/sass/components/title/index.scss +1 -0
  211. package/dist/templates/angular-xmcloud/src/assets/styles/sass/main.scss +4 -0
  212. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/index.scss +6 -0
  213. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/link-list/index.scss +0 -0
  214. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/navigation/index.scss +0 -0
  215. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/page-content/index.scss +0 -0
  216. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/promo/index.scss +0 -0
  217. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/rich-text/index.scss +0 -0
  218. package/dist/templates/angular-xmcloud/src/assets/styles/sass/variants/title/index.scss +0 -0
  219. package/dist/templates/nextjs/package.json +4 -4
  220. package/dist/templates/nextjs/scripts/config/plugins/fallback.ts +0 -1
  221. package/dist/templates/nextjs/scripts/generate-config.ts +8 -1
  222. package/dist/templates/nextjs-styleguide/package.json +1 -1
  223. package/dist/templates/nextjs-styleguide/scripts/config/plugins/disconnected.ts +1 -0
  224. package/dist/templates/nextjs-sxa/src/assets/sass/components/common/_alignment.scss +34 -7
  225. package/dist/templates/node-headless-ssr-experience-edge/gitignore +19 -0
  226. package/dist/templates/node-headless-ssr-experience-edge/package.json +2 -2
  227. package/dist/templates/node-headless-ssr-proxy/gitignore +19 -0
  228. package/dist/templates/node-headless-ssr-proxy/package.json +3 -3
  229. package/dist/templates/node-headless-ssr-proxy/src/config.ts +3 -3
  230. package/dist/templates/node-headless-ssr-proxy/src/httpAgents.ts +2 -2
  231. package/dist/templates/node-headless-ssr-proxy/src/index.ts +9 -2
  232. package/dist/templates/node-xmcloud-proxy/.env +14 -0
  233. package/dist/templates/node-xmcloud-proxy/README.md +36 -0
  234. package/dist/templates/node-xmcloud-proxy/gitignore +33 -0
  235. package/dist/templates/node-xmcloud-proxy/package.json +26 -0
  236. package/dist/templates/node-xmcloud-proxy/src/config.ts +25 -0
  237. package/dist/templates/node-xmcloud-proxy/src/index.ts +210 -0
  238. package/dist/templates/node-xmcloud-proxy/src/types.ts +27 -0
  239. package/dist/templates/node-xmcloud-proxy/tsconfig.json +22 -0
  240. package/dist/templates/react/package.json +5 -5
  241. package/dist/templates/react/scripts/generate-config.js +10 -3
  242. package/dist/templates/react-native/package.json +4 -4
  243. package/dist/templates/vue/package.json +4 -4
  244. package/dist/templates/vue/scripts/generate-config.js +5 -0
  245. package/package.json +2 -2
  246. package/dist/templates/angular/scripts/generate-component-factory.ts +0 -166
  247. package/dist/templates/angular/src/app/lib/client-factory.ts +0 -28
  248. /package/dist/templates/{angular → angular-sxp}/data/component-content/Styleguide/ContentReuse/LoremIpsumContentBlock/en.yml +0 -0
  249. /package/dist/templates/{angular → angular-sxp}/data/component-content/gitignore +0 -0
  250. /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ContentListField/Item1/en.yml +0 -0
  251. /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ContentListField/Item2/en.yml +0 -0
  252. /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item1/en.yml +0 -0
  253. /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/EditFrameDemo/Item2/en.yml +0 -0
  254. /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item1/en.yml +0 -0
  255. /package/dist/templates/{angular → angular-sxp}/data/content/Styleguide/ItemLinkField/Item2/en.yml +0 -0
  256. /package/dist/templates/{angular → angular-sxp}/data/content/gitignore +0 -0
  257. /package/dist/templates/{angular → angular-sxp}/data/dictionary/en.yml +0 -0
  258. /package/dist/templates/{angular → angular-sxp}/data/dictionary/{{language}}.yml +0 -0
  259. /package/dist/templates/{angular → angular-sxp}/data/media/files/jss.pdf +0 -0
  260. /package/dist/templates/{angular → angular-sxp}/data/media/img/jss_logo.png +0 -0
  261. /package/dist/templates/{angular → angular-sxp}/data/media/img/sc_logo.png +0 -0
  262. /package/dist/templates/{angular → angular-sxp}/data/routes/en.yml +0 -0
  263. /package/dist/templates/{angular → angular-sxp}/data/routes/graphql/en.yml +0 -0
  264. /package/dist/templates/{angular → angular-sxp}/data/routes/graphql/sample-1/en.yml +0 -0
  265. /package/dist/templates/{angular → angular-sxp}/data/routes/graphql/sample-2/en.yml +0 -0
  266. /package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/custom-route-type/en.yml +0 -0
  267. /package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/en.yml +0 -0
  268. /package/dist/templates/{angular → angular-sxp}/data/routes/styleguide/{{language}}.yml +0 -0
  269. /package/dist/templates/{angular → angular-sxp}/data/routes/{{language}}.yml +0 -0
  270. /package/dist/templates/{angular → angular-sxp}/scripts/disconnected-mode-proxy.ts +0 -0
  271. /package/dist/templates/{angular → angular-sxp}/scripts/lint-yml.ts +0 -0
  272. /package/dist/templates/{angular → angular-sxp}/sitecore/config/{{appName}}.config +0 -0
  273. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/component-content.sitecore.ts +0 -0
  274. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Reuse.sitecore.ts +0 -0
  275. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Tabs-Tab.sitecore.ts +0 -0
  276. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout-Tabs.sitecore.ts +0 -0
  277. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Layout.sitecore.ts +0 -0
  278. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Multilingual.sitecore.ts +0 -0
  279. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/Styleguide-Section.sitecore.ts +0 -0
  280. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/content-block.sitecore.ts +0 -0
  281. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-connected-demo.sitecore.ts +0 -0
  282. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-integrated-demo.sitecore.graphql +0 -0
  283. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-integrated-demo.sitecore.ts +0 -0
  284. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/graph-ql-layout.sitecore.ts +0 -0
  285. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-angular-lazy-loading.sitecore.ts +0 -0
  286. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-component-params.sitecore.ts +0 -0
  287. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-custom-route-type.sitecore.ts +0 -0
  288. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-edit-frame.sitecore.ts +0 -0
  289. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-checkbox.sitecore.ts +0 -0
  290. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-content-list.sitecore.ts +0 -0
  291. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-custom.sitecore.ts +0 -0
  292. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-date.sitecore.ts +0 -0
  293. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-file.sitecore.ts +0 -0
  294. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-image.sitecore.ts +0 -0
  295. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-item-link.sitecore.ts +0 -0
  296. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-link.sitecore.ts +0 -0
  297. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-number.sitecore.ts +0 -0
  298. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-rich-text.sitecore.ts +0 -0
  299. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-field-usage-text.sitecore.ts +0 -0
  300. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-route-fields.sitecore.ts +0 -0
  301. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-sitecore-context.sitecore.ts +0 -0
  302. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/components/styleguide-tracking.sitecore.ts +0 -0
  303. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/config.js +0 -0
  304. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/content.sitecore.ts +0 -0
  305. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/dictionary.sitecore.ts +0 -0
  306. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/placeholders.sitecore.ts +0 -0
  307. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/routes.sitecore.ts +0 -0
  308. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/Styleguide-Explanatory-Component.sitecore.ts +0 -0
  309. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-content-list-template.sitecore.ts +0 -0
  310. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-edit-frame-list-item-template.sitecore.ts +0 -0
  311. /package/dist/templates/{angular → angular-sxp}/sitecore/definitions/templates/styleguide-item-link-template.sitecore.ts +0 -0
  312. /package/dist/templates/{angular → angular-sxp}/sitecore/gitignore +0 -0
  313. /package/dist/templates/{angular → angular-sxp}/sitecore/pipelines/example.patch.ts +0 -0
  314. /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.graphql +0 -0
  315. /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.html +0 -0
  316. /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-connected-demo/graph-ql-connected-demo.component.ts +0 -0
  317. /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-integrated-demo/graph-ql-integrated-demo.component.html +0 -0
  318. /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-integrated-demo/graph-ql-integrated-demo.component.ts +0 -0
  319. /package/dist/templates/{angular → angular-sxp}/src/app/components/graph-ql-layout/graph-ql-layout.component.html +0 -0
  320. /package/dist/templates/{angular → angular-sxp}/src/app/components/shared/styleguide-specimen/styleguide-specimen.component.ts +0 -0
  321. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.component.html +0 -0
  322. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.component.ts +0 -0
  323. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-angular-lazy-loading/styleguide-angular-lazy-loading.module.ts +0 -0
  324. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-component-params/styleguide-component-params.component.html +0 -0
  325. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-component-params/styleguide-component-params.component.ts +0 -0
  326. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-custom-route-type/styleguide-custom-route-type.component.html +0 -0
  327. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-custom-route-type/styleguide-custom-route-type.component.ts +0 -0
  328. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-edit-frame/styleguide-edit-frame.component.html +0 -0
  329. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-edit-frame/styleguide-edit-frame.component.ts +0 -0
  330. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-checkbox/styleguide-field-usage-checkbox.component.html +0 -0
  331. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-checkbox/styleguide-field-usage-checkbox.component.ts +0 -0
  332. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-content-list/styleguide-field-usage-content-list.component.html +0 -0
  333. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-content-list/styleguide-field-usage-content-list.component.ts +0 -0
  334. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-custom/styleguide-field-usage-custom.component.html +0 -0
  335. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-custom/styleguide-field-usage-custom.component.ts +0 -0
  336. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-date/styleguide-field-usage-date.component.html +0 -0
  337. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-date/styleguide-field-usage-date.component.ts +0 -0
  338. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-file/styleguide-field-usage-file.component.html +0 -0
  339. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-file/styleguide-field-usage-file.component.ts +0 -0
  340. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-image/styleguide-field-usage-image.component.html +0 -0
  341. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-image/styleguide-field-usage-image.component.ts +0 -0
  342. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-item-link/styleguide-field-usage-item-link.component.html +0 -0
  343. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-item-link/styleguide-field-usage-item-link.component.ts +0 -0
  344. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-link/styleguide-field-usage-link.component.html +0 -0
  345. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-link/styleguide-field-usage-link.component.ts +0 -0
  346. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-number/styleguide-field-usage-number.component.html +0 -0
  347. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-number/styleguide-field-usage-number.component.ts +0 -0
  348. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-rich-text/styleguide-field-usage-rich-text.component.html +0 -0
  349. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-rich-text/styleguide-field-usage-rich-text.component.ts +0 -0
  350. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-text/styleguide-field-usage-text.component.html +0 -0
  351. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-field-usage-text/styleguide-field-usage-text.component.ts +0 -0
  352. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout/styleguide-layout.component.html +0 -0
  353. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout/styleguide-layout.component.ts +0 -0
  354. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-reuse/styleguide-layout-reuse.component.html +0 -0
  355. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-reuse/styleguide-layout-reuse.component.ts +0 -0
  356. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs/styleguide-layout-tabs.component.html +0 -0
  357. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs/styleguide-layout-tabs.component.ts +0 -0
  358. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs-tab/styleguide-layout-tabs-tab.component.html +0 -0
  359. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-layout-tabs-tab/styleguide-layout-tabs-tab.component.ts +0 -0
  360. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-multilingual/styleguide-multilingual.component.html +0 -0
  361. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-multilingual/styleguide-multilingual.component.ts +0 -0
  362. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-route-fields/styleguide-route-fields.component.html +0 -0
  363. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-route-fields/styleguide-route-fields.component.ts +0 -0
  364. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-section/styleguide-section.component.html +0 -0
  365. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-section/styleguide-section.component.ts +0 -0
  366. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-sitecore-context/styleguide-sitecore-context.component.html +0 -0
  367. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-sitecore-context/styleguide-sitecore-context.component.ts +0 -0
  368. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-tracking/styleguide-tracking.component.html +0 -0
  369. /package/dist/templates/{angular → angular-sxp}/src/app/components/styleguide-tracking/styleguide-tracking.component.ts +0 -0
@@ -0,0 +1,210 @@
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 { editingRouter } from '@sitecore-jss/sitecore-jss-proxy';
7
+ import { healthCheck } from '@sitecore-jss/sitecore-jss-proxy';
8
+ import { config } from './config';
9
+
10
+ const server = express();
11
+
12
+ const {
13
+ renderView,
14
+ parseRouteUrl,
15
+ dictionaryServiceFactory,
16
+ layoutServiceFactory,
17
+ } = config.serverBundle;
18
+
19
+ /**
20
+ * Required server bundle properties
21
+ */
22
+ const requiredProperties = [
23
+ 'renderView',
24
+ 'parseRouteUrl',
25
+ 'clientFactory',
26
+ 'getClientFactoryConfig',
27
+ 'defaultLanguage',
28
+ 'layoutServiceFactory',
29
+ 'dictionaryServiceFactory',
30
+ 'components',
31
+ 'metadata',
32
+ ];
33
+
34
+ const missingProperties = requiredProperties.filter((property) => !config.serverBundle[property]);
35
+
36
+ if (missingProperties.length > 0) {
37
+ throw new Error(
38
+ `ERROR: The serverBundle should export the following properties: ${missingProperties.join(
39
+ ', '
40
+ )}. Please check your server bundle.`
41
+ );
42
+ }
43
+
44
+ const layoutService = layoutServiceFactory.create();
45
+
46
+ const dictionaryService = dictionaryServiceFactory.create();
47
+
48
+ const clientFactoryConfig = config.serverBundle.getClientFactoryConfig();
49
+
50
+ /**
51
+ * GraphQL endpoint resolution to meet the requirements of the http-proxy-middleware
52
+ */
53
+ const graphQLEndpoint = (() => {
54
+ try {
55
+ const graphQLEndpoint = new URL(clientFactoryConfig.endpoint);
56
+ // Browser request path to the proxy. Includes only the pathname.
57
+ const pathname = graphQLEndpoint.pathname;
58
+ // Target URL for the proxy. Can't include the query string.
59
+ const target = `${graphQLEndpoint.protocol}//${graphQLEndpoint.hostname}${pathname}`;
60
+
61
+ return {
62
+ target,
63
+ path: pathname,
64
+ };
65
+ } catch (error) {
66
+ throw new Error(
67
+ `ERROR: The serverBundle should export a getClientFactoryConfig function with valid GraphQL endpoint URL returned, current value is ${clientFactoryConfig.endpoint}. ` +
68
+ 'Please check your server bundle.'
69
+ );
70
+ }
71
+ })();
72
+
73
+ /**
74
+ * Parse requested url in order to detect current route and language
75
+ * @param {string} reqRoute requested route
76
+ */
77
+ const getRouteParams = (reqRoute: string) => {
78
+ const routeParams = parseRouteUrl(reqRoute);
79
+ let lang;
80
+ let route;
81
+
82
+ if (routeParams) {
83
+ route = routeParams.sitecoreRoute || '/';
84
+
85
+ if (!route.startsWith('/')) {
86
+ route = `/${route}`;
87
+ }
88
+
89
+ lang = routeParams.lang || '';
90
+ }
91
+
92
+ return { route, lang };
93
+ };
94
+
95
+ /**
96
+ * Handle unexpected error
97
+ * @param {Response} res server response
98
+ * @param {Error} err error
99
+ */
100
+ const handleError = (res: Response, err: unknown) => {
101
+ debug.proxy('response error %o', err);
102
+
103
+ res.status(500).send('Internal Server Error');
104
+ };
105
+
106
+ // enable gzip compression for appropriate file types
107
+ server.use(compression());
108
+
109
+ // turn off x-powered-by http header
110
+ server.settings['x-powered-by'] = false;
111
+
112
+ // Serve static app assets from local /dist folder
113
+ server.use(
114
+ '/dist',
115
+ express.static('dist', {
116
+ fallthrough: false, // force 404 for unknown assets under /dist
117
+ })
118
+ );
119
+
120
+ /**
121
+ * Proxy browser GraphQL requests to the Sitecore GraphQL endpoint
122
+ */
123
+ server.use(
124
+ graphQLEndpoint.path,
125
+ createProxyMiddleware({
126
+ target: graphQLEndpoint.target,
127
+ changeOrigin: true,
128
+ })
129
+ );
130
+
131
+ /**
132
+ * The health check endpoint
133
+ */
134
+ server.use(healthCheck());
135
+
136
+ /**
137
+ * Proxy editing requests through the editing router
138
+ */
139
+ server.use(
140
+ '/api/editing',
141
+ editingRouter({
142
+ config: {
143
+ components: config.serverBundle.components,
144
+ metadata: config.serverBundle.metadata,
145
+ },
146
+ render: {
147
+ clientFactory: config.serverBundle.clientFactory,
148
+ renderView,
149
+ },
150
+ })
151
+ );
152
+
153
+ server.use(async (req, res) => {
154
+ debug.proxy(`performing SSR for ${req.originalUrl}`);
155
+
156
+ try {
157
+ const { route, lang } = getRouteParams(req.originalUrl);
158
+
159
+ if (!route) {
160
+ debug.proxy('no route detected, returning 404');
161
+
162
+ res.sendStatus(404);
163
+
164
+ return;
165
+ }
166
+
167
+ // Language is required. In case it's not specified in the requested URL, fallback to the default language from the app configuration.
168
+ const layoutData = await layoutService.fetchLayoutData(
169
+ route,
170
+ lang || config.serverBundle.defaultLanguage
171
+ );
172
+
173
+ const viewBag = { dictionary: {} };
174
+
175
+ viewBag.dictionary = await dictionaryService.fetchDictionaryData(
176
+ layoutData.sitecore.context.language || config.serverBundle.defaultLanguage
177
+ );
178
+
179
+ renderView(
180
+ (err, result) => {
181
+ if (err) {
182
+ handleError(res, err);
183
+ return;
184
+ }
185
+
186
+ if (!result) {
187
+ debug.proxy('no result returned from renderView, returning 204');
188
+
189
+ res.status(204).send();
190
+ return;
191
+ }
192
+
193
+ const statusCode = layoutData.sitecore.route ? 200 : 404;
194
+
195
+ debug.proxy('sending response with status %s', statusCode);
196
+
197
+ res.status(statusCode).send(result.html);
198
+ },
199
+ route,
200
+ layoutData,
201
+ viewBag
202
+ );
203
+ } catch (err) {
204
+ handleError(res, err);
205
+ }
206
+ });
207
+
208
+ server.listen(config.port, () => {
209
+ console.log(`server listening on port ${config.port}!`);
210
+ });
@@ -0,0 +1,27 @@
1
+ import {
2
+ GraphQLRequestClientFactory,
3
+ GraphQLRequestClientFactoryConfig,
4
+ } from '@sitecore-jss/sitecore-jss';
5
+ import { DictionaryService } from '@sitecore-jss/sitecore-jss/i18n';
6
+ import { Metadata } from '@sitecore-jss/sitecore-jss/utils';
7
+ import { LayoutService } from '@sitecore-jss/sitecore-jss/layout';
8
+ import { AppRenderer, RouteUrlParser } from '@sitecore-jss/sitecore-jss-proxy';
9
+
10
+ export interface ServerBundle {
11
+ [key: string]: unknown;
12
+ renderView: AppRenderer;
13
+ parseRouteUrl: RouteUrlParser;
14
+ clientFactory: GraphQLRequestClientFactory;
15
+ getClientFactoryConfig: () => GraphQLRequestClientFactoryConfig;
16
+ defaultLanguage: string;
17
+ layoutServiceFactory: { create: () => LayoutService };
18
+ dictionaryServiceFactory: { create: () => DictionaryService };
19
+ components: string[] | Map<string, unknown>;
20
+ metadata: Metadata;
21
+ }
22
+
23
+ export interface Config {
24
+ [key: string]: unknown;
25
+ port: string | number;
26
+ serverBundle: ServerBundle;
27
+ }
@@ -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
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "<%- appName %>",
3
3
  "description": "Application utilizing Sitecore JavaScript Services and React (create-react-app).",
4
- "version": "22.2.0-canary",
4
+ "version": "22.3.0-canary",
5
5
  "private": true,
6
6
  "config": {
7
7
  "appName": "<%- appName %>",
@@ -28,7 +28,7 @@
28
28
  "license": "Apache-2.0",
29
29
  "dependencies": {
30
30
  "@apollo/client": "^3.7.1",
31
- "@sitecore-jss/sitecore-jss-react": "~22.2.0-canary",
31
+ "@sitecore-jss/sitecore-jss-react": "~22.3.0-canary",
32
32
  "axios": "^1.2.0",
33
33
  "bootstrap": "^5.2.3",
34
34
  "cross-fetch": "^3.1.5",
@@ -53,9 +53,9 @@
53
53
  "@babel/preset-env": "^7.20.2",
54
54
  "@babel/preset-react": "^7.18.6",
55
55
  "@babel/register": "~7.18.9",
56
- "@sitecore-jss/sitecore-jss-cli": "~22.2.0-canary",
57
- "@sitecore-jss/sitecore-jss-dev-tools": "~22.2.0-canary",
58
- "@sitecore-jss/sitecore-jss-rendering-host": "~22.2.0-canary",
56
+ "@sitecore-jss/sitecore-jss-cli": "~22.3.0-canary",
57
+ "@sitecore-jss/sitecore-jss-dev-tools": "~22.3.0-canary",
58
+ "@sitecore-jss/sitecore-jss-rendering-host": "~22.3.0-canary",
59
59
  "babel-loader": "~9.1.0",
60
60
  "babel-preset-react-app": "~10.0.1",
61
61
  "chalk": "~4.1.2",
@@ -31,6 +31,11 @@ generateConfig();
31
31
  * NOTE! Any configs returned here will be written into the client-side JS bundle. DO NOT PUT SECRETS HERE.
32
32
  */
33
33
  function generateConfig() {
34
+ // Handle undefined values
35
+ Object.keys(defaultConfig).forEach((prop) => {
36
+ defaultConfig[prop] = defaultConfig[prop] || '';
37
+ });
38
+
34
39
  try {
35
40
  config = jssConfigFactory.create(defaultConfig);
36
41
  } catch (error) {
@@ -50,9 +55,11 @@ const config = {};\n`;
50
55
 
51
56
  // Set base configuration values, allowing override with environment variables
52
57
  Object.keys(config).forEach(prop => {
53
- configText += `config.${prop} = process.env.REACT_APP_${constantCase(prop)} || "${
54
- config[prop]?.trim()
55
- }";\n`;
58
+ // Handle undefined values
59
+ const value = config[prop] || '';
60
+ configText += `config.${prop} = process.env.REACT_APP_${constantCase(
61
+ prop
62
+ )} || "${value.trim()}";\n`;
56
63
  });
57
64
  configText += 'module.exports = config;';
58
65
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "<%- appName %>",
3
- "version": "22.2.0-canary",
3
+ "version": "22.3.0-canary",
4
4
  "description": "A basic React Native app utilizing Sitecore JavaScript Services",
5
5
  "config": {
6
6
  "appName": "<%- appName %>",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@react-native-community/masked-view": "^0.1.10",
26
- "@sitecore-jss/sitecore-jss-react-native": "~22.2.0-canary",
26
+ "@sitecore-jss/sitecore-jss-react-native": "~22.3.0-canary",
27
27
  "prop-types": "^15.6.0",
28
28
  "react": "16.13.1",
29
29
  "react-native": "^0.63.4",
@@ -37,8 +37,8 @@
37
37
  },
38
38
  "private": true,
39
39
  "devDependencies": {
40
- "@sitecore-jss/sitecore-jss-cli": "~22.2.0-canary",
41
- "@sitecore-jss/sitecore-jss-dev-tools": "~22.2.0-canary",
40
+ "@sitecore-jss/sitecore-jss-cli": "~22.3.0-canary",
41
+ "@sitecore-jss/sitecore-jss-dev-tools": "~22.3.0-canary",
42
42
  "babel-core": "^6.26.0",
43
43
  "babel-eslint": "^8.2.1",
44
44
  "babel-plugin-inline-replace-variables": "^1.3.1",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "<%- appName %>",
3
- "version": "22.2.0-canary",
3
+ "version": "22.3.0-canary",
4
4
  "description": "Application utilizing Sitecore JavaScript Services and Vue (vue-cli).",
5
5
  "private": true,
6
6
  "config": {
@@ -45,7 +45,7 @@
45
45
  "dependencies": {
46
46
  "@apollo/client": "^3.7.4",
47
47
  "@panter/vue-i18next": "~0.15.2",
48
- "@sitecore-jss/sitecore-jss-vue": "~22.2.0-canary",
48
+ "@sitecore-jss/sitecore-jss-vue": "~22.3.0-canary",
49
49
  "@vue/apollo-composable": "4.0.0-beta.2",
50
50
  "@vue/apollo-option": "^4.0.0-alpha.20",
51
51
  "@vue/apollo-ssr": "^4.0.0-alpha.18",
@@ -64,8 +64,8 @@
64
64
  "devDependencies": {
65
65
  "@babel/eslint-parser": "^7.19.1",
66
66
  "@babel/register": "7.18.9",
67
- "@sitecore-jss/sitecore-jss-cli": "~22.2.0-canary",
68
- "@sitecore-jss/sitecore-jss-dev-tools": "~22.2.0-canary",
67
+ "@sitecore-jss/sitecore-jss-cli": "~22.3.0-canary",
68
+ "@sitecore-jss/sitecore-jss-dev-tools": "~22.3.0-canary",
69
69
  "@vue/cli-plugin-babel": "~5.0.8",
70
70
  "@vue/cli-plugin-eslint": "~5.0.8",
71
71
  "@vue/cli-service": "~5.0.8",
@@ -33,6 +33,11 @@ module.exports = function generateConfig(configOverrides) {
33
33
  // and finally config passed in the configOverrides param wins.
34
34
  const config = Object.assign(defaultConfig, scjssConfig, packageJson, configOverrides);
35
35
 
36
+ // Handle undefined values
37
+ Object.keys(config).forEach((prop) => {
38
+ config[prop] = config[prop] || '';
39
+ });
40
+
36
41
  // The GraphQL endpoint is an example of making a _computed_ config setting
37
42
  // based on other config settings.
38
43
  const computedConfig = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-sitecore-jss",
3
- "version": "22.2.0-canary.83",
3
+ "version": "22.3.0-canary.1",
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": "d56b18ae5aabcf3095dac9d45b9f28959bf10b64"
66
+ "gitHead": "204eb3427f26d4ba8c08f44cf9c772f19f2820a8"
67
67
  }
@@ -1,166 +0,0 @@
1
- import * as fs from 'fs';
2
- const path = require('path');
3
- const chokidar = require('chokidar');
4
-
5
- /*
6
- COMPONENT FACTORY GENERATION
7
- Generates the /src/app/components/app-components.module.ts file which maps Angular components
8
- to JSS components.
9
-
10
- The component factory module defines a mapping between a string component name and a Angular component instance.
11
- When the Sitecore Layout service returns a layout definition, it returns named components.
12
- This mapping is used to construct the component hierarchy for the layout.
13
-
14
- NOTE: this script can run in two modes. The default mode, the component factory file is written once.
15
- But if `--watch` is a process argument, the component factory source folder will be watched,
16
- and the componentFactory.js rewritten on added or deleted files.
17
- This is used during `jss start` to pick up new or removed components at runtime.
18
- */
19
-
20
- export interface PackageDefinition {
21
- name: string;
22
- components: {
23
- moduleName: string;
24
- componentName: string;
25
- }[];
26
- }
27
-
28
- const componentFactoryPath = path.resolve('src/app/components/app-components.module.ts');
29
- const componentRootPath = 'src/app/components';
30
-
31
- const isWatch = process.argv.some((arg) => arg === '--watch');
32
-
33
- if (isWatch) {
34
- watchComponentFactory();
35
- } else {
36
- writeComponentFactory();
37
- }
38
-
39
- function watchComponentFactory() {
40
- console.log(`Watching for changes to component factory sources in ${componentRootPath}...`);
41
-
42
- chokidar
43
- .watch(componentRootPath, { ignoreInitial: true, awaitWriteFinish: true })
44
- .on('add', writeComponentFactory)
45
- .on('unlink', writeComponentFactory);
46
- }
47
-
48
- function writeComponentFactory() {
49
- const componentFactory = generateComponentFactory();
50
-
51
- console.log(`Writing component factory to ${componentFactoryPath}`);
52
-
53
- fs.writeFileSync(componentFactoryPath, componentFactory, { encoding: 'utf8' });
54
- }
55
-
56
- function generateComponentFactory() {
57
- // By convention, we expect to find Angular components
58
- // under /src/app/components/component-name/component-name.component.ts
59
- // If a component-name.module.ts file exists, we will treat it as lazy loaded.
60
- // If you'd like to use your own convention, encode it below.
61
- // NOTE: generating the component factory module is also totally optional,
62
- // and it can be maintained manually if preferred.
63
-
64
- const imports: string[] = [];
65
- /**
66
- * You can specify components which you want to import from external/internal packages
67
- * in format:
68
- * {
69
- * name: 'package name',
70
- * components: [
71
- * {
72
- * componentName: 'component name', // component rendering name,
73
- * moduleName: 'module name' // component name to import from the package
74
- * }
75
- * ]
76
- * }
77
- */
78
- const packages: PackageDefinition[] = [];
79
- const registrations: string[] = [];
80
- const lazyRegistrations: string[] = [];
81
- const declarations: string[] = [];
82
-
83
- packages.forEach((p) => {
84
- const variables = p.components
85
- .map((c) => {
86
- registrations.push(`{ name: '${c.componentName}', type: ${c.moduleName} },`);
87
- declarations.push(`${c.moduleName},`);
88
-
89
- return c.moduleName;
90
- })
91
- .join(', ');
92
- imports.push(`import { ${variables} } from '${p.name}'`);
93
- });
94
-
95
- fs.readdirSync(componentRootPath).forEach((componentFolder) => {
96
- // ignore ts files in component root folder
97
- if (componentFolder.endsWith('.ts') || componentFolder === '.gitignore') {
98
- return;
99
- }
100
-
101
- const componentFilePath = path.join(componentRootPath, componentFolder, `${componentFolder}.component.ts`);
102
-
103
- if (!fs.existsSync(componentFilePath)) {
104
- return;
105
- }
106
-
107
- const componentFileContents = fs.readFileSync(componentFilePath, 'utf8');
108
-
109
- // ASSUMPTION: your component should export a class directly that follows Angular conventions,
110
- // i.e. `export class FooComponent` - so we can detect the component's name for auto registration.
111
- const componentClassMatch = /export class (.+?)Component\b/g.exec(componentFileContents);
112
-
113
- if (componentClassMatch === null) {
114
- console.debug(`Component ${componentFilePath} did not seem to export a component class. It will be skipped.`);
115
- return;
116
- }
117
-
118
- const componentName = componentClassMatch[1];
119
- const importVarName = `${componentName}Component`;
120
-
121
- // check for lazy loading needs
122
- const moduleFilePath = path.join(componentRootPath, componentFolder, `${componentFolder}.module.ts`);
123
- const isLazyLoaded = fs.existsSync(moduleFilePath);
124
-
125
- if (isLazyLoaded) {
126
- console.debug(`Registering JSS component (lazy) ${componentName}`);
127
- lazyRegistrations.push(`{ path: '${componentName}', loadChildren: () => import('./${componentFolder}/${componentFolder}.module').then(m => m.${componentName}Module) },`);
128
- } else {
129
- console.debug(`Registering JSS component ${componentName}`);
130
- imports.push(`import { ${importVarName} } from './${componentFolder}/${componentFolder}.component';`);
131
- registrations.push(`{ name: '${componentName}', type: ${importVarName} },`);
132
- declarations.push(`${importVarName},`);
133
- }
134
- });
135
-
136
- return `// Do not edit this file, it is auto-generated at build time!
137
- // See scripts/generate-component-factory.js to modify the generation of this file.
138
- // Use app-components.shared.module.ts to modify the imports, etc of this module.
139
- // Note: code-generation is optional! See ./.gitignore for directions to remove it,
140
- // if you do not want it.
141
-
142
- import { NgModule } from '@angular/core';
143
- import { JssModule } from '@sitecore-jss/sitecore-jss-angular';
144
- import { AppComponentsSharedModule } from './app-components.shared.module';
145
- ${imports.join('\n')}
146
-
147
- @NgModule({
148
- imports: [
149
- AppComponentsSharedModule,
150
- JssModule.withComponents([
151
- ${registrations.join('\n ')}
152
- ], [
153
- ${lazyRegistrations.join('\n ')}
154
- ]),
155
- ],
156
- exports: [
157
- JssModule,
158
- AppComponentsSharedModule,
159
- ],
160
- declarations: [
161
- ${declarations.join('\n ')}
162
- ],
163
- })
164
- export class AppComponentsModule { }
165
- `;
166
- }
@@ -1,28 +0,0 @@
1
- import {
2
- GraphQLRequestClientFactoryConfig,
3
- GraphQLRequestClient,
4
- } from '@sitecore-jss/sitecore-jss-angular';
5
- import { environment as env } from '../../environments/environment';
6
-
7
- // The GraphQLRequestClientFactory serves as the central hub for executing GraphQL requests within the application
8
-
9
- /**
10
- * Creates a new GraphQLRequestClientFactory instance
11
- * @returns GraphQLRequestClientFactory instance
12
- */
13
- export const createGraphQLClientFactory = () => {
14
- let clientConfig: GraphQLRequestClientFactoryConfig;
15
-
16
- if (env.graphQLEndpoint && env.sitecoreApiKey) {
17
- clientConfig = {
18
- endpoint: env.graphQLEndpoint,
19
- apiKey: env.sitecoreApiKey,
20
- };
21
- } else {
22
- throw new Error('Please configure your graphQLEndpoint and sitecoreApiKey.');
23
- }
24
-
25
- return GraphQLRequestClient.createClientFactory(clientConfig);
26
- };
27
-
28
- export const clientFactory = createGraphQLClientFactory();