create-microact-app 1.0.1

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 (213) hide show
  1. package/index.js +95 -0
  2. package/package.json +21 -0
  3. package/templates/vanilla/.github/workflows/deploy.yml +38 -0
  4. package/templates/vanilla/index.html +13 -0
  5. package/templates/vanilla/node_modules/.package-lock.json +207 -0
  6. package/templates/vanilla/node_modules/@esbuild/darwin-x64/README.md +3 -0
  7. package/templates/vanilla/node_modules/@esbuild/darwin-x64/bin/esbuild +0 -0
  8. package/templates/vanilla/node_modules/@esbuild/darwin-x64/package.json +17 -0
  9. package/templates/vanilla/node_modules/@monygroupcorp/microact/README.md +154 -0
  10. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.cjs.js +1749 -0
  11. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.cjs.js.map +1 -0
  12. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.esm.js +1743 -0
  13. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.esm.js.map +1 -0
  14. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.umd.js +2 -0
  15. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.umd.js.map +1 -0
  16. package/templates/vanilla/node_modules/@monygroupcorp/microact/example/index.html +13 -0
  17. package/templates/vanilla/node_modules/@monygroupcorp/microact/example/index.js +63 -0
  18. package/templates/vanilla/node_modules/@monygroupcorp/microact/package.json +38 -0
  19. package/templates/vanilla/node_modules/@monygroupcorp/microact/rollup.config.cjs +30 -0
  20. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/Component.js +831 -0
  21. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/DOMUpdater.js +320 -0
  22. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/EventBus.js +123 -0
  23. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/Router.js +253 -0
  24. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/UpdateScheduler.js +218 -0
  25. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/index.js +6 -0
  26. package/templates/vanilla/node_modules/esbuild/LICENSE.md +21 -0
  27. package/templates/vanilla/node_modules/esbuild/README.md +3 -0
  28. package/templates/vanilla/node_modules/esbuild/bin/esbuild +0 -0
  29. package/templates/vanilla/node_modules/esbuild/install.js +287 -0
  30. package/templates/vanilla/node_modules/esbuild/lib/main.d.ts +660 -0
  31. package/templates/vanilla/node_modules/esbuild/lib/main.js +2393 -0
  32. package/templates/vanilla/node_modules/esbuild/package.json +42 -0
  33. package/templates/vanilla/node_modules/nanoid/LICENSE +20 -0
  34. package/templates/vanilla/node_modules/nanoid/README.md +39 -0
  35. package/templates/vanilla/node_modules/nanoid/async/index.browser.cjs +69 -0
  36. package/templates/vanilla/node_modules/nanoid/async/index.browser.js +34 -0
  37. package/templates/vanilla/node_modules/nanoid/async/index.cjs +71 -0
  38. package/templates/vanilla/node_modules/nanoid/async/index.d.ts +56 -0
  39. package/templates/vanilla/node_modules/nanoid/async/index.js +35 -0
  40. package/templates/vanilla/node_modules/nanoid/async/index.native.js +26 -0
  41. package/templates/vanilla/node_modules/nanoid/async/package.json +12 -0
  42. package/templates/vanilla/node_modules/nanoid/bin/nanoid.cjs +55 -0
  43. package/templates/vanilla/node_modules/nanoid/index.browser.cjs +72 -0
  44. package/templates/vanilla/node_modules/nanoid/index.browser.js +34 -0
  45. package/templates/vanilla/node_modules/nanoid/index.cjs +85 -0
  46. package/templates/vanilla/node_modules/nanoid/index.d.cts +91 -0
  47. package/templates/vanilla/node_modules/nanoid/index.d.ts +91 -0
  48. package/templates/vanilla/node_modules/nanoid/index.js +45 -0
  49. package/templates/vanilla/node_modules/nanoid/nanoid.js +1 -0
  50. package/templates/vanilla/node_modules/nanoid/non-secure/index.cjs +34 -0
  51. package/templates/vanilla/node_modules/nanoid/non-secure/index.d.ts +33 -0
  52. package/templates/vanilla/node_modules/nanoid/non-secure/index.js +21 -0
  53. package/templates/vanilla/node_modules/nanoid/non-secure/package.json +6 -0
  54. package/templates/vanilla/node_modules/nanoid/package.json +89 -0
  55. package/templates/vanilla/node_modules/nanoid/url-alphabet/index.cjs +7 -0
  56. package/templates/vanilla/node_modules/nanoid/url-alphabet/index.js +3 -0
  57. package/templates/vanilla/node_modules/nanoid/url-alphabet/package.json +6 -0
  58. package/templates/vanilla/node_modules/picocolors/LICENSE +15 -0
  59. package/templates/vanilla/node_modules/picocolors/README.md +21 -0
  60. package/templates/vanilla/node_modules/picocolors/package.json +25 -0
  61. package/templates/vanilla/node_modules/picocolors/picocolors.browser.js +4 -0
  62. package/templates/vanilla/node_modules/picocolors/picocolors.d.ts +5 -0
  63. package/templates/vanilla/node_modules/picocolors/picocolors.js +75 -0
  64. package/templates/vanilla/node_modules/picocolors/types.d.ts +51 -0
  65. package/templates/vanilla/node_modules/postcss/LICENSE +20 -0
  66. package/templates/vanilla/node_modules/postcss/README.md +29 -0
  67. package/templates/vanilla/node_modules/postcss/lib/at-rule.d.ts +140 -0
  68. package/templates/vanilla/node_modules/postcss/lib/at-rule.js +25 -0
  69. package/templates/vanilla/node_modules/postcss/lib/comment.d.ts +68 -0
  70. package/templates/vanilla/node_modules/postcss/lib/comment.js +13 -0
  71. package/templates/vanilla/node_modules/postcss/lib/container.d.ts +483 -0
  72. package/templates/vanilla/node_modules/postcss/lib/container.js +447 -0
  73. package/templates/vanilla/node_modules/postcss/lib/css-syntax-error.d.ts +248 -0
  74. package/templates/vanilla/node_modules/postcss/lib/css-syntax-error.js +133 -0
  75. package/templates/vanilla/node_modules/postcss/lib/declaration.d.ts +151 -0
  76. package/templates/vanilla/node_modules/postcss/lib/declaration.js +24 -0
  77. package/templates/vanilla/node_modules/postcss/lib/document.d.ts +69 -0
  78. package/templates/vanilla/node_modules/postcss/lib/document.js +33 -0
  79. package/templates/vanilla/node_modules/postcss/lib/fromJSON.d.ts +9 -0
  80. package/templates/vanilla/node_modules/postcss/lib/fromJSON.js +54 -0
  81. package/templates/vanilla/node_modules/postcss/lib/input.d.ts +227 -0
  82. package/templates/vanilla/node_modules/postcss/lib/input.js +265 -0
  83. package/templates/vanilla/node_modules/postcss/lib/lazy-result.d.ts +190 -0
  84. package/templates/vanilla/node_modules/postcss/lib/lazy-result.js +550 -0
  85. package/templates/vanilla/node_modules/postcss/lib/list.d.ts +60 -0
  86. package/templates/vanilla/node_modules/postcss/lib/list.js +58 -0
  87. package/templates/vanilla/node_modules/postcss/lib/map-generator.js +368 -0
  88. package/templates/vanilla/node_modules/postcss/lib/no-work-result.d.ts +46 -0
  89. package/templates/vanilla/node_modules/postcss/lib/no-work-result.js +138 -0
  90. package/templates/vanilla/node_modules/postcss/lib/node.d.ts +556 -0
  91. package/templates/vanilla/node_modules/postcss/lib/node.js +449 -0
  92. package/templates/vanilla/node_modules/postcss/lib/parse.d.ts +9 -0
  93. package/templates/vanilla/node_modules/postcss/lib/parse.js +42 -0
  94. package/templates/vanilla/node_modules/postcss/lib/parser.js +611 -0
  95. package/templates/vanilla/node_modules/postcss/lib/postcss.d.mts +69 -0
  96. package/templates/vanilla/node_modules/postcss/lib/postcss.d.ts +458 -0
  97. package/templates/vanilla/node_modules/postcss/lib/postcss.js +101 -0
  98. package/templates/vanilla/node_modules/postcss/lib/postcss.mjs +30 -0
  99. package/templates/vanilla/node_modules/postcss/lib/previous-map.d.ts +81 -0
  100. package/templates/vanilla/node_modules/postcss/lib/previous-map.js +144 -0
  101. package/templates/vanilla/node_modules/postcss/lib/processor.d.ts +115 -0
  102. package/templates/vanilla/node_modules/postcss/lib/processor.js +67 -0
  103. package/templates/vanilla/node_modules/postcss/lib/result.d.ts +205 -0
  104. package/templates/vanilla/node_modules/postcss/lib/result.js +42 -0
  105. package/templates/vanilla/node_modules/postcss/lib/root.d.ts +87 -0
  106. package/templates/vanilla/node_modules/postcss/lib/root.js +61 -0
  107. package/templates/vanilla/node_modules/postcss/lib/rule.d.ts +126 -0
  108. package/templates/vanilla/node_modules/postcss/lib/rule.js +27 -0
  109. package/templates/vanilla/node_modules/postcss/lib/stringifier.d.ts +46 -0
  110. package/templates/vanilla/node_modules/postcss/lib/stringifier.js +353 -0
  111. package/templates/vanilla/node_modules/postcss/lib/stringify.d.ts +9 -0
  112. package/templates/vanilla/node_modules/postcss/lib/stringify.js +11 -0
  113. package/templates/vanilla/node_modules/postcss/lib/symbols.js +5 -0
  114. package/templates/vanilla/node_modules/postcss/lib/terminal-highlight.js +70 -0
  115. package/templates/vanilla/node_modules/postcss/lib/tokenize.js +266 -0
  116. package/templates/vanilla/node_modules/postcss/lib/warn-once.js +13 -0
  117. package/templates/vanilla/node_modules/postcss/lib/warning.d.ts +147 -0
  118. package/templates/vanilla/node_modules/postcss/lib/warning.js +37 -0
  119. package/templates/vanilla/node_modules/postcss/package.json +88 -0
  120. package/templates/vanilla/node_modules/rollup/LICENSE.md +695 -0
  121. package/templates/vanilla/node_modules/rollup/README.md +125 -0
  122. package/templates/vanilla/node_modules/rollup/dist/bin/rollup +1715 -0
  123. package/templates/vanilla/node_modules/rollup/dist/es/getLogFilter.js +64 -0
  124. package/templates/vanilla/node_modules/rollup/dist/es/package.json +1 -0
  125. package/templates/vanilla/node_modules/rollup/dist/es/rollup.js +17 -0
  126. package/templates/vanilla/node_modules/rollup/dist/es/shared/node-entry.js +27273 -0
  127. package/templates/vanilla/node_modules/rollup/dist/es/shared/watch.js +4857 -0
  128. package/templates/vanilla/node_modules/rollup/dist/getLogFilter.d.ts +5 -0
  129. package/templates/vanilla/node_modules/rollup/dist/getLogFilter.js +69 -0
  130. package/templates/vanilla/node_modules/rollup/dist/loadConfigFile.d.ts +20 -0
  131. package/templates/vanilla/node_modules/rollup/dist/loadConfigFile.js +29 -0
  132. package/templates/vanilla/node_modules/rollup/dist/rollup.d.ts +1012 -0
  133. package/templates/vanilla/node_modules/rollup/dist/rollup.js +31 -0
  134. package/templates/vanilla/node_modules/rollup/dist/shared/fsevents-importer.js +37 -0
  135. package/templates/vanilla/node_modules/rollup/dist/shared/index.js +4571 -0
  136. package/templates/vanilla/node_modules/rollup/dist/shared/loadConfigFile.js +546 -0
  137. package/templates/vanilla/node_modules/rollup/dist/shared/rollup.js +27351 -0
  138. package/templates/vanilla/node_modules/rollup/dist/shared/watch-cli.js +561 -0
  139. package/templates/vanilla/node_modules/rollup/dist/shared/watch-proxy.js +87 -0
  140. package/templates/vanilla/node_modules/rollup/dist/shared/watch.js +316 -0
  141. package/templates/vanilla/node_modules/rollup/package.json +181 -0
  142. package/templates/vanilla/node_modules/source-map-js/LICENSE +28 -0
  143. package/templates/vanilla/node_modules/source-map-js/README.md +765 -0
  144. package/templates/vanilla/node_modules/source-map-js/lib/array-set.js +121 -0
  145. package/templates/vanilla/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  146. package/templates/vanilla/node_modules/source-map-js/lib/base64.js +67 -0
  147. package/templates/vanilla/node_modules/source-map-js/lib/binary-search.js +111 -0
  148. package/templates/vanilla/node_modules/source-map-js/lib/mapping-list.js +79 -0
  149. package/templates/vanilla/node_modules/source-map-js/lib/quick-sort.js +132 -0
  150. package/templates/vanilla/node_modules/source-map-js/lib/source-map-consumer.d.ts +1 -0
  151. package/templates/vanilla/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  152. package/templates/vanilla/node_modules/source-map-js/lib/source-map-generator.d.ts +1 -0
  153. package/templates/vanilla/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  154. package/templates/vanilla/node_modules/source-map-js/lib/source-node.d.ts +1 -0
  155. package/templates/vanilla/node_modules/source-map-js/lib/source-node.js +413 -0
  156. package/templates/vanilla/node_modules/source-map-js/lib/util.js +594 -0
  157. package/templates/vanilla/node_modules/source-map-js/package.json +71 -0
  158. package/templates/vanilla/node_modules/source-map-js/source-map.d.ts +104 -0
  159. package/templates/vanilla/node_modules/source-map-js/source-map.js +8 -0
  160. package/templates/vanilla/node_modules/vite/LICENSE.md +3396 -0
  161. package/templates/vanilla/node_modules/vite/README.md +20 -0
  162. package/templates/vanilla/node_modules/vite/bin/openChrome.applescript +95 -0
  163. package/templates/vanilla/node_modules/vite/bin/vite.js +61 -0
  164. package/templates/vanilla/node_modules/vite/client.d.ts +281 -0
  165. package/templates/vanilla/node_modules/vite/dist/client/client.mjs +725 -0
  166. package/templates/vanilla/node_modules/vite/dist/client/client.mjs.map +1 -0
  167. package/templates/vanilla/node_modules/vite/dist/client/env.mjs +30 -0
  168. package/templates/vanilla/node_modules/vite/dist/client/env.mjs.map +1 -0
  169. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-7ec6f216.js +914 -0
  170. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-827b23df.js +66713 -0
  171. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-c423598f.js +561 -0
  172. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-f0c7dae0.js +7930 -0
  173. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-f1e8587f.js +7646 -0
  174. package/templates/vanilla/node_modules/vite/dist/node/cli.js +929 -0
  175. package/templates/vanilla/node_modules/vite/dist/node/constants.js +130 -0
  176. package/templates/vanilla/node_modules/vite/dist/node/index.d.ts +3548 -0
  177. package/templates/vanilla/node_modules/vite/dist/node/index.js +158 -0
  178. package/templates/vanilla/node_modules/vite/dist/node-cjs/publicUtils.cjs +4555 -0
  179. package/templates/vanilla/node_modules/vite/index.cjs +34 -0
  180. package/templates/vanilla/node_modules/vite/package.json +173 -0
  181. package/templates/vanilla/node_modules/vite/types/customEvent.d.ts +35 -0
  182. package/templates/vanilla/node_modules/vite/types/hmrPayload.d.ts +61 -0
  183. package/templates/vanilla/node_modules/vite/types/hot.d.ts +32 -0
  184. package/templates/vanilla/node_modules/vite/types/importGlob.d.ts +97 -0
  185. package/templates/vanilla/node_modules/vite/types/importMeta.d.ts +26 -0
  186. package/templates/vanilla/node_modules/vite/types/metadata.d.ts +10 -0
  187. package/templates/vanilla/node_modules/vite/types/package.json +4 -0
  188. package/templates/vanilla/package-lock.json +589 -0
  189. package/templates/vanilla/package.json +17 -0
  190. package/templates/vanilla/src/components/App.js +60 -0
  191. package/templates/vanilla/src/components/Card.js +21 -0
  192. package/templates/vanilla/src/components/Hero.js +15 -0
  193. package/templates/vanilla/src/components/InteractiveDemo.js +59 -0
  194. package/templates/vanilla/src/main.js +9 -0
  195. package/templates/vanilla/src/style/main.css +172 -0
  196. package/templates/vanilla/vite.config.js +8 -0
  197. package/templates/web3/.env.example +15 -0
  198. package/templates/web3/.github/workflows/deploy.yml +38 -0
  199. package/templates/web3/README.md +33 -0
  200. package/templates/web3/contracts/foundry.toml +11 -0
  201. package/templates/web3/contracts/script/Deploy.s.sol +13 -0
  202. package/templates/web3/contracts/src/Counter.sol +21 -0
  203. package/templates/web3/index.html +13 -0
  204. package/templates/web3/package.json +25 -0
  205. package/templates/web3/scripts/chain-start.mjs +305 -0
  206. package/templates/web3/scripts/chain-stop.mjs +34 -0
  207. package/templates/web3/scripts/deploy.mjs +155 -0
  208. package/templates/web3/scripts/setup.mjs +42 -0
  209. package/templates/web3/src/components/App.js +49 -0
  210. package/templates/web3/src/components/CounterCard.js +111 -0
  211. package/templates/web3/src/main.js +54 -0
  212. package/templates/web3/src/style/main.css +345 -0
  213. package/templates/web3/vite.config.js +29 -0
