skykoi 2026.3.18 → 2026.3.20

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 (418) hide show
  1. package/dist/APEv2Parser-BzMnB23U.js +281 -0
  2. package/dist/APEv2Parser-MN2ivXt3.js +281 -0
  3. package/dist/APEv2Parser-pnIYq527.js +281 -0
  4. package/dist/AbstractID3Parser-CnRnpdUH.js +51 -0
  5. package/dist/AbstractID3Parser-Db7qV4ti.js +51 -0
  6. package/dist/AbstractID3Parser-mX_4_HBe.js +51 -0
  7. package/dist/AiffParser-Bg3MAng9.js +150 -0
  8. package/dist/AiffParser-CRggLRXd.js +150 -0
  9. package/dist/AiffParser-DfpK6zFl.js +150 -0
  10. package/dist/AsfParser-B1ASnQXa.js +640 -0
  11. package/dist/AsfParser-D4vog59t.js +640 -0
  12. package/dist/AsfParser-tU5W8OGT.js +640 -0
  13. package/dist/BasicParser-BNCoPDZ-.js +1582 -0
  14. package/dist/BasicParser-BiZYE-KY.js +1582 -0
  15. package/dist/BasicParser-C4NikQiO.js +1582 -0
  16. package/dist/DsdiffParser-BXvTQQCc.js +154 -0
  17. package/dist/DsdiffParser-CoBV6M8u.js +154 -0
  18. package/dist/DsdiffParser-DGDmXc_L.js +154 -0
  19. package/dist/DsfParser-Cgw_m3Kp.js +104 -0
  20. package/dist/DsfParser-hAexKKw9.js +104 -0
  21. package/dist/DsfParser-k6ySRPVQ.js +104 -0
  22. package/dist/FlacParser-B7dt6J4g.js +374 -0
  23. package/dist/FlacParser-DwwphmFR.js +374 -0
  24. package/dist/FlacParser-RLX1JRur.js +374 -0
  25. package/dist/ID3v1Parser-AYtRHmGI.js +293 -0
  26. package/dist/ID3v1Parser-BvpcxAfn.js +293 -0
  27. package/dist/ID3v1Parser-DQh8hAyo.js +293 -0
  28. package/dist/ID3v2Parser-B920rB9t.js +659 -0
  29. package/dist/ID3v2Parser-DRrEmlpw.js +659 -0
  30. package/dist/ID3v2Parser-YiXv1H5b.js +659 -0
  31. package/dist/ID3v2Token-DN7nREFT.js +147 -0
  32. package/dist/ID3v2Token-gDgWdafW.js +147 -0
  33. package/dist/ID3v2Token-o_W0tgHj.js +147 -0
  34. package/dist/MP4Parser-BZ1ayXHS.js +1066 -0
  35. package/dist/MP4Parser-CZvnfNfF.js +1066 -0
  36. package/dist/MP4Parser-YUAaCZWF.js +1066 -0
  37. package/dist/MatroskaParser-Bo8g5HKe.js +914 -0
  38. package/dist/MatroskaParser-PTQJnWWB.js +914 -0
  39. package/dist/MatroskaParser-duVzOPxM.js +914 -0
  40. package/dist/MpegParser-D3xAmmfi.js +749 -0
  41. package/dist/MpegParser-DHlEJLR5.js +749 -0
  42. package/dist/MpegParser-DYflLP9c.js +749 -0
  43. package/dist/MusepackParser-CUNYrJuI.js +293 -0
  44. package/dist/MusepackParser-CwZFzYmU.js +293 -0
  45. package/dist/MusepackParser-UoNvfbd2.js +293 -0
  46. package/dist/OggParser-B7vFNeKh.js +400 -0
  47. package/dist/OggParser-CpTGi8k4.js +400 -0
  48. package/dist/OggParser-lDXRkOsL.js +400 -0
  49. package/dist/{SkyKoi-root-1Xxoj9c2.js → SKYKOI-root-B5HYTPZX.js} +5 -5
  50. package/dist/{SkyKoi-root-B0slXVk_.js → SKYKOI-root-DgeLuP-Y.js} +7 -7
  51. package/dist/Util-BSeBJ8g_.js +173 -0
  52. package/dist/Util-Bx1_1IGi.js +173 -0
  53. package/dist/Util-GRC8g6jp.js +173 -0
  54. package/dist/WavPackParser-LRcQYWYh.js +172 -0
  55. package/dist/WavPackParser-Ye7AZlvW.js +172 -0
  56. package/dist/WavPackParser-x4uITtSL.js +172 -0
  57. package/dist/WaveParser-BEW8sb8Y.js +279 -0
  58. package/dist/WaveParser-D15dnWFP.js +279 -0
  59. package/dist/WaveParser-DbvydTcq.js +279 -0
  60. package/dist/{accounts-DcTOxu8H.js → accounts-6GHVTfhm.js} +3 -3
  61. package/dist/{accounts-CLZPTOk3.js → accounts-CnTxg3dy.js} +9 -9
  62. package/dist/{acp-cli-BYC1TBP3.js → acp-cli-CnrtTyKu.js} +22 -22
  63. package/dist/{acp-cli-DQ8Gl-66.js → acp-cli-D6OF8RVI.js} +24 -24
  64. package/dist/{agent-BK9yfjrn.js → agent-CFHVqHI1.js} +15 -15
  65. package/dist/{agent-DjSLJaQ5.js → agent-DJZpfRZX.js} +15 -15
  66. package/dist/{agent-scope-Dwqz9NKQ.js → agent-scope-C-oITVZT.js} +15 -15
  67. package/dist/{agent-scope-DXSQVQ2A.js → agent-scope-DADS8Ogj.js} +7 -7
  68. package/dist/{agent-scope-Dk1slobN.js → agent-scope-DgrFnRZg.js} +5 -5
  69. package/dist/{archive-CCe48J14.js → archive-B7z71oiV.js} +9 -9
  70. package/dist/audio-decode-Bk9cPvOv.js +184 -0
  71. package/dist/audio-decode-C-Jf_sFv.js +184 -0
  72. package/dist/audio-decode-C3Wkk46B.js +184 -0
  73. package/dist/{audit-G4JDzluf.js → audit-CdxqlVY0.js} +24 -24
  74. package/dist/{audit-CeJVn59E.js → audit-Cziq0-OG.js} +32 -32
  75. package/dist/{auth-Du3kY_jU.js → auth-DSrYkGU-.js} +2 -2
  76. package/dist/{auth-health-rhCcWsjZ.js → auth-health-D_hQ5_nq.js} +1 -1
  77. package/dist/{auth-health-BP6tIeej.js → auth-health-PX_SEdPy.js} +1 -1
  78. package/dist/{auth-CYYqbqZq.js → auth-kOl4q1D7.js} +2 -2
  79. package/dist/{auth-profiles-DlIEUnyA.js → auth-profiles-CJmbJXsl.js} +12 -12
  80. package/dist/{call-BVO6e0OD.js → call-BGnJy6Wo.js} +6 -6
  81. package/dist/{call-DWhy_UrG.js → call-C_yDMcZA.js} +13 -13
  82. package/dist/{channel-options-YUvPdymV.js → channel-options-5-N0q-Mt.js} +3 -3
  83. package/dist/{channel-options-BxFXWaYj.js → channel-options-yR6Egmka.js} +8 -8
  84. package/dist/{channel-selection-CSpC9ZM0.js → channel-selection-B1jlZvso.js} +2 -2
  85. package/dist/{channel-selection-jw4ReifC.js → channel-selection-Ha3CW6QO.js} +2 -2
  86. package/dist/{channel-summary-p01w5aXs.js → channel-summary-CQQsibxL.js} +7 -7
  87. package/dist/{channel-summary-J7RR_GHH.js → channel-summary-xPetbUgl.js} +8 -8
  88. package/dist/{channels-cli-gqDnPPnT.js → channels-cli-CSlch9EP.js} +51 -51
  89. package/dist/{channels-cli-BNMhWmSo.js → channels-cli-qsQd84m7.js} +59 -59
  90. package/dist/{channels-status-issues-BKH5rJhF.js → channels-status-issues-CsbN-n1Z.js} +1 -1
  91. package/dist/{channels-status-issues-D9wLqndg.js → channels-status-issues-Cx4DwKM8.js} +1 -1
  92. package/dist/{chrome-lo-vJbVv.js → chrome-BjAcrZj9.js} +17 -17
  93. package/dist/{chrome-D1IHaA-W.js → chrome-CAXMMO5v.js} +20 -20
  94. package/dist/chunk-BXK9XSlF.js +45 -0
  95. package/dist/{clack-prompter-ZKtp6akD.js → clack-prompter-Bfyih97B.js} +4 -4
  96. package/dist/{clack-prompter-B9yLhyOm.js → clack-prompter-ysYCwwA-.js} +4 -4
  97. package/dist/cli-C2Vzy15u.js +86 -0
  98. package/dist/cli-DyRIu3d4.js +89 -0
  99. package/dist/{client-C9puJST3.js → client-CkUn7eWk.js} +83 -77
  100. package/dist/codec-parser-BiLNUl-b.js +2048 -0
  101. package/dist/codec-parser-CQX5RoRa.js +2048 -0
  102. package/dist/codec-parser-Y4FcrGgi.js +2048 -0
  103. package/dist/{command-format-Q2sXw1hM.js → command-format-B5jjY9oQ.js} +2 -2
  104. package/dist/{command-format-CO5K-hjY.js → command-format-DaWwoZ_Z.js} +2 -2
  105. package/dist/{command-format-BB7fwONf.js → command-format-JFYLbDtd.js} +2 -2
  106. package/dist/{command-options-BPpXM6gP.js → command-options-CR1_j1Q3.js} +4 -4
  107. package/dist/{commands-DhRYjKO-.js → commands-D0jrFj2D.js} +5 -5
  108. package/dist/{completion-cli-BjxkErR6.js → completion-cli-DXEOXxKS.js} +33 -33
  109. package/dist/{completion-cli-BsNr40Io.js → completion-cli-Deu0w9Qa.js} +17 -17
  110. package/dist/{config-DGhm5Zuy.js → config-Cp4weBPs.js} +17 -18
  111. package/dist/{config-C16s_5FY.js → config-DvdKSujy.js} +17 -18
  112. package/dist/{config-CDIS7lkk.js → config-ZeM0kR6L.js} +18 -19
  113. package/dist/{config-guard-CDV1HVFk.js → config-guard-_cFW9m4U.js} +117 -116
  114. package/dist/{configure-BPSmAkSi.js → configure-B42sDkSS.js} +24 -24
  115. package/dist/{configure-CAi_zUTy.js → configure-BmZyk_p9.js} +23 -23
  116. package/dist/{constants-D6SqBATZ.js → constants-BApFvR9k.js} +10 -10
  117. package/dist/{constants-BzsOF9IQ.js → constants-CXZus5hc.js} +10 -10
  118. package/dist/{control-service-DhoUNWlV.js → control-service-BFK7QVgY.js} +7 -7
  119. package/dist/{control-service-CaDw3Uly.js → control-service-BNjuXFmE.js} +6 -6
  120. package/dist/{cron-cli-DuFo9TMh.js → cron-cli-BKn4-4Yy.js} +19 -19
  121. package/dist/{cron-cli-Dcifr5rd.js → cron-cli-C4TYzk1Y.js} +18 -18
  122. package/dist/{daemon-cli-CajPEC03.js → daemon-cli-BjzGPatB.js} +22 -22
  123. package/dist/{daemon-cli-lu2KND-K.js → daemon-cli-vvlMkTAF.js} +21 -21
  124. package/dist/{daemon-runtime-DjO_oiZJ.js → daemon-runtime-DCb0uSaS.js} +14 -14
  125. package/dist/{daemon-runtime-8_EOfq2R.js → daemon-runtime-c-EjZSJl.js} +6 -6
  126. package/dist/{deliver-PjcQjiUY.js → deliver-ClnTN5bh.js} +9 -9
  127. package/dist/{deliver-CFnL1UKa.js → deliver-XjO1_1Eh.js} +11 -11
  128. package/dist/{deliver-BMdhV7Q5.js → deliver-f2AivmYN.js} +5 -5
  129. package/dist/{deps-cV1Wf2Cj.js → deps-BdP-P-Ji.js} +2 -2
  130. package/dist/{deps-DeOdeGa3.js → deps-Dkh2WzMG.js} +2 -2
  131. package/dist/{devices-cli-q0uWi3t7.js → devices-cli-DIcFRpXx.js} +12 -12
  132. package/dist/{devices-cli-CEmVKNQv.js → devices-cli-k5QlMHgP.js} +15 -15
  133. package/dist/{directory-cli-lKz_ewUH.js → directory-cli-66KYypXC.js} +16 -16
  134. package/dist/{directory-cli-B9UxC4yG.js → directory-cli-BpeZIjvP.js} +15 -15
  135. package/dist/{dispatcher-NZEmG6Ya.js → dispatcher-DvJtgNH1.js} +1 -1
  136. package/dist/{dns-cli-BhMTHtM5.js → dns-cli-CP7KfVEM.js} +15 -15
  137. package/dist/{dns-cli-Dzr63Tk8.js → dns-cli-CjvDCuJL.js} +13 -13
  138. package/dist/{docs-cli-CYqhw6L8.js → docs-cli-BDOiFw-y.js} +10 -10
  139. package/dist/{docs-cli-Dt7Qw1FF.js → docs-cli-Dm-n_jpX.js} +11 -11
  140. package/dist/{doctor-CYJtszAW.js → doctor-Bcec8mQT.js} +62 -62
  141. package/dist/{doctor-MoNOWnT8.js → doctor-BrmKU2Vj.js} +52 -52
  142. package/dist/entry.js +23 -15
  143. package/dist/{env-Cttj98du.js → env-BmS1w6Of.js} +1 -1
  144. package/dist/{errors-B4doMHgK.js → errors-B_oMOHSO.js} +21 -21
  145. package/dist/{exec-DGTxXFQA.js → exec-B_35B71R.js} +1 -1
  146. package/dist/{exec-CwGfnRxa.js → exec-BfklUyuf.js} +5 -5
  147. package/dist/{exec-approvals-BYxeLhk2.js → exec-approvals-BKW0tzYZ.js} +1 -1
  148. package/dist/{exec-approvals-cli-yFq0PKOT.js → exec-approvals-cli-CQ-W5RyA.js} +22 -22
  149. package/dist/{exec-approvals-cli-BftIsRih.js → exec-approvals-cli-VlEIC5tr.js} +22 -22
  150. package/dist/extensionAPI.js +206 -220
  151. package/dist/flac-Buy3tHnd.js +0 -0
  152. package/dist/flac-DdmVsuqg.js +0 -0
  153. package/dist/flac-n-2Ylggm.js +0 -0
  154. package/dist/{gateway-cli-BpYeDjxf.js → gateway-cli-D3eNVBbZ.js} +211 -212
  155. package/dist/{gateway-cli-DpWciOhU.js → gateway-cli-DhXcOimF.js} +140 -141
  156. package/dist/{gateway-rpc-DpFTL0VX.js → gateway-rpc-BMC8-bqk.js} +3 -3
  157. package/dist/{gateway-rpc-VddQSMy_.js → gateway-rpc-wCkAdVe_.js} +3 -3
  158. package/dist/{github-copilot-auth-j4O1I0Sd.js → github-copilot-auth-CfOdEwXX.js} +11 -11
  159. package/dist/{github-copilot-auth-B5-n2fxo.js → github-copilot-auth-DEbYGuwP.js} +11 -11
  160. package/dist/{github-copilot-token-DkGdbrln.js → github-copilot-token-B_JmXvd-.js} +2 -2
  161. package/dist/{github-copilot-token-7boTx1D-.js → github-copilot-token-Bh7RwnX2.js} +2 -2
  162. package/dist/{github-copilot-token-SLWintYd.js → github-copilot-token-D3BDUkS_.js} +1 -1
  163. package/dist/{gmail-setup-utils-B_WClP-s.js → gmail-setup-utils-Bmf_oPLY.js} +3 -3
  164. package/dist/{gmail-setup-utils-zvV9N1hM.js → gmail-setup-utils-CeTb8vOB.js} +4 -4
  165. package/dist/{health-format-CJoBMw2C.js → health-format-B7xMjSqB.js} +18 -18
  166. package/dist/{health-format-CvdHB5XY.js → health-format-CHDuCA-E.js} +16 -16
  167. package/dist/{help-format-0lndqUB8.js → help-format-q-N7n7vs.js} +1 -1
  168. package/dist/{helpers-DMlRCrD6.js → helpers-BToWq-9U.js} +1 -1
  169. package/dist/{hooks-cli-BowoiKQn.js → hooks-cli-D7RJRnCp.js} +51 -51
  170. package/dist/{hooks-cli-CsTu08QI.js → hooks-cli-DD0XF9GG.js} +70 -70
  171. package/dist/{hooks-status-BkbDbuuR.js → hooks-status-CRG1w6AU.js} +12 -12
  172. package/dist/{hooks-status-D4kldoAx.js → hooks-status-D58LpxJJ.js} +12 -12
  173. package/dist/{image-Dr1f1OYM.js → image-CR77p4vD.js} +16 -16
  174. package/dist/{image-DioZ-V2D.js → image-Dynqe5-R.js} +11 -11
  175. package/dist/{image-Dzd44KC_.js → image-z_6CqPW6.js} +11 -11
  176. package/dist/index.js +157 -156
  177. package/dist/{installs-BVPHUbW9.js → installs-CSjAIvjg.js} +27 -27
  178. package/dist/{installs-CWsMIjk0.js → installs-ChtZhX65.js} +11 -11
  179. package/dist/lib-5zk18GRN.js +509 -0
  180. package/dist/lib-CQLziXRa.js +1965 -0
  181. package/dist/lib-D-lL5eAr.js +1965 -0
  182. package/dist/lib-DAmkdfCx.js +1965 -0
  183. package/dist/lib-cO2jri71.js +509 -0
  184. package/dist/lib-otGquoAU.js +509 -0
  185. package/dist/{links-eId_M8m-.js → links-BYUF0_Hp.js} +1 -1
  186. package/dist/{links-B3xkO8_G.js → links-Br7nIvtU.js} +1 -1
  187. package/dist/{loader-CpBACDoa.js → loader-J5uYhRMu.js} +244 -264
  188. package/dist/{logging-3phpsMUw.js → logging-CLxV9Na7.js} +2 -2
  189. package/dist/{logging-BDs786Px.js → logging-D15QDE2U.js} +1 -1
  190. package/dist/login-qr-DAdIWB1P.js +99960 -0
  191. package/dist/login-qr-DyzyAsRE.js +99963 -0
  192. package/dist/login-qr-Ovj9NB3z.js +99963 -0
  193. package/dist/{logs-cli-aJc9HkAG.js → logs-cli-C6cnKN90.js} +16 -16
  194. package/dist/{logs-cli-BYwCs6p2.js → logs-cli-CAlBiEQn.js} +19 -19
  195. package/dist/{manager-BWYzzbUa.js → manager-BxO_gdpU.js} +13 -13
  196. package/dist/{manager-VTzR4KLd.js → manager-D_k9W9gI.js} +11 -11
  197. package/dist/{manager-CfPTS--0.js → manager-DhEbUQm-.js} +23 -23
  198. package/dist/{manifest-registry-BNfgQinl.js → manifest-registry-BWwhsgX7.js} +4 -4
  199. package/dist/{manifest-registry-K6hK96M4.js → manifest-registry-BwckFakx.js} +4 -4
  200. package/dist/{message-channel-DXR7mBmt.js → message-channel-6KBhOx_o.js} +1 -0
  201. package/dist/{message-channel-CBfT5rub.js → message-channel-DHb3z4h2.js} +2 -1
  202. package/dist/{model-selection-C8DSGWIZ.js → model-selection--sxtl2RT.js} +14 -14
  203. package/dist/{model-selection-DKxD5K5m.js → model-selection-B1X17plF.js} +12 -12
  204. package/dist/{models-cli-BIvLm8Ib.js → models-cli-Bi4Vr0c6.js} +56 -56
  205. package/dist/{models-cli-h8e6a71t.js → models-cli-DG4UhIsK.js} +52 -52
  206. package/dist/mpg123-decoder-Bl-OtJD1.js +0 -0
  207. package/dist/mpg123-decoder-Bq_QA04d.js +0 -0
  208. package/dist/mpg123-decoder-Tsi-yPrx.js +0 -0
  209. package/dist/{net-Bmf8t8EC.js → net-sP4-ayNL.js} +82 -76
  210. package/dist/{node-cli-DOcP1l4K.js → node-cli-CwZFiSyM.js} +35 -30
  211. package/dist/{node-cli-CqMQXgxR.js → node-cli-DCA3ThYJ.js} +58 -53
  212. package/dist/{node-service-CM_a91Iw.js → node-service-0VCYYXMx.js} +2 -2
  213. package/dist/{node-service-wCEdSy59.js → node-service-TuA57gm-.js} +2 -2
  214. package/dist/node-wav-BSnuf3Oq.js +232 -0
  215. package/dist/node-wav-DoZT-OeN.js +232 -0
  216. package/dist/node-wav-Pb2Cw_GI.js +232 -0
  217. package/dist/{nodes-cli-DJ0BG0LI.js → nodes-cli-BUfpqag_.js} +21 -21
  218. package/dist/{nodes-cli-COdDszBG.js → nodes-cli-Yzyex_fY.js} +19 -19
  219. package/dist/{nodes-screen-CE7lnfmY.js → nodes-screen--Fiu4qmi.js} +2 -2
  220. package/dist/{nodes-screen-BT0HKIUM.js → nodes-screen-COmr4MnV.js} +4 -4
  221. package/dist/{note-98hAjjTc.js → note-CrCSjpk3.js} +2 -2
  222. package/dist/{note-_C44YfAQ.js → note-YmyPRD-3.js} +1 -1
  223. package/dist/ogg-opus-decoder-CPpAqZXP.js +0 -0
  224. package/dist/ogg-opus-decoder-DYQP8uow.js +0 -0
  225. package/dist/ogg-opus-decoder-YQVhl9MM.js +0 -0
  226. package/dist/ogg-vorbis-BR0Eshfr.js +0 -0
  227. package/dist/ogg-vorbis-CjKT7ppX.js +0 -0
  228. package/dist/ogg-vorbis-DOz1YQg1.js +0 -0
  229. package/dist/{onboard-channels-BSvehi-C.js → onboard-channels-B1dVcEVo.js} +11 -11
  230. package/dist/{onboard-channels-DDnJCc1P.js → onboard-channels-Cy225vbc.js} +10 -10
  231. package/dist/{onboard-skills-CeTN7owf.js → onboard-skills-C2JRzs-E.js} +21 -21
  232. package/dist/{onboard-skills-gzJeAKBp.js → onboard-skills-DZkTp02a.js} +19 -19
  233. package/dist/{onboarding-vHBmWfxx.js → onboarding-P840nAiE.js} +50 -50
  234. package/dist/opus-ml-BGnB0Qr9.js +0 -0
  235. package/dist/opus-ml-BZb-3z5o.js +0 -0
  236. package/dist/opus-ml-B_gHM9hM.js +0 -0
  237. package/dist/{pairing-cli-CmvE9eIF.js → pairing-cli-CY3veQVK.js} +15 -15
  238. package/dist/{pairing-cli-Cww0qX7n.js → pairing-cli-D98QF6b3.js} +17 -17
  239. package/dist/{pairing-labels-DZDUKMVe.js → pairing-labels-DxpfDscO.js} +1 -1
  240. package/dist/{pairing-labels-kr-LZ7Iv.js → pairing-labels-PIuwtPoI.js} +1 -1
  241. package/dist/{pairing-store-3EKEJ-wO.js → pairing-store-BQk2-5gz.js} +2 -2
  242. package/dist/{pairing-store-BzP-zlXS.js → pairing-store-D5pH_THY.js} +1 -1
  243. package/dist/{path-env-CW2YJL2d.js → path-env-CFR2r-B9.js} +4 -4
  244. package/dist/{path-env-C9kNtksu.js → path-env-DKuROk9X.js} +4 -4
  245. package/dist/{paths-DIgugNlf.js → paths-BKn8dZXk.js} +13 -5
  246. package/dist/{paths-3i01DqyU.js → paths-BP5k1v-m.js} +14 -6
  247. package/dist/{paths-DqczE7b5.js → paths-BRP11_63.js} +1 -1
  248. package/dist/{paths-Cn5vXlEi.js → paths-DPLOvGLU.js} +1 -1
  249. package/dist/{paths-DNYJDWUD.js → paths-Dx_DFiIu.js} +2 -2
  250. package/dist/{pi-embedded-helpers-BLT8pUGL.js → pi-embedded-helpers-Bpsyu8Kj.js} +4 -4
  251. package/dist/{pi-embedded-helpers-BccQ1hsl.js → pi-embedded-helpers-Bx18M5ks.js} +7 -7
  252. package/dist/{pi-embedded-helpers-CXrXpoUy.js → pi-embedded-helpers-CPaWNLp0.js} +49 -48
  253. package/dist/{pi-model-discovery-CV2V1HHz.js → pi-model-discovery-BowiL596.js} +1 -1
  254. package/dist/{pi-model-discovery-DzEIEgHL.js → pi-model-discovery-DIMWsfXu.js} +1 -1
  255. package/dist/{pi-model-discovery-EhM2JAQo.js → pi-model-discovery-DQcDii4Q.js} +1 -1
  256. package/dist/{pi-tools.policy-BT3_X5hC.js → pi-tools.policy-DdMitiOJ.js} +4 -4
  257. package/dist/{plugin-auto-enable-CaLaPfyz.js → plugin-auto-enable-BXjZ_pUL.js} +5 -5
  258. package/dist/{plugin-auto-enable-B4g3OAkw.js → plugin-auto-enable-CIHFDKgl.js} +6 -6
  259. package/dist/plugin-sdk/APEv2Parser-BzMnB23U.js +281 -0
  260. package/dist/plugin-sdk/AbstractID3Parser-mX_4_HBe.js +51 -0
  261. package/dist/plugin-sdk/AiffParser-Bg3MAng9.js +150 -0
  262. package/dist/plugin-sdk/AsfParser-B1ASnQXa.js +640 -0
  263. package/dist/plugin-sdk/BasicParser-BiZYE-KY.js +1582 -0
  264. package/dist/plugin-sdk/DsdiffParser-CoBV6M8u.js +154 -0
  265. package/dist/plugin-sdk/DsfParser-k6ySRPVQ.js +104 -0
  266. package/dist/plugin-sdk/FlacParser-RLX1JRur.js +374 -0
  267. package/dist/plugin-sdk/ID3v1Parser-BvpcxAfn.js +293 -0
  268. package/dist/plugin-sdk/ID3v2Parser-YiXv1H5b.js +659 -0
  269. package/dist/plugin-sdk/ID3v2Token-o_W0tgHj.js +147 -0
  270. package/dist/plugin-sdk/MP4Parser-BZ1ayXHS.js +1066 -0
  271. package/dist/plugin-sdk/MatroskaParser-PTQJnWWB.js +914 -0
  272. package/dist/plugin-sdk/MpegParser-DHlEJLR5.js +749 -0
  273. package/dist/plugin-sdk/MusepackParser-UoNvfbd2.js +293 -0
  274. package/dist/plugin-sdk/OggParser-CpTGi8k4.js +400 -0
  275. package/dist/plugin-sdk/Util-Bx1_1IGi.js +173 -0
  276. package/dist/plugin-sdk/WavPackParser-x4uITtSL.js +172 -0
  277. package/dist/plugin-sdk/WaveParser-D15dnWFP.js +279 -0
  278. package/dist/plugin-sdk/audio-decode-DOKQCWuJ.js +184 -0
  279. package/dist/plugin-sdk/chunk-BXK9XSlF.js +45 -0
  280. package/dist/plugin-sdk/flac-hG9eHc5C.js +0 -0
  281. package/dist/plugin-sdk/index.js +99994 -536
  282. package/dist/plugin-sdk/lib-D-lL5eAr.js +1965 -0
  283. package/dist/plugin-sdk/lib-otGquoAU.js +509 -0
  284. package/dist/plugin-sdk/mpg123-decoder-E3KQfw3S.js +0 -0
  285. package/dist/plugin-sdk/node-wav-BSnuf3Oq.js +232 -0
  286. package/dist/plugin-sdk/ogg-opus-decoder-BmjjPx6R.js +0 -0
  287. package/dist/plugin-sdk/ogg-vorbis-DOZkYRDh.js +3049 -0
  288. package/dist/plugin-sdk/opus-ml-CHujQZQJ.js +0 -0
  289. package/dist/plugin-sdk/{pi-model-discovery-Dw3A6oXH.js → pi-model-discovery-CL0x9CpO.js} +1 -18
  290. package/dist/plugin-sdk/qoa-format-BSovnHxc.js +256 -0
  291. package/dist/plugin-sdk/types-wnlxSmkO.js +31 -0
  292. package/dist/{plugins-njK_epvi.js → plugins-Czjx5qei.js} +3 -3
  293. package/dist/{plugins-GKGgxE5t.js → plugins-DsFDopoj.js} +4 -4
  294. package/dist/{plugins-cli-Chvh9j2R.js → plugins-cli-DG9O99yi.js} +47 -47
  295. package/dist/{plugins-cli-lYBYpfMl.js → plugins-cli-pQ3Lt11k.js} +46 -46
  296. package/dist/{ports-KQoPI6qA.js → ports-Bc_X7vVa.js} +2 -2
  297. package/dist/{program-CjNzuUPK.js → program-Cb_XTekc.js} +91 -91
  298. package/dist/{progress-DXkwieg_.js → progress-RqIRAMUO.js} +1 -1
  299. package/dist/{prompt-style-LrI4wrff.js → prompt-style-CnGSEFh0.js} +1 -1
  300. package/dist/{pw-ai-BNrEe8iK.js → pw-ai-CM6GHEUW.js} +12 -12
  301. package/dist/{pw-ai-DTPSxyYq.js → pw-ai-DbAx6e1v.js} +10 -10
  302. package/dist/{pw-ai-uXwwWogH.js → pw-ai-DzgG6D7d.js} +13 -13
  303. package/dist/{qmd-manager-BRInTFIN.js → qmd-manager-CpliINnL.js} +7 -7
  304. package/dist/{qmd-manager-CsRVpnPk.js → qmd-manager-EBPmcRe1.js} +20 -20
  305. package/dist/{qmd-manager-PlJXhRln.js → qmd-manager-_Iww2k8L.js} +5 -5
  306. package/dist/qoa-format-BSovnHxc.js +256 -0
  307. package/dist/qoa-format-CpeDyL2r.js +256 -0
  308. package/dist/qoa-format-Dg-pRdWw.js +256 -0
  309. package/dist/{register.subclis-Q2OZdfsr.js → register.subclis-DSDynk08.js} +30 -30
  310. package/dist/{reply-CWnTy9DP.js → reply-B5dY4gXb.js} +159 -179
  311. package/dist/{routes-CeV52PS-.js → routes-MhfRrAmB.js} +24 -24
  312. package/dist/{routes-CbHFaMB6.js → routes-hJd6VixZ.js} +10 -10
  313. package/dist/{rpc-Mg_kN01g.js → rpc-UOroZhpN.js} +3 -3
  314. package/dist/{rpc-zPKcaOPs.js → rpc-mc9OFC-u.js} +3 -3
  315. package/dist/{run-main-oUMnrjy0.js → run-main-3jWzz7CS.js} +86 -86
  316. package/dist/{sandbox-DUnXybLw.js → sandbox-DSyCgHwX.js} +42 -42
  317. package/dist/{sandbox-cli-i4BGjVdR.js → sandbox-cli-DXfZ5K-P.js} +40 -40
  318. package/dist/{sandbox-cli-BcX3UNaC.js → sandbox-cli-E_oOdISO.js} +39 -39
  319. package/dist/{sandbox-BAKrAQJm.js → sandbox-ev6yGaED.js} +29 -29
  320. package/dist/{security-cli-Bpf-Qepk.js → security-cli-CfPpnnRg.js} +29 -29
  321. package/dist/{security-cli-C5tONGzJ.js → security-cli-Cl2oCzwR.js} +35 -35
  322. package/dist/{server-context-D-hq6gbi.js → server-context-Bdeie10d.js} +14 -14
  323. package/dist/{server-context-DthBWsuh.js → server-context-Cbebhh74.js} +15 -15
  324. package/dist/{server-node-events-Bqxi5LWb.js → server-node-events-CT7D2wOY.js} +44 -44
  325. package/dist/{server-node-events-C7RhxEfE.js → server-node-events-CXvj5ron.js} +44 -44
  326. package/dist/{service-CgwRT3N2.js → service-C1Hbmeqp.js} +16 -16
  327. package/dist/{service-F5BEDQpe.js → service-WG1x2OSQ.js} +3 -3
  328. package/dist/{service-audit-DG9j_qzZ.js → service-audit-dD2s6rYk.js} +12 -12
  329. package/dist/{service-audit-CCorT0US.js → service-audit-upiYbaf_.js} +22 -22
  330. package/dist/{session-cost-usage-XwMY4gn6.js → session-cost-usage-BR5ASC0b.js} +2 -2
  331. package/dist/{session-cost-usage-lYVH5MAy.js → session-cost-usage-Ceehob2Z.js} +3 -3
  332. package/dist/{shared-DT5rnBex.js → shared-BVqcu6Df.js} +4 -4
  333. package/dist/{shared-wEhs_YC6.js → shared-CKKIXImM.js} +3 -3
  334. package/dist/{shared-B8KNBCPn.js → shared-Cqlq5soB.js} +4 -4
  335. package/dist/{shared-2obeQe6S.js → shared-DT19TjiI.js} +5 -5
  336. package/dist/{skill-scanner-aOkYeEO4.js → skill-scanner-BAxRMq-1.js} +5 -5
  337. package/dist/{skills-BJmL9G5L.js → skills-BxO5Ecx5.js} +12 -12
  338. package/dist/{skills-CdkMUrvl.js → skills-CCunBWnn.js} +11 -11
  339. package/dist/{skills-cli-B19BI487.js → skills-cli-D3tiER5c.js} +16 -16
  340. package/dist/{skills-cli-C2ezyVpE.js → skills-cli-DsIX-fbt.js} +13 -13
  341. package/dist/{skills-status-DH_vL1oK.js → skills-status-C4wmQlJW.js} +4 -4
  342. package/dist/{skills-status-yJBOK7p_.js → skills-status-H6bA88MV.js} +5 -5
  343. package/dist/{sqlite-CtiUzPmK.js → sqlite-CBI1pJqV.js} +1 -1
  344. package/dist/{sqlite-BGsQl84h.js → sqlite-DKK1V89f.js} +8 -8
  345. package/dist/{sqlite-C_5n8NZI.js → sqlite-DRGmFCyY.js} +1 -1
  346. package/dist/{status-qmxEpx0Y.js → status-Bj5uV6E3.js} +4 -4
  347. package/dist/{status-DbHoWTdL.js → status-DvPSfpxU.js} +5 -5
  348. package/dist/{status-BiKRGibW.js → status-UGNosayn.js} +57 -57
  349. package/dist/{subsystem-Bn-Knx2Q.js → subsystem-B6KC_eUM.js} +5 -5
  350. package/dist/{system-cli-Dmh-QQ4h.js → system-cli-BMGVf7ec.js} +16 -16
  351. package/dist/{system-cli-hGiiO2xj.js → system-cli-oQm8pGPh.js} +13 -13
  352. package/dist/{systemd-D0c9E7A9.js → systemd-DQvm8tRB.js} +8 -8
  353. package/dist/{systemd-D1yEPZpQ.js → systemd-DyrxDxSB.js} +4 -4
  354. package/dist/{systemd-hints-DMk8z28R.js → systemd-hints-C_XVx08a.js} +1 -1
  355. package/dist/{systemd-hints-Ds4nmNMK.js → systemd-hints-DiosV8jd.js} +1 -1
  356. package/dist/{systemd-linger-uQ6a86xp.js → systemd-linger-C5NE1TWa.js} +3 -3
  357. package/dist/{systemd-linger-G42wYOWf.js → systemd-linger-CEreLGmo.js} +3 -3
  358. package/dist/{table-C6xP5U7w.js → table-BOthYYmp.js} +2 -2
  359. package/dist/{table-DKkcJVTl.js → table-Kzsd53ks.js} +1 -1
  360. package/dist/{tailscale-Dv6sZxfi.js → tailscale-C9oNI3cv.js} +2 -2
  361. package/dist/{tailscale-9MusRvOi.js → tailscale-DPwNB3iM.js} +1 -1
  362. package/dist/{tool-display-DOXnpL7M.js → tool-display-BhorItjT.js} +1 -1
  363. package/dist/{tool-display-vnkUT5fb.js → tool-display-Bi4RVFbR.js} +2 -2
  364. package/dist/{tui-8xMe1QpO.js → tui-DYDLeQUC.js} +13 -13
  365. package/dist/{tui-C4l4UJQZ.js → tui-Diudkvd5.js} +13 -13
  366. package/dist/{tui-cli-CiILiJro.js → tui-cli-BcVeal9Q.js} +26 -26
  367. package/dist/{tui-cli-DIFHrgzU.js → tui-cli-J5lEzvs1.js} +26 -26
  368. package/dist/types-36i9W9h4.js +31 -0
  369. package/dist/types-DFmrbRdj.js +31 -0
  370. package/dist/types-wnlxSmkO.js +31 -0
  371. package/dist/{update-CB1s6436.js → update-BM7DEuEF.js} +4 -4
  372. package/dist/{update-DJou--bz.js → update-NeXgYicE.js} +6 -6
  373. package/dist/{update-cli-ByZHadFO.js → update-cli-DBZC7RZ3.js} +96 -96
  374. package/dist/{update-cli-B6j8WQeZ.js → update-cli-D_R7KCI6.js} +104 -104
  375. package/dist/{update-runner-C7t9yEh9.js → update-runner-DX4PkME_.js} +37 -37
  376. package/dist/{update-runner-C-xWSrwR.js → update-runner-cJE7Mg_v.js} +19 -19
  377. package/dist/utilities-B6KNfojb.js +544 -0
  378. package/dist/utilities-BMOdFyqL.js +544 -0
  379. package/dist/utilities-MEewneDe.js +544 -0
  380. package/dist/{utils-Dq030IDo.js → utils-CV3CeN0V.js} +2 -2
  381. package/dist/{webhooks-cli-DNjOhFaU.js → webhooks-cli-DFNUtQz3.js} +13 -13
  382. package/dist/{webhooks-cli-CYnUjeTW.js → webhooks-cli-DZwQ9crg.js} +16 -16
  383. package/dist/{widearea-dns-bdiHwdn3.js → widearea-dns-Cr9yVcsB.js} +7 -7
  384. package/dist/{widearea-dns-vPa3VRwl.js → widearea-dns-DHSIgmLp.js} +7 -7
  385. package/dist/{ws-log-vBkmxf4_.js → ws-log-C4lXq6b4.js} +2 -2
  386. package/dist/{ws-log-CqjxtHs1.js → ws-log-DQL_wvbk.js} +1 -1
  387. package/dist/{wsl-BZr_5_f3.js → wsl-DsSY3cxu.js} +3 -3
  388. package/package.json +8 -3
  389. package/dist/cli-BcZrwB7B.js +0 -86
  390. package/dist/cli-D5fhMpeN.js +0 -89
  391. package/dist/login-qr-BTxvjeP2.js +0 -478
  392. package/dist/login-qr-D14yUuqm.js +0 -475
  393. package/dist/login-qr-Dmtjim0W.js +0 -478
  394. package/dist/rolldown-runtime-Cbj13DAv.js +0 -20
  395. /package/dist/{brew-CcZV0dSS.js → brew-Cpx31iqo.js} +0 -0
  396. /package/dist/{cli-utils-DzrdzskQ.js → cli-utils-CQTTNUIq.js} +0 -0
  397. /package/dist/{exec-B8JKbXKW.js → exec-CUWUdKmp.js} +0 -0
  398. /package/dist/{format-tlvh4-cQ.js → format-BPATbSa4.js} +0 -0
  399. /package/dist/{help-format-DuMTLWZ-.js → help-format-tZizD4BR.js} +0 -0
  400. /package/dist/{helpers-azbX_hrI.js → helpers-CEFiyjZQ.js} +0 -0
  401. /package/dist/{is-main-PYGa3tDA.js → is-main-DopiqU5A.js} +0 -0
  402. /package/dist/{logging-pqyrk15z.js → logging-6RmrnEvA.js} +0 -0
  403. /package/dist/{parse-DqAvJRIf.js → parse-CQc2Wki1.js} +0 -0
  404. /package/dist/{parse-log-line-BnB7770k.js → parse-log-line-BqMD3os9.js} +0 -0
  405. /package/dist/{parse-log-line-DSvJi17i.js → parse-log-line-j84FWlT5.js} +0 -0
  406. /package/dist/{parse-timeout-DV8NQQWk.js → parse-timeout-D4Vew-aj.js} +0 -0
  407. /package/dist/{progress-Bcjniu7m.js → progress-BUjAoXj8.js} +0 -0
  408. /package/dist/{prompt-style-CFsleyxV.js → prompt-style-CLfdE1ZE.js} +0 -0
  409. /package/dist/{prompts-CudpZgTI.js → prompts-Bt9fwsg2.js} +0 -0
  410. /package/dist/{redact-Bt-krp_b.js → redact-DL7khirP.js} +0 -0
  411. /package/dist/{session-key-n2HVbrj0.js → session-key-BmNnF5dG.js} +0 -0
  412. /package/dist/{status-BF8IVV7c.js → status-CaPZ8xx2.js} +0 -0
  413. /package/dist/{status-CWDof7Cn.js → status-t7_XFd6z.js} +0 -0
  414. /package/dist/{tailnet-Byp3obcc.js → tailnet-DdlcUdSm.js} +0 -0
  415. /package/dist/{transcript-events-Bv_eRVym.js → transcript-events-CpdW3XtR.js} +0 -0
  416. /package/dist/{usage-format-BcU1flOY.js → usage-format-byZKzM9f.js} +0 -0
  417. /package/dist/{utils-DPjbasLh.js → utils-BMYqLzNy.js} +0 -0
  418. /package/dist/{ws-D091yo4M.js → ws-0itoIRvF.js} +0 -0
