@ai-qa/workflow 2.0.3 → 2.0.4

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 (1034) hide show
  1. package/.cursorrules +5 -0
  2. package/.github/copilot-instructions.md +3 -0
  3. package/PROJECT_GUIDE.md +102 -0
  4. package/README.md +15 -14
  5. package/agents/router.md +29 -0
  6. package/docs/application-context.md +20 -0
  7. package/package.json +22 -1
  8. package/qa-dashboard/.env +3 -0
  9. package/qa-dashboard/data/projects.json +9 -0
  10. package/qa-dashboard/node_modules/.bin/ejs +16 -0
  11. package/qa-dashboard/node_modules/.bin/ejs.cmd +17 -0
  12. package/qa-dashboard/node_modules/.bin/ejs.ps1 +28 -0
  13. package/qa-dashboard/node_modules/.bin/jake +16 -0
  14. package/qa-dashboard/node_modules/.bin/jake.cmd +17 -0
  15. package/qa-dashboard/node_modules/.bin/jake.ps1 +28 -0
  16. package/qa-dashboard/node_modules/.bin/mime +16 -0
  17. package/qa-dashboard/node_modules/.bin/mime.cmd +17 -0
  18. package/qa-dashboard/node_modules/.bin/mime.ps1 +28 -0
  19. package/qa-dashboard/node_modules/.package-lock.json +990 -0
  20. package/qa-dashboard/node_modules/@kurkle/color/LICENSE.md +9 -0
  21. package/qa-dashboard/node_modules/@kurkle/color/README.md +79 -0
  22. package/qa-dashboard/node_modules/@kurkle/color/dist/color.cjs +624 -0
  23. package/qa-dashboard/node_modules/@kurkle/color/dist/color.d.ts +235 -0
  24. package/qa-dashboard/node_modules/@kurkle/color/dist/color.esm.js +589 -0
  25. package/qa-dashboard/node_modules/@kurkle/color/dist/color.min.js +8 -0
  26. package/qa-dashboard/node_modules/@kurkle/color/dist/color.min.js.map +1 -0
  27. package/qa-dashboard/node_modules/@kurkle/color/package.json +77 -0
  28. package/qa-dashboard/node_modules/accepts/HISTORY.md +243 -0
  29. package/qa-dashboard/node_modules/accepts/LICENSE +23 -0
  30. package/qa-dashboard/node_modules/accepts/README.md +140 -0
  31. package/qa-dashboard/node_modules/accepts/index.js +238 -0
  32. package/qa-dashboard/node_modules/accepts/package.json +47 -0
  33. package/qa-dashboard/node_modules/array-flatten/LICENSE +21 -0
  34. package/qa-dashboard/node_modules/array-flatten/README.md +43 -0
  35. package/qa-dashboard/node_modules/array-flatten/array-flatten.js +64 -0
  36. package/qa-dashboard/node_modules/array-flatten/package.json +39 -0
  37. package/qa-dashboard/node_modules/async/CHANGELOG.md +351 -0
  38. package/qa-dashboard/node_modules/async/LICENSE +19 -0
  39. package/qa-dashboard/node_modules/async/README.md +59 -0
  40. package/qa-dashboard/node_modules/async/all.js +119 -0
  41. package/qa-dashboard/node_modules/async/allLimit.js +46 -0
  42. package/qa-dashboard/node_modules/async/allSeries.js +45 -0
  43. package/qa-dashboard/node_modules/async/any.js +122 -0
  44. package/qa-dashboard/node_modules/async/anyLimit.js +47 -0
  45. package/qa-dashboard/node_modules/async/anySeries.js +46 -0
  46. package/qa-dashboard/node_modules/async/apply.js +11 -0
  47. package/qa-dashboard/node_modules/async/applyEach.js +57 -0
  48. package/qa-dashboard/node_modules/async/applyEachSeries.js +37 -0
  49. package/qa-dashboard/node_modules/async/asyncify.js +118 -0
  50. package/qa-dashboard/node_modules/async/auto.js +333 -0
  51. package/qa-dashboard/node_modules/async/autoInject.js +182 -0
  52. package/qa-dashboard/node_modules/async/bower.json +17 -0
  53. package/qa-dashboard/node_modules/async/cargo.js +63 -0
  54. package/qa-dashboard/node_modules/async/cargoQueue.js +71 -0
  55. package/qa-dashboard/node_modules/async/compose.js +55 -0
  56. package/qa-dashboard/node_modules/async/concat.js +115 -0
  57. package/qa-dashboard/node_modules/async/concatLimit.js +60 -0
  58. package/qa-dashboard/node_modules/async/concatSeries.js +41 -0
  59. package/qa-dashboard/node_modules/async/constant.js +14 -0
  60. package/qa-dashboard/node_modules/async/detect.js +96 -0
  61. package/qa-dashboard/node_modules/async/detectLimit.js +48 -0
  62. package/qa-dashboard/node_modules/async/detectSeries.js +47 -0
  63. package/qa-dashboard/node_modules/async/dir.js +43 -0
  64. package/qa-dashboard/node_modules/async/dist/async.js +6061 -0
  65. package/qa-dashboard/node_modules/async/dist/async.min.js +1 -0
  66. package/qa-dashboard/node_modules/async/dist/async.mjs +5948 -0
  67. package/qa-dashboard/node_modules/async/doDuring.js +68 -0
  68. package/qa-dashboard/node_modules/async/doUntil.js +46 -0
  69. package/qa-dashboard/node_modules/async/doWhilst.js +68 -0
  70. package/qa-dashboard/node_modules/async/during.js +78 -0
  71. package/qa-dashboard/node_modules/async/each.js +129 -0
  72. package/qa-dashboard/node_modules/async/eachLimit.js +50 -0
  73. package/qa-dashboard/node_modules/async/eachOf.js +185 -0
  74. package/qa-dashboard/node_modules/async/eachOfLimit.js +47 -0
  75. package/qa-dashboard/node_modules/async/eachOfSeries.js +39 -0
  76. package/qa-dashboard/node_modules/async/eachSeries.js +44 -0
  77. package/qa-dashboard/node_modules/async/ensureAsync.js +67 -0
  78. package/qa-dashboard/node_modules/async/every.js +119 -0
  79. package/qa-dashboard/node_modules/async/everyLimit.js +46 -0
  80. package/qa-dashboard/node_modules/async/everySeries.js +45 -0
  81. package/qa-dashboard/node_modules/async/filter.js +93 -0
  82. package/qa-dashboard/node_modules/async/filterLimit.js +45 -0
  83. package/qa-dashboard/node_modules/async/filterSeries.js +43 -0
  84. package/qa-dashboard/node_modules/async/find.js +96 -0
  85. package/qa-dashboard/node_modules/async/findLimit.js +48 -0
  86. package/qa-dashboard/node_modules/async/findSeries.js +47 -0
  87. package/qa-dashboard/node_modules/async/flatMap.js +115 -0
  88. package/qa-dashboard/node_modules/async/flatMapLimit.js +60 -0
  89. package/qa-dashboard/node_modules/async/flatMapSeries.js +41 -0
  90. package/qa-dashboard/node_modules/async/foldl.js +153 -0
  91. package/qa-dashboard/node_modules/async/foldr.js +41 -0
  92. package/qa-dashboard/node_modules/async/forEach.js +129 -0
  93. package/qa-dashboard/node_modules/async/forEachLimit.js +50 -0
  94. package/qa-dashboard/node_modules/async/forEachOf.js +185 -0
  95. package/qa-dashboard/node_modules/async/forEachOfLimit.js +47 -0
  96. package/qa-dashboard/node_modules/async/forEachOfSeries.js +39 -0
  97. package/qa-dashboard/node_modules/async/forEachSeries.js +44 -0
  98. package/qa-dashboard/node_modules/async/forever.js +68 -0
  99. package/qa-dashboard/node_modules/async/groupBy.js +108 -0
  100. package/qa-dashboard/node_modules/async/groupByLimit.js +71 -0
  101. package/qa-dashboard/node_modules/async/groupBySeries.js +36 -0
  102. package/qa-dashboard/node_modules/async/index.js +588 -0
  103. package/qa-dashboard/node_modules/async/inject.js +153 -0
  104. package/qa-dashboard/node_modules/async/internal/DoublyLinkedList.js +92 -0
  105. package/qa-dashboard/node_modules/async/internal/Heap.js +120 -0
  106. package/qa-dashboard/node_modules/async/internal/applyEach.js +29 -0
  107. package/qa-dashboard/node_modules/async/internal/asyncEachOfLimit.js +75 -0
  108. package/qa-dashboard/node_modules/async/internal/awaitify.js +28 -0
  109. package/qa-dashboard/node_modules/async/internal/breakLoop.js +10 -0
  110. package/qa-dashboard/node_modules/async/internal/consoleFunc.js +31 -0
  111. package/qa-dashboard/node_modules/async/internal/createTester.js +40 -0
  112. package/qa-dashboard/node_modules/async/internal/eachOfLimit.js +90 -0
  113. package/qa-dashboard/node_modules/async/internal/filter.js +55 -0
  114. package/qa-dashboard/node_modules/async/internal/getIterator.js +11 -0
  115. package/qa-dashboard/node_modules/async/internal/initialParams.js +14 -0
  116. package/qa-dashboard/node_modules/async/internal/isArrayLike.js +10 -0
  117. package/qa-dashboard/node_modules/async/internal/iterator.js +57 -0
  118. package/qa-dashboard/node_modules/async/internal/map.js +30 -0
  119. package/qa-dashboard/node_modules/async/internal/once.js +17 -0
  120. package/qa-dashboard/node_modules/async/internal/onlyOnce.js +15 -0
  121. package/qa-dashboard/node_modules/async/internal/parallel.js +34 -0
  122. package/qa-dashboard/node_modules/async/internal/promiseCallback.js +23 -0
  123. package/qa-dashboard/node_modules/async/internal/queue.js +294 -0
  124. package/qa-dashboard/node_modules/async/internal/range.js +14 -0
  125. package/qa-dashboard/node_modules/async/internal/reject.js +26 -0
  126. package/qa-dashboard/node_modules/async/internal/setImmediate.js +34 -0
  127. package/qa-dashboard/node_modules/async/internal/withoutIndex.js +10 -0
  128. package/qa-dashboard/node_modules/async/internal/wrapAsync.js +34 -0
  129. package/qa-dashboard/node_modules/async/log.js +41 -0
  130. package/qa-dashboard/node_modules/async/map.js +142 -0
  131. package/qa-dashboard/node_modules/async/mapLimit.js +45 -0
  132. package/qa-dashboard/node_modules/async/mapSeries.js +44 -0
  133. package/qa-dashboard/node_modules/async/mapValues.js +152 -0
  134. package/qa-dashboard/node_modules/async/mapValuesLimit.js +61 -0
  135. package/qa-dashboard/node_modules/async/mapValuesSeries.js +37 -0
  136. package/qa-dashboard/node_modules/async/memoize.js +91 -0
  137. package/qa-dashboard/node_modules/async/nextTick.js +52 -0
  138. package/qa-dashboard/node_modules/async/package.json +75 -0
  139. package/qa-dashboard/node_modules/async/parallel.js +180 -0
  140. package/qa-dashboard/node_modules/async/parallelLimit.js +41 -0
  141. package/qa-dashboard/node_modules/async/priorityQueue.js +60 -0
  142. package/qa-dashboard/node_modules/async/queue.js +24 -0
  143. package/qa-dashboard/node_modules/async/race.js +67 -0
  144. package/qa-dashboard/node_modules/async/reduce.js +153 -0
  145. package/qa-dashboard/node_modules/async/reduceRight.js +41 -0
  146. package/qa-dashboard/node_modules/async/reflect.js +78 -0
  147. package/qa-dashboard/node_modules/async/reflectAll.js +93 -0
  148. package/qa-dashboard/node_modules/async/reject.js +87 -0
  149. package/qa-dashboard/node_modules/async/rejectLimit.js +45 -0
  150. package/qa-dashboard/node_modules/async/rejectSeries.js +43 -0
  151. package/qa-dashboard/node_modules/async/retry.js +159 -0
  152. package/qa-dashboard/node_modules/async/retryable.js +77 -0
  153. package/qa-dashboard/node_modules/async/select.js +93 -0
  154. package/qa-dashboard/node_modules/async/selectLimit.js +45 -0
  155. package/qa-dashboard/node_modules/async/selectSeries.js +43 -0
  156. package/qa-dashboard/node_modules/async/seq.js +79 -0
  157. package/qa-dashboard/node_modules/async/series.js +186 -0
  158. package/qa-dashboard/node_modules/async/setImmediate.js +45 -0
  159. package/qa-dashboard/node_modules/async/some.js +122 -0
  160. package/qa-dashboard/node_modules/async/someLimit.js +47 -0
  161. package/qa-dashboard/node_modules/async/someSeries.js +46 -0
  162. package/qa-dashboard/node_modules/async/sortBy.js +190 -0
  163. package/qa-dashboard/node_modules/async/timeout.js +89 -0
  164. package/qa-dashboard/node_modules/async/times.js +50 -0
  165. package/qa-dashboard/node_modules/async/timesLimit.js +43 -0
  166. package/qa-dashboard/node_modules/async/timesSeries.js +32 -0
  167. package/qa-dashboard/node_modules/async/transform.js +173 -0
  168. package/qa-dashboard/node_modules/async/tryEach.js +78 -0
  169. package/qa-dashboard/node_modules/async/unmemoize.js +25 -0
  170. package/qa-dashboard/node_modules/async/until.js +61 -0
  171. package/qa-dashboard/node_modules/async/waterfall.js +105 -0
  172. package/qa-dashboard/node_modules/async/whilst.js +78 -0
  173. package/qa-dashboard/node_modules/async/wrapSync.js +118 -0
  174. package/qa-dashboard/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  175. package/qa-dashboard/node_modules/balanced-match/LICENSE.md +21 -0
  176. package/qa-dashboard/node_modules/balanced-match/README.md +97 -0
  177. package/qa-dashboard/node_modules/balanced-match/index.js +62 -0
  178. package/qa-dashboard/node_modules/balanced-match/package.json +48 -0
  179. package/qa-dashboard/node_modules/basic-auth/HISTORY.md +52 -0
  180. package/qa-dashboard/node_modules/basic-auth/LICENSE +24 -0
  181. package/qa-dashboard/node_modules/basic-auth/README.md +113 -0
  182. package/qa-dashboard/node_modules/basic-auth/index.js +133 -0
  183. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/LICENSE +21 -0
  184. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/README.md +584 -0
  185. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/index.d.ts +187 -0
  186. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/index.js +62 -0
  187. package/qa-dashboard/node_modules/basic-auth/node_modules/safe-buffer/package.json +37 -0
  188. package/qa-dashboard/node_modules/basic-auth/package.json +41 -0
  189. package/qa-dashboard/node_modules/body-parser/HISTORY.md +686 -0
  190. package/qa-dashboard/node_modules/body-parser/LICENSE +23 -0
  191. package/qa-dashboard/node_modules/body-parser/README.md +476 -0
  192. package/qa-dashboard/node_modules/body-parser/index.js +156 -0
  193. package/qa-dashboard/node_modules/body-parser/lib/read.js +205 -0
  194. package/qa-dashboard/node_modules/body-parser/lib/types/json.js +243 -0
  195. package/qa-dashboard/node_modules/body-parser/lib/types/raw.js +101 -0
  196. package/qa-dashboard/node_modules/body-parser/lib/types/text.js +121 -0
  197. package/qa-dashboard/node_modules/body-parser/lib/types/urlencoded.js +299 -0
  198. package/qa-dashboard/node_modules/body-parser/package.json +55 -0
  199. package/qa-dashboard/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
  200. package/qa-dashboard/node_modules/brace-expansion/LICENSE +21 -0
  201. package/qa-dashboard/node_modules/brace-expansion/README.md +135 -0
  202. package/qa-dashboard/node_modules/brace-expansion/index.js +205 -0
  203. package/qa-dashboard/node_modules/brace-expansion/package.json +49 -0
  204. package/qa-dashboard/node_modules/bytes/History.md +97 -0
  205. package/qa-dashboard/node_modules/bytes/LICENSE +23 -0
  206. package/qa-dashboard/node_modules/bytes/Readme.md +152 -0
  207. package/qa-dashboard/node_modules/bytes/index.js +170 -0
  208. package/qa-dashboard/node_modules/bytes/package.json +42 -0
  209. package/qa-dashboard/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  210. package/qa-dashboard/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  211. package/qa-dashboard/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  212. package/qa-dashboard/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  213. package/qa-dashboard/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  214. package/qa-dashboard/node_modules/call-bind-apply-helpers/README.md +62 -0
  215. package/qa-dashboard/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  216. package/qa-dashboard/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  217. package/qa-dashboard/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  218. package/qa-dashboard/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  219. package/qa-dashboard/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  220. package/qa-dashboard/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  221. package/qa-dashboard/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  222. package/qa-dashboard/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  223. package/qa-dashboard/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  224. package/qa-dashboard/node_modules/call-bind-apply-helpers/index.js +15 -0
  225. package/qa-dashboard/node_modules/call-bind-apply-helpers/package.json +85 -0
  226. package/qa-dashboard/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  227. package/qa-dashboard/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  228. package/qa-dashboard/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  229. package/qa-dashboard/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  230. package/qa-dashboard/node_modules/call-bound/.eslintrc +13 -0
  231. package/qa-dashboard/node_modules/call-bound/.github/FUNDING.yml +12 -0
  232. package/qa-dashboard/node_modules/call-bound/.nycrc +9 -0
  233. package/qa-dashboard/node_modules/call-bound/CHANGELOG.md +42 -0
  234. package/qa-dashboard/node_modules/call-bound/LICENSE +21 -0
  235. package/qa-dashboard/node_modules/call-bound/README.md +53 -0
  236. package/qa-dashboard/node_modules/call-bound/index.d.ts +94 -0
  237. package/qa-dashboard/node_modules/call-bound/index.js +19 -0
  238. package/qa-dashboard/node_modules/call-bound/package.json +99 -0
  239. package/qa-dashboard/node_modules/call-bound/test/index.js +61 -0
  240. package/qa-dashboard/node_modules/call-bound/tsconfig.json +10 -0
  241. package/qa-dashboard/node_modules/chart.js/LICENSE.md +9 -0
  242. package/qa-dashboard/node_modules/chart.js/README.md +38 -0
  243. package/qa-dashboard/node_modules/chart.js/auto/auto.cjs +6 -0
  244. package/qa-dashboard/node_modules/chart.js/auto/auto.d.ts +4 -0
  245. package/qa-dashboard/node_modules/chart.js/auto/auto.js +6 -0
  246. package/qa-dashboard/node_modules/chart.js/auto/package.json +14 -0
  247. package/qa-dashboard/node_modules/chart.js/dist/chart.cjs +11647 -0
  248. package/qa-dashboard/node_modules/chart.js/dist/chart.cjs.map +1 -0
  249. package/qa-dashboard/node_modules/chart.js/dist/chart.js +11599 -0
  250. package/qa-dashboard/node_modules/chart.js/dist/chart.js.map +1 -0
  251. package/qa-dashboard/node_modules/chart.js/dist/chart.umd.js +14 -0
  252. package/qa-dashboard/node_modules/chart.js/dist/chart.umd.js.map +1 -0
  253. package/qa-dashboard/node_modules/chart.js/dist/chart.umd.min.js +14 -0
  254. package/qa-dashboard/node_modules/chart.js/dist/chart.umd.min.js.map +1 -0
  255. package/qa-dashboard/node_modules/chart.js/dist/chunks/helpers.dataset.cjs +2915 -0
  256. package/qa-dashboard/node_modules/chart.js/dist/chunks/helpers.dataset.cjs.map +1 -0
  257. package/qa-dashboard/node_modules/chart.js/dist/chunks/helpers.dataset.js +2788 -0
  258. package/qa-dashboard/node_modules/chart.js/dist/chunks/helpers.dataset.js.map +1 -0
  259. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.bar.d.ts +65 -0
  260. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.bubble.d.ts +35 -0
  261. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.doughnut.d.ts +64 -0
  262. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.line.d.ts +13 -0
  263. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.pie.d.ts +3 -0
  264. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.polarArea.d.ts +35 -0
  265. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.radar.d.ts +19 -0
  266. package/qa-dashboard/node_modules/chart.js/dist/controllers/controller.scatter.d.ts +20 -0
  267. package/qa-dashboard/node_modules/chart.js/dist/controllers/index.d.ts +8 -0
  268. package/qa-dashboard/node_modules/chart.js/dist/core/core.adapters.d.ts +67 -0
  269. package/qa-dashboard/node_modules/chart.js/dist/core/core.animation.d.ts +21 -0
  270. package/qa-dashboard/node_modules/chart.js/dist/core/core.animations.d.ts +22 -0
  271. package/qa-dashboard/node_modules/chart.js/dist/core/core.animations.defaults.d.ts +1 -0
  272. package/qa-dashboard/node_modules/chart.js/dist/core/core.animator.d.ts +67 -0
  273. package/qa-dashboard/node_modules/chart.js/dist/core/core.config.d.ts +86 -0
  274. package/qa-dashboard/node_modules/chart.js/dist/core/core.controller.d.ts +257 -0
  275. package/qa-dashboard/node_modules/chart.js/dist/core/core.datasetController.d.ts +251 -0
  276. package/qa-dashboard/node_modules/chart.js/dist/core/core.defaults.d.ts +80 -0
  277. package/qa-dashboard/node_modules/chart.js/dist/core/core.element.d.ts +21 -0
  278. package/qa-dashboard/node_modules/chart.js/dist/core/core.interaction.d.ts +92 -0
  279. package/qa-dashboard/node_modules/chart.js/dist/core/core.layouts.d.ts +88 -0
  280. package/qa-dashboard/node_modules/chart.js/dist/core/core.layouts.defaults.d.ts +1 -0
  281. package/qa-dashboard/node_modules/chart.js/dist/core/core.plugins.d.ts +64 -0
  282. package/qa-dashboard/node_modules/chart.js/dist/core/core.registry.d.ts +90 -0
  283. package/qa-dashboard/node_modules/chart.js/dist/core/core.scale.autoskip.d.ts +19 -0
  284. package/qa-dashboard/node_modules/chart.js/dist/core/core.scale.d.ts +343 -0
  285. package/qa-dashboard/node_modules/chart.js/dist/core/core.scale.defaults.d.ts +1 -0
  286. package/qa-dashboard/node_modules/chart.js/dist/core/core.ticks.d.ts +31 -0
  287. package/qa-dashboard/node_modules/chart.js/dist/core/core.typedRegistry.d.ts +33 -0
  288. package/qa-dashboard/node_modules/chart.js/dist/core/index.d.ts +15 -0
  289. package/qa-dashboard/node_modules/chart.js/dist/elements/element.arc.d.ts +51 -0
  290. package/qa-dashboard/node_modules/chart.js/dist/elements/element.bar.d.ts +32 -0
  291. package/qa-dashboard/node_modules/chart.js/dist/elements/element.line.d.ts +87 -0
  292. package/qa-dashboard/node_modules/chart.js/dist/elements/element.point.d.ts +39 -0
  293. package/qa-dashboard/node_modules/chart.js/dist/elements/index.d.ts +4 -0
  294. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.canvas.d.ts +75 -0
  295. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.collection.d.ts +68 -0
  296. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.color.d.ts +13 -0
  297. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.config.d.ts +31 -0
  298. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.config.types.d.ts +41 -0
  299. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.core.d.ts +147 -0
  300. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.curve.d.ts +17 -0
  301. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.dataset.d.ts +2 -0
  302. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.dom.d.ts +48 -0
  303. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.easing.d.ts +40 -0
  304. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.extras.d.ts +45 -0
  305. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.interpolation.d.ts +22 -0
  306. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.intl.d.ts +1 -0
  307. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.math.d.ts +84 -0
  308. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.options.d.ts +97 -0
  309. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.rtl.d.ts +10 -0
  310. package/qa-dashboard/node_modules/chart.js/dist/helpers/helpers.segment.d.ts +65 -0
  311. package/qa-dashboard/node_modules/chart.js/dist/helpers/index.d.ts +16 -0
  312. package/qa-dashboard/node_modules/chart.js/dist/helpers.cjs +136 -0
  313. package/qa-dashboard/node_modules/chart.js/dist/helpers.cjs.map +1 -0
  314. package/qa-dashboard/node_modules/chart.js/dist/helpers.js +9 -0
  315. package/qa-dashboard/node_modules/chart.js/dist/helpers.js.map +1 -0
  316. package/qa-dashboard/node_modules/chart.js/dist/index.d.ts +12 -0
  317. package/qa-dashboard/node_modules/chart.js/dist/index.umd.d.ts +5 -0
  318. package/qa-dashboard/node_modules/chart.js/dist/platform/index.d.ts +5 -0
  319. package/qa-dashboard/node_modules/chart.js/dist/platform/platform.base.d.ts +63 -0
  320. package/qa-dashboard/node_modules/chart.js/dist/platform/platform.basic.d.ts +10 -0
  321. package/qa-dashboard/node_modules/chart.js/dist/platform/platform.dom.d.ts +19 -0
  322. package/qa-dashboard/node_modules/chart.js/dist/plugins/index.d.ts +7 -0
  323. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.colors.d.ts +11 -0
  324. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.decimation.d.ts +10 -0
  325. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.drawing.d.ts +1 -0
  326. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.helper.d.ts +14 -0
  327. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.options.d.ts +30 -0
  328. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.segment.d.ts +36 -0
  329. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.target.d.ts +9 -0
  330. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/filler.target.stack.d.ts +14 -0
  331. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/index.d.ts +12 -0
  332. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.filler/simpleArc.d.ts +12 -0
  333. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.legend.d.ts +114 -0
  334. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.subtitle.d.ts +27 -0
  335. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.title.d.ts +61 -0
  336. package/qa-dashboard/node_modules/chart.js/dist/plugins/plugin.tooltip.d.ts +288 -0
  337. package/qa-dashboard/node_modules/chart.js/dist/scales/index.d.ts +6 -0
  338. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.category.d.ts +21 -0
  339. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.linear.d.ts +10 -0
  340. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.linearbase.d.ts +20 -0
  341. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.logarithmic.d.ts +25 -0
  342. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.radialLinear.d.ts +63 -0
  343. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.time.d.ts +130 -0
  344. package/qa-dashboard/node_modules/chart.js/dist/scales/scale.timeseries.d.ts +39 -0
  345. package/qa-dashboard/node_modules/chart.js/dist/types/animation.d.ts +34 -0
  346. package/qa-dashboard/node_modules/chart.js/dist/types/basic.d.ts +3 -0
  347. package/qa-dashboard/node_modules/chart.js/dist/types/color.d.ts +1 -0
  348. package/qa-dashboard/node_modules/chart.js/dist/types/geometric.d.ts +52 -0
  349. package/qa-dashboard/node_modules/chart.js/dist/types/index.d.ts +3885 -0
  350. package/qa-dashboard/node_modules/chart.js/dist/types/layout.d.ts +65 -0
  351. package/qa-dashboard/node_modules/chart.js/dist/types/utils.d.ts +30 -0
  352. package/qa-dashboard/node_modules/chart.js/dist/types.d.ts +10 -0
  353. package/qa-dashboard/node_modules/chart.js/helpers/helpers.cjs +1 -0
  354. package/qa-dashboard/node_modules/chart.js/helpers/helpers.d.ts +1 -0
  355. package/qa-dashboard/node_modules/chart.js/helpers/helpers.js +1 -0
  356. package/qa-dashboard/node_modules/chart.js/helpers/package.json +14 -0
  357. package/qa-dashboard/node_modules/chart.js/package.json +139 -0
  358. package/qa-dashboard/node_modules/content-disposition/HISTORY.md +60 -0
  359. package/qa-dashboard/node_modules/content-disposition/LICENSE +22 -0
  360. package/qa-dashboard/node_modules/content-disposition/README.md +142 -0
  361. package/qa-dashboard/node_modules/content-disposition/index.js +458 -0
  362. package/qa-dashboard/node_modules/content-disposition/package.json +44 -0
  363. package/qa-dashboard/node_modules/content-type/HISTORY.md +29 -0
  364. package/qa-dashboard/node_modules/content-type/LICENSE +22 -0
  365. package/qa-dashboard/node_modules/content-type/README.md +94 -0
  366. package/qa-dashboard/node_modules/content-type/index.js +225 -0
  367. package/qa-dashboard/node_modules/content-type/package.json +42 -0
  368. package/qa-dashboard/node_modules/cookie/LICENSE +24 -0
  369. package/qa-dashboard/node_modules/cookie/README.md +317 -0
  370. package/qa-dashboard/node_modules/cookie/SECURITY.md +25 -0
  371. package/qa-dashboard/node_modules/cookie/index.js +335 -0
  372. package/qa-dashboard/node_modules/cookie/package.json +44 -0
  373. package/qa-dashboard/node_modules/cookie-signature/History.md +42 -0
  374. package/qa-dashboard/node_modules/cookie-signature/Readme.md +42 -0
  375. package/qa-dashboard/node_modules/cookie-signature/index.js +51 -0
  376. package/qa-dashboard/node_modules/cookie-signature/package.json +18 -0
  377. package/qa-dashboard/node_modules/debug/.coveralls.yml +1 -0
  378. package/qa-dashboard/node_modules/debug/.eslintrc +11 -0
  379. package/qa-dashboard/node_modules/debug/.travis.yml +14 -0
  380. package/qa-dashboard/node_modules/debug/CHANGELOG.md +362 -0
  381. package/qa-dashboard/node_modules/debug/LICENSE +19 -0
  382. package/qa-dashboard/node_modules/debug/Makefile +50 -0
  383. package/qa-dashboard/node_modules/debug/README.md +312 -0
  384. package/qa-dashboard/node_modules/debug/component.json +19 -0
  385. package/qa-dashboard/node_modules/debug/karma.conf.js +70 -0
  386. package/qa-dashboard/node_modules/debug/node.js +1 -0
  387. package/qa-dashboard/node_modules/debug/package.json +49 -0
  388. package/qa-dashboard/node_modules/debug/src/browser.js +185 -0
  389. package/qa-dashboard/node_modules/debug/src/debug.js +202 -0
  390. package/qa-dashboard/node_modules/debug/src/index.js +10 -0
  391. package/qa-dashboard/node_modules/debug/src/inspector-log.js +15 -0
  392. package/qa-dashboard/node_modules/debug/src/node.js +248 -0
  393. package/qa-dashboard/node_modules/depd/History.md +103 -0
  394. package/qa-dashboard/node_modules/depd/LICENSE +22 -0
  395. package/qa-dashboard/node_modules/depd/Readme.md +280 -0
  396. package/qa-dashboard/node_modules/depd/index.js +538 -0
  397. package/qa-dashboard/node_modules/depd/lib/browser/index.js +77 -0
  398. package/qa-dashboard/node_modules/depd/package.json +45 -0
  399. package/qa-dashboard/node_modules/destroy/LICENSE +23 -0
  400. package/qa-dashboard/node_modules/destroy/README.md +63 -0
  401. package/qa-dashboard/node_modules/destroy/index.js +209 -0
  402. package/qa-dashboard/node_modules/destroy/package.json +48 -0
  403. package/qa-dashboard/node_modules/dotenv/CHANGELOG.md +520 -0
  404. package/qa-dashboard/node_modules/dotenv/LICENSE +23 -0
  405. package/qa-dashboard/node_modules/dotenv/README-es.md +411 -0
  406. package/qa-dashboard/node_modules/dotenv/README.md +645 -0
  407. package/qa-dashboard/node_modules/dotenv/SECURITY.md +1 -0
  408. package/qa-dashboard/node_modules/dotenv/config.d.ts +1 -0
  409. package/qa-dashboard/node_modules/dotenv/config.js +9 -0
  410. package/qa-dashboard/node_modules/dotenv/lib/cli-options.js +17 -0
  411. package/qa-dashboard/node_modules/dotenv/lib/env-options.js +28 -0
  412. package/qa-dashboard/node_modules/dotenv/lib/main.d.ts +162 -0
  413. package/qa-dashboard/node_modules/dotenv/lib/main.js +386 -0
  414. package/qa-dashboard/node_modules/dotenv/package.json +62 -0
  415. package/qa-dashboard/node_modules/dunder-proto/.eslintrc +5 -0
  416. package/qa-dashboard/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  417. package/qa-dashboard/node_modules/dunder-proto/.nycrc +13 -0
  418. package/qa-dashboard/node_modules/dunder-proto/CHANGELOG.md +24 -0
  419. package/qa-dashboard/node_modules/dunder-proto/LICENSE +21 -0
  420. package/qa-dashboard/node_modules/dunder-proto/README.md +54 -0
  421. package/qa-dashboard/node_modules/dunder-proto/get.d.ts +5 -0
  422. package/qa-dashboard/node_modules/dunder-proto/get.js +30 -0
  423. package/qa-dashboard/node_modules/dunder-proto/package.json +76 -0
  424. package/qa-dashboard/node_modules/dunder-proto/set.d.ts +5 -0
  425. package/qa-dashboard/node_modules/dunder-proto/set.js +35 -0
  426. package/qa-dashboard/node_modules/dunder-proto/test/get.js +34 -0
  427. package/qa-dashboard/node_modules/dunder-proto/test/index.js +4 -0
  428. package/qa-dashboard/node_modules/dunder-proto/test/set.js +50 -0
  429. package/qa-dashboard/node_modules/dunder-proto/tsconfig.json +9 -0
  430. package/qa-dashboard/node_modules/ee-first/LICENSE +22 -0
  431. package/qa-dashboard/node_modules/ee-first/README.md +80 -0
  432. package/qa-dashboard/node_modules/ee-first/index.js +95 -0
  433. package/qa-dashboard/node_modules/ee-first/package.json +29 -0
  434. package/qa-dashboard/node_modules/ejs/LICENSE +202 -0
  435. package/qa-dashboard/node_modules/ejs/README.md +358 -0
  436. package/qa-dashboard/node_modules/ejs/bin/cli.js +211 -0
  437. package/qa-dashboard/node_modules/ejs/ejs.js +1746 -0
  438. package/qa-dashboard/node_modules/ejs/ejs.min.js +1 -0
  439. package/qa-dashboard/node_modules/ejs/jakefile.js +88 -0
  440. package/qa-dashboard/node_modules/ejs/lib/ejs.js +952 -0
  441. package/qa-dashboard/node_modules/ejs/lib/utils.js +250 -0
  442. package/qa-dashboard/node_modules/ejs/package.json +42 -0
  443. package/qa-dashboard/node_modules/ejs/usage.txt +24 -0
  444. package/qa-dashboard/node_modules/encodeurl/LICENSE +22 -0
  445. package/qa-dashboard/node_modules/encodeurl/README.md +109 -0
  446. package/qa-dashboard/node_modules/encodeurl/index.js +60 -0
  447. package/qa-dashboard/node_modules/encodeurl/package.json +40 -0
  448. package/qa-dashboard/node_modules/es-define-property/.eslintrc +13 -0
  449. package/qa-dashboard/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  450. package/qa-dashboard/node_modules/es-define-property/.nycrc +9 -0
  451. package/qa-dashboard/node_modules/es-define-property/CHANGELOG.md +29 -0
  452. package/qa-dashboard/node_modules/es-define-property/LICENSE +21 -0
  453. package/qa-dashboard/node_modules/es-define-property/README.md +49 -0
  454. package/qa-dashboard/node_modules/es-define-property/index.d.ts +3 -0
  455. package/qa-dashboard/node_modules/es-define-property/index.js +14 -0
  456. package/qa-dashboard/node_modules/es-define-property/package.json +81 -0
  457. package/qa-dashboard/node_modules/es-define-property/test/index.js +56 -0
  458. package/qa-dashboard/node_modules/es-define-property/tsconfig.json +10 -0
  459. package/qa-dashboard/node_modules/es-errors/.eslintrc +5 -0
  460. package/qa-dashboard/node_modules/es-errors/.github/FUNDING.yml +12 -0
  461. package/qa-dashboard/node_modules/es-errors/CHANGELOG.md +40 -0
  462. package/qa-dashboard/node_modules/es-errors/LICENSE +21 -0
  463. package/qa-dashboard/node_modules/es-errors/README.md +55 -0
  464. package/qa-dashboard/node_modules/es-errors/eval.d.ts +3 -0
  465. package/qa-dashboard/node_modules/es-errors/eval.js +4 -0
  466. package/qa-dashboard/node_modules/es-errors/index.d.ts +3 -0
  467. package/qa-dashboard/node_modules/es-errors/index.js +4 -0
  468. package/qa-dashboard/node_modules/es-errors/package.json +80 -0
  469. package/qa-dashboard/node_modules/es-errors/range.d.ts +3 -0
  470. package/qa-dashboard/node_modules/es-errors/range.js +4 -0
  471. package/qa-dashboard/node_modules/es-errors/ref.d.ts +3 -0
  472. package/qa-dashboard/node_modules/es-errors/ref.js +4 -0
  473. package/qa-dashboard/node_modules/es-errors/syntax.d.ts +3 -0
  474. package/qa-dashboard/node_modules/es-errors/syntax.js +4 -0
  475. package/qa-dashboard/node_modules/es-errors/test/index.js +19 -0
  476. package/qa-dashboard/node_modules/es-errors/tsconfig.json +49 -0
  477. package/qa-dashboard/node_modules/es-errors/type.d.ts +3 -0
  478. package/qa-dashboard/node_modules/es-errors/type.js +4 -0
  479. package/qa-dashboard/node_modules/es-errors/uri.d.ts +3 -0
  480. package/qa-dashboard/node_modules/es-errors/uri.js +4 -0
  481. package/qa-dashboard/node_modules/es-object-atoms/.eslintrc +16 -0
  482. package/qa-dashboard/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  483. package/qa-dashboard/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  484. package/qa-dashboard/node_modules/es-object-atoms/LICENSE +21 -0
  485. package/qa-dashboard/node_modules/es-object-atoms/README.md +63 -0
  486. package/qa-dashboard/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  487. package/qa-dashboard/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  488. package/qa-dashboard/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  489. package/qa-dashboard/node_modules/es-object-atoms/ToObject.js +10 -0
  490. package/qa-dashboard/node_modules/es-object-atoms/index.d.ts +3 -0
  491. package/qa-dashboard/node_modules/es-object-atoms/index.js +4 -0
  492. package/qa-dashboard/node_modules/es-object-atoms/isObject.d.ts +3 -0
  493. package/qa-dashboard/node_modules/es-object-atoms/isObject.js +6 -0
  494. package/qa-dashboard/node_modules/es-object-atoms/package.json +80 -0
  495. package/qa-dashboard/node_modules/es-object-atoms/test/index.js +38 -0
  496. package/qa-dashboard/node_modules/es-object-atoms/tsconfig.json +6 -0
  497. package/qa-dashboard/node_modules/escape-html/LICENSE +24 -0
  498. package/qa-dashboard/node_modules/escape-html/Readme.md +43 -0
  499. package/qa-dashboard/node_modules/escape-html/index.js +78 -0
  500. package/qa-dashboard/node_modules/escape-html/package.json +24 -0
  501. package/qa-dashboard/node_modules/etag/HISTORY.md +83 -0
  502. package/qa-dashboard/node_modules/etag/LICENSE +22 -0
  503. package/qa-dashboard/node_modules/etag/README.md +159 -0
  504. package/qa-dashboard/node_modules/etag/index.js +131 -0
  505. package/qa-dashboard/node_modules/etag/package.json +47 -0
  506. package/qa-dashboard/node_modules/express/History.md +3676 -0
  507. package/qa-dashboard/node_modules/express/LICENSE +24 -0
  508. package/qa-dashboard/node_modules/express/Readme.md +260 -0
  509. package/qa-dashboard/node_modules/express/index.js +11 -0
  510. package/qa-dashboard/node_modules/express/lib/application.js +661 -0
  511. package/qa-dashboard/node_modules/express/lib/express.js +116 -0
  512. package/qa-dashboard/node_modules/express/lib/middleware/init.js +43 -0
  513. package/qa-dashboard/node_modules/express/lib/middleware/query.js +47 -0
  514. package/qa-dashboard/node_modules/express/lib/request.js +525 -0
  515. package/qa-dashboard/node_modules/express/lib/response.js +1179 -0
  516. package/qa-dashboard/node_modules/express/lib/router/index.js +673 -0
  517. package/qa-dashboard/node_modules/express/lib/router/layer.js +181 -0
  518. package/qa-dashboard/node_modules/express/lib/router/route.js +230 -0
  519. package/qa-dashboard/node_modules/express/lib/utils.js +304 -0
  520. package/qa-dashboard/node_modules/express/lib/view.js +182 -0
  521. package/qa-dashboard/node_modules/express/package.json +102 -0
  522. package/qa-dashboard/node_modules/express-ejs-layouts/.travis.yml +3 -0
  523. package/qa-dashboard/node_modules/express-ejs-layouts/LICENSE +7 -0
  524. package/qa-dashboard/node_modules/express-ejs-layouts/Readme.md +266 -0
  525. package/qa-dashboard/node_modules/express-ejs-layouts/example/index.js +27 -0
  526. package/qa-dashboard/node_modules/express-ejs-layouts/example/views/layout.ejs +33 -0
  527. package/qa-dashboard/node_modules/express-ejs-layouts/example/views/view.ejs +37 -0
  528. package/qa-dashboard/node_modules/express-ejs-layouts/lib/express-layouts.js +117 -0
  529. package/qa-dashboard/node_modules/express-ejs-layouts/package.json +24 -0
  530. package/qa-dashboard/node_modules/filelist/README.md +84 -0
  531. package/qa-dashboard/node_modules/filelist/index.d.ts +110 -0
  532. package/qa-dashboard/node_modules/filelist/index.js +495 -0
  533. package/qa-dashboard/node_modules/filelist/jakefile.js +15 -0
  534. package/qa-dashboard/node_modules/filelist/package.json +28 -0
  535. package/qa-dashboard/node_modules/finalhandler/HISTORY.md +216 -0
  536. package/qa-dashboard/node_modules/finalhandler/LICENSE +22 -0
  537. package/qa-dashboard/node_modules/finalhandler/README.md +147 -0
  538. package/qa-dashboard/node_modules/finalhandler/SECURITY.md +25 -0
  539. package/qa-dashboard/node_modules/finalhandler/index.js +341 -0
  540. package/qa-dashboard/node_modules/finalhandler/package.json +47 -0
  541. package/qa-dashboard/node_modules/forwarded/HISTORY.md +21 -0
  542. package/qa-dashboard/node_modules/forwarded/LICENSE +22 -0
  543. package/qa-dashboard/node_modules/forwarded/README.md +57 -0
  544. package/qa-dashboard/node_modules/forwarded/index.js +90 -0
  545. package/qa-dashboard/node_modules/forwarded/package.json +45 -0
  546. package/qa-dashboard/node_modules/fresh/HISTORY.md +70 -0
  547. package/qa-dashboard/node_modules/fresh/LICENSE +23 -0
  548. package/qa-dashboard/node_modules/fresh/README.md +119 -0
  549. package/qa-dashboard/node_modules/fresh/index.js +137 -0
  550. package/qa-dashboard/node_modules/fresh/package.json +46 -0
  551. package/qa-dashboard/node_modules/function-bind/.eslintrc +21 -0
  552. package/qa-dashboard/node_modules/function-bind/.github/FUNDING.yml +12 -0
  553. package/qa-dashboard/node_modules/function-bind/.github/SECURITY.md +3 -0
  554. package/qa-dashboard/node_modules/function-bind/.nycrc +13 -0
  555. package/qa-dashboard/node_modules/function-bind/CHANGELOG.md +136 -0
  556. package/qa-dashboard/node_modules/function-bind/LICENSE +20 -0
  557. package/qa-dashboard/node_modules/function-bind/README.md +46 -0
  558. package/qa-dashboard/node_modules/function-bind/implementation.js +84 -0
  559. package/qa-dashboard/node_modules/function-bind/index.js +5 -0
  560. package/qa-dashboard/node_modules/function-bind/package.json +87 -0
  561. package/qa-dashboard/node_modules/function-bind/test/.eslintrc +9 -0
  562. package/qa-dashboard/node_modules/function-bind/test/index.js +252 -0
  563. package/qa-dashboard/node_modules/get-intrinsic/.eslintrc +42 -0
  564. package/qa-dashboard/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  565. package/qa-dashboard/node_modules/get-intrinsic/.nycrc +9 -0
  566. package/qa-dashboard/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  567. package/qa-dashboard/node_modules/get-intrinsic/LICENSE +21 -0
  568. package/qa-dashboard/node_modules/get-intrinsic/README.md +71 -0
  569. package/qa-dashboard/node_modules/get-intrinsic/index.js +378 -0
  570. package/qa-dashboard/node_modules/get-intrinsic/package.json +97 -0
  571. package/qa-dashboard/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  572. package/qa-dashboard/node_modules/get-proto/.eslintrc +10 -0
  573. package/qa-dashboard/node_modules/get-proto/.github/FUNDING.yml +12 -0
  574. package/qa-dashboard/node_modules/get-proto/.nycrc +9 -0
  575. package/qa-dashboard/node_modules/get-proto/CHANGELOG.md +21 -0
  576. package/qa-dashboard/node_modules/get-proto/LICENSE +21 -0
  577. package/qa-dashboard/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  578. package/qa-dashboard/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  579. package/qa-dashboard/node_modules/get-proto/README.md +50 -0
  580. package/qa-dashboard/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  581. package/qa-dashboard/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  582. package/qa-dashboard/node_modules/get-proto/index.d.ts +5 -0
  583. package/qa-dashboard/node_modules/get-proto/index.js +27 -0
  584. package/qa-dashboard/node_modules/get-proto/package.json +81 -0
  585. package/qa-dashboard/node_modules/get-proto/test/index.js +68 -0
  586. package/qa-dashboard/node_modules/get-proto/tsconfig.json +9 -0
  587. package/qa-dashboard/node_modules/gopd/.eslintrc +16 -0
  588. package/qa-dashboard/node_modules/gopd/.github/FUNDING.yml +12 -0
  589. package/qa-dashboard/node_modules/gopd/CHANGELOG.md +45 -0
  590. package/qa-dashboard/node_modules/gopd/LICENSE +21 -0
  591. package/qa-dashboard/node_modules/gopd/README.md +40 -0
  592. package/qa-dashboard/node_modules/gopd/gOPD.d.ts +1 -0
  593. package/qa-dashboard/node_modules/gopd/gOPD.js +4 -0
  594. package/qa-dashboard/node_modules/gopd/index.d.ts +5 -0
  595. package/qa-dashboard/node_modules/gopd/index.js +15 -0
  596. package/qa-dashboard/node_modules/gopd/package.json +77 -0
  597. package/qa-dashboard/node_modules/gopd/test/index.js +36 -0
  598. package/qa-dashboard/node_modules/gopd/tsconfig.json +9 -0
  599. package/qa-dashboard/node_modules/has-symbols/.eslintrc +11 -0
  600. package/qa-dashboard/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  601. package/qa-dashboard/node_modules/has-symbols/.nycrc +9 -0
  602. package/qa-dashboard/node_modules/has-symbols/CHANGELOG.md +91 -0
  603. package/qa-dashboard/node_modules/has-symbols/LICENSE +21 -0
  604. package/qa-dashboard/node_modules/has-symbols/README.md +46 -0
  605. package/qa-dashboard/node_modules/has-symbols/index.d.ts +3 -0
  606. package/qa-dashboard/node_modules/has-symbols/index.js +14 -0
  607. package/qa-dashboard/node_modules/has-symbols/package.json +111 -0
  608. package/qa-dashboard/node_modules/has-symbols/shams.d.ts +3 -0
  609. package/qa-dashboard/node_modules/has-symbols/shams.js +45 -0
  610. package/qa-dashboard/node_modules/has-symbols/test/index.js +22 -0
  611. package/qa-dashboard/node_modules/has-symbols/test/shams/core-js.js +29 -0
  612. package/qa-dashboard/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  613. package/qa-dashboard/node_modules/has-symbols/test/tests.js +58 -0
  614. package/qa-dashboard/node_modules/has-symbols/tsconfig.json +10 -0
  615. package/qa-dashboard/node_modules/hasown/.github/FUNDING.yml +12 -0
  616. package/qa-dashboard/node_modules/hasown/.nycrc +13 -0
  617. package/qa-dashboard/node_modules/hasown/CHANGELOG.md +51 -0
  618. package/qa-dashboard/node_modules/hasown/LICENSE +21 -0
  619. package/qa-dashboard/node_modules/hasown/README.md +40 -0
  620. package/qa-dashboard/node_modules/hasown/eslint.config.mjs +6 -0
  621. package/qa-dashboard/node_modules/hasown/index.d.ts +4 -0
  622. package/qa-dashboard/node_modules/hasown/index.js +8 -0
  623. package/qa-dashboard/node_modules/hasown/package.json +92 -0
  624. package/qa-dashboard/node_modules/hasown/tsconfig.json +6 -0
  625. package/qa-dashboard/node_modules/http-errors/HISTORY.md +186 -0
  626. package/qa-dashboard/node_modules/http-errors/LICENSE +23 -0
  627. package/qa-dashboard/node_modules/http-errors/README.md +169 -0
  628. package/qa-dashboard/node_modules/http-errors/index.js +290 -0
  629. package/qa-dashboard/node_modules/http-errors/package.json +54 -0
  630. package/qa-dashboard/node_modules/iconv-lite/Changelog.md +162 -0
  631. package/qa-dashboard/node_modules/iconv-lite/LICENSE +21 -0
  632. package/qa-dashboard/node_modules/iconv-lite/README.md +156 -0
  633. package/qa-dashboard/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  634. package/qa-dashboard/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  635. package/qa-dashboard/node_modules/iconv-lite/encodings/index.js +22 -0
  636. package/qa-dashboard/node_modules/iconv-lite/encodings/internal.js +188 -0
  637. package/qa-dashboard/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  638. package/qa-dashboard/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  639. package/qa-dashboard/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
  640. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  641. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  642. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  643. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  644. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  645. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  646. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  647. package/qa-dashboard/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  648. package/qa-dashboard/node_modules/iconv-lite/encodings/utf16.js +177 -0
  649. package/qa-dashboard/node_modules/iconv-lite/encodings/utf7.js +290 -0
  650. package/qa-dashboard/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  651. package/qa-dashboard/node_modules/iconv-lite/lib/extend-node.js +217 -0
  652. package/qa-dashboard/node_modules/iconv-lite/lib/index.d.ts +24 -0
  653. package/qa-dashboard/node_modules/iconv-lite/lib/index.js +153 -0
  654. package/qa-dashboard/node_modules/iconv-lite/lib/streams.js +121 -0
  655. package/qa-dashboard/node_modules/iconv-lite/package.json +46 -0
  656. package/qa-dashboard/node_modules/inherits/LICENSE +16 -0
  657. package/qa-dashboard/node_modules/inherits/README.md +42 -0
  658. package/qa-dashboard/node_modules/inherits/inherits.js +9 -0
  659. package/qa-dashboard/node_modules/inherits/inherits_browser.js +27 -0
  660. package/qa-dashboard/node_modules/inherits/package.json +29 -0
  661. package/qa-dashboard/node_modules/ipaddr.js/LICENSE +19 -0
  662. package/qa-dashboard/node_modules/ipaddr.js/README.md +233 -0
  663. package/qa-dashboard/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  664. package/qa-dashboard/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  665. package/qa-dashboard/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  666. package/qa-dashboard/node_modules/ipaddr.js/package.json +35 -0
  667. package/qa-dashboard/node_modules/jake/Makefile +44 -0
  668. package/qa-dashboard/node_modules/jake/README.md +17 -0
  669. package/qa-dashboard/node_modules/jake/bin/bash_completion.sh +41 -0
  670. package/qa-dashboard/node_modules/jake/bin/cli.js +31 -0
  671. package/qa-dashboard/node_modules/jake/jakefile.js +112 -0
  672. package/qa-dashboard/node_modules/jake/lib/api.js +409 -0
  673. package/qa-dashboard/node_modules/jake/lib/jake.js +330 -0
  674. package/qa-dashboard/node_modules/jake/lib/loader.js +174 -0
  675. package/qa-dashboard/node_modules/jake/lib/namespace.js +115 -0
  676. package/qa-dashboard/node_modules/jake/lib/package_task.js +406 -0
  677. package/qa-dashboard/node_modules/jake/lib/parseargs.js +134 -0
  678. package/qa-dashboard/node_modules/jake/lib/program.js +282 -0
  679. package/qa-dashboard/node_modules/jake/lib/publish_task.js +290 -0
  680. package/qa-dashboard/node_modules/jake/lib/rule.js +311 -0
  681. package/qa-dashboard/node_modules/jake/lib/task/directory_task.js +30 -0
  682. package/qa-dashboard/node_modules/jake/lib/task/file_task.js +126 -0
  683. package/qa-dashboard/node_modules/jake/lib/task/index.js +9 -0
  684. package/qa-dashboard/node_modules/jake/lib/task/task.js +458 -0
  685. package/qa-dashboard/node_modules/jake/lib/test_task.js +270 -0
  686. package/qa-dashboard/node_modules/jake/lib/utils/file.js +286 -0
  687. package/qa-dashboard/node_modules/jake/lib/utils/index.js +297 -0
  688. package/qa-dashboard/node_modules/jake/lib/utils/logger.js +24 -0
  689. package/qa-dashboard/node_modules/jake/package.json +44 -0
  690. package/qa-dashboard/node_modules/jake/test/integration/concurrent.js +45 -0
  691. package/qa-dashboard/node_modules/jake/test/integration/file.js +228 -0
  692. package/qa-dashboard/node_modules/jake/test/integration/file_task.js +141 -0
  693. package/qa-dashboard/node_modules/jake/test/integration/helpers.js +80 -0
  694. package/qa-dashboard/node_modules/jake/test/integration/jakefile.js +352 -0
  695. package/qa-dashboard/node_modules/jake/test/integration/jakelib/concurrent.jake.js +113 -0
  696. package/qa-dashboard/node_modules/jake/test/integration/jakelib/publish.jake.js +49 -0
  697. package/qa-dashboard/node_modules/jake/test/integration/jakelib/required_module.jake.js +10 -0
  698. package/qa-dashboard/node_modules/jake/test/integration/jakelib/rule.jake.js +222 -0
  699. package/qa-dashboard/node_modules/jake/test/integration/list_tasks.js +15 -0
  700. package/qa-dashboard/node_modules/jake/test/integration/publish_task.js +27 -0
  701. package/qa-dashboard/node_modules/jake/test/integration/rule.js +217 -0
  702. package/qa-dashboard/node_modules/jake/test/integration/selfdep.js +42 -0
  703. package/qa-dashboard/node_modules/jake/test/integration/task_base.js +167 -0
  704. package/qa-dashboard/node_modules/jake/test/unit/jakefile.js +36 -0
  705. package/qa-dashboard/node_modules/jake/test/unit/namespace.js +77 -0
  706. package/qa-dashboard/node_modules/jake/test/unit/parseargs.js +169 -0
  707. package/qa-dashboard/node_modules/jake/usage.txt +17 -0
  708. package/qa-dashboard/node_modules/math-intrinsics/.eslintrc +16 -0
  709. package/qa-dashboard/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  710. package/qa-dashboard/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  711. package/qa-dashboard/node_modules/math-intrinsics/LICENSE +21 -0
  712. package/qa-dashboard/node_modules/math-intrinsics/README.md +50 -0
  713. package/qa-dashboard/node_modules/math-intrinsics/abs.d.ts +1 -0
  714. package/qa-dashboard/node_modules/math-intrinsics/abs.js +4 -0
  715. package/qa-dashboard/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  716. package/qa-dashboard/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  717. package/qa-dashboard/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  718. package/qa-dashboard/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  719. package/qa-dashboard/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  720. package/qa-dashboard/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  721. package/qa-dashboard/node_modules/math-intrinsics/floor.d.ts +1 -0
  722. package/qa-dashboard/node_modules/math-intrinsics/floor.js +4 -0
  723. package/qa-dashboard/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  724. package/qa-dashboard/node_modules/math-intrinsics/isFinite.js +12 -0
  725. package/qa-dashboard/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  726. package/qa-dashboard/node_modules/math-intrinsics/isInteger.js +16 -0
  727. package/qa-dashboard/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  728. package/qa-dashboard/node_modules/math-intrinsics/isNaN.js +6 -0
  729. package/qa-dashboard/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  730. package/qa-dashboard/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  731. package/qa-dashboard/node_modules/math-intrinsics/max.d.ts +1 -0
  732. package/qa-dashboard/node_modules/math-intrinsics/max.js +4 -0
  733. package/qa-dashboard/node_modules/math-intrinsics/min.d.ts +1 -0
  734. package/qa-dashboard/node_modules/math-intrinsics/min.js +4 -0
  735. package/qa-dashboard/node_modules/math-intrinsics/mod.d.ts +3 -0
  736. package/qa-dashboard/node_modules/math-intrinsics/mod.js +9 -0
  737. package/qa-dashboard/node_modules/math-intrinsics/package.json +86 -0
  738. package/qa-dashboard/node_modules/math-intrinsics/pow.d.ts +1 -0
  739. package/qa-dashboard/node_modules/math-intrinsics/pow.js +4 -0
  740. package/qa-dashboard/node_modules/math-intrinsics/round.d.ts +1 -0
  741. package/qa-dashboard/node_modules/math-intrinsics/round.js +4 -0
  742. package/qa-dashboard/node_modules/math-intrinsics/sign.d.ts +3 -0
  743. package/qa-dashboard/node_modules/math-intrinsics/sign.js +11 -0
  744. package/qa-dashboard/node_modules/math-intrinsics/test/index.js +192 -0
  745. package/qa-dashboard/node_modules/math-intrinsics/tsconfig.json +3 -0
  746. package/qa-dashboard/node_modules/media-typer/HISTORY.md +22 -0
  747. package/qa-dashboard/node_modules/media-typer/LICENSE +22 -0
  748. package/qa-dashboard/node_modules/media-typer/README.md +81 -0
  749. package/qa-dashboard/node_modules/media-typer/index.js +270 -0
  750. package/qa-dashboard/node_modules/media-typer/package.json +26 -0
  751. package/qa-dashboard/node_modules/merge-descriptors/HISTORY.md +21 -0
  752. package/qa-dashboard/node_modules/merge-descriptors/LICENSE +23 -0
  753. package/qa-dashboard/node_modules/merge-descriptors/README.md +49 -0
  754. package/qa-dashboard/node_modules/merge-descriptors/index.js +60 -0
  755. package/qa-dashboard/node_modules/merge-descriptors/package.json +39 -0
  756. package/qa-dashboard/node_modules/methods/HISTORY.md +29 -0
  757. package/qa-dashboard/node_modules/methods/LICENSE +24 -0
  758. package/qa-dashboard/node_modules/methods/README.md +51 -0
  759. package/qa-dashboard/node_modules/methods/index.js +69 -0
  760. package/qa-dashboard/node_modules/methods/package.json +36 -0
  761. package/qa-dashboard/node_modules/mime/CHANGELOG.md +164 -0
  762. package/qa-dashboard/node_modules/mime/LICENSE +21 -0
  763. package/qa-dashboard/node_modules/mime/README.md +90 -0
  764. package/qa-dashboard/node_modules/mime/cli.js +8 -0
  765. package/qa-dashboard/node_modules/mime/mime.js +108 -0
  766. package/qa-dashboard/node_modules/mime/package.json +44 -0
  767. package/qa-dashboard/node_modules/mime/src/build.js +53 -0
  768. package/qa-dashboard/node_modules/mime/src/test.js +60 -0
  769. package/qa-dashboard/node_modules/mime/types.json +1 -0
  770. package/qa-dashboard/node_modules/mime-db/HISTORY.md +507 -0
  771. package/qa-dashboard/node_modules/mime-db/LICENSE +23 -0
  772. package/qa-dashboard/node_modules/mime-db/README.md +100 -0
  773. package/qa-dashboard/node_modules/mime-db/db.json +8519 -0
  774. package/qa-dashboard/node_modules/mime-db/index.js +12 -0
  775. package/qa-dashboard/node_modules/mime-db/package.json +60 -0
  776. package/qa-dashboard/node_modules/mime-types/HISTORY.md +397 -0
  777. package/qa-dashboard/node_modules/mime-types/LICENSE +23 -0
  778. package/qa-dashboard/node_modules/mime-types/README.md +113 -0
  779. package/qa-dashboard/node_modules/mime-types/index.js +188 -0
  780. package/qa-dashboard/node_modules/mime-types/package.json +44 -0
  781. package/qa-dashboard/node_modules/minimatch/LICENSE +15 -0
  782. package/qa-dashboard/node_modules/minimatch/README.md +296 -0
  783. package/qa-dashboard/node_modules/minimatch/changelog.md +35 -0
  784. package/qa-dashboard/node_modules/minimatch/lib/path.js +4 -0
  785. package/qa-dashboard/node_modules/minimatch/minimatch.js +996 -0
  786. package/qa-dashboard/node_modules/minimatch/package.json +35 -0
  787. package/qa-dashboard/node_modules/morgan/HISTORY.md +221 -0
  788. package/qa-dashboard/node_modules/morgan/LICENSE +23 -0
  789. package/qa-dashboard/node_modules/morgan/README.md +436 -0
  790. package/qa-dashboard/node_modules/morgan/index.js +544 -0
  791. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/HISTORY.md +88 -0
  792. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/LICENSE +23 -0
  793. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/README.md +154 -0
  794. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/index.js +196 -0
  795. package/qa-dashboard/node_modules/morgan/node_modules/on-finished/package.json +31 -0
  796. package/qa-dashboard/node_modules/morgan/package.json +52 -0
  797. package/qa-dashboard/node_modules/ms/index.js +152 -0
  798. package/qa-dashboard/node_modules/ms/license.md +21 -0
  799. package/qa-dashboard/node_modules/ms/package.json +37 -0
  800. package/qa-dashboard/node_modules/ms/readme.md +51 -0
  801. package/qa-dashboard/node_modules/negotiator/HISTORY.md +108 -0
  802. package/qa-dashboard/node_modules/negotiator/LICENSE +24 -0
  803. package/qa-dashboard/node_modules/negotiator/README.md +203 -0
  804. package/qa-dashboard/node_modules/negotiator/index.js +82 -0
  805. package/qa-dashboard/node_modules/negotiator/lib/charset.js +169 -0
  806. package/qa-dashboard/node_modules/negotiator/lib/encoding.js +184 -0
  807. package/qa-dashboard/node_modules/negotiator/lib/language.js +179 -0
  808. package/qa-dashboard/node_modules/negotiator/lib/mediaType.js +294 -0
  809. package/qa-dashboard/node_modules/negotiator/package.json +42 -0
  810. package/qa-dashboard/node_modules/object-inspect/.eslintrc +53 -0
  811. package/qa-dashboard/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  812. package/qa-dashboard/node_modules/object-inspect/.nycrc +13 -0
  813. package/qa-dashboard/node_modules/object-inspect/CHANGELOG.md +424 -0
  814. package/qa-dashboard/node_modules/object-inspect/LICENSE +21 -0
  815. package/qa-dashboard/node_modules/object-inspect/example/all.js +23 -0
  816. package/qa-dashboard/node_modules/object-inspect/example/circular.js +6 -0
  817. package/qa-dashboard/node_modules/object-inspect/example/fn.js +5 -0
  818. package/qa-dashboard/node_modules/object-inspect/example/inspect.js +10 -0
  819. package/qa-dashboard/node_modules/object-inspect/index.js +544 -0
  820. package/qa-dashboard/node_modules/object-inspect/package-support.json +20 -0
  821. package/qa-dashboard/node_modules/object-inspect/package.json +105 -0
  822. package/qa-dashboard/node_modules/object-inspect/readme.markdown +84 -0
  823. package/qa-dashboard/node_modules/object-inspect/test/bigint.js +58 -0
  824. package/qa-dashboard/node_modules/object-inspect/test/browser/dom.js +15 -0
  825. package/qa-dashboard/node_modules/object-inspect/test/circular.js +16 -0
  826. package/qa-dashboard/node_modules/object-inspect/test/deep.js +12 -0
  827. package/qa-dashboard/node_modules/object-inspect/test/element.js +53 -0
  828. package/qa-dashboard/node_modules/object-inspect/test/err.js +48 -0
  829. package/qa-dashboard/node_modules/object-inspect/test/fakes.js +29 -0
  830. package/qa-dashboard/node_modules/object-inspect/test/fn.js +76 -0
  831. package/qa-dashboard/node_modules/object-inspect/test/global.js +17 -0
  832. package/qa-dashboard/node_modules/object-inspect/test/has.js +15 -0
  833. package/qa-dashboard/node_modules/object-inspect/test/holes.js +15 -0
  834. package/qa-dashboard/node_modules/object-inspect/test/indent-option.js +271 -0
  835. package/qa-dashboard/node_modules/object-inspect/test/inspect.js +139 -0
  836. package/qa-dashboard/node_modules/object-inspect/test/lowbyte.js +12 -0
  837. package/qa-dashboard/node_modules/object-inspect/test/number.js +58 -0
  838. package/qa-dashboard/node_modules/object-inspect/test/quoteStyle.js +26 -0
  839. package/qa-dashboard/node_modules/object-inspect/test/toStringTag.js +40 -0
  840. package/qa-dashboard/node_modules/object-inspect/test/undef.js +12 -0
  841. package/qa-dashboard/node_modules/object-inspect/test/values.js +261 -0
  842. package/qa-dashboard/node_modules/object-inspect/test-core-js.js +26 -0
  843. package/qa-dashboard/node_modules/object-inspect/util.inspect.js +1 -0
  844. package/qa-dashboard/node_modules/on-finished/HISTORY.md +98 -0
  845. package/qa-dashboard/node_modules/on-finished/LICENSE +23 -0
  846. package/qa-dashboard/node_modules/on-finished/README.md +162 -0
  847. package/qa-dashboard/node_modules/on-finished/index.js +234 -0
  848. package/qa-dashboard/node_modules/on-finished/package.json +39 -0
  849. package/qa-dashboard/node_modules/on-headers/HISTORY.md +26 -0
  850. package/qa-dashboard/node_modules/on-headers/LICENSE +22 -0
  851. package/qa-dashboard/node_modules/on-headers/README.md +81 -0
  852. package/qa-dashboard/node_modules/on-headers/index.js +180 -0
  853. package/qa-dashboard/node_modules/on-headers/package.json +44 -0
  854. package/qa-dashboard/node_modules/parseurl/HISTORY.md +58 -0
  855. package/qa-dashboard/node_modules/parseurl/LICENSE +24 -0
  856. package/qa-dashboard/node_modules/parseurl/README.md +133 -0
  857. package/qa-dashboard/node_modules/parseurl/index.js +158 -0
  858. package/qa-dashboard/node_modules/parseurl/package.json +40 -0
  859. package/qa-dashboard/node_modules/path-to-regexp/LICENSE +21 -0
  860. package/qa-dashboard/node_modules/path-to-regexp/Readme.md +35 -0
  861. package/qa-dashboard/node_modules/path-to-regexp/index.js +158 -0
  862. package/qa-dashboard/node_modules/path-to-regexp/package.json +30 -0
  863. package/qa-dashboard/node_modules/picocolors/LICENSE +15 -0
  864. package/qa-dashboard/node_modules/picocolors/README.md +21 -0
  865. package/qa-dashboard/node_modules/picocolors/package.json +25 -0
  866. package/qa-dashboard/node_modules/picocolors/picocolors.browser.js +4 -0
  867. package/qa-dashboard/node_modules/picocolors/picocolors.d.ts +5 -0
  868. package/qa-dashboard/node_modules/picocolors/picocolors.js +75 -0
  869. package/qa-dashboard/node_modules/picocolors/types.d.ts +51 -0
  870. package/qa-dashboard/node_modules/proxy-addr/HISTORY.md +161 -0
  871. package/qa-dashboard/node_modules/proxy-addr/LICENSE +22 -0
  872. package/qa-dashboard/node_modules/proxy-addr/README.md +139 -0
  873. package/qa-dashboard/node_modules/proxy-addr/index.js +327 -0
  874. package/qa-dashboard/node_modules/proxy-addr/package.json +47 -0
  875. package/qa-dashboard/node_modules/qs/.editorconfig +46 -0
  876. package/qa-dashboard/node_modules/qs/.github/FUNDING.yml +12 -0
  877. package/qa-dashboard/node_modules/qs/.github/SECURITY.md +11 -0
  878. package/qa-dashboard/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  879. package/qa-dashboard/node_modules/qs/.nycrc +13 -0
  880. package/qa-dashboard/node_modules/qs/CHANGELOG.md +822 -0
  881. package/qa-dashboard/node_modules/qs/LICENSE.md +29 -0
  882. package/qa-dashboard/node_modules/qs/README.md +758 -0
  883. package/qa-dashboard/node_modules/qs/dist/qs.js +141 -0
  884. package/qa-dashboard/node_modules/qs/eslint.config.mjs +57 -0
  885. package/qa-dashboard/node_modules/qs/lib/formats.js +23 -0
  886. package/qa-dashboard/node_modules/qs/lib/index.js +11 -0
  887. package/qa-dashboard/node_modules/qs/lib/parse.js +403 -0
  888. package/qa-dashboard/node_modules/qs/lib/stringify.js +363 -0
  889. package/qa-dashboard/node_modules/qs/lib/utils.js +342 -0
  890. package/qa-dashboard/node_modules/qs/package.json +94 -0
  891. package/qa-dashboard/node_modules/qs/test/empty-keys-cases.js +267 -0
  892. package/qa-dashboard/node_modules/qs/test/parse.js +1703 -0
  893. package/qa-dashboard/node_modules/qs/test/stringify.js +1448 -0
  894. package/qa-dashboard/node_modules/qs/test/utils.js +432 -0
  895. package/qa-dashboard/node_modules/range-parser/HISTORY.md +56 -0
  896. package/qa-dashboard/node_modules/range-parser/LICENSE +23 -0
  897. package/qa-dashboard/node_modules/range-parser/README.md +84 -0
  898. package/qa-dashboard/node_modules/range-parser/index.js +162 -0
  899. package/qa-dashboard/node_modules/range-parser/package.json +44 -0
  900. package/qa-dashboard/node_modules/raw-body/LICENSE +22 -0
  901. package/qa-dashboard/node_modules/raw-body/README.md +223 -0
  902. package/qa-dashboard/node_modules/raw-body/index.d.ts +87 -0
  903. package/qa-dashboard/node_modules/raw-body/index.js +336 -0
  904. package/qa-dashboard/node_modules/raw-body/package.json +47 -0
  905. package/qa-dashboard/node_modules/safe-buffer/LICENSE +21 -0
  906. package/qa-dashboard/node_modules/safe-buffer/README.md +584 -0
  907. package/qa-dashboard/node_modules/safe-buffer/index.d.ts +187 -0
  908. package/qa-dashboard/node_modules/safe-buffer/index.js +65 -0
  909. package/qa-dashboard/node_modules/safe-buffer/package.json +51 -0
  910. package/qa-dashboard/node_modules/safer-buffer/LICENSE +21 -0
  911. package/qa-dashboard/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  912. package/qa-dashboard/node_modules/safer-buffer/Readme.md +156 -0
  913. package/qa-dashboard/node_modules/safer-buffer/dangerous.js +58 -0
  914. package/qa-dashboard/node_modules/safer-buffer/package.json +34 -0
  915. package/qa-dashboard/node_modules/safer-buffer/safer.js +77 -0
  916. package/qa-dashboard/node_modules/safer-buffer/tests.js +406 -0
  917. package/qa-dashboard/node_modules/send/HISTORY.md +538 -0
  918. package/qa-dashboard/node_modules/send/LICENSE +23 -0
  919. package/qa-dashboard/node_modules/send/README.md +327 -0
  920. package/qa-dashboard/node_modules/send/SECURITY.md +24 -0
  921. package/qa-dashboard/node_modules/send/index.js +1142 -0
  922. package/qa-dashboard/node_modules/send/node_modules/ms/index.js +162 -0
  923. package/qa-dashboard/node_modules/send/node_modules/ms/license.md +21 -0
  924. package/qa-dashboard/node_modules/send/node_modules/ms/package.json +38 -0
  925. package/qa-dashboard/node_modules/send/node_modules/ms/readme.md +59 -0
  926. package/qa-dashboard/node_modules/send/package.json +62 -0
  927. package/qa-dashboard/node_modules/serve-static/HISTORY.md +493 -0
  928. package/qa-dashboard/node_modules/serve-static/LICENSE +25 -0
  929. package/qa-dashboard/node_modules/serve-static/README.md +257 -0
  930. package/qa-dashboard/node_modules/serve-static/index.js +209 -0
  931. package/qa-dashboard/node_modules/serve-static/package.json +42 -0
  932. package/qa-dashboard/node_modules/setprototypeof/LICENSE +13 -0
  933. package/qa-dashboard/node_modules/setprototypeof/README.md +31 -0
  934. package/qa-dashboard/node_modules/setprototypeof/index.d.ts +2 -0
  935. package/qa-dashboard/node_modules/setprototypeof/index.js +17 -0
  936. package/qa-dashboard/node_modules/setprototypeof/package.json +38 -0
  937. package/qa-dashboard/node_modules/setprototypeof/test/index.js +24 -0
  938. package/qa-dashboard/node_modules/side-channel/.editorconfig +9 -0
  939. package/qa-dashboard/node_modules/side-channel/.eslintrc +12 -0
  940. package/qa-dashboard/node_modules/side-channel/.github/FUNDING.yml +12 -0
  941. package/qa-dashboard/node_modules/side-channel/.nycrc +13 -0
  942. package/qa-dashboard/node_modules/side-channel/CHANGELOG.md +110 -0
  943. package/qa-dashboard/node_modules/side-channel/LICENSE +21 -0
  944. package/qa-dashboard/node_modules/side-channel/README.md +61 -0
  945. package/qa-dashboard/node_modules/side-channel/index.d.ts +14 -0
  946. package/qa-dashboard/node_modules/side-channel/index.js +43 -0
  947. package/qa-dashboard/node_modules/side-channel/package.json +85 -0
  948. package/qa-dashboard/node_modules/side-channel/test/index.js +104 -0
  949. package/qa-dashboard/node_modules/side-channel/tsconfig.json +9 -0
  950. package/qa-dashboard/node_modules/side-channel-list/.editorconfig +9 -0
  951. package/qa-dashboard/node_modules/side-channel-list/.eslintrc +11 -0
  952. package/qa-dashboard/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  953. package/qa-dashboard/node_modules/side-channel-list/.nycrc +13 -0
  954. package/qa-dashboard/node_modules/side-channel-list/CHANGELOG.md +36 -0
  955. package/qa-dashboard/node_modules/side-channel-list/LICENSE +21 -0
  956. package/qa-dashboard/node_modules/side-channel-list/README.md +62 -0
  957. package/qa-dashboard/node_modules/side-channel-list/index.d.ts +13 -0
  958. package/qa-dashboard/node_modules/side-channel-list/index.js +111 -0
  959. package/qa-dashboard/node_modules/side-channel-list/list.d.ts +14 -0
  960. package/qa-dashboard/node_modules/side-channel-list/package.json +77 -0
  961. package/qa-dashboard/node_modules/side-channel-list/test/index.js +154 -0
  962. package/qa-dashboard/node_modules/side-channel-list/tsconfig.json +9 -0
  963. package/qa-dashboard/node_modules/side-channel-map/.editorconfig +9 -0
  964. package/qa-dashboard/node_modules/side-channel-map/.eslintrc +11 -0
  965. package/qa-dashboard/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  966. package/qa-dashboard/node_modules/side-channel-map/.nycrc +13 -0
  967. package/qa-dashboard/node_modules/side-channel-map/CHANGELOG.md +22 -0
  968. package/qa-dashboard/node_modules/side-channel-map/LICENSE +21 -0
  969. package/qa-dashboard/node_modules/side-channel-map/README.md +62 -0
  970. package/qa-dashboard/node_modules/side-channel-map/index.d.ts +15 -0
  971. package/qa-dashboard/node_modules/side-channel-map/index.js +68 -0
  972. package/qa-dashboard/node_modules/side-channel-map/package.json +80 -0
  973. package/qa-dashboard/node_modules/side-channel-map/test/index.js +114 -0
  974. package/qa-dashboard/node_modules/side-channel-map/tsconfig.json +9 -0
  975. package/qa-dashboard/node_modules/side-channel-weakmap/.editorconfig +9 -0
  976. package/qa-dashboard/node_modules/side-channel-weakmap/.eslintrc +12 -0
  977. package/qa-dashboard/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  978. package/qa-dashboard/node_modules/side-channel-weakmap/.nycrc +13 -0
  979. package/qa-dashboard/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  980. package/qa-dashboard/node_modules/side-channel-weakmap/LICENSE +21 -0
  981. package/qa-dashboard/node_modules/side-channel-weakmap/README.md +62 -0
  982. package/qa-dashboard/node_modules/side-channel-weakmap/index.d.ts +15 -0
  983. package/qa-dashboard/node_modules/side-channel-weakmap/index.js +84 -0
  984. package/qa-dashboard/node_modules/side-channel-weakmap/package.json +87 -0
  985. package/qa-dashboard/node_modules/side-channel-weakmap/test/index.js +114 -0
  986. package/qa-dashboard/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  987. package/qa-dashboard/node_modules/statuses/HISTORY.md +87 -0
  988. package/qa-dashboard/node_modules/statuses/LICENSE +23 -0
  989. package/qa-dashboard/node_modules/statuses/README.md +139 -0
  990. package/qa-dashboard/node_modules/statuses/codes.json +65 -0
  991. package/qa-dashboard/node_modules/statuses/index.js +146 -0
  992. package/qa-dashboard/node_modules/statuses/package.json +49 -0
  993. package/qa-dashboard/node_modules/toidentifier/HISTORY.md +9 -0
  994. package/qa-dashboard/node_modules/toidentifier/LICENSE +21 -0
  995. package/qa-dashboard/node_modules/toidentifier/README.md +61 -0
  996. package/qa-dashboard/node_modules/toidentifier/index.js +32 -0
  997. package/qa-dashboard/node_modules/toidentifier/package.json +38 -0
  998. package/qa-dashboard/node_modules/type-is/HISTORY.md +259 -0
  999. package/qa-dashboard/node_modules/type-is/LICENSE +23 -0
  1000. package/qa-dashboard/node_modules/type-is/README.md +170 -0
  1001. package/qa-dashboard/node_modules/type-is/index.js +266 -0
  1002. package/qa-dashboard/node_modules/type-is/package.json +45 -0
  1003. package/qa-dashboard/node_modules/unpipe/HISTORY.md +4 -0
  1004. package/qa-dashboard/node_modules/unpipe/LICENSE +22 -0
  1005. package/qa-dashboard/node_modules/unpipe/README.md +43 -0
  1006. package/qa-dashboard/node_modules/unpipe/index.js +69 -0
  1007. package/qa-dashboard/node_modules/unpipe/package.json +27 -0
  1008. package/qa-dashboard/node_modules/utils-merge/LICENSE +20 -0
  1009. package/qa-dashboard/node_modules/utils-merge/README.md +34 -0
  1010. package/qa-dashboard/node_modules/utils-merge/index.js +23 -0
  1011. package/qa-dashboard/node_modules/utils-merge/package.json +40 -0
  1012. package/qa-dashboard/node_modules/vary/HISTORY.md +39 -0
  1013. package/qa-dashboard/node_modules/vary/LICENSE +22 -0
  1014. package/qa-dashboard/node_modules/vary/README.md +101 -0
  1015. package/qa-dashboard/node_modules/vary/index.js +149 -0
  1016. package/qa-dashboard/node_modules/vary/package.json +43 -0
  1017. package/qa-dashboard/views/stories.ejs +2 -2
  1018. package/qa-dashboard/views/story.ejs +3 -6
  1019. package/test-results/run-2026-05-18T14-50-14/execution-output.json +3 -0
  1020. package/test-results/run-2026-05-18T14-50-43/execution-output.json +2 -0
  1021. package/test-results/run-2026-05-18T14-50-43/execution-result.json +11 -0
  1022. package/test-results/run-2026-05-18T14-50-43/final-test-report.md +42 -0
  1023. package/test-results/run-2026-05-18T14-50-43/healing-report.json +15 -0
  1024. package/test-results/run-2026-05-18T14-51-36/execution-output.json +2 -0
  1025. package/test-results/run-2026-05-18T14-51-36/execution-result.json +11 -0
  1026. package/test-results/run-2026-05-18T14-51-36/final-test-report.md +42 -0
  1027. package/test-results/run-2026-05-18T14-51-36/healing-report.json +15 -0
  1028. package/.opencode/agents/qa-generator.md +0 -19
  1029. package/.opencode/agents/qa-healer.md +0 -25
  1030. package/.opencode/agents/qa-planner.md +0 -20
  1031. package/.qa-workflow.json +0 -22
  1032. package/DESIGN.md +0 -0
  1033. package/opencode.json +0 -31
  1034. package/specs/us-expense-01-test-plan.md +0 -55
