screw-up 1.26.0 → 1.27.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/index.cjs +3014 -1096
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +770 -1113
- package/dist/index.mjs.map +1 -1
- package/dist/main.cjs +3745 -1565
- package/dist/main.cjs.map +1 -1
- package/dist/main.mjs +1202 -1508
- package/dist/main.mjs.map +1 -1
- package/dist/metadata-file-Djz8vanJ.js +2514 -0
- package/dist/metadata-file-Djz8vanJ.js.map +1 -0
- package/dist/packageMetadata-B3dAY9Pw.js +29 -0
- package/dist/packageMetadata-B3dAY9Pw.js.map +1 -0
- package/dist/packageMetadata-BZlXZqjz.cjs +15 -0
- package/dist/packageMetadata-BwJnVnNu.cjs +55 -0
- package/dist/packageMetadata-BwJnVnNu.cjs.map +1 -0
- package/dist/src/analyzer.d.ts +38 -0
- package/dist/src/analyzer.d.ts.map +1 -0
- package/dist/src/cli-internal.d.ts +62 -0
- package/dist/src/cli-internal.d.ts.map +1 -0
- package/dist/src/cli.d.ts +13 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/default-import-fix.d.ts +22 -0
- package/dist/src/default-import-fix.d.ts.map +1 -0
- package/dist/src/fast-tags.d.ts +42 -0
- package/dist/src/fast-tags.d.ts.map +1 -0
- package/dist/src/generated/packageMetadata.d.ts +18 -0
- package/dist/src/generated/packageMetadata.d.ts.map +1 -0
- package/dist/src/git-operations.d.ts +69 -0
- package/dist/src/git-operations.d.ts.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/internal.d.ts +115 -0
- package/dist/src/internal.d.ts.map +1 -0
- package/dist/{main.d.ts → src/main.d.ts} +5 -3
- package/dist/src/main.d.ts.map +1 -0
- package/dist/src/metadata-file.d.ts +22 -0
- package/dist/src/metadata-file.d.ts.map +1 -0
- package/dist/{index.d.ts → src/types.d.ts} +72 -85
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/vite-plugin.d.ts +26 -0
- package/dist/src/vite-plugin.d.ts.map +1 -0
- package/package.json +19 -19
- package/dist/metadata-file-6Y1AngPB.cjs +0 -2358
- package/dist/metadata-file-6Y1AngPB.cjs.map +0 -1
- package/dist/metadata-file-B4RbKbol.js +0 -2343
- package/dist/metadata-file-B4RbKbol.js.map +0 -1
|
@@ -1,2343 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* name: screw-up
|
|
3
|
-
* version: 1.26.0
|
|
4
|
-
* description: Simply package metadata inserter on Vite plugin
|
|
5
|
-
* author: Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
6
|
-
* license: MIT
|
|
7
|
-
* repository.url: https://github.com/kekyo/screw-up.git
|
|
8
|
-
* git.commit.hash: 482a79d9b3fc68a60c1b8696b7d95a776b91468e
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { existsSync } from "fs";
|
|
12
|
-
import fs, { readFile, stat, readdir, mkdir, writeFile } from "fs/promises";
|
|
13
|
-
import { dirname, join, isAbsolute, basename } from "path";
|
|
14
|
-
import { glob } from "glob";
|
|
15
|
-
import * as git from "isomorphic-git";
|
|
16
|
-
import git__default from "isomorphic-git";
|
|
17
|
-
const name = "screw-up";
|
|
18
|
-
const version = "1.26.0";
|
|
19
|
-
const author = "Kouji Matsui (@kekyo@mi.kekyo.net)";
|
|
20
|
-
const license = "MIT";
|
|
21
|
-
const repository_url = "https://github.com/kekyo/screw-up.git";
|
|
22
|
-
const git_commit_hash = "482a79d9b3fc68a60c1b8696b7d95a776b91468e";
|
|
23
|
-
const packageMetadata = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
24
|
-
__proto__: null,
|
|
25
|
-
author,
|
|
26
|
-
git_commit_hash,
|
|
27
|
-
license,
|
|
28
|
-
name,
|
|
29
|
-
repository_url,
|
|
30
|
-
version
|
|
31
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
32
|
-
var Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
|
|
33
|
-
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]/;
|
|
34
|
-
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]/;
|
|
35
|
-
var unicode = {
|
|
36
|
-
Space_Separator,
|
|
37
|
-
ID_Start,
|
|
38
|
-
ID_Continue
|
|
39
|
-
};
|
|
40
|
-
var util = {
|
|
41
|
-
isSpaceSeparator(c2) {
|
|
42
|
-
return typeof c2 === "string" && unicode.Space_Separator.test(c2);
|
|
43
|
-
},
|
|
44
|
-
isIdStartChar(c2) {
|
|
45
|
-
return typeof c2 === "string" && (c2 >= "a" && c2 <= "z" || c2 >= "A" && c2 <= "Z" || c2 === "$" || c2 === "_" || unicode.ID_Start.test(c2));
|
|
46
|
-
},
|
|
47
|
-
isIdContinueChar(c2) {
|
|
48
|
-
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));
|
|
49
|
-
},
|
|
50
|
-
isDigit(c2) {
|
|
51
|
-
return typeof c2 === "string" && /[0-9]/.test(c2);
|
|
52
|
-
},
|
|
53
|
-
isHexDigit(c2) {
|
|
54
|
-
return typeof c2 === "string" && /[0-9A-Fa-f]/.test(c2);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
let source;
|
|
58
|
-
let parseState;
|
|
59
|
-
let stack;
|
|
60
|
-
let pos;
|
|
61
|
-
let line;
|
|
62
|
-
let column;
|
|
63
|
-
let token;
|
|
64
|
-
let key;
|
|
65
|
-
let root;
|
|
66
|
-
var parse = function parse2(text, reviver) {
|
|
67
|
-
source = String(text);
|
|
68
|
-
parseState = "start";
|
|
69
|
-
stack = [];
|
|
70
|
-
pos = 0;
|
|
71
|
-
line = 1;
|
|
72
|
-
column = 0;
|
|
73
|
-
token = void 0;
|
|
74
|
-
key = void 0;
|
|
75
|
-
root = void 0;
|
|
76
|
-
do {
|
|
77
|
-
token = lex();
|
|
78
|
-
parseStates[parseState]();
|
|
79
|
-
} while (token.type !== "eof");
|
|
80
|
-
if (typeof reviver === "function") {
|
|
81
|
-
return internalize({ "": root }, "", reviver);
|
|
82
|
-
}
|
|
83
|
-
return root;
|
|
84
|
-
};
|
|
85
|
-
function internalize(holder, name2, reviver) {
|
|
86
|
-
const value = holder[name2];
|
|
87
|
-
if (value != null && typeof value === "object") {
|
|
88
|
-
if (Array.isArray(value)) {
|
|
89
|
-
for (let i = 0; i < value.length; i++) {
|
|
90
|
-
const key2 = String(i);
|
|
91
|
-
const replacement = internalize(value, key2, reviver);
|
|
92
|
-
if (replacement === void 0) {
|
|
93
|
-
delete value[key2];
|
|
94
|
-
} else {
|
|
95
|
-
Object.defineProperty(value, key2, {
|
|
96
|
-
value: replacement,
|
|
97
|
-
writable: true,
|
|
98
|
-
enumerable: true,
|
|
99
|
-
configurable: true
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
} else {
|
|
104
|
-
for (const key2 in value) {
|
|
105
|
-
const replacement = internalize(value, key2, reviver);
|
|
106
|
-
if (replacement === void 0) {
|
|
107
|
-
delete value[key2];
|
|
108
|
-
} else {
|
|
109
|
-
Object.defineProperty(value, key2, {
|
|
110
|
-
value: replacement,
|
|
111
|
-
writable: true,
|
|
112
|
-
enumerable: true,
|
|
113
|
-
configurable: true
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return reviver.call(holder, name2, value);
|
|
120
|
-
}
|
|
121
|
-
let lexState;
|
|
122
|
-
let buffer;
|
|
123
|
-
let doubleQuote;
|
|
124
|
-
let sign;
|
|
125
|
-
let c;
|
|
126
|
-
function lex() {
|
|
127
|
-
lexState = "default";
|
|
128
|
-
buffer = "";
|
|
129
|
-
doubleQuote = false;
|
|
130
|
-
sign = 1;
|
|
131
|
-
for (; ; ) {
|
|
132
|
-
c = peek();
|
|
133
|
-
const token2 = lexStates[lexState]();
|
|
134
|
-
if (token2) {
|
|
135
|
-
return token2;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
function peek() {
|
|
140
|
-
if (source[pos]) {
|
|
141
|
-
return String.fromCodePoint(source.codePointAt(pos));
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
function read() {
|
|
145
|
-
const c2 = peek();
|
|
146
|
-
if (c2 === "\n") {
|
|
147
|
-
line++;
|
|
148
|
-
column = 0;
|
|
149
|
-
} else if (c2) {
|
|
150
|
-
column += c2.length;
|
|
151
|
-
} else {
|
|
152
|
-
column++;
|
|
153
|
-
}
|
|
154
|
-
if (c2) {
|
|
155
|
-
pos += c2.length;
|
|
156
|
-
}
|
|
157
|
-
return c2;
|
|
158
|
-
}
|
|
159
|
-
const lexStates = {
|
|
160
|
-
default() {
|
|
161
|
-
switch (c) {
|
|
162
|
-
case " ":
|
|
163
|
-
case "\v":
|
|
164
|
-
case "\f":
|
|
165
|
-
case " ":
|
|
166
|
-
case " ":
|
|
167
|
-
case "\uFEFF":
|
|
168
|
-
case "\n":
|
|
169
|
-
case "\r":
|
|
170
|
-
case "\u2028":
|
|
171
|
-
case "\u2029":
|
|
172
|
-
read();
|
|
173
|
-
return;
|
|
174
|
-
case "/":
|
|
175
|
-
read();
|
|
176
|
-
lexState = "comment";
|
|
177
|
-
return;
|
|
178
|
-
case void 0:
|
|
179
|
-
read();
|
|
180
|
-
return newToken("eof");
|
|
181
|
-
}
|
|
182
|
-
if (util.isSpaceSeparator(c)) {
|
|
183
|
-
read();
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
return lexStates[parseState]();
|
|
187
|
-
},
|
|
188
|
-
comment() {
|
|
189
|
-
switch (c) {
|
|
190
|
-
case "*":
|
|
191
|
-
read();
|
|
192
|
-
lexState = "multiLineComment";
|
|
193
|
-
return;
|
|
194
|
-
case "/":
|
|
195
|
-
read();
|
|
196
|
-
lexState = "singleLineComment";
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
throw invalidChar(read());
|
|
200
|
-
},
|
|
201
|
-
multiLineComment() {
|
|
202
|
-
switch (c) {
|
|
203
|
-
case "*":
|
|
204
|
-
read();
|
|
205
|
-
lexState = "multiLineCommentAsterisk";
|
|
206
|
-
return;
|
|
207
|
-
case void 0:
|
|
208
|
-
throw invalidChar(read());
|
|
209
|
-
}
|
|
210
|
-
read();
|
|
211
|
-
},
|
|
212
|
-
multiLineCommentAsterisk() {
|
|
213
|
-
switch (c) {
|
|
214
|
-
case "*":
|
|
215
|
-
read();
|
|
216
|
-
return;
|
|
217
|
-
case "/":
|
|
218
|
-
read();
|
|
219
|
-
lexState = "default";
|
|
220
|
-
return;
|
|
221
|
-
case void 0:
|
|
222
|
-
throw invalidChar(read());
|
|
223
|
-
}
|
|
224
|
-
read();
|
|
225
|
-
lexState = "multiLineComment";
|
|
226
|
-
},
|
|
227
|
-
singleLineComment() {
|
|
228
|
-
switch (c) {
|
|
229
|
-
case "\n":
|
|
230
|
-
case "\r":
|
|
231
|
-
case "\u2028":
|
|
232
|
-
case "\u2029":
|
|
233
|
-
read();
|
|
234
|
-
lexState = "default";
|
|
235
|
-
return;
|
|
236
|
-
case void 0:
|
|
237
|
-
read();
|
|
238
|
-
return newToken("eof");
|
|
239
|
-
}
|
|
240
|
-
read();
|
|
241
|
-
},
|
|
242
|
-
value() {
|
|
243
|
-
switch (c) {
|
|
244
|
-
case "{":
|
|
245
|
-
case "[":
|
|
246
|
-
return newToken("punctuator", read());
|
|
247
|
-
case "n":
|
|
248
|
-
read();
|
|
249
|
-
literal("ull");
|
|
250
|
-
return newToken("null", null);
|
|
251
|
-
case "t":
|
|
252
|
-
read();
|
|
253
|
-
literal("rue");
|
|
254
|
-
return newToken("boolean", true);
|
|
255
|
-
case "f":
|
|
256
|
-
read();
|
|
257
|
-
literal("alse");
|
|
258
|
-
return newToken("boolean", false);
|
|
259
|
-
case "-":
|
|
260
|
-
case "+":
|
|
261
|
-
if (read() === "-") {
|
|
262
|
-
sign = -1;
|
|
263
|
-
}
|
|
264
|
-
lexState = "sign";
|
|
265
|
-
return;
|
|
266
|
-
case ".":
|
|
267
|
-
buffer = read();
|
|
268
|
-
lexState = "decimalPointLeading";
|
|
269
|
-
return;
|
|
270
|
-
case "0":
|
|
271
|
-
buffer = read();
|
|
272
|
-
lexState = "zero";
|
|
273
|
-
return;
|
|
274
|
-
case "1":
|
|
275
|
-
case "2":
|
|
276
|
-
case "3":
|
|
277
|
-
case "4":
|
|
278
|
-
case "5":
|
|
279
|
-
case "6":
|
|
280
|
-
case "7":
|
|
281
|
-
case "8":
|
|
282
|
-
case "9":
|
|
283
|
-
buffer = read();
|
|
284
|
-
lexState = "decimalInteger";
|
|
285
|
-
return;
|
|
286
|
-
case "I":
|
|
287
|
-
read();
|
|
288
|
-
literal("nfinity");
|
|
289
|
-
return newToken("numeric", Infinity);
|
|
290
|
-
case "N":
|
|
291
|
-
read();
|
|
292
|
-
literal("aN");
|
|
293
|
-
return newToken("numeric", NaN);
|
|
294
|
-
case '"':
|
|
295
|
-
case "'":
|
|
296
|
-
doubleQuote = read() === '"';
|
|
297
|
-
buffer = "";
|
|
298
|
-
lexState = "string";
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
throw invalidChar(read());
|
|
302
|
-
},
|
|
303
|
-
identifierNameStartEscape() {
|
|
304
|
-
if (c !== "u") {
|
|
305
|
-
throw invalidChar(read());
|
|
306
|
-
}
|
|
307
|
-
read();
|
|
308
|
-
const u = unicodeEscape();
|
|
309
|
-
switch (u) {
|
|
310
|
-
case "$":
|
|
311
|
-
case "_":
|
|
312
|
-
break;
|
|
313
|
-
default:
|
|
314
|
-
if (!util.isIdStartChar(u)) {
|
|
315
|
-
throw invalidIdentifier();
|
|
316
|
-
}
|
|
317
|
-
break;
|
|
318
|
-
}
|
|
319
|
-
buffer += u;
|
|
320
|
-
lexState = "identifierName";
|
|
321
|
-
},
|
|
322
|
-
identifierName() {
|
|
323
|
-
switch (c) {
|
|
324
|
-
case "$":
|
|
325
|
-
case "_":
|
|
326
|
-
case "":
|
|
327
|
-
case "":
|
|
328
|
-
buffer += read();
|
|
329
|
-
return;
|
|
330
|
-
case "\\":
|
|
331
|
-
read();
|
|
332
|
-
lexState = "identifierNameEscape";
|
|
333
|
-
return;
|
|
334
|
-
}
|
|
335
|
-
if (util.isIdContinueChar(c)) {
|
|
336
|
-
buffer += read();
|
|
337
|
-
return;
|
|
338
|
-
}
|
|
339
|
-
return newToken("identifier", buffer);
|
|
340
|
-
},
|
|
341
|
-
identifierNameEscape() {
|
|
342
|
-
if (c !== "u") {
|
|
343
|
-
throw invalidChar(read());
|
|
344
|
-
}
|
|
345
|
-
read();
|
|
346
|
-
const u = unicodeEscape();
|
|
347
|
-
switch (u) {
|
|
348
|
-
case "$":
|
|
349
|
-
case "_":
|
|
350
|
-
case "":
|
|
351
|
-
case "":
|
|
352
|
-
break;
|
|
353
|
-
default:
|
|
354
|
-
if (!util.isIdContinueChar(u)) {
|
|
355
|
-
throw invalidIdentifier();
|
|
356
|
-
}
|
|
357
|
-
break;
|
|
358
|
-
}
|
|
359
|
-
buffer += u;
|
|
360
|
-
lexState = "identifierName";
|
|
361
|
-
},
|
|
362
|
-
sign() {
|
|
363
|
-
switch (c) {
|
|
364
|
-
case ".":
|
|
365
|
-
buffer = read();
|
|
366
|
-
lexState = "decimalPointLeading";
|
|
367
|
-
return;
|
|
368
|
-
case "0":
|
|
369
|
-
buffer = read();
|
|
370
|
-
lexState = "zero";
|
|
371
|
-
return;
|
|
372
|
-
case "1":
|
|
373
|
-
case "2":
|
|
374
|
-
case "3":
|
|
375
|
-
case "4":
|
|
376
|
-
case "5":
|
|
377
|
-
case "6":
|
|
378
|
-
case "7":
|
|
379
|
-
case "8":
|
|
380
|
-
case "9":
|
|
381
|
-
buffer = read();
|
|
382
|
-
lexState = "decimalInteger";
|
|
383
|
-
return;
|
|
384
|
-
case "I":
|
|
385
|
-
read();
|
|
386
|
-
literal("nfinity");
|
|
387
|
-
return newToken("numeric", sign * Infinity);
|
|
388
|
-
case "N":
|
|
389
|
-
read();
|
|
390
|
-
literal("aN");
|
|
391
|
-
return newToken("numeric", NaN);
|
|
392
|
-
}
|
|
393
|
-
throw invalidChar(read());
|
|
394
|
-
},
|
|
395
|
-
zero() {
|
|
396
|
-
switch (c) {
|
|
397
|
-
case ".":
|
|
398
|
-
buffer += read();
|
|
399
|
-
lexState = "decimalPoint";
|
|
400
|
-
return;
|
|
401
|
-
case "e":
|
|
402
|
-
case "E":
|
|
403
|
-
buffer += read();
|
|
404
|
-
lexState = "decimalExponent";
|
|
405
|
-
return;
|
|
406
|
-
case "x":
|
|
407
|
-
case "X":
|
|
408
|
-
buffer += read();
|
|
409
|
-
lexState = "hexadecimal";
|
|
410
|
-
return;
|
|
411
|
-
}
|
|
412
|
-
return newToken("numeric", sign * 0);
|
|
413
|
-
},
|
|
414
|
-
decimalInteger() {
|
|
415
|
-
switch (c) {
|
|
416
|
-
case ".":
|
|
417
|
-
buffer += read();
|
|
418
|
-
lexState = "decimalPoint";
|
|
419
|
-
return;
|
|
420
|
-
case "e":
|
|
421
|
-
case "E":
|
|
422
|
-
buffer += read();
|
|
423
|
-
lexState = "decimalExponent";
|
|
424
|
-
return;
|
|
425
|
-
}
|
|
426
|
-
if (util.isDigit(c)) {
|
|
427
|
-
buffer += read();
|
|
428
|
-
return;
|
|
429
|
-
}
|
|
430
|
-
return newToken("numeric", sign * Number(buffer));
|
|
431
|
-
},
|
|
432
|
-
decimalPointLeading() {
|
|
433
|
-
if (util.isDigit(c)) {
|
|
434
|
-
buffer += read();
|
|
435
|
-
lexState = "decimalFraction";
|
|
436
|
-
return;
|
|
437
|
-
}
|
|
438
|
-
throw invalidChar(read());
|
|
439
|
-
},
|
|
440
|
-
decimalPoint() {
|
|
441
|
-
switch (c) {
|
|
442
|
-
case "e":
|
|
443
|
-
case "E":
|
|
444
|
-
buffer += read();
|
|
445
|
-
lexState = "decimalExponent";
|
|
446
|
-
return;
|
|
447
|
-
}
|
|
448
|
-
if (util.isDigit(c)) {
|
|
449
|
-
buffer += read();
|
|
450
|
-
lexState = "decimalFraction";
|
|
451
|
-
return;
|
|
452
|
-
}
|
|
453
|
-
return newToken("numeric", sign * Number(buffer));
|
|
454
|
-
},
|
|
455
|
-
decimalFraction() {
|
|
456
|
-
switch (c) {
|
|
457
|
-
case "e":
|
|
458
|
-
case "E":
|
|
459
|
-
buffer += read();
|
|
460
|
-
lexState = "decimalExponent";
|
|
461
|
-
return;
|
|
462
|
-
}
|
|
463
|
-
if (util.isDigit(c)) {
|
|
464
|
-
buffer += read();
|
|
465
|
-
return;
|
|
466
|
-
}
|
|
467
|
-
return newToken("numeric", sign * Number(buffer));
|
|
468
|
-
},
|
|
469
|
-
decimalExponent() {
|
|
470
|
-
switch (c) {
|
|
471
|
-
case "+":
|
|
472
|
-
case "-":
|
|
473
|
-
buffer += read();
|
|
474
|
-
lexState = "decimalExponentSign";
|
|
475
|
-
return;
|
|
476
|
-
}
|
|
477
|
-
if (util.isDigit(c)) {
|
|
478
|
-
buffer += read();
|
|
479
|
-
lexState = "decimalExponentInteger";
|
|
480
|
-
return;
|
|
481
|
-
}
|
|
482
|
-
throw invalidChar(read());
|
|
483
|
-
},
|
|
484
|
-
decimalExponentSign() {
|
|
485
|
-
if (util.isDigit(c)) {
|
|
486
|
-
buffer += read();
|
|
487
|
-
lexState = "decimalExponentInteger";
|
|
488
|
-
return;
|
|
489
|
-
}
|
|
490
|
-
throw invalidChar(read());
|
|
491
|
-
},
|
|
492
|
-
decimalExponentInteger() {
|
|
493
|
-
if (util.isDigit(c)) {
|
|
494
|
-
buffer += read();
|
|
495
|
-
return;
|
|
496
|
-
}
|
|
497
|
-
return newToken("numeric", sign * Number(buffer));
|
|
498
|
-
},
|
|
499
|
-
hexadecimal() {
|
|
500
|
-
if (util.isHexDigit(c)) {
|
|
501
|
-
buffer += read();
|
|
502
|
-
lexState = "hexadecimalInteger";
|
|
503
|
-
return;
|
|
504
|
-
}
|
|
505
|
-
throw invalidChar(read());
|
|
506
|
-
},
|
|
507
|
-
hexadecimalInteger() {
|
|
508
|
-
if (util.isHexDigit(c)) {
|
|
509
|
-
buffer += read();
|
|
510
|
-
return;
|
|
511
|
-
}
|
|
512
|
-
return newToken("numeric", sign * Number(buffer));
|
|
513
|
-
},
|
|
514
|
-
string() {
|
|
515
|
-
switch (c) {
|
|
516
|
-
case "\\":
|
|
517
|
-
read();
|
|
518
|
-
buffer += escape();
|
|
519
|
-
return;
|
|
520
|
-
case '"':
|
|
521
|
-
if (doubleQuote) {
|
|
522
|
-
read();
|
|
523
|
-
return newToken("string", buffer);
|
|
524
|
-
}
|
|
525
|
-
buffer += read();
|
|
526
|
-
return;
|
|
527
|
-
case "'":
|
|
528
|
-
if (!doubleQuote) {
|
|
529
|
-
read();
|
|
530
|
-
return newToken("string", buffer);
|
|
531
|
-
}
|
|
532
|
-
buffer += read();
|
|
533
|
-
return;
|
|
534
|
-
case "\n":
|
|
535
|
-
case "\r":
|
|
536
|
-
throw invalidChar(read());
|
|
537
|
-
case "\u2028":
|
|
538
|
-
case "\u2029":
|
|
539
|
-
separatorChar(c);
|
|
540
|
-
break;
|
|
541
|
-
case void 0:
|
|
542
|
-
throw invalidChar(read());
|
|
543
|
-
}
|
|
544
|
-
buffer += read();
|
|
545
|
-
},
|
|
546
|
-
start() {
|
|
547
|
-
switch (c) {
|
|
548
|
-
case "{":
|
|
549
|
-
case "[":
|
|
550
|
-
return newToken("punctuator", read());
|
|
551
|
-
}
|
|
552
|
-
lexState = "value";
|
|
553
|
-
},
|
|
554
|
-
beforePropertyName() {
|
|
555
|
-
switch (c) {
|
|
556
|
-
case "$":
|
|
557
|
-
case "_":
|
|
558
|
-
buffer = read();
|
|
559
|
-
lexState = "identifierName";
|
|
560
|
-
return;
|
|
561
|
-
case "\\":
|
|
562
|
-
read();
|
|
563
|
-
lexState = "identifierNameStartEscape";
|
|
564
|
-
return;
|
|
565
|
-
case "}":
|
|
566
|
-
return newToken("punctuator", read());
|
|
567
|
-
case '"':
|
|
568
|
-
case "'":
|
|
569
|
-
doubleQuote = read() === '"';
|
|
570
|
-
lexState = "string";
|
|
571
|
-
return;
|
|
572
|
-
}
|
|
573
|
-
if (util.isIdStartChar(c)) {
|
|
574
|
-
buffer += read();
|
|
575
|
-
lexState = "identifierName";
|
|
576
|
-
return;
|
|
577
|
-
}
|
|
578
|
-
throw invalidChar(read());
|
|
579
|
-
},
|
|
580
|
-
afterPropertyName() {
|
|
581
|
-
if (c === ":") {
|
|
582
|
-
return newToken("punctuator", read());
|
|
583
|
-
}
|
|
584
|
-
throw invalidChar(read());
|
|
585
|
-
},
|
|
586
|
-
beforePropertyValue() {
|
|
587
|
-
lexState = "value";
|
|
588
|
-
},
|
|
589
|
-
afterPropertyValue() {
|
|
590
|
-
switch (c) {
|
|
591
|
-
case ",":
|
|
592
|
-
case "}":
|
|
593
|
-
return newToken("punctuator", read());
|
|
594
|
-
}
|
|
595
|
-
throw invalidChar(read());
|
|
596
|
-
},
|
|
597
|
-
beforeArrayValue() {
|
|
598
|
-
if (c === "]") {
|
|
599
|
-
return newToken("punctuator", read());
|
|
600
|
-
}
|
|
601
|
-
lexState = "value";
|
|
602
|
-
},
|
|
603
|
-
afterArrayValue() {
|
|
604
|
-
switch (c) {
|
|
605
|
-
case ",":
|
|
606
|
-
case "]":
|
|
607
|
-
return newToken("punctuator", read());
|
|
608
|
-
}
|
|
609
|
-
throw invalidChar(read());
|
|
610
|
-
},
|
|
611
|
-
end() {
|
|
612
|
-
throw invalidChar(read());
|
|
613
|
-
}
|
|
614
|
-
};
|
|
615
|
-
function newToken(type, value) {
|
|
616
|
-
return {
|
|
617
|
-
type,
|
|
618
|
-
value,
|
|
619
|
-
line,
|
|
620
|
-
column
|
|
621
|
-
};
|
|
622
|
-
}
|
|
623
|
-
function literal(s) {
|
|
624
|
-
for (const c2 of s) {
|
|
625
|
-
const p = peek();
|
|
626
|
-
if (p !== c2) {
|
|
627
|
-
throw invalidChar(read());
|
|
628
|
-
}
|
|
629
|
-
read();
|
|
630
|
-
}
|
|
631
|
-
}
|
|
632
|
-
function escape() {
|
|
633
|
-
const c2 = peek();
|
|
634
|
-
switch (c2) {
|
|
635
|
-
case "b":
|
|
636
|
-
read();
|
|
637
|
-
return "\b";
|
|
638
|
-
case "f":
|
|
639
|
-
read();
|
|
640
|
-
return "\f";
|
|
641
|
-
case "n":
|
|
642
|
-
read();
|
|
643
|
-
return "\n";
|
|
644
|
-
case "r":
|
|
645
|
-
read();
|
|
646
|
-
return "\r";
|
|
647
|
-
case "t":
|
|
648
|
-
read();
|
|
649
|
-
return " ";
|
|
650
|
-
case "v":
|
|
651
|
-
read();
|
|
652
|
-
return "\v";
|
|
653
|
-
case "0":
|
|
654
|
-
read();
|
|
655
|
-
if (util.isDigit(peek())) {
|
|
656
|
-
throw invalidChar(read());
|
|
657
|
-
}
|
|
658
|
-
return "\0";
|
|
659
|
-
case "x":
|
|
660
|
-
read();
|
|
661
|
-
return hexEscape();
|
|
662
|
-
case "u":
|
|
663
|
-
read();
|
|
664
|
-
return unicodeEscape();
|
|
665
|
-
case "\n":
|
|
666
|
-
case "\u2028":
|
|
667
|
-
case "\u2029":
|
|
668
|
-
read();
|
|
669
|
-
return "";
|
|
670
|
-
case "\r":
|
|
671
|
-
read();
|
|
672
|
-
if (peek() === "\n") {
|
|
673
|
-
read();
|
|
674
|
-
}
|
|
675
|
-
return "";
|
|
676
|
-
case "1":
|
|
677
|
-
case "2":
|
|
678
|
-
case "3":
|
|
679
|
-
case "4":
|
|
680
|
-
case "5":
|
|
681
|
-
case "6":
|
|
682
|
-
case "7":
|
|
683
|
-
case "8":
|
|
684
|
-
case "9":
|
|
685
|
-
throw invalidChar(read());
|
|
686
|
-
case void 0:
|
|
687
|
-
throw invalidChar(read());
|
|
688
|
-
}
|
|
689
|
-
return read();
|
|
690
|
-
}
|
|
691
|
-
function hexEscape() {
|
|
692
|
-
let buffer2 = "";
|
|
693
|
-
let c2 = peek();
|
|
694
|
-
if (!util.isHexDigit(c2)) {
|
|
695
|
-
throw invalidChar(read());
|
|
696
|
-
}
|
|
697
|
-
buffer2 += read();
|
|
698
|
-
c2 = peek();
|
|
699
|
-
if (!util.isHexDigit(c2)) {
|
|
700
|
-
throw invalidChar(read());
|
|
701
|
-
}
|
|
702
|
-
buffer2 += read();
|
|
703
|
-
return String.fromCodePoint(parseInt(buffer2, 16));
|
|
704
|
-
}
|
|
705
|
-
function unicodeEscape() {
|
|
706
|
-
let buffer2 = "";
|
|
707
|
-
let count = 4;
|
|
708
|
-
while (count-- > 0) {
|
|
709
|
-
const c2 = peek();
|
|
710
|
-
if (!util.isHexDigit(c2)) {
|
|
711
|
-
throw invalidChar(read());
|
|
712
|
-
}
|
|
713
|
-
buffer2 += read();
|
|
714
|
-
}
|
|
715
|
-
return String.fromCodePoint(parseInt(buffer2, 16));
|
|
716
|
-
}
|
|
717
|
-
const parseStates = {
|
|
718
|
-
start() {
|
|
719
|
-
if (token.type === "eof") {
|
|
720
|
-
throw invalidEOF();
|
|
721
|
-
}
|
|
722
|
-
push();
|
|
723
|
-
},
|
|
724
|
-
beforePropertyName() {
|
|
725
|
-
switch (token.type) {
|
|
726
|
-
case "identifier":
|
|
727
|
-
case "string":
|
|
728
|
-
key = token.value;
|
|
729
|
-
parseState = "afterPropertyName";
|
|
730
|
-
return;
|
|
731
|
-
case "punctuator":
|
|
732
|
-
pop();
|
|
733
|
-
return;
|
|
734
|
-
case "eof":
|
|
735
|
-
throw invalidEOF();
|
|
736
|
-
}
|
|
737
|
-
},
|
|
738
|
-
afterPropertyName() {
|
|
739
|
-
if (token.type === "eof") {
|
|
740
|
-
throw invalidEOF();
|
|
741
|
-
}
|
|
742
|
-
parseState = "beforePropertyValue";
|
|
743
|
-
},
|
|
744
|
-
beforePropertyValue() {
|
|
745
|
-
if (token.type === "eof") {
|
|
746
|
-
throw invalidEOF();
|
|
747
|
-
}
|
|
748
|
-
push();
|
|
749
|
-
},
|
|
750
|
-
beforeArrayValue() {
|
|
751
|
-
if (token.type === "eof") {
|
|
752
|
-
throw invalidEOF();
|
|
753
|
-
}
|
|
754
|
-
if (token.type === "punctuator" && token.value === "]") {
|
|
755
|
-
pop();
|
|
756
|
-
return;
|
|
757
|
-
}
|
|
758
|
-
push();
|
|
759
|
-
},
|
|
760
|
-
afterPropertyValue() {
|
|
761
|
-
if (token.type === "eof") {
|
|
762
|
-
throw invalidEOF();
|
|
763
|
-
}
|
|
764
|
-
switch (token.value) {
|
|
765
|
-
case ",":
|
|
766
|
-
parseState = "beforePropertyName";
|
|
767
|
-
return;
|
|
768
|
-
case "}":
|
|
769
|
-
pop();
|
|
770
|
-
}
|
|
771
|
-
},
|
|
772
|
-
afterArrayValue() {
|
|
773
|
-
if (token.type === "eof") {
|
|
774
|
-
throw invalidEOF();
|
|
775
|
-
}
|
|
776
|
-
switch (token.value) {
|
|
777
|
-
case ",":
|
|
778
|
-
parseState = "beforeArrayValue";
|
|
779
|
-
return;
|
|
780
|
-
case "]":
|
|
781
|
-
pop();
|
|
782
|
-
}
|
|
783
|
-
},
|
|
784
|
-
end() {
|
|
785
|
-
}
|
|
786
|
-
};
|
|
787
|
-
function push() {
|
|
788
|
-
let value;
|
|
789
|
-
switch (token.type) {
|
|
790
|
-
case "punctuator":
|
|
791
|
-
switch (token.value) {
|
|
792
|
-
case "{":
|
|
793
|
-
value = {};
|
|
794
|
-
break;
|
|
795
|
-
case "[":
|
|
796
|
-
value = [];
|
|
797
|
-
break;
|
|
798
|
-
}
|
|
799
|
-
break;
|
|
800
|
-
case "null":
|
|
801
|
-
case "boolean":
|
|
802
|
-
case "numeric":
|
|
803
|
-
case "string":
|
|
804
|
-
value = token.value;
|
|
805
|
-
break;
|
|
806
|
-
}
|
|
807
|
-
if (root === void 0) {
|
|
808
|
-
root = value;
|
|
809
|
-
} else {
|
|
810
|
-
const parent = stack[stack.length - 1];
|
|
811
|
-
if (Array.isArray(parent)) {
|
|
812
|
-
parent.push(value);
|
|
813
|
-
} else {
|
|
814
|
-
Object.defineProperty(parent, key, {
|
|
815
|
-
value,
|
|
816
|
-
writable: true,
|
|
817
|
-
enumerable: true,
|
|
818
|
-
configurable: true
|
|
819
|
-
});
|
|
820
|
-
}
|
|
821
|
-
}
|
|
822
|
-
if (value !== null && typeof value === "object") {
|
|
823
|
-
stack.push(value);
|
|
824
|
-
if (Array.isArray(value)) {
|
|
825
|
-
parseState = "beforeArrayValue";
|
|
826
|
-
} else {
|
|
827
|
-
parseState = "beforePropertyName";
|
|
828
|
-
}
|
|
829
|
-
} else {
|
|
830
|
-
const current = stack[stack.length - 1];
|
|
831
|
-
if (current == null) {
|
|
832
|
-
parseState = "end";
|
|
833
|
-
} else if (Array.isArray(current)) {
|
|
834
|
-
parseState = "afterArrayValue";
|
|
835
|
-
} else {
|
|
836
|
-
parseState = "afterPropertyValue";
|
|
837
|
-
}
|
|
838
|
-
}
|
|
839
|
-
}
|
|
840
|
-
function pop() {
|
|
841
|
-
stack.pop();
|
|
842
|
-
const current = stack[stack.length - 1];
|
|
843
|
-
if (current == null) {
|
|
844
|
-
parseState = "end";
|
|
845
|
-
} else if (Array.isArray(current)) {
|
|
846
|
-
parseState = "afterArrayValue";
|
|
847
|
-
} else {
|
|
848
|
-
parseState = "afterPropertyValue";
|
|
849
|
-
}
|
|
850
|
-
}
|
|
851
|
-
function invalidChar(c2) {
|
|
852
|
-
if (c2 === void 0) {
|
|
853
|
-
return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
|
|
854
|
-
}
|
|
855
|
-
return syntaxError(`JSON5: invalid character '${formatChar(c2)}' at ${line}:${column}`);
|
|
856
|
-
}
|
|
857
|
-
function invalidEOF() {
|
|
858
|
-
return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);
|
|
859
|
-
}
|
|
860
|
-
function invalidIdentifier() {
|
|
861
|
-
column -= 5;
|
|
862
|
-
return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`);
|
|
863
|
-
}
|
|
864
|
-
function separatorChar(c2) {
|
|
865
|
-
console.warn(`JSON5: '${formatChar(c2)}' in strings is not valid ECMAScript; consider escaping`);
|
|
866
|
-
}
|
|
867
|
-
function formatChar(c2) {
|
|
868
|
-
const replacements = {
|
|
869
|
-
"'": "\\'",
|
|
870
|
-
'"': '\\"',
|
|
871
|
-
"\\": "\\\\",
|
|
872
|
-
"\b": "\\b",
|
|
873
|
-
"\f": "\\f",
|
|
874
|
-
"\n": "\\n",
|
|
875
|
-
"\r": "\\r",
|
|
876
|
-
" ": "\\t",
|
|
877
|
-
"\v": "\\v",
|
|
878
|
-
"\0": "\\0",
|
|
879
|
-
"\u2028": "\\u2028",
|
|
880
|
-
"\u2029": "\\u2029"
|
|
881
|
-
};
|
|
882
|
-
if (replacements[c2]) {
|
|
883
|
-
return replacements[c2];
|
|
884
|
-
}
|
|
885
|
-
if (c2 < " ") {
|
|
886
|
-
const hexString = c2.charCodeAt(0).toString(16);
|
|
887
|
-
return "\\x" + ("00" + hexString).substring(hexString.length);
|
|
888
|
-
}
|
|
889
|
-
return c2;
|
|
890
|
-
}
|
|
891
|
-
function syntaxError(message) {
|
|
892
|
-
const err = new SyntaxError(message);
|
|
893
|
-
err.lineNumber = line;
|
|
894
|
-
err.columnNumber = column;
|
|
895
|
-
return err;
|
|
896
|
-
}
|
|
897
|
-
var stringify = function stringify2(value, replacer, space) {
|
|
898
|
-
const stack2 = [];
|
|
899
|
-
let indent = "";
|
|
900
|
-
let propertyList;
|
|
901
|
-
let replacerFunc;
|
|
902
|
-
let gap = "";
|
|
903
|
-
let quote;
|
|
904
|
-
if (replacer != null && typeof replacer === "object" && !Array.isArray(replacer)) {
|
|
905
|
-
space = replacer.space;
|
|
906
|
-
quote = replacer.quote;
|
|
907
|
-
replacer = replacer.replacer;
|
|
908
|
-
}
|
|
909
|
-
if (typeof replacer === "function") {
|
|
910
|
-
replacerFunc = replacer;
|
|
911
|
-
} else if (Array.isArray(replacer)) {
|
|
912
|
-
propertyList = [];
|
|
913
|
-
for (const v of replacer) {
|
|
914
|
-
let item;
|
|
915
|
-
if (typeof v === "string") {
|
|
916
|
-
item = v;
|
|
917
|
-
} else if (typeof v === "number" || v instanceof String || v instanceof Number) {
|
|
918
|
-
item = String(v);
|
|
919
|
-
}
|
|
920
|
-
if (item !== void 0 && propertyList.indexOf(item) < 0) {
|
|
921
|
-
propertyList.push(item);
|
|
922
|
-
}
|
|
923
|
-
}
|
|
924
|
-
}
|
|
925
|
-
if (space instanceof Number) {
|
|
926
|
-
space = Number(space);
|
|
927
|
-
} else if (space instanceof String) {
|
|
928
|
-
space = String(space);
|
|
929
|
-
}
|
|
930
|
-
if (typeof space === "number") {
|
|
931
|
-
if (space > 0) {
|
|
932
|
-
space = Math.min(10, Math.floor(space));
|
|
933
|
-
gap = " ".substr(0, space);
|
|
934
|
-
}
|
|
935
|
-
} else if (typeof space === "string") {
|
|
936
|
-
gap = space.substr(0, 10);
|
|
937
|
-
}
|
|
938
|
-
return serializeProperty("", { "": value });
|
|
939
|
-
function serializeProperty(key2, holder) {
|
|
940
|
-
let value2 = holder[key2];
|
|
941
|
-
if (value2 != null) {
|
|
942
|
-
if (typeof value2.toJSON5 === "function") {
|
|
943
|
-
value2 = value2.toJSON5(key2);
|
|
944
|
-
} else if (typeof value2.toJSON === "function") {
|
|
945
|
-
value2 = value2.toJSON(key2);
|
|
946
|
-
}
|
|
947
|
-
}
|
|
948
|
-
if (replacerFunc) {
|
|
949
|
-
value2 = replacerFunc.call(holder, key2, value2);
|
|
950
|
-
}
|
|
951
|
-
if (value2 instanceof Number) {
|
|
952
|
-
value2 = Number(value2);
|
|
953
|
-
} else if (value2 instanceof String) {
|
|
954
|
-
value2 = String(value2);
|
|
955
|
-
} else if (value2 instanceof Boolean) {
|
|
956
|
-
value2 = value2.valueOf();
|
|
957
|
-
}
|
|
958
|
-
switch (value2) {
|
|
959
|
-
case null:
|
|
960
|
-
return "null";
|
|
961
|
-
case true:
|
|
962
|
-
return "true";
|
|
963
|
-
case false:
|
|
964
|
-
return "false";
|
|
965
|
-
}
|
|
966
|
-
if (typeof value2 === "string") {
|
|
967
|
-
return quoteString(value2);
|
|
968
|
-
}
|
|
969
|
-
if (typeof value2 === "number") {
|
|
970
|
-
return String(value2);
|
|
971
|
-
}
|
|
972
|
-
if (typeof value2 === "object") {
|
|
973
|
-
return Array.isArray(value2) ? serializeArray(value2) : serializeObject(value2);
|
|
974
|
-
}
|
|
975
|
-
return void 0;
|
|
976
|
-
}
|
|
977
|
-
function quoteString(value2) {
|
|
978
|
-
const quotes = {
|
|
979
|
-
"'": 0.1,
|
|
980
|
-
'"': 0.2
|
|
981
|
-
};
|
|
982
|
-
const replacements = {
|
|
983
|
-
"'": "\\'",
|
|
984
|
-
'"': '\\"',
|
|
985
|
-
"\\": "\\\\",
|
|
986
|
-
"\b": "\\b",
|
|
987
|
-
"\f": "\\f",
|
|
988
|
-
"\n": "\\n",
|
|
989
|
-
"\r": "\\r",
|
|
990
|
-
" ": "\\t",
|
|
991
|
-
"\v": "\\v",
|
|
992
|
-
"\0": "\\0",
|
|
993
|
-
"\u2028": "\\u2028",
|
|
994
|
-
"\u2029": "\\u2029"
|
|
995
|
-
};
|
|
996
|
-
let product = "";
|
|
997
|
-
for (let i = 0; i < value2.length; i++) {
|
|
998
|
-
const c2 = value2[i];
|
|
999
|
-
switch (c2) {
|
|
1000
|
-
case "'":
|
|
1001
|
-
case '"':
|
|
1002
|
-
quotes[c2]++;
|
|
1003
|
-
product += c2;
|
|
1004
|
-
continue;
|
|
1005
|
-
case "\0":
|
|
1006
|
-
if (util.isDigit(value2[i + 1])) {
|
|
1007
|
-
product += "\\x00";
|
|
1008
|
-
continue;
|
|
1009
|
-
}
|
|
1010
|
-
}
|
|
1011
|
-
if (replacements[c2]) {
|
|
1012
|
-
product += replacements[c2];
|
|
1013
|
-
continue;
|
|
1014
|
-
}
|
|
1015
|
-
if (c2 < " ") {
|
|
1016
|
-
let hexString = c2.charCodeAt(0).toString(16);
|
|
1017
|
-
product += "\\x" + ("00" + hexString).substring(hexString.length);
|
|
1018
|
-
continue;
|
|
1019
|
-
}
|
|
1020
|
-
product += c2;
|
|
1021
|
-
}
|
|
1022
|
-
const quoteChar = quote || Object.keys(quotes).reduce((a, b) => quotes[a] < quotes[b] ? a : b);
|
|
1023
|
-
product = product.replace(new RegExp(quoteChar, "g"), replacements[quoteChar]);
|
|
1024
|
-
return quoteChar + product + quoteChar;
|
|
1025
|
-
}
|
|
1026
|
-
function serializeObject(value2) {
|
|
1027
|
-
if (stack2.indexOf(value2) >= 0) {
|
|
1028
|
-
throw TypeError("Converting circular structure to JSON5");
|
|
1029
|
-
}
|
|
1030
|
-
stack2.push(value2);
|
|
1031
|
-
let stepback = indent;
|
|
1032
|
-
indent = indent + gap;
|
|
1033
|
-
let keys = propertyList || Object.keys(value2);
|
|
1034
|
-
let partial = [];
|
|
1035
|
-
for (const key2 of keys) {
|
|
1036
|
-
const propertyString = serializeProperty(key2, value2);
|
|
1037
|
-
if (propertyString !== void 0) {
|
|
1038
|
-
let member = serializeKey(key2) + ":";
|
|
1039
|
-
if (gap !== "") {
|
|
1040
|
-
member += " ";
|
|
1041
|
-
}
|
|
1042
|
-
member += propertyString;
|
|
1043
|
-
partial.push(member);
|
|
1044
|
-
}
|
|
1045
|
-
}
|
|
1046
|
-
let final;
|
|
1047
|
-
if (partial.length === 0) {
|
|
1048
|
-
final = "{}";
|
|
1049
|
-
} else {
|
|
1050
|
-
let properties;
|
|
1051
|
-
if (gap === "") {
|
|
1052
|
-
properties = partial.join(",");
|
|
1053
|
-
final = "{" + properties + "}";
|
|
1054
|
-
} else {
|
|
1055
|
-
let separator = ",\n" + indent;
|
|
1056
|
-
properties = partial.join(separator);
|
|
1057
|
-
final = "{\n" + indent + properties + ",\n" + stepback + "}";
|
|
1058
|
-
}
|
|
1059
|
-
}
|
|
1060
|
-
stack2.pop();
|
|
1061
|
-
indent = stepback;
|
|
1062
|
-
return final;
|
|
1063
|
-
}
|
|
1064
|
-
function serializeKey(key2) {
|
|
1065
|
-
if (key2.length === 0) {
|
|
1066
|
-
return quoteString(key2);
|
|
1067
|
-
}
|
|
1068
|
-
const firstChar = String.fromCodePoint(key2.codePointAt(0));
|
|
1069
|
-
if (!util.isIdStartChar(firstChar)) {
|
|
1070
|
-
return quoteString(key2);
|
|
1071
|
-
}
|
|
1072
|
-
for (let i = firstChar.length; i < key2.length; i++) {
|
|
1073
|
-
if (!util.isIdContinueChar(String.fromCodePoint(key2.codePointAt(i)))) {
|
|
1074
|
-
return quoteString(key2);
|
|
1075
|
-
}
|
|
1076
|
-
}
|
|
1077
|
-
return key2;
|
|
1078
|
-
}
|
|
1079
|
-
function serializeArray(value2) {
|
|
1080
|
-
if (stack2.indexOf(value2) >= 0) {
|
|
1081
|
-
throw TypeError("Converting circular structure to JSON5");
|
|
1082
|
-
}
|
|
1083
|
-
stack2.push(value2);
|
|
1084
|
-
let stepback = indent;
|
|
1085
|
-
indent = indent + gap;
|
|
1086
|
-
let partial = [];
|
|
1087
|
-
for (let i = 0; i < value2.length; i++) {
|
|
1088
|
-
const propertyString = serializeProperty(String(i), value2);
|
|
1089
|
-
partial.push(propertyString !== void 0 ? propertyString : "null");
|
|
1090
|
-
}
|
|
1091
|
-
let final;
|
|
1092
|
-
if (partial.length === 0) {
|
|
1093
|
-
final = "[]";
|
|
1094
|
-
} else {
|
|
1095
|
-
if (gap === "") {
|
|
1096
|
-
let properties = partial.join(",");
|
|
1097
|
-
final = "[" + properties + "]";
|
|
1098
|
-
} else {
|
|
1099
|
-
let separator = ",\n" + indent;
|
|
1100
|
-
let properties = partial.join(separator);
|
|
1101
|
-
final = "[\n" + indent + properties + ",\n" + stepback + "]";
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
stack2.pop();
|
|
1105
|
-
indent = stepback;
|
|
1106
|
-
return final;
|
|
1107
|
-
}
|
|
1108
|
-
};
|
|
1109
|
-
const JSON5$1 = {
|
|
1110
|
-
parse,
|
|
1111
|
-
stringify
|
|
1112
|
-
};
|
|
1113
|
-
var lib = JSON5$1;
|
|
1114
|
-
function getDefaultExportFromCjs(x) {
|
|
1115
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
1116
|
-
}
|
|
1117
|
-
var dayjs_min$1 = { exports: {} };
|
|
1118
|
-
var dayjs_min = dayjs_min$1.exports;
|
|
1119
|
-
var hasRequiredDayjs_min;
|
|
1120
|
-
function requireDayjs_min() {
|
|
1121
|
-
if (hasRequiredDayjs_min) return dayjs_min$1.exports;
|
|
1122
|
-
hasRequiredDayjs_min = 1;
|
|
1123
|
-
(function(module, exports$1) {
|
|
1124
|
-
!(function(t, e) {
|
|
1125
|
-
module.exports = e();
|
|
1126
|
-
})(dayjs_min, (function() {
|
|
1127
|
-
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) {
|
|
1128
|
-
var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100;
|
|
1129
|
-
return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]";
|
|
1130
|
-
} }, m = function(t2, e2, n2) {
|
|
1131
|
-
var r2 = String(t2);
|
|
1132
|
-
return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
|
|
1133
|
-
}, v = { s: m, z: function(t2) {
|
|
1134
|
-
var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
|
|
1135
|
-
return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
|
|
1136
|
-
}, m: function t2(e2, n2) {
|
|
1137
|
-
if (e2.date() < n2.date()) return -t2(n2, e2);
|
|
1138
|
-
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);
|
|
1139
|
-
return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
|
|
1140
|
-
}, a: function(t2) {
|
|
1141
|
-
return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
|
|
1142
|
-
}, p: function(t2) {
|
|
1143
|
-
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$/, "");
|
|
1144
|
-
}, u: function(t2) {
|
|
1145
|
-
return void 0 === t2;
|
|
1146
|
-
} }, g = "en", D = {};
|
|
1147
|
-
D[g] = M;
|
|
1148
|
-
var p = "$isDayjsObject", S = function(t2) {
|
|
1149
|
-
return t2 instanceof _ || !(!t2 || !t2[p]);
|
|
1150
|
-
}, w = function t2(e2, n2, r2) {
|
|
1151
|
-
var i2;
|
|
1152
|
-
if (!e2) return g;
|
|
1153
|
-
if ("string" == typeof e2) {
|
|
1154
|
-
var s2 = e2.toLowerCase();
|
|
1155
|
-
D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
|
|
1156
|
-
var u2 = e2.split("-");
|
|
1157
|
-
if (!i2 && u2.length > 1) return t2(u2[0]);
|
|
1158
|
-
} else {
|
|
1159
|
-
var a2 = e2.name;
|
|
1160
|
-
D[a2] = e2, i2 = a2;
|
|
1161
|
-
}
|
|
1162
|
-
return !r2 && i2 && (g = i2), i2 || !r2 && g;
|
|
1163
|
-
}, O = function(t2, e2) {
|
|
1164
|
-
if (S(t2)) return t2.clone();
|
|
1165
|
-
var n2 = "object" == typeof e2 ? e2 : {};
|
|
1166
|
-
return n2.date = t2, n2.args = arguments, new _(n2);
|
|
1167
|
-
}, b = v;
|
|
1168
|
-
b.l = w, b.i = S, b.w = function(t2, e2) {
|
|
1169
|
-
return O(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset });
|
|
1170
|
-
};
|
|
1171
|
-
var _ = (function() {
|
|
1172
|
-
function M2(t2) {
|
|
1173
|
-
this.$L = w(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true;
|
|
1174
|
-
}
|
|
1175
|
-
var m2 = M2.prototype;
|
|
1176
|
-
return m2.parse = function(t2) {
|
|
1177
|
-
this.$d = (function(t3) {
|
|
1178
|
-
var e2 = t3.date, n2 = t3.utc;
|
|
1179
|
-
if (null === e2) return /* @__PURE__ */ new Date(NaN);
|
|
1180
|
-
if (b.u(e2)) return /* @__PURE__ */ new Date();
|
|
1181
|
-
if (e2 instanceof Date) return new Date(e2);
|
|
1182
|
-
if ("string" == typeof e2 && !/Z$/i.test(e2)) {
|
|
1183
|
-
var r2 = e2.match($);
|
|
1184
|
-
if (r2) {
|
|
1185
|
-
var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3);
|
|
1186
|
-
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);
|
|
1187
|
-
}
|
|
1188
|
-
}
|
|
1189
|
-
return new Date(e2);
|
|
1190
|
-
})(t2), this.init();
|
|
1191
|
-
}, m2.init = function() {
|
|
1192
|
-
var t2 = this.$d;
|
|
1193
|
-
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();
|
|
1194
|
-
}, m2.$utils = function() {
|
|
1195
|
-
return b;
|
|
1196
|
-
}, m2.isValid = function() {
|
|
1197
|
-
return !(this.$d.toString() === l);
|
|
1198
|
-
}, m2.isSame = function(t2, e2) {
|
|
1199
|
-
var n2 = O(t2);
|
|
1200
|
-
return this.startOf(e2) <= n2 && n2 <= this.endOf(e2);
|
|
1201
|
-
}, m2.isAfter = function(t2, e2) {
|
|
1202
|
-
return O(t2) < this.startOf(e2);
|
|
1203
|
-
}, m2.isBefore = function(t2, e2) {
|
|
1204
|
-
return this.endOf(e2) < O(t2);
|
|
1205
|
-
}, m2.$g = function(t2, e2, n2) {
|
|
1206
|
-
return b.u(t2) ? this[e2] : this.set(n2, t2);
|
|
1207
|
-
}, m2.unix = function() {
|
|
1208
|
-
return Math.floor(this.valueOf() / 1e3);
|
|
1209
|
-
}, m2.valueOf = function() {
|
|
1210
|
-
return this.$d.getTime();
|
|
1211
|
-
}, m2.startOf = function(t2, e2) {
|
|
1212
|
-
var n2 = this, r2 = !!b.u(e2) || e2, f2 = b.p(t2), l2 = function(t3, e3) {
|
|
1213
|
-
var i2 = b.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2);
|
|
1214
|
-
return r2 ? i2 : i2.endOf(a);
|
|
1215
|
-
}, $2 = function(t3, e3) {
|
|
1216
|
-
return b.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2);
|
|
1217
|
-
}, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : "");
|
|
1218
|
-
switch (f2) {
|
|
1219
|
-
case h:
|
|
1220
|
-
return r2 ? l2(1, 0) : l2(31, 11);
|
|
1221
|
-
case c2:
|
|
1222
|
-
return r2 ? l2(1, M3) : l2(0, M3 + 1);
|
|
1223
|
-
case o:
|
|
1224
|
-
var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
|
|
1225
|
-
return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3);
|
|
1226
|
-
case a:
|
|
1227
|
-
case d:
|
|
1228
|
-
return $2(v2 + "Hours", 0);
|
|
1229
|
-
case u:
|
|
1230
|
-
return $2(v2 + "Minutes", 1);
|
|
1231
|
-
case s:
|
|
1232
|
-
return $2(v2 + "Seconds", 2);
|
|
1233
|
-
case i:
|
|
1234
|
-
return $2(v2 + "Milliseconds", 3);
|
|
1235
|
-
default:
|
|
1236
|
-
return this.clone();
|
|
1237
|
-
}
|
|
1238
|
-
}, m2.endOf = function(t2) {
|
|
1239
|
-
return this.startOf(t2, false);
|
|
1240
|
-
}, m2.$set = function(t2, e2) {
|
|
1241
|
-
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;
|
|
1242
|
-
if (o2 === c2 || o2 === h) {
|
|
1243
|
-
var y2 = this.clone().set(d, 1);
|
|
1244
|
-
y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
|
|
1245
|
-
} else l2 && this.$d[l2]($2);
|
|
1246
|
-
return this.init(), this;
|
|
1247
|
-
}, m2.set = function(t2, e2) {
|
|
1248
|
-
return this.clone().$set(t2, e2);
|
|
1249
|
-
}, m2.get = function(t2) {
|
|
1250
|
-
return this[b.p(t2)]();
|
|
1251
|
-
}, m2.add = function(r2, f2) {
|
|
1252
|
-
var d2, l2 = this;
|
|
1253
|
-
r2 = Number(r2);
|
|
1254
|
-
var $2 = b.p(f2), y2 = function(t2) {
|
|
1255
|
-
var e2 = O(l2);
|
|
1256
|
-
return b.w(e2.date(e2.date() + Math.round(t2 * r2)), l2);
|
|
1257
|
-
};
|
|
1258
|
-
if ($2 === c2) return this.set(c2, this.$M + r2);
|
|
1259
|
-
if ($2 === h) return this.set(h, this.$y + r2);
|
|
1260
|
-
if ($2 === a) return y2(1);
|
|
1261
|
-
if ($2 === o) return y2(7);
|
|
1262
|
-
var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3;
|
|
1263
|
-
return b.w(m3, this);
|
|
1264
|
-
}, m2.subtract = function(t2, e2) {
|
|
1265
|
-
return this.add(-1 * t2, e2);
|
|
1266
|
-
}, m2.format = function(t2) {
|
|
1267
|
-
var e2 = this, n2 = this.$locale();
|
|
1268
|
-
if (!this.isValid()) return n2.invalidDate || l;
|
|
1269
|
-
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) {
|
|
1270
|
-
return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3);
|
|
1271
|
-
}, d2 = function(t3) {
|
|
1272
|
-
return b.s(s2 % 12 || 12, t3, "0");
|
|
1273
|
-
}, $2 = f2 || function(t3, e3, n3) {
|
|
1274
|
-
var r3 = t3 < 12 ? "AM" : "PM";
|
|
1275
|
-
return n3 ? r3.toLowerCase() : r3;
|
|
1276
|
-
};
|
|
1277
|
-
return r2.replace(y, (function(t3, r3) {
|
|
1278
|
-
return r3 || (function(t4) {
|
|
1279
|
-
switch (t4) {
|
|
1280
|
-
case "YY":
|
|
1281
|
-
return String(e2.$y).slice(-2);
|
|
1282
|
-
case "YYYY":
|
|
1283
|
-
return b.s(e2.$y, 4, "0");
|
|
1284
|
-
case "M":
|
|
1285
|
-
return a2 + 1;
|
|
1286
|
-
case "MM":
|
|
1287
|
-
return b.s(a2 + 1, 2, "0");
|
|
1288
|
-
case "MMM":
|
|
1289
|
-
return h2(n2.monthsShort, a2, c3, 3);
|
|
1290
|
-
case "MMMM":
|
|
1291
|
-
return h2(c3, a2);
|
|
1292
|
-
case "D":
|
|
1293
|
-
return e2.$D;
|
|
1294
|
-
case "DD":
|
|
1295
|
-
return b.s(e2.$D, 2, "0");
|
|
1296
|
-
case "d":
|
|
1297
|
-
return String(e2.$W);
|
|
1298
|
-
case "dd":
|
|
1299
|
-
return h2(n2.weekdaysMin, e2.$W, o2, 2);
|
|
1300
|
-
case "ddd":
|
|
1301
|
-
return h2(n2.weekdaysShort, e2.$W, o2, 3);
|
|
1302
|
-
case "dddd":
|
|
1303
|
-
return o2[e2.$W];
|
|
1304
|
-
case "H":
|
|
1305
|
-
return String(s2);
|
|
1306
|
-
case "HH":
|
|
1307
|
-
return b.s(s2, 2, "0");
|
|
1308
|
-
case "h":
|
|
1309
|
-
return d2(1);
|
|
1310
|
-
case "hh":
|
|
1311
|
-
return d2(2);
|
|
1312
|
-
case "a":
|
|
1313
|
-
return $2(s2, u2, true);
|
|
1314
|
-
case "A":
|
|
1315
|
-
return $2(s2, u2, false);
|
|
1316
|
-
case "m":
|
|
1317
|
-
return String(u2);
|
|
1318
|
-
case "mm":
|
|
1319
|
-
return b.s(u2, 2, "0");
|
|
1320
|
-
case "s":
|
|
1321
|
-
return String(e2.$s);
|
|
1322
|
-
case "ss":
|
|
1323
|
-
return b.s(e2.$s, 2, "0");
|
|
1324
|
-
case "SSS":
|
|
1325
|
-
return b.s(e2.$ms, 3, "0");
|
|
1326
|
-
case "Z":
|
|
1327
|
-
return i2;
|
|
1328
|
-
}
|
|
1329
|
-
return null;
|
|
1330
|
-
})(t3) || i2.replace(":", "");
|
|
1331
|
-
}));
|
|
1332
|
-
}, m2.utcOffset = function() {
|
|
1333
|
-
return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
|
|
1334
|
-
}, m2.diff = function(r2, d2, l2) {
|
|
1335
|
-
var $2, y2 = this, M3 = b.p(d2), m3 = O(r2), v2 = (m3.utcOffset() - this.utcOffset()) * e, g2 = this - m3, D2 = function() {
|
|
1336
|
-
return b.m(y2, m3);
|
|
1337
|
-
};
|
|
1338
|
-
switch (M3) {
|
|
1339
|
-
case h:
|
|
1340
|
-
$2 = D2() / 12;
|
|
1341
|
-
break;
|
|
1342
|
-
case c2:
|
|
1343
|
-
$2 = D2();
|
|
1344
|
-
break;
|
|
1345
|
-
case f:
|
|
1346
|
-
$2 = D2() / 3;
|
|
1347
|
-
break;
|
|
1348
|
-
case o:
|
|
1349
|
-
$2 = (g2 - v2) / 6048e5;
|
|
1350
|
-
break;
|
|
1351
|
-
case a:
|
|
1352
|
-
$2 = (g2 - v2) / 864e5;
|
|
1353
|
-
break;
|
|
1354
|
-
case u:
|
|
1355
|
-
$2 = g2 / n;
|
|
1356
|
-
break;
|
|
1357
|
-
case s:
|
|
1358
|
-
$2 = g2 / e;
|
|
1359
|
-
break;
|
|
1360
|
-
case i:
|
|
1361
|
-
$2 = g2 / t;
|
|
1362
|
-
break;
|
|
1363
|
-
default:
|
|
1364
|
-
$2 = g2;
|
|
1365
|
-
}
|
|
1366
|
-
return l2 ? $2 : b.a($2);
|
|
1367
|
-
}, m2.daysInMonth = function() {
|
|
1368
|
-
return this.endOf(c2).$D;
|
|
1369
|
-
}, m2.$locale = function() {
|
|
1370
|
-
return D[this.$L];
|
|
1371
|
-
}, m2.locale = function(t2, e2) {
|
|
1372
|
-
if (!t2) return this.$L;
|
|
1373
|
-
var n2 = this.clone(), r2 = w(t2, e2, true);
|
|
1374
|
-
return r2 && (n2.$L = r2), n2;
|
|
1375
|
-
}, m2.clone = function() {
|
|
1376
|
-
return b.w(this.$d, this);
|
|
1377
|
-
}, m2.toDate = function() {
|
|
1378
|
-
return new Date(this.valueOf());
|
|
1379
|
-
}, m2.toJSON = function() {
|
|
1380
|
-
return this.isValid() ? this.toISOString() : null;
|
|
1381
|
-
}, m2.toISOString = function() {
|
|
1382
|
-
return this.$d.toISOString();
|
|
1383
|
-
}, m2.toString = function() {
|
|
1384
|
-
return this.$d.toUTCString();
|
|
1385
|
-
}, M2;
|
|
1386
|
-
})(), k = _.prototype;
|
|
1387
|
-
return O.prototype = k, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", c2], ["$y", h], ["$D", d]].forEach((function(t2) {
|
|
1388
|
-
k[t2[1]] = function(e2) {
|
|
1389
|
-
return this.$g(e2, t2[0], t2[1]);
|
|
1390
|
-
};
|
|
1391
|
-
})), O.extend = function(t2, e2) {
|
|
1392
|
-
return t2.$i || (t2(e2, _, O), t2.$i = true), O;
|
|
1393
|
-
}, O.locale = w, O.isDayjs = S, O.unix = function(t2) {
|
|
1394
|
-
return O(1e3 * t2);
|
|
1395
|
-
}, O.en = D[g], O.Ls = D, O.p = {}, O;
|
|
1396
|
-
}));
|
|
1397
|
-
})(dayjs_min$1);
|
|
1398
|
-
return dayjs_min$1.exports;
|
|
1399
|
-
}
|
|
1400
|
-
var dayjs_minExports = requireDayjs_min();
|
|
1401
|
-
const __screwUpDefaultImportModule0 = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
|
|
1402
|
-
const JSON5 = __resolveDefaultExport$2(lib);
|
|
1403
|
-
const dayjs$1 = __resolveDefaultExport$2(__screwUpDefaultImportModule0);
|
|
1404
|
-
globalThis.__screwUpIsInCJS_db7919f73ec9 = false;
|
|
1405
|
-
function __resolveDefaultExport$2(module, isESM) {
|
|
1406
|
-
const __isInCJS = typeof globalThis !== "undefined" && globalThis.__screwUpIsInCJS_db7919f73ec9 === true;
|
|
1407
|
-
const maybe = module;
|
|
1408
|
-
const hasDefault = !!(maybe && typeof maybe === "object" && "default" in maybe);
|
|
1409
|
-
const unwrapNamespaceDefault = (value) => {
|
|
1410
|
-
if (!value || typeof value !== "object") {
|
|
1411
|
-
return value;
|
|
1412
|
-
}
|
|
1413
|
-
const inner = value;
|
|
1414
|
-
const isModule = inner.__esModule === true || typeof Symbol !== "undefined" && inner[Symbol.toStringTag] === "Module";
|
|
1415
|
-
if (isModule && "default" in inner) {
|
|
1416
|
-
return inner.default;
|
|
1417
|
-
}
|
|
1418
|
-
return value;
|
|
1419
|
-
};
|
|
1420
|
-
const resolvedDefault = hasDefault ? unwrapNamespaceDefault(maybe.default) : void 0;
|
|
1421
|
-
if (__isInCJS) {
|
|
1422
|
-
return hasDefault ? resolvedDefault != null ? resolvedDefault : module : module;
|
|
1423
|
-
}
|
|
1424
|
-
return hasDefault ? resolvedDefault != null ? resolvedDefault : module : module;
|
|
1425
|
-
}
|
|
1426
|
-
const createConsoleLogger = (prefix, driver) => {
|
|
1427
|
-
var _a, _b, _c, _d;
|
|
1428
|
-
const d = (_a = driver == null ? void 0 : driver.debug) != null ? _a : (() => {
|
|
1429
|
-
});
|
|
1430
|
-
const i = (_b = driver == null ? void 0 : driver.info) != null ? _b : globalThis.console.info;
|
|
1431
|
-
const w = (_c = driver == null ? void 0 : driver.warn) != null ? _c : globalThis.console.warn;
|
|
1432
|
-
const e = (_d = driver == null ? void 0 : driver.error) != null ? _d : globalThis.console.error;
|
|
1433
|
-
if (prefix) {
|
|
1434
|
-
return {
|
|
1435
|
-
debug: (msg) => d(`[${prefix}]: ${msg}`),
|
|
1436
|
-
info: (msg) => i(`[${prefix}]: ${msg}`),
|
|
1437
|
-
warn: (msg) => w(`[${prefix}]: ${msg}`),
|
|
1438
|
-
error: (msg) => e(`[${prefix}]: ${msg}`)
|
|
1439
|
-
};
|
|
1440
|
-
} else {
|
|
1441
|
-
return {
|
|
1442
|
-
debug: (msg) => d(`${msg}`),
|
|
1443
|
-
info: (msg) => i(`${msg}`),
|
|
1444
|
-
warn: (msg) => w(`${msg}`),
|
|
1445
|
-
error: (msg) => e(`${msg}`)
|
|
1446
|
-
};
|
|
1447
|
-
}
|
|
1448
|
-
};
|
|
1449
|
-
const flattenObject = (obj, prefix, map) => {
|
|
1450
|
-
for (const [key2, value] of Object.entries(obj)) {
|
|
1451
|
-
if (!value) continue;
|
|
1452
|
-
const fullKey = prefix ? `${prefix}.${key2}` : key2;
|
|
1453
|
-
if (typeof value === "string") {
|
|
1454
|
-
map[fullKey] = value;
|
|
1455
|
-
} else if (Array.isArray(value)) {
|
|
1456
|
-
map[fullKey] = value.map((v) => String(v)).join(",");
|
|
1457
|
-
} else if (typeof value === "object") {
|
|
1458
|
-
flattenObject(value, fullKey, map);
|
|
1459
|
-
} else {
|
|
1460
|
-
map[fullKey] = String(value);
|
|
1461
|
-
}
|
|
1462
|
-
}
|
|
1463
|
-
};
|
|
1464
|
-
const findWorkspaceRoot = async (startPath, logger) => {
|
|
1465
|
-
let currentPath = startPath;
|
|
1466
|
-
while (currentPath !== dirname(currentPath)) {
|
|
1467
|
-
const packageJsonPath = join(currentPath, "package.json");
|
|
1468
|
-
if (existsSync(packageJsonPath)) {
|
|
1469
|
-
try {
|
|
1470
|
-
const content = await readFile(packageJsonPath, "utf-8");
|
|
1471
|
-
const packageJson = JSON5.parse(content);
|
|
1472
|
-
if (packageJson.workspaces || existsSync(join(currentPath, "pnpm-workspace.yaml")) || existsSync(join(currentPath, "lerna.json"))) {
|
|
1473
|
-
return currentPath;
|
|
1474
|
-
}
|
|
1475
|
-
} catch (error) {
|
|
1476
|
-
logger.warn(
|
|
1477
|
-
`Failed to parse package.json at ${packageJsonPath}: ${error}`
|
|
1478
|
-
);
|
|
1479
|
-
}
|
|
1480
|
-
}
|
|
1481
|
-
currentPath = dirname(currentPath);
|
|
1482
|
-
}
|
|
1483
|
-
return void 0;
|
|
1484
|
-
};
|
|
1485
|
-
const collectWorkspaceSiblings = async (workspaceRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger) => {
|
|
1486
|
-
const siblings = /* @__PURE__ */ new Map();
|
|
1487
|
-
try {
|
|
1488
|
-
const rootPackageJsonPath = join(workspaceRoot, "package.json");
|
|
1489
|
-
const content = await readFile(rootPackageJsonPath, "utf-8");
|
|
1490
|
-
const rootPackageJson = JSON5.parse(content);
|
|
1491
|
-
const workspacePatterns = rootPackageJson.workspaces;
|
|
1492
|
-
if (!workspacePatterns || !Array.isArray(workspacePatterns)) {
|
|
1493
|
-
return siblings;
|
|
1494
|
-
}
|
|
1495
|
-
const workspaceDirs = /* @__PURE__ */ new Set();
|
|
1496
|
-
for (const pattern of workspacePatterns) {
|
|
1497
|
-
const matches = await glob(pattern, {
|
|
1498
|
-
cwd: workspaceRoot
|
|
1499
|
-
});
|
|
1500
|
-
matches.forEach((match) => workspaceDirs.add(match));
|
|
1501
|
-
}
|
|
1502
|
-
for (const workspaceDir of workspaceDirs) {
|
|
1503
|
-
const packageJsonPath = join(workspaceRoot, workspaceDir, "package.json");
|
|
1504
|
-
if (existsSync(packageJsonPath)) {
|
|
1505
|
-
try {
|
|
1506
|
-
const packagePath = join(workspaceRoot, workspaceDir);
|
|
1507
|
-
const resolvedPackage = await resolveRawPackageJsonObject(
|
|
1508
|
-
packagePath,
|
|
1509
|
-
fetchGitMetadata,
|
|
1510
|
-
alwaysOverrideVersionFromGit,
|
|
1511
|
-
inheritableFields,
|
|
1512
|
-
logger
|
|
1513
|
-
);
|
|
1514
|
-
const packageJson = resolvedPackage.metadata;
|
|
1515
|
-
if (packageJson.name && packageJson.version) {
|
|
1516
|
-
siblings.set(packageJson.name, {
|
|
1517
|
-
name: packageJson.name,
|
|
1518
|
-
version: packageJson.version,
|
|
1519
|
-
path: packagePath
|
|
1520
|
-
});
|
|
1521
|
-
}
|
|
1522
|
-
} catch (error) {
|
|
1523
|
-
logger.warn(
|
|
1524
|
-
`Failed to resolve package.json from ${packageJsonPath}: ${error}`
|
|
1525
|
-
);
|
|
1526
|
-
}
|
|
1527
|
-
}
|
|
1528
|
-
}
|
|
1529
|
-
} catch (error) {
|
|
1530
|
-
logger.warn(
|
|
1531
|
-
`Failed to collect workspace siblings from ${workspaceRoot}: ${error}`
|
|
1532
|
-
);
|
|
1533
|
-
}
|
|
1534
|
-
return siblings;
|
|
1535
|
-
};
|
|
1536
|
-
const replacePeerDependenciesWildcards = (packageJson, siblings, versionPrefix) => {
|
|
1537
|
-
const modifiedPackageJson = JSON5.parse(JSON.stringify(packageJson));
|
|
1538
|
-
if (!modifiedPackageJson.peerDependencies || typeof modifiedPackageJson.peerDependencies !== "object") {
|
|
1539
|
-
return modifiedPackageJson;
|
|
1540
|
-
}
|
|
1541
|
-
for (const [depName, depVersion] of Object.entries(
|
|
1542
|
-
modifiedPackageJson.peerDependencies
|
|
1543
|
-
)) {
|
|
1544
|
-
if (depVersion === "*" && siblings.has(depName)) {
|
|
1545
|
-
const sibling = siblings.get(depName);
|
|
1546
|
-
modifiedPackageJson.peerDependencies[depName] = `${versionPrefix}${sibling.version}`;
|
|
1547
|
-
}
|
|
1548
|
-
}
|
|
1549
|
-
return modifiedPackageJson;
|
|
1550
|
-
};
|
|
1551
|
-
const mergePackageMetadata = async (fetchGitMetadata, alwaysOverrideVersionFromGit, sourceMap, parentMetadata, childMetadata, parentSourceDir, childSourceDir, _repositoryPath) => {
|
|
1552
|
-
const metadata = await fetchGitMetadata();
|
|
1553
|
-
const merged = {};
|
|
1554
|
-
flattenObject(metadata, "", merged);
|
|
1555
|
-
for (const key2 in parentMetadata) {
|
|
1556
|
-
const value = parentMetadata[key2];
|
|
1557
|
-
if (value !== void 0) {
|
|
1558
|
-
merged[key2] = value;
|
|
1559
|
-
sourceMap.set(key2, parentSourceDir);
|
|
1560
|
-
}
|
|
1561
|
-
}
|
|
1562
|
-
for (const key2 in childMetadata) {
|
|
1563
|
-
const value = childMetadata[key2];
|
|
1564
|
-
if (value !== void 0) {
|
|
1565
|
-
merged[key2] = value;
|
|
1566
|
-
sourceMap.set(key2, childSourceDir);
|
|
1567
|
-
}
|
|
1568
|
-
}
|
|
1569
|
-
if (alwaysOverrideVersionFromGit && metadata.version) {
|
|
1570
|
-
merged.version = metadata.version;
|
|
1571
|
-
}
|
|
1572
|
-
merged.buildDate = dayjs$1().format();
|
|
1573
|
-
return merged;
|
|
1574
|
-
};
|
|
1575
|
-
const mergeRawPackageJson = async (fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, sourceMap, parentMetadata, childMetadata, parentSourceDir, childSourceDir, repositoryPath) => {
|
|
1576
|
-
var _a, _b, _c, _d;
|
|
1577
|
-
const gitMetadata = await fetchGitMetadata();
|
|
1578
|
-
const merged = { ...gitMetadata };
|
|
1579
|
-
for (const key2 in parentMetadata) {
|
|
1580
|
-
if (inheritableFields.has(key2)) {
|
|
1581
|
-
const value = parentMetadata[key2];
|
|
1582
|
-
if (value !== void 0) {
|
|
1583
|
-
merged[key2] = value;
|
|
1584
|
-
sourceMap.set(key2, parentSourceDir);
|
|
1585
|
-
}
|
|
1586
|
-
}
|
|
1587
|
-
}
|
|
1588
|
-
for (const key2 in childMetadata) {
|
|
1589
|
-
const value = childMetadata[key2];
|
|
1590
|
-
if (value !== void 0) {
|
|
1591
|
-
merged[key2] = value;
|
|
1592
|
-
sourceMap.set(key2, childSourceDir);
|
|
1593
|
-
}
|
|
1594
|
-
}
|
|
1595
|
-
if (alwaysOverrideVersionFromGit && gitMetadata.version) {
|
|
1596
|
-
merged.version = gitMetadata.version;
|
|
1597
|
-
sourceMap.set("version", repositoryPath);
|
|
1598
|
-
}
|
|
1599
|
-
if (!merged.version) {
|
|
1600
|
-
merged.version = "0.0.1";
|
|
1601
|
-
const gitInfo = typeof merged.git === "object" && merged.git !== null ? merged.git : {};
|
|
1602
|
-
gitInfo.version = (_a = gitInfo.version) != null ? _a : merged.version;
|
|
1603
|
-
gitInfo.commit = (_b = gitInfo.commit) != null ? _b : {
|
|
1604
|
-
hash: "unknown",
|
|
1605
|
-
shortHash: "unknown"
|
|
1606
|
-
};
|
|
1607
|
-
gitInfo.tags = (_c = gitInfo.tags) != null ? _c : [];
|
|
1608
|
-
gitInfo.branches = (_d = gitInfo.branches) != null ? _d : [];
|
|
1609
|
-
merged.git = gitInfo;
|
|
1610
|
-
}
|
|
1611
|
-
merged.buildDate = dayjs$1().format();
|
|
1612
|
-
return merged;
|
|
1613
|
-
};
|
|
1614
|
-
const resolvePackageMetadataT = async (projectRoot, logger, readPackageMetadataFn, mergePackageMetadataFn) => {
|
|
1615
|
-
const workspaceRoot = await findWorkspaceRoot(projectRoot, logger);
|
|
1616
|
-
if (!workspaceRoot) {
|
|
1617
|
-
const localPackagePath = join(projectRoot, "package.json");
|
|
1618
|
-
const localMetadata = await readPackageMetadataFn(localPackagePath);
|
|
1619
|
-
return mergePackageMetadataFn(
|
|
1620
|
-
{},
|
|
1621
|
-
localMetadata,
|
|
1622
|
-
"",
|
|
1623
|
-
// dummy
|
|
1624
|
-
projectRoot,
|
|
1625
|
-
projectRoot
|
|
1626
|
-
);
|
|
1627
|
-
}
|
|
1628
|
-
const projectPackagePath = join(projectRoot, "package.json");
|
|
1629
|
-
const rootPackagePath = join(workspaceRoot, "package.json");
|
|
1630
|
-
const metadata = await readPackageMetadataFn(rootPackagePath);
|
|
1631
|
-
if (projectPackagePath !== rootPackagePath && existsSync(projectPackagePath)) {
|
|
1632
|
-
const projectMetadata = await readPackageMetadataFn(projectPackagePath);
|
|
1633
|
-
return mergePackageMetadataFn(
|
|
1634
|
-
metadata,
|
|
1635
|
-
projectMetadata,
|
|
1636
|
-
workspaceRoot,
|
|
1637
|
-
projectRoot,
|
|
1638
|
-
projectRoot
|
|
1639
|
-
);
|
|
1640
|
-
} else {
|
|
1641
|
-
return mergePackageMetadataFn(
|
|
1642
|
-
{},
|
|
1643
|
-
metadata,
|
|
1644
|
-
"",
|
|
1645
|
-
// dummy
|
|
1646
|
-
workspaceRoot,
|
|
1647
|
-
projectRoot
|
|
1648
|
-
);
|
|
1649
|
-
}
|
|
1650
|
-
};
|
|
1651
|
-
const readPackageMetadata = async (logger, packagePath) => {
|
|
1652
|
-
try {
|
|
1653
|
-
const content = await readFile(packagePath, "utf-8");
|
|
1654
|
-
const json = JSON5.parse(content);
|
|
1655
|
-
const map = {};
|
|
1656
|
-
flattenObject(json, "", map);
|
|
1657
|
-
return map;
|
|
1658
|
-
} catch (error) {
|
|
1659
|
-
logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
|
|
1660
|
-
return {};
|
|
1661
|
-
}
|
|
1662
|
-
};
|
|
1663
|
-
const resolvePackageMetadata = async (projectRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, logger) => {
|
|
1664
|
-
const sourceMap = /* @__PURE__ */ new Map();
|
|
1665
|
-
const metadata = await resolvePackageMetadataT(
|
|
1666
|
-
projectRoot,
|
|
1667
|
-
logger,
|
|
1668
|
-
readPackageMetadata.bind(void 0, logger),
|
|
1669
|
-
mergePackageMetadata.bind(
|
|
1670
|
-
void 0,
|
|
1671
|
-
fetchGitMetadata,
|
|
1672
|
-
alwaysOverrideVersionFromGit,
|
|
1673
|
-
sourceMap
|
|
1674
|
-
)
|
|
1675
|
-
);
|
|
1676
|
-
return {
|
|
1677
|
-
metadata,
|
|
1678
|
-
sourceMap
|
|
1679
|
-
};
|
|
1680
|
-
};
|
|
1681
|
-
const readRawPackageJson = async (logger, packagePath, ignoreNotExist = false) => {
|
|
1682
|
-
if (ignoreNotExist && !existsSync(packagePath)) {
|
|
1683
|
-
return {};
|
|
1684
|
-
}
|
|
1685
|
-
try {
|
|
1686
|
-
const content = await readFile(packagePath, "utf-8");
|
|
1687
|
-
return JSON5.parse(content);
|
|
1688
|
-
} catch (error) {
|
|
1689
|
-
if (ignoreNotExist && (error == null ? void 0 : error.code) === "ENOENT") {
|
|
1690
|
-
return {};
|
|
1691
|
-
}
|
|
1692
|
-
logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
|
|
1693
|
-
throw error;
|
|
1694
|
-
}
|
|
1695
|
-
};
|
|
1696
|
-
const resolveRawPackageJsonObject = async (projectRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger, ignoreNotExist = false) => {
|
|
1697
|
-
const sourceMap = /* @__PURE__ */ new Map();
|
|
1698
|
-
const readRawPackageJsonFn = async (packagePath) => readRawPackageJson(logger, packagePath, ignoreNotExist);
|
|
1699
|
-
const packageJson = await resolvePackageMetadataT(
|
|
1700
|
-
projectRoot,
|
|
1701
|
-
logger,
|
|
1702
|
-
readRawPackageJsonFn,
|
|
1703
|
-
mergeRawPackageJson.bind(
|
|
1704
|
-
void 0,
|
|
1705
|
-
fetchGitMetadata,
|
|
1706
|
-
alwaysOverrideVersionFromGit,
|
|
1707
|
-
inheritableFields,
|
|
1708
|
-
sourceMap
|
|
1709
|
-
)
|
|
1710
|
-
);
|
|
1711
|
-
return {
|
|
1712
|
-
metadata: packageJson,
|
|
1713
|
-
sourceMap
|
|
1714
|
-
};
|
|
1715
|
-
};
|
|
1716
|
-
const parsePackedRefs = async (packedRefsPath) => {
|
|
1717
|
-
try {
|
|
1718
|
-
const content = await readFile(packedRefsPath, "utf-8");
|
|
1719
|
-
const lines = content.split("\n");
|
|
1720
|
-
const tags = [];
|
|
1721
|
-
for (const line2 of lines) {
|
|
1722
|
-
if (line2.startsWith("#") || !line2.trim()) continue;
|
|
1723
|
-
const match = line2.match(/^[0-9a-f]{40}\s+refs\/tags\/(.+)$/);
|
|
1724
|
-
if (match) {
|
|
1725
|
-
const tagName = match[1];
|
|
1726
|
-
if (!tagName.endsWith("^{}")) {
|
|
1727
|
-
tags.push(tagName);
|
|
1728
|
-
}
|
|
1729
|
-
}
|
|
1730
|
-
}
|
|
1731
|
-
return tags;
|
|
1732
|
-
} catch (error) {
|
|
1733
|
-
if (error.code === "ENOENT") {
|
|
1734
|
-
return [];
|
|
1735
|
-
}
|
|
1736
|
-
throw error;
|
|
1737
|
-
}
|
|
1738
|
-
};
|
|
1739
|
-
const readLooseTags = async (refsTagsPath) => {
|
|
1740
|
-
try {
|
|
1741
|
-
const entries = await readdir(refsTagsPath, { withFileTypes: true });
|
|
1742
|
-
const tags = [];
|
|
1743
|
-
for (const entry of entries) {
|
|
1744
|
-
if (entry.isFile()) {
|
|
1745
|
-
tags.push(entry.name);
|
|
1746
|
-
}
|
|
1747
|
-
}
|
|
1748
|
-
return tags;
|
|
1749
|
-
} catch (error) {
|
|
1750
|
-
if (error.code === "ENOENT") {
|
|
1751
|
-
return [];
|
|
1752
|
-
}
|
|
1753
|
-
throw error;
|
|
1754
|
-
}
|
|
1755
|
-
};
|
|
1756
|
-
const listTagsFast = async (repoPath) => {
|
|
1757
|
-
const gitDir = join(repoPath, ".git");
|
|
1758
|
-
const gitStat = await stat(gitDir).catch(() => null);
|
|
1759
|
-
let actualGitDir = gitDir;
|
|
1760
|
-
if (gitStat == null ? void 0 : gitStat.isFile()) {
|
|
1761
|
-
const content = await readFile(gitDir, "utf-8");
|
|
1762
|
-
const match = content.match(/^gitdir:\s*(.+)$/m);
|
|
1763
|
-
if (match) {
|
|
1764
|
-
actualGitDir = isAbsolute(match[1]) ? match[1] : join(repoPath, match[1]);
|
|
1765
|
-
}
|
|
1766
|
-
}
|
|
1767
|
-
const [packedTags, looseTags] = await Promise.all([
|
|
1768
|
-
parsePackedRefs(join(actualGitDir, "packed-refs")),
|
|
1769
|
-
readLooseTags(join(actualGitDir, "refs", "tags"))
|
|
1770
|
-
]);
|
|
1771
|
-
const allTags = /* @__PURE__ */ new Set([...packedTags, ...looseTags]);
|
|
1772
|
-
return Array.from(allTags).sort();
|
|
1773
|
-
};
|
|
1774
|
-
const resolveTagsBatchWithCommit = async (repoPath, tagNames, logger) => {
|
|
1775
|
-
const startTime = Date.now();
|
|
1776
|
-
const gitDir = join(repoPath, ".git");
|
|
1777
|
-
const result = /* @__PURE__ */ new Map();
|
|
1778
|
-
const gitStat = await stat(gitDir).catch(() => null);
|
|
1779
|
-
let actualGitDir = gitDir;
|
|
1780
|
-
if (gitStat == null ? void 0 : gitStat.isFile()) {
|
|
1781
|
-
const content = await readFile(gitDir, "utf-8");
|
|
1782
|
-
const match = content.match(/^gitdir:\s*(.+)$/m);
|
|
1783
|
-
if (match) {
|
|
1784
|
-
actualGitDir = isAbsolute(match[1]) ? match[1] : join(repoPath, match[1]);
|
|
1785
|
-
}
|
|
1786
|
-
}
|
|
1787
|
-
const tagSet = new Set(tagNames);
|
|
1788
|
-
const packedRefsStart = Date.now();
|
|
1789
|
-
try {
|
|
1790
|
-
const content = await readFile(join(actualGitDir, "packed-refs"), "utf-8");
|
|
1791
|
-
const lines = content.split("\n");
|
|
1792
|
-
for (let i = 0; i < lines.length; i++) {
|
|
1793
|
-
const line2 = lines[i];
|
|
1794
|
-
if (line2.startsWith("#") || !line2.trim()) continue;
|
|
1795
|
-
const match = line2.match(/^([0-9a-f]{40})\s+refs\/tags\/(.+)$/);
|
|
1796
|
-
if (match && tagSet.has(match[2])) {
|
|
1797
|
-
const tagName = match[2];
|
|
1798
|
-
const oid = match[1];
|
|
1799
|
-
let commitOid = oid;
|
|
1800
|
-
if (i + 1 < lines.length && lines[i + 1].startsWith("^")) {
|
|
1801
|
-
commitOid = lines[i + 1].substring(1, 41);
|
|
1802
|
-
}
|
|
1803
|
-
result.set(tagName, { oid, commitOid });
|
|
1804
|
-
}
|
|
1805
|
-
}
|
|
1806
|
-
} catch (error) {
|
|
1807
|
-
if (error.code !== "ENOENT") {
|
|
1808
|
-
throw error;
|
|
1809
|
-
}
|
|
1810
|
-
}
|
|
1811
|
-
logger.debug(
|
|
1812
|
-
`[fast-tags] read packed-refs: ${Date.now() - packedRefsStart}ms`
|
|
1813
|
-
);
|
|
1814
|
-
const remainingTags = tagNames.filter((tag) => !result.has(tag));
|
|
1815
|
-
if (remainingTags.length > 0) {
|
|
1816
|
-
const looseRefsStart = Date.now();
|
|
1817
|
-
await Promise.all(
|
|
1818
|
-
remainingTags.map(async (tagName) => {
|
|
1819
|
-
const looseRefPath = join(actualGitDir, "refs", "tags", tagName);
|
|
1820
|
-
try {
|
|
1821
|
-
const hash = await readFile(looseRefPath, "utf-8");
|
|
1822
|
-
const oid = hash.trim();
|
|
1823
|
-
let commitOid = oid;
|
|
1824
|
-
try {
|
|
1825
|
-
const { execSync } = require("child_process");
|
|
1826
|
-
const objectType = execSync(
|
|
1827
|
-
`git -C "${repoPath}" cat-file -t ${oid}`,
|
|
1828
|
-
{ encoding: "utf-8" }
|
|
1829
|
-
).trim();
|
|
1830
|
-
if (objectType === "tag") {
|
|
1831
|
-
const tagContent = execSync(
|
|
1832
|
-
`git -C "${repoPath}" cat-file -p ${oid}`,
|
|
1833
|
-
{ encoding: "utf-8" }
|
|
1834
|
-
);
|
|
1835
|
-
const objectMatch = tagContent.match(/^object ([0-9a-f]{40})$/m);
|
|
1836
|
-
if (objectMatch) {
|
|
1837
|
-
commitOid = objectMatch[1];
|
|
1838
|
-
}
|
|
1839
|
-
}
|
|
1840
|
-
} catch (error) {
|
|
1841
|
-
logger.debug(
|
|
1842
|
-
`[fast-tags] Could not determine object type for ${tagName}: ${error}`
|
|
1843
|
-
);
|
|
1844
|
-
}
|
|
1845
|
-
result.set(tagName, { oid, commitOid });
|
|
1846
|
-
} catch (error) {
|
|
1847
|
-
if (error.code !== "ENOENT") {
|
|
1848
|
-
throw error;
|
|
1849
|
-
}
|
|
1850
|
-
}
|
|
1851
|
-
})
|
|
1852
|
-
);
|
|
1853
|
-
logger.debug(
|
|
1854
|
-
`[fast-tags] read loose refs: ${Date.now() - looseRefsStart}ms`
|
|
1855
|
-
);
|
|
1856
|
-
}
|
|
1857
|
-
const totalTime = Date.now() - startTime;
|
|
1858
|
-
logger.debug(`[fast-tags] resolveTagsBatchWithCommit total: ${totalTime}ms`);
|
|
1859
|
-
logger.debug(`[fast-tags] Resolved ${result.size}/${tagNames.length} tags`);
|
|
1860
|
-
return result;
|
|
1861
|
-
};
|
|
1862
|
-
__resolveDefaultExport$1(git__default);
|
|
1863
|
-
globalThis.__screwUpIsInCJS_63e978cf45c3 = false;
|
|
1864
|
-
function __resolveDefaultExport$1(module, isESM) {
|
|
1865
|
-
const __isInCJS = typeof globalThis !== "undefined" && globalThis.__screwUpIsInCJS_63e978cf45c3 === true;
|
|
1866
|
-
const maybe = module;
|
|
1867
|
-
const hasDefault = !!(maybe && typeof maybe === "object" && "default" in maybe);
|
|
1868
|
-
const unwrapNamespaceDefault = (value) => {
|
|
1869
|
-
if (!value || typeof value !== "object") {
|
|
1870
|
-
return value;
|
|
1871
|
-
}
|
|
1872
|
-
const inner = value;
|
|
1873
|
-
const isModule = inner.__esModule === true || typeof Symbol !== "undefined" && inner[Symbol.toStringTag] === "Module";
|
|
1874
|
-
if (isModule && "default" in inner) {
|
|
1875
|
-
return inner.default;
|
|
1876
|
-
}
|
|
1877
|
-
return value;
|
|
1878
|
-
};
|
|
1879
|
-
const resolvedDefault = hasDefault ? unwrapNamespaceDefault(maybe.default) : void 0;
|
|
1880
|
-
if (__isInCJS) {
|
|
1881
|
-
return hasDefault ? resolvedDefault != null ? resolvedDefault : module : module;
|
|
1882
|
-
}
|
|
1883
|
-
return hasDefault ? resolvedDefault != null ? resolvedDefault : module : module;
|
|
1884
|
-
}
|
|
1885
|
-
const buildCompleteTagCache = async (repoPath, parseVersion2, logger) => {
|
|
1886
|
-
const totalStart = Date.now();
|
|
1887
|
-
const cache = /* @__PURE__ */ new Map();
|
|
1888
|
-
const listStart = Date.now();
|
|
1889
|
-
const tags = await listTagsFast(repoPath);
|
|
1890
|
-
logger.debug(`[git-ops] listTagsFast: ${Date.now() - listStart}ms`);
|
|
1891
|
-
logger.debug(`[git-ops] Found ${tags.length} tags`);
|
|
1892
|
-
const resolveStart = Date.now();
|
|
1893
|
-
const tagData = await resolveTagsBatchWithCommit(repoPath, tags, logger);
|
|
1894
|
-
logger.debug(
|
|
1895
|
-
`[git-ops] resolveTagsBatchWithCommit: ${Date.now() - resolveStart}ms`
|
|
1896
|
-
);
|
|
1897
|
-
const buildStart = Date.now();
|
|
1898
|
-
for (const tagName of tags) {
|
|
1899
|
-
const data = tagData.get(tagName);
|
|
1900
|
-
if (!data) continue;
|
|
1901
|
-
const { commitOid } = data;
|
|
1902
|
-
const version2 = parseVersion2(tagName);
|
|
1903
|
-
const tagInfo = {
|
|
1904
|
-
name: tagName,
|
|
1905
|
-
hash: commitOid,
|
|
1906
|
-
version: version2
|
|
1907
|
-
};
|
|
1908
|
-
if (!cache.has(commitOid)) {
|
|
1909
|
-
cache.set(commitOid, []);
|
|
1910
|
-
}
|
|
1911
|
-
cache.get(commitOid).push(tagInfo);
|
|
1912
|
-
}
|
|
1913
|
-
logger.debug(`[git-ops] build cache map: ${Date.now() - buildStart}ms`);
|
|
1914
|
-
const sortStart = Date.now();
|
|
1915
|
-
for (const tags2 of cache.values()) {
|
|
1916
|
-
tags2.sort((a, b) => a.name.localeCompare(b.name));
|
|
1917
|
-
}
|
|
1918
|
-
logger.debug(`[git-ops] sort tags: ${Date.now() - sortStart}ms`);
|
|
1919
|
-
logger.debug(
|
|
1920
|
-
`[git-ops] buildCompleteTagCache total: ${Date.now() - totalStart}ms`
|
|
1921
|
-
);
|
|
1922
|
-
logger.debug(`[git-ops] Built cache with ${cache.size} unique commits`);
|
|
1923
|
-
return cache;
|
|
1924
|
-
};
|
|
1925
|
-
const dayjs = __resolveDefaultExport(__screwUpDefaultImportModule0);
|
|
1926
|
-
globalThis.__screwUpIsInCJS_0fccafd118cb = false;
|
|
1927
|
-
function __resolveDefaultExport(module, isESM) {
|
|
1928
|
-
const __isInCJS = typeof globalThis !== "undefined" && globalThis.__screwUpIsInCJS_0fccafd118cb === true;
|
|
1929
|
-
const maybe = module;
|
|
1930
|
-
const hasDefault = !!(maybe && typeof maybe === "object" && "default" in maybe);
|
|
1931
|
-
const unwrapNamespaceDefault = (value) => {
|
|
1932
|
-
if (!value || typeof value !== "object") {
|
|
1933
|
-
return value;
|
|
1934
|
-
}
|
|
1935
|
-
const inner = value;
|
|
1936
|
-
const isModule = inner.__esModule === true || typeof Symbol !== "undefined" && inner[Symbol.toStringTag] === "Module";
|
|
1937
|
-
if (isModule && "default" in inner) {
|
|
1938
|
-
return inner.default;
|
|
1939
|
-
}
|
|
1940
|
-
return value;
|
|
1941
|
-
};
|
|
1942
|
-
const resolvedDefault = hasDefault ? unwrapNamespaceDefault(maybe.default) : void 0;
|
|
1943
|
-
if (__isInCJS) {
|
|
1944
|
-
return hasDefault ? resolvedDefault != null ? resolvedDefault : module : module;
|
|
1945
|
-
}
|
|
1946
|
-
return hasDefault ? resolvedDefault != null ? resolvedDefault : module : module;
|
|
1947
|
-
}
|
|
1948
|
-
const parseVersionComponent = (value) => {
|
|
1949
|
-
const num = parseInt(value, 10);
|
|
1950
|
-
return num < 0 || num > 65535 ? void 0 : num;
|
|
1951
|
-
};
|
|
1952
|
-
const parseVersion = (tagName) => {
|
|
1953
|
-
const cleanTag = tagName.replace(/^v/i, "");
|
|
1954
|
-
const versionRegex = /^(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.(\d+))?$/;
|
|
1955
|
-
const match = cleanTag.match(versionRegex);
|
|
1956
|
-
if (!match) {
|
|
1957
|
-
return void 0;
|
|
1958
|
-
}
|
|
1959
|
-
const major = parseVersionComponent(match[1]);
|
|
1960
|
-
if (major === void 0) {
|
|
1961
|
-
return void 0;
|
|
1962
|
-
}
|
|
1963
|
-
const version2 = {
|
|
1964
|
-
major,
|
|
1965
|
-
original: tagName
|
|
1966
|
-
};
|
|
1967
|
-
if (match[2] !== void 0) {
|
|
1968
|
-
const minor = parseVersionComponent(match[2]);
|
|
1969
|
-
if (minor === void 0) {
|
|
1970
|
-
return void 0;
|
|
1971
|
-
}
|
|
1972
|
-
version2.minor = minor;
|
|
1973
|
-
}
|
|
1974
|
-
if (match[3] !== void 0) {
|
|
1975
|
-
const build = parseVersionComponent(match[3]);
|
|
1976
|
-
if (build === void 0) {
|
|
1977
|
-
return void 0;
|
|
1978
|
-
}
|
|
1979
|
-
version2.build = build;
|
|
1980
|
-
}
|
|
1981
|
-
if (match[4] !== void 0) {
|
|
1982
|
-
const revision = parseVersionComponent(match[4]);
|
|
1983
|
-
if (revision === void 0) {
|
|
1984
|
-
return void 0;
|
|
1985
|
-
}
|
|
1986
|
-
version2.revision = revision;
|
|
1987
|
-
}
|
|
1988
|
-
return version2;
|
|
1989
|
-
};
|
|
1990
|
-
const isValidVersion = (version2) => {
|
|
1991
|
-
return version2.major >= 0 && (version2.minor === void 0 || version2.minor >= 0);
|
|
1992
|
-
};
|
|
1993
|
-
const compareVersions = (a, b) => {
|
|
1994
|
-
var _a, _b, _c, _d, _e, _f;
|
|
1995
|
-
if (a.major !== b.major) return b.major - a.major;
|
|
1996
|
-
const aMinor = (_a = a.minor) != null ? _a : 0;
|
|
1997
|
-
const bMinor = (_b = b.minor) != null ? _b : 0;
|
|
1998
|
-
if (aMinor !== bMinor) return bMinor - aMinor;
|
|
1999
|
-
const aBuild = (_c = a.build) != null ? _c : 0;
|
|
2000
|
-
const bBuild = (_d = b.build) != null ? _d : 0;
|
|
2001
|
-
if (aBuild !== bBuild) return bBuild - aBuild;
|
|
2002
|
-
const aRevision = (_e = a.revision) != null ? _e : 0;
|
|
2003
|
-
const bRevision = (_f = b.revision) != null ? _f : 0;
|
|
2004
|
-
if (aRevision !== bRevision) return bRevision - aRevision;
|
|
2005
|
-
return 0;
|
|
2006
|
-
};
|
|
2007
|
-
const incrementLastVersionComponent = (version2) => {
|
|
2008
|
-
if (version2.revision !== void 0) {
|
|
2009
|
-
return { ...version2, revision: version2.revision + 1 };
|
|
2010
|
-
}
|
|
2011
|
-
if (version2.build !== void 0) {
|
|
2012
|
-
return { ...version2, build: version2.build + 1 };
|
|
2013
|
-
}
|
|
2014
|
-
if (version2.minor !== void 0) {
|
|
2015
|
-
return { ...version2, minor: version2.minor + 1 };
|
|
2016
|
-
}
|
|
2017
|
-
return {
|
|
2018
|
-
...version2,
|
|
2019
|
-
major: version2.major + 1,
|
|
2020
|
-
original: `${version2.major + 1}`
|
|
2021
|
-
};
|
|
2022
|
-
};
|
|
2023
|
-
const formatVersion = (version2) => {
|
|
2024
|
-
let result = `${version2.major}`;
|
|
2025
|
-
if (version2.minor !== void 0) {
|
|
2026
|
-
result += `.${version2.minor}`;
|
|
2027
|
-
if (version2.build !== void 0) {
|
|
2028
|
-
result += `.${version2.build}`;
|
|
2029
|
-
if (version2.revision !== void 0) {
|
|
2030
|
-
result += `.${version2.revision}`;
|
|
2031
|
-
}
|
|
2032
|
-
}
|
|
2033
|
-
}
|
|
2034
|
-
return result;
|
|
2035
|
-
};
|
|
2036
|
-
const getCommit = async (repositoryPath, hash) => {
|
|
2037
|
-
try {
|
|
2038
|
-
const commit = await git.readCommit({ fs, dir: repositoryPath, oid: hash });
|
|
2039
|
-
return {
|
|
2040
|
-
hash: commit.oid,
|
|
2041
|
-
shortHash: commit.oid.substring(0, 7),
|
|
2042
|
-
date: new Date(commit.commit.author.timestamp * 1e3).toISOString(),
|
|
2043
|
-
message: commit.commit.message.trim(),
|
|
2044
|
-
parents: commit.commit.parent || []
|
|
2045
|
-
};
|
|
2046
|
-
} catch (e) {
|
|
2047
|
-
return void 0;
|
|
2048
|
-
}
|
|
2049
|
-
};
|
|
2050
|
-
const getCurrentCommit = async (repositoryPath) => {
|
|
2051
|
-
try {
|
|
2052
|
-
const currentOid = await git.resolveRef({
|
|
2053
|
-
fs,
|
|
2054
|
-
dir: repositoryPath,
|
|
2055
|
-
ref: "HEAD"
|
|
2056
|
-
});
|
|
2057
|
-
const commit = await git.readCommit({
|
|
2058
|
-
fs,
|
|
2059
|
-
dir: repositoryPath,
|
|
2060
|
-
oid: currentOid
|
|
2061
|
-
});
|
|
2062
|
-
return {
|
|
2063
|
-
hash: commit.oid,
|
|
2064
|
-
shortHash: commit.oid.substring(0, 7),
|
|
2065
|
-
date: new Date(commit.commit.author.timestamp * 1e3).toISOString(),
|
|
2066
|
-
message: commit.commit.message.trim(),
|
|
2067
|
-
parents: commit.commit.parent || []
|
|
2068
|
-
};
|
|
2069
|
-
} catch (e) {
|
|
2070
|
-
return void 0;
|
|
2071
|
-
}
|
|
2072
|
-
};
|
|
2073
|
-
const getRelatedTagsFromMap = (commitToTags, commitHash) => {
|
|
2074
|
-
return commitToTags.get(commitHash) || [];
|
|
2075
|
-
};
|
|
2076
|
-
const getRelatedBranches = async (repositoryPath, commitHash) => {
|
|
2077
|
-
try {
|
|
2078
|
-
const branches = await git.listBranches({ fs, dir: repositoryPath });
|
|
2079
|
-
const relatedBranches = [];
|
|
2080
|
-
for (const branch of branches) {
|
|
2081
|
-
try {
|
|
2082
|
-
const branchOid = await git.resolveRef({
|
|
2083
|
-
fs,
|
|
2084
|
-
dir: repositoryPath,
|
|
2085
|
-
ref: branch
|
|
2086
|
-
});
|
|
2087
|
-
if (branchOid === commitHash) {
|
|
2088
|
-
relatedBranches.push(branch);
|
|
2089
|
-
}
|
|
2090
|
-
} catch (e) {
|
|
2091
|
-
}
|
|
2092
|
-
}
|
|
2093
|
-
return relatedBranches;
|
|
2094
|
-
} catch (e) {
|
|
2095
|
-
return [];
|
|
2096
|
-
}
|
|
2097
|
-
};
|
|
2098
|
-
const getModifiedFiles = async (repositoryPath) => {
|
|
2099
|
-
try {
|
|
2100
|
-
const status = await git.statusMatrix({ fs, dir: repositoryPath });
|
|
2101
|
-
return status.filter(
|
|
2102
|
-
([, head, workdir, stage]) => workdir === 2 || // modified in working directory (unstaged)
|
|
2103
|
-
stage === 2 || // modified in stage (staged)
|
|
2104
|
-
stage === 3 || // added to stage (staged)
|
|
2105
|
-
head === 1 && workdir === 0 || // deleted from working directory
|
|
2106
|
-
head === 0 && workdir === 1
|
|
2107
|
-
// untracked files (respecting .gitignore)
|
|
2108
|
-
);
|
|
2109
|
-
} catch (e) {
|
|
2110
|
-
return [];
|
|
2111
|
-
}
|
|
2112
|
-
};
|
|
2113
|
-
const formatModifiedFile = (modifiedFile) => {
|
|
2114
|
-
return `'${modifiedFile[0]}':${modifiedFile[1]}:${modifiedFile[2]}:${modifiedFile[3]}`;
|
|
2115
|
-
};
|
|
2116
|
-
const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits, commitToTags) => {
|
|
2117
|
-
const scheduledStack = [];
|
|
2118
|
-
let version2 = { major: 0, minor: 0, build: 1, original: "0.0.1" };
|
|
2119
|
-
let currentCommit = commit;
|
|
2120
|
-
while (true) {
|
|
2121
|
-
if (reachedCommits.has(currentCommit.hash)) {
|
|
2122
|
-
version2 = reachedCommits.get(currentCommit.hash);
|
|
2123
|
-
break;
|
|
2124
|
-
}
|
|
2125
|
-
const relatedTags = getRelatedTagsFromMap(commitToTags, currentCommit.hash);
|
|
2126
|
-
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));
|
|
2127
|
-
if (versionCandidates.length >= 1) {
|
|
2128
|
-
version2 = versionCandidates[0].version;
|
|
2129
|
-
reachedCommits.set(currentCommit.hash, version2);
|
|
2130
|
-
break;
|
|
2131
|
-
}
|
|
2132
|
-
let parentCommits = [];
|
|
2133
|
-
try {
|
|
2134
|
-
const commitObj = await git.readCommit({
|
|
2135
|
-
fs,
|
|
2136
|
-
dir: cwd,
|
|
2137
|
-
oid: currentCommit.hash
|
|
2138
|
-
});
|
|
2139
|
-
const parentHashes = commitObj.commit.parent || [];
|
|
2140
|
-
parentCommits = (await Promise.all(
|
|
2141
|
-
parentHashes.map((parentHash) => getCommit(cwd, parentHash))
|
|
2142
|
-
)).filter((ci) => ci !== void 0);
|
|
2143
|
-
} catch (e) {
|
|
2144
|
-
}
|
|
2145
|
-
if (parentCommits.length === 0) {
|
|
2146
|
-
reachedCommits.set(currentCommit.hash, version2);
|
|
2147
|
-
break;
|
|
2148
|
-
}
|
|
2149
|
-
scheduledStack.push({ commit: currentCommit, parents: parentCommits });
|
|
2150
|
-
currentCommit = parentCommits[0];
|
|
2151
|
-
}
|
|
2152
|
-
while (scheduledStack.length >= 1) {
|
|
2153
|
-
const scheduled = scheduledStack.pop();
|
|
2154
|
-
const { commit: scheduledCommit, parents } = scheduled;
|
|
2155
|
-
if (parents.length >= 2) {
|
|
2156
|
-
for (let index = 1; index < parents.length; index++) {
|
|
2157
|
-
const alternateParentVersion = await lookupVersionLabelRecursive(
|
|
2158
|
-
cwd,
|
|
2159
|
-
parents[index],
|
|
2160
|
-
reachedCommits,
|
|
2161
|
-
commitToTags
|
|
2162
|
-
);
|
|
2163
|
-
if (alternateParentVersion && compareVersions(alternateParentVersion, version2) < 0) {
|
|
2164
|
-
version2 = alternateParentVersion;
|
|
2165
|
-
}
|
|
2166
|
-
}
|
|
2167
|
-
}
|
|
2168
|
-
version2 = incrementLastVersionComponent(version2);
|
|
2169
|
-
reachedCommits.set(scheduledCommit.hash, version2);
|
|
2170
|
-
}
|
|
2171
|
-
return version2;
|
|
2172
|
-
};
|
|
2173
|
-
const getGitMetadata = async (repositoryPath, checkWorkingDirectoryStatus, logger) => {
|
|
2174
|
-
const startTime = Date.now();
|
|
2175
|
-
const metadata = {};
|
|
2176
|
-
let gitRootPath;
|
|
2177
|
-
try {
|
|
2178
|
-
gitRootPath = await git.findRoot({ fs, filepath: repositoryPath });
|
|
2179
|
-
} catch (e) {
|
|
2180
|
-
logger.debug(
|
|
2181
|
-
`[screw-up] Total getGitMetadata: ${Date.now() - startTime}ms`
|
|
2182
|
-
);
|
|
2183
|
-
return metadata;
|
|
2184
|
-
}
|
|
2185
|
-
try {
|
|
2186
|
-
const currentCommit = await getCurrentCommit(gitRootPath);
|
|
2187
|
-
if (!currentCommit) {
|
|
2188
|
-
logger.debug(
|
|
2189
|
-
`[screw-up] Total getGitMetadata: ${Date.now() - startTime}ms`
|
|
2190
|
-
);
|
|
2191
|
-
return metadata;
|
|
2192
|
-
}
|
|
2193
|
-
const buildStart = Date.now();
|
|
2194
|
-
const commitToTags = await buildCompleteTagCache(
|
|
2195
|
-
gitRootPath,
|
|
2196
|
-
(tagName) => {
|
|
2197
|
-
const version22 = parseVersion(tagName);
|
|
2198
|
-
return version22 && isValidVersion(version22) ? version22 : void 0;
|
|
2199
|
-
},
|
|
2200
|
-
logger
|
|
2201
|
-
);
|
|
2202
|
-
logger.debug(
|
|
2203
|
-
`[screw-up] buildCompleteTagCache: ${Date.now() - buildStart}ms`
|
|
2204
|
-
);
|
|
2205
|
-
logger.debug(`Built tag map with ${commitToTags.size} commits`);
|
|
2206
|
-
const reachedCommits = /* @__PURE__ */ new Map();
|
|
2207
|
-
let version2 = await lookupVersionLabelRecursive(
|
|
2208
|
-
gitRootPath,
|
|
2209
|
-
currentCommit,
|
|
2210
|
-
reachedCommits,
|
|
2211
|
-
commitToTags
|
|
2212
|
-
);
|
|
2213
|
-
const gitMetadata = { tags: [], branches: [] };
|
|
2214
|
-
metadata.git = gitMetadata;
|
|
2215
|
-
if (version2) {
|
|
2216
|
-
if (checkWorkingDirectoryStatus) {
|
|
2217
|
-
const modifiedFiles = await getModifiedFiles(gitRootPath);
|
|
2218
|
-
if (modifiedFiles.length >= 1) {
|
|
2219
|
-
const newVersion = incrementLastVersionComponent(version2);
|
|
2220
|
-
logger.debug(
|
|
2221
|
-
`Increased git version by detected modified items: ${formatVersion(version2)} ---> ${formatVersion(newVersion)}, Files=[${modifiedFiles.map(formatModifiedFile).join(", ")}]`
|
|
2222
|
-
);
|
|
2223
|
-
version2 = newVersion;
|
|
2224
|
-
}
|
|
2225
|
-
}
|
|
2226
|
-
const gitVersion = formatVersion(version2);
|
|
2227
|
-
gitMetadata.version = gitVersion;
|
|
2228
|
-
metadata.version = gitVersion;
|
|
2229
|
-
}
|
|
2230
|
-
gitMetadata.commit = {
|
|
2231
|
-
hash: currentCommit.hash,
|
|
2232
|
-
shortHash: currentCommit.shortHash,
|
|
2233
|
-
date: dayjs(currentCommit.date).format("YYYY-MM-DDTHH:mm:ssZ"),
|
|
2234
|
-
message: currentCommit.message
|
|
2235
|
-
};
|
|
2236
|
-
const relatedTags = getRelatedTagsFromMap(commitToTags, currentCommit.hash);
|
|
2237
|
-
gitMetadata.tags = relatedTags.map((tag) => tag.name);
|
|
2238
|
-
const relatedBranches = await getRelatedBranches(
|
|
2239
|
-
gitRootPath,
|
|
2240
|
-
currentCommit.hash
|
|
2241
|
-
);
|
|
2242
|
-
gitMetadata.branches = relatedBranches;
|
|
2243
|
-
} catch (error) {
|
|
2244
|
-
logger.warn(`Failed to extract git metadata: ${error}`);
|
|
2245
|
-
}
|
|
2246
|
-
logger.debug(`[screw-up] Total getGitMetadata: ${Date.now() - startTime}ms`);
|
|
2247
|
-
return metadata;
|
|
2248
|
-
};
|
|
2249
|
-
const getFetchGitMetadata = (targetDir, checkWorkingDirectoryStatus, logger) => {
|
|
2250
|
-
let cachedMetadata;
|
|
2251
|
-
return async () => {
|
|
2252
|
-
if (!cachedMetadata) {
|
|
2253
|
-
cachedMetadata = await getGitMetadata(
|
|
2254
|
-
targetDir,
|
|
2255
|
-
checkWorkingDirectoryStatus,
|
|
2256
|
-
logger
|
|
2257
|
-
);
|
|
2258
|
-
}
|
|
2259
|
-
return cachedMetadata;
|
|
2260
|
-
};
|
|
2261
|
-
};
|
|
2262
|
-
const sanitizeKey = (key2) => {
|
|
2263
|
-
return key2.replace(/[^a-zA-Z0-9_]/g, "_").replace(/^(\d)/, "_$1");
|
|
2264
|
-
};
|
|
2265
|
-
const generateMetadataFileContent = (metadata, outputKeys) => {
|
|
2266
|
-
const lines = [];
|
|
2267
|
-
lines.push("// @ts-nocheck");
|
|
2268
|
-
lines.push("// This file is auto-generated by screw-up plugin");
|
|
2269
|
-
lines.push("// Do not edit manually");
|
|
2270
|
-
lines.push("");
|
|
2271
|
-
for (const key2 of outputKeys) {
|
|
2272
|
-
const value = metadata[key2];
|
|
2273
|
-
if (value) {
|
|
2274
|
-
const sanitizedKey = sanitizeKey(key2);
|
|
2275
|
-
const escapedValue = JSON.stringify(value);
|
|
2276
|
-
lines.push(`export const ${sanitizedKey} = ${escapedValue};`);
|
|
2277
|
-
}
|
|
2278
|
-
}
|
|
2279
|
-
lines.push("");
|
|
2280
|
-
return lines.join("\n");
|
|
2281
|
-
};
|
|
2282
|
-
const writeFileIfChanged = async (filePath, content, description, logger) => {
|
|
2283
|
-
try {
|
|
2284
|
-
let shouldWrite = !existsSync(filePath);
|
|
2285
|
-
if (!shouldWrite) {
|
|
2286
|
-
try {
|
|
2287
|
-
const existingContent = await readFile(filePath, "utf-8");
|
|
2288
|
-
shouldWrite = existingContent !== content;
|
|
2289
|
-
} catch (e) {
|
|
2290
|
-
shouldWrite = true;
|
|
2291
|
-
}
|
|
2292
|
-
}
|
|
2293
|
-
if (shouldWrite) {
|
|
2294
|
-
await mkdir(dirname(filePath), { recursive: true });
|
|
2295
|
-
await writeFile(filePath, content);
|
|
2296
|
-
return true;
|
|
2297
|
-
} else {
|
|
2298
|
-
return false;
|
|
2299
|
-
}
|
|
2300
|
-
} catch (error) {
|
|
2301
|
-
logger.warn(`Failed to write ${description}: ${filePath}: ${error}`);
|
|
2302
|
-
return false;
|
|
2303
|
-
}
|
|
2304
|
-
};
|
|
2305
|
-
const ensureMetadataGitignore = async (metadataSourcePath, logger) => {
|
|
2306
|
-
const metadataDirectory = dirname(metadataSourcePath);
|
|
2307
|
-
const gitignorePath = join(metadataDirectory, ".gitignore");
|
|
2308
|
-
if (existsSync(gitignorePath)) {
|
|
2309
|
-
return false;
|
|
2310
|
-
}
|
|
2311
|
-
try {
|
|
2312
|
-
await mkdir(metadataDirectory, { recursive: true });
|
|
2313
|
-
const metadataFileName = basename(metadataSourcePath);
|
|
2314
|
-
const gitignoreContent = `# Auto-generated by screw-up plugin
|
|
2315
|
-
${metadataFileName}
|
|
2316
|
-
`;
|
|
2317
|
-
await writeFile(gitignorePath, gitignoreContent);
|
|
2318
|
-
return true;
|
|
2319
|
-
} catch (error) {
|
|
2320
|
-
logger.warn(
|
|
2321
|
-
`Failed to write .gitignore for metadata source: ${gitignorePath}: ${error}`
|
|
2322
|
-
);
|
|
2323
|
-
return false;
|
|
2324
|
-
}
|
|
2325
|
-
};
|
|
2326
|
-
export {
|
|
2327
|
-
git_commit_hash as a,
|
|
2328
|
-
generateMetadataFileContent as b,
|
|
2329
|
-
createConsoleLogger as c,
|
|
2330
|
-
resolveRawPackageJsonObject as d,
|
|
2331
|
-
ensureMetadataGitignore as e,
|
|
2332
|
-
findWorkspaceRoot as f,
|
|
2333
|
-
getFetchGitMetadata as g,
|
|
2334
|
-
collectWorkspaceSiblings as h,
|
|
2335
|
-
replacePeerDependenciesWildcards as i,
|
|
2336
|
-
lib as l,
|
|
2337
|
-
name as n,
|
|
2338
|
-
packageMetadata as p,
|
|
2339
|
-
resolvePackageMetadata as r,
|
|
2340
|
-
version as v,
|
|
2341
|
-
writeFileIfChanged as w
|
|
2342
|
-
};
|
|
2343
|
-
//# sourceMappingURL=metadata-file-B4RbKbol.js.map
|