@noodleseed/one 0.5.0 → 0.6.0

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 (279) hide show
  1. package/dist/cli.js +5 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/shared.d.ts +1 -1
  4. package/dist/commands/shared.d.ts.map +1 -1
  5. package/dist/commands/shared.js +2 -2
  6. package/dist/commands/shared.js.map +1 -1
  7. package/dist/react-widget-build.js +20 -1
  8. package/dist/react-widget-build.js.map +1 -1
  9. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  10. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +1 -0
  11. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  12. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  13. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  14. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  15. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  16. package/package.json +2 -20
  17. package/node_modules/@oxc-project/types/LICENSE +0 -22
  18. package/node_modules/@oxc-project/types/README.md +0 -3
  19. package/node_modules/@oxc-project/types/package.json +0 -26
  20. package/node_modules/@oxc-project/types/types.d.ts +0 -1912
  21. package/node_modules/@rolldown/binding-linux-x64-gnu/README.md +0 -3
  22. package/node_modules/@rolldown/binding-linux-x64-gnu/package.json +0 -40
  23. package/node_modules/@rolldown/binding-linux-x64-gnu/rolldown-binding.linux-x64-gnu.node +0 -0
  24. package/node_modules/@rolldown/pluginutils/LICENSE +0 -21
  25. package/node_modules/@rolldown/pluginutils/README.md +0 -145
  26. package/node_modules/@rolldown/pluginutils/dist/filter/index.d.mts +0 -194
  27. package/node_modules/@rolldown/pluginutils/dist/filter/index.mjs +0 -2
  28. package/node_modules/@rolldown/pluginutils/dist/filter-B_mD-HGz.mjs +0 -323
  29. package/node_modules/@rolldown/pluginutils/dist/index.d.mts +0 -2
  30. package/node_modules/@rolldown/pluginutils/dist/index.mjs +0 -2
  31. package/node_modules/@rolldown/pluginutils/package.json +0 -40
  32. package/node_modules/@vitejs/plugin-react/LICENSE +0 -21
  33. package/node_modules/@vitejs/plugin-react/README.md +0 -169
  34. package/node_modules/@vitejs/plugin-react/dist/index.d.ts +0 -48
  35. package/node_modules/@vitejs/plugin-react/dist/index.js +0 -200
  36. package/node_modules/@vitejs/plugin-react/dist/refresh-runtime.js +0 -663
  37. package/node_modules/@vitejs/plugin-react/package.json +0 -87
  38. package/node_modules/@vitejs/plugin-react/types/optionalTypes.d.ts +0 -12
  39. package/node_modules/@vitejs/plugin-react/types/preamble.d.ts +0 -1
  40. package/node_modules/detect-libc/LICENSE +0 -201
  41. package/node_modules/detect-libc/README.md +0 -163
  42. package/node_modules/detect-libc/index.d.ts +0 -14
  43. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  44. package/node_modules/detect-libc/lib/elf.js +0 -39
  45. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  46. package/node_modules/detect-libc/lib/process.js +0 -24
  47. package/node_modules/detect-libc/package.json +0 -44
  48. package/node_modules/fdir/LICENSE +0 -7
  49. package/node_modules/fdir/README.md +0 -91
  50. package/node_modules/fdir/dist/index.cjs +0 -588
  51. package/node_modules/fdir/dist/index.d.cts +0 -155
  52. package/node_modules/fdir/dist/index.d.mts +0 -155
  53. package/node_modules/fdir/dist/index.mjs +0 -570
  54. package/node_modules/fdir/package.json +0 -103
  55. package/node_modules/lightningcss/LICENSE +0 -373
  56. package/node_modules/lightningcss/README.md +0 -105
  57. package/node_modules/lightningcss/node/ast.d.ts +0 -9892
  58. package/node_modules/lightningcss/node/ast.js.flow +0 -10539
  59. package/node_modules/lightningcss/node/browserslistToTargets.js +0 -48
  60. package/node_modules/lightningcss/node/composeVisitors.js +0 -450
  61. package/node_modules/lightningcss/node/flags.js +0 -28
  62. package/node_modules/lightningcss/node/index.d.ts +0 -494
  63. package/node_modules/lightningcss/node/index.js +0 -59
  64. package/node_modules/lightningcss/node/index.js.flow +0 -843
  65. package/node_modules/lightningcss/node/index.mjs +0 -4
  66. package/node_modules/lightningcss/node/targets.d.ts +0 -40
  67. package/node_modules/lightningcss/node/targets.js.flow +0 -39
  68. package/node_modules/lightningcss/package.json +0 -110
  69. package/node_modules/lightningcss-linux-x64-gnu/LICENSE +0 -373
  70. package/node_modules/lightningcss-linux-x64-gnu/README.md +0 -1
  71. package/node_modules/lightningcss-linux-x64-gnu/lightningcss.linux-x64-gnu.node +0 -0
  72. package/node_modules/lightningcss-linux-x64-gnu/package.json +0 -37
  73. package/node_modules/nanoid/.claude/settings.local.json +0 -14
  74. package/node_modules/nanoid/LICENSE +0 -20
  75. package/node_modules/nanoid/README.md +0 -39
  76. package/node_modules/nanoid/async/index.browser.cjs +0 -69
  77. package/node_modules/nanoid/async/index.browser.js +0 -34
  78. package/node_modules/nanoid/async/index.cjs +0 -71
  79. package/node_modules/nanoid/async/index.d.ts +0 -56
  80. package/node_modules/nanoid/async/index.js +0 -35
  81. package/node_modules/nanoid/async/index.native.js +0 -26
  82. package/node_modules/nanoid/async/package.json +0 -12
  83. package/node_modules/nanoid/bin/nanoid.cjs +0 -55
  84. package/node_modules/nanoid/index.browser.cjs +0 -72
  85. package/node_modules/nanoid/index.browser.js +0 -34
  86. package/node_modules/nanoid/index.cjs +0 -86
  87. package/node_modules/nanoid/index.d.cts +0 -91
  88. package/node_modules/nanoid/index.d.ts +0 -91
  89. package/node_modules/nanoid/index.js +0 -46
  90. package/node_modules/nanoid/nanoid.js +0 -1
  91. package/node_modules/nanoid/non-secure/index.cjs +0 -34
  92. package/node_modules/nanoid/non-secure/index.d.ts +0 -33
  93. package/node_modules/nanoid/non-secure/index.js +0 -21
  94. package/node_modules/nanoid/non-secure/package.json +0 -6
  95. package/node_modules/nanoid/package.json +0 -89
  96. package/node_modules/nanoid/url-alphabet/index.cjs +0 -7
  97. package/node_modules/nanoid/url-alphabet/index.js +0 -3
  98. package/node_modules/nanoid/url-alphabet/package.json +0 -6
  99. package/node_modules/picocolors/LICENSE +0 -15
  100. package/node_modules/picocolors/README.md +0 -21
  101. package/node_modules/picocolors/package.json +0 -25
  102. package/node_modules/picocolors/picocolors.browser.js +0 -4
  103. package/node_modules/picocolors/picocolors.d.ts +0 -5
  104. package/node_modules/picocolors/picocolors.js +0 -75
  105. package/node_modules/picocolors/types.d.ts +0 -51
  106. package/node_modules/picomatch/LICENSE +0 -21
  107. package/node_modules/picomatch/README.md +0 -749
  108. package/node_modules/picomatch/index.js +0 -17
  109. package/node_modules/picomatch/lib/constants.js +0 -184
  110. package/node_modules/picomatch/lib/parse.js +0 -1386
  111. package/node_modules/picomatch/lib/picomatch.js +0 -349
  112. package/node_modules/picomatch/lib/scan.js +0 -391
  113. package/node_modules/picomatch/lib/utils.js +0 -72
  114. package/node_modules/picomatch/package.json +0 -82
  115. package/node_modules/picomatch/posix.js +0 -3
  116. package/node_modules/postcss/LICENSE +0 -20
  117. package/node_modules/postcss/README.md +0 -28
  118. package/node_modules/postcss/lib/at-rule.d.ts +0 -139
  119. package/node_modules/postcss/lib/at-rule.js +0 -25
  120. package/node_modules/postcss/lib/comment.d.ts +0 -67
  121. package/node_modules/postcss/lib/comment.js +0 -13
  122. package/node_modules/postcss/lib/container.d.ts +0 -478
  123. package/node_modules/postcss/lib/container.js +0 -447
  124. package/node_modules/postcss/lib/css-syntax-error.d.ts +0 -247
  125. package/node_modules/postcss/lib/css-syntax-error.js +0 -133
  126. package/node_modules/postcss/lib/declaration.d.ts +0 -150
  127. package/node_modules/postcss/lib/declaration.js +0 -24
  128. package/node_modules/postcss/lib/document.d.ts +0 -68
  129. package/node_modules/postcss/lib/document.js +0 -33
  130. package/node_modules/postcss/lib/fromJSON.d.ts +0 -9
  131. package/node_modules/postcss/lib/fromJSON.js +0 -54
  132. package/node_modules/postcss/lib/input.d.ts +0 -226
  133. package/node_modules/postcss/lib/input.js +0 -273
  134. package/node_modules/postcss/lib/lazy-result.d.ts +0 -189
  135. package/node_modules/postcss/lib/lazy-result.js +0 -563
  136. package/node_modules/postcss/lib/list.d.ts +0 -60
  137. package/node_modules/postcss/lib/list.js +0 -58
  138. package/node_modules/postcss/lib/map-generator.js +0 -376
  139. package/node_modules/postcss/lib/no-work-result.d.ts +0 -45
  140. package/node_modules/postcss/lib/no-work-result.js +0 -137
  141. package/node_modules/postcss/lib/node.d.ts +0 -555
  142. package/node_modules/postcss/lib/node.js +0 -449
  143. package/node_modules/postcss/lib/parse.d.ts +0 -9
  144. package/node_modules/postcss/lib/parse.js +0 -42
  145. package/node_modules/postcss/lib/parser.js +0 -618
  146. package/node_modules/postcss/lib/postcss.d.mts +0 -66
  147. package/node_modules/postcss/lib/postcss.d.ts +0 -461
  148. package/node_modules/postcss/lib/postcss.js +0 -101
  149. package/node_modules/postcss/lib/postcss.mjs +0 -30
  150. package/node_modules/postcss/lib/previous-map.d.ts +0 -80
  151. package/node_modules/postcss/lib/previous-map.js +0 -161
  152. package/node_modules/postcss/lib/processor.d.ts +0 -114
  153. package/node_modules/postcss/lib/processor.js +0 -67
  154. package/node_modules/postcss/lib/result.d.ts +0 -204
  155. package/node_modules/postcss/lib/result.js +0 -42
  156. package/node_modules/postcss/lib/root.d.ts +0 -86
  157. package/node_modules/postcss/lib/root.js +0 -61
  158. package/node_modules/postcss/lib/rule.d.ts +0 -126
  159. package/node_modules/postcss/lib/rule.js +0 -27
  160. package/node_modules/postcss/lib/stringifier.d.ts +0 -45
  161. package/node_modules/postcss/lib/stringifier.js +0 -374
  162. package/node_modules/postcss/lib/stringify.d.ts +0 -9
  163. package/node_modules/postcss/lib/stringify.js +0 -11
  164. package/node_modules/postcss/lib/symbols.js +0 -5
  165. package/node_modules/postcss/lib/terminal-highlight.js +0 -70
  166. package/node_modules/postcss/lib/tokenize.js +0 -270
  167. package/node_modules/postcss/lib/warn-once.js +0 -13
  168. package/node_modules/postcss/lib/warning.d.ts +0 -146
  169. package/node_modules/postcss/lib/warning.js +0 -37
  170. package/node_modules/postcss/package.json +0 -88
  171. package/node_modules/rolldown/LICENSE +0 -25
  172. package/node_modules/rolldown/README.md +0 -11
  173. package/node_modules/rolldown/bin/cli.mjs +0 -2
  174. package/node_modules/rolldown/dist/cli.d.mts +0 -1
  175. package/node_modules/rolldown/dist/cli.mjs +0 -1202
  176. package/node_modules/rolldown/dist/config.d.mts +0 -14
  177. package/node_modules/rolldown/dist/config.mjs +0 -4
  178. package/node_modules/rolldown/dist/experimental-index.d.mts +0 -280
  179. package/node_modules/rolldown/dist/experimental-index.mjs +0 -330
  180. package/node_modules/rolldown/dist/experimental-runtime-types.d.ts +0 -107
  181. package/node_modules/rolldown/dist/filter-index.d.mts +0 -195
  182. package/node_modules/rolldown/dist/filter-index.mjs +0 -380
  183. package/node_modules/rolldown/dist/get-log-filter.d.mts +0 -3
  184. package/node_modules/rolldown/dist/get-log-filter.mjs +0 -68
  185. package/node_modules/rolldown/dist/index.d.mts +0 -4
  186. package/node_modules/rolldown/dist/index.mjs +0 -50
  187. package/node_modules/rolldown/dist/parallel-plugin-worker.d.mts +0 -1
  188. package/node_modules/rolldown/dist/parallel-plugin-worker.mjs +0 -28
  189. package/node_modules/rolldown/dist/parallel-plugin.d.mts +0 -13
  190. package/node_modules/rolldown/dist/parallel-plugin.mjs +0 -6
  191. package/node_modules/rolldown/dist/parse-ast-index.d.mts +0 -32
  192. package/node_modules/rolldown/dist/parse-ast-index.mjs +0 -60
  193. package/node_modules/rolldown/dist/plugins-index.d.mts +0 -33
  194. package/node_modules/rolldown/dist/plugins-index.mjs +0 -40
  195. package/node_modules/rolldown/dist/shared/binding-B1q9aYT-.d.mts +0 -1947
  196. package/node_modules/rolldown/dist/shared/binding-Dh6LYCIB.mjs +0 -589
  197. package/node_modules/rolldown/dist/shared/bindingify-input-options-CzVhGygm.mjs +0 -2240
  198. package/node_modules/rolldown/dist/shared/constructors-688OwP2q.mjs +0 -65
  199. package/node_modules/rolldown/dist/shared/constructors-awZ1VNvg.d.mts +0 -36
  200. package/node_modules/rolldown/dist/shared/define-config-Demdg3_4.mjs +0 -6
  201. package/node_modules/rolldown/dist/shared/define-config-sxBscJ3M.d.mts +0 -3901
  202. package/node_modules/rolldown/dist/shared/error-B68YLzl3.mjs +0 -85
  203. package/node_modules/rolldown/dist/shared/get-log-filter-BpNVNJ5-.d.mts +0 -35
  204. package/node_modules/rolldown/dist/shared/load-config-BvPPEM7l.mjs +0 -120
  205. package/node_modules/rolldown/dist/shared/logging-BSNejiLS.d.mts +0 -50
  206. package/node_modules/rolldown/dist/shared/logs-aMKUxRpj.mjs +0 -180
  207. package/node_modules/rolldown/dist/shared/misc-CoQm4NHO.mjs +0 -21
  208. package/node_modules/rolldown/dist/shared/normalize-string-or-regex-BpXHYeN4.mjs +0 -68
  209. package/node_modules/rolldown/dist/shared/parse-CTgsjpo8.mjs +0 -74
  210. package/node_modules/rolldown/dist/shared/prompt-B1Yc1NPt.mjs +0 -847
  211. package/node_modules/rolldown/dist/shared/resolve-tsconfig-BkhP9bkX.mjs +0 -124
  212. package/node_modules/rolldown/dist/shared/rolldown-Brph2NSU.mjs +0 -40
  213. package/node_modules/rolldown/dist/shared/rolldown-build-DR0wzp0V.mjs +0 -3264
  214. package/node_modules/rolldown/dist/shared/transform-CEmFsvJW.d.mts +0 -149
  215. package/node_modules/rolldown/dist/shared/watch-FrHSqg24.mjs +0 -374
  216. package/node_modules/rolldown/dist/utils-index.d.mts +0 -376
  217. package/node_modules/rolldown/dist/utils-index.mjs +0 -2414
  218. package/node_modules/rolldown/package.json +0 -153
  219. package/node_modules/source-map-js/LICENSE +0 -28
  220. package/node_modules/source-map-js/README.md +0 -765
  221. package/node_modules/source-map-js/lib/array-set.js +0 -121
  222. package/node_modules/source-map-js/lib/base64-vlq.js +0 -140
  223. package/node_modules/source-map-js/lib/base64.js +0 -67
  224. package/node_modules/source-map-js/lib/binary-search.js +0 -111
  225. package/node_modules/source-map-js/lib/mapping-list.js +0 -79
  226. package/node_modules/source-map-js/lib/quick-sort.js +0 -132
  227. package/node_modules/source-map-js/lib/source-map-consumer.d.ts +0 -1
  228. package/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
  229. package/node_modules/source-map-js/lib/source-map-generator.d.ts +0 -1
  230. package/node_modules/source-map-js/lib/source-map-generator.js +0 -444
  231. package/node_modules/source-map-js/lib/source-node.d.ts +0 -1
  232. package/node_modules/source-map-js/lib/source-node.js +0 -413
  233. package/node_modules/source-map-js/lib/util.js +0 -594
  234. package/node_modules/source-map-js/package.json +0 -71
  235. package/node_modules/source-map-js/source-map.d.ts +0 -104
  236. package/node_modules/source-map-js/source-map.js +0 -8
  237. package/node_modules/tinyglobby/LICENSE +0 -21
  238. package/node_modules/tinyglobby/README.md +0 -25
  239. package/node_modules/tinyglobby/dist/index.cjs +0 -335
  240. package/node_modules/tinyglobby/dist/index.d.cts +0 -148
  241. package/node_modules/tinyglobby/dist/index.d.mts +0 -148
  242. package/node_modules/tinyglobby/dist/index.mjs +0 -307
  243. package/node_modules/tinyglobby/package.json +0 -70
  244. package/node_modules/vite/LICENSE.md +0 -2287
  245. package/node_modules/vite/README.md +0 -20
  246. package/node_modules/vite/bin/openChrome.js +0 -68
  247. package/node_modules/vite/bin/vite.js +0 -79
  248. package/node_modules/vite/client.d.ts +0 -285
  249. package/node_modules/vite/dist/client/client.mjs +0 -1269
  250. package/node_modules/vite/dist/client/env.mjs +0 -18
  251. package/node_modules/vite/dist/node/chunks/build.js +0 -5371
  252. package/node_modules/vite/dist/node/chunks/dist.js +0 -6784
  253. package/node_modules/vite/dist/node/chunks/lib.js +0 -371
  254. package/node_modules/vite/dist/node/chunks/logger.js +0 -364
  255. package/node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts +0 -96
  256. package/node_modules/vite/dist/node/chunks/node.js +0 -35770
  257. package/node_modules/vite/dist/node/chunks/postcss-import.js +0 -467
  258. package/node_modules/vite/dist/node/cli.js +0 -836
  259. package/node_modules/vite/dist/node/index.d.ts +0 -4010
  260. package/node_modules/vite/dist/node/index.js +0 -3
  261. package/node_modules/vite/dist/node/internal.d.ts +0 -2
  262. package/node_modules/vite/dist/node/internal.js +0 -2
  263. package/node_modules/vite/dist/node/module-runner.d.ts +0 -314
  264. package/node_modules/vite/dist/node/module-runner.js +0 -1274
  265. package/node_modules/vite/misc/false.js +0 -1
  266. package/node_modules/vite/misc/true.js +0 -1
  267. package/node_modules/vite/package.json +0 -194
  268. package/node_modules/vite/types/customEvent.d.ts +0 -79
  269. package/node_modules/vite/types/hmrPayload.d.ts +0 -80
  270. package/node_modules/vite/types/hot.d.ts +0 -39
  271. package/node_modules/vite/types/import-meta.d.ts +0 -5
  272. package/node_modules/vite/types/importGlob.d.ts +0 -131
  273. package/node_modules/vite/types/importMeta.d.ts +0 -30
  274. package/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts +0 -44
  275. package/node_modules/vite/types/internal/esbuildOptions.d.ts +0 -28
  276. package/node_modules/vite/types/internal/lightningcssOptions.d.ts +0 -18
  277. package/node_modules/vite/types/internal/rollupTypeCompat.d.ts +0 -24
  278. package/node_modules/vite/types/internal/terserOptions.d.ts +0 -11
  279. package/node_modules/vite/types/metadata.d.ts +0 -47
