screw-up 0.8.1 → 0.10.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 +7 -244
- package/README_pack.md +63 -0
- package/dist/analyzer.d.ts +8 -0
- package/dist/analyzer.d.ts.map +1 -0
- package/dist/cli-internal.d.ts +25 -0
- package/dist/cli-internal.d.ts.map +1 -0
- package/dist/cli.cjs +736 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +735 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.cjs +30 -99
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -37
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -100
- package/dist/index.js.map +1 -0
- package/dist/internal-CzKyZ9wb.js +1816 -0
- package/dist/internal-CzKyZ9wb.js.map +1 -0
- package/dist/internal-Dli6fSLz.cjs +1832 -0
- package/dist/internal-Dli6fSLz.cjs.map +1 -0
- package/dist/internal.d.ts +17 -26
- package/dist/internal.d.ts.map +1 -1
- package/dist/types.d.ts +60 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/vite-plugin.d.ts +17 -0
- package/dist/vite-plugin.d.ts.map +1 -0
- package/package.json +37 -8
- package/LICENSE +0 -21
|
@@ -0,0 +1,1816 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import { existsSync } from "fs";
|
|
3
|
+
import { readFile } from "fs/promises";
|
|
4
|
+
import { join, dirname } from "path";
|
|
5
|
+
import * as git from "isomorphic-git";
|
|
6
|
+
var Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
|
|
7
|
+
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]/;
|
|
8
|
+
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]/;
|
|
9
|
+
var unicode = {
|
|
10
|
+
Space_Separator,
|
|
11
|
+
ID_Start,
|
|
12
|
+
ID_Continue
|
|
13
|
+
};
|
|
14
|
+
var util = {
|
|
15
|
+
isSpaceSeparator(c2) {
|
|
16
|
+
return typeof c2 === "string" && unicode.Space_Separator.test(c2);
|
|
17
|
+
},
|
|
18
|
+
isIdStartChar(c2) {
|
|
19
|
+
return typeof c2 === "string" && (c2 >= "a" && c2 <= "z" || c2 >= "A" && c2 <= "Z" || c2 === "$" || c2 === "_" || unicode.ID_Start.test(c2));
|
|
20
|
+
},
|
|
21
|
+
isIdContinueChar(c2) {
|
|
22
|
+
return typeof c2 === "string" && (c2 >= "a" && c2 <= "z" || c2 >= "A" && c2 <= "Z" || c2 >= "0" && c2 <= "9" || c2 === "$" || c2 === "_" || c2 === "" || c2 === "" || unicode.ID_Continue.test(c2));
|
|
23
|
+
},
|
|
24
|
+
isDigit(c2) {
|
|
25
|
+
return typeof c2 === "string" && /[0-9]/.test(c2);
|
|
26
|
+
},
|
|
27
|
+
isHexDigit(c2) {
|
|
28
|
+
return typeof c2 === "string" && /[0-9A-Fa-f]/.test(c2);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
let source;
|
|
32
|
+
let parseState;
|
|
33
|
+
let stack;
|
|
34
|
+
let pos;
|
|
35
|
+
let line;
|
|
36
|
+
let column;
|
|
37
|
+
let token;
|
|
38
|
+
let key;
|
|
39
|
+
let root;
|
|
40
|
+
var parse = function parse2(text, reviver) {
|
|
41
|
+
source = String(text);
|
|
42
|
+
parseState = "start";
|
|
43
|
+
stack = [];
|
|
44
|
+
pos = 0;
|
|
45
|
+
line = 1;
|
|
46
|
+
column = 0;
|
|
47
|
+
token = void 0;
|
|
48
|
+
key = void 0;
|
|
49
|
+
root = void 0;
|
|
50
|
+
do {
|
|
51
|
+
token = lex();
|
|
52
|
+
parseStates[parseState]();
|
|
53
|
+
} while (token.type !== "eof");
|
|
54
|
+
if (typeof reviver === "function") {
|
|
55
|
+
return internalize({ "": root }, "", reviver);
|
|
56
|
+
}
|
|
57
|
+
return root;
|
|
58
|
+
};
|
|
59
|
+
function internalize(holder, name, reviver) {
|
|
60
|
+
const value = holder[name];
|
|
61
|
+
if (value != null && typeof value === "object") {
|
|
62
|
+
if (Array.isArray(value)) {
|
|
63
|
+
for (let i = 0; i < value.length; i++) {
|
|
64
|
+
const key2 = String(i);
|
|
65
|
+
const replacement = internalize(value, key2, reviver);
|
|
66
|
+
if (replacement === void 0) {
|
|
67
|
+
delete value[key2];
|
|
68
|
+
} else {
|
|
69
|
+
Object.defineProperty(value, key2, {
|
|
70
|
+
value: replacement,
|
|
71
|
+
writable: true,
|
|
72
|
+
enumerable: true,
|
|
73
|
+
configurable: true
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
for (const key2 in value) {
|
|
79
|
+
const replacement = internalize(value, key2, reviver);
|
|
80
|
+
if (replacement === void 0) {
|
|
81
|
+
delete value[key2];
|
|
82
|
+
} else {
|
|
83
|
+
Object.defineProperty(value, key2, {
|
|
84
|
+
value: replacement,
|
|
85
|
+
writable: true,
|
|
86
|
+
enumerable: true,
|
|
87
|
+
configurable: true
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return reviver.call(holder, name, value);
|
|
94
|
+
}
|
|
95
|
+
let lexState;
|
|
96
|
+
let buffer;
|
|
97
|
+
let doubleQuote;
|
|
98
|
+
let sign;
|
|
99
|
+
let c;
|
|
100
|
+
function lex() {
|
|
101
|
+
lexState = "default";
|
|
102
|
+
buffer = "";
|
|
103
|
+
doubleQuote = false;
|
|
104
|
+
sign = 1;
|
|
105
|
+
for (; ; ) {
|
|
106
|
+
c = peek();
|
|
107
|
+
const token2 = lexStates[lexState]();
|
|
108
|
+
if (token2) {
|
|
109
|
+
return token2;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function peek() {
|
|
114
|
+
if (source[pos]) {
|
|
115
|
+
return String.fromCodePoint(source.codePointAt(pos));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function read() {
|
|
119
|
+
const c2 = peek();
|
|
120
|
+
if (c2 === "\n") {
|
|
121
|
+
line++;
|
|
122
|
+
column = 0;
|
|
123
|
+
} else if (c2) {
|
|
124
|
+
column += c2.length;
|
|
125
|
+
} else {
|
|
126
|
+
column++;
|
|
127
|
+
}
|
|
128
|
+
if (c2) {
|
|
129
|
+
pos += c2.length;
|
|
130
|
+
}
|
|
131
|
+
return c2;
|
|
132
|
+
}
|
|
133
|
+
const lexStates = {
|
|
134
|
+
default() {
|
|
135
|
+
switch (c) {
|
|
136
|
+
case " ":
|
|
137
|
+
case "\v":
|
|
138
|
+
case "\f":
|
|
139
|
+
case " ":
|
|
140
|
+
case " ":
|
|
141
|
+
case "\uFEFF":
|
|
142
|
+
case "\n":
|
|
143
|
+
case "\r":
|
|
144
|
+
case "\u2028":
|
|
145
|
+
case "\u2029":
|
|
146
|
+
read();
|
|
147
|
+
return;
|
|
148
|
+
case "/":
|
|
149
|
+
read();
|
|
150
|
+
lexState = "comment";
|
|
151
|
+
return;
|
|
152
|
+
case void 0:
|
|
153
|
+
read();
|
|
154
|
+
return newToken("eof");
|
|
155
|
+
}
|
|
156
|
+
if (util.isSpaceSeparator(c)) {
|
|
157
|
+
read();
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
return lexStates[parseState]();
|
|
161
|
+
},
|
|
162
|
+
comment() {
|
|
163
|
+
switch (c) {
|
|
164
|
+
case "*":
|
|
165
|
+
read();
|
|
166
|
+
lexState = "multiLineComment";
|
|
167
|
+
return;
|
|
168
|
+
case "/":
|
|
169
|
+
read();
|
|
170
|
+
lexState = "singleLineComment";
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
throw invalidChar(read());
|
|
174
|
+
},
|
|
175
|
+
multiLineComment() {
|
|
176
|
+
switch (c) {
|
|
177
|
+
case "*":
|
|
178
|
+
read();
|
|
179
|
+
lexState = "multiLineCommentAsterisk";
|
|
180
|
+
return;
|
|
181
|
+
case void 0:
|
|
182
|
+
throw invalidChar(read());
|
|
183
|
+
}
|
|
184
|
+
read();
|
|
185
|
+
},
|
|
186
|
+
multiLineCommentAsterisk() {
|
|
187
|
+
switch (c) {
|
|
188
|
+
case "*":
|
|
189
|
+
read();
|
|
190
|
+
return;
|
|
191
|
+
case "/":
|
|
192
|
+
read();
|
|
193
|
+
lexState = "default";
|
|
194
|
+
return;
|
|
195
|
+
case void 0:
|
|
196
|
+
throw invalidChar(read());
|
|
197
|
+
}
|
|
198
|
+
read();
|
|
199
|
+
lexState = "multiLineComment";
|
|
200
|
+
},
|
|
201
|
+
singleLineComment() {
|
|
202
|
+
switch (c) {
|
|
203
|
+
case "\n":
|
|
204
|
+
case "\r":
|
|
205
|
+
case "\u2028":
|
|
206
|
+
case "\u2029":
|
|
207
|
+
read();
|
|
208
|
+
lexState = "default";
|
|
209
|
+
return;
|
|
210
|
+
case void 0:
|
|
211
|
+
read();
|
|
212
|
+
return newToken("eof");
|
|
213
|
+
}
|
|
214
|
+
read();
|
|
215
|
+
},
|
|
216
|
+
value() {
|
|
217
|
+
switch (c) {
|
|
218
|
+
case "{":
|
|
219
|
+
case "[":
|
|
220
|
+
return newToken("punctuator", read());
|
|
221
|
+
case "n":
|
|
222
|
+
read();
|
|
223
|
+
literal("ull");
|
|
224
|
+
return newToken("null", null);
|
|
225
|
+
case "t":
|
|
226
|
+
read();
|
|
227
|
+
literal("rue");
|
|
228
|
+
return newToken("boolean", true);
|
|
229
|
+
case "f":
|
|
230
|
+
read();
|
|
231
|
+
literal("alse");
|
|
232
|
+
return newToken("boolean", false);
|
|
233
|
+
case "-":
|
|
234
|
+
case "+":
|
|
235
|
+
if (read() === "-") {
|
|
236
|
+
sign = -1;
|
|
237
|
+
}
|
|
238
|
+
lexState = "sign";
|
|
239
|
+
return;
|
|
240
|
+
case ".":
|
|
241
|
+
buffer = read();
|
|
242
|
+
lexState = "decimalPointLeading";
|
|
243
|
+
return;
|
|
244
|
+
case "0":
|
|
245
|
+
buffer = read();
|
|
246
|
+
lexState = "zero";
|
|
247
|
+
return;
|
|
248
|
+
case "1":
|
|
249
|
+
case "2":
|
|
250
|
+
case "3":
|
|
251
|
+
case "4":
|
|
252
|
+
case "5":
|
|
253
|
+
case "6":
|
|
254
|
+
case "7":
|
|
255
|
+
case "8":
|
|
256
|
+
case "9":
|
|
257
|
+
buffer = read();
|
|
258
|
+
lexState = "decimalInteger";
|
|
259
|
+
return;
|
|
260
|
+
case "I":
|
|
261
|
+
read();
|
|
262
|
+
literal("nfinity");
|
|
263
|
+
return newToken("numeric", Infinity);
|
|
264
|
+
case "N":
|
|
265
|
+
read();
|
|
266
|
+
literal("aN");
|
|
267
|
+
return newToken("numeric", NaN);
|
|
268
|
+
case '"':
|
|
269
|
+
case "'":
|
|
270
|
+
doubleQuote = read() === '"';
|
|
271
|
+
buffer = "";
|
|
272
|
+
lexState = "string";
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
throw invalidChar(read());
|
|
276
|
+
},
|
|
277
|
+
identifierNameStartEscape() {
|
|
278
|
+
if (c !== "u") {
|
|
279
|
+
throw invalidChar(read());
|
|
280
|
+
}
|
|
281
|
+
read();
|
|
282
|
+
const u = unicodeEscape();
|
|
283
|
+
switch (u) {
|
|
284
|
+
case "$":
|
|
285
|
+
case "_":
|
|
286
|
+
break;
|
|
287
|
+
default:
|
|
288
|
+
if (!util.isIdStartChar(u)) {
|
|
289
|
+
throw invalidIdentifier();
|
|
290
|
+
}
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
293
|
+
buffer += u;
|
|
294
|
+
lexState = "identifierName";
|
|
295
|
+
},
|
|
296
|
+
identifierName() {
|
|
297
|
+
switch (c) {
|
|
298
|
+
case "$":
|
|
299
|
+
case "_":
|
|
300
|
+
case "":
|
|
301
|
+
case "":
|
|
302
|
+
buffer += read();
|
|
303
|
+
return;
|
|
304
|
+
case "\\":
|
|
305
|
+
read();
|
|
306
|
+
lexState = "identifierNameEscape";
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
if (util.isIdContinueChar(c)) {
|
|
310
|
+
buffer += read();
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
return newToken("identifier", buffer);
|
|
314
|
+
},
|
|
315
|
+
identifierNameEscape() {
|
|
316
|
+
if (c !== "u") {
|
|
317
|
+
throw invalidChar(read());
|
|
318
|
+
}
|
|
319
|
+
read();
|
|
320
|
+
const u = unicodeEscape();
|
|
321
|
+
switch (u) {
|
|
322
|
+
case "$":
|
|
323
|
+
case "_":
|
|
324
|
+
case "":
|
|
325
|
+
case "":
|
|
326
|
+
break;
|
|
327
|
+
default:
|
|
328
|
+
if (!util.isIdContinueChar(u)) {
|
|
329
|
+
throw invalidIdentifier();
|
|
330
|
+
}
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
buffer += u;
|
|
334
|
+
lexState = "identifierName";
|
|
335
|
+
},
|
|
336
|
+
sign() {
|
|
337
|
+
switch (c) {
|
|
338
|
+
case ".":
|
|
339
|
+
buffer = read();
|
|
340
|
+
lexState = "decimalPointLeading";
|
|
341
|
+
return;
|
|
342
|
+
case "0":
|
|
343
|
+
buffer = read();
|
|
344
|
+
lexState = "zero";
|
|
345
|
+
return;
|
|
346
|
+
case "1":
|
|
347
|
+
case "2":
|
|
348
|
+
case "3":
|
|
349
|
+
case "4":
|
|
350
|
+
case "5":
|
|
351
|
+
case "6":
|
|
352
|
+
case "7":
|
|
353
|
+
case "8":
|
|
354
|
+
case "9":
|
|
355
|
+
buffer = read();
|
|
356
|
+
lexState = "decimalInteger";
|
|
357
|
+
return;
|
|
358
|
+
case "I":
|
|
359
|
+
read();
|
|
360
|
+
literal("nfinity");
|
|
361
|
+
return newToken("numeric", sign * Infinity);
|
|
362
|
+
case "N":
|
|
363
|
+
read();
|
|
364
|
+
literal("aN");
|
|
365
|
+
return newToken("numeric", NaN);
|
|
366
|
+
}
|
|
367
|
+
throw invalidChar(read());
|
|
368
|
+
},
|
|
369
|
+
zero() {
|
|
370
|
+
switch (c) {
|
|
371
|
+
case ".":
|
|
372
|
+
buffer += read();
|
|
373
|
+
lexState = "decimalPoint";
|
|
374
|
+
return;
|
|
375
|
+
case "e":
|
|
376
|
+
case "E":
|
|
377
|
+
buffer += read();
|
|
378
|
+
lexState = "decimalExponent";
|
|
379
|
+
return;
|
|
380
|
+
case "x":
|
|
381
|
+
case "X":
|
|
382
|
+
buffer += read();
|
|
383
|
+
lexState = "hexadecimal";
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
return newToken("numeric", sign * 0);
|
|
387
|
+
},
|
|
388
|
+
decimalInteger() {
|
|
389
|
+
switch (c) {
|
|
390
|
+
case ".":
|
|
391
|
+
buffer += read();
|
|
392
|
+
lexState = "decimalPoint";
|
|
393
|
+
return;
|
|
394
|
+
case "e":
|
|
395
|
+
case "E":
|
|
396
|
+
buffer += read();
|
|
397
|
+
lexState = "decimalExponent";
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
if (util.isDigit(c)) {
|
|
401
|
+
buffer += read();
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
404
|
+
return newToken("numeric", sign * Number(buffer));
|
|
405
|
+
},
|
|
406
|
+
decimalPointLeading() {
|
|
407
|
+
if (util.isDigit(c)) {
|
|
408
|
+
buffer += read();
|
|
409
|
+
lexState = "decimalFraction";
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
throw invalidChar(read());
|
|
413
|
+
},
|
|
414
|
+
decimalPoint() {
|
|
415
|
+
switch (c) {
|
|
416
|
+
case "e":
|
|
417
|
+
case "E":
|
|
418
|
+
buffer += read();
|
|
419
|
+
lexState = "decimalExponent";
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
if (util.isDigit(c)) {
|
|
423
|
+
buffer += read();
|
|
424
|
+
lexState = "decimalFraction";
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
return newToken("numeric", sign * Number(buffer));
|
|
428
|
+
},
|
|
429
|
+
decimalFraction() {
|
|
430
|
+
switch (c) {
|
|
431
|
+
case "e":
|
|
432
|
+
case "E":
|
|
433
|
+
buffer += read();
|
|
434
|
+
lexState = "decimalExponent";
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
if (util.isDigit(c)) {
|
|
438
|
+
buffer += read();
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
return newToken("numeric", sign * Number(buffer));
|
|
442
|
+
},
|
|
443
|
+
decimalExponent() {
|
|
444
|
+
switch (c) {
|
|
445
|
+
case "+":
|
|
446
|
+
case "-":
|
|
447
|
+
buffer += read();
|
|
448
|
+
lexState = "decimalExponentSign";
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
if (util.isDigit(c)) {
|
|
452
|
+
buffer += read();
|
|
453
|
+
lexState = "decimalExponentInteger";
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
456
|
+
throw invalidChar(read());
|
|
457
|
+
},
|
|
458
|
+
decimalExponentSign() {
|
|
459
|
+
if (util.isDigit(c)) {
|
|
460
|
+
buffer += read();
|
|
461
|
+
lexState = "decimalExponentInteger";
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
throw invalidChar(read());
|
|
465
|
+
},
|
|
466
|
+
decimalExponentInteger() {
|
|
467
|
+
if (util.isDigit(c)) {
|
|
468
|
+
buffer += read();
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
471
|
+
return newToken("numeric", sign * Number(buffer));
|
|
472
|
+
},
|
|
473
|
+
hexadecimal() {
|
|
474
|
+
if (util.isHexDigit(c)) {
|
|
475
|
+
buffer += read();
|
|
476
|
+
lexState = "hexadecimalInteger";
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
throw invalidChar(read());
|
|
480
|
+
},
|
|
481
|
+
hexadecimalInteger() {
|
|
482
|
+
if (util.isHexDigit(c)) {
|
|
483
|
+
buffer += read();
|
|
484
|
+
return;
|
|
485
|
+
}
|
|
486
|
+
return newToken("numeric", sign * Number(buffer));
|
|
487
|
+
},
|
|
488
|
+
string() {
|
|
489
|
+
switch (c) {
|
|
490
|
+
case "\\":
|
|
491
|
+
read();
|
|
492
|
+
buffer += escape();
|
|
493
|
+
return;
|
|
494
|
+
case '"':
|
|
495
|
+
if (doubleQuote) {
|
|
496
|
+
read();
|
|
497
|
+
return newToken("string", buffer);
|
|
498
|
+
}
|
|
499
|
+
buffer += read();
|
|
500
|
+
return;
|
|
501
|
+
case "'":
|
|
502
|
+
if (!doubleQuote) {
|
|
503
|
+
read();
|
|
504
|
+
return newToken("string", buffer);
|
|
505
|
+
}
|
|
506
|
+
buffer += read();
|
|
507
|
+
return;
|
|
508
|
+
case "\n":
|
|
509
|
+
case "\r":
|
|
510
|
+
throw invalidChar(read());
|
|
511
|
+
case "\u2028":
|
|
512
|
+
case "\u2029":
|
|
513
|
+
separatorChar(c);
|
|
514
|
+
break;
|
|
515
|
+
case void 0:
|
|
516
|
+
throw invalidChar(read());
|
|
517
|
+
}
|
|
518
|
+
buffer += read();
|
|
519
|
+
},
|
|
520
|
+
start() {
|
|
521
|
+
switch (c) {
|
|
522
|
+
case "{":
|
|
523
|
+
case "[":
|
|
524
|
+
return newToken("punctuator", read());
|
|
525
|
+
}
|
|
526
|
+
lexState = "value";
|
|
527
|
+
},
|
|
528
|
+
beforePropertyName() {
|
|
529
|
+
switch (c) {
|
|
530
|
+
case "$":
|
|
531
|
+
case "_":
|
|
532
|
+
buffer = read();
|
|
533
|
+
lexState = "identifierName";
|
|
534
|
+
return;
|
|
535
|
+
case "\\":
|
|
536
|
+
read();
|
|
537
|
+
lexState = "identifierNameStartEscape";
|
|
538
|
+
return;
|
|
539
|
+
case "}":
|
|
540
|
+
return newToken("punctuator", read());
|
|
541
|
+
case '"':
|
|
542
|
+
case "'":
|
|
543
|
+
doubleQuote = read() === '"';
|
|
544
|
+
lexState = "string";
|
|
545
|
+
return;
|
|
546
|
+
}
|
|
547
|
+
if (util.isIdStartChar(c)) {
|
|
548
|
+
buffer += read();
|
|
549
|
+
lexState = "identifierName";
|
|
550
|
+
return;
|
|
551
|
+
}
|
|
552
|
+
throw invalidChar(read());
|
|
553
|
+
},
|
|
554
|
+
afterPropertyName() {
|
|
555
|
+
if (c === ":") {
|
|
556
|
+
return newToken("punctuator", read());
|
|
557
|
+
}
|
|
558
|
+
throw invalidChar(read());
|
|
559
|
+
},
|
|
560
|
+
beforePropertyValue() {
|
|
561
|
+
lexState = "value";
|
|
562
|
+
},
|
|
563
|
+
afterPropertyValue() {
|
|
564
|
+
switch (c) {
|
|
565
|
+
case ",":
|
|
566
|
+
case "}":
|
|
567
|
+
return newToken("punctuator", read());
|
|
568
|
+
}
|
|
569
|
+
throw invalidChar(read());
|
|
570
|
+
},
|
|
571
|
+
beforeArrayValue() {
|
|
572
|
+
if (c === "]") {
|
|
573
|
+
return newToken("punctuator", read());
|
|
574
|
+
}
|
|
575
|
+
lexState = "value";
|
|
576
|
+
},
|
|
577
|
+
afterArrayValue() {
|
|
578
|
+
switch (c) {
|
|
579
|
+
case ",":
|
|
580
|
+
case "]":
|
|
581
|
+
return newToken("punctuator", read());
|
|
582
|
+
}
|
|
583
|
+
throw invalidChar(read());
|
|
584
|
+
},
|
|
585
|
+
end() {
|
|
586
|
+
throw invalidChar(read());
|
|
587
|
+
}
|
|
588
|
+
};
|
|
589
|
+
function newToken(type, value) {
|
|
590
|
+
return {
|
|
591
|
+
type,
|
|
592
|
+
value,
|
|
593
|
+
line,
|
|
594
|
+
column
|
|
595
|
+
};
|
|
596
|
+
}
|
|
597
|
+
function literal(s) {
|
|
598
|
+
for (const c2 of s) {
|
|
599
|
+
const p = peek();
|
|
600
|
+
if (p !== c2) {
|
|
601
|
+
throw invalidChar(read());
|
|
602
|
+
}
|
|
603
|
+
read();
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
function escape() {
|
|
607
|
+
const c2 = peek();
|
|
608
|
+
switch (c2) {
|
|
609
|
+
case "b":
|
|
610
|
+
read();
|
|
611
|
+
return "\b";
|
|
612
|
+
case "f":
|
|
613
|
+
read();
|
|
614
|
+
return "\f";
|
|
615
|
+
case "n":
|
|
616
|
+
read();
|
|
617
|
+
return "\n";
|
|
618
|
+
case "r":
|
|
619
|
+
read();
|
|
620
|
+
return "\r";
|
|
621
|
+
case "t":
|
|
622
|
+
read();
|
|
623
|
+
return " ";
|
|
624
|
+
case "v":
|
|
625
|
+
read();
|
|
626
|
+
return "\v";
|
|
627
|
+
case "0":
|
|
628
|
+
read();
|
|
629
|
+
if (util.isDigit(peek())) {
|
|
630
|
+
throw invalidChar(read());
|
|
631
|
+
}
|
|
632
|
+
return "\0";
|
|
633
|
+
case "x":
|
|
634
|
+
read();
|
|
635
|
+
return hexEscape();
|
|
636
|
+
case "u":
|
|
637
|
+
read();
|
|
638
|
+
return unicodeEscape();
|
|
639
|
+
case "\n":
|
|
640
|
+
case "\u2028":
|
|
641
|
+
case "\u2029":
|
|
642
|
+
read();
|
|
643
|
+
return "";
|
|
644
|
+
case "\r":
|
|
645
|
+
read();
|
|
646
|
+
if (peek() === "\n") {
|
|
647
|
+
read();
|
|
648
|
+
}
|
|
649
|
+
return "";
|
|
650
|
+
case "1":
|
|
651
|
+
case "2":
|
|
652
|
+
case "3":
|
|
653
|
+
case "4":
|
|
654
|
+
case "5":
|
|
655
|
+
case "6":
|
|
656
|
+
case "7":
|
|
657
|
+
case "8":
|
|
658
|
+
case "9":
|
|
659
|
+
throw invalidChar(read());
|
|
660
|
+
case void 0:
|
|
661
|
+
throw invalidChar(read());
|
|
662
|
+
}
|
|
663
|
+
return read();
|
|
664
|
+
}
|
|
665
|
+
function hexEscape() {
|
|
666
|
+
let buffer2 = "";
|
|
667
|
+
let c2 = peek();
|
|
668
|
+
if (!util.isHexDigit(c2)) {
|
|
669
|
+
throw invalidChar(read());
|
|
670
|
+
}
|
|
671
|
+
buffer2 += read();
|
|
672
|
+
c2 = peek();
|
|
673
|
+
if (!util.isHexDigit(c2)) {
|
|
674
|
+
throw invalidChar(read());
|
|
675
|
+
}
|
|
676
|
+
buffer2 += read();
|
|
677
|
+
return String.fromCodePoint(parseInt(buffer2, 16));
|
|
678
|
+
}
|
|
679
|
+
function unicodeEscape() {
|
|
680
|
+
let buffer2 = "";
|
|
681
|
+
let count = 4;
|
|
682
|
+
while (count-- > 0) {
|
|
683
|
+
const c2 = peek();
|
|
684
|
+
if (!util.isHexDigit(c2)) {
|
|
685
|
+
throw invalidChar(read());
|
|
686
|
+
}
|
|
687
|
+
buffer2 += read();
|
|
688
|
+
}
|
|
689
|
+
return String.fromCodePoint(parseInt(buffer2, 16));
|
|
690
|
+
}
|
|
691
|
+
const parseStates = {
|
|
692
|
+
start() {
|
|
693
|
+
if (token.type === "eof") {
|
|
694
|
+
throw invalidEOF();
|
|
695
|
+
}
|
|
696
|
+
push();
|
|
697
|
+
},
|
|
698
|
+
beforePropertyName() {
|
|
699
|
+
switch (token.type) {
|
|
700
|
+
case "identifier":
|
|
701
|
+
case "string":
|
|
702
|
+
key = token.value;
|
|
703
|
+
parseState = "afterPropertyName";
|
|
704
|
+
return;
|
|
705
|
+
case "punctuator":
|
|
706
|
+
pop();
|
|
707
|
+
return;
|
|
708
|
+
case "eof":
|
|
709
|
+
throw invalidEOF();
|
|
710
|
+
}
|
|
711
|
+
},
|
|
712
|
+
afterPropertyName() {
|
|
713
|
+
if (token.type === "eof") {
|
|
714
|
+
throw invalidEOF();
|
|
715
|
+
}
|
|
716
|
+
parseState = "beforePropertyValue";
|
|
717
|
+
},
|
|
718
|
+
beforePropertyValue() {
|
|
719
|
+
if (token.type === "eof") {
|
|
720
|
+
throw invalidEOF();
|
|
721
|
+
}
|
|
722
|
+
push();
|
|
723
|
+
},
|
|
724
|
+
beforeArrayValue() {
|
|
725
|
+
if (token.type === "eof") {
|
|
726
|
+
throw invalidEOF();
|
|
727
|
+
}
|
|
728
|
+
if (token.type === "punctuator" && token.value === "]") {
|
|
729
|
+
pop();
|
|
730
|
+
return;
|
|
731
|
+
}
|
|
732
|
+
push();
|
|
733
|
+
},
|
|
734
|
+
afterPropertyValue() {
|
|
735
|
+
if (token.type === "eof") {
|
|
736
|
+
throw invalidEOF();
|
|
737
|
+
}
|
|
738
|
+
switch (token.value) {
|
|
739
|
+
case ",":
|
|
740
|
+
parseState = "beforePropertyName";
|
|
741
|
+
return;
|
|
742
|
+
case "}":
|
|
743
|
+
pop();
|
|
744
|
+
}
|
|
745
|
+
},
|
|
746
|
+
afterArrayValue() {
|
|
747
|
+
if (token.type === "eof") {
|
|
748
|
+
throw invalidEOF();
|
|
749
|
+
}
|
|
750
|
+
switch (token.value) {
|
|
751
|
+
case ",":
|
|
752
|
+
parseState = "beforeArrayValue";
|
|
753
|
+
return;
|
|
754
|
+
case "]":
|
|
755
|
+
pop();
|
|
756
|
+
}
|
|
757
|
+
},
|
|
758
|
+
end() {
|
|
759
|
+
}
|
|
760
|
+
};
|
|
761
|
+
function push() {
|
|
762
|
+
let value;
|
|
763
|
+
switch (token.type) {
|
|
764
|
+
case "punctuator":
|
|
765
|
+
switch (token.value) {
|
|
766
|
+
case "{":
|
|
767
|
+
value = {};
|
|
768
|
+
break;
|
|
769
|
+
case "[":
|
|
770
|
+
value = [];
|
|
771
|
+
break;
|
|
772
|
+
}
|
|
773
|
+
break;
|
|
774
|
+
case "null":
|
|
775
|
+
case "boolean":
|
|
776
|
+
case "numeric":
|
|
777
|
+
case "string":
|
|
778
|
+
value = token.value;
|
|
779
|
+
break;
|
|
780
|
+
}
|
|
781
|
+
if (root === void 0) {
|
|
782
|
+
root = value;
|
|
783
|
+
} else {
|
|
784
|
+
const parent = stack[stack.length - 1];
|
|
785
|
+
if (Array.isArray(parent)) {
|
|
786
|
+
parent.push(value);
|
|
787
|
+
} else {
|
|
788
|
+
Object.defineProperty(parent, key, {
|
|
789
|
+
value,
|
|
790
|
+
writable: true,
|
|
791
|
+
enumerable: true,
|
|
792
|
+
configurable: true
|
|
793
|
+
});
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
if (value !== null && typeof value === "object") {
|
|
797
|
+
stack.push(value);
|
|
798
|
+
if (Array.isArray(value)) {
|
|
799
|
+
parseState = "beforeArrayValue";
|
|
800
|
+
} else {
|
|
801
|
+
parseState = "beforePropertyName";
|
|
802
|
+
}
|
|
803
|
+
} else {
|
|
804
|
+
const current = stack[stack.length - 1];
|
|
805
|
+
if (current == null) {
|
|
806
|
+
parseState = "end";
|
|
807
|
+
} else if (Array.isArray(current)) {
|
|
808
|
+
parseState = "afterArrayValue";
|
|
809
|
+
} else {
|
|
810
|
+
parseState = "afterPropertyValue";
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
function pop() {
|
|
815
|
+
stack.pop();
|
|
816
|
+
const current = stack[stack.length - 1];
|
|
817
|
+
if (current == null) {
|
|
818
|
+
parseState = "end";
|
|
819
|
+
} else if (Array.isArray(current)) {
|
|
820
|
+
parseState = "afterArrayValue";
|
|
821
|
+
} else {
|
|
822
|
+
parseState = "afterPropertyValue";
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
function invalidChar(c2) {
|
|
826
|
+
if (c2 === void 0) {
|
|
827
|
+
return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
|
|
828
|
+
}
|
|
829
|
+
return syntaxError(`JSON5: invalid character '${formatChar(c2)}' at ${line}:${column}`);
|
|
830
|
+
}
|
|
831
|
+
function invalidEOF() {
|
|
832
|
+
return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
|
|
833
|
+
}
|
|
834
|
+
function invalidIdentifier() {
|
|
835
|
+
column -= 5;
|
|
836
|
+
return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`);
|
|
837
|
+
}
|
|
838
|
+
function separatorChar(c2) {
|
|
839
|
+
console.warn(`JSON5: '${formatChar(c2)}' in strings is not valid ECMAScript; consider escaping`);
|
|
840
|
+
}
|
|
841
|
+
function formatChar(c2) {
|
|
842
|
+
const replacements = {
|
|
843
|
+
"'": "\\'",
|
|
844
|
+
'"': '\\"',
|
|
845
|
+
"\\": "\\\\",
|
|
846
|
+
"\b": "\\b",
|
|
847
|
+
"\f": "\\f",
|
|
848
|
+
"\n": "\\n",
|
|
849
|
+
"\r": "\\r",
|
|
850
|
+
" ": "\\t",
|
|
851
|
+
"\v": "\\v",
|
|
852
|
+
"\0": "\\0",
|
|
853
|
+
"\u2028": "\\u2028",
|
|
854
|
+
"\u2029": "\\u2029"
|
|
855
|
+
};
|
|
856
|
+
if (replacements[c2]) {
|
|
857
|
+
return replacements[c2];
|
|
858
|
+
}
|
|
859
|
+
if (c2 < " ") {
|
|
860
|
+
const hexString = c2.charCodeAt(0).toString(16);
|
|
861
|
+
return "\\x" + ("00" + hexString).substring(hexString.length);
|
|
862
|
+
}
|
|
863
|
+
return c2;
|
|
864
|
+
}
|
|
865
|
+
function syntaxError(message) {
|
|
866
|
+
const err = new SyntaxError(message);
|
|
867
|
+
err.lineNumber = line;
|
|
868
|
+
err.columnNumber = column;
|
|
869
|
+
return err;
|
|
870
|
+
}
|
|
871
|
+
var stringify = function stringify2(value, replacer, space) {
|
|
872
|
+
const stack2 = [];
|
|
873
|
+
let indent = "";
|
|
874
|
+
let propertyList;
|
|
875
|
+
let replacerFunc;
|
|
876
|
+
let gap = "";
|
|
877
|
+
let quote;
|
|
878
|
+
if (replacer != null && typeof replacer === "object" && !Array.isArray(replacer)) {
|
|
879
|
+
space = replacer.space;
|
|
880
|
+
quote = replacer.quote;
|
|
881
|
+
replacer = replacer.replacer;
|
|
882
|
+
}
|
|
883
|
+
if (typeof replacer === "function") {
|
|
884
|
+
replacerFunc = replacer;
|
|
885
|
+
} else if (Array.isArray(replacer)) {
|
|
886
|
+
propertyList = [];
|
|
887
|
+
for (const v of replacer) {
|
|
888
|
+
let item;
|
|
889
|
+
if (typeof v === "string") {
|
|
890
|
+
item = v;
|
|
891
|
+
} else if (typeof v === "number" || v instanceof String || v instanceof Number) {
|
|
892
|
+
item = String(v);
|
|
893
|
+
}
|
|
894
|
+
if (item !== void 0 && propertyList.indexOf(item) < 0) {
|
|
895
|
+
propertyList.push(item);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
if (space instanceof Number) {
|
|
900
|
+
space = Number(space);
|
|
901
|
+
} else if (space instanceof String) {
|
|
902
|
+
space = String(space);
|
|
903
|
+
}
|
|
904
|
+
if (typeof space === "number") {
|
|
905
|
+
if (space > 0) {
|
|
906
|
+
space = Math.min(10, Math.floor(space));
|
|
907
|
+
gap = " ".substr(0, space);
|
|
908
|
+
}
|
|
909
|
+
} else if (typeof space === "string") {
|
|
910
|
+
gap = space.substr(0, 10);
|
|
911
|
+
}
|
|
912
|
+
return serializeProperty("", { "": value });
|
|
913
|
+
function serializeProperty(key2, holder) {
|
|
914
|
+
let value2 = holder[key2];
|
|
915
|
+
if (value2 != null) {
|
|
916
|
+
if (typeof value2.toJSON5 === "function") {
|
|
917
|
+
value2 = value2.toJSON5(key2);
|
|
918
|
+
} else if (typeof value2.toJSON === "function") {
|
|
919
|
+
value2 = value2.toJSON(key2);
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
if (replacerFunc) {
|
|
923
|
+
value2 = replacerFunc.call(holder, key2, value2);
|
|
924
|
+
}
|
|
925
|
+
if (value2 instanceof Number) {
|
|
926
|
+
value2 = Number(value2);
|
|
927
|
+
} else if (value2 instanceof String) {
|
|
928
|
+
value2 = String(value2);
|
|
929
|
+
} else if (value2 instanceof Boolean) {
|
|
930
|
+
value2 = value2.valueOf();
|
|
931
|
+
}
|
|
932
|
+
switch (value2) {
|
|
933
|
+
case null:
|
|
934
|
+
return "null";
|
|
935
|
+
case true:
|
|
936
|
+
return "true";
|
|
937
|
+
case false:
|
|
938
|
+
return "false";
|
|
939
|
+
}
|
|
940
|
+
if (typeof value2 === "string") {
|
|
941
|
+
return quoteString(value2);
|
|
942
|
+
}
|
|
943
|
+
if (typeof value2 === "number") {
|
|
944
|
+
return String(value2);
|
|
945
|
+
}
|
|
946
|
+
if (typeof value2 === "object") {
|
|
947
|
+
return Array.isArray(value2) ? serializeArray(value2) : serializeObject(value2);
|
|
948
|
+
}
|
|
949
|
+
return void 0;
|
|
950
|
+
}
|
|
951
|
+
function quoteString(value2) {
|
|
952
|
+
const quotes = {
|
|
953
|
+
"'": 0.1,
|
|
954
|
+
'"': 0.2
|
|
955
|
+
};
|
|
956
|
+
const replacements = {
|
|
957
|
+
"'": "\\'",
|
|
958
|
+
'"': '\\"',
|
|
959
|
+
"\\": "\\\\",
|
|
960
|
+
"\b": "\\b",
|
|
961
|
+
"\f": "\\f",
|
|
962
|
+
"\n": "\\n",
|
|
963
|
+
"\r": "\\r",
|
|
964
|
+
" ": "\\t",
|
|
965
|
+
"\v": "\\v",
|
|
966
|
+
"\0": "\\0",
|
|
967
|
+
"\u2028": "\\u2028",
|
|
968
|
+
"\u2029": "\\u2029"
|
|
969
|
+
};
|
|
970
|
+
let product = "";
|
|
971
|
+
for (let i = 0; i < value2.length; i++) {
|
|
972
|
+
const c2 = value2[i];
|
|
973
|
+
switch (c2) {
|
|
974
|
+
case "'":
|
|
975
|
+
case '"':
|
|
976
|
+
quotes[c2]++;
|
|
977
|
+
product += c2;
|
|
978
|
+
continue;
|
|
979
|
+
case "\0":
|
|
980
|
+
if (util.isDigit(value2[i + 1])) {
|
|
981
|
+
product += "\\x00";
|
|
982
|
+
continue;
|
|
983
|
+
}
|
|
984
|
+
}
|
|
985
|
+
if (replacements[c2]) {
|
|
986
|
+
product += replacements[c2];
|
|
987
|
+
continue;
|
|
988
|
+
}
|
|
989
|
+
if (c2 < " ") {
|
|
990
|
+
let hexString = c2.charCodeAt(0).toString(16);
|
|
991
|
+
product += "\\x" + ("00" + hexString).substring(hexString.length);
|
|
992
|
+
continue;
|
|
993
|
+
}
|
|
994
|
+
product += c2;
|
|
995
|
+
}
|
|
996
|
+
const quoteChar = quote || Object.keys(quotes).reduce((a, b) => quotes[a] < quotes[b] ? a : b);
|
|
997
|
+
product = product.replace(new RegExp(quoteChar, "g"), replacements[quoteChar]);
|
|
998
|
+
return quoteChar + product + quoteChar;
|
|
999
|
+
}
|
|
1000
|
+
function serializeObject(value2) {
|
|
1001
|
+
if (stack2.indexOf(value2) >= 0) {
|
|
1002
|
+
throw TypeError("Converting circular structure to JSON5");
|
|
1003
|
+
}
|
|
1004
|
+
stack2.push(value2);
|
|
1005
|
+
let stepback = indent;
|
|
1006
|
+
indent = indent + gap;
|
|
1007
|
+
let keys = propertyList || Object.keys(value2);
|
|
1008
|
+
let partial = [];
|
|
1009
|
+
for (const key2 of keys) {
|
|
1010
|
+
const propertyString = serializeProperty(key2, value2);
|
|
1011
|
+
if (propertyString !== void 0) {
|
|
1012
|
+
let member = serializeKey(key2) + ":";
|
|
1013
|
+
if (gap !== "") {
|
|
1014
|
+
member += " ";
|
|
1015
|
+
}
|
|
1016
|
+
member += propertyString;
|
|
1017
|
+
partial.push(member);
|
|
1018
|
+
}
|
|
1019
|
+
}
|
|
1020
|
+
let final;
|
|
1021
|
+
if (partial.length === 0) {
|
|
1022
|
+
final = "{}";
|
|
1023
|
+
} else {
|
|
1024
|
+
let properties;
|
|
1025
|
+
if (gap === "") {
|
|
1026
|
+
properties = partial.join(",");
|
|
1027
|
+
final = "{" + properties + "}";
|
|
1028
|
+
} else {
|
|
1029
|
+
let separator = ",\n" + indent;
|
|
1030
|
+
properties = partial.join(separator);
|
|
1031
|
+
final = "{\n" + indent + properties + ",\n" + stepback + "}";
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
stack2.pop();
|
|
1035
|
+
indent = stepback;
|
|
1036
|
+
return final;
|
|
1037
|
+
}
|
|
1038
|
+
function serializeKey(key2) {
|
|
1039
|
+
if (key2.length === 0) {
|
|
1040
|
+
return quoteString(key2);
|
|
1041
|
+
}
|
|
1042
|
+
const firstChar = String.fromCodePoint(key2.codePointAt(0));
|
|
1043
|
+
if (!util.isIdStartChar(firstChar)) {
|
|
1044
|
+
return quoteString(key2);
|
|
1045
|
+
}
|
|
1046
|
+
for (let i = firstChar.length; i < key2.length; i++) {
|
|
1047
|
+
if (!util.isIdContinueChar(String.fromCodePoint(key2.codePointAt(i)))) {
|
|
1048
|
+
return quoteString(key2);
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
return key2;
|
|
1052
|
+
}
|
|
1053
|
+
function serializeArray(value2) {
|
|
1054
|
+
if (stack2.indexOf(value2) >= 0) {
|
|
1055
|
+
throw TypeError("Converting circular structure to JSON5");
|
|
1056
|
+
}
|
|
1057
|
+
stack2.push(value2);
|
|
1058
|
+
let stepback = indent;
|
|
1059
|
+
indent = indent + gap;
|
|
1060
|
+
let partial = [];
|
|
1061
|
+
for (let i = 0; i < value2.length; i++) {
|
|
1062
|
+
const propertyString = serializeProperty(String(i), value2);
|
|
1063
|
+
partial.push(propertyString !== void 0 ? propertyString : "null");
|
|
1064
|
+
}
|
|
1065
|
+
let final;
|
|
1066
|
+
if (partial.length === 0) {
|
|
1067
|
+
final = "[]";
|
|
1068
|
+
} else {
|
|
1069
|
+
if (gap === "") {
|
|
1070
|
+
let properties = partial.join(",");
|
|
1071
|
+
final = "[" + properties + "]";
|
|
1072
|
+
} else {
|
|
1073
|
+
let separator = ",\n" + indent;
|
|
1074
|
+
let properties = partial.join(separator);
|
|
1075
|
+
final = "[\n" + indent + properties + ",\n" + stepback + "]";
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
stack2.pop();
|
|
1079
|
+
indent = stepback;
|
|
1080
|
+
return final;
|
|
1081
|
+
}
|
|
1082
|
+
};
|
|
1083
|
+
const JSON5 = {
|
|
1084
|
+
parse,
|
|
1085
|
+
stringify
|
|
1086
|
+
};
|
|
1087
|
+
var lib = JSON5;
|
|
1088
|
+
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
1089
|
+
function getDefaultExportFromCjs(x) {
|
|
1090
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
1091
|
+
}
|
|
1092
|
+
var dayjs_min = { exports: {} };
|
|
1093
|
+
(function(module, exports) {
|
|
1094
|
+
!function(t, e) {
|
|
1095
|
+
module.exports = e();
|
|
1096
|
+
}(commonjsGlobal, function() {
|
|
1097
|
+
var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c2 = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) {
|
|
1098
|
+
var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100;
|
|
1099
|
+
return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]";
|
|
1100
|
+
} }, m = function(t2, e2, n2) {
|
|
1101
|
+
var r2 = String(t2);
|
|
1102
|
+
return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
|
|
1103
|
+
}, v = { s: m, z: function(t2) {
|
|
1104
|
+
var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
|
|
1105
|
+
return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
|
|
1106
|
+
}, m: function t2(e2, n2) {
|
|
1107
|
+
if (e2.date() < n2.date()) return -t2(n2, e2);
|
|
1108
|
+
var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, c2), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), c2);
|
|
1109
|
+
return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
|
|
1110
|
+
}, a: function(t2) {
|
|
1111
|
+
return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
|
|
1112
|
+
}, p: function(t2) {
|
|
1113
|
+
return { M: c2, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t2] || String(t2 || "").toLowerCase().replace(/s$/, "");
|
|
1114
|
+
}, u: function(t2) {
|
|
1115
|
+
return void 0 === t2;
|
|
1116
|
+
} }, g = "en", D = {};
|
|
1117
|
+
D[g] = M;
|
|
1118
|
+
var p = "$isDayjsObject", S = function(t2) {
|
|
1119
|
+
return t2 instanceof _ || !(!t2 || !t2[p]);
|
|
1120
|
+
}, w = function t2(e2, n2, r2) {
|
|
1121
|
+
var i2;
|
|
1122
|
+
if (!e2) return g;
|
|
1123
|
+
if ("string" == typeof e2) {
|
|
1124
|
+
var s2 = e2.toLowerCase();
|
|
1125
|
+
D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
|
|
1126
|
+
var u2 = e2.split("-");
|
|
1127
|
+
if (!i2 && u2.length > 1) return t2(u2[0]);
|
|
1128
|
+
} else {
|
|
1129
|
+
var a2 = e2.name;
|
|
1130
|
+
D[a2] = e2, i2 = a2;
|
|
1131
|
+
}
|
|
1132
|
+
return !r2 && i2 && (g = i2), i2 || !r2 && g;
|
|
1133
|
+
}, O = function(t2, e2) {
|
|
1134
|
+
if (S(t2)) return t2.clone();
|
|
1135
|
+
var n2 = "object" == typeof e2 ? e2 : {};
|
|
1136
|
+
return n2.date = t2, n2.args = arguments, new _(n2);
|
|
1137
|
+
}, b = v;
|
|
1138
|
+
b.l = w, b.i = S, b.w = function(t2, e2) {
|
|
1139
|
+
return O(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset });
|
|
1140
|
+
};
|
|
1141
|
+
var _ = function() {
|
|
1142
|
+
function M2(t2) {
|
|
1143
|
+
this.$L = w(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true;
|
|
1144
|
+
}
|
|
1145
|
+
var m2 = M2.prototype;
|
|
1146
|
+
return m2.parse = function(t2) {
|
|
1147
|
+
this.$d = function(t3) {
|
|
1148
|
+
var e2 = t3.date, n2 = t3.utc;
|
|
1149
|
+
if (null === e2) return /* @__PURE__ */ new Date(NaN);
|
|
1150
|
+
if (b.u(e2)) return /* @__PURE__ */ new Date();
|
|
1151
|
+
if (e2 instanceof Date) return new Date(e2);
|
|
1152
|
+
if ("string" == typeof e2 && !/Z$/i.test(e2)) {
|
|
1153
|
+
var r2 = e2.match($);
|
|
1154
|
+
if (r2) {
|
|
1155
|
+
var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3);
|
|
1156
|
+
return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2);
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
return new Date(e2);
|
|
1160
|
+
}(t2), this.init();
|
|
1161
|
+
}, m2.init = function() {
|
|
1162
|
+
var t2 = this.$d;
|
|
1163
|
+
this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds();
|
|
1164
|
+
}, m2.$utils = function() {
|
|
1165
|
+
return b;
|
|
1166
|
+
}, m2.isValid = function() {
|
|
1167
|
+
return !(this.$d.toString() === l);
|
|
1168
|
+
}, m2.isSame = function(t2, e2) {
|
|
1169
|
+
var n2 = O(t2);
|
|
1170
|
+
return this.startOf(e2) <= n2 && n2 <= this.endOf(e2);
|
|
1171
|
+
}, m2.isAfter = function(t2, e2) {
|
|
1172
|
+
return O(t2) < this.startOf(e2);
|
|
1173
|
+
}, m2.isBefore = function(t2, e2) {
|
|
1174
|
+
return this.endOf(e2) < O(t2);
|
|
1175
|
+
}, m2.$g = function(t2, e2, n2) {
|
|
1176
|
+
return b.u(t2) ? this[e2] : this.set(n2, t2);
|
|
1177
|
+
}, m2.unix = function() {
|
|
1178
|
+
return Math.floor(this.valueOf() / 1e3);
|
|
1179
|
+
}, m2.valueOf = function() {
|
|
1180
|
+
return this.$d.getTime();
|
|
1181
|
+
}, m2.startOf = function(t2, e2) {
|
|
1182
|
+
var n2 = this, r2 = !!b.u(e2) || e2, f2 = b.p(t2), l2 = function(t3, e3) {
|
|
1183
|
+
var i2 = b.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2);
|
|
1184
|
+
return r2 ? i2 : i2.endOf(a);
|
|
1185
|
+
}, $2 = function(t3, e3) {
|
|
1186
|
+
return b.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2);
|
|
1187
|
+
}, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : "");
|
|
1188
|
+
switch (f2) {
|
|
1189
|
+
case h:
|
|
1190
|
+
return r2 ? l2(1, 0) : l2(31, 11);
|
|
1191
|
+
case c2:
|
|
1192
|
+
return r2 ? l2(1, M3) : l2(0, M3 + 1);
|
|
1193
|
+
case o:
|
|
1194
|
+
var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
|
|
1195
|
+
return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3);
|
|
1196
|
+
case a:
|
|
1197
|
+
case d:
|
|
1198
|
+
return $2(v2 + "Hours", 0);
|
|
1199
|
+
case u:
|
|
1200
|
+
return $2(v2 + "Minutes", 1);
|
|
1201
|
+
case s:
|
|
1202
|
+
return $2(v2 + "Seconds", 2);
|
|
1203
|
+
case i:
|
|
1204
|
+
return $2(v2 + "Milliseconds", 3);
|
|
1205
|
+
default:
|
|
1206
|
+
return this.clone();
|
|
1207
|
+
}
|
|
1208
|
+
}, m2.endOf = function(t2) {
|
|
1209
|
+
return this.startOf(t2, false);
|
|
1210
|
+
}, m2.$set = function(t2, e2) {
|
|
1211
|
+
var n2, o2 = b.p(t2), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = f2 + "Date", n2[d] = f2 + "Date", n2[c2] = f2 + "Month", n2[h] = f2 + "FullYear", n2[u] = f2 + "Hours", n2[s] = f2 + "Minutes", n2[i] = f2 + "Seconds", n2[r] = f2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2;
|
|
1212
|
+
if (o2 === c2 || o2 === h) {
|
|
1213
|
+
var y2 = this.clone().set(d, 1);
|
|
1214
|
+
y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
|
|
1215
|
+
} else l2 && this.$d[l2]($2);
|
|
1216
|
+
return this.init(), this;
|
|
1217
|
+
}, m2.set = function(t2, e2) {
|
|
1218
|
+
return this.clone().$set(t2, e2);
|
|
1219
|
+
}, m2.get = function(t2) {
|
|
1220
|
+
return this[b.p(t2)]();
|
|
1221
|
+
}, m2.add = function(r2, f2) {
|
|
1222
|
+
var d2, l2 = this;
|
|
1223
|
+
r2 = Number(r2);
|
|
1224
|
+
var $2 = b.p(f2), y2 = function(t2) {
|
|
1225
|
+
var e2 = O(l2);
|
|
1226
|
+
return b.w(e2.date(e2.date() + Math.round(t2 * r2)), l2);
|
|
1227
|
+
};
|
|
1228
|
+
if ($2 === c2) return this.set(c2, this.$M + r2);
|
|
1229
|
+
if ($2 === h) return this.set(h, this.$y + r2);
|
|
1230
|
+
if ($2 === a) return y2(1);
|
|
1231
|
+
if ($2 === o) return y2(7);
|
|
1232
|
+
var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3;
|
|
1233
|
+
return b.w(m3, this);
|
|
1234
|
+
}, m2.subtract = function(t2, e2) {
|
|
1235
|
+
return this.add(-1 * t2, e2);
|
|
1236
|
+
}, m2.format = function(t2) {
|
|
1237
|
+
var e2 = this, n2 = this.$locale();
|
|
1238
|
+
if (!this.isValid()) return n2.invalidDate || l;
|
|
1239
|
+
var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, c3 = n2.months, f2 = n2.meridiem, h2 = function(t3, n3, i3, s3) {
|
|
1240
|
+
return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3);
|
|
1241
|
+
}, d2 = function(t3) {
|
|
1242
|
+
return b.s(s2 % 12 || 12, t3, "0");
|
|
1243
|
+
}, $2 = f2 || function(t3, e3, n3) {
|
|
1244
|
+
var r3 = t3 < 12 ? "AM" : "PM";
|
|
1245
|
+
return n3 ? r3.toLowerCase() : r3;
|
|
1246
|
+
};
|
|
1247
|
+
return r2.replace(y, function(t3, r3) {
|
|
1248
|
+
return r3 || function(t4) {
|
|
1249
|
+
switch (t4) {
|
|
1250
|
+
case "YY":
|
|
1251
|
+
return String(e2.$y).slice(-2);
|
|
1252
|
+
case "YYYY":
|
|
1253
|
+
return b.s(e2.$y, 4, "0");
|
|
1254
|
+
case "M":
|
|
1255
|
+
return a2 + 1;
|
|
1256
|
+
case "MM":
|
|
1257
|
+
return b.s(a2 + 1, 2, "0");
|
|
1258
|
+
case "MMM":
|
|
1259
|
+
return h2(n2.monthsShort, a2, c3, 3);
|
|
1260
|
+
case "MMMM":
|
|
1261
|
+
return h2(c3, a2);
|
|
1262
|
+
case "D":
|
|
1263
|
+
return e2.$D;
|
|
1264
|
+
case "DD":
|
|
1265
|
+
return b.s(e2.$D, 2, "0");
|
|
1266
|
+
case "d":
|
|
1267
|
+
return String(e2.$W);
|
|
1268
|
+
case "dd":
|
|
1269
|
+
return h2(n2.weekdaysMin, e2.$W, o2, 2);
|
|
1270
|
+
case "ddd":
|
|
1271
|
+
return h2(n2.weekdaysShort, e2.$W, o2, 3);
|
|
1272
|
+
case "dddd":
|
|
1273
|
+
return o2[e2.$W];
|
|
1274
|
+
case "H":
|
|
1275
|
+
return String(s2);
|
|
1276
|
+
case "HH":
|
|
1277
|
+
return b.s(s2, 2, "0");
|
|
1278
|
+
case "h":
|
|
1279
|
+
return d2(1);
|
|
1280
|
+
case "hh":
|
|
1281
|
+
return d2(2);
|
|
1282
|
+
case "a":
|
|
1283
|
+
return $2(s2, u2, true);
|
|
1284
|
+
case "A":
|
|
1285
|
+
return $2(s2, u2, false);
|
|
1286
|
+
case "m":
|
|
1287
|
+
return String(u2);
|
|
1288
|
+
case "mm":
|
|
1289
|
+
return b.s(u2, 2, "0");
|
|
1290
|
+
case "s":
|
|
1291
|
+
return String(e2.$s);
|
|
1292
|
+
case "ss":
|
|
1293
|
+
return b.s(e2.$s, 2, "0");
|
|
1294
|
+
case "SSS":
|
|
1295
|
+
return b.s(e2.$ms, 3, "0");
|
|
1296
|
+
case "Z":
|
|
1297
|
+
return i2;
|
|
1298
|
+
}
|
|
1299
|
+
return null;
|
|
1300
|
+
}(t3) || i2.replace(":", "");
|
|
1301
|
+
});
|
|
1302
|
+
}, m2.utcOffset = function() {
|
|
1303
|
+
return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
|
|
1304
|
+
}, m2.diff = function(r2, d2, l2) {
|
|
1305
|
+
var $2, y2 = this, M3 = b.p(d2), m3 = O(r2), v2 = (m3.utcOffset() - this.utcOffset()) * e, g2 = this - m3, D2 = function() {
|
|
1306
|
+
return b.m(y2, m3);
|
|
1307
|
+
};
|
|
1308
|
+
switch (M3) {
|
|
1309
|
+
case h:
|
|
1310
|
+
$2 = D2() / 12;
|
|
1311
|
+
break;
|
|
1312
|
+
case c2:
|
|
1313
|
+
$2 = D2();
|
|
1314
|
+
break;
|
|
1315
|
+
case f:
|
|
1316
|
+
$2 = D2() / 3;
|
|
1317
|
+
break;
|
|
1318
|
+
case o:
|
|
1319
|
+
$2 = (g2 - v2) / 6048e5;
|
|
1320
|
+
break;
|
|
1321
|
+
case a:
|
|
1322
|
+
$2 = (g2 - v2) / 864e5;
|
|
1323
|
+
break;
|
|
1324
|
+
case u:
|
|
1325
|
+
$2 = g2 / n;
|
|
1326
|
+
break;
|
|
1327
|
+
case s:
|
|
1328
|
+
$2 = g2 / e;
|
|
1329
|
+
break;
|
|
1330
|
+
case i:
|
|
1331
|
+
$2 = g2 / t;
|
|
1332
|
+
break;
|
|
1333
|
+
default:
|
|
1334
|
+
$2 = g2;
|
|
1335
|
+
}
|
|
1336
|
+
return l2 ? $2 : b.a($2);
|
|
1337
|
+
}, m2.daysInMonth = function() {
|
|
1338
|
+
return this.endOf(c2).$D;
|
|
1339
|
+
}, m2.$locale = function() {
|
|
1340
|
+
return D[this.$L];
|
|
1341
|
+
}, m2.locale = function(t2, e2) {
|
|
1342
|
+
if (!t2) return this.$L;
|
|
1343
|
+
var n2 = this.clone(), r2 = w(t2, e2, true);
|
|
1344
|
+
return r2 && (n2.$L = r2), n2;
|
|
1345
|
+
}, m2.clone = function() {
|
|
1346
|
+
return b.w(this.$d, this);
|
|
1347
|
+
}, m2.toDate = function() {
|
|
1348
|
+
return new Date(this.valueOf());
|
|
1349
|
+
}, m2.toJSON = function() {
|
|
1350
|
+
return this.isValid() ? this.toISOString() : null;
|
|
1351
|
+
}, m2.toISOString = function() {
|
|
1352
|
+
return this.$d.toISOString();
|
|
1353
|
+
}, m2.toString = function() {
|
|
1354
|
+
return this.$d.toUTCString();
|
|
1355
|
+
}, M2;
|
|
1356
|
+
}(), k = _.prototype;
|
|
1357
|
+
return O.prototype = k, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", c2], ["$y", h], ["$D", d]].forEach(function(t2) {
|
|
1358
|
+
k[t2[1]] = function(e2) {
|
|
1359
|
+
return this.$g(e2, t2[0], t2[1]);
|
|
1360
|
+
};
|
|
1361
|
+
}), O.extend = function(t2, e2) {
|
|
1362
|
+
return t2.$i || (t2(e2, _, O), t2.$i = true), O;
|
|
1363
|
+
}, O.locale = w, O.isDayjs = S, O.unix = function(t2) {
|
|
1364
|
+
return O(1e3 * t2);
|
|
1365
|
+
}, O.en = D[g], O.Ls = D, O.p = {}, O;
|
|
1366
|
+
});
|
|
1367
|
+
})(dayjs_min);
|
|
1368
|
+
var dayjs_minExports = dayjs_min.exports;
|
|
1369
|
+
const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
|
|
1370
|
+
const parseVersion = (tagName) => {
|
|
1371
|
+
const cleanTag = tagName.replace(/^v/i, "");
|
|
1372
|
+
const versionRegex = /^(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.(\d+))?$/;
|
|
1373
|
+
const match = cleanTag.match(versionRegex);
|
|
1374
|
+
if (!match) {
|
|
1375
|
+
return void 0;
|
|
1376
|
+
}
|
|
1377
|
+
const version = {
|
|
1378
|
+
major: parseInt(match[1], 10),
|
|
1379
|
+
original: tagName
|
|
1380
|
+
};
|
|
1381
|
+
if (match[2] !== void 0) {
|
|
1382
|
+
version.minor = parseInt(match[2], 10);
|
|
1383
|
+
}
|
|
1384
|
+
if (match[3] !== void 0) {
|
|
1385
|
+
version.build = parseInt(match[3], 10);
|
|
1386
|
+
}
|
|
1387
|
+
if (match[4] !== void 0) {
|
|
1388
|
+
version.revision = parseInt(match[4], 10);
|
|
1389
|
+
}
|
|
1390
|
+
return version;
|
|
1391
|
+
};
|
|
1392
|
+
const isValidVersion = (version) => {
|
|
1393
|
+
return version.major >= 0 && (version.minor === void 0 || version.minor >= 0);
|
|
1394
|
+
};
|
|
1395
|
+
const compareVersions = (a, b) => {
|
|
1396
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1397
|
+
if (a.major !== b.major) return b.major - a.major;
|
|
1398
|
+
const aMinor = (_a = a.minor) != null ? _a : 0;
|
|
1399
|
+
const bMinor = (_b = b.minor) != null ? _b : 0;
|
|
1400
|
+
if (aMinor !== bMinor) return bMinor - aMinor;
|
|
1401
|
+
const aBuild = (_c = a.build) != null ? _c : 0;
|
|
1402
|
+
const bBuild = (_d = b.build) != null ? _d : 0;
|
|
1403
|
+
if (aBuild !== bBuild) return bBuild - aBuild;
|
|
1404
|
+
const aRevision = (_e = a.revision) != null ? _e : 0;
|
|
1405
|
+
const bRevision = (_f = b.revision) != null ? _f : 0;
|
|
1406
|
+
if (aRevision !== bRevision) return bRevision - aRevision;
|
|
1407
|
+
return 0;
|
|
1408
|
+
};
|
|
1409
|
+
const incrementLastVersionComponent = (version) => {
|
|
1410
|
+
if (version.revision !== void 0) {
|
|
1411
|
+
return { ...version, revision: version.revision + 1 };
|
|
1412
|
+
}
|
|
1413
|
+
if (version.build !== void 0) {
|
|
1414
|
+
return { ...version, build: version.build + 1 };
|
|
1415
|
+
}
|
|
1416
|
+
if (version.minor !== void 0) {
|
|
1417
|
+
return { ...version, minor: version.minor + 1 };
|
|
1418
|
+
}
|
|
1419
|
+
return {
|
|
1420
|
+
...version,
|
|
1421
|
+
major: version.major + 1,
|
|
1422
|
+
original: `${version.major + 1}`
|
|
1423
|
+
};
|
|
1424
|
+
};
|
|
1425
|
+
const formatVersion = (version) => {
|
|
1426
|
+
let result = `${version.major}`;
|
|
1427
|
+
if (version.minor !== void 0) {
|
|
1428
|
+
result += `.${version.minor}`;
|
|
1429
|
+
if (version.build !== void 0) {
|
|
1430
|
+
result += `.${version.build}`;
|
|
1431
|
+
if (version.revision !== void 0) {
|
|
1432
|
+
result += `.${version.revision}`;
|
|
1433
|
+
}
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
return result;
|
|
1437
|
+
};
|
|
1438
|
+
const isGitRepository = async (repositoryPath) => {
|
|
1439
|
+
try {
|
|
1440
|
+
await git.statusMatrix({ fs, dir: repositoryPath });
|
|
1441
|
+
return true;
|
|
1442
|
+
} catch (e) {
|
|
1443
|
+
return false;
|
|
1444
|
+
}
|
|
1445
|
+
};
|
|
1446
|
+
const getCommit = async (repositoryPath, hash) => {
|
|
1447
|
+
try {
|
|
1448
|
+
const commit = await git.readCommit({ fs, dir: repositoryPath, oid: hash });
|
|
1449
|
+
return {
|
|
1450
|
+
hash: commit.oid,
|
|
1451
|
+
shortHash: commit.oid.substring(0, 7),
|
|
1452
|
+
date: new Date(commit.commit.author.timestamp * 1e3).toISOString(),
|
|
1453
|
+
message: commit.commit.message.trim(),
|
|
1454
|
+
parents: commit.commit.parent || []
|
|
1455
|
+
};
|
|
1456
|
+
} catch (e) {
|
|
1457
|
+
return void 0;
|
|
1458
|
+
}
|
|
1459
|
+
};
|
|
1460
|
+
const getCurrentCommit = async (repositoryPath) => {
|
|
1461
|
+
try {
|
|
1462
|
+
const currentOid = await git.resolveRef({ fs, dir: repositoryPath, ref: "HEAD" });
|
|
1463
|
+
const commit = await git.readCommit({ fs, dir: repositoryPath, oid: currentOid });
|
|
1464
|
+
return {
|
|
1465
|
+
hash: commit.oid,
|
|
1466
|
+
shortHash: commit.oid.substring(0, 7),
|
|
1467
|
+
date: new Date(commit.commit.author.timestamp * 1e3).toISOString(),
|
|
1468
|
+
message: commit.commit.message.trim(),
|
|
1469
|
+
parents: commit.commit.parent || []
|
|
1470
|
+
};
|
|
1471
|
+
} catch (e) {
|
|
1472
|
+
return void 0;
|
|
1473
|
+
}
|
|
1474
|
+
};
|
|
1475
|
+
const getRelatedTags = async (repositoryPath, commitHash) => {
|
|
1476
|
+
try {
|
|
1477
|
+
const tags = await git.listTags({ fs, dir: repositoryPath });
|
|
1478
|
+
const tagInfos = [];
|
|
1479
|
+
for (const tagName of tags) {
|
|
1480
|
+
try {
|
|
1481
|
+
const tagOid = await git.resolveRef({ fs, dir: repositoryPath, ref: `refs/tags/${tagName}` });
|
|
1482
|
+
if (tagOid === commitHash) {
|
|
1483
|
+
const version = parseVersion(tagName);
|
|
1484
|
+
if (version && isValidVersion(version)) {
|
|
1485
|
+
tagInfos.push({
|
|
1486
|
+
name: tagName,
|
|
1487
|
+
hash: commitHash,
|
|
1488
|
+
version
|
|
1489
|
+
});
|
|
1490
|
+
} else {
|
|
1491
|
+
tagInfos.push({
|
|
1492
|
+
name: tagName,
|
|
1493
|
+
hash: commitHash,
|
|
1494
|
+
version: void 0
|
|
1495
|
+
});
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
} catch (e) {
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
return tagInfos.sort((a, b) => a.name.localeCompare(b.name));
|
|
1502
|
+
} catch (e) {
|
|
1503
|
+
return [];
|
|
1504
|
+
}
|
|
1505
|
+
};
|
|
1506
|
+
const getRelatedTagsForVersioning = async (repositoryPath, commitHash) => {
|
|
1507
|
+
try {
|
|
1508
|
+
const tags = await git.listTags({ fs, dir: repositoryPath });
|
|
1509
|
+
const tagInfos = [];
|
|
1510
|
+
for (const tagName of tags) {
|
|
1511
|
+
try {
|
|
1512
|
+
const tagOid = await git.resolveRef({ fs, dir: repositoryPath, ref: `refs/tags/${tagName}` });
|
|
1513
|
+
if (tagOid === commitHash) {
|
|
1514
|
+
const version = parseVersion(tagName);
|
|
1515
|
+
if (version && isValidVersion(version)) {
|
|
1516
|
+
tagInfos.push({
|
|
1517
|
+
name: tagName,
|
|
1518
|
+
hash: commitHash,
|
|
1519
|
+
version
|
|
1520
|
+
});
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
} catch (e) {
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1526
|
+
return tagInfos;
|
|
1527
|
+
} catch (e) {
|
|
1528
|
+
return [];
|
|
1529
|
+
}
|
|
1530
|
+
};
|
|
1531
|
+
const getRelatedBranches = async (repositoryPath, commitHash) => {
|
|
1532
|
+
try {
|
|
1533
|
+
const branches = await git.listBranches({ fs, dir: repositoryPath });
|
|
1534
|
+
const relatedBranches = [];
|
|
1535
|
+
for (const branch of branches) {
|
|
1536
|
+
try {
|
|
1537
|
+
const branchOid = await git.resolveRef({ fs, dir: repositoryPath, ref: branch });
|
|
1538
|
+
if (branchOid === commitHash) {
|
|
1539
|
+
relatedBranches.push(branch);
|
|
1540
|
+
}
|
|
1541
|
+
} catch (e) {
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
return relatedBranches;
|
|
1545
|
+
} catch (e) {
|
|
1546
|
+
return [];
|
|
1547
|
+
}
|
|
1548
|
+
};
|
|
1549
|
+
const hasModifiedFiles = async (repositoryPath) => {
|
|
1550
|
+
try {
|
|
1551
|
+
const status = await git.statusMatrix({ fs, dir: repositoryPath });
|
|
1552
|
+
return status.some(
|
|
1553
|
+
([, head, workdir, stage]) => workdir === 2 || // modified in working directory (unstaged)
|
|
1554
|
+
stage === 2 || // modified in stage (staged)
|
|
1555
|
+
stage === 3 || // added to stage (staged)
|
|
1556
|
+
head === 1 && workdir === 0 || // deleted from working directory
|
|
1557
|
+
head === 0 && workdir === 1
|
|
1558
|
+
// untracked files (respecting .gitignore)
|
|
1559
|
+
);
|
|
1560
|
+
} catch (e) {
|
|
1561
|
+
return false;
|
|
1562
|
+
}
|
|
1563
|
+
};
|
|
1564
|
+
const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits) => {
|
|
1565
|
+
const scheduledStack = [];
|
|
1566
|
+
let version = { major: 0, minor: 0, build: 1, original: "0.0.1" };
|
|
1567
|
+
let currentCommit = commit;
|
|
1568
|
+
while (true) {
|
|
1569
|
+
if (reachedCommits.has(currentCommit.hash)) {
|
|
1570
|
+
version = reachedCommits.get(currentCommit.hash);
|
|
1571
|
+
break;
|
|
1572
|
+
}
|
|
1573
|
+
const relatedTags = await getRelatedTagsForVersioning(cwd, currentCommit.hash);
|
|
1574
|
+
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));
|
|
1575
|
+
if (versionCandidates.length >= 1) {
|
|
1576
|
+
version = versionCandidates[0].version;
|
|
1577
|
+
reachedCommits.set(currentCommit.hash, version);
|
|
1578
|
+
break;
|
|
1579
|
+
}
|
|
1580
|
+
let parentCommits = [];
|
|
1581
|
+
try {
|
|
1582
|
+
const commitObj = await git.readCommit({ fs, dir: cwd, oid: currentCommit.hash });
|
|
1583
|
+
const parentHashes = commitObj.commit.parent || [];
|
|
1584
|
+
parentCommits = (await Promise.all(parentHashes.map((parentHash) => getCommit(cwd, parentHash)))).filter((ci) => ci !== void 0);
|
|
1585
|
+
} catch (e) {
|
|
1586
|
+
}
|
|
1587
|
+
if (parentCommits.length === 0) {
|
|
1588
|
+
reachedCommits.set(currentCommit.hash, version);
|
|
1589
|
+
break;
|
|
1590
|
+
}
|
|
1591
|
+
scheduledStack.push({ commit: currentCommit, parents: parentCommits });
|
|
1592
|
+
currentCommit = parentCommits[0];
|
|
1593
|
+
}
|
|
1594
|
+
while (scheduledStack.length >= 1) {
|
|
1595
|
+
const scheduled = scheduledStack.pop();
|
|
1596
|
+
const { commit: scheduledCommit, parents } = scheduled;
|
|
1597
|
+
if (parents.length >= 2) {
|
|
1598
|
+
for (let index = 1; index < parents.length; index++) {
|
|
1599
|
+
const alternateParentVersion = await lookupVersionLabelRecursive(cwd, parents[index], reachedCommits);
|
|
1600
|
+
if (alternateParentVersion && compareVersions(alternateParentVersion, version) < 0) {
|
|
1601
|
+
version = alternateParentVersion;
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
}
|
|
1605
|
+
version = incrementLastVersionComponent(version);
|
|
1606
|
+
reachedCommits.set(scheduledCommit.hash, version);
|
|
1607
|
+
}
|
|
1608
|
+
return version;
|
|
1609
|
+
};
|
|
1610
|
+
const getGitMetadata = async (repositoryPath, checkWorkingDirectoryStatus) => {
|
|
1611
|
+
const metadata = {};
|
|
1612
|
+
if (!await isGitRepository(repositoryPath)) {
|
|
1613
|
+
return metadata;
|
|
1614
|
+
}
|
|
1615
|
+
try {
|
|
1616
|
+
const currentCommit = await getCurrentCommit(repositoryPath);
|
|
1617
|
+
if (!currentCommit) {
|
|
1618
|
+
return metadata;
|
|
1619
|
+
}
|
|
1620
|
+
const reachedCommits = /* @__PURE__ */ new Map();
|
|
1621
|
+
let version = await lookupVersionLabelRecursive(repositoryPath, currentCommit, reachedCommits);
|
|
1622
|
+
const gitMetadata = { tags: [], branches: [] };
|
|
1623
|
+
metadata.git = gitMetadata;
|
|
1624
|
+
if (version) {
|
|
1625
|
+
const hasModified = checkWorkingDirectoryStatus && await hasModifiedFiles(repositoryPath);
|
|
1626
|
+
if (hasModified) {
|
|
1627
|
+
version = incrementLastVersionComponent(version);
|
|
1628
|
+
}
|
|
1629
|
+
const gitVersion = formatVersion(version);
|
|
1630
|
+
gitMetadata.version = gitVersion;
|
|
1631
|
+
metadata.version = gitVersion;
|
|
1632
|
+
}
|
|
1633
|
+
gitMetadata.commit = {
|
|
1634
|
+
hash: currentCommit.hash,
|
|
1635
|
+
shortHash: currentCommit.shortHash,
|
|
1636
|
+
date: dayjs(currentCommit.date).format("YYYY-MM-DDTHH:mm:ssZ[Z]"),
|
|
1637
|
+
message: currentCommit.message
|
|
1638
|
+
};
|
|
1639
|
+
const relatedTags = await getRelatedTags(repositoryPath, currentCommit.hash);
|
|
1640
|
+
gitMetadata.tags = relatedTags.map((tag) => tag.name);
|
|
1641
|
+
const relatedBranches = await getRelatedBranches(repositoryPath, currentCommit.hash);
|
|
1642
|
+
gitMetadata.branches = relatedBranches;
|
|
1643
|
+
} catch (error) {
|
|
1644
|
+
console.warn("Failed to extract git metadata:", error);
|
|
1645
|
+
}
|
|
1646
|
+
return metadata;
|
|
1647
|
+
};
|
|
1648
|
+
const flattenObject = (obj, prefix, map) => {
|
|
1649
|
+
for (const [key2, value] of Object.entries(obj)) {
|
|
1650
|
+
if (!value)
|
|
1651
|
+
continue;
|
|
1652
|
+
const fullKey = prefix ? `${prefix}.${key2}` : key2;
|
|
1653
|
+
if (typeof value === "string") {
|
|
1654
|
+
map[fullKey] = value;
|
|
1655
|
+
} else if (Array.isArray(value)) {
|
|
1656
|
+
map[fullKey] = value.map((v) => String(v)).join(",");
|
|
1657
|
+
} else if (typeof value === "object") {
|
|
1658
|
+
flattenObject(value, fullKey, map);
|
|
1659
|
+
} else {
|
|
1660
|
+
map[fullKey] = String(value);
|
|
1661
|
+
}
|
|
1662
|
+
}
|
|
1663
|
+
};
|
|
1664
|
+
const findWorkspaceRoot = async (startPath) => {
|
|
1665
|
+
let currentPath = startPath;
|
|
1666
|
+
while (currentPath !== dirname(currentPath)) {
|
|
1667
|
+
const packageJsonPath = join(currentPath, "package.json");
|
|
1668
|
+
if (existsSync(packageJsonPath)) {
|
|
1669
|
+
try {
|
|
1670
|
+
const content = await readFile(packageJsonPath, "utf-8");
|
|
1671
|
+
const packageJson = JSON.parse(content);
|
|
1672
|
+
if (packageJson.workspaces || existsSync(join(currentPath, "pnpm-workspace.yaml")) || existsSync(join(currentPath, "lerna.json"))) {
|
|
1673
|
+
return currentPath;
|
|
1674
|
+
}
|
|
1675
|
+
} catch (error) {
|
|
1676
|
+
console.warn(`Failed to parse package.json at ${packageJsonPath}:`, error);
|
|
1677
|
+
}
|
|
1678
|
+
}
|
|
1679
|
+
currentPath = dirname(currentPath);
|
|
1680
|
+
}
|
|
1681
|
+
return void 0;
|
|
1682
|
+
};
|
|
1683
|
+
const mergePackageMetadata = async (parentMetadata, childMetadata, repositoryPath, checkWorkingDirectoryStatus) => {
|
|
1684
|
+
const metadata = await getGitMetadata(repositoryPath, checkWorkingDirectoryStatus);
|
|
1685
|
+
const merged = {};
|
|
1686
|
+
flattenObject(metadata, "", merged);
|
|
1687
|
+
for (const key2 in parentMetadata) {
|
|
1688
|
+
const value = parentMetadata[key2];
|
|
1689
|
+
if (value !== void 0) {
|
|
1690
|
+
merged[key2] = value;
|
|
1691
|
+
}
|
|
1692
|
+
}
|
|
1693
|
+
for (const key2 in childMetadata) {
|
|
1694
|
+
const value = childMetadata[key2];
|
|
1695
|
+
if (value !== void 0) {
|
|
1696
|
+
merged[key2] = value;
|
|
1697
|
+
}
|
|
1698
|
+
}
|
|
1699
|
+
return merged;
|
|
1700
|
+
};
|
|
1701
|
+
const mergeRawPackageJson = async (parentMetadata, childMetadata, parentSourceDir, childSourceDir, repositoryPath, checkWorkingDirectoryStatus, inheritableFields, sourceMap) => {
|
|
1702
|
+
const merged = await getGitMetadata(repositoryPath, checkWorkingDirectoryStatus);
|
|
1703
|
+
for (const key2 in parentMetadata) {
|
|
1704
|
+
if (inheritableFields.has(key2)) {
|
|
1705
|
+
const value = parentMetadata[key2];
|
|
1706
|
+
if (value !== void 0) {
|
|
1707
|
+
merged[key2] = value;
|
|
1708
|
+
sourceMap.set(key2, parentSourceDir);
|
|
1709
|
+
}
|
|
1710
|
+
}
|
|
1711
|
+
}
|
|
1712
|
+
for (const key2 in childMetadata) {
|
|
1713
|
+
const value = childMetadata[key2];
|
|
1714
|
+
if (value !== void 0) {
|
|
1715
|
+
merged[key2] = value;
|
|
1716
|
+
sourceMap.set(key2, childSourceDir);
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1719
|
+
return merged;
|
|
1720
|
+
};
|
|
1721
|
+
const resolvePackageMetadataT = async (projectRoot, checkWorkingDirectoryStatus, readPackageMetadataFn, mergePackageMetadataFn) => {
|
|
1722
|
+
const workspaceRoot = await findWorkspaceRoot(projectRoot);
|
|
1723
|
+
if (!workspaceRoot) {
|
|
1724
|
+
const localPackagePath = join(projectRoot, "package.json");
|
|
1725
|
+
const localMetadata = await readPackageMetadataFn(localPackagePath);
|
|
1726
|
+
return mergePackageMetadataFn(
|
|
1727
|
+
{},
|
|
1728
|
+
localMetadata,
|
|
1729
|
+
"",
|
|
1730
|
+
// dummy
|
|
1731
|
+
projectRoot,
|
|
1732
|
+
projectRoot,
|
|
1733
|
+
checkWorkingDirectoryStatus
|
|
1734
|
+
);
|
|
1735
|
+
}
|
|
1736
|
+
const projectPackagePath = join(projectRoot, "package.json");
|
|
1737
|
+
const rootPackagePath = join(workspaceRoot, "package.json");
|
|
1738
|
+
const metadata = await readPackageMetadataFn(rootPackagePath);
|
|
1739
|
+
if (projectPackagePath !== rootPackagePath && existsSync(projectPackagePath)) {
|
|
1740
|
+
const projectMetadata = await readPackageMetadataFn(projectPackagePath);
|
|
1741
|
+
return mergePackageMetadataFn(
|
|
1742
|
+
metadata,
|
|
1743
|
+
projectMetadata,
|
|
1744
|
+
workspaceRoot,
|
|
1745
|
+
projectRoot,
|
|
1746
|
+
projectRoot,
|
|
1747
|
+
checkWorkingDirectoryStatus
|
|
1748
|
+
);
|
|
1749
|
+
} else {
|
|
1750
|
+
return mergePackageMetadataFn(
|
|
1751
|
+
{},
|
|
1752
|
+
metadata,
|
|
1753
|
+
"",
|
|
1754
|
+
// dummy
|
|
1755
|
+
workspaceRoot,
|
|
1756
|
+
projectRoot,
|
|
1757
|
+
checkWorkingDirectoryStatus
|
|
1758
|
+
);
|
|
1759
|
+
}
|
|
1760
|
+
};
|
|
1761
|
+
const readPackageMetadata = async (packagePath) => {
|
|
1762
|
+
try {
|
|
1763
|
+
const content = await readFile(packagePath, "utf-8");
|
|
1764
|
+
const json = lib.parse(content);
|
|
1765
|
+
const map = {};
|
|
1766
|
+
flattenObject(json, "", map);
|
|
1767
|
+
return map;
|
|
1768
|
+
} catch (error) {
|
|
1769
|
+
console.error(`Failed to read package.json from ${packagePath}:`, error);
|
|
1770
|
+
return {};
|
|
1771
|
+
}
|
|
1772
|
+
};
|
|
1773
|
+
const resolvePackageMetadata = (projectRoot, checkWorkingDirectoryStatus) => {
|
|
1774
|
+
return resolvePackageMetadataT(
|
|
1775
|
+
projectRoot,
|
|
1776
|
+
checkWorkingDirectoryStatus,
|
|
1777
|
+
readPackageMetadata,
|
|
1778
|
+
(parentMetadata, childMetadata, _parentDir, _childDir, repositoryPath, checkWorkingDirectoryStatus2) => mergePackageMetadata(parentMetadata, childMetadata, repositoryPath, checkWorkingDirectoryStatus2)
|
|
1779
|
+
);
|
|
1780
|
+
};
|
|
1781
|
+
const readRawPackageJson = async (packagePath) => {
|
|
1782
|
+
try {
|
|
1783
|
+
const content = await readFile(packagePath, "utf-8");
|
|
1784
|
+
return lib.parse(content);
|
|
1785
|
+
} catch (error) {
|
|
1786
|
+
console.error(`Failed to read package.json from ${packagePath}:`, error);
|
|
1787
|
+
throw error;
|
|
1788
|
+
}
|
|
1789
|
+
};
|
|
1790
|
+
const resolveRawPackageJsonObject = async (projectRoot, checkWorkingDirectoryStatus, inheritableFields) => {
|
|
1791
|
+
const sourceMap = /* @__PURE__ */ new Map();
|
|
1792
|
+
const packageJson = await resolvePackageMetadataT(
|
|
1793
|
+
projectRoot,
|
|
1794
|
+
checkWorkingDirectoryStatus,
|
|
1795
|
+
readRawPackageJson,
|
|
1796
|
+
(parentMetadata, childMetadata, parentSourceDir, childSourceDir, repositoryPath, checkWorkingDirectoryStatus2) => mergeRawPackageJson(
|
|
1797
|
+
parentMetadata,
|
|
1798
|
+
childMetadata,
|
|
1799
|
+
parentSourceDir,
|
|
1800
|
+
childSourceDir,
|
|
1801
|
+
repositoryPath,
|
|
1802
|
+
checkWorkingDirectoryStatus2,
|
|
1803
|
+
inheritableFields,
|
|
1804
|
+
sourceMap
|
|
1805
|
+
)
|
|
1806
|
+
);
|
|
1807
|
+
return {
|
|
1808
|
+
packageJson,
|
|
1809
|
+
sourceMap
|
|
1810
|
+
};
|
|
1811
|
+
};
|
|
1812
|
+
export {
|
|
1813
|
+
resolveRawPackageJsonObject as a,
|
|
1814
|
+
resolvePackageMetadata as r
|
|
1815
|
+
};
|
|
1816
|
+
//# sourceMappingURL=internal-CzKyZ9wb.js.map
|