@dev-sergeev/datalab-kit 0.1.2 → 0.1.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 (355) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +23 -5
  3. package/THIRD_PARTY_NOTICES.md +6 -2
  4. package/docs/adr/0001-user-settings-priority.md +2 -0
  5. package/docs/adr/0002-package-delivery.md +8 -0
  6. package/node_modules/@pi-plugins/elapsed/LICENSE +21 -0
  7. package/node_modules/@pi-plugins/elapsed/README.md +45 -0
  8. package/node_modules/@pi-plugins/elapsed/dist/index.d.mts +8 -0
  9. package/node_modules/@pi-plugins/elapsed/dist/index.d.mts.map +1 -0
  10. package/node_modules/@pi-plugins/elapsed/dist/index.mjs +47 -0
  11. package/node_modules/@pi-plugins/elapsed/dist/index.mjs.map +1 -0
  12. package/node_modules/@pi-plugins/elapsed/package.json +65 -0
  13. package/node_modules/@tifan/pi-recap/README.md +61 -0
  14. package/node_modules/@tifan/pi-recap/package.json +43 -0
  15. package/node_modules/@tifan/pi-recap/src/index.ts +586 -0
  16. package/node_modules/@tifan/pi-recap/src/model-picker.ts +234 -0
  17. package/node_modules/@tifan/pi-recap/src/models.ts +180 -0
  18. package/node_modules/@tifan/pi-recap/src/sanitize.ts +119 -0
  19. package/node_modules/@tifan/pi-recap/src/tui.ts +155 -0
  20. package/node_modules/@zigai/pi-extension-internals/README.md +24 -0
  21. package/node_modules/@zigai/pi-extension-internals/dist/editor-enhancer-registry.d.ts +21 -0
  22. package/node_modules/@zigai/pi-extension-internals/dist/editor-enhancer-registry.js +233 -0
  23. package/node_modules/@zigai/pi-extension-internals/dist/index.d.ts +6 -0
  24. package/node_modules/@zigai/pi-extension-internals/dist/index.js +3 -0
  25. package/node_modules/@zigai/pi-extension-internals/dist/linked-method-patch.d.ts +34 -0
  26. package/node_modules/@zigai/pi-extension-internals/dist/linked-method-patch.js +272 -0
  27. package/node_modules/@zigai/pi-extension-internals/dist/pi-internal-import.d.ts +11 -0
  28. package/node_modules/@zigai/pi-extension-internals/dist/pi-internal-import.js +139 -0
  29. package/node_modules/@zigai/pi-extension-internals/package.json +41 -0
  30. package/node_modules/@zigai/pi-extension-settings/LICENSE +21 -0
  31. package/node_modules/@zigai/pi-extension-settings/README.md +36 -0
  32. package/node_modules/@zigai/pi-extension-settings/dist/artifacts.d.ts +23 -0
  33. package/node_modules/@zigai/pi-extension-settings/dist/artifacts.d.ts.map +1 -0
  34. package/node_modules/@zigai/pi-extension-settings/dist/artifacts.js +75 -0
  35. package/node_modules/@zigai/pi-extension-settings/dist/artifacts.js.map +1 -0
  36. package/node_modules/@zigai/pi-extension-settings/dist/cli-entry.d.ts +3 -0
  37. package/node_modules/@zigai/pi-extension-settings/dist/cli-entry.d.ts.map +1 -0
  38. package/node_modules/@zigai/pi-extension-settings/dist/cli-entry.js +5 -0
  39. package/node_modules/@zigai/pi-extension-settings/dist/cli-entry.js.map +1 -0
  40. package/node_modules/@zigai/pi-extension-settings/dist/cli.d.ts +6 -0
  41. package/node_modules/@zigai/pi-extension-settings/dist/cli.d.ts.map +1 -0
  42. package/node_modules/@zigai/pi-extension-settings/dist/cli.js +87 -0
  43. package/node_modules/@zigai/pi-extension-settings/dist/cli.js.map +1 -0
  44. package/node_modules/@zigai/pi-extension-settings/dist/definition-marker.d.ts +2 -0
  45. package/node_modules/@zigai/pi-extension-settings/dist/definition-marker.d.ts.map +1 -0
  46. package/node_modules/@zigai/pi-extension-settings/dist/definition-marker.js +2 -0
  47. package/node_modules/@zigai/pi-extension-settings/dist/definition-marker.js.map +1 -0
  48. package/node_modules/@zigai/pi-extension-settings/dist/definition.d.ts +159 -0
  49. package/node_modules/@zigai/pi-extension-settings/dist/definition.d.ts.map +1 -0
  50. package/node_modules/@zigai/pi-extension-settings/dist/definition.js +248 -0
  51. package/node_modules/@zigai/pi-extension-settings/dist/definition.js.map +1 -0
  52. package/node_modules/@zigai/pi-extension-settings/dist/file-system.d.ts +10 -0
  53. package/node_modules/@zigai/pi-extension-settings/dist/file-system.d.ts.map +1 -0
  54. package/node_modules/@zigai/pi-extension-settings/dist/file-system.js +115 -0
  55. package/node_modules/@zigai/pi-extension-settings/dist/file-system.js.map +1 -0
  56. package/node_modules/@zigai/pi-extension-settings/dist/index.d.ts +2 -0
  57. package/node_modules/@zigai/pi-extension-settings/dist/index.d.ts.map +1 -0
  58. package/node_modules/@zigai/pi-extension-settings/dist/index.js +2 -0
  59. package/node_modules/@zigai/pi-extension-settings/dist/index.js.map +1 -0
  60. package/node_modules/@zigai/pi-extension-settings/dist/json-value.d.ts +18 -0
  61. package/node_modules/@zigai/pi-extension-settings/dist/json-value.d.ts.map +1 -0
  62. package/node_modules/@zigai/pi-extension-settings/dist/json-value.js +56 -0
  63. package/node_modules/@zigai/pi-extension-settings/dist/json-value.js.map +1 -0
  64. package/node_modules/@zigai/pi-extension-settings/dist/paths.d.ts +11 -0
  65. package/node_modules/@zigai/pi-extension-settings/dist/paths.d.ts.map +1 -0
  66. package/node_modules/@zigai/pi-extension-settings/dist/paths.js +23 -0
  67. package/node_modules/@zigai/pi-extension-settings/dist/paths.js.map +1 -0
  68. package/node_modules/@zigai/pi-extension-settings/dist/pi-host-paths.d.ts +5 -0
  69. package/node_modules/@zigai/pi-extension-settings/dist/pi-host-paths.d.ts.map +1 -0
  70. package/node_modules/@zigai/pi-extension-settings/dist/pi-host-paths.js +21 -0
  71. package/node_modules/@zigai/pi-extension-settings/dist/pi-host-paths.js.map +1 -0
  72. package/node_modules/@zigai/pi-extension-settings/dist/pi.d.ts +106 -0
  73. package/node_modules/@zigai/pi-extension-settings/dist/pi.d.ts.map +1 -0
  74. package/node_modules/@zigai/pi-extension-settings/dist/pi.js +122 -0
  75. package/node_modules/@zigai/pi-extension-settings/dist/pi.js.map +1 -0
  76. package/node_modules/@zigai/pi-extension-settings/dist/pi.ts +2537 -0
  77. package/node_modules/@zigai/pi-extension-settings/dist/pi.ts.map +7 -0
  78. package/node_modules/@zigai/pi-extension-settings/dist/projects.d.ts +10 -0
  79. package/node_modules/@zigai/pi-extension-settings/dist/projects.d.ts.map +1 -0
  80. package/node_modules/@zigai/pi-extension-settings/dist/projects.js +177 -0
  81. package/node_modules/@zigai/pi-extension-settings/dist/projects.js.map +1 -0
  82. package/node_modules/@zigai/pi-extension-settings/dist/runtime.d.ts +40 -0
  83. package/node_modules/@zigai/pi-extension-settings/dist/runtime.d.ts.map +1 -0
  84. package/node_modules/@zigai/pi-extension-settings/dist/runtime.js +158 -0
  85. package/node_modules/@zigai/pi-extension-settings/dist/runtime.js.map +1 -0
  86. package/node_modules/@zigai/pi-extension-settings/dist/runtime.ts +158 -0
  87. package/node_modules/@zigai/pi-extension-settings/dist/runtime.ts.map +7 -0
  88. package/node_modules/@zigai/pi-extension-settings/dist/schema-document.d.ts +19 -0
  89. package/node_modules/@zigai/pi-extension-settings/dist/schema-document.d.ts.map +1 -0
  90. package/node_modules/@zigai/pi-extension-settings/dist/schema-document.js +168 -0
  91. package/node_modules/@zigai/pi-extension-settings/dist/schema-document.js.map +1 -0
  92. package/node_modules/@zigai/pi-extension-settings/dist/settings-documentation.d.ts +9 -0
  93. package/node_modules/@zigai/pi-extension-settings/dist/settings-documentation.d.ts.map +1 -0
  94. package/node_modules/@zigai/pi-extension-settings/dist/settings-documentation.js +242 -0
  95. package/node_modules/@zigai/pi-extension-settings/dist/settings-documentation.js.map +1 -0
  96. package/node_modules/@zigai/pi-extension-settings/dist/settings-layer.d.ts +59 -0
  97. package/node_modules/@zigai/pi-extension-settings/dist/settings-layer.d.ts.map +1 -0
  98. package/node_modules/@zigai/pi-extension-settings/dist/settings-layer.js +98 -0
  99. package/node_modules/@zigai/pi-extension-settings/dist/settings-layer.js.map +1 -0
  100. package/node_modules/@zigai/pi-extension-settings/dist/settings-loader.d.ts +80 -0
  101. package/node_modules/@zigai/pi-extension-settings/dist/settings-loader.d.ts.map +1 -0
  102. package/node_modules/@zigai/pi-extension-settings/dist/settings-loader.js +144 -0
  103. package/node_modules/@zigai/pi-extension-settings/dist/settings-loader.js.map +1 -0
  104. package/node_modules/@zigai/pi-extension-settings/dist/settings-merge.d.ts +5 -0
  105. package/node_modules/@zigai/pi-extension-settings/dist/settings-merge.d.ts.map +1 -0
  106. package/node_modules/@zigai/pi-extension-settings/dist/settings-merge.js +30 -0
  107. package/node_modules/@zigai/pi-extension-settings/dist/settings-merge.js.map +1 -0
  108. package/node_modules/@zigai/pi-extension-settings/dist/settings-revision.d.ts +10 -0
  109. package/node_modules/@zigai/pi-extension-settings/dist/settings-revision.d.ts.map +1 -0
  110. package/node_modules/@zigai/pi-extension-settings/dist/settings-revision.js +16 -0
  111. package/node_modules/@zigai/pi-extension-settings/dist/settings-revision.js.map +1 -0
  112. package/node_modules/@zigai/pi-extension-settings/dist/settings-transaction.d.ts +54 -0
  113. package/node_modules/@zigai/pi-extension-settings/dist/settings-transaction.d.ts.map +1 -0
  114. package/node_modules/@zigai/pi-extension-settings/dist/settings-transaction.js +202 -0
  115. package/node_modules/@zigai/pi-extension-settings/dist/settings-transaction.js.map +1 -0
  116. package/node_modules/@zigai/pi-extension-settings/dist/typebox-runtime.d.ts +5 -0
  117. package/node_modules/@zigai/pi-extension-settings/dist/typebox-runtime.d.ts.map +1 -0
  118. package/node_modules/@zigai/pi-extension-settings/dist/typebox-runtime.js +9 -0
  119. package/node_modules/@zigai/pi-extension-settings/dist/typebox-runtime.js.map +1 -0
  120. package/node_modules/@zigai/pi-extension-settings/docs/generation.md +71 -0
  121. package/node_modules/@zigai/pi-extension-settings/docs/manual-setup.md +98 -0
  122. package/node_modules/@zigai/pi-extension-settings/docs/runtime.md +100 -0
  123. package/node_modules/@zigai/pi-extension-settings/docs/ui-controls.md +31 -0
  124. package/node_modules/@zigai/pi-extension-settings/package.json +97 -0
  125. package/node_modules/@zigai/pi-mention-anything/README.md +113 -0
  126. package/node_modules/@zigai/pi-mention-anything/config.schema.json +313 -0
  127. package/node_modules/@zigai/pi-mention-anything/docs/command-protocol.md +106 -0
  128. package/node_modules/@zigai/pi-mention-anything/docs/providers.md +128 -0
  129. package/node_modules/@zigai/pi-mention-anything/examples/query-command.mjs +96 -0
  130. package/node_modules/@zigai/pi-mention-anything/examples/recursive-tree.ts +28 -0
  131. package/node_modules/@zigai/pi-mention-anything/examples/static.ts +28 -0
  132. package/node_modules/@zigai/pi-mention-anything/examples/tmux.ts +90 -0
  133. package/node_modules/@zigai/pi-mention-anything/examples/tree-settings.json +25 -0
  134. package/node_modules/@zigai/pi-mention-anything/package.json +58 -0
  135. package/node_modules/@zigai/pi-mention-anything/src/api.ts +75 -0
  136. package/node_modules/@zigai/pi-mention-anything/src/autocomplete.ts +231 -0
  137. package/node_modules/@zigai/pi-mention-anything/src/chain-autocomplete.ts +596 -0
  138. package/node_modules/@zigai/pi-mention-anything/src/chain-syntax.ts +345 -0
  139. package/node_modules/@zigai/pi-mention-anything/src/command-provider.ts +291 -0
  140. package/node_modules/@zigai/pi-mention-anything/src/configured-source.ts +66 -0
  141. package/node_modules/@zigai/pi-mention-anything/src/editor.ts +180 -0
  142. package/node_modules/@zigai/pi-mention-anything/src/expand-mentions.ts +162 -0
  143. package/node_modules/@zigai/pi-mention-anything/src/index.ts +54 -0
  144. package/node_modules/@zigai/pi-mention-anything/src/initial-suggestions.ts +190 -0
  145. package/node_modules/@zigai/pi-mention-anything/src/list-provider.ts +71 -0
  146. package/node_modules/@zigai/pi-mention-anything/src/mention-hub.ts +307 -0
  147. package/node_modules/@zigai/pi-mention-anything/src/mention-resolution.ts +374 -0
  148. package/node_modules/@zigai/pi-mention-anything/src/mention-syntax.ts +105 -0
  149. package/node_modules/@zigai/pi-mention-anything/src/register-mention.ts +89 -0
  150. package/node_modules/@zigai/pi-mention-anything/src/rendering.ts +53 -0
  151. package/node_modules/@zigai/pi-mention-anything/src/selected-items.ts +21 -0
  152. package/node_modules/@zigai/pi-mention-anything/src/selection-history.ts +135 -0
  153. package/node_modules/@zigai/pi-mention-anything/src/settings-input.ts +317 -0
  154. package/node_modules/@zigai/pi-mention-anything/src/settings.prevalidated.ts +57 -0
  155. package/node_modules/@zigai/pi-mention-anything/src/settings.ts +52 -0
  156. package/node_modules/@zigai/pi-mention-anything/src/source-contract.ts +174 -0
  157. package/node_modules/@zigai/pi-mention-anything/src/source-controller.ts +1070 -0
  158. package/node_modules/@zigai/pi-mention-anything/src/source-runtime.ts +99 -0
  159. package/node_modules/@zigai/pi-mention-skill/README.md +60 -0
  160. package/node_modules/@zigai/pi-mention-skill/config.schema.json +81 -0
  161. package/node_modules/@zigai/pi-mention-skill/package.json +56 -0
  162. package/node_modules/@zigai/pi-mention-skill/src/index.ts +60 -0
  163. package/node_modules/@zigai/pi-mention-skill/src/settings-input.ts +74 -0
  164. package/node_modules/@zigai/pi-mention-skill/src/settings.prevalidated.ts +18 -0
  165. package/node_modules/@zigai/pi-mention-skill/src/settings.ts +54 -0
  166. package/node_modules/@zigai/pi-mention-skill/src/skill-commands.ts +18 -0
  167. package/node_modules/@zigai/pi-mention-skill/src/skill-content.ts +60 -0
  168. package/node_modules/@zigai/pi-mention-skill/src/skill-provider.ts +105 -0
  169. package/node_modules/@zigai/pi-mention-skill/src/slash-skill-filter.ts +29 -0
  170. package/node_modules/argparse/LICENSE +21 -0
  171. package/node_modules/argparse/README.md +257 -0
  172. package/node_modules/argparse/index.js +3 -0
  173. package/node_modules/argparse/lib/action/append/constant.js +47 -0
  174. package/node_modules/argparse/lib/action/append.js +53 -0
  175. package/node_modules/argparse/lib/action/count.js +40 -0
  176. package/node_modules/argparse/lib/action/help.js +47 -0
  177. package/node_modules/argparse/lib/action/store/constant.js +43 -0
  178. package/node_modules/argparse/lib/action/store/false.js +27 -0
  179. package/node_modules/argparse/lib/action/store/true.js +26 -0
  180. package/node_modules/argparse/lib/action/store.js +50 -0
  181. package/node_modules/argparse/lib/action/subparsers.js +149 -0
  182. package/node_modules/argparse/lib/action/version.js +47 -0
  183. package/node_modules/argparse/lib/action.js +146 -0
  184. package/node_modules/argparse/lib/action_container.js +482 -0
  185. package/node_modules/argparse/lib/argparse.js +14 -0
  186. package/node_modules/argparse/lib/argument/error.js +50 -0
  187. package/node_modules/argparse/lib/argument/exclusive.js +54 -0
  188. package/node_modules/argparse/lib/argument/group.js +75 -0
  189. package/node_modules/argparse/lib/argument_parser.js +1161 -0
  190. package/node_modules/argparse/lib/const.js +21 -0
  191. package/node_modules/argparse/lib/help/added_formatters.js +87 -0
  192. package/node_modules/argparse/lib/help/formatter.js +795 -0
  193. package/node_modules/argparse/lib/namespace.js +76 -0
  194. package/node_modules/argparse/lib/utils.js +57 -0
  195. package/node_modules/argparse/package.json +34 -0
  196. package/node_modules/esprima/LICENSE.BSD +21 -0
  197. package/node_modules/esprima/README.md +46 -0
  198. package/node_modules/esprima/bin/esparse.js +139 -0
  199. package/node_modules/esprima/bin/esvalidate.js +236 -0
  200. package/node_modules/esprima/dist/esprima.js +6709 -0
  201. package/node_modules/esprima/package.json +112 -0
  202. package/node_modules/extend-shallow/LICENSE +21 -0
  203. package/node_modules/extend-shallow/README.md +61 -0
  204. package/node_modules/extend-shallow/index.js +33 -0
  205. package/node_modules/extend-shallow/package.json +56 -0
  206. package/node_modules/graceful-fs/LICENSE +15 -0
  207. package/node_modules/graceful-fs/README.md +143 -0
  208. package/node_modules/graceful-fs/clone.js +23 -0
  209. package/node_modules/graceful-fs/graceful-fs.js +448 -0
  210. package/node_modules/graceful-fs/legacy-streams.js +118 -0
  211. package/node_modules/graceful-fs/package.json +53 -0
  212. package/node_modules/graceful-fs/polyfills.js +355 -0
  213. package/node_modules/gray-matter/LICENSE +21 -0
  214. package/node_modules/gray-matter/README.md +565 -0
  215. package/node_modules/gray-matter/gray-matter.d.ts +114 -0
  216. package/node_modules/gray-matter/index.js +228 -0
  217. package/node_modules/gray-matter/lib/defaults.js +18 -0
  218. package/node_modules/gray-matter/lib/engine.js +30 -0
  219. package/node_modules/gray-matter/lib/engines.js +54 -0
  220. package/node_modules/gray-matter/lib/excerpt.js +32 -0
  221. package/node_modules/gray-matter/lib/parse.js +13 -0
  222. package/node_modules/gray-matter/lib/stringify.js +56 -0
  223. package/node_modules/gray-matter/lib/to-file.js +43 -0
  224. package/node_modules/gray-matter/lib/utils.js +66 -0
  225. package/node_modules/gray-matter/package.json +127 -0
  226. package/node_modules/is-extendable/LICENSE +21 -0
  227. package/node_modules/is-extendable/README.md +72 -0
  228. package/node_modules/is-extendable/index.js +13 -0
  229. package/node_modules/is-extendable/package.json +51 -0
  230. package/node_modules/js-yaml/LICENSE +21 -0
  231. package/node_modules/js-yaml/README.md +302 -0
  232. package/node_modules/js-yaml/bin/js-yaml.js +132 -0
  233. package/node_modules/js-yaml/dist/js-yaml.js +4024 -0
  234. package/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
  235. package/node_modules/js-yaml/index.js +7 -0
  236. package/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
  237. package/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
  238. package/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
  239. package/node_modules/js-yaml/lib/js-yaml/loader.js +1679 -0
  240. package/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
  241. package/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  242. package/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  243. package/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  244. package/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  245. package/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  246. package/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
  247. package/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
  248. package/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
  249. package/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
  250. package/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
  251. package/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
  252. package/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
  253. package/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
  254. package/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  255. package/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  256. package/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
  257. package/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
  258. package/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
  259. package/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  260. package/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
  261. package/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  262. package/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
  263. package/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  264. package/node_modules/js-yaml/lib/js-yaml.js +39 -0
  265. package/node_modules/js-yaml/package.json +52 -0
  266. package/node_modules/kind-of/LICENSE +21 -0
  267. package/node_modules/kind-of/README.md +367 -0
  268. package/node_modules/kind-of/index.js +129 -0
  269. package/node_modules/kind-of/package.json +88 -0
  270. package/node_modules/node-addon-api/common 2.gypi +21 -0
  271. package/node_modules/node-addon-api/except 2.gypi +25 -0
  272. package/node_modules/node-addon-api/napi 2.h +3463 -0
  273. package/node_modules/node-addon-api/napi-inl 2.h +7250 -0
  274. package/node_modules/node-addon-api/napi-inl.deprecated 2.h +186 -0
  275. package/node_modules/node-addon-api/node_addon_api 2.gyp +42 -0
  276. package/node_modules/node-addon-api/node_api 2.gyp +9 -0
  277. package/node_modules/node-addon-api/noexcept 2.gypi +26 -0
  278. package/node_modules/node-addon-api/nothing 2.c +0 -0
  279. package/node_modules/pi-toggle-skills/README.md +213 -0
  280. package/node_modules/pi-toggle-skills/package.json +60 -0
  281. package/node_modules/pi-toggle-skills/src/index.ts +112 -0
  282. package/node_modules/pi-toggle-skills/src/skill-discovery.ts +258 -0
  283. package/node_modules/pi-toggle-skills/src/skill-selector.ts +435 -0
  284. package/node_modules/pi-toggle-skills/toggle-skills 2.ts +316 -0
  285. package/node_modules/pi-toggle-skills/toggle-skills.ts +316 -0
  286. package/node_modules/pi-toggle-skills/vitest.config 2.ts +15 -0
  287. package/node_modules/pi-toggle-skills/vitest.config.ts +15 -0
  288. package/node_modules/proper-lockfile/LICENSE +21 -0
  289. package/node_modules/proper-lockfile/README.md +183 -0
  290. package/node_modules/proper-lockfile/index.js +40 -0
  291. package/node_modules/proper-lockfile/lib/adapter.js +85 -0
  292. package/node_modules/proper-lockfile/lib/lockfile.js +342 -0
  293. package/node_modules/proper-lockfile/lib/mtime-precision.js +55 -0
  294. package/node_modules/proper-lockfile/node_modules/retry/.npmignore +3 -0
  295. package/node_modules/proper-lockfile/node_modules/retry/.travis.yml +15 -0
  296. package/node_modules/proper-lockfile/node_modules/retry/License +21 -0
  297. package/node_modules/proper-lockfile/node_modules/retry/Makefile +18 -0
  298. package/node_modules/proper-lockfile/node_modules/retry/README.md +227 -0
  299. package/node_modules/proper-lockfile/node_modules/retry/equation.gif +0 -0
  300. package/node_modules/proper-lockfile/node_modules/retry/example/dns.js +31 -0
  301. package/node_modules/proper-lockfile/node_modules/retry/example/stop.js +40 -0
  302. package/node_modules/proper-lockfile/node_modules/retry/index.js +1 -0
  303. package/node_modules/proper-lockfile/node_modules/retry/lib/retry.js +100 -0
  304. package/node_modules/proper-lockfile/node_modules/retry/lib/retry_operation.js +158 -0
  305. package/node_modules/proper-lockfile/node_modules/retry/package.json +32 -0
  306. package/node_modules/proper-lockfile/node_modules/retry/test/common.js +10 -0
  307. package/node_modules/proper-lockfile/node_modules/retry/test/integration/test-forever.js +24 -0
  308. package/node_modules/proper-lockfile/node_modules/retry/test/integration/test-retry-operation.js +258 -0
  309. package/node_modules/proper-lockfile/node_modules/retry/test/integration/test-retry-wrap.js +101 -0
  310. package/node_modules/proper-lockfile/node_modules/retry/test/integration/test-timeouts.js +69 -0
  311. package/node_modules/proper-lockfile/package.json +71 -0
  312. package/node_modules/section-matter/LICENSE +21 -0
  313. package/node_modules/section-matter/README.md +236 -0
  314. package/node_modules/section-matter/index.js +136 -0
  315. package/node_modules/section-matter/package.json +55 -0
  316. package/node_modules/signal-exit/LICENSE.txt +16 -0
  317. package/node_modules/signal-exit/README.md +39 -0
  318. package/node_modules/signal-exit/index.js +202 -0
  319. package/node_modules/signal-exit/package.json +38 -0
  320. package/node_modules/signal-exit/signals.js +53 -0
  321. package/node_modules/sprintf-js/.npmignore +1 -0
  322. package/node_modules/sprintf-js/.npmignore 2 +1 -0
  323. package/node_modules/sprintf-js/LICENSE +24 -0
  324. package/node_modules/sprintf-js/LICENSE 2 +24 -0
  325. package/node_modules/sprintf-js/README 2.md +88 -0
  326. package/node_modules/sprintf-js/README.md +88 -0
  327. package/node_modules/sprintf-js/bower 2.json +14 -0
  328. package/node_modules/sprintf-js/bower.json +14 -0
  329. package/node_modules/sprintf-js/demo/angular.html +20 -0
  330. package/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
  331. package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
  332. package/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
  333. package/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
  334. package/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
  335. package/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
  336. package/node_modules/sprintf-js/gruntfile 2.js +36 -0
  337. package/node_modules/sprintf-js/gruntfile.js +36 -0
  338. package/node_modules/sprintf-js/package 2.json +22 -0
  339. package/node_modules/sprintf-js/package.json +22 -0
  340. package/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
  341. package/node_modules/sprintf-js/src/sprintf.js +208 -0
  342. package/node_modules/sprintf-js/test/test.js +82 -0
  343. package/node_modules/strip-bom-string/LICENSE +21 -0
  344. package/node_modules/strip-bom-string/README.md +66 -0
  345. package/node_modules/strip-bom-string/index.js +15 -0
  346. package/node_modules/strip-bom-string/package.json +60 -0
  347. package/node_modules/tree-sitter-bash/tree-sitter-bash 2.wasm +0 -0
  348. package/node_modules/typebox/license 2 +23 -0
  349. package/node_modules/typebox/package 2.json +87 -0
  350. package/node_modules/typebox/readme 2.md +370 -0
  351. package/node_modules/zod/compile 2.cjs +96 -0
  352. package/node_modules/zod/compile 2.js +52 -0
  353. package/node_modules/zod/index 2.cjs +52 -0
  354. package/node_modules/zod/index 2.js +7 -0
  355. package/package.json +13 -4
