git-release-manager 0.0.14 → 0.6.0
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/README.md +0 -0
- package/dist/commands/branch/command.js +84 -14
- package/dist/commands/branch/command.js.map +1 -1
- package/dist/commands/branch/types/BranchFinishCliArgs.js +3 -0
- package/dist/commands/branch/types/BranchFinishCliArgs.js.map +1 -0
- package/dist/commands/branch/types/BranchSyncCliArgs.js +3 -0
- package/dist/commands/branch/types/BranchSyncCliArgs.js.map +1 -0
- package/dist/commands/changelog/command.js +28 -3
- package/dist/commands/changelog/command.js.map +1 -1
- package/dist/commands/commit/command.js +8 -3
- package/dist/commands/commit/command.js.map +1 -1
- package/dist/commands/flow/command.js +196 -6
- package/dist/commands/flow/command.js.map +1 -1
- package/dist/commands/track/command.js +136 -0
- package/dist/commands/track/command.js.map +1 -0
- package/dist/commands/version/command.js +115 -23
- package/dist/commands/version/command.js.map +1 -1
- package/dist/config/defaults/config.json +375 -250
- package/dist/config/types/Flow.js +34 -0
- package/dist/config/types/Flow.js.map +1 -0
- package/dist/config/types/Track.js +3 -0
- package/dist/config/types/Track.js.map +1 -0
- package/dist/config/types/Versioning.js +3 -0
- package/dist/config/types/Versioning.js.map +1 -0
- package/dist/index.js +25 -6
- package/dist/index.js.map +1 -1
- package/dist/modules/FlowManager.js +47 -4
- package/dist/modules/FlowManager.js.map +1 -1
- package/dist/modules/branch/BranchController.js +33 -2
- package/dist/modules/branch/BranchController.js.map +1 -1
- package/dist/modules/changelog/ChangelogController.js.map +1 -1
- package/dist/modules/changelog/templateOperations.js.map +1 -1
- package/dist/modules/flow/FlowController.js +764 -0
- package/dist/modules/flow/FlowController.js.map +1 -0
- package/dist/modules/git/commits/commitProcessor.js +21 -3
- package/dist/modules/git/commits/commitProcessor.js.map +1 -1
- package/dist/modules/git/commits/index.js +9 -1
- package/dist/modules/git/commits/index.js.map +1 -1
- package/dist/modules/git/context/remoteHandler.js +1 -1
- package/dist/modules/git/context/remoteHandler.js.map +1 -1
- package/dist/modules/git/gitOperations.js.map +1 -1
- package/dist/modules/git/lineTags.js +58 -0
- package/dist/modules/git/lineTags.js.map +1 -0
- package/dist/modules/track/TrackController.js +320 -0
- package/dist/modules/track/TrackController.js.map +1 -0
- package/dist/modules/version/BumpDeriver.js +119 -0
- package/dist/modules/version/BumpDeriver.js.map +1 -0
- package/dist/modules/version/GitVersionManager.js +42 -14
- package/dist/modules/version/GitVersionManager.js.map +1 -1
- package/dist/modules/version/ProjectVersion.js +84 -3
- package/dist/modules/version/ProjectVersion.js.map +1 -1
- package/dist/modules/version/VersionController.js +238 -3
- package/dist/modules/version/VersionController.js.map +1 -1
- package/dist/modules/version/VersionStamper.js +139 -0
- package/dist/modules/version/VersionStamper.js.map +1 -0
- package/dist/modules/version/branchChannel.js +94 -0
- package/dist/modules/version/branchChannel.js.map +1 -0
- package/dist/modules/version/resolveVersionRef.js +78 -0
- package/dist/modules/version/resolveVersionRef.js.map +1 -0
- package/dist/modules/version/versionFormatter.js +19 -1
- package/dist/modules/version/versionFormatter.js.map +1 -1
- package/dist/templates/defaults/changelog.detailed.ejs +0 -0
- package/dist/templates/defaults/changelog.ejs +0 -0
- package/dist/utils/cmd.js +15 -2
- package/dist/utils/cmd.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowController.js","sourceRoot":"","sources":["../../../src/modules/flow/FlowController.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA8E;AAC9E,+BAAoC;AACpC,oDAA2B;AAC3B,4DAAiD;AAKjD,wDAAgE;AAChE,8CAA0C;AAE1C,MAAM,SAAS,GAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAE1E;;;;;;;GAOG;AACH,SAAS,OAAO,CACZ,OAAgD,EAChD,QAAiD;IAEjD,IAAI,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAA;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAA;IAC7B,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;AACxE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,MAAM,WAAW,GAAG,mBAAmB,CAAA;AAsBvC,MAAa,cAAc;IAGvB,YACqB,MAAc,EACd,OAAe,OAAO,CAAC,GAAG,EAAE;QAD5B,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAwB;QAE7C,IAAI,CAAC,GAAG,GAAG,IAAA,oBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,IAAY;;QACd,MAAM,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,0CAAE,MAAM,CAAA;QACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACX,+DAA+D;gBAC/D,4DAA4D,CAC/D,CAAA;QACL,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,IAAI,KAAK,CACX,kBAAkB,IAAI,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzE,CAAA;QACL,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,uBAAuB,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,CAAC,CAAA;IACZ,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,IAAY;QACnD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG;aACpB,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,MAAM,EAAE,CAAC,CAAC;aACjE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;aACtC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,MAAM,IAAI,KAAK,CACX,GAAG,IAAI,KAAK,MAAM,sCAAsC;gBACxD,kEAAkE,CACrE,CAAA;QACL,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,CAAY;;QACzB,OAAO,MAAA,MAAA,CAAC,CAAC,MAAM,mCAAI,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,0CAAE,MAAM,mCAAI,EAAE,CAAA;IACrD,CAAC;IAEO,UAAU,CAAC,CAAY;QAC3B,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;IAC5C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CAAC,CAAY;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC;oBAAE,SAAQ;YAClD,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,SAAQ;YACZ,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACK,KAAK,CAAC,QAAQ,CAAC,CAAY;QAC/B,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,WAAW,CAAC,CAAY,EAAE,EAAW;;QACvC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,mCAAI,EAAE,CAAA;QAC3D,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO;YACrB,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,mCAAI,MAAM,CAAC;YAChE,CAAC,CAAC,MAAM,CAAA;QACZ,qEAAqE;QACrE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAE5C,IAAI,IAAI,GACJ,MAAA,MAAA,CAAC,CAAC,IAAI,mCAAI,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,0CAAE,WAAW,mCAAI,OAAO,CAAA;QAC7D,IAAI,GAAuB,CAAA;QAE3B,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,EAAE,CAAC;YAC/B,0DAA0D;YAC1D,EAAE;YACF,kEAAkE;YAClE,mEAAmE;YACnE,mCAAmC;YACnC,EAAE;YACF,qEAAqE;YACrE,8DAA8D;YAC9D,kEAAkE;YAClE,qEAAqE;YACrE,mEAAmE;YACnE,2DAA2D;YAC3D,EAAE;YACF,sEAAsE;YACtE,oEAAoE;YACpE,uEAAuE;YACvE,sEAAsE;YACtE,yCAAyC;YACzC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAC7E,mEAAmE;YACnE,4DAA4D;YAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;YAC/C,MAAM,SAAS,GAAG,CAAC,MAAA,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC9D,oEAAoE;YACpE,oEAAoE;YACpE,MAAM,IAAI,GAAG;gBACT,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClB,aAAa;gBACb,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAA;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;YAC3D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,IAAA,wBAAU,EAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACjD,GAAG,GAAG,IAAA,yBAAW,EAAC,QAAQ,CAAC,CAAA;gBAC3B,gEAAgE;gBAChE,EAAE;gBACF,8DAA8D;gBAC9D,6DAA6D;gBAC7D,SAAS;gBACT,EAAE;gBACF,+DAA+D;gBAC/D,+DAA+D;gBAC/D,4DAA4D;gBAC5D,6DAA6D;gBAC7D,gEAAgE;gBAChE,kEAAkE;gBAClE,gEAAgE;gBAChE,6DAA6D;gBAC7D,6DAA6D;gBAC7D,+DAA+D;gBAC/D,EAAE;gBACF,kEAAkE;gBAClE,gEAAgE;gBAChE,kEAAkE;gBAClE,qBAAqB;gBACrB,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;gBACrC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,0DAA0D;oBAC1D,0DAA0D;oBAC1D,uCAAuC;oBACvC,GAAG,GAAG,GAAG,GAAG,gBAAgB,IAAI,gDAAgD,CAAC,CAAC,IAAI,GAAG,CAAA;gBAC7F,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,MAAA,gBAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,OAAO,CAAC,mCAAI,IAAI,CAAA;QAC1D,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,GAAG,EAAE,CAAA;QAC/E,CAAC;QACD,0EAA0E;QAC1E,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;QACnF,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;YACxG,IAAI,CAAC;gBAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,GAAG,EAAE,CAAA;IACrG,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,cAAc,CAAC,GAAW;;QACpC,IAAI,CAAA,MAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,0CAAE,QAAQ,0CAAE,IAAI,MAAK,IAAI;YAAE,OAAM;QACtD,yEAAyE;QACzE,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC1E,IAAI,IAAA,eAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC;gBAAC,IAAA,WAAM,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YAAC,CAAC;YAAC,QAAQ,uBAAuB,IAAzB,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAC3F,CAAC;QACD,oEAAoE;QACpE,oEAAoE;QACpE,6BAA6B;QAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAC1C,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,IAAI,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,6DAA6D,CAAC,CAAA;QAC5F,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACnC,IAAI,OAAO,GAAa,EAAE,CAAA;QAC1B,IAAI,CAAC;YACD,OAAO,GAAG,IAAA,gBAAW,EAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;QACrE,CAAC;QAAC,WAAM,CAAC;YACL,OAAM,CAAmC,8BAA8B;QAC3E,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,CAAC,CAAC,CAAA;YAC5B,IAAI,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;gBAAE,SAAQ,CAAG,WAAW;YACxE,8DAA8D;YAC9D,6DAA6D;YAC7D,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAC1E,IAAI,IAAA,eAAU,EAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC;oBAAC,IAAA,WAAM,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;gBAAC,CAAC;gBAAC,QAAQ,mBAAmB,IAArB,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;QACD,oEAAoE;QACpE,oEAAoE;QACpE,6BAA6B;QAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,UAAU,CAAC,IAAc;QACnC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACpC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjC,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,CAAC,CAAC,WAAW;gBACzB,WAAW,EAAE,CAAC,CAAC,YAAY;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;aACf,CAAC,CAAC,CAAA;QACP,CAAC;QAAC,WAAM,CAAC;YACL,qEAAqE;YACrE,iEAAiE;YACjE,sEAAsE;YACtE,qEAAqE;YACrE,sCAAsC;YACtC,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,CAAS;QACtB,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,IAAI,CAAC,IAAY;;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1B,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACd,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;YACvD,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5D,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAC3D,OAAO;YACH,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG;YACpC,OAAO,EAAE,CAAC,CAAC,GAAG,KAAK,KAAK;YACxB,gBAAgB,EAAE,CAAC,CAAC,YAAY,KAAK,IAAI;YACzC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACjC,SAAS,EAAE,MAAA,CAAC,CAAC,SAAS,mCAAI,EAAE;YAC5B,QAAQ,EAAE,CAAA,MAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,0CAAE,QAAQ,0CAAE,OAAO,EAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SACtF,CAAA;IACL,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,KAAa;QAC7B,0EAA0E;QAC1E,sEAAsE;QACtE,qEAAqE;QACrE,qEAAqE;QACrE,yEAAyE;QACzE,mEAAmE;QACnE,8DAA8D;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QAC/E,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;QAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC;IAEO,WAAW,CAAC,KAAa;;QAC7B,MAAM,GAAG,GAAG,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,0CAAE,QAAQ,0CAAE,GAAG,mCAAI,gBAAgB,CAAA;QAChE,OAAO,IAAA,cAAO,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,KAAK,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAA;IACpF,CAAC;IAED;;;;;;;;;;;OAWG;IACH;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,WAAW,CACb,MAAc,EAAE,MAAc,EAAE,QAAwB,EAAE,KAAa;QAEvE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;IAEO,KAAK,CAAC,SAAS,CACnB,MAAc,EAAE,MAAc,EAAE,QAAwB,EAAE,KAAa;;QAEvE,4EAA4E;QAC5E,wEAAwE;QACxE,oEAAoE;QACpE,mCAAmC;QACnC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;QACnD,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;QACnD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,CAAA;QACtD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAE1B,6DAA6D;QAC7D,EAAE;QACF,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,wEAAwE;QACxE,qEAAqE;QACrE,oEAAoE;QACpE,EAAE;QACF,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,kBAAkB;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,EAAE,IAAI,IAAA,cAAO,EAAC,MAAM,CAAC,KAAK,IAAA,cAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxE,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACX,GAAG,MAAM,wCAAwC,MAAM,0BAA0B;gBACjF,qFAAqF,CACxF,CAAA;QACL,CAAC;QACD,MAAM,WAAW,GAAG,CAAA,MAAA,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,0CAAE,QAAQ,0CAAE,OAAO,MAAK,IAAI,IAAI,CAAC,QAAQ,CAAA;QAC9E,IAAI,OAAO,GAAc,IAAI,CAAC,GAAG,CAAA;QACjC,IAAI,UAAU,GAAG,EAAE,CAAA;QACnB,wEAAwE;QACxE,IAAI,SAAS,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,4DAA4D;gBAC5D,EAAE;gBACF,kEAAkE;gBAClE,mEAAmE;gBACnE,iEAAiE;gBACjE,8DAA8D;gBAC9D,+DAA+D;gBAC/D,mEAAmE;gBACnE,wDAAwD;gBACxD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC/E,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBAClB,+DAA+D;oBAC/D,sDAAsD;oBACtD,+DAA+D;oBAC/D,6BAA6B;oBAC7B,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;oBAC5F,IAAI,KAAK,EAAE,CAAC;wBACR,MAAM,IAAI,KAAK,CACX,GAAG,MAAM,iEAAiE;4BAC1E,wBAAwB,MAAM,oDAAoD,CACrF,CAAA;oBACL,CAAC;oBACD,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;oBACxC,SAAS,GAAG,IAAI,CAAA;gBACpB,CAAC;YACL,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;gBACrC,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBAClC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACjD,iEAAiE;gBACjE,mEAAmE;gBACnE,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;gBAClE,UAAU,GAAG,KAAK,CAAA;gBAClB,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,KAAK,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;gBACxD,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAA;gBACpE,OAAO,GAAG,IAAA,oBAAS,EAAC,KAAK,CAAC,CAAA;YAC9B,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YAC3C,4DAA4D;YAC5D,IAAI,QAAQ,KAAK,OAAO;gBAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;YACtD,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEvB,sEAAsE;YACtE,EAAE;YACF,oEAAoE;YACpE,mEAAmE;YACnE,mEAAmE;YACnE,kEAAkE;YAClE,mEAAmE;YACnE,EAAE;YACF,oEAAoE;YACpE,kEAAkE;YAClE,mEAAmE;YACnE,kEAAkE;YAClE,oEAAoE;YACpE,EAAE;YACF,gEAAgE;YAChE,sDAAsD;YACtD,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACvE,IAAI,QAAQ,EAAE,CAAC;gBACX,gEAAgE;gBAChE,+DAA+D;gBAC/D,+DAA+D;gBAC/D,gEAAgE;gBAChE,8BAA8B;gBAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBACvD,MAAM,IAAI,KAAK,CACX,WAAW,MAAM,SAAS,MAAM,eAC5B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,6DAA6D,CAC/F,CAAA;YACL,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAEtD,IAAI,WAAW,EAAE,CAAC;gBACd,kEAAkE;gBAClE,iEAAiE;gBACjE,+DAA+D;gBAC/D,kCAAkC;gBAClC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBACzD,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBACf,YAAY,EAAE,IAAI,EAAE,YAAY,KAAK,WAAW,MAAM,EAAE;oBACxD,cAAc,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM;iBACvC,CAAC,CAAA;YACN,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC;gBAAS,CAAC;YACP,IAAI,UAAU;gBAAE,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;YACrD,mEAAmE;YACnE,oEAAoE;YACpE,oBAAoB;YACpB,IAAI,SAAS;gBAAE,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC9E,CAAC;IACL,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,IAAY;;QACd,MAAM,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,0CAAE,MAAM,CAAA;QACxC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACX,kBAAkB,IAAI,gBAAgB,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAC3H,CAAA;QACL,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,MAAM,CAAA,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,6CAA6C,CAAC,CAAA;QAChF,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC5B,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,SAAS,CAAC,IAAY;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,KAAK,GAA2B,EAAE,CAAA;QACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACtE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACjC,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,eAAe,CAAC,MAAc;QACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QACnF,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;iBACzE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC/C,IAAI,GAAG,KAAK,cAAc,MAAM,EAAE;oBAAE,OAAO,IAAI,CAAA;YACnD,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY;QACxB,MAAM,CAAC,GAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,MAAM,GAA2B,EAAE,CAAA;QACzC,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI,MAAM,EAAE,CAC/E,CAAA;YACD,IAAI,IAAI;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;;gBAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC3C,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,IAAY,EAAE,CAAY;;QAC7C,MAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,0CAAE,KAAK,CAAA;QACtC,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,CAAC,SAAS;YAAE,OAAM;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,IAAI,KAAK,CAAC,CAAC;YAAE,OAAM;QACvB,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAChC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,SAAQ;YACvB,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;YAC7D,IAAI,MAAM,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACX,UAAU,IAAI,yBAAyB,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,IAAI,OAAO,MAAM,GAAG;oBACjF,OAAO,MAAM,6BAA6B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAClE,CAAA;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,IAAY;;QAGlB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAElC,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACX,GAAG,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,MAAM,0BAA0B;gBACzE,8BAA8B,CACjC,CAAA;QACL,CAAC;QACD,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS;YAC3B,+DAA+D;YAC/D,oEAAoE;YACpE,yDAAyD;YACzD,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YACvE,CAAC,CAAC,EAAE,CAAA;QAER,qEAAqE;QACrE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;QACpF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAElB,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,sDAAsD;QACtD,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBACf,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,gBAAgB,IAAI,EAAE;gBAC5D,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aAChD,CAAC,CAAA;QACN,CAAC;QAED,kCAAkC;QAClC,EAAE;QACF,2EAA2E;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,UAAU,GAA2B,EAAE,CAAA;QAC7C,KAAK,MAAM,MAAM,IAAI,MAAA,CAAC,CAAC,SAAS,mCAAI,EAAE,EAAE,CAAC;YACrC,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM;gBAAE,SAAQ,CAAU,+BAA+B;YAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,IAAI,MAAM,EAAE,CACjE,CAAA;YACD,IAAI,IAAI;gBAAE,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QACvC,CAAC;QAED,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QACrD,CAAC;QAED,OAAO;YACH,GAAG,IAAI;YACP,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC/C,WAAW,EAAE,WAAW,IAAI,SAAS;YACrC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;SACtE,CAAA;IACL,CAAC;CACJ;AAvtBD,wCAutBC"}
|
|
@@ -18,7 +18,16 @@ async function listCommitsAsync(range, config) {
|
|
|
18
18
|
const filteredCommits = commits.filter(commit => commitMessageRegex.test(commit.message));
|
|
19
19
|
const commitList = await Promise.all(filteredCommits.map(async (commit) => {
|
|
20
20
|
const parsedCommit = await (0, _1.enrichCommit)(commit, config);
|
|
21
|
-
|
|
21
|
+
// `-1`, and its absence was the whole defect. `git log <hash>` walks
|
|
22
|
+
// the ENTIRE ancestry of that commit, so asking "which files did this
|
|
23
|
+
// commit touch" answered with every file touched since the root — once
|
|
24
|
+
// per commit in the range, i.e. quadratic in history size. Measured
|
|
25
|
+
// 2026-08-06 on a large repository: the output blew Node's 1 MiB exec
|
|
26
|
+
// buffer, execWithErrorHandling swallowed the error and returned an
|
|
27
|
+
// empty string, and the changelog rendered with NO files listed while
|
|
28
|
+
// exiting 0. Raising the buffer alone converted that silent truncation
|
|
29
|
+
// into a run that does not finish.
|
|
30
|
+
const { stdout: filesOutput } = await (0, cmd_1.execWithErrorHandling)(`git log -1 --pretty=format: --name-only ${parsedCommit.raw.hash}`);
|
|
22
31
|
const files = filesOutput.split('\n').filter(Boolean);
|
|
23
32
|
return {
|
|
24
33
|
...parsedCommit,
|
|
@@ -27,10 +36,19 @@ async function listCommitsAsync(range, config) {
|
|
|
27
36
|
}));
|
|
28
37
|
return commitList;
|
|
29
38
|
}
|
|
30
|
-
|
|
39
|
+
/**
|
|
40
|
+
* @param extraArgs Additional `git log` arguments, e.g. `['--no-merges']`.
|
|
41
|
+
* A caller that GRADES commits wants them out: a merge is not a change, it is
|
|
42
|
+
* a join of changes the range already contains, so counting one as
|
|
43
|
+
* "unclassified" reports a classification failure that never happened.
|
|
44
|
+
* Measured on a real range: 116 commits, 50 of them merges, so the diagnostic
|
|
45
|
+
* claimed 43% of the work was unclassified when the true figure was far lower.
|
|
46
|
+
*/
|
|
47
|
+
async function getGitLogAsJson(range = null, extraArgs = []) {
|
|
31
48
|
const git = (0, simple_git_1.default)();
|
|
32
49
|
try {
|
|
33
|
-
const
|
|
50
|
+
const args = [...(range ? [range] : []), ...extraArgs];
|
|
51
|
+
const log = args.length ? await git.log(args) : await git.log();
|
|
34
52
|
const jsonArray = log.all.map(commit => ({
|
|
35
53
|
hash: commit.hash,
|
|
36
54
|
shortHash: commit.hash.substring(0, 7),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitProcessor.js","sourceRoot":"","sources":["../../../../src/modules/git/commits/commitProcessor.ts"],"names":[],"mappings":";;;;;AAQA,
|
|
1
|
+
{"version":3,"file":"commitProcessor.js","sourceRoot":"","sources":["../../../../src/modules/git/commits/commitProcessor.ts"],"names":[],"mappings":";;;;;AAQA,4CAiCC;AAUD,0CAsBC;AAxED,mDAA0D;AAE1D,4DAAkC;AAElC,wBAAgC;AAChC,4CAA0D;AAEnD,KAAK,UAAU,gBAAgB,CAAC,KAAoB,EAAE,MAAc;IACvE,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,kBAAkB,GAAG,IAAA,wCAAwB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAEvE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtB,OAAO,EAAE,CAAA;IACb,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAEzF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC/B,MAAM,YAAY,GAAG,MAAM,IAAA,eAAY,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACvD,qEAAqE;QACrE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,oEAAoE;QACpE,sEAAsE;QACtE,uEAAuE;QACvE,mCAAmC;QACnC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,2BAAqB,EAAC,2CAA2C,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/H,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAErD,OAAO;YACH,GAAG,YAAY;YACf,KAAK;SACR,CAAA;IACL,CAAC,CAAC,CACL,CAAA;IAED,OAAO,UAAU,CAAA;AACrB,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,eAAe,CAAC,QAAuB,IAAI,EAAE,YAAsB,EAAE;IACvF,MAAM,GAAG,GAAG,IAAA,oBAAS,GAAE,CAAA;IAEvB,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,CAAA;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAA;QAE/D,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;YACtC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,WAAW;YAC9B,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI;SACpB,CAAC,CAAC,CAAA;QAEH,OAAO,SAAS,CAAA;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;QAC/C,OAAO,EAAE,CAAA;IACb,CAAC;AACL,CAAC"}
|
|
@@ -64,8 +64,15 @@ async function enrichCommit(commit, config) {
|
|
|
64
64
|
config.linkTypes.forEach(linkType => {
|
|
65
65
|
var _a, _b;
|
|
66
66
|
if (linkType.sign) {
|
|
67
|
-
|
|
67
|
+
// The `g` flag is load-bearing, not cosmetic. A non-global RegExp never
|
|
68
|
+
// advances `lastIndex`, so `exec` inside a while-loop returns the same
|
|
69
|
+
// match forever. The shipped default config declares linkTypes[0].sign
|
|
70
|
+
// = ["#"], so any commit message or body containing "#123" spun these
|
|
71
|
+
// two loops at 100% CPU and never returned. `lastIndex` is reset below
|
|
72
|
+
// because the same RegExp object drives both loops.
|
|
73
|
+
const signRegex = new RegExp(`\\${linkType.sign[0]}(\\d+)`, 'g');
|
|
68
74
|
let signMatch;
|
|
75
|
+
signRegex.lastIndex = 0;
|
|
69
76
|
while ((signMatch = signRegex.exec(linkDescription)) !== null) {
|
|
70
77
|
const matchedId = parseInt(signMatch[1], 10);
|
|
71
78
|
if (processedIds.has(matchedId)) {
|
|
@@ -80,6 +87,7 @@ async function enrichCommit(commit, config) {
|
|
|
80
87
|
}
|
|
81
88
|
description = (_b = (_a = description === null || description === void 0 ? void 0 : description.replace(signMatch[0], '')) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : null;
|
|
82
89
|
}
|
|
90
|
+
signRegex.lastIndex = 0;
|
|
83
91
|
while ((signMatch = signRegex.exec(commitMessage)) !== null) {
|
|
84
92
|
const matchedId = parseInt(signMatch[1], 10);
|
|
85
93
|
if (processedIds.has(matchedId)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/git/commits/index.ts"],"names":[],"mappings":";;AAUA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/git/commits/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ exports.parseRemoteUrl = parseRemoteUrl;
|
|
|
4
4
|
function parseRemoteUrl(remoteUrl) {
|
|
5
5
|
if (!remoteUrl)
|
|
6
6
|
return null;
|
|
7
|
-
const match = RegExp(/(?:https
|
|
7
|
+
const match = RegExp(/(?:https?:\/\/|git@)([\w.-]+)(?:[:/])([\w.-]+)\/([\w.-]+?)(?:\.git)?$/i).exec(remoteUrl);
|
|
8
8
|
if (!match)
|
|
9
9
|
throw new Error(`Could not parse remote URL: ${remoteUrl}`);
|
|
10
10
|
const [_, host, owner, repository] = match;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteHandler.js","sourceRoot":"","sources":["../../../../src/modules/git/context/remoteHandler.ts"],"names":[],"mappings":";;AAGA,wCAQC;AARD,SAAgB,cAAc,CAAC,SAAiB;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"remoteHandler.js","sourceRoot":"","sources":["../../../../src/modules/git/context/remoteHandler.ts"],"names":[],"mappings":";;AAGA,wCAQC;AARD,SAAgB,cAAc,CAAC,SAAiB;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,wEAAwE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9G,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAA;IAEvE,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,KAAK,CAAA;IAC1C,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,KAAK,IAAI,UAAU,EAAE,CAAA;IACxD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAA;AAC/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitOperations.js","sourceRoot":"","sources":["../../../src/modules/git/gitOperations.ts"],"names":[],"mappings":";;AAQA,oDAiBC;AACD,oFAmBC;AASD,wCAOC;AA5DD,6DAAiE;AACjE,2DAAyD;AACzD,qDAAoD;AACpD,+CAA0C;AAInC,KAAK,UAAU,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"gitOperations.js","sourceRoot":"","sources":["../../../src/modules/git/gitOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lineTags = lineTags;
|
|
4
|
+
/**
|
|
5
|
+
* Every annotated tag on one version line, newest-version first, reachable from
|
|
6
|
+
* that line's branch.
|
|
7
|
+
*
|
|
8
|
+
* ── WHY THIS IS A SHARED FUNCTION AND NOT A METHOD ON EITHER CONSUMER ──
|
|
9
|
+
*
|
|
10
|
+
* Two things ask it: a flow PHASE (what has this stage's branch released?) and
|
|
11
|
+
* a version TRACK (what has 1.1.x released?). They are different questions
|
|
12
|
+
* about different declarations, and they are the SAME walk — so the walk lives
|
|
13
|
+
* once. A second implementation would be a second place for this answer to be
|
|
14
|
+
* right or wrong, and the first time it was wrong (see below) it reported
|
|
15
|
+
* success while being six minor versions out.
|
|
16
|
+
*
|
|
17
|
+
* Three filters, each load-bearing:
|
|
18
|
+
*
|
|
19
|
+
* ANNOTATED ONLY (`%(objecttype)` is `tag`). A lightweight tag carries no
|
|
20
|
+
* tagger and no date, and `git describe --exact-match` ignores it — so a
|
|
21
|
+
* consumer that turns a version into an artifact tag cannot see it. Letting
|
|
22
|
+
* one set a baseline advances a line past a number no artifact can carry.
|
|
23
|
+
* REACHABLE from the branch (`--merged`). A tag on a side branch names code
|
|
24
|
+
* this line never carried.
|
|
25
|
+
* SORTED BY VERSION (`-v:refname`), not lexically — a lexical sort puts
|
|
26
|
+
* v1.10.0 below v1.9.0 and the baseline walks backwards on the tenth minor.
|
|
27
|
+
*
|
|
28
|
+
* ── 🔴 REACHABILITY IS READ FROM STDOUT, NEVER FROM AN EXIT CODE ──
|
|
29
|
+
*
|
|
30
|
+
* This walk used to be one `merge-base --is-ancestor` per tag, mapping a
|
|
31
|
+
* resolved promise to `true` and a rejection to `false`. That command answers
|
|
32
|
+
* ONLY through its exit status and prints nothing either way; simple-git
|
|
33
|
+
* 3.27.0 RESOLVES a non-zero exit whose stderr is empty, so `.then(() => true)`
|
|
34
|
+
* fired for BOTH answers and the filter passed every tag. Consequence on the
|
|
35
|
+
* repository this tool manages: `flow next prod` baselined on a tag that lives
|
|
36
|
+
* only on `dev` and answered six minor versions ahead, green.
|
|
37
|
+
*
|
|
38
|
+
* `for-each-ref --merged=<branch>` moves the answer onto stdout and costs ONE
|
|
39
|
+
* process instead of one per tag. Both failure directions converge on the same
|
|
40
|
+
* safe answer: if git fails, and whether the wrapper rejects or resolves empty,
|
|
41
|
+
* the result is an empty set — NO baseline rather than a foreign one. A branch
|
|
42
|
+
* that does not exist yet lands here too, which is the answer it should have.
|
|
43
|
+
*/
|
|
44
|
+
async function lineTags(git, branch, prefix) {
|
|
45
|
+
const raw = await git.raw([
|
|
46
|
+
"for-each-ref", "--format=%(refname:short) %(objecttype)",
|
|
47
|
+
"--sort=-v:refname", `--merged=${branch}`, `refs/tags/${prefix}*`,
|
|
48
|
+
]).catch(() => "");
|
|
49
|
+
const out = [];
|
|
50
|
+
for (const row of String(raw).split("\n")) {
|
|
51
|
+
const [name, type] = row.trim().split(/\s+/);
|
|
52
|
+
if (!name || type !== "tag")
|
|
53
|
+
continue;
|
|
54
|
+
out.push(name);
|
|
55
|
+
}
|
|
56
|
+
return out;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=lineTags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lineTags.js","sourceRoot":"","sources":["../../../src/modules/git/lineTags.ts"],"names":[],"mappings":";;AA0CA,4BAYC;AApDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACI,KAAK,UAAU,QAAQ,CAAC,GAAc,EAAE,MAAc,EAAE,MAAc;IACzE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;QACtB,cAAc,EAAE,yCAAyC;QACzD,mBAAmB,EAAE,YAAY,MAAM,EAAE,EAAE,aAAa,MAAM,GAAG;KACpE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IAClB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK;YAAE,SAAQ;QACrC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TrackController = void 0;
|
|
7
|
+
const simple_git_1 = __importDefault(require("simple-git"));
|
|
8
|
+
const semver_1 = __importDefault(require("semver"));
|
|
9
|
+
const lineTags_1 = require("../git/lineTags");
|
|
10
|
+
const FlowController_1 = require("../flow/FlowController");
|
|
11
|
+
/**
|
|
12
|
+
* TrackController — the version TRACKS a project keeps alive at once.
|
|
13
|
+
*
|
|
14
|
+
* ── A DECLARED TRACK IS A TEMPLATE; ITS INSTANCES LIVE IN GIT ──
|
|
15
|
+
*
|
|
16
|
+
* `tracks.maintenance` does not name a branch, it names a SHAPE
|
|
17
|
+
* (`release/{major}.{minor}.x`). Which of those branches exist is a question
|
|
18
|
+
* only the repository can answer, and it changes every time a customer needs a
|
|
19
|
+
* fix on a version development has left behind. So the declaration is finite
|
|
20
|
+
* and the instances are discovered — the alternative, an operator listing every
|
|
21
|
+
* open track in the config, is a list that is wrong the moment it is written
|
|
22
|
+
* and silently wrong forever after.
|
|
23
|
+
*
|
|
24
|
+
* ── EVERY NUMBER COMES FROM THE TRACK'S OWN BRANCH ──
|
|
25
|
+
*
|
|
26
|
+
* The baseline is `lineTags` — annotated, reachable from THIS branch,
|
|
27
|
+
* version-sorted — so `release/1.1.x` counts from v1.1.4 and answers v1.1.5
|
|
28
|
+
* while `main` counts from v1.2.2 and answers v1.2.3, with no per-track
|
|
29
|
+
* arithmetic anywhere. The `universe` baseline is offered for a single-line
|
|
30
|
+
* project and is REFUSED for a project that declares more than one track: with
|
|
31
|
+
* two tracks it does not degrade, it answers another track's number.
|
|
32
|
+
*/
|
|
33
|
+
class TrackController {
|
|
34
|
+
/** Same shape as FlowController: the declaration, then where to read git. */
|
|
35
|
+
constructor(config, root = process.cwd()) {
|
|
36
|
+
this.config = config;
|
|
37
|
+
this.root = root;
|
|
38
|
+
this.git = (0, simple_git_1.default)(this.root);
|
|
39
|
+
}
|
|
40
|
+
/** The declared tracks, or an empty map for a project that declares none. */
|
|
41
|
+
declared() {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
return (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.tracks) !== null && _b !== void 0 ? _b : {};
|
|
44
|
+
}
|
|
45
|
+
trackOrThrow(name) {
|
|
46
|
+
const all = this.declared();
|
|
47
|
+
const t = all[name];
|
|
48
|
+
if (!t) {
|
|
49
|
+
const known = Object.keys(all);
|
|
50
|
+
throw new Error(`Unknown track '${name}'. Declared: ${known.length ? known.join(", ") : "(none)"}`);
|
|
51
|
+
}
|
|
52
|
+
return t;
|
|
53
|
+
}
|
|
54
|
+
prefixOf(t) {
|
|
55
|
+
var _a, _b, _c, _d;
|
|
56
|
+
return (_d = (_a = t.tagPrefix) !== null && _a !== void 0 ? _a : (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.tag) === null || _c === void 0 ? void 0 : _c.prefix) !== null && _d !== void 0 ? _d : "";
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The branch a track's version lives on.
|
|
60
|
+
*
|
|
61
|
+
* A patterned track NEEDS a series (`1.1`) and is refused without one — the
|
|
62
|
+
* refusal is the point. `branchPattern` exists so nobody types a branch
|
|
63
|
+
* name; answering with the pattern itself, or with some first match, would
|
|
64
|
+
* put the guessing back one layer down where it is harder to see.
|
|
65
|
+
*/
|
|
66
|
+
branchFor(name, series) {
|
|
67
|
+
var _a, _b, _c;
|
|
68
|
+
const t = this.trackOrThrow(name);
|
|
69
|
+
if (t.branch)
|
|
70
|
+
return t.branch;
|
|
71
|
+
if (!t.branchPattern) {
|
|
72
|
+
throw new Error(`Track '${name}' declares neither 'branch' nor 'branchPattern'.`);
|
|
73
|
+
}
|
|
74
|
+
if (!series) {
|
|
75
|
+
throw new Error(`Track '${name}' derives its branch from a version series (${t.branchPattern}); ` +
|
|
76
|
+
`say which one, e.g. '1.1'.`);
|
|
77
|
+
}
|
|
78
|
+
const parts = series.split(".");
|
|
79
|
+
const major = (_a = parts[0]) !== null && _a !== void 0 ? _a : "";
|
|
80
|
+
const minor = (_b = parts[1]) !== null && _b !== void 0 ? _b : "";
|
|
81
|
+
const patch = (_c = parts[2]) !== null && _c !== void 0 ? _c : "";
|
|
82
|
+
if (!/^\d+$/.test(major) || !/^\d+$/.test(minor)) {
|
|
83
|
+
throw new Error(`'${series}' is not a version series — expected <major>.<minor>, e.g. '1.1'.`);
|
|
84
|
+
}
|
|
85
|
+
return t.branchPattern
|
|
86
|
+
.replace("{major}", major)
|
|
87
|
+
.replace("{minor}", minor)
|
|
88
|
+
.replace("{patch}", patch);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The newest STABLE version this branch has released, "" if none.
|
|
92
|
+
*
|
|
93
|
+
* Stable only: a prerelease baseline would make every later cut inherit the
|
|
94
|
+
* channel, and the core would restart at `.1` forever — the arithmetic is
|
|
95
|
+
* correct and the line never advances.
|
|
96
|
+
*/
|
|
97
|
+
async baselineOf(branch, prefix) {
|
|
98
|
+
var _a;
|
|
99
|
+
const tags = await (0, lineTags_1.lineTags)(this.git, branch, prefix);
|
|
100
|
+
const core = (t) => t.slice(prefix.length);
|
|
101
|
+
return (_a = tags.find(t => !core(t).includes("-"))) !== null && _a !== void 0 ? _a : "";
|
|
102
|
+
}
|
|
103
|
+
/** What this track cuts next, as a full tag name. */
|
|
104
|
+
async next(name, series) {
|
|
105
|
+
var _a, _b, _c, _d, _e, _f;
|
|
106
|
+
const t = this.trackOrThrow(name);
|
|
107
|
+
const branch = this.branchFor(name, series);
|
|
108
|
+
const prefix = this.prefixOf(t);
|
|
109
|
+
const bump = (_d = (_a = t.bump) !== null && _a !== void 0 ? _a : (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.versioning) === null || _c === void 0 ? void 0 : _c.defaultBump) !== null && _d !== void 0 ? _d : "patch";
|
|
110
|
+
if (((_e = t.baseline) !== null && _e !== void 0 ? _e : "reachable") === "universe" && Object.keys(this.declared()).length > 1) {
|
|
111
|
+
throw new Error(`Track '${name}' declares baseline 'universe' while ${Object.keys(this.declared()).length} ` +
|
|
112
|
+
`tracks are declared. With more than one track the highest tag in the repository belongs ` +
|
|
113
|
+
`to whichever track cut last, so 'universe' would answer another track's number. ` +
|
|
114
|
+
`Use 'reachable'.`);
|
|
115
|
+
}
|
|
116
|
+
const carries = await this.baselineOf(branch, prefix);
|
|
117
|
+
const base = carries ? carries.slice(prefix.length) : "0.0.0";
|
|
118
|
+
const nextCore = (_f = semver_1.default.inc(base, bump)) !== null && _f !== void 0 ? _f : base;
|
|
119
|
+
return { branch, carries: carries || "", next: `${prefix}${nextCore}` };
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Every live instance of every declared track, newest series first.
|
|
123
|
+
*
|
|
124
|
+
* A fixed-branch track contributes one row. A patterned track contributes
|
|
125
|
+
* one row per branch that MATCHES the pattern and EXISTS — which is how a
|
|
126
|
+
* report says "these are the tracks alive today" without anybody
|
|
127
|
+
* maintaining a list of them.
|
|
128
|
+
*/
|
|
129
|
+
async instances() {
|
|
130
|
+
var _a, _b, _c, _d, _e;
|
|
131
|
+
const rows = [];
|
|
132
|
+
for (const [name, t] of Object.entries(this.declared())) {
|
|
133
|
+
const prefix = this.prefixOf(t);
|
|
134
|
+
const bump = (_d = (_a = t.bump) !== null && _a !== void 0 ? _a : (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.versioning) === null || _c === void 0 ? void 0 : _c.defaultBump) !== null && _d !== void 0 ? _d : "patch";
|
|
135
|
+
for (const found of await this.branchesOf(name, t)) {
|
|
136
|
+
const carries = await this.baselineOf(found.branch, prefix);
|
|
137
|
+
const base = carries ? carries.slice(prefix.length) : "0.0.0";
|
|
138
|
+
rows.push({
|
|
139
|
+
track: name,
|
|
140
|
+
branch: found.branch,
|
|
141
|
+
series: found.series,
|
|
142
|
+
carries: carries || "",
|
|
143
|
+
next: `${prefix}${(_e = semver_1.default.inc(base, bump)) !== null && _e !== void 0 ? _e : base}`,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return rows;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* The branches that exist for one declared track.
|
|
151
|
+
*
|
|
152
|
+
* LOCAL AND REMOTE-TRACKING BOTH COUNT, and the local name wins when both
|
|
153
|
+
* are present. A track opened by CI, or by another clone, exists as
|
|
154
|
+
* `origin/release/1.1.x` here and is no less alive for it — a report that
|
|
155
|
+
* only walked local heads would answer "no maintenance tracks" on a fresh
|
|
156
|
+
* checkout, which is the one wrong answer available.
|
|
157
|
+
*/
|
|
158
|
+
async branchesOf(name, t) {
|
|
159
|
+
if (t.branch) {
|
|
160
|
+
const exists = await this.branchExists(t.branch);
|
|
161
|
+
return exists ? [{ branch: t.branch, series: "" }] : [];
|
|
162
|
+
}
|
|
163
|
+
if (!t.branchPattern)
|
|
164
|
+
return [];
|
|
165
|
+
// The pattern as a glob for git, and as a regex to read the series back
|
|
166
|
+
// out of a branch name that matched it.
|
|
167
|
+
const glob = t.branchPattern.replace(/\{(major|minor|patch)\}/g, "*");
|
|
168
|
+
const rx = new RegExp("^" + t.branchPattern
|
|
169
|
+
.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
|
|
170
|
+
.replace("\\{major\\}", "(\\d+)")
|
|
171
|
+
.replace("\\{minor\\}", "(\\d+)")
|
|
172
|
+
.replace("\\{patch\\}", "(\\d+)") + "$");
|
|
173
|
+
const raw = await this.git.raw([
|
|
174
|
+
"for-each-ref", "--format=%(refname:short)",
|
|
175
|
+
`refs/heads/${glob}`, `refs/remotes/*/${glob}`,
|
|
176
|
+
]).catch(() => "");
|
|
177
|
+
const seen = new Map();
|
|
178
|
+
for (const row of String(raw).split("\n")) {
|
|
179
|
+
const ref = row.trim();
|
|
180
|
+
if (!ref)
|
|
181
|
+
continue;
|
|
182
|
+
const local = ref.replace(/^[^/]+\//, "");
|
|
183
|
+
const candidate = rx.test(ref) ? ref : (rx.test(local) ? local : "");
|
|
184
|
+
if (!candidate)
|
|
185
|
+
continue;
|
|
186
|
+
const m = rx.exec(candidate);
|
|
187
|
+
if (!m)
|
|
188
|
+
continue;
|
|
189
|
+
const series = [m[1], m[2]].filter(Boolean).join(".");
|
|
190
|
+
// Local name wins: the first spelling seen for a series is kept only
|
|
191
|
+
// if a bare (non remote-tracking) one has not turned up.
|
|
192
|
+
const prior = seen.get(series);
|
|
193
|
+
if (!prior || (ref === candidate && prior.branch !== candidate)) {
|
|
194
|
+
seen.set(series, { branch: candidate, series });
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return [...seen.values()].sort((a, b) => { var _a, _b; return semver_1.default.rcompare((_a = semver_1.default.coerce(b.series)) !== null && _a !== void 0 ? _a : "0.0.0", (_b = semver_1.default.coerce(a.series)) !== null && _b !== void 0 ? _b : "0.0.0"); });
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* The branches a fix on `series` has to travel through to reach everything
|
|
201
|
+
* above it, in order, ending at the integration line.
|
|
202
|
+
*
|
|
203
|
+
* ── A CASCADE, NOT A FAN-OUT, AND THE DIFFERENCE IS THE WHOLE POINT ──
|
|
204
|
+
*
|
|
205
|
+
* Merging the source into each target separately resolves the same conflict
|
|
206
|
+
* once per target, and nothing makes the N resolutions agree. After that the
|
|
207
|
+
* tracks carry different versions of one fix, and `merge-base` — the reason
|
|
208
|
+
* a fix is merged upward rather than cherry-picked — stops answering "does
|
|
209
|
+
* this track have it". Each step here merges the PREVIOUS step's result, so
|
|
210
|
+
* a conflict is resolved once and its resolution travels with the change.
|
|
211
|
+
*
|
|
212
|
+
* ── WHY IT ENDS AT THE INTEGRATION LINE AND NOT AT THE CURRENT TRACK ──
|
|
213
|
+
*
|
|
214
|
+
* The last track is the current line (`main` here), and that branch is
|
|
215
|
+
* usually the one a project's release doctrine says nothing may arrive on
|
|
216
|
+
* except through a promotion. Carrying a maintenance fix straight onto it
|
|
217
|
+
* would be a release nobody planned. So the chain ends where work is
|
|
218
|
+
* COLLECTED — the flow's source phase — and the fix reaches the release line
|
|
219
|
+
* the same way everything else does: by being promoted.
|
|
220
|
+
*
|
|
221
|
+
* `forwardPort.terminal` overrides it for a project whose collection point
|
|
222
|
+
* is not the flow's source.
|
|
223
|
+
*/
|
|
224
|
+
async forwardChain(series) {
|
|
225
|
+
const rows = await this.instances();
|
|
226
|
+
// ONLY THE SERIES TRACKS ARE LINKS IN THE CHAIN. A fixed-branch track is
|
|
227
|
+
// the current release line, and a maintenance fix does not ARRIVE there
|
|
228
|
+
// by being merged — it arrives by being promoted, like everything else.
|
|
229
|
+
// Putting it in the chain would cut a release nobody planned, with every
|
|
230
|
+
// step reporting success. It is skipped here and reached through the
|
|
231
|
+
// terminal, which is the collection point in front of it.
|
|
232
|
+
const ordered = rows
|
|
233
|
+
.filter(r => r.series)
|
|
234
|
+
.sort((a, b) => { var _a, _b; return semver_1.default.lt((_a = semver_1.default.coerce(a.series)) !== null && _a !== void 0 ? _a : "0.0.0", (_b = semver_1.default.coerce(b.series)) !== null && _b !== void 0 ? _b : "0.0.0") ? -1 : 1; });
|
|
235
|
+
const at = ordered.findIndex(r => r.series === series);
|
|
236
|
+
if (at === -1) {
|
|
237
|
+
throw new Error(`No open track carries series '${series}'. Open ones: ` +
|
|
238
|
+
(ordered.map(r => r.series).join(", ") || "(none)"));
|
|
239
|
+
}
|
|
240
|
+
const chain = ordered.slice(at + 1).map(r => r.branch);
|
|
241
|
+
const terminal = this.terminalBranch();
|
|
242
|
+
// A terminal already in the chain would merge a branch into itself and
|
|
243
|
+
// report a step that did nothing.
|
|
244
|
+
if (terminal && !chain.includes(terminal))
|
|
245
|
+
chain.push(terminal);
|
|
246
|
+
return chain;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* The branch a cascade ends at: the declared terminal, else the flow's
|
|
250
|
+
* SOURCE phase — the one nothing promotes into, which is where a project
|
|
251
|
+
* collects work.
|
|
252
|
+
*/
|
|
253
|
+
terminalBranch() {
|
|
254
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
255
|
+
for (const t of Object.values(this.declared())) {
|
|
256
|
+
if ((_a = t.forwardPort) === null || _a === void 0 ? void 0 : _a.terminal)
|
|
257
|
+
return t.forwardPort.terminal;
|
|
258
|
+
}
|
|
259
|
+
const phases = (_d = (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.flow) === null || _c === void 0 ? void 0 : _c.phases) !== null && _d !== void 0 ? _d : {};
|
|
260
|
+
const names = Object.keys(phases);
|
|
261
|
+
// The SOURCE is the phase that promotes FROM nothing — it has no
|
|
262
|
+
// `mergeFrom` of its own — and which something else promotes from. That
|
|
263
|
+
// is the start of the chain, and the collection point by definition.
|
|
264
|
+
//
|
|
265
|
+
// ⚠️ NOT "the phase nothing promotes into". That reading picks the SINK
|
|
266
|
+
// (`prod`), because a sink is exactly what no one names as their
|
|
267
|
+
// mergeFrom — measured here, it returned `main` and would have merged
|
|
268
|
+
// maintenance fixes straight onto the release line, which is the one
|
|
269
|
+
// thing this chain must never do. The two sentences sound alike and name
|
|
270
|
+
// opposite ends of the chain.
|
|
271
|
+
const promoted = new Set(names.map(n => { var _a; return (_a = phases[n]) === null || _a === void 0 ? void 0 : _a.mergeFrom; }).filter(Boolean));
|
|
272
|
+
const source = (_e = names.find(n => { var _a; return !((_a = phases[n]) === null || _a === void 0 ? void 0 : _a.mergeFrom) && promoted.has(n); })) !== null && _e !== void 0 ? _e : names.find(n => { var _a; return !((_a = phases[n]) === null || _a === void 0 ? void 0 : _a.mergeFrom); });
|
|
273
|
+
return source ? ((_g = (_f = phases[source]) === null || _f === void 0 ? void 0 : _f.branch) !== null && _g !== void 0 ? _g : "") : "";
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Carry `series` up the chain. Plans unless `yes`.
|
|
277
|
+
*
|
|
278
|
+
* STOPS AT THE FIRST FAILURE AND SAYS WHERE. A cascade that pressed on past
|
|
279
|
+
* a conflict would leave the tracks above it carrying the fix and the one
|
|
280
|
+
* that failed not carrying it, with nothing in the output saying which —
|
|
281
|
+
* and the next run would start from a source that has already moved.
|
|
282
|
+
*/
|
|
283
|
+
async forwardPort(series, opts = {}) {
|
|
284
|
+
var _a, _b, _c, _d;
|
|
285
|
+
const rows = await this.instances();
|
|
286
|
+
const src = rows.find(r => r.series === series);
|
|
287
|
+
if (!src)
|
|
288
|
+
throw new Error(`No open track carries series '${series}'.`);
|
|
289
|
+
const chain = await this.forwardChain(series);
|
|
290
|
+
const merged = {};
|
|
291
|
+
if (!opts.yes)
|
|
292
|
+
return { chain, from: src.branch, merged, stoppedAt: "", error: "" };
|
|
293
|
+
const strategy = (_d = (_a = opts.merge) !== null && _a !== void 0 ? _a : ((_c = (_b = Object.values(this.declared()).find(t => { var _a; return (_a = t.forwardPort) === null || _a === void 0 ? void 0 : _a.merge; })) === null || _b === void 0 ? void 0 : _b.forwardPort) === null || _c === void 0 ? void 0 : _c.merge)) !== null && _d !== void 0 ? _d : "no-ff";
|
|
294
|
+
const flow = new FlowController_1.FlowController(this.config, this.root);
|
|
295
|
+
// EACH STEP MERGES THE PREVIOUS ONE'S BRANCH, never the original source.
|
|
296
|
+
// That single line is the cascade.
|
|
297
|
+
let from = src.branch;
|
|
298
|
+
for (const target of chain) {
|
|
299
|
+
try {
|
|
300
|
+
const head = await flow.mergeBranch(target, from, strategy, `track-forward-${series}`);
|
|
301
|
+
if (head)
|
|
302
|
+
merged[target] = head;
|
|
303
|
+
from = target;
|
|
304
|
+
}
|
|
305
|
+
catch (error) {
|
|
306
|
+
return { chain, from: src.branch, merged, stoppedAt: target, error: error.message };
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return { chain, from: src.branch, merged, stoppedAt: "", error: "" };
|
|
310
|
+
}
|
|
311
|
+
async branchExists(branch) {
|
|
312
|
+
const raw = await this.git.raw([
|
|
313
|
+
"for-each-ref", "--format=%(refname:short)",
|
|
314
|
+
`refs/heads/${branch}`, `refs/remotes/*/${branch}`,
|
|
315
|
+
]).catch(() => "");
|
|
316
|
+
return String(raw).trim().length > 0;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
exports.TrackController = TrackController;
|
|
320
|
+
//# sourceMappingURL=TrackController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrackController.js","sourceRoot":"","sources":["../../../src/modules/track/TrackController.ts"],"names":[],"mappings":"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"}
|