@digital-herd/content-hub-cli 1.1.7 → 1.1.8
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/lib/bin.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});let commander_1=require("commander"),modules_1=__importDefault(require("./modules")),program=new commander_1.Command;program.name("content-hub-tools").description("ContentHub build & utility CLI").version("1.1.
|
|
2
|
+
var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});let commander_1=require("commander"),modules_1=__importDefault(require("./modules")),program=new commander_1.Command;program.name("content-hub-tools").description("ContentHub build & utility CLI").version("1.1.8");for(let o of modules_1.default)for(let e of o.commands)program.addCommand(e);program.parse(process.argv);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&("get"in r?t.__esModule:!r.writable&&!r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){e[n=void 0===n?i:n]=t[i]}),__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||(()=>{var r=function(e){return(r=Object.getOwnPropertyNames||function(e){var t,i=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&(i[i.length]=t);return i})(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i=r(e),n=0;n<i.length;n++)"default"!==i[n]&&__createBinding(t,e,i[n]);return __setModuleDefault(t,e),t}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});let sc_contenthub_webclient_sdk_1=require("@sitecore/sc-contenthub-webclient-sdk"),FileService_1=__importDefault(require("../../../services/FileService")),array_1=require("../../../utils/array"),apiCatch_1=require("../../../utils/apiCatch"),hash_1=require("../../../utils/hash"),logger_1=__importStar(require("../../../utils/logger")),lodash_1=require("lodash");class ExternalComponentPublishService{contenthubService;fileService;constructor(e,t){this.contenthubService=e,this.fileService=new FileService_1.default(t)}async publishToPortalAsset(e){var t;for(t of Array.isArray(e)?e:[e]){var i=this.fileService.getComponentConfig(t),n=this.fileService.getComponentBuild(t),i=await this.fileService.tsFileImport(i),n=await this.createOrUpdateAsset(t,n,i);await this.updateExternalComponents(t,i,{assetId:n.id}),logger_1.loggerSuccess.info(t+" Published")}}async publishToLocalPath(e,t){var i;for(i of Array.isArray(t)?t:[t]){var n=this.fileService.getComponentConfig(i),n=await this.fileService.tsFileImport(n),r=`${e}/${i}.js`;await this.updateExternalComponents(i,n,{path:r}),logger_1.loggerSuccess.info(`"${i}" Page component updated to local path`)}}async updateExternalComponents(e,i,{assetId:n,path:r}){var a=i.components.flatMap(e=>e.pageComponentIdentifiers),o=(logger_1.default.info(`Start updating ${a.length} External Page components`),await Promise.all((0,array_1.arrayToChunks)(a,50).map(e=>(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.entities.getManyAsync(e,new sc_contenthub_webclient_sdk_1.EntityLoadConfiguration(sc_contenthub_webclient_sdk_1.CultureLoadOption.Default,new sc_contenthub_webclient_sdk_1.PropertyLoadOption("PageComponent.Settings"),new sc_contenthub_webclient_sdk_1.RelationLoadOption(["AssetToPageComponent"])))))).then(e=>e.flat()));for(let t of a){let e=o.find(e=>e.identifier===t);var s=i.components.find(e=>e.pageComponentIdentifiers.includes(t)),c=(e||(logger_1.default.error(`${t} was not found that was specified in the config of "${e}"`),process.exit(-1)),await e.getPropertyValue("PageComponent.Settings")),s={...c,config:s.config,path:r||void 0},c=((0,lodash_1.isEqual)(c,s)||e.setPropertyValue("PageComponent.Settings",s),e.getRelation("AssetToPageComponent"));n&&!c.getIds().includes(n)?c.setIds([n]):r&&c.setIds([]),e.isDirty&&await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.entities.saveAsync(e))}}async createOrUpdateAsset(e,t,i){var i=await this.getOrCreateAsset(e,i),n=i.getPropertyValue("Digest");if(n){var r=await(0,hash_1.sha1FromFile)(t);if(n.replace("0x","")===r)return logger_1.default.info(`"${e}" source code wasn't updated so skip.`),i}n=new sc_contenthub_webclient_sdk_1.LocalUploadSource("file://"+t);let a=new sc_contenthub_webclient_sdk_1.UploadRequest(n,"AssetUploadConfiguration","NewMainFile");return a.actionParameters={AssetId:i.id},await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.uploads.uploadAsync(a)),logger_1.default.info(`"${e}" source code uploaded to asset`),i}async getOrCreateAsset(e,t){let i=await this.getAssetFromFileName(e);return(i=!i&&t.deprecatedAssetFileName?await this.getAssetFromFileName(t.deprecatedAssetFileName):i)?i.getPropertyValue("Title")!==e&&(i.setPropertyValue("Title",e),i.setPropertyValue("FileName",e+".js"),await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.entities.saveAsync(i))):(t=await this.contenthubService.getOrFetchId("M.Content.Repository.Portal"),(i=await this.contenthubService.client.entityFactory.createAsync("M.Asset")).setPropertyValue("Title",e),i.setPropertyValue("FileName",e+".js"),i.getRelation("ContentRepositoryToAsset")?.setIds([t]),i.id=await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.entities.saveAsync(i))),i}async getAssetFromFileName(e){var t=await this.contenthubService.getOrFetchId("M.Content.Repository.Portal"),e=e.replace(".js","");let i=new sc_contenthub_webclient_sdk_1.Query({filter:new sc_contenthub_webclient_sdk_1.CompositeQueryFilter({combineMethod:sc_contenthub_webclient_sdk_1.CompositeFilterOperator.And,children:[new sc_contenthub_webclient_sdk_1.DefinitionQueryFilter({name:"M.Asset",operator:sc_contenthub_webclient_sdk_1.ComparisonOperator.Equals}),new sc_contenthub_webclient_sdk_1.PropertyQueryFilter({property:"Title",dataType:sc_contenthub_webclient_sdk_1.FilterDataType.String,values:[e,e+".js"],operator:sc_contenthub_webclient_sdk_1.ComparisonOperator.Equals}),new sc_contenthub_webclient_sdk_1.RelationQueryFilter({relation:"ContentRepositoryToAsset",parentId:t})]}),take:1});return(await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.querying.queryAsync(i,new sc_contenthub_webclient_sdk_1.EntityLoadConfiguration(sc_contenthub_webclient_sdk_1.CultureLoadOption.Default,new sc_contenthub_webclient_sdk_1.PropertyLoadOption(["FileName","Title","Digest"]),new sc_contenthub_webclient_sdk_1.RelationLoadOption(["AssetToPageComponent"]))))).items[0]}}exports.default=ExternalComponentPublishService;
|
|
1
|
+
var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&("get"in r?t.__esModule:!r.writable&&!r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){e[n=void 0===n?i:n]=t[i]}),__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||(()=>{var r=function(e){return(r=Object.getOwnPropertyNames||function(e){var t,i=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&(i[i.length]=t);return i})(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i=r(e),n=0;n<i.length;n++)"default"!==i[n]&&__createBinding(t,e,i[n]);return __setModuleDefault(t,e),t}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});let sc_contenthub_webclient_sdk_1=require("@sitecore/sc-contenthub-webclient-sdk"),FileService_1=__importDefault(require("../../../services/FileService")),array_1=require("../../../utils/array"),apiCatch_1=require("../../../utils/apiCatch"),hash_1=require("../../../utils/hash"),logger_1=__importStar(require("../../../utils/logger")),lodash_1=require("lodash");class ExternalComponentPublishService{contenthubService;fileService;constructor(e,t){this.contenthubService=e,this.fileService=new FileService_1.default(t)}async publishToPortalAsset(e){var t;for(t of Array.isArray(e)?e:[e]){var i=this.fileService.getComponentConfig(t),n=this.fileService.getComponentBuild(t),i=await this.fileService.tsFileImport(i),n=await this.createOrUpdateAsset(t,n,i);await this.updateExternalComponents(t,i,{assetId:n.id}),logger_1.loggerSuccess.info(t+" Published")}}async publishToLocalPath(e,t){var i;for(i of Array.isArray(t)?t:[t]){var n=this.fileService.getComponentConfig(i),n=await this.fileService.tsFileImport(n),r=`${e}/${i}.js`;await this.updateExternalComponents(i,n,{path:r}),logger_1.loggerSuccess.info(`"${i}" Page component updated to local path`)}}async updateExternalComponents(e,i,{assetId:n,path:r}){var a=i.components.flatMap(e=>e.pageComponentIdentifiers),o=(logger_1.default.info(`Start updating ${a.length} External Page components`),await Promise.all((0,array_1.arrayToChunks)(a,50).map(e=>(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.entities.getManyAsync(e,new sc_contenthub_webclient_sdk_1.EntityLoadConfiguration(sc_contenthub_webclient_sdk_1.CultureLoadOption.Default,new sc_contenthub_webclient_sdk_1.PropertyLoadOption("PageComponent.Settings"),new sc_contenthub_webclient_sdk_1.RelationLoadOption(["AssetToPageComponent"])))))).then(e=>e.flat()));for(let t of a){let e=o.find(e=>e.identifier===t);var s=i.components.find(e=>e.pageComponentIdentifiers.includes(t)),c=(e||(logger_1.default.error(`${t} was not found that was specified in the config of "${e}"`),process.exit(-1)),await e.getPropertyValue("PageComponent.Settings")),s={...c,config:s.config,path:r||void 0},c=((0,lodash_1.isEqual)(c,s)||e.setPropertyValue("PageComponent.Settings",s),e.getRelation("AssetToPageComponent"));n&&!c.getIds().includes(n)?c.setIds([n]):r&&c.setIds([]),e.isDirty&&await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.entities.saveAsync(e))}}async createOrUpdateAsset(e,t,i){var i=await this.getOrCreateAsset(e,i),n=i.getPropertyValue("Digest");if(n){var r=await(0,hash_1.sha1FromFile)(t);if(n.replace("0x","")===r)return logger_1.default.info(`"${e}" source code wasn't updated so skip.`),i}n=new sc_contenthub_webclient_sdk_1.LocalUploadSource("file://"+t);console.log(t);let a=new sc_contenthub_webclient_sdk_1.UploadRequest(n,"AssetUploadConfiguration","NewMainFile");return a.actionParameters={AssetId:i.id},await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.uploads.uploadAsync(a)),logger_1.default.info(`"${e}" source code uploaded to asset`),i}async getOrCreateAsset(e,t){let i=await this.getAssetFromFileName(e);return(i=!i&&t.deprecatedAssetFileName?await this.getAssetFromFileName(t.deprecatedAssetFileName):i)?i.getPropertyValue("Title")!==e&&(i.setPropertyValue("Title",e),i.setPropertyValue("FileName",e+".js"),await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.entities.saveAsync(i))):(t=await this.contenthubService.getOrFetchId("M.Content.Repository.Portal"),(i=await this.contenthubService.client.entityFactory.createAsync("M.Asset")).setPropertyValue("Title",e),i.setPropertyValue("FileName",e+".js"),i.getRelation("ContentRepositoryToAsset")?.setIds([t]),i.id=await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.entities.saveAsync(i))),i}async getAssetFromFileName(e){var t=await this.contenthubService.getOrFetchId("M.Content.Repository.Portal"),e=e.replace(".js","");let i=new sc_contenthub_webclient_sdk_1.Query({filter:new sc_contenthub_webclient_sdk_1.CompositeQueryFilter({combineMethod:sc_contenthub_webclient_sdk_1.CompositeFilterOperator.And,children:[new sc_contenthub_webclient_sdk_1.DefinitionQueryFilter({name:"M.Asset",operator:sc_contenthub_webclient_sdk_1.ComparisonOperator.Equals}),new sc_contenthub_webclient_sdk_1.PropertyQueryFilter({property:"Title",dataType:sc_contenthub_webclient_sdk_1.FilterDataType.String,values:[e,e+".js"],operator:sc_contenthub_webclient_sdk_1.ComparisonOperator.Equals}),new sc_contenthub_webclient_sdk_1.RelationQueryFilter({relation:"ContentRepositoryToAsset",parentId:t})]}),take:1});return(await(0,apiCatch_1.apiErrorCatch)(()=>this.contenthubService.client.querying.queryAsync(i,new sc_contenthub_webclient_sdk_1.EntityLoadConfiguration(sc_contenthub_webclient_sdk_1.CultureLoadOption.Default,new sc_contenthub_webclient_sdk_1.PropertyLoadOption(["FileName","Title","Digest"]),new sc_contenthub_webclient_sdk_1.RelationLoadOption(["AssetToPageComponent"]))))).items[0]}}exports.default=ExternalComponentPublishService;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digital-herd/content-hub-cli",
|
|
3
3
|
"description": "CLI tools for managing Sitecore Content Hub external components and scripts",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.8",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./lib/index.js",
|
|
7
7
|
"types": "./lib/index.d.ts",
|
|
@@ -46,6 +46,6 @@
|
|
|
46
46
|
"uglify-js": "^3.19.3"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@sitecore/sc-contenthub-webclient-sdk": "
|
|
49
|
+
"@sitecore/sc-contenthub-webclient-sdk": "1.2.96"
|
|
50
50
|
}
|
|
51
51
|
}
|