@ikas/storefront-cmd 4.0.0-alpha.50 → 4.0.0-alpha.51

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 (46) hide show
  1. package/build/_virtual/_cloneBuffer.js +1 -0
  2. package/build/_virtual/_commonjsHelpers.js +1 -0
  3. package/build/_virtual/_nodeUtil.js +1 -0
  4. package/build/_virtual/isBuffer.js +1 -0
  5. package/{src/index.ts → build/index.d.ts} +3 -4
  6. package/build/index.js +1 -0
  7. package/build/scripts/generators/api/index.d.ts +5 -0
  8. package/build/scripts/generators/api/index.js +1 -0
  9. package/build/scripts/generators/api/info.d.ts +12 -0
  10. package/build/scripts/generators/api/info.js +1 -0
  11. package/build/scripts/generators/components/index.d.ts +11 -0
  12. package/build/scripts/generators/components/index.js +1 -0
  13. package/build/scripts/generators/config/content.d.ts +58 -0
  14. package/build/scripts/generators/config/content.js +1 -0
  15. package/build/scripts/generators/config/index.d.ts +9 -0
  16. package/build/scripts/generators/config/index.js +1 -0
  17. package/{src/scripts/generators/index.ts → build/scripts/generators/index.d.ts} +6 -6
  18. package/build/scripts/generators/pages/index.d.ts +7 -0
  19. package/build/scripts/generators/pages/index.js +1 -0
  20. package/build/scripts/generators/pages/info.d.ts +14 -0
  21. package/build/scripts/generators/pages/info.js +1 -0
  22. package/build/scripts/generators/theme/index.d.ts +6 -0
  23. package/build/scripts/generators/theme/index.js +1 -0
  24. package/build/scripts/generators/types/index.d.ts +19 -0
  25. package/build/scripts/generators/types/index.js +1 -0
  26. package/build/scripts/ikas.d.ts +1 -0
  27. package/build/scripts/theme-build/index.d.ts +3 -0
  28. package/build/scripts/theme-build/index.js +1 -0
  29. package/build/utils/fs.d.ts +28 -0
  30. package/build/utils/fs.js +1 -0
  31. package/build/utils/helper.d.ts +2 -0
  32. package/build/utils/helper.js +1 -0
  33. package/package.json +6 -6
  34. package/src/scripts/generators/api/index.ts +0 -27
  35. package/src/scripts/generators/api/info.ts +0 -47
  36. package/src/scripts/generators/components/index.ts +0 -270
  37. package/src/scripts/generators/config/content.ts +0 -170
  38. package/src/scripts/generators/config/index.ts +0 -113
  39. package/src/scripts/generators/pages/index.ts +0 -102
  40. package/src/scripts/generators/pages/info.ts +0 -161
  41. package/src/scripts/generators/theme/index.ts +0 -63
  42. package/src/scripts/generators/types/index.ts +0 -526
  43. package/src/scripts/ikas.ts +0 -45
  44. package/src/scripts/theme-build/index.ts +0 -99
  45. package/src/utils/fs.ts +0 -93
  46. package/src/utils/helper.ts +0 -20
