@akinon/projectzero 1.32.0-rc.2 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/CHANGELOG.md +2 -8
  2. package/commands/create.ts +118 -49
  3. package/dist/commands/create.js +68 -32
  4. package/package.json +1 -1
  5. package/tsconfig.json +8 -9
  6. package/app-template/.editorconfig +0 -7
  7. package/app-template/.env.example +0 -9
  8. package/app-template/.eslintignore +0 -1
  9. package/app-template/.eslintrc.js +0 -31
  10. package/app-template/.gitattributes +0 -18
  11. package/app-template/.husky/pre-commit +0 -4
  12. package/app-template/.lintstagedrc.js +0 -12
  13. package/app-template/.prettierrc +0 -13
  14. package/app-template/.releaserc.json +0 -49
  15. package/app-template/.stylelintrc.json +0 -37
  16. package/app-template/.vscode/extensions.json +0 -11
  17. package/app-template/.vscode/launch.json +0 -29
  18. package/app-template/.yarnrc +0 -1
  19. package/app-template/CHANGELOG.md +0 -655
  20. package/app-template/LICENSE +0 -21
  21. package/app-template/Procfile +0 -1
  22. package/app-template/README.md +0 -29
  23. package/app-template/akinon.json +0 -28
  24. package/app-template/bitbucket-pipelines.yml +0 -54
  25. package/app-template/build.sh +0 -7
  26. package/app-template/docs/CHANGELOG.md +0 -85
  27. package/app-template/docs/advanced-usage.md +0 -43
  28. package/app-template/docs/basic-setup.md +0 -59
  29. package/app-template/docs/data-fetching/client/account.md +0 -1064
  30. package/app-template/docs/data-fetching/client/address.md +0 -805
  31. package/app-template/docs/data-fetching/client/basket.md +0 -107
  32. package/app-template/docs/data-fetching/client/checkout.md +0 -904
  33. package/app-template/docs/data-fetching/client/misc.md +0 -135
  34. package/app-template/docs/data-fetching/client/product.md +0 -284
  35. package/app-template/docs/data-fetching/client/user.md +0 -56
  36. package/app-template/docs/data-fetching/client/wishlist.md +0 -111
  37. package/app-template/docs/data-fetching/server/category.md +0 -324
  38. package/app-template/docs/data-fetching/server/flat-page.md +0 -42
  39. package/app-template/docs/data-fetching/server/list.md +0 -353
  40. package/app-template/docs/data-fetching/server/menu.md +0 -363
  41. package/app-template/docs/data-fetching/server/product.md +0 -131
  42. package/app-template/docs/data-fetching/server/seo.md +0 -44
  43. package/app-template/docs/data-fetching/server/special-page.md +0 -79
  44. package/app-template/docs/data-fetching/server/widget.md +0 -218
  45. package/app-template/docs/delete-account.md +0 -25
  46. package/app-template/docs/deployment.md +0 -46
  47. package/app-template/docs/dynamic-route.md +0 -33
  48. package/app-template/docs/icons.md +0 -52
  49. package/app-template/docs/localization.md +0 -204
  50. package/app-template/docs/logging.md +0 -48
  51. package/app-template/docs/plugins.md +0 -76
  52. package/app-template/docs/seo-management.md +0 -125
  53. package/app-template/docs/static-assets.md +0 -36
  54. package/app-template/docs/widgets.md +0 -127
  55. package/app-template/global.d.ts +0 -1
  56. package/app-template/jest.config.ts +0 -34
  57. package/app-template/next-env.d.ts +0 -6
  58. package/app-template/next.config.mjs +0 -34
  59. package/app-template/package.json +0 -97
  60. package/app-template/plugins.d.ts +0 -1
  61. package/app-template/postcss.config.js +0 -6
  62. package/app-template/public/404.png +0 -0
  63. package/app-template/public/500.png +0 -0
  64. package/app-template/public/apple-splash-1125-2436.jpg +0 -0
  65. package/app-template/public/apple-splash-1136-640.jpg +0 -0
  66. package/app-template/public/apple-splash-1170-2532.jpg +0 -0
  67. package/app-template/public/apple-splash-1242-2208.jpg +0 -0
  68. package/app-template/public/apple-splash-1242-2688.jpg +0 -0
  69. package/app-template/public/apple-splash-1284-2778.jpg +0 -0
  70. package/app-template/public/apple-splash-1334-750.jpg +0 -0
  71. package/app-template/public/apple-splash-1536-2048.jpg +0 -0
  72. package/app-template/public/apple-splash-1620-2160.jpg +0 -0
  73. package/app-template/public/apple-splash-1668-2224.jpg +0 -0
  74. package/app-template/public/apple-splash-1668-2388.jpg +0 -0
  75. package/app-template/public/apple-splash-1792-828.jpg +0 -0
  76. package/app-template/public/apple-splash-2048-1536.jpg +0 -0
  77. package/app-template/public/apple-splash-2048-2732.jpg +0 -0
  78. package/app-template/public/apple-splash-2160-1620.jpg +0 -0
  79. package/app-template/public/apple-splash-2208-1242.jpg +0 -0
  80. package/app-template/public/apple-splash-2224-1668.jpg +0 -0
  81. package/app-template/public/apple-splash-2388-1668.jpg +0 -0
  82. package/app-template/public/apple-splash-2436-1125.jpg +0 -0
  83. package/app-template/public/apple-splash-2532-1170.jpg +0 -0
  84. package/app-template/public/apple-splash-2688-1242.jpg +0 -0
  85. package/app-template/public/apple-splash-2732-2048.jpg +0 -0
  86. package/app-template/public/apple-splash-2778-1284.jpg +0 -0
  87. package/app-template/public/apple-splash-640-1136.jpg +0 -0
  88. package/app-template/public/apple-splash-750-1334.jpg +0 -0
  89. package/app-template/public/apple-splash-828-1792.jpg +0 -0
  90. package/app-template/public/apple-touch-icon-152x152.png +0 -0
  91. package/app-template/public/apple-touch-icon-167x167.png +0 -0
  92. package/app-template/public/apple-touch-icon-180x180.png +0 -0
  93. package/app-template/public/apple-touch-icon.png +0 -0
  94. package/app-template/public/apple.svg +0 -47
  95. package/app-template/public/cvv.jpg +0 -0
  96. package/app-template/public/facebook.svg +0 -3
  97. package/app-template/public/google.svg +0 -12
  98. package/app-template/public/icon-192x192.png +0 -0
  99. package/app-template/public/icon-256x256.png +0 -0
  100. package/app-template/public/icon-384x384.png +0 -0
  101. package/app-template/public/icon-512x512.png +0 -0
  102. package/app-template/public/icon-sprite.svg +0 -528
  103. package/app-template/public/locales/en/account.json +0 -487
  104. package/app-template/public/locales/en/auth.json +0 -100
  105. package/app-template/public/locales/en/basket.json +0 -50
  106. package/app-template/public/locales/en/category.json +0 -26
  107. package/app-template/public/locales/en/checkout.json +0 -152
  108. package/app-template/public/locales/en/common.json +0 -65
  109. package/app-template/public/locales/en/forgot_password.json +0 -41
  110. package/app-template/public/locales/en/form.json +0 -5
  111. package/app-template/public/locales/en/not_found.json +0 -5
  112. package/app-template/public/locales/en/product.json +0 -39
  113. package/app-template/public/locales/tr/account.json +0 -487
  114. package/app-template/public/locales/tr/auth.json +0 -100
  115. package/app-template/public/locales/tr/basket.json +0 -50
  116. package/app-template/public/locales/tr/category.json +0 -26
  117. package/app-template/public/locales/tr/checkout.json +0 -152
  118. package/app-template/public/locales/tr/common.json +0 -65
  119. package/app-template/public/locales/tr/forgot_password.json +0 -41
  120. package/app-template/public/locales/tr/form.json +0 -5
  121. package/app-template/public/locales/tr/not_found.json +0 -5
  122. package/app-template/public/locales/tr/product.json +0 -39
  123. package/app-template/public/logo.svg +0 -29
  124. package/app-template/public/manifest.json +0 -35
  125. package/app-template/public/mastercard.png +0 -0
  126. package/app-template/public/mastersecure.png +0 -0
  127. package/app-template/public/mfs-client.min.js +0 -3
  128. package/app-template/public/noimage.jpg +0 -0
  129. package/app-template/public/safari-pinned-tab.svg +0 -320
  130. package/app-template/public/ssl-secure.png +0 -0
  131. package/app-template/public/vbv.png +0 -0
  132. package/app-template/public/visa.png +0 -0
  133. package/app-template/public/zepto.min.js +0 -2
  134. package/app-template/sentry.client.config.ts +0 -16
  135. package/app-template/sentry.edge.config.ts +0 -3
  136. package/app-template/sentry.properties +0 -4
  137. package/app-template/sentry.server.config.ts +0 -3
  138. package/app-template/setupTests.ts +0 -4
  139. package/app-template/src/__tests__/index.test.tsx +0 -7
  140. package/app-template/src/__tests__/tsconfig.json +0 -7
  141. package/app-template/src/app/[commerce]/[locale]/[currency]/account/address/page.tsx +0 -74
  142. package/app-template/src/app/[commerce]/[locale]/[currency]/account/change-email/page.tsx +0 -174
  143. package/app-template/src/app/[commerce]/[locale]/[currency]/account/change-password/page.tsx +0 -206
  144. package/app-template/src/app/[commerce]/[locale]/[currency]/account/contact/page.tsx +0 -7
  145. package/app-template/src/app/[commerce]/[locale]/[currency]/account/coupons/page.tsx +0 -210
  146. package/app-template/src/app/[commerce]/[locale]/[currency]/account/email-verification/page.tsx +0 -5
  147. package/app-template/src/app/[commerce]/[locale]/[currency]/account/faq/page.tsx +0 -23
  148. package/app-template/src/app/[commerce]/[locale]/[currency]/account/favourite-products/page.tsx +0 -32
  149. package/app-template/src/app/[commerce]/[locale]/[currency]/account/layout.tsx +0 -28
  150. package/app-template/src/app/[commerce]/[locale]/[currency]/account/my-quotations/page.tsx +0 -7
  151. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/cancellation/page.tsx +0 -255
  152. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/layout.tsx +0 -5
  153. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/page.tsx +0 -309
  154. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/page.tsx +0 -137
  155. package/app-template/src/app/[commerce]/[locale]/[currency]/account/page.tsx +0 -226
  156. package/app-template/src/app/[commerce]/[locale]/[currency]/account/profile/page.tsx +0 -400
  157. package/app-template/src/app/[commerce]/[locale]/[currency]/address/stores/page.tsx +0 -271
  158. package/app-template/src/app/[commerce]/[locale]/[currency]/anonymous-tracking/page.tsx +0 -33
  159. package/app-template/src/app/[commerce]/[locale]/[currency]/auth/oauth-login/page.tsx +0 -3
  160. package/app-template/src/app/[commerce]/[locale]/[currency]/auth/page.tsx +0 -76
  161. package/app-template/src/app/[commerce]/[locale]/[currency]/basket/page.tsx +0 -77
  162. package/app-template/src/app/[commerce]/[locale]/[currency]/basket-b2b/page.tsx +0 -7
  163. package/app-template/src/app/[commerce]/[locale]/[currency]/category/[pk]/loading.tsx +0 -53
  164. package/app-template/src/app/[commerce]/[locale]/[currency]/category/[pk]/page.tsx +0 -16
  165. package/app-template/src/app/[commerce]/[locale]/[currency]/client-root.tsx +0 -9
  166. package/app-template/src/app/[commerce]/[locale]/[currency]/contact-us/page.tsx +0 -11
  167. package/app-template/src/app/[commerce]/[locale]/[currency]/error.tsx +0 -20
  168. package/app-template/src/app/[commerce]/[locale]/[currency]/flat-page/[pk]/loading.tsx +0 -5
  169. package/app-template/src/app/[commerce]/[locale]/[currency]/flat-page/[pk]/page.tsx +0 -18
  170. package/app-template/src/app/[commerce]/[locale]/[currency]/forms/[pk]/generate/page.tsx +0 -48
  171. package/app-template/src/app/[commerce]/[locale]/[currency]/group-product/[pk]/loading.tsx +0 -5
  172. package/app-template/src/app/[commerce]/[locale]/[currency]/group-product/[pk]/page.tsx +0 -72
  173. package/app-template/src/app/[commerce]/[locale]/[currency]/landing-page/[pk]/loading.tsx +0 -5
  174. package/app-template/src/app/[commerce]/[locale]/[currency]/landing-page/[pk]/page.tsx +0 -23
  175. package/app-template/src/app/[commerce]/[locale]/[currency]/layout.tsx +0 -78
  176. package/app-template/src/app/[commerce]/[locale]/[currency]/list/loading.tsx +0 -53
  177. package/app-template/src/app/[commerce]/[locale]/[currency]/list/page.tsx +0 -16
  178. package/app-template/src/app/[commerce]/[locale]/[currency]/orders/checkout/page.tsx +0 -140
  179. package/app-template/src/app/[commerce]/[locale]/[currency]/orders/completed/[token]/layout.tsx +0 -5
  180. package/app-template/src/app/[commerce]/[locale]/[currency]/orders/completed/[token]/page.tsx +0 -284
  181. package/app-template/src/app/[commerce]/[locale]/[currency]/page.tsx +0 -50
  182. package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/loading.tsx +0 -67
  183. package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/page.tsx +0 -81
  184. package/app-template/src/app/[commerce]/[locale]/[currency]/pz-not-found/page.tsx +0 -24
  185. package/app-template/src/app/[commerce]/[locale]/[currency]/special-page/[pk]/loading.tsx +0 -53
  186. package/app-template/src/app/[commerce]/[locale]/[currency]/special-page/[pk]/page.tsx +0 -25
  187. package/app-template/src/app/[commerce]/[locale]/[currency]/template.tsx +0 -75
  188. package/app-template/src/app/[commerce]/[locale]/[currency]/users/email-set-primary/[[...id]]/page.tsx +0 -43
  189. package/app-template/src/app/[commerce]/[locale]/[currency]/users/password/reset/page.tsx +0 -79
  190. package/app-template/src/app/[commerce]/[locale]/[currency]/users/registration/account-confirm-email/[[...id]]/page.tsx +0 -43
  191. package/app-template/src/app/[commerce]/[locale]/[currency]/users/reset/[[...id]]/page.tsx +0 -110
  192. package/app-template/src/app/[commerce]/[locale]/[currency]/xml-sitemap/[node]/route.ts +0 -25
  193. package/app-template/src/app/[commerce]/[locale]/[currency]/xml-sitemap/route.ts +0 -37
  194. package/app-template/src/app/api/cache/route.ts +0 -1
  195. package/app-template/src/app/api/client/[...slug]/route.ts +0 -1
  196. package/app-template/src/app/api/form/[...id]/route.ts +0 -7
  197. package/app-template/src/app/api/logout/route.ts +0 -1
  198. package/app-template/src/app/api/sentry/route.ts +0 -9
  199. package/app-template/src/app/api/web-vitals/route.ts +0 -1
  200. package/app-template/src/app/favicon.ico +0 -0
  201. package/app-template/src/assets/fonts/Jost/Jost-Black.eot +0 -0
  202. package/app-template/src/assets/fonts/Jost/Jost-Black.ttf +0 -0
  203. package/app-template/src/assets/fonts/Jost/Jost-Black.woff +0 -0
  204. package/app-template/src/assets/fonts/Jost/Jost-Black.woff2 +0 -0
  205. package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.eot +0 -0
  206. package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.ttf +0 -0
  207. package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.woff +0 -0
  208. package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.woff2 +0 -0
  209. package/app-template/src/assets/fonts/Jost/Jost-Bold.eot +0 -0
  210. package/app-template/src/assets/fonts/Jost/Jost-Bold.ttf +0 -0
  211. package/app-template/src/assets/fonts/Jost/Jost-Bold.woff +0 -0
  212. package/app-template/src/assets/fonts/Jost/Jost-Bold.woff2 +0 -0
  213. package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.eot +0 -0
  214. package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.ttf +0 -0
  215. package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.woff +0 -0
  216. package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.woff2 +0 -0
  217. package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.eot +0 -0
  218. package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.ttf +0 -0
  219. package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.woff +0 -0
  220. package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.woff2 +0 -0
  221. package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.eot +0 -0
  222. package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.ttf +0 -0
  223. package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.woff +0 -0
  224. package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.woff2 +0 -0
  225. package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.eot +0 -0
  226. package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.ttf +0 -0
  227. package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.woff +0 -0
  228. package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.woff2 +0 -0
  229. package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.eot +0 -0
  230. package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.ttf +0 -0
  231. package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.woff +0 -0
  232. package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.woff2 +0 -0
  233. package/app-template/src/assets/fonts/Jost/Jost-Italic.eot +0 -0
  234. package/app-template/src/assets/fonts/Jost/Jost-Italic.ttf +0 -0
  235. package/app-template/src/assets/fonts/Jost/Jost-Italic.woff +0 -0
  236. package/app-template/src/assets/fonts/Jost/Jost-Italic.woff2 +0 -0
  237. package/app-template/src/assets/fonts/Jost/Jost-Light.eot +0 -0
  238. package/app-template/src/assets/fonts/Jost/Jost-Light.ttf +0 -0
  239. package/app-template/src/assets/fonts/Jost/Jost-Light.woff +0 -0
  240. package/app-template/src/assets/fonts/Jost/Jost-Light.woff2 +0 -0
  241. package/app-template/src/assets/fonts/Jost/Jost-LightItalic.eot +0 -0
  242. package/app-template/src/assets/fonts/Jost/Jost-LightItalic.ttf +0 -0
  243. package/app-template/src/assets/fonts/Jost/Jost-LightItalic.woff +0 -0
  244. package/app-template/src/assets/fonts/Jost/Jost-LightItalic.woff2 +0 -0
  245. package/app-template/src/assets/fonts/Jost/Jost-Medium.eot +0 -0
  246. package/app-template/src/assets/fonts/Jost/Jost-Medium.ttf +0 -0
  247. package/app-template/src/assets/fonts/Jost/Jost-Medium.woff +0 -0
  248. package/app-template/src/assets/fonts/Jost/Jost-Medium.woff2 +0 -0
  249. package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.eot +0 -0
  250. package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.ttf +0 -0
  251. package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.woff +0 -0
  252. package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.woff2 +0 -0
  253. package/app-template/src/assets/fonts/Jost/Jost-Regular.eot +0 -0
  254. package/app-template/src/assets/fonts/Jost/Jost-Regular.ttf +0 -0
  255. package/app-template/src/assets/fonts/Jost/Jost-Regular.woff +0 -0
  256. package/app-template/src/assets/fonts/Jost/Jost-Regular.woff2 +0 -0
  257. package/app-template/src/assets/fonts/Jost/Jost-SemiBold.eot +0 -0
  258. package/app-template/src/assets/fonts/Jost/Jost-SemiBold.ttf +0 -0
  259. package/app-template/src/assets/fonts/Jost/Jost-SemiBold.woff +0 -0
  260. package/app-template/src/assets/fonts/Jost/Jost-SemiBold.woff2 +0 -0
  261. package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.eot +0 -0
  262. package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.ttf +0 -0
  263. package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.woff +0 -0
  264. package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.woff2 +0 -0
  265. package/app-template/src/assets/fonts/Jost/Jost-Thin.eot +0 -0
  266. package/app-template/src/assets/fonts/Jost/Jost-Thin.ttf +0 -0
  267. package/app-template/src/assets/fonts/Jost/Jost-Thin.woff +0 -0
  268. package/app-template/src/assets/fonts/Jost/Jost-Thin.woff2 +0 -0
  269. package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.eot +0 -0
  270. package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.ttf +0 -0
  271. package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.woff +0 -0
  272. package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.woff2 +0 -0
  273. package/app-template/src/assets/fonts/Jost/index.scss +0 -269
  274. package/app-template/src/assets/fonts/index.scss +0 -1
  275. package/app-template/src/assets/fonts/pz-icon.css +0 -154
  276. package/app-template/src/assets/fonts/pz-icon.eot +0 -0
  277. package/app-template/src/assets/fonts/pz-icon.html +0 -456
  278. package/app-template/src/assets/fonts/pz-icon.scss +0 -300
  279. package/app-template/src/assets/fonts/pz-icon.svg +0 -144
  280. package/app-template/src/assets/fonts/pz-icon.ttf +0 -0
  281. package/app-template/src/assets/fonts/pz-icon.woff +0 -0
  282. package/app-template/src/assets/fonts/pz-icon.woff2 +0 -0
  283. package/app-template/src/assets/globals.scss +0 -65
  284. package/app-template/src/assets/icons/akinon.svg +0 -11
  285. package/app-template/src/assets/icons/arrow-up.svg +0 -11
  286. package/app-template/src/assets/icons/bell.svg +0 -1
  287. package/app-template/src/assets/icons/cart.svg +0 -13
  288. package/app-template/src/assets/icons/check.svg +0 -19
  289. package/app-template/src/assets/icons/chevron-down.svg +0 -8
  290. package/app-template/src/assets/icons/chevron-end.svg +0 -8
  291. package/app-template/src/assets/icons/chevron-start.svg +0 -8
  292. package/app-template/src/assets/icons/chevron-up.svg +0 -8
  293. package/app-template/src/assets/icons/close.svg +0 -12
  294. package/app-template/src/assets/icons/cvc.svg +0 -54
  295. package/app-template/src/assets/icons/default.svg +0 -6
  296. package/app-template/src/assets/icons/directions.svg +0 -14
  297. package/app-template/src/assets/icons/eye-off.svg +0 -10
  298. package/app-template/src/assets/icons/eye-on.svg +0 -17
  299. package/app-template/src/assets/icons/facebook-login.svg +0 -11
  300. package/app-template/src/assets/icons/facebook.svg +0 -9
  301. package/app-template/src/assets/icons/giftbox.svg +0 -22
  302. package/app-template/src/assets/icons/globe.svg +0 -12
  303. package/app-template/src/assets/icons/google-login.svg +0 -19
  304. package/app-template/src/assets/icons/google.svg +0 -9
  305. package/app-template/src/assets/icons/hamburger.svg +0 -5
  306. package/app-template/src/assets/icons/heart-full.svg +0 -20
  307. package/app-template/src/assets/icons/heart-stroke.svg +0 -22
  308. package/app-template/src/assets/icons/info.svg +0 -1
  309. package/app-template/src/assets/icons/instagram.svg +0 -14
  310. package/app-template/src/assets/icons/layout-2.svg +0 -7
  311. package/app-template/src/assets/icons/layout-3.svg +0 -4
  312. package/app-template/src/assets/icons/logo.svg +0 -24
  313. package/app-template/src/assets/icons/mail.svg +0 -1
  314. package/app-template/src/assets/icons/minus.svg +0 -4
  315. package/app-template/src/assets/icons/money.svg +0 -4
  316. package/app-template/src/assets/icons/mp-otp.svg +0 -1
  317. package/app-template/src/assets/icons/pin.svg +0 -16
  318. package/app-template/src/assets/icons/pinterest.svg +0 -12
  319. package/app-template/src/assets/icons/plus.svg +0 -5
  320. package/app-template/src/assets/icons/search.svg +0 -13
  321. package/app-template/src/assets/icons/share.svg +0 -10
  322. package/app-template/src/assets/icons/spinner.svg +0 -6
  323. package/app-template/src/assets/icons/store-pin.svg +0 -14
  324. package/app-template/src/assets/icons/track-order.svg +0 -1
  325. package/app-template/src/assets/icons/twitter.svg +0 -11
  326. package/app-template/src/assets/icons/user.svg +0 -14
  327. package/app-template/src/assets/icons/whatsapp.svg +0 -45
  328. package/app-template/src/components/__tests__/Modal.test.tsx +0 -103
  329. package/app-template/src/components/__tests__/accordion.test.tsx +0 -65
  330. package/app-template/src/components/__tests__/badge.test.tsx +0 -20
  331. package/app-template/src/components/__tests__/button.test.tsx +0 -59
  332. package/app-template/src/components/__tests__/checkbox.test.tsx +0 -57
  333. package/app-template/src/components/__tests__/file-input.test.tsx +0 -42
  334. package/app-template/src/components/__tests__/icon.test.tsx +0 -39
  335. package/app-template/src/components/__tests__/input.test.tsx +0 -69
  336. package/app-template/src/components/__tests__/language-select.test.tsx +0 -81
  337. package/app-template/src/components/__tests__/link.test.tsx +0 -65
  338. package/app-template/src/components/__tests__/price.test.tsx +0 -72
  339. package/app-template/src/components/__tests__/radio.test.tsx +0 -52
  340. package/app-template/src/components/__tests__/select.test.tsx +0 -115
  341. package/app-template/src/components/__tests__/tab.test.tsx +0 -101
  342. package/app-template/src/components/accordion.tsx +0 -64
  343. package/app-template/src/components/badge.tsx +0 -21
  344. package/app-template/src/components/button.tsx +0 -46
  345. package/app-template/src/components/canonical-url.tsx +0 -21
  346. package/app-template/src/components/carousel-core.tsx +0 -42
  347. package/app-template/src/components/checkbox.tsx +0 -29
  348. package/app-template/src/components/currency-select.tsx +0 -81
  349. package/app-template/src/components/custom-loader.tsx +0 -21
  350. package/app-template/src/components/dynamic-form.tsx +0 -17
  351. package/app-template/src/components/file-input.tsx +0 -8
  352. package/app-template/src/components/generate-form-fields.tsx +0 -349
  353. package/app-template/src/components/icon.tsx +0 -18
  354. package/app-template/src/components/index.ts +0 -41
  355. package/app-template/src/components/input.tsx +0 -122
  356. package/app-template/src/components/language-select.tsx +0 -33
  357. package/app-template/src/components/link.tsx +0 -53
  358. package/app-template/src/components/loader-spinner.tsx +0 -23
  359. package/app-template/src/components/modal.tsx +0 -66
  360. package/app-template/src/components/pagination.tsx +0 -267
  361. package/app-template/src/components/password-rules-feedback.tsx +0 -60
  362. package/app-template/src/components/price.tsx +0 -54
  363. package/app-template/src/components/pwa-tags.tsx +0 -233
  364. package/app-template/src/components/radio.tsx +0 -18
  365. package/app-template/src/components/react-portal.tsx +0 -47
  366. package/app-template/src/components/select.tsx +0 -70
  367. package/app-template/src/components/shimmer.tsx +0 -21
  368. package/app-template/src/components/skeleton-article.tsx +0 -15
  369. package/app-template/src/components/skeleton-product.tsx +0 -14
  370. package/app-template/src/components/skeleton-profile.tsx +0 -19
  371. package/app-template/src/components/skeleton-wrapper.tsx +0 -19
  372. package/app-template/src/components/skeleton.tsx +0 -37
  373. package/app-template/src/components/source.tsx +0 -12
  374. package/app-template/src/components/tab-panel.tsx +0 -10
  375. package/app-template/src/components/tab.tsx +0 -58
  376. package/app-template/src/components/tabs.tsx +0 -58
  377. package/app-template/src/components/types/index.ts +0 -89
  378. package/app-template/src/hooks/index.ts +0 -1
  379. package/app-template/src/hooks/use-add-product-to-basket.ts +0 -48
  380. package/app-template/src/hooks/use-contract.tsx +0 -58
  381. package/app-template/src/hooks/use-fav-button.tsx +0 -99
  382. package/app-template/src/instrumentation.ts +0 -1
  383. package/app-template/src/middleware.ts +0 -33
  384. package/app-template/src/pages/_error.js +0 -14
  385. package/app-template/src/pages/api/auth/[...nextauth].ts +0 -3
  386. package/app-template/src/plugins.js +0 -14
  387. package/app-template/src/redux/middlewares/category.ts +0 -42
  388. package/app-template/src/redux/reducers/category.ts +0 -67
  389. package/app-template/src/redux/store.ts +0 -47
  390. package/app-template/src/routes/index.ts +0 -46
  391. package/app-template/src/settings.js +0 -63
  392. package/app-template/src/theme.js +0 -1
  393. package/app-template/src/types/index.ts +0 -72
  394. package/app-template/src/types/next-auth.d.ts +0 -24
  395. package/app-template/src/types/widgets.ts +0 -115
  396. package/app-template/src/utils/convert-facet-search-params.ts +0 -15
  397. package/app-template/src/utils/generate-jsonld.ts +0 -23
  398. package/app-template/src/utils/gtm.ts +0 -247
  399. package/app-template/src/utils/index.ts +0 -60
  400. package/app-template/src/views/account/account-menu.tsx +0 -117
  401. package/app-template/src/views/account/address-card.tsx +0 -107
  402. package/app-template/src/views/account/address-form.tsx +0 -374
  403. package/app-template/src/views/account/back-button.tsx +0 -27
  404. package/app-template/src/views/account/contact-form.tsx +0 -283
  405. package/app-template/src/views/account/content-header.tsx +0 -52
  406. package/app-template/src/views/account/faq/faq-footer.tsx +0 -30
  407. package/app-template/src/views/account/faq/faq-search.tsx +0 -35
  408. package/app-template/src/views/account/faq/faq-tabs.tsx +0 -54
  409. package/app-template/src/views/account/faq/index.ts +0 -3
  410. package/app-template/src/views/account/favorite-item.tsx +0 -191
  411. package/app-template/src/views/account/favourite-products/favourite-products-list.tsx +0 -65
  412. package/app-template/src/views/account/index.ts +0 -4
  413. package/app-template/src/views/account/order.tsx +0 -89
  414. package/app-template/src/views/account/orders/order-cancellation-item.tsx +0 -99
  415. package/app-template/src/views/account/orders/order-detail-header.tsx +0 -39
  416. package/app-template/src/views/anonymous-tracking/index.tsx +0 -109
  417. package/app-template/src/views/anonymous-tracking/order-detail/index.tsx +0 -318
  418. package/app-template/src/views/basket/basket-item.tsx +0 -231
  419. package/app-template/src/views/basket/index.ts +0 -2
  420. package/app-template/src/views/basket/summary.tsx +0 -220
  421. package/app-template/src/views/breadcrumb.tsx +0 -35
  422. package/app-template/src/views/category/category-active-filters.tsx +0 -98
  423. package/app-template/src/views/category/category-banner.tsx +0 -34
  424. package/app-template/src/views/category/category-header.tsx +0 -143
  425. package/app-template/src/views/category/category-info.tsx +0 -123
  426. package/app-template/src/views/category/filters/index.tsx +0 -177
  427. package/app-template/src/views/category/filters/size-filter.tsx +0 -27
  428. package/app-template/src/views/category/layout.tsx +0 -38
  429. package/app-template/src/views/checkout/auth.tsx +0 -54
  430. package/app-template/src/views/checkout/index.tsx +0 -3
  431. package/app-template/src/views/checkout/layout/footer.tsx +0 -48
  432. package/app-template/src/views/checkout/layout/header.tsx +0 -38
  433. package/app-template/src/views/checkout/step-button.tsx +0 -69
  434. package/app-template/src/views/checkout/step-list.tsx +0 -51
  435. package/app-template/src/views/checkout/steps/payment/agreements.tsx +0 -42
  436. package/app-template/src/views/checkout/steps/payment/index.tsx +0 -31
  437. package/app-template/src/views/checkout/steps/payment/options/credit-card/index.tsx +0 -382
  438. package/app-template/src/views/checkout/steps/payment/options/credit-card/installments.tsx +0 -100
  439. package/app-template/src/views/checkout/steps/payment/options/credit-payment.tsx +0 -14
  440. package/app-template/src/views/checkout/steps/payment/options/funds-transfer.tsx +0 -174
  441. package/app-template/src/views/checkout/steps/payment/options/loyalty.tsx +0 -19
  442. package/app-template/src/views/checkout/steps/payment/options/pay-on-delivery.tsx +0 -15
  443. package/app-template/src/views/checkout/steps/payment/options/redirection.tsx +0 -94
  444. package/app-template/src/views/checkout/steps/payment/payment-header.tsx +0 -17
  445. package/app-template/src/views/checkout/steps/payment/payment-option-buttons.tsx +0 -73
  446. package/app-template/src/views/checkout/steps/shipping/address-box.tsx +0 -204
  447. package/app-template/src/views/checkout/steps/shipping/addresses.tsx +0 -189
  448. package/app-template/src/views/checkout/steps/shipping/index.tsx +0 -27
  449. package/app-template/src/views/checkout/steps/shipping/shipping-options.tsx +0 -72
  450. package/app-template/src/views/checkout/summary.tsx +0 -181
  451. package/app-template/src/views/coupon-item/index.tsx +0 -80
  452. package/app-template/src/views/find-in-store/index.tsx +0 -183
  453. package/app-template/src/views/footer.tsx +0 -21
  454. package/app-template/src/views/guest-login/index.tsx +0 -130
  455. package/app-template/src/views/header/action-menu.tsx +0 -117
  456. package/app-template/src/views/header/band.tsx +0 -32
  457. package/app-template/src/views/header/index.tsx +0 -66
  458. package/app-template/src/views/header/mini-basket.tsx +0 -267
  459. package/app-template/src/views/header/mobile-hamburger-button.tsx +0 -35
  460. package/app-template/src/views/header/mobile-menu.tsx +0 -144
  461. package/app-template/src/views/header/navbar.tsx +0 -186
  462. package/app-template/src/views/header/pwa-back-button.tsx +0 -60
  463. package/app-template/src/views/header/search/index.tsx +0 -82
  464. package/app-template/src/views/header/search/results.tsx +0 -123
  465. package/app-template/src/views/header/user-menu.tsx +0 -72
  466. package/app-template/src/views/index.tsx +0 -2
  467. package/app-template/src/views/installment-options/index.tsx +0 -127
  468. package/app-template/src/views/login/index.tsx +0 -233
  469. package/app-template/src/views/otp-login/index.tsx +0 -152
  470. package/app-template/src/views/page-loader-spinner/index.tsx +0 -9
  471. package/app-template/src/views/product/accordion-wrapper.tsx +0 -59
  472. package/app-template/src/views/product/combine-product-card.tsx +0 -82
  473. package/app-template/src/views/product/index.ts +0 -8
  474. package/app-template/src/views/product/layout.tsx +0 -40
  475. package/app-template/src/views/product/misc-buttons.tsx +0 -65
  476. package/app-template/src/views/product/price-wrapper.tsx +0 -41
  477. package/app-template/src/views/product/product-group-info.tsx +0 -63
  478. package/app-template/src/views/product/product-info.tsx +0 -273
  479. package/app-template/src/views/product/slider.tsx +0 -124
  480. package/app-template/src/views/product/variant.tsx +0 -104
  481. package/app-template/src/views/product-item/index.tsx +0 -96
  482. package/app-template/src/views/product-pointer-banner-item.tsx +0 -243
  483. package/app-template/src/views/register/index.tsx +0 -417
  484. package/app-template/src/views/root-modal.tsx +0 -21
  485. package/app-template/src/views/sales-contract-modal/index.tsx +0 -288
  486. package/app-template/src/views/share/index.tsx +0 -71
  487. package/app-template/src/views/widgets/home-hero-slider-content.tsx +0 -54
  488. package/app-template/src/views/widgets/recommendation-content.tsx +0 -86
  489. package/app-template/src/widgets/footer-copyright.tsx +0 -25
  490. package/app-template/src/widgets/footer-info.tsx +0 -78
  491. package/app-template/src/widgets/footer-menu.tsx +0 -258
  492. package/app-template/src/widgets/footer-social.tsx +0 -53
  493. package/app-template/src/widgets/footer-subscription/footer-subscription-form.tsx +0 -110
  494. package/app-template/src/widgets/footer-subscription/index.tsx +0 -30
  495. package/app-template/src/widgets/header-band-text.tsx +0 -21
  496. package/app-template/src/widgets/home-discovery.tsx +0 -191
  497. package/app-template/src/widgets/home-hero-slider.tsx +0 -36
  498. package/app-template/src/widgets/home-product-recommendation.tsx +0 -18
  499. package/app-template/src/widgets/home-single-banner.tsx +0 -87
  500. package/app-template/src/widgets/home-stories-eng.tsx +0 -112
  501. package/app-template/src/widgets/index.ts +0 -25
  502. package/app-template/src/widgets/product-pointer-banners.tsx +0 -35
  503. package/app-template/src/widgets/special-page-banner.tsx +0 -49
  504. package/app-template/src/widgets/special-page-carousel.tsx +0 -68
  505. package/app-template/src/widgets/widget-order.tsx +0 -1
  506. package/app-template/tailwind.config.js +0 -170
  507. package/app-template/tsconfig.json +0 -44
  508. package/app-template/tsconfig.test.json +0 -6
  509. package/app-template/yarn.lock +0 -11278