@@ -0,0 +1,795 @@
1
+ /**
2
+ * class HelpFormatter
3
+ *
4
+ * Formatter for generating usage messages and argument help strings. Only the
5
+ * name of this class is considered a public API. All the methods provided by
6
+ * the class are considered an implementation detail.
7
+ *
8
+ * Do not call in your code, use this class only for inherits your own forvatter
9
+ *
10
+ * ToDo add [additonal formatters][1]
11
+ *
12
+ * [1]:http://docs.python.org/dev/library/argparse.html#formatter-class
13
+ **/
14
+ 'use strict';
15
+
16
+ var sprintf = require('sprintf-js').sprintf;
17
+
18
+ // Constants
19
+ var c = require('../const');
20
+
21
+ var $$ = require('../utils');
22
+
23
+
24
+ /*:nodoc:* internal
25
+ * new Support(parent, heding)
26
+ * - parent (object): parent section
27
+ * - heading (string): header string
28
+ *
29
+ **/
30
+ function Section(parent, heading) {
31
+ this._parent = parent;
32
+ this._heading = heading;
33
+ this._items = [];
34
+ }
35
+
36
+ /*:nodoc:* internal
37
+ * Section#addItem(callback) -> Void
38
+ * - callback (array): tuple with function and args
39
+ *
40
+ * Add function for single element
41
+ **/
42
+ Section.prototype.addItem = function (callback) {
43
+ this._items.push(callback);
44
+ };
45
+
46
+ /*:nodoc:* internal
47
+ * Section#formatHelp(formatter) -> string
48
+ * - formatter (HelpFormatter): current formatter
49
+ *
50
+ * Form help section string
51
+ *
52
+ **/
53
+ Section.prototype.formatHelp = function (formatter) {
54
+ var itemHelp, heading;
55
+
56
+ // format the indented section
57
+ if (this._parent) {
58
+ formatter._indent();
59
+ }
60
+
61
+ itemHelp = this._items.map(function (item) {
62
+ var obj, func, args;
63
+
64
+ obj = formatter;
65
+ func = item[0];
66
+ args = item[1];
67
+ return func.apply(obj, args);
68
+ });
69
+ itemHelp = formatter._joinParts(itemHelp);
70
+
71
+ if (this._parent) {
72
+ formatter._dedent();
73
+ }
74
+
75
+ // return nothing if the section was empty
76
+ if (!itemHelp) {
77
+ return '';
78
+ }
79
+
80
+ // add the heading if the section was non-empty
81
+ heading = '';
82
+ if (this._heading && this._heading !== c.SUPPRESS) {
83
+ var currentIndent = formatter.currentIndent;
84
+ heading = $$.repeat(' ', currentIndent) + this._heading + ':' + c.EOL;
85
+ }
86
+
87
+ // join the section-initialize newline, the heading and the help
88
+ return formatter._joinParts([ c.EOL, heading, itemHelp, c.EOL ]);
89
+ };
90
+
91
+ /**
92
+ * new HelpFormatter(options)
93
+ *
94
+ * #### Options:
95
+ * - `prog`: program name
96
+ * - `indentIncriment`: indent step, default value 2
97
+ * - `maxHelpPosition`: max help position, default value = 24
98
+ * - `width`: line width
99
+ *
100
+ **/
101
+ var HelpFormatter = module.exports = function HelpFormatter(options) {
102
+ options = options || {};
103
+
104
+ this._prog = options.prog;
105
+
106
+ this._maxHelpPosition = options.maxHelpPosition || 24;
107
+ this._width = (options.width || ((process.env.COLUMNS || 80) - 2));
108
+
109
+ this._currentIndent = 0;
110
+ this._indentIncriment = options.indentIncriment || 2;
111
+ this._level = 0;
112
+ this._actionMaxLength = 0;
113
+
114
+ this._rootSection = new Section(null);
115
+ this._currentSection = this._rootSection;
116
+
117
+ this._whitespaceMatcher = new RegExp('\\s+', 'g');
118
+ this._longBreakMatcher = new RegExp(c.EOL + c.EOL + c.EOL + '+', 'g');
119
+ };
120
+
121
+ HelpFormatter.prototype._indent = function () {
122
+ this._currentIndent += this._indentIncriment;
123
+ this._level += 1;
124
+ };
125
+
126
+ HelpFormatter.prototype._dedent = function () {
127
+ this._currentIndent -= this._indentIncriment;
128
+ this._level -= 1;
129
+ if (this._currentIndent < 0) {
130
+ throw new Error('Indent decreased below 0.');
131
+ }
132
+ };
133
+
134
+ HelpFormatter.prototype._addItem = function (func, args) {
135
+ this._currentSection.addItem([ func, args ]);
136
+ };
137
+
138
+ //
139
+ // Message building methods
140
+ //
141
+
142
+ /**
143
+ * HelpFormatter#startSection(heading) -> Void
144
+ * - heading (string): header string
145
+ *
146
+ * Start new help section
147
+ *
148
+ * See alse [code example][1]
149
+ *
150
+ * ##### Example
151
+ *
152
+ * formatter.startSection(actionGroup.title);
153
+ * formatter.addText(actionGroup.description);
154
+ * formatter.addArguments(actionGroup._groupActions);
155
+ * formatter.endSection();
156
+ *
157
+ **/
158
+ HelpFormatter.prototype.startSection = function (heading) {
159
+ this._indent();
160
+ var section = new Section(this._currentSection, heading);
161
+ var func = section.formatHelp.bind(section);
162
+ this._addItem(func, [ this ]);
163
+ this._currentSection = section;
164
+ };
165
+
166
+ /**
167
+ * HelpFormatter#endSection -> Void
168
+ *
169
+ * End help section
170
+ *
171
+ * ##### Example
172
+ *
173
+ * formatter.startSection(actionGroup.title);
174
+ * formatter.addText(actionGroup.description);
175
+ * formatter.addArguments(actionGroup._groupActions);
176
+ * formatter.endSection();
177
+ **/
178
+ HelpFormatter.prototype.endSection = function () {
179
+ this._currentSection = this._currentSection._parent;
180
+ this._dedent();
181
+ };
182
+
183
+ /**
184
+ * HelpFormatter#addText(text) -> Void
185
+ * - text (string): plain text
186
+ *
187
+ * Add plain text into current section
188
+ *
189
+ * ##### Example
190
+ *
191
+ * formatter.startSection(actionGroup.title);
192
+ * formatter.addText(actionGroup.description);
193
+ * formatter.addArguments(actionGroup._groupActions);
194
+ * formatter.endSection();
195
+ *
196
+ **/
197
+ HelpFormatter.prototype.addText = function (text) {
198
+ if (text && text !== c.SUPPRESS) {
199
+ this._addItem(this._formatText, [ text ]);
200
+ }
201
+ };
202
+
203
+ /**
204
+ * HelpFormatter#addUsage(usage, actions, groups, prefix) -> Void
205
+ * - usage (string): usage text
206
+ * - actions (array): actions list
207
+ * - groups (array): groups list
208
+ * - prefix (string): usage prefix
209
+ *
210
+ * Add usage data into current section
211
+ *
212
+ * ##### Example
213
+ *
214
+ * formatter.addUsage(this.usage, this._actions, []);
215
+ * return formatter.formatHelp();
216
+ *
217
+ **/
218
+ HelpFormatter.prototype.addUsage = function (usage, actions, groups, prefix) {
219
+ if (usage !== c.SUPPRESS) {
220
+ this._addItem(this._formatUsage, [ usage, actions, groups, prefix ]);
221
+ }
222
+ };
223
+
224
+ /**
225
+ * HelpFormatter#addArgument(action) -> Void
226
+ * - action (object): action
227
+ *
228
+ * Add argument into current section
229
+ *
230
+ * Single variant of [[HelpFormatter#addArguments]]
231
+ **/
232
+ HelpFormatter.prototype.addArgument = function (action) {
233
+ if (action.help !== c.SUPPRESS) {
234
+ var self = this;
235
+
236
+ // find all invocations
237
+ var invocations = [ this._formatActionInvocation(action) ];
238
+ var invocationLength = invocations[0].length;
239
+
240
+ var actionLength;
241
+
242
+ if (action._getSubactions) {
243
+ this._indent();
244
+ action._getSubactions().forEach(function (subaction) {
245
+
246
+ var invocationNew = self._formatActionInvocation(subaction);
247
+ invocations.push(invocationNew);
248
+ invocationLength = Math.max(invocationLength, invocationNew.length);
249
+
250
+ });
251
+ this._dedent();
252
+ }
253
+
254
+ // update the maximum item length
255
+ actionLength = invocationLength + this._currentIndent;
256
+ this._actionMaxLength = Math.max(this._actionMaxLength, actionLength);
257
+
258
+ // add the item to the list
259
+ this._addItem(this._formatAction, [ action ]);
260
+ }
261
+ };
262
+
263
+ /**
264
+ * HelpFormatter#addArguments(actions) -> Void
265
+ * - actions (array): actions list
266
+ *
267
+ * Mass add arguments into current section
268
+ *
269
+ * ##### Example
270
+ *
271
+ * formatter.startSection(actionGroup.title);
272
+ * formatter.addText(actionGroup.description);
273
+ * formatter.addArguments(actionGroup._groupActions);
274
+ * formatter.endSection();
275
+ *
276
+ **/
277
+ HelpFormatter.prototype.addArguments = function (actions) {
278
+ var self = this;
279
+ actions.forEach(function (action) {
280
+ self.addArgument(action);
281
+ });
282
+ };
283
+
284
+ //
285
+ // Help-formatting methods
286
+ //
287
+
288
+ /**
289
+ * HelpFormatter#formatHelp -> string
290
+ *
291
+ * Format help
292
+ *
293
+ * ##### Example
294
+ *
295
+ * formatter.addText(this.epilog);
296
+ * return formatter.formatHelp();
297
+ *
298
+ **/
299
+ HelpFormatter.prototype.formatHelp = function () {
300
+ var help = this._rootSection.formatHelp(this);
301
+ if (help) {
302
+ help = help.replace(this._longBreakMatcher, c.EOL + c.EOL);
303
+ help = $$.trimChars(help, c.EOL) + c.EOL;
304
+ }
305
+ return help;
306
+ };
307
+
308
+ HelpFormatter.prototype._joinParts = function (partStrings) {
309
+ return partStrings.filter(function (part) {
310
+ return (part && part !== c.SUPPRESS);
311
+ }).join('');
312
+ };
313
+
314
+ HelpFormatter.prototype._formatUsage = function (usage, actions, groups, prefix) {
315
+ if (!prefix && typeof prefix !== 'string') {
316
+ prefix = 'usage: ';
317
+ }
318
+
319
+ actions = actions || [];
320
+ groups = groups || [];
321
+
322
+
323
+ // if usage is specified, use that
324
+ if (usage) {
325
+ usage = sprintf(usage, { prog: this._prog });
326
+
327
+ // if no optionals or positionals are available, usage is just prog
328
+ } else if (!usage && actions.length === 0) {
329
+ usage = this._prog;
330
+
331
+ // if optionals and positionals are available, calculate usage
332
+ } else if (!usage) {
333
+ var prog = this._prog;
334
+ var optionals = [];
335
+ var positionals = [];
336
+ var actionUsage;
337
+ var textWidth;
338
+
339
+ // split optionals from positionals
340
+ actions.forEach(function (action) {
341
+ if (action.isOptional()) {
342
+ optionals.push(action);
343
+ } else {
344
+ positionals.push(action);
345
+ }
346
+ });
347
+
348
+ // build full usage string
349
+ actionUsage = this._formatActionsUsage([].concat(optionals, positionals), groups);
350
+ usage = [ prog, actionUsage ].join(' ');
351
+
352
+ // wrap the usage parts if it's too long
353
+ textWidth = this._width - this._currentIndent;
354
+ if ((prefix.length + usage.length) > textWidth) {
355
+
356
+ // break usage into wrappable parts
357
+ var regexpPart = new RegExp('\\(.*?\\)+|\\[.*?\\]+|\\S+', 'g');
358
+ var optionalUsage = this._formatActionsUsage(optionals, groups);
359
+ var positionalUsage = this._formatActionsUsage(positionals, groups);
360
+
361
+
362
+ var optionalParts = optionalUsage.match(regexpPart);
363
+ var positionalParts = positionalUsage.match(regexpPart) || [];
364
+
365
+ if (optionalParts.join(' ') !== optionalUsage) {
366
+ throw new Error('assert "optionalParts.join(\' \') === optionalUsage"');
367
+ }
368
+ if (positionalParts.join(' ') !== positionalUsage) {
369
+ throw new Error('assert "positionalParts.join(\' \') === positionalUsage"');
370
+ }
371
+
372
+ // helper for wrapping lines
373
+ /*eslint-disable func-style*/ // node 0.10 compat
374
+ var _getLines = function (parts, indent, prefix) {
375
+ var lines = [];
376
+ var line = [];
377
+
378
+ var lineLength = prefix ? prefix.length - 1 : indent.length - 1;
379
+
380
+ parts.forEach(function (part) {
381
+ if (lineLength + 1 + part.length > textWidth) {
382
+ lines.push(indent + line.join(' '));
383
+ line = [];
384
+ lineLength = indent.length - 1;
385
+ }
386
+ line.push(part);
387
+ lineLength += part.length + 1;
388
+ });
389
+
390
+ if (line) {
391
+ lines.push(indent + line.join(' '));
392
+ }
393
+ if (prefix) {
394
+ lines[0] = lines[0].substr(indent.length);
395
+ }
396
+ return lines;
397
+ };
398
+
399
+ var lines, indent, parts;
400
+ // if prog is short, follow it with optionals or positionals
401
+ if (prefix.length + prog.length <= 0.75 * textWidth) {
402
+ indent = $$.repeat(' ', (prefix.length + prog.length + 1));
403
+ if (optionalParts) {
404
+ lines = [].concat(
405
+ _getLines([ prog ].concat(optionalParts), indent, prefix),
406
+ _getLines(positionalParts, indent)
407
+ );
408
+ } else if (positionalParts) {
409
+ lines = _getLines([ prog ].concat(positionalParts), indent, prefix);
410
+ } else {
411
+ lines = [ prog ];
412
+ }
413
+
414
+ // if prog is long, put it on its own line
415
+ } else {
416
+ indent = $$.repeat(' ', prefix.length);
417
+ parts = optionalParts.concat(positionalParts);
418
+ lines = _getLines(parts, indent);
419
+ if (lines.length > 1) {
420
+ lines = [].concat(
421
+ _getLines(optionalParts, indent),
422
+ _getLines(positionalParts, indent)
423
+ );
424
+ }
425
+ lines = [ prog ].concat(lines);
426
+ }
427
+ // join lines into usage
428
+ usage = lines.join(c.EOL);
429
+ }
430
+ }
431
+
432
+ // prefix with 'usage:'
433
+ return prefix + usage + c.EOL + c.EOL;
434
+ };
435
+
436
+ HelpFormatter.prototype._formatActionsUsage = function (actions, groups) {
437
+ // find group indices and identify actions in groups
438
+ var groupActions = [];
439
+ var inserts = [];
440
+ var self = this;
441
+
442
+ groups.forEach(function (group) {
443
+ var end;
444
+ var i;
445
+
446
+ var start = actions.indexOf(group._groupActions[0]);
447
+ if (start >= 0) {
448
+ end = start + group._groupActions.length;
449
+
450
+ //if (actions.slice(start, end) === group._groupActions) {
451
+ if ($$.arrayEqual(actions.slice(start, end), group._groupActions)) {
452
+ group._groupActions.forEach(function (action) {
453
+ groupActions.push(action);
454
+ });
455
+
456
+ if (!group.required) {
457
+ if (inserts[start]) {
458
+ inserts[start] += ' [';
459
+ } else {
460
+ inserts[start] = '[';
461
+ }
462
+ inserts[end] = ']';
463
+ } else {
464
+ if (inserts[start]) {
465
+ inserts[start] += ' (';
466
+ } else {
467
+ inserts[start] = '(';
468
+ }
469
+ inserts[end] = ')';
470
+ }
471
+ for (i = start + 1; i < end; i += 1) {
472
+ inserts[i] = '|';
473
+ }
474
+ }
475
+ }
476
+ });
477
+
478
+ // collect all actions format strings
479
+ var parts = [];
480
+
481
+ actions.forEach(function (action, actionIndex) {
482
+ var part;
483
+ var optionString;
484
+ var argsDefault;
485
+ var argsString;
486
+
487
+ // suppressed arguments are marked with None
488
+ // remove | separators for suppressed arguments
489
+ if (action.help === c.SUPPRESS) {
490
+ parts.push(null);
491
+ if (inserts[actionIndex] === '|') {
492
+ inserts.splice(actionIndex, actionIndex);
493
+ } else if (inserts[actionIndex + 1] === '|') {
494
+ inserts.splice(actionIndex + 1, actionIndex + 1);
495
+ }
496
+
497
+ // produce all arg strings
498
+ } else if (!action.isOptional()) {
499
+ part = self._formatArgs(action, action.dest);
500
+
501
+ // if it's in a group, strip the outer []
502
+ if (groupActions.indexOf(action) >= 0) {
503
+ if (part[0] === '[' && part[part.length - 1] === ']') {
504
+ part = part.slice(1, -1);
505
+ }
506
+ }
507
+ // add the action string to the list
508
+ parts.push(part);
509
+
510
+ // produce the first way to invoke the option in brackets
511
+ } else {
512
+ optionString = action.optionStrings[0];
513
+
514
+ // if the Optional doesn't take a value, format is: -s or --long
515
+ if (action.nargs === 0) {
516
+ part = '' + optionString;
517
+
518
+ // if the Optional takes a value, format is: -s ARGS or --long ARGS
519
+ } else {
520
+ argsDefault = action.dest.toUpperCase();
521
+ argsString = self._formatArgs(action, argsDefault);
522
+ part = optionString + ' ' + argsString;
523
+ }
524
+ // make it look optional if it's not required or in a group
525
+ if (!action.required && groupActions.indexOf(action) < 0) {
526
+ part = '[' + part + ']';
527
+ }
528
+ // add the action string to the list
529
+ parts.push(part);
530
+ }
531
+ });
532
+
533
+ // insert things at the necessary indices
534
+ for (var i = inserts.length - 1; i >= 0; --i) {
535
+ if (inserts[i] !== null) {
536
+ parts.splice(i, 0, inserts[i]);
537
+ }
538
+ }
539
+
540
+ // join all the action items with spaces
541
+ var text = parts.filter(function (part) {
542
+ return !!part;
543
+ }).join(' ');
544
+
545
+ // clean up separators for mutually exclusive groups
546
+ text = text.replace(/([\[(]) /g, '$1'); // remove spaces
547
+ text = text.replace(/ ([\])])/g, '$1');
548
+ text = text.replace(/\[ *\]/g, ''); // remove empty groups
549
+ text = text.replace(/\( *\)/g, '');
550
+ text = text.replace(/\(([^|]*)\)/g, '$1'); // remove () from single action groups
551
+
552
+ text = text.trim();
553
+
554
+ // return the text
555
+ return text;
556
+ };
557
+
558
+ HelpFormatter.prototype._formatText = function (text) {
559
+ text = sprintf(text, { prog: this._prog });
560
+ var textWidth = this._width - this._currentIndent;
561
+ var indentIncriment = $$.repeat(' ', this._currentIndent);
562
+ return this._fillText(text, textWidth, indentIncriment) + c.EOL + c.EOL;
563
+ };
564
+
565
+ HelpFormatter.prototype._formatAction = function (action) {
566
+ var self = this;
567
+
568
+ var helpText;
569
+ var helpLines;
570
+ var parts;
571
+ var indentFirst;
572
+
573
+ // determine the required width and the entry label
574
+ var helpPosition = Math.min(this._actionMaxLength + 2, this._maxHelpPosition);
575
+ var helpWidth = this._width - helpPosition;
576
+ var actionWidth = helpPosition - this._currentIndent - 2;
577
+ var actionHeader = this._formatActionInvocation(action);
578
+
579
+ // no help; start on same line and add a final newline
580
+ if (!action.help) {
581
+ actionHeader = $$.repeat(' ', this._currentIndent) + actionHeader + c.EOL;
582
+
583
+ // short action name; start on the same line and pad two spaces
584
+ } else if (actionHeader.length <= actionWidth) {
585
+ actionHeader = $$.repeat(' ', this._currentIndent) +
586
+ actionHeader +
587
+ ' ' +
588
+ $$.repeat(' ', actionWidth - actionHeader.length);
589
+ indentFirst = 0;
590
+
591
+ // long action name; start on the next line
592
+ } else {
593
+ actionHeader = $$.repeat(' ', this._currentIndent) + actionHeader + c.EOL;
594
+ indentFirst = helpPosition;
595
+ }
596
+
597
+ // collect the pieces of the action help
598
+ parts = [ actionHeader ];
599
+
600
+ // if there was help for the action, add lines of help text
601
+ if (action.help) {
602
+ helpText = this._expandHelp(action);
603
+ helpLines = this._splitLines(helpText, helpWidth);
604
+ parts.push($$.repeat(' ', indentFirst) + helpLines[0] + c.EOL);
605
+ helpLines.slice(1).forEach(function (line) {
606
+ parts.push($$.repeat(' ', helpPosition) + line + c.EOL);
607
+ });
608
+
609
+ // or add a newline if the description doesn't end with one
610
+ } else if (actionHeader.charAt(actionHeader.length - 1) !== c.EOL) {
611
+ parts.push(c.EOL);
612
+ }
613
+ // if there are any sub-actions, add their help as well
614
+ if (action._getSubactions) {
615
+ this._indent();
616
+ action._getSubactions().forEach(function (subaction) {
617
+ parts.push(self._formatAction(subaction));
618
+ });
619
+ this._dedent();
620
+ }
621
+ // return a single string
622
+ return this._joinParts(parts);
623
+ };
624
+
625
+ HelpFormatter.prototype._formatActionInvocation = function (action) {
626
+ if (!action.isOptional()) {
627
+ var format_func = this._metavarFormatter(action, action.dest);
628
+ var metavars = format_func(1);
629
+ return metavars[0];
630
+ }
631
+
632
+ var parts = [];
633
+ var argsDefault;
634
+ var argsString;
635
+
636
+ // if the Optional doesn't take a value, format is: -s, --long
637
+ if (action.nargs === 0) {
638
+ parts = parts.concat(action.optionStrings);
639
+
640
+ // if the Optional takes a value, format is: -s ARGS, --long ARGS
641
+ } else {
642
+ argsDefault = action.dest.toUpperCase();
643
+ argsString = this._formatArgs(action, argsDefault);
644
+ action.optionStrings.forEach(function (optionString) {
645
+ parts.push(optionString + ' ' + argsString);
646
+ });
647
+ }
648
+ return parts.join(', ');
649
+ };
650
+
651
+ HelpFormatter.prototype._metavarFormatter = function (action, metavarDefault) {
652
+ var result;
653
+
654
+ if (action.metavar || action.metavar === '') {
655
+ result = action.metavar;
656
+ } else if (action.choices) {
657
+ var choices = action.choices;
658
+
659
+ if (typeof choices === 'string') {
660
+ choices = choices.split('').join(', ');
661
+ } else if (Array.isArray(choices)) {
662
+ choices = choices.join(',');
663
+ } else {
664
+ choices = Object.keys(choices).join(',');
665
+ }
666
+ result = '{' + choices + '}';
667
+ } else {
668
+ result = metavarDefault;
669
+ }
670
+
671
+ return function (size) {
672
+ if (Array.isArray(result)) {
673
+ return result;
674
+ }
675
+
676
+ var metavars = [];
677
+ for (var i = 0; i < size; i += 1) {
678
+ metavars.push(result);
679
+ }
680
+ return metavars;
681
+ };
682
+ };
683
+
684
+ HelpFormatter.prototype._formatArgs = function (action, metavarDefault) {
685
+ var result;
686
+ var metavars;
687
+
688
+ var buildMetavar = this._metavarFormatter(action, metavarDefault);
689
+
690
+ switch (action.nargs) {
691
+ /*eslint-disable no-undefined*/
692
+ case undefined:
693
+ case null:
694
+ metavars = buildMetavar(1);
695
+ result = '' + metavars[0];
696
+ break;
697
+ case c.OPTIONAL:
698
+ metavars = buildMetavar(1);
699
+ result = '[' + metavars[0] + ']';
700
+ break;
701
+ case c.ZERO_OR_MORE:
702
+ metavars = buildMetavar(2);
703
+ result = '[' + metavars[0] + ' [' + metavars[1] + ' ...]]';
704
+ break;
705
+ case c.ONE_OR_MORE:
706
+ metavars = buildMetavar(2);
707
+ result = '' + metavars[0] + ' [' + metavars[1] + ' ...]';
708
+ break;
709
+ case c.REMAINDER:
710
+ result = '...';
711
+ break;
712
+ case c.PARSER:
713
+ metavars = buildMetavar(1);
714
+ result = metavars[0] + ' ...';
715
+ break;
716
+ default:
717
+ metavars = buildMetavar(action.nargs);
718
+ result = metavars.join(' ');
719
+ }
720
+ return result;
721
+ };
722
+
723
+ HelpFormatter.prototype._expandHelp = function (action) {
724
+ var params = { prog: this._prog };
725
+
726
+ Object.keys(action).forEach(function (actionProperty) {
727
+ var actionValue = action[actionProperty];
728
+
729
+ if (actionValue !== c.SUPPRESS) {
730
+ params[actionProperty] = actionValue;
731
+ }
732
+ });
733
+
734
+ if (params.choices) {
735
+ if (typeof params.choices === 'string') {
736
+ params.choices = params.choices.split('').join(', ');
737
+ } else if (Array.isArray(params.choices)) {
738
+ params.choices = params.choices.join(', ');
739
+ } else {
740
+ params.choices = Object.keys(params.choices).join(', ');
741
+ }
742
+ }
743
+
744
+ return sprintf(this._getHelpString(action), params);
745
+ };
746
+
747
+ HelpFormatter.prototype._splitLines = function (text, width) {
748
+ var lines = [];
749
+ var delimiters = [ ' ', '.', ',', '!', '?' ];
750
+ var re = new RegExp('[' + delimiters.join('') + '][^' + delimiters.join('') + ']*$');
751
+
752
+ text = text.replace(/[\n\|\t]/g, ' ');
753
+
754
+ text = text.trim();
755
+ text = text.replace(this._whitespaceMatcher, ' ');
756
+
757
+ // Wraps the single paragraph in text (a string) so every line
758
+ // is at most width characters long.
759
+ text.split(c.EOL).forEach(function (line) {
760
+ if (width >= line.length) {
761
+ lines.push(line);
762
+ return;
763
+ }
764
+
765
+ var wrapStart = 0;
766
+ var wrapEnd = width;
767
+ var delimiterIndex = 0;
768
+ while (wrapEnd <= line.length) {
769
+ if (wrapEnd !== line.length && delimiters.indexOf(line[wrapEnd] < -1)) {
770
+ delimiterIndex = (re.exec(line.substring(wrapStart, wrapEnd)) || {}).index;
771
+ wrapEnd = wrapStart + delimiterIndex + 1;
772
+ }
773
+ lines.push(line.substring(wrapStart, wrapEnd));
774
+ wrapStart = wrapEnd;
775
+ wrapEnd += width;
776
+ }
777
+ if (wrapStart < line.length) {
778
+ lines.push(line.substring(wrapStart, wrapEnd));
779
+ }
780
+ });
781
+
782
+ return lines;
783
+ };
784
+
785
+ HelpFormatter.prototype._fillText = function (text, width, indent) {
786
+ var lines = this._splitLines(text, width);
787
+ lines = lines.map(function (line) {
788
+ return indent + line;
789
+ });
790
+ return lines.join(c.EOL);
791
+ };
792
+
793
+ HelpFormatter.prototype._getHelpString = function (action) {
794
+ return action.help;
795
+ };