@bitblit/ratchet-node-only 4.0.225-alpha → 4.0.229-alpha

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/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import e from"fs";import{GlobalRatchet as t,RequireRatchet as r,Logger as s,ErrorRatchet as a,StringRatchet as n,EsmRatchet as o,MapRatchet as i}from"@bitblit/ratchet-common";import{DateTime as l}from"luxon";import c from"cross-fetch";import u from"util";import m from"child_process";import{parse as f}from"csv-parse";import{stringify as d}from"csv-stringify";import{Readable as g,Writable as h}from"stream";class p{constructor(){}static buildInformation(){return{version:"225",hash:"84b97a2c2908af3519fd2953e78bcb0396640c42",branch:"alpha-2023-09-11-1",tag:"alpha-2023-09-11-1",timeBuiltISO:"2023-09-11T13:30:04-0700",notes:"No notes"}}}class b{static DEFAULT_TIME_FORMAT="yyyy-MM-dd HH:mm:ss a z";static DEFAULT_TIME_ZONE="America/Los_Angeles";static createTestingCiRunInformation(e=b.DEFAULT_TIME_ZONE){const t=(new Date).toISOString();return{buildNumber:"Test_buildNumberVar_"+t,localTime:l.local().setZone(e).toFormat(b.DEFAULT_TIME_FORMAT),branch:"Test_branchVar_"+t,tag:"Test_tagVar_"+t,commitHash:"Test_hashVar_"+t,userName:"Test_userNameVar_"+t,projectName:"Test_projectNameVar_"+t}}static createDefaultCircleCiRunInformation(e=b.DEFAULT_TIME_ZONE){return{buildNumber:t.fetchGlobalVar("CIRCLE_BUILD_NUM"),branch:t.fetchGlobalVar("CIRCLE_BRANCH"),tag:t.fetchGlobalVar("CIRCLE_TAG"),commitHash:t.fetchGlobalVar("CIRCLE_SHA1"),localTime:l.local().setZone(e).toFormat(b.DEFAULT_TIME_FORMAT),userName:t.fetchGlobalVar("CIRCLE_USERNAME"),projectName:t.fetchGlobalVar("CIRCLE_PROJECT_REPONAME")}}static createDefaultGithubActionsRunInformation(e=b.DEFAULT_TIME_ZONE){return{buildNumber:t.fetchGlobalVar("GITHUB_RUN_NUMBER"),branch:t.fetchGlobalVar("GITHUB_REF_NAME"),tag:t.fetchGlobalVar("GITHUB_REF_NAME"),commitHash:t.fetchGlobalVar("GITHUB_SHA"),localTime:l.local().setZone(e).toFormat(b.DEFAULT_TIME_FORMAT),userName:t.fetchGlobalVar("GITHUB_ACTOR"),projectName:t.fetchGlobalVar("GITHUB_REPOSITORY")}}}class C{static async process(t,n,o="225",i="alpha-2023-09-11-1",l="84b97a2c2908af3519fd2953e78bcb0396640c42",c="alpha-2023-09-11-1",u="LOCAL-TIME"){if(r.notNullOrUndefined(n,"cfg"),r.notNullOrUndefined(n.buildNumber,"cfg.buildNumber"),r.notNullOrUndefined(n.localTime,"cfg.localTime"),!t)throw new Error("fileNames must be defined");0===t.length&&s.warn("Warning - no files supplied to process"),n.buildNumber||a.throwFormattedErr("%s env var not set - apparently not in a CI environment",n.buildNumber),s.info("Processing files %j with run info %j",n);let m=0;return t.forEach((t=>{if(e.existsSync(t))try{let r=e.readFileSync(t).toString();r=r.split(o).join(n.buildNumber),r=r.split(i).join(n.branch||""),r=r.split(l).join(n.commitHash||""),r=r.split(c).join(n.tag||""),r=r.split(u).join(n.localTime||""),e.writeFileSync(t,r),m++}catch(e){s.error("Error processing %s , continuing: %s",t,e,e)}else s.error("Could not find file %s to process, continuing",t)})),m}static extractFileNames(){let e=[];return process&&process.argv&&process.argv.length>3&&(e=process.argv.slice(3)),e}static extractVariableConfig(e){let t=null;const r=n.trimToEmpty(e).toLowerCase();switch(r){case"circleci":t=b.createDefaultCircleCiRunInformation();break;case"github":t=b.createDefaultGithubActionsRunInformation();break;case"test":t=b.createTestingCiRunInformation();break;default:a.throwFormattedErr("Unrecognized env var config type : %s",r)}return s.info("Using variable config : %j",t),t}static async runFromCliArgs(e){return e.length>1?C.process(e.slice(1),C.extractVariableConfig(e[0])):(s.infoP("Usage : apply-ci-env-variables-to-files {file1} {file2} ..."),-1)}}class E{static isCalledFromCLI(e){let t=!1;for(let r=0;e&&r<e.length&&!t;r++)t=E.indexOfCommandArgument(e[r])>-1;return t}static argsAfterCommand(e){let t=null;if(process?.argv?.length&&e?.length){let r=null;for(let t=0;t<e.length&&null===r;t++)r=E.indexOfCommandArgument(e[t]);t=null!==r?process.argv.slice(r+1,process.argv.length):null}return t}static isCalledFromCLISingle(e){return E.isCalledFromCLI([e])}static indexOfCommandArgument(e){const t=process.argv.map((t=>-1!==t.indexOf(e))).indexOf(!0);return-1===t?null:t}}class T{async findAndExecuteHandler(){let e=null;if(E.argsAfterCommand(["version"]))console.log("Version : "+JSON.stringify(this.fetchVersionInfo()));else{const t=this.fetchHandlerMap(),r=Object.keys(t);let s=null;for(let a=0;a<r.length&&!e;a++)s=E.argsAfterCommand([r[a],r[a]+".js"]),s&&(e=t[r[a]]);e?(console.debug("Running command with args "+JSON.stringify(s)),await e(s)):(console.log("Unrecognized command : ",process.argv),console.log("Valid commands are : ",Object.keys(t)))}}}class A{static async process(t,r,a=null){if(!t)throw new Error("fileNames must be defined");if(!r)throw new Error("outClassName must be defined");0===t.length&&s.warn("Warning - no files supplied to process"),s.info("Generating class %s from files %j (output file: %s)",r,t,a);let n="/** \n";n+="* Holder for the constants to be used by consumers \n",n+="* Moves it into code so that it can survive a trip through WebPack \n",n+="*/ \n\n",n+="export class "+r+" { \n",n+=" public static readonly VALUES:Record<string, string> = { \n";for(let r=0;r<t.length;r++){let a="NOT-FOUND";if(e.existsSync(t[r])){const s=t[r].substring(t[r].lastIndexOf("/")+1);a=e.readFileSync(t[r]).toString(),n+=r>0?",":"",n+='"'+s+'":'+JSON.stringify(a)+"\n"}else s.warn("Could not find file %s",t[r])}return n+="}; \n",n+="}",a&&(s.info("Writing to %s",a),e.writeFileSync(a,n)),n}static async runFromCliArgs(e){if(e.length<4)return s.infoP("Usage: ratchet-files-to-static-class {outFileName} {outClassName} {file0} ... {fileN}"),null;{const e=E.indexOfCommandArgument("files-to-static-class"),t=process.argv[e+1],r=process.argv[e+2],a=process.argv.slice(e+3);return s.info("Running FilesToStaticClass from command line arguments Target: %s TargetClass: %s InFiles: %j",t,r,a),A.process(a,r,t)}}}class _{static SPLIT_CHARACTER="<##>";static PRETTY_FORMAT=["%h","%H","%s","%f","%b","%at","%ct","%an","%ae","%cn","%ce","%N",""];static async executeCommand(e,t){let r=o.fetchDirName(import.meta.url);return t&&t.dst&&(r=t.dst),new Promise(((t,s)=>{m.exec(e,{cwd:r},((e,r,a)=>{""===r&&s("this does not look like a git repo"),a&&s(a),t(r)}))}))}static getCommandString(e){return'git log -1 --pretty=format:"'+_.PRETTY_FORMAT.join(e)+'" && git rev-parse --abbrev-ref HEAD && git tag --contains HEAD'}static async getLastCommitSwallowException(e={}){let t=null;try{t=await this.getLastCommit(e)}catch(e){s.warn("Failed to fetch git data : %s",e,e)}return t}static async getLastCommit(e={}){const t=_.getCommandString(_.SPLIT_CHARACTER),r=(await _.executeCommand(t,e)).split(_.SPLIT_CHARACTER),s=r[r.length-1].split("\n").filter((e=>e)),a=s[0],n=s.slice(1);return{shortHash:r[0],hash:r[1],subject:r[2],sanitizedSubject:r[3],body:r[4],authoredOn:r[5],committedOn:r[6],author:{name:r[7],email:r[8]},committer:{name:r[9],email:r[10]},notes:r[11],branch:a,tags:n}}}class y{static async process(e,r="America/Los_Angeles"){if(!e)throw new Error("slackHookUrl must be defined");const a=t.fetchGlobalVar("CIRCLE_BUILD_NUM"),n=t.fetchGlobalVar("CIRCLE_USERNAME"),o=t.fetchGlobalVar("CIRCLE_PROJECT_REPONAME"),i=t.fetchGlobalVar("CIRCLE_BRANCH")||"",m=t.fetchGlobalVar("CIRCLE_TAG")||"",f=t.fetchGlobalVar("CIRCLE_SHA1")||"",d=l.local().setZone(r).toFormat("MMMM Do yyyy, h:mm:ss a z"),g=await _.getLastCommitSwallowException();if(!a||!n||!o)throw new Error("CIRCLE_BUILD_NUM, CIRCLE_USERNAME, CIRCLE_PROJECT_REPONAME env vars not set - apparently not in a CircleCI environment");s.info("Sending slack notification %j with build %s, branch %s, tag %s, sha %s, time: %s",a,i,m,f,d);let h=u.format("%s performed release %s on %s at %s",n,m+" "+i,o,d);g&&g.subject&&(h+="\n\n"+g.subject);const p=await c(e,{method:"POST",mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"},redirect:"follow",body:JSON.stringify({text:h})}),b=await p.text();return s.info("Slack returned : %s",b),b}static extractHookUrl(){let e=null;return process&&process.argv&&process.argv.length>2&&(e=process.argv[2]),e}static async runFromCliArgs(e){s.info("Running PublishCiReleaseToSlack from command line arguments");const t=y.extractHookUrl();return t?y.process(t):(s.infoP("Usage : ratchet-publish-circle-ci-release-to-slack {hookUrl} ..."),null)}}class O extends T{fetchHandlerMap(){return{"apply-ci-env-variables-to-files":C.runFromCliArgs,"files-to-static-class":A.runFromCliArgs,"publish-ci-release-to-slack":y.runFromCliArgs}}fetchVersionInfo(){return p.buildInformation()}}class R{static defaultParseOptions(){return{delimiter:",",columns:!0}}static defaultStringifyOptions(){return{header:!0}}static async stringParse(e,t,r=R.defaultParseOptions()){return R.streamParse(g.from(e),t,r)}static async streamParse(e,t,r=R.defaultParseOptions()){return new Promise(((s,a)=>{const n=[],o=f(r);o.on("readable",(()=>{let e=o.read();for(;e;){const r=t(e);r&&n.push(r),e=o.read()}})),o.on("error",(e=>{a(e)})),o.on("end",(()=>{s(n)})),e.pipe(o)}))}static async fileParse(t,r){const s=e.createReadStream(t);return R.streamParse(s,r)}static async generateCsvData(e,t=R.defaultStringifyOptions()){s.silly("Converting %d items into csv file",e.length);return new Promise(((r,s)=>{d(e,t,(function(e,t){e?s(e):r(t)}))}))}static async generateComparison(t,a,n){r.notNullOrUndefined(t,"file1"),r.notNullOrUndefined(a,"file2"),r.notNullOrUndefined(n,"keyField"),s.info("Created csv compare with files %s and %s keyed on %s",t,a,n);let o=await this.streamParse(e.createReadStream(t),(e=>{}));o=o.map((e=>{const t={};return Object.keys(e).forEach((r=>{t[r.trim()]=e[r]})),t}));const l=i.mapByUniqueProperty(o,n);let c=await this.streamParse(e.createReadStream(a),(e=>{}));c=c.map((e=>{const t={};return Object.keys(e).forEach((r=>{t[r.trim()]=e[r]})),t}));const u=i.mapByUniqueProperty(c,n),m=[],f=[],d=[];Array.from(l.keys()).forEach((e=>{u.has(e)?d.push(e):m.push(e)})),Array.from(u.keys()).forEach((e=>{l.has(e)||f.push(e)}));return{file1Data:l,file2Data:u,file1OnlyKeys:m,file2OnlyKeys:f,bothFilesKeys:d}}static async streamObjectsToCsv(e,t,a){r.notNullOrUndefined(e,"srcSubject"),r.notNullOrUndefined(t,"output");const n=a||R.defaultStringifyOptions();s.silly("Running pipe to csv output : %j",n);let o=0;return new Promise(((r,a)=>{const i=d(n);i.on("error",(e=>{l&&l.unsubscribe(),a(e)})),i.on("finish",(()=>{l&&l.unsubscribe(),r(o)})),i.pipe(t);const l=e.subscribe((e=>{s.debug("Adding %j to csv",e),o++,i.write(e)}),(e=>{s.error("Error generating : %s",e),a(e)}),(()=>{s.debug("Finished"),i.end()}))}))}static defaultParseFunction(e){return e}}class N extends h{_val=[];constructor(){super()}_write(e,t,r){e&&this._val.push(e),r()}get value(){return Buffer.concat(this._val)}}class L extends g{_object;constructor(e,t={}){super(e instanceof Buffer||"string"==typeof e?t:{objectMode:!0}),this._object=e}_read(){this.push(this._object),this._object=null}}class I{constructor(){}static readableToBufferSync(e){const t=[];let r=e.read();for(;r;)t.push(r),r=e.read();return Buffer.concat(t)}static stringToReadable(e){return new g({read(){this.push(e),this.push(null)}})}static anyToStringReadable(e){return null==e?I.stringToReadable(null):I.stringToReadable(n.safeString(e))}static webReadableStreamToNodeReadable(e){const t=e.getReader(),r=new g;return t.read().then((async({value:e,done:s})=>{for(;!s;)r.push(e),({done:s,value:e}=await t.read());r.push(null)})),r}static webWritableStreamToNodeWriteable(e){const t=e.getWriter(),r=new h;return r._write=(e,r,s)=>{t.write(e),s()},r._final=e=>{t.close(),e()},r}}class S extends h{_val="";constructor(){super()}_write(e,t,r){this._val+=e?e.toString():"",r()}get value(){return this._val}}export{T as AbstractRatchetCliHandler,C as ApplyCiEnvVariablesToFiles,N as BufferWritable,b as CiRunInformationUtil,E as CliRatchet,R as CsvRatchet,A as FilesToStaticClass,_ as GitRatchet,L as MultiStream,I as NodeStreamRatchet,y as PublishCiReleaseToSlack,O as RatchetCliHandler,p as RatchetNodeOnlyInfo,S as StringWritable};
1
+ import e from"fs";import{GlobalRatchet as t,RequireRatchet as r,Logger as s,ErrorRatchet as a,StringRatchet as n,EsmRatchet as o,MapRatchet as i}from"@bitblit/ratchet-common";import{DateTime as l}from"luxon";import c from"cross-fetch";import u from"util";import m from"child_process";import{parse as f}from"csv-parse";import{stringify as d}from"csv-stringify";import{Readable as g,Writable as h}from"stream";class p{constructor(){}static buildInformation(){return{version:"229",hash:"67a18925c1017214a7cc68cadc46883143585fa5",branch:"alpha-2023-09-25-3",tag:"alpha-2023-09-25-3",timeBuiltISO:"2023-09-25T13:09:38-0700",notes:"No notes"}}}class b{static DEFAULT_TIME_FORMAT="yyyy-MM-dd HH:mm:ss a z";static DEFAULT_TIME_ZONE="America/Los_Angeles";static createTestingCiRunInformation(e=b.DEFAULT_TIME_ZONE){const t=(new Date).toISOString();return{buildNumber:"Test_buildNumberVar_"+t,localTime:l.local().setZone(e).toFormat(b.DEFAULT_TIME_FORMAT),branch:"Test_branchVar_"+t,tag:"Test_tagVar_"+t,commitHash:"Test_hashVar_"+t,userName:"Test_userNameVar_"+t,projectName:"Test_projectNameVar_"+t}}static createDefaultCircleCiRunInformation(e=b.DEFAULT_TIME_ZONE){return{buildNumber:t.fetchGlobalVar("CIRCLE_BUILD_NUM"),branch:t.fetchGlobalVar("CIRCLE_BRANCH"),tag:t.fetchGlobalVar("CIRCLE_TAG"),commitHash:t.fetchGlobalVar("CIRCLE_SHA1"),localTime:l.local().setZone(e).toFormat(b.DEFAULT_TIME_FORMAT),userName:t.fetchGlobalVar("CIRCLE_USERNAME"),projectName:t.fetchGlobalVar("CIRCLE_PROJECT_REPONAME")}}static createDefaultGithubActionsRunInformation(e=b.DEFAULT_TIME_ZONE){return{buildNumber:t.fetchGlobalVar("GITHUB_RUN_NUMBER"),branch:t.fetchGlobalVar("GITHUB_REF_NAME"),tag:t.fetchGlobalVar("GITHUB_REF_NAME"),commitHash:t.fetchGlobalVar("GITHUB_SHA"),localTime:l.local().setZone(e).toFormat(b.DEFAULT_TIME_FORMAT),userName:t.fetchGlobalVar("GITHUB_ACTOR"),projectName:t.fetchGlobalVar("GITHUB_REPOSITORY")}}}class C{static async process(t,n,o="229",i="alpha-2023-09-25-3",l="67a18925c1017214a7cc68cadc46883143585fa5",c="alpha-2023-09-25-3",u="LOCAL-TIME"){if(r.notNullOrUndefined(n,"cfg"),r.notNullOrUndefined(n.buildNumber,"cfg.buildNumber"),r.notNullOrUndefined(n.localTime,"cfg.localTime"),!t)throw new Error("fileNames must be defined");0===t.length&&s.warn("Warning - no files supplied to process"),n.buildNumber||a.throwFormattedErr("%s env var not set - apparently not in a CI environment",n.buildNumber),s.info("Processing files %j with run info %j",n);let m=0;return t.forEach((t=>{if(e.existsSync(t))try{let r=e.readFileSync(t).toString();r=r.split(o).join(n.buildNumber),r=r.split(i).join(n.branch||""),r=r.split(l).join(n.commitHash||""),r=r.split(c).join(n.tag||""),r=r.split(u).join(n.localTime||""),e.writeFileSync(t,r),m++}catch(e){s.error("Error processing %s , continuing: %s",t,e,e)}else s.error("Could not find file %s to process, continuing",t)})),m}static extractFileNames(){let e=[];return process&&process.argv&&process.argv.length>3&&(e=process.argv.slice(3)),e}static extractVariableConfig(e){let t=null;const r=n.trimToEmpty(e).toLowerCase();switch(r){case"circleci":t=b.createDefaultCircleCiRunInformation();break;case"github":t=b.createDefaultGithubActionsRunInformation();break;case"test":t=b.createTestingCiRunInformation();break;default:a.throwFormattedErr("Unrecognized env var config type : %s",r)}return s.info("Using variable config : %j",t),t}static async runFromCliArgs(e){return e.length>1?C.process(e.slice(1),C.extractVariableConfig(e[0])):(s.infoP("Usage : apply-ci-env-variables-to-files {file1} {file2} ..."),-1)}}class E{static isCalledFromCLI(e){let t=!1;for(let r=0;e&&r<e.length&&!t;r++)t=E.indexOfCommandArgument(e[r])>-1;return t}static argsAfterCommand(e){let t=null;if(process?.argv?.length&&e?.length){let r=null;for(let t=0;t<e.length&&null===r;t++)r=E.indexOfCommandArgument(e[t]);t=null!==r?process.argv.slice(r+1,process.argv.length):null}return t}static isCalledFromCLISingle(e){return E.isCalledFromCLI([e])}static indexOfCommandArgument(e){const t=process.argv.map((t=>-1!==t.indexOf(e))).indexOf(!0);return-1===t?null:t}}class T{async findAndExecuteHandler(){let e=null;if(E.argsAfterCommand(["version"]))console.log("Version : "+JSON.stringify(this.fetchVersionInfo()));else{const t=this.fetchHandlerMap(),r=Object.keys(t);let s=null;for(let a=0;a<r.length&&!e;a++)s=E.argsAfterCommand([r[a],r[a]+".js"]),s&&(e=t[r[a]]);e?(console.debug("Running command with args "+JSON.stringify(s)),await e(s)):(console.log("Unrecognized command : ",process.argv),console.log("Valid commands are : ",Object.keys(t)))}}}class A{static async process(t,r,a=null){if(!t)throw new Error("fileNames must be defined");if(!r)throw new Error("outClassName must be defined");0===t.length&&s.warn("Warning - no files supplied to process"),s.info("Generating class %s from files %j (output file: %s)",r,t,a);let n="/** \n";n+="* Holder for the constants to be used by consumers \n",n+="* Moves it into code so that it can survive a trip through WebPack \n",n+="*/ \n\n",n+="export class "+r+" { \n",n+=" public static readonly VALUES:Record<string, string> = { \n";for(let r=0;r<t.length;r++){let a="NOT-FOUND";if(e.existsSync(t[r])){const s=t[r].substring(t[r].lastIndexOf("/")+1);a=e.readFileSync(t[r]).toString(),n+=r>0?",":"",n+='"'+s+'":'+JSON.stringify(a)+"\n"}else s.warn("Could not find file %s",t[r])}return n+="}; \n",n+="}",a&&(s.info("Writing to %s",a),e.writeFileSync(a,n)),n}static async runFromCliArgs(e){if(e.length<4)return s.infoP("Usage: ratchet-files-to-static-class {outFileName} {outClassName} {file0} ... {fileN}"),null;{const e=E.indexOfCommandArgument("files-to-static-class"),t=process.argv[e+1],r=process.argv[e+2],a=process.argv.slice(e+3);return s.info("Running FilesToStaticClass from command line arguments Target: %s TargetClass: %s InFiles: %j",t,r,a),A.process(a,r,t)}}}class _{static SPLIT_CHARACTER="<##>";static PRETTY_FORMAT=["%h","%H","%s","%f","%b","%at","%ct","%an","%ae","%cn","%ce","%N",""];static async executeCommand(e,t){let r=o.fetchDirName(import.meta.url);return t&&t.dst&&(r=t.dst),new Promise(((t,s)=>{m.exec(e,{cwd:r},((e,r,a)=>{""===r&&s("this does not look like a git repo"),a&&s(a),t(r)}))}))}static getCommandString(e){return'git log -1 --pretty=format:"'+_.PRETTY_FORMAT.join(e)+'" && git rev-parse --abbrev-ref HEAD && git tag --contains HEAD'}static async getLastCommitSwallowException(e={}){let t=null;try{t=await this.getLastCommit(e)}catch(e){s.warn("Failed to fetch git data : %s",e,e)}return t}static async getLastCommit(e={}){const t=_.getCommandString(_.SPLIT_CHARACTER),r=(await _.executeCommand(t,e)).split(_.SPLIT_CHARACTER),s=r[r.length-1].split("\n").filter((e=>e)),a=s[0],n=s.slice(1);return{shortHash:r[0],hash:r[1],subject:r[2],sanitizedSubject:r[3],body:r[4],authoredOn:r[5],committedOn:r[6],author:{name:r[7],email:r[8]},committer:{name:r[9],email:r[10]},notes:r[11],branch:a,tags:n}}}class y{static async process(e,r="America/Los_Angeles"){if(!e)throw new Error("slackHookUrl must be defined");const a=t.fetchGlobalVar("CIRCLE_BUILD_NUM"),n=t.fetchGlobalVar("CIRCLE_USERNAME"),o=t.fetchGlobalVar("CIRCLE_PROJECT_REPONAME"),i=t.fetchGlobalVar("CIRCLE_BRANCH")||"",m=t.fetchGlobalVar("CIRCLE_TAG")||"",f=t.fetchGlobalVar("CIRCLE_SHA1")||"",d=l.local().setZone(r).toFormat("MMMM Do yyyy, h:mm:ss a z"),g=await _.getLastCommitSwallowException();if(!a||!n||!o)throw new Error("CIRCLE_BUILD_NUM, CIRCLE_USERNAME, CIRCLE_PROJECT_REPONAME env vars not set - apparently not in a CircleCI environment");s.info("Sending slack notification %j with build %s, branch %s, tag %s, sha %s, time: %s",a,i,m,f,d);let h=u.format("%s performed release %s on %s at %s",n,m+" "+i,o,d);g&&g.subject&&(h+="\n\n"+g.subject);const p=await c(e,{method:"POST",mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"},redirect:"follow",body:JSON.stringify({text:h})}),b=await p.text();return s.info("Slack returned : %s",b),b}static extractHookUrl(){let e=null;return process&&process.argv&&process.argv.length>2&&(e=process.argv[2]),e}static async runFromCliArgs(e){s.info("Running PublishCiReleaseToSlack from command line arguments");const t=y.extractHookUrl();return t?y.process(t):(s.infoP("Usage : ratchet-publish-circle-ci-release-to-slack {hookUrl} ..."),null)}}class O extends T{fetchHandlerMap(){return{"apply-ci-env-variables-to-files":C.runFromCliArgs,"files-to-static-class":A.runFromCliArgs,"publish-ci-release-to-slack":y.runFromCliArgs}}fetchVersionInfo(){return p.buildInformation()}}class R{static defaultParseOptions(){return{delimiter:",",columns:!0}}static defaultStringifyOptions(){return{header:!0}}static async stringParse(e,t,r=R.defaultParseOptions()){return R.streamParse(g.from(e),t,r)}static async streamParse(e,t,r=R.defaultParseOptions()){return new Promise(((s,a)=>{const n=[],o=f(r);o.on("readable",(()=>{let e=o.read();for(;e;){const r=t(e);r&&n.push(r),e=o.read()}})),o.on("error",(e=>{a(e)})),o.on("end",(()=>{s(n)})),e.pipe(o)}))}static async fileParse(t,r){const s=e.createReadStream(t);return R.streamParse(s,r)}static async generateCsvData(e,t=R.defaultStringifyOptions()){s.silly("Converting %d items into csv file",e.length);return new Promise(((r,s)=>{d(e,t,(function(e,t){e?s(e):r(t)}))}))}static async generateComparison(t,a,n){r.notNullOrUndefined(t,"file1"),r.notNullOrUndefined(a,"file2"),r.notNullOrUndefined(n,"keyField"),s.info("Created csv compare with files %s and %s keyed on %s",t,a,n);let o=await this.streamParse(e.createReadStream(t),(e=>{}));o=o.map((e=>{const t={};return Object.keys(e).forEach((r=>{t[r.trim()]=e[r]})),t}));const l=i.mapByUniqueProperty(o,n);let c=await this.streamParse(e.createReadStream(a),(e=>{}));c=c.map((e=>{const t={};return Object.keys(e).forEach((r=>{t[r.trim()]=e[r]})),t}));const u=i.mapByUniqueProperty(c,n),m=[],f=[],d=[];Array.from(l.keys()).forEach((e=>{u.has(e)?d.push(e):m.push(e)})),Array.from(u.keys()).forEach((e=>{l.has(e)||f.push(e)}));return{file1Data:l,file2Data:u,file1OnlyKeys:m,file2OnlyKeys:f,bothFilesKeys:d}}static async streamObjectsToCsv(e,t,a){r.notNullOrUndefined(e,"srcSubject"),r.notNullOrUndefined(t,"output");const n=a||R.defaultStringifyOptions();s.silly("Running pipe to csv output : %j",n);let o=0;return new Promise(((r,a)=>{const i=d(n);i.on("error",(e=>{l&&l.unsubscribe(),a(e)})),i.on("finish",(()=>{l&&l.unsubscribe(),r(o)})),i.pipe(t);const l=e.subscribe((e=>{s.debug("Adding %j to csv",e),o++,i.write(e)}),(e=>{s.error("Error generating : %s",e),a(e)}),(()=>{s.debug("Finished"),i.end()}))}))}static defaultParseFunction(e){return e}}class N extends h{_val=[];constructor(){super()}_write(e,t,r){e&&this._val.push(e),r()}get value(){return Buffer.concat(this._val)}}class L extends g{_object;constructor(e,t={}){super(e instanceof Buffer||"string"==typeof e?t:{objectMode:!0}),this._object=e}_read(){this.push(this._object),this._object=null}}class I{constructor(){}static readableToBufferSync(e){const t=[];let r=e.read();for(;r;)t.push(r),r=e.read();return Buffer.concat(t)}static stringToReadable(e){return new g({read(){this.push(e),this.push(null)}})}static anyToStringReadable(e){return null==e?I.stringToReadable(null):I.stringToReadable(n.safeString(e))}static webReadableStreamToNodeReadable(e){const t=e.getReader(),r=new g;return t.read().then((async({value:e,done:s})=>{for(;!s;)r.push(e),({done:s,value:e}=await t.read());r.push(null)})),r}static webWritableStreamToNodeWriteable(e){const t=e.getWriter(),r=new h;return r._write=(e,r,s)=>{t.write(e),s()},r._final=e=>{t.close(),e()},r}}class S extends h{_val="";constructor(){super()}_write(e,t,r){this._val+=e?e.toString():"",r()}get value(){return this._val}}export{T as AbstractRatchetCliHandler,C as ApplyCiEnvVariablesToFiles,N as BufferWritable,b as CiRunInformationUtil,E as CliRatchet,R as CsvRatchet,A as FilesToStaticClass,_ as GitRatchet,L as MultiStream,I as NodeStreamRatchet,y as PublishCiReleaseToSlack,O as RatchetCliHandler,p as RatchetNodeOnlyInfo,S as StringWritable};
2
2
  //# sourceMappingURL=index.mjs.map
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/build/ratchet-node-only-info.ts","../src/ci/ci-run-information-util.ts","../src/ci/apply-ci-env-variables-to-files.ts","../src/cli/cli-ratchet.ts","../src/cli/abstract-ratchet-cli-handler.ts","../src/files/files-to-static-class.ts","../src/third-party/git/git-ratchet.ts","../src/third-party/slack/publish-ci-release-to-slack.ts","../src/cli/ratchet-cli-handler.ts","../src/csv/csv-ratchet.ts","../src/stream/buffer-writable.ts","../src/stream/multi-stream.ts","../src/stream/node-stream-ratchet.ts","../src/stream/string-writable.ts"],"sourcesContent":["export class RatchetNodeOnlyInfo {\n constructor() { }\n static buildInformation() {\n const val = {\n version: 'LOCAL-SNAPSHOT',\n hash: 'LOCAL-HASH',\n branch: 'LOCAL-BRANCH',\n tag: 'LOCAL-TAG',\n timeBuiltISO: 'LOCAL-TIME-ISO',\n notes: 'LOCAL-NOTES',\n };\n return val;\n }\n}\n//# sourceMappingURL=ratchet-node-only-info.js.map","import { DateTime } from 'luxon';\nimport { GlobalRatchet } from '@bitblit/ratchet-common';\nexport class CiRunInformationUtil {\n static DEFAULT_TIME_FORMAT = 'yyyy-MM-dd HH:mm:ss a z';\n static DEFAULT_TIME_ZONE = 'America/Los_Angeles';\n static createTestingCiRunInformation(timezone = CiRunInformationUtil.DEFAULT_TIME_ZONE) {\n const now = new Date().toISOString();\n const rval = {\n buildNumber: 'Test_buildNumberVar_' + now,\n localTime: DateTime.local().setZone(timezone).toFormat(CiRunInformationUtil.DEFAULT_TIME_FORMAT),\n branch: 'Test_branchVar_' + now,\n tag: 'Test_tagVar_' + now,\n commitHash: 'Test_hashVar_' + now,\n userName: 'Test_userNameVar_' + now,\n projectName: 'Test_projectNameVar_' + now,\n };\n return rval;\n }\n static createDefaultCircleCiRunInformation(timezone = CiRunInformationUtil.DEFAULT_TIME_ZONE) {\n const rval = {\n buildNumber: GlobalRatchet.fetchGlobalVar('CIRCLE_BUILD_NUM'),\n branch: GlobalRatchet.fetchGlobalVar('CIRCLE_BRANCH'),\n tag: GlobalRatchet.fetchGlobalVar('CIRCLE_TAG'),\n commitHash: GlobalRatchet.fetchGlobalVar('CIRCLE_SHA1'),\n localTime: DateTime.local().setZone(timezone).toFormat(CiRunInformationUtil.DEFAULT_TIME_FORMAT),\n userName: GlobalRatchet.fetchGlobalVar('CIRCLE_USERNAME'),\n projectName: GlobalRatchet.fetchGlobalVar('CIRCLE_PROJECT_REPONAME'),\n };\n return rval;\n }\n static createDefaultGithubActionsRunInformation(timezone = CiRunInformationUtil.DEFAULT_TIME_ZONE) {\n const rval = {\n buildNumber: GlobalRatchet.fetchGlobalVar('GITHUB_RUN_NUMBER'),\n branch: GlobalRatchet.fetchGlobalVar('GITHUB_REF_NAME'),\n tag: GlobalRatchet.fetchGlobalVar('GITHUB_REF_NAME'),\n commitHash: GlobalRatchet.fetchGlobalVar('GITHUB_SHA'),\n localTime: DateTime.local().setZone(timezone).toFormat(CiRunInformationUtil.DEFAULT_TIME_FORMAT),\n userName: GlobalRatchet.fetchGlobalVar('GITHUB_ACTOR'),\n projectName: GlobalRatchet.fetchGlobalVar('GITHUB_REPOSITORY'),\n };\n return rval;\n }\n}\n//# sourceMappingURL=ci-run-information-util.js.map","import fs from 'fs';\nimport { ErrorRatchet } from '@bitblit/ratchet-common';\nimport { Logger } from '@bitblit/ratchet-common';\nimport { RequireRatchet } from '@bitblit/ratchet-common';\nimport { StringRatchet } from '@bitblit/ratchet-common';\nimport { CiRunInformationUtil } from './ci-run-information-util.js';\nexport class ApplyCiEnvVariablesToFiles {\n static async process(fileNames, cfg, buildFinder = 'LOCAL-SNAPSHOT', branchFinder = 'LOCAL-BRANCH', hashFinder = 'LOCAL-HASH', tagFinder = 'LOCAL-TAG', timeFinder = 'LOCAL-TIME') {\n RequireRatchet.notNullOrUndefined(cfg, 'cfg');\n RequireRatchet.notNullOrUndefined(cfg.buildNumber, 'cfg.buildNumber');\n RequireRatchet.notNullOrUndefined(cfg.localTime, 'cfg.localTime');\n if (!fileNames) {\n throw new Error('fileNames must be defined');\n }\n if (fileNames.length === 0) {\n Logger.warn('Warning - no files supplied to process');\n }\n if (!cfg.buildNumber) {\n ErrorRatchet.throwFormattedErr('%s env var not set - apparently not in a CI environment', cfg.buildNumber);\n }\n Logger.info('Processing files %j with run info %j', cfg);\n let foundCount = 0;\n fileNames.forEach((f) => {\n if (!fs.existsSync(f)) {\n Logger.error('Could not find file %s to process, continuing', f);\n }\n else {\n try {\n let contents = fs.readFileSync(f).toString();\n contents = contents.split(buildFinder).join(cfg.buildNumber);\n contents = contents.split(branchFinder).join(cfg.branch || '');\n contents = contents.split(hashFinder).join(cfg.commitHash || '');\n contents = contents.split(tagFinder).join(cfg.tag || '');\n contents = contents.split(timeFinder).join(cfg.localTime || '');\n fs.writeFileSync(f, contents);\n foundCount++;\n }\n catch (err) {\n Logger.error('Error processing %s , continuing: %s', f, err, err);\n }\n }\n });\n return foundCount;\n }\n static extractFileNames() {\n let rval = [];\n if (process && process.argv && process.argv.length > 3) {\n rval = process.argv.slice(3);\n }\n return rval;\n }\n static extractVariableConfig(inName) {\n let rval = null;\n const name = StringRatchet.trimToEmpty(inName).toLowerCase();\n switch (name) {\n case 'circleci':\n rval = CiRunInformationUtil.createDefaultCircleCiRunInformation();\n break;\n case 'github':\n rval = CiRunInformationUtil.createDefaultGithubActionsRunInformation();\n break;\n case 'test':\n rval = CiRunInformationUtil.createTestingCiRunInformation();\n break;\n default:\n ErrorRatchet.throwFormattedErr('Unrecognized env var config type : %s', name);\n }\n Logger.info('Using variable config : %j', rval);\n return rval;\n }\n static async runFromCliArgs(args) {\n if (args.length > 1) {\n return ApplyCiEnvVariablesToFiles.process(args.slice(1), ApplyCiEnvVariablesToFiles.extractVariableConfig(args[0]));\n }\n else {\n Logger.infoP('Usage : apply-ci-env-variables-to-files {file1} {file2} ...');\n return -1;\n }\n }\n}\n//# sourceMappingURL=apply-ci-env-variables-to-files.js.map","export class CliRatchet {\n static isCalledFromCLI(filenames) {\n let rval = false;\n for (let i = 0; filenames && i < filenames.length && !rval; i++) {\n rval = CliRatchet.indexOfCommandArgument(filenames[i]) > -1;\n }\n return rval;\n }\n static argsAfterCommand(filenames) {\n let rval = null;\n if (process?.argv?.length && filenames?.length) {\n let idx = null;\n for (let i = 0; i < filenames.length && idx === null; i++) {\n idx = CliRatchet.indexOfCommandArgument(filenames[i]);\n }\n rval = idx !== null ? process.argv.slice(idx + 1, process.argv.length) : null;\n }\n return rval;\n }\n static isCalledFromCLISingle(filename) {\n return CliRatchet.isCalledFromCLI([filename]);\n }\n static indexOfCommandArgument(filename) {\n const contFileName = process.argv.map((arg) => arg.indexOf(filename) !== -1);\n const idx = contFileName.indexOf(true);\n return idx === -1 ? null : idx;\n }\n}\n//# sourceMappingURL=cli-ratchet.js.map","import { CliRatchet } from './cli-ratchet.js';\nexport class AbstractRatchetCliHandler {\n async findAndExecuteHandler() {\n let handler = null;\n if (CliRatchet.argsAfterCommand(['version'])) {\n console.log('Version : ' + JSON.stringify(this.fetchVersionInfo()));\n }\n else {\n const handlerMap = this.fetchHandlerMap();\n const keys = Object.keys(handlerMap);\n let remainArgs = null;\n for (let i = 0; i < keys.length && !handler; i++) {\n remainArgs = CliRatchet.argsAfterCommand([keys[i], keys[i] + '.js']);\n if (remainArgs) {\n handler = handlerMap[keys[i]];\n }\n }\n if (handler) {\n console.debug('Running command with args ' + JSON.stringify(remainArgs));\n await handler(remainArgs);\n }\n else {\n console.log('Unrecognized command : ', process.argv);\n console.log('Valid commands are : ', Object.keys(handlerMap));\n }\n }\n }\n}\n//# sourceMappingURL=abstract-ratchet-cli-handler.js.map","import { Logger } from '@bitblit/ratchet-common';\nimport fs from 'fs';\nimport { CliRatchet } from '../cli/cli-ratchet.js';\nexport class FilesToStaticClass {\n static async process(fileNames, outClassName, outFileName = null) {\n if (!fileNames) {\n throw new Error('fileNames must be defined');\n }\n if (!outClassName) {\n throw new Error('outClassName must be defined');\n }\n if (fileNames.length === 0) {\n Logger.warn('Warning - no files supplied to process');\n }\n Logger.info('Generating class %s from files %j (output file: %s)', outClassName, fileNames, outFileName);\n let rval = '/** \\n';\n rval += '* Holder for the constants to be used by consumers \\n';\n rval += '* Moves it into code so that it can survive a trip through WebPack \\n';\n rval += '*/ \\n\\n';\n rval += 'export class ' + outClassName + ' { \\n';\n rval += ' public static readonly VALUES:Record<string, string> = { \\n';\n for (let i = 0; i < fileNames.length; i++) {\n let contents = 'NOT-FOUND';\n if (fs.existsSync(fileNames[i])) {\n const trimmed = fileNames[i].substring(fileNames[i].lastIndexOf('/') + 1);\n contents = fs.readFileSync(fileNames[i]).toString();\n rval += i > 0 ? ',' : '';\n rval += '\"' + trimmed + '\":' + JSON.stringify(contents) + '\\n';\n }\n else {\n Logger.warn('Could not find file %s', fileNames[i]);\n }\n }\n rval += '}; \\n';\n rval += '}';\n if (!!outFileName) {\n Logger.info('Writing to %s', outFileName);\n fs.writeFileSync(outFileName, rval);\n }\n return rval;\n }\n static async runFromCliArgs(args) {\n if (args.length < 4) {\n Logger.infoP('Usage: ratchet-files-to-static-class {outFileName} {outClassName} {file0} ... {fileN}');\n return null;\n }\n else {\n const idx = CliRatchet.indexOfCommandArgument('files-to-static-class');\n const outFileName = process.argv[idx + 1];\n const outClassName = process.argv[idx + 2];\n const files = process.argv.slice(idx + 3);\n Logger.info('Running FilesToStaticClass from command line arguments Target: %s TargetClass: %s InFiles: %j', outFileName, outClassName, files);\n return FilesToStaticClass.process(files, outClassName, outFileName);\n }\n }\n}\n//# sourceMappingURL=files-to-static-class.js.map","import process from 'child_process';\nimport { Logger } from '@bitblit/ratchet-common';\nimport { EsmRatchet } from '@bitblit/ratchet-common';\nexport class GitRatchet {\n static SPLIT_CHARACTER = '<##>';\n static PRETTY_FORMAT = ['%h', '%H', '%s', '%f', '%b', '%at', '%ct', '%an', '%ae', '%cn', '%ce', '%N', ''];\n static async executeCommand(command, options) {\n let dst = EsmRatchet.fetchDirName(import.meta.url);\n if (!!options && !!options.dst) {\n dst = options.dst;\n }\n return new Promise((res, rej) => {\n process.exec(command, { cwd: dst }, (err, stdout, stderr) => {\n if (stdout === '') {\n rej('this does not look like a git repo');\n }\n if (!!stderr) {\n rej(stderr);\n }\n res(stdout);\n });\n });\n }\n static getCommandString(splitChar) {\n return ('git log -1 --pretty=format:\"' +\n GitRatchet.PRETTY_FORMAT.join(splitChar) +\n '\"' +\n ' && git rev-parse --abbrev-ref HEAD' +\n ' && git tag --contains HEAD');\n }\n static async getLastCommitSwallowException(options = {}) {\n let rval = null;\n try {\n rval = await this.getLastCommit(options);\n }\n catch (err) {\n Logger.warn('Failed to fetch git data : %s', err, err);\n }\n return rval;\n }\n static async getLastCommit(options = {}) {\n const command = GitRatchet.getCommandString(GitRatchet.SPLIT_CHARACTER);\n const res = await GitRatchet.executeCommand(command, options);\n const a = res.split(GitRatchet.SPLIT_CHARACTER);\n const branchAndTags = a[a.length - 1].split('\\n').filter((n) => n);\n const branch = branchAndTags[0];\n const tags = branchAndTags.slice(1);\n const rval = {\n shortHash: a[0],\n hash: a[1],\n subject: a[2],\n sanitizedSubject: a[3],\n body: a[4],\n authoredOn: a[5],\n committedOn: a[6],\n author: {\n name: a[7],\n email: a[8],\n },\n committer: {\n name: a[9],\n email: a[10],\n },\n notes: a[11],\n branch,\n tags,\n };\n return rval;\n }\n}\n//# sourceMappingURL=git-ratchet.js.map","import { DateTime } from 'luxon';\nimport { Logger } from '@bitblit/ratchet-common';\nimport { GlobalRatchet } from '@bitblit/ratchet-common';\nimport fetch from 'cross-fetch';\nimport util from 'util';\nimport { GitRatchet } from '../git/git-ratchet.js';\nexport class PublishCiReleaseToSlack {\n static async process(slackHookUrl, timezone = 'America/Los_Angeles') {\n if (!slackHookUrl) {\n throw new Error('slackHookUrl must be defined');\n }\n const buildNum = GlobalRatchet.fetchGlobalVar('CIRCLE_BUILD_NUM');\n const userName = GlobalRatchet.fetchGlobalVar('CIRCLE_USERNAME');\n const projectName = GlobalRatchet.fetchGlobalVar('CIRCLE_PROJECT_REPONAME');\n const branch = GlobalRatchet.fetchGlobalVar('CIRCLE_BRANCH') || '';\n const tag = GlobalRatchet.fetchGlobalVar('CIRCLE_TAG') || '';\n const sha1 = GlobalRatchet.fetchGlobalVar('CIRCLE_SHA1') || '';\n const localTime = DateTime.local().setZone(timezone).toFormat('MMMM Do yyyy, h:mm:ss a z');\n const gitData = await GitRatchet.getLastCommitSwallowException();\n if (!buildNum || !userName || !projectName) {\n throw new Error('CIRCLE_BUILD_NUM, CIRCLE_USERNAME, CIRCLE_PROJECT_REPONAME env vars not set - apparently not in a CircleCI environment');\n }\n Logger.info('Sending slack notification %j with build %s, branch %s, tag %s, sha %s, time: %s', buildNum, branch, tag, sha1, localTime);\n let message = util.format('%s performed release %s on %s at %s', userName, tag + ' ' + branch, projectName, localTime);\n if (!!gitData && !!gitData.subject) {\n message += '\\n\\n' + gitData.subject;\n }\n const response = await fetch(slackHookUrl, {\n method: 'POST',\n mode: 'cors',\n cache: 'no-cache',\n headers: {\n 'Content-Type': 'application/json',\n },\n redirect: 'follow',\n body: JSON.stringify({ text: message }),\n });\n const bodyOut = await response.text();\n Logger.info('Slack returned : %s', bodyOut);\n return bodyOut;\n }\n static extractHookUrl() {\n let rval = null;\n if (process && process.argv && process.argv.length > 2) {\n rval = process.argv[2];\n }\n return rval;\n }\n static async runFromCliArgs(args) {\n Logger.info('Running PublishCiReleaseToSlack from command line arguments');\n const hook = PublishCiReleaseToSlack.extractHookUrl();\n if (!!hook) {\n return PublishCiReleaseToSlack.process(hook);\n }\n else {\n Logger.infoP('Usage : ratchet-publish-circle-ci-release-to-slack {hookUrl} ...');\n return null;\n }\n }\n}\n//# sourceMappingURL=publish-ci-release-to-slack.js.map","import { RatchetNodeOnlyInfo } from '../build/ratchet-node-only-info.js';\nimport { ApplyCiEnvVariablesToFiles } from '../ci/apply-ci-env-variables-to-files.js';\nimport { FilesToStaticClass } from '../files/files-to-static-class.js';\nimport { PublishCiReleaseToSlack } from '../third-party/slack/publish-ci-release-to-slack.js';\nimport { AbstractRatchetCliHandler } from './abstract-ratchet-cli-handler.js';\nexport class RatchetCliHandler extends AbstractRatchetCliHandler {\n fetchHandlerMap() {\n return {\n 'apply-ci-env-variables-to-files': ApplyCiEnvVariablesToFiles.runFromCliArgs,\n 'files-to-static-class': FilesToStaticClass.runFromCliArgs,\n 'publish-ci-release-to-slack': PublishCiReleaseToSlack.runFromCliArgs,\n };\n }\n fetchVersionInfo() {\n return RatchetNodeOnlyInfo.buildInformation();\n }\n}\n//# sourceMappingURL=ratchet-cli-handler.js.map","import fs from 'fs';\nimport { parse } from 'csv-parse';\nimport { Logger } from '@bitblit/ratchet-common';\nimport { RequireRatchet } from '@bitblit/ratchet-common';\nimport { MapRatchet } from '@bitblit/ratchet-common';\nimport { stringify } from 'csv-stringify';\nimport { Readable } from 'stream';\nexport class CsvRatchet {\n static defaultParseOptions() {\n const rval = {\n delimiter: ',',\n columns: true,\n };\n return rval;\n }\n static defaultStringifyOptions() {\n const rval = {\n header: true,\n };\n return rval;\n }\n static async stringParse(input, pf, opts = CsvRatchet.defaultParseOptions()) {\n return CsvRatchet.streamParse(Readable.from(input), pf, opts);\n }\n static async streamParse(readStream, pf, opts = CsvRatchet.defaultParseOptions()) {\n return new Promise((res, rej) => {\n const rval = [];\n const p = parse(opts);\n p.on('readable', () => {\n let record = p.read();\n while (record) {\n const newVal = pf(record);\n if (newVal) {\n rval.push(newVal);\n }\n else {\n }\n record = p.read();\n }\n });\n p.on('error', (err) => {\n rej(err);\n });\n p.on('end', () => {\n res(rval);\n });\n readStream.pipe(p);\n });\n }\n static async fileParse(filename, pf) {\n const readStream = fs.createReadStream(filename);\n return CsvRatchet.streamParse(readStream, pf);\n }\n static async generateCsvData(objectsToConvert, opts = CsvRatchet.defaultStringifyOptions()) {\n Logger.silly('Converting %d items into csv file', objectsToConvert.length);\n const genProm = new Promise((res, rej) => {\n stringify(objectsToConvert, opts, function (err, data) {\n if (err) {\n rej(err);\n }\n else {\n res(data);\n }\n });\n });\n return genProm;\n }\n static async generateComparison(file1, file2, keyField) {\n RequireRatchet.notNullOrUndefined(file1, 'file1');\n RequireRatchet.notNullOrUndefined(file2, 'file2');\n RequireRatchet.notNullOrUndefined(keyField, 'keyField');\n Logger.info('Created csv compare with files %s and %s keyed on %s', file1, file2, keyField);\n let file1Parsed = await this.streamParse(fs.createReadStream(file1), (f) => {\n f;\n });\n file1Parsed = file1Parsed.map((m) => {\n const next = {};\n Object.keys(m).forEach((k) => {\n next[k.trim()] = m[k];\n });\n return next;\n });\n const file1Mapped = MapRatchet.mapByUniqueProperty(file1Parsed, keyField);\n let file2Parsed = await this.streamParse(fs.createReadStream(file2), (f) => {\n f;\n });\n file2Parsed = file2Parsed.map((m) => {\n const next = {};\n Object.keys(m).forEach((k) => {\n next[k.trim()] = m[k];\n });\n return next;\n });\n const file2Mapped = MapRatchet.mapByUniqueProperty(file2Parsed, keyField);\n const f1Only = [];\n const f2Only = [];\n const both = [];\n Array.from(file1Mapped.keys()).forEach((f1k) => {\n if (file2Mapped.has(f1k)) {\n both.push(f1k);\n }\n else {\n f1Only.push(f1k);\n }\n });\n Array.from(file2Mapped.keys()).forEach((f1k) => {\n if (!file1Mapped.has(f1k)) {\n f2Only.push(f1k);\n }\n });\n const rval = {\n file1Data: file1Mapped,\n file2Data: file2Mapped,\n file1OnlyKeys: f1Only,\n file2OnlyKeys: f2Only,\n bothFilesKeys: both,\n };\n return rval;\n }\n static async streamObjectsToCsv(srcSubject, output, inOpts) {\n RequireRatchet.notNullOrUndefined(srcSubject, 'srcSubject');\n RequireRatchet.notNullOrUndefined(output, 'output');\n const opts = inOpts || CsvRatchet.defaultStringifyOptions();\n Logger.silly('Running pipe to csv output : %j', opts);\n let count = 0;\n const genProm = new Promise((res, rej) => {\n const stringifier = stringify(opts);\n stringifier.on('error', (err) => {\n if (sub) {\n sub.unsubscribe();\n }\n rej(err);\n });\n stringifier.on('finish', () => {\n if (sub) {\n sub.unsubscribe();\n }\n res(count);\n });\n stringifier.pipe(output);\n const sub = srcSubject.subscribe((next) => {\n Logger.debug('Adding %j to csv', next);\n count++;\n stringifier.write(next);\n }, (err) => {\n Logger.error('Error generating : %s', err);\n rej(err);\n }, () => {\n Logger.debug('Finished');\n stringifier.end();\n });\n });\n return genProm;\n }\n static defaultParseFunction(row) {\n return row;\n }\n}\n//# sourceMappingURL=csv-ratchet.js.map","import { Writable } from 'stream';\nexport class BufferWritable extends Writable {\n _val = [];\n constructor() {\n super();\n }\n _write(chunk, encoding, callback) {\n if (chunk) {\n this._val.push(chunk);\n }\n callback();\n }\n get value() {\n return Buffer.concat(this._val);\n }\n}\n//# sourceMappingURL=buffer-writable.js.map","import { Readable } from 'stream';\nexport class MultiStream extends Readable {\n _object;\n constructor(object, options = {}) {\n super(object instanceof Buffer || typeof object === 'string' ? options : { objectMode: true });\n this._object = object;\n }\n _read() {\n this.push(this._object);\n this._object = null;\n }\n}\n//# sourceMappingURL=multi-stream.js.map","import { Readable, Writable } from 'stream';\nimport { StringRatchet } from '@bitblit/ratchet-common';\nexport class NodeStreamRatchet {\n constructor() { }\n static readableToBufferSync(stream) {\n const bufs = [];\n let next = stream.read();\n while (next) {\n bufs.push(next);\n next = stream.read();\n }\n return Buffer.concat(bufs);\n }\n static stringToReadable(input) {\n return new Readable({\n read() {\n this.push(input);\n this.push(null);\n },\n });\n }\n static anyToStringReadable(input) {\n return input === null || input === undefined\n ? NodeStreamRatchet.stringToReadable(null)\n : NodeStreamRatchet.stringToReadable(StringRatchet.safeString(input));\n }\n static webReadableStreamToNodeReadable(rs) {\n const reader = rs.getReader();\n const out = new Readable();\n reader.read().then(async ({ value, done }) => {\n while (!done) {\n out.push(value);\n ({ done, value } = await reader.read());\n }\n out.push(null);\n });\n return out;\n }\n static webWritableStreamToNodeWriteable(ws) {\n const writer = ws.getWriter();\n const out = new Writable();\n out._write = (chunk, encoding, callback) => {\n writer.write(chunk);\n callback();\n };\n out._final = (callback) => {\n writer.close();\n callback();\n };\n return out;\n }\n}\n//# sourceMappingURL=node-stream-ratchet.js.map","import { Writable } from 'stream';\nexport class StringWritable extends Writable {\n _val = '';\n constructor() {\n super();\n }\n _write(chunk, encoding, callback) {\n this._val += chunk ? chunk.toString() : '';\n callback();\n }\n get value() {\n return this._val;\n }\n}\n//# sourceMappingURL=string-writable.js.map"],"names":["RatchetNodeOnlyInfo","constructor","buildInformation","version","hash","branch","tag","timeBuiltISO","notes","CiRunInformationUtil","static","createTestingCiRunInformation","timezone","DEFAULT_TIME_ZONE","now","Date","toISOString","buildNumber","localTime","DateTime","local","setZone","toFormat","DEFAULT_TIME_FORMAT","commitHash","userName","projectName","createDefaultCircleCiRunInformation","GlobalRatchet","fetchGlobalVar","createDefaultGithubActionsRunInformation","ApplyCiEnvVariablesToFiles","process","fileNames","cfg","buildFinder","branchFinder","hashFinder","tagFinder","timeFinder","RequireRatchet","notNullOrUndefined","Error","length","Logger","warn","ErrorRatchet","throwFormattedErr","info","foundCount","forEach","f","fs","existsSync","contents","readFileSync","toString","split","join","writeFileSync","err","error","extractFileNames","rval","argv","slice","extractVariableConfig","inName","name","StringRatchet","trimToEmpty","toLowerCase","runFromCliArgs","args","infoP","CliRatchet","isCalledFromCLI","filenames","i","indexOfCommandArgument","argsAfterCommand","idx","isCalledFromCLISingle","filename","map","arg","indexOf","AbstractRatchetCliHandler","findAndExecuteHandler","handler","console","log","JSON","stringify","this","fetchVersionInfo","handlerMap","fetchHandlerMap","keys","Object","remainArgs","debug","FilesToStaticClass","outClassName","outFileName","trimmed","substring","lastIndexOf","files","GitRatchet","executeCommand","command","options","dst","EsmRatchet","fetchDirName","url","Promise","res","rej","exec","cwd","stdout","stderr","getCommandString","splitChar","PRETTY_FORMAT","getLastCommitSwallowException","getLastCommit","SPLIT_CHARACTER","a","branchAndTags","filter","n","tags","shortHash","subject","sanitizedSubject","body","authoredOn","committedOn","author","email","committer","PublishCiReleaseToSlack","slackHookUrl","buildNum","sha1","gitData","message","util","format","response","fetch","method","mode","cache","headers","redirect","text","bodyOut","extractHookUrl","hook","RatchetCliHandler","CsvRatchet","defaultParseOptions","delimiter","columns","defaultStringifyOptions","header","stringParse","input","pf","opts","streamParse","Readable","from","readStream","p","parse","on","record","read","newVal","push","pipe","fileParse","createReadStream","generateCsvData","objectsToConvert","silly","data","generateComparison","file1","file2","keyField","file1Parsed","m","next","k","trim","file1Mapped","MapRatchet","mapByUniqueProperty","file2Parsed","file2Mapped","f1Only","f2Only","both","Array","f1k","has","file1Data","file2Data","file1OnlyKeys","file2OnlyKeys","bothFilesKeys","streamObjectsToCsv","srcSubject","output","inOpts","count","stringifier","sub","unsubscribe","subscribe","write","end","defaultParseFunction","row","BufferWritable","Writable","_val","super","_write","chunk","encoding","callback","value","Buffer","concat","MultiStream","_object","object","objectMode","_read","NodeStreamRatchet","readableToBufferSync","stream","bufs","stringToReadable","anyToStringReadable","safeString","webReadableStreamToNodeReadable","rs","reader","getReader","out","then","async","done","webWritableStreamToNodeWriteable","ws","writer","getWriter","_final","close","StringWritable"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/build/ratchet-node-only-info.ts","../src/ci/ci-run-information-util.ts","../src/ci/apply-ci-env-variables-to-files.ts","../src/cli/cli-ratchet.ts","../src/cli/abstract-ratchet-cli-handler.ts","../src/files/files-to-static-class.ts","../src/third-party/git/git-ratchet.ts","../src/third-party/slack/publish-ci-release-to-slack.ts","../src/cli/ratchet-cli-handler.ts","../src/csv/csv-ratchet.ts","../src/stream/buffer-writable.ts","../src/stream/multi-stream.ts","../src/stream/node-stream-ratchet.ts","../src/stream/string-writable.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["RatchetNodeOnlyInfo","constructor","buildInformation","version","hash","branch","tag","timeBuiltISO","notes","CiRunInformationUtil","static","createTestingCiRunInformation","timezone","DEFAULT_TIME_ZONE","now","Date","toISOString","buildNumber","localTime","DateTime","local","setZone","toFormat","DEFAULT_TIME_FORMAT","commitHash","userName","projectName","createDefaultCircleCiRunInformation","GlobalRatchet","fetchGlobalVar","createDefaultGithubActionsRunInformation","ApplyCiEnvVariablesToFiles","process","fileNames","cfg","buildFinder","branchFinder","hashFinder","tagFinder","timeFinder","RequireRatchet","notNullOrUndefined","Error","length","Logger","warn","ErrorRatchet","throwFormattedErr","info","foundCount","forEach","f","fs","existsSync","contents","readFileSync","toString","split","join","writeFileSync","err","error","extractFileNames","rval","argv","slice","extractVariableConfig","inName","name","StringRatchet","trimToEmpty","toLowerCase","runFromCliArgs","args","infoP","CliRatchet","isCalledFromCLI","filenames","i","indexOfCommandArgument","argsAfterCommand","idx","isCalledFromCLISingle","filename","map","arg","indexOf","AbstractRatchetCliHandler","findAndExecuteHandler","handler","console","log","JSON","stringify","this","fetchVersionInfo","handlerMap","fetchHandlerMap","keys","Object","remainArgs","debug","FilesToStaticClass","outClassName","outFileName","trimmed","substring","lastIndexOf","files","GitRatchet","executeCommand","command","options","dst","EsmRatchet","fetchDirName","url","Promise","res","rej","exec","cwd","stdout","stderr","getCommandString","splitChar","PRETTY_FORMAT","getLastCommitSwallowException","getLastCommit","SPLIT_CHARACTER","a","branchAndTags","filter","n","tags","shortHash","subject","sanitizedSubject","body","authoredOn","committedOn","author","email","committer","PublishCiReleaseToSlack","slackHookUrl","buildNum","sha1","gitData","message","util","format","response","fetch","method","mode","cache","headers","redirect","text","bodyOut","extractHookUrl","hook","RatchetCliHandler","CsvRatchet","defaultParseOptions","delimiter","columns","defaultStringifyOptions","header","stringParse","input","pf","opts","streamParse","Readable","from","readStream","p","parse","on","record","read","newVal","push","pipe","fileParse","createReadStream","generateCsvData","objectsToConvert","silly","data","generateComparison","file1","file2","keyField","file1Parsed","m","next","k","trim","file1Mapped","MapRatchet","mapByUniqueProperty","file2Parsed","file2Mapped","f1Only","f2Only","both","Array","f1k","has","file1Data","file2Data","file1OnlyKeys","file2OnlyKeys","bothFilesKeys","streamObjectsToCsv","srcSubject","output","inOpts","count","stringifier","sub","unsubscribe","subscribe","write","end","defaultParseFunction","row","BufferWritable","Writable","_val","super","_write","chunk","encoding","callback","value","Buffer","concat","MultiStream","_object","object","objectMode","_read","NodeStreamRatchet","readableToBufferSync","stream","bufs","stringToReadable","anyToStringReadable","safeString","webReadableStreamToNodeReadable","rs","reader","getReader","out","then","async","done","webWritableStreamToNodeWriteable","ws","writer","getWriter","_final","close","StringWritable"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitblit/ratchet-node-only",
3
- "version": "4.0.225-alpha",
3
+ "version": "4.0.229-alpha",
4
4
  "description": "Ratchet tools for use on node-only",
5
5
  "note-on-side-effects": "Technically the entries in 'bin' below might be side effects, but they are called explicitly",
6
6
  "sideEffects": false,
@@ -56,7 +56,7 @@
56
56
  },
57
57
  "license": "Apache-2.0",
58
58
  "dependencies": {
59
- "@bitblit/ratchet-common": "4.0.225-alpha",
59
+ "@bitblit/ratchet-common": "4.0.229-alpha",
60
60
  "csv": "6.3.3",
61
61
  "rxjs": "7.8.1"
62
62
  },