fa-toolkit
Version:
a devtool for fast app
1 lines • 17.6 kB
JavaScript
;var _0xa06800=_0x4160;function _createForOfIteratorHelper(r,e){var a=_0x4160,t=typeof Symbol!==a(506)&&r[Symbol[a(485)]]||r[a(440)];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r[a(445)]){t&&(r=t);var n=0,e=function(){};return{s:e,n:function(){return n>=r[a(445)]?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,c=!1;return{s:function(){t=t[a(452)](r)},n:function(){var r=a,e=t[r(461)]();return o=e[r(559)],e},e:function(r){c=!0,i=r},f:function(){var r=a;try{o||null==t[r(520)]||t.return()}finally{if(c)throw i}}}}function _unsupportedIterableToArray(r,e){var a=_0x4160;if(r){if("string"==typeof r)return _arrayLikeToArray(r,e);var t=Object[a(570)].toString[a(452)](r)[a(532)](8,-1);return"Map"===(t=t===a(446)&&r[a(571)]?r.constructor.name:t)||t===a(457)?Array.from(r):t===a(551)||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[a(512)](t)?_arrayLikeToArray(r,e):void 0}}function _arrayLikeToArray(r,e){(null==e||e>r.length)&&(e=r[_0x4160(445)]);for(var a=0,t=new Array(e);a<e;a++)t[a]=r[a];return t}!function(){for(var r=_0x4160,e=_0x5e59();;)try{if(272362==-parseInt(r(500))*(-parseInt(r(557))/2)+-parseInt(r(552))/3+parseInt(r(553))/4*(parseInt(r(443))/5)+-parseInt(r(439))/6+-parseInt(r(536))/7+-parseInt(r(555))/8*(parseInt(r(544))/9)+parseInt(r(562))/10)break;e.push(e.shift())}catch(r){e.push(e.shift())}}();var errLog,validDeclare,currManifestPath,depsType,manifeastDepsData,fs=require("fs"),path=require(_0xa06800(569)),url=require("url"),utils=require(_0xa06800(531)),_require=require(_0xa06800(441)),transFile=_require.transFile,mkParentDir=_require[_0xa06800(482)],REGEXP_INT=/^[-+]?[0-9]+$/,REGEXP_ID=/^[a-zA-Z][a-zA-Z0-9_]*(\.[a-zA-Z0-9_]+)+$/,REGEXP_FASTVIEW=/^fastView:\/\/.+/g,REGEXP_FILE=/^file:/,REGEXP_EXPRESSION=/^{{(.+?)}}$/,MAX_LENGTH_ID=64,projectPath=utils[_0xa06800(495)],getJsonData=utils.getJsonData,srcPath=path[_0xa06800(487)](projectPath,_0xa06800(573)),buildPath=path[_0xa06800(487)](projectPath,"build"),ARRAY_MAX_LENGTH=2048,requireAttrMap=[];function makeEnumValidator(r,e){var a=_0xa06800;return validator[a(464)][a(468)](null,r,e)}function bindArgs(r){for(var e=_0xa06800,a=arguments[e(445)],t=new Array(1<a?a-1:0),n=1;n<a;n++)t[n-1]=arguments[n];return r[e(468)].apply(r,[null][e(564)](t))}var validator={enum:function(t){var r,n=_0xa06800,i=1<arguments[n(445)]&&void 0!==arguments[1]?arguments[1]:n(519),e=2<arguments[n(445)]?arguments[2]:void 0,e=Array.isArray(e)?e:[e],a=t[n(558)](function(r,e){return r[e]=e,r},{}),o=_createForOfIteratorHelper(e);try{for(o.s();!(r=o.n()).done;)if(!a[r[n(556)]])return{value:!1,reason:function(r,e){var a=n;return""[a(564)](i,a(491))[a(564)](r,a(538))[a(564)](e,a(525))+a(459)[a(564)](t[a(487)](a(480)),a(486))}}}catch(r){o.e(r)}finally{o.f()}return{value:e}},string:function(r){var t=_0xa06800;return Object[t(570)][t(499)][t(452)](r)!==t(472)?{value:!1,reason:function(r,e){var a=t;return"ERROR: manifest.json configuration item '".concat(r,"' value '")[a(564)](e,a(502))+"(the value must be a character string)."}}:{value:!0}},integer:function(r){var t=_0xa06800,r=r;return t(449)===typeof r?r[t(554)](REGEXP_INT)?{value:!0,reason:function(r,e){var a=t;return"WARNING: manifest.json configuration item '".concat(r,"' ")+a(467).concat(e,a(542))}}:{value:!1,reason:function(r,e){var a=t;return a(547)[a(564)](r,a(538))[a(564)](e,a(502))+"(the value must be an integer)."}}:(r=(r||"")[t(499)]()).match(REGEXP_INT)?{value:!0}:{value:!1,reason:function(r,e){var a=t;return"ERROR: manifest.json configuration item '"[a(564)](r,a(538))[a(564)](e,a(502))+"(the value must be an integer)."}}},array:function(r){var t=_0xa06800;return Array[t(489)](r)?{value:r}:{value:!1,reason:function(r,e){var a=t;return a(496).concat(r,"' value '")[a(564)](e,a(549))}}},bool:function(r){var t=_0xa06800;return Object.prototype[t(499)][t(452)](r)!==t(575)?{value:!1,reason:function(r,e){var a=t;return a(547)[a(564)](r,a(538))[a(564)](e,a(502))+a(504)}}:{value:!0}},id:function(r){var t=_0xa06800;return r[t(445)]>MAX_LENGTH_ID?{value:!1,reason:function(r,e){var a=t;return a(547)[a(564)](r,"' value must less than 64 bytes.")}}:typeof r===t(449)&&r[t(554)](REGEXP_ID)?{value:!0}:{value:!1,reason:function(r,e){var a=t;return a(547).concat(r,a(538))[a(564)](e,a(462))}}},minSdkVer:function(t){var n=_0xa06800;return JSON[n(563)](fs[n(533)](currManifestPath,"utf-8")).minSdkVer<t?{value:!1,reason:function(r,e){var a=n;return"ERROR: '"[a(564)](r,a(476))+a(466).concat(t,a(517))}}:{value:!0}},type:function(r){var e=_0xa06800;return utils[e(548)](r)?{value:!0}:{value:!1,reason:function(){var r=e;return r(521)+r(478)}}},data:function(t){var n=_0xa06800,r=path[n(487)](path[n(509)](currManifestPath),""[n(564)](t,".json"));return fs[n(539)](r)?{value:!0}:{value:!1,reason:function(r,e){var a=n;return a(547)[a(564)](r,"' ")+a(467)[a(564)](e,a(473))[a(564)](t,".json'.")}}},cardId:function(r){var t=_0xa06800,n=path.basename(path[t(509)](currManifestPath));return r!==n?{value:!1,reason:function(r,e){var a=t;return a(547)[a(564)](r,"' ")+a(467)[a(564)](e,a(453)).concat(n,"'.")}}:{value:!0}},sourceConfigs:function(r){var a=_0xa06800;return JSON[a(581)](r)[a(445)]>ARRAY_MAX_LENGTH?{value:!1,reason:function(r){var e=a;return"ERROR: manifest.json configuration item '"[e(564)](r,"' ")+"value must less than "[e(564)](ARRAY_MAX_LENGTH,e(465))}}:{value:!0}},script:function(t){var n=_0xa06800;if(!t)return{value:t};var r=path[n(487)](path[n(509)](currManifestPath),"".concat(t,n(503)));return fs[n(539)](r)?{value:t}:{value:!1,reason:function(r,e){var a=n;return a(547)[a(564)](r,"' ")+a(467)[a(564)](e,"' is invalid, connot resolve '")[a(564)](t,a(528))}}},objectCheck:function(r){var t=_0xa06800;return"[object Object]"===Object[t(570)].toString.call(r)?{value:r}:{value:!1,reason:function(r,e){var a=t;return"ERROR: Attribute '"[a(564)](r,a(538))[a(564)](e,"' is invalid (the value can only be an object).")}}},extraConfigs:function(r){var t=_0xa06800;return JSON[t(581)](r)[t(445)]<2048?{value:r}:{value:!1,reason:function(r,e){var a=t;return a(547)[a(564)](r,"' ")+"value must less than 2048 bytes."}}}},validatorMap={id:{checkFns:[validator.id,validator.cardId],require:!0},ver:{checkFns:validator[_0xa06800(442)],require:!0},minSdkVer:{checkFns:[validator[_0xa06800(442)],bindArgs(validator[_0xa06800(567)],"1")],require:!0},type:{checkFns:validator[_0xa06800(490)],require:!0},data:{checkFns:[validator.string,validator.data],require:!0},entry:{checkFns:validator[_0xa06800(449)],require:!0},dataSourceConfigs:{checkFns:[validator.array,validator[_0xa06800(508)]],require:!1},script:{checkFns:[validator.string,validator[_0xa06800(577)]],require:!1},extraConfigs:{checkFns:[validator[_0xa06800(576)],validator[_0xa06800(460)]],require:!1}};function genDepsQcardData(r){var o=_0xa06800;return Array[o(489)](r)?r.reduce(function(r,e){var a,t,n=o,i=convertToVerData(e,currManifestPath);return i[n(526)]&&i[n(510)]&&(a=i[n(526)],t=i[n(510)],n=i[n(560)],r[a]={ver:t,minPlatformVer:n,uri:e}),r},{}):{}}function logHandler(t,r){var n=_0xa06800;r&&0<r.length&&r[n(497)](function(r){var e=n,a="".concat(r[e(498)],"\n");r[e(540)]&&(a=""[e(564)](r.reason,e(471))[e(564)](r[e(540)],"\n")),(r[e(498)][e(451)](e(519))?t[e(511)]:t[e(516)])[e(572)]({message:a})})}function convertToVerData(r,e){var a=_0xa06800;if(!r.match(REGEXP_FASTVIEW))return recordLog(a(484)[a(564)](r,a(502))+"(the value must be started with 'fastView://').",e),{};var t=new url[a(522)](r),n=new url.URLSearchParams(t.searchParams),t={cardId:t.hostname};return n[a(507)](a(510))&&n[a(507)](a(560))?(t[a(510)]=parseInt(n[a(507)](a(510))),t[a(560)]=parseInt(n[a(507)](a(560)))):recordLog(a(484)[a(564)](r,a(502))+"(the value must be contain 'ver' and 'minPlatformVer').",e),t}function _0x4160(r,e){var a=_0x5e59();return(_0x4160=function(r,e){return a[r-=439]})(r,e)}function checkQcardAvailability(r,e){var a=_0xa06800,t=e.ver,n=e[a(560)],e=e[a(526)];Object[a(456)](r)[a(492)](e)&&t===r[e][a(510)]&&n===r[e][a(560)]&&validDeclare[a(572)](e)}function validate(t,r){var e=_0xa06800,n=r[t],i=[],r=validatorMap[t];return r&&(r=void 0===(r=r[e(505)])?[]:r,(r=Array[e(489)](r)?r:[r])[e(497)](function(r){var a=e,r=r(n);(r=Array[a(489)](r)?r:[r])[a(497)](function(r){var e=a;r.reason&&typeof r[e(498)]===e(501)&&i.push({reason:r[e(498)](t,n)})})})),i}function manifestValidator(a){var t=_0xa06800;Object[t(456)](validatorMap).forEach(function(r){var e=t;validatorMap[r][e(580)]&&requireAttrMap[e(572)](r)}),requireAttrMap.forEach(function(r){var e=t;void 0!==a[r]||recordLog(e(463)[e(564)](r,"'."),currManifestPath)}),Object[t(456)](a)[t(497)](function(r){var e=t;validate(r,a)[e(497)](function(r){recordLog(r[e(498)],currManifestPath)})})}function recordLog(r,e){errLog.push({line:1,column:1,reason:r,filePath:e})}function traverse(r,e){var a,t=_0xa06800,n=2<arguments[t(445)]&&void 0!==arguments[2]?arguments[2]:[];if(!r)return[];r.type===t(546)&&(r[t(568)]&&r[t(568)][t(584)]?(a=(r[t(568)][t(584)]||"")[t(499)](),depsType===t(458)&&(a[t(554)](REGEXP_FASTVIEW)||a[t(451)]("@")||a[t(554)](REGEXP_EXPRESSION)?(a[t(554)](REGEXP_FASTVIEW)&&isCorrectPath(a,t(584),e)||a[t(451)]("@")||a[t(554)](REGEXP_EXPRESSION))&&n[t(572)](a):recordLog(t(529).concat(a,"' ")+t(579),e)),"[object Array]"===depsType&&a[t(554)](REGEXP_FASTVIEW)&&!n[t(492)](a)&&n[t(572)](a)):recordLog(t(561),e));t=r[t(545)]||[];return 0<t.length&&t.forEach(function(r){traverse(r,e,n)}),n}function getSrcQcardDeps(e){var r=_0xa06800,a=1<arguments[r(445)]&&void 0!==arguments[1]?arguments[1]:[];if(!fs[r(539)](e))return[];var t=JSON[r(563)](fs[r(533)](e,r(481)));return(Array[r(489)](t)?t:[t])[r(497)](function(r){traverse(r,e,a)}),a}function srcValidator(r){var e=_0xa06800,a=r.id,t=r[e(535)],n=r.dependencies,i=path.join(srcPath,a,""[e(564)](t,e(455))),o=genDepsQcardData(n),c=genDepsQcardData(getSrcQcardDeps(i));Object[e(456)](c)[e(497)](function(r){checkQcardAvailability(o,Object[e(585)](c[r],{cardId:r}),i,a)}),overwriteManifest({manifestJson:r,deps:c,srcJsonPath:i}),overwriteSrcJson(r)}function overwriteManifest(r){var e=_0xa06800,a=r[e(574)],t=r[e(583)],n=r[e(447)],r=path[e(487)](buildPath,a.id,e(488));fs[e(539)](r)&&(fs[e(541)](r,JSON[e(581)](a,null,2)),0<(a=Object.keys(t)[e(444)](function(r){return!validDeclare[e(492)](r)}))[e(445)]&&(a=a[e(475)](function(r){return t[r][e(534)]})[e(487)]("\n - "),recordLog("ERROR: These quick cards are not declared, please declare it in manifest.json.\n"+" - "[e(564)](a),n)))}function overwriteSrcJson(r){var e=_0xa06800,a=r.id,t=r[e(577)],n=path.join(buildPath,a),r=path[e(487)](n,"".concat(t,".js"));fs[e(539)](r)&&(a=path.join(n,"src.json"),t=fs[e(533)](r,"utf-8"),(n=getJsonData(a))[e(577)]=t,fs[e(541)](a,JSON[e(581)](n,null,4)),fs[e(477)](r))}function objDepsValidator(r,e){var a=_0xa06800,t=r.id,n=r[a(535)],i=r[a(450)],n=path[a(487)](srcPath,t,""[a(564)](n,".json"));manifeastDepsData=getDepsData(i);i=getSrcQcardDeps(n);overwriteDepsArr(t,manifeastDepsData),0<i[a(445)]&&(quickCardUris(i,manifeastDepsData,n),overwriteQuickCard(t,n)),overwriteDistManifest(t,manifeastDepsData,e),overwriteSrcJson(r)}function overwriteDistManifest(r,a,e){var t,n=_0xa06800;utils.norpk||(e=path.join(e,"card"),e=path[n(487)](e,r,n(488)),r=JSON[n(563)](fs.readFileSync(e,n(481))),t=r[n(450)],Object.keys(t)[n(497)](function(r){var e=a[r];e&&(t[r]=e)}),fs[n(541)](e,JSON[n(581)](r,null,2)))}function overwriteDepsArr(r,e){var a,t=_0xa06800,n=path.join(buildPath,r,"manifest.json");fs[t(539)](n)&&(a=[],r=getJsonData(n),Object.keys(e)[t(497)](function(r){a[t(572)](e[r])}),r[t(450)]=a,fs[t(541)](n,JSON.stringify(r,null,2)))}function overwriteQuickCard(r,e){var a=_0xa06800,r=path[a(487)](buildPath,r,"src.json");fs.existsSync(r)&&((e=getJsonData(e))[a(545)][a(497)](function(r){traverseChild(r)}),fs[a(541)](r,JSON[a(581)](e,null,2)))}function _0x5e59(){var r=["' is invalid ",".js","(the value must be a boolean).","checkFns","undefined","get","sourceConfigs","dirname","ver","errors","test","comboCard","(the value must be contain 'ver' and 'minPlatformVer').","hasOwnProperty","warnings","' to enable the feature.","card","ERROR","return","ERROR: In combo card manifest.json, the 'type'","URL","norpk","(the value should be started with 'fastView://' or 'file:').","' is invalid,\n ","cardId","ERROR: The key '",".js'.","ERROR: In combo card src.json, the value '","URLSearchParams","../common/utils","slice","readFileSync","uri","entry","992089hHSSjE","[object Undefined]","' value '","existsSync","filePath","writeFileSync","' is a character string, which should be an integer instead.","replace","36189xBxFZX","children","qcard","ERROR: manifest.json configuration item '","isComboCard","' is invalid (the value can only be an array).","minPlatformVersion","Arguments","427551OQcckM","16jbnpBi","match","904jJsfwJ","value","172vFmpTN","reduce","done","minPlatformVer","ERROR: In combo card src.json, you must reference 'quickCard' when card type is 'qcard'.","4901000mvynhJ","parse","concat","(the value must be an array or an object).","WARNING: Attribute 'dependencies' recommends that ","minSdkVer","data","path","prototype","constructor","push","src","manifestJson","[object Boolean]","objectCheck","script","?ver=","of quickCard must start with 'fastView://' or '@'.","require","stringify","&minPlatformVer=","deps","quickCard","assign","1616394nakEnn","@@iterator","../fa-compiler/utils","integer","647610zaEUEK","filter","length","Object","srcJsonPath","item 'dependencies'.","string","dependencies","startsWith","call","' is invalid, the value must keep pace with card directory name '","ERROR: Manifest.json does not contain configuration ",".json","keys","Set","[object Object]","only support below values ('","extraConfigs","next","' is invalid.","ERROR: Manifest.json does not contain configuration item '","enum"," bytes.","please ensure minSdkVer >= '","value '","bind","ERROR: The quick card is not declared, please declare it in manifest.json.\n"," - ","\n @ ","[object String]","' is invalid, connot resolve '","you declare it as an object.","map","' has configured for the project, ","unlinkSync"," configuration value must be 'comboCard' or 'page'.","hostname"," | ","utf-8","mkParentDir","searchParams","ERROR: Attribute 'dependencies' value '","iterator","').","join","manifest.json","isArray","type",": Attribute '","includes","fastView://","' of attribute 'dependencies' is invalid ","PROJECT_PATH","ERROR: Attribute '","forEach","reason","toString","3165LlBTJr","function"];return(_0x5e59=function(){return r})()}function traverseChild(r){var e,a=_0xa06800;r[a(490)]===a(546)&&r[a(568)].quickCard&&r[a(568)].quickCard[a(451)]("@")&&(e=r.data.quickCard[a(543)](/^@.*?/g,""),Object[a(570)][a(515)][a(452)](manifeastDepsData,e)&&(r.data.quickCard=manifeastDepsData[e]));r=r[a(545)]||[];0<r[a(445)]&&r[a(497)](function(r){traverseChild(r)})}function quickCardUris(e,i,o){for(var c=_0xa06800,s=e,u=e[c(445)];u--;)!function(){var a,t,n=c,r=e[u];e[u].startsWith("@")?(s[u]=e[u][n(543)](/^@.*?/g,""),Object[n(570)][n(515)][n(452)](i,s[u])||recordLog(n(469)+n(470)[n(564)](r),o)):e[u].match(REGEXP_FASTVIEW)&&(a=getFastViewData(e[u]),t=!1,Object[n(456)](i)[n(497)](function(r){var e=n,r=getFastViewData(i[r]);JSON.stringify(a)===JSON[e(581)](r)&&(t=!0)}),t||recordLog(n(469)+n(470)[n(564)](r),o))}()}function getFastViewData(r){var e=_0xa06800,a=(new Object,new url[e(522)](r)),r=new url[e(530)](a[e(483)]);return{cardId:a[e(479)],ver:r.get("ver"),minPlatformVer:r.get(e(560))}}function getDepsData(i){var o=_0xa06800,c=new Object;return Object[o(456)](i).forEach(function(r){var e=o;if(!(a=(i[r]||"")[e(499)]())[e(554)](REGEXP_FASTVIEW)&&!a[e(554)](REGEXP_FILE))return recordLog(e(527).concat(r,e(538)).concat(a,e(494))+e(524),currManifestPath),{};if(a[e(554)](REGEXP_FASTVIEW)&&isCorrectPath(a,e(450),currManifestPath)&&(c[r]=a),a[e(554)](REGEXP_FILE)){var a=a[e(543)](REGEXP_FILE,""),t=path[e(487)](currManifestPath,"..",a);if(!fs[e(539)](t))return recordLog("ERROR: When the value starts with 'file:', please enter 'file:' + "+"the correct relative path like 'file:../xxx' for '".concat(r,"'."),currManifestPath),{};var n=path[e(487)](t,e(488)),a=JSON.parse(fs.readFileSync(n,e(481))),t=a[e(526)],n=a.versionCode,a=a[e(550)];c[r]=e(493)[e(564)](t,e(578))[e(564)](n,e(582)).concat(a)}}),c}function isCorrectPath(r,e,a){var t=_0xa06800,n=new url.URL(r),n=new url[t(530)](n[t(483)]);return!(!n[t(507)](t(510))||!n[t(507)](t(560)))||(recordLog(t(496).concat(e,t(538))[t(564)](r,t(502))+t(514),a),!1)}function copyToDist(r){var e,a=_0xa06800;utils[a(523)]||(e=r[a(573)],r=r.output,a=path[a(487)](r,a(518)),mkParentDir(a),transFile(e,a,""))}function combocardJsonValidate(r,i){var o=_0xa06800;copyToDist(i),errLog=[];var e=utils.getFlexibleCfg()[o(513)],e=void 0===e?[]:e;0<e[o(445)]&&(e[o(497)](function(r){var e=o;validDeclare=[],manifeastDepsData=new Object;var a,t,n=path[e(487)](srcPath,r,e(488));fs.existsSync(n)?(currManifestPath=n,t=(a=JSON.parse(fs[e(533)](n,"utf-8")))[e(450)],depsType=Object[e(570)][e(499)][e(452)](t),manifestValidator(a),"[object Array]"===depsType?(srcValidator(a),recordLog(e(566)+e(474),n)):depsType===e(458)?objDepsValidator(a,i.output):depsType!==e(537)?recordLog("ERROR: Attribute 'dependencies' value '"[e(564)](t,e(502))+e(565),n):recordLog(e(454)+e(448),n)):recordLog("ERROR: Can not find combo card "[e(564)](r,"."))}),logHandler(r,errLog))}module.exports=combocardJsonValidate;