@ikas/storefront-cmd 5.0.0-beta.3 → 5.0.0-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/ikas.cjs +1 -1
- package/build/index.d.ts +3 -3
- package/build/index.js +1 -1
- package/build/scripts/generators/api/index.d.ts +5 -5
- package/build/scripts/generators/api/index.js +1 -1
- package/build/scripts/generators/api/info.d.ts +13 -13
- package/build/scripts/generators/api/info.js +1 -1
- package/build/scripts/generators/components/index.d.ts +11 -11
- package/build/scripts/generators/components/index.js +1 -1
- package/build/scripts/generators/config/content.d.ts +22 -22
- package/build/scripts/generators/config/content.js +1 -1
- package/build/scripts/generators/config/index.d.ts +9 -9
- package/build/scripts/generators/config/index.js +1 -1
- package/build/scripts/generators/index.d.ts +6 -7
- package/build/scripts/generators/pages/index.d.ts +7 -7
- package/build/scripts/generators/pages/index.js +1 -1
- package/build/scripts/generators/pages/info.d.ts +14 -14
- package/build/scripts/generators/pages/info.js +1 -1
- package/build/scripts/generators/theme/index.d.ts +6 -6
- package/build/scripts/generators/theme/index.js +1 -1
- package/build/scripts/generators/types/index.d.ts +19 -19
- package/build/scripts/generators/types/index.js +1 -1
- package/build/scripts/ikas.d.ts +1 -1
- package/build/scripts/theme-build/index.d.ts +3 -3
- package/build/scripts/theme-build/index.js +1 -1
- package/build/utils/fs.d.ts +28 -28
- package/build/utils/fs.js +1 -1
- package/build/utils/helper.d.ts +2 -2
- package/build/utils/helper.js +1 -1
- package/package.json +16 -17
- package/build/ext/@builder.io/partytown/utils/index.mjs.js +0 -1
- package/build/ext/tslib/tslib.es6.js +0 -1
- package/build/scripts/generators/partytown/index.d.ts +0 -3
- package/build/scripts/generators/partytown/index.js +0 -1
package/build/ikas.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var e=require("path"),n=require("fs"),t=require("@ikas/storefront-models"),o=require("util"),s=require("url"),a=require("lodash/uniq");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=r(e),c=r(n),p=r(a),u=function(){return u=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var s in n=arguments[t])Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s]);return e},u.apply(this,arguments)};function l(e,n,t,o){return new(t||(t=Promise))((function(s,a){function r(e){try{c(o.next(e))}catch(e){a(e)}}function i(e){try{c(o.throw(e))}catch(e){a(e)}}function c(e){var n;e.done?s(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(r,i)}c((o=o.apply(e,n||[])).next())}))}function f(e,n){var t,o,s,a,r={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;r;)try{if(t=1,o&&(s=2&a[0]?o.return:a[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,a[1])).done)return s;switch(o=0,s&&(a=[2&a[0],s.value]),a[0]){case 0:case 1:s=a;break;case 4:return r.label++,{value:a[1],done:!1};case 5:r.label++,o=a[1],a=[0];continue;case 7:a=r.ops.pop(),r.trys.pop();continue;default:if(!(s=r.trys,(s=s.length>0&&s[s.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!s||a[1]>s[0]&&a[1]<s[3])){r.label=a[1];break}if(6===a[0]&&r.label<s[1]){r.label=s[1],s=a;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(a);break}s[2]&&r.ops.pop(),r.trys.pop();continue}a=n.call(e,r)}catch(e){a=[6,e],o=0}finally{t=s=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},h=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,d=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,g="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",T="[\\ud800-\\udfff]",I="["+g+"]",y="[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]",k="\\d+",C="[\\u2700-\\u27bf]",v="[a-z\\xdf-\\xf6\\xf8-\\xff]",P="[^\\ud800-\\udfff"+g+k+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",b="\\ud83c[\\udffb-\\udfff]",E="[^\\ud800-\\udfff]",N="(?:\\ud83c[\\udde6-\\uddff]){2}",_="[\\ud800-\\udbff][\\udc00-\\udfff]",x="[A-Z\\xc0-\\xd6\\xd8-\\xde]",L="(?:"+v+"|"+P+")",A="(?:"+x+"|"+P+")",S="(?:"+y+"|"+b+")"+"?",w="[\\ufe0e\\ufe0f]?"+S+("(?:\\u200d(?:"+[E,N,_].join("|")+")[\\ufe0e\\ufe0f]?"+S+")*"),O="(?:"+[C,N,_].join("|")+")"+w,D="(?:"+[E+y+"?",y,N,_,T].join("|")+")",J=RegExp("['’]","g"),R=RegExp(y,"g"),U=RegExp(b+"(?="+b+")|"+D+w,"g"),j=RegExp([x+"?"+v+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[I,x,"$"].join("|")+")",A+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[I,x+L,"$"].join("|")+")",x+"?"+L+"+(?:['’](?:d|ll|m|re|s|t|ve))?",x+"+(?:['’](?:D|LL|M|RE|S|T|VE))?",k,O].join("|"),"g"),B=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),F=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,G="object"==typeof m&&m&&m.Object===Object&&m,M="object"==typeof self&&self&&self.Object===Object&&self,V=G||M||Function("return this")();var q,W=(q={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"ss"},function(e){return null==q?void 0:q[e]});function X(e){return B.test(e)}function Y(e){return X(e)?function(e){return e.match(U)||[]}(e):function(e){return e.split("")}(e)}var z=Object.prototype.toString,Z=V.Symbol,$=Z?Z.prototype:void 0,H=$?$.toString:void 0;function K(e){if("string"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==z.call(e)}(e))return H?H.call(e):"";var n=e+"";return"0"==n&&1/e==-Infinity?"-0":n}function Q(e,n,t){var o=e.length;return t=void 0===t?o:t,!n&&t>=o?e:function(e,n,t){var o=-1,s=e.length;n<0&&(n=-n>s?0:s+n),(t=t>s?s:t)<0&&(t+=s),s=n>t?0:t-n>>>0,n>>>=0;for(var a=Array(s);++o<s;)a[o]=e[o+n];return a}(e,n,t)}function ee(e){return null==e?"":K(e)}var ne,te=(ne=function(e,n,t){return n=n.toLowerCase(),e+(t?se(ee(n).toLowerCase()):n)},function(e){return function(e,n,t,o){var s=-1,a=e?e.length:0;for(o&&a&&(t=e[++s]);++s<a;)t=n(t,e[s],s,e);return t}(function(e,n,t){return e=ee(e),void 0===(n=t?void 0:n)?function(e){return F.test(e)}(e)?function(e){return e.match(j)||[]}(e):function(e){return e.match(h)||[]}(e):e.match(n)||[]}(function(e){return(e=ee(e))&&e.replace(d,W).replace(R,"")}(e).replace(J,"")),ne,"")});var oe,se=(oe="toUpperCase",function(e){var n=X(e=ee(e))?Y(e):void 0,t=n?n[0]:e.charAt(0),o=n?Q(n,1).join(""):e.slice(1);return t[oe]()+o});var ae,re=(ae=te)&&"object"==typeof ae&&"default"in ae?ae.default:ae;function ie(e){return Array.isArray(e)?e:void 0===e?[]:function(e){return function(e){return"object"==typeof e&&null!==e}(e)&&"number"==typeof e.length}(e)||e instanceof Set?Array.from(e):[e]}function ce(e){return Array.isArray(e)?e:void 0===e?[]:function(e){return function(e){return"object"==typeof e&&null!==e}(e)&&"number"==typeof e.length}(e)?Array.prototype.slice.call(e):[e]}function pe(e,n){const t=[],o=ce(arguments);return o.splice(0,2),ce(e).forEach(((e,s)=>{let a=[];o.forEach((n=>{"function"==typeof n?a=a.concat(n(e)):a.push(n)})),n(e)&&t.push({index:s,replaceWithValue:a})})),t.reverse().forEach((n=>{const t=[n.index,1].concat(n.replaceWithValue);e.splice.apply(e,t)})),e}const ue={short:/^-([^\d-])$/,long:/^--(\S+)/,combinedShort:/^-[^\d-]{2,}$/,optEquals:/^(--\S+?)=(.*)/};class le extends Array{load(e){if(this.clear(),e&&e!==process.argv)e=ie(e);else{e=process.argv.slice(0);const n=process.execArgv.some(Te)?1:2;e.splice(0,n)}e.forEach((e=>this.push(String(e))))}clear(){this.length=0}expandOptionEqualsNotation(){if(this.some((e=>ue.optEquals.test(e)))){const e=[];this.forEach((n=>{const t=n.match(ue.optEquals);t?e.push(t[1],t[2]):e.push(n)})),this.clear(),this.load(e)}}expandGetoptNotation(){this.hasCombinedShortOptions()&&pe(this,ue.combinedShort,fe)}hasCombinedShortOptions(){return this.some((e=>ue.combinedShort.test(e)))}static from(e){const n=new this;return n.load(e),n}}function fe(e){return(e=e.slice(1)).split("").map((e=>"-"+e))}function me(e){return ue.optEquals.test(e)}function he(e){return(ue.short.test(e)||ue.long.test(e))&&!ue.optEquals.test(e)}function de(e){return ue.short.test(e)?e.match(ue.short)[1]:function(e){return ue.long.test(e)&&!me(e)}(e)?e.match(ue.long)[1]:me(e)?e.match(ue.optEquals)[1].replace(/^--/,""):null}function ge(e){return!(he(e)||ue.combinedShort.test(e)||ue.optEquals.test(e))}function Te(e){return["--eval","-e"].indexOf(e)>-1||e.startsWith("--eval=")}function Ie(e){return"object"==typeof e&&null!==e}function ye(e){return void 0!==e}function ke(e){return"function"==typeof e}var Ce={isNumber:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},isString:function(e){return"string"==typeof e},isBoolean:function(e){return"boolean"==typeof e},isPlainObject:function(e){return null!==e&&"object"==typeof e&&e.constructor===Object},isArrayLike:function(e){return Ie(e)&&"number"==typeof e.length},isObject:Ie,isDefined:ye,isFunction:ke,isClass:function(e){return!!ke(e)&&/^class /.test(Function.prototype.toString.call(e))},isPrimitive:function(e){if(null===e)return!0;switch(typeof e){case"string":case"number":case"symbol":case"undefined":case"boolean":return!0;default:return!1}},isPromise:function(e){if(e){const n=ye(Promise)&&e instanceof Promise,t=e.then&&"function"==typeof e.then;return!(!n&&!t)}return!1},isIterable:function(e){return!(null===e||!ye(e))&&("function"==typeof e[Symbol.iterator]||"function"==typeof e[Symbol.asyncIterator])}};class ve{constructor(e){this.name=e.name,this.type=e.type||String,this.alias=e.alias,this.multiple=e.multiple,this.lazyMultiple=e.lazyMultiple,this.defaultOption=e.defaultOption,this.defaultValue=e.defaultValue,this.group=e.group;for(const n in e)this[n]||(this[n]=e[n])}isBoolean(){return this.type===Boolean||Ce.isFunction(this.type)&&"Boolean"===this.type.name}isMultiple(){return this.multiple||this.lazyMultiple}static create(e){return new this(e)}}class Pe extends Array{validate(e){this.some((e=>!e.name))&&be("INVALID_DEFINITIONS","Invalid option definitions: the `name` property is required on each definition");let n;this.some((e=>e.type&&"function"!=typeof e.type))&&be("INVALID_DEFINITIONS","Invalid option definitions: the `type` property must be a setter fuction (default: `Boolean`)");this.some((e=>(n=e,Ce.isDefined(e.alias)&&Ce.isNumber(e.alias))))&&be("INVALID_DEFINITIONS","Invalid option definition: to avoid ambiguity an alias cannot be numeric [--"+n.name+" alias is -"+n.alias+"]");this.some((e=>(n=e,Ce.isDefined(e.alias)&&1!==e.alias.length)))&&be("INVALID_DEFINITIONS","Invalid option definition: an alias must be a single character");this.some((e=>(n=e,"-"===e.alias)))&&be("INVALID_DEFINITIONS",'Invalid option definition: an alias cannot be "-"');Ne(this.map((n=>e?n.name.toLowerCase():n.name)))&&be("INVALID_DEFINITIONS","Two or more option definitions have the same name");Ne(this.map((n=>e&&Ce.isDefined(n.alias)?n.alias.toLowerCase():n.alias)))&&be("INVALID_DEFINITIONS","Two or more option definitions have the same alias");this.filter((e=>!0===e.defaultOption)).length>1&&be("INVALID_DEFINITIONS","Only one option definition can be the defaultOption");this.some((e=>(n=e,e.isBoolean()&&e.defaultOption)))&&be("INVALID_DEFINITIONS",`A boolean option ["${n.name}"] can not also be the defaultOption.`)}get(e,n){if(he(e)){if(ue.short.test(e)){const t=de(e);if(n){const e=t.toLowerCase();return this.find((n=>Ce.isDefined(n.alias)&&n.alias.toLowerCase()===e))}return this.find((e=>e.alias===t))}{const t=de(e);if(n){const e=t.toLowerCase();return this.find((n=>n.name.toLowerCase()===e))}return this.find((e=>e.name===t))}}return this.find((n=>n.name===e))}getDefault(){return this.find((e=>!0===e.defaultOption))}isGrouped(){return this.some((e=>e.group))}whereGrouped(){return this.filter(Ee)}whereNotGrouped(){return this.filter((e=>!Ee(e)))}whereDefaultValueSet(){return this.filter((e=>Ce.isDefined(e.defaultValue)))}static from(e,n){if(e instanceof this)return e;const t=super.from(ie(e),(e=>ve.create(e)));return t.validate(n),t}}function be(e,n){const t=new Error(n);throw t.name=e,t}function Ee(e){return ie(e.group).some((e=>e))}function Ne(e){const n={};for(let t=0;t<e.length;t++){const o=e[t];if(n[o])return!0;Ce.isDefined(o)&&(n[o]=!0)}}class _e{constructor(e,n){this.options=Object.assign({},n),this.definitions=Pe.from(e,this.options.caseInsensitive),this.argv=le.from(this.options.argv),this.argv.hasCombinedShortOptions()&&pe(this.argv,ue.combinedShort.test.bind(ue.combinedShort),(e=>(e=e.slice(1)).split("").map((n=>({origArg:`-${e}`,arg:"-"+n})))))}*[Symbol.iterator](){const e=this.definitions;let n,t,o,s,a,r=!1,i=!1;for(let c of this.argv){if(Ce.isPlainObject(c)&&(a=c.origArg,c=c.arg),i&&this.options.stopAtFirstUnknown){yield{event:"unknown_value",arg:c,name:"_unknown",value:void 0};continue}if(he(c))n=e.get(c,this.options.caseInsensitive),t=void 0,n?(t=!!n.isBoolean()||null,s="set"):s="unknown_option";else if(me(c)){const o=c.match(ue.optEquals);n=e.get(o[1],this.options.caseInsensitive),n?n.isBoolean()?(yield{event:"unknown_value",arg:c,name:"_unknown",value:t,def:n},s="set",t=!0):(s="set",t=o[2]):s="unknown_option"}else ge(c)&&(n?(t=c,s="set"):(n=this.definitions.getDefault(),n&&!r?(t=c,s="set"):(s="unknown_value",n=void 0)));o=n?n.name:"_unknown";const p={event:s,arg:c,name:o,value:t,def:n};a&&(p.subArg=c,p.arg=a),yield p,"_unknown"===o&&(i=!0),n&&n.defaultOption&&!n.isMultiple()&&"set"===s&&(r=!0),n&&n.isBoolean()&&(n=void 0),n&&!n.multiple&&Ce.isDefined(t)&&null!==t&&(n=void 0),t=void 0,s=void 0,o=void 0,a=void 0}}}const xe=new WeakMap;class Le{constructor(e){this.definition=new ve(e),this.state=null,this.resetToDefault()}get(){return xe.get(this)}set(e){this._set(e,"set")}_set(e,n){const t=this.definition;if(t.isMultiple()){if(null!=e){const o=this.get();"default"===this.state&&(o.length=0),o.push(t.type(e)),this.state=n}}else{if(!t.isMultiple()&&"set"===this.state){const n=new Error(`Singular option already set [${this.definition.name}=${this.get()}]`);throw n.name="ALREADY_SET",n.value=e,n.optionName=t.name,n}null==e?xe.set(this,e):(xe.set(this,t.type(e)),this.state=n)}}resetToDefault(){Ce.isDefined(this.definition.defaultValue)?this.definition.isMultiple()?xe.set(this,ie(this.definition.defaultValue).slice()):xe.set(this,this.definition.defaultValue):this.definition.isMultiple()?xe.set(this,[]):xe.set(this,null),this.state="default"}static create(e){return(e=new ve(e)).isBoolean()?Ae.create(e):new this(e)}}class Ae extends Le{set(e){super.set(!0)}static create(e){return new this(e)}}class Se extends Map{constructor(e){super(),this.definitions=Pe.from(e),this.set("_unknown",Le.create({name:"_unknown",multiple:!0}));for(const e of this.definitions.whereDefaultValueSet())this.set(e.name,Le.create(e))}toObject(e){e=e||{};const n={};for(const t of this){const o=e.camelCase&&"_unknown"!==t[0]?re(t[0]):t[0],s=t[1];("_unknown"!==o||s.get().length)&&(n[o]=s.get())}return e.skipUnknown&&delete n._unknown,n}}class we extends Se{toObject(e){const n=super.toObject({skipUnknown:e.skipUnknown}),t=super.toObject(e),o=t._unknown;delete t._unknown;const s={_all:t};return o&&o.length&&(s._unknown=o),this.definitions.whereGrouped().forEach((t=>{const o=e.camelCase?re(t.name):t.name,a=n[t.name];for(const e of ie(t.group))s[e]=s[e]||{},Ce.isDefined(a)&&(s[e][o]=a)})),this.definitions.whereNotGrouped().forEach((t=>{const o=e.camelCase?re(t.name):t.name,a=n[t.name];Ce.isDefined(a)&&(s._none||(s._none={}),s._none[o]=a)})),s}}var Oe=function(e,n){(n=n||{}).stopAtFirstUnknown&&(n.partial=!0),e=Pe.from(e,n.caseInsensitive);const t=new _e(e,{argv:n.argv,stopAtFirstUnknown:n.stopAtFirstUnknown,caseInsensitive:n.caseInsensitive}),o=new(e.isGrouped()?we:Se)(e);for(const e of t){const t=e.subArg||e.arg;if(!n.partial){if("unknown_value"===e.event){const e=new Error(`Unknown value: ${t}`);throw e.name="UNKNOWN_VALUE",e.value=t,e}if("unknown_option"===e.event){const e=new Error(`Unknown option: ${t}`);throw e.name="UNKNOWN_OPTION",e.optionName=t,e}}let s;o.has(e.name)?s=o.get(e.name):(s=Le.create(e.def),o.set(e.name,s)),"_unknown"===e.name?s.set(t):s.set(e.value)}return o.toObject({skipUnknown:!n.partial,camelCase:n.camelCase})};function De(e,n){return l(this,void 0,void 0,(function(){return f(this,(function(t){try{return c.default.readdirSync(e).forEach((function(t){(null==n?void 0:n.includes(t))||c.default.unlinkSync(i.default.join(e,t))})),[2,!0]}catch(e){return[2,!1]}return[2]}))}))}function Je(e,n,t){var o;return l(this,void 0,void 0,(function(){var s,a,r;return f(this,(function(p){try{return s=e,a=function(e){var n=e.split("/");return n.length>1?{dirParts:n.slice(0,n.length-1),filePart:n[n.length-1]}:{filePart:e}}(n),(null===(o=a.dirParts)||void 0===o?void 0:o.length)&&(s=i.default.join.apply(i.default,function(e,n,t){if(t||2===arguments.length)for(var o,s=0,a=n.length;s<a;s++)!o&&s in n||(o||(o=Array.prototype.slice.call(n,0,s)),o[s]=n[s]);return e.concat(o||Array.prototype.slice.call(n))}([s],a.dirParts,!1))),c.default.existsSync(s)||c.default.mkdirSync(s,{recursive:!0}),r=i.default.join(s,a.filePart),c.default.writeFileSync(r,t),[2,!0]}catch(e){return console.error(e),[2,!1]}return[2]}))}))}var Re=[{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.GetComponentDirs.getComponentDirs;\nexport const config = IkasLocalThemeAPI.GetComponentDirs.config;\n',fileName:"getComponentDirs.ts"},{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.GetTheme.getTheme;\nexport const config = IkasLocalThemeAPI.GetTheme.config;\n',fileName:"getTheme.ts"},{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.UpdateTheme.updateTheme;\nexport const config = IkasLocalThemeAPI.UpdateTheme.config;\n',fileName:"updateTheme.ts"},{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.UploadTheme.uploadTheme;\nexport const config = IkasLocalThemeAPI.UploadTheme.config;\n',fileName:"uploadTheme.ts"},{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.GetConfig.getConfig;\nexport const config = IkasLocalThemeAPI.GetConfig.config;\n',fileName:"getConfig.ts"}],Ue=function(){function e(){}return e.generate=function(){return l(this,void 0,void 0,(function(){var n,t,o,s,a;return f(this,(function(r){switch(r.label){case 0:return[4,De(i.default.join(process.cwd(),"src","pages","api"))];case 1:r.sent(),n=!0,t=0,o=Re,r.label=2;case 2:return t<o.length?(s=o[t],(a=n)?[4,e.generateAPI(s)]:[3,4]):[3,6];case 3:a=r.sent(),r.label=4;case 4:n=a,r.label=5;case 5:return t++,[3,2];case 6:return[2,n]}}))}))},e.generateAPI=function(e){return Je(i.default.join(process.cwd(),"src","pages","api"),e.fileName,e.content)},e}();function je(e,n){return Object.entries(e||{}).reduce((function(e,t){var o=t[0],s=t[1];return o===n?e.concat(s):"object"==typeof s?e.concat(je(s,n)):e}),[])}var Be={"@ikas/storefront":"^5.0.0-beta.3","@ikas/storefront-peer-deps":"^5.0.0-beta.3"},Fe={},Ge={"@types/react":"17.0.2","@types/react-dom":"17.0.2"},Me={upgradeDependencies:"yarn upgrade @ikas/storefront @ikas/storefront-peer-deps",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"},Ve=function(){function e(){}return e.generate=function(n,t){return l(this,void 0,void 0,(function(){var o,s,a,r;return f(this,(function(i){switch(i.label){case 0:return[4,e.generateTsConfig(t)];case 1:return(r=i.sent())?[4,e.generateBabelRc(t)]:[3,3];case 2:r=i.sent(),i.label=3;case 3:return(a=r)?[4,e.generateNextConfig(t)]:[3,5];case 4:a=i.sent(),i.label=5;case 5:return(s=a)?[4,e.generatePackageJson(t)]:[3,7];case 6:s=i.sent(),i.label=7;case 7:return(o=s)?[4,e.generateEnv(n,t)]:[3,9];case 8:o=i.sent(),i.label=9;case 9:return[2,o]}}))}))},e.generateTsConfig=function(e){return Je(e||process.cwd(),"tsconfig.json",'{\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 "**/typings/*.ts",\n ],\n "exclude": [\n "node_modules",\n "./src/pages/api",\n ]\n}')},e.generateBabelRc=function(e){var n=i.default.join(e||process.cwd(),".babelrc");return!!c.default.existsSync(n)||Je(e||process.cwd(),".babelrc",'{\n "presets": [\n [\n "next/babel",\n {\n "preset-react": { "throwIfNamespace": false },\n }\n ]\n ],\n "plugins": []\n}')},e.generateNextConfig=function(e){return Je(e||process.cwd(),"next.config.js",'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);')},e.generatePackageJson=function(e){return l(this,void 0,void 0,(function(){var n,t,o,s,a;return f(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),n=i.default.join(e||process.cwd(),"package.json"),(t=c.default.readFileSync(n)).length?(o=JSON.parse(t.toString()),(s=function(e){var n="dev"===e?Fe:Be,t="dev"===e?"devDependencies":"dependencies";o[t]&&"object"==typeof o[t]?o[t]=u(u({},o[t]),n):o[t]=n;var s,a=(s=o[t],Object.keys(s).sort().reduce((function(e,n){return e[n]=s[n],e}),{}));o[t]=a})("dev"),s("normal"),o.scripts&&"object"==typeof o.scripts?o.scripts=u(u({},o.scripts),Me):o.scripts=Me,o.resolutions=u(u({},o.resolutions),Ge),[4,Je(n,"",JSON.stringify(o,null,2))]):[3,2];case 1:return[2,r.sent()];case 2:return[3,4];case 3:return a=r.sent(),console.error(a),[2,!1];case 4:return[2]}}))}))},e.generateEnv=function(e,n){var t="dev"===e?"NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.dev/api/sf\nNEXT_PUBLIC_CDN_URL=https://cdn.myikas.dev/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.dev/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.dev/api/partners/graphql\n":"NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.com/api/sf\nNEXT_PUBLIC_CDN_URL=https://cdn.myikas.com/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.com/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.com/api/partners/graphql\n";return Je(n||process.cwd(),".env",t)},e}(),qe=function(){function e(){}return e.generate=function(e){return Je(i.default.join(process.cwd(),"src","theme.json"),"",JSON.stringify(e,null,2))},e.generateInitialThemeJsonFile=function(){var n={pages:[],components:[],name:"My Theme",customData:[],settings:{colors:[],favicon:{id:null},fontFamily:{name:null,variants:null},stockPreference:t.IkasThemeJsonStockPreference.SHOW_ALL}};return n.pages.push({id:"1",components:[],canonicals:null,description:null,disableIndex:null,name:null,pageTitle:null,slug:null,specifications:[],type:t.IkasThemeJsonPageType.INDEX}),e.generate(n)},e.getTheme=function(){return l(this,void 0,void 0,(function(){var e,n;return f(this,(function(t){try{return e=i.default.join(process.cwd(),"src","theme.json"),[2,(n=c.default.readFileSync(e)).length?JSON.parse(n.toString()):null]}catch(e){console.error(e)}return[2]}))}))},e}(),We=[{path:"[slug]/index.tsx",pageComponentName:"SlugPage",pageTypes:[t.IkasThemeJsonPageType.PRODUCT,t.IkasThemeJsonPageType.CATEGORY,t.IkasThemeJsonPageType.BRAND],isDynamicSSG:!0},{path:"account/orders/[id].tsx",pageComponentName:"OrderDetailPage",pageTypes:[t.IkasThemeJsonPageType.ORDER_DETAIL],isSSR:!0},{path:"account/orders/index.tsx",pageComponentName:"OrdersPage",pageTypes:[t.IkasThemeJsonPageType.ORDERS]},{path:"account/addresses.tsx",pageComponentName:"AddressesPage",pageTypes:[t.IkasThemeJsonPageType.ADDRESSES]},{path:"account/favorite-products.tsx",pageComponentName:"FavoriteProductsPage",pageTypes:[t.IkasThemeJsonPageType.FAVORITE_PRODUCTS]},{path:"account/forgot-password.tsx",pageComponentName:"ForgotPasswordPage",pageTypes:[t.IkasThemeJsonPageType.FORGOT_PASSWORD]},{path:"account/index.tsx",pageComponentName:"AccountPage",pageTypes:[t.IkasThemeJsonPageType.ACCOUNT]},{path:"account/login.tsx",pageComponentName:"LoginPage",pageTypes:[t.IkasThemeJsonPageType.LOGIN]},{path:"account/raffles.tsx",pageComponentName:"AccountRafflesPage",pageTypes:[t.IkasThemeJsonPageType.RAFFLE_ACCOUNT]},{path:"account/recover-password.tsx",pageComponentName:"RecoverPasswordPage",pageTypes:[t.IkasThemeJsonPageType.RECOVER_PASSWORD]},{path:"account/register.tsx",pageComponentName:"RegisterPage",pageTypes:[t.IkasThemeJsonPageType.REGISTER]},{path:"blog/[slug].tsx",pageComponentName:"BlogSlugPage",pageTypes:[t.IkasThemeJsonPageType.BLOG,t.IkasThemeJsonPageType.BLOG_CATEGORY],isDynamicSSG:!0},{path:"blog/index.tsx",pageComponentName:"BlogPage",pageTypes:[t.IkasThemeJsonPageType.BLOG_INDEX]},{path:"pages/[slug].tsx",pageComponentName:"CustomPage",pageTypes:[t.IkasThemeJsonPageType.CUSTOM],isDynamicSSG:!0},{path:"raffle/[slug].tsx",pageComponentName:"RafflePage",pageTypes:[t.IkasThemeJsonPageType.RAFFLE_DETAIL],isDynamicSSG:!0},{path:"raffle/index.tsx",pageComponentName:"RafflesPage",pageTypes:[t.IkasThemeJsonPageType.RAFFLE]},{path:"404.tsx",pageComponentName:"NotFoundPage",pageTypes:[t.IkasThemeJsonPageType.NOT_FOUND]},{path:"cart.tsx",pageComponentName:"CartPage",pageTypes:[t.IkasThemeJsonPageType.CART]},{path:"index.tsx",pageComponentName:"IndexPage",pageTypes:[t.IkasThemeJsonPageType.INDEX]},{path:"search.tsx",pageComponentName:"SearchPage",pageTypes:[t.IkasThemeJsonPageType.SEARCH]},{path:"checkout.tsx",pageComponentName:"CheckoutPage",pageTypes:[],isCheckout:!0},{path:"editor.tsx",pageComponentName:"EditorPage",pageTypes:[],isEditor:!0}],Xe=function(){function e(){}return e.generate=function(n,t){return l(this,void 0,void 0,(function(){var o;return f(this,(function(s){switch(s.label){case 0:return[4,De(i.default.join(t||process.cwd(),"src","components","__generated__"))];case 1:return s.sent(),[4,e.generateAllPageComponentImportsFiles(n,t)];case 2:return(o=s.sent())?[4,e.generateAllComponentImportsFileForEditor(n,t)]:[3,4];case 3:o=s.sent(),s.label=4;case 4:return[2,o]}}))}))},e.generateAllPageComponentImportsFiles=function(n,t){return l(this,void 0,void 0,(function(){var o,s,a,r,i;return f(this,(function(c){switch(c.label){case 0:o=!0,s=0,a=We,c.label=1;case 1:return s<a.length?(r=a[s],(i=o)?[4,e.generatePageComponentImportsFileWithInfo(r,n,t)]:[3,3]):[3,5];case 2:i=c.sent(),c.label=3;case 3:o=i,c.label=4;case 4:return s++,[3,1];case 5:return[2,o]}}))}))},e.generatePageComponentImportsFileWithInfo=function(n,t,o){return l(this,void 0,void 0,(function(){var s,a,r,i;return f(this,(function(c){switch(c.label){case 0:if(n.isCheckout||n.isEditor)return[2,!0];c.label=1;case 1:return c.trys.push([1,3,,4]),s=t.components,a=[],n.pageTypes.forEach((function(e){var n=t.pages.filter((function(n){return n.type===e}));n.length&&n.forEach((function(e){var n,t=e.components;(null===(n=e.specifications)||void 0===n?void 0:n.length)&&e.specifications.forEach((function(e){t.push.apply(t,e.components)})),a.push.apply(a,t.map((function(e){return e.componentId}))),t.forEach((function(e){if(s.find((function(n){return n.id===e.componentId}))){var n=je(e.propValues,"componentId");a.push.apply(a,n)}}))}))})),r=s.filter((function(e){return a.includes(e.id)&&"checkout"!==e.id})),[4,e.generateComponentImportsFile(r,n,o)];case 2:return[2,c.sent()];case 3:return i=c.sent(),console.error(i),[2,!1];case 4:return[2]}}))}))},e.generatePageComponentImportsFileWithType=function(n,o,s){if(n!==t.IkasThemeJsonPageType.CHECKOUT){try{var a=We.find((function(e){return e.pageTypes.includes(n)}));if(a)return e.generatePageComponentImportsFileWithInfo(a,o,s)}catch(e){console.error(e)}return!1}},e.generateComponentImportsFile=function(e,n,t){try{var o="";return e.filter((function(e){return"checkout"!==e.id})).forEach((function(e,n){o+="import Component".concat(n,' from "src/components/').concat(e.dir,'";\r\n')})),o+="\n const Components = {\n ".concat(e.map((function(e,n){return'"'.concat(e.id,'": Component').concat(n)})),"\n };\n "),o+="\r\n",o+="export default Components;",Je(i.default.join(t||process.cwd(),"src","components","__generated__","pages"),n.path.replace("tsx","ts"),o)}catch(e){return console.error(e),!1}},e.generateAllComponentImportsFileForEditor=function(e,n){return l(this,void 0,void 0,(function(){var t,o,s;return f(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),t='import dynamic from "next/dynamic";\r\n',t+='import { IkasEditorComponentLoader } from "@ikas/storefront";\r\n',t+="\r\n",t+="\r\n",(o=e.components.filter((function(e){return"checkout"!==e.id}))).filter((function(e){return"checkout"!==e.id})).forEach((function(e,n){t+="const Component".concat(n,' = dynamic(() => import("../').concat(e.dir,'"), { loading: () => <IkasEditorComponentLoader /> });\r\n')})),t+="\r\n",t+="\nconst Components = {\n ".concat(o.map((function(e,n){return'"'.concat(e.id,'": Component').concat(n)})),"\n};\n"),t+="\r\n",t+="export default Components;",[4,Je(i.default.join(n||process.cwd(),"src","components","__generated__"),"editor.tsx",t)];case 1:return[2,a.sent()];case 2:return s=a.sent(),console.error(s),[2,!1];case 3:return[2]}}))}))},e.generateAllComponentImportsFile=function(e,n){return l(this,void 0,void 0,(function(){var t,o,s;return f(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),t="",(o=e.components.filter((function(e){return"checkout"!==e.id}))).filter((function(e){return"checkout"!==e.id})).forEach((function(e,n){t+="import Component".concat(n,' from "../').concat(e.dir,'";\r\n')})),t+="\r\n",t+="\nconst Components = {\n ".concat(o.map((function(e,n){return'"'.concat(e.id,'": Component').concat(n)})),"\n};\n"),t+="\r\n",t+="export default Components;",[4,Je(i.default.join(n||process.cwd(),"src","components","__generated__"),"index.tsx",t)];case 1:return[2,a.sent()];case 2:return s=a.sent(),console.error(s),[2,!1];case 3:return[2]}}))}))},e}(),Ye=function(){function e(){}return e.generate=function(n){return l(this,void 0,void 0,(function(){var t,o,s,a,r,c,p,u,l,m,h;return f(this,(function(f){switch(f.label){case 0:return[4,De(i.default.join(n||process.cwd(),"src","pages"),["_app.tsx","_document.tsx","api"])];case 1:f.sent(),t=!0,o=0,s=We,f.label=2;case 2:return o<s.length?(a=s[o],(r=t)?[4,e.generatePageWithInfo(a,n)]:[3,4]):[3,6];case 3:r=f.sent(),f.label=4;case 4:t=r,f.label=5;case 5:return o++,[3,2];case 6:return c=We.find((function(e){return e.isCheckout})),p=We.find((function(e){return e.isEditor})),c?[4,e.generatePageWithInfo(c,n)]:[3,8];case 7:return l=f.sent(),[3,9];case 8:l=!1,f.label=9;case 9:return u=l,p?[4,e.generatePageWithInfo(p,n)]:[3,11];case 10:return h=f.sent(),[3,12];case 11:h=!1,f.label=12;case 12:return m=h,[2,t&&u&&m]}}))}))},e.generatePageWithInfo=function(e,n){return l(this,void 0,void 0,(function(){var t,o,s,a,r,c,p,u,l;return f(this,(function(f){switch(f.label){case 0:return f.trys.push([0,2,,3]),t="",e.isCheckout?t='import { CheckoutPage } from "@ikas/storefront";\nimport { CheckoutPage as CheckoutPageNext } from "@ikas/storefront-next";\n\nexport default CheckoutPage.default;\nexport const getStaticProps = CheckoutPageNext.getStaticProps;\n':e.isEditor?t='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':(o=e.pageComponentName+"Next",s="import { ".concat(e.pageComponentName,' } from "@ikas/storefront";\r\n'),a="import { ".concat(e.pageComponentName," as ").concat(o,' } from "@ikas/storefront-next";\r\n'),r='import Components from "src/components/__generated__/pages/'.concat(e.path.replace(".tsx",""),'";\r\n'),c="\nconst PageComponent = ".concat(e.pageComponentName,".default;\n\nconst Page = (props: any) => {\n return <PageComponent components={Components} {...props} />;\n};\n\nexport default Page;\r\n"),p=e.isDynamicSSG?"export const getStaticPaths = ".concat(o,".getStaticPaths;\r\n"):"",u=e.isSSR?"export const getServerSideProps = ".concat(o,".getServerSideProps;\r\n"):"export const getStaticProps = ".concat(o,".getStaticProps;\r\n"),t=s+a+r+c+p+u),[4,Je(i.default.join(n||process.cwd(),"src","pages"),e.path,t)];case 1:return[2,f.sent()];case 2:return l=f.sent(),console.error(l),[2,!1];case 3:return[2]}}))}))},e.generatePageWithType=function(n){return l(this,void 0,void 0,(function(){var t;return f(this,(function(o){switch(o.label){case 0:return(t=We.find((function(e){return e.pageTypes.includes(n)})))?[4,e.generatePageWithInfo(t)]:[3,2];case 1:return[2,o.sent()];case 2:return[2,!1]}}))}))},e}();const ze=o.promisify(c.default.copyFile),Ze=o.promisify(c.default.mkdir),$e=o.promisify(c.default.readdir);o.promisify(c.default.readFile);const He=o.promisify(c.default.stat),Ke=e.dirname(s.fileURLToPath("undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("ikas.cjs",document.baseURI).href));async function Qe(n,t){if(t=t||{},"string"!=typeof n||0===n.length)throw new Error("Missing destination directory");e.isAbsolute(n)||(n=e.resolve(process.cwd(),n));const o=function(n){return n&&n.debugDir?e.resolve(Ke,"..","lib","debug"):e.resolve(Ke,"..","lib")}();return await en(o,n,t),{src:o,dest:n}}async function en(n,t,o){try{await Ze(t,{recursive:!0})}catch(e){}const s=await $e(n);await Promise.all(s.map((async s=>{if("debug"===s&&!1===o.debugDir)return;const a=e.resolve(n,s),r=e.resolve(t,s),i=await He(a);i.isFile()?await ze(a,r):i.isDirectory()&&await en(a,r,o)})))}var nn=function(){function e(){}return e.generate=function(e){return l(this,void 0,void 0,(function(){return f(this,(function(n){switch(n.label){case 0:return[4,Qe(i.default.join(e||process.cwd(),"public","~partytown"))];case 1:return n.sent(),[2,!0]}}))}))},e}(),tn=function(){function e(){}return e.generate=function(n,t){return l(this,void 0,void 0,(function(){var o,s,a,r,c,u,l;return f(this,(function(f){switch(f.label){case 0:return[4,De(i.default.join(t||process.cwd(),"src","components","__generated__","types"))];case 1:f.sent(),o={content:"",imports:[],internalCustomDatas:[]},f.label=2;case 2:f.trys.push([2,5,,6]),n.customData.forEach((function(t){e.generateAllCustomDataTypes(t,o,n)})),s=0,a=0;do{s=o.internalCustomDatas.length,o.internalCustomDatas.forEach((function(t){e.generateAllCustomDataTypes(t,o,n)})),(a=o.internalCustomDatas.length)!==s&&(o.internalCustomDatas=o.internalCustomDatas.splice(s,a))}while(s!==a);return[4,on.generate(n,o)];case 3:return f.sent(),r=i.default.join(t||process.cwd(),"src","components","__generated__"),o.imports=p.default(o.imports),c="import {\r\n",o.imports.forEach((function(e){c+="\t".concat(e,",\r\n")})),u=(c+='} from "@ikas/storefront"\r\n\r\n')+o.content,[4,Je(r,"types.ts",u)];case 4:return[2,f.sent()];case 5:return l=f.sent(),console.log(l),[2,!1];case 6:return[2]}}))}))},e.generateAllCustomDataTypes=function(n,o,s){var a=n.type===t.IkasThemeJsonComponentPropType.ENUM,r="export ".concat(a?"enum":"type"," ").concat(e.generateTypeName(n)).concat(a?"":" = ","{ \r\n"),i="};\r\n\r\n";n.type!==t.IkasThemeJsonComponentPropType.DYNAMIC_LIST&&n.type!==t.IkasThemeJsonComponentPropType.STATIC_LIST||!n.nestedData?n.type===t.IkasThemeJsonComponentPropType.ENUM&&n.enumOptions?(o.content+=r,n.enumOptions.forEach((function(e){var n=e.value;e.value&&!isNaN(parseInt(e.value))&&(n="_"+e.value),o.content+='\t"'.concat(n,'" = "').concat(null==e?void 0:e.value,'",'),o.content+="\r\n"})),o.content+=i):(o.content+=r,n.nestedData&&n.nestedData.forEach((function(n){e.genenateCustomDataType(n,o,s),o.content+="\r\n"})),o.content+=i):e.generateAllCustomDataTypes(n.nestedData[0],o,s)},e.genenateCustomDataType=function(n,o,s){var a=e.getType(n,o,s);n.key&&n.key[0].match(/^\d/)&&(n.key="_"+n.key),o.content+="\t".concat(n.key).concat(n.isRequired?"":"?",": ").concat(a).concat([t.IkasThemeJsonComponentPropType.DYNAMIC_LIST,t.IkasThemeJsonComponentPropType.STATIC_LIST].includes(n.type)?"[]":"").concat(n.type===t.IkasThemeJsonComponentPropType.ENUM?",":";")},e.getType=function(n,o,s){var a="";switch(n.type){case t.IkasThemeJsonComponentPropType.TEXT:case t.IkasThemeJsonComponentPropType.RICH_TEXT:case t.IkasThemeJsonComponentPropType.COLOR:a="string";break;case t.IkasThemeJsonComponentPropType.BOOLEAN:a="boolean";break;case t.IkasThemeJsonComponentPropType.IMAGE:a="IkasImage",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.IMAGE_LIST:a="IkasImage[]",o.imports.push("IkasImage");break;case t.IkasThemeJsonComponentPropType.LINK:a="IkasNavigationLink",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.LIST_OF_LINK:a="IkasNavigationLink[]",o.imports.push("IkasNavigationLink");break;case t.IkasThemeJsonComponentPropType.PRODUCT_DETAIL:a="IkasProduct",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.PRODUCT_LIST:a="IkasProductList",o.imports.push("IkasProductList");break;case t.IkasThemeJsonComponentPropType.PRODUCT_ATTRIBUTE:a="IkasAttributeDetail",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.PRODUCT_ATTRIBUTE_LIST:a="IkasAttributeList",o.imports.push("IkasAttributeList");break;case t.IkasThemeJsonComponentPropType.BRAND:a="IkasBrand",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.BRAND_LIST:a="IkasBrandList",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.CATEGORY:a="IkasCategory",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.CATEGORY_LIST:a="IkasCategoryList",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.CUSTOM:var r=s.customData.find((function(e){return e.id===n.customDataId}));r&&(a=e.generateTypeName(r));break;case t.IkasThemeJsonComponentPropType.COMPONENT:a="IkasComponentRenderer",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.COMPONENT_LIST:a="IkasComponentRenderer[]",o.imports.push("IkasComponentRenderer");break;case t.IkasThemeJsonComponentPropType.BLOG:a="IkasBlog",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.BLOG_LIST:a="IkasBlogList",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.BLOG_CATEGORY:a="IkasBlogCategory",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.BLOG_CATEGORY_LIST:a="IkasBlogCategoryList",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.RAFFLE:a="IkasRaffle",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.RAFFLE_LIST:a="IkasRaffleList",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.SLIDER:a="IkasSlider",o.imports.push(a);break;case t.IkasThemeJsonComponentPropType.ENUM:case t.IkasThemeJsonComponentPropType.OBJECT:a=e.generateTypeName(n),o.content.includes("export enum ".concat(a))||o.internalCustomDatas.push(n);break;case t.IkasThemeJsonComponentPropType.DYNAMIC_LIST:case t.IkasThemeJsonComponentPropType.STATIC_LIST:n.nestedData&&(n.nestedData[0].type===t.IkasThemeJsonComponentPropType.OBJECT||n.nestedData[0].type===t.IkasThemeJsonComponentPropType.ENUM?(a=e.generateTypeName(n.nestedData[0]),o.content.includes("export type ".concat(a))||o.internalCustomDatas.push(n.nestedData[0])):a=e.getType(n.nestedData[0],o,s))}return a},e.generateTypeName=function(e){if(e.typescriptName)return e.typescriptName;var n=e.name||"";return(n=(n=n.replace(/\s/g,"")).replace(/\W/g,""))[0].match(/^\d/)&&(n="_"+n),e.type===t.IkasThemeJsonComponentPropType.ENUM&&(n+="Enum"),n},e}(),on=function(){function e(){}return e.generate=function(n,t){return l(this,void 0,void 0,(function(){return f(this,(function(o){return n.components.forEach((function(o){o.props.length>0&&"checkout"!==o.id&&(t.content+="export type ".concat(e.generatePropTypeName(o),"Props = {\n"),o.props.forEach((function(o){t.content+="\t".concat(o.name).concat(o.isRequired?"":"?",": ").concat(e.getType(o,n,t),";\n")})),t.content+="};\r\n\r\n")})),[2]}))}))},e.getType=function(e,n,o){var s="";switch(e.type){case t.IkasThemeJsonComponentPropType.TEXT:case t.IkasThemeJsonComponentPropType.RICH_TEXT:case t.IkasThemeJsonComponentPropType.COLOR:s="string";break;case t.IkasThemeJsonComponentPropType.BOOLEAN:s="boolean";break;case t.IkasThemeJsonComponentPropType.IMAGE:s="IkasImage",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.IMAGE_LIST:s="IkasImage[]",o.imports.push("IkasImage");break;case t.IkasThemeJsonComponentPropType.LINK:s="IkasNavigationLink",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.LIST_OF_LINK:s="IkasNavigationLink[]",o.imports.push("IkasNavigationLink");break;case t.IkasThemeJsonComponentPropType.PRODUCT_DETAIL:s="IkasProduct",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.PRODUCT_LIST:s="IkasProductList",o.imports.push("IkasProductList");break;case t.IkasThemeJsonComponentPropType.PRODUCT_ATTRIBUTE:s="IkasAttributeDetail",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.PRODUCT_ATTRIBUTE_LIST:s="IkasAttributeList[]",o.imports.push("IkasAttributeList");break;case t.IkasThemeJsonComponentPropType.BRAND:s="IkasBrand",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.BRAND_LIST:s="IkasBrandList",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.CATEGORY:s="IkasCategory",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.CATEGORY_LIST:s="IkasCategoryList",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.CUSTOM:var a=n.customData.find((function(n){return n.id===e.customDataId}));a&&(s=tn.getType(a,o,n),a.type!==t.IkasThemeJsonComponentPropType.DYNAMIC_LIST&&a.type!==t.IkasThemeJsonComponentPropType.STATIC_LIST||(s+="[]"));break;case t.IkasThemeJsonComponentPropType.COMPONENT:s="IkasComponentRenderer",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.COMPONENT_LIST:s="IkasComponentRenderer[]",o.imports.push("IkasComponentRenderer");break;case t.IkasThemeJsonComponentPropType.BLOG:s="IkasBlog",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.BLOG_LIST:s="IkasBlogList",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.BLOG_CATEGORY:s="IkasBlogCategory",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.BLOG_CATEGORY_LIST:s="IkasBlogCategoryList",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.RAFFLE:s="IkasRaffle",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.RAFFLE_LIST:s="IkasRaffleList",o.imports.push(s);break;case t.IkasThemeJsonComponentPropType.SLIDER:s="IkasSlider",o.imports.push(s)}return s},e.generatePropTypeName=function(e){if(""!==e.displayName){var n=(e.dir||"").split("-"),t="";return n.forEach((function(e,n){return t+=e.charAt(0).toUpperCase()+e.slice(1)})),t[0].match(/^\d/)&&(t="_"+t),t}},e}();function sn(e){return l(this,void 0,void 0,(function(){var n,t,o,s,a,r,i;return f(this,(function(c){switch(c.label){case 0:return[4,qe.getTheme()];case 1:return(n=c.sent())?[3,3]:[4,qe.generateInitialThemeJsonFile()];case 2:c.sent(),c.label=3;case 3:return[4,qe.getTheme()];case 4:return n=c.sent(),[4,qe.generate(n)];case 5:return(i=c.sent())?[4,Xe.generate(n)]:[3,7];case 6:i=c.sent(),c.label=7;case 7:return(r=i)?[4,Ye.generate()]:[3,9];case 8:r=c.sent(),c.label=9;case 9:return(a=r)?[4,nn.generate()]:[3,11];case 10:a=c.sent(),c.label=11;case 11:return(s=a)?[4,Ue.generate()]:[3,13];case 12:s=c.sent(),c.label=13;case 13:return(o=s)?[4,Ve.generate(e)]:[3,15];case 14:o=c.sent(),c.label=15;case 15:return(t=o)?[4,tn.generate(n)]:[3,17];case 16:t=c.sent(),c.label=17;case 17:return[2,t]}}))}))}!function(){l(this,void 0,void 0,(function(){var e,n;return f(this,(function(t){switch(t.label){case 0:return e=[{name:"generate",alias:"g",type:Boolean},{name:"dev",alias:"d",type:Boolean}],(n=Oe(e)).generate?[4,sn(!!n.dev?"dev":"prod")]:[3,2];case 1:t.sent()?console.log("Project files generated successfully!"):console.log("Project files generate failed!"),t.label=2;case 2:return[2]}}))}))}();
|
|
2
|
+
"use strict";var e=require("path"),t=require("fs"),n=require("@ikas/storefront-models"),o=require("lodash/uniq"),s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function a(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var r=1/0,i="[object Symbol]",p=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,c=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,m="\\ud800-\\udfff",u="\\u0300-\\u036f\\ufe20-\\ufe23",l="\\u20d0-\\u20f0",f="\\u2700-\\u27bf",h="a-z\\xdf-\\xf6\\xf8-\\xff",g="A-Z\\xc0-\\xd6\\xd8-\\xde",d="\\ufe0e\\ufe0f",T="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",I="['’]",k="["+m+"]",y="["+T+"]",C="["+u+l+"]",P="\\d+",b="["+f+"]",E="["+h+"]",N="[^"+m+T+P+f+h+g+"]",_="\\ud83c[\\udffb-\\udfff]",L="[^"+m+"]",x="(?:\\ud83c[\\udde6-\\uddff]){2}",A="[\\ud800-\\udbff][\\udc00-\\udfff]",S="["+g+"]",w="\\u200d",O="(?:"+E+"|"+N+")",v="(?:"+S+"|"+N+")",D="(?:['’](?:d|ll|m|re|s|t|ve))?",J="(?:['’](?:D|LL|M|RE|S|T|VE))?",R="(?:"+C+"|"+_+")"+"?",U="["+d+"]?",B=U+R+("(?:"+w+"(?:"+[L,x,A].join("|")+")"+U+R+")*"),j="(?:"+[b,x,A].join("|")+")"+B,F="(?:"+[L+C+"?",C,x,A,k].join("|")+")",G=RegExp(I,"g"),$=RegExp(C,"g"),M=RegExp(_+"(?="+_+")|"+F+B,"g"),V=RegExp([S+"?"+E+"+"+D+"(?="+[y,S,"$"].join("|")+")",v+"+"+J+"(?="+[y,S+O,"$"].join("|")+")",S+"?"+O+"+"+D,S+"+"+J,P,j].join("|"),"g"),q=RegExp("["+w+m+u+l+d+"]"),W=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,X="object"==typeof s&&s&&s.Object===Object&&s,Y="object"==typeof self&&self&&self.Object===Object&&self,z=X||Y||Function("return this")();var Z,H=(Z={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"ss"},function(e){return null==Z?void 0:Z[e]});function K(e){return q.test(e)}function Q(e){return K(e)?function(e){return e.match(M)||[]}(e):function(e){return e.split("")}(e)}var ee=Object.prototype.toString,te=z.Symbol,ne=te?te.prototype:void 0,oe=ne?ne.toString:void 0;function se(e){if("string"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&ee.call(e)==i}(e))return oe?oe.call(e):"";var t=e+"";return"0"==t&&1/e==-r?"-0":t}function ae(e,t,n){var o=e.length;return n=void 0===n?o:n,!t&&n>=o?e:function(e,t,n){var o=-1,s=e.length;t<0&&(t=-t>s?0:s+t),(n=n>s?s:n)<0&&(n+=s),s=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(s);++o<s;)a[o]=e[o+t];return a}(e,t,n)}function re(e){return null==e?"":se(e)}var ie,pe=(ie=function(e,t,n){return t=t.toLowerCase(),e+(n?me(re(t).toLowerCase()):t)},function(e){return function(e,t,n,o){var s=-1,a=e?e.length:0;for(o&&a&&(n=e[++s]);++s<a;)n=t(n,e[s],s,e);return n}(function(e,t,n){return e=re(e),void 0===(t=n?void 0:t)?function(e){return W.test(e)}(e)?function(e){return e.match(V)||[]}(e):function(e){return e.match(p)||[]}(e):e.match(t)||[]}(function(e){return(e=re(e))&&e.replace(c,H).replace($,"")}(e).replace(G,"")),ie,"")});var ce,me=(ce="toUpperCase",function(e){var t=K(e=re(e))?Q(e):void 0,n=t?t[0]:e.charAt(0),o=t?ae(t,1).join(""):e.slice(1);return n[ce]()+o});var ue,le=(ue=pe)&&"object"==typeof ue&&"default"in ue?ue.default:ue;function fe(e){return Array.isArray(e)?e:void 0===e?[]:function(e){return function(e){return"object"==typeof e&&null!==e}(e)&&"number"==typeof e.length}(e)||e instanceof Set?Array.from(e):[e]}function he(e){return Array.isArray(e)?e:void 0===e?[]:function(e){return function(e){return"object"==typeof e&&null!==e}(e)&&"number"==typeof e.length}(e)?Array.prototype.slice.call(e):[e]}function ge(e,t){const n=[],o=he(arguments);return o.splice(0,2),he(e).forEach(((e,s)=>{let a=[];o.forEach((t=>{"function"==typeof t?a=a.concat(t(e)):a.push(t)})),t(e)&&n.push({index:s,replaceWithValue:a})})),n.reverse().forEach((t=>{const n=[t.index,1].concat(t.replaceWithValue);e.splice.apply(e,n)})),e}const de={short:/^-([^\d-])$/,long:/^--(\S+)/,combinedShort:/^-[^\d-]{2,}$/,optEquals:/^(--\S+?)=(.*)/};class Te extends Array{load(e){if(this.clear(),e&&e!==process.argv)e=fe(e);else{e=process.argv.slice(0);const t=process.execArgv.some(be)?1:2;e.splice(0,t)}e.forEach((e=>this.push(String(e))))}clear(){this.length=0}expandOptionEqualsNotation(){if(this.some((e=>de.optEquals.test(e)))){const e=[];this.forEach((t=>{const n=t.match(de.optEquals);n?e.push(n[1],n[2]):e.push(t)})),this.clear(),this.load(e)}}expandGetoptNotation(){this.hasCombinedShortOptions()&&ge(this,de.combinedShort,Ie)}hasCombinedShortOptions(){return this.some((e=>de.combinedShort.test(e)))}static from(e){const t=new this;return t.load(e),t}}function Ie(e){return(e=e.slice(1)).split("").map((e=>"-"+e))}function ke(e){return de.optEquals.test(e)}function ye(e){return(de.short.test(e)||de.long.test(e))&&!de.optEquals.test(e)}function Ce(e){return de.short.test(e)?e.match(de.short)[1]:function(e){return de.long.test(e)&&!ke(e)}(e)?e.match(de.long)[1]:ke(e)?e.match(de.optEquals)[1].replace(/^--/,""):null}function Pe(e){return!(ye(e)||de.combinedShort.test(e)||de.optEquals.test(e))}function be(e){return["--eval","-e"].indexOf(e)>-1||e.startsWith("--eval=")}function Ee(e){return"object"==typeof e&&null!==e}function Ne(e){return void 0!==e}function _e(e){return"function"==typeof e}var Le={isNumber:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},isString:function(e){return"string"==typeof e},isBoolean:function(e){return"boolean"==typeof e},isPlainObject:function(e){return null!==e&&"object"==typeof e&&e.constructor===Object},isArrayLike:function(e){return Ee(e)&&"number"==typeof e.length},isObject:Ee,isDefined:Ne,isFunction:_e,isClass:function(e){return!!_e(e)&&/^class /.test(Function.prototype.toString.call(e))},isPrimitive:function(e){if(null===e)return!0;switch(typeof e){case"string":case"number":case"symbol":case"undefined":case"boolean":return!0;default:return!1}},isPromise:function(e){if(e){const t=Ne(Promise)&&e instanceof Promise,n=e.then&&"function"==typeof e.then;return!(!t&&!n)}return!1},isIterable:function(e){return!(null===e||!Ne(e))&&("function"==typeof e[Symbol.iterator]||"function"==typeof e[Symbol.asyncIterator])}};class xe{constructor(e){this.name=e.name,this.type=e.type||String,this.alias=e.alias,this.multiple=e.multiple,this.lazyMultiple=e.lazyMultiple,this.defaultOption=e.defaultOption,this.defaultValue=e.defaultValue,this.group=e.group;for(const t in e)this[t]||(this[t]=e[t])}isBoolean(){return this.type===Boolean||Le.isFunction(this.type)&&"Boolean"===this.type.name}isMultiple(){return this.multiple||this.lazyMultiple}static create(e){return new this(e)}}class Ae extends Array{validate(e){this.some((e=>!e.name))&&Se("INVALID_DEFINITIONS","Invalid option definitions: the `name` property is required on each definition");let t;this.some((e=>e.type&&"function"!=typeof e.type))&&Se("INVALID_DEFINITIONS","Invalid option definitions: the `type` property must be a setter fuction (default: `Boolean`)");this.some((e=>(t=e,Le.isDefined(e.alias)&&Le.isNumber(e.alias))))&&Se("INVALID_DEFINITIONS","Invalid option definition: to avoid ambiguity an alias cannot be numeric [--"+t.name+" alias is -"+t.alias+"]");this.some((e=>(t=e,Le.isDefined(e.alias)&&1!==e.alias.length)))&&Se("INVALID_DEFINITIONS","Invalid option definition: an alias must be a single character");this.some((e=>(t=e,"-"===e.alias)))&&Se("INVALID_DEFINITIONS",'Invalid option definition: an alias cannot be "-"');Oe(this.map((t=>e?t.name.toLowerCase():t.name)))&&Se("INVALID_DEFINITIONS","Two or more option definitions have the same name");Oe(this.map((t=>e&&Le.isDefined(t.alias)?t.alias.toLowerCase():t.alias)))&&Se("INVALID_DEFINITIONS","Two or more option definitions have the same alias");this.filter((e=>!0===e.defaultOption)).length>1&&Se("INVALID_DEFINITIONS","Only one option definition can be the defaultOption");this.some((e=>(t=e,e.isBoolean()&&e.defaultOption)))&&Se("INVALID_DEFINITIONS",`A boolean option ["${t.name}"] can not also be the defaultOption.`)}get(e,t){if(ye(e)){if(de.short.test(e)){const n=Ce(e);if(t){const e=n.toLowerCase();return this.find((t=>Le.isDefined(t.alias)&&t.alias.toLowerCase()===e))}return this.find((e=>e.alias===n))}{const n=Ce(e);if(t){const e=n.toLowerCase();return this.find((t=>t.name.toLowerCase()===e))}return this.find((e=>e.name===n))}}return this.find((t=>t.name===e))}getDefault(){return this.find((e=>!0===e.defaultOption))}isGrouped(){return this.some((e=>e.group))}whereGrouped(){return this.filter(we)}whereNotGrouped(){return this.filter((e=>!we(e)))}whereDefaultValueSet(){return this.filter((e=>Le.isDefined(e.defaultValue)))}static from(e,t){if(e instanceof this)return e;const n=super.from(fe(e),(e=>xe.create(e)));return n.validate(t),n}}function Se(e,t){const n=new Error(t);throw n.name=e,n}function we(e){return fe(e.group).some((e=>e))}function Oe(e){const t={};for(let n=0;n<e.length;n++){const o=e[n];if(t[o])return!0;Le.isDefined(o)&&(t[o]=!0)}}class ve{constructor(e,t){this.options=Object.assign({},t),this.definitions=Ae.from(e,this.options.caseInsensitive),this.argv=Te.from(this.options.argv),this.argv.hasCombinedShortOptions()&&ge(this.argv,de.combinedShort.test.bind(de.combinedShort),(e=>(e=e.slice(1)).split("").map((t=>({origArg:`-${e}`,arg:"-"+t})))))}*[Symbol.iterator](){const e=this.definitions;let t,n,o,s,a,r=!1,i=!1;for(let p of this.argv){if(Le.isPlainObject(p)&&(a=p.origArg,p=p.arg),i&&this.options.stopAtFirstUnknown){yield{event:"unknown_value",arg:p,name:"_unknown",value:void 0};continue}if(ye(p))t=e.get(p,this.options.caseInsensitive),n=void 0,t?(n=!!t.isBoolean()||null,s="set"):s="unknown_option";else if(ke(p)){const o=p.match(de.optEquals);t=e.get(o[1],this.options.caseInsensitive),t?t.isBoolean()?(yield{event:"unknown_value",arg:p,name:"_unknown",value:n,def:t},s="set",n=!0):(s="set",n=o[2]):s="unknown_option"}else Pe(p)&&(t?(n=p,s="set"):(t=this.definitions.getDefault(),t&&!r?(n=p,s="set"):(s="unknown_value",t=void 0)));o=t?t.name:"_unknown";const c={event:s,arg:p,name:o,value:n,def:t};a&&(c.subArg=p,c.arg=a),yield c,"_unknown"===o&&(i=!0),t&&t.defaultOption&&!t.isMultiple()&&"set"===s&&(r=!0),t&&t.isBoolean()&&(t=void 0),t&&!t.multiple&&Le.isDefined(n)&&null!==n&&(t=void 0),n=void 0,s=void 0,o=void 0,a=void 0}}}const De=new WeakMap;class Je{constructor(e){this.definition=new xe(e),this.state=null,this.resetToDefault()}get(){return De.get(this)}set(e){this._set(e,"set")}_set(e,t){const n=this.definition;if(n.isMultiple()){if(null!=e){const o=this.get();"default"===this.state&&(o.length=0),o.push(n.type(e)),this.state=t}}else{if(!n.isMultiple()&&"set"===this.state){const t=new Error(`Singular option already set [${this.definition.name}=${this.get()}]`);throw t.name="ALREADY_SET",t.value=e,t.optionName=n.name,t}null==e?De.set(this,e):(De.set(this,n.type(e)),this.state=t)}}resetToDefault(){Le.isDefined(this.definition.defaultValue)?this.definition.isMultiple()?De.set(this,fe(this.definition.defaultValue).slice()):De.set(this,this.definition.defaultValue):this.definition.isMultiple()?De.set(this,[]):De.set(this,null),this.state="default"}static create(e){return(e=new xe(e)).isBoolean()?Re.create(e):new this(e)}}class Re extends Je{set(e){super.set(!0)}static create(e){return new this(e)}}class Ue extends Map{constructor(e){super(),this.definitions=Ae.from(e),this.set("_unknown",Je.create({name:"_unknown",multiple:!0}));for(const e of this.definitions.whereDefaultValueSet())this.set(e.name,Je.create(e))}toObject(e){e=e||{};const t={};for(const n of this){const o=e.camelCase&&"_unknown"!==n[0]?le(n[0]):n[0],s=n[1];("_unknown"!==o||s.get().length)&&(t[o]=s.get())}return e.skipUnknown&&delete t._unknown,t}}class Be extends Ue{toObject(e){const t=super.toObject({skipUnknown:e.skipUnknown}),n=super.toObject(e),o=n._unknown;delete n._unknown;const s={_all:n};return o&&o.length&&(s._unknown=o),this.definitions.whereGrouped().forEach((n=>{const o=e.camelCase?le(n.name):n.name,a=t[n.name];for(const e of fe(n.group))s[e]=s[e]||{},Le.isDefined(a)&&(s[e][o]=a)})),this.definitions.whereNotGrouped().forEach((n=>{const o=e.camelCase?le(n.name):n.name,a=t[n.name];Le.isDefined(a)&&(s._none||(s._none={}),s._none[o]=a)})),s}}var je=a((function(e,t){(t=t||{}).stopAtFirstUnknown&&(t.partial=!0),e=Ae.from(e,t.caseInsensitive);const n=new ve(e,{argv:t.argv,stopAtFirstUnknown:t.stopAtFirstUnknown,caseInsensitive:t.caseInsensitive}),o=new(e.isGrouped()?Be:Ue)(e);for(const e of n){const n=e.subArg||e.arg;if(!t.partial){if("unknown_value"===e.event){const e=new Error(`Unknown value: ${n}`);throw e.name="UNKNOWN_VALUE",e.value=n,e}if("unknown_option"===e.event){const e=new Error(`Unknown option: ${n}`);throw e.name="UNKNOWN_OPTION",e.optionName=n,e}}let s;o.has(e.name)?s=o.get(e.name):(s=Je.create(e.def),o.set(e.name,s)),"_unknown"===e.name?s.set(n):s.set(e.value)}return o.toObject({skipUnknown:!t.partial,camelCase:t.camelCase})}));async function Fe(n,o){try{return t.readdirSync(n).forEach((s=>{o?.includes(s)||t.unlinkSync(e.join(n,s))})),!0}catch(e){return!1}}async function Ge(n,o,s){try{let a=n;const r=function(e){const t=e.split("/");if(t.length>1)return{dirParts:t.slice(0,t.length-1),filePart:t[t.length-1]};return{filePart:e}}(o);r.dirParts?.length&&(a=e.join(a,...r.dirParts)),t.existsSync(a)||t.mkdirSync(a,{recursive:!0});const i=e.join(a,r.filePart);return t.writeFileSync(i,s),!0}catch(e){return console.error(e),!1}}const $e=[{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.GetComponentDirs.getComponentDirs;\nexport const config = IkasLocalThemeAPI.GetComponentDirs.config;\n',fileName:"getComponentDirs.ts"},{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.GetTheme.getTheme;\nexport const config = IkasLocalThemeAPI.GetTheme.config;\n',fileName:"getTheme.ts"},{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.UpdateTheme.updateTheme;\nexport const config = IkasLocalThemeAPI.UpdateTheme.config;\n',fileName:"updateTheme.ts"},{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.UploadTheme.uploadTheme;\nexport const config = IkasLocalThemeAPI.UploadTheme.config;\n',fileName:"uploadTheme.ts"},{content:'import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.GetConfig.getConfig;\nexport const config = IkasLocalThemeAPI.GetConfig.config;\n',fileName:"getConfig.ts"}];class Me{static async generate(){const t=e.join(process.cwd(),"src","pages","api");await Fe(t);let n=!0;for(const e of $e)n=n&&await Me.generateAPI(e);return n}static generateAPI(t){return Ge(e.join(process.cwd(),"src","pages","api"),t.fileName,t.content)}}function Ve(e,t){return Object.entries(e||{}).reduce(((e,[n,o])=>n===t?e.concat(o):"object"==typeof o?e.concat(Ve(o,t)):e),[])}const qe={"@ikas/storefront":"^4.12.0-beta.75","@ikas/storefront-peer-deps":"^4.12.0-beta.75"},We={},Xe={"@types/react":"17.0.2","@types/react-dom":"17.0.2"},Ye={upgradeDependencies:"yarn upgrade @ikas/storefront @ikas/storefront-peer-deps",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"};class ze{static async generate(e,t){return await ze.generateTsConfig(t)&&await ze.generateBabelRc(t)&&await ze.generateNextConfig(t)&&await ze.generatePackageJson(t)&&await ze.generateEnv(e,t)}static generateTsConfig(e){return Ge(e||process.cwd(),"tsconfig.json",'{\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 "**/typings/*.ts",\n ],\n "exclude": [\n "node_modules",\n "./src/pages/api",\n ]\n}')}static generateBabelRc(n){const o=e.join(n||process.cwd(),".babelrc");return!!t.existsSync(o)||Ge(n||process.cwd(),".babelrc",'{\n "presets": [\n [\n "next/babel",\n {\n "preset-react": { "throwIfNamespace": false },\n }\n ]\n ],\n "plugins": []\n}')}static generateNextConfig(e){return Ge(e||process.cwd(),"next.config.js",'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);')}static async generatePackageJson(n){try{const o=e.join(n||process.cwd(),"package.json"),s=t.readFileSync(o);if(s.length){const e=JSON.parse(s.toString()),t=t=>{const n="dev"===t?We:qe,o="dev"===t?"devDependencies":"dependencies";e[o]&&"object"==typeof e[o]?e[o]={...e[o],...n}:e[o]=n;const s=(a=e[o],Object.keys(a).sort().reduce(((e,t)=>(e[t]=a[t],e)),{}));var a;e[o]=s};return t("dev"),t("normal"),e.scripts&&"object"==typeof e.scripts?e.scripts={...e.scripts,...Ye}:e.scripts=Ye,e.resolutions={...e.resolutions,...Xe},await Ge(o,"",JSON.stringify(e,null,2))}}catch(e){return console.error(e),!1}}static generateEnv(e,t){const n="dev"===e?"NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.dev/api/sf\nNEXT_PUBLIC_CDN_URL=https://cdn.myikas.dev/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.dev/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.dev/api/partners/graphql\n":"NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.com/api/sf\nNEXT_PUBLIC_CDN_URL=https://cdn.myikas.com/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.com/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.com/api/partners/graphql\n";return Ge(t||process.cwd(),".env",n)}}class Ze{static generate(t){return Ge(e.join(process.cwd(),"src","theme.json"),"",JSON.stringify(t,null,2))}static generateInitialThemeJsonFile(){const e={pages:[],components:[],name:"My Theme",customData:[],settings:{colors:[],favicon:{id:null},fontFamily:{name:null,variants:null},stockPreference:n.IkasThemeJsonStockPreference.SHOW_ALL}};return e.pages.push({id:"1",components:[],canonicals:null,description:null,disableIndex:null,name:null,pageTitle:null,slug:null,specifications:[],type:n.IkasThemeJsonPageType.INDEX}),Ze.generate(e)}static async getTheme(){try{const n=e.join(process.cwd(),"src","theme.json"),o=t.readFileSync(n);return o.length?JSON.parse(o.toString()):null}catch(e){console.error(e)}}}const He=[{path:"[slug]/index.tsx",pageComponentName:"SlugPage",pageTypes:[n.IkasThemeJsonPageType.PRODUCT,n.IkasThemeJsonPageType.CATEGORY,n.IkasThemeJsonPageType.BRAND],isDynamicSSG:!0},{path:"account/orders/[id].tsx",pageComponentName:"OrderDetailPage",pageTypes:[n.IkasThemeJsonPageType.ORDER_DETAIL],isSSR:!0},{path:"account/orders/index.tsx",pageComponentName:"OrdersPage",pageTypes:[n.IkasThemeJsonPageType.ORDERS]},{path:"account/addresses.tsx",pageComponentName:"AddressesPage",pageTypes:[n.IkasThemeJsonPageType.ADDRESSES]},{path:"account/favorite-products.tsx",pageComponentName:"FavoriteProductsPage",pageTypes:[n.IkasThemeJsonPageType.FAVORITE_PRODUCTS]},{path:"account/forgot-password.tsx",pageComponentName:"ForgotPasswordPage",pageTypes:[n.IkasThemeJsonPageType.FORGOT_PASSWORD]},{path:"account/activate.tsx",pageComponentName:"ActivateCustomerPage",pageTypes:[n.IkasThemeJsonPageType.ACTIVATE_CUSTOMER]},{path:"account/index.tsx",pageComponentName:"AccountPage",pageTypes:[n.IkasThemeJsonPageType.ACCOUNT]},{path:"account/login.tsx",pageComponentName:"LoginPage",pageTypes:[n.IkasThemeJsonPageType.LOGIN]},{path:"account/raffles.tsx",pageComponentName:"AccountRafflesPage",pageTypes:[n.IkasThemeJsonPageType.RAFFLE_ACCOUNT]},{path:"account/recover-password.tsx",pageComponentName:"RecoverPasswordPage",pageTypes:[n.IkasThemeJsonPageType.RECOVER_PASSWORD]},{path:"account/register.tsx",pageComponentName:"RegisterPage",pageTypes:[n.IkasThemeJsonPageType.REGISTER]},{path:"blog/[slug].tsx",pageComponentName:"BlogSlugPage",pageTypes:[n.IkasThemeJsonPageType.BLOG,n.IkasThemeJsonPageType.BLOG_CATEGORY],isDynamicSSG:!0},{path:"blog/index.tsx",pageComponentName:"BlogPage",pageTypes:[n.IkasThemeJsonPageType.BLOG_INDEX]},{path:"pages/[slug].tsx",pageComponentName:"CustomPage",pageTypes:[n.IkasThemeJsonPageType.CUSTOM],isDynamicSSG:!0},{path:"raffle/[slug].tsx",pageComponentName:"RafflePage",pageTypes:[n.IkasThemeJsonPageType.RAFFLE_DETAIL],isDynamicSSG:!0},{path:"raffle/index.tsx",pageComponentName:"RafflesPage",pageTypes:[n.IkasThemeJsonPageType.RAFFLE]},{path:"404.tsx",pageComponentName:"NotFoundPage",pageTypes:[n.IkasThemeJsonPageType.NOT_FOUND]},{path:"cart.tsx",pageComponentName:"CartPage",pageTypes:[n.IkasThemeJsonPageType.CART]},{path:"index.tsx",pageComponentName:"IndexPage",pageTypes:[n.IkasThemeJsonPageType.INDEX]},{path:"search.tsx",pageComponentName:"SearchPage",pageTypes:[n.IkasThemeJsonPageType.SEARCH]},{path:"checkout.tsx",pageComponentName:"CheckoutPage",pageTypes:[],isCheckout:!0},{path:"editor.tsx",pageComponentName:"EditorPage",pageTypes:[],isEditor:!0}];class Ke{static async generate(t,n){return await Fe(e.join(n||process.cwd(),"src","components","__generated__")),await Ke.generateAllPageComponentImportsFiles(t,n)&&await Ke.generateAllComponentImportsFileForEditor(t,n)}static async generateAllPageComponentImportsFiles(e,t){let n=!0;for(const o of He)n=n&&await Ke.generatePageComponentImportsFileWithInfo(o,e,t);return n}static async generatePageComponentImportsFileWithInfo(e,t,n){if(e.isCheckout||e.isEditor)return!0;try{const o=t.components,s=[];e.pageTypes.forEach((e=>{const n=t.pages.filter((t=>t.type===e));n.length&&n.forEach((e=>{const t=e.components;e.specifications?.length&&e.specifications.forEach((e=>{t.push(...e.components)})),s.push(...t.map((e=>e.componentId))),t.forEach((e=>{if(!o.find((t=>t.id===e.componentId)))return;const t=Ve(e.propValues,"componentId");s.push(...t)}))}))}));const a=o.filter((e=>s.includes(e.id)&&"checkout"!==e.id));return await Ke.generateComponentImportsFile(a,e,n)}catch(e){return console.error(e),!1}}static generatePageComponentImportsFileWithType(e,t,o){if(e!==n.IkasThemeJsonPageType.CHECKOUT){try{const n=He.find((t=>t.pageTypes.includes(e)));if(n)return Ke.generatePageComponentImportsFileWithInfo(n,t,o)}catch(e){console.error(e)}return!1}}static generateComponentImportsFile(t,n,o){try{let s="";return t.filter((e=>"checkout"!==e.id)).forEach(((e,t)=>{s+=`import Component${t} from "src/components/${e.dir}";\r\n`})),s+=`\n const Components = {\n ${t.map(((e,t)=>`"${e.id}": Component${t}`))}\n };\n `,s+="\r\n",s+="export default Components;",Ge(e.join(o||process.cwd(),"src","components","__generated__","pages"),n.path.replace("tsx","ts"),s)}catch(e){return console.error(e),!1}}static async generateAllComponentImportsFileForEditor(t,n){try{let o='import dynamic from "next/dynamic";\r\n';o+='import { IkasEditorComponentLoader } from "@ikas/storefront";\r\n',o+="\r\n",o+="\r\n";const s=t.components.filter((e=>"checkout"!==e.id));s.filter((e=>"checkout"!==e.id)).forEach(((e,t)=>{o+=`const Component${t} = dynamic(() => import("../${e.dir}"), { loading: () => <IkasEditorComponentLoader /> });\r\n`})),o+="\r\n",o+=`\nconst Components = {\n ${s.map(((e,t)=>`"${e.id}": Component${t}`))}\n};\n`,o+="\r\n",o+="export default Components;";const a=e.join(n||process.cwd(),"src","components","__generated__");return await Ge(a,"editor.tsx",o)}catch(e){return console.error(e),!1}}static async generateAllComponentImportsFile(t,n){try{let o="";const s=t.components.filter((e=>"checkout"!==e.id));s.filter((e=>"checkout"!==e.id)).forEach(((e,t)=>{o+=`import Component${t} from "../${e.dir}";\r\n`})),o+="\r\n",o+=`\nconst Components = {\n ${s.map(((e,t)=>`"${e.id}": Component${t}`))}\n};\n`,o+="\r\n",o+="export default Components;";const a=e.join(n||process.cwd(),"src","components","__generated__");return await Ge(a,"index.tsx",o)}catch(e){return console.error(e),!1}}}class Qe{static async generate(t){const n=e.join(t||process.cwd(),"src","pages");await Fe(n,["_app.tsx","_document.tsx","api"]);let o=!0;for(const e of He)o=o&&await Qe.generatePageWithInfo(e,t);const s=He.find((e=>e.isCheckout)),a=He.find((e=>e.isEditor)),r=!!s&&await Qe.generatePageWithInfo(s,t),i=!!a&&await Qe.generatePageWithInfo(a,t);return o&&r&&i}static async generatePageWithInfo(t,n){try{let o="";if(t.isCheckout)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';else if(t.isEditor)o='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';else{const e=t.pageComponentName+"Next",n=`import { ${t.pageComponentName} } from "@ikas/storefront";\r\n`,s=`import { ${t.pageComponentName} as ${e} } from "@ikas/storefront-next";\r\n`,a=`import Components from "src/components/__generated__/pages/${t.path.replace(".tsx","")}";\r\n`,r=`\nconst PageComponent = ${t.pageComponentName}.default;\n\nconst Page = (props: any) => {\n return <PageComponent components={Components} {...props} />;\n};\n\nexport default Page;\r\n`,i=t.isDynamicSSG?`export const getStaticPaths = ${e}.getStaticPaths;\r\n`:"";o=n+s+a+r+i+(t.isSSR?`export const getServerSideProps = ${e}.getServerSideProps;\r\n`:`export const getStaticProps = ${e}.getStaticProps;\r\n`)}return await Ge(e.join(n||process.cwd(),"src","pages"),t.path,o)}catch(e){return console.error(e),!1}}static async generatePageWithType(e){const t=He.find((t=>t.pageTypes.includes(e)));return!!t&&await Qe.generatePageWithInfo(t)}}class et{static async generate(t,n){await Fe(e.join(n||process.cwd(),"src","components","__generated__","types"));const s={content:"",imports:[],internalCustomDatas:[]};try{t.customData.forEach((e=>{et.generateAllCustomDataTypes(e,s,t)}));let a=0,r=0;do{a=s.internalCustomDatas.length,s.internalCustomDatas.forEach((e=>{et.generateAllCustomDataTypes(e,s,t)})),r=s.internalCustomDatas.length,r!==a&&(s.internalCustomDatas=s.internalCustomDatas.splice(a,r))}while(a!==r);await tt.generate(t,s);const i=e.join(n||process.cwd(),"src","components","__generated__");s.imports=o(s.imports);let p="import {\r\n";s.imports.forEach((e=>{p+=`\t${e},\r\n`})),p+='} from "@ikas/storefront"\r\n\r\n';const c=p+s.content;return await Ge(i,"types.ts",c)}catch(e){return console.log(e),!1}}static generateAllCustomDataTypes(e,t,o){const s=e.type===n.IkasThemeJsonComponentPropType.ENUM,a=`export ${s?"enum":"type"} ${et.generateTypeName(e)}${s?"":" = "}{ \r\n`,r="};\r\n\r\n";e.type!==n.IkasThemeJsonComponentPropType.DYNAMIC_LIST&&e.type!==n.IkasThemeJsonComponentPropType.STATIC_LIST||!e.nestedData?e.type===n.IkasThemeJsonComponentPropType.ENUM&&e.enumOptions?(t.content+=a,e.enumOptions.forEach((e=>{let n=e.value;e.value&&!isNaN(parseInt(e.value))&&(n="_"+e.value),t.content+=`\t"${n}" = "${e?.value}",`,t.content+="\r\n"})),t.content+=r):(t.content+=a,e.nestedData&&e.nestedData.forEach((e=>{et.genenateCustomDataType(e,t,o),t.content+="\r\n"})),t.content+=r):et.generateAllCustomDataTypes(e.nestedData[0],t,o)}static genenateCustomDataType(e,t,o){const s=et.getType(e,t,o);e.key&&e.key[0].match(/^\d/)&&(e.key="_"+e.key),t.content+=`\t${e.key}${e.isRequired?"":"?"}: ${s}${[n.IkasThemeJsonComponentPropType.DYNAMIC_LIST,n.IkasThemeJsonComponentPropType.STATIC_LIST].includes(e.type)?"[]":""}${e.type===n.IkasThemeJsonComponentPropType.ENUM?",":";"}`}static getType(e,t,o){let s="";switch(e.type){case n.IkasThemeJsonComponentPropType.TEXT:case n.IkasThemeJsonComponentPropType.RICH_TEXT:case n.IkasThemeJsonComponentPropType.COLOR:s="string";break;case n.IkasThemeJsonComponentPropType.BOOLEAN:s="boolean";break;case n.IkasThemeJsonComponentPropType.IMAGE:s="IkasImage",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.IMAGE_LIST:s="IkasImage[]",t.imports.push("IkasImage");break;case n.IkasThemeJsonComponentPropType.LINK:s="IkasNavigationLink",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.LIST_OF_LINK:s="IkasNavigationLink[]",t.imports.push("IkasNavigationLink");break;case n.IkasThemeJsonComponentPropType.PRODUCT_DETAIL:s="IkasProduct",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.PRODUCT_LIST:s="IkasProductList",t.imports.push("IkasProductList");break;case n.IkasThemeJsonComponentPropType.PRODUCT_ATTRIBUTE:s="IkasAttributeDetail",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.PRODUCT_ATTRIBUTE_LIST:s="IkasAttributeList",t.imports.push("IkasAttributeList");break;case n.IkasThemeJsonComponentPropType.BRAND:s="IkasBrand",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.BRAND_LIST:s="IkasBrandList",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.CATEGORY:s="IkasCategory",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.CATEGORY_LIST:s="IkasCategoryList",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.CUSTOM:const a=o.customData.find((t=>t.id===e.customDataId));a&&(s=et.generateTypeName(a));break;case n.IkasThemeJsonComponentPropType.COMPONENT:s="IkasComponentRenderer",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.COMPONENT_LIST:s="IkasComponentRenderer[]",t.imports.push("IkasComponentRenderer");break;case n.IkasThemeJsonComponentPropType.BLOG:s="IkasBlog",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.BLOG_LIST:s="IkasBlogList",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.BLOG_CATEGORY:s="IkasBlogCategory",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.BLOG_CATEGORY_LIST:s="IkasBlogCategoryList",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.RAFFLE:s="IkasRaffle",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.RAFFLE_LIST:s="IkasRaffleList",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.SLIDER:s="IkasSlider",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.VIDEO:s="IkasVideo",t.imports.push(s);break;case n.IkasThemeJsonComponentPropType.ENUM:case n.IkasThemeJsonComponentPropType.OBJECT:s=et.generateTypeName(e),t.content.includes(`export enum ${s}`)||t.internalCustomDatas.push(e);break;case n.IkasThemeJsonComponentPropType.DYNAMIC_LIST:case n.IkasThemeJsonComponentPropType.STATIC_LIST:e.nestedData&&(e.nestedData[0].type===n.IkasThemeJsonComponentPropType.OBJECT||e.nestedData[0].type===n.IkasThemeJsonComponentPropType.ENUM?(s=et.generateTypeName(e.nestedData[0]),t.content.includes(`export type ${s}`)||t.internalCustomDatas.push(e.nestedData[0])):s=et.getType(e.nestedData[0],t,o))}return s}static generateTypeName(e){if(e.typescriptName)return e.typescriptName;let t=e.name||"";return t=t.replace(/\s/g,""),t=t.replace(/\W/g,""),t[0].match(/^\d/)&&(t="_"+t),e.type===n.IkasThemeJsonComponentPropType.ENUM&&(t+="Enum"),t}}class tt{static async generate(e,t){e.components.forEach((n=>{n.props.length>0&&"checkout"!==n.id&&(t.content+=`export type ${tt.generatePropTypeName(n)}Props = {\n`,n.props.forEach((n=>{t.content+=`\t${n.name}${n.isRequired?"":"?"}: ${tt.getType(n,e,t)};\n`})),t.content+="};\r\n\r\n")}))}static getType(e,t,o){let s="";switch(e.type){case n.IkasThemeJsonComponentPropType.TEXT:case n.IkasThemeJsonComponentPropType.RICH_TEXT:case n.IkasThemeJsonComponentPropType.COLOR:s="string";break;case n.IkasThemeJsonComponentPropType.BOOLEAN:s="boolean";break;case n.IkasThemeJsonComponentPropType.IMAGE:s="IkasImage",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.IMAGE_LIST:s="IkasImage[]",o.imports.push("IkasImage");break;case n.IkasThemeJsonComponentPropType.LINK:s="IkasNavigationLink",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.LIST_OF_LINK:s="IkasNavigationLink[]",o.imports.push("IkasNavigationLink");break;case n.IkasThemeJsonComponentPropType.PRODUCT_DETAIL:s="IkasProduct",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.PRODUCT_LIST:s="IkasProductList",o.imports.push("IkasProductList");break;case n.IkasThemeJsonComponentPropType.PRODUCT_ATTRIBUTE:s="IkasAttributeDetail",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.PRODUCT_ATTRIBUTE_LIST:s="IkasAttributeList",o.imports.push("IkasAttributeList");break;case n.IkasThemeJsonComponentPropType.BRAND:s="IkasBrand",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.BRAND_LIST:s="IkasBrandList",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.CATEGORY:s="IkasCategory",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.CATEGORY_LIST:s="IkasCategoryList",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.CUSTOM:const a=t.customData.find((t=>t.id===e.customDataId));a&&(s=et.getType(a,o,t),a.type!==n.IkasThemeJsonComponentPropType.DYNAMIC_LIST&&a.type!==n.IkasThemeJsonComponentPropType.STATIC_LIST||(s+="[]"));break;case n.IkasThemeJsonComponentPropType.COMPONENT:s="IkasComponentRenderer",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.COMPONENT_LIST:s="IkasComponentRenderer[]",o.imports.push("IkasComponentRenderer");break;case n.IkasThemeJsonComponentPropType.BLOG:s="IkasBlog",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.BLOG_LIST:s="IkasBlogList",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.BLOG_CATEGORY:s="IkasBlogCategory",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.BLOG_CATEGORY_LIST:s="IkasBlogCategoryList",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.RAFFLE:s="IkasRaffle",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.RAFFLE_LIST:s="IkasRaffleList",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.SLIDER:s="IkasSlider",o.imports.push(s);break;case n.IkasThemeJsonComponentPropType.VIDEO:s="IkasVideo",o.imports.push(s)}return s}static generatePropTypeName(e){if(""===e.displayName)return;const t=(e.dir||"").split("-");let n="";return t.forEach(((e,t)=>n+=e.charAt(0).toUpperCase()+e.slice(1))),n[0].match(/^\d/)&&(n="_"+n),n}}!async function(){const e=[{name:"generate",alias:"g",type:Boolean},{name:"dev",alias:"d",type:Boolean}],t=je(e);if(t.generate){const e=!!t.dev;await async function(e){let t=await Ze.getTheme();t||await Ze.generateInitialThemeJsonFile();return t=await Ze.getTheme(),await Ze.generate(t)&&await Ke.generate(t)&&await Qe.generate()&&await Me.generate()&&await ze.generate(e)&&await et.generate(t)}(e?"dev":"prod")?console.log("Project files generated successfully!"):console.log("Project files generate failed!")}}();
|
package/build/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from "./scripts/generators";
|
|
2
|
-
import * as ThemeBuild from "./scripts/theme-build";
|
|
3
|
-
export { ThemeBuild };
|
|
1
|
+
export * from "./scripts/generators";
|
|
2
|
+
import * as ThemeBuild from "./scripts/theme-build";
|
|
3
|
+
export { ThemeBuild };
|
package/build/index.js
CHANGED
|
@@ -1 +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{
|
|
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};
|
|
@@ -1,5 +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
|
-
}
|
|
1
|
+
import { APIInfo } from "./info";
|
|
2
|
+
export declare class APIGenerator {
|
|
3
|
+
static generate(): Promise<boolean>;
|
|
4
|
+
static generateAPI(apiInfo: APIInfo): Promise<boolean>;
|
|
5
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"path";import{deleteDirContent as e,createFile as r}from"../../../utils/fs.js";import{API_INFO as s}from"./info.js";class a{static async generate(){const r=t.join(process.cwd(),"src","pages","api");await e(r);let o=!0;for(const t of s)o=o&&await a.generateAPI(t);return o}static generateAPI(e){return r(t.join(process.cwd(),"src","pages","api"),e.fileName,e.content)}}export{a as APIGenerator};
|
|
@@ -1,13 +1,13 @@
|
|
|
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 GET_CONFIG_CONTENT = "import { IkasLocalThemeAPI } from \"@ikas/storefront-next\";\n\nexport default IkasLocalThemeAPI.GetConfig.getConfig;\nexport const config = IkasLocalThemeAPI.GetConfig.config;\n";
|
|
6
|
-
export declare const API_INFO: {
|
|
7
|
-
content: string;
|
|
8
|
-
fileName: string;
|
|
9
|
-
}[];
|
|
10
|
-
export
|
|
11
|
-
content: string;
|
|
12
|
-
fileName: string;
|
|
13
|
-
};
|
|
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 GET_CONFIG_CONTENT = "import { IkasLocalThemeAPI } from \"@ikas/storefront-next\";\n\nexport default IkasLocalThemeAPI.GetConfig.getConfig;\nexport const config = IkasLocalThemeAPI.GetConfig.config;\n";
|
|
6
|
+
export declare const API_INFO: {
|
|
7
|
+
content: string;
|
|
8
|
+
fileName: string;
|
|
9
|
+
}[];
|
|
10
|
+
export type APIInfo = {
|
|
11
|
+
content: string;
|
|
12
|
+
fileName: string;
|
|
13
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const 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='import { IkasLocalThemeAPI } from "@ikas/storefront-next";\n\nexport default IkasLocalThemeAPI.GetConfig.getConfig;\nexport const config = IkasLocalThemeAPI.GetConfig.config;\n',m=[{content:e,fileName:"getComponentDirs.ts"},{content:o,fileName:"getTheme.ts"},{content:t,fileName:"updateTheme.ts"},{content:n,fileName:"uploadTheme.ts"},{content:a,fileName:"getConfig.ts"}];export{m as API_INFO,e as GET_COMPONENT_DIRS_API_CONTENT,a as GET_CONFIG_CONTENT,o as GET_THEME_API_CONTENT,t as UPDATE_THEME_API_CONTENT,n as UPLOAD_THEME_API_CONTENT};
|
|
@@ -1,11 +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
|
-
}
|
|
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
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"path";import{deleteDirContent as o,createFile as e}from"../../../utils/fs.js";import{IkasThemeJsonPageType as n}from"@ikas/storefront-models";import{PAGE_INFO as r,CHECKOUT_COMPONENT_ID as s}from"../pages/info.js";import{findAllByKey as c}from"../../../utils/helper.js";class i{static async generate(e,n){return await o(t.join(n||process.cwd(),"src","components","__generated__")),await i.generateAllPageComponentImportsFiles(e,n)&&await i.generateAllComponentImportsFileForEditor(e,n)}static async generateAllPageComponentImportsFiles(t,o){let e=!0;for(const n of r)e=e&&await i.generatePageComponentImportsFileWithInfo(n,t,o);return e}static async generatePageComponentImportsFileWithInfo(t,o,e){if(t.isCheckout||t.isEditor)return!0;try{const n=o.components,r=[];t.pageTypes.forEach((t=>{const e=o.pages.filter((o=>o.type===t));e.length&&e.forEach((t=>{const o=t.components;t.specifications?.length&&t.specifications.forEach((t=>{o.push(...t.components)})),r.push(...o.map((t=>t.componentId))),o.forEach((t=>{if(!n.find((o=>o.id===t.componentId)))return;const o=c(t.propValues,"componentId");r.push(...o)}))}))}));const p=n.filter((t=>r.includes(t.id)&&t.id!==s));return await i.generateComponentImportsFile(p,t,e)}catch(t){return console.error(t),!1}}static generatePageComponentImportsFileWithType(t,o,e){if(t!==n.CHECKOUT){try{const n=r.find((o=>o.pageTypes.includes(t)));if(n)return i.generatePageComponentImportsFileWithInfo(n,o,e)}catch(t){console.error(t)}return!1}}static generateComponentImportsFile(o,n,r){try{let s="";return o.filter((t=>"checkout"!==t.id)).forEach(((t,o)=>{s+=`import Component${o} from "src/components/${t.dir}";\r\n`})),s+=`\n const Components = {\n ${o.map(((t,o)=>`"${t.id}": Component${o}`))}\n };\n `,s+="\r\n",s+="export default Components;",e(t.join(r||process.cwd(),"src","components","__generated__","pages"),n.path.replace("tsx","ts"),s)}catch(t){return console.error(t),!1}}static async generateAllComponentImportsFileForEditor(o,n){try{let r='import dynamic from "next/dynamic";\r\n';r+='import { IkasEditorComponentLoader } from "@ikas/storefront";\r\n',r+="\r\n",r+="\r\n";const s=o.components.filter((t=>"checkout"!==t.id));s.filter((t=>"checkout"!==t.id)).forEach(((t,o)=>{r+=`const Component${o} = dynamic(() => import("../${t.dir}"), { loading: () => <IkasEditorComponentLoader /> });\r\n`})),r+="\r\n",r+=`\nconst Components = {\n ${s.map(((t,o)=>`"${t.id}": Component${o}`))}\n};\n`,r+="\r\n",r+="export default Components;";const c=t.join(n||process.cwd(),"src","components","__generated__");return await e(c,"editor.tsx",r)}catch(t){return console.error(t),!1}}static async generateAllComponentImportsFile(o,n){try{let r="";const s=o.components.filter((t=>"checkout"!==t.id));s.filter((t=>"checkout"!==t.id)).forEach(((t,o)=>{r+=`import Component${o} from "../${t.dir}";\r\n`})),r+="\r\n",r+=`\nconst Components = {\n ${s.map(((t,o)=>`"${t.id}": Component${o}`))}\n};\n`,r+="\r\n",r+="export default Components;";const c=t.join(n||process.cwd(),"src","components","__generated__");return await e(c,"index.tsx",r)}catch(t){return console.error(t),!1}}}export{i as ComponentImportsGenerator};
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
export declare const DEPENDENCIES: {
|
|
2
|
-
"@ikas/storefront": string;
|
|
3
|
-
"@ikas/storefront-peer-deps": string;
|
|
4
|
-
};
|
|
5
|
-
export declare const DEV_DEPENDENCIES: {};
|
|
6
|
-
export declare const RESOLUTIONS: {
|
|
7
|
-
"@types/react": string;
|
|
8
|
-
"@types/react-dom": string;
|
|
9
|
-
};
|
|
10
|
-
export declare const SCRIPTS: {
|
|
11
|
-
upgradeDependencies: string;
|
|
12
|
-
dev: string;
|
|
13
|
-
build: string;
|
|
14
|
-
start: string;
|
|
15
|
-
generate: string;
|
|
16
|
-
"prettier:all": string;
|
|
17
|
-
};
|
|
18
|
-
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 \"**/typings/*.ts\",\n ],\n \"exclude\": [\n \"node_modules\",\n \"./src/pages/api\",\n ]\n}";
|
|
19
|
-
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);";
|
|
20
|
-
export declare const DEV_ENV = "NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.dev/api/sf\nNEXT_PUBLIC_CDN_URL=https://cdn.myikas.dev/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.dev/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.dev/api/partners/graphql\n";
|
|
21
|
-
export declare const PROD_ENV = "NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.com/api/sf\nNEXT_PUBLIC_CDN_URL=https://cdn.myikas.com/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.com/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.com/api/partners/graphql\n";
|
|
22
|
-
export declare const BABEL_RC = "{\n \"presets\": [\n [\n \"next/babel\",\n {\n \"preset-react\": { \"throwIfNamespace\": false },\n }\n ]\n ],\n \"plugins\": []\n}";
|
|
1
|
+
export declare const DEPENDENCIES: {
|
|
2
|
+
"@ikas/storefront": string;
|
|
3
|
+
"@ikas/storefront-peer-deps": string;
|
|
4
|
+
};
|
|
5
|
+
export declare const DEV_DEPENDENCIES: {};
|
|
6
|
+
export declare const RESOLUTIONS: {
|
|
7
|
+
"@types/react": string;
|
|
8
|
+
"@types/react-dom": string;
|
|
9
|
+
};
|
|
10
|
+
export declare const SCRIPTS: {
|
|
11
|
+
upgradeDependencies: string;
|
|
12
|
+
dev: string;
|
|
13
|
+
build: string;
|
|
14
|
+
start: string;
|
|
15
|
+
generate: string;
|
|
16
|
+
"prettier:all": string;
|
|
17
|
+
};
|
|
18
|
+
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 \"**/typings/*.ts\",\n ],\n \"exclude\": [\n \"node_modules\",\n \"./src/pages/api\",\n ]\n}";
|
|
19
|
+
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);";
|
|
20
|
+
export declare const DEV_ENV = "NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.dev/api/sf\nNEXT_PUBLIC_CDN_URL=https://cdn.myikas.dev/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.dev/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.dev/api/partners/graphql\n";
|
|
21
|
+
export declare const PROD_ENV = "NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.com/api/sf\nNEXT_PUBLIC_CDN_URL=https://cdn.myikas.com/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.com/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.com/api/partners/graphql\n";
|
|
22
|
+
export declare const BABEL_RC = "{\n \"presets\": [\n [\n \"next/babel\",\n {\n \"preset-react\": { \"throwIfNamespace\": false },\n }\n ]\n ],\n \"plugins\": []\n}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const e={"@ikas/storefront":"^4.12.0-beta.75","@ikas/storefront-peer-deps":"^4.12.0-beta.75"},n={},s={"@types/react":"17.0.2","@types/react-dom":"17.0.2"},t={upgradeDependencies:"yarn upgrade @ikas/storefront @ikas/storefront-peer-deps",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 "**/typings/*.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_CDN_URL=https://cdn.myikas.dev/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.dev/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.dev/api/partners/graphql\n",i="NEXT_PUBLIC_ENV=local\nNEXT_PUBLIC_BASE_URL=https://api.myikas.com/api/sf\nNEXT_PUBLIC_CDN_URL=https://cdn.myikas.com/\nNEXT_PUBLIC_GQL_URL=https://api.myikas.com/api/sf/graphql\nNEXT_PUBLIC_PARTNER_GQL_URL=https://api.myikas.com/api/partners/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};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export
|
|
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): true | 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
|
-
}
|
|
1
|
+
export 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): true | 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
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"path";import t from"fs";import{sortObject as s}from"../../../utils/helper.js";import{createFile as r}from"../../../utils/fs.js";import{DEV_DEPENDENCIES as n,DEPENDENCIES as c,SCRIPTS as o,RESOLUTIONS as a,TS_CONFIG as i,BABEL_RC as p,NEXT_CONFIG as g,DEV_ENV as f,PROD_ENV as l}from"./content.js";class d{static async generate(e,t){return await d.generateTsConfig(t)&&await d.generateBabelRc(t)&&await d.generateNextConfig(t)&&await d.generatePackageJson(t)&&await d.generateEnv(e,t)}static generateTsConfig(e){return r(e||process.cwd(),"tsconfig.json",i)}static generateBabelRc(s){const n=e.join(s||process.cwd(),".babelrc");return!!t.existsSync(n)||r(s||process.cwd(),".babelrc",p)}static generateNextConfig(e){return r(e||process.cwd(),"next.config.js",g)}static async generatePackageJson(i){try{const p=e.join(i||process.cwd(),"package.json"),g=t.readFileSync(p);if(g.length){const e=JSON.parse(g.toString()),t=t=>{const r="dev"===t?n:c,o="dev"===t?"devDependencies":"dependencies";e[o]&&"object"==typeof e[o]?e[o]={...e[o],...r}:e[o]=r;const a=s(e[o]);e[o]=a};return t("dev"),t("normal"),e.scripts&&"object"==typeof e.scripts?e.scripts={...e.scripts,...o}:e.scripts=o,e.resolutions={...e.resolutions,...a},await r(p,"",JSON.stringify(e,null,2))}}catch(e){return console.error(e),!1}}static generateEnv(e,t){const s="dev"===e?f:l;return r(t||process.cwd(),".env",s)}}export{d as ConfigGenerator};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export * from "./api";
|
|
2
|
-
export * from "./components";
|
|
3
|
-
export * from "./config";
|
|
4
|
-
export * from "./pages";
|
|
5
|
-
export * from "./
|
|
6
|
-
export * from "./
|
|
7
|
-
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";
|
|
@@ -1,7 +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
|
-
}
|
|
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
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"path";import{deleteDirContent as t,createFile as n}from"../../../utils/fs.js";import{PAGE_INFO as o,CHECKOUT_PAGE_CONTENT as a,EDITOR_PAGE_CONTENT as r}from"./info.js";class s{static async generate(n){const a=e.join(n||process.cwd(),"src","pages");await t(a,["_app.tsx","_document.tsx","api"]);let r=!0;for(const e of o)r=r&&await s.generatePageWithInfo(e,n);const i=o.find((e=>e.isCheckout)),p=o.find((e=>e.isEditor)),c=!!i&&await s.generatePageWithInfo(i,n),g=!!p&&await s.generatePageWithInfo(p,n);return r&&c&&g}static async generatePageWithInfo(t,o){try{let s="";if(t.isCheckout)s=a;else if(t.isEditor)s=r;else{const e=t.pageComponentName+"Next",n=`import { ${t.pageComponentName} } from "@ikas/storefront";\r\n`,o=`import { ${t.pageComponentName} as ${e} } from "@ikas/storefront-next";\r\n`,a=`import Components from "src/components/__generated__/pages/${t.path.replace(".tsx","")}";\r\n`,r=`\nconst PageComponent = ${t.pageComponentName}.default;\n\nconst Page = (props: any) => {\n return <PageComponent components={Components} {...props} />;\n};\n\nexport default Page;\r\n`,i=t.isDynamicSSG?`export const getStaticPaths = ${e}.getStaticPaths;\r\n`:"";s=n+o+a+r+i+(t.isSSR?`export const getServerSideProps = ${e}.getServerSideProps;\r\n`:`export const getStaticProps = ${e}.getStaticProps;\r\n`)}return await n(e.join(o||process.cwd(),"src","pages"),t.path,s)}catch(e){return console.error(e),!1}}static async generatePageWithType(e){const t=o.find((t=>t.pageTypes.includes(e)));return!!t&&await s.generatePageWithInfo(t)}}export{s as PageGenerator};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { IkasThemeJsonPageType } from "@ikas/storefront-models";
|
|
2
|
-
export
|
|
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";
|
|
1
|
+
import { IkasThemeJsonPageType } from "@ikas/storefront-models";
|
|
2
|
+
export 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";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{IkasThemeJsonPageType as e}from"@ikas/storefront-models";
|
|
1
|
+
import{IkasThemeJsonPageType as e}from"@ikas/storefront-models";const 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/activate.tsx",pageComponentName:"ActivateCustomerPage",pageTypes:[e.ACTIVATE_CUSTOMER]},{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};
|
|
@@ -1,6 +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
|
-
}
|
|
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
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import e from"path";import n from"fs";import{createFile as t}from"../../../utils/fs.js";import{IkasThemeJsonStockPreference as s,IkasThemeJsonPageType as o}from"@ikas/storefront-models";class r{static generate(n){return t(e.join(process.cwd(),"src","theme.json"),"",JSON.stringify(n,null,2))}static generateInitialThemeJsonFile(){const e={pages:[],components:[],name:"My Theme",customData:[],settings:{colors:[],favicon:{id:null},fontFamily:{name:null,variants:null},stockPreference:s.SHOW_ALL}};return e.pages.push({id:"1",components:[],canonicals:null,description:null,disableIndex:null,name:null,pageTitle:null,slug:null,specifications:[],type:o.INDEX}),r.generate(e)}static async getTheme(){try{const t=e.join(process.cwd(),"src","theme.json"),s=n.readFileSync(t);return s.length?JSON.parse(s.toString()):null}catch(e){console.error(e)}}}export{r as ThemeJsonGenerator};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { IkasThemeJson, IkasThemeJsonComponent, IkasThemeJsonComponentProp, IkasThemeJsonCustomData } from "@ikas/storefront-models";
|
|
2
|
-
|
|
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 {};
|
|
1
|
+
import { IkasThemeJson, IkasThemeJsonComponent, IkasThemeJsonComponentProp, IkasThemeJsonCustomData } from "@ikas/storefront-models";
|
|
2
|
+
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 {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{IkasThemeJsonComponentPropType as e}from"@ikas/storefront-models";import a from"path";import{deleteDirContent as t,createFile as s}from"../../../utils/fs.js";import r from"lodash/uniq";class o{static async generate(e,p){await t(a.join(p||process.cwd(),"src","components","__generated__","types"));const i={content:"",imports:[],internalCustomDatas:[]};try{e.customData.forEach((a=>{o.generateAllCustomDataTypes(a,i,e)}));let t=0,c=0;do{t=i.internalCustomDatas.length,i.internalCustomDatas.forEach((a=>{o.generateAllCustomDataTypes(a,i,e)})),c=i.internalCustomDatas.length,c!==t&&(i.internalCustomDatas=i.internalCustomDatas.splice(t,c))}while(t!==c);await n.generate(e,i);const I=a.join(p||process.cwd(),"src","components","__generated__");i.imports=r(i.imports);let k="import {\r\n";i.imports.forEach((e=>{k+=`\t${e},\r\n`})),k+='} from "@ikas/storefront"\r\n\r\n';const m=k+i.content;return await s(I,"types.ts",m)}catch(e){return console.log(e),!1}}static generateAllCustomDataTypes(a,t,s){const r=a.type===e.ENUM,n=`export ${r?"enum":"type"} ${o.generateTypeName(a)}${r?"":" = "}{ \r\n`,p="};\r\n\r\n";a.type!==e.DYNAMIC_LIST&&a.type!==e.STATIC_LIST||!a.nestedData?a.type===e.ENUM&&a.enumOptions?(t.content+=n,a.enumOptions.forEach((e=>{let a=e.value;e.value&&!isNaN(parseInt(e.value))&&(a="_"+e.value),t.content+=`\t"${a}" = "${e?.value}",`,t.content+="\r\n"})),t.content+=p):(t.content+=n,a.nestedData&&a.nestedData.forEach((e=>{o.genenateCustomDataType(e,t,s),t.content+="\r\n"})),t.content+=p):o.generateAllCustomDataTypes(a.nestedData[0],t,s)}static genenateCustomDataType(a,t,s){const r=o.getType(a,t,s);a.key&&a.key[0].match(/^\d/)&&(a.key="_"+a.key),t.content+=`\t${a.key}${a.isRequired?"":"?"}: ${r}${[e.DYNAMIC_LIST,e.STATIC_LIST].includes(a.type)?"[]":""}${a.type===e.ENUM?",":";"}`}static getType(a,t,s){let r="";switch(a.type){case e.TEXT:case e.RICH_TEXT:case e.COLOR:r="string";break;case e.BOOLEAN:r="boolean";break;case e.IMAGE:r="IkasImage",t.imports.push(r);break;case e.IMAGE_LIST:r="IkasImage[]",t.imports.push("IkasImage");break;case e.LINK:r="IkasNavigationLink",t.imports.push(r);break;case e.LIST_OF_LINK:r="IkasNavigationLink[]",t.imports.push("IkasNavigationLink");break;case e.PRODUCT_DETAIL:r="IkasProduct",t.imports.push(r);break;case e.PRODUCT_LIST:r="IkasProductList",t.imports.push("IkasProductList");break;case e.PRODUCT_ATTRIBUTE:r="IkasAttributeDetail",t.imports.push(r);break;case e.PRODUCT_ATTRIBUTE_LIST:r="IkasAttributeList",t.imports.push("IkasAttributeList");break;case e.BRAND:r="IkasBrand",t.imports.push(r);break;case e.BRAND_LIST:r="IkasBrandList",t.imports.push(r);break;case e.CATEGORY:r="IkasCategory",t.imports.push(r);break;case e.CATEGORY_LIST:r="IkasCategoryList",t.imports.push(r);break;case e.CUSTOM:const n=s.customData.find((e=>e.id===a.customDataId));n&&(r=o.generateTypeName(n));break;case e.COMPONENT:r="IkasComponentRenderer",t.imports.push(r);break;case e.COMPONENT_LIST:r="IkasComponentRenderer[]",t.imports.push("IkasComponentRenderer");break;case e.BLOG:r="IkasBlog",t.imports.push(r);break;case e.BLOG_LIST:r="IkasBlogList",t.imports.push(r);break;case e.BLOG_CATEGORY:r="IkasBlogCategory",t.imports.push(r);break;case e.BLOG_CATEGORY_LIST:r="IkasBlogCategoryList",t.imports.push(r);break;case e.RAFFLE:r="IkasRaffle",t.imports.push(r);break;case e.RAFFLE_LIST:r="IkasRaffleList",t.imports.push(r);break;case e.SLIDER:r="IkasSlider",t.imports.push(r);break;case e.VIDEO:r="IkasVideo",t.imports.push(r);break;case e.ENUM:case e.OBJECT:r=o.generateTypeName(a),t.content.includes(`export enum ${r}`)||t.internalCustomDatas.push(a);break;case e.DYNAMIC_LIST:case e.STATIC_LIST:a.nestedData&&(a.nestedData[0].type===e.OBJECT||a.nestedData[0].type===e.ENUM?(r=o.generateTypeName(a.nestedData[0]),t.content.includes(`export type ${r}`)||t.internalCustomDatas.push(a.nestedData[0])):r=o.getType(a.nestedData[0],t,s))}return r}static generateTypeName(a){if(a.typescriptName)return a.typescriptName;let t=a.name||"";return t=t.replace(/\s/g,""),t=t.replace(/\W/g,""),t[0].match(/^\d/)&&(t="_"+t),a.type===e.ENUM&&(t+="Enum"),t}}class n{static async generate(e,a){e.components.forEach((t=>{t.props.length>0&&"checkout"!==t.id&&(a.content+=`export type ${n.generatePropTypeName(t)}Props = {\n`,t.props.forEach((t=>{a.content+=`\t${t.name}${t.isRequired?"":"?"}: ${n.getType(t,e,a)};\n`})),a.content+="};\r\n\r\n")}))}static getType(a,t,s){let r="";switch(a.type){case e.TEXT:case e.RICH_TEXT:case e.COLOR:r="string";break;case e.BOOLEAN:r="boolean";break;case e.IMAGE:r="IkasImage",s.imports.push(r);break;case e.IMAGE_LIST:r="IkasImage[]",s.imports.push("IkasImage");break;case e.LINK:r="IkasNavigationLink",s.imports.push(r);break;case e.LIST_OF_LINK:r="IkasNavigationLink[]",s.imports.push("IkasNavigationLink");break;case e.PRODUCT_DETAIL:r="IkasProduct",s.imports.push(r);break;case e.PRODUCT_LIST:r="IkasProductList",s.imports.push("IkasProductList");break;case e.PRODUCT_ATTRIBUTE:r="IkasAttributeDetail",s.imports.push(r);break;case e.PRODUCT_ATTRIBUTE_LIST:r="IkasAttributeList",s.imports.push("IkasAttributeList");break;case e.BRAND:r="IkasBrand",s.imports.push(r);break;case e.BRAND_LIST:r="IkasBrandList",s.imports.push(r);break;case e.CATEGORY:r="IkasCategory",s.imports.push(r);break;case e.CATEGORY_LIST:r="IkasCategoryList",s.imports.push(r);break;case e.CUSTOM:const n=t.customData.find((e=>e.id===a.customDataId));n&&(r=o.getType(n,s,t),n.type!==e.DYNAMIC_LIST&&n.type!==e.STATIC_LIST||(r+="[]"));break;case e.COMPONENT:r="IkasComponentRenderer",s.imports.push(r);break;case e.COMPONENT_LIST:r="IkasComponentRenderer[]",s.imports.push("IkasComponentRenderer");break;case e.BLOG:r="IkasBlog",s.imports.push(r);break;case e.BLOG_LIST:r="IkasBlogList",s.imports.push(r);break;case e.BLOG_CATEGORY:r="IkasBlogCategory",s.imports.push(r);break;case e.BLOG_CATEGORY_LIST:r="IkasBlogCategoryList",s.imports.push(r);break;case e.RAFFLE:r="IkasRaffle",s.imports.push(r);break;case e.RAFFLE_LIST:r="IkasRaffleList",s.imports.push(r);break;case e.SLIDER:r="IkasSlider",s.imports.push(r);break;case e.VIDEO:r="IkasVideo",s.imports.push(r)}return r}static generatePropTypeName(e){if(""===e.displayName)return;const a=(e.dir||"").split("-");let t="";return a.forEach(((e,a)=>t+=e.charAt(0).toUpperCase()+e.slice(1))),t[0].match(/^\d/)&&(t="_"+t),t}}export{o as CustomDataTypesGenerator,n as PropTypeGenarator};
|
package/build/scripts/ikas.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,3 +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>;
|
|
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>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from"lodash/cloneDeep";import e from"lodash/uniq";import{findAllByKey as s}from"../../utils/helper.js";import"path";import"fs";import{ComponentImportsGenerator as n}from"../generators/components/index.js";import{ConfigGenerator as t}from"../generators/config/index.js";import{PageGenerator as i}from"../generators/pages/index.js";import"@ikas/storefront-models";import{CustomDataTypesGenerator as p}from"../generators/types/index.js";function a(o,n){return!(!o.pages.some((o=>!n.pages.find((e=>e.id===o.id))))&&!n.pages.some((e=>!o.pages.find((o=>o.id===e.id)))))||o.pages.some((o=>{const t=n.pages.find((e=>e.id===o.id)),i=o.components;o.specifications?.length&&o.specifications.forEach((o=>{i.push(...o.components)}));const p=(o,e)=>{const n=s(o.propValues,"componentId");n.length&&e.push(...n)},a=[];i.forEach((o=>{p(o,a)}));const c=t?.components||[];t?.specifications?.length&&t.specifications.forEach((o=>{c.push(...o.components)}));const r=[];c.forEach((o=>{p(o,r)}));const m=e(i.map((o=>o.componentId)).concat(a)),f=e(c.map((o=>o.componentId)).concat(r)),g=f.some((o=>!m.includes(o))),d=m.some((o=>!f.includes(o)));return!!g||!!d}))}async function c(e,s){const a=o(e),c={components:[],pages:[],customData:[],name:"",settings:{}};return c.components=a[0].components,c.customData=a[0].customData,a.forEach((o=>{o.pages.forEach((o=>{const e=c.pages.find((e=>e.type===o.type)),s=e||o;s.components.push(...o.components),s.specifications||(s.specifications=[]),s.specifications.push(...o.specifications||[]),e||c.pages.push(s)}))})),await n.generate(c,s)&&await i.generate(s)&&await p.generate(c,s)&&await t.generate("prod",s)}export{c as generate,a as shouldDeploy};
|
package/build/utils/fs.d.ts
CHANGED
|
@@ -1,28 +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>;
|
|
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>;
|
package/build/utils/fs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r from"fs";import t from"path";function n(r){const t=r.split("/");if(t.length>1){return{dirParts:t.slice(0,t.length-1),filePart:t[t.length-1]}}return{filePart:r}}async function e(n,e){try{return r.readdirSync(n).forEach((i=>{e?.includes(i)||r.unlinkSync(t.join(n,i))})),!0}catch(r){return!1}}async function i(e,i,c){try{let o=e;const s=n(i);s.dirParts?.length&&(o=t.join(o,...s.dirParts)),r.existsSync(o)||r.mkdirSync(o,{recursive:!0});const l=t.join(o,s.filePart);return r.writeFileSync(l,c),!0}catch(r){return console.error(r),!1}}export{i as createFile,e as deleteDirContent,n as getFilePathParts};
|
package/build/utils/helper.d.ts
CHANGED
|
@@ -1,2 +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;
|
|
1
|
+
export declare function sortObject(obj: Record<string, any>): Record<string, any>;
|
|
2
|
+
export declare function findAllByKey(obj: Record<string, any>, keyToFind: string): any;
|
package/build/utils/helper.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function e(e){return Object.keys(e).sort().reduce(((t,c)=>(t[c]=e[c],t)),{})}function t(e,c){return Object.entries(e||{}).reduce(((e,[n,r])=>n===c?e.concat(r):"object"==typeof r?e.concat(t(r,c)):e),[])}export{t as findAllByKey,e as sortObject};
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ikas/storefront-cmd",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.30",
|
|
4
4
|
"description": "Command line tool for ikas storefront themes.",
|
|
5
5
|
"author": "ikas",
|
|
6
6
|
"license": "ISC",
|
|
7
7
|
"main": "./build/index.js",
|
|
8
8
|
"module": "./build/index.js",
|
|
9
9
|
"sideEffects": false,
|
|
10
|
+
"type": "module",
|
|
10
11
|
"files": [
|
|
11
12
|
"build"
|
|
12
13
|
],
|
|
@@ -16,33 +17,31 @@
|
|
|
16
17
|
"scripts": {
|
|
17
18
|
"pack": "npm pack",
|
|
18
19
|
"release": "npm publish",
|
|
19
|
-
"build": "rm -rf build && rollup -c && ./plugins/index.
|
|
20
|
+
"build": "npm install && rm -rf build && rollup -c --bundleConfigAsCjs && ./plugins/index.cjs",
|
|
20
21
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
21
22
|
},
|
|
22
23
|
"dependencies": {
|
|
23
24
|
"command-line-args": "^5.2.0"
|
|
24
25
|
},
|
|
25
26
|
"devDependencies": {
|
|
26
|
-
"@ikas/storefront-models": "^5.0.0-beta.
|
|
27
|
-
"@rollup/plugin-commonjs": "^22.0.0",
|
|
28
|
-
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
27
|
+
"@ikas/storefront-models": "^5.0.0-beta.30",
|
|
29
28
|
"@types/command-line-args": "^5.2.0",
|
|
30
29
|
"@types/lodash": "^4.14.182",
|
|
31
30
|
"@types/node": "^14.14.6",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"rollup": "^
|
|
35
|
-
"rollup-plugin-executable": "^1.6.3",
|
|
31
|
+
"rollup": "^4.5.1",
|
|
32
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
33
|
+
"rollup-plugin-typescript2": "^0.36.0",
|
|
36
34
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
37
|
-
"rollup
|
|
38
|
-
"rollup
|
|
39
|
-
"rollup-plugin-
|
|
35
|
+
"@rollup/plugin-commonjs": "^25.0.7",
|
|
36
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
37
|
+
"rollup-plugin-executable": "^1.6.3",
|
|
38
|
+
"typescript": "^5.1.6",
|
|
40
39
|
"ttypescript": "^1.5.12",
|
|
41
|
-
"typescript": "^4.
|
|
42
|
-
"
|
|
40
|
+
"typescript-transform-paths": "^3.4.6",
|
|
41
|
+
"lodash": "^4.17.21"
|
|
43
42
|
},
|
|
44
43
|
"peerDependencies": {
|
|
45
|
-
"
|
|
46
|
-
"
|
|
44
|
+
"lodash": "^4.17.21",
|
|
45
|
+
"@ikas/storefront-models": "^5.0.0-beta.30"
|
|
47
46
|
}
|
|
48
|
-
}
|
|
47
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import t from"fs";import{dirname as r,isAbsolute as i,resolve as o}from"path";import{promisify as a}from"util";import{fileURLToPath as e}from"url";const n=a(t.copyFile),s=a(t.mkdir),c=a(t.readdir);a(t.readFile);const u=a(t.stat),m=r(e(import.meta.url));function d(t){return t&&t.debugDir?o(m,"..","lib","debug"):o(m,"..","lib")}async function f(t,r){if(r=r||{},"string"!=typeof t||0===t.length)throw new Error("Missing destination directory");i(t)||(t=o(process.cwd(),t));const a=d();return await l(a,t,r),{src:a,dest:t}}async function l(t,r,i){try{await s(r,{recursive:!0})}catch(t){}const a=await c(t);await Promise.all(a.map((async a=>{if("debug"===a&&!1===i.debugDir)return;const e=o(t,a),s=o(r,a),c=await u(e);c.isFile()?await n(e,s):c.isDirectory()&&await l(e,s,i)})))}export{f as copyLibFiles,d as libDirPath};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var n=function(){return n=Object.assign||function(n){for(var t,e=1,r=arguments.length;e<r;e++)for(var o in t=arguments[e])Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o]);return n},n.apply(this,arguments)};function t(n,t,e,r){return new(e||(e=Promise))((function(o,a){function l(n){try{i(r.next(n))}catch(n){a(n)}}function c(n){try{i(r.throw(n))}catch(n){a(n)}}function i(n){var t;n.done?o(n.value):(t=n.value,t instanceof e?t:new e((function(n){n(t)}))).then(l,c)}i((r=r.apply(n,t||[])).next())}))}function e(n,t){var e,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(a){return function(c){return function(a){if(e)throw new TypeError("Generator is already executing.");for(;l;)try{if(e=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,r=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(o=l.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=t.call(n,l)}catch(n){a=[6,n],r=0}finally{e=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}function r(n,t,e){if(e||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return n.concat(r||Array.prototype.slice.call(t))}export{n as __assign,t as __awaiter,e as __generator,r as __spreadArray};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{__awaiter as t,__generator as r}from'./../../../ext/tslib/tslib.es6.js';import n from"path";import{copyLibFiles as o}from'./../../../ext/@builder.io/partytown/utils/index.mjs.js';var e=function(){function e(){}return e.generate=function(e){return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){switch(r.label){case 0:return t=n.join(e||process.cwd(),"public","~partytown"),[4,o(t)];case 1:return r.sent(),[2,!0]}}))}))},e}();export{e as PartyTownGenerator};
|