@jadujoel/web-audio-clip-node 0.1.0 → 0.1.2

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 (346) hide show
  1. package/README.md +9 -3
  2. package/dist/audio/ClipNode.js +312 -0
  3. package/dist/audio/processor-code.js +2 -0
  4. package/dist/audio/processor-kernel.js +861 -0
  5. package/dist/audio/processor.js +80 -0
  6. package/dist/audio/types.js +9 -0
  7. package/dist/audio/utils.js +128 -0
  8. package/dist/audio/version.d.ts +1 -0
  9. package/dist/audio/version.js +2 -0
  10. package/dist/audio/workletUrl.js +17 -0
  11. package/dist/components/AudioControl.js +99 -0
  12. package/dist/components/ContextMenu.js +73 -0
  13. package/dist/components/ControlSection.js +74 -0
  14. package/dist/components/DetuneControl.js +44 -0
  15. package/dist/components/DisplayPanel.js +6 -0
  16. package/dist/components/FilterControl.js +48 -0
  17. package/dist/components/GainControl.js +44 -0
  18. package/dist/components/PanControl.js +50 -0
  19. package/dist/components/PlaybackRateControl.js +44 -0
  20. package/dist/components/PlayheadSlider.js +20 -0
  21. package/dist/components/SnappableSlider.js +174 -0
  22. package/dist/components/TransportButtons.js +9 -0
  23. package/dist/controls/controlDefs.js +211 -0
  24. package/dist/controls/formatValueText.js +80 -0
  25. package/dist/controls/linkedControlPairs.js +51 -0
  26. package/dist/data/cache.js +17 -0
  27. package/dist/data/fileStore.js +39 -0
  28. package/dist/hooks/useClipNode.js +338 -0
  29. package/dist/lib-react.js +17 -19
  30. package/dist/lib.bundle.js +6 -0
  31. package/dist/lib.bundle.js.map +7 -0
  32. package/dist/lib.js +16 -44
  33. package/dist/store/clipStore.js +71 -0
  34. package/examples/README.md +10 -0
  35. package/examples/cdn-vanilla/README.md +13 -0
  36. package/examples/cdn-vanilla/index.html +69 -0
  37. package/examples/esm-bundler/README.md +8 -0
  38. package/examples/esm-bundler/index.html +12 -0
  39. package/examples/esm-bundler/node_modules/.package-lock.json +1168 -0
  40. package/examples/esm-bundler/node_modules/@esbuild/darwin-arm64/README.md +3 -0
  41. package/examples/esm-bundler/node_modules/@esbuild/darwin-arm64/bin/esbuild +0 -0
  42. package/examples/esm-bundler/node_modules/@esbuild/darwin-arm64/package.json +20 -0
  43. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/LICENSE +21 -0
  44. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/README.md +91 -0
  45. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/ClipNode.d.ts +86 -0
  46. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/ClipNode.js +312 -0
  47. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-code.d.ts +1 -0
  48. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-code.js +2 -0
  49. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-kernel.d.ts +43 -0
  50. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-kernel.js +861 -0
  51. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor.d.ts +1 -0
  52. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor.js +80 -0
  53. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/types.d.ts +192 -0
  54. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/types.js +9 -0
  55. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/utils.d.ts +22 -0
  56. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/utils.js +128 -0
  57. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/version.d.ts +1 -0
  58. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/version.js +2 -0
  59. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/workletUrl.d.ts +6 -0
  60. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/workletUrl.js +17 -0
  61. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/AudioControl.d.ts +28 -0
  62. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/AudioControl.js +99 -0
  63. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ContextMenu.d.ts +17 -0
  64. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ContextMenu.js +73 -0
  65. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ControlSection.d.ts +26 -0
  66. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ControlSection.js +74 -0
  67. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DetuneControl.d.ts +10 -0
  68. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DetuneControl.js +44 -0
  69. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DisplayPanel.d.ts +14 -0
  70. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DisplayPanel.js +6 -0
  71. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/FilterControl.d.ts +12 -0
  72. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/FilterControl.js +48 -0
  73. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/GainControl.d.ts +10 -0
  74. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/GainControl.js +44 -0
  75. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PanControl.d.ts +10 -0
  76. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PanControl.js +50 -0
  77. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlaybackRateControl.d.ts +10 -0
  78. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlaybackRateControl.js +44 -0
  79. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlayheadSlider.d.ts +13 -0
  80. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlayheadSlider.js +20 -0
  81. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/SnappableSlider.d.ts +18 -0
  82. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/SnappableSlider.js +174 -0
  83. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/TransportButtons.d.ts +14 -0
  84. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/TransportButtons.js +9 -0
  85. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/controlDefs.d.ts +31 -0
  86. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/controlDefs.js +211 -0
  87. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/formatValueText.d.ts +2 -0
  88. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/formatValueText.js +80 -0
  89. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/linkedControlPairs.d.ts +20 -0
  90. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/linkedControlPairs.js +51 -0
  91. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/cache.d.ts +1 -0
  92. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/cache.js +17 -0
  93. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/fileStore.d.ts +6 -0
  94. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/fileStore.js +39 -0
  95. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/hooks/useClipNode.d.ts +31 -0
  96. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/hooks/useClipNode.js +338 -0
  97. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib-react.d.ts +15 -0
  98. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib-react.js +17 -0
  99. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib.d.ts +16 -0
  100. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib.js +16 -0
  101. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/processor.js +4 -0
  102. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/processor.js.map +12 -0
  103. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/store/clipStore.d.ts +63 -0
  104. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/store/clipStore.js +71 -0
  105. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/styles.css +739 -0
  106. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/README.md +10 -0
  107. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/cdn-vanilla/README.md +13 -0
  108. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/cdn-vanilla/index.html +61 -0
  109. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/README.md +8 -0
  110. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/index.html +12 -0
  111. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/package.json +15 -0
  112. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/src/main.ts +43 -0
  113. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/README.md +10 -0
  114. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/index.html +12 -0
  115. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/package.json +21 -0
  116. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/src/App.tsx +20 -0
  117. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/src/main.tsx +9 -0
  118. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/vite.config.ts +6 -0
  119. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/README.md +11 -0
  120. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/index.html +12 -0
  121. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/package.json +16 -0
  122. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/public/.gitkeep +1 -0
  123. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/src/main.ts +46 -0
  124. package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/package.json +88 -0
  125. package/examples/esm-bundler/node_modules/@rollup/rollup-darwin-arm64/README.md +3 -0
  126. package/examples/esm-bundler/node_modules/@rollup/rollup-darwin-arm64/package.json +22 -0
  127. package/examples/esm-bundler/node_modules/@rollup/rollup-darwin-arm64/rollup.darwin-arm64.node +0 -0
  128. package/examples/esm-bundler/node_modules/@types/estree/LICENSE +21 -0
  129. package/examples/esm-bundler/node_modules/@types/estree/README.md +15 -0
  130. package/examples/esm-bundler/node_modules/@types/estree/flow.d.ts +167 -0
  131. package/examples/esm-bundler/node_modules/@types/estree/index.d.ts +694 -0
  132. package/examples/esm-bundler/node_modules/@types/estree/package.json +27 -0
  133. package/examples/esm-bundler/node_modules/esbuild/LICENSE.md +21 -0
  134. package/examples/esm-bundler/node_modules/esbuild/README.md +3 -0
  135. package/examples/esm-bundler/node_modules/esbuild/bin/esbuild +0 -0
  136. package/examples/esm-bundler/node_modules/esbuild/install.js +289 -0
  137. package/examples/esm-bundler/node_modules/esbuild/lib/main.d.ts +716 -0
  138. package/examples/esm-bundler/node_modules/esbuild/lib/main.js +2242 -0
  139. package/examples/esm-bundler/node_modules/esbuild/package.json +49 -0
  140. package/examples/esm-bundler/node_modules/fdir/LICENSE +7 -0
  141. package/examples/esm-bundler/node_modules/fdir/README.md +91 -0
  142. package/examples/esm-bundler/node_modules/fdir/dist/index.cjs +588 -0
  143. package/examples/esm-bundler/node_modules/fdir/dist/index.d.cts +155 -0
  144. package/examples/esm-bundler/node_modules/fdir/dist/index.d.mts +155 -0
  145. package/examples/esm-bundler/node_modules/fdir/dist/index.mjs +570 -0
  146. package/examples/esm-bundler/node_modules/fdir/package.json +103 -0
  147. package/examples/esm-bundler/node_modules/nanoid/LICENSE +20 -0
  148. package/examples/esm-bundler/node_modules/nanoid/README.md +39 -0
  149. package/examples/esm-bundler/node_modules/nanoid/async/index.browser.cjs +69 -0
  150. package/examples/esm-bundler/node_modules/nanoid/async/index.browser.js +34 -0
  151. package/examples/esm-bundler/node_modules/nanoid/async/index.cjs +71 -0
  152. package/examples/esm-bundler/node_modules/nanoid/async/index.d.ts +56 -0
  153. package/examples/esm-bundler/node_modules/nanoid/async/index.js +35 -0
  154. package/examples/esm-bundler/node_modules/nanoid/async/index.native.js +26 -0
  155. package/examples/esm-bundler/node_modules/nanoid/async/package.json +12 -0
  156. package/examples/esm-bundler/node_modules/nanoid/bin/nanoid.cjs +55 -0
  157. package/examples/esm-bundler/node_modules/nanoid/index.browser.cjs +72 -0
  158. package/examples/esm-bundler/node_modules/nanoid/index.browser.js +34 -0
  159. package/examples/esm-bundler/node_modules/nanoid/index.cjs +85 -0
  160. package/examples/esm-bundler/node_modules/nanoid/index.d.cts +91 -0
  161. package/examples/esm-bundler/node_modules/nanoid/index.d.ts +91 -0
  162. package/examples/esm-bundler/node_modules/nanoid/index.js +45 -0
  163. package/examples/esm-bundler/node_modules/nanoid/nanoid.js +1 -0
  164. package/examples/esm-bundler/node_modules/nanoid/non-secure/index.cjs +34 -0
  165. package/examples/esm-bundler/node_modules/nanoid/non-secure/index.d.ts +33 -0
  166. package/examples/esm-bundler/node_modules/nanoid/non-secure/index.js +21 -0
  167. package/examples/esm-bundler/node_modules/nanoid/non-secure/package.json +6 -0
  168. package/examples/esm-bundler/node_modules/nanoid/package.json +89 -0
  169. package/examples/esm-bundler/node_modules/nanoid/url-alphabet/index.cjs +7 -0
  170. package/examples/esm-bundler/node_modules/nanoid/url-alphabet/index.js +3 -0
  171. package/examples/esm-bundler/node_modules/nanoid/url-alphabet/package.json +6 -0
  172. package/examples/esm-bundler/node_modules/picocolors/LICENSE +15 -0
  173. package/examples/esm-bundler/node_modules/picocolors/README.md +21 -0
  174. package/examples/esm-bundler/node_modules/picocolors/package.json +25 -0
  175. package/examples/esm-bundler/node_modules/picocolors/picocolors.browser.js +4 -0
  176. package/examples/esm-bundler/node_modules/picocolors/picocolors.d.ts +5 -0
  177. package/examples/esm-bundler/node_modules/picocolors/picocolors.js +75 -0
  178. package/examples/esm-bundler/node_modules/picocolors/types.d.ts +51 -0
  179. package/examples/esm-bundler/node_modules/picomatch/LICENSE +21 -0
  180. package/examples/esm-bundler/node_modules/picomatch/README.md +749 -0
  181. package/examples/esm-bundler/node_modules/picomatch/index.js +17 -0
  182. package/examples/esm-bundler/node_modules/picomatch/lib/constants.js +184 -0
  183. package/examples/esm-bundler/node_modules/picomatch/lib/parse.js +1386 -0
  184. package/examples/esm-bundler/node_modules/picomatch/lib/picomatch.js +349 -0
  185. package/examples/esm-bundler/node_modules/picomatch/lib/scan.js +391 -0
  186. package/examples/esm-bundler/node_modules/picomatch/lib/utils.js +72 -0
  187. package/examples/esm-bundler/node_modules/picomatch/package.json +82 -0
  188. package/examples/esm-bundler/node_modules/picomatch/posix.js +3 -0
  189. package/examples/esm-bundler/node_modules/postcss/LICENSE +20 -0
  190. package/examples/esm-bundler/node_modules/postcss/README.md +28 -0
  191. package/examples/esm-bundler/node_modules/postcss/lib/at-rule.d.ts +139 -0
  192. package/examples/esm-bundler/node_modules/postcss/lib/at-rule.js +25 -0
  193. package/examples/esm-bundler/node_modules/postcss/lib/comment.d.ts +67 -0
  194. package/examples/esm-bundler/node_modules/postcss/lib/comment.js +13 -0
  195. package/examples/esm-bundler/node_modules/postcss/lib/container.d.ts +478 -0
  196. package/examples/esm-bundler/node_modules/postcss/lib/container.js +447 -0
  197. package/examples/esm-bundler/node_modules/postcss/lib/css-syntax-error.d.ts +247 -0
  198. package/examples/esm-bundler/node_modules/postcss/lib/css-syntax-error.js +133 -0
  199. package/examples/esm-bundler/node_modules/postcss/lib/declaration.d.ts +150 -0
  200. package/examples/esm-bundler/node_modules/postcss/lib/declaration.js +24 -0
  201. package/examples/esm-bundler/node_modules/postcss/lib/document.d.ts +68 -0
  202. package/examples/esm-bundler/node_modules/postcss/lib/document.js +33 -0
  203. package/examples/esm-bundler/node_modules/postcss/lib/fromJSON.d.ts +9 -0
  204. package/examples/esm-bundler/node_modules/postcss/lib/fromJSON.js +54 -0
  205. package/examples/esm-bundler/node_modules/postcss/lib/input.d.ts +226 -0
  206. package/examples/esm-bundler/node_modules/postcss/lib/input.js +273 -0
  207. package/examples/esm-bundler/node_modules/postcss/lib/lazy-result.d.ts +189 -0
  208. package/examples/esm-bundler/node_modules/postcss/lib/lazy-result.js +550 -0
  209. package/examples/esm-bundler/node_modules/postcss/lib/list.d.ts +60 -0
  210. package/examples/esm-bundler/node_modules/postcss/lib/list.js +58 -0
  211. package/examples/esm-bundler/node_modules/postcss/lib/map-generator.js +376 -0
  212. package/examples/esm-bundler/node_modules/postcss/lib/no-work-result.d.ts +45 -0
  213. package/examples/esm-bundler/node_modules/postcss/lib/no-work-result.js +137 -0
  214. package/examples/esm-bundler/node_modules/postcss/lib/node.d.ts +555 -0
  215. package/examples/esm-bundler/node_modules/postcss/lib/node.js +449 -0
  216. package/examples/esm-bundler/node_modules/postcss/lib/parse.d.ts +9 -0
  217. package/examples/esm-bundler/node_modules/postcss/lib/parse.js +42 -0
  218. package/examples/esm-bundler/node_modules/postcss/lib/parser.js +611 -0
  219. package/examples/esm-bundler/node_modules/postcss/lib/postcss.d.mts +66 -0
  220. package/examples/esm-bundler/node_modules/postcss/lib/postcss.d.ts +456 -0
  221. package/examples/esm-bundler/node_modules/postcss/lib/postcss.js +101 -0
  222. package/examples/esm-bundler/node_modules/postcss/lib/postcss.mjs +30 -0
  223. package/examples/esm-bundler/node_modules/postcss/lib/previous-map.d.ts +80 -0
  224. package/examples/esm-bundler/node_modules/postcss/lib/previous-map.js +145 -0
  225. package/examples/esm-bundler/node_modules/postcss/lib/processor.d.ts +114 -0
  226. package/examples/esm-bundler/node_modules/postcss/lib/processor.js +67 -0
  227. package/examples/esm-bundler/node_modules/postcss/lib/result.d.ts +204 -0
  228. package/examples/esm-bundler/node_modules/postcss/lib/result.js +42 -0
  229. package/examples/esm-bundler/node_modules/postcss/lib/root.d.ts +86 -0
  230. package/examples/esm-bundler/node_modules/postcss/lib/root.js +61 -0
  231. package/examples/esm-bundler/node_modules/postcss/lib/rule.d.ts +126 -0
  232. package/examples/esm-bundler/node_modules/postcss/lib/rule.js +27 -0
  233. package/examples/esm-bundler/node_modules/postcss/lib/stringifier.d.ts +45 -0
  234. package/examples/esm-bundler/node_modules/postcss/lib/stringifier.js +353 -0
  235. package/examples/esm-bundler/node_modules/postcss/lib/stringify.d.ts +9 -0
  236. package/examples/esm-bundler/node_modules/postcss/lib/stringify.js +11 -0
  237. package/examples/esm-bundler/node_modules/postcss/lib/symbols.js +5 -0
  238. package/examples/esm-bundler/node_modules/postcss/lib/terminal-highlight.js +70 -0
  239. package/examples/esm-bundler/node_modules/postcss/lib/tokenize.js +266 -0
  240. package/examples/esm-bundler/node_modules/postcss/lib/warn-once.js +13 -0
  241. package/examples/esm-bundler/node_modules/postcss/lib/warning.d.ts +146 -0
  242. package/examples/esm-bundler/node_modules/postcss/lib/warning.js +37 -0
  243. package/examples/esm-bundler/node_modules/postcss/package.json +88 -0
  244. package/examples/esm-bundler/node_modules/rollup/LICENSE.md +679 -0
  245. package/examples/esm-bundler/node_modules/rollup/README.md +134 -0
  246. package/examples/esm-bundler/node_modules/rollup/dist/bin/rollup +1912 -0
  247. package/examples/esm-bundler/node_modules/rollup/dist/es/getLogFilter.js +64 -0
  248. package/examples/esm-bundler/node_modules/rollup/dist/es/package.json +1 -0
  249. package/examples/esm-bundler/node_modules/rollup/dist/es/parseAst.js +12 -0
  250. package/examples/esm-bundler/node_modules/rollup/dist/es/rollup.js +17 -0
  251. package/examples/esm-bundler/node_modules/rollup/dist/es/shared/node-entry.js +24463 -0
  252. package/examples/esm-bundler/node_modules/rollup/dist/es/shared/parseAst.js +2124 -0
  253. package/examples/esm-bundler/node_modules/rollup/dist/es/shared/watch.js +9909 -0
  254. package/examples/esm-bundler/node_modules/rollup/dist/getLogFilter.d.ts +5 -0
  255. package/examples/esm-bundler/node_modules/rollup/dist/getLogFilter.js +69 -0
  256. package/examples/esm-bundler/node_modules/rollup/dist/loadConfigFile.d.ts +20 -0
  257. package/examples/esm-bundler/node_modules/rollup/dist/loadConfigFile.js +29 -0
  258. package/examples/esm-bundler/node_modules/rollup/dist/native.js +161 -0
  259. package/examples/esm-bundler/node_modules/rollup/dist/parseAst.d.ts +4 -0
  260. package/examples/esm-bundler/node_modules/rollup/dist/parseAst.js +22 -0
  261. package/examples/esm-bundler/node_modules/rollup/dist/rollup.d.ts +1225 -0
  262. package/examples/esm-bundler/node_modules/rollup/dist/rollup.js +127 -0
  263. package/examples/esm-bundler/node_modules/rollup/dist/shared/fsevents-importer.js +37 -0
  264. package/examples/esm-bundler/node_modules/rollup/dist/shared/index.js +9615 -0
  265. package/examples/esm-bundler/node_modules/rollup/dist/shared/loadConfigFile.js +572 -0
  266. package/examples/esm-bundler/node_modules/rollup/dist/shared/parseAst.js +2361 -0
  267. package/examples/esm-bundler/node_modules/rollup/dist/shared/rollup.js +24385 -0
  268. package/examples/esm-bundler/node_modules/rollup/dist/shared/watch-cli.js +542 -0
  269. package/examples/esm-bundler/node_modules/rollup/dist/shared/watch.js +324 -0
  270. package/examples/esm-bundler/node_modules/rollup/package.json +289 -0
  271. package/examples/esm-bundler/node_modules/source-map-js/LICENSE +28 -0
  272. package/examples/esm-bundler/node_modules/source-map-js/README.md +765 -0
  273. package/examples/esm-bundler/node_modules/source-map-js/lib/array-set.js +121 -0
  274. package/examples/esm-bundler/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  275. package/examples/esm-bundler/node_modules/source-map-js/lib/base64.js +67 -0
  276. package/examples/esm-bundler/node_modules/source-map-js/lib/binary-search.js +111 -0
  277. package/examples/esm-bundler/node_modules/source-map-js/lib/mapping-list.js +79 -0
  278. package/examples/esm-bundler/node_modules/source-map-js/lib/quick-sort.js +132 -0
  279. package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-consumer.d.ts +1 -0
  280. package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  281. package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-generator.d.ts +1 -0
  282. package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  283. package/examples/esm-bundler/node_modules/source-map-js/lib/source-node.d.ts +1 -0
  284. package/examples/esm-bundler/node_modules/source-map-js/lib/source-node.js +413 -0
  285. package/examples/esm-bundler/node_modules/source-map-js/lib/util.js +594 -0
  286. package/examples/esm-bundler/node_modules/source-map-js/package.json +71 -0
  287. package/examples/esm-bundler/node_modules/source-map-js/source-map.d.ts +104 -0
  288. package/examples/esm-bundler/node_modules/source-map-js/source-map.js +8 -0
  289. package/examples/esm-bundler/node_modules/tinyglobby/LICENSE +21 -0
  290. package/examples/esm-bundler/node_modules/tinyglobby/README.md +25 -0
  291. package/examples/esm-bundler/node_modules/tinyglobby/dist/index.cjs +334 -0
  292. package/examples/esm-bundler/node_modules/tinyglobby/dist/index.d.cts +148 -0
  293. package/examples/esm-bundler/node_modules/tinyglobby/dist/index.d.mts +148 -0
  294. package/examples/esm-bundler/node_modules/tinyglobby/dist/index.mjs +306 -0
  295. package/examples/esm-bundler/node_modules/tinyglobby/package.json +73 -0
  296. package/examples/esm-bundler/node_modules/vite/LICENSE.md +2406 -0
  297. package/examples/esm-bundler/node_modules/vite/README.md +20 -0
  298. package/examples/esm-bundler/node_modules/vite/bin/openChrome.applescript +95 -0
  299. package/examples/esm-bundler/node_modules/vite/bin/vite.js +79 -0
  300. package/examples/esm-bundler/node_modules/vite/client.d.ts +279 -0
  301. package/examples/esm-bundler/node_modules/vite/dist/client/client.mjs +1134 -0
  302. package/examples/esm-bundler/node_modules/vite/dist/client/env.mjs +24 -0
  303. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-3RmXg9uo.js +553 -0
  304. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-4-IQbZQm.js +822 -0
  305. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-CvfTChi5.js +8218 -0
  306. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-Dq2t6Dq0.js +49565 -0
  307. package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-lpEPC2f9.js +7113 -0
  308. package/examples/esm-bundler/node_modules/vite/dist/node/cli.js +949 -0
  309. package/examples/esm-bundler/node_modules/vite/dist/node/constants.js +149 -0
  310. package/examples/esm-bundler/node_modules/vite/dist/node/index.d.ts +4227 -0
  311. package/examples/esm-bundler/node_modules/vite/dist/node/index.js +194 -0
  312. package/examples/esm-bundler/node_modules/vite/dist/node/module-runner.d.ts +290 -0
  313. package/examples/esm-bundler/node_modules/vite/dist/node/module-runner.js +1311 -0
  314. package/examples/esm-bundler/node_modules/vite/dist/node/moduleRunnerTransport.d-DJ_mE5sf.d.ts +87 -0
  315. package/examples/esm-bundler/node_modules/vite/dist/node-cjs/publicUtils.cjs +3987 -0
  316. package/examples/esm-bundler/node_modules/vite/index.cjs +96 -0
  317. package/examples/esm-bundler/node_modules/vite/index.d.cts +6 -0
  318. package/examples/esm-bundler/node_modules/vite/misc/false.js +1 -0
  319. package/examples/esm-bundler/node_modules/vite/misc/true.js +1 -0
  320. package/examples/esm-bundler/node_modules/vite/package.json +204 -0
  321. package/examples/esm-bundler/node_modules/vite/types/customEvent.d.ts +45 -0
  322. package/examples/esm-bundler/node_modules/vite/types/hmrPayload.d.ts +74 -0
  323. package/examples/esm-bundler/node_modules/vite/types/hot.d.ts +39 -0
  324. package/examples/esm-bundler/node_modules/vite/types/import-meta.d.ts +5 -0
  325. package/examples/esm-bundler/node_modules/vite/types/importGlob.d.ts +75 -0
  326. package/examples/esm-bundler/node_modules/vite/types/importMeta.d.ts +31 -0
  327. package/examples/esm-bundler/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts +63 -0
  328. package/examples/esm-bundler/node_modules/vite/types/internal/lightningcssOptions.d.ts +18 -0
  329. package/examples/esm-bundler/node_modules/vite/types/metadata.d.ts +35 -0
  330. package/examples/esm-bundler/node_modules/vite/types/package.json +4 -0
  331. package/examples/esm-bundler/package-lock.json +1127 -0
  332. package/examples/esm-bundler/package.json +15 -0
  333. package/examples/esm-bundler/src/main.ts +43 -0
  334. package/examples/react/README.md +10 -0
  335. package/examples/react/index.html +12 -0
  336. package/examples/react/package.json +19 -0
  337. package/examples/react/src/App.tsx +20 -0
  338. package/examples/react/src/main.tsx +9 -0
  339. package/examples/self-hosted/README.md +11 -0
  340. package/examples/self-hosted/index.html +12 -0
  341. package/examples/self-hosted/package.json +16 -0
  342. package/examples/self-hosted/public/.gitkeep +1 -0
  343. package/examples/self-hosted/src/main.ts +46 -0
  344. package/package.json +4 -2
  345. package/dist/lib-react.js.map +0 -9
  346. package/dist/lib.js.map +0 -9