package/CHANGELOG.md CHANGED
@@ -1,14 +1,8 @@
1
1
  # @akinon/projectzero
2
2
 
3
- ## 1.32.0-rc.2
3
+ ## 1.32.0
4
4
 
5
- ## 1.32.0-rc.1
6
-
7
- ### Minor Changes
8
-
9
- - 495d155: ZERO-2563: The create command cli now doesnt get it from bitbucket but clones the repository from a localized clone version
10
-
11
- ## 1.32.0-rc.0
5
+ ## 1.31.1
12
6
 
13
7
  ## 1.31.0
14
8
 
@@ -2,9 +2,13 @@ import path from 'path';
2
2
  import * as fs from 'fs';
3
3
  import * as readline from 'readline';
4
4
  import { slugify } from '../utils';
5
+ import temp from 'temp';
5
6
 
7
+ const exec = require('child_process').exec;
6
8
  const loadingSpinner = require('loading-spinner');
7
9
 
10
+ temp.track();
11
+
8
12
  interface Question {
9
13
  text: string;
10
14
  optional: boolean;
@@ -16,6 +20,8 @@ interface Answers {
16
20
  [key: string]: string;
17
21
  }
18
22
 
23
+ const repositorySlug = 'pz-next';
24
+ const tempDirPath = temp.mkdirSync('pz-temp');
19
25
  const workingDir = path.resolve(process.cwd());
20
26
  const rl = readline.createInterface({
21
27
  input: process.stdin,
@@ -23,6 +29,7 @@ const rl = readline.createInterface({
23
29
  });
24
30
 
25
31
  const ANSWERS: Answers = {};
32
+
26
33
  const QUESTIONS: Array<Question> = [
27
34
  {
28
35
  text: 'Brand name',
@@ -75,36 +82,99 @@ const getAnswers = () => {
75
82
  });
76
83
  };
77
84
 
78
- const updateFileContents = (
79
- filePath: string,
80
- replacements: { [key: string]: string }
81
- ): void => {
82
- let content = fs.readFileSync(filePath, { encoding: 'utf8' });
83
- Object.entries(replacements).forEach(([key, value]) => {
84
- if (filePath.endsWith('.json')) {
85
- content = content.replace(
86
- new RegExp(`"${key}":\\s*".*?"`, 'g'),
87
- `"${key}": "${value}"`
88
- );
89
- } else {
90
- content = content.replace(
91
- new RegExp(`^${key}=.*$`, 'gm'),
92
- `${key}=${value}`
93
- );
94
- }
85
+ const cloneRepository = () =>
86
+ new Promise<{ error?: Error }>((resolve) => {
87
+ exec(
88
+ `cd ${tempDirPath} && git clone git@bitbucket.org:akinonteam/${repositorySlug}.git`,
89
+ function (err: any, stdout: any, stderr: any) {
90
+ if (err != null) {
91
+ resolve({ error: new Error(err) });
92
+ } else if (typeof stderr != 'string') {
93
+ resolve({ error: new Error(stderr) });
94
+ } else {
95
+ resolve({});
96
+ }
97
+ }
98
+ );
99
+ });
100
+
101
+ const updatePackageJson = (brandName: string) => {
102
+ const packageJsonPath = path.resolve(
103
+ tempDirPath,
104
+ `./${repositorySlug}/apps/projectzeronext/package.json`
105
+ );
106
+
107
+ const packageJsonData = fs.readFileSync(packageJsonPath, {
108
+ encoding: 'utf8',
109
+ flag: 'r'
95
110
  });
96
- fs.writeFileSync(filePath, content, { encoding: 'utf8' });
111
+
112
+ fs.writeFileSync(
113
+ packageJsonPath,
114
+ packageJsonData.replace(/"name": ".*"/, `"name": "${slugify(brandName)}"`)
115
+ );
97
116
  };
98
117
 
99
- function updatePluginsFile(projectDir: string): void {
100
- const pluginsFilePath = path.join(projectDir, 'src', 'plugins.js');
118
+ const updateAkinonJson = (brandName: string, projectDescription: string) => {
119
+ const akinonJsonPath = path.resolve(
120
+ tempDirPath,
121
+ `./${repositorySlug}/apps/projectzeronext/akinon.json`
122
+ );
101
123
 
102
- const content = 'module.exports = [];';
124
+ const akinonJsonData = fs.readFileSync(akinonJsonPath, {
125
+ encoding: 'utf8',
126
+ flag: 'r'
127
+ });
103
128
 
104
- fs.writeFileSync(pluginsFilePath, content, { encoding: 'utf8' });
105
- }
129
+ let updatedData = akinonJsonData.replace(
130
+ /"name": ".*"/,
131
+ `"name": "${brandName}"`
132
+ );
133
+
134
+ if (projectDescription) {
135
+ updatedData = updatedData.replace(
136
+ /"description": ".*"/,
137
+ `"description": "${projectDescription}"`
138
+ );
139
+ }
140
+
141
+ fs.writeFileSync(akinonJsonPath, updatedData);
142
+ };
143
+
144
+ const copyEnv = (commerceUrl: string) => {
145
+ const repositoryPath = path.resolve(tempDirPath, `./${repositorySlug}/apps/projectzeronext/`);
146
+
147
+ const envExamplePath = path.resolve(repositoryPath, `./.env.example`);
148
+ const envPath = path.resolve(repositoryPath, `./.env`);
149
+
150
+ const envData = fs.readFileSync(envExamplePath, {
151
+ encoding: 'utf8',
152
+ flag: 'r'
153
+ });
154
+
155
+ if (commerceUrl) {
156
+ fs.writeFileSync(
157
+ envExamplePath,
158
+ envData.replace(
159
+ /SERVICE_BACKEND_URL=.*/,
160
+ `SERVICE_BACKEND_URL=${commerceUrl}`
161
+ )
162
+ );
163
+ }
164
+
165
+ fs.copyFileSync(envExamplePath, envPath);
166
+ };
167
+
168
+ const updatePlugins = () => {
169
+ const pluginsPath = path.resolve(
170
+ tempDirPath,
171
+ `./${repositorySlug}/apps/projectzeronext/src/plugins.js`
172
+ );
106
173
 
107
- export default async (): Promise<void> => {
174
+ fs.writeFileSync(pluginsPath, 'module.exports = [];');
175
+ };
176
+
177
+ export default async () => {
108
178
  const minNodeVersion = 18;
109
179
  const currentNodeVersion = parseInt(
110
180
  process.version.replace('v', '').split('.')[0]
@@ -122,38 +192,37 @@ export default async (): Promise<void> => {
122
192
  }
123
193
 
124
194
  const answers = await getAnswers();
125
- const brandName =
126
- answers.brandName === '.' ? path.basename(workingDir) : answers.brandName;
127
- const projectDir = path.resolve(workingDir, slugify(brandName));
128
195
 
129
- if (!fs.existsSync(projectDir)) {
130
- fs.mkdirSync(projectDir, { recursive: true });
131
- }
196
+ const brandName =
197
+ answers.brandName === '.'
198
+ ? path.basename(process.cwd())
199
+ : answers.brandName;
132
200
 
133
- const templatesDir = path.resolve(
134
- __dirname,
135
- '../../../projectzero-cli/app-template'
136
- );
201
+ loadingSpinner.start();
137
202
 
138
- fs.cpSync(templatesDir, projectDir, { recursive: true });
203
+ await cloneRepository();
204
+ updatePackageJson(brandName);
205
+ updateAkinonJson(brandName, answers.projectDescription);
206
+ copyEnv(answers.commerceUrl);
207
+ updatePlugins();
139
208
 
140
- updatePluginsFile(projectDir);
209
+ const slugifiedBrandName = slugify(answers.brandName);
141
210
 
142
- if (answers.projectDescription) {
143
- updateFileContents(path.join(projectDir, 'akinon.json'), {
144
- description: answers.projectDescription
145
- });
146
- }
211
+ fs.rmSync(path.resolve(tempDirPath, `./${repositorySlug}/apps/projectzeronext/.git`), {
212
+ recursive: true,
213
+ force: true
214
+ });
147
215
 
148
- if (answers.commerceUrl) {
149
- updateFileContents(path.join(projectDir, '.env'), {
150
- SERVICE_BACKEND_URL: answers.commerceUrl
151
- });
152
- }
216
+ fs.cpSync(
217
+ path.resolve(tempDirPath, `./${repositorySlug}/apps/projectzeronext/`),
218
+ path.resolve(workingDir, `./${slugifiedBrandName}`),
219
+ {
220
+ recursive: true,
221
+ force: true
222
+ }
223
+ );
153
224
 
154
- updateFileContents(path.join(projectDir, 'package.json'), {
155
- name: slugify(brandName)
156
- });
225
+ temp.cleanupSync();
157
226
 
158
227
  loadingSpinner.stop();
159
228
 
@@ -39,7 +39,12 @@ const path_1 = __importDefault(require("path"));
39
39
  const fs = __importStar(require("fs"));
40
40
  const readline = __importStar(require("readline"));
41
41
  const utils_1 = require("../utils");
42
+ const temp_1 = __importDefault(require("temp"));
43
+ const exec = require('child_process').exec;
42
44
  const loadingSpinner = require('loading-spinner');
45
+ temp_1.default.track();
46
+ const repositorySlug = 'pz-next';
47
+ const tempDirPath = temp_1.default.mkdirSync('pz-temp');
43
48
  const workingDir = path_1.default.resolve(process.cwd());
44
49
  const rl = readline.createInterface({
45
50
  input: process.stdin,
@@ -92,23 +97,56 @@ const getAnswers = () => {
92
97
  });
93
98
  });
94
99
  };
95
- const updateFileContents = (filePath, replacements) => {
96
- let content = fs.readFileSync(filePath, { encoding: 'utf8' });
97
- Object.entries(replacements).forEach(([key, value]) => {
98
- if (filePath.endsWith('.json')) {
99
- content = content.replace(new RegExp(`"${key}":\\s*".*?"`, 'g'), `"${key}": "${value}"`);
100
+ const cloneRepository = () => new Promise((resolve) => {
101
+ exec(`cd ${tempDirPath} && git clone git@bitbucket.org:akinonteam/${repositorySlug}.git`, function (err, stdout, stderr) {
102
+ if (err != null) {
103
+ resolve({ error: new Error(err) });
104
+ }
105
+ else if (typeof stderr != 'string') {
106
+ resolve({ error: new Error(stderr) });
100
107
  }
101
108
  else {
102
- content = content.replace(new RegExp(`^${key}=.*$`, 'gm'), `${key}=${value}`);
109
+ resolve({});
103
110
  }
104
111
  });
105
- fs.writeFileSync(filePath, content, { encoding: 'utf8' });
112
+ });
113
+ const updatePackageJson = (brandName) => {
114
+ const packageJsonPath = path_1.default.resolve(tempDirPath, `./${repositorySlug}/apps/projectzeronext/package.json`);
115
+ const packageJsonData = fs.readFileSync(packageJsonPath, {
116
+ encoding: 'utf8',
117
+ flag: 'r'
118
+ });
119
+ fs.writeFileSync(packageJsonPath, packageJsonData.replace(/"name": ".*"/, `"name": "${(0, utils_1.slugify)(brandName)}"`));
120
+ };
121
+ const updateAkinonJson = (brandName, projectDescription) => {
122
+ const akinonJsonPath = path_1.default.resolve(tempDirPath, `./${repositorySlug}/apps/projectzeronext/akinon.json`);
123
+ const akinonJsonData = fs.readFileSync(akinonJsonPath, {
124
+ encoding: 'utf8',
125
+ flag: 'r'
126
+ });
127
+ let updatedData = akinonJsonData.replace(/"name": ".*"/, `"name": "${brandName}"`);
128
+ if (projectDescription) {
129
+ updatedData = updatedData.replace(/"description": ".*"/, `"description": "${projectDescription}"`);
130
+ }
131
+ fs.writeFileSync(akinonJsonPath, updatedData);
132
+ };
133
+ const copyEnv = (commerceUrl) => {
134
+ const repositoryPath = path_1.default.resolve(tempDirPath, `./${repositorySlug}/apps/projectzeronext/`);
135
+ const envExamplePath = path_1.default.resolve(repositoryPath, `./.env.example`);
136
+ const envPath = path_1.default.resolve(repositoryPath, `./.env`);
137
+ const envData = fs.readFileSync(envExamplePath, {
138
+ encoding: 'utf8',
139
+ flag: 'r'
140
+ });
141
+ if (commerceUrl) {
142
+ fs.writeFileSync(envExamplePath, envData.replace(/SERVICE_BACKEND_URL=.*/, `SERVICE_BACKEND_URL=${commerceUrl}`));
143
+ }
144
+ fs.copyFileSync(envExamplePath, envPath);
145
+ };
146
+ const updatePlugins = () => {
147
+ const pluginsPath = path_1.default.resolve(tempDirPath, `./${repositorySlug}/apps/projectzeronext/src/plugins.js`);
148
+ fs.writeFileSync(pluginsPath, 'module.exports = [];');
106
149
  };
107
- function updatePluginsFile(projectDir) {
108
- const pluginsFilePath = path_1.default.join(projectDir, 'src', 'plugins.js');
109
- const content = 'module.exports = [];';
110
- fs.writeFileSync(pluginsFilePath, content, { encoding: 'utf8' });
111
- }
112
150
  exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
113
151
  const minNodeVersion = 18;
114
152
  const currentNodeVersion = parseInt(process.version.replace('v', '').split('.')[0]);
@@ -117,27 +155,25 @@ exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
117
155
  process.exit(1);
118
156
  }
119
157
  const answers = yield getAnswers();
120
- const brandName = answers.brandName === '.' ? path_1.default.basename(workingDir) : answers.brandName;
121
- const projectDir = path_1.default.resolve(workingDir, (0, utils_1.slugify)(brandName));
122
- if (!fs.existsSync(projectDir)) {
123
- fs.mkdirSync(projectDir, { recursive: true });
124
- }
125
- const templatesDir = path_1.default.resolve(__dirname, '../../../projectzero-cli/app-template');
126
- fs.cpSync(templatesDir, projectDir, { recursive: true });
127
- updatePluginsFile(projectDir);
128
- if (answers.projectDescription) {
129
- updateFileContents(path_1.default.join(projectDir, 'akinon.json'), {
130
- description: answers.projectDescription
131
- });
132
- }
133
- if (answers.commerceUrl) {
134
- updateFileContents(path_1.default.join(projectDir, '.env'), {
135
- SERVICE_BACKEND_URL: answers.commerceUrl
136
- });
137
- }
138
- updateFileContents(path_1.default.join(projectDir, 'package.json'), {
139
- name: (0, utils_1.slugify)(brandName)
158
+ const brandName = answers.brandName === '.'
159
+ ? path_1.default.basename(process.cwd())
160
+ : answers.brandName;
161
+ loadingSpinner.start();
162
+ yield cloneRepository();
163
+ updatePackageJson(brandName);
164
+ updateAkinonJson(brandName, answers.projectDescription);
165
+ copyEnv(answers.commerceUrl);
166
+ updatePlugins();
167
+ const slugifiedBrandName = (0, utils_1.slugify)(answers.brandName);
168
+ fs.rmSync(path_1.default.resolve(tempDirPath, `./${repositorySlug}/apps/projectzeronext/.git`), {
169
+ recursive: true,
170
+ force: true
171
+ });
172
+ fs.cpSync(path_1.default.resolve(tempDirPath, `./${repositorySlug}/apps/projectzeronext/`), path_1.default.resolve(workingDir, `./${slugifiedBrandName}`), {
173
+ recursive: true,
174
+ force: true
140
175
  });
176
+ temp_1.default.cleanupSync();
141
177
  loadingSpinner.stop();
142
178
  console.log('\x1b[32m%s\x1b[0m', `\n ✓ ${answers.brandName} project is ready.\n`);
143
179
  console.log('\x1b[33m%s\x1b[0m', 'Project Zero - Akinon\n');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akinon/projectzero",
3
- "version": "1.32.0-rc.2",
3
+ "version": "1.32.0",
4
4
  "private": false,
5
5
  "description": "CLI tool to manage your Project Zero Next project",
6
6
  "bin": {
package/tsconfig.json CHANGED
@@ -11,7 +11,7 @@
11
11
  // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12
12
 
13
13
  /* Language and Environment */
14
- "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
14
+ "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
15
15
  // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
16
16
  // "jsx": "preserve", /* Specify what JSX code is generated. */
17
17
  // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
@@ -25,7 +25,7 @@
25
25
  // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
26
26
 
27
27
  /* Modules */
28
- "module": "commonjs" /* Specify what module code is generated. */,
28
+ "module": "commonjs", /* Specify what module code is generated. */
29
29
  // "rootDir": "./", /* Specify the root folder within your source files. */
30
30
  // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
31
31
  // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
@@ -49,7 +49,7 @@
49
49
  // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
50
50
  // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
51
51
  // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
52
- "outDir": "./dist" /* Specify an output folder for all emitted files. */,
52
+ "outDir": "./dist", /* Specify an output folder for all emitted files. */
53
53
  // "removeComments": true, /* Disable emitting comments. */
54
54
  // "noEmit": true, /* Disable emitting files from a compilation. */
55
55
  // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
@@ -71,12 +71,12 @@
71
71
  /* Interop Constraints */
72
72
  // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
73
73
  // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
74
- "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
74
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
75
75
  // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
76
- "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
76
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
77
77
 
78
78
  /* Type Checking */
79
- "strict": true /* Enable all strict type-checking options. */,
79
+ "strict": true, /* Enable all strict type-checking options. */
80
80
  // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
81
81
  // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
82
82
  // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
@@ -98,7 +98,6 @@
98
98
 
99
99
  /* Completeness */
100
100
  // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
101
- "skipLibCheck": true /* Skip type checking all .d.ts files. */
102
- },
103
- "exclude": ["app-template"]
101
+ "skipLibCheck": true /* Skip type checking all .d.ts files. */
102
+ }
104
103
  }
@@ -1,7 +0,0 @@
1
- [*]
2
- indent_style = space
3
- indent_size = 2
4
- end_of_line = lf
5
- charset = utf-8
6
- trim_trailing_whitespace = true
7
- insert_final_newline = true
@@ -1,9 +0,0 @@
1
- NEXTAUTH_SECRET=PDpBb/aSJESgBbPLHw1+jveHXqyvkC7GC1Z82jvE04s=
2
- NEXTAUTH_URL=http://localhost:3000
3
- NEXT_PUBLIC_MAP_API_KEY=YOUR_MAP_API_KEY
4
- NEXT_PUBLIC_GTM_KEY=GTM_KEY
5
- NEXT_PUBLIC_URL=http://localhost:3000
6
- SERVICE_BACKEND_URL=https://02fde10fee4440269e695aa10707dfaf.lb.akinoncloud.com
7
- # CACHE_SECRET=KhvhE1go3GDmYJ7PhZLmskqfhYNlPSm6
8
- # CACHE_HOST=default:redispw@localhost
9
- # CACHE_PORT=6379
@@ -1 +0,0 @@
1
- public
@@ -1,31 +0,0 @@
1
- module.exports = {
2
- env: {
3
- browser: true,
4
- es6: true,
5
- node: true,
6
- jest: true
7
- },
8
- extends: [
9
- 'next/core-web-vitals',
10
- 'eslint:recommended',
11
- 'plugin:@typescript-eslint/recommended',
12
- 'prettier',
13
- 'plugin:@akinon/projectzero/core', // DO NOT remove this config for stability
14
- 'plugin:@akinon/projectzero/recommended' // Optional
15
- ],
16
- plugins: ['@typescript-eslint', '@akinon/projectzero'],
17
- parser: '@typescript-eslint/parser',
18
- parserOptions: {
19
- ecmaVersion: 2021,
20
- sourceType: 'module'
21
- },
22
- settings: {
23
- next: {
24
- rootDir: ['src/*/']
25
- }
26
- },
27
- rules: {
28
- '@typescript-eslint/no-unused-vars': 'warn',
29
- '@typescript-eslint/no-explicit-any': 'warn'
30
- }
31
- };
@@ -1,18 +0,0 @@
1
- *.js text eol=lf
2
- *.jsx text eol=lf
3
- *.ts text eol=lf
4
- *.tsx text eol=lf
5
- *.json text eol=lf
6
- *.yaml text eol=lf
7
- *.yml text eol=lf
8
- *.md text eol=lf
9
- *.sh text eol=lf
10
-
11
- .eslintignore text eol=lf
12
- .eslintrc text eol=lf
13
- .gitignore text eol=lf
14
- .prettierrc text eol=lf
15
- .yarnrc text eol=lf
16
-
17
- * text=auto
18
-
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env sh
2
- . "$(dirname -- "$0")/_/husky.sh"
3
-
4
- yarn lint-staged
@@ -1,12 +0,0 @@
1
- const path = require('path');
2
-
3
- const buildEslintCommand = (filenames) =>
4
- // TODO: Add --fix flag later
5
- `next lint --file ${filenames
6
- .map((f) => path.relative(process.cwd(), f))
7
- .join(' --file ')}`;
8
-
9
- module.exports = {
10
- '**/*.(ts|tsx)': () => 'yarn tsc --noEmit',
11
- '*.{js,jsx,ts,tsx}': [buildEslintCommand]
12
- };
@@ -1,13 +0,0 @@
1
- {
2
- "bracketSameLine": false,
3
- "tabWidth": 2,
4
- "singleQuote": true,
5
- "jsxSingleQuote": false,
6
- "bracketSpacing": true,
7
- "semi": true,
8
- "useTabs": false,
9
- "arrowParens": "always",
10
- "endOfLine": "lf",
11
- "proseWrap": "never",
12
- "trailingComma": "none"
13
- }
@@ -1,49 +0,0 @@
1
- {
2
- "branches": [
3
- "main",
4
- "next13",
5
- { "name": "release", "channel": "release", "prerelease": "release" }
6
- ],
7
- "ci": false,
8
- "plugins": [
9
- [
10
- "@semantic-release/commit-analyzer",
11
- {
12
- "releaseRules": [
13
- { "type": "docs", "release": "patch" },
14
- { "type": "refactor", "release": "patch" },
15
- { "type": "style", "release": "patch" },
16
- { "type": "test", "release": "patch" },
17
- { "type": "chore", "release": "patch" },
18
- { "scope": "no-release", "release": false }
19
- ]
20
- }
21
- ],
22
- "@semantic-release/release-notes-generator",
23
- [
24
- "@semantic-release/changelog",
25
- {
26
- "changelogFile": "docs/CHANGELOG.md"
27
- }
28
- ],
29
- [
30
- "@semantic-release/npm",
31
- {
32
- "npmPublish": false
33
- }
34
- ],
35
- [
36
- "@semantic-release/git",
37
- {
38
- "assets": ["dist/**/*.{js,css,txt}", "docs", "package.json"],
39
- "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
40
- }
41
- ],
42
- [
43
- "@semantic-release/exec",
44
- {
45
- "successCmd": "if [ '${branch.name}' = 'release' ]; then python pipeline-worker.py --deploy ${nextRelease.version} \"${nextRelease.notes}\"; fi"
46
- }
47
- ]
48
- ]
49
- }
@@ -1,37 +0,0 @@
1
- {
2
- "extends": ["stylelint-config-standard", "stylelint-config-sass-guidelines"],
3
- "plugins": ["stylelint-selector-bem-pattern", "stylelint-scss"],
4
- "rules": {
5
- "selector-type-no-unknown": [
6
- true,
7
- {
8
- "ignore": "custom-elements"
9
- }
10
- ],
11
- "at-rule-no-unknown": null,
12
- "scss/at-extend-no-missing-placeholder": null,
13
- "scss/at-rule-no-unknown": null,
14
- "max-nesting-depth": [
15
- 4,
16
- {
17
- "ignore": ["pseudo-classes", "blockless-at-rules"]
18
- }
19
- ],
20
- "selector-no-qualifying-type": null,
21
- "declaration-block-trailing-semicolon": null,
22
- "no-descending-specificity": null,
23
- "selector-class-pattern": null,
24
- "plugin/selector-bem-pattern": {
25
- "componentName": "[A-Z]+",
26
- "componentSelectors": {
27
- "initial": "^\\.{componentName}(?:-[a-z]+)?$",
28
- "combined": "^\\.combined-{componentName}-[a-z]+$"
29
- },
30
- "utilitySelectors": "^\\.util-[a-z]+$"
31
- },
32
- "scss/selector-no-redundant-nesting-selector": null,
33
- "selector-max-compound-selectors": 4,
34
- "selector-list-comma-newline-after": null
35
- },
36
- "ignoreFiles": []
37
- }
@@ -1,11 +0,0 @@
1
- {
2
- "recommendations": [
3
- "dbaeumer.vscode-eslint",
4
- "editorconfig.editorconfig",
5
- "esbenp.prettier-vscode",
6
- "bradlc.vscode-tailwindcss",
7
- "syler.sass-indented",
8
- "csstools.postcss",
9
- "silvenon.mdx"
10
- ]
11
- }