screw-up 1.4.0 → 1.5.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.
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * name: screw-up
3
- * version: 1.4.0
3
+ * version: 1.5.0
4
4
  * description: Simply package metadata inserter on Vite plugin
5
5
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
6
  * license: MIT
7
7
  * repository.url: https://github.com/kekyo/screw-up.git
8
- * git.commit.hash: 48850bae9ed83a921ef5239628983b3e797a0ce7
8
+ * git.commit.hash: 72fd5b88656bc400ba3fed500895826208e23217
9
9
  */
10
10
  "use strict";
11
11
  const fs = require("fs");
@@ -1794,52 +1794,72 @@ const getCurrentCommit = async (repositoryPath) => {
1794
1794
  return void 0;
1795
1795
  }
1796
1796
  };
1797
- const getRelatedTags = async (repositoryPath, commitHash) => {
1797
+ const buildTagCache = async (repositoryPath) => {
1798
+ const cache = {
1799
+ commitToTags: /* @__PURE__ */ new Map(),
1800
+ initialized: true
1801
+ };
1798
1802
  try {
1799
1803
  const tags = await git__namespace.listTags({ fs: fs__namespace, dir: repositoryPath });
1800
- const tagInfos = [];
1801
- for (const tagName of tags) {
1802
- try {
1803
- const tagOid = await git__namespace.resolveRef({
1804
- fs: fs__namespace,
1805
- dir: repositoryPath,
1806
- ref: `refs/tags/${tagName}`
1807
- });
1808
- let targetCommitOid = tagOid;
1804
+ await Promise.all(
1805
+ tags.map(async (tagName) => {
1809
1806
  try {
1810
- const tagObject = await git__namespace.readTag({
1807
+ const tagOid = await git__namespace.resolveRef({
1811
1808
  fs: fs__namespace,
1812
1809
  dir: repositoryPath,
1813
- oid: tagOid
1810
+ ref: `refs/tags/${tagName}`
1814
1811
  });
1815
- if (tagObject && tagObject.tag.object) {
1816
- targetCommitOid = tagObject.tag.object;
1817
- }
1818
- } catch (e) {
1819
- }
1820
- if (targetCommitOid === commitHash) {
1821
1812
  const version2 = parseVersion(tagName);
1822
- if (version2 && isValidVersion(version2)) {
1823
- tagInfos.push({
1824
- name: tagName,
1825
- hash: commitHash,
1826
- version: version2
1827
- });
1828
- } else {
1829
- tagInfos.push({
1830
- name: tagName,
1831
- hash: commitHash,
1832
- version: void 0
1813
+ const tagInfo = {
1814
+ name: tagName,
1815
+ hash: tagOid,
1816
+ // This will be updated for annotated tags
1817
+ version: version2 && isValidVersion(version2) ? version2 : void 0
1818
+ };
1819
+ if (!cache.commitToTags.has(tagOid)) {
1820
+ cache.commitToTags.set(tagOid, []);
1821
+ }
1822
+ cache.commitToTags.get(tagOid).push({ ...tagInfo, hash: tagOid });
1823
+ try {
1824
+ const tagObject = await git__namespace.readTag({
1825
+ fs: fs__namespace,
1826
+ dir: repositoryPath,
1827
+ oid: tagOid
1833
1828
  });
1829
+ if (tagObject && tagObject.tag.object) {
1830
+ const commitOid = tagObject.tag.object;
1831
+ const lightweightTags = cache.commitToTags.get(tagOid);
1832
+ if (lightweightTags) {
1833
+ const index = lightweightTags.findIndex(
1834
+ (t) => t.name === tagName
1835
+ );
1836
+ if (index >= 0) {
1837
+ lightweightTags.splice(index, 1);
1838
+ if (lightweightTags.length === 0) {
1839
+ cache.commitToTags.delete(tagOid);
1840
+ }
1841
+ }
1842
+ }
1843
+ if (!cache.commitToTags.has(commitOid)) {
1844
+ cache.commitToTags.set(commitOid, []);
1845
+ }
1846
+ cache.commitToTags.get(commitOid).push({ ...tagInfo, hash: commitOid });
1847
+ }
1848
+ } catch (e) {
1834
1849
  }
1850
+ } catch (e) {
1835
1851
  }
1836
- } catch (e) {
1837
- }
1838
- }
1839
- return tagInfos.sort((a, b) => a.name.localeCompare(b.name));
1852
+ })
1853
+ );
1840
1854
  } catch (e) {
1855
+ }
1856
+ return cache;
1857
+ };
1858
+ const getRelatedTagsFromCache = (cache, commitHash) => {
1859
+ if (!cache.initialized) {
1841
1860
  return [];
1842
1861
  }
1862
+ return cache.commitToTags.get(commitHash) || [];
1843
1863
  };
1844
1864
  const getRelatedTagsForVersioning = async (repositoryPath, commitHash) => {
1845
1865
  try {
@@ -1852,19 +1872,7 @@ const getRelatedTagsForVersioning = async (repositoryPath, commitHash) => {
1852
1872
  dir: repositoryPath,
1853
1873
  ref: `refs/tags/${tagName}`
1854
1874
  });
1855
- let targetCommitOid = tagOid;
1856
- try {
1857
- const tagObject = await git__namespace.readTag({
1858
- fs: fs__namespace,
1859
- dir: repositoryPath,
1860
- oid: tagOid
1861
- });
1862
- if (tagObject && tagObject.tag.object) {
1863
- targetCommitOid = tagObject.tag.object;
1864
- }
1865
- } catch (e) {
1866
- }
1867
- if (targetCommitOid === commitHash) {
1875
+ if (tagOid === commitHash) {
1868
1876
  const version2 = parseVersion(tagName);
1869
1877
  if (version2 && isValidVersion(version2)) {
1870
1878
  tagInfos.push({
@@ -1873,6 +1881,25 @@ const getRelatedTagsForVersioning = async (repositoryPath, commitHash) => {
1873
1881
  version: version2
1874
1882
  });
1875
1883
  }
1884
+ } else {
1885
+ try {
1886
+ const tagObject = await git__namespace.readTag({
1887
+ fs: fs__namespace,
1888
+ dir: repositoryPath,
1889
+ oid: tagOid
1890
+ });
1891
+ if (tagObject && tagObject.tag.object === commitHash) {
1892
+ const version2 = parseVersion(tagName);
1893
+ if (version2 && isValidVersion(version2)) {
1894
+ tagInfos.push({
1895
+ name: tagName,
1896
+ hash: commitHash,
1897
+ version: version2
1898
+ });
1899
+ }
1900
+ }
1901
+ } catch (e) {
1902
+ }
1876
1903
  }
1877
1904
  } catch (e) {
1878
1905
  }
@@ -1922,7 +1949,7 @@ const getModifiedFiles = async (repositoryPath) => {
1922
1949
  const formatModifiedFile = (modifiedFile) => {
1923
1950
  return `'${modifiedFile[0]}':${modifiedFile[1]}:${modifiedFile[2]}:${modifiedFile[3]}`;
1924
1951
  };
1925
- const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits) => {
1952
+ const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits, tagCache) => {
1926
1953
  const scheduledStack = [];
1927
1954
  let version2 = { major: 0, minor: 0, build: 1, original: "0.0.1" };
1928
1955
  let currentCommit = commit;
@@ -1931,10 +1958,7 @@ const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits) => {
1931
1958
  version2 = reachedCommits.get(currentCommit.hash);
1932
1959
  break;
1933
1960
  }
1934
- const relatedTags = await getRelatedTagsForVersioning(
1935
- cwd,
1936
- currentCommit.hash
1937
- );
1961
+ const relatedTags = tagCache ? getRelatedTagsFromCache(tagCache, currentCommit.hash) : await getRelatedTagsForVersioning(cwd, currentCommit.hash);
1938
1962
  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));
1939
1963
  if (versionCandidates.length >= 1) {
1940
1964
  version2 = versionCandidates[0].version;
@@ -1969,7 +1993,8 @@ const lookupVersionLabelRecursive = async (cwd, commit, reachedCommits) => {
1969
1993
  const alternateParentVersion = await lookupVersionLabelRecursive(
1970
1994
  cwd,
1971
1995
  parents[index],
1972
- reachedCommits
1996
+ reachedCommits,
1997
+ tagCache
1973
1998
  );
1974
1999
  if (alternateParentVersion && compareVersions(alternateParentVersion, version2) < 0) {
1975
2000
  version2 = alternateParentVersion;
@@ -1994,11 +2019,16 @@ const getGitMetadata = async (repositoryPath, checkWorkingDirectoryStatus, logge
1994
2019
  if (!currentCommit) {
1995
2020
  return metadata;
1996
2021
  }
2022
+ const tagCache = await buildTagCache(gitRootPath);
2023
+ logger.debug(
2024
+ `Built tag cache with ${tagCache.commitToTags.size} commit entries`
2025
+ );
1997
2026
  const reachedCommits = /* @__PURE__ */ new Map();
1998
2027
  let version2 = await lookupVersionLabelRecursive(
1999
2028
  gitRootPath,
2000
2029
  currentCommit,
2001
- reachedCommits
2030
+ reachedCommits,
2031
+ tagCache
2002
2032
  );
2003
2033
  const gitMetadata = { tags: [], branches: [] };
2004
2034
  metadata.git = gitMetadata;
@@ -2023,7 +2053,7 @@ const getGitMetadata = async (repositoryPath, checkWorkingDirectoryStatus, logge
2023
2053
  date: dayjs(currentCommit.date).format("YYYY-MM-DDTHH:mm:ssZ[Z]"),
2024
2054
  message: currentCommit.message
2025
2055
  };
2026
- const relatedTags = await getRelatedTags(gitRootPath, currentCommit.hash);
2056
+ const relatedTags = getRelatedTagsFromCache(tagCache, currentCommit.hash);
2027
2057
  gitMetadata.tags = relatedTags.map((tag) => tag.name);
2028
2058
  const relatedBranches = await getRelatedBranches(
2029
2059
  gitRootPath,
@@ -2049,11 +2079,11 @@ const getFetchGitMetadata = (targetDir, checkWorkingDirectoryStatus, logger) =>
2049
2079
  };
2050
2080
  };
2051
2081
  const name = "screw-up";
2052
- const version = "1.4.0";
2082
+ const version = "1.5.0";
2053
2083
  const author = "Kouji Matsui (@kekyo@mi.kekyo.net)";
2054
2084
  const license = "MIT";
2055
2085
  const repository_url = "https://github.com/kekyo/screw-up.git";
2056
- const git_commit_hash = "48850bae9ed83a921ef5239628983b3e797a0ce7";
2086
+ const git_commit_hash = "72fd5b88656bc400ba3fed500895826208e23217";
2057
2087
  const packageMetadata = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2058
2088
  __proto__: null,
2059
2089
  author,
@@ -2074,4 +2104,4 @@ exports.replacePeerDependenciesWildcards = replacePeerDependenciesWildcards;
2074
2104
  exports.resolvePackageMetadata = resolvePackageMetadata;
2075
2105
  exports.resolveRawPackageJsonObject = resolveRawPackageJsonObject;
2076
2106
  exports.version = version;
2077
- //# sourceMappingURL=packageMetadata-BR1AdagI.cjs.map
2107
+ //# sourceMappingURL=packageMetadata-CbqTWPYD.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageMetadata-CbqTWPYD.cjs","sources":["../node_modules/json5/dist/index.mjs","../src/internal.ts","../node_modules/dayjs/dayjs.min.js","../src/analyzer.ts","../src/generated/packageMetadata.ts"],"sourcesContent":["// This is a generated file. Do not edit.\nvar Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nvar 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]/;\nvar 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]/;\n\nvar unicode = {\n\tSpace_Separator: Space_Separator,\n\tID_Start: ID_Start,\n\tID_Continue: ID_Continue\n};\n\nvar util = {\n isSpaceSeparator (c) {\n return typeof c === 'string' && unicode.Space_Separator.test(c)\n },\n\n isIdStartChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c === '$') || (c === '_') ||\n unicode.ID_Start.test(c)\n )\n },\n\n isIdContinueChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c >= '0' && c <= '9') ||\n (c === '$') || (c === '_') ||\n (c === '\\u200C') || (c === '\\u200D') ||\n unicode.ID_Continue.test(c)\n )\n },\n\n isDigit (c) {\n return typeof c === 'string' && /[0-9]/.test(c)\n },\n\n isHexDigit (c) {\n return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)\n },\n};\n\nlet source;\nlet parseState;\nlet stack;\nlet pos;\nlet line;\nlet column;\nlet token;\nlet key;\nlet root;\n\nvar parse = function parse (text, reviver) {\n source = String(text);\n parseState = 'start';\n stack = [];\n pos = 0;\n line = 1;\n column = 0;\n token = undefined;\n key = undefined;\n root = undefined;\n\n do {\n token = lex();\n\n // This code is unreachable.\n // if (!parseStates[parseState]) {\n // throw invalidParseState()\n // }\n\n parseStates[parseState]();\n } while (token.type !== 'eof')\n\n if (typeof reviver === 'function') {\n return internalize({'': root}, '', reviver)\n }\n\n return root\n};\n\nfunction internalize (holder, name, reviver) {\n const value = holder[name];\n if (value != null && typeof value === 'object') {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const key = String(i);\n const replacement = internalize(value, key, reviver);\n if (replacement === undefined) {\n delete value[key];\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n } else {\n for (const key in value) {\n const replacement = internalize(value, key, reviver);\n if (replacement === undefined) {\n delete value[key];\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n }\n }\n\n return reviver.call(holder, name, value)\n}\n\nlet lexState;\nlet buffer;\nlet doubleQuote;\nlet sign;\nlet c;\n\nfunction lex () {\n lexState = 'default';\n buffer = '';\n doubleQuote = false;\n sign = 1;\n\n for (;;) {\n c = peek();\n\n // This code is unreachable.\n // if (!lexStates[lexState]) {\n // throw invalidLexState(lexState)\n // }\n\n const token = lexStates[lexState]();\n if (token) {\n return token\n }\n }\n}\n\nfunction peek () {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos))\n }\n}\n\nfunction read () {\n const c = peek();\n\n if (c === '\\n') {\n line++;\n column = 0;\n } else if (c) {\n column += c.length;\n } else {\n column++;\n }\n\n if (c) {\n pos += c.length;\n }\n\n return c\n}\n\nconst lexStates = {\n default () {\n switch (c) {\n case '\\t':\n case '\\v':\n case '\\f':\n case ' ':\n case '\\u00A0':\n case '\\uFEFF':\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read();\n return\n\n case '/':\n read();\n lexState = 'comment';\n return\n\n case undefined:\n read();\n return newToken('eof')\n }\n\n if (util.isSpaceSeparator(c)) {\n read();\n return\n }\n\n // This code is unreachable.\n // if (!lexStates[parseState]) {\n // throw invalidLexState(parseState)\n // }\n\n return lexStates[parseState]()\n },\n\n comment () {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineComment';\n return\n\n case '/':\n read();\n lexState = 'singleLineComment';\n return\n }\n\n throw invalidChar(read())\n },\n\n multiLineComment () {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineCommentAsterisk';\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read();\n },\n\n multiLineCommentAsterisk () {\n switch (c) {\n case '*':\n read();\n return\n\n case '/':\n read();\n lexState = 'default';\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read();\n lexState = 'multiLineComment';\n },\n\n singleLineComment () {\n switch (c) {\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read();\n lexState = 'default';\n return\n\n case undefined:\n read();\n return newToken('eof')\n }\n\n read();\n },\n\n value () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n case 'n':\n read();\n literal('ull');\n return newToken('null', null)\n\n case 't':\n read();\n literal('rue');\n return newToken('boolean', true)\n\n case 'f':\n read();\n literal('alse');\n return newToken('boolean', false)\n\n case '-':\n case '+':\n if (read() === '-') {\n sign = -1;\n }\n\n lexState = 'sign';\n return\n\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return\n\n case '0':\n buffer = read();\n lexState = 'zero';\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return\n\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', Infinity)\n\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN)\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"');\n buffer = '';\n lexState = 'string';\n return\n }\n\n throw invalidChar(read())\n },\n\n identifierNameStartEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read();\n const u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n break\n\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u;\n lexState = 'identifierName';\n },\n\n identifierName () {\n switch (c) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n buffer += read();\n return\n\n case '\\\\':\n read();\n lexState = 'identifierNameEscape';\n return\n }\n\n if (util.isIdContinueChar(c)) {\n buffer += read();\n return\n }\n\n return newToken('identifier', buffer)\n },\n\n identifierNameEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read();\n const u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n break\n\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u;\n lexState = 'identifierName';\n },\n\n sign () {\n switch (c) {\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return\n\n case '0':\n buffer = read();\n lexState = 'zero';\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return\n\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', sign * Infinity)\n\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN)\n }\n\n throw invalidChar(read())\n },\n\n zero () {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return\n\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n\n case 'x':\n case 'X':\n buffer += read();\n lexState = 'hexadecimal';\n return\n }\n\n return newToken('numeric', sign * 0)\n },\n\n decimalInteger () {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return\n\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalPointLeading () {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalPoint () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalFraction () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalExponent () {\n switch (c) {\n case '+':\n case '-':\n buffer += read();\n lexState = 'decimalExponentSign';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentSign () {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentInteger () {\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n hexadecimal () {\n if (util.isHexDigit(c)) {\n buffer += read();\n lexState = 'hexadecimalInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n hexadecimalInteger () {\n if (util.isHexDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n string () {\n switch (c) {\n case '\\\\':\n read();\n buffer += escape();\n return\n\n case '\"':\n if (doubleQuote) {\n read();\n return newToken('string', buffer)\n }\n\n buffer += read();\n return\n\n case \"'\":\n if (!doubleQuote) {\n read();\n return newToken('string', buffer)\n }\n\n buffer += read();\n return\n\n case '\\n':\n case '\\r':\n throw invalidChar(read())\n\n case '\\u2028':\n case '\\u2029':\n separatorChar(c);\n break\n\n case undefined:\n throw invalidChar(read())\n }\n\n buffer += read();\n },\n\n start () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n // This code is unreachable since the default lexState handles eof.\n // case undefined:\n // return newToken('eof')\n }\n\n lexState = 'value';\n },\n\n beforePropertyName () {\n switch (c) {\n case '$':\n case '_':\n buffer = read();\n lexState = 'identifierName';\n return\n\n case '\\\\':\n read();\n lexState = 'identifierNameStartEscape';\n return\n\n case '}':\n return newToken('punctuator', read())\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"');\n lexState = 'string';\n return\n }\n\n if (util.isIdStartChar(c)) {\n buffer += read();\n lexState = 'identifierName';\n return\n }\n\n throw invalidChar(read())\n },\n\n afterPropertyName () {\n if (c === ':') {\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforePropertyValue () {\n lexState = 'value';\n },\n\n afterPropertyValue () {\n switch (c) {\n case ',':\n case '}':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforeArrayValue () {\n if (c === ']') {\n return newToken('punctuator', read())\n }\n\n lexState = 'value';\n },\n\n afterArrayValue () {\n switch (c) {\n case ',':\n case ']':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n end () {\n // This code is unreachable since it's handled by the default lexState.\n // if (c === undefined) {\n // read()\n // return newToken('eof')\n // }\n\n throw invalidChar(read())\n },\n};\n\nfunction newToken (type, value) {\n return {\n type,\n value,\n line,\n column,\n }\n}\n\nfunction literal (s) {\n for (const c of s) {\n const p = peek();\n\n if (p !== c) {\n throw invalidChar(read())\n }\n\n read();\n }\n}\n\nfunction escape () {\n const c = peek();\n switch (c) {\n case 'b':\n read();\n return '\\b'\n\n case 'f':\n read();\n return '\\f'\n\n case 'n':\n read();\n return '\\n'\n\n case 'r':\n read();\n return '\\r'\n\n case 't':\n read();\n return '\\t'\n\n case 'v':\n read();\n return '\\v'\n\n case '0':\n read();\n if (util.isDigit(peek())) {\n throw invalidChar(read())\n }\n\n return '\\0'\n\n case 'x':\n read();\n return hexEscape()\n\n case 'u':\n read();\n return unicodeEscape()\n\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n read();\n return ''\n\n case '\\r':\n read();\n if (peek() === '\\n') {\n read();\n }\n\n return ''\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n throw invalidChar(read())\n\n case undefined:\n throw invalidChar(read())\n }\n\n return read()\n}\n\nfunction hexEscape () {\n let buffer = '';\n let c = peek();\n\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n\n c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nfunction unicodeEscape () {\n let buffer = '';\n let count = 4;\n\n while (count-- > 0) {\n const c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n }\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nconst parseStates = {\n start () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push();\n },\n\n beforePropertyName () {\n switch (token.type) {\n case 'identifier':\n case 'string':\n key = token.value;\n parseState = 'afterPropertyName';\n return\n\n case 'punctuator':\n // This code is unreachable since it's handled by the lexState.\n // if (token.value !== '}') {\n // throw invalidToken()\n // }\n\n pop();\n return\n\n case 'eof':\n throw invalidEOF()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterPropertyName () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator' || token.value !== ':') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n parseState = 'beforePropertyValue';\n },\n\n beforePropertyValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push();\n },\n\n beforeArrayValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n if (token.type === 'punctuator' && token.value === ']') {\n pop();\n return\n }\n\n push();\n },\n\n afterPropertyValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforePropertyName';\n return\n\n case '}':\n pop();\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterArrayValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforeArrayValue';\n return\n\n case ']':\n pop();\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n end () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'eof') {\n // throw invalidToken()\n // }\n },\n};\n\nfunction push () {\n let value;\n\n switch (token.type) {\n case 'punctuator':\n switch (token.value) {\n case '{':\n value = {};\n break\n\n case '[':\n value = [];\n break\n }\n\n break\n\n case 'null':\n case 'boolean':\n case 'numeric':\n case 'string':\n value = token.value;\n break\n\n // This code is unreachable.\n // default:\n // throw invalidToken()\n }\n\n if (root === undefined) {\n root = value;\n } else {\n const parent = stack[stack.length - 1];\n if (Array.isArray(parent)) {\n parent.push(value);\n } else {\n Object.defineProperty(parent, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (value !== null && typeof value === 'object') {\n stack.push(value);\n\n if (Array.isArray(value)) {\n parseState = 'beforeArrayValue';\n } else {\n parseState = 'beforePropertyName';\n }\n } else {\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n }\n}\n\nfunction pop () {\n stack.pop();\n\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n}\n\n// This code is unreachable.\n// function invalidParseState () {\n// return new Error(`JSON5: invalid parse state '${parseState}'`)\n// }\n\n// This code is unreachable.\n// function invalidLexState (state) {\n// return new Error(`JSON5: invalid lex state '${state}'`)\n// }\n\nfunction invalidChar (c) {\n if (c === undefined) {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n }\n\n return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n}\n\nfunction invalidEOF () {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n}\n\n// This code is unreachable.\n// function invalidToken () {\n// if (token.type === 'eof') {\n// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n// }\n\n// const c = String.fromCodePoint(token.value.codePointAt(0))\n// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n// }\n\nfunction invalidIdentifier () {\n column -= 5;\n return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`)\n}\n\nfunction separatorChar (c) {\n console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`);\n}\n\nfunction formatChar (c) {\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n };\n\n if (replacements[c]) {\n return replacements[c]\n }\n\n if (c < ' ') {\n const hexString = c.charCodeAt(0).toString(16);\n return '\\\\x' + ('00' + hexString).substring(hexString.length)\n }\n\n return c\n}\n\nfunction syntaxError (message) {\n const err = new SyntaxError(message);\n err.lineNumber = line;\n err.columnNumber = column;\n return err\n}\n\nvar stringify = function stringify (value, replacer, space) {\n const stack = [];\n let indent = '';\n let propertyList;\n let replacerFunc;\n let gap = '';\n let quote;\n\n if (\n replacer != null &&\n typeof replacer === 'object' &&\n !Array.isArray(replacer)\n ) {\n space = replacer.space;\n quote = replacer.quote;\n replacer = replacer.replacer;\n }\n\n if (typeof replacer === 'function') {\n replacerFunc = replacer;\n } else if (Array.isArray(replacer)) {\n propertyList = [];\n for (const v of replacer) {\n let item;\n\n if (typeof v === 'string') {\n item = v;\n } else if (\n typeof v === 'number' ||\n v instanceof String ||\n v instanceof Number\n ) {\n item = String(v);\n }\n\n if (item !== undefined && propertyList.indexOf(item) < 0) {\n propertyList.push(item);\n }\n }\n }\n\n if (space instanceof Number) {\n space = Number(space);\n } else if (space instanceof String) {\n space = String(space);\n }\n\n if (typeof space === 'number') {\n if (space > 0) {\n space = Math.min(10, Math.floor(space));\n gap = ' '.substr(0, space);\n }\n } else if (typeof space === 'string') {\n gap = space.substr(0, 10);\n }\n\n return serializeProperty('', {'': value})\n\n function serializeProperty (key, holder) {\n let value = holder[key];\n if (value != null) {\n if (typeof value.toJSON5 === 'function') {\n value = value.toJSON5(key);\n } else if (typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n }\n\n if (replacerFunc) {\n value = replacerFunc.call(holder, key, value);\n }\n\n if (value instanceof Number) {\n value = Number(value);\n } else if (value instanceof String) {\n value = String(value);\n } else if (value instanceof Boolean) {\n value = value.valueOf();\n }\n\n switch (value) {\n case null: return 'null'\n case true: return 'true'\n case false: return 'false'\n }\n\n if (typeof value === 'string') {\n return quoteString(value, false)\n }\n\n if (typeof value === 'number') {\n return String(value)\n }\n\n if (typeof value === 'object') {\n return Array.isArray(value) ? serializeArray(value) : serializeObject(value)\n }\n\n return undefined\n }\n\n function quoteString (value) {\n const quotes = {\n \"'\": 0.1,\n '\"': 0.2,\n };\n\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n };\n\n let product = '';\n\n for (let i = 0; i < value.length; i++) {\n const c = value[i];\n switch (c) {\n case \"'\":\n case '\"':\n quotes[c]++;\n product += c;\n continue\n\n case '\\0':\n if (util.isDigit(value[i + 1])) {\n product += '\\\\x00';\n continue\n }\n }\n\n if (replacements[c]) {\n product += replacements[c];\n continue\n }\n\n if (c < ' ') {\n let hexString = c.charCodeAt(0).toString(16);\n product += '\\\\x' + ('00' + hexString).substring(hexString.length);\n continue\n }\n\n product += c;\n }\n\n const quoteChar = quote || Object.keys(quotes).reduce((a, b) => (quotes[a] < quotes[b]) ? a : b);\n\n product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]);\n\n return quoteChar + product + quoteChar\n }\n\n function serializeObject (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value);\n\n let stepback = indent;\n indent = indent + gap;\n\n let keys = propertyList || Object.keys(value);\n let partial = [];\n for (const key of keys) {\n const propertyString = serializeProperty(key, value);\n if (propertyString !== undefined) {\n let member = serializeKey(key) + ':';\n if (gap !== '') {\n member += ' ';\n }\n member += propertyString;\n partial.push(member);\n }\n }\n\n let final;\n if (partial.length === 0) {\n final = '{}';\n } else {\n let properties;\n if (gap === '') {\n properties = partial.join(',');\n final = '{' + properties + '}';\n } else {\n let separator = ',\\n' + indent;\n properties = partial.join(separator);\n final = '{\\n' + indent + properties + ',\\n' + stepback + '}';\n }\n }\n\n stack.pop();\n indent = stepback;\n return final\n }\n\n function serializeKey (key) {\n if (key.length === 0) {\n return quoteString(key, true)\n }\n\n const firstChar = String.fromCodePoint(key.codePointAt(0));\n if (!util.isIdStartChar(firstChar)) {\n return quoteString(key, true)\n }\n\n for (let i = firstChar.length; i < key.length; i++) {\n if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n return quoteString(key, true)\n }\n }\n\n return key\n }\n\n function serializeArray (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value);\n\n let stepback = indent;\n indent = indent + gap;\n\n let partial = [];\n for (let i = 0; i < value.length; i++) {\n const propertyString = serializeProperty(String(i), value);\n partial.push((propertyString !== undefined) ? propertyString : 'null');\n }\n\n let final;\n if (partial.length === 0) {\n final = '[]';\n } else {\n if (gap === '') {\n let properties = partial.join(',');\n final = '[' + properties + ']';\n } else {\n let separator = ',\\n' + indent;\n let properties = partial.join(separator);\n final = '[\\n' + indent + properties + ',\\n' + stepback + ']';\n }\n }\n\n stack.pop();\n indent = stepback;\n return final\n }\n};\n\nconst JSON5 = {\n parse,\n stringify,\n};\n\nvar lib = JSON5;\n\nexport default lib;\n","// screw-up - Easy package metadata inserter on Vite plugin\n// Copyright (c) Kouji Matsui (@kekyo@mi.kekyo.net)\n// Under MIT.\n// https://github.com/kekyo/screw-up/\n\nimport { existsSync } from 'fs';\nimport { readFile } from 'fs/promises';\nimport { dirname, join } from 'path';\nimport { glob } from 'glob';\nimport JSON5 from 'json5';\nimport { PackageMetadata } from './types';\n\n// We use async I/O except 'existsSync', because 'exists' will throw an error if the file does not exist.\n\n//////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Logger interface\n */\nexport interface Logger {\n /**\n * Log an debug message\n * @param msg - The message to log\n */\n readonly debug: (msg: string) => void;\n /**\n * Log an info message\n * @param msg - The message to log\n */\n readonly info: (msg: string) => void;\n /**\n * Log a warning message\n * @param msg - The message to log\n */\n readonly warn: (msg: string) => void;\n /**\n * Log an error message\n * @param msg - The message to log\n */\n readonly error: (msg: string) => void;\n}\n\n/**\n * Default console logger implementation\n * @param prefix - Log prefix\n * @param driver - Console logging driver instance\n */\nexport const createConsoleLogger = (prefix?: string, driver?: any): Logger => {\n const d = driver?.debug ?? (() => {});\n const i = driver?.info ?? globalThis.console.info;\n const w = driver?.warn ?? globalThis.console.warn;\n const e = driver?.error ?? globalThis.console.error;\n if (prefix) {\n return {\n debug: (msg: string) => d(`[${prefix}]: ${msg}`),\n info: (msg: string) => i(`[${prefix}]: ${msg}`),\n warn: (msg: string) => w(`[${prefix}]: ${msg}`),\n error: (msg: string) => e(`[${prefix}]: ${msg}`),\n };\n } else {\n return {\n debug: (msg: string) => d(`${msg}`),\n info: (msg: string) => i(`${msg}`),\n warn: (msg: string) => w(`${msg}`),\n error: (msg: string) => e(`${msg}`),\n };\n }\n};\n\n//////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Result of package resolution with source tracking\n * @template T - Type of the package metadata\n */\nexport interface PackageResolutionResult<T> {\n readonly metadata: T;\n readonly sourceMap: Map<string, string>;\n}\n\n/**\n * Workspace sibling project information\n */\nexport interface WorkspaceSibling {\n readonly name: string;\n readonly version: string;\n readonly path: string;\n}\n\n/**\n * Recursively flatten an object into dot-notation key-value pairs\n * @param obj - Object to flatten\n * @param prefix - Current key prefix\n * @param map - Store key-value entries into this\n */\nconst flattenObject = (obj: any, prefix: string, map: PackageMetadata) => {\n for (const [key, value] of Object.entries(obj)) {\n if (!value) continue;\n const fullKey = prefix ? `${prefix}.${key}` : key;\n if (typeof value === 'string') {\n map[fullKey] = value;\n } else if (Array.isArray(value)) {\n map[fullKey] = value.map((v) => String(v)).join(',');\n } else if (typeof value === 'object') {\n // Recursively flatten nested objects\n flattenObject(value, fullKey, map);\n } else {\n // Convert other types to string\n map[fullKey] = String(value);\n }\n }\n};\n\n/**\n * Find workspace root by looking for workspace configuration files\n * @param startPath - Starting directory path\n * @param logger - Logger instance\n * @returns Promise resolving to workspace root path or undefined if not found\n */\nexport const findWorkspaceRoot = async (\n startPath: string,\n logger: Logger\n): Promise<string | undefined> => {\n let currentPath = startPath;\n\n while (currentPath !== dirname(currentPath)) {\n const packageJsonPath = join(currentPath, 'package.json');\n\n if (existsSync(packageJsonPath)) {\n try {\n const content = await readFile(packageJsonPath, 'utf-8');\n const packageJson = JSON5.parse(content);\n\n // Check for workspace configurations\n if (\n packageJson.workspaces ||\n existsSync(join(currentPath, 'pnpm-workspace.yaml')) ||\n existsSync(join(currentPath, 'lerna.json'))\n ) {\n return currentPath;\n }\n } catch (error) {\n logger.warn(\n `Failed to parse package.json at ${packageJsonPath}: ${error}`\n );\n }\n }\n\n currentPath = dirname(currentPath);\n }\n\n return undefined;\n};\n\n/**\n * Collect workspace sibling projects\n * @param workspaceRoot - Workspace root directory\n * @param fetchGitMetadata - Git metadata fetcher\n * @param alwaysOverrideVersionFromGit - Always override version from Git\n * @param inheritableFields - Package metadata fields that should be inherited from parent\n * @param logger - Logger instance\n * @returns Promise resolving to map of sibling projects (name -> WorkspaceSibling)\n */\nexport const collectWorkspaceSiblings = async (\n workspaceRoot: string,\n fetchGitMetadata: () => Promise<any>,\n alwaysOverrideVersionFromGit: boolean,\n inheritableFields: Set<string>,\n logger: Logger\n): Promise<Map<string, WorkspaceSibling>> => {\n const siblings = new Map<string, WorkspaceSibling>();\n\n try {\n const rootPackageJsonPath = join(workspaceRoot, 'package.json');\n const content = await readFile(rootPackageJsonPath, 'utf-8');\n const rootPackageJson = JSON5.parse(content);\n\n // Get workspace patterns\n const workspacePatterns = rootPackageJson.workspaces;\n if (!workspacePatterns || !Array.isArray(workspacePatterns)) {\n return siblings;\n }\n\n // Find all workspace directories\n const workspaceDirs = new Set<string>();\n for (const pattern of workspacePatterns) {\n const matches = await glob(pattern, {\n cwd: workspaceRoot,\n });\n matches.forEach((match) => workspaceDirs.add(match));\n }\n\n // Read package.json from each workspace directory\n for (const workspaceDir of workspaceDirs) {\n const packageJsonPath = join(workspaceRoot, workspaceDir, 'package.json');\n if (existsSync(packageJsonPath)) {\n try {\n const packagePath = join(workspaceRoot, workspaceDir);\n\n // Use resolveRawPackageJsonObject to get the resolved version with Git tag consideration\n const resolvedPackage = await resolveRawPackageJsonObject(\n packagePath,\n fetchGitMetadata,\n alwaysOverrideVersionFromGit,\n inheritableFields,\n logger\n );\n\n const packageJson = resolvedPackage.metadata;\n\n if (packageJson.name && packageJson.version) {\n siblings.set(packageJson.name, {\n name: packageJson.name,\n version: packageJson.version,\n path: packagePath,\n });\n }\n } catch (error) {\n logger.warn(\n `Failed to resolve package.json from ${packageJsonPath}: ${error}`\n );\n }\n }\n }\n } catch (error) {\n logger.warn(\n `Failed to collect workspace siblings from ${workspaceRoot}: ${error}`\n );\n }\n\n return siblings;\n};\n\n/**\n * Replace \"*\" wildcards in peerDependencies with actual workspace sibling versions\n * @param packageJson - Package.json object to modify\n * @param siblings - Map of workspace sibling projects\n * @param versionPrefix - Version prefix to add (e.g., \"^\", \"~\", \"\")\n * @returns Modified package.json object\n */\nexport const replacePeerDependenciesWildcards = (\n packageJson: any,\n siblings: Map<string, WorkspaceSibling>,\n versionPrefix: string\n): any => {\n // Deep clone the package.json to avoid modifying the original\n const modifiedPackageJson = JSON5.parse(JSON.stringify(packageJson));\n\n if (\n !modifiedPackageJson.peerDependencies ||\n typeof modifiedPackageJson.peerDependencies !== 'object'\n ) {\n return modifiedPackageJson;\n }\n\n // Process each peer dependency\n for (const [depName, depVersion] of Object.entries(\n modifiedPackageJson.peerDependencies\n )) {\n if (depVersion === '*' && siblings.has(depName)) {\n const sibling = siblings.get(depName)!;\n modifiedPackageJson.peerDependencies[depName] =\n `${versionPrefix}${sibling.version}`;\n }\n }\n\n return modifiedPackageJson;\n};\n\n//////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Merge package metadata with inheritance (child overrides parent)\n * @param fetchGitMetadata - Git metadata fetcher\n * @param alwaysOverrideVersionFromGit - Always override version from Git\n * @param sourceMap - Map to track field sources\n * @param parentMetadata - Parent package metadata\n * @param childMetadata - Child package metadata\n * @param parentSourceDir - Parent package.json directory (for source tracking)\n * @param childSourceDir - Child package.json directory (for source tracking)\n * @returns Merged package metadata\n */\nexport const mergePackageMetadata = async (\n fetchGitMetadata: () => Promise<any>,\n alwaysOverrideVersionFromGit: boolean,\n sourceMap: Map<string, string>,\n parentMetadata: PackageMetadata,\n childMetadata: PackageMetadata,\n parentSourceDir: string,\n childSourceDir: string,\n _repositoryPath: string\n): Promise<PackageMetadata> => {\n // Fetch git metadata\n const metadata = await fetchGitMetadata();\n\n const merged: PackageMetadata = {};\n flattenObject(metadata, '', merged);\n\n // Start with parent metadata\n for (const key in parentMetadata) {\n const value = parentMetadata[key];\n if (value !== undefined) {\n merged[key] = value;\n sourceMap.set(key, parentSourceDir);\n }\n }\n\n // Override with child metadata\n for (const key in childMetadata) {\n const value = childMetadata[key];\n if (value !== undefined) {\n merged[key] = value;\n sourceMap.set(key, childSourceDir);\n }\n }\n\n // Always override version from Git if enabled (new default behavior)\n if (alwaysOverrideVersionFromGit && metadata.version) {\n merged.version = metadata.version;\n }\n\n return merged;\n};\n\n/**\n * Merge raw package.json objects with inheritance (child overrides parent)\n * Only inherits package metadata fields, not project-specific configurations\n * @param fetchGitMetadata - Git metadata fetcher\n * @param alwaysOverrideVersionFromGit - Always override version from Git\n * @param inheritableFields - Package metadata fields that should be inherited from parent\n * @param sourceMap - Map to track field sources\n * @param parentMetadata - Parent package object\n * @param childMetadata - Child package object\n * @param parentSourceDir - Parent package.json directory (for source tracking)\n * @param childSourceDir - Child package.json directory (for source tracking)\n * @param repositoryPath - Path to Git repository root\n * @returns Merged package object with only metadata fields\n */\nconst mergeRawPackageJson = async (\n fetchGitMetadata: () => Promise<any>,\n alwaysOverrideVersionFromGit: boolean,\n inheritableFields: Set<string>,\n sourceMap: Map<string, string>,\n parentMetadata: any,\n childMetadata: any,\n parentSourceDir: string,\n childSourceDir: string,\n repositoryPath: string\n): Promise<any> => {\n // Fetch git metadata\n const gitMetadata = await fetchGitMetadata();\n const merged = { ...gitMetadata };\n\n // Start with parent metadata\n for (const key in parentMetadata) {\n if (inheritableFields.has(key)) {\n const value = parentMetadata[key];\n if (value !== undefined) {\n merged[key] = value;\n sourceMap.set(key, parentSourceDir);\n }\n }\n }\n\n // Override with child metadata\n for (const key in childMetadata) {\n const value = childMetadata[key];\n if (value !== undefined) {\n merged[key] = value;\n sourceMap.set(key, childSourceDir);\n }\n }\n\n // Always override version from Git if enabled (new default behavior)\n if (alwaysOverrideVersionFromGit && gitMetadata.version) {\n merged.version = gitMetadata.version;\n sourceMap.set('version', repositoryPath); // Mark as Git-sourced\n }\n\n return merged;\n};\n\n//////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Resolve package metadata for current project with workspace inheritance\n * @param projectRoot - Current project root\n * @param logger - Logger instance\n * @param readPackageMetadataFn - Function to read package metadata\n * @param mergePackageMetadataFn - Function to merge package metadata\n * @returns Promise resolving to resolved package metadata\n */\nconst resolvePackageMetadataT = async <T>(\n projectRoot: string,\n logger: Logger,\n readPackageMetadataFn: (path: string) => Promise<T>,\n mergePackageMetadataFn: (\n a: T,\n b: T,\n aDir: string,\n bDir: string,\n repositoryPath: string\n ) => Promise<T>\n): Promise<T> => {\n const workspaceRoot = await findWorkspaceRoot(projectRoot, logger);\n\n if (!workspaceRoot) {\n // No workspace, just read local package.json\n const localPackagePath = join(projectRoot, 'package.json');\n const localMetadata = await readPackageMetadataFn(localPackagePath);\n return mergePackageMetadataFn(\n {} as T,\n localMetadata,\n '', // dummy\n projectRoot,\n projectRoot\n );\n }\n\n const projectPackagePath = join(projectRoot, 'package.json');\n\n // Start with root package metadata\n const rootPackagePath = join(workspaceRoot, 'package.json');\n const metadata = await readPackageMetadataFn(rootPackagePath);\n\n // If current project is not the root, merge with project-specific metadata\n if (\n projectPackagePath !== rootPackagePath &&\n existsSync(projectPackagePath)\n ) {\n const projectMetadata = await readPackageMetadataFn(projectPackagePath);\n return mergePackageMetadataFn(\n metadata,\n projectMetadata,\n workspaceRoot,\n projectRoot,\n projectRoot\n );\n } else {\n return mergePackageMetadataFn(\n {} as T,\n metadata,\n '', // dummy\n workspaceRoot,\n projectRoot\n );\n }\n};\n\n//////////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Read and parse package.json file\n * @param logger - Logger instance\n * @param packagePath - Path to package.json\n * @returns Promise resolving to package metadata\n */\nconst readPackageMetadata = async (\n logger: Logger,\n packagePath: string\n): Promise<PackageMetadata> => {\n try {\n const content = await readFile(packagePath, 'utf-8');\n const json = JSON5.parse(content);\n const map: PackageMetadata = {};\n flattenObject(json, '', map);\n return map;\n } catch (error) {\n logger.error(`Failed to read package.json from ${packagePath}: ${error}`);\n return {};\n }\n};\n\n/**\n * Resolve package metadata for current project with workspace inheritance\n * @param projectRoot - Current project root\n * @param fetchGitMetadata - Git metadata fetcher\n * @param alwaysOverrideVersionFromGit - Always override version from Git\n * @param logger - Logger instance\n * @returns Promise resolving to resolved package metadata\n */\nexport const resolvePackageMetadata = async (\n projectRoot: string,\n fetchGitMetadata: () => Promise<any>,\n alwaysOverrideVersionFromGit: boolean,\n logger: Logger\n): Promise<PackageResolutionResult<PackageMetadata>> => {\n const sourceMap = new Map<string, string>();\n const metadata = await resolvePackageMetadataT<PackageMetadata>(\n projectRoot,\n logger,\n readPackageMetadata.bind(undefined, logger),\n mergePackageMetadata.bind(\n undefined,\n fetchGitMetadata,\n alwaysOverrideVersionFromGit,\n sourceMap\n )\n );\n\n return {\n metadata,\n sourceMap,\n };\n};\n\n/**\n * Read and parse package.json file without flattening\n * @param logger - Logger instance\n * @param packagePath - Path to package.json\n * @returns Promise resolving to raw package object\n */\nconst readRawPackageJson = async (\n logger: Logger,\n packagePath: string\n): Promise<any> => {\n try {\n const content = await readFile(packagePath, 'utf-8');\n return JSON5.parse(content);\n } catch (error) {\n logger.error(`Failed to read package.json from ${packagePath}: ${error}`);\n throw error;\n }\n};\n\n/**\n * Resolve raw package.json for current project with workspace inheritance\n * @param projectRoot - Current project root\n * @param fetchGitMetadata - Git metadata fetcher\n * @param alwaysOverrideVersionFromGit - Always override version from Git\n * @param inheritableFields - Package metadata fields that should be inherited from parent\n * @param logger - Logger instance\n * @returns Promise resolving to resolved raw package.json object with source tracking\n */\nexport const resolveRawPackageJsonObject = async (\n projectRoot: string,\n fetchGitMetadata: () => Promise<any>,\n alwaysOverrideVersionFromGit: boolean,\n inheritableFields: Set<string>,\n logger: Logger\n): Promise<PackageResolutionResult<any>> => {\n const sourceMap = new Map<string, string>();\n const packageJson = await resolvePackageMetadataT<any>(\n projectRoot,\n logger,\n readRawPackageJson.bind(undefined, logger),\n mergeRawPackageJson.bind(\n undefined,\n fetchGitMetadata,\n alwaysOverrideVersionFromGit,\n inheritableFields,\n sourceMap\n )\n );\n\n return {\n metadata: packageJson,\n sourceMap,\n };\n};\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"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(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","// screw-up - Easy package metadata inserter on Vite plugin\n// Copyright (c) Kouji Matsui (@kekyo@mi.kekyo.net)\n// Under MIT.\n// https://github.com/kekyo/screw-up/\n\nimport * as git from 'isomorphic-git';\nimport * as fs from 'fs/promises';\nimport dayjs from 'dayjs';\nimport { GitMetadata } from './types.js';\nimport { Logger } from './internal.js';\n\n// Ported from: https://github.com/kekyo/RelaxVersioner/blob/master/RelaxVersioner.Core/Analyzer.cs\n\n/**\n * Version information\n */\ninterface Version {\n major: number;\n minor?: number;\n build?: number;\n revision?: number;\n original: string;\n}\n\n/**\n * Primitive commit information\n */\ninterface CommitInfo {\n hash: string;\n shortHash: string;\n date: string;\n message: string;\n parents: string[];\n}\n\n/**\n * Tag information\n */\ninterface TagInfo {\n name: string;\n hash: string;\n version: Version | undefined;\n}\n\n/**\n * Tag cache for performance optimization\n */\ninterface TagCache {\n commitToTags: Map<string, TagInfo[]>;\n initialized: boolean;\n}\n\n/////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Parse and validate a version component\n * @param value - The string value to parse\n * @returns The parsed number or undefined if invalid (negative or > 65535)\n */\nconst parseVersionComponent = (value: string): number | undefined => {\n const num = parseInt(value, 10);\n return num < 0 || num > 65535 ? undefined : num;\n};\n\n/**\n * Parse a version tag name\n * @param tagName - The version tag name\n * @returns The parsed version or undefined if the tag name is invalid\n */\nconst parseVersion = (tagName: string): Version | undefined => {\n // Remove common prefix 'v'.\n const cleanTag = tagName.replace(/^v/i, '');\n\n // Match version pattern: major.minor[.build[.revision]].\n const versionRegex = /^(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?(?:\\.(\\d+))?$/;\n const match = cleanTag.match(versionRegex);\n\n if (!match) {\n return undefined;\n }\n\n const major = parseVersionComponent(match[1]);\n if (major === undefined) {\n return undefined;\n }\n\n const version: Version = {\n major,\n original: tagName,\n };\n\n if (match[2] !== undefined) {\n const minor = parseVersionComponent(match[2]);\n if (minor === undefined) {\n return undefined;\n }\n version.minor = minor;\n }\n if (match[3] !== undefined) {\n const build = parseVersionComponent(match[3]);\n if (build === undefined) {\n return undefined;\n }\n version.build = build;\n }\n if (match[4] !== undefined) {\n const revision = parseVersionComponent(match[4]);\n if (revision === undefined) {\n return undefined;\n }\n version.revision = revision;\n }\n\n return version;\n};\n\n/**\n * Check if a version is valid\n * @param version - The version to check\n * @returns True if the version is valid, false otherwise\n */\nconst isValidVersion = (version: Version): boolean => {\n // At least major component and optionally minor\n return (\n version.major >= 0 && (version.minor === undefined || version.minor >= 0)\n );\n};\n\n/**\n * Compare two versions\n * @param a - The first version\n * @param b - The second version\n * @returns A negative number if a is less than b, a positive number if a is greater than b, or 0 if they are equal\n */\nconst compareVersions = (a: Version, b: Version): number => {\n // Compare major\n if (a.major !== b.major) return b.major - a.major;\n\n // Compare minor (treat undefined as 0)\n const aMinor = a.minor ?? 0;\n const bMinor = b.minor ?? 0;\n if (aMinor !== bMinor) return bMinor - aMinor;\n\n // Compare build (treat undefined as 0)\n const aBuild = a.build ?? 0;\n const bBuild = b.build ?? 0;\n if (aBuild !== bBuild) return bBuild - aBuild;\n\n // Compare revision (treat undefined as 0)\n const aRevision = a.revision ?? 0;\n const bRevision = b.revision ?? 0;\n if (aRevision !== bRevision) return bRevision - aRevision;\n\n return 0;\n};\n\n/**\n * Increment the last version component\n * @param version - The version to increment\n * @returns The incremented version\n */\nconst incrementLastVersionComponent = (version: Version): Version => {\n // Increment the rightmost existing component\n if (version.revision !== undefined) {\n return { ...version, revision: version.revision + 1 };\n }\n if (version.build !== undefined) {\n return { ...version, build: version.build + 1 };\n }\n if (version.minor !== undefined) {\n return { ...version, minor: version.minor + 1 };\n }\n\n // If only major exists, increment major\n return {\n ...version,\n major: version.major + 1,\n original: `${version.major + 1}`,\n };\n};\n\n/**\n * Format a version\n * @param version - The version to format\n * @returns The formatted version\n */\nconst formatVersion = (version: Version): string => {\n let result = `${version.major}`;\n\n if (version.minor !== undefined) {\n result += `.${version.minor}`;\n\n if (version.build !== undefined) {\n result += `.${version.build}`;\n\n if (version.revision !== undefined) {\n result += `.${version.revision}`;\n }\n }\n }\n\n return result;\n};\n\n/////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Get a commit by hash\n * @param repositoryPath - Local Git repository directory\n * @param hash - The hash of the commit\n * @returns The commit or undefined if the commit is not found\n */\nconst getCommit = async (\n repositoryPath: string,\n hash: string\n): Promise<CommitInfo | undefined> => {\n try {\n const commit = await git.readCommit({ fs, dir: repositoryPath, oid: hash });\n\n return {\n hash: commit.oid,\n shortHash: commit.oid.substring(0, 7),\n date: new Date(commit.commit.author.timestamp * 1000).toISOString(),\n message: commit.commit.message.trim(),\n parents: commit.commit.parent || [],\n };\n } catch {\n return undefined;\n }\n};\n\n/**\n * Get the current commit\n * @param repositoryPath - Local Git repository directory\n * @returns The current commit or undefined if the current commit is not found\n */\nconst getCurrentCommit = async (\n repositoryPath: string\n): Promise<CommitInfo | undefined> => {\n try {\n const currentOid = await git.resolveRef({\n fs,\n dir: repositoryPath,\n ref: 'HEAD',\n });\n const commit = await git.readCommit({\n fs,\n dir: repositoryPath,\n oid: currentOid,\n });\n\n return {\n hash: commit.oid,\n shortHash: commit.oid.substring(0, 7),\n date: new Date(commit.commit.author.timestamp * 1000).toISOString(),\n message: commit.commit.message.trim(),\n parents: commit.commit.parent || [],\n };\n } catch {\n return undefined;\n }\n};\n\n/**\n * Build tag to commit mapping for fast lookups\n * @param repositoryPath - Local Git repository directory\n * @returns Tag cache with commit to tags mapping\n */\nconst buildTagCache = async (repositoryPath: string): Promise<TagCache> => {\n const cache: TagCache = {\n commitToTags: new Map<string, TagInfo[]>(),\n initialized: true,\n };\n\n try {\n const tags = await git.listTags({ fs, dir: repositoryPath });\n\n // Process all tags in parallel for speed\n await Promise.all(\n tags.map(async (tagName) => {\n try {\n const tagOid = await git.resolveRef({\n fs,\n dir: repositoryPath,\n ref: `refs/tags/${tagName}`,\n });\n\n const version = parseVersion(tagName);\n const tagInfo: TagInfo = {\n name: tagName,\n hash: tagOid, // This will be updated for annotated tags\n version: version && isValidVersion(version) ? version : undefined,\n };\n\n // First, assume it's a lightweight tag pointing directly to a commit\n if (!cache.commitToTags.has(tagOid)) {\n cache.commitToTags.set(tagOid, []);\n }\n cache.commitToTags.get(tagOid)!.push({ ...tagInfo, hash: tagOid });\n\n // Try to read as annotated tag\n try {\n const tagObject = await git.readTag({\n fs,\n dir: repositoryPath,\n oid: tagOid,\n });\n\n if (tagObject && tagObject.tag.object) {\n const commitOid = tagObject.tag.object;\n // Remove from lightweight position if it was an annotated tag\n const lightweightTags = cache.commitToTags.get(tagOid);\n if (lightweightTags) {\n const index = lightweightTags.findIndex(\n (t) => t.name === tagName\n );\n if (index >= 0) {\n lightweightTags.splice(index, 1);\n if (lightweightTags.length === 0) {\n cache.commitToTags.delete(tagOid);\n }\n }\n }\n\n // Add to actual commit position\n if (!cache.commitToTags.has(commitOid)) {\n cache.commitToTags.set(commitOid, []);\n }\n cache.commitToTags\n .get(commitOid)!\n .push({ ...tagInfo, hash: commitOid });\n }\n } catch {\n // It's a lightweight tag, already added above\n }\n } catch {\n // Skip tags that can't be resolved\n }\n })\n );\n } catch {\n // If we can't list tags, return empty cache\n }\n\n return cache;\n};\n\n/**\n * Get related tags for a commit using cache\n * @param cache - Tag cache\n * @param commitHash - The hash of the commit\n * @returns The related tags or an empty array if no tags are found\n */\nconst getRelatedTagsFromCache = (\n cache: TagCache,\n commitHash: string\n): TagInfo[] => {\n if (!cache.initialized) {\n return [];\n }\n return cache.commitToTags.get(commitHash) || [];\n};\n\n/**\n * Get related tags for a commit\n * @param repositoryPath - Local Git repository directory\n * @param commitHash - The hash of the commit\n * @returns The related tags or an empty array if no tags are found\n */\nconst getRelatedTags = async (\n repositoryPath: string,\n commitHash: string\n): Promise<TagInfo[]> => {\n try {\n const tags = await git.listTags({ fs, dir: repositoryPath });\n const tagInfos: TagInfo[] = [];\n\n for (const tagName of tags) {\n try {\n const tagOid = await git.resolveRef({\n fs,\n dir: repositoryPath,\n ref: `refs/tags/${tagName}`,\n });\n\n // Optimization: Check if lightweight tag matches first\n if (tagOid === commitHash) {\n // Direct match - this is a lightweight tag pointing to our commit\n const version = parseVersion(tagName);\n if (version && isValidVersion(version)) {\n tagInfos.push({\n name: tagName,\n hash: commitHash,\n version,\n });\n } else {\n tagInfos.push({\n name: tagName,\n hash: commitHash,\n version: undefined,\n });\n }\n } else {\n // Not a direct match - check if it's an annotated tag\n try {\n const tagObject = await git.readTag({\n fs,\n dir: repositoryPath,\n oid: tagOid,\n });\n if (tagObject && tagObject.tag.object === commitHash) {\n // Annotated tag pointing to our commit\n const version = parseVersion(tagName);\n if (version && isValidVersion(version)) {\n tagInfos.push({\n name: tagName,\n hash: commitHash,\n version,\n });\n } else {\n tagInfos.push({\n name: tagName,\n hash: commitHash,\n version: undefined,\n });\n }\n }\n } catch {\n // This is a lightweight tag that doesn't point to our commit\n }\n }\n } catch {\n // Skip tags that can't be resolved\n }\n }\n\n // Sort by name\n return tagInfos.sort((a, b) => a.name.localeCompare(b.name));\n } catch {\n return [];\n }\n};\n\n/**\n * Get related tags for versioning\n * @param repositoryPath - Local Git repository directory\n * @param commitHash - The hash of the commit\n * @returns The related tags or an empty array if no tags are found\n */\nconst getRelatedTagsForVersioning = async (\n repositoryPath: string,\n commitHash: string\n): Promise<TagInfo[]> => {\n try {\n const tags = await git.listTags({ fs, dir: repositoryPath });\n const tagInfos: TagInfo[] = [];\n\n for (const tagName of tags) {\n try {\n const tagOid = await git.resolveRef({\n fs,\n dir: repositoryPath,\n ref: `refs/tags/${tagName}`,\n });\n\n // Optimization: Check if lightweight tag matches first\n if (tagOid === commitHash) {\n // Direct match - this is a lightweight tag pointing to our commit\n const version = parseVersion(tagName);\n if (version && isValidVersion(version)) {\n tagInfos.push({\n name: tagName,\n hash: commitHash,\n version,\n });\n }\n } else {\n // Not a direct match - check if it's an annotated tag\n try {\n const tagObject = await git.readTag({\n fs,\n dir: repositoryPath,\n oid: tagOid,\n });\n if (tagObject && tagObject.tag.object === commitHash) {\n // Annotated tag pointing to our commit\n const version = parseVersion(tagName);\n if (version && isValidVersion(version)) {\n tagInfos.push({\n name: tagName,\n hash: commitHash,\n version,\n });\n }\n }\n } catch {\n // This is a lightweight tag that doesn't point to our commit\n }\n }\n } catch {\n // Skip tags that can't be resolved\n }\n }\n return tagInfos;\n } catch {\n return [];\n }\n};\n\n/**\n * Get the commit related branch name.\n * @param repositoryPath - Local Git repository directory\n * @param commitHash - The hash of the commit\n * @returns The commit related branch name or undefined if not found\n */\nconst getRelatedBranches = async (\n repositoryPath: string,\n commitHash: string\n): Promise<string[]> => {\n try {\n const branches = await git.listBranches({ fs, dir: repositoryPath });\n const relatedBranches: string[] = [];\n\n for (const branch of branches) {\n try {\n // Check if the branch HEAD points to the specified commit\n const branchOid = await git.resolveRef({\n fs,\n dir: repositoryPath,\n ref: branch,\n });\n if (branchOid === commitHash) {\n relatedBranches.push(branch);\n }\n } catch {\n // Skip branches that can't be resolved\n }\n }\n\n return relatedBranches;\n } catch {\n return [];\n }\n};\n\n/**\n * Check if the repository has modified files (following RelaxVersioner logic).\n * Checks for staged files, unstaged files, and untracked files (respecting .gitignore).\n * @param repositoryPath - Local Git repository directory\n * @returns Modified files\n */\nconst getModifiedFiles = async (\n repositoryPath: string\n): Promise<git.StatusRow[]> => {\n try {\n const status = await git.statusMatrix({ fs, dir: repositoryPath });\n // statusMatrix returns [filepath, headStatus, workdirStatus, stageStatus]\n // headStatus: 0=absent, 1=present\n // workdirStatus: 0=absent, 1=present, 2=modified\n // stageStatus: 0=absent, 1=present, 2=modified, 3=added\n // By default, ignored files are excluded (ignored: false)\n return status.filter(\n ([, head, workdir, stage]) =>\n workdir === 2 || // modified in working directory (unstaged)\n stage === 2 || // modified in stage (staged)\n stage === 3 || // added to stage (staged)\n (head === 1 && workdir === 0) || // deleted from working directory\n (head === 0 && workdir === 1) // untracked files (respecting .gitignore)\n );\n } catch {\n return [];\n }\n};\n\nconst formatModifiedFile = (modifiedFile: git.StatusRow) => {\n return `'${modifiedFile[0]}':${modifiedFile[1]}:${modifiedFile[2]}:${modifiedFile[3]}`;\n};\n\n/////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Scheduled commit\n */\ninterface ScheduledCommit {\n commit: CommitInfo;\n parents: CommitInfo[];\n}\n\n/**\n * Lookup version label recursively core analyzer\n * @param cwd - The directory to check\n * @param commit - The commit to lookup\n * @param reachedCommits - The map of reached commits\n * @param tagCache - Optional tag cache for performance\n * @returns The version or undefined if no version is found\n */\nconst lookupVersionLabelRecursive = async (\n cwd: string,\n commit: CommitInfo,\n reachedCommits: Map<string, Version>,\n tagCache?: TagCache\n): Promise<Version | undefined> => {\n // Scheduled commit analysis stack\n const scheduledStack: ScheduledCommit[] = [];\n\n let version: Version = { major: 0, minor: 0, build: 1, original: '0.0.1' };\n let currentCommit = commit;\n\n // Trace back to the parent commit repeatedly with the following conditions:\n // * If the commit has already been reached, get its version.\n // * If there is a recognizable version string in the tag, get its version.\n // * If the parent commit does not exist, get the default version.\n // * If other than the above, push the commit on the stack for later processing in reverse order.\n while (true) {\n // If the commit has already been reached, get its version.\n if (reachedCommits.has(currentCommit.hash)) {\n version = reachedCommits.get(currentCommit.hash)!;\n break;\n }\n\n // Detected mostly larger version tag.\n const relatedTags = tagCache\n ? getRelatedTagsFromCache(tagCache, currentCommit.hash)\n : await getRelatedTagsForVersioning(cwd, currentCommit.hash);\n const versionCandidates = relatedTags\n .filter((tag) => tag.version && isValidVersion(tag.version))\n .filter((tag) => tag.version!.minor !== undefined) // \"1.2\" or more.\n .sort((a, b) => compareVersions(a.version!, b.version!));\n if (versionCandidates.length >= 1) {\n // Found version tags, use the highest version\n version = versionCandidates[0].version!;\n reachedCommits.set(currentCommit.hash, version);\n break;\n }\n\n // Get parent commits\n let parentCommits: CommitInfo[] = [];\n try {\n const commitObj = await git.readCommit({\n fs,\n dir: cwd,\n oid: currentCommit.hash,\n });\n const parentHashes = commitObj.commit.parent || [];\n parentCommits = (\n await Promise.all(\n parentHashes.map((parentHash) => getCommit(cwd, parentHash))\n )\n ).filter((ci) => ci !== undefined);\n } catch {\n // If we can't get parent information, use default version\n }\n if (parentCommits.length === 0) {\n // No parents, this is the root commit\n reachedCommits.set(currentCommit.hash, version);\n break;\n }\n\n // Schedule this commit for later processing\n scheduledStack.push({ commit: currentCommit, parents: parentCommits });\n\n // Move to the first parent (primary branch)\n currentCommit = parentCommits[0];\n }\n\n // As long as there are commits stacked on the stack,\n // retrieve a commit from the stack, and if there is more than one parent commit for that commit:\n // * Recursively get versions from parent commits other than the primary one.\n // * Compare the versions obtained and store the largest version.\n // * Increment the version and make it the version of the current commit.\n while (scheduledStack.length >= 1) {\n const scheduled = scheduledStack.pop()!;\n const { commit: scheduledCommit, parents } = scheduled;\n\n // Handle merge commits (multiple parents)\n if (parents.length >= 2) {\n // Check alternate parent commits (feature branches)\n for (let index = 1; index < parents.length; index++) {\n const alternateParentVersion = await lookupVersionLabelRecursive(\n cwd,\n parents[index],\n reachedCommits,\n tagCache\n );\n if (\n alternateParentVersion &&\n compareVersions(alternateParentVersion, version) < 0\n ) {\n // Use higher version from alternate parent\n version = alternateParentVersion;\n }\n }\n }\n\n // Increment version for this commit\n version = incrementLastVersionComponent(version);\n reachedCommits.set(scheduledCommit.hash, version);\n }\n\n return version;\n};\n\n/////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Get default Git metadata from local repository.\n * @param repositoryPath - Local Git repository directory\n * @param checkWorkingDirectoryStatus - Check working directory status to increase version\n * @param logger - Logger instance\n * @returns The metadata object with git metadata\n */\nconst getGitMetadata = async (\n repositoryPath: string,\n checkWorkingDirectoryStatus: boolean,\n logger: Logger\n) => {\n const metadata: any = {};\n\n // Try to find git root directory from the given path\n let gitRootPath: string;\n try {\n gitRootPath = await git.findRoot({ fs, filepath: repositoryPath });\n } catch {\n // No git repository found\n return metadata;\n }\n\n try {\n // Get current commit\n const currentCommit = await getCurrentCommit(gitRootPath);\n if (!currentCommit) {\n return metadata;\n }\n\n // Build tag cache for performance\n const tagCache = await buildTagCache(gitRootPath);\n logger.debug(\n `Built tag cache with ${tagCache.commitToTags.size} commit entries`\n );\n\n // Initialize reached commits cache\n const reachedCommits = new Map<string, Version>();\n\n // Lookup version\n let version = await lookupVersionLabelRecursive(\n gitRootPath,\n currentCommit,\n reachedCommits,\n tagCache\n );\n\n // Set git metadata into 'git' key\n const gitMetadata: GitMetadata = { tags: [], branches: [] };\n metadata.git = gitMetadata;\n\n if (version) {\n // Check for working directory changes and increment version if needed\n if (checkWorkingDirectoryStatus) {\n const modifiedFiles = await getModifiedFiles(gitRootPath);\n if (modifiedFiles.length >= 1) {\n const newVersion = incrementLastVersionComponent(version);\n logger.debug(\n `Increased git version by detected modified items: ${formatVersion(version)} ---> ${formatVersion(newVersion)}, Files=[${modifiedFiles.map(formatModifiedFile).join(', ')}]`\n );\n version = newVersion;\n }\n }\n\n const gitVersion = formatVersion(version);\n gitMetadata.version = gitVersion;\n metadata.version = gitVersion; // Fallback default version metadata\n }\n\n // Set commit information\n gitMetadata.commit = {\n hash: currentCommit.hash,\n shortHash: currentCommit.shortHash,\n date: dayjs(currentCommit.date).format('YYYY-MM-DDTHH:mm:ssZ[Z]'),\n message: currentCommit.message,\n };\n\n // Try to find the actual tag name if it exists (use cache for performance)\n const relatedTags = getRelatedTagsFromCache(tagCache, currentCommit.hash);\n gitMetadata.tags = relatedTags.map((tag) => tag.name);\n\n // Get branch information\n const relatedBranches = await getRelatedBranches(\n gitRootPath,\n currentCommit.hash\n );\n gitMetadata.branches = relatedBranches;\n } catch (error) {\n // If any error occurs, return empty metadata\n logger.warn(`Failed to extract git metadata: ${error}`);\n }\n\n return metadata;\n};\n\n//////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Get cached Git metadata fetcher function\n * @param targetDir - Target directory to resolve Git metadata\n * @param checkWorkingDirectoryStatus - Check working directory status\n * @param logger - Logger\n * @returns Git metadata fetcher function\n */\nexport const getFetchGitMetadata = (\n targetDir: string,\n checkWorkingDirectoryStatus: boolean,\n logger: Logger\n) => {\n let cachedMetadata: any;\n return async () => {\n if (!cachedMetadata) {\n cachedMetadata = await getGitMetadata(\n targetDir,\n checkWorkingDirectoryStatus,\n logger\n );\n }\n return cachedMetadata;\n };\n};\n","// This file is auto-generated by screw-up plugin\n// Do not edit manually\n\nexport const name = \"screw-up\";\nexport const version = \"1.5.0\";\nexport const description = \"Simply package metadata inserter on Vite plugin\";\nexport const author = \"Kouji Matsui (@kekyo@mi.kekyo.net)\";\nexport const license = \"MIT\";\nexport const repository_url = \"https://github.com/kekyo/screw-up.git\";\nexport const git_commit_hash = \"72fd5b88656bc400ba3fed500895826208e23217\";\n"],"names":["c","parse","name","key","token","buffer","stringify","stack","value","dirname","join","existsSync","readFile","JSON5","glob","module","this","t","e","n","r","i","s","u","a","M","m","f","l","$","y","v","g","D","o","d","h","version","git","fs"],"mappings":"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","x_google_ignoreList":[0,2]}
package/dist/types.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * name: screw-up
3
- * version: 1.4.0
3
+ * version: 1.5.0
4
4
  * description: Simply package metadata inserter on Vite plugin
5
5
  * author: Kouji Matsui (@kekyo@mi.kekyo.net)
6
6
  * license: MIT
7
7
  * repository.url: https://github.com/kekyo/screw-up.git
8
- * git.commit.hash: 48850bae9ed83a921ef5239628983b3e797a0ce7
8
+ * git.commit.hash: 72fd5b88656bc400ba3fed500895826208e23217
9
9
  */
10
10
 
11
11
  /**