screw-up 1.6.0 → 1.8.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/dist/analyzer.d.ts +2 -9
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/cli-internal.d.ts +2 -2
- package/dist/cli.d.ts +2 -2
- package/dist/fast-tags.d.ts +42 -0
- package/dist/fast-tags.d.ts.map +1 -0
- package/dist/generated/packageMetadata.d.ts +4 -4
- package/dist/git-operations.d.ts +6 -5
- package/dist/git-operations.d.ts.map +1 -1
- package/dist/index.cjs +26 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +26 -14
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +2 -2
- package/dist/main.cjs +4 -4
- package/dist/main.d.ts +2 -2
- package/dist/main.js +4 -4
- package/dist/{packageMetadata-CCW9p12u.cjs → packageMetadata-BwTlrgAe.cjs} +183 -434
- package/dist/packageMetadata-BwTlrgAe.cjs.map +1 -0
- package/dist/{packageMetadata-LkGK6Bjw.js → packageMetadata-CDIVnX1z.js} +183 -434
- package/dist/packageMetadata-CDIVnX1z.js.map +1 -0
- package/dist/types.d.ts +2 -2
- package/dist/vite-plugin.d.ts +2 -2
- package/dist/vite-plugin.d.ts.map +1 -1
- package/package.json +9 -9
- package/dist/cache-manager.d.ts +0 -52
- package/dist/cache-manager.d.ts.map +0 -1
- package/dist/cache-operations.d.ts +0 -79
- package/dist/cache-operations.d.ts.map +0 -1
- package/dist/cache.d.ts +0 -67
- package/dist/cache.d.ts.map +0 -1
- package/dist/packageMetadata-CCW9p12u.cjs.map +0 -1
- package/dist/packageMetadata-LkGK6Bjw.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* name: screw-up
|
|
3
|
-
* version: 1.
|
|
3
|
+
* version: 1.8.0
|
|
4
4
|
* description: Simply package metadata inserter on Vite plugin
|
|
5
5
|
* author: Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
6
6
|
* license: MIT
|
|
7
7
|
* repository.url: https://github.com/kekyo/screw-up.git
|
|
8
|
-
* git.commit.hash:
|
|
8
|
+
* git.commit.hash: da96533e5128033ff7a45d59b1cee39e0e819533
|
|
9
9
|
*/
|
|
10
10
|
import { existsSync } from "fs";
|
|
11
11
|
import * as fs from "fs/promises";
|
|
@@ -13,8 +13,6 @@ import fs__default, { readFile } from "fs/promises";
|
|
|
13
13
|
import path, { dirname, join } from "path";
|
|
14
14
|
import { glob } from "glob";
|
|
15
15
|
import * as git from "isomorphic-git";
|
|
16
|
-
import crypto from "crypto";
|
|
17
|
-
import os from "os";
|
|
18
16
|
var Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
|
|
19
17
|
var ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;
|
|
20
18
|
var ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
|
|
@@ -1653,397 +1651,195 @@ function requireDayjs_min() {
|
|
|
1653
1651
|
}
|
|
1654
1652
|
var dayjs_minExports = requireDayjs_min();
|
|
1655
1653
|
const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
|
|
1656
|
-
const
|
|
1657
|
-
const getCachePath = (repoPath) => {
|
|
1658
|
-
const absoluteRepoPath = path.resolve(repoPath);
|
|
1659
|
-
const pathHash = crypto.createHash("sha1").update(absoluteRepoPath).digest("hex");
|
|
1660
|
-
return path.join(
|
|
1661
|
-
os.homedir(),
|
|
1662
|
-
".cache",
|
|
1663
|
-
"screw-up",
|
|
1664
|
-
"tag-cache",
|
|
1665
|
-
`${pathHash}.json`
|
|
1666
|
-
);
|
|
1667
|
-
};
|
|
1668
|
-
const buildCacheValidation = async (repoPath) => {
|
|
1669
|
-
const tags = await git.listTags({ fs: fs__default, dir: repoPath });
|
|
1670
|
-
const tagListHash = crypto.createHash("sha256").update(tags.sort().join("\n")).digest("hex");
|
|
1671
|
-
const validation = {
|
|
1672
|
-
tagListHash,
|
|
1673
|
-
tagCount: tags.length
|
|
1674
|
-
};
|
|
1675
|
-
try {
|
|
1676
|
-
const packedRefsPath = path.join(repoPath, ".git", "packed-refs");
|
|
1677
|
-
const stats = await fs__default.stat(packedRefsPath);
|
|
1678
|
-
validation.packedRefsMtime = stats.mtimeMs;
|
|
1679
|
-
} catch (e) {
|
|
1680
|
-
}
|
|
1681
|
-
try {
|
|
1682
|
-
const refsTagsPath = path.join(repoPath, ".git", "refs", "tags");
|
|
1683
|
-
const stats = await fs__default.stat(refsTagsPath);
|
|
1684
|
-
validation.refsTagsMtime = stats.mtimeMs;
|
|
1685
|
-
} catch (e) {
|
|
1686
|
-
}
|
|
1687
|
-
return validation;
|
|
1688
|
-
};
|
|
1689
|
-
const isCacheValid = async (cachedData, repoPath) => {
|
|
1654
|
+
const parsePackedRefs = async (packedRefsPath) => {
|
|
1690
1655
|
try {
|
|
1691
|
-
const
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
const packedRefsPath = path.join(repoPath, ".git", "packed-refs");
|
|
1702
|
-
const stats = await fs__default.stat(packedRefsPath);
|
|
1703
|
-
if (stats.mtimeMs > cachedData.timestamp) {
|
|
1704
|
-
return false;
|
|
1656
|
+
const content = await fs__default.readFile(packedRefsPath, "utf-8");
|
|
1657
|
+
const lines = content.split("\n");
|
|
1658
|
+
const tags = [];
|
|
1659
|
+
for (const line2 of lines) {
|
|
1660
|
+
if (line2.startsWith("#") || !line2.trim()) continue;
|
|
1661
|
+
const match = line2.match(/^[0-9a-f]{40}\s+refs\/tags\/(.+)$/);
|
|
1662
|
+
if (match) {
|
|
1663
|
+
const tagName = match[1];
|
|
1664
|
+
if (!tagName.endsWith("^{}")) {
|
|
1665
|
+
tags.push(tagName);
|
|
1705
1666
|
}
|
|
1706
|
-
} catch (e) {
|
|
1707
1667
|
}
|
|
1708
1668
|
}
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
if (stats.mtimeMs > cachedData.timestamp) {
|
|
1714
|
-
return false;
|
|
1715
|
-
}
|
|
1716
|
-
} catch (e) {
|
|
1717
|
-
}
|
|
1669
|
+
return tags;
|
|
1670
|
+
} catch (error) {
|
|
1671
|
+
if (error.code === "ENOENT") {
|
|
1672
|
+
return [];
|
|
1718
1673
|
}
|
|
1719
|
-
|
|
1720
|
-
} catch (e) {
|
|
1721
|
-
return false;
|
|
1674
|
+
throw error;
|
|
1722
1675
|
}
|
|
1723
1676
|
};
|
|
1724
|
-
const
|
|
1677
|
+
const readLooseTags = async (refsTagsPath) => {
|
|
1725
1678
|
try {
|
|
1726
|
-
const
|
|
1727
|
-
const
|
|
1728
|
-
const
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
return cachedData;
|
|
1733
|
-
} catch (e) {
|
|
1734
|
-
return null;
|
|
1735
|
-
}
|
|
1736
|
-
};
|
|
1737
|
-
const saveCachedTags = async (repoPath, tagCache, validation) => {
|
|
1738
|
-
const cachePath = getCachePath(repoPath);
|
|
1739
|
-
const cacheDir = path.dirname(cachePath);
|
|
1740
|
-
await fs__default.mkdir(cacheDir, { recursive: true });
|
|
1741
|
-
const randomSuffix = crypto.randomBytes(8).toString("hex");
|
|
1742
|
-
const tempPath = cachePath.replace(".json", `_${randomSuffix}.json`);
|
|
1743
|
-
const data = {
|
|
1744
|
-
version: "1.0.0",
|
|
1745
|
-
timestamp: Date.now(),
|
|
1746
|
-
repository: {
|
|
1747
|
-
path: repoPath
|
|
1748
|
-
},
|
|
1749
|
-
validation,
|
|
1750
|
-
tagCache: {
|
|
1751
|
-
commitToTags: Object.fromEntries(tagCache.commitToTags)
|
|
1679
|
+
const entries = await fs__default.readdir(refsTagsPath, { withFileTypes: true });
|
|
1680
|
+
const tags = [];
|
|
1681
|
+
for (const entry of entries) {
|
|
1682
|
+
if (entry.isFile()) {
|
|
1683
|
+
tags.push(entry.name);
|
|
1684
|
+
}
|
|
1752
1685
|
}
|
|
1753
|
-
|
|
1754
|
-
try {
|
|
1755
|
-
await fs__default.writeFile(tempPath, JSON.stringify(data, null, 2), "utf-8");
|
|
1756
|
-
await fs__default.rename(tempPath, cachePath);
|
|
1686
|
+
return tags;
|
|
1757
1687
|
} catch (error) {
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
} catch (e) {
|
|
1688
|
+
if (error.code === "ENOENT") {
|
|
1689
|
+
return [];
|
|
1761
1690
|
}
|
|
1762
1691
|
throw error;
|
|
1763
1692
|
}
|
|
1764
1693
|
};
|
|
1765
|
-
const
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1694
|
+
const listTagsFast = async (repoPath) => {
|
|
1695
|
+
const gitDir = path.join(repoPath, ".git");
|
|
1696
|
+
const gitStat = await fs__default.stat(gitDir).catch(() => null);
|
|
1697
|
+
let actualGitDir = gitDir;
|
|
1698
|
+
if (gitStat == null ? void 0 : gitStat.isFile()) {
|
|
1699
|
+
const content = await fs__default.readFile(gitDir, "utf-8");
|
|
1700
|
+
const match = content.match(/^gitdir:\s*(.+)$/m);
|
|
1701
|
+
if (match) {
|
|
1702
|
+
actualGitDir = path.isAbsolute(match[1]) ? match[1] : path.join(repoPath, match[1]);
|
|
1703
|
+
}
|
|
1704
|
+
}
|
|
1705
|
+
const [packedTags, looseTags] = await Promise.all([
|
|
1706
|
+
parsePackedRefs(path.join(actualGitDir, "packed-refs")),
|
|
1707
|
+
readLooseTags(path.join(actualGitDir, "refs", "tags"))
|
|
1708
|
+
]);
|
|
1709
|
+
const allTags = /* @__PURE__ */ new Set([...packedTags, ...looseTags]);
|
|
1710
|
+
return Array.from(allTags).sort();
|
|
1770
1711
|
};
|
|
1771
|
-
const
|
|
1772
|
-
|
|
1712
|
+
const resolveTagsBatchWithCommit = async (repoPath, tagNames, logger) => {
|
|
1713
|
+
const startTime = Date.now();
|
|
1714
|
+
const gitDir = path.join(repoPath, ".git");
|
|
1715
|
+
const result = /* @__PURE__ */ new Map();
|
|
1716
|
+
const gitStat = await fs__default.stat(gitDir).catch(() => null);
|
|
1717
|
+
let actualGitDir = gitDir;
|
|
1718
|
+
if (gitStat == null ? void 0 : gitStat.isFile()) {
|
|
1719
|
+
const content = await fs__default.readFile(gitDir, "utf-8");
|
|
1720
|
+
const match = content.match(/^gitdir:\s*(.+)$/m);
|
|
1721
|
+
if (match) {
|
|
1722
|
+
actualGitDir = path.isAbsolute(match[1]) ? match[1] : path.join(repoPath, match[1]);
|
|
1723
|
+
}
|
|
1724
|
+
}
|
|
1725
|
+
const tagSet = new Set(tagNames);
|
|
1726
|
+
const packedRefsStart = Date.now();
|
|
1773
1727
|
try {
|
|
1774
|
-
const
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1728
|
+
const content = await fs__default.readFile(
|
|
1729
|
+
path.join(actualGitDir, "packed-refs"),
|
|
1730
|
+
"utf-8"
|
|
1731
|
+
);
|
|
1732
|
+
const lines = content.split("\n");
|
|
1733
|
+
for (let i = 0; i < lines.length; i++) {
|
|
1734
|
+
const line2 = lines[i];
|
|
1735
|
+
if (line2.startsWith("#") || !line2.trim()) continue;
|
|
1736
|
+
const match = line2.match(/^([0-9a-f]{40})\s+refs\/tags\/(.+)$/);
|
|
1737
|
+
if (match && tagSet.has(match[2])) {
|
|
1738
|
+
const tagName = match[2];
|
|
1739
|
+
const oid = match[1];
|
|
1740
|
+
let commitOid = oid;
|
|
1741
|
+
if (i + 1 < lines.length && lines[i + 1].startsWith("^")) {
|
|
1742
|
+
commitOid = lines[i + 1].substring(1, 41);
|
|
1781
1743
|
}
|
|
1782
|
-
|
|
1744
|
+
result.set(tagName, { oid, commitOid });
|
|
1745
|
+
}
|
|
1746
|
+
}
|
|
1747
|
+
} catch (error) {
|
|
1748
|
+
if (error.code !== "ENOENT") {
|
|
1749
|
+
throw error;
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
logger.debug(
|
|
1753
|
+
`[fast-tags] read packed-refs: ${Date.now() - packedRefsStart}ms`
|
|
1754
|
+
);
|
|
1755
|
+
const remainingTags = tagNames.filter((tag) => !result.has(tag));
|
|
1756
|
+
if (remainingTags.length > 0) {
|
|
1757
|
+
const looseRefsStart = Date.now();
|
|
1758
|
+
await Promise.all(
|
|
1759
|
+
remainingTags.map(async (tagName) => {
|
|
1760
|
+
const looseRefPath = path.join(actualGitDir, "refs", "tags", tagName);
|
|
1783
1761
|
try {
|
|
1784
|
-
const
|
|
1785
|
-
const
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1762
|
+
const hash = await fs__default.readFile(looseRefPath, "utf-8");
|
|
1763
|
+
const oid = hash.trim();
|
|
1764
|
+
let commitOid = oid;
|
|
1765
|
+
try {
|
|
1766
|
+
const { execSync } = require("child_process");
|
|
1767
|
+
const objectType = execSync(
|
|
1768
|
+
`git -C "${repoPath}" cat-file -t ${oid}`,
|
|
1769
|
+
{ encoding: "utf-8" }
|
|
1770
|
+
).trim();
|
|
1771
|
+
if (objectType === "tag") {
|
|
1772
|
+
const tagContent = execSync(
|
|
1773
|
+
`git -C "${repoPath}" cat-file -p ${oid}`,
|
|
1774
|
+
{ encoding: "utf-8" }
|
|
1775
|
+
);
|
|
1776
|
+
const objectMatch = tagContent.match(/^object ([0-9a-f]{40})$/m);
|
|
1777
|
+
if (objectMatch) {
|
|
1778
|
+
commitOid = objectMatch[1];
|
|
1779
|
+
}
|
|
1780
|
+
}
|
|
1781
|
+
} catch (error) {
|
|
1782
|
+
logger.debug(
|
|
1783
|
+
`[fast-tags] Could not determine object type for ${tagName}: ${error}`
|
|
1784
|
+
);
|
|
1785
|
+
}
|
|
1786
|
+
result.set(tagName, { oid, commitOid });
|
|
1787
|
+
} catch (error) {
|
|
1788
|
+
if (error.code !== "ENOENT") {
|
|
1789
|
+
throw error;
|
|
1789
1790
|
}
|
|
1790
|
-
} catch (e) {
|
|
1791
1791
|
}
|
|
1792
1792
|
})
|
|
1793
1793
|
);
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
};
|
|
1798
|
-
const calculateTagDiff = (cachedTags, currentTagList) => {
|
|
1799
|
-
const cachedTagNames = /* @__PURE__ */ new Set();
|
|
1800
|
-
for (const tags of cachedTags.values()) {
|
|
1801
|
-
for (const tag of tags) {
|
|
1802
|
-
cachedTagNames.add(tag.name);
|
|
1803
|
-
}
|
|
1804
|
-
}
|
|
1805
|
-
const currentSet = new Set(currentTagList);
|
|
1806
|
-
const added = [];
|
|
1807
|
-
const unchanged = [];
|
|
1808
|
-
for (const tagName of currentTagList) {
|
|
1809
|
-
if (cachedTagNames.has(tagName)) {
|
|
1810
|
-
unchanged.push(tagName);
|
|
1811
|
-
} else {
|
|
1812
|
-
added.push(tagName);
|
|
1813
|
-
}
|
|
1814
|
-
}
|
|
1815
|
-
const deleted = [];
|
|
1816
|
-
for (const tagName of cachedTagNames) {
|
|
1817
|
-
if (!currentSet.has(tagName)) {
|
|
1818
|
-
deleted.push(tagName);
|
|
1819
|
-
}
|
|
1820
|
-
}
|
|
1821
|
-
return { added, deleted, unchanged };
|
|
1822
|
-
};
|
|
1823
|
-
const removeTagsFromCache = (cache, tagNames) => {
|
|
1824
|
-
const tagNamesToRemove = new Set(tagNames);
|
|
1825
|
-
const newCache = /* @__PURE__ */ new Map();
|
|
1826
|
-
for (const [commitHash, tags] of cache.entries()) {
|
|
1827
|
-
const filteredTags = tags.filter((tag) => !tagNamesToRemove.has(tag.name));
|
|
1828
|
-
if (filteredTags.length > 0) {
|
|
1829
|
-
newCache.set(commitHash, filteredTags);
|
|
1830
|
-
}
|
|
1831
|
-
}
|
|
1832
|
-
return newCache;
|
|
1833
|
-
};
|
|
1834
|
-
const addTagsToCache = (cache, newTags) => {
|
|
1835
|
-
const newCache = new Map(cache);
|
|
1836
|
-
for (const tag of newTags) {
|
|
1837
|
-
const existing = newCache.get(tag.hash) || [];
|
|
1838
|
-
const updated = [...existing, tag];
|
|
1839
|
-
updated.sort((a, b) => a.name.localeCompare(b.name));
|
|
1840
|
-
newCache.set(tag.hash, updated);
|
|
1841
|
-
}
|
|
1842
|
-
return newCache;
|
|
1843
|
-
};
|
|
1844
|
-
const updateTagsInCache = (cache, tagNames, updatedTags) => {
|
|
1845
|
-
let newCache = removeTagsFromCache(cache, tagNames);
|
|
1846
|
-
newCache = addTagsToCache(newCache, updatedTags);
|
|
1847
|
-
return newCache;
|
|
1848
|
-
};
|
|
1849
|
-
const resolveTagToCommit = async (repoPath, tagOid) => {
|
|
1850
|
-
var _a;
|
|
1851
|
-
try {
|
|
1852
|
-
const tagObject = await git.readTag({
|
|
1853
|
-
fs: fs__default,
|
|
1854
|
-
dir: repoPath,
|
|
1855
|
-
oid: tagOid
|
|
1856
|
-
});
|
|
1857
|
-
if ((_a = tagObject == null ? void 0 : tagObject.tag) == null ? void 0 : _a.object) {
|
|
1858
|
-
return tagObject.tag.object;
|
|
1859
|
-
}
|
|
1860
|
-
} catch (e) {
|
|
1794
|
+
logger.debug(
|
|
1795
|
+
`[fast-tags] read loose refs: ${Date.now() - looseRefsStart}ms`
|
|
1796
|
+
);
|
|
1861
1797
|
}
|
|
1862
|
-
|
|
1863
|
-
};
|
|
1864
|
-
|
|
1865
|
-
const result = [];
|
|
1866
|
-
await Promise.all(
|
|
1867
|
-
tagNames.map(async (tagName) => {
|
|
1868
|
-
try {
|
|
1869
|
-
const oid = await git.resolveRef({
|
|
1870
|
-
fs: fs__default,
|
|
1871
|
-
dir: repoPath,
|
|
1872
|
-
ref: `refs/tags/${tagName}`
|
|
1873
|
-
});
|
|
1874
|
-
const commitHash = await resolveTagToCommit(repoPath, oid);
|
|
1875
|
-
const version2 = parseVersion2(tagName);
|
|
1876
|
-
result.push({
|
|
1877
|
-
name: tagName,
|
|
1878
|
-
hash: commitHash,
|
|
1879
|
-
version: version2
|
|
1880
|
-
});
|
|
1881
|
-
} catch (error) {
|
|
1882
|
-
console.warn(`Failed to get info for tag ${tagName}:`, error);
|
|
1883
|
-
}
|
|
1884
|
-
})
|
|
1885
|
-
);
|
|
1798
|
+
const totalTime = Date.now() - startTime;
|
|
1799
|
+
logger.debug(`[fast-tags] resolveTagsBatchWithCommit total: ${totalTime}ms`);
|
|
1800
|
+
logger.debug(`[fast-tags] Resolved ${result.size}/${tagNames.length} tags`);
|
|
1886
1801
|
return result;
|
|
1887
1802
|
};
|
|
1888
|
-
const buildCompleteTagCache = async (repoPath, parseVersion2) => {
|
|
1803
|
+
const buildCompleteTagCache = async (repoPath, parseVersion2, logger) => {
|
|
1804
|
+
const totalStart = Date.now();
|
|
1889
1805
|
const cache = /* @__PURE__ */ new Map();
|
|
1890
|
-
const
|
|
1891
|
-
await
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
const commitHash = await resolveTagToCommit(repoPath, oid);
|
|
1899
|
-
const version2 = parseVersion2(tagName);
|
|
1900
|
-
const tagInfo = {
|
|
1901
|
-
name: tagName,
|
|
1902
|
-
hash: commitHash,
|
|
1903
|
-
version: version2
|
|
1904
|
-
};
|
|
1905
|
-
if (!cache.has(commitHash)) {
|
|
1906
|
-
cache.set(commitHash, []);
|
|
1907
|
-
}
|
|
1908
|
-
cache.get(commitHash).push(tagInfo);
|
|
1909
|
-
})
|
|
1806
|
+
const listStart = Date.now();
|
|
1807
|
+
const tags = await listTagsFast(repoPath);
|
|
1808
|
+
logger.debug(`[git-ops] listTagsFast: ${Date.now() - listStart}ms`);
|
|
1809
|
+
logger.debug(`[git-ops] Found ${tags.length} tags`);
|
|
1810
|
+
const resolveStart = Date.now();
|
|
1811
|
+
const tagData = await resolveTagsBatchWithCommit(repoPath, tags, logger);
|
|
1812
|
+
logger.debug(
|
|
1813
|
+
`[git-ops] resolveTagsBatchWithCommit: ${Date.now() - resolveStart}ms`
|
|
1910
1814
|
);
|
|
1815
|
+
const buildStart = Date.now();
|
|
1816
|
+
for (const tagName of tags) {
|
|
1817
|
+
const data = tagData.get(tagName);
|
|
1818
|
+
if (!data) continue;
|
|
1819
|
+
const { commitOid } = data;
|
|
1820
|
+
const version2 = parseVersion2(tagName);
|
|
1821
|
+
const tagInfo = {
|
|
1822
|
+
name: tagName,
|
|
1823
|
+
hash: commitOid,
|
|
1824
|
+
version: version2
|
|
1825
|
+
};
|
|
1826
|
+
if (!cache.has(commitOid)) {
|
|
1827
|
+
cache.set(commitOid, []);
|
|
1828
|
+
}
|
|
1829
|
+
cache.get(commitOid).push(tagInfo);
|
|
1830
|
+
}
|
|
1831
|
+
logger.debug(`[git-ops] build cache map: ${Date.now() - buildStart}ms`);
|
|
1832
|
+
const sortStart = Date.now();
|
|
1911
1833
|
for (const tags2 of cache.values()) {
|
|
1912
1834
|
tags2.sort((a, b) => a.name.localeCompare(b.name));
|
|
1913
1835
|
}
|
|
1914
|
-
|
|
1915
|
-
};
|
|
1916
|
-
const hasTagMoved = async (repoPath, tagName, cachedCommit) => {
|
|
1917
|
-
try {
|
|
1918
|
-
const oid = await git.resolveRef({
|
|
1919
|
-
fs: fs__default,
|
|
1920
|
-
dir: repoPath,
|
|
1921
|
-
ref: `refs/tags/${tagName}`
|
|
1922
|
-
});
|
|
1923
|
-
const currentCommit = await resolveTagToCommit(repoPath, oid);
|
|
1924
|
-
return currentCommit !== cachedCommit;
|
|
1925
|
-
} catch (e) {
|
|
1926
|
-
return true;
|
|
1927
|
-
}
|
|
1928
|
-
};
|
|
1929
|
-
const findModifiedTags = async (repoPath, tagNames, cache) => {
|
|
1930
|
-
const modified = [];
|
|
1931
|
-
await Promise.all(
|
|
1932
|
-
tagNames.map(async (tagName) => {
|
|
1933
|
-
let cachedCommit;
|
|
1934
|
-
for (const [commit, tags] of cache.entries()) {
|
|
1935
|
-
const tag = tags.find((t) => t.name === tagName);
|
|
1936
|
-
if (tag) {
|
|
1937
|
-
cachedCommit = commit;
|
|
1938
|
-
break;
|
|
1939
|
-
}
|
|
1940
|
-
}
|
|
1941
|
-
if (cachedCommit) {
|
|
1942
|
-
const moved = await hasTagMoved(repoPath, tagName, cachedCommit);
|
|
1943
|
-
if (moved) {
|
|
1944
|
-
modified.push(tagName);
|
|
1945
|
-
}
|
|
1946
|
-
}
|
|
1947
|
-
})
|
|
1948
|
-
);
|
|
1949
|
-
return modified;
|
|
1950
|
-
};
|
|
1951
|
-
const loadOrBuildTagCache = async (repoPath, parseVersion2, logger) => {
|
|
1952
|
-
const startTime = Date.now();
|
|
1953
|
-
const cachedData = await loadCachedTags(repoPath);
|
|
1954
|
-
const currentTags = await git.listTags({ fs: fs__default, dir: repoPath });
|
|
1955
|
-
if (cachedData && await isCacheValid(cachedData, repoPath)) {
|
|
1956
|
-
logger.debug(`Cache valid, performing differential update...`);
|
|
1957
|
-
const cache = reconstructTagCache(cachedData);
|
|
1958
|
-
const stats = await performDifferentialUpdate(
|
|
1959
|
-
repoPath,
|
|
1960
|
-
cache.commitToTags,
|
|
1961
|
-
currentTags,
|
|
1962
|
-
parseVersion2,
|
|
1963
|
-
logger
|
|
1964
|
-
);
|
|
1965
|
-
const validation = await buildCacheValidation(repoPath);
|
|
1966
|
-
await saveCachedTags(repoPath, cache, validation);
|
|
1967
|
-
if (cachedData && Date.now() - cachedData.timestamp > 24 * 60 * 60 * 1e3) {
|
|
1968
|
-
try {
|
|
1969
|
-
const cachePath = getCachePath(repoPath);
|
|
1970
|
-
const deletedCount = await cleanupOldCacheFiles(cachePath, Date.now());
|
|
1971
|
-
if (deletedCount > 0) {
|
|
1972
|
-
logger.debug(`Cleaned up ${deletedCount} old cache files`);
|
|
1973
|
-
}
|
|
1974
|
-
} catch (e) {
|
|
1975
|
-
}
|
|
1976
|
-
}
|
|
1977
|
-
return {
|
|
1978
|
-
cache,
|
|
1979
|
-
stats: {
|
|
1980
|
-
...stats,
|
|
1981
|
-
updateTime: Date.now() - startTime,
|
|
1982
|
-
fullRebuild: false
|
|
1983
|
-
}
|
|
1984
|
-
};
|
|
1985
|
-
} else {
|
|
1986
|
-
logger.debug(`Cache invalid or missing, building from scratch...`);
|
|
1987
|
-
const commitToTags = await buildCompleteTagCache(repoPath, parseVersion2);
|
|
1988
|
-
const cache = {
|
|
1989
|
-
commitToTags,
|
|
1990
|
-
initialized: true
|
|
1991
|
-
};
|
|
1992
|
-
const validation = await buildCacheValidation(repoPath);
|
|
1993
|
-
await saveCachedTags(repoPath, cache, validation);
|
|
1994
|
-
return {
|
|
1995
|
-
cache,
|
|
1996
|
-
stats: {
|
|
1997
|
-
added: currentTags.length,
|
|
1998
|
-
deleted: 0,
|
|
1999
|
-
modified: 0,
|
|
2000
|
-
unchanged: 0,
|
|
2001
|
-
totalTags: currentTags.length,
|
|
2002
|
-
updateTime: Date.now() - startTime,
|
|
2003
|
-
fullRebuild: true
|
|
2004
|
-
}
|
|
2005
|
-
};
|
|
2006
|
-
}
|
|
2007
|
-
};
|
|
2008
|
-
async function performDifferentialUpdate(repoPath, cache, currentTags, parseVersion2, logger) {
|
|
2009
|
-
const diff = calculateTagDiff(cache, currentTags);
|
|
1836
|
+
logger.debug(`[git-ops] sort tags: ${Date.now() - sortStart}ms`);
|
|
2010
1837
|
logger.debug(
|
|
2011
|
-
`
|
|
1838
|
+
`[git-ops] buildCompleteTagCache total: ${Date.now() - totalStart}ms`
|
|
2012
1839
|
);
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
const newCache = removeTagsFromCache(cache, diff.deleted);
|
|
2017
|
-
cache.clear();
|
|
2018
|
-
for (const [k, v] of newCache) {
|
|
2019
|
-
cache.set(k, v);
|
|
2020
|
-
}
|
|
2021
|
-
}
|
|
2022
|
-
if (diff.added.length > 0) {
|
|
2023
|
-
const newTags = await getTagsInfo(repoPath, diff.added, parseVersion2);
|
|
2024
|
-
const newCache = addTagsToCache(cache, newTags);
|
|
2025
|
-
cache.clear();
|
|
2026
|
-
for (const [k, v] of newCache) {
|
|
2027
|
-
cache.set(k, v);
|
|
2028
|
-
}
|
|
2029
|
-
}
|
|
2030
|
-
if (modified.length > 0) {
|
|
2031
|
-
const updatedTags = await getTagsInfo(repoPath, modified, parseVersion2);
|
|
2032
|
-
const newCache = updateTagsInCache(cache, modified, updatedTags);
|
|
2033
|
-
cache.clear();
|
|
2034
|
-
for (const [k, v] of newCache) {
|
|
2035
|
-
cache.set(k, v);
|
|
2036
|
-
}
|
|
2037
|
-
}
|
|
2038
|
-
const unchangedCount = diff.unchanged.length - modified.length;
|
|
2039
|
-
return {
|
|
2040
|
-
added: diff.added.length,
|
|
2041
|
-
deleted: diff.deleted.length,
|
|
2042
|
-
modified: modified.length,
|
|
2043
|
-
unchanged: unchangedCount,
|
|
2044
|
-
totalTags: currentTags.length
|
|
2045
|
-
};
|
|
2046
|
-
}
|
|
1840
|
+
logger.debug(`[git-ops] Built cache with ${cache.size} unique commits`);
|
|
1841
|
+
return cache;
|
|
1842
|
+
};
|
|
2047
1843
|
const parseVersionComponent = (value) => {
|
|
2048
1844
|
const num = parseInt(value, 10);
|
|
2049
1845
|
return num < 0 || num > 65535 ? void 0 : num;
|
|
@@ -2169,59 +1965,8 @@ const getCurrentCommit = async (repositoryPath) => {
|
|
|
2169
1965
|
return void 0;
|
|
2170
1966
|
}
|
|
2171
1967
|
};
|
|
2172
|
-
const
|
|
2173
|
-
|
|
2174
|
-
return [];
|
|
2175
|
-
}
|
|
2176
|
-
return cache.commitToTags.get(commitHash) || [];
|
|
2177
|
-
};
|
|
2178
|
-
const getRelatedTagsForVersioning = async (repositoryPath, commitHash) => {
|
|
2179
|
-
try {
|
|
2180
|
-
const tags = await git.listTags({ fs, dir: repositoryPath });
|
|
2181
|
-
const tagInfos = [];
|
|
2182
|
-
for (const tagName of tags) {
|
|
2183
|
-
try {
|
|
2184
|
-
const tagOid = await git.resolveRef({
|
|
2185
|
-
fs,
|
|
2186
|
-
dir: repositoryPath,
|
|
2187
|
-
ref: `refs/tags/${tagName}`
|
|
2188
|
-
});
|
|
2189
|
-
if (tagOid === commitHash) {
|
|
2190
|
-
const version2 = parseVersion(tagName);
|
|
2191
|
-
if (version2 && isValidVersion(version2)) {
|
|
2192
|
-
tagInfos.push({
|
|
2193
|
-
name: tagName,
|
|
2194
|
-
hash: commitHash,
|
|
2195
|
-
version: version2
|
|
2196
|
-
});
|
|
2197
|
-
}
|
|
2198
|
-
} else {
|
|
2199
|
-
try {
|
|
2200
|
-
const tagObject = await git.readTag({
|
|
2201
|
-
fs,
|
|
2202
|
-
dir: repositoryPath,
|
|
2203
|
-
oid: tagOid
|
|
2204
|
-
});
|
|
2205
|
-
if (tagObject && tagObject.tag.object === commitHash) {
|
|
2206
|
-
const version2 = parseVersion(tagName);
|
|
2207
|
-
if (version2 && isValidVersion(version2)) {
|
|
2208
|
-
tagInfos.push({
|
|
2209
|
-
name: tagName,
|
|
2210
|
-
hash: commitHash,
|
|
2211
|
-
version: version2
|
|
2212
|
-
});
|
|
2213
|
-
}
|
|
2214
|
-
}
|
|
2215
|
-
} catch (e) {
|
|
2216
|
-
}
|
|
2217
|
-
}
|
|
2218
|
-
} catch (e) {
|
|
2219
|
-
}
|
|
2220
|
-
}
|
|
2221
|
-
return tagInfos;
|
|
2222
|
-
} catch (e) {
|
|
2223
|
-
return [];
|
|
2224
|
-
}
|
|
1968
|
+
const getRelatedTagsFromMap = (commitToTags, commitHash) => {
|
|
1969
|
+
return commitToTags.get(commitHash) || [];
|
|
2225
1970
|
};
|
|
2226
1971
|
const getRelatedBranches = async (repositoryPath, commitHash) => {
|
|
2227
1972
|
try {
|
|
@@ -2263,7 +2008,7 @@ const getModifiedFiles = async (repositoryPath) => {
|
|
|
2263
2008
|
const formatModifiedFile = (modifiedFile) => {
|
|
2264
2009
|
return `'${modifiedFile[0]}':${modifiedFile[1]}:${modifiedFile[2]}:${modifiedFile[3]}`;
|
|
2265
2010
|
};
|
|
2266
|
-
const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits,
|
|
2011
|
+
const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits, commitToTags) => {
|
|
2267
2012
|
const scheduledStack = [];
|
|
2268
2013
|
let version2 = { major: 0, minor: 0, build: 1, original: "0.0.1" };
|
|
2269
2014
|
let currentCommit = commit;
|
|
@@ -2272,7 +2017,7 @@ const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits, tagCache
|
|
|
2272
2017
|
version2 = reachedCommits.get(currentCommit.hash);
|
|
2273
2018
|
break;
|
|
2274
2019
|
}
|
|
2275
|
-
const relatedTags =
|
|
2020
|
+
const relatedTags = getRelatedTagsFromMap(commitToTags, currentCommit.hash);
|
|
2276
2021
|
const versionCandidates = relatedTags.filter((tag) => tag.version && isValidVersion(tag.version)).filter((tag) => tag.version.minor !== void 0).sort((a, b) => compareVersions(a.version, b.version));
|
|
2277
2022
|
if (versionCandidates.length >= 1) {
|
|
2278
2023
|
version2 = versionCandidates[0].version;
|
|
@@ -2308,7 +2053,7 @@ const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits, tagCache
|
|
|
2308
2053
|
cwd,
|
|
2309
2054
|
parents[index],
|
|
2310
2055
|
reachedCommits,
|
|
2311
|
-
|
|
2056
|
+
commitToTags
|
|
2312
2057
|
);
|
|
2313
2058
|
if (alternateParentVersion && compareVersions(alternateParentVersion, version2) < 0) {
|
|
2314
2059
|
version2 = alternateParentVersion;
|
|
@@ -2321,19 +2066,27 @@ const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits, tagCache
|
|
|
2321
2066
|
return version2;
|
|
2322
2067
|
};
|
|
2323
2068
|
const getGitMetadata = async (repositoryPath, checkWorkingDirectoryStatus, logger) => {
|
|
2069
|
+
const startTime = Date.now();
|
|
2324
2070
|
const metadata = {};
|
|
2325
2071
|
let gitRootPath;
|
|
2326
2072
|
try {
|
|
2327
2073
|
gitRootPath = await git.findRoot({ fs, filepath: repositoryPath });
|
|
2328
2074
|
} catch (e) {
|
|
2075
|
+
logger.debug(
|
|
2076
|
+
`[screw-up] Total getGitMetadata: ${Date.now() - startTime}ms`
|
|
2077
|
+
);
|
|
2329
2078
|
return metadata;
|
|
2330
2079
|
}
|
|
2331
2080
|
try {
|
|
2332
2081
|
const currentCommit = await getCurrentCommit(gitRootPath);
|
|
2333
2082
|
if (!currentCommit) {
|
|
2083
|
+
logger.debug(
|
|
2084
|
+
`[screw-up] Total getGitMetadata: ${Date.now() - startTime}ms`
|
|
2085
|
+
);
|
|
2334
2086
|
return metadata;
|
|
2335
2087
|
}
|
|
2336
|
-
const
|
|
2088
|
+
const buildStart = Date.now();
|
|
2089
|
+
const commitToTags = await buildCompleteTagCache(
|
|
2337
2090
|
gitRootPath,
|
|
2338
2091
|
(tagName) => {
|
|
2339
2092
|
const version22 = parseVersion(tagName);
|
|
@@ -2341,21 +2094,16 @@ const getGitMetadata = async (repositoryPath, checkWorkingDirectoryStatus, logge
|
|
|
2341
2094
|
},
|
|
2342
2095
|
logger
|
|
2343
2096
|
);
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
} else {
|
|
2349
|
-
logger.debug(
|
|
2350
|
-
`Updated cache differentially: +${stats.added} -${stats.deleted} ~${stats.modified} =${stats.unchanged} (${stats.updateTime}ms)`
|
|
2351
|
-
);
|
|
2352
|
-
}
|
|
2097
|
+
logger.debug(
|
|
2098
|
+
`[screw-up] buildCompleteTagCache: ${Date.now() - buildStart}ms`
|
|
2099
|
+
);
|
|
2100
|
+
logger.debug(`Built tag map with ${commitToTags.size} commits`);
|
|
2353
2101
|
const reachedCommits = /* @__PURE__ */ new Map();
|
|
2354
2102
|
let version2 = await lookupVersionLabelRecursive(
|
|
2355
2103
|
gitRootPath,
|
|
2356
2104
|
currentCommit,
|
|
2357
2105
|
reachedCommits,
|
|
2358
|
-
|
|
2106
|
+
commitToTags
|
|
2359
2107
|
);
|
|
2360
2108
|
const gitMetadata = { tags: [], branches: [] };
|
|
2361
2109
|
metadata.git = gitMetadata;
|
|
@@ -2380,7 +2128,7 @@ const getGitMetadata = async (repositoryPath, checkWorkingDirectoryStatus, logge
|
|
|
2380
2128
|
date: dayjs(currentCommit.date).format("YYYY-MM-DDTHH:mm:ssZ[Z]"),
|
|
2381
2129
|
message: currentCommit.message
|
|
2382
2130
|
};
|
|
2383
|
-
const relatedTags =
|
|
2131
|
+
const relatedTags = getRelatedTagsFromMap(commitToTags, currentCommit.hash);
|
|
2384
2132
|
gitMetadata.tags = relatedTags.map((tag) => tag.name);
|
|
2385
2133
|
const relatedBranches = await getRelatedBranches(
|
|
2386
2134
|
gitRootPath,
|
|
@@ -2390,6 +2138,7 @@ const getGitMetadata = async (repositoryPath, checkWorkingDirectoryStatus, logge
|
|
|
2390
2138
|
} catch (error) {
|
|
2391
2139
|
logger.warn(`Failed to extract git metadata: ${error}`);
|
|
2392
2140
|
}
|
|
2141
|
+
logger.debug(`[screw-up] Total getGitMetadata: ${Date.now() - startTime}ms`);
|
|
2393
2142
|
return metadata;
|
|
2394
2143
|
};
|
|
2395
2144
|
const getFetchGitMetadata = (targetDir, checkWorkingDirectoryStatus, logger) => {
|
|
@@ -2406,11 +2155,11 @@ const getFetchGitMetadata = (targetDir, checkWorkingDirectoryStatus, logger) =>
|
|
|
2406
2155
|
};
|
|
2407
2156
|
};
|
|
2408
2157
|
const name = "screw-up";
|
|
2409
|
-
const version = "1.
|
|
2158
|
+
const version = "1.8.0";
|
|
2410
2159
|
const author = "Kouji Matsui (@kekyo@mi.kekyo.net)";
|
|
2411
2160
|
const license = "MIT";
|
|
2412
2161
|
const repository_url = "https://github.com/kekyo/screw-up.git";
|
|
2413
|
-
const git_commit_hash = "
|
|
2162
|
+
const git_commit_hash = "da96533e5128033ff7a45d59b1cee39e0e819533";
|
|
2414
2163
|
const packageMetadata = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2415
2164
|
__proto__: null,
|
|
2416
2165
|
author,
|
|
@@ -2433,4 +2182,4 @@ export {
|
|
|
2433
2182
|
resolvePackageMetadata as r,
|
|
2434
2183
|
version as v
|
|
2435
2184
|
};
|
|
2436
|
-
//# sourceMappingURL=packageMetadata-
|
|
2185
|
+
//# sourceMappingURL=packageMetadata-CDIVnX1z.js.map
|