@hso/d365-cli
Version:
Dynamics 365 Command Line Interface for TypeScript projects for Dataverse
1 lines • 202 kB
JavaScript
/*! HSO D365 CLI 7.0.9 | (c) HSO Innovation */!function(){"use strict";var e={9051:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Create=void 0;var u=s(n(3672)),l=i(n(8489)),f=s(n(9937)),d=i(n(9896)),p=function(){function e(){}return e.createProject=function(t,n){if(!l.test("-e","".concat(t,"/Webresources")))return e.create(t,n);console.log(u.default.red("Project ".concat(t,"/Webresources already exist!")))},e.showCreateHelp=function(){console.log("Arguments:"),console.log(" "+u.default.blue("project")),console.log(" The project name of the new workspace and initial Webresource setup.")},e.create=function(t,n){return a(this,void 0,void 0,(function(){var r;return c(this,(function(o){switch(o.label){case 0:return r=n,n.environment&&n.solution_deploy&&n.publisher_name&&n.publisher_prefix&&n.namespace?[3,2]:(console.log(u.default.red("Missing some required options (environment, solution_deploy, publisher_name, \n publisher_prefix, namespace. Command line will request them now.")),[4,e.inquirer()]);case 1:r=o.sent(),o.label=2;case 2:return console.log("Initializing D365 Project ".concat(t,"...")),l.test("-e","".concat(t))||l.mkdir(t),l.cd(t),l.cp("-R","".concat(__dirname,"/root/crm.json"),"."),e.setupWebresources(t,r),[2]}}))}))},e.setupWebresources=function(t,n){l.mkdir("Webresources"),l.cp("-R","".concat(__dirname,"/root/Webresources/*"),"Webresources"),l.cp("-R","".concat(__dirname,"/root/Webresources/.*"),"Webresources"),d.renameSync("./Webresources/gitignore","./Webresources/.gitignore"),e.initCrmJson(n),e.initWebresourcesCrmJson(n),e.initWebresourcesPackageJson(t,n),e.initWebresourcesWebpackConfig(n),l.cd("Webresources"),console.log("Installing npm packages. This may take a while..."),l.exec("npm install"),console.log("Initializing D365 Project done"),console.log("".concat(u.default.blue("hso-d365 generate Entity x")," in Webresources folder generates Entity x files and settings.")),console.log("".concat(u.default.blue("npm run build:prod")," in Webresources folder creates the deployment package.")),console.log("See package.json#scripts for all options."),l.cd("..")},e.initCrmJson=function(e){var t=l.ls("./crm.json")[0];l.sed("-i",new RegExp("<%= publisher_prefix %>","ig"),e.publisher_prefix,t),l.sed("-i",new RegExp("<%= environment %>","ig"),e.environment,t),l.sed("-i",new RegExp("<%= namespace %>","ig"),e.namespace,t);var n=l.exec("hso-d365 --version").stdout.replace(/\n/gi,"");l.sed("-i",new RegExp("<%= version %>","ig"),n,t)},e.initWebresourcesCrmJson=function(e){var t=l.ls("Webresources/crm.json")[0];l.sed("-i",new RegExp("<%= solution_name_deploy %>","ig"),e.solution_deploy,t),l.sed("-i",new RegExp("<%= solution_name_generate %>","ig"),e.solution_generate||e.solution_deploy,t)},e.initWebresourcesPackageJson=function(e,t){var n=l.ls("Webresources/package.json")[0];l.sed("-i","<%= projectname %>",e.toLowerCase(),n),l.sed("-i",new RegExp("<%= description %>","ig"),t.solution_deploy,n)},e.initWebresourcesWebpackConfig=function(e){var t=l.ls("Webresources/webpack.config.ts")[0];l.sed("-i",new RegExp("<%= publisher_prefix %>","ig"),e.publisher_prefix,t),l.sed("-i",new RegExp("<%= namespace %>","ig"),e.namespace,t),l.sed("-i",new RegExp("<%= description %>","ig"),e.namespace,t)},e.inquirer=function(){var e=this;return f.default.prompt([{type:"input",name:"environment",message:"D365 environment url (eg. https://yourproject.crm4.dynamics.com):",validate:function(t){return a(e,void 0,void 0,(function(){return c(this,(function(e){if(!t)throw new Error("You need to provide an environment");if(!new RegExp("https://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}").test(t))throw new Error("You need to provide a valid url");return[2,!0]}))}))}},{type:"input",name:"solution_deploy",message:"D365 deployment Solution ('Name' column):",validate:function(t){return a(e,void 0,void 0,(function(){return c(this,(function(e){if(!t)throw new Error("You need to provide a solution");if(!new RegExp("[a-zA-Z_\\d]*").test(t))throw new Error("You need to provide a valid solution name");return[2,!0]}))}))}},{type:"input",name:"solution_generate",message:"D365 generate Solution ('Name' column)\nIf equal to deployment Solution keep blank:",validate:function(t){return a(e,void 0,void 0,(function(){return c(this,(function(e){if(t&&!new RegExp("[a-zA-Z_\\d]*").test(t))throw new Error("You need to provide a valid solution name");return[2,!0]}))}))}},{type:"input",name:"publisher_name",message:"D365 Publisher Name (not Display Name):",validate:function(t){return a(e,void 0,void 0,(function(){return c(this,(function(e){if(!t)throw new Error("You need to provide a publisher name");if(!new RegExp("[a-zA-Z_0-9]*").test(t))throw new Error("You need to provide a valid publisher");return[2,!0]}))}))}},{type:"input",name:"publisher_prefix",message:"D365 Publisher Prefix (3 chars a-z):",validate:function(t){return a(e,void 0,void 0,(function(){return c(this,(function(e){if(!t)throw new Error("You need to provide a publisher");if(!new RegExp("[a-zA-Z_\\d]*").test(t))throw new Error("You need to provide a valid publisher");return[2,!0]}))}))}},{type:"input",name:"namespace",message:"Customer or Product name:",validate:function(t){return a(e,void 0,void 0,(function(){return c(this,(function(e){if(!t)throw new Error("You need to provide a customer or product name");if(!new RegExp("[a-zA-Z_\\d]*").test(t))throw new Error("You need to provide a valid namespace");return[2,!0]}))}))}}])},e}();t.Create=p},9836:function(e,t,n){var r,o=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},u=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Deploy=void 0;var f=c(n(9896)),d=n(5127),p=n(7301),h=c(n(6982)),b=c(n(6566)),y=c(n(8489)),m=l(n(3672)),g=n(4789),v=function(e){function t(t){var n=e.call(this)||this;return n.webresourceSettings=JSON.parse(f.readFileSync("./crm.json","utf8")),n.md5=function(e){return h.createHash("md5").update(e).digest("hex")},n.force=t,n}return o(t,e),t.deployProject=function(e){return s(this,void 0,void 0,(function(){return u(this,(function(n){return process.argv[4]?console.log(m.default.red("No spaces allowed after update command!")):f.existsSync("./dist")?new t(e):console.log(m.default.red("No dist folder found. Please run 'npm run build:prod' or 'hso-d365 build' first")),[2]}))}))},t.prototype.onAuthenticated=function(){return this.deploy()},t.prototype.deploy=function(){return s(this,void 0,void 0,(function(){var e,t,n;return u(this,(function(r){switch(r.label){case 0:return e=this.settings.crm,t=e.publisher_prefix,n=e.url,console.log("Deploying to ".concat(n,"...")),[4,this.deployDirectory("dist/".concat(t,"_"))];case 1:return r.sent(),[4,g.SetOnloads.setOnLoads(this.bearer)];case 2:return r.sent(),console.log("Deploy finished"),[2]}}))}))},t.prototype.deployDirectory=function(e){return s(this,void 0,void 0,(function(){var t=this;return u(this,(function(n){return[2,new Promise((function(n){f.readdir(e,(function(r,o){return s(t,void 0,void 0,(function(){var t,r,i,a,c,s,l,d,p;return u(this,(function(u){switch(u.label){case 0:t=[],r=0,i=o,u.label=1;case 1:return r<i.length?(a=i[r],c="".concat(e,"/").concat(a),f.lstatSync(c).isDirectory()?(l=(s=t).push,[4,this.deployDirectory(c)]):[3,3]):[3,6];case 2:return l.apply(s,[u.sent()]),[3,5];case 3:return p=(d=t).push,[4,this.deployFile(c)];case 4:p.apply(d,[u.sent()]),u.label=5;case 5:return r++,[3,1];case 6:return Promise.all(t).then((function(){n()})),[2]}}))}))}))}))]}))}))},t.prototype.deployFile=function(e){return s(this,void 0,void 0,(function(){var t,n;return u(this,(function(r){switch(r.label){case 0:return t=e.substr(5),[4,this.getWebresource(t)];case 1:return n=r.sent(),console.log("".concat(t)),n?[4,this.updateWebresource(n,e)]:[3,3];case 2:return r.sent(),[3,5];case 3:return[4,this.insertWebresource(e,t)];case 4:r.sent(),r.label=5;case 5:return[2]}}))}))},t.prototype.updateWebresource=function(e,t){return s(this,void 0,void 0,(function(){var n,r,o,i,a,c;return u(this,(function(s){switch(s.label){case 0:return n=this.md5(e.content),r=f.readFileSync(t),o=r.toString("base64"),[4,this.generateDependencyXML(t,e,r)];case 1:if(i=s.sent(),a=this.md5(o),!(this.force||n!==a||i&&i!==(null==e?void 0:e.dependencyxml)))return[3,7];e.content=o,e.dependencyxml=i,s.label=2;case 2:return s.trys.push([2,5,,6]),[4,d.WebresourceService.upsert(e,this.bearer)];case 3:return s.sent(),console.log("updated..."),[4,d.WebresourceService.publish(e,this.bearer)];case 4:return s.sent(),console.log("and published"),[3,6];case 5:return c=s.sent(),console.log("failed ".concat(c.message)),[3,6];case 6:return[3,8];case 7:console.log("unmodified"),s.label=8;case 8:return[2]}}))}))},t.prototype.insertWebresource=function(e,t){return s(this,void 0,void 0,(function(){var n,r,o,i,a,c,s;return u(this,(function(u){switch(u.label){case 0:n=f.readFileSync(e),r=n.toString("base64"),u.label=1;case 1:return u.trys.push([1,5,,6]),o=this.webresourceSettings.crm.solution_name_deploy,i={content:r,name:t,displayname:t},[4,this.generateDependencyXML(e,i,n)];case 2:return(a=u.sent())&&(i.dependencyxml=a),[4,d.WebresourceService.upsert(i,this.bearer)];case 3:return c=u.sent(),console.log(" inserted..."),[4,d.WebresourceService.addToSolution(c,o,this.bearer)];case 4:return u.sent(),console.log(" and added to solution ".concat(o)),[2,c];case 5:return s=u.sent(),console.log(" failed ".concat(s.message)),[3,6];case 6:return[2]}}))}))},t.prototype.getWebresource=function(e){return s(this,void 0,void 0,(function(){return u(this,(function(t){switch(t.label){case 0:return[4,d.WebresourceService.retrieveMultipleRecords({select:["name","webresourcetype","content","displayname","solutionid","dependencyxml"],filters:[{conditions:[{attribute:"name",value:e}]}],top:1},this.bearer)];case 1:return[2,t.sent()[0]]}}))}))},t.prototype.generateDependencyXML=function(e,t,n){return s(this,void 0,void 0,(function(){var r,o;return u(this,(function(i){switch(i.label){case 0:return t.name.endsWith(".js")?[4,this.getDependencyXML(t,n)]:[3,2];case 1:return[2,i.sent()];case 2:return t.name.endsWith(".html")?(r=e.replace(/.html/g,".js"),f.existsSync(r)?(o=f.readFileSync(r),[4,this.getDependencyXML(t,o)]):[3,4]):[3,5];case 3:return[2,i.sent()];case 4:console.log("script file: ".concat(r," does not exist")),i.label=5;case 5:return[2]}}))}))},Object.defineProperty(t,"xmlRegex",{get:function(){return/(\s?\n+\s+|\n)/g},enumerable:!1,configurable:!0}),t.prototype.getDependencyXML=function(e,n){return s(this,void 0,void 0,(function(){var r,o,i,a;return u(this,(function(c){switch(c.label){case 0:return[4,this.generateWebresourceXmlDoc(e,n)];case 1:return(r=c.sent())?(o=t.xmlBuilder.buildObject(r),i=o.replace(t.xmlRegex,""),a=i.indexOf("?>"),[2,i=i.substr(a+2)]):[2]}}))}))},Object.defineProperty(t,"defaultDependencyxml",{get:function(){return'<Dependencies><Dependency componentType="WebResource"></Dependency></Dependencies>'},enumerable:!1,configurable:!0}),Object.defineProperty(t,"translationRegex",{get:function(){return/\.translate\(["'](.*)["']\)/gm},enumerable:!1,configurable:!0}),t.prototype.generateWebresourceXmlDoc=function(e,n){return s(this,void 0,void 0,(function(){var r,o,i;return u(this,(function(a){switch(a.label){case 0:return r=y.ls("dist/**/locales/*.resx"),0===(o=r.map((function(e){return e.substr(5)}))).length&&null===e.dependencyxml?[2,null]:[4,b.parseStringPromise(e.dependencyxml||t.defaultDependencyxml)];case 1:return i=a.sent(),t.translationRegex.test(String(n))?(this.addLibraries(i,o),this.cleanLibraries(i,o)):this.cleanLibraries(i),[2,i]}}))}))},t.prototype.addLibraries=function(e,n){var r=e.Dependencies.Dependency[0];r.Library||(r.Library=[]);for(var o=function(e){r.Library.find((function(t){return t.$.name===e}))||(console.log("Adding dependency: ".concat(e)),r.Library.push({$:t.createLibraryItem(e)}))},i=0,a=n;i<a.length;i++){o(a[i])}},Object.defineProperty(t,"localesResxRegex",{get:function(){return/locales\/locales[.]?(\d{4})?.resx/gm},enumerable:!1,configurable:!0}),t.prototype.cleanLibraries=function(e,n){void 0===n&&(n=[]);var r=e.Dependencies.Dependency[0];if(r.Library)for(var o=r.Library.length-1;o>=0;o-=1){var i=r.Library[o].$.name;t.localesResxRegex.test(i)&&(n.includes(i)||(console.log("Removing dependency: ".concat(i)),r.Library.splice(o,1)))}},t.createLibraryItem=function(e){return{name:e,displayName:e,languagecode:t.getLanguageCode(e),description:"",libraryUniqueId:t.guid()}},t.getLanguageCode=function(e){var n;return e.endsWith(".resx")&&(n=t.localesResxRegex.exec(e)),n&&n[1]||""},t.guid=function(){return"{xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx}".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},t.xmlBuilder=new b.Builder,t}(p.MsalRouter);t.Deploy=v},2017:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.Resx=void 0;var s=i(n(8489)),u=i(n(9896)),l=i(n(6566)),f=function(){function e(){}return e.extract=function(){return a(this,void 0,void 0,(function(){var t;return c(this,(function(n){switch(n.label){case 0:return(t=e.getCodeKeys()).length>0&&e.addLocalesFile(),[4,e.processCodeKeys(t)];case 1:return n.sent(),[2,null]}}))}))},e.getCodeKeys=function(){for(var t=new Set,n=0,r=s.ls("src/**/*.ts*");n<r.length;n++)for(var o=r[n],i=String(u.readFileSync(o)),a=null;null!==(a=e.regex.exec(i));)a.index===e.regex.lastIndex&&(e.regex.lastIndex+=1),t.add(a[2]||a[3]||a[4]);return Array.from(t.values())},e.addLocalesFile=function(){s.test("-d","src/translation/locales")||s.mkdir("src/translation/locales"),s.test("-f","src/translation/locales/locales.resx")||(s.cp("-R","".concat(__dirname,"/Translation/locales.resx"),"./src/translation/locales"),s.exec("git add src/translation/locales/locales.resx")),s.test("-f","src/translation/locales/locales.1033.resx")||(s.cp("-r","".concat(__dirname,"/Translation/locales.resx"),"./src/translation/locales/locales.1033.resx"),s.exec("git add src/translation/locales/locales.1033.resx"))},e.processCodeKeys=function(t){return a(this,void 0,void 0,(function(){var n,r,o,i,a;return c(this,(function(c){switch(c.label){case 0:n=s.ls("src/translation/locales/*.resx"),r=0,o=n,c.label=1;case 1:return r<o.length?(i=o[r],[4,e.getResxDocument(i)]):[3,4];case 2:a=c.sent(),e.processXmlDoc(a,t),e.writeXmlDoc(a,i),c.label=3;case 3:return r++,[3,1];case 4:return[2]}}))}))},e.getResxDocument=function(e){var t=String(u.readFileSync(e));return l.parseStringPromise(t)},e.processXmlDoc=function(e,t){for(var n=e.root.data.map((function(e){return e.$.name})),r=function(n){if(!t.includes(n)){var r=e.root.data.find((function(e){return e.$.name===n})),o=e.root.data.indexOf(r);e.root.data.splice(o,1),console.log("remove ".concat(n))}},o=0,i=n;o<i.length;o++){r(i[o])}for(var a=0,c=t;a<c.length;a++){var s=c[a];n.includes(s)||(e.root.data.push({$:{name:s,"xml:space":"preserve"},value:[s]}),console.log("add ".concat(s)))}},e.writeXmlDoc=function(e,t){var n=(new l.Builder).buildObject(e);s.ShellString(n).to(t)},e.regex=/Translation\.translate\([\s]*([']([^']*)[']|[`]([^`]*)[`]|["]([^"]*)["])[\s]*\)/gm,e}();t.Resx=f},5141:function(e,t,n){var r,o=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.SetFormCustomizable=void 0;var c=n(7301),s=n(4935),u=n(4409),l=function(e){function t(t){var n=e.call(this)||this;return n.customizable=t,n}return o(t,e),t.prototype.onAuthenticated=function(){return i(this,void 0,void 0,(function(){return a(this,(function(e){return console.log("Customizable: ".concat(this.customizable)),[2,this.setFormCustomizable()]}))}))},t.prototype.setFormCustomizable=function(){return i(this,void 0,void 0,(function(){var e,t,n,r,o;return a(this,(function(i){switch(i.label){case 0:return[4,u.SolutionComponentSummaryService.retrieveFormSolutionComponentSummaries(this.bearer)];case 1:e=i.sent(),t=0,n=e,i.label=2;case 2:return t<n.length?(r=n[t],console.log("SolutionComponent: ".concat(r.msdyn_objectid)),[4,this.getSystemForm(r)]):[3,6];case 3:return o=i.sent(),[4,this.setForm(o,this.customizable)];case 4:i.sent(),i.label=5;case 5:return t++,[3,2];case 6:return[2]}}))}))},t.prototype.setForm=function(e,t){return i(this,void 0,void 0,(function(){var n;return a(this,(function(r){switch(r.label){case 0:if(console.log("Form name: ".concat(e.name)),e.iscustomizable.Value===t&&e.canbedeleted.Value===t)return[3,5];e.iscustomizable.CanBeChanged&&(e.iscustomizable.Value=t),e.canbedeleted.CanBeChanged&&(e.canbedeleted.Value=t),r.label=1;case 1:return r.trys.push([1,3,,4]),[4,s.SystemFormService.updateRecord(e.formid,e,this.bearer)];case 2:return r.sent(),console.log("Updated"),[3,4];case 3:return n=r.sent(),console.log(n.message),[3,4];case 4:return[3,6];case 5:console.log("Unmodified"),r.label=6;case 6:return console.log("---------------------------"),[2]}}))}))},t.prototype.getSystemForm=function(e){return s.SystemFormService.getSystemForm(e.msdyn_objectid,["name","objecttypecode","iscustomizable","canbedeleted"],this.bearer)},t}(c.MsalRouter);t.SetFormCustomizable=l},4789:function(e,t,n){var r,o=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},a=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}},c=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SetOnloads=void 0;var s=n(7301),u=n(4409),l=n(4935),f=c(n(9896)),d=n(511),p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o(t,e),t.prototype.onAuthenticated=function(){return i(this,void 0,void 0,(function(){return a(this,(function(e){return console.log("Onloads"),[2,t.setOnLoads(this.bearer)]}))}))},t.setOnLoads=function(e){return i(this,void 0,void 0,(function(){var t,n,r,o,i,c,s,l,p,h,b,y,m,g,v,w,_;return a(this,(function(a){switch(a.label){case 0:return[4,u.SolutionComponentSummaryService.retrieveFormSolutionComponentSummaries(e)];case 1:t=a.sent(),n=0,r=t,a.label=2;case 2:return n<r.length?(o=r[n],[4,this.getSystemForm(o,e)]):[3,6];case 3:return i=a.sent(),c=JSON.parse(f.default.readFileSync("../crm.json","utf8")),s=c.crm,l=s.publisher_prefix,p=s.namespace,h=o.msdyn_displayname.replace(/\W/g,""),b=i.name.replace(/\W/g,""),y="".concat(l,".").concat(p,".").concat(h,".").concat(b,".Form.onLoad"),m="".concat(l,"_/").concat(p,"/").concat(h,"/").concat(b,".js"),g="dist/".concat(m),f.default.existsSync(g)?(v=(new d.DOMParser).parseFromString(i.formxml,"text/xml"),w=this.addOnloadHandler(v,m,y),_=this.addFormLibrary(v,m),w||_?(i.formxml=(new d.XMLSerializer).serializeToString(v),[4,this.setForm(i,e)]):[3,5]):[3,5];case 4:a.sent(),a.label=5;case 5:return n++,[3,2];case 6:return[2]}}))}))},t.addOnloadHandler=function(e,n,r){var o=e.documentElement,i=!1,a=o.getElementsByTagName("events")[0];a||(console.log("Creating events element"),a=e.createElement("events"),o.appendChild(a),i=!0);for(var c,s=a.getElementsByTagName("event"),u=0;u<s.length;u+=1){if("onload"===(p=s[u]).getAttribute("name")){c=p;break}}c||(console.log("Creating onload event element"),(c=e.createElement("event")).setAttribute("name","onload"),c.setAttribute("application","false"),c.setAttribute("active","false"),a.appendChild(c),i=!0);var l=c.getElementsByTagName("Handlers")[0];l||(console.log("Creating handlers element"),l=e.createElement("Handlers"),c.appendChild(l),i=!0);var f,d=l.getElementsByTagName("Handler");for(u=0;u<d.length;u+=1){var p;if((p=d[u]).getAttribute("functionName")===r){f=p;break}}return f?console.log("Handler already exists: ".concat(r)):(console.log("Creating handler: ".concat(r)),(f=e.createElement("Handler")).setAttribute("functionName",r),f.setAttribute("libraryName",n),f.setAttribute("enabled","true"),f.setAttribute("passExecutionContext","true"),f.setAttribute("handlerUniqueId",t.guid()),l.appendChild(f),i=!0),i},t.addFormLibrary=function(e,n){var r=e.documentElement,o=!1,i=r.getElementsByTagName("formLibraries")[0];i||(console.log("Creating formLibraries element"),i=e.createElement("formLibraries"),r.appendChild(i),o=!0);for(var a,c=i.getElementsByTagName("Library"),s=0;s<c.length;s+=1){var u=c[s];if(u.getAttribute("name")===n){a=u;break}}return a?console.log("Library already exists: ".concat(n)):(console.log("Creating formLibrary element"),(a=e.createElement("Library")).setAttribute("name",n),a.setAttribute("libraryUniqueId",t.guid()),i.appendChild(a),o=!0),o},t.getSystemForm=function(e,t){return l.SystemFormService.getSystemForm(e.msdyn_objectid,["name","formxml"],t)},t.setForm=function(e,t){return i(this,void 0,void 0,(function(){var n;return a(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,l.SystemFormService.updateRecord(e.formid,e,t)];case 1:return r.sent(),console.log("Updated ".concat(e.name)),[3,3];case 2:return n=r.sent(),console.log(n.message),[3,3];case 3:return[2]}}))}))},t.guid=function(){return"{xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx}".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},t}(s.MsalRouter);t.SetOnloads=p},8070:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Update=void 0;var u=i(n(3672)),l=s(n(8489)),f=s(n(9896)),d=s(n(5317)),p=function(){function e(){}return e.updateProject=function(){if(process.argv[3])console.log(u.red("No spaces allowed after update command!"));else{if(l.default.test("-e","src"))return e.update();console.log(u.red("You are not inside the project Webresources folder!"))}},e.showUpdateHelp=function(){console.log("Arguments:")},e.update=function(){return a(this,void 0,void 0,(function(){return c(this,(function(t){switch(t.label){case 0:return console.log("Updating D365 Project..."),e.updateSrcFolder(),e.updateCrmJson(),e.updateProjectRootFolder(),e.updateEntityFiles(),e.updateFormFiles(),e.updatePackageJson(),[4,e.updateWebpackConfig()];case 1:return t.sent(),console.log("Updating D365 Project done"),[2]}}))}))},e.updateProjectRootFolder=function(){console.log("Updating .eslintignore..."),l.default.cp("-R","".concat(__dirname,"/root/Webresources/.eslintignore"),"."),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add",".eslintignore"]),console.log("Updating .gitignore..."),l.default.cp("-R","".concat(__dirname,"/root/Webresources/gitignore"),"."),f.default.renameSync("./gitignore","./.gitignore"),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add",".gitignore"]),console.log("Updating .eslintrc.json..."),l.default.cp("-R","".concat(__dirname,"/root/Webresources/.eslintrc.json"),"."),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add",".eslintrc.json"]),console.log("Updating postcss.config.js"),l.default.cp("-R","".concat(__dirname,"/root/Webresources/postcss.config.js"),"."),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add","postcss.config.js"]),console.log("Remove karma.conf.js"),l.default.test("-e","../.git")?d.default.execFileSync("git",["rm","karma.conf.js"]):l.default.rm("karma.conf.js"),console.log("Updating tsconfig.json"),l.default.cp("-R","".concat(__dirname,"/root/Webresources/tsconfig.json"),"."),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add","tsconfig.json"])},e.updateEntityFiles=function(){console.log("Updating Entity files...");var e=JSON.parse(f.default.readFileSync("../crm.json","utf8")).crm;l.default.ls("src/**/*.ts*").forEach((function(t){String(f.default.readFileSync(t)).match(new RegExp("specify Form onLoad function: ".concat(e.publisher_prefix,".").concat(e.namespace,".([^\\W]*).Form.onLoad")))})),l.default.ls("src/**/build.json").forEach((function(e){var t=e.split("/")[1];if(f.default.existsSync("src/".concat(t,"/").concat(t,".formContext.ts"))&&!f.default.existsSync("src/".concat(t,"/").concat(t,".form.ts"))){console.log("Adding ".concat(t,"/").concat(t,".form.ts..."));var n="src/".concat(t,"/").concat(t,".form.ts");l.default.cp("-r","".concat(__dirname,"/Entity/Entity.form.ts"),n),l.default.sed("-i",new RegExp("Entity","g"),t,n),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add",n]),console.log("Added ".concat(t,"/").concat(t,".form.ts"))}}))},e.updateFormFiles=function(){console.log("Updating Form files..."),l.default.ls("src/**/*.form.ts*").forEach((function(e){if(4===e.split("/").length)String(f.default.readFileSync(e)).match(new RegExp("export class ([a-zA-Z]*)Form {"))}))},e.updateSrcFolder=function(){console.log("Updating Annotation..."),l.default.cp("-R","".concat(__dirname,"/root/Webresources/src/Annotation"),"./src"),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add","src/Annotation"]),console.log("Updating Http..."),l.default.cp("-R","".concat(__dirname,"/root/Webresources/src/Http"),"./src"),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add","src/Http"]),console.log("Updating Translation..."),l.default.cp("-R","".concat(__dirname,"/root/Webresources/src/translation"),"./src"),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add","src/translation"]),console.log("Updating util..."),l.default.cp("-R","".concat(__dirname,"/root/Webresources/src/util"),"./src"),l.default.test("-e","../.git")?(d.default.execFileSync("git",["add","src/util"]),d.default.execFileSync("git",["rm","src/util/FormUtil.spec.ts"])):l.default.rm("src/util/FormUtil.spec.ts"),console.log("Updating WebApi..."),l.default.cp("-R","".concat(__dirname,"/root/Webresources/src/WebApi"),"./src"),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add","src/WebApi"])},e.updateCrmJson=function(){var e=JSON.parse(f.default.readFileSync("../crm.json","utf8"));l.default.cp("-R","".concat(__dirname,"/root/crm.json"),"../"),l.default.sed("-i",new RegExp("<%= publisher_prefix %>","ig"),e.crm.publisher_prefix,"../crm.json"),l.default.sed("-i",new RegExp("<%= environment %>","ig"),e.crm.url,"../crm.json"),l.default.sed("-i",new RegExp("<%= namespace %>","ig"),e.crm.namespace,"../crm.json"),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add","../crm.json"]);var t=l.default.exec("hso-d365 --version").stdout.replace(/\n/gi,"");l.default.sed("-i",new RegExp("<%= version %>","ig"),t,"../crm.json"),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add","../crm.json"])},e.updatePackageJson=function(){console.log("Updating package.json...");var e=JSON.parse(f.default.readFileSync("./package.json","utf8")),t=e.name,n=e.description,r=e.version,o=JSON.parse(f.default.readFileSync("../crm.json","utf8"));l.default.cp("-R","".concat(__dirname,"/root/Webresources/package.json"),".");var i=l.default.ls("package.json")[0];l.default.sed("-i",new RegExp("<%= projectname %>","ig"),t,i),l.default.sed("-i",new RegExp("<%= description %>","ig"),n,i),l.default.sed("-i",new RegExp("<%= publisher %>","ig"),o.crm.publisher_prefix,i),l.default.sed("-i",new RegExp("<%= version %>","ig"),r,i),console.log("Removing old npm packages. This may take a while..."),l.default.exec("npm prune"),l.default.exec("npm install")},e.updateWebpackConfig=function(){return a(this,void 0,void 0,(function(){return c(this,(function(e){return console.log("Updating webpack.config..."),l.default.cp("-R","".concat(__dirname,"/root/Webresources/webpack.config.ts"),"."),l.default.test("-e","../.git")&&d.default.execFileSync("git",["add","webpack.config.ts"]),[2]}))}))},e}();t.Update=p},8669:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AttributeFormContext=void 0;var u=i(n(8489)),l=i(n(9896)),f=s(n(5317)),d=n(9594),p=s(n(3672)),h=function(){function e(e,t,n){this.bearer=e,this.entityName=t,this.entityLogicalName=n}return e.generateFormContext=function(t,n,r){return a(this,void 0,void 0,(function(){return c(this,(function(o){switch(o.label){case 0:return[4,new e(t,n,r).writeFormContextFile()];case 1:return o.sent(),[2]}}))}))},e.prototype.writeFormContextFile=function(){return a(this,void 0,void 0,(function(){var e,t,n,r,o,i;return c(this,(function(a){switch(a.label){case 0:return console.log("Generating ".concat(this.entityName,".formContext.ts")),e=this,[4,d.NodeApi.getAttributesMetadata(this.entityLogicalName,this.bearer)];case 1:return e.attributesMetadata=a.sent(),[4,this.getFormContextAttributesString()];case 2:return t=a.sent(),n="src/".concat(this.entityName,"/").concat(this.entityName,".formContext.ts"),u.cp("-r","".concat(__dirname,"/Entity/Entity.formContext.ts"),"src/".concat(this.entityName)),u.cp("-r","src/".concat(this.entityName,"/Entity.formContext.ts"),n),u.rm("-rf","src/".concat(this.entityName,"/Entity.formContext.ts")),u.sed("-i",new RegExp("Entity","g"),this.entityName,n),u.test("-e","../.git")&&f.default.execFileSync("git",["add",n]),r=String(l.readFileSync(n)),o="".concat(this.entityName,"FormContext {"),i=r.replace(o,"".concat(o,"\n").concat(t)),u.ShellString(i).to(n),console.log("Generated ".concat(this.entityName,".formContext.ts")),[2]}}))}))},e.prototype.getFormContextAttributesString=function(){return a(this,void 0,void 0,(function(){var t,n,r,o,i,a,s,u,l;return c(this,(function(c){switch(c.label){case 0:t="",n=0,r=this.attributesMetadata,c.label=1;case 1:return n<r.length?(o=r[n],i=o.SchemaName,[4,this.getXrmAttributeType(o)]):[3,4];case 2:(a=c.sent())&&(s=e.capitalize(i),u=" static get".concat(s,"Attribute(formContext: Xrm.FormContext): ").concat(a," {"),l="return formContext.getAttribute(".concat(this.entityName,"AttributeNames.").concat(s,");"),t+="".concat(u,"\n ").concat(l,"\n }\n")),c.label=3;case 3:return n++,[3,1];case 4:return[2,t]}}))}))},e.prototype.getXrmAttributeType=function(e){return a(this,void 0,void 0,(function(){var t,n,r,o;return c(this,(function(i){return t=e.AttributeType,n=e.AttributeTypeName,r=e.SchemaName,["String","Memo","Uniqueidentifier"].includes(t)?[2,"Xrm.Attributes.StringAttribute"]:["DateTime"].includes(t)?[2,"Xrm.Attributes.DateAttribute"]:["Boolean"].includes(t)?[2,"Xrm.Attributes.BooleanAttribute"]:["Picklist","Status","State"].includes(t)?(o="".concat(this.entityName,"_").concat(r,"Values"),[2,"Xrm.Attributes.OptionSetAttribute<".concat(o,">")]):["Integer","Double","BigInt","Decimal","Double","Money"].includes(t)?[2,"Xrm.Attributes.NumberAttribute"]:"MultiSelectPicklistType"===n.Value?[2,"Xrm.Attributes.MultiSelectOptionSetAttribute"]:["Lookup","Customer","Owner"].includes(t)?[2,"Xrm.Attributes.LookupAttribute"]:(console.log(p.default.blue("".concat(this.entityLogicalName," attribute ").concat(t," falls back to Xrm.Attributes.Attribute."))),[2,"Xrm.Attributes.Attribute"])}))}))},e.capitalize=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},e}();t.AttributeFormContext=h},1744:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},c=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AttributeTypings=void 0;var u=i(n(8489)),l=i(n(9896)),f=s(n(3672)),d=s(n(5317)),p=n(9594),h=function(){function e(e,t,n){this.bearer=e,this.entityName=t,this.entityLogicalName=n}return e.generate=function(t,n,r){return a(this,void 0,void 0,(function(){return c(this,(function(o){switch(o.label){case 0:return[4,new e(t,n,r).writeTypingsFile()];case 1:return o.sent(),[2]}}))}))},e.prototype.writeTypingsFile=function(){return a(this,void 0,void 0,(function(){var e,t,n,r,o,i;return c(this,(function(a){switch(a.label){case 0:return console.log("Generating ".concat(this.entityName,".d.ts")),e=this,[4,p.NodeApi.getAttributesMetadata(this.entityLogicalName,this.bearer)];case 1:return e.attributesMetadata=a.sent(),[4,this.getTypingsAttributesString()];case 2:return t=a.sent(),n="src/".concat(this.entityName,"/").concat(this.entityName,".d.ts"),u.cp("-r","".concat(__dirname,"/Entity/Entity.d.ts"),"src/".concat(this.entityName)),u.cp("-r","src/".concat(this.entityName,"/Entity.d.ts"),n),u.rm("-rf","src/".concat(this.entityName,"/Entity.d.ts")),u.sed("-i",new RegExp("Entity","g"),this.entityName,n),u.test("-e","../.git")&&d.default.execFileSync("git",["add",n]),r=String(l.readFileSync(n)),o="interface ".concat(this.entityName,"Attributes {"),i=r.replace(o,"".concat(o,"\n").concat(t)),u.ShellString(i).to(n),console.log("Generated ".concat(this.entityName,".formContext.ts")),[2]}}))}))},e.prototype.getTypingsAttributesString=function(){return a(this,void 0,void 0,(function(){var e,t,n,r,o,i;return c(this,(function(a){switch(a.label){case 0:e="",t=0,n=this.attributesMetadata,a.label=1;case 1:return t<n.length?(r=n[t],o=r.LogicalName,[4,this.getXrmAttributeType(r)]):[3,4];case 2:(i=a.sent())&&(e+=" getAttribute(attributeName: '".concat(o,"'): ").concat(i,";\n")),a.label=3;case 3:return t++,[3,1];case 4:return[2,e]}}))}))},e.prototype.getXrmAttributeType=function(e){return a(this,void 0,void 0,(function(){var t,n,r;return c(this,(function(o){return t=e.AttributeType,n=e.SchemaName,["String","Memo","Uniqueidentifier"].includes(t)?[2,"Xrm.Attributes.StringAttribute"]:["DateTime"].includes(t)?[2,"Xrm.Attributes.DateAttribute"]:["Boolean"].includes(t)?[2,"Xrm.Attributes.BooleanAttribute"]:["Picklist","Status","State"].includes(t)?(r="".concat(this.entityName,"_").concat(n,"Values"),[2,"Xrm.Attributes.OptionSetAttribute<".concat(r,">")]):["Integer","Double","BigInt","Decimal","Double","Money"].includes(t)?[2,"Xrm.Attributes.NumberAttribute"]:["Lookup","Customer","Owner"].includes(t)?[2,"Xrm.Attributes.LookupAttribute"]:(console.log(f.default.blue(""