@@ -0,0 +1,611 @@
1
+ 'use strict'
2
+
3
+ let AtRule = require('./at-rule')
4
+ let Comment = require('./comment')
5
+ let Declaration = require('./declaration')
6
+ let Root = require('./root')
7
+ let Rule = require('./rule')
8
+ let tokenizer = require('./tokenize')
9
+
10
+ const SAFE_COMMENT_NEIGHBOR = {
11
+ empty: true,
12
+ space: true
13
+ }
14
+
15
+ function findLastWithPosition(tokens) {
16
+ for (let i = tokens.length - 1; i >= 0; i--) {
17
+ let token = tokens[i]
18
+ let pos = token[3] || token[2]
19
+ if (pos) return pos
20
+ }
21
+ }
22
+
23
+ class Parser {
24
+ constructor(input) {
25
+ this.input = input
26
+
27
+ this.root = new Root()
28
+ this.current = this.root
29
+ this.spaces = ''
30
+ this.semicolon = false
31
+
32
+ this.createTokenizer()
33
+ this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }
34
+ }
35
+
36
+ atrule(token) {
37
+ let node = new AtRule()
38
+ node.name = token[1].slice(1)
39
+ if (node.name === '') {
40
+ this.unnamedAtrule(node, token)
41
+ }
42
+ this.init(node, token[2])
43
+
44
+ let type
45
+ let prev
46
+ let shift
47
+ let last = false
48
+ let open = false
49
+ let params = []
50
+ let brackets = []
51
+
52
+ while (!this.tokenizer.endOfFile()) {
53
+ token = this.tokenizer.nextToken()
54
+ type = token[0]
55
+
56
+ if (type === '(' || type === '[') {
57
+ brackets.push(type === '(' ? ')' : ']')
58
+ } else if (type === '{' && brackets.length > 0) {
59
+ brackets.push('}')
60
+ } else if (type === brackets[brackets.length - 1]) {
61
+ brackets.pop()
62
+ }
63
+
64
+ if (brackets.length === 0) {
65
+ if (type === ';') {
66
+ node.source.end = this.getPosition(token[2])
67
+ node.source.end.offset++
68
+ this.semicolon = true
69
+ break
70
+ } else if (type === '{') {
71
+ open = true
72
+ break
73
+ } else if (type === '}') {
74
+ if (params.length > 0) {
75
+ shift = params.length - 1
76
+ prev = params[shift]
77
+ while (prev && prev[0] === 'space') {
78
+ prev = params[--shift]
79
+ }
80
+ if (prev) {
81
+ node.source.end = this.getPosition(prev[3] || prev[2])
82
+ node.source.end.offset++
83
+ }
84
+ }
85
+ this.end(token)
86
+ break
87
+ } else {
88
+ params.push(token)
89
+ }
90
+ } else {
91
+ params.push(token)
92
+ }
93
+
94
+ if (this.tokenizer.endOfFile()) {
95
+ last = true
96
+ break
97
+ }
98
+ }
99
+
100
+ node.raws.between = this.spacesAndCommentsFromEnd(params)
101
+ if (params.length) {
102
+ node.raws.afterName = this.spacesAndCommentsFromStart(params)
103
+ this.raw(node, 'params', params)
104
+ if (last) {
105
+ token = params[params.length - 1]
106
+ node.source.end = this.getPosition(token[3] || token[2])
107
+ node.source.end.offset++
108
+ this.spaces = node.raws.between
109
+ node.raws.between = ''
110
+ }
111
+ } else {
112
+ node.raws.afterName = ''
113
+ node.params = ''
114
+ }
115
+
116
+ if (open) {
117
+ node.nodes = []
118
+ this.current = node
119
+ }
120
+ }
121
+
122
+ checkMissedSemicolon(tokens) {
123
+ let colon = this.colon(tokens)
124
+ if (colon === false) return
125
+
126
+ let founded = 0
127
+ let token
128
+ for (let j = colon - 1; j >= 0; j--) {
129
+ token = tokens[j]
130
+ if (token[0] !== 'space') {
131
+ founded += 1
132
+ if (founded === 2) break
133
+ }
134
+ }
135
+ // If the token is a word, e.g. `!important`, `red` or any other valid property's value.
136
+ // Then we need to return the colon after that word token. [3] is the "end" colon of that word.
137
+ // And because we need it after that one we do +1 to get the next one.
138
+ throw this.input.error(
139
+ 'Missed semicolon',
140
+ token[0] === 'word' ? token[3] + 1 : token[2]
141
+ )
142
+ }
143
+
144
+ colon(tokens) {
145
+ let brackets = 0
146
+ let prev, token, type
147
+ for (let [i, element] of tokens.entries()) {
148
+ token = element
149
+ type = token[0]
150
+
151
+ if (type === '(') {
152
+ brackets += 1
153
+ }
154
+ if (type === ')') {
155
+ brackets -= 1
156
+ }
157
+ if (brackets === 0 && type === ':') {
158
+ if (!prev) {
159
+ this.doubleColon(token)
160
+ } else if (prev[0] === 'word' && prev[1] === 'progid') {
161
+ continue
162
+ } else {
163
+ return i
164
+ }
165
+ }
166
+
167
+ prev = token
168
+ }
169
+ return false
170
+ }
171
+
172
+ comment(token) {
173
+ let node = new Comment()
174
+ this.init(node, token[2])
175
+ node.source.end = this.getPosition(token[3] || token[2])
176
+ node.source.end.offset++
177
+
178
+ let text = token[1].slice(2, -2)
179
+ if (!text.trim()) {
180
+ node.text = ''
181
+ node.raws.left = text
182
+ node.raws.right = ''
183
+ } else {
184
+ let match = text.match(/^(\s*)([^]*\S)(\s*)$/)
185
+ node.text = match[2]
186
+ node.raws.left = match[1]
187
+ node.raws.right = match[3]
188
+ }
189
+ }
190
+
191
+ createTokenizer() {
192
+ this.tokenizer = tokenizer(this.input)
193
+ }
194
+
195
+ decl(tokens, customProperty) {
196
+ let node = new Declaration()
197
+ this.init(node, tokens[0][2])
198
+
199
+ let last = tokens[tokens.length - 1]
200
+ if (last[0] === ';') {
201
+ this.semicolon = true
202
+ tokens.pop()
203
+ }
204
+
205
+ node.source.end = this.getPosition(
206
+ last[3] || last[2] || findLastWithPosition(tokens)
207
+ )
208
+ node.source.end.offset++
209
+
210
+ while (tokens[0][0] !== 'word') {
211
+ if (tokens.length === 1) this.unknownWord(tokens)
212
+ node.raws.before += tokens.shift()[1]
213
+ }
214
+ node.source.start = this.getPosition(tokens[0][2])
215
+
216
+ node.prop = ''
217
+ while (tokens.length) {
218
+ let type = tokens[0][0]
219
+ if (type === ':' || type === 'space' || type === 'comment') {
220
+ break
221
+ }
222
+ node.prop += tokens.shift()[1]
223
+ }
224
+
225
+ node.raws.between = ''
226
+
227
+ let token
228
+ while (tokens.length) {
229
+ token = tokens.shift()
230
+
231
+ if (token[0] === ':') {
232
+ node.raws.between += token[1]
233
+ break
234
+ } else {
235
+ if (token[0] === 'word' && /\w/.test(token[1])) {
236
+ this.unknownWord([token])
237
+ }
238
+ node.raws.between += token[1]
239
+ }
240
+ }
241
+
242
+ if (node.prop[0] === '_' || node.prop[0] === '*') {
243
+ node.raws.before += node.prop[0]
244
+ node.prop = node.prop.slice(1)
245
+ }
246
+
247
+ let firstSpaces = []
248
+ let next
249
+ while (tokens.length) {
250
+ next = tokens[0][0]
251
+ if (next !== 'space' && next !== 'comment') break
252
+ firstSpaces.push(tokens.shift())
253
+ }
254
+
255
+ this.precheckMissedSemicolon(tokens)
256
+
257
+ for (let i = tokens.length - 1; i >= 0; i--) {
258
+ token = tokens[i]
259
+ if (token[1].toLowerCase() === '!important') {
260
+ node.important = true
261
+ let string = this.stringFrom(tokens, i)
262
+ string = this.spacesFromEnd(tokens) + string
263
+ if (string !== ' !important') node.raws.important = string
264
+ break
265
+ } else if (token[1].toLowerCase() === 'important') {
266
+ let cache = tokens.slice(0)
267
+ let str = ''
268
+ for (let j = i; j > 0; j--) {
269
+ let type = cache[j][0]
270
+ if (str.trim().startsWith('!') && type !== 'space') {
271
+ break
272
+ }
273
+ str = cache.pop()[1] + str
274
+ }
275
+ if (str.trim().startsWith('!')) {
276
+ node.important = true
277
+ node.raws.important = str
278
+ tokens = cache
279
+ }
280
+ }
281
+
282
+ if (token[0] !== 'space' && token[0] !== 'comment') {
283
+ break
284
+ }
285
+ }
286
+
287
+ let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')
288
+
289
+ if (hasWord) {
290
+ node.raws.between += firstSpaces.map(i => i[1]).join('')
291
+ firstSpaces = []
292
+ }
293
+ this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)
294
+
295
+ if (node.value.includes(':') && !customProperty) {
296
+ this.checkMissedSemicolon(tokens)
297
+ }
298
+ }
299
+
300
+ doubleColon(token) {
301
+ throw this.input.error(
302
+ 'Double colon',
303
+ { offset: token[2] },
304
+ { offset: token[2] + token[1].length }
305
+ )
306
+ }
307
+
308
+ emptyRule(token) {
309
+ let node = new Rule()
310
+ this.init(node, token[2])
311
+ node.selector = ''
312
+ node.raws.between = ''
313
+ this.current = node
314
+ }
315
+
316
+ end(token) {
317
+ if (this.current.nodes && this.current.nodes.length) {
318
+ this.current.raws.semicolon = this.semicolon
319
+ }
320
+ this.semicolon = false
321
+
322
+ this.current.raws.after = (this.current.raws.after || '') + this.spaces
323
+ this.spaces = ''
324
+
325
+ if (this.current.parent) {
326
+ this.current.source.end = this.getPosition(token[2])
327
+ this.current.source.end.offset++
328
+ this.current = this.current.parent
329
+ } else {
330
+ this.unexpectedClose(token)
331
+ }
332
+ }
333
+
334
+ endFile() {
335
+ if (this.current.parent) this.unclosedBlock()
336
+ if (this.current.nodes && this.current.nodes.length) {
337
+ this.current.raws.semicolon = this.semicolon
338
+ }
339
+ this.current.raws.after = (this.current.raws.after || '') + this.spaces
340
+ this.root.source.end = this.getPosition(this.tokenizer.position())
341
+ }
342
+
343
+ freeSemicolon(token) {
344
+ this.spaces += token[1]
345
+ if (this.current.nodes) {
346
+ let prev = this.current.nodes[this.current.nodes.length - 1]
347
+ if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {
348
+ prev.raws.ownSemicolon = this.spaces
349
+ this.spaces = ''
350
+ prev.source.end = this.getPosition(token[2])
351
+ prev.source.end.offset += prev.raws.ownSemicolon.length
352
+ }
353
+ }
354
+ }
355
+
356
+ // Helpers
357
+
358
+ getPosition(offset) {
359
+ let pos = this.input.fromOffset(offset)
360
+ return {
361
+ column: pos.col,
362
+ line: pos.line,
363
+ offset
364
+ }
365
+ }
366
+
367
+ init(node, offset) {
368
+ this.current.push(node)
369
+ node.source = {
370
+ input: this.input,
371
+ start: this.getPosition(offset)
372
+ }
373
+ node.raws.before = this.spaces
374
+ this.spaces = ''
375
+ if (node.type !== 'comment') this.semicolon = false
376
+ }
377
+
378
+ other(start) {
379
+ let end = false
380
+ let type = null
381
+ let colon = false
382
+ let bracket = null
383
+ let brackets = []
384
+ let customProperty = start[1].startsWith('--')
385
+
386
+ let tokens = []
387
+ let token = start
388
+ while (token) {
389
+ type = token[0]
390
+ tokens.push(token)
391
+
392
+ if (type === '(' || type === '[') {
393
+ if (!bracket) bracket = token
394
+ brackets.push(type === '(' ? ')' : ']')
395
+ } else if (customProperty && colon && type === '{') {
396
+ if (!bracket) bracket = token
397
+ brackets.push('}')
398
+ } else if (brackets.length === 0) {
399
+ if (type === ';') {
400
+ if (colon) {
401
+ this.decl(tokens, customProperty)
402
+ return
403
+ } else {
404
+ break
405
+ }
406
+ } else if (type === '{') {
407
+ this.rule(tokens)
408
+ return
409
+ } else if (type === '}') {
410
+ this.tokenizer.back(tokens.pop())
411
+ end = true
412
+ break
413
+ } else if (type === ':') {
414
+ colon = true
415
+ }
416
+ } else if (type === brackets[brackets.length - 1]) {
417
+ brackets.pop()
418
+ if (brackets.length === 0) bracket = null
419
+ }
420
+
421
+ token = this.tokenizer.nextToken()
422
+ }
423
+
424
+ if (this.tokenizer.endOfFile()) end = true
425
+ if (brackets.length > 0) this.unclosedBracket(bracket)
426
+
427
+ if (end && colon) {
428
+ if (!customProperty) {
429
+ while (tokens.length) {
430
+ token = tokens[tokens.length - 1][0]
431
+ if (token !== 'space' && token !== 'comment') break
432
+ this.tokenizer.back(tokens.pop())
433
+ }
434
+ }
435
+ this.decl(tokens, customProperty)
436
+ } else {
437
+ this.unknownWord(tokens)
438
+ }
439
+ }
440
+
441
+ parse() {
442
+ let token
443
+ while (!this.tokenizer.endOfFile()) {
444
+ token = this.tokenizer.nextToken()
445
+
446
+ switch (token[0]) {
447
+ case 'space':
448
+ this.spaces += token[1]
449
+ break
450
+
451
+ case ';':
452
+ this.freeSemicolon(token)
453
+ break
454
+
455
+ case '}':
456
+ this.end(token)
457
+ break
458
+
459
+ case 'comment':
460
+ this.comment(token)
461
+ break
462
+
463
+ case 'at-word':
464
+ this.atrule(token)
465
+ break
466
+
467
+ case '{':
468
+ this.emptyRule(token)
469
+ break
470
+
471
+ default:
472
+ this.other(token)
473
+ break
474
+ }
475
+ }
476
+ this.endFile()
477
+ }
478
+
479
+ precheckMissedSemicolon(/* tokens */) {
480
+ // Hook for Safe Parser
481
+ }
482
+
483
+ raw(node, prop, tokens, customProperty) {
484
+ let token, type
485
+ let length = tokens.length
486
+ let value = ''
487
+ let clean = true
488
+ let next, prev
489
+
490
+ for (let i = 0; i < length; i += 1) {
491
+ token = tokens[i]
492
+ type = token[0]
493
+ if (type === 'space' && i === length - 1 && !customProperty) {
494
+ clean = false
495
+ } else if (type === 'comment') {
496
+ prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'
497
+ next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'
498
+ if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {
499
+ if (value.slice(-1) === ',') {
500
+ clean = false
501
+ } else {
502
+ value += token[1]
503
+ }
504
+ } else {
505
+ clean = false
506
+ }
507
+ } else {
508
+ value += token[1]
509
+ }
510
+ }
511
+ if (!clean) {
512
+ let raw = tokens.reduce((all, i) => all + i[1], '')
513
+ node.raws[prop] = { raw, value }
514
+ }
515
+ node[prop] = value
516
+ }
517
+
518
+ rule(tokens) {
519
+ tokens.pop()
520
+
521
+ let node = new Rule()
522
+ this.init(node, tokens[0][2])
523
+
524
+ node.raws.between = this.spacesAndCommentsFromEnd(tokens)
525
+ this.raw(node, 'selector', tokens)
526
+ this.current = node
527
+ }
528
+
529
+ spacesAndCommentsFromEnd(tokens) {
530
+ let lastTokenType
531
+ let spaces = ''
532
+ while (tokens.length) {
533
+ lastTokenType = tokens[tokens.length - 1][0]
534
+ if (lastTokenType !== 'space' && lastTokenType !== 'comment') break
535
+ spaces = tokens.pop()[1] + spaces
536
+ }
537
+ return spaces
538
+ }
539
+
540
+ // Errors
541
+
542
+ spacesAndCommentsFromStart(tokens) {
543
+ let next
544
+ let spaces = ''
545
+ while (tokens.length) {
546
+ next = tokens[0][0]
547
+ if (next !== 'space' && next !== 'comment') break
548
+ spaces += tokens.shift()[1]
549
+ }
550
+ return spaces
551
+ }
552
+
553
+ spacesFromEnd(tokens) {
554
+ let lastTokenType
555
+ let spaces = ''
556
+ while (tokens.length) {
557
+ lastTokenType = tokens[tokens.length - 1][0]
558
+ if (lastTokenType !== 'space') break
559
+ spaces = tokens.pop()[1] + spaces
560
+ }
561
+ return spaces
562
+ }
563
+
564
+ stringFrom(tokens, from) {
565
+ let result = ''
566
+ for (let i = from; i < tokens.length; i++) {
567
+ result += tokens[i][1]
568
+ }
569
+ tokens.splice(from, tokens.length - from)
570
+ return result
571
+ }
572
+
573
+ unclosedBlock() {
574
+ let pos = this.current.source.start
575
+ throw this.input.error('Unclosed block', pos.line, pos.column)
576
+ }
577
+
578
+ unclosedBracket(bracket) {
579
+ throw this.input.error(
580
+ 'Unclosed bracket',
581
+ { offset: bracket[2] },
582
+ { offset: bracket[2] + 1 }
583
+ )
584
+ }
585
+
586
+ unexpectedClose(token) {
587
+ throw this.input.error(
588
+ 'Unexpected }',
589
+ { offset: token[2] },
590
+ { offset: token[2] + 1 }
591
+ )
592
+ }
593
+
594
+ unknownWord(tokens) {
595
+ throw this.input.error(
596
+ 'Unknown word ' + tokens[0][1],
597
+ { offset: tokens[0][2] },
598
+ { offset: tokens[0][2] + tokens[0][1].length }
599
+ )
600
+ }
601
+
602
+ unnamedAtrule(node, token) {
603
+ throw this.input.error(
604
+ 'At-rule without name',
605
+ { offset: token[2] },
606
+ { offset: token[2] + token[1].length }
607
+ )
608
+ }
609
+ }
610
+
611
+ module.exports = Parser
@@ -0,0 +1,66 @@
1
+ export {
2
+ // Type-only exports
3
+ AcceptedPlugin,
4
+ AnyNode,
5
+ atRule,
6
+ AtRule,
7
+ AtRuleProps,
8
+ Builder,
9
+ ChildNode,
10
+ ChildProps,
11
+ comment,
12
+ Comment,
13
+ CommentProps,
14
+ Container,
15
+ ContainerProps,
16
+ CssSyntaxError,
17
+ decl,
18
+ Declaration,
19
+ DeclarationProps,
20
+ // postcss function / namespace
21
+ default,
22
+ document,
23
+ Document,
24
+ DocumentProps,
25
+ FilePosition,
26
+ fromJSON,
27
+ Helpers,
28
+ Input,
29
+ JSONHydrator,
30
+ // This is a class, but it’s not re-exported. That’s why it’s exported as type-only here.
31
+ type LazyResult,
32
+ list,
33
+ Message,
34
+ Node,
35
+ NodeErrorOptions,
36
+ NodeProps,
37
+ OldPlugin,
38
+ parse,
39
+ Parser,
40
+ // @ts-expect-error This value exists, but it’s untyped.
41
+ plugin,
42
+ Plugin,
43
+ PluginCreator,
44
+ Position,
45
+ Postcss,
46
+ ProcessOptions,
47
+ Processor,
48
+ Result,
49
+ root,
50
+ Root,
51
+ RootProps,
52
+ rule,
53
+ Rule,
54
+ RuleProps,
55
+ Source,
56
+ SourceMap,
57
+ SourceMapOptions,
58
+ Stringifier,
59
+ // Value exports from postcss.mjs
60
+ stringify,
61
+ Syntax,
62
+ TransformCallback,
63
+ Transformer,
64
+ Warning,
65
+ WarningOptions
66
+ } from './postcss.js'