@@ -0,0 +1,996 @@
1
+ const minimatch = module.exports = (p, pattern, options = {}) => {
2
+ assertValidPattern(pattern)
3
+
4
+ // shortcut: comments match nothing.
5
+ if (!options.nocomment && pattern.charAt(0) === '#') {
6
+ return false
7
+ }
8
+
9
+ return new Minimatch(pattern, options).match(p)
10
+ }
11
+
12
+ module.exports = minimatch
13
+
14
+ const path = require('./lib/path.js')
15
+ minimatch.sep = path.sep
16
+
17
+ const GLOBSTAR = Symbol('globstar **')
18
+ minimatch.GLOBSTAR = GLOBSTAR
19
+ const expand = require('brace-expansion')
20
+
21
+ const plTypes = {
22
+ '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
23
+ '?': { open: '(?:', close: ')?' },
24
+ '+': { open: '(?:', close: ')+' },
25
+ '*': { open: '(?:', close: ')*' },
26
+ '@': { open: '(?:', close: ')' }
27
+ }
28
+
29
+ // any single thing other than /
30
+ // don't need to escape / when using new RegExp()
31
+ const qmark = '[^/]'
32
+
33
+ // * => any number of characters
34
+ const star = qmark + '*?'
35
+
36
+ // ** when dots are allowed. Anything goes, except .. and .
37
+ // not (^ or / followed by one or two dots followed by $ or /),
38
+ // followed by anything, any number of times.
39
+ const twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
40
+
41
+ // not a ^ or / followed by a dot,
42
+ // followed by anything, any number of times.
43
+ const twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
44
+
45
+ // "abc" -> { a:true, b:true, c:true }
46
+ const charSet = s => s.split('').reduce((set, c) => {
47
+ set[c] = true
48
+ return set
49
+ }, {})
50
+
51
+ // characters that need to be escaped in RegExp.
52
+ const reSpecials = charSet('().*{}+?[]^$\\!')
53
+
54
+ // characters that indicate we have to add the pattern start
55
+ const addPatternStartSet = charSet('[.(')
56
+
57
+ // normalizes slashes.
58
+ const slashSplit = /\/+/
59
+
60
+ minimatch.filter = (pattern, options = {}) =>
61
+ (p, i, list) => minimatch(p, pattern, options)
62
+
63
+ const ext = (a, b = {}) => {
64
+ const t = {}
65
+ Object.keys(a).forEach(k => t[k] = a[k])
66
+ Object.keys(b).forEach(k => t[k] = b[k])
67
+ return t
68
+ }
69
+
70
+ minimatch.defaults = def => {
71
+ if (!def || typeof def !== 'object' || !Object.keys(def).length) {
72
+ return minimatch
73
+ }
74
+
75
+ const orig = minimatch
76
+
77
+ const m = (p, pattern, options) => orig(p, pattern, ext(def, options))
78
+ m.Minimatch = class Minimatch extends orig.Minimatch {
79
+ constructor (pattern, options) {
80
+ super(pattern, ext(def, options))
81
+ }
82
+ }
83
+ m.Minimatch.defaults = options => orig.defaults(ext(def, options)).Minimatch
84
+ m.filter = (pattern, options) => orig.filter(pattern, ext(def, options))
85
+ m.defaults = options => orig.defaults(ext(def, options))
86
+ m.makeRe = (pattern, options) => orig.makeRe(pattern, ext(def, options))
87
+ m.braceExpand = (pattern, options) => orig.braceExpand(pattern, ext(def, options))
88
+ m.match = (list, pattern, options) => orig.match(list, pattern, ext(def, options))
89
+
90
+ return m
91
+ }
92
+
93
+
94
+
95
+
96
+
97
+ // Brace expansion:
98
+ // a{b,c}d -> abd acd
99
+ // a{b,}c -> abc ac
100
+ // a{0..3}d -> a0d a1d a2d a3d
101
+ // a{b,c{d,e}f}g -> abg acdfg acefg
102
+ // a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
103
+ //
104
+ // Invalid sets are not expanded.
105
+ // a{2..}b -> a{2..}b
106
+ // a{b}c -> a{b}c
107
+ minimatch.braceExpand = (pattern, options) => braceExpand(pattern, options)
108
+
109
+ const braceExpand = (pattern, options = {}) => {
110
+ assertValidPattern(pattern)
111
+
112
+ // Thanks to Yeting Li <https://github.com/yetingli> for
113
+ // improving this regexp to avoid a ReDOS vulnerability.
114
+ if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
115
+ // shortcut. no need to expand.
116
+ return [pattern]
117
+ }
118
+
119
+ return expand(pattern)
120
+ }
121
+
122
+ const MAX_PATTERN_LENGTH = 1024 * 64
123
+ const assertValidPattern = pattern => {
124
+ if (typeof pattern !== 'string') {
125
+ throw new TypeError('invalid pattern')
126
+ }
127
+
128
+ if (pattern.length > MAX_PATTERN_LENGTH) {
129
+ throw new TypeError('pattern is too long')
130
+ }
131
+ }
132
+
133
+ // parse a component of the expanded set.
134
+ // At this point, no pattern may contain "/" in it
135
+ // so we're going to return a 2d array, where each entry is the full
136
+ // pattern, split on '/', and then turned into a regular expression.
137
+ // A regexp is made at the end which joins each array with an
138
+ // escaped /, and another full one which joins each regexp with |.
139
+ //
140
+ // Following the lead of Bash 4.1, note that "**" only has special meaning
141
+ // when it is the *only* thing in a path portion. Otherwise, any series
142
+ // of * is equivalent to a single *. Globstar behavior is enabled by
143
+ // default, and can be disabled by setting options.noglobstar.
144
+ const SUBPARSE = Symbol('subparse')
145
+
146
+ minimatch.makeRe = (pattern, options) =>
147
+ new Minimatch(pattern, options || {}).makeRe()
148
+
149
+ minimatch.match = (list, pattern, options = {}) => {
150
+ const mm = new Minimatch(pattern, options)
151
+ list = list.filter(f => mm.match(f))
152
+ if (mm.options.nonull && !list.length) {
153
+ list.push(pattern)
154
+ }
155
+ return list
156
+ }
157
+
158
+ // replace stuff like \* with *
159
+ const globUnescape = s => s.replace(/\\(.)/g, '$1')
160
+ const charUnescape = s => s.replace(/\\([^-\]])/g, '$1')
161
+ const regExpEscape = s => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
162
+ const braExpEscape = s => s.replace(/[[\]\\]/g, '\\$&')
163
+
164
+ class Minimatch {
165
+ constructor (pattern, options) {
166
+ assertValidPattern(pattern)
167
+
168
+ if (!options) options = {}
169
+
170
+ this.options = options
171
+ this.maxGlobstarRecursion = options.maxGlobstarRecursion !== undefined
172
+ ? options.maxGlobstarRecursion : 200
173
+ this.set = []
174
+ this.pattern = pattern
175
+ this.windowsPathsNoEscape = !!options.windowsPathsNoEscape ||
176
+ options.allowWindowsEscape === false
177
+ if (this.windowsPathsNoEscape) {
178
+ this.pattern = this.pattern.replace(/\\/g, '/')
179
+ }
180
+ this.regexp = null
181
+ this.negate = false
182
+ this.comment = false
183
+ this.empty = false
184
+ this.partial = !!options.partial
185
+
186
+ // make the set of regexps etc.
187
+ this.make()
188
+ }
189
+
190
+ debug () {}
191
+
192
+ make () {
193
+ const pattern = this.pattern
194
+ const options = this.options
195
+
196
+ // empty patterns and comments match nothing.
197
+ if (!options.nocomment && pattern.charAt(0) === '#') {
198
+ this.comment = true
199
+ return
200
+ }
201
+ if (!pattern) {
202
+ this.empty = true
203
+ return
204
+ }
205
+
206
+ // step 1: figure out negation, etc.
207
+ this.parseNegate()
208
+
209
+ // step 2: expand braces
210
+ let set = this.globSet = this.braceExpand()
211
+
212
+ if (options.debug) this.debug = (...args) => console.error(...args)
213
+
214
+ this.debug(this.pattern, set)
215
+
216
+ // step 3: now we have a set, so turn each one into a series of path-portion
217
+ // matching patterns.
218
+ // These will be regexps, except in the case of "**", which is
219
+ // set to the GLOBSTAR object for globstar behavior,
220
+ // and will not contain any / characters
221
+ set = this.globParts = set.map(s => s.split(slashSplit))
222
+
223
+ this.debug(this.pattern, set)
224
+
225
+ // glob --> regexps
226
+ set = set.map((s, si, set) => s.map(this.parse, this))
227
+
228
+ this.debug(this.pattern, set)
229
+
230
+ // filter out everything that didn't compile properly.
231
+ set = set.filter(s => s.indexOf(false) === -1)
232
+
233
+ this.debug(this.pattern, set)
234
+
235
+ this.set = set
236
+ }
237
+
238
+ parseNegate () {
239
+ if (this.options.nonegate) return
240
+
241
+ const pattern = this.pattern
242
+ let negate = false
243
+ let negateOffset = 0
244
+
245
+ for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {
246
+ negate = !negate
247
+ negateOffset++
248
+ }
249
+
250
+ if (negateOffset) this.pattern = pattern.slice(negateOffset)
251
+ this.negate = negate
252
+ }
253
+
254
+ // set partial to true to test if, for example,
255
+ // "/a/b" matches the start of "/*/b/*/d"
256
+ // Partial means, if you run out of file before you run
257
+ // out of pattern, then that's fine, as long as all
258
+ // the parts match.
259
+ matchOne (file, pattern, partial) {
260
+ if (pattern.indexOf(GLOBSTAR) !== -1) {
261
+ return this._matchGlobstar(file, pattern, partial, 0, 0)
262
+ }
263
+ return this._matchOne(file, pattern, partial, 0, 0)
264
+ }
265
+
266
+ _matchGlobstar (file, pattern, partial, fileIndex, patternIndex) {
267
+ // find first globstar from patternIndex
268
+ let firstgs = -1
269
+ for (let i = patternIndex; i < pattern.length; i++) {
270
+ if (pattern[i] === GLOBSTAR) { firstgs = i; break }
271
+ }
272
+
273
+ // find last globstar
274
+ let lastgs = -1
275
+ for (let i = pattern.length - 1; i >= 0; i--) {
276
+ if (pattern[i] === GLOBSTAR) { lastgs = i; break }
277
+ }
278
+
279
+ const head = pattern.slice(patternIndex, firstgs)
280
+ const body = partial ? pattern.slice(firstgs + 1) : pattern.slice(firstgs + 1, lastgs)
281
+ const tail = partial ? [] : pattern.slice(lastgs + 1)
282
+
283
+ // check the head
284
+ if (head.length) {
285
+ const fileHead = file.slice(fileIndex, fileIndex + head.length)
286
+ if (!this._matchOne(fileHead, head, partial, 0, 0)) {
287
+ return false
288
+ }
289
+ fileIndex += head.length
290
+ }
291
+
292
+ // check the tail
293
+ let fileTailMatch = 0
294
+ if (tail.length) {
295
+ if (tail.length + fileIndex > file.length) return false
296
+
297
+ const tailStart = file.length - tail.length
298
+ if (this._matchOne(file, tail, partial, tailStart, 0)) {
299
+ fileTailMatch = tail.length
300
+ } else {
301
+ // affordance for stuff like a/**/* matching a/b/
302
+ if (file[file.length - 1] !== '' ||
303
+ fileIndex + tail.length === file.length) {
304
+ return false
305
+ }
306
+ if (!this._matchOne(file, tail, partial, tailStart - 1, 0)) {
307
+ return false
308
+ }
309
+ fileTailMatch = tail.length + 1
310
+ }
311
+ }
312
+
313
+ // if body is empty (single ** between head and tail)
314
+ if (!body.length) {
315
+ let sawSome = !!fileTailMatch
316
+ for (let i = fileIndex; i < file.length - fileTailMatch; i++) {
317
+ const f = String(file[i])
318
+ sawSome = true
319
+ if (f === '.' || f === '..' ||
320
+ (!this.options.dot && f.charAt(0) === '.')) {
321
+ return false
322
+ }
323
+ }
324
+ return partial || sawSome
325
+ }
326
+
327
+ // split body into segments at each GLOBSTAR
328
+ const bodySegments = [[[], 0]]
329
+ let currentBody = bodySegments[0]
330
+ let nonGsParts = 0
331
+ const nonGsPartsSums = [0]
332
+ for (const b of body) {
333
+ if (b === GLOBSTAR) {
334
+ nonGsPartsSums.push(nonGsParts)
335
+ currentBody = [[], 0]
336
+ bodySegments.push(currentBody)
337
+ } else {
338
+ currentBody[0].push(b)
339
+ nonGsParts++
340
+ }
341
+ }
342
+
343
+ let idx = bodySegments.length - 1
344
+ const fileLength = file.length - fileTailMatch
345
+ for (const b of bodySegments) {
346
+ b[1] = fileLength - (nonGsPartsSums[idx--] + b[0].length)
347
+ }
348
+
349
+ return !!this._matchGlobStarBodySections(
350
+ file, bodySegments, fileIndex, 0, partial, 0, !!fileTailMatch
351
+ )
352
+ }
353
+
354
+ // return false for "nope, not matching"
355
+ // return null for "not matching, cannot keep trying"
356
+ _matchGlobStarBodySections (
357
+ file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail
358
+ ) {
359
+ const bs = bodySegments[bodyIndex]
360
+ if (!bs) {
361
+ // just make sure there are no bad dots
362
+ for (let i = fileIndex; i < file.length; i++) {
363
+ sawTail = true
364
+ const f = file[i]
365
+ if (f === '.' || f === '..' ||
366
+ (!this.options.dot && f.charAt(0) === '.')) {
367
+ return false
368
+ }
369
+ }
370
+ return sawTail
371
+ }
372
+
373
+ const [body, after] = bs
374
+ while (fileIndex <= after) {
375
+ const m = this._matchOne(
376
+ file.slice(0, fileIndex + body.length),
377
+ body,
378
+ partial,
379
+ fileIndex,
380
+ 0
381
+ )
382
+ // if limit exceeded, no match. intentional false negative,
383
+ // acceptable break in correctness for security.
384
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
385
+ const sub = this._matchGlobStarBodySections(
386
+ file, bodySegments,
387
+ fileIndex + body.length, bodyIndex + 1,
388
+ partial, globStarDepth + 1, sawTail
389
+ )
390
+ if (sub !== false) {
391
+ return sub
392
+ }
393
+ }
394
+ const f = file[fileIndex]
395
+ if (f === '.' || f === '..' ||
396
+ (!this.options.dot && f.charAt(0) === '.')) {
397
+ return false
398
+ }
399
+ fileIndex++
400
+ }
401
+ return partial || null
402
+ }
403
+
404
+ _matchOne (file, pattern, partial, fileIndex, patternIndex) {
405
+ let fi, pi, fl, pl
406
+ for (
407
+ fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length
408
+ ; (fi < fl) && (pi < pl)
409
+ ; fi++, pi++
410
+ ) {
411
+ this.debug('matchOne loop')
412
+ const p = pattern[pi]
413
+ const f = file[fi]
414
+
415
+ this.debug(pattern, p, f)
416
+
417
+ // should be impossible.
418
+ // some invalid regexp stuff in the set.
419
+ /* istanbul ignore if */
420
+ if (p === false || p === GLOBSTAR) return false
421
+
422
+ // something other than **
423
+ // non-magic patterns just have to match exactly
424
+ // patterns with magic have been turned into regexps.
425
+ let hit
426
+ if (typeof p === 'string') {
427
+ hit = f === p
428
+ this.debug('string match', p, f, hit)
429
+ } else {
430
+ hit = f.match(p)
431
+ this.debug('pattern match', p, f, hit)
432
+ }
433
+
434
+ if (!hit) return false
435
+ }
436
+
437
+ // now either we fell off the end of the pattern, or we're done.
438
+ if (fi === fl && pi === pl) {
439
+ // ran out of pattern and filename at the same time.
440
+ // an exact hit!
441
+ return true
442
+ } else if (fi === fl) {
443
+ // ran out of file, but still had pattern left.
444
+ // this is ok if we're doing the match as part of
445
+ // a glob fs traversal.
446
+ return partial
447
+ } else /* istanbul ignore else */ if (pi === pl) {
448
+ // ran out of pattern, still have file left.
449
+ // this is only acceptable if we're on the very last
450
+ // empty segment of a file with a trailing slash.
451
+ // a/* should match a/b/
452
+ return (fi === fl - 1) && (file[fi] === '')
453
+ }
454
+
455
+ // should be unreachable.
456
+ /* istanbul ignore next */
457
+ throw new Error('wtf?')
458
+ }
459
+
460
+ braceExpand () {
461
+ return braceExpand(this.pattern, this.options)
462
+ }
463
+
464
+ parse (pattern, isSub) {
465
+ assertValidPattern(pattern)
466
+
467
+ const options = this.options
468
+
469
+ // shortcuts
470
+ if (pattern === '**') {
471
+ if (!options.noglobstar)
472
+ return GLOBSTAR
473
+ else
474
+ pattern = '*'
475
+ }
476
+ if (pattern === '') return ''
477
+
478
+ let re = ''
479
+ let hasMagic = false
480
+ let escaping = false
481
+ // ? => one single character
482
+ const patternListStack = []
483
+ const negativeLists = []
484
+ let stateChar
485
+ let inClass = false
486
+ let reClassStart = -1
487
+ let classStart = -1
488
+ let cs
489
+ let pl
490
+ let sp
491
+ // . and .. never match anything that doesn't start with .,
492
+ // even when options.dot is set. However, if the pattern
493
+ // starts with ., then traversal patterns can match.
494
+ let dotTravAllowed = pattern.charAt(0) === '.'
495
+ let dotFileAllowed = options.dot || dotTravAllowed
496
+ const patternStart = () =>
497
+ dotTravAllowed
498
+ ? ''
499
+ : dotFileAllowed
500
+ ? '(?!(?:^|\\/)\\.{1,2}(?:$|\\/))'
501
+ : '(?!\\.)'
502
+ const subPatternStart = (p) =>
503
+ p.charAt(0) === '.'
504
+ ? ''
505
+ : options.dot
506
+ ? '(?!(?:^|\\/)\\.{1,2}(?:$|\\/))'
507
+ : '(?!\\.)'
508
+
509
+
510
+ const clearStateChar = () => {
511
+ if (stateChar) {
512
+ // we had some state-tracking character
513
+ // that wasn't consumed by this pass.
514
+ switch (stateChar) {
515
+ case '*':
516
+ re += star
517
+ hasMagic = true
518
+ break
519
+ case '?':
520
+ re += qmark
521
+ hasMagic = true
522
+ break
523
+ default:
524
+ re += '\\' + stateChar
525
+ break
526
+ }
527
+ this.debug('clearStateChar %j %j', stateChar, re)
528
+ stateChar = false
529
+ }
530
+ }
531
+
532
+ for (let i = 0, c; (i < pattern.length) && (c = pattern.charAt(i)); i++) {
533
+ this.debug('%s\t%s %s %j', pattern, i, re, c)
534
+
535
+ // skip over any that are escaped.
536
+ if (escaping) {
537
+ /* istanbul ignore next - completely not allowed, even escaped. */
538
+ if (c === '/') {
539
+ return false
540
+ }
541
+
542
+ if (reSpecials[c]) {
543
+ re += '\\'
544
+ }
545
+ re += c
546
+ escaping = false
547
+ continue
548
+ }
549
+
550
+ switch (c) {
551
+ /* istanbul ignore next */
552
+ case '/': {
553
+ // Should already be path-split by now.
554
+ return false
555
+ }
556
+
557
+ case '\\':
558
+ if (inClass && pattern.charAt(i + 1) === '-') {
559
+ re += c
560
+ continue
561
+ }
562
+
563
+ clearStateChar()
564
+ escaping = true
565
+ continue
566
+
567
+ // the various stateChar values
568
+ // for the "extglob" stuff.
569
+ case '?':
570
+ case '*':
571
+ case '+':
572
+ case '@':
573
+ case '!':
574
+ this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
575
+
576
+ // all of those are literals inside a class, except that
577
+ // the glob [!a] means [^a] in regexp
578
+ if (inClass) {
579
+ this.debug(' in class')
580
+ if (c === '!' && i === classStart + 1) c = '^'
581
+ re += c
582
+ continue
583
+ }
584
+
585
+ // coalesce consecutive non-globstar * characters
586
+ if (c === '*' && stateChar === '*') continue
587
+
588
+ // if we already have a stateChar, then it means
589
+ // that there was something like ** or +? in there.
590
+ // Handle the stateChar, then proceed with this one.
591
+ this.debug('call clearStateChar %j', stateChar)
592
+ clearStateChar()
593
+ stateChar = c
594
+ // if extglob is disabled, then +(asdf|foo) isn't a thing.
595
+ // just clear the statechar *now*, rather than even diving into
596
+ // the patternList stuff.
597
+ if (options.noext) clearStateChar()
598
+ continue
599
+
600
+ case '(': {
601
+ if (inClass) {
602
+ re += '('
603
+ continue
604
+ }
605
+
606
+ if (!stateChar) {
607
+ re += '\\('
608
+ continue
609
+ }
610
+
611
+ const plEntry = {
612
+ type: stateChar,
613
+ start: i - 1,
614
+ reStart: re.length,
615
+ open: plTypes[stateChar].open,
616
+ close: plTypes[stateChar].close,
617
+ }
618
+ this.debug(this.pattern, '\t', plEntry)
619
+ patternListStack.push(plEntry)
620
+ // negation is (?:(?!(?:js)(?:<rest>))[^/]*)
621
+ re += plEntry.open
622
+ // next entry starts with a dot maybe?
623
+ if (plEntry.start === 0 && plEntry.type !== '!') {
624
+ dotTravAllowed = true
625
+ re += subPatternStart(pattern.slice(i + 1))
626
+ }
627
+ this.debug('plType %j %j', stateChar, re)
628
+ stateChar = false
629
+ continue
630
+ }
631
+
632
+ case ')': {
633
+ const plEntry = patternListStack[patternListStack.length - 1]
634
+ if (inClass || !plEntry) {
635
+ re += '\\)'
636
+ continue
637
+ }
638
+ patternListStack.pop()
639
+
640
+ // closing an extglob
641
+ clearStateChar()
642
+ hasMagic = true
643
+ pl = plEntry
644
+ // negation is (?:(?!js)[^/]*)
645
+ // The others are (?:<pattern>)<type>
646
+ re += pl.close
647
+ if (pl.type === '!') {
648
+ negativeLists.push(Object.assign(pl, { reEnd: re.length }))
649
+ }
650
+ continue
651
+ }
652
+
653
+ case '|': {
654
+ const plEntry = patternListStack[patternListStack.length - 1]
655
+ if (inClass || !plEntry) {
656
+ re += '\\|'
657
+ continue
658
+ }
659
+
660
+ clearStateChar()
661
+ re += '|'
662
+ // next subpattern can start with a dot?
663
+ if (plEntry.start === 0 && plEntry.type !== '!') {
664
+ dotTravAllowed = true
665
+ re += subPatternStart(pattern.slice(i + 1))
666
+ }
667
+ continue
668
+ }
669
+
670
+ // these are mostly the same in regexp and glob
671
+ case '[':
672
+ // swallow any state-tracking char before the [
673
+ clearStateChar()
674
+
675
+ if (inClass) {
676
+ re += '\\' + c
677
+ continue
678
+ }
679
+
680
+ inClass = true
681
+ classStart = i
682
+ reClassStart = re.length
683
+ re += c
684
+ continue
685
+
686
+ case ']':
687
+ // a right bracket shall lose its special
688
+ // meaning and represent itself in
689
+ // a bracket expression if it occurs
690
+ // first in the list. -- POSIX.2 2.8.3.2
691
+ if (i === classStart + 1 || !inClass) {
692
+ re += '\\' + c
693
+ continue
694
+ }
695
+
696
+ // split where the last [ was, make sure we don't have
697
+ // an invalid re. if so, re-walk the contents of the
698
+ // would-be class to re-translate any characters that
699
+ // were passed through as-is
700
+ // TODO: It would probably be faster to determine this
701
+ // without a try/catch and a new RegExp, but it's tricky
702
+ // to do safely. For now, this is safe and works.
703
+ cs = pattern.substring(classStart + 1, i)
704
+ try {
705
+ RegExp('[' + braExpEscape(charUnescape(cs)) + ']')
706
+ // looks good, finish up the class.
707
+ re += c
708
+ } catch (er) {
709
+ // out of order ranges in JS are errors, but in glob syntax,
710
+ // they're just a range that matches nothing.
711
+ re = re.substring(0, reClassStart) + '(?:$.)' // match nothing ever
712
+ }
713
+ hasMagic = true
714
+ inClass = false
715
+ continue
716
+
717
+ default:
718
+ // swallow any state char that wasn't consumed
719
+ clearStateChar()
720
+
721
+ if (reSpecials[c] && !(c === '^' && inClass)) {
722
+ re += '\\'
723
+ }
724
+
725
+ re += c
726
+ break
727
+
728
+ } // switch
729
+ } // for
730
+
731
+ // handle the case where we left a class open.
732
+ // "[abc" is valid, equivalent to "\[abc"
733
+ if (inClass) {
734
+ // split where the last [ was, and escape it
735
+ // this is a huge pita. We now have to re-walk
736
+ // the contents of the would-be class to re-translate
737
+ // any characters that were passed through as-is
738
+ cs = pattern.slice(classStart + 1)
739
+ sp = this.parse(cs, SUBPARSE)
740
+ re = re.substring(0, reClassStart) + '\\[' + sp[0]
741
+ hasMagic = hasMagic || sp[1]
742
+ }
743
+
744
+ // handle the case where we had a +( thing at the *end*
745
+ // of the pattern.
746
+ // each pattern list stack adds 3 chars, and we need to go through
747
+ // and escape any | chars that were passed through as-is for the regexp.
748
+ // Go through and escape them, taking care not to double-escape any
749
+ // | chars that were already escaped.
750
+ for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
751
+ let tail
752
+ tail = re.slice(pl.reStart + pl.open.length)
753
+ this.debug('setting tail', re, pl)
754
+ // maybe some even number of \, then maybe 1 \, followed by a |
755
+ tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, (_, $1, $2) => {
756
+ /* istanbul ignore else - should already be done */
757
+ if (!$2) {
758
+ // the | isn't already escaped, so escape it.
759
+ $2 = '\\'
760
+ }
761
+
762
+ // need to escape all those slashes *again*, without escaping the
763
+ // one that we need for escaping the | character. As it works out,
764
+ // escaping an even number of slashes can be done by simply repeating
765
+ // it exactly after itself. That's why this trick works.
766
+ //
767
+ // I am sorry that you have to see this.
768
+ return $1 + $1 + $2 + '|'
769
+ })
770
+
771
+ this.debug('tail=%j\n %s', tail, tail, pl, re)
772
+ const t = pl.type === '*' ? star
773
+ : pl.type === '?' ? qmark
774
+ : '\\' + pl.type
775
+
776
+ hasMagic = true
777
+ re = re.slice(0, pl.reStart) + t + '\\(' + tail
778
+ }
779
+
780
+ // handle trailing things that only matter at the very end.
781
+ clearStateChar()
782
+ if (escaping) {
783
+ // trailing \\
784
+ re += '\\\\'
785
+ }
786
+
787
+ // only need to apply the nodot start if the re starts with
788
+ // something that could conceivably capture a dot
789
+ const addPatternStart = addPatternStartSet[re.charAt(0)]
790
+
791
+ // Hack to work around lack of negative lookbehind in JS
792
+ // A pattern like: *.!(x).!(y|z) needs to ensure that a name
793
+ // like 'a.xyz.yz' doesn't match. So, the first negative
794
+ // lookahead, has to look ALL the way ahead, to the end of
795
+ // the pattern.
796
+ for (let n = negativeLists.length - 1; n > -1; n--) {
797
+ const nl = negativeLists[n]
798
+
799
+ const nlBefore = re.slice(0, nl.reStart)
800
+ const nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
801
+ let nlAfter = re.slice(nl.reEnd)
802
+ const nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + nlAfter
803
+
804
+ // Handle nested stuff like *(*.js|!(*.json)), where open parens
805
+ // mean that we should *not* include the ) in the bit that is considered
806
+ // "after" the negated section.
807
+ const closeParensBefore = nlBefore.split(')').length
808
+ const openParensBefore = nlBefore.split('(').length - closeParensBefore
809
+ let cleanAfter = nlAfter
810
+ for (let i = 0; i < openParensBefore; i++) {
811
+ cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
812
+ }
813
+ nlAfter = cleanAfter
814
+
815
+ const dollar = nlAfter === '' && isSub !== SUBPARSE ? '(?:$|\\/)' : ''
816
+
817
+ re = nlBefore + nlFirst + nlAfter + dollar + nlLast
818
+ }
819
+
820
+ // if the re is not "" at this point, then we need to make sure
821
+ // it doesn't match against an empty path part.
822
+ // Otherwise a/* will match a/, which it should not.
823
+ if (re !== '' && hasMagic) {
824
+ re = '(?=.)' + re
825
+ }
826
+
827
+ if (addPatternStart) {
828
+ re = patternStart() + re
829
+ }
830
+
831
+ // parsing just a piece of a larger pattern.
832
+ if (isSub === SUBPARSE) {
833
+ return [re, hasMagic]
834
+ }
835
+
836
+ // if it's nocase, and the lcase/uppercase don't match, it's magic
837
+ if (options.nocase && !hasMagic) {
838
+ hasMagic = pattern.toUpperCase() !== pattern.toLowerCase()
839
+ }
840
+
841
+ // skip the regexp for non-magical patterns
842
+ // unescape anything in it, though, so that it'll be
843
+ // an exact match against a file etc.
844
+ if (!hasMagic) {
845
+ return globUnescape(pattern)
846
+ }
847
+
848
+ const flags = options.nocase ? 'i' : ''
849
+ try {
850
+ return Object.assign(new RegExp('^' + re + '$', flags), {
851
+ _glob: pattern,
852
+ _src: re,
853
+ })
854
+ } catch (er) /* istanbul ignore next - should be impossible */ {
855
+ // If it was an invalid regular expression, then it can't match
856
+ // anything. This trick looks for a character after the end of
857
+ // the string, which is of course impossible, except in multi-line
858
+ // mode, but it's not a /m regex.
859
+ return new RegExp('$.')
860
+ }
861
+ }
862
+
863
+ makeRe () {
864
+ if (this.regexp || this.regexp === false) return this.regexp
865
+
866
+ // at this point, this.set is a 2d array of partial
867
+ // pattern strings, or "**".
868
+ //
869
+ // It's better to use .match(). This function shouldn't
870
+ // be used, really, but it's pretty convenient sometimes,
871
+ // when you just want to work with a regex.
872
+ const set = this.set
873
+
874
+ if (!set.length) {
875
+ this.regexp = false
876
+ return this.regexp
877
+ }
878
+ const options = this.options
879
+
880
+ const twoStar = options.noglobstar ? star
881
+ : options.dot ? twoStarDot
882
+ : twoStarNoDot
883
+ const flags = options.nocase ? 'i' : ''
884
+
885
+ // coalesce globstars and regexpify non-globstar patterns
886
+ // if it's the only item, then we just do one twoStar
887
+ // if it's the first, and there are more, prepend (\/|twoStar\/)? to next
888
+ // if it's the last, append (\/twoStar|) to previous
889
+ // if it's in the middle, append (\/|\/twoStar\/) to previous
890
+ // then filter out GLOBSTAR symbols
891
+ let re = set.map(pattern => {
892
+ pattern = pattern.map(p =>
893
+ typeof p === 'string' ? regExpEscape(p)
894
+ : p === GLOBSTAR ? GLOBSTAR
895
+ : p._src
896
+ ).reduce((set, p) => {
897
+ if (!(set[set.length - 1] === GLOBSTAR && p === GLOBSTAR)) {
898
+ set.push(p)
899
+ }
900
+ return set
901
+ }, [])
902
+ pattern.forEach((p, i) => {
903
+ if (p !== GLOBSTAR || pattern[i-1] === GLOBSTAR) {
904
+ return
905
+ }
906
+ if (i === 0) {
907
+ if (pattern.length > 1) {
908
+ pattern[i+1] = '(?:\\\/|' + twoStar + '\\\/)?' + pattern[i+1]
909
+ } else {
910
+ pattern[i] = twoStar
911
+ }
912
+ } else if (i === pattern.length - 1) {
913
+ pattern[i-1] += '(?:\\\/|' + twoStar + ')?'
914
+ } else {
915
+ pattern[i-1] += '(?:\\\/|\\\/' + twoStar + '\\\/)' + pattern[i+1]
916
+ pattern[i+1] = GLOBSTAR
917
+ }
918
+ })
919
+ return pattern.filter(p => p !== GLOBSTAR).join('/')
920
+ }).join('|')
921
+
922
+ // must match entire pattern
923
+ // ending in a * or ** will make it less strict.
924
+ re = '^(?:' + re + ')$'
925
+
926
+ // can match anything, as long as it's not this.
927
+ if (this.negate) re = '^(?!' + re + ').*$'
928
+
929
+ try {
930
+ this.regexp = new RegExp(re, flags)
931
+ } catch (ex) /* istanbul ignore next - should be impossible */ {
932
+ this.regexp = false
933
+ }
934
+ return this.regexp
935
+ }
936
+
937
+ match (f, partial = this.partial) {
938
+ this.debug('match', f, this.pattern)
939
+ // short-circuit in the case of busted things.
940
+ // comments, etc.
941
+ if (this.comment) return false
942
+ if (this.empty) return f === ''
943
+
944
+ if (f === '/' && partial) return true
945
+
946
+ const options = this.options
947
+
948
+ // windows: need to use /, not \
949
+ if (path.sep !== '/') {
950
+ f = f.split(path.sep).join('/')
951
+ }
952
+
953
+ // treat the test path as a set of pathparts.
954
+ f = f.split(slashSplit)
955
+ this.debug(this.pattern, 'split', f)
956
+
957
+ // just ONE of the pattern sets in this.set needs to match
958
+ // in order for it to be valid. If negating, then just one
959
+ // match means that we have failed.
960
+ // Either way, return on the first hit.
961
+
962
+ const set = this.set
963
+ this.debug(this.pattern, 'set', set)
964
+
965
+ // Find the basename of the path by looking for the last non-empty segment
966
+ let filename
967
+ for (let i = f.length - 1; i >= 0; i--) {
968
+ filename = f[i]
969
+ if (filename) break
970
+ }
971
+
972
+ for (let i = 0; i < set.length; i++) {
973
+ const pattern = set[i]
974
+ let file = f
975
+ if (options.matchBase && pattern.length === 1) {
976
+ file = [filename]
977
+ }
978
+ const hit = this.matchOne(file, pattern, partial)
979
+ if (hit) {
980
+ if (options.flipNegate) return true
981
+ return !this.negate
982
+ }
983
+ }
984
+
985
+ // didn't get any hits. this is success if it's a negative
986
+ // pattern, failure otherwise.
987
+ if (options.flipNegate) return false
988
+ return this.negate
989
+ }
990
+
991
+ static defaults (def) {
992
+ return minimatch.defaults(def).Minimatch
993
+ }
994
+ }
995
+
996
+ minimatch.Minimatch = Minimatch