@sanity/plugin-kit 3.1.10 → 3.1.12

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.
Files changed (29) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/_chunks/{cli-b62657e9.js → cli-cFLCCBOO.js} +7 -7
  4. package/dist/_chunks/{cli-b62657e9.js.map → cli-cFLCCBOO.js.map} +1 -1
  5. package/dist/_chunks/{init-cec2f4ef.js → init-RizSz7N7.js} +4 -4
  6. package/dist/_chunks/{init-cec2f4ef.js.map → init-RizSz7N7.js.map} +1 -1
  7. package/dist/_chunks/{init-3120a384.js → init-iwJScjA2.js} +29 -31
  8. package/dist/_chunks/init-iwJScjA2.js.map +1 -0
  9. package/dist/_chunks/{inject-bff6e27b.js → inject-p1N6jT0L.js} +6 -6
  10. package/dist/_chunks/{inject-bff6e27b.js.map → inject-p1N6jT0L.js.map} +1 -1
  11. package/dist/_chunks/{link-watch-9f9e4c95.js → link-watch-hESx--O4.js} +9 -11
  12. package/dist/_chunks/{link-watch-9f9e4c95.js.map → link-watch-hESx--O4.js.map} +1 -1
  13. package/dist/_chunks/{package-388ef15c.js → package-LD2bWiQM.js} +79 -81
  14. package/dist/_chunks/{package-388ef15c.js.map → package-LD2bWiQM.js.map} +1 -1
  15. package/dist/_chunks/{package-7cb0d20a.js → package-hEMm6olE.js} +8 -9
  16. package/dist/_chunks/{package-7cb0d20a.js.map → package-hEMm6olE.js.map} +1 -1
  17. package/dist/_chunks/{ts-d368b64b.js → ts--PkJtFoh.js} +4 -4
  18. package/dist/_chunks/{ts-d368b64b.js.map → ts--PkJtFoh.js.map} +1 -1
  19. package/dist/_chunks/{verify-package-dcd78bcb.js → verify-package-88yI8VXr.js} +10 -11
  20. package/dist/_chunks/{verify-package-dcd78bcb.js.map → verify-package-88yI8VXr.js.map} +1 -1
  21. package/dist/_chunks/{verify-studio-1bc674db.js → verify-studio-t8s7BSdb.js} +9 -10
  22. package/dist/_chunks/{verify-studio-1bc674db.js.map → verify-studio-t8s7BSdb.js.map} +1 -1
  23. package/dist/_chunks/{version-d0278a75.js → version-UQqnNiud.js} +3 -3
  24. package/dist/_chunks/{version-d0278a75.js.map → version-UQqnNiud.js.map} +1 -1
  25. package/dist/cli.js +1 -1
  26. package/package.json +7 -8
  27. package/src/npm/package.ts +1 -1
  28. package/src/presets/semver-workflow.ts +2 -3
  29. package/dist/_chunks/init-3120a384.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"package-388ef15c.js","sources":["../../src/configs/buildExtensions.ts","../../src/util/prompt.ts","../../node_modules/json5/dist/index.mjs","../../src/util/files.ts","../../src/util/errorToUndefined.ts","../../src/sanity/manifest.ts","../../src/npm/resolveLatestVersions.ts","../../src/configs/banned-packages.ts","../../src/actions/verify/validations.ts","../../src/configs/forced-package-versions.ts","../../src/npm/package.ts"],"sourcesContent":["export const buildExtensions = ['.js', '.jsx', '.es6', '.es', '.mjs', '.ts', '.tsx']\n","import {URL} from 'url'\nimport path from 'path'\nimport inquirer from 'inquirer'\n// @ts-expect-error missing types\nimport validNpmName from 'validate-npm-package-name'\n// @ts-expect-error missing types\nimport githubUrlToObject from 'github-url-to-object'\nimport {InjectOptions} from '../actions/inject'\n\nexport async function prompt(\n message: string,\n options: {\n choices?: any\n type?: string\n default?: any\n filter?: (val: any) => any\n validate?: (val: any) => boolean | string\n },\n) {\n const type = options.choices ? 'list' : options.type\n const result = await inquirer.prompt([{...options, type, message, name: 'single'}])\n return result && result.single\n}\n\nprompt.separator = () => new inquirer.Separator()\n\nexport function promptForPackageName({basePath}: InjectOptions, defaultVal?: string) {\n return prompt('Plugin name (sanity-plugin-...)', {\n default: defaultVal || path.basename(basePath),\n filter: (name) => {\n const prefixless = name.trim().replace(/^sanity-plugin-/, '')\n return name[0] === '@' ? name : `sanity-plugin-${prefixless}`\n },\n validate: (name) => {\n const valid: {errors?: string[]} = validNpmName(name)\n if (valid.errors) {\n return valid.errors[0]\n }\n\n if (name[0] !== '@' && name.endsWith('plugin')) {\n return `Name shouldn't include \"plugin\" multiple times (${name})`\n }\n\n return true\n },\n })\n}\n\nexport function promptForRepoOrigin(options: InjectOptions, defaultVal?: string) {\n return prompt('Git repository URL', {\n default: defaultVal,\n filter: (raw) => {\n const url = (raw || '').trim()\n const gh: {user: string; repo: string} | undefined = githubUrlToObject(url)\n return gh ? `git+ssh://git@github.com/${gh.user}/${gh.repo}.git` : url\n },\n validate: (url) => {\n if (!url) {\n return true\n }\n\n try {\n const parsed = new URL(url)\n return parsed ? true : 'Invalid URL'\n } catch (err) {\n return 'Invalid URL'\n }\n },\n })\n}\n","// 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","import fs from 'fs'\nimport path from 'path'\nimport util from 'util'\nimport pAny from 'p-any'\nimport crypto from 'crypto'\nimport {buildExtensions} from '../configs/buildExtensions'\nimport {prompt} from './prompt'\nimport {InitFlags} from '../actions/init'\nimport log from './log'\nimport json5 from 'json5'\nimport {ManifestPaths} from '../sanity/manifest'\n\nexport const stat = util.promisify(fs.stat)\nexport const mkdir = util.promisify(fs.mkdir)\nexport const readdir = util.promisify(fs.readdir)\nexport const copyFile = util.promisify(fs.copyFile)\nexport const readFile = util.promisify(fs.readFile)\nexport const writeFile = util.promisify(fs.writeFile)\n\nexport function hasSourceEquivalent(compiledFile: string, paths: ManifestPaths) {\n if (!paths.source) {\n return fileExists(\n path.isAbsolute(compiledFile) ? compiledFile : path.resolve(paths.basePath, compiledFile),\n )\n }\n\n // /plugin/dist/MyComponent.js => /plugin/src\n const baseDir = path.dirname(compiledFile.replace(paths.compiled as string, paths.source))\n\n // /plugin/dist/MyComponent.js => MyComponent\n const baseName = path.basename(compiledFile, path.extname(compiledFile))\n\n // MyComponent => /plugin/src/MyComponent\n const pathStub = path.join(baseDir, baseName)\n\n /*\n * /plugin/src/MyComponent => [\n * /plugin/src/MyComponent.jsx,\n * /plugin/src/MyComponent.mjs,\n * ...\n * ]\n */\n return buildCandidateExists(pathStub)\n}\n\n// Generally used for parts resolving\nexport async function hasSourceFile(filePath: string, paths?: ManifestPaths) {\n if (!paths?.source) {\n return fileExists(\n path.isAbsolute(filePath) ? filePath : path.resolve(paths?.basePath ?? '', filePath),\n )\n }\n\n // filePath: components/SomeInput\n // paths: {source: '/plugin/src'}\n // MyComponent => /plugin/src/MyComponent\n const pathStub = path.isAbsolute(filePath) ? filePath : path.resolve(paths.source, filePath)\n\n if (await fileExists(pathStub)) {\n return true\n }\n\n return buildCandidateExists(pathStub)\n}\n\n// Generally used for parts resolving\nexport function hasCompiledFile(filePath: string, paths?: ManifestPaths) {\n if (!paths?.compiled) {\n return fileExists(\n path.isAbsolute(filePath) ? filePath : path.resolve(paths?.basePath ?? '', filePath),\n )\n }\n\n // filePath: components/SomeInput\n // paths: {compiled: '/plugin/dist'}\n\n // components/SomeInput => /plugin/dist/components/SomeInput\n const absPath = path.isAbsolute(filePath) ? filePath : path.resolve(paths.compiled, filePath)\n\n // /plugin/dist/components/SomeInput => /plugin/dist/components/SomeInput.js\n // /plugin/dist/components/SomeInput.js => /plugin/dist/components/SomeInput.js\n // /plugin/dist/components/SomeInput.css => /plugin/dist/components/SomeInput.css\n const fileExt = path.extname(absPath)\n const withExt = fileExt === '' ? `${absPath}.js` : absPath\n\n return fileExists(withExt)\n}\n\nexport function buildCandidateExists(pathStub: string) {\n const candidates = buildExtensions.map((extCandidate) => `${pathStub}${extCandidate}`)\n\n return pAny(candidates.map((candidate) => stat(candidate)))\n .then(() => true)\n .catch(() => false)\n}\n\nexport function fileExists(filePath: string) {\n return stat(filePath)\n .then(() => true)\n .catch(() => false)\n}\n\nexport async function readJsonFile<T>(filePath: string) {\n const content = await readFile(filePath, 'utf8')\n return JSON.parse(content) as T\n}\n\nexport function writeJsonFile(filePath: string, content: Record<string, unknown>) {\n const data = JSON.stringify(content, null, 2) + '\\n'\n return writeFile(filePath, data, {encoding: 'utf8'})\n}\n\nexport async function writeFileWithOverwritePrompt(\n filePath: string,\n content: string,\n options: {default?: any; force?: boolean} & fs.ObjectEncodingOptions,\n) {\n const {default: defaultVal, force = false, ...writeOptions} = options\n const withinCwd = filePath.startsWith(process.cwd())\n const printablePath = withinCwd ? path.relative(process.cwd(), filePath) : filePath\n\n if (await fileEqualsData(filePath, content)) {\n return false\n }\n\n if (\n !force &&\n (await fileExists(filePath)) &&\n !(await prompt(`File \"${printablePath}\" already exists. Overwrite?`, {\n type: 'confirm',\n default: defaultVal,\n }))\n ) {\n return false\n }\n\n await writeFile(filePath, content, writeOptions)\n return true\n}\n\nexport async function copyFileWithOverwritePrompt(from: string, to: string, flags: InitFlags) {\n const withinCwd = to.startsWith(process.cwd())\n const printablePath = withinCwd ? path.relative(process.cwd(), to) : to\n\n if (await filesAreEqual(from, to)) {\n return false\n }\n\n await ensureDirectoryExists(to)\n\n if (\n !flags.force &&\n (await fileExists(to)) &&\n !(await prompt(`File \"${printablePath}\" already exists. Overwrite?`, {\n type: 'confirm',\n default: false,\n }))\n ) {\n return false\n }\n\n await copyFile(from, to)\n return true\n}\n\nasync function ensureDirectoryExists(filePath: string) {\n const dirname = path.dirname(filePath)\n if (await fileExists(dirname)) {\n return true\n }\n await ensureDirectoryExists(dirname)\n await mkdir(dirname)\n}\n\nexport async function fileEqualsData(filePath: string, content: string) {\n const contentHash = crypto.createHash('sha1').update(content).digest('hex')\n const remoteHash = await getFileHash(filePath)\n return contentHash === remoteHash\n}\n\nexport async function filesAreEqual(file1: string, file2: string) {\n const [hash1, hash2] = await Promise.all([getFileHash(file1, false), getFileHash(file2)])\n return hash1 === hash2\n}\n\nexport function getFileHash(filePath: string, allowMissing = true) {\n return new Promise((resolve, reject) => {\n const hash = crypto.createHash('sha1')\n const stream = fs.createReadStream(filePath)\n stream.on('error', (err) => {\n if ((err as unknown as {code?: string}).code === 'ENOENT' && allowMissing) {\n resolve(null)\n } else {\n reject(err)\n }\n })\n\n stream.on('end', () => resolve(hash.digest('hex')))\n stream.on('data', (chunk) => hash.update(chunk))\n })\n}\n\nexport async function ensureDir(dirPath: string) {\n try {\n await mkdir(dirPath)\n } catch (err) {\n if ((err as unknown as {code?: string}).code !== 'EEXIST') {\n throw err\n }\n }\n}\n\nexport async function isEmptyish(dirPath: string) {\n const ignoredFiles = ['.git', '.gitignore', 'license', 'readme.md']\n const allFiles = await readdir(dirPath).catch(() => [])\n const files = allFiles.filter((file) => !ignoredFiles.includes(file.toLowerCase()))\n return files.length === 0\n}\n\nexport async function readFileContent({\n filename,\n basePath,\n}: {\n filename: string\n basePath: string\n}): Promise<string | undefined> {\n const filepath = path.normalize(path.join(basePath, filename))\n try {\n return await readFile(filepath, 'utf8')\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n log.debug(`No ${filename} file found.`)\n return undefined\n }\n throw new Error(`Failed to read \"${filepath}\": ${err.message}`)\n }\n}\n\nexport async function readJson5File<T>({\n filename,\n basePath,\n}: {\n filename: string\n basePath: string\n}): Promise<T | undefined> {\n const content = await readFileContent({filename, basePath})\n if (!content) {\n return undefined\n }\n\n return parseJson5<T>(content, filename)\n}\n\nexport function parseJson5<T>(content: string, errorKey: string): T {\n try {\n return json5.parse<T>(content)\n } catch (err: any) {\n throw new Error(`Error parsing \"${errorKey}\": ${err.message}`)\n }\n}\n","export function errorToUndefined(err: any) {\n if (err instanceof TypeError) {\n throw err\n }\n\n return undefined\n}\n","import fs from 'fs'\nimport path from 'path'\nimport util from 'util'\nimport pkg from '../../package.json'\nimport {buildExtensions} from '../configs/buildExtensions'\nimport {hasSourceFile, hasCompiledFile, readJsonFile, fileExists} from '../util/files'\nimport {errorToUndefined} from '../util/errorToUndefined'\n\nconst stat = util.promisify(fs.stat)\nconst readFile = util.promisify(fs.readFile)\n\nconst allowedPartProps = ['name', 'implements', 'path', 'description']\nconst disallowedPluginProps = ['api', 'project', 'plugins', 'env']\n\nexport interface SanityV2Manifest {\n root?: boolean\n name: string\n paths: ManifestPaths\n parts?: {\n path: string\n }[]\n}\n\nexport interface ManifestPaths {\n basePath: string\n compiled?: string\n source?: string\n}\n\nexport interface ManifestOptions {\n isPlugin?: boolean\n validate?: boolean\n pluginName?: string\n basePath: string\n verifySourceParts?: boolean\n verifyCompiledParts?: boolean\n paths?: ManifestPaths\n flags?: Record<string, any>\n}\n\nexport async function getPaths(options: ManifestOptions) {\n const {basePath} = options\n const manifest = await readManifest(options)\n if (!manifest.paths) {\n return null\n }\n\n return absolutifyPaths(manifest.paths, basePath)\n}\n\nfunction absolutifyPaths(paths: ManifestPaths | undefined, basePath: string) {\n const getPath = (relative?: string) =>\n relative ? path.resolve(path.join(basePath, relative)) : undefined\n return paths\n ? {\n basePath,\n compiled: getPath(paths.compiled),\n source: getPath(paths.source),\n }\n : {basePath}\n}\n\nexport async function readManifest(options: ManifestOptions) {\n const {basePath, validate = true} = options\n const manifestPath = path.normalize(path.join(basePath, 'sanity.json'))\n\n let content\n try {\n content = await readFile(manifestPath, 'utf8')\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n throw new Error(\n `No sanity.json found. sanity.json is required for plugins to function. Use \\`${pkg.binname} init\\` for a new plugin, or create an empty \\`sanity.json\\` with an empty object (\\`{}\\`) for existing ones.`,\n )\n }\n\n throw new Error(`Failed to read \"${manifestPath}\": ${err.message}`)\n }\n\n let parsed\n try {\n parsed = JSON.parse(content)\n } catch (err: any) {\n throw new Error(`Error parsing \"${manifestPath}\": ${err.message}`)\n }\n\n if (validate) {\n await validateManifest(parsed, options)\n }\n\n return parsed\n}\n\nexport async function validateManifest(manifest: SanityV2Manifest, opts: ManifestOptions) {\n const options = {isPlugin: true, ...opts}\n\n if (!isObject(manifest)) {\n throw new Error(`Invalid sanity.json: Root must be an object`)\n }\n\n if (options.isPlugin) {\n await validatePluginManifest(manifest, options)\n } else {\n await validateProjectManifest(manifest)\n }\n\n if ('root' in manifest && typeof manifest.root !== 'boolean') {\n throw new Error(`Invalid sanity.json: \"root\" property must be a boolean if declared`)\n }\n\n await validateParts(manifest, {\n ...options,\n paths: absolutifyPaths(manifest.paths, options.basePath),\n })\n}\n\nfunction validateProjectManifest(manifest: SanityV2Manifest) {\n if ('paths' in manifest) {\n throw new Error(`Invalid sanity.json: \"paths\" property has no meaning in a project manifest`)\n }\n}\n\nexport async function validatePluginManifest(\n manifest: SanityV2Manifest,\n options: {basePath: string},\n) {\n const disallowed = Object.keys(manifest)\n .filter((key) => disallowedPluginProps.includes(key))\n .map((key) => `\"${key}\"`)\n\n if (disallowed.length > 0) {\n const plural = disallowed.length > 1 ? 's' : ''\n const joined = disallowed.join(', ')\n throw new Error(\n `Invalid sanity.json: Key${plural} ${joined} ${\n plural ? 'are' : 'is'\n } not allowed in a plugin manifest`,\n )\n }\n\n if (manifest.root) {\n throw new Error(`Invalid sanity.json: \"root\" cannot be truthy in a plugin manifest`)\n }\n\n await validatePaths(manifest, options)\n}\n\nexport async function validatePaths(manifest: SanityV2Manifest, options: {basePath: string}) {\n if (!('paths' in manifest)) {\n return\n }\n\n if (!isObject(manifest.paths)) {\n throw new Error(`Invalid sanity.json: \"paths\" must be an object if declared`)\n }\n\n if (typeof manifest.paths.compiled !== 'string') {\n throw new Error(\n `Invalid sanity.json: \"paths\" must have a (string) \"compiled\" property if declared`,\n )\n }\n\n if (typeof manifest.paths.source !== 'string') {\n throw new Error(\n `Invalid sanity.json: \"paths\" must have a (string) \"source\" property if declared`,\n )\n }\n\n const sourcePath = path.resolve(options.basePath, manifest.paths.source)\n let srcStats\n try {\n srcStats = await stat(sourcePath)\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n throw new Error(`sanity.json references \"source\" path which does not exist: \"${sourcePath}\"`)\n }\n }\n\n if (!srcStats?.isDirectory()) {\n throw new Error(\n `sanity.json references \"source\" path which is not a directory: \"${sourcePath}\"`,\n )\n }\n}\n\nasync function validateParts(manifest: SanityV2Manifest, options: ManifestOptions) {\n if (!('parts' in manifest)) {\n return\n }\n\n if (!Array.isArray(manifest.parts)) {\n throw new Error(`Invalid sanity.json: \"parts\" must be an array if declared`)\n }\n\n let i = 0\n for (const part of manifest.parts) {\n await validatePart(part, i, options)\n i++\n }\n}\n\nasync function validatePart(part: Record<string, any>, index: number, options: ManifestOptions) {\n if (!isObject(part)) {\n throw new Error(`Invalid sanity.json: \"parts[${index}]\" must be an object`)\n }\n\n validateAllowedPartKeys(part, index)\n validatePartStringValues(part, index)\n validatePartNames(part, index, options)\n await validatePartFiles(part, index, options)\n}\n\nasync function validatePartFiles(\n part: {path?: string} | undefined,\n index: number,\n options: ManifestOptions,\n) {\n const {verifyCompiledParts, verifySourceParts, paths} = options\n if (!part?.path) {\n return\n }\n\n const ext = path.extname(part.path)\n if (paths?.source && ext && ext !== '.js' && buildExtensions.includes(ext)) {\n throw new Error(\n `Invalid sanity.json: Part path has extension which is not applicable after compiling. ${ext} becomes .js after compiling. Specify filename without extension (${path.basename(\n part.path,\n )}) (parts[${index}])`,\n )\n }\n\n if (!verifySourceParts && !verifyCompiledParts) {\n return\n }\n\n const [srcExists, outDirExists] = await Promise.all([\n hasSourceFile(part.path, paths),\n verifyCompiledParts && hasCompiledFile(part.path, paths),\n ])\n\n if (!srcExists) {\n throw new Error(\n `Invalid sanity.json: Part path references file that does not exist in source directory (${\n paths?.source || paths?.basePath\n }) (parts[${index}])`,\n )\n }\n\n if (verifyCompiledParts && !outDirExists) {\n throw new Error(\n `Invalid sanity.json: Part path references file (\"${part.path}\") that does not exist in compiled directory (${paths?.compiled}) (parts[${index}])`,\n )\n }\n}\n\nfunction validatePartNames(\n part: {name?: string; implements?: string} | undefined,\n index: number,\n options: ManifestOptions,\n) {\n const pluginName = options.pluginName ? options.pluginName.replace(/^sanity-plugin-/, '') : ''\n if (!part?.name || !part?.name?.startsWith(`part:${pluginName}/`)) {\n throw new Error(\n `Invalid sanity.json: \"name\" must be prefixed with \"part:${pluginName}/\" - got \"${part?.name}\" (parts[${index}])`,\n )\n }\n\n if (!part?.implements?.startsWith('part:')) {\n throw new Error(\n `Invalid sanity.json: \"implements\" must be prefixed with \"part:\" - got \"${part?.implements}\" (parts[${index}])`,\n )\n }\n}\n\nfunction validateAllowedPartKeys(part: Record<string, any>, index: number) {\n const disallowed = Object.keys(part)\n .filter((key) => !allowedPartProps.includes(key))\n .map((key) => `\"${key}\"`)\n\n if (disallowed.length > 0) {\n const plural = disallowed.length > 1 ? 's' : ''\n const joined = disallowed.join(', ')\n throw new Error(\n `Invalid sanity.json: Key${plural} ${joined} ${\n plural ? 'are' : 'is'\n } not allowed in a part declaration (parts[${index}])`,\n )\n }\n}\n\nfunction validatePartStringValues(part: Record<string, any>, index: number) {\n const nonStrings = Object.keys(part)\n .filter((key) => typeof part[key] !== 'string')\n .map((key) => `\"${key}\"`)\n\n if (nonStrings.length > 0) {\n const plural = nonStrings.length > 1 ? 's' : ''\n const joined = nonStrings.join(', ')\n throw new Error(\n `Invalid sanity.json: Key${plural} ${joined} should be of type string (parts[${index}])`,\n )\n }\n}\n\nfunction isObject(obj: any) {\n return !Array.isArray(obj) && obj !== null && typeof obj === 'object'\n}\n\nexport function getReferencesPartPaths(manifest: SanityV2Manifest, basePath: string) {\n const {paths, parts = []} = manifest\n const compiledPath = path.resolve(basePath, paths?.compiled || '')\n\n return parts\n .filter((part) => part.path)\n .map((part) => part.path)\n .map((partPath) => (path.extname(partPath) === '' ? `${partPath}.js` : partPath))\n .map((partPath) =>\n path.isAbsolute(partPath)\n ? partPath // Not sure if this ever happens, but :shrugs:\n : path.resolve(compiledPath, partPath),\n )\n}\n\nexport async function hasSanityJson(basePath: string) {\n const file = await readJsonFile<{root?: boolean}>(path.join(basePath, 'sanity.json')).catch(\n errorToUndefined,\n )\n return {exists: Boolean(file), isRoot: Boolean(file && file.root)}\n}\n\nexport async function findStudioV3Config(basePath: string) {\n const jsFile = 'sanity.config.js'\n const jsExists = await fileExists(path.join(basePath, jsFile))\n if (jsExists) {\n return {v3ConfigFile: jsFile}\n }\n const tsFile = 'sanity.config.ts'\n const tsExists = await fileExists(path.join(basePath, tsFile))\n return {v3ConfigFile: tsExists ? tsFile : undefined}\n}\n","import pProps from 'p-props'\nimport getLatestVersion from 'get-latest-version'\n\n// We may want to lock certain dependencies to specific versions\nconst lockedDependencies: Record<string, string> = {\n 'styled-components': '^5.2',\n}\n\nexport function resolveLatestVersions(packages: string[]) {\n const versions: Record<string, string> = {}\n for (const pkgName of packages) {\n versions[pkgName] = pkgName in lockedDependencies ? lockedDependencies[pkgName] : 'latest'\n }\n\n return pProps(\n versions,\n async (range, pkgName) => {\n const version = await getLatestVersion(pkgName, {range})\n if (!version) {\n throw new Error(`Found no version for ${pkgName}`)\n }\n return rangeify(version)\n },\n {concurrency: 8},\n )\n}\n\nfunction rangeify(version: string) {\n return `^${version}`\n}\n","export const mergedPackages = [\n '@sanity/base',\n '@sanity/core',\n '@sanity/types',\n '@sanity/data-aspects',\n '@sanity/default-layout',\n '@sanity/default-login',\n '@sanity/desk-tool',\n '@sanity/field',\n '@sanity/form-builder',\n '@sanity/initial-value-templates',\n '@sanity/language-filter',\n '@sanity/production-preview',\n '@sanity/react-hooks',\n '@sanity/resolver',\n '@sanity/state-router',\n '@sanity/structure',\n '@sanity/studio-hints',\n].sort()\n\nexport const deprecatedDevDeps = [\n 'tsdx',\n 'sanipack',\n 'parcel',\n '@parcel/packager-ts',\n '@parcel/transformer-typescript-types',\n]\n","import outdent from 'outdent'\n// @ts-expect-error missing types\nimport validateNpmPackageName from 'validate-npm-package-name'\nimport {incompatiblePluginPackage, urls} from '../../constants'\nimport {deprecatedDevDeps, mergedPackages} from '../../configs/banned-packages'\nimport path from 'path'\nimport {fileExists, readJson5File} from '../../util/files'\nimport chalk from 'chalk'\nimport {PackageJson, SanityStudioJson, SanityV2Json} from './types'\nimport {ParsedCommandLine} from 'typescript'\n\nexport const expectedScripts = {\n build:\n 'run-s clean && plugin-kit verify-package --silent && pkg-utils build --strict && pkg-utils --strict',\n watch: 'pkg-utils watch --strict',\n 'link-watch': 'plugin-kit link-watch',\n prepublishOnly: 'run-s build',\n}\n\nconst expectedModulesFields = ['source', 'exports', 'main', 'module', 'files']\n\nfunction filesWithSuffixes(fileBases: string[], suffixes: string[]): string[] {\n return fileBases.flatMap((file) => suffixes.map((suffix) => `${file}.${suffix}`))\n}\n\nexport function validateNodeEngine(packageJson: PackageJson) {\n const nodeVersionRange = '>=14'\n if (!packageJson.engines?.node?.startsWith(nodeVersionRange)) {\n return [\n outdent`\n Expected package.json to contain engines.node: \">=14\" to ensure Studio compatible builds,\n but it was: ${packageJson.engines?.node}\n\n Please add the following to package.json:\n\n \"engines\": {\n \"node\": \"${nodeVersionRange}\"\n }`.trimStart(),\n ]\n }\n}\n\nexport function validateModule(packageJson: PackageJson, options: {outDir: string}): string[] {\n const {outDir} = options\n const errors: string[] = []\n\n const missingFields = expectedModulesFields.filter((field) => !packageJson[field])\n\n if (missingFields.length) {\n errors.push(\n outdent`\n Expected source, exports, main, module and files entries in package.json, but ${missingFields.join(\n ', ',\n )} where missing.\n\n Example:\n\n Given a plugin with entry-point in src/index.ts, using default @sanity/pkg-utils build command,\n package.json should contain the following entries to ensure that commonjs and esm outputs are built into ${outDir}:\n\n \"source\": \"./src/index.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./${outDir}/index.d.ts\",\n \"source\": \"./src/index.ts\",\n \"require\": \"./${outDir}/index.js\",\n \"import\": \"./${outDir}/index.esm.js\",\n \"default\": \"./${outDir}/index.js\"\n }\n },\n \"main\": \"./${outDir}/index.js\",\n \"module\": \"./${outDir}/index.esm.js\",\n \"types\": \"./${outDir}/index.d.ts\",\n \"files\": [\n \"${outDir}\",\n \"src\"\n ],\n\n Refer to @sanity/pkg-utils for more: https://github.com/sanity-io/pkg-utils#sanitypkg-utils\n `.trimStart(),\n )\n }\n\n if (packageJson.typings) {\n errors.push(outdent`Found typings field in package.json. Use types instead.`)\n }\n return errors\n}\n\nexport function validateScripts(packageJson: PackageJson): string[] {\n const errors: string[] = []\n\n const divergentScripts = Object.entries(expectedScripts).filter(([key, expectedCommand]) => {\n const command = packageJson.scripts?.[key]\n // check for includes instead of equals to give some leniency in command params and such\n return !command || !command.includes(expectedCommand)\n })\n\n if (divergentScripts.length) {\n errors.push(\n outdent`\n The following script commands did not contain expected defaults: ${divergentScripts\n .map(([key]) => key)\n .join(', ')}\n\n This checks for that the commands-strings includes these terms.\n\n Please add the following to your package.json \"scripts\":\n\n ${divergentScripts.map(([key, value]) => `\"${key}\": \"${value}\"`).join(',\\n')}\n `.trimStart(),\n )\n }\n return errors\n}\n\nexport async function validateTsConfig(\n ts: ParsedCommandLine,\n options: {basePath: string; outDir: string; tsconfig: string},\n) {\n const {basePath, outDir, tsconfig} = options\n\n const errors: string[] = []\n\n const expectedCompilerOptions = {\n moduleResolution: 'node',\n target: 'esnext',\n module: 'esnext',\n emitDeclarationOnly: true,\n esModuleInterop: true,\n skipLibCheck: true,\n isolatedModules: true,\n downlevelIteration: true,\n declaration: true,\n allowSyntheticDefaultImports: true,\n rootDir: '.',\n outDir,\n }\n\n const wrongEntries = Object.entries(expectedCompilerOptions).filter(([key, value]) => {\n let option: any = ts.options[key]\n\n if (key === 'rootDir' && typeof option === 'string') {\n option = path.relative(basePath, option) || '.'\n }\n\n if (key === 'outDir' && typeof option === 'string') {\n option = path.relative(basePath, option) || '.'\n }\n\n if (key === 'moduleResolution' && option === 2) {\n option = 'node'\n }\n\n if (key === 'target' && option === 99) {\n option = 'esnext'\n }\n\n if (key === 'module' && option === 99) {\n option = 'esnext'\n }\n\n return typeof value === 'string' && typeof option === 'string'\n ? value.toLowerCase() !== option?.toLowerCase()\n : value !== option\n })\n\n if (wrongEntries.length) {\n const expectedOutput = wrongEntries\n .map(([key, value]) => `\"${key}\": ${typeof value === 'string' ? `\"${value}\"` : value},`)\n .join('\\n')\n\n errors.push(\n outdent`\n Recommended ${tsconfig} compilerOptions missing:\n\n The following fields had unexpected values: [${wrongEntries.map(([key]) => key).join(', ')}]\n Expected to find these values:\n ${expectedOutput}\n\n Please update your ${tsconfig} accordingly.\n `.trimStart(),\n )\n }\n\n return errors\n}\n\nexport function validatePkgUtilsDependency({devDependencies}: PackageJson): string[] {\n if (!devDependencies?.['@sanity/pkg-utils']) {\n return [\n outdent`\n package.json does not list @sanity/pkg-utils as a devDependency.\n @sanity/pkg-utils replaced parcel as the recommended build tool in @sanity/plugin-kit 2.0.0\n\n Please add it by running 'npm install --save-dev @sanity/pkg-utils'.\n `.trimStart(),\n ]\n }\n return []\n}\n\nexport function validateSanityDependencies(packageJson: PackageJson): string[] {\n const {dependencies, devDependencies, peerDependencies} = packageJson\n const allDependencies = {...dependencies, ...devDependencies, ...peerDependencies}\n\n const illegalDeps = Object.keys(allDependencies).filter((dep) => mergedPackages.includes(dep))\n const deps = new Set<string>(illegalDeps)\n const unique = [...deps.values()]\n if (unique.length) {\n return [\n outdent`\n package.json depends on \"@sanity/*\" packages that have moved into \"sanity\" package.\n\n The following dependencies should be replaced with \"sanity\":\n - ${unique.join('\\n- ')}\n\n Refer to the reference docs to find replacement imports:\n ${urls.refDocs}\n `.trimStart(),\n ]\n }\n return []\n}\n\nexport function validateDeprecatedDependencies(packageJson: PackageJson): string[] {\n const {dependencies, devDependencies, peerDependencies} = packageJson\n const allDependencies = {...dependencies, ...devDependencies, ...peerDependencies}\n\n const illegalDeps = Object.keys(allDependencies).filter((dep) => deprecatedDevDeps.includes(dep))\n const deps = new Set<string>(illegalDeps)\n const unique = [...deps.values()]\n if (unique.length) {\n return [\n outdent`\n package.json contains deprecated dependencies that should be removed:\n - ${unique.join('\\n- ')}\n `.trimStart(),\n ]\n }\n\n return []\n}\n\nexport async function validateBabelConfig({basePath}: {basePath: string}) {\n const suffixes = ['json', 'js', 'cjs', 'mjs']\n const babelFileNames = ['.babelrc', 'babel.config']\n const filenames = ['.babelrc', ...filesWithSuffixes(babelFileNames, suffixes)]\n\n const babelFiles: string[] = []\n for (const filename of filenames) {\n const filepath = path.normalize(path.join(basePath, filename))\n if (await fileExists(filepath)) {\n babelFiles.push(filename)\n }\n }\n\n if (babelFiles.length) {\n return [\n outdent`\n Found babel-config file: [${babelFiles.join(\n ', ',\n )}]. When using default @sanity/plugin-kit build command,\n this is probably not needed.\n\n Delete the file, or disable this check.\n `.trimStart(),\n ]\n }\n return []\n}\n\nexport async function validateStudioConfig({basePath}: {basePath: string}): Promise<string[]> {\n const suffixes = ['ts', 'js', 'tsx', 'jsx']\n\n const filenames = filesWithSuffixes(['sanity.config', 'sanity.cli'], suffixes)\n\n const files: Record<string, boolean | undefined> = {}\n\n for (const filename of filenames) {\n const filepath = path.normalize(path.join(basePath, filename))\n files[filename] = await fileExists(filepath)\n }\n\n const sanityJson = await readJson5File<SanityStudioJson>({basePath, filename: 'sanity.json'})\n\n const hasConfigFile = (fileBase: string) =>\n filesWithSuffixes([fileBase], suffixes).some((filename) => files[filename])\n const hasCliConfig = hasConfigFile('sanity.cli')\n const hasStudioConfig = hasConfigFile('sanity.config')\n\n const errors: string[] = []\n\n if (sanityJson) {\n const info = [\n outdent`\n Found sanity.json. This file is not used by Sanity Studio V3.\n\n Please consult the Studio V3 migration guide:\n ${urls.migrationGuideStudio}\n It will detail how to convert sanity.json to sanity.config.ts (or .js) and sanity.cli.ts (or .js) equivalents.\n `.trimStart(),\n sanityJson.plugins?.length &&\n outdent`\n For V3 versions and alternatives to V2 plugins, please refer to the Sanity Exchange:\n ${urls.sanityExchange}\n `.trimStart(),\n ].filter((s): s is string => !!s)\n\n errors.push(info.join('\\n\\n'))\n }\n\n if (!hasCliConfig) {\n errors.push(\n outdent`\n sanity.cli.(${suffixes.join(\n ' | ',\n )}) missing. Please create a file named sanity.cli.ts with the following content:\n\n ${chalk.green(\n outdent`\n import {createCliConfig} from 'sanity/cli'\n\n export default createCliConfig({\n api: {\n projectId: '${sanityJson?.api?.projectId ?? 'project-id'}',\n dataset: '${sanityJson?.api?.dataset ?? 'dataset'}',\n }\n })`,\n )}\n\n Make sure to replace the projectId and dataset fields with your own.\n\n For more, see ${urls.migrationGuideStudio}\n `.trimStart(),\n )\n }\n\n if (!hasStudioConfig) {\n errors.push(\n outdent`\n sanity.config.(${suffixes.join(\n ' | ',\n )}) missing. At a minimum sanity.config.ts should contain:\n\n ${chalk\n .green(\n outdent`\n import { defineConfig } from \"sanity\"\n import { deskTool } from \"sanity/desk\"\n\n export default defineConfig({\n name: \"default\",\n\n projectId: '${sanityJson?.api?.projectId ?? 'project-id'}',\n dataset: '${sanityJson?.api?.dataset ?? 'dataset'}',\n\n plugins: [\n deskTool(),\n ],\n\n schema: {\n types: [\n /* put your v2 schema-types here */\n ],\n },\n })`,\n )\n .trimStart()}\n\n Make sure to replace the projectId and dataset fields with your own.\n\n For more, see ${urls.migrationGuideStudio}\n `.trimStart(),\n )\n }\n\n return errors.length ? [errors.join(`\\n\\n---\\n\\n`)] : []\n}\n\nexport async function validatePluginSanityJson({\n basePath,\n packageJson,\n}: {\n basePath: string\n packageJson: PackageJson\n}) {\n const sanityJson = await readJson5File<SanityV2Json>({basePath, filename: 'sanity.json'})\n\n const expectedDefaults = {\n parts: [\n {\n implements: 'part:@sanity/base/sanity-root',\n path: './v2-incompatible.js',\n },\n ],\n }\n\n const hasSinglePart =\n sanityJson &&\n Object.keys(sanityJson).length === 1 &&\n sanityJson?.parts &&\n sanityJson.parts.length === 1\n\n const firstPart = hasSinglePart ? sanityJson?.parts?.[0] : undefined\n const correctImplements = firstPart?.implements === expectedDefaults.parts[0].implements\n const pathExists =\n firstPart?.path && (await fileExists(path.normalize(path.join(basePath, firstPart.path))))\n const hasDependency = !!packageJson.dependencies?.[incompatiblePluginPackage]\n const isValid = sanityJson && hasSinglePart && correctImplements && pathExists && hasDependency\n\n if (!isValid) {\n const errors = [\n !sanityJson ? 'sanity.json does not exist' : null,\n !hasSinglePart ? 'sanity.json should have exactly one entry in \"parts\", but did not.' : null,\n !correctImplements\n ? `The part should implement ${expectedDefaults.parts[0].implements}, but did not.`\n : null,\n firstPart?.path && !pathExists\n ? `The file in \"path\", ${firstPart?.path}, does not exist.`\n : null,\n\n !hasDependency\n ? outdent`\n package.json should have ${incompatiblePluginPackage} as a dependency, but did not.\n Install it with: npm install --save ${incompatiblePluginPackage}\n `.trimStart()\n : null,\n ].filter((e): e is string => !!e)\n\n return [\n outdent`\n Invalid sanity.json. It is used for compatibility checking in V2 studios:\n\n - ${errors.join('\\n- ')}\n\n sanity.json will only be used when incorrectly installing a v3 plugin in a v2 Studio.\n\n This check ensures that sanity.json conforms with the usage section of\n ${urls.incompatiblePlugin}\n `.trimStart(),\n ]\n }\n return []\n}\n\nexport function validatePackageName(packageJson: PackageJson) {\n const valid: {validForNewPackages?: boolean; errors: string[]} = validateNpmPackageName(\n packageJson.name,\n )\n if (!valid.validForNewPackages) {\n return [`Invalid package.json: \"name\" is invalid: ${valid.errors.join(', ')}`]\n }\n\n const isScoped = packageJson.name?.startsWith('@')\n if (!isScoped && !packageJson.name?.startsWith('sanity-plugin-')) {\n return [\n `Invalid package.json: \"name\" should be prefixed with \"sanity-plugin-\" (or scoped - @your-company/plugin-name)`,\n ]\n }\n}\n\nexport async function validateSrcIndexFile(basePath: string) {\n const paths = ['index.js', 'index.ts'].map((p) => path.join('src', p))\n const allowedIndexFiles = paths.map((file) => path.join(basePath, file))\n\n let hasIndex = false\n for (const indexFile of allowedIndexFiles) {\n hasIndex = hasIndex || (await fileExists(indexFile))\n }\n if (!hasIndex) {\n return [\n outdent`\n Expected one of [${paths.join(', ')}] to exist.\n\n @sanity/pkg-utils expects a non-jsx file to be the source entry-point for the plugin.\n If you currently have JSX in your index file, extract it into a separate file and import it.\n `,\n ]\n }\n\n return []\n}\n\nexport async function disallowDuplicateConfig({\n basePath,\n pkgJson,\n configKey,\n files,\n}: {\n basePath: string\n pkgJson: PackageJson\n configKey: string\n files: string[]\n}) {\n const found: string[] = []\n for (const file of files) {\n const filePath = path.join(basePath, file)\n const exits = await fileExists(filePath)\n if (exits) {\n found.push(file)\n }\n }\n if (found.length > 1) {\n return [\n outdent`\n Found multiple config files that serve the same purpose: [${found.join(', ')}].\n\n There should be at most one of these files. Delete the rest.\n `,\n ]\n }\n if (found.length && pkgJson[configKey]) {\n return [\n outdent`\n package.json contains ${configKey}, but there also exists a config file that serves the same purpose.\n Config file: ${found.join('')}]\n\n Either delete the file or remove ${configKey} entry from package.json.\n `,\n ]\n }\n\n return []\n}\n\nexport async function disallowDuplicateEslintConfig(basePath: string, pkgJson: PackageJson) {\n return disallowDuplicateConfig({\n basePath,\n pkgJson,\n configKey: 'eslint',\n files: [\n '.eslintrc',\n '.eslintrc.js',\n '.eslintrc.cjs',\n '.eslintrc.yaml',\n '.eslintrc.yml',\n '.eslintrc.json',\n ],\n })\n}\n\nexport async function disallowDuplicatePrettierConfig(basePath: string, pkgJson: PackageJson) {\n return disallowDuplicateConfig({\n basePath,\n pkgJson,\n configKey: 'prettier',\n files: [\n '.prettierrc',\n '.prettierrc.json5',\n '.prettierrc.json',\n '.prettierrc.yaml',\n '.prettierrc.yml',\n '.prettierrc.js',\n '.prettierrc.cjs',\n '.prettier.config,js',\n '.prettier.config.cjs',\n '.prettierrc.toml',\n ],\n })\n}\n","export const forcedPackageVersions = {}\n\nexport const forcedDevPackageVersions = forcedPackageVersions\n\nexport const forcedPeerPackageVersions = {\n react: '^18',\n 'react-dom': '^18',\n 'react-is': '^18',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n sanity: '^3',\n 'styled-components': '^5.2',\n}\n","import fs from 'fs'\nimport path from 'path'\nimport util from 'util'\n// @ts-expect-error missing types\nimport githubUrl from 'github-url-to-object'\n// @ts-expect-error missing types\nimport validateNpmPackageName from 'validate-npm-package-name'\nimport {getPaths, ManifestOptions} from '../sanity/manifest'\nimport {resolveLatestVersions} from './resolveLatestVersions'\nimport {hasSourceEquivalent, writeJsonFile} from '../util/files'\nimport log from '../util/log'\nimport {cliName, incompatiblePluginPackage} from '../constants'\nimport {InjectOptions, PackageData} from '../actions/inject'\nimport {expectedScripts} from '../actions/verify/validations'\nimport {PackageJson} from '../actions/verify/types'\nimport {\n forcedDevPackageVersions,\n forcedPackageVersions,\n forcedPeerPackageVersions,\n} from '../configs/forced-package-versions'\nconst defaultDependencies = [incompatiblePluginPackage]\n\nconst defaultDevDependencies = [\n 'npm-run-all',\n 'rimraf',\n 'sanity',\n\n // peer dependencies of `sanity`\n 'react',\n 'react-dom',\n 'styled-components',\n\n // peer dependencies of `styled-components`\n 'react-is',\n]\n\nconst defaultPeerDependencies = ['react', 'sanity']\n\nconst readFile = util.promisify(fs.readFile)\n\nconst pathKeys: (keyof PackageJson)[] = ['main', 'module', 'browser', 'types', 'typings']\n\nexport async function getPackage(opts: ManifestOptions): Promise<PackageJson> {\n const options = {flags: {}, ...opts}\n\n validateOptions(options)\n\n const {basePath, validate = true} = options\n const manifestPath = path.normalize(path.join(basePath, 'package.json'))\n\n let content\n try {\n content = await readFile(manifestPath, 'utf8')\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n throw new Error(\n `No package.json found. package.json is required to publish to npm. Use \\`${cliName} init\\` for a new plugin, or \\`npm init\\` for an existing one`,\n )\n }\n\n throw new Error(`Failed to read \"${manifestPath}\": ${err.message}`)\n }\n\n let parsed\n try {\n parsed = JSON.parse(content)\n } catch (err: any) {\n throw new Error(`Error parsing \"${manifestPath}\": ${err.message}`)\n }\n\n if (!isObject(parsed)) {\n throw new Error(`Invalid package.json: Root must be an object`)\n }\n\n if (validate) {\n await validatePackage(parsed, options)\n }\n\n return parsed\n}\n\nexport async function validatePackage(manifest: PackageJson, opts: ManifestOptions) {\n validateOptions(opts)\n\n const options = {isPlugin: true, ...opts}\n\n if (options.isPlugin) {\n await validatePluginPackage(manifest, options)\n }\n\n validateLockFiles(options)\n}\n\nfunction validateOptions(opts: {basePath: string}) {\n const options = opts || {}\n if (!isObject(options)) {\n throw new Error(`Options must be an object`)\n }\n\n if (typeof options.basePath !== 'string') {\n throw new Error(`\"options.basePath\" must be a string (path to plugin base path)`)\n }\n}\n\nasync function validatePluginPackage(manifest: PackageJson, options: ManifestOptions) {\n validatePackageName(manifest)\n await validatePaths(manifest, options)\n}\n\nfunction validatePackageName(manifest: PackageJson) {\n if (typeof manifest.name !== 'string') {\n throw new Error(`Invalid package.json: \"name\" must be a string`)\n }\n\n const valid: {validForNewPackages?: boolean; errors: string[]} = validateNpmPackageName(\n manifest.name,\n )\n if (!valid.validForNewPackages) {\n throw new Error(`Invalid package.json: \"name\" is invalid: ${valid.errors.join(', ')}`)\n }\n\n const isScoped = manifest.name[0] === '@'\n if (!isScoped && !manifest.name.startsWith('sanity-plugin-')) {\n throw new Error(\n `Invalid package.json: \"name\" should be prefixed with \"sanity-plugin-\" (or scoped - @your-company/plugin-name)`,\n )\n }\n}\n\nasync function validatePaths(manifest: PackageJson, options: ManifestOptions) {\n const paths = await getPaths({\n ...options,\n pluginName: manifest.name ?? 'unknown',\n verifySourceParts: false,\n verifyCompiledParts: false,\n })\n\n const abs = (file: string) =>\n path.isAbsolute(file) ? file : path.resolve(path.join(options.basePath, file))\n\n const exists = (file: string) => fs.existsSync(abs(file))\n const willExist = (file: string) => paths && hasSourceEquivalent(abs(file), paths)\n const withinSourceDir = (file: string) => paths?.source && abs(file).startsWith(paths.source)\n const withinTargetDir = (file: string) => paths?.compiled && abs(file).startsWith(paths.compiled)\n\n for (const key of pathKeys) {\n if (!(key in manifest)) {\n continue\n }\n\n const manifestValue = manifest[key]\n if (typeof manifestValue !== 'string') {\n throw new Error(`Invalid package.json: \"${key}\" must be a string if defined`)\n }\n\n // We don't want to reference `./src/MyComponent.js` containing a bunch of JSX and whatnot,\n // instead we want to target `./dist/MyComponent.js` which is the location it'll be compiled to\n if (!options?.flags?.allowSourceTarget && paths && withinSourceDir(manifestValue)) {\n throw new Error(\n `Invalid package.json: \"${key}\" points to file within source (uncompiled) directory. Use --allow-source-target if you really want to do this.`,\n )\n }\n\n // Does it exist only because it was there prior to compilation?\n // We're clearing the folder on compilation, so we shouldn't allow it\n const fileExists = exists(manifestValue)\n if (\n fileExists &&\n paths &&\n withinTargetDir(manifestValue) &&\n !(await willExist(manifestValue))\n ) {\n throw new Error(\n `Invalid package.json: \"${key}\" points to file that will not exist after compiling`,\n )\n }\n\n // If it _doesn't_ exist and it _won't_ exist, then there isn't much point in continuing, is there?\n if (!exists(manifestValue) && !(await willExist(manifestValue))) {\n if (!paths) {\n throw new Error(`Invalid package.json: \"${key}\" points to file that does not exist`)\n }\n\n const inOutDir = paths.compiled && !abs(manifestValue).startsWith(paths.compiled)\n throw new Error(\n inOutDir\n ? `Invalid package.json: \"${key}\" points to file that does not exist, and \"paths\" is not configured to compile to this location`\n : `Invalid package.json: \"${key}\" points to file that does not exist, and no equivalent is found in source directory`,\n )\n }\n }\n}\n\nfunction isObject(obj: unknown): obj is Record<string, unknown> {\n return !Array.isArray(obj) && obj !== null && typeof obj === 'object'\n}\n\nfunction validateLockFiles(options: {basePath: string}) {\n const npm = fs.existsSync(path.join(options.basePath, 'package-lock.json'))\n const yarn = fs.existsSync(path.join(options.basePath, 'yarn.lock'))\n if (npm && yarn) {\n throw new Error(`Invalid plugin: contains both package-lock.json and yarn.lock`)\n }\n}\n\nexport async function writePackageJson(data: PackageData, options: InjectOptions) {\n const {user, pluginName, license, description, pkg: prevPkg, gitOrigin} = data\n const {\n outDir,\n peerDependencies: addPeers,\n dependencies: addDeps,\n devDependencies: addDevDeps,\n } = options\n const {flags} = options\n const prev = prevPkg || {}\n\n const usePrettier = flags.prettier !== false\n const useEslint = flags.eslint !== false\n const useTypescript = flags.eslint !== false\n\n const newDevDependencies = [cliName, '@sanity/pkg-utils']\n\n if (useTypescript) {\n log.debug('Using TypeScript. Adding to dev dependencies.')\n newDevDependencies.push('@types/react', 'typescript')\n }\n\n if (usePrettier) {\n log.debug('Using prettier. Adding to dev dependencies.')\n newDevDependencies.push('prettier', 'prettier-plugin-packagejson')\n }\n\n if (useEslint) {\n log.debug('Using eslint. Adding to dev dependencies.')\n\n newDevDependencies.push(\n 'eslint',\n 'eslint-config-sanity',\n 'eslint-plugin-react',\n 'eslint-plugin-react-hooks',\n )\n\n if (usePrettier) {\n newDevDependencies.push('eslint-config-prettier', 'eslint-plugin-prettier')\n }\n\n if (useTypescript) {\n newDevDependencies.push('@typescript-eslint/eslint-plugin', '@typescript-eslint/parser')\n }\n }\n\n log.debug('Resolving latest versions for %s', newDevDependencies.join(', '))\n const dependencies = forceDependencyVersions(\n {\n ...(prev.dependencies || {}),\n ...(addDeps || {}),\n ...(await resolveLatestVersions(defaultDependencies)),\n },\n forcedPackageVersions,\n )\n const devDependencies = forceDependencyVersions(\n {\n ...(addDevDeps || {}),\n ...(prev.devDependencies || {}),\n ...(await resolveLatestVersions([...newDevDependencies, ...defaultDevDependencies])),\n },\n forcedDevPackageVersions,\n )\n const peerDependencies = forceDependencyVersions(\n {\n ...(prev.peerDependencies || {}),\n ...(addPeers || {}),\n ...(await resolveLatestVersions(defaultPeerDependencies)),\n },\n forcedPeerPackageVersions,\n )\n\n const source = flags.typescript ? './src/index.ts' : './src/index.js'\n\n const files = [outDir, 'sanity.json', 'src', 'v2-incompatible.js']\n\n // sort alphabetically for scanability\n files.sort()\n\n // order should be compatible with prettier-plugin-packagejson\n const forcedOrder = {\n name: pluginName,\n version: prev.version ?? '1.0.0',\n description: description || '',\n keywords: prev.keywords ?? ['sanity', 'sanity-plugin'],\n ...urlsFromOrigin(gitOrigin),\n ...repoFromOrigin(gitOrigin),\n license: license ? license.id : 'UNLICENSED',\n author: user?.email ? `${user.name} <${user.email}>` : user?.name,\n exports: {\n '.': {\n ...(flags.typescript ? {types: `./${outDir}/index.d.ts`} : {}),\n source,\n require: `./${outDir}/index.js`,\n import: `./${outDir}/index.esm.js`,\n default: `./${outDir}/index.esm.js`,\n },\n './package.json': './package.json',\n },\n main: `./${outDir}/index.js`,\n module: `./${outDir}/index.esm.js`,\n source,\n ...(flags.typescript ? {types: `./${outDir}/index.d.ts`} : {}),\n files,\n scripts: {...prev.scripts},\n dependencies: sortKeys(dependencies),\n devDependencies: sortKeys(devDependencies),\n peerDependencies: sortKeys(peerDependencies),\n engines: {\n node: '>=14',\n },\n }\n\n const manifest: PackageJson = {\n ...forcedOrder,\n // Use already configured values by default (if not otherwise specified)\n ...(prev || {}),\n // We're de-declaring properties because of key order in package.json\n ...forcedOrder,\n }\n\n // we use types, not typings\n delete manifest.typings\n\n const differs = JSON.stringify(prev) !== JSON.stringify(manifest)\n log.debug('Does manifest differ? %s', differs ? 'yes' : 'no')\n if (differs) {\n await writePackageJsonDirect(manifest, options)\n }\n\n return differs ? manifest : prev\n}\n\nfunction urlsFromOrigin(gitOrigin?: string): {bugs?: {url: string}; homepage?: string} {\n const details: {user: string; repo: string} | undefined = githubUrl(gitOrigin)\n if (!details) {\n return {}\n }\n\n return {\n homepage: `https://github.com/${details.user}/${details.repo}#readme`,\n bugs: {\n url: `https://github.com/${details.user}/${details.repo}/issues`,\n },\n }\n}\n\nfunction repoFromOrigin(gitOrigin?: string) {\n console.log(gitOrigin)\n if (!gitOrigin) {\n return {}\n }\n\n return {\n repository: {\n type: 'git',\n url: gitOrigin,\n },\n }\n}\n\nexport function addScript(cmd: string, existing: string) {\n if (existing && existing.includes(cmd)) {\n return existing\n }\n\n return cmd\n}\n\nexport async function addPackageJsonScripts(\n manifest: PackageJson,\n options: InjectOptions,\n updateScripts: (currentScripts: Record<string, string>) => Record<string, string>,\n) {\n const originalScripts = manifest.scripts || {}\n const scripts = updateScripts({...originalScripts})\n\n const differs = Object.keys(scripts).some((key) => scripts[key] !== originalScripts[key])\n\n if (differs) {\n await writePackageJsonDirect({...manifest, scripts}, options)\n }\n\n return differs\n}\n\nexport async function writePackageJsonDirect(manifest: PackageJson, {basePath}: InjectOptions) {\n await writeJsonFile(path.join(basePath, 'package.json'), manifest)\n}\n\nexport async function addBuildScripts(manifest: PackageJson, options: InjectOptions) {\n const {outDir} = options\n\n if (!options.flags.scripts) {\n return false\n }\n return addPackageJsonScripts(manifest, options, (scripts) => {\n scripts.build = addScript(expectedScripts.build, scripts.build)\n scripts.clean = addScript(`rimraf ${outDir}`, scripts.clean)\n scripts.format = addScript(`prettier --write --cache --ignore-unknown .`, scripts.format)\n scripts['link-watch'] = addScript(expectedScripts['link-watch'], scripts['link-watch'])\n scripts.lint = addScript(`eslint .`, scripts.lint)\n scripts.prepublishOnly = addScript(expectedScripts.prepublishOnly, scripts.prepublishOnly)\n scripts.watch = addScript(expectedScripts.watch, scripts.watch)\n return scripts\n })\n}\n\nexport function sortKeys<T extends Record<string, unknown>>(unordered: T): T {\n return Object.keys(unordered)\n .sort()\n .reduce((obj, key) => {\n // @ts-expect-error this WILL work\n obj[key] = unordered[key]\n return obj\n }, {} as T)\n}\n\n/** @internal */\nexport function forceDependencyVersions(\n deps: Record<string, string>,\n versions = forcedPackageVersions,\n): Record<string, string> {\n const entries = Object.entries(deps).map((entry) => {\n const [pkg] = entry\n const forceVersion = versions[pkg as keyof typeof versions]\n if (forceVersion) {\n return [pkg, forceVersion]\n }\n return entry\n })\n return Object.fromEntries(entries)\n}\n"],"names":["buildExtensions","prompt","message","options","type","choices","result","inquirer","name","single","separator","default","Separator","promptForPackageName","_ref","defaultVal","basePath","path","basename","filter","prefixless","trim","replace","concat","validate","valid","validNpmName","errors","endsWith","promptForRepoOrigin","raw","url","gh","githubUrlToObject","user","repo","parsed","URL","err","Space_Separator","ID_Start","ID_Continue","unicode","util","isSpaceSeparator","c","test","isIdStartChar","isIdContinueChar","isDigit","isHexDigit","source","parseState","stack","pos","line","column","token","key","root","parse","text","reviver","String","undefined","lex","parseStates","internalize","holder","value","Array","isArray","i","length","replacement","Object","defineProperty","writable","enumerable","configurable","call","lexState","buffer","doubleQuote","sign","peek","lexStates","fromCodePoint","codePointAt","read","newToken","comment","invalidChar","multiLineComment","multiLineCommentAsterisk","singleLineComment","literal","Infinity","NaN","identifierNameStartEscape","u","unicodeEscape","invalidIdentifier","identifierName","identifierNameEscape","zero","decimalInteger","Number","decimalPointLeading","decimalPoint","decimalFraction","decimalExponent","decimalExponentSign","decimalExponentInteger","hexadecimal","hexadecimalInteger","string","escape","separatorChar","start","beforePropertyName","afterPropertyName","beforePropertyValue","afterPropertyValue","beforeArrayValue","afterArrayValue","end","s","p","hexEscape","parseInt","count","invalidEOF","push","pop","parent","current","syntaxError","formatChar","console","warn","replacements","hexString","charCodeAt","toString","substring","SyntaxError","lineNumber","columnNumber","stringify","replacer","space","indent","propertyList","replacerFunc","gap","quote","v","item","indexOf","Math","min","floor","substr","serializeProperty","toJSON5","toJSON","Boolean","valueOf","quoteString","serializeArray","serializeObject","quotes","product","quoteChar","keys","reduce","a","b","RegExp","TypeError","stepback","partial","propertyString","member","serializeKey","final","properties","join","firstChar","JSON5","lib","stat","promisify","fs","mkdir","readdir","copyFile","readFile","writeFile","hasSourceEquivalent","compiledFile","paths","fileExists","isAbsolute","resolve","baseDir","dirname","compiled","baseName","extname","pathStub","buildCandidateExists","hasSourceFile","filePath","_ref2","hasCompiledFile","_ref3","absPath","fileExt","withExt","candidates","map","extCandidate","pAny","candidate","then","catch","readJsonFile","content","JSON","writeJsonFile","data","encoding","writeFileWithOverwritePrompt","force","writeOptions","withinCwd","startsWith","process","cwd","printablePath","relative","fileEqualsData","copyFileWithOverwritePrompt","from","to","flags","filesAreEqual","ensureDirectoryExists","contentHash","crypto","createHash","update","digest","remoteHash","getFileHash","file1","file2","hash1","hash2","Promise","all","allowMissing","arguments","reject","hash","stream","createReadStream","on","code","chunk","ensureDir","dirPath","isEmptyish","ignoredFiles","allFiles","files","file","includes","toLowerCase","readFileContent","_ref4","filename","filepath","normalize","log","debug","Error","readJson5File","_ref5","parseJson5","errorKey","json5","errorToUndefined","allowedPartProps","disallowedPluginProps","getPaths","manifest","readManifest","absolutifyPaths","getPath","manifestPath","pkg","binname","validateManifest","opts","isPlugin","isObject","validatePluginManifest","validateProjectManifest","validateParts","disallowed","plural","joined","validatePaths","validatePaths$1","sourcePath","srcStats","isDirectory","parts","part","validatePart","index","validateAllowedPartKeys","validatePartStringValues","validatePartNames","validatePartFiles","verifyCompiledParts","verifySourceParts","ext","srcExists","outDirExists","_a","_b","pluginName","implements","nonStrings","obj","hasSanityJson","exists","isRoot","findStudioV3Config","jsFile","jsExists","v3ConfigFile","tsFile","tsExists","lockedDependencies","resolveLatestVersions","packages","versions","pkgName","pProps","range","version","getLatestVersion","rangeify","concurrency","mergedPackages","sort","deprecatedDevDeps","expectedScripts","build","watch","prepublishOnly","expectedModulesFields","filesWithSuffixes","fileBases","suffixes","flatMap","suffix","validateNodeEngine","packageJson","_c","nodeVersionRange","engines","node","outdent","_templateObject","_taggedTemplateLiteral","trimStart","validateModule","outDir","missingFields","field","_templateObject2","typings","_templateObject3","validateScripts","divergentScripts","entries","_ref6","expectedCommand","command","scripts","_templateObject4","_ref7","_ref8","validateTsConfig","ts","tsconfig","expectedCompilerOptions","moduleResolution","target","module","emitDeclarationOnly","esModuleInterop","skipLibCheck","isolatedModules","downlevelIteration","declaration","allowSyntheticDefaultImports","rootDir","wrongEntries","_ref9","option","expectedOutput","_ref10","_templateObject5","_ref11","validatePkgUtilsDependency","_ref12","devDependencies","_templateObject6","validateSanityDependencies","dependencies","peerDependencies","allDependencies","illegalDeps","dep","deps","Set","unique","values","_templateObject7","urls","refDocs","validateDeprecatedDependencies","_templateObject8","validateBabelConfig","_ref13","babelFileNames","filenames","babelFiles","_templateObject9","validateStudioConfig","_ref14","_d","_e","sanityJson","hasConfigFile","fileBase","some","hasCliConfig","hasStudioConfig","info","_templateObject10","migrationGuideStudio","plugins","_templateObject11","sanityExchange","_ref15","_ref16","_templateObject12","chalk","green","_templateObject13","api","projectId","dataset","_ref17","_ref18","_templateObject14","_templateObject15","validatePluginSanityJson","_ref19","expectedDefaults","hasSinglePart","firstPart","correctImplements","pathExists","hasDependency","incompatiblePluginPackage","isValid","_templateObject16","e","_templateObject17","incompatiblePlugin","validatePackageName","validateNpmPackageName","validForNewPackages","isScoped","validateSrcIndexFile","allowedIndexFiles","hasIndex","indexFile","_templateObject18","disallowDuplicateConfig","_ref20","pkgJson","configKey","found","exits","_templateObject19","_templateObject20","disallowDuplicateEslintConfig","disallowDuplicatePrettierConfig","forcedPackageVersions","forcedDevPackageVersions","forcedPeerPackageVersions","react","sanity","defaultDependencies","defaultDevDependencies","defaultPeerDependencies","pathKeys","getPackage","validateOptions","cliName","validatePackage","validatePluginPackage","validateLockFiles","_manifest$name","abs","existsSync","willExist","withinSourceDir","withinTargetDir","manifestValue","allowSourceTarget","inOutDir","npm","yarn","writePackageJson","_prev$version","_prev$keywords","license","description","prevPkg","gitOrigin","addPeers","addDeps","addDevDeps","prev","usePrettier","prettier","useEslint","eslint","useTypescript","newDevDependencies","forceDependencyVersions","typescript","forcedOrder","keywords","urlsFromOrigin","repoFromOrigin","id","author","email","exports","types","require","import","main","sortKeys","differs","writePackageJsonDirect","details","githubUrl","homepage","bugs","repository","addScript","cmd","existing","addPackageJsonScripts","updateScripts","originalScripts","_ref21","addBuildScripts","clean","format","lint","unordered","entry","forceVersion","fromEntries"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"package-LD2bWiQM.js","sources":["../../src/configs/buildExtensions.ts","../../src/util/prompt.ts","../../node_modules/json5/dist/index.mjs","../../src/util/files.ts","../../src/util/errorToUndefined.ts","../../src/sanity/manifest.ts","../../src/npm/resolveLatestVersions.ts","../../src/configs/banned-packages.ts","../../src/actions/verify/validations.ts","../../src/configs/forced-package-versions.ts","../../src/npm/package.ts"],"sourcesContent":["export const buildExtensions = ['.js', '.jsx', '.es6', '.es', '.mjs', '.ts', '.tsx']\n","import {URL} from 'url'\nimport path from 'path'\nimport inquirer from 'inquirer'\n// @ts-expect-error missing types\nimport validNpmName from 'validate-npm-package-name'\n// @ts-expect-error missing types\nimport githubUrlToObject from 'github-url-to-object'\nimport {InjectOptions} from '../actions/inject'\n\nexport async function prompt(\n message: string,\n options: {\n choices?: any\n type?: string\n default?: any\n filter?: (val: any) => any\n validate?: (val: any) => boolean | string\n },\n) {\n const type = options.choices ? 'list' : options.type\n const result = await inquirer.prompt([{...options, type, message, name: 'single'}])\n return result && result.single\n}\n\nprompt.separator = () => new inquirer.Separator()\n\nexport function promptForPackageName({basePath}: InjectOptions, defaultVal?: string) {\n return prompt('Plugin name (sanity-plugin-...)', {\n default: defaultVal || path.basename(basePath),\n filter: (name) => {\n const prefixless = name.trim().replace(/^sanity-plugin-/, '')\n return name[0] === '@' ? name : `sanity-plugin-${prefixless}`\n },\n validate: (name) => {\n const valid: {errors?: string[]} = validNpmName(name)\n if (valid.errors) {\n return valid.errors[0]\n }\n\n if (name[0] !== '@' && name.endsWith('plugin')) {\n return `Name shouldn't include \"plugin\" multiple times (${name})`\n }\n\n return true\n },\n })\n}\n\nexport function promptForRepoOrigin(options: InjectOptions, defaultVal?: string) {\n return prompt('Git repository URL', {\n default: defaultVal,\n filter: (raw) => {\n const url = (raw || '').trim()\n const gh: {user: string; repo: string} | undefined = githubUrlToObject(url)\n return gh ? `git+ssh://git@github.com/${gh.user}/${gh.repo}.git` : url\n },\n validate: (url) => {\n if (!url) {\n return true\n }\n\n try {\n const parsed = new URL(url)\n return parsed ? true : 'Invalid URL'\n } catch (err) {\n return 'Invalid URL'\n }\n },\n })\n}\n","// 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","import fs from 'fs'\nimport path from 'path'\nimport util from 'util'\nimport pAny from 'p-any'\nimport crypto from 'crypto'\nimport {buildExtensions} from '../configs/buildExtensions'\nimport {prompt} from './prompt'\nimport {InitFlags} from '../actions/init'\nimport log from './log'\nimport json5 from 'json5'\nimport {ManifestPaths} from '../sanity/manifest'\n\nexport const stat = util.promisify(fs.stat)\nexport const mkdir = util.promisify(fs.mkdir)\nexport const readdir = util.promisify(fs.readdir)\nexport const copyFile = util.promisify(fs.copyFile)\nexport const readFile = util.promisify(fs.readFile)\nexport const writeFile = util.promisify(fs.writeFile)\n\nexport function hasSourceEquivalent(compiledFile: string, paths: ManifestPaths) {\n if (!paths.source) {\n return fileExists(\n path.isAbsolute(compiledFile) ? compiledFile : path.resolve(paths.basePath, compiledFile),\n )\n }\n\n // /plugin/dist/MyComponent.js => /plugin/src\n const baseDir = path.dirname(compiledFile.replace(paths.compiled as string, paths.source))\n\n // /plugin/dist/MyComponent.js => MyComponent\n const baseName = path.basename(compiledFile, path.extname(compiledFile))\n\n // MyComponent => /plugin/src/MyComponent\n const pathStub = path.join(baseDir, baseName)\n\n /*\n * /plugin/src/MyComponent => [\n * /plugin/src/MyComponent.jsx,\n * /plugin/src/MyComponent.mjs,\n * ...\n * ]\n */\n return buildCandidateExists(pathStub)\n}\n\n// Generally used for parts resolving\nexport async function hasSourceFile(filePath: string, paths?: ManifestPaths) {\n if (!paths?.source) {\n return fileExists(\n path.isAbsolute(filePath) ? filePath : path.resolve(paths?.basePath ?? '', filePath),\n )\n }\n\n // filePath: components/SomeInput\n // paths: {source: '/plugin/src'}\n // MyComponent => /plugin/src/MyComponent\n const pathStub = path.isAbsolute(filePath) ? filePath : path.resolve(paths.source, filePath)\n\n if (await fileExists(pathStub)) {\n return true\n }\n\n return buildCandidateExists(pathStub)\n}\n\n// Generally used for parts resolving\nexport function hasCompiledFile(filePath: string, paths?: ManifestPaths) {\n if (!paths?.compiled) {\n return fileExists(\n path.isAbsolute(filePath) ? filePath : path.resolve(paths?.basePath ?? '', filePath),\n )\n }\n\n // filePath: components/SomeInput\n // paths: {compiled: '/plugin/dist'}\n\n // components/SomeInput => /plugin/dist/components/SomeInput\n const absPath = path.isAbsolute(filePath) ? filePath : path.resolve(paths.compiled, filePath)\n\n // /plugin/dist/components/SomeInput => /plugin/dist/components/SomeInput.js\n // /plugin/dist/components/SomeInput.js => /plugin/dist/components/SomeInput.js\n // /plugin/dist/components/SomeInput.css => /plugin/dist/components/SomeInput.css\n const fileExt = path.extname(absPath)\n const withExt = fileExt === '' ? `${absPath}.js` : absPath\n\n return fileExists(withExt)\n}\n\nexport function buildCandidateExists(pathStub: string) {\n const candidates = buildExtensions.map((extCandidate) => `${pathStub}${extCandidate}`)\n\n return pAny(candidates.map((candidate) => stat(candidate)))\n .then(() => true)\n .catch(() => false)\n}\n\nexport function fileExists(filePath: string) {\n return stat(filePath)\n .then(() => true)\n .catch(() => false)\n}\n\nexport async function readJsonFile<T>(filePath: string) {\n const content = await readFile(filePath, 'utf8')\n return JSON.parse(content) as T\n}\n\nexport function writeJsonFile(filePath: string, content: Record<string, unknown>) {\n const data = JSON.stringify(content, null, 2) + '\\n'\n return writeFile(filePath, data, {encoding: 'utf8'})\n}\n\nexport async function writeFileWithOverwritePrompt(\n filePath: string,\n content: string,\n options: {default?: any; force?: boolean} & fs.ObjectEncodingOptions,\n) {\n const {default: defaultVal, force = false, ...writeOptions} = options\n const withinCwd = filePath.startsWith(process.cwd())\n const printablePath = withinCwd ? path.relative(process.cwd(), filePath) : filePath\n\n if (await fileEqualsData(filePath, content)) {\n return false\n }\n\n if (\n !force &&\n (await fileExists(filePath)) &&\n !(await prompt(`File \"${printablePath}\" already exists. Overwrite?`, {\n type: 'confirm',\n default: defaultVal,\n }))\n ) {\n return false\n }\n\n await writeFile(filePath, content, writeOptions)\n return true\n}\n\nexport async function copyFileWithOverwritePrompt(from: string, to: string, flags: InitFlags) {\n const withinCwd = to.startsWith(process.cwd())\n const printablePath = withinCwd ? path.relative(process.cwd(), to) : to\n\n if (await filesAreEqual(from, to)) {\n return false\n }\n\n await ensureDirectoryExists(to)\n\n if (\n !flags.force &&\n (await fileExists(to)) &&\n !(await prompt(`File \"${printablePath}\" already exists. Overwrite?`, {\n type: 'confirm',\n default: false,\n }))\n ) {\n return false\n }\n\n await copyFile(from, to)\n return true\n}\n\nasync function ensureDirectoryExists(filePath: string) {\n const dirname = path.dirname(filePath)\n if (await fileExists(dirname)) {\n return true\n }\n await ensureDirectoryExists(dirname)\n await mkdir(dirname)\n}\n\nexport async function fileEqualsData(filePath: string, content: string) {\n const contentHash = crypto.createHash('sha1').update(content).digest('hex')\n const remoteHash = await getFileHash(filePath)\n return contentHash === remoteHash\n}\n\nexport async function filesAreEqual(file1: string, file2: string) {\n const [hash1, hash2] = await Promise.all([getFileHash(file1, false), getFileHash(file2)])\n return hash1 === hash2\n}\n\nexport function getFileHash(filePath: string, allowMissing = true) {\n return new Promise((resolve, reject) => {\n const hash = crypto.createHash('sha1')\n const stream = fs.createReadStream(filePath)\n stream.on('error', (err) => {\n if ((err as unknown as {code?: string}).code === 'ENOENT' && allowMissing) {\n resolve(null)\n } else {\n reject(err)\n }\n })\n\n stream.on('end', () => resolve(hash.digest('hex')))\n stream.on('data', (chunk) => hash.update(chunk))\n })\n}\n\nexport async function ensureDir(dirPath: string) {\n try {\n await mkdir(dirPath)\n } catch (err) {\n if ((err as unknown as {code?: string}).code !== 'EEXIST') {\n throw err\n }\n }\n}\n\nexport async function isEmptyish(dirPath: string) {\n const ignoredFiles = ['.git', '.gitignore', 'license', 'readme.md']\n const allFiles = await readdir(dirPath).catch(() => [])\n const files = allFiles.filter((file) => !ignoredFiles.includes(file.toLowerCase()))\n return files.length === 0\n}\n\nexport async function readFileContent({\n filename,\n basePath,\n}: {\n filename: string\n basePath: string\n}): Promise<string | undefined> {\n const filepath = path.normalize(path.join(basePath, filename))\n try {\n return await readFile(filepath, 'utf8')\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n log.debug(`No ${filename} file found.`)\n return undefined\n }\n throw new Error(`Failed to read \"${filepath}\": ${err.message}`)\n }\n}\n\nexport async function readJson5File<T>({\n filename,\n basePath,\n}: {\n filename: string\n basePath: string\n}): Promise<T | undefined> {\n const content = await readFileContent({filename, basePath})\n if (!content) {\n return undefined\n }\n\n return parseJson5<T>(content, filename)\n}\n\nexport function parseJson5<T>(content: string, errorKey: string): T {\n try {\n return json5.parse<T>(content)\n } catch (err: any) {\n throw new Error(`Error parsing \"${errorKey}\": ${err.message}`)\n }\n}\n","export function errorToUndefined(err: any) {\n if (err instanceof TypeError) {\n throw err\n }\n\n return undefined\n}\n","import fs from 'fs'\nimport path from 'path'\nimport util from 'util'\nimport pkg from '../../package.json'\nimport {buildExtensions} from '../configs/buildExtensions'\nimport {hasSourceFile, hasCompiledFile, readJsonFile, fileExists} from '../util/files'\nimport {errorToUndefined} from '../util/errorToUndefined'\n\nconst stat = util.promisify(fs.stat)\nconst readFile = util.promisify(fs.readFile)\n\nconst allowedPartProps = ['name', 'implements', 'path', 'description']\nconst disallowedPluginProps = ['api', 'project', 'plugins', 'env']\n\nexport interface SanityV2Manifest {\n root?: boolean\n name: string\n paths: ManifestPaths\n parts?: {\n path: string\n }[]\n}\n\nexport interface ManifestPaths {\n basePath: string\n compiled?: string\n source?: string\n}\n\nexport interface ManifestOptions {\n isPlugin?: boolean\n validate?: boolean\n pluginName?: string\n basePath: string\n verifySourceParts?: boolean\n verifyCompiledParts?: boolean\n paths?: ManifestPaths\n flags?: Record<string, any>\n}\n\nexport async function getPaths(options: ManifestOptions) {\n const {basePath} = options\n const manifest = await readManifest(options)\n if (!manifest.paths) {\n return null\n }\n\n return absolutifyPaths(manifest.paths, basePath)\n}\n\nfunction absolutifyPaths(paths: ManifestPaths | undefined, basePath: string) {\n const getPath = (relative?: string) =>\n relative ? path.resolve(path.join(basePath, relative)) : undefined\n return paths\n ? {\n basePath,\n compiled: getPath(paths.compiled),\n source: getPath(paths.source),\n }\n : {basePath}\n}\n\nexport async function readManifest(options: ManifestOptions) {\n const {basePath, validate = true} = options\n const manifestPath = path.normalize(path.join(basePath, 'sanity.json'))\n\n let content\n try {\n content = await readFile(manifestPath, 'utf8')\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n throw new Error(\n `No sanity.json found. sanity.json is required for plugins to function. Use \\`${pkg.binname} init\\` for a new plugin, or create an empty \\`sanity.json\\` with an empty object (\\`{}\\`) for existing ones.`,\n )\n }\n\n throw new Error(`Failed to read \"${manifestPath}\": ${err.message}`)\n }\n\n let parsed\n try {\n parsed = JSON.parse(content)\n } catch (err: any) {\n throw new Error(`Error parsing \"${manifestPath}\": ${err.message}`)\n }\n\n if (validate) {\n await validateManifest(parsed, options)\n }\n\n return parsed\n}\n\nexport async function validateManifest(manifest: SanityV2Manifest, opts: ManifestOptions) {\n const options = {isPlugin: true, ...opts}\n\n if (!isObject(manifest)) {\n throw new Error(`Invalid sanity.json: Root must be an object`)\n }\n\n if (options.isPlugin) {\n await validatePluginManifest(manifest, options)\n } else {\n await validateProjectManifest(manifest)\n }\n\n if ('root' in manifest && typeof manifest.root !== 'boolean') {\n throw new Error(`Invalid sanity.json: \"root\" property must be a boolean if declared`)\n }\n\n await validateParts(manifest, {\n ...options,\n paths: absolutifyPaths(manifest.paths, options.basePath),\n })\n}\n\nfunction validateProjectManifest(manifest: SanityV2Manifest) {\n if ('paths' in manifest) {\n throw new Error(`Invalid sanity.json: \"paths\" property has no meaning in a project manifest`)\n }\n}\n\nexport async function validatePluginManifest(\n manifest: SanityV2Manifest,\n options: {basePath: string},\n) {\n const disallowed = Object.keys(manifest)\n .filter((key) => disallowedPluginProps.includes(key))\n .map((key) => `\"${key}\"`)\n\n if (disallowed.length > 0) {\n const plural = disallowed.length > 1 ? 's' : ''\n const joined = disallowed.join(', ')\n throw new Error(\n `Invalid sanity.json: Key${plural} ${joined} ${\n plural ? 'are' : 'is'\n } not allowed in a plugin manifest`,\n )\n }\n\n if (manifest.root) {\n throw new Error(`Invalid sanity.json: \"root\" cannot be truthy in a plugin manifest`)\n }\n\n await validatePaths(manifest, options)\n}\n\nexport async function validatePaths(manifest: SanityV2Manifest, options: {basePath: string}) {\n if (!('paths' in manifest)) {\n return\n }\n\n if (!isObject(manifest.paths)) {\n throw new Error(`Invalid sanity.json: \"paths\" must be an object if declared`)\n }\n\n if (typeof manifest.paths.compiled !== 'string') {\n throw new Error(\n `Invalid sanity.json: \"paths\" must have a (string) \"compiled\" property if declared`,\n )\n }\n\n if (typeof manifest.paths.source !== 'string') {\n throw new Error(\n `Invalid sanity.json: \"paths\" must have a (string) \"source\" property if declared`,\n )\n }\n\n const sourcePath = path.resolve(options.basePath, manifest.paths.source)\n let srcStats\n try {\n srcStats = await stat(sourcePath)\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n throw new Error(`sanity.json references \"source\" path which does not exist: \"${sourcePath}\"`)\n }\n }\n\n if (!srcStats?.isDirectory()) {\n throw new Error(\n `sanity.json references \"source\" path which is not a directory: \"${sourcePath}\"`,\n )\n }\n}\n\nasync function validateParts(manifest: SanityV2Manifest, options: ManifestOptions) {\n if (!('parts' in manifest)) {\n return\n }\n\n if (!Array.isArray(manifest.parts)) {\n throw new Error(`Invalid sanity.json: \"parts\" must be an array if declared`)\n }\n\n let i = 0\n for (const part of manifest.parts) {\n await validatePart(part, i, options)\n i++\n }\n}\n\nasync function validatePart(part: Record<string, any>, index: number, options: ManifestOptions) {\n if (!isObject(part)) {\n throw new Error(`Invalid sanity.json: \"parts[${index}]\" must be an object`)\n }\n\n validateAllowedPartKeys(part, index)\n validatePartStringValues(part, index)\n validatePartNames(part, index, options)\n await validatePartFiles(part, index, options)\n}\n\nasync function validatePartFiles(\n part: {path?: string} | undefined,\n index: number,\n options: ManifestOptions,\n) {\n const {verifyCompiledParts, verifySourceParts, paths} = options\n if (!part?.path) {\n return\n }\n\n const ext = path.extname(part.path)\n if (paths?.source && ext && ext !== '.js' && buildExtensions.includes(ext)) {\n throw new Error(\n `Invalid sanity.json: Part path has extension which is not applicable after compiling. ${ext} becomes .js after compiling. Specify filename without extension (${path.basename(\n part.path,\n )}) (parts[${index}])`,\n )\n }\n\n if (!verifySourceParts && !verifyCompiledParts) {\n return\n }\n\n const [srcExists, outDirExists] = await Promise.all([\n hasSourceFile(part.path, paths),\n verifyCompiledParts && hasCompiledFile(part.path, paths),\n ])\n\n if (!srcExists) {\n throw new Error(\n `Invalid sanity.json: Part path references file that does not exist in source directory (${\n paths?.source || paths?.basePath\n }) (parts[${index}])`,\n )\n }\n\n if (verifyCompiledParts && !outDirExists) {\n throw new Error(\n `Invalid sanity.json: Part path references file (\"${part.path}\") that does not exist in compiled directory (${paths?.compiled}) (parts[${index}])`,\n )\n }\n}\n\nfunction validatePartNames(\n part: {name?: string; implements?: string} | undefined,\n index: number,\n options: ManifestOptions,\n) {\n const pluginName = options.pluginName ? options.pluginName.replace(/^sanity-plugin-/, '') : ''\n if (!part?.name || !part?.name?.startsWith(`part:${pluginName}/`)) {\n throw new Error(\n `Invalid sanity.json: \"name\" must be prefixed with \"part:${pluginName}/\" - got \"${part?.name}\" (parts[${index}])`,\n )\n }\n\n if (!part?.implements?.startsWith('part:')) {\n throw new Error(\n `Invalid sanity.json: \"implements\" must be prefixed with \"part:\" - got \"${part?.implements}\" (parts[${index}])`,\n )\n }\n}\n\nfunction validateAllowedPartKeys(part: Record<string, any>, index: number) {\n const disallowed = Object.keys(part)\n .filter((key) => !allowedPartProps.includes(key))\n .map((key) => `\"${key}\"`)\n\n if (disallowed.length > 0) {\n const plural = disallowed.length > 1 ? 's' : ''\n const joined = disallowed.join(', ')\n throw new Error(\n `Invalid sanity.json: Key${plural} ${joined} ${\n plural ? 'are' : 'is'\n } not allowed in a part declaration (parts[${index}])`,\n )\n }\n}\n\nfunction validatePartStringValues(part: Record<string, any>, index: number) {\n const nonStrings = Object.keys(part)\n .filter((key) => typeof part[key] !== 'string')\n .map((key) => `\"${key}\"`)\n\n if (nonStrings.length > 0) {\n const plural = nonStrings.length > 1 ? 's' : ''\n const joined = nonStrings.join(', ')\n throw new Error(\n `Invalid sanity.json: Key${plural} ${joined} should be of type string (parts[${index}])`,\n )\n }\n}\n\nfunction isObject(obj: any) {\n return !Array.isArray(obj) && obj !== null && typeof obj === 'object'\n}\n\nexport function getReferencesPartPaths(manifest: SanityV2Manifest, basePath: string) {\n const {paths, parts = []} = manifest\n const compiledPath = path.resolve(basePath, paths?.compiled || '')\n\n return parts\n .filter((part) => part.path)\n .map((part) => part.path)\n .map((partPath) => (path.extname(partPath) === '' ? `${partPath}.js` : partPath))\n .map((partPath) =>\n path.isAbsolute(partPath)\n ? partPath // Not sure if this ever happens, but :shrugs:\n : path.resolve(compiledPath, partPath),\n )\n}\n\nexport async function hasSanityJson(basePath: string) {\n const file = await readJsonFile<{root?: boolean}>(path.join(basePath, 'sanity.json')).catch(\n errorToUndefined,\n )\n return {exists: Boolean(file), isRoot: Boolean(file && file.root)}\n}\n\nexport async function findStudioV3Config(basePath: string) {\n const jsFile = 'sanity.config.js'\n const jsExists = await fileExists(path.join(basePath, jsFile))\n if (jsExists) {\n return {v3ConfigFile: jsFile}\n }\n const tsFile = 'sanity.config.ts'\n const tsExists = await fileExists(path.join(basePath, tsFile))\n return {v3ConfigFile: tsExists ? tsFile : undefined}\n}\n","import pProps from 'p-props'\nimport getLatestVersion from 'get-latest-version'\n\n// We may want to lock certain dependencies to specific versions\nconst lockedDependencies: Record<string, string> = {\n 'styled-components': '^5.2',\n}\n\nexport function resolveLatestVersions(packages: string[]) {\n const versions: Record<string, string> = {}\n for (const pkgName of packages) {\n versions[pkgName] = pkgName in lockedDependencies ? lockedDependencies[pkgName] : 'latest'\n }\n\n return pProps(\n versions,\n async (range, pkgName) => {\n const version = await getLatestVersion(pkgName, {range})\n if (!version) {\n throw new Error(`Found no version for ${pkgName}`)\n }\n return rangeify(version)\n },\n {concurrency: 8},\n )\n}\n\nfunction rangeify(version: string) {\n return `^${version}`\n}\n","export const mergedPackages = [\n '@sanity/base',\n '@sanity/core',\n '@sanity/types',\n '@sanity/data-aspects',\n '@sanity/default-layout',\n '@sanity/default-login',\n '@sanity/desk-tool',\n '@sanity/field',\n '@sanity/form-builder',\n '@sanity/initial-value-templates',\n '@sanity/language-filter',\n '@sanity/production-preview',\n '@sanity/react-hooks',\n '@sanity/resolver',\n '@sanity/state-router',\n '@sanity/structure',\n '@sanity/studio-hints',\n].sort()\n\nexport const deprecatedDevDeps = [\n 'tsdx',\n 'sanipack',\n 'parcel',\n '@parcel/packager-ts',\n '@parcel/transformer-typescript-types',\n]\n","import outdent from 'outdent'\n// @ts-expect-error missing types\nimport validateNpmPackageName from 'validate-npm-package-name'\nimport {incompatiblePluginPackage, urls} from '../../constants'\nimport {deprecatedDevDeps, mergedPackages} from '../../configs/banned-packages'\nimport path from 'path'\nimport {fileExists, readJson5File} from '../../util/files'\nimport chalk from 'chalk'\nimport {PackageJson, SanityStudioJson, SanityV2Json} from './types'\nimport {ParsedCommandLine} from 'typescript'\n\nexport const expectedScripts = {\n build:\n 'run-s clean && plugin-kit verify-package --silent && pkg-utils build --strict && pkg-utils --strict',\n watch: 'pkg-utils watch --strict',\n 'link-watch': 'plugin-kit link-watch',\n prepublishOnly: 'run-s build',\n}\n\nconst expectedModulesFields = ['source', 'exports', 'main', 'module', 'files']\n\nfunction filesWithSuffixes(fileBases: string[], suffixes: string[]): string[] {\n return fileBases.flatMap((file) => suffixes.map((suffix) => `${file}.${suffix}`))\n}\n\nexport function validateNodeEngine(packageJson: PackageJson) {\n const nodeVersionRange = '>=14'\n if (!packageJson.engines?.node?.startsWith(nodeVersionRange)) {\n return [\n outdent`\n Expected package.json to contain engines.node: \">=14\" to ensure Studio compatible builds,\n but it was: ${packageJson.engines?.node}\n\n Please add the following to package.json:\n\n \"engines\": {\n \"node\": \"${nodeVersionRange}\"\n }`.trimStart(),\n ]\n }\n}\n\nexport function validateModule(packageJson: PackageJson, options: {outDir: string}): string[] {\n const {outDir} = options\n const errors: string[] = []\n\n const missingFields = expectedModulesFields.filter((field) => !packageJson[field])\n\n if (missingFields.length) {\n errors.push(\n outdent`\n Expected source, exports, main, module and files entries in package.json, but ${missingFields.join(\n ', ',\n )} where missing.\n\n Example:\n\n Given a plugin with entry-point in src/index.ts, using default @sanity/pkg-utils build command,\n package.json should contain the following entries to ensure that commonjs and esm outputs are built into ${outDir}:\n\n \"source\": \"./src/index.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./${outDir}/index.d.ts\",\n \"source\": \"./src/index.ts\",\n \"require\": \"./${outDir}/index.js\",\n \"import\": \"./${outDir}/index.esm.js\",\n \"default\": \"./${outDir}/index.js\"\n }\n },\n \"main\": \"./${outDir}/index.js\",\n \"module\": \"./${outDir}/index.esm.js\",\n \"types\": \"./${outDir}/index.d.ts\",\n \"files\": [\n \"${outDir}\",\n \"src\"\n ],\n\n Refer to @sanity/pkg-utils for more: https://github.com/sanity-io/pkg-utils#sanitypkg-utils\n `.trimStart(),\n )\n }\n\n if (packageJson.typings) {\n errors.push(outdent`Found typings field in package.json. Use types instead.`)\n }\n return errors\n}\n\nexport function validateScripts(packageJson: PackageJson): string[] {\n const errors: string[] = []\n\n const divergentScripts = Object.entries(expectedScripts).filter(([key, expectedCommand]) => {\n const command = packageJson.scripts?.[key]\n // check for includes instead of equals to give some leniency in command params and such\n return !command || !command.includes(expectedCommand)\n })\n\n if (divergentScripts.length) {\n errors.push(\n outdent`\n The following script commands did not contain expected defaults: ${divergentScripts\n .map(([key]) => key)\n .join(', ')}\n\n This checks for that the commands-strings includes these terms.\n\n Please add the following to your package.json \"scripts\":\n\n ${divergentScripts.map(([key, value]) => `\"${key}\": \"${value}\"`).join(',\\n')}\n `.trimStart(),\n )\n }\n return errors\n}\n\nexport async function validateTsConfig(\n ts: ParsedCommandLine,\n options: {basePath: string; outDir: string; tsconfig: string},\n) {\n const {basePath, outDir, tsconfig} = options\n\n const errors: string[] = []\n\n const expectedCompilerOptions = {\n moduleResolution: 'node',\n target: 'esnext',\n module: 'esnext',\n emitDeclarationOnly: true,\n esModuleInterop: true,\n skipLibCheck: true,\n isolatedModules: true,\n downlevelIteration: true,\n declaration: true,\n allowSyntheticDefaultImports: true,\n rootDir: '.',\n outDir,\n }\n\n const wrongEntries = Object.entries(expectedCompilerOptions).filter(([key, value]) => {\n let option: any = ts.options[key]\n\n if (key === 'rootDir' && typeof option === 'string') {\n option = path.relative(basePath, option) || '.'\n }\n\n if (key === 'outDir' && typeof option === 'string') {\n option = path.relative(basePath, option) || '.'\n }\n\n if (key === 'moduleResolution' && option === 2) {\n option = 'node'\n }\n\n if (key === 'target' && option === 99) {\n option = 'esnext'\n }\n\n if (key === 'module' && option === 99) {\n option = 'esnext'\n }\n\n return typeof value === 'string' && typeof option === 'string'\n ? value.toLowerCase() !== option?.toLowerCase()\n : value !== option\n })\n\n if (wrongEntries.length) {\n const expectedOutput = wrongEntries\n .map(([key, value]) => `\"${key}\": ${typeof value === 'string' ? `\"${value}\"` : value},`)\n .join('\\n')\n\n errors.push(\n outdent`\n Recommended ${tsconfig} compilerOptions missing:\n\n The following fields had unexpected values: [${wrongEntries.map(([key]) => key).join(', ')}]\n Expected to find these values:\n ${expectedOutput}\n\n Please update your ${tsconfig} accordingly.\n `.trimStart(),\n )\n }\n\n return errors\n}\n\nexport function validatePkgUtilsDependency({devDependencies}: PackageJson): string[] {\n if (!devDependencies?.['@sanity/pkg-utils']) {\n return [\n outdent`\n package.json does not list @sanity/pkg-utils as a devDependency.\n @sanity/pkg-utils replaced parcel as the recommended build tool in @sanity/plugin-kit 2.0.0\n\n Please add it by running 'npm install --save-dev @sanity/pkg-utils'.\n `.trimStart(),\n ]\n }\n return []\n}\n\nexport function validateSanityDependencies(packageJson: PackageJson): string[] {\n const {dependencies, devDependencies, peerDependencies} = packageJson\n const allDependencies = {...dependencies, ...devDependencies, ...peerDependencies}\n\n const illegalDeps = Object.keys(allDependencies).filter((dep) => mergedPackages.includes(dep))\n const deps = new Set<string>(illegalDeps)\n const unique = [...deps.values()]\n if (unique.length) {\n return [\n outdent`\n package.json depends on \"@sanity/*\" packages that have moved into \"sanity\" package.\n\n The following dependencies should be replaced with \"sanity\":\n - ${unique.join('\\n- ')}\n\n Refer to the reference docs to find replacement imports:\n ${urls.refDocs}\n `.trimStart(),\n ]\n }\n return []\n}\n\nexport function validateDeprecatedDependencies(packageJson: PackageJson): string[] {\n const {dependencies, devDependencies, peerDependencies} = packageJson\n const allDependencies = {...dependencies, ...devDependencies, ...peerDependencies}\n\n const illegalDeps = Object.keys(allDependencies).filter((dep) => deprecatedDevDeps.includes(dep))\n const deps = new Set<string>(illegalDeps)\n const unique = [...deps.values()]\n if (unique.length) {\n return [\n outdent`\n package.json contains deprecated dependencies that should be removed:\n - ${unique.join('\\n- ')}\n `.trimStart(),\n ]\n }\n\n return []\n}\n\nexport async function validateBabelConfig({basePath}: {basePath: string}) {\n const suffixes = ['json', 'js', 'cjs', 'mjs']\n const babelFileNames = ['.babelrc', 'babel.config']\n const filenames = ['.babelrc', ...filesWithSuffixes(babelFileNames, suffixes)]\n\n const babelFiles: string[] = []\n for (const filename of filenames) {\n const filepath = path.normalize(path.join(basePath, filename))\n if (await fileExists(filepath)) {\n babelFiles.push(filename)\n }\n }\n\n if (babelFiles.length) {\n return [\n outdent`\n Found babel-config file: [${babelFiles.join(\n ', ',\n )}]. When using default @sanity/plugin-kit build command,\n this is probably not needed.\n\n Delete the file, or disable this check.\n `.trimStart(),\n ]\n }\n return []\n}\n\nexport async function validateStudioConfig({basePath}: {basePath: string}): Promise<string[]> {\n const suffixes = ['ts', 'js', 'tsx', 'jsx']\n\n const filenames = filesWithSuffixes(['sanity.config', 'sanity.cli'], suffixes)\n\n const files: Record<string, boolean | undefined> = {}\n\n for (const filename of filenames) {\n const filepath = path.normalize(path.join(basePath, filename))\n files[filename] = await fileExists(filepath)\n }\n\n const sanityJson = await readJson5File<SanityStudioJson>({basePath, filename: 'sanity.json'})\n\n const hasConfigFile = (fileBase: string) =>\n filesWithSuffixes([fileBase], suffixes).some((filename) => files[filename])\n const hasCliConfig = hasConfigFile('sanity.cli')\n const hasStudioConfig = hasConfigFile('sanity.config')\n\n const errors: string[] = []\n\n if (sanityJson) {\n const info = [\n outdent`\n Found sanity.json. This file is not used by Sanity Studio V3.\n\n Please consult the Studio V3 migration guide:\n ${urls.migrationGuideStudio}\n It will detail how to convert sanity.json to sanity.config.ts (or .js) and sanity.cli.ts (or .js) equivalents.\n `.trimStart(),\n sanityJson.plugins?.length &&\n outdent`\n For V3 versions and alternatives to V2 plugins, please refer to the Sanity Exchange:\n ${urls.sanityExchange}\n `.trimStart(),\n ].filter((s): s is string => !!s)\n\n errors.push(info.join('\\n\\n'))\n }\n\n if (!hasCliConfig) {\n errors.push(\n outdent`\n sanity.cli.(${suffixes.join(\n ' | ',\n )}) missing. Please create a file named sanity.cli.ts with the following content:\n\n ${chalk.green(\n outdent`\n import {createCliConfig} from 'sanity/cli'\n\n export default createCliConfig({\n api: {\n projectId: '${sanityJson?.api?.projectId ?? 'project-id'}',\n dataset: '${sanityJson?.api?.dataset ?? 'dataset'}',\n }\n })`,\n )}\n\n Make sure to replace the projectId and dataset fields with your own.\n\n For more, see ${urls.migrationGuideStudio}\n `.trimStart(),\n )\n }\n\n if (!hasStudioConfig) {\n errors.push(\n outdent`\n sanity.config.(${suffixes.join(\n ' | ',\n )}) missing. At a minimum sanity.config.ts should contain:\n\n ${chalk\n .green(\n outdent`\n import { defineConfig } from \"sanity\"\n import { deskTool } from \"sanity/desk\"\n\n export default defineConfig({\n name: \"default\",\n\n projectId: '${sanityJson?.api?.projectId ?? 'project-id'}',\n dataset: '${sanityJson?.api?.dataset ?? 'dataset'}',\n\n plugins: [\n deskTool(),\n ],\n\n schema: {\n types: [\n /* put your v2 schema-types here */\n ],\n },\n })`,\n )\n .trimStart()}\n\n Make sure to replace the projectId and dataset fields with your own.\n\n For more, see ${urls.migrationGuideStudio}\n `.trimStart(),\n )\n }\n\n return errors.length ? [errors.join(`\\n\\n---\\n\\n`)] : []\n}\n\nexport async function validatePluginSanityJson({\n basePath,\n packageJson,\n}: {\n basePath: string\n packageJson: PackageJson\n}) {\n const sanityJson = await readJson5File<SanityV2Json>({basePath, filename: 'sanity.json'})\n\n const expectedDefaults = {\n parts: [\n {\n implements: 'part:@sanity/base/sanity-root',\n path: './v2-incompatible.js',\n },\n ],\n }\n\n const hasSinglePart =\n sanityJson &&\n Object.keys(sanityJson).length === 1 &&\n sanityJson?.parts &&\n sanityJson.parts.length === 1\n\n const firstPart = hasSinglePart ? sanityJson?.parts?.[0] : undefined\n const correctImplements = firstPart?.implements === expectedDefaults.parts[0].implements\n const pathExists =\n firstPart?.path && (await fileExists(path.normalize(path.join(basePath, firstPart.path))))\n const hasDependency = !!packageJson.dependencies?.[incompatiblePluginPackage]\n const isValid = sanityJson && hasSinglePart && correctImplements && pathExists && hasDependency\n\n if (!isValid) {\n const errors = [\n !sanityJson ? 'sanity.json does not exist' : null,\n !hasSinglePart ? 'sanity.json should have exactly one entry in \"parts\", but did not.' : null,\n !correctImplements\n ? `The part should implement ${expectedDefaults.parts[0].implements}, but did not.`\n : null,\n firstPart?.path && !pathExists\n ? `The file in \"path\", ${firstPart?.path}, does not exist.`\n : null,\n\n !hasDependency\n ? outdent`\n package.json should have ${incompatiblePluginPackage} as a dependency, but did not.\n Install it with: npm install --save ${incompatiblePluginPackage}\n `.trimStart()\n : null,\n ].filter((e): e is string => !!e)\n\n return [\n outdent`\n Invalid sanity.json. It is used for compatibility checking in V2 studios:\n\n - ${errors.join('\\n- ')}\n\n sanity.json will only be used when incorrectly installing a v3 plugin in a v2 Studio.\n\n This check ensures that sanity.json conforms with the usage section of\n ${urls.incompatiblePlugin}\n `.trimStart(),\n ]\n }\n return []\n}\n\nexport function validatePackageName(packageJson: PackageJson) {\n const valid: {validForNewPackages?: boolean; errors: string[]} = validateNpmPackageName(\n packageJson.name,\n )\n if (!valid.validForNewPackages) {\n return [`Invalid package.json: \"name\" is invalid: ${valid.errors.join(', ')}`]\n }\n\n const isScoped = packageJson.name?.startsWith('@')\n if (!isScoped && !packageJson.name?.startsWith('sanity-plugin-')) {\n return [\n `Invalid package.json: \"name\" should be prefixed with \"sanity-plugin-\" (or scoped - @your-company/plugin-name)`,\n ]\n }\n}\n\nexport async function validateSrcIndexFile(basePath: string) {\n const paths = ['index.js', 'index.ts'].map((p) => path.join('src', p))\n const allowedIndexFiles = paths.map((file) => path.join(basePath, file))\n\n let hasIndex = false\n for (const indexFile of allowedIndexFiles) {\n hasIndex = hasIndex || (await fileExists(indexFile))\n }\n if (!hasIndex) {\n return [\n outdent`\n Expected one of [${paths.join(', ')}] to exist.\n\n @sanity/pkg-utils expects a non-jsx file to be the source entry-point for the plugin.\n If you currently have JSX in your index file, extract it into a separate file and import it.\n `,\n ]\n }\n\n return []\n}\n\nexport async function disallowDuplicateConfig({\n basePath,\n pkgJson,\n configKey,\n files,\n}: {\n basePath: string\n pkgJson: PackageJson\n configKey: string\n files: string[]\n}) {\n const found: string[] = []\n for (const file of files) {\n const filePath = path.join(basePath, file)\n const exits = await fileExists(filePath)\n if (exits) {\n found.push(file)\n }\n }\n if (found.length > 1) {\n return [\n outdent`\n Found multiple config files that serve the same purpose: [${found.join(', ')}].\n\n There should be at most one of these files. Delete the rest.\n `,\n ]\n }\n if (found.length && pkgJson[configKey]) {\n return [\n outdent`\n package.json contains ${configKey}, but there also exists a config file that serves the same purpose.\n Config file: ${found.join('')}]\n\n Either delete the file or remove ${configKey} entry from package.json.\n `,\n ]\n }\n\n return []\n}\n\nexport async function disallowDuplicateEslintConfig(basePath: string, pkgJson: PackageJson) {\n return disallowDuplicateConfig({\n basePath,\n pkgJson,\n configKey: 'eslint',\n files: [\n '.eslintrc',\n '.eslintrc.js',\n '.eslintrc.cjs',\n '.eslintrc.yaml',\n '.eslintrc.yml',\n '.eslintrc.json',\n ],\n })\n}\n\nexport async function disallowDuplicatePrettierConfig(basePath: string, pkgJson: PackageJson) {\n return disallowDuplicateConfig({\n basePath,\n pkgJson,\n configKey: 'prettier',\n files: [\n '.prettierrc',\n '.prettierrc.json5',\n '.prettierrc.json',\n '.prettierrc.yaml',\n '.prettierrc.yml',\n '.prettierrc.js',\n '.prettierrc.cjs',\n '.prettier.config,js',\n '.prettier.config.cjs',\n '.prettierrc.toml',\n ],\n })\n}\n","export const forcedPackageVersions = {}\n\nexport const forcedDevPackageVersions = forcedPackageVersions\n\nexport const forcedPeerPackageVersions = {\n react: '^18',\n 'react-dom': '^18',\n 'react-is': '^18',\n '@types/react': '^18',\n '@types/react-dom': '^18',\n sanity: '^3',\n 'styled-components': '^5.2',\n}\n","import fs from 'fs'\nimport path from 'path'\nimport util from 'util'\n// @ts-expect-error missing types\nimport githubUrl from 'github-url-to-object'\n// @ts-expect-error missing types\nimport validateNpmPackageName from 'validate-npm-package-name'\nimport {getPaths, ManifestOptions} from '../sanity/manifest'\nimport {resolveLatestVersions} from './resolveLatestVersions'\nimport {hasSourceEquivalent, writeJsonFile} from '../util/files'\nimport log from '../util/log'\nimport {cliName, incompatiblePluginPackage} from '../constants'\nimport {InjectOptions, PackageData} from '../actions/inject'\nimport {expectedScripts} from '../actions/verify/validations'\nimport {PackageJson} from '../actions/verify/types'\nimport {\n forcedDevPackageVersions,\n forcedPackageVersions,\n forcedPeerPackageVersions,\n} from '../configs/forced-package-versions'\nconst defaultDependencies = [incompatiblePluginPackage]\n\nconst defaultDevDependencies = [\n 'npm-run-all',\n 'rimraf',\n 'sanity',\n\n // peer dependencies of `sanity`\n 'react',\n 'react-dom',\n 'styled-components',\n\n // peer dependencies of `styled-components`\n 'react-is',\n]\n\nconst defaultPeerDependencies = ['react', 'sanity']\n\nconst readFile = util.promisify(fs.readFile)\n\nconst pathKeys: (keyof PackageJson)[] = ['main', 'module', 'browser', 'types', 'typings']\n\nexport async function getPackage(opts: ManifestOptions): Promise<PackageJson> {\n const options = {flags: {}, ...opts}\n\n validateOptions(options)\n\n const {basePath, validate = true} = options\n const manifestPath = path.normalize(path.join(basePath, 'package.json'))\n\n let content\n try {\n content = await readFile(manifestPath, 'utf8')\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n throw new Error(\n `No package.json found. package.json is required to publish to npm. Use \\`${cliName} init\\` for a new plugin, or \\`npm init\\` for an existing one`,\n )\n }\n\n throw new Error(`Failed to read \"${manifestPath}\": ${err.message}`)\n }\n\n let parsed\n try {\n parsed = JSON.parse(content)\n } catch (err: any) {\n throw new Error(`Error parsing \"${manifestPath}\": ${err.message}`)\n }\n\n if (!isObject(parsed)) {\n throw new Error(`Invalid package.json: Root must be an object`)\n }\n\n if (validate) {\n await validatePackage(parsed, options)\n }\n\n return parsed\n}\n\nexport async function validatePackage(manifest: PackageJson, opts: ManifestOptions) {\n validateOptions(opts)\n\n const options = {isPlugin: true, ...opts}\n\n if (options.isPlugin) {\n await validatePluginPackage(manifest, options)\n }\n\n validateLockFiles(options)\n}\n\nfunction validateOptions(opts: {basePath: string}) {\n const options = opts || {}\n if (!isObject(options)) {\n throw new Error(`Options must be an object`)\n }\n\n if (typeof options.basePath !== 'string') {\n throw new Error(`\"options.basePath\" must be a string (path to plugin base path)`)\n }\n}\n\nasync function validatePluginPackage(manifest: PackageJson, options: ManifestOptions) {\n validatePackageName(manifest)\n await validatePaths(manifest, options)\n}\n\nfunction validatePackageName(manifest: PackageJson) {\n if (typeof manifest.name !== 'string') {\n throw new Error(`Invalid package.json: \"name\" must be a string`)\n }\n\n const valid: {validForNewPackages?: boolean; errors: string[]} = validateNpmPackageName(\n manifest.name,\n )\n if (!valid.validForNewPackages) {\n throw new Error(`Invalid package.json: \"name\" is invalid: ${valid.errors.join(', ')}`)\n }\n\n const isScoped = manifest.name[0] === '@'\n if (!isScoped && !manifest.name.startsWith('sanity-plugin-')) {\n throw new Error(\n `Invalid package.json: \"name\" should be prefixed with \"sanity-plugin-\" (or scoped - @your-company/plugin-name)`,\n )\n }\n}\n\nasync function validatePaths(manifest: PackageJson, options: ManifestOptions) {\n const paths = await getPaths({\n ...options,\n pluginName: manifest.name ?? 'unknown',\n verifySourceParts: false,\n verifyCompiledParts: false,\n })\n\n const abs = (file: string) =>\n path.isAbsolute(file) ? file : path.resolve(path.join(options.basePath, file))\n\n const exists = (file: string) => fs.existsSync(abs(file))\n const willExist = (file: string) => paths && hasSourceEquivalent(abs(file), paths)\n const withinSourceDir = (file: string) => paths?.source && abs(file).startsWith(paths.source)\n const withinTargetDir = (file: string) => paths?.compiled && abs(file).startsWith(paths.compiled)\n\n for (const key of pathKeys) {\n if (!(key in manifest)) {\n continue\n }\n\n const manifestValue = manifest[key]\n if (typeof manifestValue !== 'string') {\n throw new Error(`Invalid package.json: \"${key}\" must be a string if defined`)\n }\n\n // We don't want to reference `./src/MyComponent.js` containing a bunch of JSX and whatnot,\n // instead we want to target `./dist/MyComponent.js` which is the location it'll be compiled to\n if (!options?.flags?.allowSourceTarget && paths && withinSourceDir(manifestValue)) {\n throw new Error(\n `Invalid package.json: \"${key}\" points to file within source (uncompiled) directory. Use --allow-source-target if you really want to do this.`,\n )\n }\n\n // Does it exist only because it was there prior to compilation?\n // We're clearing the folder on compilation, so we shouldn't allow it\n const fileExists = exists(manifestValue)\n if (\n fileExists &&\n paths &&\n withinTargetDir(manifestValue) &&\n !(await willExist(manifestValue))\n ) {\n throw new Error(\n `Invalid package.json: \"${key}\" points to file that will not exist after compiling`,\n )\n }\n\n // If it _doesn't_ exist and it _won't_ exist, then there isn't much point in continuing, is there?\n if (!exists(manifestValue) && !(await willExist(manifestValue))) {\n if (!paths) {\n throw new Error(`Invalid package.json: \"${key}\" points to file that does not exist`)\n }\n\n const inOutDir = paths.compiled && !abs(manifestValue).startsWith(paths.compiled)\n throw new Error(\n inOutDir\n ? `Invalid package.json: \"${key}\" points to file that does not exist, and \"paths\" is not configured to compile to this location`\n : `Invalid package.json: \"${key}\" points to file that does not exist, and no equivalent is found in source directory`,\n )\n }\n }\n}\n\nfunction isObject(obj: unknown): obj is Record<string, unknown> {\n return !Array.isArray(obj) && obj !== null && typeof obj === 'object'\n}\n\nfunction validateLockFiles(options: {basePath: string}) {\n const npm = fs.existsSync(path.join(options.basePath, 'package-lock.json'))\n const yarn = fs.existsSync(path.join(options.basePath, 'yarn.lock'))\n if (npm && yarn) {\n throw new Error(`Invalid plugin: contains both package-lock.json and yarn.lock`)\n }\n}\n\nexport async function writePackageJson(data: PackageData, options: InjectOptions) {\n const {user, pluginName, license, description, pkg: prevPkg, gitOrigin} = data\n const {\n outDir,\n peerDependencies: addPeers,\n dependencies: addDeps,\n devDependencies: addDevDeps,\n } = options\n const {flags} = options\n const prev = prevPkg || {}\n\n const usePrettier = flags.prettier !== false\n const useEslint = flags.eslint !== false\n const useTypescript = flags.eslint !== false\n\n const newDevDependencies = [cliName, '@sanity/pkg-utils']\n\n if (useTypescript) {\n log.debug('Using TypeScript. Adding to dev dependencies.')\n newDevDependencies.push('@types/react', 'typescript')\n }\n\n if (usePrettier) {\n log.debug('Using prettier. Adding to dev dependencies.')\n newDevDependencies.push('prettier', 'prettier-plugin-packagejson')\n }\n\n if (useEslint) {\n log.debug('Using eslint. Adding to dev dependencies.')\n\n newDevDependencies.push(\n 'eslint',\n 'eslint-config-sanity',\n 'eslint-plugin-react',\n 'eslint-plugin-react-hooks',\n )\n\n if (usePrettier) {\n newDevDependencies.push('eslint-config-prettier', 'eslint-plugin-prettier')\n }\n\n if (useTypescript) {\n newDevDependencies.push('@typescript-eslint/eslint-plugin', '@typescript-eslint/parser')\n }\n }\n\n log.debug('Resolving latest versions for %s', newDevDependencies.join(', '))\n const dependencies = forceDependencyVersions(\n {\n ...(prev.dependencies || {}),\n ...(addDeps || {}),\n ...(await resolveLatestVersions(defaultDependencies)),\n },\n forcedPackageVersions,\n )\n const devDependencies = forceDependencyVersions(\n {\n ...(addDevDeps || {}),\n ...(prev.devDependencies || {}),\n ...(await resolveLatestVersions([...newDevDependencies, ...defaultDevDependencies])),\n },\n forcedDevPackageVersions,\n )\n const peerDependencies = forceDependencyVersions(\n {\n ...(prev.peerDependencies || {}),\n ...(addPeers || {}),\n ...(await resolveLatestVersions(defaultPeerDependencies)),\n },\n forcedPeerPackageVersions,\n )\n\n const source = flags.typescript ? './src/index.ts' : './src/index.js'\n\n const files = [outDir, 'sanity.json', 'src', 'v2-incompatible.js']\n\n // sort alphabetically for scanability\n files.sort()\n\n // order should be compatible with prettier-plugin-packagejson\n const forcedOrder = {\n name: pluginName,\n version: prev.version ?? '1.0.0',\n description: description || '',\n keywords: prev.keywords ?? ['sanity', 'sanity-plugin'],\n ...urlsFromOrigin(gitOrigin),\n ...repoFromOrigin(gitOrigin),\n license: license ? license.id : 'UNLICENSED',\n author: user?.email ? `${user.name} <${user.email}>` : user?.name,\n exports: {\n '.': {\n ...(flags.typescript ? {types: `./${outDir}/index.d.ts`} : {}),\n source,\n import: `./${outDir}/index.esm.js`,\n require: `./${outDir}/index.js`,\n default: `./${outDir}/index.esm.js`,\n },\n './package.json': './package.json',\n },\n main: `./${outDir}/index.js`,\n module: `./${outDir}/index.esm.js`,\n source,\n ...(flags.typescript ? {types: `./${outDir}/index.d.ts`} : {}),\n files,\n scripts: {...prev.scripts},\n dependencies: sortKeys(dependencies),\n devDependencies: sortKeys(devDependencies),\n peerDependencies: sortKeys(peerDependencies),\n engines: {\n node: '>=14',\n },\n }\n\n const manifest: PackageJson = {\n ...forcedOrder,\n // Use already configured values by default (if not otherwise specified)\n ...(prev || {}),\n // We're de-declaring properties because of key order in package.json\n ...forcedOrder,\n }\n\n // we use types, not typings\n delete manifest.typings\n\n const differs = JSON.stringify(prev) !== JSON.stringify(manifest)\n log.debug('Does manifest differ? %s', differs ? 'yes' : 'no')\n if (differs) {\n await writePackageJsonDirect(manifest, options)\n }\n\n return differs ? manifest : prev\n}\n\nfunction urlsFromOrigin(gitOrigin?: string): {bugs?: {url: string}; homepage?: string} {\n const details: {user: string; repo: string} | undefined = githubUrl(gitOrigin)\n if (!details) {\n return {}\n }\n\n return {\n homepage: `https://github.com/${details.user}/${details.repo}#readme`,\n bugs: {\n url: `https://github.com/${details.user}/${details.repo}/issues`,\n },\n }\n}\n\nfunction repoFromOrigin(gitOrigin?: string) {\n console.log(gitOrigin)\n if (!gitOrigin) {\n return {}\n }\n\n return {\n repository: {\n type: 'git',\n url: gitOrigin,\n },\n }\n}\n\nexport function addScript(cmd: string, existing: string) {\n if (existing && existing.includes(cmd)) {\n return existing\n }\n\n return cmd\n}\n\nexport async function addPackageJsonScripts(\n manifest: PackageJson,\n options: InjectOptions,\n updateScripts: (currentScripts: Record<string, string>) => Record<string, string>,\n) {\n const originalScripts = manifest.scripts || {}\n const scripts = updateScripts({...originalScripts})\n\n const differs = Object.keys(scripts).some((key) => scripts[key] !== originalScripts[key])\n\n if (differs) {\n await writePackageJsonDirect({...manifest, scripts}, options)\n }\n\n return differs\n}\n\nexport async function writePackageJsonDirect(manifest: PackageJson, {basePath}: InjectOptions) {\n await writeJsonFile(path.join(basePath, 'package.json'), manifest)\n}\n\nexport async function addBuildScripts(manifest: PackageJson, options: InjectOptions) {\n const {outDir} = options\n\n if (!options.flags.scripts) {\n return false\n }\n return addPackageJsonScripts(manifest, options, (scripts) => {\n scripts.build = addScript(expectedScripts.build, scripts.build)\n scripts.clean = addScript(`rimraf ${outDir}`, scripts.clean)\n scripts.format = addScript(`prettier --write --cache --ignore-unknown .`, scripts.format)\n scripts['link-watch'] = addScript(expectedScripts['link-watch'], scripts['link-watch'])\n scripts.lint = addScript(`eslint .`, scripts.lint)\n scripts.prepublishOnly = addScript(expectedScripts.prepublishOnly, scripts.prepublishOnly)\n scripts.watch = addScript(expectedScripts.watch, scripts.watch)\n return scripts\n })\n}\n\nexport function sortKeys<T extends Record<string, unknown>>(unordered: T): T {\n return Object.keys(unordered)\n .sort()\n .reduce((obj, key) => {\n // @ts-expect-error this WILL work\n obj[key] = unordered[key]\n return obj\n }, {} as T)\n}\n\n/** @internal */\nexport function forceDependencyVersions(\n deps: Record<string, string>,\n versions = forcedPackageVersions,\n): Record<string, string> {\n const entries = Object.entries(deps).map((entry) => {\n const [pkg] = entry\n const forceVersion = versions[pkg as keyof typeof versions]\n if (forceVersion) {\n return [pkg, forceVersion]\n }\n return entry\n })\n return Object.fromEntries(entries)\n}\n"],"names":["buildExtensions","prompt","message","options","type","choices","result","inquirer","name","single","separator","default","Separator","promptForPackageName","_ref","defaultVal","basePath","path","basename","filter","prefixless","trim","replace","concat","validate","valid","validNpmName","errors","endsWith","promptForRepoOrigin","raw","url","gh","githubUrlToObject","user","repo","parsed","URL","err","Space_Separator","ID_Start","ID_Continue","unicode","util","isSpaceSeparator","c","test","isIdStartChar","isIdContinueChar","isDigit","isHexDigit","source","parseState","stack","pos","line","column","token","key","root","parse","text","reviver","String","undefined","lex","parseStates","internalize","holder","value","Array","isArray","i","length","replacement","Object","defineProperty","writable","enumerable","configurable","call","lexState","buffer","doubleQuote","sign","peek","lexStates","fromCodePoint","codePointAt","read","newToken","comment","invalidChar","multiLineComment","multiLineCommentAsterisk","singleLineComment","literal","Infinity","NaN","identifierNameStartEscape","u","unicodeEscape","invalidIdentifier","identifierName","identifierNameEscape","zero","decimalInteger","Number","decimalPointLeading","decimalPoint","decimalFraction","decimalExponent","decimalExponentSign","decimalExponentInteger","hexadecimal","hexadecimalInteger","string","escape","separatorChar","start","beforePropertyName","afterPropertyName","beforePropertyValue","afterPropertyValue","beforeArrayValue","afterArrayValue","end","s","p","hexEscape","parseInt","count","invalidEOF","push","pop","parent","current","syntaxError","formatChar","console","warn","replacements","hexString","charCodeAt","toString","substring","SyntaxError","lineNumber","columnNumber","stringify","replacer","space","indent","propertyList","replacerFunc","gap","quote","v","item","indexOf","Math","min","floor","substr","serializeProperty","toJSON5","toJSON","Boolean","valueOf","quoteString","serializeArray","serializeObject","quotes","product","quoteChar","keys","reduce","a","b","RegExp","TypeError","stepback","partial","propertyString","member","serializeKey","final","properties","join","firstChar","JSON5","lib","stat","promisify","fs","mkdir","readdir","copyFile","readFile","writeFile","hasSourceEquivalent","compiledFile","paths","fileExists","isAbsolute","resolve","baseDir","dirname","compiled","baseName","extname","pathStub","buildCandidateExists","hasSourceFile","filePath","_paths$basePath","hasCompiledFile","_paths$basePath2","absPath","fileExt","withExt","candidates","map","extCandidate","pAny","candidate","then","catch","readJsonFile","content","JSON","writeJsonFile","data","encoding","writeFileWithOverwritePrompt","force","writeOptions","withinCwd","startsWith","process","cwd","printablePath","relative","fileEqualsData","copyFileWithOverwritePrompt","from","to","flags","filesAreEqual","ensureDirectoryExists","contentHash","crypto","createHash","update","digest","remoteHash","getFileHash","file1","file2","hash1","hash2","Promise","all","allowMissing","arguments","reject","hash","stream","createReadStream","on","code","chunk","ensureDir","dirPath","isEmptyish","ignoredFiles","allFiles","files","file","includes","toLowerCase","readFileContent","_ref2","filename","filepath","normalize","log","debug","Error","readJson5File","_ref3","parseJson5","errorKey","json5","errorToUndefined","allowedPartProps","disallowedPluginProps","getPaths","manifest","readManifest","absolutifyPaths","getPath","manifestPath","pkg","binname","validateManifest","opts","isPlugin","isObject","validatePluginManifest","validateProjectManifest","validateParts","disallowed","plural","joined","validatePaths","validatePaths$1","_srcStats","sourcePath","srcStats","isDirectory","parts","part","validatePart","index","validateAllowedPartKeys","validatePartStringValues","validatePartNames","validatePartFiles","verifyCompiledParts","verifySourceParts","ext","srcExists","outDirExists","_part$name","_part$implements","pluginName","implements","nonStrings","obj","hasSanityJson","exists","isRoot","findStudioV3Config","jsFile","jsExists","v3ConfigFile","tsFile","tsExists","lockedDependencies","resolveLatestVersions","packages","versions","pkgName","pProps","range","version","getLatestVersion","rangeify","concurrency","mergedPackages","sort","deprecatedDevDeps","expectedScripts","build","watch","prepublishOnly","expectedModulesFields","filesWithSuffixes","fileBases","suffixes","flatMap","suffix","validateNodeEngine","packageJson","_packageJson$engines","nodeVersionRange","engines","node","_packageJson$engines2","outdent","_templateObject","_taggedTemplateLiteral","trimStart","validateModule","outDir","missingFields","field","_templateObject2","typings","_templateObject3","validateScripts","divergentScripts","entries","_ref4","_packageJson$scripts","expectedCommand","command","scripts","_templateObject4","_ref5","_ref6","validateTsConfig","ts","tsconfig","expectedCompilerOptions","moduleResolution","target","module","emitDeclarationOnly","esModuleInterop","skipLibCheck","isolatedModules","downlevelIteration","declaration","allowSyntheticDefaultImports","rootDir","wrongEntries","_ref7","_option","option","expectedOutput","_ref8","_templateObject5","_ref9","validatePkgUtilsDependency","_ref10","devDependencies","_templateObject6","validateSanityDependencies","dependencies","peerDependencies","allDependencies","illegalDeps","dep","deps","Set","unique","values","_templateObject7","urls","refDocs","validateDeprecatedDependencies","_templateObject8","validateBabelConfig","_ref11","babelFileNames","filenames","babelFiles","_templateObject9","validateStudioConfig","_ref12","sanityJson","hasConfigFile","fileBase","some","hasCliConfig","hasStudioConfig","_sanityJson$plugins","info","_templateObject10","migrationGuideStudio","plugins","_templateObject11","sanityExchange","_sanityJson$api$proje","_sanityJson$api","_sanityJson$api$datas","_sanityJson$api2","_templateObject12","chalk","green","_templateObject13","api","projectId","dataset","_sanityJson$api$proje2","_sanityJson$api3","_sanityJson$api$datas2","_sanityJson$api4","_templateObject14","_templateObject15","validatePluginSanityJson","_ref13","_sanityJson$parts","_packageJson$dependen","expectedDefaults","hasSinglePart","firstPart","correctImplements","pathExists","hasDependency","incompatiblePluginPackage","isValid","_templateObject16","e","_templateObject17","incompatiblePlugin","validatePackageName","_packageJson$name","_packageJson$name2","validateNpmPackageName","validForNewPackages","isScoped","validateSrcIndexFile","allowedIndexFiles","hasIndex","indexFile","_templateObject18","disallowDuplicateConfig","_ref14","pkgJson","configKey","found","exits","_templateObject19","_templateObject20","disallowDuplicateEslintConfig","disallowDuplicatePrettierConfig","forcedPackageVersions","forcedDevPackageVersions","forcedPeerPackageVersions","react","sanity","defaultDependencies","defaultDevDependencies","defaultPeerDependencies","pathKeys","getPackage","validateOptions","cliName","validatePackage","validatePluginPackage","validateLockFiles","_manifest$name","abs","existsSync","willExist","withinSourceDir","withinTargetDir","_options$flags","manifestValue","allowSourceTarget","inOutDir","npm","yarn","writePackageJson","_prev$version","_prev$keywords","license","description","prevPkg","gitOrigin","addPeers","addDeps","addDevDeps","prev","usePrettier","prettier","useEslint","eslint","useTypescript","newDevDependencies","forceDependencyVersions","typescript","forcedOrder","keywords","urlsFromOrigin","repoFromOrigin","id","author","email","exports","types","import","require","main","sortKeys","differs","writePackageJsonDirect","details","githubUrl","homepage","bugs","repository","addScript","cmd","existing","addPackageJsonScripts","updateScripts","originalScripts","_ref15","addBuildScripts","clean","format","lint","unordered","entry","forceVersion","fromEntries"],"mappings":"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","x_google_ignoreList":[2]}