@@ -1,618 +0,0 @@
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
- function tokensToString(tokens, from, to) {
24
- let result = ''
25
- for (let i = from; i < to; i++) result += tokens[i][1]
26
- return result
27
- }
28
-
29
- class Parser {
30
- constructor(input) {
31
- this.input = input
32
-
33
- this.root = new Root()
34
- this.current = this.root
35
- this.spaces = ''
36
- this.semicolon = false
37
-
38
- this.createTokenizer()
39
- this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }
40
- }
41
-
42
- atrule(token) {
43
- let node = new AtRule()
44
- node.name = token[1].slice(1)
45
- if (node.name === '') {
46
- this.unnamedAtrule(node, token)
47
- }
48
- this.init(node, token[2])
49
-
50
- let type
51
- let prev
52
- let shift
53
- let last = false
54
- let open = false
55
- let params = []
56
- let brackets = []
57
-
58
- while (!this.tokenizer.endOfFile()) {
59
- token = this.tokenizer.nextToken()
60
- type = token[0]
61
-
62
- if (type === '(' || type === '[') {
63
- brackets.push(type === '(' ? ')' : ']')
64
- } else if (type === '{' && brackets.length > 0) {
65
- brackets.push('}')
66
- } else if (type === brackets[brackets.length - 1]) {
67
- brackets.pop()
68
- }
69
-
70
- if (brackets.length === 0) {
71
- if (type === ';') {
72
- node.source.end = this.getPosition(token[2])
73
- node.source.end.offset++
74
- this.semicolon = true
75
- break
76
- } else if (type === '{') {
77
- open = true
78
- break
79
- } else if (type === '}') {
80
- if (params.length > 0) {
81
- shift = params.length - 1
82
- prev = params[shift]
83
- while (prev && prev[0] === 'space') {
84
- prev = params[--shift]
85
- }
86
- if (prev) {
87
- node.source.end = this.getPosition(prev[3] || prev[2])
88
- node.source.end.offset++
89
- }
90
- }
91
- this.end(token)
92
- break
93
- } else {
94
- params.push(token)
95
- }
96
- } else {
97
- params.push(token)
98
- }
99
-
100
- if (this.tokenizer.endOfFile()) {
101
- last = true
102
- break
103
- }
104
- }
105
-
106
- node.raws.between = this.spacesAndCommentsFromEnd(params)
107
- if (params.length) {
108
- node.raws.afterName = this.spacesAndCommentsFromStart(params)
109
- this.raw(node, 'params', params)
110
- if (last) {
111
- token = params[params.length - 1]
112
- node.source.end = this.getPosition(token[3] || token[2])
113
- node.source.end.offset++
114
- this.spaces = node.raws.between
115
- node.raws.between = ''
116
- }
117
- } else {
118
- node.raws.afterName = ''
119
- node.params = ''
120
- }
121
-
122
- if (open) {
123
- node.nodes = []
124
- this.current = node
125
- }
126
- }
127
-
128
- checkMissedSemicolon(tokens) {
129
- let colon = this.colon(tokens)
130
- if (colon === false) return
131
-
132
- let founded = 0
133
- let token
134
- for (let j = colon - 1; j >= 0; j--) {
135
- token = tokens[j]
136
- if (token[0] !== 'space') {
137
- founded += 1
138
- if (founded === 2) break
139
- }
140
- }
141
- // If the token is a word, e.g. `!important`, `red` or any other valid
142
- // property's value. Then we need to return the colon after that word
143
- // token. [3] is the "end" colon of that word. And because we need it
144
- // after that one we do +1 to get the next one.
145
- throw this.input.error(
146
- 'Missed semicolon',
147
- token[0] === 'word' ? token[3] + 1 : token[2]
148
- )
149
- }
150
-
151
- colon(tokens) {
152
- let brackets = 0
153
- let prev, token, type
154
- for (let [i, element] of tokens.entries()) {
155
- token = element
156
- type = token[0]
157
-
158
- if (type === '(') {
159
- brackets += 1
160
- }
161
- if (type === ')') {
162
- brackets -= 1
163
- }
164
- if (brackets === 0 && type === ':') {
165
- if (!prev) {
166
- this.doubleColon(token)
167
- } else if (prev[0] === 'word' && prev[1] === 'progid') {
168
- continue
169
- } else {
170
- return i
171
- }
172
- }
173
-
174
- prev = token
175
- }
176
- return false
177
- }
178
-
179
- comment(token) {
180
- let node = new Comment()
181
- this.init(node, token[2])
182
- node.source.end = this.getPosition(token[3] || token[2])
183
- node.source.end.offset++
184
-
185
- let text = token[1].slice(2, -2)
186
- if (!text.trim()) {
187
- node.text = ''
188
- node.raws.left = text
189
- node.raws.right = ''
190
- } else {
191
- let match = text.match(/^(\s*)([^]*\S)(\s*)$/)
192
- node.text = match[2]
193
- node.raws.left = match[1]
194
- node.raws.right = match[3]
195
- }
196
- }
197
-
198
- createTokenizer() {
199
- this.tokenizer = tokenizer(this.input)
200
- }
201
-
202
- decl(tokens, customProperty) {
203
- let node = new Declaration()
204
- this.init(node, tokens[0][2])
205
-
206
- let last = tokens[tokens.length - 1]
207
- if (last[0] === ';') {
208
- this.semicolon = true
209
- tokens.pop()
210
- }
211
-
212
- node.source.end = this.getPosition(
213
- last[3] || last[2] || findLastWithPosition(tokens)
214
- )
215
- node.source.end.offset++
216
-
217
- let start = 0
218
- while (tokens[start][0] !== 'word') {
219
- if (start === tokens.length - 1) this.unknownWord([tokens[start]])
220
- start++
221
- }
222
- node.raws.before += tokensToString(tokens, 0, start)
223
- node.source.start = this.getPosition(tokens[start][2])
224
-
225
- let propStart = start
226
- while (start < tokens.length) {
227
- let type = tokens[start][0]
228
- if (type === ':' || type === 'space' || type === 'comment') {
229
- break
230
- }
231
- start++
232
- }
233
- node.prop = tokensToString(tokens, propStart, start)
234
-
235
- let betweenStart = start
236
- let token
237
- while (start < tokens.length) {
238
- token = tokens[start]
239
- start++
240
- if (token[0] === ':') break
241
- if (token[0] === 'word' && /\w/.test(token[1])) {
242
- this.unknownWord([token])
243
- }
244
- }
245
- node.raws.between = tokensToString(tokens, betweenStart, start)
246
-
247
- if (node.prop[0] === '_' || node.prop[0] === '*') {
248
- node.raws.before += node.prop[0]
249
- node.prop = node.prop.slice(1)
250
- }
251
-
252
- let firstSpacesStart = start
253
- while (start < tokens.length) {
254
- let next = tokens[start][0]
255
- if (next !== 'space' && next !== 'comment') break
256
- start++
257
- }
258
- let firstSpaces = tokens.slice(firstSpacesStart, start)
259
-
260
- tokens = tokens.slice(start)
261
-
262
- this.precheckMissedSemicolon(tokens)
263
-
264
- for (let i = tokens.length - 1; i >= 0; i--) {
265
- token = tokens[i]
266
- if (token[1].toLowerCase() === '!important') {
267
- node.important = true
268
- let string = this.stringFrom(tokens, i)
269
- string = this.spacesFromEnd(tokens) + string
270
- if (string !== ' !important') node.raws.important = string
271
- break
272
- } else if (token[1].toLowerCase() === 'important') {
273
- let cache = tokens.slice(0)
274
- let str = ''
275
- for (let j = i; j > 0; j--) {
276
- let type = cache[j][0]
277
- if (str.trim().startsWith('!') && type !== 'space') {
278
- break
279
- }
280
- str = cache.pop()[1] + str
281
- }
282
- if (str.trim().startsWith('!')) {
283
- node.important = true
284
- node.raws.important = str
285
- tokens = cache
286
- }
287
- }
288
-
289
- if (token[0] !== 'space' && token[0] !== 'comment') {
290
- break
291
- }
292
- }
293
-
294
- let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')
295
-
296
- if (hasWord) {
297
- node.raws.between += firstSpaces.map(i => i[1]).join('')
298
- firstSpaces = []
299
- }
300
- this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)
301
-
302
- if (node.value.includes(':') && !customProperty) {
303
- this.checkMissedSemicolon(tokens)
304
- }
305
- }
306
-
307
- doubleColon(token) {
308
- throw this.input.error(
309
- 'Double colon',
310
- { offset: token[2] },
311
- { offset: token[2] + token[1].length }
312
- )
313
- }
314
-
315
- emptyRule(token) {
316
- let node = new Rule()
317
- this.init(node, token[2])
318
- node.selector = ''
319
- node.raws.between = ''
320
- this.current = node
321
- }
322
-
323
- end(token) {
324
- if (this.current.nodes && this.current.nodes.length) {
325
- this.current.raws.semicolon = this.semicolon
326
- }
327
- this.semicolon = false
328
-
329
- this.current.raws.after = (this.current.raws.after || '') + this.spaces
330
- this.spaces = ''
331
-
332
- if (this.current.parent) {
333
- this.current.source.end = this.getPosition(token[2])
334
- this.current.source.end.offset++
335
- this.current = this.current.parent
336
- } else {
337
- this.unexpectedClose(token)
338
- }
339
- }
340
-
341
- endFile() {
342
- if (this.current.parent) this.unclosedBlock()
343
- if (this.current.nodes && this.current.nodes.length) {
344
- this.current.raws.semicolon = this.semicolon
345
- }
346
- this.current.raws.after = (this.current.raws.after || '') + this.spaces
347
- this.root.source.end = this.getPosition(this.tokenizer.position())
348
- }
349
-
350
- freeSemicolon(token) {
351
- this.spaces += token[1]
352
- if (this.current.nodes) {
353
- let prev = this.current.nodes[this.current.nodes.length - 1]
354
- if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {
355
- prev.raws.ownSemicolon = this.spaces
356
- this.spaces = ''
357
- prev.source.end = this.getPosition(token[2])
358
- prev.source.end.offset += prev.raws.ownSemicolon.length
359
- }
360
- }
361
- }
362
-
363
- // Helpers
364
-
365
- getPosition(offset) {
366
- let pos = this.input.fromOffset(offset)
367
- return {
368
- column: pos.col,
369
- line: pos.line,
370
- offset
371
- }
372
- }
373
-
374
- init(node, offset) {
375
- this.current.push(node)
376
- node.source = {
377
- input: this.input,
378
- start: this.getPosition(offset)
379
- }
380
- node.raws.before = this.spaces
381
- this.spaces = ''
382
- if (node.type !== 'comment') this.semicolon = false
383
- }
384
-
385
- other(start) {
386
- let end = false
387
- let type = null
388
- let colon = false
389
- let bracket = null
390
- let brackets = []
391
- let customProperty = start[1].startsWith('--')
392
-
393
- let tokens = []
394
- let token = start
395
- while (token) {
396
- type = token[0]
397
- tokens.push(token)
398
-
399
- if (type === '(' || type === '[') {
400
- if (!bracket) bracket = token
401
- brackets.push(type === '(' ? ')' : ']')
402
- } else if (customProperty && colon && type === '{') {
403
- if (!bracket) bracket = token
404
- brackets.push('}')
405
- } else if (brackets.length === 0) {
406
- if (type === ';') {
407
- if (colon) {
408
- this.decl(tokens, customProperty)
409
- return
410
- } else {
411
- break
412
- }
413
- } else if (type === '{') {
414
- this.rule(tokens)
415
- return
416
- } else if (type === '}') {
417
- this.tokenizer.back(tokens.pop())
418
- end = true
419
- break
420
- } else if (type === ':') {
421
- colon = true
422
- }
423
- } else if (type === brackets[brackets.length - 1]) {
424
- brackets.pop()
425
- if (brackets.length === 0) bracket = null
426
- }
427
-
428
- token = this.tokenizer.nextToken()
429
- }
430
-
431
- if (this.tokenizer.endOfFile()) end = true
432
- if (brackets.length > 0) this.unclosedBracket(bracket)
433
-
434
- if (end && colon) {
435
- if (!customProperty) {
436
- while (tokens.length) {
437
- token = tokens[tokens.length - 1][0]
438
- if (token !== 'space' && token !== 'comment') break
439
- this.tokenizer.back(tokens.pop())
440
- }
441
- }
442
- this.decl(tokens, customProperty)
443
- } else {
444
- this.unknownWord(tokens)
445
- }
446
- }
447
-
448
- parse() {
449
- let token
450
- while (!this.tokenizer.endOfFile()) {
451
- token = this.tokenizer.nextToken()
452
-
453
- switch (token[0]) {
454
- case 'space':
455
- this.spaces += token[1]
456
- break
457
-
458
- case ';':
459
- this.freeSemicolon(token)
460
- break
461
-
462
- case '}':
463
- this.end(token)
464
- break
465
-
466
- case 'comment':
467
- this.comment(token)
468
- break
469
-
470
- case 'at-word':
471
- this.atrule(token)
472
- break
473
-
474
- case '{':
475
- this.emptyRule(token)
476
- break
477
-
478
- default:
479
- this.other(token)
480
- break
481
- }
482
- }
483
- this.endFile()
484
- }
485
-
486
- precheckMissedSemicolon(/* tokens */) {
487
- // Hook for Safe Parser
488
- }
489
-
490
- raw(node, prop, tokens, customProperty) {
491
- let token, type
492
- let length = tokens.length
493
- let value = ''
494
- let clean = true
495
- let next, prev
496
-
497
- for (let i = 0; i < length; i += 1) {
498
- token = tokens[i]
499
- type = token[0]
500
- if (type === 'space' && i === length - 1 && !customProperty) {
501
- clean = false
502
- } else if (type === 'comment') {
503
- prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'
504
- next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'
505
- if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {
506
- if (value.slice(-1) === ',') {
507
- clean = false
508
- } else {
509
- value += token[1]
510
- }
511
- } else {
512
- clean = false
513
- }
514
- } else {
515
- value += token[1]
516
- }
517
- }
518
- if (!clean) {
519
- let raw = tokens.reduce((all, i) => all + i[1], '')
520
- node.raws[prop] = { raw, value }
521
- }
522
- node[prop] = value
523
- }
524
-
525
- rule(tokens) {
526
- tokens.pop()
527
-
528
- let node = new Rule()
529
- this.init(node, tokens[0][2])
530
-
531
- node.raws.between = this.spacesAndCommentsFromEnd(tokens)
532
- this.raw(node, 'selector', tokens)
533
- this.current = node
534
- }
535
-
536
- spacesAndCommentsFromEnd(tokens) {
537
- let lastTokenType
538
- let spaces = ''
539
- while (tokens.length) {
540
- lastTokenType = tokens[tokens.length - 1][0]
541
- if (lastTokenType !== 'space' && lastTokenType !== 'comment') break
542
- spaces = tokens.pop()[1] + spaces
543
- }
544
- return spaces
545
- }
546
-
547
- // Errors
548
-
549
- spacesAndCommentsFromStart(tokens) {
550
- let next
551
- let spaces = ''
552
- while (tokens.length) {
553
- next = tokens[0][0]
554
- if (next !== 'space' && next !== 'comment') break
555
- spaces += tokens.shift()[1]
556
- }
557
- return spaces
558
- }
559
-
560
- spacesFromEnd(tokens) {
561
- let lastTokenType
562
- let spaces = ''
563
- while (tokens.length) {
564
- lastTokenType = tokens[tokens.length - 1][0]
565
- if (lastTokenType !== 'space') break
566
- spaces = tokens.pop()[1] + spaces
567
- }
568
- return spaces
569
- }
570
-
571
- stringFrom(tokens, from) {
572
- let result = ''
573
- for (let i = from; i < tokens.length; i++) {
574
- result += tokens[i][1]
575
- }
576
- tokens.splice(from, tokens.length - from)
577
- return result
578
- }
579
-
580
- unclosedBlock() {
581
- let pos = this.current.source.start
582
- throw this.input.error('Unclosed block', pos.line, pos.column)
583
- }
584
-
585
- unclosedBracket(bracket) {
586
- throw this.input.error(
587
- 'Unclosed bracket',
588
- { offset: bracket[2] },
589
- { offset: bracket[2] + 1 }
590
- )
591
- }
592
-
593
- unexpectedClose(token) {
594
- throw this.input.error(
595
- 'Unexpected }',
596
- { offset: token[2] },
597
- { offset: token[2] + 1 }
598
- )
599
- }
600
-
601
- unknownWord(tokens) {
602
- throw this.input.error(
603
- 'Unknown word ' + tokens[0][1],
604
- { offset: tokens[0][2] },
605
- { offset: tokens[0][2] + tokens[0][1].length }
606
- )
607
- }
608
-
609
- unnamedAtrule(node, token) {
610
- throw this.input.error(
611
- 'At-rule without name',
612
- { offset: token[2] },
613
- { offset: token[2] + token[1].length }
614
- )
615
- }
616
- }
617
-
618
- module.exports = Parser
@@ -1,66 +0,0 @@
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'