@@ -0,0 +1 @@
1
+ var r={exports:{}};export{r as _};
@@ -0,0 +1 @@
1
+ var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};export{e as commonjsGlobal};
@@ -0,0 +1 @@
1
+ var r={exports:{}};export{r as _};
@@ -0,0 +1 @@
1
+ var r={exports:{}};export{r as i};
@@ -1,4 +1,3 @@
1
- export * from "./scripts/generators";
2
-
3
- import * as ThemeBuild from "./scripts/theme-build";
4
- export { ThemeBuild };
1
+ export * from "./scripts/generators";
2
+ import * as ThemeBuild from "./scripts/theme-build";
3
+ export { ThemeBuild };
package/build/index.js ADDED
@@ -0,0 +1 @@
1
+ export{APIGenerator}from"./scripts/generators/api/index.js";export{ComponentImportsGenerator}from"./scripts/generators/components/index.js";export{ConfigGenerator}from"./scripts/generators/config/index.js";export{PageGenerator}from"./scripts/generators/pages/index.js";export{ThemeJsonGenerator}from"./scripts/generators/theme/index.js";export{CustomDataTypesGenerator,PropTypeGenarator}from"./scripts/generators/types/index.js";import*as e from"./scripts/theme-build/index.js";export{e as ThemeBuild};
@@ -0,0 +1,5 @@
1
+ import { APIInfo } from "./info";
2
+ export declare class APIGenerator {
3
+ static generate(): Promise<boolean>;
4
+ static generateAPI(apiInfo: APIInfo): Promise<boolean>;
5
+ }
@@ -0,0 +1 @@
1
+ import{__awaiter as e,__generator as r}from"../../../node_modules/tslib/tslib.es6.js";import t from"path";import{createFile as n,deleteDirContent as s}from"../../../utils/fs.js";import{API_INFO as o}from"./info.js";var i=function(){function i(){}return i.generate=function(){return e(this,void 0,void 0,(function(){var e,n,a,c,u,l;return r(this,(function(r){switch(r.label){case 0:return e=t.join(process.cwd(),"src","pages","api"),[4,s(e)];case 1:r.sent(),n=!0,a=0,c=o,r.label=2;case 2:return a<c.length?(u=c[a],(l=n)?[4,i.generateAPI(u)]:[3,4]):[3,6];case 3:l=r.sent(),r.label=4;case 4:n=l,r.label=5;case 5:return a++,[3,2];case 6:return[2,n]}}))}))},i.generateAPI=function(e){return n(t.join(process.cwd(),"src","pages","api"),e.fileName,e.content)},i}();export{i as APIGenerator};
@@ -0,0 +1,12 @@
1
+ export declare const GET_COMPONENT_DIRS_API_CONTENT = "import { IkasLocalThemeAPI } from \"@ikas/storefront-next\";\n\nexport default IkasLocalThemeAPI.GetComponentDirs.getComponentDirs;\nexport const config = IkasLocalThemeAPI.GetComponentDirs.config;\n";
2
+ export declare const GET_THEME_API_CONTENT = "import { IkasLocalThemeAPI } from \"@ikas/storefront-next\";\n\nexport default IkasLocalThemeAPI.GetTheme.getTheme;\nexport const config = IkasLocalThemeAPI.GetTheme.config;\n";
3
+ export declare const UPDATE_THEME_API_CONTENT = "import { IkasLocalThemeAPI } from \"@ikas/storefront-next\";\n\nexport default IkasLocalThemeAPI.UpdateTheme.updateTheme;\nexport const config = IkasLocalThemeAPI.UpdateTheme.config;\n";
4
+ export declare const UPLOAD_THEME_API_CONTENT = "import { IkasLocalThemeAPI } from \"@ikas/storefront-next\";\n\nexport default IkasLocalThemeAPI.UploadTheme.uploadTheme;\nexport const config = IkasLocalThemeAPI.UploadTheme.config;\n";
5
+ export declare const API_INFO: {
6
+ content: string;
7
+ fileName: string;
8
+ }[];
9
+ export declare type APIInfo = {
10
+ content: string;
11
+ fileName: string;
12
+ };
@@ -0,0 +1 @@
1
+ var e='import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.GetComponentDirs.getComponentDirs;\nexport const config = IkasLocalThemeAPI.GetComponentDirs.config;\n',o='import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.GetTheme.getTheme;\nexport const config = IkasLocalThemeAPI.GetTheme.config;\n',t='import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.UpdateTheme.updateTheme;\nexport const config = IkasLocalThemeAPI.UpdateTheme.config;\n',n='import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.UploadTheme.uploadTheme;\nexport const config = IkasLocalThemeAPI.UploadTheme.config;\n',a=[{content:e,fileName:"getComponentDirs.ts"},{content:o,fileName:"getTheme.ts"},{content:t,fileName:"updateTheme.ts"},{content:n,fileName:"uploadTheme.ts"}];export{a as API_INFO,e as GET_COMPONENT_DIRS_API_CONTENT,o as GET_THEME_API_CONTENT,t as UPDATE_THEME_API_CONTENT,n as UPLOAD_THEME_API_CONTENT};
@@ -0,0 +1,11 @@
1
+ import { IkasThemeJson, IkasThemeJsonComponent, IkasThemeJsonPageType } from "@ikas/storefront-models";
2
+ import { PageInfo } from "../pages/info";
3
+ export declare class ComponentImportsGenerator {
4
+ static generate(themeJson: IkasThemeJson, workingDir?: string): Promise<boolean>;
5
+ static generateAllPageComponentImportsFiles(themeJson: IkasThemeJson, workingDir?: string): Promise<boolean>;
6
+ static generatePageComponentImportsFileWithInfo(pageInfo: PageInfo, themeJson: IkasThemeJson, workingDir?: string): Promise<boolean>;
7
+ static generatePageComponentImportsFileWithType(pageType: IkasThemeJsonPageType, themeJson: IkasThemeJson, workingDir?: string): false | Promise<boolean> | undefined;
8
+ static generateComponentImportsFile(components: IkasThemeJsonComponent[], pageInfo: PageInfo, workingDir?: string): false | Promise<boolean>;
9
+ static generateAllComponentImportsFileForEditor(themeJson: IkasThemeJson, workingDir?: string): Promise<boolean>;
10
+ static generateAllComponentImportsFile(themeJson: IkasThemeJson, workingDir?: string): Promise<boolean>;
11
+ }
@@ -0,0 +1 @@
1
+ import{__awaiter as n,__generator as t}from"../../../node_modules/tslib/tslib.es6.js";import e from"path";import{createFile as o,deleteDirContent as r}from"../../../utils/fs.js";import{IkasThemeJsonPageType as c}from"@ikas/storefront-models";import{PAGE_INFO as i,CHECKOUT_COMPONENT_ID as s}from"../pages/info.js";import{findAllByKey as a}from"../../../utils/helper.js";var u=function(){function u(){}return u.generate=function(o,c){return n(this,void 0,void 0,(function(){var n;return t(this,(function(t){switch(t.label){case 0:return[4,r(e.join(c||process.cwd(),"src","components","__generated__"))];case 1:return t.sent(),[4,u.generateAllPageComponentImportsFiles(o,c)];case 2:return(n=t.sent())?[4,u.generateAllComponentImportsFileForEditor(o,c)]:[3,4];case 3:n=t.sent(),t.label=4;case 4:return[2,n]}}))}))},u.generateAllPageComponentImportsFiles=function(e,o){return n(this,void 0,void 0,(function(){var n,r,c,s,a;return t(this,(function(t){switch(t.label){case 0:n=!0,r=0,c=i,t.label=1;case 1:return r<c.length?(s=c[r],(a=n)?[4,u.generatePageComponentImportsFileWithInfo(s,e,o)]:[3,3]):[3,5];case 2:a=t.sent(),t.label=3;case 3:n=a,t.label=4;case 4:return r++,[3,1];case 5:return[2,n]}}))}))},u.generatePageComponentImportsFileWithInfo=function(e,o,r){return n(this,void 0,void 0,(function(){var n,c,i,p;return t(this,(function(t){switch(t.label){case 0:if(e.isCheckout||e.isEditor)return[2,!0];t.label=1;case 1:return t.trys.push([1,3,,4]),n=o.components,c=[],e.pageTypes.forEach((function(t){var e=o.pages.filter((function(n){return n.type===t}));e.length&&e.forEach((function(t){var e,o=t.components;(null===(e=t.specifications)||void 0===e?void 0:e.length)&&t.specifications.forEach((function(n){o.push.apply(o,n.components)})),c.push.apply(c,o.map((function(n){return n.componentId}))),o.forEach((function(t){if(n.find((function(n){return n.id===t.componentId}))){var e=a(t.propValues,"componentId");c.push.apply(c,e)}}))}))})),i=n.filter((function(n){return c.includes(n.id)&&n.id!==s})),[4,u.generateComponentImportsFile(i,e,r)];case 2:return[2,t.sent()];case 3:return p=t.sent(),console.error(p),[2,!1];case 4:return[2]}}))}))},u.generatePageComponentImportsFileWithType=function(n,t,e){if(n!==c.CHECKOUT){try{var o=i.find((function(t){return t.pageTypes.includes(n)}));if(o)return u.generatePageComponentImportsFileWithInfo(o,t,e)}catch(n){console.error(n)}return!1}},u.generateComponentImportsFile=function(n,t,r){try{var c="";return n.filter((function(n){return"checkout"!==n.id})).forEach((function(n,t){c+="import Component".concat(t,' from "src/components/').concat(n.dir,'";\r\n')})),c+="\n const Components = {\n ".concat(n.map((function(n,t){return'"'.concat(n.id,'": Component').concat(t)})),"\n };\n "),c+="\r\n",c+="export default Components;",o(e.join(r||process.cwd(),"src","components","__generated__","pages"),t.path.replace("tsx","ts"),c)}catch(n){return console.error(n),!1}},u.generateAllComponentImportsFileForEditor=function(r,c){return n(this,void 0,void 0,(function(){var n,i,s,a;return t(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),n='import dynamic from "next/dynamic";\r\n',n+='import { IkasEditorComponentLoader } from "@ikas/storefront";\r\n',n+="\r\n",n+="\r\n",(i=r.components.filter((function(n){return"checkout"!==n.id}))).filter((function(n){return"checkout"!==n.id})).forEach((function(t,e){n+="const Component".concat(e,' = dynamic(() => import("../').concat(t.dir,'"), { loading: () => <IkasEditorComponentLoader /> });\r\n')})),n+="\r\n",n+="\nconst Components = {\n ".concat(i.map((function(n,t){return'"'.concat(n.id,'": Component').concat(t)})),"\n};\n"),n+="\r\n",n+="export default Components;",s=e.join(c||process.cwd(),"src","components","__generated__"),[4,o(s,"editor.tsx",n)];case 1:return[2,t.sent()];case 2:return a=t.sent(),console.error(a),[2,!1];case 3:return[2]}}))}))},u.generateAllComponentImportsFile=function(r,c){return n(this,void 0,void 0,(function(){var n,i,s,a;return t(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),n="",(i=r.components.filter((function(n){return"checkout"!==n.id}))).filter((function(n){return"checkout"!==n.id})).forEach((function(t,e){n+="import Component".concat(e,' from "../').concat(t.dir,'";\r\n')})),n+="\r\n",n+="\nconst Components = {\n ".concat(i.map((function(n,t){return'"'.concat(n.id,'": Component').concat(t)})),"\n};\n"),n+="\r\n",n+="export default Components;",s=e.join(c||process.cwd(),"src","components","__generated__"),[4,o(s,"index.tsx",n)];case 1:return[2,t.sent()];case 2:return a=t.sent(),console.error(a),[2,!1];case 3:return[2]}}))}))},u}();export{u as ComponentImportsGenerator};
@@ -0,0 +1,58 @@
1
+ export declare const DEPENDENCIES: {
2
+ next: string;
3
+ react: string;
4
+ "react-dom": string;
5
+ mobx: string;
6
+ axios: string;
7
+ lodash: string;
8
+ archiver: string;
9
+ cors: string;
10
+ "html-react-parser": string;
11
+ "mobx-react-lite": string;
12
+ "next-transpile-modules": string;
13
+ "@ikas/storefront": string;
14
+ "@ikas/storefront-api": string;
15
+ "@ikas/storefront-assets": string;
16
+ "@ikas/storefront-cmd": string;
17
+ "@ikas/storefront-config": string;
18
+ "@ikas/storefront-model-functions": string;
19
+ "@ikas/storefront-models": string;
20
+ "@ikas/storefront-next": string;
21
+ "@ikas/storefront-providers": string;
22
+ };
23
+ export declare const DEV_DEPENDENCIES: {
24
+ "@types/node": string;
25
+ "@types/react": string;
26
+ "@types/react-dom": string;
27
+ "@types/cors": string;
28
+ "@types/archiver": string;
29
+ "@typescript-eslint/eslint-plugin": string;
30
+ "@typescript-eslint/parser": string;
31
+ eslint: string;
32
+ "eslint-config-react-app": string;
33
+ "eslint-loader": string;
34
+ "eslint-plugin-flowtype": string;
35
+ "eslint-plugin-import": string;
36
+ "eslint-plugin-jsx-a11y": string;
37
+ "eslint-plugin-react": string;
38
+ "eslint-plugin-react-hooks": string;
39
+ sass: string;
40
+ typescript: string;
41
+ };
42
+ export declare const RESOLUTIONS: {
43
+ "@types/react": string;
44
+ "@types/react-dom": string;
45
+ };
46
+ export declare const SCRIPTS: {
47
+ upgradeDependencies: string;
48
+ dev: string;
49
+ build: string;
50
+ start: string;
51
+ generate: string;
52
+ "prettier:all": string;
53
+ };
54
+ export declare const TS_CONFIG = "{\n \"compilerOptions\": {\n \"target\": \"esnext\",\n \"lib\": [\n \"dom\",\n \"dom.iterable\",\n \"esnext\"\n ],\n \"allowJs\": true,\n \"skipLibCheck\": true,\n \"strict\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"experimentalDecorators\": true,\n \"noEmit\": true,\n \"esModuleInterop\": true,\n \"module\": \"esnext\",\n \"moduleResolution\": \"node\",\n \"resolveJsonModule\": true,\n \"isolatedModules\": true,\n \"jsx\": \"preserve\",\n \"baseUrl\": \".\",\n \"useUnknownInCatchVariables\": false,\n \"incremental\": true\n },\n \"typeRoots\": [\n \"./node_modules/@types\"\n ],\n \"include\": [\n \"next-env.d.ts\",\n \"**/*.ts\",\n \"**/*.tsx\",\n \"**/typings/global.d.ts\",\n ],\n \"exclude\": [\n \"node_modules\",\n \"./src/pages/api\",\n ]\n}";
55
+ export declare const NEXT_CONFIG = "const withTM = require(\"next-transpile-modules\")([\n \"@ikas/storefront\",\n \"@ikas/storefront-api\",\n \"@ikas/storefront-assets\",\n \"@ikas/storefront-cmd\",\n \"@ikas/storefront-config\",\n \"@ikas/storefront-model-functions\",\n \"@ikas/storefront-models\",\n \"@ikas/storefront-next\",\n \"@ikas/storefront-providers\",\n]);\n\nconst config = {\n i18n: {\n defaultLocale: \"en\",\n locales: [\"en\"],\n localeDetection: false,\n },\n basePath: process.env.NEXTJS_BASE_PATH || \"\",\n\n images: {\n deviceSizes: [\n 180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 1950, 2560, 3840,\n ],\n },\n\n webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {\n if (!isServer) {\n config.resolve.fallback.fs = false;\n config.resolve.fallback.net = false;\n config.resolve.fallback.encoding = false;\n config.resolve.fallback.crypto = false;\n config.resolve.fallback.assert = false;\n config.resolve.fallback.stream = false;\n config.module.rules = [\n ...config.module.rules,\n {\n test: /@ikas/i,\n sideEffects: false,\n },\n ];\n }\n return config;\n },\n};\n\nmodule.exports = withTM(config);";
56
+ export declare const DEV_ENV = "NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.dev/api/sf\nNEXT_PUBLIC_IMG_BASE_URL=https://cdn.myikas.dev/\nNEXT_PUBLIC_UPLOAD_GQL_URL=https://api.myikas.dev/api/admin/graphql\nNEXT_PUBLIC_GQL_URL=https://api.myikas.dev/api/sf/graphql\n";
57
+ export declare const PROD_ENV = "NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.com/api/sf\nNEXT_PUBLIC_IMG_BASE_URL=https://cdn.myikas.com/\nNEXT_PUBLIC_UPLOAD_GQL_URL=https://api.myikas.com/api/admin/graphql\nNEXT_PUBLIC_GQL_URL=https://api.myikas.com/api/sf/graphql\n";
58
+ export declare const BABEL_RC = "{\n \"presets\": [\n [\n \"next/babel\",\n {\n \"preset-react\": { \"throwIfNamespace\": false },\n }\n ]\n ],\n \"plugins\": []\n}";
@@ -0,0 +1 @@
1
+ var e={next:"12.2.0",react:"17.0.2","react-dom":"17.0.2",mobx:"^6.1.3",axios:"^0.26.0",lodash:"^4.17.20",archiver:"^5.3.0",cors:"^2.8.5","html-react-parser":"^1.4.0","mobx-react-lite":"^3.1.5","next-transpile-modules":"^9.0.0","@ikas/storefront":"^4.0.0-alpha.48","@ikas/storefront-api":"^4.0.0-alpha.48","@ikas/storefront-assets":"^4.0.0-alpha.48","@ikas/storefront-cmd":"^4.0.0-alpha.48","@ikas/storefront-config":"^4.0.0-alpha.48","@ikas/storefront-model-functions":"^4.0.0-alpha.48","@ikas/storefront-models":"^4.0.0-alpha.48","@ikas/storefront-next":"^4.0.0-alpha.48","@ikas/storefront-providers":"^4.0.0-alpha.48"},n={"@types/node":"^14.14.6","@types/react":"^17.0.2","@types/react-dom":"^17.0.2","@types/cors":"^2.8.9","@types/archiver":"^5.1.0","@typescript-eslint/eslint-plugin":"^2.10.0","@typescript-eslint/parser":"^2.10.0",eslint:"^6.6.0","eslint-config-react-app":"^5.2.1","eslint-loader":"3.0.3","eslint-plugin-flowtype":"4.6.0","eslint-plugin-import":"2.20.1","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-react":"7.19.0","eslint-plugin-react-hooks":"^1.6.1",sass:"^1.43.4",typescript:"^4.5.2"},s={"@types/react":"17.0.2","@types/react-dom":"17.0.2"},t={upgradeDependencies:"yarn upgrade @ikas/storefront @ikas/storefront-api @ikas/storefront-assets @ikas/storefront-cmd @ikas/storefront-config @ikas/storefront-model-functions @ikas/storefront-models @ikas/storefront-next @ikas/storefront-providers",dev:"next dev -p 3333",build:"next build",start:"next start",generate:"ikas --generate","prettier:all":"npx prettier@^2.1 './**/src/**/*.(ts|tsx|css|scss)' --write"},a='{\n "compilerOptions": {\n "target": "esnext",\n "lib": [\n "dom",\n "dom.iterable",\n "esnext"\n ],\n "allowJs": true,\n "skipLibCheck": true,\n "strict": true,\n "forceConsistentCasingInFileNames": true,\n "experimentalDecorators": true,\n "noEmit": true,\n "esModuleInterop": true,\n "module": "esnext",\n "moduleResolution": "node",\n "resolveJsonModule": true,\n "isolatedModules": true,\n "jsx": "preserve",\n "baseUrl": ".",\n "useUnknownInCatchVariables": false,\n "incremental": true\n },\n "typeRoots": [\n "./node_modules/@types"\n ],\n "include": [\n "next-env.d.ts",\n "**/*.ts",\n "**/*.tsx",\n "**/typings/global.d.ts",\n ],\n "exclude": [\n "node_modules",\n "./src/pages/api",\n ]\n}',r='const withTM = require("next-transpile-modules")([\n "@ikas/storefront",\n "@ikas/storefront-api",\n "@ikas/storefront-assets",\n "@ikas/storefront-cmd",\n "@ikas/storefront-config",\n "@ikas/storefront-model-functions",\n "@ikas/storefront-models",\n "@ikas/storefront-next",\n "@ikas/storefront-providers",\n]);\n\nconst config = {\n i18n: {\n defaultLocale: "en",\n locales: ["en"],\n localeDetection: false,\n },\n basePath: process.env.NEXTJS_BASE_PATH || "",\n\n images: {\n deviceSizes: [\n 180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 1950, 2560, 3840,\n ],\n },\n\n webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {\n if (!isServer) {\n config.resolve.fallback.fs = false;\n config.resolve.fallback.net = false;\n config.resolve.fallback.encoding = false;\n config.resolve.fallback.crypto = false;\n config.resolve.fallback.assert = false;\n config.resolve.fallback.stream = false;\n config.module.rules = [\n ...config.module.rules,\n {\n test: /@ikas/i,\n sideEffects: false,\n },\n ];\n }\n return config;\n },\n};\n\nmodule.exports = withTM(config);',o="NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.dev/api/sf\nNEXT_PUBLIC_IMG_BASE_URL=https://cdn.myikas.dev/\nNEXT_PUBLIC_UPLOAD_GQL_URL=https://api.myikas.dev/api/admin/graphql\nNEXT_PUBLIC_GQL_URL=https://api.myikas.dev/api/sf/graphql\n",i="NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.com/api/sf\nNEXT_PUBLIC_IMG_BASE_URL=https://cdn.myikas.com/\nNEXT_PUBLIC_UPLOAD_GQL_URL=https://api.myikas.com/api/admin/graphql\nNEXT_PUBLIC_GQL_URL=https://api.myikas.com/api/sf/graphql\n",l='{\n "presets": [\n [\n "next/babel",\n {\n "preset-react": { "throwIfNamespace": false },\n }\n ]\n ],\n "plugins": []\n}';export{l as BABEL_RC,e as DEPENDENCIES,n as DEV_DEPENDENCIES,o as DEV_ENV,r as NEXT_CONFIG,i as PROD_ENV,s as RESOLUTIONS,t as SCRIPTS,a as TS_CONFIG};
@@ -0,0 +1,9 @@
1
+ export declare type ENV = "dev" | "prod";
2
+ export declare class ConfigGenerator {
3
+ static generate(env: ENV, workingDir?: string): Promise<boolean | undefined>;
4
+ static generateTsConfig(workingDir?: string): Promise<boolean>;
5
+ static generateBabelRc(workingDir?: string): Promise<boolean>;
6
+ static generateNextConfig(workingDir?: string): Promise<boolean>;
7
+ static generatePackageJson(workingDir?: string): Promise<boolean | undefined>;
8
+ static generateEnv(env: ENV, workingDir?: string): Promise<boolean>;
9
+ }
@@ -0,0 +1 @@
1
+ import{__awaiter as e,__generator as n,__assign as r}from"../../../node_modules/tslib/tslib.es6.js";import t from"path";import s from"fs";import{sortObject as o}from"../../../utils/helper.js";import{createFile as c}from"../../../utils/fs.js";import{TS_CONFIG as i,BABEL_RC as a,NEXT_CONFIG as u,SCRIPTS as f,RESOLUTIONS as l,DEV_ENV as p,PROD_ENV as g,DEV_DEPENDENCIES as d,DEPENDENCIES as v}from"./content.js";var b=function(){function b(){}return b.generate=function(r,t){return e(this,void 0,void 0,(function(){var e,s,o,c;return n(this,(function(n){switch(n.label){case 0:return[4,b.generateTsConfig(t)];case 1:return(c=n.sent())?[4,b.generateBabelRc(t)]:[3,3];case 2:c=n.sent(),n.label=3;case 3:return(o=c)?[4,b.generateNextConfig(t)]:[3,5];case 4:o=n.sent(),n.label=5;case 5:return(s=o)?[4,b.generatePackageJson(t)]:[3,7];case 6:s=n.sent(),n.label=7;case 7:return(e=s)?[4,b.generateEnv(r,t)]:[3,9];case 8:e=n.sent(),n.label=9;case 9:return[2,e]}}))}))},b.generateTsConfig=function(e){return c(e||process.cwd(),"tsconfig.json",i)},b.generateBabelRc=function(e){return c(e||process.cwd(),".babelrc",a)},b.generateNextConfig=function(e){return c(e||process.cwd(),"next.config.js",u)},b.generatePackageJson=function(i){return e(this,void 0,void 0,(function(){var e,a,u,p,g;return n(this,(function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),e=t.join(i||process.cwd(),"package.json"),(a=s.readFileSync(e)).length?(u=JSON.parse(a.toString()),(p=function(e){var n="dev"===e?d:v,t="dev"===e?"devDependencies":"dependencies";u[t]&&"object"==typeof u[t]?u[t]=r(r({},u[t]),n):u[t]=n;var s=o(u[t]);u[t]=s})("dev"),p("normal"),u.scripts&&"object"==typeof u.scripts?u.scripts=r(r({},u.scripts),f):u.scripts=f,u.resolutions=r(r({},u.resolutions),l),[4,c(e,"",JSON.stringify(u,null,2))]):[3,2];case 1:return[2,n.sent()];case 2:return[3,4];case 3:return g=n.sent(),console.error(g),[2,!1];case 4:return[2]}}))}))},b.generateEnv=function(e,n){var r="dev"===e?p:g;return c(n||process.cwd(),".env",r)},b}();export{b as ConfigGenerator};
@@ -1,6 +1,6 @@
1
- export * from "./api";
2
- export * from "./components";
3
- export * from "./config";
4
- export * from "./pages";
5
- export * from "./theme";
6
- export * from "./types";
1
+ export * from "./api";
2
+ export * from "./components";
3
+ export * from "./config";
4
+ export * from "./pages";
5
+ export * from "./theme";
6
+ export * from "./types";
@@ -0,0 +1,7 @@
1
+ import { IkasThemeJsonPageType } from "@ikas/storefront-models";
2
+ import { PageInfo } from "./info";
3
+ export declare class PageGenerator {
4
+ static generate(workingDir?: string): Promise<boolean>;
5
+ static generatePageWithInfo(pageInfo: PageInfo, workingDir?: string): Promise<boolean>;
6
+ static generatePageWithType(pageType: IkasThemeJsonPageType): Promise<boolean>;
7
+ }
@@ -0,0 +1 @@
1
+ import{__awaiter as e,__generator as t}from"../../../node_modules/tslib/tslib.es6.js";import n from"path";import{deleteDirContent as r,createFile as o}from"../../../utils/fs.js";import{PAGE_INFO as s,CHECKOUT_PAGE_CONTENT as a,EDITOR_PAGE_CONTENT as c}from"./info.js";var i=function(){function i(){}return i.generate=function(o){return e(this,void 0,void 0,(function(){var e,a,c,p,u,f,g,m,l,h,d,P;return t(this,(function(t){switch(t.label){case 0:return e=n.join(o||process.cwd(),"src","pages"),[4,r(e,["_app.tsx","_document.tsx","api"])];case 1:t.sent(),a=!0,c=0,p=s,t.label=2;case 2:return c<p.length?(u=p[c],(f=a)?[4,i.generatePageWithInfo(u,o)]:[3,4]):[3,6];case 3:f=t.sent(),t.label=4;case 4:a=f,t.label=5;case 5:return c++,[3,2];case 6:return g=s.find((function(e){return e.isCheckout})),m=s.find((function(e){return e.isEditor})),g?[4,i.generatePageWithInfo(g,o)]:[3,8];case 7:return h=t.sent(),[3,9];case 8:h=!1,t.label=9;case 9:return l=h,m?[4,i.generatePageWithInfo(m,o)]:[3,11];case 10:return P=t.sent(),[3,12];case 11:P=!1,t.label=12;case 12:return d=P,[2,a&&l&&d]}}))}))},i.generatePageWithInfo=function(r,s){return e(this,void 0,void 0,(function(){var e,i,p,u,f,g,m,l,h;return t(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),e="",r.isCheckout?e=a:r.isEditor?e=c:(i=r.pageComponentName+"Next",p="import { ".concat(r.pageComponentName,' } from "@ikas/storefront";\r\n'),u="import { ".concat(r.pageComponentName," as ").concat(i,' } from "@ikas/storefront-next";\r\n'),f='import Components from "src/components/__generated__/pages/'.concat(r.path.replace(".tsx",""),'";\r\n'),g="\nconst PageComponent = ".concat(r.pageComponentName,".default;\n\nconst Page = (props: any) => {\n return <PageComponent components={Components} {...props} />;\n};\n\nexport default Page;\r\n"),m=r.isDynamicSSG?"export const getStaticPaths = ".concat(i,".getStaticPaths;\r\n"):"",l=r.isSSR?"export const getServerSideProps = ".concat(i,".getServerSideProps;\r\n"):"export const getStaticProps = ".concat(i,".getStaticProps;\r\n"),e=p+u+f+g+m+l),[4,o(n.join(s||process.cwd(),"src","pages"),r.path,e)];case 1:return[2,t.sent()];case 2:return h=t.sent(),console.error(h),[2,!1];case 3:return[2]}}))}))},i.generatePageWithType=function(n){return e(this,void 0,void 0,(function(){var e;return t(this,(function(t){switch(t.label){case 0:return(e=s.find((function(e){return e.pageTypes.includes(n)})))?[4,i.generatePageWithInfo(e)]:[3,2];case 1:return[2,t.sent()];case 2:return[2,!1]}}))}))},i}();export{i as PageGenerator};
@@ -0,0 +1,14 @@
1
+ import { IkasThemeJsonPageType } from "@ikas/storefront-models";
2
+ export declare type PageInfo = {
3
+ path: string;
4
+ pageComponentName: string;
5
+ pageTypes: IkasThemeJsonPageType[];
6
+ isDynamicSSG?: boolean;
7
+ isSSR?: boolean;
8
+ isEditor?: boolean;
9
+ isCheckout?: boolean;
10
+ };
11
+ export declare const CHECKOUT_COMPONENT_ID = "checkout";
12
+ export declare const PAGE_INFO: PageInfo[];
13
+ export declare const CHECKOUT_PAGE_CONTENT = "import { CheckoutPage } from \"@ikas/storefront\";\nimport { CheckoutPage as CheckoutPageNext } from \"@ikas/storefront-next\";\n\nexport default CheckoutPage.default;\nexport const getStaticProps = CheckoutPageNext.getStaticProps;\n";
14
+ export declare const EDITOR_PAGE_CONTENT = "import { EditorPage } from \"@ikas/storefront\";\nimport { EditorPage as EditorPageNext } from \"@ikas/storefront-next\";\nimport Components from \"../components/__generated__/editor\";\n\nconst PageComponent = EditorPage.default;\n\nconst Page = (props: any) => {\n return <PageComponent components={Components} {...props} />;\n};\n\nexport default Page;\nexport const getStaticProps = EditorPageNext.getStaticProps;\n";
@@ -0,0 +1 @@
1
+ import{IkasThemeJsonPageType as e}from"@ikas/storefront-models";var a="checkout",t=[{path:"[slug]/index.tsx",pageComponentName:"SlugPage",pageTypes:[e.PRODUCT,e.CATEGORY,e.BRAND],isDynamicSSG:!0},{path:"account/orders/[id].tsx",pageComponentName:"OrderDetailPage",pageTypes:[e.ORDER_DETAIL],isSSR:!0},{path:"account/orders/index.tsx",pageComponentName:"OrdersPage",pageTypes:[e.ORDERS]},{path:"account/addresses.tsx",pageComponentName:"AddressesPage",pageTypes:[e.ADDRESSES]},{path:"account/favorite-products.tsx",pageComponentName:"FavoriteProductsPage",pageTypes:[e.FAVORITE_PRODUCTS]},{path:"account/forgot-password.tsx",pageComponentName:"ForgotPasswordPage",pageTypes:[e.FORGOT_PASSWORD]},{path:"account/index.tsx",pageComponentName:"AccountPage",pageTypes:[e.ACCOUNT]},{path:"account/login.tsx",pageComponentName:"LoginPage",pageTypes:[e.LOGIN]},{path:"account/raffles.tsx",pageComponentName:"AccountRafflesPage",pageTypes:[e.RAFFLE_ACCOUNT]},{path:"account/recover-password.tsx",pageComponentName:"RecoverPasswordPage",pageTypes:[e.RECOVER_PASSWORD]},{path:"account/register.tsx",pageComponentName:"RegisterPage",pageTypes:[e.REGISTER]},{path:"blog/[slug].tsx",pageComponentName:"BlogSlugPage",pageTypes:[e.BLOG,e.BLOG_CATEGORY],isDynamicSSG:!0},{path:"blog/index.tsx",pageComponentName:"BlogPage",pageTypes:[e.BLOG_INDEX]},{path:"pages/[slug].tsx",pageComponentName:"CustomPage",pageTypes:[e.CUSTOM],isDynamicSSG:!0},{path:"raffle/[slug].tsx",pageComponentName:"RafflePage",pageTypes:[e.RAFFLE_DETAIL],isDynamicSSG:!0},{path:"raffle/index.tsx",pageComponentName:"RafflesPage",pageTypes:[e.RAFFLE]},{path:"404.tsx",pageComponentName:"NotFoundPage",pageTypes:[e.NOT_FOUND]},{path:"cart.tsx",pageComponentName:"CartPage",pageTypes:[e.CART]},{path:"index.tsx",pageComponentName:"IndexPage",pageTypes:[e.INDEX]},{path:"search.tsx",pageComponentName:"SearchPage",pageTypes:[e.SEARCH]},{path:"checkout.tsx",pageComponentName:"CheckoutPage",pageTypes:[],isCheckout:!0},{path:"editor.tsx",pageComponentName:"EditorPage",pageTypes:[],isEditor:!0}],o='import { CheckoutPage } from "@ikas/storefront";\nimport { CheckoutPage as CheckoutPageNext } from "@ikas/storefront-next";\n\nexport default CheckoutPage.default;\nexport const getStaticProps = CheckoutPageNext.getStaticProps;\n',p='import { EditorPage } from "@ikas/storefront";\nimport { EditorPage as EditorPageNext } from "@ikas/storefront-next";\nimport Components from "../components/__generated__/editor";\n\nconst PageComponent = EditorPage.default;\n\nconst Page = (props: any) => {\n return <PageComponent components={Components} {...props} />;\n};\n\nexport default Page;\nexport const getStaticProps = EditorPageNext.getStaticProps;\n';export{a as CHECKOUT_COMPONENT_ID,o as CHECKOUT_PAGE_CONTENT,p as EDITOR_PAGE_CONTENT,t as PAGE_INFO};
@@ -0,0 +1,6 @@
1
+ import { IkasThemeJson } from "@ikas/storefront-models";
2
+ export declare class ThemeJsonGenerator {
3
+ static generate(themeJson: IkasThemeJson): Promise<boolean>;
4
+ static generateInitialThemeJsonFile(): Promise<boolean>;
5
+ static getTheme(): Promise<any>;
6
+ }
@@ -0,0 +1 @@
1
+ import{__awaiter as n,__generator as e}from"../../../node_modules/tslib/tslib.es6.js";import t from"path";import r from"fs";import{createFile as o}from"../../../utils/fs.js";import{IkasThemeJsonStockPreference as i,IkasThemeJsonPageType as s}from"@ikas/storefront-models";var l=function(){function l(){}return l.generate=function(n){return o(t.join(process.cwd(),"src","theme.json"),"",JSON.stringify(n,null,2))},l.generateInitialThemeJsonFile=function(){var n={pages:[],components:[],name:"My Theme",customData:[],settings:{colors:[],favicon:{id:null},fontFamily:{name:null,variants:null},stockPreference:i.SHOW_ALL}};return n.pages.push({id:"1",components:[],canonicals:null,description:null,disableIndex:null,name:null,pageTitle:null,slug:null,specifications:[],type:s.INDEX}),l.generate(n)},l.getTheme=function(){return n(this,void 0,void 0,(function(){var n,o;return e(this,(function(e){try{return n=t.join(process.cwd(),"src","theme.json"),[2,(o=r.readFileSync(n)).length?JSON.parse(o.toString()):null]}catch(n){console.error(n)}return[2]}))}))},l}();export{l as ThemeJsonGenerator};
@@ -0,0 +1,19 @@
1
+ import { IkasThemeJson, IkasThemeJsonComponent, IkasThemeJsonComponentProp, IkasThemeJsonCustomData } from "@ikas/storefront-models";
2
+ declare type File = {
3
+ content: string;
4
+ imports: string[];
5
+ internalCustomDatas: IkasThemeJsonCustomData[];
6
+ };
7
+ export declare class CustomDataTypesGenerator {
8
+ static generate(themeJson: IkasThemeJson, workingDir?: string): Promise<boolean>;
9
+ static generateAllCustomDataTypes(customData: IkasThemeJsonCustomData, file: File, themeJson: IkasThemeJson): void;
10
+ static genenateCustomDataType(customData: IkasThemeJsonCustomData, file: File, themeJson: IkasThemeJson): void;
11
+ static getType(customData: IkasThemeJsonCustomData, file: File, themeJson: IkasThemeJson): string;
12
+ static generateTypeName(customData: IkasThemeJsonCustomData): string;
13
+ }
14
+ export declare class PropTypeGenarator {
15
+ static generate(themeJson: IkasThemeJson, file: File): Promise<void>;
16
+ static getType(prop: IkasThemeJsonComponentProp, themeJson: IkasThemeJson, file: File): string;
17
+ static generatePropTypeName(component: IkasThemeJsonComponent): string | undefined;
18
+ }
19
+ export {};
@@ -0,0 +1 @@
1
+ import{__awaiter as e,__generator as t}from"../../../node_modules/tslib/tslib.es6.js";import{IkasThemeJsonComponentPropType as a}from"@ikas/storefront-models";import s from"path";import{createFile as r,deleteDirContent as n}from"../../../utils/fs.js";import o from"../../../node_modules/lodash/uniq.js";var c=function(){function c(){}return c.generate=function(a,i){return e(this,void 0,void 0,(function(){var e,u,m,k,I,T,L;return t(this,(function(t){switch(t.label){case 0:return[4,n(s.join(i||process.cwd(),"src","components","__generated__","types"))];case 1:t.sent(),e={content:"",imports:[],internalCustomDatas:[]},t.label=2;case 2:t.trys.push([2,5,,6]),a.customData.forEach((function(t){c.generateAllCustomDataTypes(t,e,a)})),u=0,m=0;do{u=e.internalCustomDatas.length,e.internalCustomDatas.forEach((function(t){c.generateAllCustomDataTypes(t,e,a)})),(m=e.internalCustomDatas.length)!==u&&(e.internalCustomDatas=e.internalCustomDatas.splice(u,m))}while(u!==m);return[4,p.generate(a,e)];case 3:return t.sent(),k=s.join(i||process.cwd(),"src","components","__generated__"),e.imports=o(e.imports),I="import {\r\n",e.imports.forEach((function(e){I+="\t".concat(e,",\r\n")})),T=(I+='} from "@ikas/storefront"\r\n\r\n')+e.content,[4,r(k,"types.ts",T)];case 4:return[2,t.sent()];case 5:return L=t.sent(),console.log(L),[2,!1];case 6:return[2]}}))}))},c.generateAllCustomDataTypes=function(e,t,s){var r=e.type===a.ENUM,n="export ".concat(r?"enum":"type"," ").concat(c.generateTypeName(e)).concat(r?"":" = ","{ \r\n"),o="};\r\n\r\n";e.type!==a.DYNAMIC_LIST&&e.type!==a.STATIC_LIST||!e.nestedData?e.type===a.ENUM&&e.enumOptions?(t.content+=n,e.enumOptions.forEach((function(e){var a=e.value;e.value&&!isNaN(parseInt(e.value))&&(a="_"+e.value),t.content+='\t"'.concat(a,'" = "').concat(null==e?void 0:e.value,'",'),t.content+="\r\n"})),t.content+=o):(t.content+=n,e.nestedData&&e.nestedData.forEach((function(e){c.genenateCustomDataType(e,t,s),t.content+="\r\n"})),t.content+=o):c.generateAllCustomDataTypes(e.nestedData[0],t,s)},c.genenateCustomDataType=function(e,t,s){var r=c.getType(e,t,s);e.key&&e.key[0].match(/^\d/)&&(e.key="_"+e.key),t.content+="\t".concat(e.key).concat(e.isRequired?"":"?",": ").concat(r).concat([a.DYNAMIC_LIST,a.STATIC_LIST].includes(e.type)?"[]":"").concat(e.type===a.ENUM?",":";")},c.getType=function(e,t,s){var r="";switch(e.type){case a.TEXT:case a.RICH_TEXT:case a.COLOR:r="string";break;case a.BOOLEAN:r="boolean";break;case a.IMAGE:r="IkasImage",t.imports.push(r);break;case a.IMAGE_LIST:r="IkasImage[]",t.imports.push("IkasImage");break;case a.LINK:r="IkasNavigationLink",t.imports.push(r);break;case a.LIST_OF_LINK:r="IkasNavigationLink[]",t.imports.push("IkasNavigationLink");break;case a.PRODUCT_DETAIL:r="IkasProduct",t.imports.push(r);break;case a.PRODUCT_LIST:r="IkasProductList",t.imports.push("IkasProductList");break;case a.PRODUCT_ATTRIBUTE:r="IkasProductAttribute",t.imports.push(r);break;case a.PRODUCT_ATTRIBUTE_LIST:r="IkasProductAttribute[]",t.imports.push("IkasProductAttribute");break;case a.BRAND:r="IkasBrand",t.imports.push(r);break;case a.BRAND_LIST:r="IkasBrandList",t.imports.push(r);break;case a.CATEGORY:r="IkasCategory",t.imports.push(r);break;case a.CATEGORY_LIST:r="IkasCategoryList",t.imports.push(r);break;case a.CUSTOM:var n=s.customData.find((function(t){return t.id===e.customDataId}));n&&(r=c.generateTypeName(n));break;case a.COMPONENT:r="IkasComponentRenderer",t.imports.push(r);break;case a.COMPONENT_LIST:r="IkasComponentRenderer[]",t.imports.push("IkasComponentRenderer");break;case a.BLOG:r="IkasBlog",t.imports.push(r);break;case a.BLOG_LIST:r="IkasBlogList",t.imports.push(r);break;case a.BLOG_CATEGORY:r="IkasBlogCategory",t.imports.push(r);break;case a.BLOG_CATEGORY_LIST:r="IkasBlogCategoryList",t.imports.push(r);break;case a.RAFFLE:r="IkasRaffle",t.imports.push(r);break;case a.RAFFLE_LIST:r="IkasRaffleList",t.imports.push(r);break;case a.SLIDER:r="IkasSlider",t.imports.push(r);break;case a.ENUM:r=c.generateTypeName(e),t.content.includes("export enum ".concat(r))||t.internalCustomDatas.push(e);break;case a.OBJECT:r=c.generateTypeName(e);break;case a.DYNAMIC_LIST:case a.STATIC_LIST:e.nestedData&&(e.nestedData[0].type===a.OBJECT||e.nestedData[0].type===a.ENUM?(r=c.generateTypeName(e.nestedData[0]),t.content.includes("export type ".concat(r))||t.internalCustomDatas.push(e.nestedData[0])):r=c.getType(e.nestedData[0],t,s))}return r},c.generateTypeName=function(e){if(e.typescriptName)return e.typescriptName;var t=e.name||"";return(t=(t=t.replace(/\s/g,"")).replace(/\W/g,""))[0].match(/^\d/)&&(t="_"+t),e.type===a.ENUM&&(t+="Enum"),t},c}(),p=function(){function s(){}return s.generate=function(a,r){return e(this,void 0,void 0,(function(){return t(this,(function(e){return a.components.forEach((function(e){e.props.length>0&&"checkout"!==e.id&&(r.content+="export type ".concat(s.generatePropTypeName(e),"Props = {\n"),e.props.forEach((function(e){r.content+="\t".concat(e.name,": ").concat(s.getType(e,a,r),";\n")})),r.content+="};\r\n\r\n")})),[2]}))}))},s.getType=function(e,t,s){var r="";switch(e.type){case a.TEXT:case a.RICH_TEXT:case a.COLOR:r="string";break;case a.BOOLEAN:r="boolean";break;case a.IMAGE:r="IkasImage",s.imports.push(r);break;case a.IMAGE_LIST:r="IkasImage[]",s.imports.push("IkasImage");break;case a.LINK:r="IkasNavigationLink",s.imports.push(r);break;case a.LIST_OF_LINK:r="IkasNavigationLink[]",s.imports.push("IkasNavigationLink");break;case a.PRODUCT_DETAIL:r="IkasProduct",s.imports.push(r);break;case a.PRODUCT_LIST:r="IkasProductList",s.imports.push("IkasProductList");break;case a.PRODUCT_ATTRIBUTE:r="IkasProductAttribute",s.imports.push(r);break;case a.PRODUCT_ATTRIBUTE_LIST:r="IkasProductAttribute[]",s.imports.push("IkasProductAttribute");break;case a.BRAND:r="IkasBrand",s.imports.push(r);break;case a.BRAND_LIST:r="IkasBrandList",s.imports.push(r);break;case a.CATEGORY:r="IkasCategory",s.imports.push(r);break;case a.CATEGORY_LIST:r="IkasCategoryList",s.imports.push(r);break;case a.CUSTOM:var n=t.customData.find((function(t){return t.id===e.customDataId}));n&&(r=c.getType(n,s,t),n.type!==a.DYNAMIC_LIST&&n.type!==a.STATIC_LIST||(r+="[]"));break;case a.COMPONENT:r="IkasComponentRenderer",s.imports.push(r);break;case a.COMPONENT_LIST:r="IkasComponentRenderer[]",s.imports.push("IkasComponentRenderer");break;case a.BLOG:r="IkasBlog",s.imports.push(r);break;case a.BLOG_LIST:r="IkasBlogList",s.imports.push(r);break;case a.BLOG_CATEGORY:r="IkasBlogCategory",s.imports.push(r);break;case a.BLOG_CATEGORY_LIST:r="IkasBlogCategoryList",s.imports.push(r);break;case a.RAFFLE:r="IkasRaffle",s.imports.push(r);break;case a.RAFFLE_LIST:r="IkasRaffleList",s.imports.push(r);break;case a.SLIDER:r="IkasSlider",s.imports.push(r)}return r},s.generatePropTypeName=function(e){if(""!==e.displayName){var t=(e.dir||"").split("-"),a="";return t.forEach((function(e,t){return a+=e.charAt(0).toUpperCase()+e.slice(1)})),a[0].match(/^\d/)&&(a="_"+a),a}},s}();export{c as CustomDataTypesGenerator,p as PropTypeGenarator};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { IkasThemeJson } from "@ikas/storefront-models";
2
+ export declare function shouldDeploy(oldThemeJson: IkasThemeJson, newThemeJson: IkasThemeJson): boolean;
3
+ export declare function generate(themeJsonList: IkasThemeJson[], workingDir: string): Promise<boolean | undefined>;
@@ -0,0 +1 @@
1
+ import{__awaiter as n,__generator as e}from"../../node_modules/tslib/tslib.es6.js";import t from"../../node_modules/lodash/cloneDeep.js";import"../generators/api/index.js";import{ComponentImportsGenerator as o}from"../generators/components/index.js";import{ConfigGenerator as i}from"../generators/config/index.js";import{PageGenerator as s}from"../generators/pages/index.js";import"../generators/theme/index.js";import{CustomDataTypesGenerator as r}from"../generators/types/index.js";function c(n,e){return!(!n.pages.some((function(n){return!e.pages.find((function(e){return e.id===n.id}))}))&&!e.pages.some((function(e){return!n.pages.find((function(n){return n.id===e.id}))})))||n.pages.some((function(n){var t,o,i=e.pages.find((function(e){return e.id===n.id})),s=n.components;(null===(t=n.specifications)||void 0===t?void 0:t.length)&&n.specifications.forEach((function(n){s.push.apply(s,n.components)}));var r=(null==i?void 0:i.components)||[];(null===(o=null==i?void 0:i.specifications)||void 0===o?void 0:o.length)&&i.specifications.forEach((function(n){r.push.apply(r,n.components)}));var c=s.filter((function(n){return!r.find((function(e){return n.componentId===e.componentId}))})),a=r.filter((function(n){return!s.find((function(e){return n.componentId===e.componentId}))}));return!!c.length||!!a.length}))}function a(c,a){return n(this,void 0,void 0,(function(){var n,p,u,f,m;return e(this,(function(e){switch(e.label){case 0:return n=t(c),(p={components:[],pages:[],customData:[],name:"",settings:{}}).components=n[0].components,p.customData=n[0].customData,n.forEach((function(n){n.pages.forEach((function(n){var e,t,o=p.pages.find((function(e){return e.type===n.type})),i=o||n;(e=i.components).push.apply(e,n.components),i.specifications||(i.specifications=[]),(t=i.specifications).push.apply(t,n.specifications||[]),o||p.pages.push(i)}))})),[4,o.generate(p,a)];case 1:return(m=e.sent())?[4,s.generate(a)]:[3,3];case 2:m=e.sent(),e.label=3;case 3:return(f=m)?[4,r.generate(p,a)]:[3,5];case 4:f=e.sent(),e.label=5;case 5:return(u=f)?[4,i.generate("prod",a)]:[3,7];case 6:u=e.sent(),e.label=7;case 7:return[2,u]}}))}))}export{a as generate,c as shouldDeploy};
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Divides the given filePath string into directory part and fileName part
3
+ * @param path Path for the file
4
+ */
5
+ export declare function getFilePathParts(path: string): {
6
+ dirParts: string[];
7
+ filePart: string;
8
+ } | {
9
+ filePart: string;
10
+ dirParts?: undefined;
11
+ };
12
+ /**
13
+ * Deletes the contents of the given directory, exluding the ignoreFiles
14
+ * @param dirPath Path for the directory
15
+ * @param ignoreFiles List of files to keep in directory. Does not accept recursive paths, only first level files
16
+ *
17
+ * @returns true for successfull operation, false otherwise
18
+ */
19
+ export declare function deleteDirContent(dirPath: string, ignoreFiles?: string[]): Promise<boolean>;
20
+ /**
21
+ * Creates the given file and directories for the filePath
22
+ * @param basePath Base directory path for the file
23
+ * @param fileSubPath Filename or the sub directory path for the file to write
24
+ * @param fileStr File contents
25
+ *
26
+ * @returns true for successfull operation, false otherwise
27
+ */
28
+ export declare function createFile(basePath: string, fileSubPath: string, fileStr: string): Promise<boolean>;
@@ -0,0 +1 @@
1
+ import{__awaiter as r,__generator as t,__spreadArray as n}from"../node_modules/tslib/tslib.es6.js";import i from"fs";import e from"path";function o(r){var t=r.split("/");return t.length>1?{dirParts:t.slice(0,t.length-1),filePart:t[t.length-1]}:{filePart:r}}function u(n,o){return r(this,void 0,void 0,(function(){return t(this,(function(r){try{return i.readdirSync(n).forEach((function(r){(null==o?void 0:o.includes(r))||i.unlinkSync(e.join(n,r))})),[2,!0]}catch(r){return[2,!1]}return[2]}))}))}function c(u,c,l){var s;return r(this,void 0,void 0,(function(){var r,d,f;return t(this,(function(t){try{return r=u,d=o(c),(null===(s=d.dirParts)||void 0===s?void 0:s.length)&&(r=e.join.apply(e,n([r],d.dirParts,!1))),i.existsSync(r)||i.mkdirSync(r,{recursive:!0}),f=e.join(r,d.filePart),i.writeFileSync(f,l),[2,!0]}catch(r){return console.error(r),[2,!1]}return[2]}))}))}export{c as createFile,u as deleteDirContent,o as getFilePathParts};
@@ -0,0 +1,2 @@
1
+ export declare function sortObject(obj: Record<string, any>): Record<string, any>;
2
+ export declare function findAllByKey(obj: Record<string, any>, keyToFind: string): any;
@@ -0,0 +1 @@
1
+ function t(t){return Object.keys(t).sort().reduce((function(e,n){return e[n]=t[n],e}),{})}function e(t,n){return Object.entries(t||{}).reduce((function(t,r){var c=r[0],o=r[1];return c===n?t.concat(o):"object"==typeof o?t.concat(e(o,n)):t}),[])}export{e as findAllByKey,t as sortObject};
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@ikas/storefront-cmd",
3
- "version": "4.0.0-alpha.50",
3
+ "version": "4.0.0-alpha.51",
4
4
  "description": "Command line tool for ikas storefront themes.",