@@ -0,0 +1,144 @@
1
+ 'use strict'
2
+
3
+ let { existsSync, readFileSync } = require('fs')
4
+ let { dirname, join } = require('path')
5
+ let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
6
+
7
+ function fromBase64(str) {
8
+ if (Buffer) {
9
+ return Buffer.from(str, 'base64').toString()
10
+ } else {
11
+ /* c8 ignore next 2 */
12
+ return window.atob(str)
13
+ }
14
+ }
15
+
16
+ class PreviousMap {
17
+ constructor(css, opts) {
18
+ if (opts.map === false) return
19
+ this.loadAnnotation(css)
20
+ this.inline = this.startWith(this.annotation, 'data:')
21
+
22
+ let prev = opts.map ? opts.map.prev : undefined
23
+ let text = this.loadMap(opts.from, prev)
24
+ if (!this.mapFile && opts.from) {
25
+ this.mapFile = opts.from
26
+ }
27
+ if (this.mapFile) this.root = dirname(this.mapFile)
28
+ if (text) this.text = text
29
+ }
30
+
31
+ consumer() {
32
+ if (!this.consumerCache) {
33
+ this.consumerCache = new SourceMapConsumer(this.text)
34
+ }
35
+ return this.consumerCache
36
+ }
37
+
38
+ decodeInline(text) {
39
+ let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/
40
+ let baseUri = /^data:application\/json;base64,/
41
+ let charsetUri = /^data:application\/json;charset=utf-?8,/
42
+ let uri = /^data:application\/json,/
43
+
44
+ let uriMatch = text.match(charsetUri) || text.match(uri)
45
+ if (uriMatch) {
46
+ return decodeURIComponent(text.substr(uriMatch[0].length))
47
+ }
48
+
49
+ let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri)
50
+ if (baseUriMatch) {
51
+ return fromBase64(text.substr(baseUriMatch[0].length))
52
+ }
53
+
54
+ let encoding = text.match(/data:application\/json;([^,]+),/)[1]
55
+ throw new Error('Unsupported source map encoding ' + encoding)
56
+ }
57
+
58
+ getAnnotationURL(sourceMapString) {
59
+ return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim()
60
+ }
61
+
62
+ isMap(map) {
63
+ if (typeof map !== 'object') return false
64
+ return (
65
+ typeof map.mappings === 'string' ||
66
+ typeof map._mappings === 'string' ||
67
+ Array.isArray(map.sections)
68
+ )
69
+ }
70
+
71
+ loadAnnotation(css) {
72
+ let comments = css.match(/\/\*\s*# sourceMappingURL=/g)
73
+ if (!comments) return
74
+
75
+ // sourceMappingURLs from comments, strings, etc.
76
+ let start = css.lastIndexOf(comments.pop())
77
+ let end = css.indexOf('*/', start)
78
+
79
+ if (start > -1 && end > -1) {
80
+ // Locate the last sourceMappingURL to avoid pickin
81
+ this.annotation = this.getAnnotationURL(css.substring(start, end))
82
+ }
83
+ }
84
+
85
+ loadFile(path) {
86
+ this.root = dirname(path)
87
+ if (existsSync(path)) {
88
+ this.mapFile = path
89
+ return readFileSync(path, 'utf-8').toString().trim()
90
+ }
91
+ }
92
+
93
+ loadMap(file, prev) {
94
+ if (prev === false) return false
95
+
96
+ if (prev) {
97
+ if (typeof prev === 'string') {
98
+ return prev
99
+ } else if (typeof prev === 'function') {
100
+ let prevPath = prev(file)
101
+ if (prevPath) {
102
+ let map = this.loadFile(prevPath)
103
+ if (!map) {
104
+ throw new Error(
105
+ 'Unable to load previous source map: ' + prevPath.toString()
106
+ )
107
+ }
108
+ return map
109
+ }
110
+ } else if (prev instanceof SourceMapConsumer) {
111
+ return SourceMapGenerator.fromSourceMap(prev).toString()
112
+ } else if (prev instanceof SourceMapGenerator) {
113
+ return prev.toString()
114
+ } else if (this.isMap(prev)) {
115
+ return JSON.stringify(prev)
116
+ } else {
117
+ throw new Error(
118
+ 'Unsupported previous source map format: ' + prev.toString()
119
+ )
120
+ }
121
+ } else if (this.inline) {
122
+ return this.decodeInline(this.annotation)
123
+ } else if (this.annotation) {
124
+ let map = this.annotation
125
+ if (file) map = join(dirname(file), map)
126
+ return this.loadFile(map)
127
+ }
128
+ }
129
+
130
+ startWith(string, start) {
131
+ if (!string) return false
132
+ return string.substr(0, start.length) === start
133
+ }
134
+
135
+ withContent() {
136
+ return !!(
137
+ this.consumer().sourcesContent &&
138
+ this.consumer().sourcesContent.length > 0
139
+ )
140
+ }
141
+ }
142
+
143
+ module.exports = PreviousMap
144
+ PreviousMap.default = PreviousMap
@@ -0,0 +1,115 @@
1
+ import Document from './document.js'
2
+ import LazyResult from './lazy-result.js'
3
+ import NoWorkResult from './no-work-result.js'
4
+ import {
5
+ AcceptedPlugin,
6
+ Plugin,
7
+ ProcessOptions,
8
+ TransformCallback,
9
+ Transformer
10
+ } from './postcss.js'
11
+ import Result from './result.js'
12
+ import Root from './root.js'
13
+
14
+ declare namespace Processor {
15
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
16
+ export { Processor_ as default }
17
+ }
18
+
19
+ /**
20
+ * Contains plugins to process CSS. Create one `Processor` instance,
21
+ * initialize its plugins, and then use that instance on numerous CSS files.
22
+ *
23
+ * ```js
24
+ * const processor = postcss([autoprefixer, postcssNested])
25
+ * processor.process(css1).then(result => console.log(result.css))
26
+ * processor.process(css2).then(result => console.log(result.css))
27
+ * ```
28
+ */
29
+ declare class Processor_ {
30
+ /**
31
+ * Plugins added to this processor.
32
+ *
33
+ * ```js
34
+ * const processor = postcss([autoprefixer, postcssNested])
35
+ * processor.plugins.length //=> 2
36
+ * ```
37
+ */
38
+ plugins: (Plugin | TransformCallback | Transformer)[]
39
+
40
+ /**
41
+ * Current PostCSS version.
42
+ *
43
+ * ```js
44
+ * if (result.processor.version.split('.')[0] !== '6') {
45
+ * throw new Error('This plugin works only with PostCSS 6')
46
+ * }
47
+ * ```
48
+ */
49
+ version: string
50
+
51
+ /**
52
+ * @param plugins PostCSS plugins
53
+ */
54
+ constructor(plugins?: readonly AcceptedPlugin[])
55
+
56
+ /**
57
+ * Parses source CSS and returns a `LazyResult` Promise proxy.
58
+ * Because some plugins can be asynchronous it doesn’t make
59
+ * any transformations. Transformations will be applied
60
+ * in the `LazyResult` methods.
61
+ *
62
+ * ```js
63
+ * processor.process(css, { from: 'a.css', to: 'a.out.css' })
64
+ * .then(result => {
65
+ * console.log(result.css)
66
+ * })
67
+ * ```
68
+ *
69
+ * @param css String with input CSS or any object with a `toString()` method,
70
+ * like a Buffer. Optionally, send a `Result` instance
71
+ * and the processor will take the `Root` from it.
72
+ * @param opts Options.
73
+ * @return Promise proxy.
74
+ */
75
+ process(
76
+ css: { toString(): string } | LazyResult | Result | Root | string
77
+ ): LazyResult | NoWorkResult
78
+ process<RootNode extends Document | Root = Root>(
79
+ css: { toString(): string } | LazyResult | Result | Root | string,
80
+ options: ProcessOptions<RootNode>
81
+ ): LazyResult<RootNode>
82
+
83
+ /**
84
+ * Adds a plugin to be used as a CSS processor.
85
+ *
86
+ * PostCSS plugin can be in 4 formats:
87
+ * * A plugin in `Plugin` format.
88
+ * * A plugin creator function with `pluginCreator.postcss = true`.
89
+ * PostCSS will call this function without argument to get plugin.
90
+ * * A function. PostCSS will pass the function a {@link Root}
91
+ * as the first argument and current `Result` instance
92
+ * as the second.
93
+ * * Another `Processor` instance. PostCSS will copy plugins
94
+ * from that instance into this one.
95
+ *
96
+ * Plugins can also be added by passing them as arguments when creating
97
+ * a `postcss` instance (see [`postcss(plugins)`]).
98
+ *
99
+ * Asynchronous plugins should return a `Promise` instance.
100
+ *
101
+ * ```js
102
+ * const processor = postcss()
103
+ * .use(autoprefixer)
104
+ * .use(postcssNested)
105
+ * ```
106
+ *
107
+ * @param plugin PostCSS plugin or `Processor` with plugins.
108
+ * @return Current processor to make methods chain.
109
+ */
110
+ use(plugin: AcceptedPlugin): this
111
+ }
112
+
113
+ declare class Processor extends Processor_ {}
114
+
115
+ export = Processor
@@ -0,0 +1,67 @@
1
+ 'use strict'
2
+
3
+ let Document = require('./document')
4
+ let LazyResult = require('./lazy-result')
5
+ let NoWorkResult = require('./no-work-result')
6
+ let Root = require('./root')
7
+
8
+ class Processor {
9
+ constructor(plugins = []) {
10
+ this.version = '8.5.6'
11
+ this.plugins = this.normalize(plugins)
12
+ }
13
+
14
+ normalize(plugins) {
15
+ let normalized = []
16
+ for (let i of plugins) {
17
+ if (i.postcss === true) {
18
+ i = i()
19
+ } else if (i.postcss) {
20
+ i = i.postcss
21
+ }
22
+
23
+ if (typeof i === 'object' && Array.isArray(i.plugins)) {
24
+ normalized = normalized.concat(i.plugins)
25
+ } else if (typeof i === 'object' && i.postcssPlugin) {
26
+ normalized.push(i)
27
+ } else if (typeof i === 'function') {
28
+ normalized.push(i)
29
+ } else if (typeof i === 'object' && (i.parse || i.stringify)) {
30
+ if (process.env.NODE_ENV !== 'production') {
31
+ throw new Error(
32
+ 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +
33
+ 'one of the syntax/parser/stringifier options as outlined ' +
34
+ 'in your PostCSS runner documentation.'
35
+ )
36
+ }
37
+ } else {
38
+ throw new Error(i + ' is not a PostCSS plugin')
39
+ }
40
+ }
41
+ return normalized
42
+ }
43
+
44
+ process(css, opts = {}) {
45
+ if (
46
+ !this.plugins.length &&
47
+ !opts.parser &&
48
+ !opts.stringifier &&
49
+ !opts.syntax
50
+ ) {
51
+ return new NoWorkResult(this, css, opts)
52
+ } else {
53
+ return new LazyResult(this, css, opts)
54
+ }
55
+ }
56
+
57
+ use(plugin) {
58
+ this.plugins = this.plugins.concat(this.normalize([plugin]))
59
+ return this
60
+ }
61
+ }
62
+
63
+ module.exports = Processor
64
+ Processor.default = Processor
65
+
66
+ Root.registerProcessor(Processor)
67
+ Document.registerProcessor(Processor)
@@ -0,0 +1,205 @@
1
+ import {
2
+ Document,
3
+ Node,
4
+ Plugin,
5
+ ProcessOptions,
6
+ Root,
7
+ SourceMap,
8
+ TransformCallback,
9
+ Warning,
10
+ WarningOptions
11
+ } from './postcss.js'
12
+ import Processor from './processor.js'
13
+
14
+ declare namespace Result {
15
+ export interface Message {
16
+ [others: string]: any
17
+
18
+ /**
19
+ * Source PostCSS plugin name.
20
+ */
21
+ plugin?: string
22
+
23
+ /**
24
+ * Message type.
25
+ */
26
+ type: string
27
+ }
28
+
29
+ export interface ResultOptions extends ProcessOptions {
30
+ /**
31
+ * The CSS node that was the source of the warning.
32
+ */
33
+ node?: Node
34
+
35
+ /**
36
+ * Name of plugin that created this warning. `Result#warn` will fill it
37
+ * automatically with `Plugin#postcssPlugin` value.
38
+ */
39
+ plugin?: string
40
+ }
41
+
42
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
43
+ export { Result_ as default }
44
+ }
45
+
46
+ /**
47
+ * Provides the result of the PostCSS transformations.
48
+ *
49
+ * A Result instance is returned by `LazyResult#then`
50
+ * or `Root#toResult` methods.
51
+ *
52
+ * ```js
53
+ * postcss([autoprefixer]).process(css).then(result => {
54
+ * console.log(result.css)
55
+ * })
56
+ * ```
57
+ *
58
+ * ```js
59
+ * const result2 = postcss.parse(css).toResult()
60
+ * ```
61
+ */
62
+ declare class Result_<RootNode = Document | Root> {
63
+ /**
64
+ * A CSS string representing of `Result#root`.
65
+ *
66
+ * ```js
67
+ * postcss.parse('a{}').toResult().css //=> "a{}"
68
+ * ```
69
+ */
70
+ css: string
71
+
72
+ /**
73
+ * Last runned PostCSS plugin.
74
+ */
75
+ lastPlugin: Plugin | TransformCallback
76
+
77
+ /**
78
+ * An instance of `SourceMapGenerator` class from the `source-map` library,
79
+ * representing changes to the `Result#root` instance.
80
+ *
81
+ * ```js
82
+ * result.map.toJSON() //=> { version: 3, file: 'a.css', … }
83
+ * ```
84
+ *
85
+ * ```js
86
+ * if (result.map) {
87
+ * fs.writeFileSync(result.opts.to + '.map', result.map.toString())
88
+ * }
89
+ * ```
90
+ */
91
+ map: SourceMap
92
+
93
+ /**
94
+ * Contains messages from plugins (e.g., warnings or custom messages).
95
+ * Each message should have type and plugin properties.
96
+ *
97
+ * ```js
98
+ * AtRule: {
99
+ * import: (atRule, { result }) {
100
+ * const importedFile = parseImport(atRule)
101
+ * result.messages.push({
102
+ * type: 'dependency',
103
+ * plugin: 'postcss-import',
104
+ * file: importedFile,
105
+ * parent: result.opts.from
106
+ * })
107
+ * }
108
+ * }
109
+ * ```
110
+ */
111
+ messages: Result.Message[]
112
+
113
+ /**
114
+ * Options from the `Processor#process` or `Root#toResult` call
115
+ * that produced this Result instance.]
116
+ *
117
+ * ```js
118
+ * root.toResult(opts).opts === opts
119
+ * ```
120
+ */
121
+ opts: Result.ResultOptions
122
+
123
+ /**
124
+ * The Processor instance used for this transformation.
125
+ *
126
+ * ```js
127
+ * for (const plugin of result.processor.plugins) {
128
+ * if (plugin.postcssPlugin === 'postcss-bad') {
129
+ * throw 'postcss-good is incompatible with postcss-bad'
130
+ * }
131
+ * })
132
+ * ```
133
+ */
134
+ processor: Processor
135
+
136
+ /**
137
+ * Root node after all transformations.
138
+ *
139
+ * ```js
140
+ * root.toResult().root === root
141
+ * ```
142
+ */
143
+ root: RootNode
144
+
145
+ /**
146
+ * An alias for the `Result#css` property.
147
+ * Use it with syntaxes that generate non-CSS output.
148
+ *
149
+ * ```js
150
+ * result.css === result.content
151
+ * ```
152
+ */
153
+ get content(): string
154
+
155
+ /**
156
+ * @param processor Processor used for this transformation.
157
+ * @param root Root node after all transformations.
158
+ * @param opts Options from the `Processor#process` or `Root#toResult`.
159
+ */
160
+ constructor(processor: Processor, root: RootNode, opts: Result.ResultOptions)
161
+
162
+ /**
163
+ * Returns for `Result#css` content.
164
+ *
165
+ * ```js
166
+ * result + '' === result.css
167
+ * ```
168
+ *
169
+ * @return String representing of `Result#root`.
170
+ */
171
+ toString(): string
172
+
173
+ /**
174
+ * Creates an instance of `Warning` and adds it to `Result#messages`.
175
+ *
176
+ * ```js
177
+ * if (decl.important) {
178
+ * result.warn('Avoid !important', { node: decl, word: '!important' })
179
+ * }
180
+ * ```
181
+ *
182
+ * @param text Warning message.
183
+ * @param opts Warning options.
184
+ * @return Created warning.
185
+ */
186
+ warn(message: string, options?: WarningOptions): Warning
187
+
188
+ /**
189
+ * Returns warnings from plugins. Filters `Warning` instances
190
+ * from `Result#messages`.
191
+ *
192
+ * ```js
193
+ * result.warnings().forEach(warn => {
194
+ * console.warn(warn.toString())
195
+ * })
196
+ * ```
197
+ *
198
+ * @return Warnings from plugins.
199
+ */
200
+ warnings(): Warning[]
201
+ }
202
+
203
+ declare class Result<RootNode = Document | Root> extends Result_<RootNode> {}
204
+
205
+ export = Result
@@ -0,0 +1,42 @@
1
+ 'use strict'
2
+
3
+ let Warning = require('./warning')
4
+
5
+ class Result {
6
+ get content() {
7
+ return this.css
8
+ }
9
+
10
+ constructor(processor, root, opts) {
11
+ this.processor = processor
12
+ this.messages = []
13
+ this.root = root
14
+ this.opts = opts
15
+ this.css = ''
16
+ this.map = undefined
17
+ }
18
+
19
+ toString() {
20
+ return this.css
21
+ }
22
+
23
+ warn(text, opts = {}) {
24
+ if (!opts.plugin) {
25
+ if (this.lastPlugin && this.lastPlugin.postcssPlugin) {
26
+ opts.plugin = this.lastPlugin.postcssPlugin
27
+ }
28
+ }
29
+
30
+ let warning = new Warning(text, opts)
31
+ this.messages.push(warning)
32
+
33
+ return warning
34
+ }
35
+
36
+ warnings() {
37
+ return this.messages.filter(i => i.type === 'warning')
38
+ }
39
+ }
40
+
41
+ module.exports = Result
42
+ Result.default = Result
@@ -0,0 +1,87 @@
1
+ import Container, { ContainerProps } from './container.js'
2
+ import Document from './document.js'
3
+ import { ProcessOptions } from './postcss.js'
4
+ import Result from './result.js'
5
+
6
+ declare namespace Root {
7
+ export interface RootRaws extends Record<string, any> {
8
+ /**
9
+ * The space symbols after the last child to the end of file.
10
+ */
11
+ after?: string
12
+
13
+ /**
14
+ * Non-CSS code after `Root`, when `Root` is inside `Document`.
15
+ *
16
+ * **Experimental:** some aspects of this node could change within minor
17
+ * or patch version releases.
18
+ */
19
+ codeAfter?: string
20
+
21
+ /**
22
+ * Non-CSS code before `Root`, when `Root` is inside `Document`.
23
+ *
24
+ * **Experimental:** some aspects of this node could change within minor
25
+ * or patch version releases.
26
+ */
27
+ codeBefore?: string
28
+
29
+ /**
30
+ * Is the last child has an (optional) semicolon.
31
+ */
32
+ semicolon?: boolean
33
+ }
34
+
35
+ export interface RootProps extends ContainerProps {
36
+ /**
37
+ * Information used to generate byte-to-byte equal node string
38
+ * as it was in the origin input.
39
+ * */
40
+ raws?: RootRaws
41
+ }
42
+
43
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
44
+ export { Root_ as default }
45
+ }
46
+
47
+ /**
48
+ * Represents a CSS file and contains all its parsed nodes.
49
+ *
50
+ * ```js
51
+ * const root = postcss.parse('a{color:black} b{z-index:2}')
52
+ * root.type //=> 'root'
53
+ * root.nodes.length //=> 2
54
+ * ```
55
+ */
56
+ declare class Root_ extends Container {
57
+ nodes: NonNullable<Container['nodes']>
58
+ parent: Document | undefined
59
+ raws: Root.RootRaws
60
+ type: 'root'
61
+
62
+ constructor(defaults?: Root.RootProps)
63
+
64
+ assign(overrides: object | Root.RootProps): this
65
+ clone(overrides?: Partial<Root.RootProps>): this
66
+ cloneAfter(overrides?: Partial<Root.RootProps>): this
67
+ cloneBefore(overrides?: Partial<Root.RootProps>): this
68
+
69
+ /**
70
+ * Returns a `Result` instance representing the root’s CSS.
71
+ *
72
+ * ```js
73
+ * const root1 = postcss.parse(css1, { from: 'a.css' })
74
+ * const root2 = postcss.parse(css2, { from: 'b.css' })
75
+ * root1.append(root2)
76
+ * const result = root1.toResult({ to: 'all.css', map: true })
77
+ * ```
78
+ *
79
+ * @param options Options.
80
+ * @return Result with current root’s CSS.
81
+ */
82
+ toResult(options?: ProcessOptions): Result
83
+ }
84
+
85
+ declare class Root extends Root_ {}
86
+
87
+ export = Root