@@ -0,0 +1,281 @@
1
+ import { i as __toESM, n as __exportAll } from "./chunk-BXK9XSlF.js";
2
+ import { A as textDecode, O as Uint8ArrayType, b as UINT16_LE, c as require_src, i as InternalParserError, j as textEncode, r as FieldDecodingError, s as makeUnexpectedFileContentError, t as BasicParser, v as StringType, w as UINT32_LE } from "./BasicParser-BiZYE-KY.js";
3
+ import { r as fromBuffer } from "./lib-otGquoAU.js";
4
+ import { i as findZero, t as a2hex } from "./Util-Bx1_1IGi.js";
5
+
6
+ //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/common/FourCC.js
7
+ const validFourCC = /^[\x21-\x7e©][\x20-\x7e\x00()]{3}/;
8
+ /**
9
+ * Token for read FourCC
10
+ * Ref: https://en.wikipedia.org/wiki/FourCC
11
+ */
12
+ const FourCcToken = {
13
+ len: 4,
14
+ get: (buf, off) => {
15
+ const id = textDecode(buf.subarray(off, off + FourCcToken.len), "latin1");
16
+ if (!id.match(validFourCC)) throw new FieldDecodingError(`FourCC contains invalid characters: ${a2hex(id)} "${id}"`);
17
+ return id;
18
+ },
19
+ put: (buffer, offset, id) => {
20
+ const str = textEncode(id, "latin1");
21
+ if (str.length !== 4) throw new InternalParserError("Invalid length");
22
+ buffer.set(str, offset);
23
+ return offset + 4;
24
+ }
25
+ };
26
+
27
+ //#endregion
28
+ //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/apev2/APEv2Token.js
29
+ const DataType = {
30
+ text_utf8: 0,
31
+ binary: 1,
32
+ external_info: 2,
33
+ reserved: 3
34
+ };
35
+ /**
36
+ * APE_DESCRIPTOR: defines the sizes (and offsets) of all the pieces, as well as the MD5 checksum
37
+ */
38
+ const DescriptorParser = {
39
+ len: 52,
40
+ get: (buf, off) => {
41
+ return {
42
+ ID: FourCcToken.get(buf, off),
43
+ version: UINT32_LE.get(buf, off + 4) / 1e3,
44
+ descriptorBytes: UINT32_LE.get(buf, off + 8),
45
+ headerBytes: UINT32_LE.get(buf, off + 12),
46
+ seekTableBytes: UINT32_LE.get(buf, off + 16),
47
+ headerDataBytes: UINT32_LE.get(buf, off + 20),
48
+ apeFrameDataBytes: UINT32_LE.get(buf, off + 24),
49
+ apeFrameDataBytesHigh: UINT32_LE.get(buf, off + 28),
50
+ terminatingDataBytes: UINT32_LE.get(buf, off + 32),
51
+ fileMD5: new Uint8ArrayType(16).get(buf, off + 36)
52
+ };
53
+ }
54
+ };
55
+ /**
56
+ * APE_HEADER: describes all of the necessary information about the APE file
57
+ */
58
+ const Header = {
59
+ len: 24,
60
+ get: (buf, off) => {
61
+ return {
62
+ compressionLevel: UINT16_LE.get(buf, off),
63
+ formatFlags: UINT16_LE.get(buf, off + 2),
64
+ blocksPerFrame: UINT32_LE.get(buf, off + 4),
65
+ finalFrameBlocks: UINT32_LE.get(buf, off + 8),
66
+ totalFrames: UINT32_LE.get(buf, off + 12),
67
+ bitsPerSample: UINT16_LE.get(buf, off + 16),
68
+ channel: UINT16_LE.get(buf, off + 18),
69
+ sampleRate: UINT32_LE.get(buf, off + 20)
70
+ };
71
+ }
72
+ };
73
+ /**
74
+ * APE Tag Header/Footer Version 2.0
75
+ * TAG: describes all the properties of the file [optional]
76
+ */
77
+ const TagFooter = {
78
+ len: 32,
79
+ get: (buf, off) => {
80
+ return {
81
+ ID: new StringType(8, "ascii").get(buf, off),
82
+ version: UINT32_LE.get(buf, off + 8),
83
+ size: UINT32_LE.get(buf, off + 12),
84
+ fields: UINT32_LE.get(buf, off + 16),
85
+ flags: parseTagFlags(UINT32_LE.get(buf, off + 20))
86
+ };
87
+ }
88
+ };
89
+ /**
90
+ * APE Tag v2.0 Item Header
91
+ */
92
+ const TagItemHeader = {
93
+ len: 8,
94
+ get: (buf, off) => {
95
+ return {
96
+ size: UINT32_LE.get(buf, off),
97
+ flags: parseTagFlags(UINT32_LE.get(buf, off + 4))
98
+ };
99
+ }
100
+ };
101
+ function parseTagFlags(flags) {
102
+ return {
103
+ containsHeader: isBitSet(flags, 31),
104
+ containsFooter: isBitSet(flags, 30),
105
+ isHeader: isBitSet(flags, 29),
106
+ readOnly: isBitSet(flags, 0),
107
+ dataType: (flags & 6) >> 1
108
+ };
109
+ }
110
+ /**
111
+ * @param num {number}
112
+ * @param bit 0 is least significant bit (LSB)
113
+ * @return {boolean} true if bit is 1; otherwise false
114
+ */
115
+ function isBitSet(num, bit) {
116
+ return (num & 1 << bit) !== 0;
117
+ }
118
+
119
+ //#endregion
120
+ //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/apev2/APEv2Parser.js
121
+ var APEv2Parser_exports = /* @__PURE__ */ __exportAll({
122
+ APEv2Parser: () => APEv2Parser,
123
+ ApeContentError: () => ApeContentError,
124
+ tryParseApeHeader: () => tryParseApeHeader
125
+ });
126
+ var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
127
+ const debug = (0, import_src.default)("music-metadata:parser:APEv2");
128
+ const tagFormat = "APEv2";
129
+ const preamble = "APETAGEX";
130
+ var ApeContentError = class extends makeUnexpectedFileContentError("APEv2") {};
131
+ function tryParseApeHeader(metadata, tokenizer, options) {
132
+ return new APEv2Parser(metadata, tokenizer, options).tryParseApeHeader();
133
+ }
134
+ var APEv2Parser = class APEv2Parser extends BasicParser {
135
+ constructor() {
136
+ super(...arguments);
137
+ this.ape = {};
138
+ }
139
+ /**
140
+ * Calculate the media file duration
141
+ * @param ah ApeHeader
142
+ * @return {number} duration in seconds
143
+ */
144
+ static calculateDuration(ah) {
145
+ let duration = ah.totalFrames > 1 ? ah.blocksPerFrame * (ah.totalFrames - 1) : 0;
146
+ duration += ah.finalFrameBlocks;
147
+ return duration / ah.sampleRate;
148
+ }
149
+ /**
150
+ * Calculates the APEv1 / APEv2 first field offset
151
+ * @param tokenizer
152
+ * @param offset
153
+ */
154
+ static async findApeFooterOffset(tokenizer, offset) {
155
+ const apeBuf = new Uint8Array(TagFooter.len);
156
+ const position = tokenizer.position;
157
+ if (offset <= TagFooter.len) {
158
+ debug(`Offset is too small to read APE footer: offset=${offset}`);
159
+ return;
160
+ }
161
+ if (offset > TagFooter.len) {
162
+ await tokenizer.readBuffer(apeBuf, { position: offset - TagFooter.len });
163
+ tokenizer.setPosition(position);
164
+ const tagFooter = TagFooter.get(apeBuf, 0);
165
+ if (tagFooter.ID === "APETAGEX") {
166
+ if (tagFooter.flags.isHeader) debug(`APE Header found at offset=${offset - TagFooter.len}`);
167
+ else {
168
+ debug(`APE Footer found at offset=${offset - TagFooter.len}`);
169
+ offset -= tagFooter.size;
170
+ }
171
+ return {
172
+ footer: tagFooter,
173
+ offset
174
+ };
175
+ }
176
+ }
177
+ }
178
+ static parseTagFooter(metadata, buffer, options) {
179
+ const footer = TagFooter.get(buffer, buffer.length - TagFooter.len);
180
+ if (footer.ID !== preamble) throw new ApeContentError("Unexpected APEv2 Footer ID preamble value");
181
+ fromBuffer(buffer);
182
+ return new APEv2Parser(metadata, fromBuffer(buffer), options).parseTags(footer);
183
+ }
184
+ /**
185
+ * Parse APEv1 / APEv2 header if header signature found
186
+ */
187
+ async tryParseApeHeader() {
188
+ if (this.tokenizer.fileInfo.size && this.tokenizer.fileInfo.size - this.tokenizer.position < TagFooter.len) {
189
+ debug("No APEv2 header found, end-of-file reached");
190
+ return;
191
+ }
192
+ const footer = await this.tokenizer.peekToken(TagFooter);
193
+ if (footer.ID === preamble) {
194
+ await this.tokenizer.ignore(TagFooter.len);
195
+ return this.parseTags(footer);
196
+ }
197
+ debug(`APEv2 header not found at offset=${this.tokenizer.position}`);
198
+ if (this.tokenizer.fileInfo.size) {
199
+ const remaining = this.tokenizer.fileInfo.size - this.tokenizer.position;
200
+ const buffer = new Uint8Array(remaining);
201
+ await this.tokenizer.readBuffer(buffer);
202
+ return APEv2Parser.parseTagFooter(this.metadata, buffer, this.options);
203
+ }
204
+ }
205
+ async parse() {
206
+ const descriptor = await this.tokenizer.readToken(DescriptorParser);
207
+ if (descriptor.ID !== "MAC ") throw new ApeContentError("Unexpected descriptor ID");
208
+ this.ape.descriptor = descriptor;
209
+ const lenExp = descriptor.descriptorBytes - DescriptorParser.len;
210
+ const header = await (lenExp > 0 ? this.parseDescriptorExpansion(lenExp) : this.parseHeader());
211
+ this.metadata.setAudioOnly();
212
+ await this.tokenizer.ignore(header.forwardBytes);
213
+ return this.tryParseApeHeader();
214
+ }
215
+ async parseTags(footer) {
216
+ const keyBuffer = new Uint8Array(256);
217
+ let bytesRemaining = footer.size - TagFooter.len;
218
+ debug(`Parse APE tags at offset=${this.tokenizer.position}, size=${bytesRemaining}`);
219
+ for (let i = 0; i < footer.fields; i++) {
220
+ if (bytesRemaining < TagItemHeader.len) {
221
+ this.metadata.addWarning(`APEv2 Tag-header: ${footer.fields - i} items remaining, but no more tag data to read.`);
222
+ break;
223
+ }
224
+ const tagItemHeader = await this.tokenizer.readToken(TagItemHeader);
225
+ bytesRemaining -= TagItemHeader.len + tagItemHeader.size;
226
+ await this.tokenizer.peekBuffer(keyBuffer, { length: Math.min(keyBuffer.length, bytesRemaining) });
227
+ let zero = findZero(keyBuffer);
228
+ const key = await this.tokenizer.readToken(new StringType(zero, "ascii"));
229
+ await this.tokenizer.ignore(1);
230
+ bytesRemaining -= key.length + 1;
231
+ switch (tagItemHeader.flags.dataType) {
232
+ case DataType.text_utf8: {
233
+ const values = (await this.tokenizer.readToken(new StringType(tagItemHeader.size, "utf8"))).split(/\x00/g);
234
+ await Promise.all(values.map((val) => this.metadata.addTag(tagFormat, key, val)));
235
+ break;
236
+ }
237
+ case DataType.binary:
238
+ if (this.options.skipCovers) await this.tokenizer.ignore(tagItemHeader.size);
239
+ else {
240
+ const picData = new Uint8Array(tagItemHeader.size);
241
+ await this.tokenizer.readBuffer(picData);
242
+ zero = findZero(picData);
243
+ const description = textDecode(picData.subarray(0, zero), "utf-8");
244
+ const data = picData.subarray(zero + 1);
245
+ await this.metadata.addTag(tagFormat, key, {
246
+ description,
247
+ data
248
+ });
249
+ }
250
+ break;
251
+ case DataType.external_info:
252
+ debug(`Ignore external info ${key}`);
253
+ await this.tokenizer.ignore(tagItemHeader.size);
254
+ break;
255
+ case DataType.reserved:
256
+ debug(`Ignore external info ${key}`);
257
+ this.metadata.addWarning(`APEv2 header declares a reserved datatype for "${key}"`);
258
+ await this.tokenizer.ignore(tagItemHeader.size);
259
+ break;
260
+ }
261
+ }
262
+ }
263
+ async parseDescriptorExpansion(lenExp) {
264
+ await this.tokenizer.ignore(lenExp);
265
+ return this.parseHeader();
266
+ }
267
+ async parseHeader() {
268
+ const header = await this.tokenizer.readToken(Header);
269
+ this.metadata.setFormat("lossless", true);
270
+ this.metadata.setFormat("container", "Monkey's Audio");
271
+ this.metadata.setFormat("bitsPerSample", header.bitsPerSample);
272
+ this.metadata.setFormat("sampleRate", header.sampleRate);
273
+ this.metadata.setFormat("numberOfChannels", header.channel);
274
+ this.metadata.setFormat("duration", APEv2Parser.calculateDuration(header));
275
+ if (!this.ape.descriptor) throw new ApeContentError("Missing APE descriptor");
276
+ return { forwardBytes: this.ape.descriptor.seekTableBytes + this.ape.descriptor.headerDataBytes + this.ape.descriptor.apeFrameDataBytes + this.ape.descriptor.terminatingDataBytes };
277
+ }
278
+ };
279
+
280
+ //#endregion
281
+ export { FourCcToken as i, APEv2Parser_exports as n, tryParseApeHeader as r, APEv2Parser as t };
@@ -0,0 +1,281 @@
1
+ import { i as __toESM, n as __exportAll } from "./chunk-BXK9XSlF.js";
2
+ import { A as textDecode, O as Uint8ArrayType, b as UINT16_LE, c as require_src, i as InternalParserError, j as textEncode, r as FieldDecodingError, s as makeUnexpectedFileContentError, t as BasicParser, v as StringType, w as UINT32_LE } from "./BasicParser-C4NikQiO.js";
3
+ import { r as fromBuffer } from "./lib-cO2jri71.js";
4
+ import { i as findZero, t as a2hex } from "./Util-BSeBJ8g_.js";
5
+
6
+ //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/common/FourCC.js
7
+ const validFourCC = /^[\x21-\x7e©][\x20-\x7e\x00()]{3}/;
8
+ /**
9
+ * Token for read FourCC
10
+ * Ref: https://en.wikipedia.org/wiki/FourCC
11
+ */
12
+ const FourCcToken = {
13
+ len: 4,
14
+ get: (buf, off) => {
15
+ const id = textDecode(buf.subarray(off, off + FourCcToken.len), "latin1");
16
+ if (!id.match(validFourCC)) throw new FieldDecodingError(`FourCC contains invalid characters: ${a2hex(id)} "${id}"`);
17
+ return id;
18
+ },
19
+ put: (buffer, offset, id) => {
20
+ const str = textEncode(id, "latin1");
21
+ if (str.length !== 4) throw new InternalParserError("Invalid length");
22
+ buffer.set(str, offset);
23
+ return offset + 4;
24
+ }
25
+ };
26
+
27
+ //#endregion
28
+ //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/apev2/APEv2Token.js
29
+ const DataType = {
30
+ text_utf8: 0,
31
+ binary: 1,
32
+ external_info: 2,
33
+ reserved: 3
34
+ };
35
+ /**
36
+ * APE_DESCRIPTOR: defines the sizes (and offsets) of all the pieces, as well as the MD5 checksum
37
+ */
38
+ const DescriptorParser = {
39
+ len: 52,
40
+ get: (buf, off) => {
41
+ return {
42
+ ID: FourCcToken.get(buf, off),
43
+ version: UINT32_LE.get(buf, off + 4) / 1e3,
44
+ descriptorBytes: UINT32_LE.get(buf, off + 8),
45
+ headerBytes: UINT32_LE.get(buf, off + 12),
46
+ seekTableBytes: UINT32_LE.get(buf, off + 16),
47
+ headerDataBytes: UINT32_LE.get(buf, off + 20),
48
+ apeFrameDataBytes: UINT32_LE.get(buf, off + 24),
49
+ apeFrameDataBytesHigh: UINT32_LE.get(buf, off + 28),
50
+ terminatingDataBytes: UINT32_LE.get(buf, off + 32),
51
+ fileMD5: new Uint8ArrayType(16).get(buf, off + 36)
52
+ };
53
+ }
54
+ };
55
+ /**
56
+ * APE_HEADER: describes all of the necessary information about the APE file
57
+ */
58
+ const Header = {
59
+ len: 24,
60
+ get: (buf, off) => {
61
+ return {
62
+ compressionLevel: UINT16_LE.get(buf, off),
63
+ formatFlags: UINT16_LE.get(buf, off + 2),
64
+ blocksPerFrame: UINT32_LE.get(buf, off + 4),
65
+ finalFrameBlocks: UINT32_LE.get(buf, off + 8),
66
+ totalFrames: UINT32_LE.get(buf, off + 12),
67
+ bitsPerSample: UINT16_LE.get(buf, off + 16),
68
+ channel: UINT16_LE.get(buf, off + 18),
69
+ sampleRate: UINT32_LE.get(buf, off + 20)
70
+ };
71
+ }
72
+ };
73
+ /**
74
+ * APE Tag Header/Footer Version 2.0
75
+ * TAG: describes all the properties of the file [optional]
76
+ */
77
+ const TagFooter = {
78
+ len: 32,
79
+ get: (buf, off) => {
80
+ return {
81
+ ID: new StringType(8, "ascii").get(buf, off),
82
+ version: UINT32_LE.get(buf, off + 8),
83
+ size: UINT32_LE.get(buf, off + 12),
84
+ fields: UINT32_LE.get(buf, off + 16),
85
+ flags: parseTagFlags(UINT32_LE.get(buf, off + 20))
86
+ };
87
+ }
88
+ };
89
+ /**
90
+ * APE Tag v2.0 Item Header
91
+ */
92
+ const TagItemHeader = {
93
+ len: 8,
94
+ get: (buf, off) => {
95
+ return {
96
+ size: UINT32_LE.get(buf, off),
97
+ flags: parseTagFlags(UINT32_LE.get(buf, off + 4))
98
+ };
99
+ }
100
+ };
101
+ function parseTagFlags(flags) {
102
+ return {
103
+ containsHeader: isBitSet(flags, 31),
104
+ containsFooter: isBitSet(flags, 30),
105
+ isHeader: isBitSet(flags, 29),
106
+ readOnly: isBitSet(flags, 0),
107
+ dataType: (flags & 6) >> 1
108
+ };
109
+ }
110
+ /**
111
+ * @param num {number}
112
+ * @param bit 0 is least significant bit (LSB)
113
+ * @return {boolean} true if bit is 1; otherwise false
114
+ */
115
+ function isBitSet(num, bit) {
116
+ return (num & 1 << bit) !== 0;
117
+ }
118
+
119
+ //#endregion
120
+ //#region node_modules/.pnpm/music-metadata@11.11.2/node_modules/music-metadata/lib/apev2/APEv2Parser.js
121
+ var APEv2Parser_exports = /* @__PURE__ */ __exportAll({
122
+ APEv2Parser: () => APEv2Parser,
123
+ ApeContentError: () => ApeContentError,
124
+ tryParseApeHeader: () => tryParseApeHeader
125
+ });
126
+ var import_src = /* @__PURE__ */ __toESM(require_src(), 1);
127
+ const debug = (0, import_src.default)("music-metadata:parser:APEv2");
128
+ const tagFormat = "APEv2";
129
+ const preamble = "APETAGEX";
130
+ var ApeContentError = class extends makeUnexpectedFileContentError("APEv2") {};
131
+ function tryParseApeHeader(metadata, tokenizer, options) {
132
+ return new APEv2Parser(metadata, tokenizer, options).tryParseApeHeader();
133
+ }
134
+ var APEv2Parser = class APEv2Parser extends BasicParser {
135
+ constructor() {
136
+ super(...arguments);
137
+ this.ape = {};
138
+ }
139
+ /**
140
+ * Calculate the media file duration
141
+ * @param ah ApeHeader
142
+ * @return {number} duration in seconds
143
+ */
144
+ static calculateDuration(ah) {
145
+ let duration = ah.totalFrames > 1 ? ah.blocksPerFrame * (ah.totalFrames - 1) : 0;
146
+ duration += ah.finalFrameBlocks;
147
+ return duration / ah.sampleRate;
148
+ }
149
+ /**
150
+ * Calculates the APEv1 / APEv2 first field offset
151
+ * @param tokenizer
152
+ * @param offset
153
+ */
154
+ static async findApeFooterOffset(tokenizer, offset) {
155
+ const apeBuf = new Uint8Array(TagFooter.len);
156
+ const position = tokenizer.position;
157
+ if (offset <= TagFooter.len) {
158
+ debug(`Offset is too small to read APE footer: offset=${offset}`);
159
+ return;
160
+ }
161
+ if (offset > TagFooter.len) {
162
+ await tokenizer.readBuffer(apeBuf, { position: offset - TagFooter.len });
163
+ tokenizer.setPosition(position);
164
+ const tagFooter = TagFooter.get(apeBuf, 0);
165
+ if (tagFooter.ID === "APETAGEX") {
166
+ if (tagFooter.flags.isHeader) debug(`APE Header found at offset=${offset - TagFooter.len}`);
167
+ else {
168
+ debug(`APE Footer found at offset=${offset - TagFooter.len}`);
169
+ offset -= tagFooter.size;
170
+ }
171
+ return {
172
+ footer: tagFooter,
173
+ offset
174
+ };
175
+ }
176
+ }
177
+ }
178
+ static parseTagFooter(metadata, buffer, options) {
179
+ const footer = TagFooter.get(buffer, buffer.length - TagFooter.len);
180
+ if (footer.ID !== preamble) throw new ApeContentError("Unexpected APEv2 Footer ID preamble value");
181
+ fromBuffer(buffer);
182
+ return new APEv2Parser(metadata, fromBuffer(buffer), options).parseTags(footer);
183
+ }
184
+ /**
185
+ * Parse APEv1 / APEv2 header if header signature found
186
+ */
187
+ async tryParseApeHeader() {
188
+ if (this.tokenizer.fileInfo.size && this.tokenizer.fileInfo.size - this.tokenizer.position < TagFooter.len) {
189
+ debug("No APEv2 header found, end-of-file reached");
190
+ return;
191
+ }
192
+ const footer = await this.tokenizer.peekToken(TagFooter);
193
+ if (footer.ID === preamble) {
194
+ await this.tokenizer.ignore(TagFooter.len);
195
+ return this.parseTags(footer);
196
+ }
197
+ debug(`APEv2 header not found at offset=${this.tokenizer.position}`);
198
+ if (this.tokenizer.fileInfo.size) {
199
+ const remaining = this.tokenizer.fileInfo.size - this.tokenizer.position;
200
+ const buffer = new Uint8Array(remaining);
201
+ await this.tokenizer.readBuffer(buffer);
202
+ return APEv2Parser.parseTagFooter(this.metadata, buffer, this.options);
203
+ }
204
+ }
205
+ async parse() {
206
+ const descriptor = await this.tokenizer.readToken(DescriptorParser);
207
+ if (descriptor.ID !== "MAC ") throw new ApeContentError("Unexpected descriptor ID");
208
+ this.ape.descriptor = descriptor;
209
+ const lenExp = descriptor.descriptorBytes - DescriptorParser.len;
210
+ const header = await (lenExp > 0 ? this.parseDescriptorExpansion(lenExp) : this.parseHeader());
211
+ this.metadata.setAudioOnly();
212
+ await this.tokenizer.ignore(header.forwardBytes);
213
+ return this.tryParseApeHeader();
214
+ }
215
+ async parseTags(footer) {
216
+ const keyBuffer = new Uint8Array(256);
217
+ let bytesRemaining = footer.size - TagFooter.len;
218
+ debug(`Parse APE tags at offset=${this.tokenizer.position}, size=${bytesRemaining}`);
219
+ for (let i = 0; i < footer.fields; i++) {
220
+ if (bytesRemaining < TagItemHeader.len) {
221
+ this.metadata.addWarning(`APEv2 Tag-header: ${footer.fields - i} items remaining, but no more tag data to read.`);
222
+ break;
223
+ }
224
+ const tagItemHeader = await this.tokenizer.readToken(TagItemHeader);
225
+ bytesRemaining -= TagItemHeader.len + tagItemHeader.size;
226
+ await this.tokenizer.peekBuffer(keyBuffer, { length: Math.min(keyBuffer.length, bytesRemaining) });
227
+ let zero = findZero(keyBuffer);
228
+ const key = await this.tokenizer.readToken(new StringType(zero, "ascii"));
229
+ await this.tokenizer.ignore(1);
230
+ bytesRemaining -= key.length + 1;
231
+ switch (tagItemHeader.flags.dataType) {
232
+ case DataType.text_utf8: {
233
+ const values = (await this.tokenizer.readToken(new StringType(tagItemHeader.size, "utf8"))).split(/\x00/g);
234
+ await Promise.all(values.map((val) => this.metadata.addTag(tagFormat, key, val)));
235
+ break;
236
+ }
237
+ case DataType.binary:
238
+ if (this.options.skipCovers) await this.tokenizer.ignore(tagItemHeader.size);
239
+ else {
240
+ const picData = new Uint8Array(tagItemHeader.size);
241
+ await this.tokenizer.readBuffer(picData);
242
+ zero = findZero(picData);
243
+ const description = textDecode(picData.subarray(0, zero), "utf-8");
244
+ const data = picData.subarray(zero + 1);
245
+ await this.metadata.addTag(tagFormat, key, {
246
+ description,
247
+ data
248
+ });
249
+ }
250
+ break;
251
+ case DataType.external_info:
252
+ debug(`Ignore external info ${key}`);
253
+ await this.tokenizer.ignore(tagItemHeader.size);
254
+ break;
255
+ case DataType.reserved:
256
+ debug(`Ignore external info ${key}`);
257
+ this.metadata.addWarning(`APEv2 header declares a reserved datatype for "${key}"`);
258
+ await this.tokenizer.ignore(tagItemHeader.size);
259
+ break;
260
+ }
261
+ }
262
+ }
263
+ async parseDescriptorExpansion(lenExp) {
264
+ await this.tokenizer.ignore(lenExp);
265
+ return this.parseHeader();
266
+ }
267
+ async parseHeader() {
268
+ const header = await this.tokenizer.readToken(Header);
269
+ this.metadata.setFormat("lossless", true);
270
+ this.metadata.setFormat("container", "Monkey's Audio");
271
+ this.metadata.setFormat("bitsPerSample", header.bitsPerSample);
272
+ this.metadata.setFormat("sampleRate", header.sampleRate);
273
+ this.metadata.setFormat("numberOfChannels", header.channel);
274
+ this.metadata.setFormat("duration", APEv2Parser.calculateDuration(header));
275
+ if (!this.ape.descriptor) throw new ApeContentError("Missing APE descriptor");
276
+ return { forwardBytes: this.ape.descriptor.seekTableBytes + this.ape.descriptor.headerDataBytes + this.ape.descriptor.apeFrameDataBytes + this.ape.descriptor.terminatingDataBytes };
277
+ }
278
+ };
279
+
280
+ //#endregion
281
+ export { FourCcToken as i, APEv2Parser_exports as n, tryParseApeHeader as r, APEv2Parser as t };