@sveltejs/kit 1.0.0-next.41 → 1.0.0-next.412

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 (129) hide show
  1. package/README.md +12 -9
  2. package/package.json +97 -63
  3. package/src/cli.js +119 -0
  4. package/src/core/adapt/builder.js +207 -0
  5. package/src/core/adapt/index.js +19 -0
  6. package/src/core/config/index.js +86 -0
  7. package/src/core/config/options.js +488 -0
  8. package/src/core/config/types.d.ts +1 -0
  9. package/src/core/constants.js +3 -0
  10. package/src/core/generate_manifest/index.js +99 -0
  11. package/src/core/prerender/crawl.js +194 -0
  12. package/src/core/prerender/prerender.js +378 -0
  13. package/src/core/prerender/queue.js +80 -0
  14. package/src/core/sync/create_manifest_data/index.js +496 -0
  15. package/src/core/sync/create_manifest_data/types.d.ts +40 -0
  16. package/src/core/sync/sync.js +59 -0
  17. package/src/core/sync/utils.js +97 -0
  18. package/src/core/sync/write_ambient.js +87 -0
  19. package/src/core/sync/write_client_manifest.js +82 -0
  20. package/src/core/sync/write_matchers.js +25 -0
  21. package/src/core/sync/write_root.js +88 -0
  22. package/src/core/sync/write_tsconfig.js +189 -0
  23. package/src/core/sync/write_types.js +727 -0
  24. package/src/core/utils.js +58 -0
  25. package/src/hooks.js +26 -0
  26. package/src/index/index.js +45 -0
  27. package/src/index/private.js +33 -0
  28. package/src/node/index.js +145 -0
  29. package/src/node/polyfills.js +40 -0
  30. package/src/packaging/index.js +218 -0
  31. package/src/packaging/types.d.ts +8 -0
  32. package/src/packaging/typescript.js +150 -0
  33. package/src/packaging/utils.js +143 -0
  34. package/src/runtime/app/env.js +11 -0
  35. package/src/runtime/app/navigation.js +22 -0
  36. package/src/runtime/app/paths.js +1 -0
  37. package/src/runtime/app/stores.js +94 -0
  38. package/src/runtime/client/ambient.d.ts +17 -0
  39. package/src/runtime/client/client.js +1281 -0
  40. package/src/runtime/client/fetcher.js +60 -0
  41. package/src/runtime/client/parse.js +36 -0
  42. package/src/runtime/client/singletons.js +11 -0
  43. package/src/runtime/client/start.js +48 -0
  44. package/src/runtime/client/types.d.ts +106 -0
  45. package/src/runtime/client/utils.js +113 -0
  46. package/src/runtime/components/error.svelte +16 -0
  47. package/{assets → src/runtime}/components/layout.svelte +0 -0
  48. package/src/runtime/env/dynamic/private.js +1 -0
  49. package/src/runtime/env/dynamic/public.js +1 -0
  50. package/src/runtime/env-private.js +7 -0
  51. package/src/runtime/env-public.js +7 -0
  52. package/src/runtime/env.js +6 -0
  53. package/src/runtime/hash.js +16 -0
  54. package/src/runtime/paths.js +11 -0
  55. package/src/runtime/server/endpoint.js +42 -0
  56. package/src/runtime/server/index.js +434 -0
  57. package/src/runtime/server/page/cookie.js +25 -0
  58. package/src/runtime/server/page/crypto.js +239 -0
  59. package/src/runtime/server/page/csp.js +249 -0
  60. package/src/runtime/server/page/fetch.js +266 -0
  61. package/src/runtime/server/page/index.js +418 -0
  62. package/src/runtime/server/page/load_data.js +94 -0
  63. package/src/runtime/server/page/render.js +363 -0
  64. package/src/runtime/server/page/respond_with_error.js +105 -0
  65. package/src/runtime/server/page/types.d.ts +44 -0
  66. package/src/runtime/server/utils.js +116 -0
  67. package/src/utils/error.js +22 -0
  68. package/src/utils/escape.js +104 -0
  69. package/src/utils/filesystem.js +108 -0
  70. package/src/utils/http.js +55 -0
  71. package/src/utils/misc.js +1 -0
  72. package/src/utils/routing.js +107 -0
  73. package/src/utils/url.js +97 -0
  74. package/src/vite/build/build_server.js +339 -0
  75. package/src/vite/build/build_service_worker.js +90 -0
  76. package/src/vite/build/utils.js +153 -0
  77. package/src/vite/dev/index.js +569 -0
  78. package/src/vite/index.js +540 -0
  79. package/src/vite/preview/index.js +186 -0
  80. package/src/vite/types.d.ts +3 -0
  81. package/src/vite/utils.js +335 -0
  82. package/svelte-kit.js +1 -1
  83. package/types/ambient.d.ts +368 -0
  84. package/types/index.d.ts +345 -0
  85. package/types/internal.d.ts +309 -0
  86. package/types/private.d.ts +236 -0
  87. package/CHANGELOG.md +0 -419
  88. package/assets/components/error.svelte +0 -13
  89. package/assets/runtime/app/env.js +0 -5
  90. package/assets/runtime/app/navigation.js +0 -41
  91. package/assets/runtime/app/paths.js +0 -1
  92. package/assets/runtime/app/stores.js +0 -93
  93. package/assets/runtime/chunks/utils.js +0 -19
  94. package/assets/runtime/internal/singletons.js +0 -23
  95. package/assets/runtime/internal/start.js +0 -770
  96. package/assets/runtime/paths.js +0 -12
  97. package/dist/api.js +0 -28
  98. package/dist/api.js.map +0 -1
  99. package/dist/chunks/index.js +0 -3519
  100. package/dist/chunks/index2.js +0 -587
  101. package/dist/chunks/index3.js +0 -246
  102. package/dist/chunks/index4.js +0 -524
  103. package/dist/chunks/index5.js +0 -761
  104. package/dist/chunks/index6.js +0 -322
  105. package/dist/chunks/standard.js +0 -99
  106. package/dist/chunks/utils.js +0 -83
  107. package/dist/cli.js +0 -546
  108. package/dist/cli.js.map +0 -1
  109. package/dist/create_app.js +0 -592
  110. package/dist/create_app.js.map +0 -1
  111. package/dist/index.js +0 -392
  112. package/dist/index.js.map +0 -1
  113. package/dist/index2.js +0 -3519
  114. package/dist/index2.js.map +0 -1
  115. package/dist/index3.js +0 -320
  116. package/dist/index3.js.map +0 -1
  117. package/dist/index4.js +0 -323
  118. package/dist/index4.js.map +0 -1
  119. package/dist/index5.js +0 -247
  120. package/dist/index5.js.map +0 -1
  121. package/dist/index6.js +0 -761
  122. package/dist/index6.js.map +0 -1
  123. package/dist/renderer.js +0 -2499
  124. package/dist/renderer.js.map +0 -1
  125. package/dist/ssr.js +0 -2581
  126. package/dist/standard.js +0 -100
  127. package/dist/standard.js.map +0 -1
  128. package/dist/utils.js +0 -84
  129. package/dist/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index2.js","sources":["../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/styles.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/system/has-flag.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/system/supports-colors.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/custom/trap.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/custom/zalgo.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/america.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/zebra.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/rainbow.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/random.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/colors.js","../../../node_modules/.pnpm/colors@1.4.0/node_modules/colors/safe.js","../../../node_modules/.pnpm/commander@2.15.1/node_modules/commander/index.js","../../../node_modules/.pnpm/asap@2.0.6/node_modules/asap/raw.js","../../../node_modules/.pnpm/promise@8.0.1/node_modules/promise/lib/core.js","../../../node_modules/.pnpm/promise@8.0.1/node_modules/promise/lib/done.js","../../../node_modules/.pnpm/promise@8.0.1/node_modules/promise/lib/finally.js","../../../node_modules/.pnpm/promise@8.0.1/node_modules/promise/lib/es6-extensions.js","../../../node_modules/.pnpm/asap@2.0.6/node_modules/asap/asap.js","../../../node_modules/.pnpm/promise@8.0.1/node_modules/promise/lib/node-extensions.js","../../../node_modules/.pnpm/promise@8.0.1/node_modules/promise/lib/synchronous.js","../../../node_modules/.pnpm/promise@8.0.1/node_modules/promise/lib/index.js","../../../node_modules/.pnpm/promise@8.0.1/node_modules/promise/index.js","../../../node_modules/.pnpm/amphtml-validator@1.0.34/node_modules/amphtml-validator/index.js","../src/api/dev/index.js"],"sourcesContent":["/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar styles = {};\nmodule['exports'] = styles;\n\nvar codes = {\n reset: [0, 0],\n\n bold: [1, 22],\n dim: [2, 22],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29],\n\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n gray: [90, 39],\n grey: [90, 39],\n\n brightRed: [91, 39],\n brightGreen: [92, 39],\n brightYellow: [93, 39],\n brightBlue: [94, 39],\n brightMagenta: [95, 39],\n brightCyan: [96, 39],\n brightWhite: [97, 39],\n\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49],\n bgGray: [100, 49],\n bgGrey: [100, 49],\n\n bgBrightRed: [101, 49],\n bgBrightGreen: [102, 49],\n bgBrightYellow: [103, 49],\n bgBrightBlue: [104, 49],\n bgBrightMagenta: [105, 49],\n bgBrightCyan: [106, 49],\n bgBrightWhite: [107, 49],\n\n // legacy styles for colors pre v1.0.0\n blackBG: [40, 49],\n redBG: [41, 49],\n greenBG: [42, 49],\n yellowBG: [43, 49],\n blueBG: [44, 49],\n magentaBG: [45, 49],\n cyanBG: [46, 49],\n whiteBG: [47, 49],\n\n};\n\nObject.keys(codes).forEach(function(key) {\n var val = codes[key];\n var style = styles[key] = [];\n style.open = '\\u001b[' + val[0] + 'm';\n style.close = '\\u001b[' + val[1] + 'm';\n});\n","/*\nMIT License\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\n'use strict';\n\nmodule.exports = function(flag, argv) {\n argv = argv || process.argv;\n\n var terminatorPos = argv.indexOf('--');\n var prefix = /^-{1,2}/.test(flag) ? '' : '--';\n var pos = argv.indexOf(prefix + flag);\n\n return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n","/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\n'use strict';\n\nvar os = require('os');\nvar hasFlag = require('./has-flag.js');\n\nvar env = process.env;\n\nvar forceColor = void 0;\nif (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) {\n forceColor = false;\n} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true')\n || hasFlag('color=always')) {\n forceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n forceColor = env.FORCE_COLOR.length === 0\n || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n if (level === 0) {\n return false;\n }\n\n return {\n level: level,\n hasBasic: true,\n has256: level >= 2,\n has16m: level >= 3,\n };\n}\n\nfunction supportsColor(stream) {\n if (forceColor === false) {\n return 0;\n }\n\n if (hasFlag('color=16m') || hasFlag('color=full')\n || hasFlag('color=truecolor')) {\n return 3;\n }\n\n if (hasFlag('color=256')) {\n return 2;\n }\n\n if (stream && !stream.isTTY && forceColor !== true) {\n return 0;\n }\n\n var min = forceColor ? 1 : 0;\n\n if (process.platform === 'win32') {\n // Node.js 7.5.0 is the first version of Node.js to include a patch to\n // libuv that enables 256 color output on Windows. Anything earlier and it\n // won't work. However, here we target Node.js 8 at minimum as it is an LTS\n // release, and Node.js 7 is not. Windows 10 build 10586 is the first\n // Windows release that supports 256 colors. Windows 10 build 14931 is the\n // first release that supports 16m/TrueColor.\n var osRelease = os.release().split('.');\n if (Number(process.versions.node.split('.')[0]) >= 8\n && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {\n return Number(osRelease[2]) >= 14931 ? 3 : 2;\n }\n\n return 1;\n }\n\n if ('CI' in env) {\n if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) {\n return sign in env;\n }) || env.CI_NAME === 'codeship') {\n return 1;\n }\n\n return min;\n }\n\n if ('TEAMCITY_VERSION' in env) {\n return (/^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0\n );\n }\n\n if ('TERM_PROGRAM' in env) {\n var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n switch (env.TERM_PROGRAM) {\n case 'iTerm.app':\n return version >= 3 ? 3 : 2;\n case 'Hyper':\n return 3;\n case 'Apple_Terminal':\n return 2;\n // No default\n }\n }\n\n if (/-256(color)?$/i.test(env.TERM)) {\n return 2;\n }\n\n if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n return 1;\n }\n\n if ('COLORTERM' in env) {\n return 1;\n }\n\n if (env.TERM === 'dumb') {\n return min;\n }\n\n return min;\n}\n\nfunction getSupportLevel(stream) {\n var level = supportsColor(stream);\n return translateLevel(level);\n}\n\nmodule.exports = {\n supportsColor: getSupportLevel,\n stdout: getSupportLevel(process.stdout),\n stderr: getSupportLevel(process.stderr),\n};\n","module['exports'] = function runTheTrap(text, options) {\n var result = '';\n text = text || 'Run the trap, drop the bass';\n text = text.split('');\n var trap = {\n a: ['\\u0040', '\\u0104', '\\u023a', '\\u0245', '\\u0394', '\\u039b', '\\u0414'],\n b: ['\\u00df', '\\u0181', '\\u0243', '\\u026e', '\\u03b2', '\\u0e3f'],\n c: ['\\u00a9', '\\u023b', '\\u03fe'],\n d: ['\\u00d0', '\\u018a', '\\u0500', '\\u0501', '\\u0502', '\\u0503'],\n e: ['\\u00cb', '\\u0115', '\\u018e', '\\u0258', '\\u03a3', '\\u03be', '\\u04bc',\n '\\u0a6c'],\n f: ['\\u04fa'],\n g: ['\\u0262'],\n h: ['\\u0126', '\\u0195', '\\u04a2', '\\u04ba', '\\u04c7', '\\u050a'],\n i: ['\\u0f0f'],\n j: ['\\u0134'],\n k: ['\\u0138', '\\u04a0', '\\u04c3', '\\u051e'],\n l: ['\\u0139'],\n m: ['\\u028d', '\\u04cd', '\\u04ce', '\\u0520', '\\u0521', '\\u0d69'],\n n: ['\\u00d1', '\\u014b', '\\u019d', '\\u0376', '\\u03a0', '\\u048a'],\n o: ['\\u00d8', '\\u00f5', '\\u00f8', '\\u01fe', '\\u0298', '\\u047a', '\\u05dd',\n '\\u06dd', '\\u0e4f'],\n p: ['\\u01f7', '\\u048e'],\n q: ['\\u09cd'],\n r: ['\\u00ae', '\\u01a6', '\\u0210', '\\u024c', '\\u0280', '\\u042f'],\n s: ['\\u00a7', '\\u03de', '\\u03df', '\\u03e8'],\n t: ['\\u0141', '\\u0166', '\\u0373'],\n u: ['\\u01b1', '\\u054d'],\n v: ['\\u05d8'],\n w: ['\\u0428', '\\u0460', '\\u047c', '\\u0d70'],\n x: ['\\u04b2', '\\u04fe', '\\u04fc', '\\u04fd'],\n y: ['\\u00a5', '\\u04b0', '\\u04cb'],\n z: ['\\u01b5', '\\u0240'],\n };\n text.forEach(function(c) {\n c = c.toLowerCase();\n var chars = trap[c] || [' '];\n var rand = Math.floor(Math.random() * chars.length);\n if (typeof trap[c] !== 'undefined') {\n result += trap[c][rand];\n } else {\n result += c;\n }\n });\n return result;\n};\n","// please no\nmodule['exports'] = function zalgo(text, options) {\n text = text || ' he is here ';\n var soul = {\n 'up': [\n '̍', '̎', '̄', '̅',\n '̿', '̑', '̆', '̐',\n '͒', '͗', '͑', '̇',\n '̈', '̊', '͂', '̓',\n '̈', '͊', '͋', '͌',\n '̃', '̂', '̌', '͐',\n '̀', '́', '̋', '̏',\n '̒', '̓', '̔', '̽',\n '̉', 'ͣ', 'ͤ', 'ͥ',\n 'ͦ', 'ͧ', 'ͨ', 'ͩ',\n 'ͪ', 'ͫ', 'ͬ', 'ͭ',\n 'ͮ', 'ͯ', '̾', '͛',\n '͆', '̚',\n ],\n 'down': [\n '̖', '̗', '̘', '̙',\n '̜', '̝', '̞', '̟',\n '̠', '̤', '̥', '̦',\n '̩', '̪', '̫', '̬',\n '̭', '̮', '̯', '̰',\n '̱', '̲', '̳', '̹',\n '̺', '̻', '̼', 'ͅ',\n '͇', '͈', '͉', '͍',\n '͎', '͓', '͔', '͕',\n '͖', '͙', '͚', '̣',\n ],\n 'mid': [\n '̕', '̛', '̀', '́',\n '͘', '̡', '̢', '̧',\n '̨', '̴', '̵', '̶',\n '͜', '͝', '͞',\n '͟', '͠', '͢', '̸',\n '̷', '͡', ' ҉',\n ],\n };\n var all = [].concat(soul.up, soul.down, soul.mid);\n\n function randomNumber(range) {\n var r = Math.floor(Math.random() * range);\n return r;\n }\n\n function isChar(character) {\n var bool = false;\n all.filter(function(i) {\n bool = (i === character);\n });\n return bool;\n }\n\n\n function heComes(text, options) {\n var result = '';\n var counts;\n var l;\n options = options || {};\n options['up'] =\n typeof options['up'] !== 'undefined' ? options['up'] : true;\n options['mid'] =\n typeof options['mid'] !== 'undefined' ? options['mid'] : true;\n options['down'] =\n typeof options['down'] !== 'undefined' ? options['down'] : true;\n options['size'] =\n typeof options['size'] !== 'undefined' ? options['size'] : 'maxi';\n text = text.split('');\n for (l in text) {\n if (isChar(l)) {\n continue;\n }\n result = result + text[l];\n counts = {'up': 0, 'down': 0, 'mid': 0};\n switch (options.size) {\n case 'mini':\n counts.up = randomNumber(8);\n counts.mid = randomNumber(2);\n counts.down = randomNumber(8);\n break;\n case 'maxi':\n counts.up = randomNumber(16) + 3;\n counts.mid = randomNumber(4) + 1;\n counts.down = randomNumber(64) + 3;\n break;\n default:\n counts.up = randomNumber(8) + 1;\n counts.mid = randomNumber(6) / 2;\n counts.down = randomNumber(8) + 1;\n break;\n }\n\n var arr = ['up', 'mid', 'down'];\n for (var d in arr) {\n var index = arr[d];\n for (var i = 0; i <= counts[index]; i++) {\n if (options[index]) {\n result = result + soul[index][randomNumber(soul[index].length)];\n }\n }\n }\n }\n return result;\n }\n // don't summon him\n return heComes(text, options);\n};\n\n","module['exports'] = function(colors) {\n return function(letter, i, exploded) {\n if (letter === ' ') return letter;\n switch (i%3) {\n case 0: return colors.red(letter);\n case 1: return colors.white(letter);\n case 2: return colors.blue(letter);\n }\n };\n};\n","module['exports'] = function(colors) {\n return function(letter, i, exploded) {\n return i % 2 === 0 ? letter : colors.inverse(letter);\n };\n};\n","module['exports'] = function(colors) {\n // RoY G BiV\n var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta'];\n return function(letter, i, exploded) {\n if (letter === ' ') {\n return letter;\n } else {\n return colors[rainbowColors[i++ % rainbowColors.length]](letter);\n }\n };\n};\n\n","module['exports'] = function(colors) {\n var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green',\n 'blue', 'white', 'cyan', 'magenta', 'brightYellow', 'brightRed',\n 'brightGreen', 'brightBlue', 'brightWhite', 'brightCyan', 'brightMagenta'];\n return function(letter, i, exploded) {\n return letter === ' ' ? letter :\n colors[\n available[Math.round(Math.random() * (available.length - 2))]\n ](letter);\n };\n};\n","/*\n\nThe MIT License (MIT)\n\nOriginal Library\n - Copyright (c) Marak Squires\n\nAdditional functionality\n - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar colors = {};\nmodule['exports'] = colors;\n\ncolors.themes = {};\n\nvar util = require('util');\nvar ansiStyles = colors.styles = require('./styles');\nvar defineProps = Object.defineProperties;\nvar newLineRegex = new RegExp(/[\\r\\n]+/g);\n\ncolors.supportsColor = require('./system/supports-colors').supportsColor;\n\nif (typeof colors.enabled === 'undefined') {\n colors.enabled = colors.supportsColor() !== false;\n}\n\ncolors.enable = function() {\n colors.enabled = true;\n};\n\ncolors.disable = function() {\n colors.enabled = false;\n};\n\ncolors.stripColors = colors.strip = function(str) {\n return ('' + str).replace(/\\x1B\\[\\d+m/g, '');\n};\n\n// eslint-disable-next-line no-unused-vars\nvar stylize = colors.stylize = function stylize(str, style) {\n if (!colors.enabled) {\n return str+'';\n }\n\n var styleMap = ansiStyles[style];\n\n // Stylize should work for non-ANSI styles, too\n if(!styleMap && style in colors){\n // Style maps like trap operate as functions on strings;\n // they don't have properties like open or close.\n return colors[style](str);\n }\n\n return styleMap.open + str + styleMap.close;\n};\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nvar escapeStringRegexp = function(str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n return str.replace(matchOperatorsRe, '\\\\$&');\n};\n\nfunction build(_styles) {\n var builder = function builder() {\n return applyStyle.apply(builder, arguments);\n };\n builder._styles = _styles;\n // __proto__ is used because we must return a function, but there is\n // no way to create a function with a different prototype.\n builder.__proto__ = proto;\n return builder;\n}\n\nvar styles = (function() {\n var ret = {};\n ansiStyles.grey = ansiStyles.gray;\n Object.keys(ansiStyles).forEach(function(key) {\n ansiStyles[key].closeRe =\n new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n ret[key] = {\n get: function() {\n return build(this._styles.concat(key));\n },\n };\n });\n return ret;\n})();\n\nvar proto = defineProps(function colors() {}, styles);\n\nfunction applyStyle() {\n var args = Array.prototype.slice.call(arguments);\n\n var str = args.map(function(arg) {\n // Use weak equality check so we can colorize null/undefined in safe mode\n if (arg != null && arg.constructor === String) {\n return arg;\n } else {\n return util.inspect(arg);\n }\n }).join(' ');\n\n if (!colors.enabled || !str) {\n return str;\n }\n\n var newLinesPresent = str.indexOf('\\n') != -1;\n\n var nestedStyles = this._styles;\n\n var i = nestedStyles.length;\n while (i--) {\n var code = ansiStyles[nestedStyles[i]];\n str = code.open + str.replace(code.closeRe, code.open) + code.close;\n if (newLinesPresent) {\n str = str.replace(newLineRegex, function(match) {\n return code.close + match + code.open;\n });\n }\n }\n\n return str;\n}\n\ncolors.setTheme = function(theme) {\n if (typeof theme === 'string') {\n console.log('colors.setTheme now only accepts an object, not a string. ' +\n 'If you are trying to set a theme from a file, it is now your (the ' +\n 'caller\\'s) responsibility to require the file. The old syntax ' +\n 'looked like colors.setTheme(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'); The new syntax looks like '+\n 'colors.setTheme(require(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'));');\n return;\n }\n for (var style in theme) {\n (function(style) {\n colors[style] = function(str) {\n if (typeof theme[style] === 'object') {\n var out = str;\n for (var i in theme[style]) {\n out = colors[theme[style][i]](out);\n }\n return out;\n }\n return colors[theme[style]](str);\n };\n })(style);\n }\n};\n\nfunction init() {\n var ret = {};\n Object.keys(styles).forEach(function(name) {\n ret[name] = {\n get: function() {\n return build([name]);\n },\n };\n });\n return ret;\n}\n\nvar sequencer = function sequencer(map, str) {\n var exploded = str.split('');\n exploded = exploded.map(map);\n return exploded.join('');\n};\n\n// custom formatter methods\ncolors.trap = require('./custom/trap');\ncolors.zalgo = require('./custom/zalgo');\n\n// maps\ncolors.maps = {};\ncolors.maps.america = require('./maps/america')(colors);\ncolors.maps.zebra = require('./maps/zebra')(colors);\ncolors.maps.rainbow = require('./maps/rainbow')(colors);\ncolors.maps.random = require('./maps/random')(colors);\n\nfor (var map in colors.maps) {\n (function(map) {\n colors[map] = function(str) {\n return sequencer(colors.maps[map], str);\n };\n })(map);\n}\n\ndefineProps(colors, init());\n","//\n// Remark: Requiring this file will use the \"safe\" colors API,\n// which will not touch String.prototype.\n//\n// var colors = require('colors/safe');\n// colors.red(\"foo\")\n//\n//\nvar colors = require('./lib/colors');\nmodule['exports'] = colors;\n","/**\n * Module dependencies.\n */\n\nvar EventEmitter = require('events').EventEmitter;\nvar spawn = require('child_process').spawn;\nvar path = require('path');\nvar dirname = path.dirname;\nvar basename = path.basename;\nvar fs = require('fs');\n\n/**\n * Inherit `Command` from `EventEmitter.prototype`.\n */\n\nrequire('util').inherits(Command, EventEmitter);\n\n/**\n * Expose the root command.\n */\n\nexports = module.exports = new Command();\n\n/**\n * Expose `Command`.\n */\n\nexports.Command = Command;\n\n/**\n * Expose `Option`.\n */\n\nexports.Option = Option;\n\n/**\n * Initialize a new `Option` with the given `flags` and `description`.\n *\n * @param {String} flags\n * @param {String} description\n * @api public\n */\n\nfunction Option(flags, description) {\n this.flags = flags;\n this.required = ~flags.indexOf('<');\n this.optional = ~flags.indexOf('[');\n this.bool = !~flags.indexOf('-no-');\n flags = flags.split(/[ ,|]+/);\n if (flags.length > 1 && !/^[[<]/.test(flags[1])) this.short = flags.shift();\n this.long = flags.shift();\n this.description = description || '';\n}\n\n/**\n * Return option name.\n *\n * @return {String}\n * @api private\n */\n\nOption.prototype.name = function() {\n return this.long\n .replace('--', '')\n .replace('no-', '');\n};\n\n/**\n * Return option name, in a camelcase format that can be used\n * as a object attribute key.\n *\n * @return {String}\n * @api private\n */\n\nOption.prototype.attributeName = function() {\n return camelcase(this.name());\n};\n\n/**\n * Check if `arg` matches the short or long flag.\n *\n * @param {String} arg\n * @return {Boolean}\n * @api private\n */\n\nOption.prototype.is = function(arg) {\n return this.short === arg || this.long === arg;\n};\n\n/**\n * Initialize a new `Command`.\n *\n * @param {String} name\n * @api public\n */\n\nfunction Command(name) {\n this.commands = [];\n this.options = [];\n this._execs = {};\n this._allowUnknownOption = false;\n this._args = [];\n this._name = name || '';\n}\n\n/**\n * Add command `name`.\n *\n * The `.action()` callback is invoked when the\n * command `name` is specified via __ARGV__,\n * and the remaining arguments are applied to the\n * function for access.\n *\n * When the `name` is \"*\" an un-matched command\n * will be passed as the first arg, followed by\n * the rest of __ARGV__ remaining.\n *\n * Examples:\n *\n * program\n * .version('0.0.1')\n * .option('-C, --chdir <path>', 'change the working directory')\n * .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')\n * .option('-T, --no-tests', 'ignore test hook')\n *\n * program\n * .command('setup')\n * .description('run remote setup commands')\n * .action(function() {\n * console.log('setup');\n * });\n *\n * program\n * .command('exec <cmd>')\n * .description('run the given remote command')\n * .action(function(cmd) {\n * console.log('exec \"%s\"', cmd);\n * });\n *\n * program\n * .command('teardown <dir> [otherDirs...]')\n * .description('run teardown commands')\n * .action(function(dir, otherDirs) {\n * console.log('dir \"%s\"', dir);\n * if (otherDirs) {\n * otherDirs.forEach(function (oDir) {\n * console.log('dir \"%s\"', oDir);\n * });\n * }\n * });\n *\n * program\n * .command('*')\n * .description('deploy the given env')\n * .action(function(env) {\n * console.log('deploying \"%s\"', env);\n * });\n *\n * program.parse(process.argv);\n *\n * @param {String} name\n * @param {String} [desc] for git-style sub-commands\n * @return {Command} the new command\n * @api public\n */\n\nCommand.prototype.command = function(name, desc, opts) {\n if (typeof desc === 'object' && desc !== null) {\n opts = desc;\n desc = null;\n }\n opts = opts || {};\n var args = name.split(/ +/);\n var cmd = new Command(args.shift());\n\n if (desc) {\n cmd.description(desc);\n this.executables = true;\n this._execs[cmd._name] = true;\n if (opts.isDefault) this.defaultExecutable = cmd._name;\n }\n cmd._noHelp = !!opts.noHelp;\n this.commands.push(cmd);\n cmd.parseExpectedArgs(args);\n cmd.parent = this;\n\n if (desc) return this;\n return cmd;\n};\n\n/**\n * Define argument syntax for the top-level command.\n *\n * @api public\n */\n\nCommand.prototype.arguments = function(desc) {\n return this.parseExpectedArgs(desc.split(/ +/));\n};\n\n/**\n * Add an implicit `help [cmd]` subcommand\n * which invokes `--help` for the given command.\n *\n * @api private\n */\n\nCommand.prototype.addImplicitHelpCommand = function() {\n this.command('help [cmd]', 'display help for [cmd]');\n};\n\n/**\n * Parse expected `args`.\n *\n * For example `[\"[type]\"]` becomes `[{ required: false, name: 'type' }]`.\n *\n * @param {Array} args\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.parseExpectedArgs = function(args) {\n if (!args.length) return;\n var self = this;\n args.forEach(function(arg) {\n var argDetails = {\n required: false,\n name: '',\n variadic: false\n };\n\n switch (arg[0]) {\n case '<':\n argDetails.required = true;\n argDetails.name = arg.slice(1, -1);\n break;\n case '[':\n argDetails.name = arg.slice(1, -1);\n break;\n }\n\n if (argDetails.name.length > 3 && argDetails.name.slice(-3) === '...') {\n argDetails.variadic = true;\n argDetails.name = argDetails.name.slice(0, -3);\n }\n if (argDetails.name) {\n self._args.push(argDetails);\n }\n });\n return this;\n};\n\n/**\n * Register callback `fn` for the command.\n *\n * Examples:\n *\n * program\n * .command('help')\n * .description('display verbose help')\n * .action(function() {\n * // output help here\n * });\n *\n * @param {Function} fn\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.action = function(fn) {\n var self = this;\n var listener = function(args, unknown) {\n // Parse any so-far unknown options\n args = args || [];\n unknown = unknown || [];\n\n var parsed = self.parseOptions(unknown);\n\n // Output help if necessary\n outputHelpIfNecessary(self, parsed.unknown);\n\n // If there are still any unknown options, then we simply\n // die, unless someone asked for help, in which case we give it\n // to them, and then we die.\n if (parsed.unknown.length > 0) {\n self.unknownOption(parsed.unknown[0]);\n }\n\n // Leftover arguments need to be pushed back. Fixes issue #56\n if (parsed.args.length) args = parsed.args.concat(args);\n\n self._args.forEach(function(arg, i) {\n if (arg.required && args[i] == null) {\n self.missingArgument(arg.name);\n } else if (arg.variadic) {\n if (i !== self._args.length - 1) {\n self.variadicArgNotLast(arg.name);\n }\n\n args[i] = args.splice(i);\n }\n });\n\n // Always append ourselves to the end of the arguments,\n // to make sure we match the number of arguments the user\n // expects\n if (self._args.length) {\n args[self._args.length] = self;\n } else {\n args.push(self);\n }\n\n fn.apply(self, args);\n };\n var parent = this.parent || this;\n var name = parent === this ? '*' : this._name;\n parent.on('command:' + name, listener);\n if (this._alias) parent.on('command:' + this._alias, listener);\n return this;\n};\n\n/**\n * Define option with `flags`, `description` and optional\n * coercion `fn`.\n *\n * The `flags` string should contain both the short and long flags,\n * separated by comma, a pipe or space. The following are all valid\n * all will output this way when `--help` is used.\n *\n * \"-p, --pepper\"\n * \"-p|--pepper\"\n * \"-p --pepper\"\n *\n * Examples:\n *\n * // simple boolean defaulting to false\n * program.option('-p, --pepper', 'add pepper');\n *\n * --pepper\n * program.pepper\n * // => Boolean\n *\n * // simple boolean defaulting to true\n * program.option('-C, --no-cheese', 'remove cheese');\n *\n * program.cheese\n * // => true\n *\n * --no-cheese\n * program.cheese\n * // => false\n *\n * // required argument\n * program.option('-C, --chdir <path>', 'change the working directory');\n *\n * --chdir /tmp\n * program.chdir\n * // => \"/tmp\"\n *\n * // optional argument\n * program.option('-c, --cheese [type]', 'add cheese [marble]');\n *\n * @param {String} flags\n * @param {String} description\n * @param {Function|*} [fn] or default\n * @param {*} [defaultValue]\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.option = function(flags, description, fn, defaultValue) {\n var self = this,\n option = new Option(flags, description),\n oname = option.name(),\n name = option.attributeName();\n\n // default as 3rd arg\n if (typeof fn !== 'function') {\n if (fn instanceof RegExp) {\n var regex = fn;\n fn = function(val, def) {\n var m = regex.exec(val);\n return m ? m[0] : def;\n };\n } else {\n defaultValue = fn;\n fn = null;\n }\n }\n\n // preassign default value only for --no-*, [optional], or <required>\n if (!option.bool || option.optional || option.required) {\n // when --no-* we make sure default is true\n if (!option.bool) defaultValue = true;\n // preassign only if we have a default\n if (defaultValue !== undefined) {\n self[name] = defaultValue;\n option.defaultValue = defaultValue;\n }\n }\n\n // register the option\n this.options.push(option);\n\n // when it's passed assign the value\n // and conditionally invoke the callback\n this.on('option:' + oname, function(val) {\n // coercion\n if (val !== null && fn) {\n val = fn(val, self[name] === undefined ? defaultValue : self[name]);\n }\n\n // unassigned or bool\n if (typeof self[name] === 'boolean' || typeof self[name] === 'undefined') {\n // if no value, bool true, and we have a default, then use it!\n if (val == null) {\n self[name] = option.bool\n ? defaultValue || true\n : false;\n } else {\n self[name] = val;\n }\n } else if (val !== null) {\n // reassign\n self[name] = val;\n }\n });\n\n return this;\n};\n\n/**\n * Allow unknown options on the command line.\n *\n * @param {Boolean} arg if `true` or omitted, no error will be thrown\n * for unknown options.\n * @api public\n */\nCommand.prototype.allowUnknownOption = function(arg) {\n this._allowUnknownOption = arguments.length === 0 || arg;\n return this;\n};\n\n/**\n * Parse `argv`, settings options and invoking commands when defined.\n *\n * @param {Array} argv\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.parse = function(argv) {\n // implicit help\n if (this.executables) this.addImplicitHelpCommand();\n\n // store raw args\n this.rawArgs = argv;\n\n // guess name\n this._name = this._name || basename(argv[1], '.js');\n\n // github-style sub-commands with no sub-command\n if (this.executables && argv.length < 3 && !this.defaultExecutable) {\n // this user needs help\n argv.push('--help');\n }\n\n // process argv\n var parsed = this.parseOptions(this.normalize(argv.slice(2)));\n var args = this.args = parsed.args;\n\n var result = this.parseArgs(this.args, parsed.unknown);\n\n // executable sub-commands\n var name = result.args[0];\n\n var aliasCommand = null;\n // check alias of sub commands\n if (name) {\n aliasCommand = this.commands.filter(function(command) {\n return command.alias() === name;\n })[0];\n }\n\n if (this._execs[name] && typeof this._execs[name] !== 'function') {\n return this.executeSubCommand(argv, args, parsed.unknown);\n } else if (aliasCommand) {\n // is alias of a subCommand\n args[0] = aliasCommand._name;\n return this.executeSubCommand(argv, args, parsed.unknown);\n } else if (this.defaultExecutable) {\n // use the default subcommand\n args.unshift(this.defaultExecutable);\n return this.executeSubCommand(argv, args, parsed.unknown);\n }\n\n return result;\n};\n\n/**\n * Execute a sub-command executable.\n *\n * @param {Array} argv\n * @param {Array} args\n * @param {Array} unknown\n * @api private\n */\n\nCommand.prototype.executeSubCommand = function(argv, args, unknown) {\n args = args.concat(unknown);\n\n if (!args.length) this.help();\n if (args[0] === 'help' && args.length === 1) this.help();\n\n // <cmd> --help\n if (args[0] === 'help') {\n args[0] = args[1];\n args[1] = '--help';\n }\n\n // executable\n var f = argv[1];\n // name of the subcommand, link `pm-install`\n var bin = basename(f, '.js') + '-' + args[0];\n\n // In case of globally installed, get the base dir where executable\n // subcommand file should be located at\n var baseDir,\n link = fs.lstatSync(f).isSymbolicLink() ? fs.readlinkSync(f) : f;\n\n // when symbolink is relative path\n if (link !== f && link.charAt(0) !== '/') {\n link = path.join(dirname(f), link);\n }\n baseDir = dirname(link);\n\n // prefer local `./<bin>` to bin in the $PATH\n var localBin = path.join(baseDir, bin);\n\n // whether bin file is a js script with explicit `.js` extension\n var isExplicitJS = false;\n if (exists(localBin + '.js')) {\n bin = localBin + '.js';\n isExplicitJS = true;\n } else if (exists(localBin)) {\n bin = localBin;\n }\n\n args = args.slice(1);\n\n var proc;\n if (process.platform !== 'win32') {\n if (isExplicitJS) {\n args.unshift(bin);\n // add executable arguments to spawn\n args = (process.execArgv || []).concat(args);\n\n proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] });\n } else {\n proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] });\n }\n } else {\n args.unshift(bin);\n proc = spawn(process.execPath, args, { stdio: 'inherit' });\n }\n\n var signals = ['SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGINT', 'SIGHUP'];\n signals.forEach(function(signal) {\n process.on(signal, function() {\n if (proc.killed === false && proc.exitCode === null) {\n proc.kill(signal);\n }\n });\n });\n proc.on('close', process.exit.bind(process));\n proc.on('error', function(err) {\n if (err.code === 'ENOENT') {\n console.error('\\n %s(1) does not exist, try --help\\n', bin);\n } else if (err.code === 'EACCES') {\n console.error('\\n %s(1) not executable. try chmod or run with root\\n', bin);\n }\n process.exit(1);\n });\n\n // Store the reference to the child process\n this.runningCommand = proc;\n};\n\n/**\n * Normalize `args`, splitting joined short flags. For example\n * the arg \"-abc\" is equivalent to \"-a -b -c\".\n * This also normalizes equal sign and splits \"--abc=def\" into \"--abc def\".\n *\n * @param {Array} args\n * @return {Array}\n * @api private\n */\n\nCommand.prototype.normalize = function(args) {\n var ret = [],\n arg,\n lastOpt,\n index;\n\n for (var i = 0, len = args.length; i < len; ++i) {\n arg = args[i];\n if (i > 0) {\n lastOpt = this.optionFor(args[i - 1]);\n }\n\n if (arg === '--') {\n // Honor option terminator\n ret = ret.concat(args.slice(i));\n break;\n } else if (lastOpt && lastOpt.required) {\n ret.push(arg);\n } else if (arg.length > 1 && arg[0] === '-' && arg[1] !== '-') {\n arg.slice(1).split('').forEach(function(c) {\n ret.push('-' + c);\n });\n } else if (/^--/.test(arg) && ~(index = arg.indexOf('='))) {\n ret.push(arg.slice(0, index), arg.slice(index + 1));\n } else {\n ret.push(arg);\n }\n }\n\n return ret;\n};\n\n/**\n * Parse command `args`.\n *\n * When listener(s) are available those\n * callbacks are invoked, otherwise the \"*\"\n * event is emitted and those actions are invoked.\n *\n * @param {Array} args\n * @return {Command} for chaining\n * @api private\n */\n\nCommand.prototype.parseArgs = function(args, unknown) {\n var name;\n\n if (args.length) {\n name = args[0];\n if (this.listeners('command:' + name).length) {\n this.emit('command:' + args.shift(), args, unknown);\n } else {\n this.emit('command:*', args);\n }\n } else {\n outputHelpIfNecessary(this, unknown);\n\n // If there were no args and we have unknown options,\n // then they are extraneous and we need to error.\n if (unknown.length > 0) {\n this.unknownOption(unknown[0]);\n }\n }\n\n return this;\n};\n\n/**\n * Return an option matching `arg` if any.\n *\n * @param {String} arg\n * @return {Option}\n * @api private\n */\n\nCommand.prototype.optionFor = function(arg) {\n for (var i = 0, len = this.options.length; i < len; ++i) {\n if (this.options[i].is(arg)) {\n return this.options[i];\n }\n }\n};\n\n/**\n * Parse options from `argv` returning `argv`\n * void of these options.\n *\n * @param {Array} argv\n * @return {Array}\n * @api public\n */\n\nCommand.prototype.parseOptions = function(argv) {\n var args = [],\n len = argv.length,\n literal,\n option,\n arg;\n\n var unknownOptions = [];\n\n // parse options\n for (var i = 0; i < len; ++i) {\n arg = argv[i];\n\n // literal args after --\n if (literal) {\n args.push(arg);\n continue;\n }\n\n if (arg === '--') {\n literal = true;\n continue;\n }\n\n // find matching Option\n option = this.optionFor(arg);\n\n // option is defined\n if (option) {\n // requires arg\n if (option.required) {\n arg = argv[++i];\n if (arg == null) return this.optionMissingArgument(option);\n this.emit('option:' + option.name(), arg);\n // optional arg\n } else if (option.optional) {\n arg = argv[i + 1];\n if (arg == null || (arg[0] === '-' && arg !== '-')) {\n arg = null;\n } else {\n ++i;\n }\n this.emit('option:' + option.name(), arg);\n // bool\n } else {\n this.emit('option:' + option.name());\n }\n continue;\n }\n\n // looks like an option\n if (arg.length > 1 && arg[0] === '-') {\n unknownOptions.push(arg);\n\n // If the next argument looks like it might be\n // an argument for this option, we pass it on.\n // If it isn't, then it'll simply be ignored\n if ((i + 1) < argv.length && argv[i + 1][0] !== '-') {\n unknownOptions.push(argv[++i]);\n }\n continue;\n }\n\n // arg\n args.push(arg);\n }\n\n return { args: args, unknown: unknownOptions };\n};\n\n/**\n * Return an object containing options as key-value pairs\n *\n * @return {Object}\n * @api public\n */\nCommand.prototype.opts = function() {\n var result = {},\n len = this.options.length;\n\n for (var i = 0; i < len; i++) {\n var key = this.options[i].attributeName();\n result[key] = key === this._versionOptionName ? this._version : this[key];\n }\n return result;\n};\n\n/**\n * Argument `name` is missing.\n *\n * @param {String} name\n * @api private\n */\n\nCommand.prototype.missingArgument = function(name) {\n console.error();\n console.error(\" error: missing required argument `%s'\", name);\n console.error();\n process.exit(1);\n};\n\n/**\n * `Option` is missing an argument, but received `flag` or nothing.\n *\n * @param {String} option\n * @param {String} flag\n * @api private\n */\n\nCommand.prototype.optionMissingArgument = function(option, flag) {\n console.error();\n if (flag) {\n console.error(\" error: option `%s' argument missing, got `%s'\", option.flags, flag);\n } else {\n console.error(\" error: option `%s' argument missing\", option.flags);\n }\n console.error();\n process.exit(1);\n};\n\n/**\n * Unknown option `flag`.\n *\n * @param {String} flag\n * @api private\n */\n\nCommand.prototype.unknownOption = function(flag) {\n if (this._allowUnknownOption) return;\n console.error();\n console.error(\" error: unknown option `%s'\", flag);\n console.error();\n process.exit(1);\n};\n\n/**\n * Variadic argument with `name` is not the last argument as required.\n *\n * @param {String} name\n * @api private\n */\n\nCommand.prototype.variadicArgNotLast = function(name) {\n console.error();\n console.error(\" error: variadic arguments must be last `%s'\", name);\n console.error();\n process.exit(1);\n};\n\n/**\n * Set the program version to `str`.\n *\n * This method auto-registers the \"-V, --version\" flag\n * which will print the version number when passed.\n *\n * @param {String} str\n * @param {String} [flags]\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.version = function(str, flags) {\n if (arguments.length === 0) return this._version;\n this._version = str;\n flags = flags || '-V, --version';\n var versionOption = new Option(flags, 'output the version number');\n this._versionOptionName = versionOption.long.substr(2) || 'version';\n this.options.push(versionOption);\n this.on('option:' + this._versionOptionName, function() {\n process.stdout.write(str + '\\n');\n process.exit(0);\n });\n return this;\n};\n\n/**\n * Set the description to `str`.\n *\n * @param {String} str\n * @param {Object} argsDescription\n * @return {String|Command}\n * @api public\n */\n\nCommand.prototype.description = function(str, argsDescription) {\n if (arguments.length === 0) return this._description;\n this._description = str;\n this._argsDescription = argsDescription;\n return this;\n};\n\n/**\n * Set an alias for the command\n *\n * @param {String} alias\n * @return {String|Command}\n * @api public\n */\n\nCommand.prototype.alias = function(alias) {\n var command = this;\n if (this.commands.length !== 0) {\n command = this.commands[this.commands.length - 1];\n }\n\n if (arguments.length === 0) return command._alias;\n\n if (alias === command._name) throw new Error('Command alias can\\'t be the same as its name');\n\n command._alias = alias;\n return this;\n};\n\n/**\n * Set / get the command usage `str`.\n *\n * @param {String} str\n * @return {String|Command}\n * @api public\n */\n\nCommand.prototype.usage = function(str) {\n var args = this._args.map(function(arg) {\n return humanReadableArgName(arg);\n });\n\n var usage = '[options]' +\n (this.commands.length ? ' [command]' : '') +\n (this._args.length ? ' ' + args.join(' ') : '');\n\n if (arguments.length === 0) return this._usage || usage;\n this._usage = str;\n\n return this;\n};\n\n/**\n * Get or set the name of the command\n *\n * @param {String} str\n * @return {String|Command}\n * @api public\n */\n\nCommand.prototype.name = function(str) {\n if (arguments.length === 0) return this._name;\n this._name = str;\n return this;\n};\n\n/**\n * Return prepared commands.\n *\n * @return {Array}\n * @api private\n */\n\nCommand.prototype.prepareCommands = function() {\n return this.commands.filter(function(cmd) {\n return !cmd._noHelp;\n }).map(function(cmd) {\n var args = cmd._args.map(function(arg) {\n return humanReadableArgName(arg);\n }).join(' ');\n\n return [\n cmd._name +\n (cmd._alias ? '|' + cmd._alias : '') +\n (cmd.options.length ? ' [options]' : '') +\n (args ? ' ' + args : ''),\n cmd._description\n ];\n });\n};\n\n/**\n * Return the largest command length.\n *\n * @return {Number}\n * @api private\n */\n\nCommand.prototype.largestCommandLength = function() {\n var commands = this.prepareCommands();\n return commands.reduce(function(max, command) {\n return Math.max(max, command[0].length);\n }, 0);\n};\n\n/**\n * Return the largest option length.\n *\n * @return {Number}\n * @api private\n */\n\nCommand.prototype.largestOptionLength = function() {\n var options = [].slice.call(this.options);\n options.push({\n flags: '-h, --help'\n });\n return options.reduce(function(max, option) {\n return Math.max(max, option.flags.length);\n }, 0);\n};\n\n/**\n * Return the largest arg length.\n *\n * @return {Number}\n * @api private\n */\n\nCommand.prototype.largestArgLength = function() {\n return this._args.reduce(function(max, arg) {\n return Math.max(max, arg.name.length);\n }, 0);\n};\n\n/**\n * Return the pad width.\n *\n * @return {Number}\n * @api private\n */\n\nCommand.prototype.padWidth = function() {\n var width = this.largestOptionLength();\n if (this._argsDescription && this._args.length) {\n if (this.largestArgLength() > width) {\n width = this.largestArgLength();\n }\n }\n\n if (this.commands && this.commands.length) {\n if (this.largestCommandLength() > width) {\n width = this.largestCommandLength();\n }\n }\n\n return width;\n};\n\n/**\n * Return help for options.\n *\n * @return {String}\n * @api private\n */\n\nCommand.prototype.optionHelp = function() {\n var width = this.padWidth();\n\n // Append the help information\n return this.options.map(function(option) {\n return pad(option.flags, width) + ' ' + option.description +\n ((option.bool && option.defaultValue !== undefined) ? ' (default: ' + option.defaultValue + ')' : '');\n }).concat([pad('-h, --help', width) + ' ' + 'output usage information'])\n .join('\\n');\n};\n\n/**\n * Return command help documentation.\n *\n * @return {String}\n * @api private\n */\n\nCommand.prototype.commandHelp = function() {\n if (!this.commands.length) return '';\n\n var commands = this.prepareCommands();\n var width = this.padWidth();\n\n return [\n ' Commands:',\n '',\n commands.map(function(cmd) {\n var desc = cmd[1] ? ' ' + cmd[1] : '';\n return (desc ? pad(cmd[0], width) : cmd[0]) + desc;\n }).join('\\n').replace(/^/gm, ' '),\n ''\n ].join('\\n');\n};\n\n/**\n * Return program help documentation.\n *\n * @return {String}\n * @api private\n */\n\nCommand.prototype.helpInformation = function() {\n var desc = [];\n if (this._description) {\n desc = [\n ' ' + this._description,\n ''\n ];\n\n var argsDescription = this._argsDescription;\n if (argsDescription && this._args.length) {\n var width = this.padWidth();\n desc.push(' Arguments:');\n desc.push('');\n this._args.forEach(function(arg) {\n desc.push(' ' + pad(arg.name, width) + ' ' + argsDescription[arg.name]);\n });\n desc.push('');\n }\n }\n\n var cmdName = this._name;\n if (this._alias) {\n cmdName = cmdName + '|' + this._alias;\n }\n var usage = [\n '',\n ' Usage: ' + cmdName + ' ' + this.usage(),\n ''\n ];\n\n var cmds = [];\n var commandHelp = this.commandHelp();\n if (commandHelp) cmds = [commandHelp];\n\n var options = [\n ' Options:',\n '',\n '' + this.optionHelp().replace(/^/gm, ' '),\n ''\n ];\n\n return usage\n .concat(desc)\n .concat(options)\n .concat(cmds)\n .join('\\n');\n};\n\n/**\n * Output help information for this command\n *\n * @api public\n */\n\nCommand.prototype.outputHelp = function(cb) {\n if (!cb) {\n cb = function(passthru) {\n return passthru;\n };\n }\n process.stdout.write(cb(this.helpInformation()));\n this.emit('--help');\n};\n\n/**\n * Output help information and exit.\n *\n * @api public\n */\n\nCommand.prototype.help = function(cb) {\n this.outputHelp(cb);\n process.exit();\n};\n\n/**\n * Camel-case the given `flag`\n *\n * @param {String} flag\n * @return {String}\n * @api private\n */\n\nfunction camelcase(flag) {\n return flag.split('-').reduce(function(str, word) {\n return str + word[0].toUpperCase() + word.slice(1);\n });\n}\n\n/**\n * Pad `str` to `width`.\n *\n * @param {String} str\n * @param {Number} width\n * @return {String}\n * @api private\n */\n\nfunction pad(str, width) {\n var len = Math.max(0, width - str.length);\n return str + Array(len + 1).join(' ');\n}\n\n/**\n * Output help information if necessary\n *\n * @param {Command} command to output help for\n * @param {Array} array of options to search for -h or --help\n * @api private\n */\n\nfunction outputHelpIfNecessary(cmd, options) {\n options = options || [];\n for (var i = 0; i < options.length; i++) {\n if (options[i] === '--help' || options[i] === '-h') {\n cmd.outputHelp();\n process.exit(0);\n }\n }\n}\n\n/**\n * Takes an argument an returns its human readable equivalent for help usage.\n *\n * @param {Object} arg\n * @return {String}\n * @api private\n */\n\nfunction humanReadableArgName(arg) {\n var nameOutput = arg.name + (arg.variadic === true ? '...' : '');\n\n return arg.required\n ? '<' + nameOutput + '>'\n : '[' + nameOutput + ']';\n}\n\n// for versions before node v0.8 when there weren't `fs.existsSync`\nfunction exists(file) {\n try {\n if (fs.statSync(file).isFile()) {\n return true;\n }\n } catch (e) {\n return false;\n }\n}\n","\"use strict\";\n\nvar domain; // The domain module is executed on demand\nvar hasSetImmediate = typeof setImmediate === \"function\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including network IO events in Node.js.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Avoids a function call\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory excaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\nrawAsap.requestFlush = requestFlush;\nfunction requestFlush() {\n // Ensure flushing is not bound to any domain.\n // It is not sufficient to exit the domain, because domains exist on a stack.\n // To execute code outside of any domain, the following dance is necessary.\n var parentDomain = process.domain;\n if (parentDomain) {\n if (!domain) {\n // Lazy execute the domain module.\n // Only employed if the user elects to use domains.\n domain = require(\"domain\");\n }\n domain.active = process.domain = null;\n }\n\n // `setImmediate` is slower that `process.nextTick`, but `process.nextTick`\n // cannot handle recursion.\n // `requestFlush` will only be called recursively from `asap.js`, to resume\n // flushing after an error is thrown into a domain.\n // Conveniently, `setImmediate` was introduced in the same version\n // `process.nextTick` started throwing recursion errors.\n if (flushing && hasSetImmediate) {\n setImmediate(flush);\n } else {\n process.nextTick(flush);\n }\n\n if (parentDomain) {\n domain.active = process.domain = parentDomain;\n }\n}\n","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n","'use strict';\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\nPromise.prototype.done = function (onFulfilled, onRejected) {\n var self = arguments.length ? this.then.apply(this, arguments) : this;\n self.then(null, function (err) {\n setTimeout(function () {\n throw err;\n }, 0);\n });\n};\n","'use strict';\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\nPromise.prototype['finally'] = function (f) {\n return this.then(function (value) {\n return Promise.resolve(f()).then(function () {\n return value;\n });\n }, function (err) {\n return Promise.resolve(f()).then(function () {\n throw err;\n });\n });\n};\n","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n","\"use strict\";\n\nvar rawAsap = require(\"./raw\");\nvar freeTasks = [];\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with\n * priority over IO events. An exception thrown in a task can be handled by\n * `process.on(\"uncaughtException\") or `domain.on(\"error\")`, but will otherwise\n * crash the process. If the error is handled, all subsequent tasks will\n * resume.\n *\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nmodule.exports = asap;\nfunction asap(task) {\n var rawTask;\n if (freeTasks.length) {\n rawTask = freeTasks.pop();\n } else {\n rawTask = new RawTask();\n }\n rawTask.task = task;\n rawTask.domain = process.domain;\n rawAsap(rawTask);\n}\n\nfunction RawTask() {\n this.task = null;\n this.domain = null;\n}\n\nRawTask.prototype.call = function () {\n if (this.domain) {\n this.domain.enter();\n }\n var threw = true;\n try {\n this.task.call();\n threw = false;\n // If the task throws an exception (presumably) Node.js restores the\n // domain stack for the next event.\n if (this.domain) {\n this.domain.exit();\n }\n } finally {\n // We use try/finally and a threw flag to avoid messing up stack traces\n // when we catch and release errors.\n if (threw) {\n // In Node.js, uncaught exceptions are considered fatal errors.\n // Re-throw them to interrupt flushing!\n // Ensure that flushing continues if an uncaught exception is\n // suppressed listening process.on(\"uncaughtException\") or\n // domain.on(\"error\").\n rawAsap.requestFlush();\n }\n // If the task threw an error, we do not want to exit the domain here.\n // Exiting the domain would prevent the domain from catching the error.\n this.task = null;\n this.domain = null;\n freeTasks.push(this);\n }\n};\n\n","'use strict';\n\n// This file contains then/promise specific extensions that are only useful\n// for node.js interop\n\nvar Promise = require('./core.js');\nvar asap = require('asap');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nPromise.denodeify = function (fn, argumentCount) {\n if (\n typeof argumentCount === 'number' && argumentCount !== Infinity\n ) {\n return denodeifyWithCount(fn, argumentCount);\n } else {\n return denodeifyWithoutCount(fn);\n }\n};\n\nvar callbackFn = (\n 'function (err, res) {' +\n 'if (err) { rj(err); } else { rs(res); }' +\n '}'\n);\nfunction denodeifyWithCount(fn, argumentCount) {\n var args = [];\n for (var i = 0; i < argumentCount; i++) {\n args.push('a' + i);\n }\n var body = [\n 'return function (' + args.join(',') + ') {',\n 'var self = this;',\n 'return new Promise(function (rs, rj) {',\n 'var res = fn.call(',\n ['self'].concat(args).concat([callbackFn]).join(','),\n ');',\n 'if (res &&',\n '(typeof res === \"object\" || typeof res === \"function\") &&',\n 'typeof res.then === \"function\"',\n ') {rs(res);}',\n '});',\n '};'\n ].join('');\n return Function(['Promise', 'fn'], body)(Promise, fn);\n}\nfunction denodeifyWithoutCount(fn) {\n var fnLength = Math.max(fn.length - 1, 3);\n var args = [];\n for (var i = 0; i < fnLength; i++) {\n args.push('a' + i);\n }\n var body = [\n 'return function (' + args.join(',') + ') {',\n 'var self = this;',\n 'var args;',\n 'var argLength = arguments.length;',\n 'if (arguments.length > ' + fnLength + ') {',\n 'args = new Array(arguments.length + 1);',\n 'for (var i = 0; i < arguments.length; i++) {',\n 'args[i] = arguments[i];',\n '}',\n '}',\n 'return new Promise(function (rs, rj) {',\n 'var cb = ' + callbackFn + ';',\n 'var res;',\n 'switch (argLength) {',\n args.concat(['extra']).map(function (_, index) {\n return (\n 'case ' + (index) + ':' +\n 'res = fn.call(' + ['self'].concat(args.slice(0, index)).concat('cb').join(',') + ');' +\n 'break;'\n );\n }).join(''),\n 'default:',\n 'args[argLength] = cb;',\n 'res = fn.apply(self, args);',\n '}',\n \n 'if (res &&',\n '(typeof res === \"object\" || typeof res === \"function\") &&',\n 'typeof res.then === \"function\"',\n ') {rs(res);}',\n '});',\n '};'\n ].join('');\n\n return Function(\n ['Promise', 'fn'],\n body\n )(Promise, fn);\n}\n\nPromise.nodeify = function (fn) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n var callback =\n typeof args[args.length - 1] === 'function' ? args.pop() : null;\n var ctx = this;\n try {\n return fn.apply(this, arguments).nodeify(callback, ctx);\n } catch (ex) {\n if (callback === null || typeof callback == 'undefined') {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n } else {\n asap(function () {\n callback.call(ctx, ex);\n })\n }\n }\n }\n};\n\nPromise.prototype.nodeify = function (callback, ctx) {\n if (typeof callback != 'function') return this;\n\n this.then(function (value) {\n asap(function () {\n callback.call(ctx, null, value);\n });\n }, function (err) {\n asap(function () {\n callback.call(ctx, err);\n });\n });\n};\n","'use strict';\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\nPromise.enableSynchronous = function () {\n Promise.prototype.isPending = function() {\n return this.getState() == 0;\n };\n\n Promise.prototype.isFulfilled = function() {\n return this.getState() == 1;\n };\n\n Promise.prototype.isRejected = function() {\n return this.getState() == 2;\n };\n\n Promise.prototype.getValue = function () {\n if (this._83 === 3) {\n return this._18.getValue();\n }\n\n if (!this.isFulfilled()) {\n throw new Error('Cannot get a value of an unfulfilled promise.');\n }\n\n return this._18;\n };\n\n Promise.prototype.getReason = function () {\n if (this._83 === 3) {\n return this._18.getReason();\n }\n\n if (!this.isRejected()) {\n throw new Error('Cannot get a rejection reason of a non-rejected promise.');\n }\n\n return this._18;\n };\n\n Promise.prototype.getState = function () {\n if (this._83 === 3) {\n return this._18.getState();\n }\n if (this._83 === -1 || this._83 === -2) {\n return 0;\n }\n\n return this._83;\n };\n};\n\nPromise.disableSynchronous = function() {\n Promise.prototype.isPending = undefined;\n Promise.prototype.isFulfilled = undefined;\n Promise.prototype.isRejected = undefined;\n Promise.prototype.getValue = undefined;\n Promise.prototype.getReason = undefined;\n Promise.prototype.getState = undefined;\n};\n","'use strict';\n\nmodule.exports = require('./core.js');\nrequire('./done.js');\nrequire('./finally.js');\nrequire('./es6-extensions.js');\nrequire('./node-extensions.js');\nrequire('./synchronous.js');\n","'use strict';\n\nmodule.exports = require('./lib')\n","/**\n * @license\n * Copyright 2016 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS-IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the license.\n */\n\n'use strict';\n\nconst colors = require('colors/safe');\nconst fs = require('fs');\nconst http = require('http');\nconst https = require('https');\nconst path = require('path');\nconst program = require('commander');\nconst Promise = require('promise');\nconst querystring = require('querystring');\nconst url = require('url');\nconst util = require('util');\nconst vm = require('vm');\n\nconst DEFAULT_USER_AGENT = 'amphtml-validator';\n\n/**\n * Determines if str begins with prefix.\n * @param {string} str\n * @param {string} prefix\n * @return {boolean}\n */\nfunction hasPrefix(str, prefix) {\n return str.indexOf(prefix) == 0;\n}\n\n/**\n * Convenience function to detect whether an argument is a URL. If not,\n * it may be a local file.\n * @param {string} url\n * @return {boolean}\n */\nfunction isHttpOrHttpsUrl(url) {\n return hasPrefix(url, 'http://') || hasPrefix(url, 'https://');\n}\n\n/**\n * Creates a promise which reads from a file.\n * @param {string} name\n * @return {Promise<string>}\n */\nfunction readFromFile(name) {\n return new Promise(function(resolve, reject) {\n fs.readFile(name, 'utf8', function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data.trim());\n }\n });\n });\n}\n\n/**\n * Creates a promise which reads from a stream.\n * @param {string} name\n * @param {!stream.Readable} readable\n * @return {Promise<string>}\n */\nfunction readFromReadable(name, readable) {\n return new Promise(function(resolve, reject) {\n const chunks = [];\n readable.setEncoding('utf8');\n readable.on('data', function(chunk) {\n chunks.push(chunk);\n });\n readable.on('end', function() {\n resolve(chunks.join(''));\n });\n readable.on('error', function(error) {\n reject(new Error('Could not read from ' + name + ' - ' + error.message));\n });\n });\n}\n\n/**\n * Creates a promise which reads from standard input. Even though it would\n * be easy to make a function that just returns the data, we return a promise\n * for consistency with readFromUrl and readFromFile.\n * @return {Promise<string>}\n */\nfunction readFromStdin() {\n return readFromReadable('stdin', process.stdin).then(function(data) {\n process.stdin.resume();\n return data;\n });\n}\n\n/**\n * Creates a promise which reads from a URL or more precisely, fetches\n * the contents located at the URL by using the 'http' or 'https' module.\n * Any HTTP status other than 200 is interpreted as an error.\n * @param {string} url\n * @param {string} userAgent\n * @return {Promise<string>}\n */\nfunction readFromUrl(url, userAgent) {\n return new Promise(function(resolve, reject) {\n const clientModule = hasPrefix(url, 'http://') ? http : https;\n const req = clientModule.request(url, function(response) {\n if (response.statusCode !== 200) {\n // https://nodejs.org/api/http.html says: \"[...] However, if\n // you add a 'response' event handler, then you must consume\n // the data from the response object, either by calling\n // response.read() whenever there is a 'readable' event, or by\n // adding a 'data' handler, or by calling the .resume()\n // method.\"\n response.resume();\n reject(new Error(\n 'Unable to fetch ' + url + ' - HTTP Status ' +\n response.statusCode));\n } else {\n resolve(response);\n }\n });\n req.setHeader('User-Agent', userAgent);\n req.on('error', function(error) { // E.g., DNS resolution errors.\n reject(\n new Error('Unable to fetch ' + url + ' - ' + error.message));\n });\n req.end();\n })\n .then(readFromReadable.bind(null, url));\n}\n\n/**\n * ValidationResult is the record computed by the validator for each\n * document. It contains an overall status (PASS/FAIL) and the list of\n * errors, if any. This class corresponds to the ValidationResult\n * message in validator.proto in this directory.\n * @export\n * @constructor\n */\nfunction ValidationResult() {\n /**\n * Possible values are 'UNKNOWN', 'PASS', and 'FAIL'.\n * @type {string}\n */\n this.status = 'UNKNOWN';\n /** @type {!Array<!ValidationError>} */\n this.errors = [];\n}\n\n/**\n * Each validation error describes a specific problem in a validated\n * document. This class corresponds to the ValidationError message in\n * validator.proto in this directory.\n * @export\n * @constructor\n */\nfunction ValidationError() {\n /**\n * The severity of the error - possible values are 'UNKNOWN_SEVERITY',\n * 'ERROR', and 'WARNING'.\n */\n this.severity = 'UNKNOWN_SEVERITY';\n /**\n * The line number at which the error was seen (1 is the first line).\n */\n this.line = 1;\n /**\n * The column number at which the error was seen (0 is the first column).\n */\n this.col = 0;\n /**\n * A human-readable error message for the validation error.\n * If you find yourself trying to write a parser against this string\n * to scrape out some detail, consider looking at the code and params\n * fields below.\n * @type {string}\n */\n this.message = '';\n /**\n * The spec URL is often added by the validator to provide additional\n * context for the error. In a user interface this would be shown\n * as a \"Learn more\" link.\n * @type {string}\n */\n this.specUrl = null;\n /**\n * This field is only useful when scripting against the validator,\n * it should not be displayed in a user interface as it adds nothing\n * for humans to read over the message field (see above).\n * Possible values are the codes listed in ValidationError.Code - see\n * validator.proto. Examples: 'UNKNOWN_CODE', 'MANDATORY_TAG_MISSING',\n * 'TAG_REQUIRED_BY_MISSING'. For each of these codes there is a\n * format string in validator-main.protoascii (look for error_formats),\n * which is used to assemble the message from the strings in params.\n * @type {string}\n */\n this.code = 'UNKNOWN_CODE';\n /**\n * This field is only useful when scripting against the validator,\n * it should not be displayed in a user interface as it adds nothing\n * for humans to read over the message field (see above).\n * @type {!Array<string>}\n */\n this.params = [];\n}\n\n/**\n * The validator instance is a proxy object to a precompiled\n * validator.js script - in practice the script was either downloaded\n * from 'https://cdn.ampproject.org/v0/validator.js' or read from a\n * local file.\n * @param {string} scriptContents\n * @throws {!Error}\n * @constructor\n */\nfunction Validator(scriptContents) {\n // The 'sandbox' is a Javascript object (dictionary) which holds\n // the results of evaluating the validatorJs / scriptContents, so\n // basically, it holds functions, prototypes, etc. As a\n // side-effect of evaluating, the VM will compile this code and\n // it's worth holding onto it. Hence, this validate function is\n // reached via 2 codepaths - either the sandbox came from the\n // cache, precompiledByValidatorJs - or we just varructed it\n // after downloading and evaluating the script. The API is fancier\n // here, vm.Script / vm.createContext / vm.runInContext and all\n // that, but it's quite similar to a Javascript eval.\n this.sandbox = vm.createContext();\n try {\n new vm.Script(scriptContents).runInContext(this.sandbox);\n } catch (error) {\n throw new Error('Could not instantiate validator.js - ' + error.message);\n }\n}\n\n/**\n * Validates the provided inputString; the htmlFormat can be 'AMP' or\n * 'AMP4ADS'; it defaults to 'AMP' if not specified.\n * @param {string} inputString\n * @param {string=} htmlFormat\n * @return {!ValidationResult}\n * @export\n */\nValidator.prototype.validateString = function(inputString, htmlFormat) {\n const internalResult =\n this.sandbox.amp.validator.validateString(inputString, htmlFormat);\n const result = new ValidationResult();\n result.status = internalResult.status;\n for (let ii = 0; ii < internalResult.errors.length; ii++) {\n const internalError = internalResult.errors[ii];\n const error = new ValidationError();\n error.severity = internalError.severity;\n error.line = internalError.line;\n error.col = internalError.col;\n error.message =\n this.sandbox.amp.validator.renderErrorMessage(internalError);\n error.specUrl = internalError.specUrl;\n error.code = internalError.code;\n error.params = internalError.params;\n result.errors.push(error);\n }\n return result;\n};\n\n/**\n * A global static map used by the getInstance function to avoid loading\n * AMP Validators more than once.\n * @type {!Object<string, Validator>}\n */\nconst instanceByValidatorJs = {};\n\n/**\n * Provided a URL or a filename from which to fetch the validator.js\n * file, fetches, instantiates, and caches the validator instance\n * asynchronously. If you prefer to implement your own fetching /\n * caching logic, you may want to consider newInstance() instead,\n * which is synchronous and much simpler.\n *\n * @param {string=} opt_validatorJs\n * @param {string=} opt_userAgent\n * @return {!Promise<Validator>}\n * @export\n */\nfunction getInstance(opt_validatorJs, opt_userAgent) {\n const validatorJs =\n opt_validatorJs || 'https://cdn.ampproject.org/v0/validator.js';\n const userAgent = opt_userAgent || DEFAULT_USER_AGENT;\n if (instanceByValidatorJs.hasOwnProperty(validatorJs)) {\n return Promise.resolve(instanceByValidatorJs[validatorJs]);\n }\n const validatorJsPromise = isHttpOrHttpsUrl(validatorJs) ?\n readFromUrl(validatorJs, userAgent) :\n readFromFile(validatorJs);\n return validatorJsPromise.then(function(scriptContents) {\n let instance;\n try {\n instance = new Validator(scriptContents);\n } catch (error) {\n // It may be useful to cache errors and exceptions encountered\n // here, but for now we don't do this for e.g. http errors when\n // fetching the validator, so we shouldn't do it for syntax\n // errors etc. either (which lead to the varructor throwing an error).\n throw error;\n }\n instanceByValidatorJs[validatorJs] = instance;\n return instance;\n });\n}\nexports.getInstance = getInstance;\n\n/**\n * Provided the contents of the validator.js file, e.g. as downloaded from\n * 'https://cdn.ampproject.org/v0/validator.js', returns a new validator\n * instance. The tradeoff between this function and getInstance() is that this\n * function is synchronous but requires the contents of the validator.js\n * file as a parameter, while getInstance is asynchronous, fetches files\n * from disk or the web, and caches them.\n *\n * @param {string} validatorJsContents\n * @return {!Validator}\n * @export\n */\nfunction newInstance(validatorJsContents) {\n return new Validator(validatorJsContents);\n}\nexports.newInstance = newInstance;\n\n// A note on emitting output to the console and process exit status:\n// Node.js prior to 0.11.8 did not support process.exitCode\n// (https://nodejs.org/api/process.html#process_process_exitcode), which\n// makes it difficult to emit output and errors from multiple callbacks\n// and set the appropriate exit code. We use the following workaround:\n// process.<<stream>>(<<some output>>, function() { process.exit(<<code>>); });\n// This will flush the appropriate stream (stdout or stderr) and then\n// exit with the provided code. For now, this makes the CLI work with\n// Node.js versions as old as v0.10.25.\n\n/**\n * Logs a validation result to the console using process.stdout and\n * process.stderr as is appropriate.\n * @param {string} filename\n * @param {!ValidationResult} validationResult\n * @param {boolean} color\n */\nfunction logValidationResult(filename, validationResult, color) {\n if (validationResult.status === 'PASS') {\n process.stdout.write(\n filename + ': ' + (color ? colors.green('PASS') : 'PASS') + '\\n');\n }\n for (let ii = 0; ii < validationResult.errors.length; ii++) {\n const error = validationResult.errors[ii];\n let msg = filename + ':' + error.line + ':' + error.col + ' ';\n if (color) {\n msg += (error.severity === 'ERROR' ? colors.red : colors.magenta)(\n error.message);\n } else {\n msg += error.message;\n }\n if (error.specUrl) {\n msg += ' (see ' + error.specUrl + ')';\n }\n // TODO(powdercloud): Should we distinguish error.severity === 'WARNING' ?\n process.stderr.write(msg + '\\n');\n }\n}\n\n/**\n * Main entry point into the command line tool.\n */\nfunction main() {\n program\n .usage(\n '[options] <fileOrUrlOrMinus...>\\n\\n' +\n ' Validates the files or urls provided as arguments. If \"-\" is\\n' +\n ' specified, reads from stdin instead.')\n .option(\n '--validator_js <fileOrUrl>',\n 'The Validator Javascript.\\n' +\n ' Latest published version by default, or\\n' +\n ' dist/validator_minified.js (built with build.py)\\n' +\n ' for development.',\n 'https://cdn.ampproject.org/v0/validator.js')\n .option(\n '--user-agent <userAgent>', 'User agent string to use in requests.',\n DEFAULT_USER_AGENT)\n .option(\n '--html_format <AMP|AMP4ADS|AMP4EMAIL>',\n 'The input format to be validated.\\n' +\n ' AMP by default.',\n 'AMP')\n .option(\n '--format <color|text|json>',\n 'How to format the output.\\n' +\n ' \"color\" displays errors/warnings/success in\\n' +\n ' red/orange/green.\\n' +\n ' \"text\" avoids color (e.g., useful in terminals not\\n' +\n ' supporting color).\\n' +\n ' \"json\" emits json corresponding to the ValidationResult\\n' +\n ' message in validator.proto.',\n 'color')\n .parse(process.argv);\n if (program.args.length === 0) {\n program.outputHelp();\n process.exit(1);\n }\n if (program.html_format !== 'AMP' && program.html_format !== 'AMP4ADS' &&\n program.html_format !== 'AMP4EMAIL') {\n process.stderr.write(\n '--html_format must be set to \"AMP\", \"AMP4ADS\", or \"AMP4EMAIL\".\\n',\n function() {\n process.exit(1);\n });\n }\n if (program.format !== 'color' && program.format !== 'text' &&\n program.format !== 'json') {\n process.stderr.write(\n '--format must be set to \"color\", \"text\", or \"json\".\\n', function() {\n process.exit(1);\n });\n }\n const inputs = [];\n for (let ii = 0; ii < program.args.length; ii++) {\n const item = program.args[ii];\n if (item === '-') {\n inputs.push(readFromStdin());\n } else if (isHttpOrHttpsUrl(item)) {\n inputs.push(readFromUrl(item, program.userAgent));\n } else {\n inputs.push(readFromFile(item));\n }\n }\n getInstance(program.validator_js, program.userAgent)\n .then(function(validator) {\n Promise.all(inputs)\n .then(function(resolvedInputs) {\n const jsonOut = {};\n let hasError = false;\n for (let ii = 0; ii < resolvedInputs.length; ii++) {\n const validationResult = validator.validateString(\n resolvedInputs[ii], program.html_format);\n if (program.format === 'json') {\n jsonOut[program.args[ii]] = validationResult;\n } else {\n logValidationResult(\n program.args[ii], validationResult,\n program.format === 'color' ? true : false);\n }\n if (validationResult.status !== 'PASS') {\n hasError = true;\n }\n }\n if (program.format === 'json') {\n process.stdout.write(\n JSON.stringify(jsonOut) + '\\n', function() {\n process.exit(hasError ? 1 : 0);\n });\n } else if (hasError) {\n process.stderr.write('', function() {\n process.exit(1);\n });\n } else {\n process.stdout.write('', function() {\n process.exit(0);\n });\n }\n })\n .catch(function(error) {\n process.stderr.write(\n (program.format == 'color' ? colors.red(error.message) :\n error.message) +\n '\\n',\n function() {\n process.exit(1);\n });\n });\n })\n .catch(function(error) {\n process.stderr.write(\n (program.format == 'color' ? colors.red(error.message) :\n error.message) +\n '\\n',\n function() {\n process.exit(1);\n });\n });\n}\n\nexports.main = main;\n","import http from 'http';\nimport fs from 'fs';\nimport path from 'path';\nimport { parse, URLSearchParams } from 'url';\nimport { EventEmitter } from 'events';\nimport CheapWatch from 'cheap-watch';\nimport amp_validator from 'amphtml-validator';\nimport vite from 'vite';\nimport create_manifest_data from '../../core/create_manifest_data.js';\nimport { create_app } from '../../core/create_app.js';\nimport { rimraf } from '@sveltejs/app-utils/files';\nimport { render } from '../../renderer/index.js';\nimport { get_body } from '@sveltejs/app-utils/http';\nimport { copy_assets } from '../utils.js';\nimport svelte from '@svitejs/vite-plugin-svelte';\n\n/** @typedef {{ cwd?: string, port: number, config: import('../../types').ValidatedConfig }} Options */\n\n/** @param {Options} opts */\nexport function dev(opts) {\n\treturn new Watcher(opts).init();\n}\n\nclass Watcher extends EventEmitter {\n\t/** @param {Options} opts */\n\tconstructor({ cwd = process.cwd(), port, config }) {\n\t\tsuper();\n\n\t\tthis.cwd = cwd;\n\t\tthis.dir = path.resolve(cwd, '.svelte/dev');\n\n\t\tthis.port = port;\n\t\tthis.config = config;\n\n\t\tprocess.env.NODE_ENV = 'development';\n\n\t\tprocess.on('exit', () => {\n\t\t\tthis.close();\n\t\t});\n\t}\n\n\tasync init() {\n\t\trimraf(this.dir);\n\t\tcopy_assets(this.dir);\n\t\tprocess.env.VITE_AMP = this.config.kit.amp ? 'true' : '';\n\n\t\tawait this.init_filewatcher();\n\t\tawait this.init_server();\n\n\t\tthis.update();\n\n\t\treturn this;\n\t}\n\n\tasync init_filewatcher() {\n\t\tthis.cheapwatch = new CheapWatch({\n\t\t\tdir: this.config.kit.files.routes,\n\t\t\t/** @type {({ path }: { path: string }) => boolean} */\n\t\t\tfilter: ({ path }) => path.split('/').every((part) => !part.startsWith('_'))\n\t\t});\n\n\t\tawait this.cheapwatch.init();\n\n\t\t// not sure why TS doesn't understand that CheapWatch extends EventEmitter\n\t\tthis.cheapwatch.on('+', ({ isNew }) => {\n\t\t\tif (isNew) this.update();\n\t\t});\n\n\t\tthis.cheapwatch.on('-', () => {\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\tasync init_server() {\n\t\t/**\n\t\t * @type {vite.ViteDevServer}\n\t\t */\n\t\tthis.viteDevServer = await vite.createServer({\n\t\t\troot: this.cwd,\n\t\t\tresolve: {\n\t\t\t\talias: {\n\t\t\t\t\t$app: path.resolve(`${this.dir}/runtime/app`)\n\t\t\t\t}\n\t\t\t},\n\t\t\tplugins: [\n\t\t\t\tsvelte({\n\t\t\t\t\temitCss: true,\n\t\t\t\t\tcompilerOptions: {\n\t\t\t\t\t\tdev: true,\n\t\t\t\t\t\thydratable: true\n\t\t\t\t\t},\n\t\t\t\t\thot: true,\n\t\t\t\t\textensions: this.config.extensions\n\t\t\t\t})\n\t\t\t],\n\t\t\tpublicDir: this.config.kit.files.assets,\n\t\t\tserver: {\n\t\t\t\tmiddlewareMode: true\n\t\t\t}\n\t\t});\n\n\t\tconst validator = this.config.kit.amp && (await amp_validator.getInstance());\n\n\t\tthis.server = http.createServer((req, res) => {\n\t\t\tthis.viteDevServer.middlewares(req, res, async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = parse(req.url);\n\n\t\t\t\t\tif (req.url === '/favicon.ico') return;\n\n\t\t\t\t\t// handle dynamic requests - i.e. pages and endpoints\n\t\t\t\t\tconst template = fs.readFileSync(this.config.kit.files.template, 'utf-8');\n\n\t\t\t\t\tconst setup = await this.viteDevServer\n\t\t\t\t\t\t.ssrLoadModule(`/${this.config.kit.files.setup}`)\n\t\t\t\t\t\t.catch(() => ({}));\n\n\t\t\t\t\tlet root;\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\troot = (await this.viteDevServer.ssrLoadModule(`/${this.dir}/generated/root.svelte`))\n\t\t\t\t\t\t\t.default;\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tres.statusCode = 500;\n\t\t\t\t\t\tres.end(e.stack);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst body = await get_body(req);\n\n\t\t\t\t\tconst rendered = await render(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\theaders: req.headers,\n\t\t\t\t\t\t\tmethod: req.method,\n\t\t\t\t\t\t\tpath: parsed.pathname,\n\t\t\t\t\t\t\tquery: new URLSearchParams(parsed.query),\n\t\t\t\t\t\t\tbody\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpaths: this.config.kit.paths,\n\t\t\t\t\t\t\ttemplate: ({ head, body }) => {\n\t\t\t\t\t\t\t\tlet rendered = template\n\t\t\t\t\t\t\t\t\t.replace('%svelte.head%', () => head)\n\t\t\t\t\t\t\t\t\t.replace('%svelte.body%', () => body);\n\n\t\t\t\t\t\t\t\tif (this.config.kit.amp) {\n\t\t\t\t\t\t\t\t\tconst result = validator.validateString(rendered);\n\n\t\t\t\t\t\t\t\t\tif (result.status !== 'PASS') {\n\t\t\t\t\t\t\t\t\t\tconst lines = rendered.split('\\n');\n\n\t\t\t\t\t\t\t\t\t\t/** @param {string} str */\n\t\t\t\t\t\t\t\t\t\tconst escape = (str) =>\n\t\t\t\t\t\t\t\t\t\t\tstr.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n\n\t\t\t\t\t\t\t\t\t\trendered = `<!doctype html>\n\t\t\t\t\t\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t\t\t\t\t\t<meta charset=\"utf-8\" />\n\t\t\t\t\t\t\t\t\t\t\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t\t\t\t\t\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor: #333;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: #f4f4f4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpadding: 1em;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toverflow-x: auto;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t\t\t\t\t</head>\n\t\t\t\t\t\t\t\t\t\t\t<h1>AMP validation failed</h1>\n\n\t\t\t\t\t\t\t\t\t\t\t${result.errors\n\t\t\t\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t\t\t\t(error) => `\n\t\t\t\t\t\t\t\t\t\t\t\t<h2>${error.severity}</h2>\n\t\t\t\t\t\t\t\t\t\t\t\t<p>Line ${error.line}, column ${error.col}: ${error.message} (<a href=\"${error.specUrl}\">${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terror.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t}</a>)</p>\n\t\t\t\t\t\t\t\t\t\t\t\t<pre>${escape(lines[error.line - 1])}</pre>\n\t\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t.join('\\n\\n')}\n\t\t\t\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn rendered;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmanifest: this.manifest,\n\t\t\t\t\t\t\ttarget: this.config.kit.target,\n\t\t\t\t\t\t\tentry: '/.svelte/dev/runtime/internal/start.js',\n\t\t\t\t\t\t\tdev: true,\n\t\t\t\t\t\t\tamp: this.config.kit.amp,\n\t\t\t\t\t\t\troot,\n\t\t\t\t\t\t\tsetup,\n\t\t\t\t\t\t\tonly_prerender: false,\n\t\t\t\t\t\t\tstart_global: this.config.kit.startGlobal,\n\t\t\t\t\t\t\thost: this.config.kit.host,\n\t\t\t\t\t\t\thost_header: this.config.kit.hostHeader,\n\t\t\t\t\t\t\tget_stack: (error) => {\n\t\t\t\t\t\t\t\tthis.viteDevServer.ssrFixStacktrace(error);\n\t\t\t\t\t\t\t\treturn error.stack;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tget_static_file: (file) =>\n\t\t\t\t\t\t\t\tfs.readFileSync(path.join(this.config.kit.files.assets, file)),\n\t\t\t\t\t\t\tget_amp_css: (url) => '' // TODO: implement this\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tif (rendered) {\n\t\t\t\t\t\tres.writeHead(rendered.status, rendered.headers);\n\t\t\t\t\t\tres.end(rendered.body);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tres.statusCode = 404;\n\t\t\t\t\t\tres.end('Not found');\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthis.viteDevServer.ssrFixStacktrace(e);\n\t\t\t\t\tres.end(e.stack);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis.server.listen(this.port);\n\t}\n\n\tupdate() {\n\t\tconst manifest_data = create_manifest_data({\n\t\t\tconfig: this.config,\n\t\t\toutput: this.dir,\n\t\t\tcwd: this.cwd\n\t\t});\n\n\t\tcreate_app({\n\t\t\tmanifest_data,\n\t\t\toutput: this.dir,\n\t\t\tcwd: this.cwd\n\t\t});\n\n\t\tconst common_css_deps = new Set();\n\n\t\t/**\n\t\t * @param {string} file\n\t\t */\n\t\tconst load = async (file) => {\n\t\t\tconst url = path.resolve(this.cwd, file);\n\n\t\t\tconst mod = await this.viteDevServer.ssrLoadModule(url);\n\t\t\tconst node = await this.viteDevServer.moduleGraph.getModuleByUrl(url);\n\n\t\t\tconst deps = new Set();\n\t\t\tfind_deps(node, deps);\n\n\t\t\tconst css = new Set();\n\t\t\tfor (const dep of deps) {\n\t\t\t\t// TODO what about .scss files, etc?\n\t\t\t\tif (dep.file.endsWith('.css')) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst mod = await this.viteDevServer.ssrLoadModule(dep.url);\n\t\t\t\t\t\tcss.add(mod.default);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// this can happen with dynamically imported modules, I think\n\t\t\t\t\t\t// because the Vite module graph doesn't distinguish between\n\t\t\t\t\t\t// static and dynamic imports? TODO investigate, submit fix\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn { mod, css };\n\t\t};\n\n\t\t/**\n\t\t * @param {import('vite').ModuleNode} node\n\t\t * @param {Set<import('vite').ModuleNode>} deps\n\t\t */\n\t\tconst find_deps = (node, deps) => {\n\t\t\tfor (const dep of node.importedModules) {\n\t\t\t\tif (!deps.has(dep)) {\n\t\t\t\t\tdeps.add(dep);\n\t\t\t\t\tfind_deps(dep, deps);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tthis.manifest = {\n\t\t\tassets: manifest_data.assets,\n\t\t\tlayout: async () => {\n\t\t\t\tconst { mod, css } = await load(manifest_data.layout);\n\t\t\t\tcss.forEach((mod) => {\n\t\t\t\t\tcommon_css_deps.add(mod);\n\t\t\t\t});\n\t\t\t\treturn mod;\n\t\t\t},\n\t\t\terror: async () => {\n\t\t\t\tconst { mod, css } = await load(manifest_data.error);\n\t\t\t\tcss.forEach((mod) => {\n\t\t\t\t\tcommon_css_deps.add(mod);\n\t\t\t\t});\n\t\t\t\treturn mod;\n\t\t\t},\n\t\t\tpages: manifest_data.pages.map((data) => {\n\t\t\t\t// This is a bit of a hack, but it means we can inject the correct <style>\n\t\t\t\t// contents without needing to do any analysis before loading\n\t\t\t\tconst css_deps = new Set();\n\n\t\t\t\treturn {\n\t\t\t\t\tpattern: data.pattern,\n\t\t\t\t\tparams: get_params(data.params),\n\t\t\t\t\tparts: data.parts.map((file) => async () => {\n\t\t\t\t\t\tconst { mod, css } = await load(file);\n\n\t\t\t\t\t\tcss.forEach((mod) => {\n\t\t\t\t\t\t\tcss_deps.add(mod);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn mod;\n\t\t\t\t\t}),\n\t\t\t\t\tget style() {\n\t\t\t\t\t\treturn [...common_css_deps, ...css_deps].join('\\n');\n\t\t\t\t\t},\n\t\t\t\t\tcss: [],\n\t\t\t\t\tjs: []\n\t\t\t\t};\n\t\t\t}),\n\t\t\tendpoints: manifest_data.endpoints.map((data) => ({\n\t\t\t\tpattern: data.pattern,\n\t\t\t\tparams: get_params(data.params),\n\t\t\t\tload: async () => {\n\t\t\t\t\tconst url = path.resolve(this.cwd, data.file);\n\t\t\t\t\treturn await this.viteDevServer.ssrLoadModule(url);\n\t\t\t\t}\n\t\t\t}))\n\t\t};\n\t}\n\n\tclose() {\n\t\tif (this.closed) return;\n\t\tthis.closed = true;\n\n\t\tthis.viteDevServer.close();\n\t\tthis.server.close();\n\t\tthis.cheapwatch.close();\n\t}\n}\n\n/** @param {string[]} array */\nfunction get_params(array) {\n\t// given an array of params like `['x', 'y', 'z']` for\n\t// src/routes/[x]/[y]/[z]/svelte, create a function\n\t// that turns a RegExpExecArray into ({ x, y, z })\n\n\t/** @param {RegExpExecArray} match */\n\tconst fn = (match) => {\n\t\t/** @type {Record<string, string | string[]>} */\n\t\tconst params = {};\n\t\tarray.forEach((key, i) => {\n\t\t\tif (key.startsWith('...')) {\n\t\t\t\tparams[key.slice(3)] = decodeURIComponent(match[i + 1]).split('/');\n\t\t\t} else {\n\t\t\t\tparams[key] = decodeURIComponent(match[i + 1]);\n\t\t\t}\n\t\t});\n\t\treturn params;\n\t};\n\n\treturn fn;\n}\n"],"names":["require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","colors","Promise","asap","rawAsap","program","amp_validator"],"mappings":"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"}