@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,173 @@
1
+ 'use strict';
2
+
3
+ var common = require('../common');
4
+ var Type = require('../type');
5
+
6
+ function isHexCode(c) {
7
+ return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||
8
+ ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||
9
+ ((0x61/* a */ <= c) && (c <= 0x66/* f */));
10
+ }
11
+
12
+ function isOctCode(c) {
13
+ return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));
14
+ }
15
+
16
+ function isDecCode(c) {
17
+ return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));
18
+ }
19
+
20
+ function resolveYamlInteger(data) {
21
+ if (data === null) return false;
22
+
23
+ var max = data.length,
24
+ index = 0,
25
+ hasDigits = false,
26
+ ch;
27
+
28
+ if (!max) return false;
29
+
30
+ ch = data[index];
31
+
32
+ // sign
33
+ if (ch === '-' || ch === '+') {
34
+ ch = data[++index];
35
+ }
36
+
37
+ if (ch === '0') {
38
+ // 0
39
+ if (index + 1 === max) return true;
40
+ ch = data[++index];
41
+
42
+ // base 2, base 8, base 16
43
+
44
+ if (ch === 'b') {
45
+ // base 2
46
+ index++;
47
+
48
+ for (; index < max; index++) {
49
+ ch = data[index];
50
+ if (ch === '_') continue;
51
+ if (ch !== '0' && ch !== '1') return false;
52
+ hasDigits = true;
53
+ }
54
+ return hasDigits && ch !== '_';
55
+ }
56
+
57
+
58
+ if (ch === 'x') {
59
+ // base 16
60
+ index++;
61
+
62
+ for (; index < max; index++) {
63
+ ch = data[index];
64
+ if (ch === '_') continue;
65
+ if (!isHexCode(data.charCodeAt(index))) return false;
66
+ hasDigits = true;
67
+ }
68
+ return hasDigits && ch !== '_';
69
+ }
70
+
71
+ // base 8
72
+ for (; index < max; index++) {
73
+ ch = data[index];
74
+ if (ch === '_') continue;
75
+ if (!isOctCode(data.charCodeAt(index))) return false;
76
+ hasDigits = true;
77
+ }
78
+ return hasDigits && ch !== '_';
79
+ }
80
+
81
+ // base 10 (except 0) or base 60
82
+
83
+ // value should not start with `_`;
84
+ if (ch === '_') return false;
85
+
86
+ for (; index < max; index++) {
87
+ ch = data[index];
88
+ if (ch === '_') continue;
89
+ if (ch === ':') break;
90
+ if (!isDecCode(data.charCodeAt(index))) {
91
+ return false;
92
+ }
93
+ hasDigits = true;
94
+ }
95
+
96
+ // Should have digits and should not end with `_`
97
+ if (!hasDigits || ch === '_') return false;
98
+
99
+ // if !base60 - done;
100
+ if (ch !== ':') return true;
101
+
102
+ // base60 almost not used, no needs to optimize
103
+ return /^(:[0-5]?[0-9])+$/.test(data.slice(index));
104
+ }
105
+
106
+ function constructYamlInteger(data) {
107
+ var value = data, sign = 1, ch, base, digits = [];
108
+
109
+ if (value.indexOf('_') !== -1) {
110
+ value = value.replace(/_/g, '');
111
+ }
112
+
113
+ ch = value[0];
114
+
115
+ if (ch === '-' || ch === '+') {
116
+ if (ch === '-') sign = -1;
117
+ value = value.slice(1);
118
+ ch = value[0];
119
+ }
120
+
121
+ if (value === '0') return 0;
122
+
123
+ if (ch === '0') {
124
+ if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);
125
+ if (value[1] === 'x') return sign * parseInt(value, 16);
126
+ return sign * parseInt(value, 8);
127
+ }
128
+
129
+ if (value.indexOf(':') !== -1) {
130
+ value.split(':').forEach(function (v) {
131
+ digits.unshift(parseInt(v, 10));
132
+ });
133
+
134
+ value = 0;
135
+ base = 1;
136
+
137
+ digits.forEach(function (d) {
138
+ value += (d * base);
139
+ base *= 60;
140
+ });
141
+
142
+ return sign * value;
143
+
144
+ }
145
+
146
+ return sign * parseInt(value, 10);
147
+ }
148
+
149
+ function isInteger(object) {
150
+ return (Object.prototype.toString.call(object)) === '[object Number]' &&
151
+ (object % 1 === 0 && !common.isNegativeZero(object));
152
+ }
153
+
154
+ module.exports = new Type('tag:yaml.org,2002:int', {
155
+ kind: 'scalar',
156
+ resolve: resolveYamlInteger,
157
+ construct: constructYamlInteger,
158
+ predicate: isInteger,
159
+ represent: {
160
+ binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },
161
+ octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },
162
+ decimal: function (obj) { return obj.toString(10); },
163
+ /* eslint-disable max-len */
164
+ hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }
165
+ },
166
+ defaultStyle: 'decimal',
167
+ styleAliases: {
168
+ binary: [ 2, 'bin' ],
169
+ octal: [ 8, 'oct' ],
170
+ decimal: [ 10, 'dec' ],
171
+ hexadecimal: [ 16, 'hex' ]
172
+ }
173
+ });
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ var esprima;
4
+
5
+ // Browserified version does not have esprima
6
+ //
7
+ // 1. For node.js just require module as deps
8
+ // 2. For browser try to require mudule via external AMD system.
9
+ // If not found - try to fallback to window.esprima. If not
10
+ // found too - then fail to parse.
11
+ //
12
+ try {
13
+ // workaround to exclude package from browserify list.
14
+ var _require = require;
15
+ esprima = _require('esprima');
16
+ } catch (_) {
17
+ /* eslint-disable no-redeclare */
18
+ /* global window */
19
+ if (typeof window !== 'undefined') esprima = window.esprima;
20
+ }
21
+
22
+ var Type = require('../../type');
23
+
24
+ function resolveJavascriptFunction(data) {
25
+ if (data === null) return false;
26
+
27
+ try {
28
+ var source = '(' + data + ')',
29
+ ast = esprima.parse(source, { range: true });
30
+
31
+ if (ast.type !== 'Program' ||
32
+ ast.body.length !== 1 ||
33
+ ast.body[0].type !== 'ExpressionStatement' ||
34
+ (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&
35
+ ast.body[0].expression.type !== 'FunctionExpression')) {
36
+ return false;
37
+ }
38
+
39
+ return true;
40
+ } catch (err) {
41
+ return false;
42
+ }
43
+ }
44
+
45
+ function constructJavascriptFunction(data) {
46
+ /*jslint evil:true*/
47
+
48
+ var source = '(' + data + ')',
49
+ ast = esprima.parse(source, { range: true }),
50
+ params = [],
51
+ body;
52
+
53
+ if (ast.type !== 'Program' ||
54
+ ast.body.length !== 1 ||
55
+ ast.body[0].type !== 'ExpressionStatement' ||
56
+ (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&
57
+ ast.body[0].expression.type !== 'FunctionExpression')) {
58
+ throw new Error('Failed to resolve function');
59
+ }
60
+
61
+ ast.body[0].expression.params.forEach(function (param) {
62
+ params.push(param.name);
63
+ });
64
+
65
+ body = ast.body[0].expression.body.range;
66
+
67
+ // Esprima's ranges include the first '{' and the last '}' characters on
68
+ // function expressions. So cut them out.
69
+ if (ast.body[0].expression.body.type === 'BlockStatement') {
70
+ /*eslint-disable no-new-func*/
71
+ return new Function(params, source.slice(body[0] + 1, body[1] - 1));
72
+ }
73
+ // ES6 arrow functions can omit the BlockStatement. In that case, just return
74
+ // the body.
75
+ /*eslint-disable no-new-func*/
76
+ return new Function(params, 'return ' + source.slice(body[0], body[1]));
77
+ }
78
+
79
+ function representJavascriptFunction(object /*, style*/) {
80
+ return object.toString();
81
+ }
82
+
83
+ function isFunction(object) {
84
+ return Object.prototype.toString.call(object) === '[object Function]';
85
+ }
86
+
87
+ module.exports = new Type('tag:yaml.org,2002:js/function', {
88
+ kind: 'scalar',
89
+ resolve: resolveJavascriptFunction,
90
+ construct: constructJavascriptFunction,
91
+ predicate: isFunction,
92
+ represent: representJavascriptFunction
93
+ });
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../../type');
4
+
5
+ function resolveJavascriptRegExp(data) {
6
+ if (data === null) return false;
7
+ if (data.length === 0) return false;
8
+
9
+ var regexp = data,
10
+ tail = /\/([gim]*)$/.exec(data),
11
+ modifiers = '';
12
+
13
+ // if regexp starts with '/' it can have modifiers and must be properly closed
14
+ // `/foo/gim` - modifiers tail can be maximum 3 chars
15
+ if (regexp[0] === '/') {
16
+ if (tail) modifiers = tail[1];
17
+
18
+ if (modifiers.length > 3) return false;
19
+ // if expression starts with /, is should be properly terminated
20
+ if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;
21
+ }
22
+
23
+ return true;
24
+ }
25
+
26
+ function constructJavascriptRegExp(data) {
27
+ var regexp = data,
28
+ tail = /\/([gim]*)$/.exec(data),
29
+ modifiers = '';
30
+
31
+ // `/foo/gim` - tail can be maximum 4 chars
32
+ if (regexp[0] === '/') {
33
+ if (tail) modifiers = tail[1];
34
+ regexp = regexp.slice(1, regexp.length - modifiers.length - 1);
35
+ }
36
+
37
+ return new RegExp(regexp, modifiers);
38
+ }
39
+
40
+ function representJavascriptRegExp(object /*, style*/) {
41
+ var result = '/' + object.source + '/';
42
+
43
+ if (object.global) result += 'g';
44
+ if (object.multiline) result += 'm';
45
+ if (object.ignoreCase) result += 'i';
46
+
47
+ return result;
48
+ }
49
+
50
+ function isRegExp(object) {
51
+ return Object.prototype.toString.call(object) === '[object RegExp]';
52
+ }
53
+
54
+ module.exports = new Type('tag:yaml.org,2002:js/regexp', {
55
+ kind: 'scalar',
56
+ resolve: resolveJavascriptRegExp,
57
+ construct: constructJavascriptRegExp,
58
+ predicate: isRegExp,
59
+ represent: representJavascriptRegExp
60
+ });
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../../type');
4
+
5
+ function resolveJavascriptUndefined() {
6
+ return true;
7
+ }
8
+
9
+ function constructJavascriptUndefined() {
10
+ /*eslint-disable no-undefined*/
11
+ return undefined;
12
+ }
13
+
14
+ function representJavascriptUndefined() {
15
+ return '';
16
+ }
17
+
18
+ function isUndefined(object) {
19
+ return typeof object === 'undefined';
20
+ }
21
+
22
+ module.exports = new Type('tag:yaml.org,2002:js/undefined', {
23
+ kind: 'scalar',
24
+ resolve: resolveJavascriptUndefined,
25
+ construct: constructJavascriptUndefined,
26
+ predicate: isUndefined,
27
+ represent: representJavascriptUndefined
28
+ });
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ module.exports = new Type('tag:yaml.org,2002:map', {
6
+ kind: 'mapping',
7
+ construct: function (data) { return data !== null ? data : {}; }
8
+ });
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ function resolveYamlMerge(data) {
6
+ return data === '<<' || data === null;
7
+ }
8
+
9
+ module.exports = new Type('tag:yaml.org,2002:merge', {
10
+ kind: 'scalar',
11
+ resolve: resolveYamlMerge
12
+ });
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ function resolveYamlNull(data) {
6
+ if (data === null) return true;
7
+
8
+ var max = data.length;
9
+
10
+ return (max === 1 && data === '~') ||
11
+ (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));
12
+ }
13
+
14
+ function constructYamlNull() {
15
+ return null;
16
+ }
17
+
18
+ function isNull(object) {
19
+ return object === null;
20
+ }
21
+
22
+ module.exports = new Type('tag:yaml.org,2002:null', {
23
+ kind: 'scalar',
24
+ resolve: resolveYamlNull,
25
+ construct: constructYamlNull,
26
+ predicate: isNull,
27
+ represent: {
28
+ canonical: function () { return '~'; },
29
+ lowercase: function () { return 'null'; },
30
+ uppercase: function () { return 'NULL'; },
31
+ camelcase: function () { return 'Null'; }
32
+ },
33
+ defaultStyle: 'lowercase'
34
+ });
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
6
+ var _toString = Object.prototype.toString;
7
+
8
+ function resolveYamlOmap(data) {
9
+ if (data === null) return true;
10
+
11
+ var objectKeys = {}, index, length, pair, pairKey, pairHasKey,
12
+ object = data;
13
+
14
+ for (index = 0, length = object.length; index < length; index += 1) {
15
+ pair = object[index];
16
+ pairHasKey = false;
17
+
18
+ if (_toString.call(pair) !== '[object Object]') return false;
19
+
20
+ for (pairKey in pair) {
21
+ if (_hasOwnProperty.call(pair, pairKey)) {
22
+ if (!pairHasKey) pairHasKey = true;
23
+ else return false;
24
+ }
25
+ }
26
+
27
+ if (!pairHasKey) return false;
28
+
29
+ if (_hasOwnProperty.call(objectKeys, pairKey)) return false;
30
+ Object.defineProperty(objectKeys, pairKey, { value: true });
31
+ }
32
+
33
+ return true;
34
+ }
35
+
36
+ function constructYamlOmap(data) {
37
+ return data !== null ? data : [];
38
+ }
39
+
40
+ module.exports = new Type('tag:yaml.org,2002:omap', {
41
+ kind: 'sequence',
42
+ resolve: resolveYamlOmap,
43
+ construct: constructYamlOmap
44
+ });
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ var _toString = Object.prototype.toString;
6
+
7
+ function resolveYamlPairs(data) {
8
+ if (data === null) return true;
9
+
10
+ var index, length, pair, keys, result,
11
+ object = data;
12
+
13
+ result = new Array(object.length);
14
+
15
+ for (index = 0, length = object.length; index < length; index += 1) {
16
+ pair = object[index];
17
+
18
+ if (_toString.call(pair) !== '[object Object]') return false;
19
+
20
+ keys = Object.keys(pair);
21
+
22
+ if (keys.length !== 1) return false;
23
+
24
+ result[index] = [ keys[0], pair[keys[0]] ];
25
+ }
26
+
27
+ return true;
28
+ }
29
+
30
+ function constructYamlPairs(data) {
31
+ if (data === null) return [];
32
+
33
+ var index, length, pair, keys, result,
34
+ object = data;
35
+
36
+ result = new Array(object.length);
37
+
38
+ for (index = 0, length = object.length; index < length; index += 1) {
39
+ pair = object[index];
40
+
41
+ keys = Object.keys(pair);
42
+
43
+ result[index] = [ keys[0], pair[keys[0]] ];
44
+ }
45
+
46
+ return result;
47
+ }
48
+
49
+ module.exports = new Type('tag:yaml.org,2002:pairs', {
50
+ kind: 'sequence',
51
+ resolve: resolveYamlPairs,
52
+ construct: constructYamlPairs
53
+ });
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ module.exports = new Type('tag:yaml.org,2002:seq', {
6
+ kind: 'sequence',
7
+ construct: function (data) { return data !== null ? data : []; }
8
+ });
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
6
+
7
+ function resolveYamlSet(data) {
8
+ if (data === null) return true;
9
+
10
+ var key, object = data;
11
+
12
+ for (key in object) {
13
+ if (_hasOwnProperty.call(object, key)) {
14
+ if (object[key] !== null) return false;
15
+ }
16
+ }
17
+
18
+ return true;
19
+ }
20
+
21
+ function constructYamlSet(data) {
22
+ return data !== null ? data : {};
23
+ }
24
+
25
+ module.exports = new Type('tag:yaml.org,2002:set', {
26
+ kind: 'mapping',
27
+ resolve: resolveYamlSet,
28
+ construct: constructYamlSet
29
+ });
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ module.exports = new Type('tag:yaml.org,2002:str', {
6
+ kind: 'scalar',
7
+ construct: function (data) { return data !== null ? data : ''; }
8
+ });
@@ -0,0 +1,88 @@
1
+ 'use strict';
2
+
3
+ var Type = require('../type');
4
+
5
+ var YAML_DATE_REGEXP = new RegExp(
6
+ '^([0-9][0-9][0-9][0-9])' + // [1] year
7
+ '-([0-9][0-9])' + // [2] month
8
+ '-([0-9][0-9])$'); // [3] day
9
+
10
+ var YAML_TIMESTAMP_REGEXP = new RegExp(
11
+ '^([0-9][0-9][0-9][0-9])' + // [1] year
12
+ '-([0-9][0-9]?)' + // [2] month
13
+ '-([0-9][0-9]?)' + // [3] day
14
+ '(?:[Tt]|[ \\t]+)' + // ...
15
+ '([0-9][0-9]?)' + // [4] hour
16
+ ':([0-9][0-9])' + // [5] minute
17
+ ':([0-9][0-9])' + // [6] second
18
+ '(?:\\.([0-9]*))?' + // [7] fraction
19
+ '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour
20
+ '(?::([0-9][0-9]))?))?$'); // [11] tz_minute
21
+
22
+ function resolveYamlTimestamp(data) {
23
+ if (data === null) return false;
24
+ if (YAML_DATE_REGEXP.exec(data) !== null) return true;
25
+ if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;
26
+ return false;
27
+ }
28
+
29
+ function constructYamlTimestamp(data) {
30
+ var match, year, month, day, hour, minute, second, fraction = 0,
31
+ delta = null, tz_hour, tz_minute, date;
32
+
33
+ match = YAML_DATE_REGEXP.exec(data);
34
+ if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);
35
+
36
+ if (match === null) throw new Error('Date resolve error');
37
+
38
+ // match: [1] year [2] month [3] day
39
+
40
+ year = +(match[1]);
41
+ month = +(match[2]) - 1; // JS month starts with 0
42
+ day = +(match[3]);
43
+
44
+ if (!match[4]) { // no hour
45
+ return new Date(Date.UTC(year, month, day));
46
+ }
47
+
48
+ // match: [4] hour [5] minute [6] second [7] fraction
49
+
50
+ hour = +(match[4]);
51
+ minute = +(match[5]);
52
+ second = +(match[6]);
53
+
54
+ if (match[7]) {
55
+ fraction = match[7].slice(0, 3);
56
+ while (fraction.length < 3) { // milli-seconds
57
+ fraction += '0';
58
+ }
59
+ fraction = +fraction;
60
+ }
61
+
62
+ // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute
63
+
64
+ if (match[9]) {
65
+ tz_hour = +(match[10]);
66
+ tz_minute = +(match[11] || 0);
67
+ delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds
68
+ if (match[9] === '-') delta = -delta;
69
+ }
70
+
71
+ date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
72
+
73
+ if (delta) date.setTime(date.getTime() - delta);
74
+
75
+ return date;
76
+ }
77
+
78
+ function representYamlTimestamp(object /*, style*/) {
79
+ return object.toISOString();
80
+ }
81
+
82
+ module.exports = new Type('tag:yaml.org,2002:timestamp', {
83
+ kind: 'scalar',
84
+ resolve: resolveYamlTimestamp,
85
+ construct: constructYamlTimestamp,
86
+ instanceOf: Date,
87
+ represent: representYamlTimestamp
88
+ });