@atomicservice/ascf-toolkit-hvigor-plugin 1.0.8 → 1.0.10

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.
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.deepMerge=deepMerge,exports.readJson=readJson,exports.writeJson=writeJson,exports.adjustPathByPlatform=adjustPathByPlatform,exports.getNodeExe=getNodeExe,exports.getHdcPath=getHdcPath,exports.execSafe=execSafe,exports.isOhosTest=isOhosTest;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),os_1=__importDefault(require("os")),property_get_1=require("@ohos/hvigor-ohos-plugin/src/sdk/lib/property-get"),property_const_1=require("@ohos/hvigor-ohos-plugin/src/const/property-const"),child_process_1=require("child_process"),hvigor_1=require("@ohos/hvigor"),logger=hvigor_1.HvigorLogger.getLogger("ascfCommonUtils");function deepMerge(e,...t){if(!t.length)return e;const r=t.shift();if(!r)return deepMerge(e,...t);for(const t of Object.keys(r)){const o=r[t],s=e[t];isObject(o)&&t in e&&isObject(s)?deepMerge(s,o):e[t]=o}return deepMerge(e,...t)}function isObject(e){return"[object Object]"===Object.prototype.toString.call(e)}function readJson(e){return JSON.parse(fs_1.default.readFileSync(e,"utf-8"))}function writeJson(e,t){return fs_1.default.writeFileSync(e,JSON.stringify(t),"utf-8")}function adjustPathByPlatform(e){return"win32"===os_1.default.platform()?`"${e}"`:e}function getNodeExe(){const e=(new property_get_1.Property).getProperty(property_const_1.PropertyConst.NPM_DIR),t=os_1.default.platform();let r="node";return"win32"===t?r=path_1.default.join(e,"node.exe"):"darwin"!==t&&"linux"!==t||(r=path_1.default.join(e,"bin/node")),fs_1.default.existsSync(r)?adjustPathByPlatform(r):"node"}const SDK_DIR_WIN="C:\\Program Files\\Huawei\\DevEco Studio\\sdk",SDK_DIR_OSX="/Applications/DevEco-Studio.app/Contents/sdk",SDK_DIR_DEFAULT="win32"===os_1.default.platform()?SDK_DIR_WIN:SDK_DIR_OSX;function getHdcPath(){let e=(new property_get_1.Property).getProperty(property_const_1.PropertyConst.HWSDK_DIR);e||(e=process.env.DEVECO_SDK_HOME||SDK_DIR_DEFAULT);const t=e+"/default/openharmony/toolchains",r=os_1.default.platform();let o="hdc";return"win32"===r?o=path_1.default.join(t,"hdc.exe"):"darwin"!==r&&"linux"!==r||(o=path_1.default.join(t,"hdc")),fs_1.default.existsSync(o)?adjustPathByPlatform(o):"hdc"}function execSafe(e){var t;try{return null===(t=(0,child_process_1.execSync)(e))||void 0===t?void 0:t.toString("utf8")}catch(e){logger.warn("exec cmd error",e)}}function isOhosTest(e){const t=e.getParameter(),r=null==t?void 0:t.getExtParams();return(null==r?void 0:r.isOhosTest)||"true"===(null==r?void 0:r.isOhosTest)}
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var o=e(t),n=0;n<o.length;n++)"default"!==o[n]&&__createBinding(r,t,o[n]);return __setModuleDefault(r,t),r}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.deepMerge=deepMerge,exports.readJson=readJson,exports.writeJson=writeJson,exports.adjustPathByPlatform=adjustPathByPlatform,exports.getNodeExe=getNodeExe,exports.getHdcPath=getHdcPath,exports.execSafe=execSafe,exports.isOhosTest=isOhosTest,exports.getRuntimeVersionCode=getRuntimeVersionCode,exports.isEmulator=isEmulator,exports.parseJsonSafe=parseJsonSafe;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),os_1=__importDefault(require("os")),property_get_1=require("@ohos/hvigor-ohos-plugin/src/sdk/lib/property-get"),property_const_1=require("@ohos/hvigor-ohos-plugin/src/const/property-const"),child_process_1=require("child_process"),hvigor_1=require("@ohos/hvigor"),JSON5=__importStar(require("json5")),logger=hvigor_1.HvigorLogger.getLogger("ascfCommonUtils");function deepMerge(e,...t){if(!t.length)return e;const r=t.shift();if(!r)return deepMerge(e,...t);for(const t of Object.keys(r)){const o=r[t],n=e[t];isObject(o)&&t in e&&isObject(n)?deepMerge(n,o):e[t]=o}return deepMerge(e,...t)}function isObject(e){return"[object Object]"===Object.prototype.toString.call(e)}function readJson(e){return JSON.parse(fs_1.default.readFileSync(e,"utf-8"))}function writeJson(e,t){return fs_1.default.writeFileSync(e,JSON.stringify(t),"utf-8")}function adjustPathByPlatform(e){return"win32"===os_1.default.platform()?`"${e}"`:e}function getNodeExe(){const e=(new property_get_1.Property).getProperty(property_const_1.PropertyConst.NPM_DIR),t=os_1.default.platform();let r="node";return"win32"===t?r=path_1.default.join(e,"node.exe"):"darwin"!==t&&"linux"!==t||(r=path_1.default.join(e,"bin/node")),fs_1.default.existsSync(r)?adjustPathByPlatform(r):"node"}const SDK_DIR_WIN="C:\\Program Files\\Huawei\\DevEco Studio\\sdk",SDK_DIR_OSX="/Applications/DevEco-Studio.app/Contents/sdk",SDK_DIR_DEFAULT="win32"===os_1.default.platform()?SDK_DIR_WIN:SDK_DIR_OSX;function getHdcPath(){let e=(new property_get_1.Property).getProperty(property_const_1.PropertyConst.HWSDK_DIR);e||(e=process.env.DEVECO_SDK_HOME||SDK_DIR_DEFAULT);const t=e+"/default/openharmony/toolchains",r=os_1.default.platform();let o="hdc";return"win32"===r?o=path_1.default.join(t,"hdc.exe"):"darwin"!==r&&"linux"!==r||(o=path_1.default.join(t,"hdc")),fs_1.default.existsSync(o)?adjustPathByPlatform(o):"hdc"}function execSafe(e){var t;try{return null===(t=(0,child_process_1.execSync)(e))||void 0===t?void 0:t.toString("utf8")}catch(e){logger.warn("exec cmd error",e)}}function isOhosTest(e){const t=e.getParameter(),r=null==t?void 0:t.getExtParams();return(null==r?void 0:r.isOhosTest)||"true"===(null==r?void 0:r.isOhosTest)}function parseJsonSafe(e,t){try{return JSON5.parse(e)}catch(e){logger.error("parse json error",e)}return t}function getVersionCode(e){let t=0;if(!e)return 0;const r=e.split(/,\s*\n?/).map(e=>e.trim()).filter(Boolean);for(const e of r){const r=e.match(/^"([^"]+)"\s*:\s*(.*)$/);if(!r)continue;const o=Number(r[2]);o>t&&(t=o)}return t}function getRuntimeVersionCode(e){var t,r,o;let n=0;try{const s=null===(t=execSafe(`${getHdcPath()} shell "bm dump-shared -n ${e}"`))||void 0===t?void 0:t.trim();if(s){const e=JSON5.parse(s),t=(null===(r=null==e?void 0:e.sharedBundleInfo)||void 0===r?void 0:r.sharedModuleInfos)||[];null==t||t.sort((e={versionCode:10006300},t={versionCode:10006300})=>t.versionCode-e.versionCode),n=null===(o=t[0])||void 0===o?void 0:o.versionCode}}catch(t){const r=execSafe(`${getHdcPath()} shell "bm dump-shared -n ${e} | grep versionCode"`);r&&(n=getVersionCode(r))}return n}function isEmulator(){const e=execSafe(`${getHdcPath()} shell param get const.product.model`);return!(!e||"emulator"!==e.trim())}
package/lib/config.json CHANGED
@@ -1,4 +1,5 @@
1
1
  {
2
2
  "ascfHspUrl": "https://h5hosting-drcn.dbankcdn.cn/cch5/wallet/ascf-cn/ascfHsp.html?auto=1",
3
- "ascfRuntimeHspUrl": "https://h5hosting-drcn.dbankcdn.cn/cch5/wallet/ascf-cn/ascfRuntimeHsp.html?auto=1"
3
+ "ascfRuntimeHspUrl": "https://h5hosting-drcn.dbankcdn.cn/cch5/wallet/ascf-cn/ascfRuntimeHsp.html?auto=1",
4
+ "emulatorFaq" : "https://developer.huawei.com/consumer/cn/doc/atomic-ascf/faqs-runtime-emulator"
4
5
  }
@@ -1 +1 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,o,i,t){return new(i||(i=Promise))(function(r,n){function s(e){try{g(t.next(e))}catch(e){n(e)}}function l(e){try{g(t.throw(e))}catch(e){n(e)}}function g(e){var o;e.done?r(e.value):(o=e.value,o instanceof i?o:new i(function(e){e(o)})).then(s,l)}g((t=t.apply(e,o||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=ascfToolkitHvigorPlugin;const hvigor_ohos_plugin_1=require("@ohos/hvigor-ohos-plugin"),hvigor_1=require("@ohos/hvigor"),ascf_toolkit_1=__importDefault(require("@atomicservice/ascf-toolkit")),child_process_1=require("child_process"),path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),common_enum_1=require("../common/common-enum"),common_utils_1=require("../common/common-utils"),modifyShareInfoPlugin_1=require("./modifyShareInfoPlugin"),installAscfHspPlugin_1=require("./installAscfHspPlugin"),logger=hvigor_1.HvigorLogger.getLogger("ascfPlugin"),DEFAULT_OPTIONS={fixSharedHsp:!0,installAscfHsp:!0,debug:!0,compilerOptions:{swc:!1},skipAscfCompile:!1,skipApiValidator:!0};function ascfToolkitHvigorBuildNpm(e){e.registerTask({name:"buildNpm",run(){logger.info("start exec ascf buildNpm");const o=e.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_APP_PLUGIN);ascf_toolkit_1.default.buildNpm(o.getProjectPath()),logger.info("ascf buildNpm completed")}})}function ascfToolkitHvigorCli(e){e.registerTask({name:"ascf",run(){return __awaiter(this,void 0,void 0,function*(){var e,o,i;const t=`${(0,common_utils_1.getNodeExe)()} ${getAscfScript()} ${null!==(i=null===(o=null===(e=hvigor_1.hvigor.getParameter())||void 0===e?void 0:e.getExtParams())||void 0===o?void 0:o.args)&&void 0!==i?i:""}`;logger.info(`start exec ascf cli: ${t}`);try{yield executeCommand(t,logger.getLevel().levelStr.toLowerCase()),logger.info("ascf cli completed")}catch(e){logger.error("ascf cli error",e)}})}})}function initOptions(e){for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&("false"===e[o]&&(e[o]=!1),"true"===e[o]&&(e[o]=!0))}function ascfToolkitHvigorPlugin(e){return{pluginId:"ascfToolkitHvigorPlugin",apply(o){((null==e?void 0:e.hvigor)||hvigor_1.hvigor).nodesEvaluated(i=>__awaiter(this,void 0,void 0,function*(){var t,r;const n=null===(t=i.getParameter())||void 0===t?void 0:t.getExtParams();if((0,common_utils_1.isOhosTest)(i))return void logger.info("skip plugin when test");const s=getProjectConfigJson(o.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_APP_PLUGIN).getProjectPath());let l=(0,common_utils_1.deepMerge)(DEFAULT_OPTIONS,s,e,n);initOptions(l),logger.debug(`ascfToolkitHvigorPlugin options: extParams=${n} ${JSON.stringify(l)}`),yield execPlugin(l,o,i);try{if(i.isCommandEntryTask("GetHvigorDepsCachesDir"))o.registerTask({name:"GetHvigorDepsCachesDir",run(){console.log("ASCF_GET_HVIGOR_DEPS_CACHES_DIR="+ascf_toolkit_1.default.getAscfToolkitDirname())}});else if(i.isCommandEntryTask("buildNpm"))ascfToolkitHvigorBuildNpm(o);else if(i.isCommandEntryTask("ascf"))ascfToolkitHvigorCli(o);else{const e=o.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_APP_PLUGIN),t=path_1.default.join(e.getProjectPath(),"ascf/ascf_src/app.json");if(l.skipAscfCompile||!fs_1.default.existsSync(t))return void logger.debug("skipAscfCompile");(null===(r=i.getCommandEntryTask())||void 0===r?void 0:r.length)||(logger.debug("start exec ascf quickGenSub"),yield ascf_toolkit_1.default.quickGenerateSubpackage(),logger.debug("ascf quickGenSub completed")),o.subNodes(o=>{const i=o.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_HAP_PLUGIN);i&&"entry"===i.getModuleType()&&o.registerTask({name:"ascfCompile",run(){return __awaiter(this,void 0,void 0,function*(){var o;logger.debug("start exec ascf compile");const i=e.getBuildMode();let t=`${(0,common_utils_1.getNodeExe)()} ${getAscfScript()} compile -c ${"debug"===i?"-m":""} ${e.getProjectPath()}`;const r=logger.getLevel().levelStr.toLowerCase();l.debug&&r===common_enum_1.LogLevel.DEBUG&&(t+=" --debug"),l.compilerOptions.swc&&(t+=" --swc");const n=null===(o=l.devtool)||void 0===o?void 0:o.toLowerCase();n&&(t+=` --devtool=${n}`);t+=` --logging=${(l.logging?l.logging:r).toLowerCase()}`,l.templateHoist&&(t+=" --templateHoist"),t+=` --skipApiValidator=${l.skipApiValidator}`,t+=` --disableSubpackages=${l.disableSubpackages}`,logger.debug(t),yield executeCommand(t,r),logger.debug("ascf compile completed")})},dependencies:["default@PreBuild"],postDependencies:["assembleHap"]})})}}catch(e){logger.errorExit(new Error(String(e)))}}))}}}function execPlugin(e,o,i){return __awaiter(this,void 0,void 0,function*(){const t=i.getNodeByName("entry");t&&e.fixSharedHsp&&(yield(0,modifyShareInfoPlugin_1.doModifyShareInfoPlugin)(t).catch(e=>logger.error(e))),o&&e.installAscfHsp&&(yield(0,installAscfHspPlugin_1.doInstallAscfHspPlugin)(o,i).catch(e=>logger.error(e)))})}function getProjectConfigJson(e){const o=path_1.default.join(e,"ascf","ascf_src","ascf.config.json");if(fs_1.default.existsSync(o)){const e=(0,common_utils_1.readJson)(o);return logger.debug(`project json is ${JSON.stringify(e)}`),e}return logger.debug(`${o} is not Exists`),{}}function executeCommand(e,o){return new Promise((i,t)=>{var r,n;const s=(0,child_process_1.exec)(e);null===(r=s.stdout)||void 0===r||r.on("data",e=>{printLogger(e,o)}),null===(n=s.stderr)||void 0===n||n.on("error",e=>{t(e)}),s.on("close",e=>{i(e)})})}function printLogger(e,o){0!==e.length&&(o===common_enum_1.LogLevel.INFO?logger.info(`ASCF compiler log:\n${e}`):o===common_enum_1.LogLevel.WARN?logger.warn(`ASCF compiler log:\n${e}`):o===common_enum_1.LogLevel.ERROR?logger.error(`ASCF compiler log:\n${e}`):logger.debug(`ASCF compiler log:\n${e}`))}function getAscfScript(){return(0,common_utils_1.adjustPathByPlatform)(path_1.default.join(ascf_toolkit_1.default.getAscfToolkitDirname(),"bin","ascf.js"))}
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,o,i,t){return new(i||(i=Promise))(function(r,n){function s(e){try{g(t.next(e))}catch(e){n(e)}}function l(e){try{g(t.throw(e))}catch(e){n(e)}}function g(e){var o;e.done?r(e.value):(o=e.value,o instanceof i?o:new i(function(e){e(o)})).then(s,l)}g((t=t.apply(e,o||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=ascfToolkitHvigorPlugin;const hvigor_ohos_plugin_1=require("@ohos/hvigor-ohos-plugin"),hvigor_1=require("@ohos/hvigor"),ascf_toolkit_1=__importDefault(require("@atomicservice/ascf-toolkit")),child_process_1=require("child_process"),path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),common_enum_1=require("../common/common-enum"),common_utils_1=require("../common/common-utils"),modifyShareInfoPlugin_1=require("./modifyShareInfoPlugin"),installAscfHspPlugin_1=require("./installAscfHspPlugin"),logger=hvigor_1.HvigorLogger.getLogger("ascfPlugin"),DEFAULT_OPTIONS={fixSharedHsp:!0,installAscfHsp:!0,debug:!0,compilerOptions:{swc:!1},skipAscfCompile:!1,skipApiValidator:!0};function ascfToolkitHvigorBuildNpm(e){e.registerTask({name:"buildNpm",run(){logger.info("start exec ascf buildNpm");const o=e.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_APP_PLUGIN);ascf_toolkit_1.default.buildNpm(o.getProjectPath()),logger.info("ascf buildNpm completed")}})}function ascfToolkitHvigorCli(e){e.registerTask({name:"ascf",run(){return __awaiter(this,void 0,void 0,function*(){var e,o,i;const t=`${(0,common_utils_1.getNodeExe)()} ${getAscfScript()} ${null!==(i=null===(o=null===(e=hvigor_1.hvigor.getParameter())||void 0===e?void 0:e.getExtParams())||void 0===o?void 0:o.args)&&void 0!==i?i:""}`;logger.info(`start exec ascf cli: ${t}`);try{yield executeCommand(t,logger.getLevel().levelStr.toLowerCase()),logger.info("ascf cli completed")}catch(e){logger.error("ascf cli error",e)}})}})}function initOptions(e){for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&("false"===e[o]&&(e[o]=!1),"true"===e[o]&&(e[o]=!0))}function ascfToolkitHvigorPlugin(e){return{pluginId:"ascfToolkitHvigorPlugin",apply(o){((null==e?void 0:e.hvigor)||hvigor_1.hvigor).nodesEvaluated(i=>__awaiter(this,void 0,void 0,function*(){var t,r;const n=null===(t=i.getParameter())||void 0===t?void 0:t.getExtParams();if((0,common_utils_1.isOhosTest)(i))return void logger.info("skip plugin when test");const s=getProjectConfigJson(o.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_APP_PLUGIN).getProjectPath());let l=(0,common_utils_1.deepMerge)(DEFAULT_OPTIONS,s,e,n);initOptions(l),logger.debug(`ascfToolkitHvigorPlugin options: extParams=${n} ${JSON.stringify(l)}`),yield execPlugin(l,o,i);try{if(i.isCommandEntryTask("GetHvigorDepsCachesDir"))o.registerTask({name:"GetHvigorDepsCachesDir",run(){console.log("ASCF_GET_HVIGOR_DEPS_CACHES_DIR="+ascf_toolkit_1.default.getAscfToolkitDirname())}});else if(i.isCommandEntryTask("buildNpm"))ascfToolkitHvigorBuildNpm(o);else if(i.isCommandEntryTask("ascf"))ascfToolkitHvigorCli(o);else{const e=o.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_APP_PLUGIN),t=path_1.default.join(e.getProjectPath(),"ascf/ascf_src/app.json");if(l.skipAscfCompile||!fs_1.default.existsSync(t))return void logger.debug("skipAscfCompile");(null===(r=i.getCommandEntryTask())||void 0===r?void 0:r.length)||(logger.debug("start exec ascf quickGenSub"),yield ascf_toolkit_1.default.quickGenerateSubpackage(e.getBuildMode(),l),logger.debug("ascf quickGenSub completed")),o.subNodes(o=>{const i=o.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_HAP_PLUGIN);i&&"entry"===i.getModuleType()&&o.registerTask({name:"ascfCompile",run(){return __awaiter(this,void 0,void 0,function*(){var o;logger.debug("start exec ascf compile");const i=e.getBuildMode();let t=`${(0,common_utils_1.getNodeExe)()} ${getAscfScript()} compile -c ${"debug"===i?"-m":""} ${e.getProjectPath()}`;const r=logger.getLevel().levelStr.toLowerCase();l.debug&&r===common_enum_1.LogLevel.DEBUG&&(t+=" --debug"),l.compilerOptions.swc&&(t+=" --swc");const n=null===(o=l.devtool)||void 0===o?void 0:o.toLowerCase();n&&(t+=` --devtool=${n}`);t+=` --logging=${(l.logging?l.logging:r).toLowerCase()}`,l.templateHoist&&(t+=" --templateHoist"),t+=` --skipApiValidator=${l.skipApiValidator}`,t+=` --disableSubpackages=${l.disableSubpackages}`,logger.debug(t),yield executeCommand(t,r),logger.debug("ascf compile completed")})},dependencies:["default@PreBuild"],postDependencies:["assembleHap"]})})}}catch(e){logger.errorExit(new Error(String(e)))}}))}}}function execPlugin(e,o,i){return __awaiter(this,void 0,void 0,function*(){const t=i.getNodeByName("entry");t&&e.fixSharedHsp&&(yield(0,modifyShareInfoPlugin_1.doModifyShareInfoPlugin)(t).catch(e=>logger.error(e))),o&&e.installAscfHsp&&(yield(0,installAscfHspPlugin_1.doInstallAscfHspPlugin)(o,i).catch(e=>logger.error(e)))})}function getProjectConfigJson(e){const o=path_1.default.join(e,"ascf","ascf_src","ascf.config.json");if(fs_1.default.existsSync(o)){const e=(0,common_utils_1.readJson)(o);return logger.debug(`project json is ${JSON.stringify(e)}`),e}return logger.debug(`${o} is not Exists`),{}}function executeCommand(e,o){return new Promise((i,t)=>{var r,n;const s=(0,child_process_1.exec)(e);null===(r=s.stdout)||void 0===r||r.on("data",e=>{printLogger(e,o)}),null===(n=s.stderr)||void 0===n||n.on("error",e=>{t(e)}),s.on("close",e=>{i(e)})})}function printLogger(e,o){0!==e.length&&(o===common_enum_1.LogLevel.INFO?logger.info(`ASCF compiler log:\n${e}`):o===common_enum_1.LogLevel.WARN?logger.warn(`ASCF compiler log:\n${e}`):o===common_enum_1.LogLevel.ERROR?logger.error(`ASCF compiler log:\n${e}`):logger.debug(`ASCF compiler log:\n${e}`))}function getAscfScript(){return(0,common_utils_1.adjustPathByPlatform)(path_1.default.join(ascf_toolkit_1.default.getAscfToolkitDirname(),"bin","ascf.js"))}
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,n){void 0===n&&(n=o);var i=Object.getOwnPropertyDescriptor(t,o);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,n,i)}:function(e,t,o,n){void 0===n&&(n=o),e[n]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var o={};if(null!=t)for(var n=e(t),i=0;i<n.length;i++)"default"!==n[i]&&__createBinding(o,t,n[i]);return __setModuleDefault(o,t),o}}(),__awaiter=this&&this.__awaiter||function(e,t,o,n){return new(o||(o=Promise))(function(i,r){function l(e){try{a(n.next(e))}catch(e){r(e)}}function s(e){try{a(n.throw(e))}catch(e){r(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(l,s)}a((n=n.apply(e,t||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.doInstallAscfHspPlugin=doInstallAscfHspPlugin,exports.default=installAscfHspPlugin;const hvigor_1=require("@ohos/hvigor"),hvigor_ohos_plugin_1=require("@ohos/hvigor-ohos-plugin"),path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),JSON5=__importStar(require("json5")),common_utils_1=require("../common/common-utils"),logger=hvigor_1.HvigorLogger.getLogger("installAscfHspPlugin"),PKG_BROWSER="com.huawei.hmos.browser",PKG_MOSSEL="com.atomicservice.5765880207855116497";function checkProjectAscfVer(e){var t;logger.debug("Check project ascf dependency version.");let o=path_1.default.resolve(e,"./oh-package.json");if(!fs_1.default.existsSync(o)&&(o+="5",!fs_1.default.existsSync(o)))return logger.warn(`Check oh-package failed. Not found ${o}.`),!1;const n=null===(t=JSON5.parse(fs_1.default.readFileSync(o).toString()))||void 0===t?void 0:t.dependencies;return logger.debug(`ohPkgDeps: ${JSON.stringify(n)}`),!!Object.prototype.hasOwnProperty.call(n,"@atomicservice/ascf")}function checkAscfHsp(e){var t;logger.debug(`Check and install ${e} for local development`);const o=null!==(t=(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell bm dump-shared -a`))&&void 0!==t?t:"";if(new RegExp(`${e}(\\r?\\n|$)`).test(o)){const t=(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell "bm dump-shared -n ${e} | grep versionName"`);return logger.debug(`found ${e} ${t}`),!0}return!1}function doInstallAscfHsp(e,t,o,n){const i=checkProjectAscfVer(n.getNodePath()),r=i?"com.huawei.hms.ascf":"com.huawei.hms.ascfruntime",l=`${r} install failed, please manual start: hdc shell aa start -b ${PKG_MOSSEL} -a EntryAbility`;if(checkAscfHsp(r))return void t();logger.debug(`trying to install ${r}`);const s=path_1.default.resolve(__dirname,"../config.json"),a=JSON.parse(fs_1.default.readFileSync(s).toString()),c=i?a.ascfHspUrl:a.ascfRuntimeHspUrl,u={browserPid:(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell pidof ${PKG_BROWSER}`),ascfPid:(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell pidof ${PKG_MOSSEL}`)},g=(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell aa start -b ${PKG_BROWSER} -a MainAbility -A ohos.want.action.viewData -U "${c}"`);if(!(null==g?void 0:g.includes("successfully")))return logger.warn(`${l} errorInfo=${g}`),void o(l);logger.debug("begin to wait install hsp");let f=0,d=setInterval(()=>{var e,n,i,s;const a=checkAscfHsp(r);if(f++,a||f>5)return clearInterval(d),(null===(n=null===(e=u.browserPid)||void 0===e?void 0:e.trim())||void 0===n?void 0:n.length)||(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell aa force-stop ${PKG_BROWSER}`),(null===(s=null===(i=u.ascfPid)||void 0===i?void 0:i.trim())||void 0===s?void 0:s.length)||(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell aa force-stop ${PKG_MOSSEL}`),void(a?t():(logger.warn(l),o(l)))},1e3)}function doInstallAscfHspPlugin(e,t,o){return __awaiter(this,void 0,void 0,function*(){logger.debug("start exec install ascf hsp plugin");const n=e.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_APP_PLUGIN);if("debug"!==(null==n?void 0:n.getBuildMode()))return;o||(o=t.getNodeByName("entry"));const i=o.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_HAP_PLUGIN);null==i||i.targets(e=>{const n=e.getTargetName();logger.debug(`installAscfHspPlugin ${o.getNodeName()}:${n}`),o.registerTask({name:"installAscfHspTask",run:()=>new Promise((e,n)=>doInstallAscfHsp(t,e,n,o)).catch(e=>logger.error(e)),dependencies:[`${n}@CompileArkTS`],postDependencies:[`${n}@PackageHap`]})}),logger.debug("exec install ascf hsp plugin completed")})}function installAscfHspPlugin(e){return{pluginId:"installAscfHspPlugin",apply:t=>doInstallAscfHspPlugin(t,(null==e?void 0:e.hvigor)||hvigor_1.hvigor)}}
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,n){void 0===n&&(n=o);var r=Object.getOwnPropertyDescriptor(t,o);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,n,r)}:function(e,t,o,n){void 0===n&&(n=o),e[n]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var o={};if(null!=t)for(var n=e(t),r=0;r<n.length;r++)"default"!==n[r]&&__createBinding(o,t,n[r]);return __setModuleDefault(o,t),o}}(),__awaiter=this&&this.__awaiter||function(e,t,o,n){return new(o||(o=Promise))(function(r,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function l(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?r(e.value):(t=e.value,t instanceof o?t:new o(function(e){e(t)})).then(s,l)}a((n=n.apply(e,t||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.doInstallAscfHspPlugin=doInstallAscfHspPlugin,exports.default=installAscfHspPlugin;const hvigor_1=require("@ohos/hvigor"),hvigor_ohos_plugin_1=require("@ohos/hvigor-ohos-plugin"),path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),JSON5=__importStar(require("json5")),common_utils_1=require("../common/common-utils"),logger=hvigor_1.HvigorLogger.getLogger("installAscfHspPlugin"),PKG_BROWSER="com.huawei.hmos.browser",PKG_MOSSEL="com.atomicservice.5765880207855116497";function checkProjectAscfVer(e){var t;logger.debug("Check project ascf dependency version.");let o=path_1.default.resolve(e,"./oh-package.json");if(!fs_1.default.existsSync(o)&&(o+="5",!fs_1.default.existsSync(o)))return logger.warn(`Check oh-package failed. Not found ${o}.`),!1;const n=null===(t=JSON5.parse(fs_1.default.readFileSync(o).toString()))||void 0===t?void 0:t.dependencies;return logger.debug(`ohPkgDeps: ${JSON.stringify(n)}`),!!Object.prototype.hasOwnProperty.call(n,"@atomicservice/ascf")}function checkAscfHsp(e,t){var o,n;logger.debug(`Check and install ${e} for local development`);let r=0,i=0;try{const s=path_1.default.join(t,"oh_modules","@atomicservice","ascfapi","src","main","module.json");if(!fs_1.default.existsSync(s))throw logger.error("checkAscfHsp error, please sync or install dependencies first"),"checkAscfHsp error";r=null===(n=null===(o=JSON5.parse(fs_1.default.readFileSync(s).toString()))||void 0===o?void 0:o.app)||void 0===n?void 0:n.versionCode,i=(0,common_utils_1.getRuntimeVersionCode)(e)}catch(e){logger.error(e)}return r<=i&&(logger.debug(`found ${e} ${i}`),!0)}function doInstallAscfHsp(e,t,o,n){const r=checkProjectAscfVer(n.getNodePath()),i=r?"com.huawei.hms.ascf":"com.huawei.hms.ascfruntime",s=`${i} install failed, please manual start: hdc shell aa start -b ${PKG_MOSSEL} -a EntryAbility`;if(checkAscfHsp(i,n.getNodePath())||(0,common_utils_1.isEmulator)())return void t();logger.debug(`trying to install ${i}`);const l=path_1.default.resolve(__dirname,"../config.json"),a=JSON.parse(fs_1.default.readFileSync(l).toString()),c=r?a.ascfHspUrl:a.ascfRuntimeHspUrl,u={browserPid:(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell pidof ${PKG_BROWSER}`),ascfPid:(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell pidof ${PKG_MOSSEL}`)},g=(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell aa start -b ${PKG_BROWSER} -a MainAbility -A ohos.want.action.viewData -U "${c}"`);if(!(null==g?void 0:g.includes("successfully")))return logger.warn(`${s} errorInfo=${g}`),void o(s);logger.debug("begin to wait install hsp");let d=0,f=setInterval(()=>{var e,r,l,a;const c=checkAscfHsp(i,n.getNodePath());if(d++,c||d>5)return clearInterval(f),(null===(r=null===(e=u.browserPid)||void 0===e?void 0:e.trim())||void 0===r?void 0:r.length)||(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell aa force-stop ${PKG_BROWSER}`),(null===(a=null===(l=u.ascfPid)||void 0===l?void 0:l.trim())||void 0===a?void 0:a.length)||(0,common_utils_1.execSafe)(`${(0,common_utils_1.getHdcPath)()} shell aa force-stop ${PKG_MOSSEL}`),void(c?t():(logger.warn(s),o(s)))},1e3)}function doInstallAscfHspPlugin(e,t,o){return __awaiter(this,void 0,void 0,function*(){logger.debug("start exec install ascf hsp plugin");const n=e.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_APP_PLUGIN);if("debug"!==(null==n?void 0:n.getBuildMode()))return;o||(o=t.getNodeByName("entry"));const r=o.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_HAP_PLUGIN);null==r||r.targets(e=>{const n=e.getTargetName();logger.debug(`installAscfHspPlugin ${o.getNodeName()}:${n}`),o.registerTask({name:"installAscfHspTask",run:()=>new Promise((e,n)=>doInstallAscfHsp(t,e,n,o)).catch(e=>logger.error(e)),dependencies:[`${n}@CompileArkTS`],postDependencies:[`${n}@PackageHap`]})}),logger.debug("exec install ascf hsp plugin completed")})}function installAscfHspPlugin(e){return{pluginId:"installAscfHspPlugin",apply:t=>doInstallAscfHspPlugin(t,(null==e?void 0:e.hvigor)||hvigor_1.hvigor)}}
@@ -1 +1 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,o,t,n){return new(t||(t=Promise))(function(i,u){function r(e){try{l(n.next(e))}catch(e){u(e)}}function a(e){try{l(n.throw(e))}catch(e){u(e)}}function l(e){var o;e.done?i(e.value):(o=e.value,o instanceof t?o:new t(function(e){e(o)})).then(r,a)}l((n=n.apply(e,o||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.doModifyShareInfoPlugin=doModifyShareInfoPlugin,exports.default=modifyShareInfoPlugin;const hvigor_1=require("@ohos/hvigor"),hvigor_ohos_plugin_1=require("@ohos/hvigor-ohos-plugin"),path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),common_utils_1=require("../common/common-utils"),logger=hvigor_1.HvigorLogger.getLogger("modifyShareInfoPlugin"),ASCF_BUNDLENAME="com.huawei.hms.ascfruntime";function fixHspDep(e){null==e||e.forEach(e=>{"ascf"!==e.moduleName||e.bundleName||(e.bundleName=ASCF_BUNDLENAME)})}function updateSharedInfo(e){const o=path_1.default.resolve(e,"build");if(!fs_1.default.existsSync(o))return void logger.debug("buildFilePath:"+o);const t=fs_1.default.readdirSync(o);logger.debug("buildFileNames:"+t),t.filter(e=>e).forEach(e=>{logger.debug("productName: "+e);const t=path_1.default.resolve(o,`${e}/intermediates/res/${e}/module.json`);if(logger.debug("module.json filePath: "+t),fs_1.default.existsSync(t)){const e=(0,common_utils_1.readJson)(t);fixHspDep(e.module.dependencies),(0,common_utils_1.writeJson)(t,e),logger.debug(`final moduleJson ${JSON.stringify(e,null," ")}`)}else logger.debug("module.json filePath: "+t+" is not Exists");const n=path_1.default.resolve(o,`${e}/intermediates/hap_metadata/${e}/output_metadata.json`);if(logger.debug("output_metadata.json filePath: "+n),fs_1.default.existsSync(n)){const e=(0,common_utils_1.readJson)(n);null==e||e.forEach(e=>{var o;const t=null===(o=e.dependRemoteHsps)||void 0===o?void 0:o.findIndex(e=>{var o;return null===(o=e.hspName)||void 0===o?void 0:o.includes("ascf")});e.dependRemoteHsps&&-1!==t&&e.dependRemoteHsps.splice(t,1)}),(0,common_utils_1.writeJson)(n,e),logger.debug(`final metadataJson ${JSON.stringify(e,null," ")}`)}})}function doModifyShareInfoPlugin(e){return __awaiter(this,void 0,void 0,function*(){logger.debug("start exec modify share info plugin");const o=e.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_HAP_PLUGIN);null==o||o.targets(o=>{const t=o.getTargetName();logger.debug(`${e.getNodeName()}:${t}`),e.registerTask({name:"modifyShareInfoTask",run:e=>{logger.debug("moduleName="+e.moduleName+" modulePath="+e.modulePath),updateSharedInfo(e.modulePath)},dependencies:[`${t}@CompileArkTS`],postDependencies:[`${t}@PackageHap`]})}),logger.debug("exec modify share info plugin completed")})}function modifyShareInfoPlugin(){return{pluginId:"modifyShareInfoPlugin",apply:doModifyShareInfoPlugin}}
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,o,n,t){return new(n||(n=Promise))(function(i,a){function r(e){try{u(t.next(e))}catch(e){a(e)}}function s(e){try{u(t.throw(e))}catch(e){a(e)}}function u(e){var o;e.done?i(e.value):(o=e.value,o instanceof n?o:new n(function(e){e(o)})).then(r,s)}u((t=t.apply(e,o||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.doModifyShareInfoPlugin=doModifyShareInfoPlugin,exports.default=modifyShareInfoPlugin;const hvigor_1=require("@ohos/hvigor"),hvigor_ohos_plugin_1=require("@ohos/hvigor-ohos-plugin"),path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),common_utils_1=require("../common/common-utils"),logger=hvigor_1.HvigorLogger.getLogger("modifyShareInfoPlugin"),ASCF_BUNDLENAME="com.huawei.hms.ascfruntime";function fixHspDep(e){null==e||e.forEach(e=>{if("ascf"===e.moduleName&&(e.bundleName||(e.bundleName=ASCF_BUNDLENAME),(0,common_utils_1.isEmulator)())){const o=(0,common_utils_1.getRuntimeVersionCode)(e.bundleName);if(e.versionCode!==o){e.versionCode=o;const n=path_1.default.resolve(__dirname,"../config.json"),t=(0,common_utils_1.parseJsonSafe)(fs_1.default.readFileSync(n).toString(),{});logger.warn(`emulator ASCF versionCode is ${o} not matches @atomicservice/ascfapi dependency versionCode ${e.versionCode}, please upgrade by ${t.emulatorFaq}`)}}})}function updateSharedInfo(e){const o=path_1.default.resolve(e,"build");if(!fs_1.default.existsSync(o))return void logger.debug("buildFilePath:"+o);const n=fs_1.default.readdirSync(o);logger.debug("buildFileNames:"+n),n.filter(e=>e).forEach(e=>{logger.debug("productName: "+e);const n=path_1.default.resolve(o,`${e}/intermediates/res/${e}/module.json`);if(logger.debug("module.json filePath: "+n),fs_1.default.existsSync(n)){const e=(0,common_utils_1.readJson)(n);fixHspDep(e.module.dependencies),(0,common_utils_1.writeJson)(n,e),logger.debug(`final moduleJson ${JSON.stringify(e,null," ")}`)}else logger.debug("module.json filePath: "+n+" is not Exists");const t=path_1.default.resolve(o,`${e}/intermediates/hap_metadata/${e}/output_metadata.json`);if(logger.debug("output_metadata.json filePath: "+t),fs_1.default.existsSync(t)){const e=(0,common_utils_1.readJson)(t);null==e||e.forEach(e=>{var o;const n=null===(o=e.dependRemoteHsps)||void 0===o?void 0:o.findIndex(e=>{var o;return null===(o=e.hspName)||void 0===o?void 0:o.includes("ascf")});e.dependRemoteHsps&&-1!==n&&e.dependRemoteHsps.splice(n,1)}),(0,common_utils_1.writeJson)(t,e),logger.debug(`final metadataJson ${JSON.stringify(e,null," ")}`)}})}function doModifyShareInfoPlugin(e){return __awaiter(this,void 0,void 0,function*(){logger.debug("start exec modify share info plugin");const o=e.getContext(hvigor_ohos_plugin_1.OhosPluginId.OHOS_HAP_PLUGIN);null==o||o.targets(o=>{const n=o.getTargetName();logger.debug(`${e.getNodeName()}:${n}`),e.registerTask({name:"modifyShareInfoTask",run:e=>{logger.debug("moduleName="+e.moduleName+" modulePath="+e.modulePath),updateSharedInfo(e.modulePath)},dependencies:[`${n}@CompileArkTS`],postDependencies:[`${n}@PackageHap`]})}),logger.debug("exec modify share info plugin completed")})}function modifyShareInfoPlugin(){return{pluginId:"modifyShareInfoPlugin",apply:doModifyShareInfoPlugin}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomicservice/ascf-toolkit-hvigor-plugin",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "title": "ASCF toolkit hvigor plugin for atomicservice",
5
5
  "description": "ASCF toolkit hvigor plugin for atomicservice",
6
6
  "main": "index.ts",
@@ -15,7 +15,7 @@
15
15
  "gulp-terser": "2.1.0"
16
16
  },
17
17
  "dependencies": {
18
- "@atomicservice/ascf-toolkit": "1.0.8",
18
+ "@atomicservice/ascf-toolkit": "1.0.10",
19
19
  "json5": "2.2.3"
20
20
  },
21
21
  "overrides": {