create-catalyst-app 0.0.1-beta.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 (183) hide show
  1. package/package.json +20 -0
  2. package/readme.md +53 -0
  3. package/scripts/cli.mjs +267 -0
  4. package/templates/common/.babelrc +26 -0
  5. package/templates/common/.editorconfig +12 -0
  6. package/templates/common/.eslintignore +6 -0
  7. package/templates/common/.eslintrc +53 -0
  8. package/templates/common/.prettierrc.json +7 -0
  9. package/templates/common/.stylelintrc +35 -0
  10. package/templates/common/README.md +29 -0
  11. package/templates/common/api.js +29 -0
  12. package/templates/common/checkVersion.js +3 -0
  13. package/templates/common/client/index.js +39 -0
  14. package/templates/common/client/styles.js +15 -0
  15. package/templates/common/config/config.json +18 -0
  16. package/templates/common/config/config_template.json +18 -0
  17. package/templates/common/config/index.js +77 -0
  18. package/templates/common/package.json +57 -0
  19. package/templates/common/server/CustomDocument.js +14 -0
  20. package/templates/common/server/customIndex.js +3 -0
  21. package/templates/common/server/customServer.js +16 -0
  22. package/templates/common/src/js/containers/App/actions.js +20 -0
  23. package/templates/common/src/js/containers/App/index.js +46 -0
  24. package/templates/common/src/js/containers/App/reducer.js +21 -0
  25. package/templates/common/src/js/containers/Home/Home.js +40 -0
  26. package/templates/common/src/js/containers/PDP/PDP.js +37 -0
  27. package/templates/common/src/js/reducer/index.js +80 -0
  28. package/templates/common/src/js/routes/index.js +50 -0
  29. package/templates/common/src/js/stateManager/stateProvider.js +34 -0
  30. package/templates/common/src/js/store/index.js +77 -0
  31. package/templates/common/src/static/css/base/_overrides.scss +81 -0
  32. package/templates/common/src/static/css/base/animations.js +38 -0
  33. package/templates/common/src/static/css/base/index.scss +8 -0
  34. package/templates/common/src/static/css/base/layout.scss +242 -0
  35. package/templates/common/src/static/css/base/styles.scss +163 -0
  36. package/templates/common/src/static/css/base/typography.scss +285 -0
  37. package/templates/common/src/static/css/resources/_mixins.scss +196 -0
  38. package/templates/common/src/static/css/resources/_variables.scss +172 -0
  39. package/templates/common/src/static/css/resources/_vendors.scss +1 -0
  40. package/templates/common/src/static/fonts/.gitkeep +0 -0
  41. package/templates/common/src/static/fonts/Inter-Bold-Subset.otf +0 -0
  42. package/templates/common/src/static/fonts/Inter-Italic-Subset.otf +0 -0
  43. package/templates/common/src/static/fonts/Inter-Light-Subset.otf +0 -0
  44. package/templates/common/src/static/fonts/Inter-Medium-Subset.otf +0 -0
  45. package/templates/common/src/static/fonts/Inter-Regular-Subset.otf +0 -0
  46. package/templates/common/src/static/fonts/Inter-SemiBold-Subset.otf +0 -0
  47. package/templates/common/src/static/fonts/Poppins-Bold-Subset.woff2 +0 -0
  48. package/templates/common/src/static/fonts/Poppins-Italic-Subset.woff2 +0 -0
  49. package/templates/common/src/static/fonts/Poppins-Light-Subset.woff2 +0 -0
  50. package/templates/common/src/static/fonts/Poppins-Medium-Subset.woff2 +0 -0
  51. package/templates/common/src/static/fonts/Poppins-Regular-Subset.woff2 +0 -0
  52. package/templates/common/src/static/fonts/Poppins-SemiBold-Subset.woff2 +0 -0
  53. package/templates/none-js/.babelrc +26 -0
  54. package/templates/none-js/.eslintignore +6 -0
  55. package/templates/none-js/.eslintrc +53 -0
  56. package/templates/none-js/.prettierrc.json +7 -0
  57. package/templates/none-js/.stylelintrc +35 -0
  58. package/templates/none-js/README.md +22 -0
  59. package/templates/none-js/api.js +29 -0
  60. package/templates/none-js/checkVersion.js +3 -0
  61. package/templates/none-js/client/index.js +27 -0
  62. package/templates/none-js/client/styles.js +15 -0
  63. package/templates/none-js/config/config.json +15 -0
  64. package/templates/none-js/config/config_template.json +18 -0
  65. package/templates/none-js/config/index.js +44 -0
  66. package/templates/none-js/package.json +53 -0
  67. package/templates/none-js/server/document.js +14 -0
  68. package/templates/none-js/server/index.js +3 -0
  69. package/templates/none-js/server/server.js +16 -0
  70. package/templates/none-js/src/js/containers/App/index.js +40 -0
  71. package/templates/none-js/src/js/containers/DemoPage/DemoPage.js +39 -0
  72. package/templates/none-js/src/js/containers/DemoPage/DemoPage.scss +3 -0
  73. package/templates/none-js/src/js/containers/Home/Home.js +27 -0
  74. package/templates/none-js/src/js/containers/Home/Home.scss +36 -0
  75. package/templates/none-js/src/js/routes/index.js +49 -0
  76. package/templates/none-js/src/js/stateManager/stateProvider.js +19 -0
  77. package/templates/none-js/src/js/store/index.js +6 -0
  78. package/templates/none-js/src/static/css/base/index.scss +3 -0
  79. package/templates/none-js/src/static/css/base/styles.scss +11 -0
  80. package/templates/none-js/src/static/css/base/typography.scss +53 -0
  81. package/templates/none-js/src/static/css/resources/_variables.scss +1 -0
  82. package/templates/none-js/src/static/fonts/.gitkeep +0 -0
  83. package/templates/none-js/src/static/fonts/Inter-Bold-Subset.otf +0 -0
  84. package/templates/none-js/src/static/fonts/Inter-Italic-Subset.otf +0 -0
  85. package/templates/none-js/src/static/fonts/Inter-Light-Subset.otf +0 -0
  86. package/templates/none-js/src/static/fonts/Inter-Medium-Subset.otf +0 -0
  87. package/templates/none-js/src/static/fonts/Inter-Regular-Subset.otf +0 -0
  88. package/templates/none-js/src/static/fonts/Inter-SemiBold-Subset.otf +0 -0
  89. package/templates/none-js/src/static/fonts/Poppins-Bold-Subset.woff2 +0 -0
  90. package/templates/none-js/src/static/fonts/Poppins-Italic-Subset.woff2 +0 -0
  91. package/templates/none-js/src/static/fonts/Poppins-Medium-Subset.woff2 +0 -0
  92. package/templates/none-js/src/static/fonts/Poppins-Regular-Subset.woff2 +0 -0
  93. package/templates/none-js/src/static/fonts/Poppins-SemiBold-Subset.woff2 +0 -0
  94. package/templates/none-js/webpackConfig.js +5 -0
  95. package/templates/redux-js/.babelrc +26 -0
  96. package/templates/redux-js/.eslintignore +6 -0
  97. package/templates/redux-js/.eslintrc +53 -0
  98. package/templates/redux-js/.prettierrc.json +7 -0
  99. package/templates/redux-js/.stylelintrc +35 -0
  100. package/templates/redux-js/README.md +22 -0
  101. package/templates/redux-js/api.js +29 -0
  102. package/templates/redux-js/checkVersion.js +3 -0
  103. package/templates/redux-js/client/index.js +27 -0
  104. package/templates/redux-js/client/styles.js +15 -0
  105. package/templates/redux-js/config/config.json +15 -0
  106. package/templates/redux-js/config/config_template.json +18 -0
  107. package/templates/redux-js/config/index.js +44 -0
  108. package/templates/redux-js/package.json +53 -0
  109. package/templates/redux-js/server/document.js +14 -0
  110. package/templates/redux-js/server/index.js +3 -0
  111. package/templates/redux-js/server/server.js +16 -0
  112. package/templates/redux-js/src/js/containers/App/actions.js +20 -0
  113. package/templates/redux-js/src/js/containers/App/index.js +42 -0
  114. package/templates/redux-js/src/js/containers/App/reducer.js +21 -0
  115. package/templates/redux-js/src/js/containers/DemoPage/DemoPage.js +39 -0
  116. package/templates/redux-js/src/js/containers/DemoPage/DemoPage.scss +3 -0
  117. package/templates/redux-js/src/js/containers/Home/Home.js +27 -0
  118. package/templates/redux-js/src/js/containers/Home/Home.scss +36 -0
  119. package/templates/redux-js/src/js/reducer/index.js +80 -0
  120. package/templates/redux-js/src/js/routes/index.js +49 -0
  121. package/templates/redux-js/src/js/stateManager/stateProvider.js +34 -0
  122. package/templates/redux-js/src/js/store/index.js +79 -0
  123. package/templates/redux-js/src/static/css/base/index.scss +3 -0
  124. package/templates/redux-js/src/static/css/base/styles.scss +11 -0
  125. package/templates/redux-js/src/static/css/base/typography.scss +53 -0
  126. package/templates/redux-js/src/static/css/resources/_variables.scss +1 -0
  127. package/templates/redux-js/src/static/fonts/.gitkeep +0 -0
  128. package/templates/redux-js/src/static/fonts/Inter-Bold-Subset.otf +0 -0
  129. package/templates/redux-js/src/static/fonts/Inter-Italic-Subset.otf +0 -0
  130. package/templates/redux-js/src/static/fonts/Inter-Light-Subset.otf +0 -0
  131. package/templates/redux-js/src/static/fonts/Inter-Medium-Subset.otf +0 -0
  132. package/templates/redux-js/src/static/fonts/Inter-Regular-Subset.otf +0 -0
  133. package/templates/redux-js/src/static/fonts/Inter-SemiBold-Subset.otf +0 -0
  134. package/templates/redux-js/src/static/fonts/Poppins-Bold-Subset.woff2 +0 -0
  135. package/templates/redux-js/src/static/fonts/Poppins-Italic-Subset.woff2 +0 -0
  136. package/templates/redux-js/src/static/fonts/Poppins-Medium-Subset.woff2 +0 -0
  137. package/templates/redux-js/src/static/fonts/Poppins-Regular-Subset.woff2 +0 -0
  138. package/templates/redux-js/src/static/fonts/Poppins-SemiBold-Subset.woff2 +0 -0
  139. package/templates/redux-js/webpackConfig.js +5 -0
  140. package/templates/rtk-js/.babelrc +26 -0
  141. package/templates/rtk-js/.eslintignore +6 -0
  142. package/templates/rtk-js/.eslintrc +53 -0
  143. package/templates/rtk-js/.prettierrc.json +7 -0
  144. package/templates/rtk-js/.stylelintrc +35 -0
  145. package/templates/rtk-js/README.md +23 -0
  146. package/templates/rtk-js/api.js +29 -0
  147. package/templates/rtk-js/checkVersion.js +3 -0
  148. package/templates/rtk-js/client/index.js +27 -0
  149. package/templates/rtk-js/client/styles.js +15 -0
  150. package/templates/rtk-js/config/config.json +15 -0
  151. package/templates/rtk-js/config/config_template.json +18 -0
  152. package/templates/rtk-js/config/index.js +44 -0
  153. package/templates/rtk-js/package.json +53 -0
  154. package/templates/rtk-js/server/document.js +14 -0
  155. package/templates/rtk-js/server/index.js +3 -0
  156. package/templates/rtk-js/server/server.js +16 -0
  157. package/templates/rtk-js/src/js/containers/App/index.js +42 -0
  158. package/templates/rtk-js/src/js/containers/App/reducer.js +26 -0
  159. package/templates/rtk-js/src/js/containers/DemoPage/DemoPage.js +39 -0
  160. package/templates/rtk-js/src/js/containers/DemoPage/DemoPage.scss +3 -0
  161. package/templates/rtk-js/src/js/containers/Home/Home.js +27 -0
  162. package/templates/rtk-js/src/js/containers/Home/Home.scss +36 -0
  163. package/templates/rtk-js/src/js/reducer/index.js +80 -0
  164. package/templates/rtk-js/src/js/routes/index.js +49 -0
  165. package/templates/rtk-js/src/js/stateManager/stateProvider.js +34 -0
  166. package/templates/rtk-js/src/js/store/index.js +22 -0
  167. package/templates/rtk-js/src/static/css/base/index.scss +3 -0
  168. package/templates/rtk-js/src/static/css/base/styles.scss +11 -0
  169. package/templates/rtk-js/src/static/css/base/typography.scss +53 -0
  170. package/templates/rtk-js/src/static/css/resources/_variables.scss +1 -0
  171. package/templates/rtk-js/src/static/fonts/.gitkeep +0 -0
  172. package/templates/rtk-js/src/static/fonts/Inter-Bold-Subset.otf +0 -0
  173. package/templates/rtk-js/src/static/fonts/Inter-Italic-Subset.otf +0 -0
  174. package/templates/rtk-js/src/static/fonts/Inter-Light-Subset.otf +0 -0
  175. package/templates/rtk-js/src/static/fonts/Inter-Medium-Subset.otf +0 -0
  176. package/templates/rtk-js/src/static/fonts/Inter-Regular-Subset.otf +0 -0
  177. package/templates/rtk-js/src/static/fonts/Inter-SemiBold-Subset.otf +0 -0
  178. package/templates/rtk-js/src/static/fonts/Poppins-Bold-Subset.woff2 +0 -0
  179. package/templates/rtk-js/src/static/fonts/Poppins-Italic-Subset.woff2 +0 -0
  180. package/templates/rtk-js/src/static/fonts/Poppins-Medium-Subset.woff2 +0 -0
  181. package/templates/rtk-js/src/static/fonts/Poppins-Regular-Subset.woff2 +0 -0
  182. package/templates/rtk-js/src/static/fonts/Poppins-SemiBold-Subset.woff2 +0 -0
  183. package/templates/rtk-js/webpackConfig.js +5 -0