5
5
  "author": "Umut Ozan Yıldırım",
6
6
  "license": "ISC",
7
- "main": "./src/index.ts",
8
- "module": "./src/index.ts",
7
+ "main": "./build/index.js",
8
+ "module": "./build/index.js",
9
9
  "sideEffects": false,
10
10
  "files": [
11
- "./src"
11
+ "./build"
12
12
  ],
13
13
  "bin": {
14
14
  "ikas": "./build/ikas.cjs"
@@ -24,7 +24,7 @@
24
24
  "lodash": "^4.17.21"
25
25
  },
26
26
  "devDependencies": {
27
- "@ikas/storefront-models": "^4.0.0-alpha.50",
27
+ "@ikas/storefront-models": "^4.0.0-alpha.51",
28
28
  "@rollup/plugin-commonjs": "^22.0.0",
29
29
  "@rollup/plugin-node-resolve": "^13.3.0",
30
30
  "rollup-plugin-typescript2": "^0.32.1",
@@ -40,6 +40,6 @@
40
40
  "typescript-transform-paths": "^2.2.2"
41
41
  },
42
42
  "peerDependencies": {
43
- "@ikas/storefront-models": "^4.0.0-alpha.50"
43
+ "@ikas/storefront-models": "^4.0.0-alpha.51"
44
44
  }