@@ -0,0 +1,36 @@
1
+ body {
2
+ margin: 0;
3
+ }
4
+
5
+ .app {
6
+ text-align: center;
7
+ margin: 0;
8
+ }
9
+
10
+ .appLogo {
11
+ height: 40vmin;
12
+ pointer-events: none;
13
+ }
14
+
15
+ @media (prefers-reduced-motion: no-preference) {
16
+ .appLogo {
17
+ animation: App-logo-spin infinite 20s linear;
18
+ }
19
+ }
20
+
21
+ .appHeader {
22
+ background-color: #282c34;
23
+ min-height: 100vh;
24
+ display: flex;
25
+ flex-direction: column;
26
+ align-items: center;
27
+ justify-content: center;
28
+ font-size: calc(10px + 2vmin);
29
+ color: white;
30
+ }
31
+
32
+ .appLink {
33
+ color: #61dafb;
34
+ }
35
+
36
+
@@ -0,0 +1,80 @@
1
+ import { combineReducers } from "redux"
2
+ // Import your reducers here
3
+
4
+ import shellReducer from "@containers/App/reducer"
5
+
6
+ /**
7
+ * @description A 'Reducer Manager' object, which keeps track of all the registered reducers and exposes a reduce() function. For detailed info :- https://redux.js.org/usage/code-splitting#using-a-reducer-manager
8
+ */
9
+
10
+ function createReducerManager() {
11
+ // FRAMEWORK COMMENT THIS SHOULD BE EXPOSED TO USER
12
+ // Create an object which maps keys to reducers
13
+ const reducers = {
14
+ shellReducer,
15
+ }
16
+
17
+ // Create the initial combinedReducer
18
+ let reducerObj = combineReducers(reducers)
19
+
20
+ // An array which is used to delete state keys when reducers are removed
21
+ let keysToRemove = []
22
+
23
+ return {
24
+ getReducerMap: () => combineReducers(reducers),
25
+ // The root reducer function exposed by this object
26
+
27
+ // This will be passed to the store
28
+ reduce: (state, action) => {
29
+ // If any reducers have been removed, clean up their state first
30
+ if (keysToRemove.length > 0) {
31
+ state = { ...state }
32
+ for (let key of keysToRemove) {
33
+ delete state[key]
34
+ }
35
+ keysToRemove = []
36
+ }
37
+
38
+ // Delegate to the combined reducer
39
+ return reducerObj(state, action)
40
+ },
41
+
42
+ // Adds a new reducer with the specified key
43
+ add: (reducer) => {
44
+ for (let key in reducer) {
45
+ if (!key) {
46
+ return
47
+ }
48
+
49
+ // We will skip a step if the reducer is already present
50
+ if (reducers[key]) {
51
+ continue
52
+ }
53
+
54
+ // Add the reducer to the reducer mapping
55
+ reducers[key] = reducer[key]
56
+ }
57
+
58
+ // Generate a new combined reducer
59
+ return combineReducers(reducers)
60
+ },
61
+
62
+ // Removes a reducer with the specified key
63
+ remove: (key) => {
64
+ if (!key || !reducers[key]) {
65
+ return
66
+ }
67
+
68
+ // Remove it from the reducer mapping
69
+ delete reducers[key]
70
+
71
+ // Add the key to the list of keys to clean up
72
+ keysToRemove.push(key)
73
+
74
+ // Generate a new combined reducer
75
+ return combineReducers(reducers)
76
+ },
77
+ }
78
+ }
79
+
80
+ export default createReducerManager
@@ -0,0 +1,49 @@
1
+ import React from "react";
2
+ import { RouterDataProvider, MetaTag } from "@tata1mg/router";
3
+ import Home from "@containers/Home/Home";
4
+ import App from "@containers/App";
5
+ import Demo from "@containers/DemoPage/DemoPage"
6
+
7
+ const routes = [
8
+ {
9
+ path: "/",
10
+ end: true,
11
+ component: Home,
12
+ },
13
+ {
14
+ path:"/demo",
15
+ end:true,
16
+ component: Demo
17
+ }
18
+ ];
19
+ const getRoutes = () => {
20
+ return routes;
21
+ };
22
+
23
+ /**
24
+ * Making the routes array compatible with the format accepted by createBrowserRouter
25
+ * API on the client side
26
+ */
27
+ export const preparedRoutes = ({store,routerInitialState}) => {
28
+
29
+ return ([
30
+ {
31
+ element: (
32
+ <RouterDataProvider config={{}} initialState={routerInitialState} fetcherArgs={{store}} >
33
+ <MetaTag/>
34
+ <App />
35
+ </RouterDataProvider>
36
+ ),
37
+ children: getRoutes()?.map((route, index) => {
38
+ const Component = route.component;
39
+ // const pageType = route.staticPageType ? route.staticPageType : null
40
+ return {
41
+ ...route,
42
+ element: <Component key={index} />,
43
+ };
44
+ }),
45
+ },
46
+ ])
47
+ }
48
+
49
+ export default getRoutes;
@@ -0,0 +1,34 @@
1
+ import React from "react";
2
+ import { Provider } from "react-redux";
3
+ import configureStore from "../store";
4
+
5
+ const ClientProvider = ({ children }) => {
6
+ const { __INITIAL_STATE__ } = window;
7
+
8
+ let store = configureStore(__INITIAL_STATE__);
9
+ return (
10
+ <Provider store={store} serverState={__INITIAL_STATE__}>
11
+ {children}
12
+ </Provider>
13
+ );
14
+ };
15
+
16
+ const ServerProvider = ({ store, children }) => {
17
+ return <Provider store={store}>{children}</Provider>; //on server
18
+ };
19
+
20
+
21
+ const serverStore = (initialState,req) => {
22
+ // will create a new store on server and this store would be available in server provider
23
+ return configureStore(initialState, req);
24
+ };
25
+
26
+ const hydrateClient = (serverStore) => {
27
+ const state = serverStore.getState();
28
+
29
+ return <script>{`window.__INITIAL_STATE__ = ${state} `}</script>;
30
+ };
31
+
32
+ // will be calling hydrate client in the template wrapper
33
+
34
+ export { ClientProvider, ServerProvider, hydrateClient, serverStore };
@@ -0,0 +1,22 @@
1
+ import { configureStore as createStore } from "@reduxjs/toolkit"
2
+ import {combineReducers} from "redux"
3
+ import {shellReducer} from "@containers/App/reducer.js"
4
+ import fetchInstance from "../../../api"
5
+
6
+ const configureStore = (initialState,request) => {
7
+ const api = fetchInstance
8
+ const store = createStore({
9
+ reducer: combineReducers({shellReducer}),
10
+ middleware: (getDefaultMiddleware) =>
11
+ getDefaultMiddleware({
12
+ thunk: {
13
+ extraArgument: { api },
14
+ },
15
+ }),
16
+ preloadedState: initialState,
17
+ })
18
+ return store
19
+ }
20
+
21
+
22
+ export default configureStore
@@ -0,0 +1,3 @@
1
+
2
+ @import "styles";
3
+ @import "../resources/variables";
@@ -0,0 +1,11 @@
1
+ html {
2
+ box-sizing: border-box;
3
+ }
4
+
5
+ html,
6
+ body {
7
+ height: 100%;
8
+ font-family: Inter, Poppins, Avenir, "Century Gothic", Arial, sans-serif;
9
+ -webkit-tap-highlight-color: transparent;
10
+ margin: 0;
11
+ }
@@ -0,0 +1,53 @@
1
+ @font-face {
2
+ font-family: Inter;
3
+ font-style: normal;
4
+ font-weight: 300;
5
+ font-display: block;
6
+ src: local("Inter Light"), local("Inter-Light"), url($font_url + "Inter-Light-Subset.otf");
7
+ unicode-range: U+0020-007F, U+201C, U+201D, U+00A;
8
+ }
9
+
10
+ @font-face {
11
+ font-family: Inter;
12
+ font-style: normal;
13
+ font-weight: 400;
14
+ font-display: block;
15
+ src: local("Inter Regular"), local("Inter-Regular"), url($font_url + "Inter-Regular-Subset.otf");
16
+ unicode-range: U+0020-007F, U+201C, U+201D, U+00A;
17
+ }
18
+
19
+ @font-face {
20
+ font-family: Inter;
21
+ font-style: italic;
22
+ font-weight: 400;
23
+ font-display: block;
24
+ src: local("Inter Italic"), local("Inter-Italic"), url($font_url + "Inter-Italic-Subset.otf");
25
+ unicode-range: U+0020-007F, U+201C, U+201D, U+00A;
26
+ }
27
+
28
+ @font-face {
29
+ font-family: Inter;
30
+ font-style: normal;
31
+ font-weight: 500;
32
+ font-display: block;
33
+ src: local("Inter Medium"), local("Inter-Medium"), url($font_url + "Inter-Medium-Subset.otf");
34
+ unicode-range: U+0020-007F, U+201C, U+201D, U+00A;
35
+ }
36
+
37
+ @font-face {
38
+ font-family: Inter;
39
+ font-style: normal;
40
+ font-weight: 600;
41
+ font-display: block;
42
+ src: local("Inter SemiBold"), local("Inter-SemiBold"), url($font_url + "Inter-SemiBold-Subset.otf");
43
+ unicode-range: U+0020-007F, U+201C, U+201D, U+00A;
44
+ }
45
+
46
+ @font-face {
47
+ font-family: Inter;
48
+ font-style: normal;
49
+ font-weight: 700;
50
+ font-display: block;
51
+ src: local("Inter Bold"), local("Inter-Bold"), url($font_url + "Inter-Bold-Subset.otf");
52
+ unicode-range: U+0020-007F, U+201C, U+201D, U+00A;
53
+ }
@@ -0,0 +1 @@
1
+ $sample-css-variable: #ff6f61;
File without changes
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ developmentPlugins: [],
3
+ ssrPrugins: [],
4
+ clientPlugins: [],
5
+ }