45
45
  }
@@ -1,27 +0,0 @@
1
- import path from "path";
2
- import { createFile, deleteDirContent } from "../../../utils/fs";
3
-
4
- import { APIInfo, API_INFO } from "./info";
5
-
6
- export class APIGenerator {
7
- static async generate() {
8
- const apiDir = path.join(process.cwd(), "src", "pages", "api");
9
- await deleteDirContent(apiDir);
10
-
11
- let isSuccess = true;
12
-
13
- for (const info of API_INFO) {
14
- isSuccess = isSuccess && (await APIGenerator.generateAPI(info));
15
- }
16
-
17
- return isSuccess;
18
- }
19
-
20
- static generateAPI(apiInfo: APIInfo) {
21
- return createFile(
22
- path.join(process.cwd(), "src", "pages", "api"),
23
- apiInfo.fileName,
24
- apiInfo.content
25
- );
26
- }
27
- }
@@ -1,47 +0,0 @@
1
- export const GET_COMPONENT_DIRS_API_CONTENT = `import { IkasLocalThemeAPI } from "@ikas/storefront-next";
2
-
3
- export default IkasLocalThemeAPI.GetComponentDirs.getComponentDirs;
4
- export const config = IkasLocalThemeAPI.GetComponentDirs.config;
5
- `;
6
-
7
- export const GET_THEME_API_CONTENT = `import { IkasLocalThemeAPI } from "@ikas/storefront-next";
8
-
9
- export default IkasLocalThemeAPI.GetTheme.getTheme;
10
- export const config = IkasLocalThemeAPI.GetTheme.config;
11
- `;
12
-
13
- export const UPDATE_THEME_API_CONTENT = `import { IkasLocalThemeAPI } from "@ikas/storefront-next";
14
-
15
- export default IkasLocalThemeAPI.UpdateTheme.updateTheme;
16
- export const config = IkasLocalThemeAPI.UpdateTheme.config;
17
- `;
18
-
19
- export const UPLOAD_THEME_API_CONTENT = `import { IkasLocalThemeAPI } from "@ikas/storefront-next";
20
-
21
- export default IkasLocalThemeAPI.UploadTheme.uploadTheme;
22
- export const config = IkasLocalThemeAPI.UploadTheme.config;
23
- `;
24
-
25
- export const API_INFO = [
26
- {
27
- content: GET_COMPONENT_DIRS_API_CONTENT,
28
- fileName: "getComponentDirs.ts",
29
- },
30
- {
31
- content: GET_THEME_API_CONTENT,
32
- fileName: "getTheme.ts",
33
- },
34
- {
35
- content: UPDATE_THEME_API_CONTENT,
36
- fileName: "updateTheme.ts",
37
- },
38
- {
39
- content: UPLOAD_THEME_API_CONTENT,
40
- fileName: "uploadTheme.ts",
41
- },
42
- ];
43
-
44
- export type APIInfo = {
45
- content: string;
46
- fileName: string;
47
- };