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,368 @@
1
+ 'use strict'
2
+
3
+ let { dirname, relative, resolve, sep } = require('path')
4
+ let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')
5
+ let { pathToFileURL } = require('url')
6
+
7
+ let Input = require('./input')
8
+
9
+ let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)
10
+ let pathAvailable = Boolean(dirname && resolve && relative && sep)
11
+
12
+ class MapGenerator {
13
+ constructor(stringify, root, opts, cssString) {
14
+ this.stringify = stringify
15
+ this.mapOpts = opts.map || {}
16
+ this.root = root
17
+ this.opts = opts
18
+ this.css = cssString
19
+ this.originalCSS = cssString
20
+ this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute
21
+
22
+ this.memoizedFileURLs = new Map()
23
+ this.memoizedPaths = new Map()
24
+ this.memoizedURLs = new Map()
25
+ }
26
+
27
+ addAnnotation() {
28
+ let content
29
+
30
+ if (this.isInline()) {
31
+ content =
32
+ 'data:application/json;base64,' + this.toBase64(this.map.toString())
33
+ } else if (typeof this.mapOpts.annotation === 'string') {
34
+ content = this.mapOpts.annotation
35
+ } else if (typeof this.mapOpts.annotation === 'function') {
36
+ content = this.mapOpts.annotation(this.opts.to, this.root)
37
+ } else {
38
+ content = this.outputFile() + '.map'
39
+ }
40
+ let eol = '\n'
41
+ if (this.css.includes('\r\n')) eol = '\r\n'
42
+
43
+ this.css += eol + '/*# sourceMappingURL=' + content + ' */'
44
+ }
45
+
46
+ applyPrevMaps() {
47
+ for (let prev of this.previous()) {
48
+ let from = this.toUrl(this.path(prev.file))
49
+ let root = prev.root || dirname(prev.file)
50
+ let map
51
+
52
+ if (this.mapOpts.sourcesContent === false) {
53
+ map = new SourceMapConsumer(prev.text)
54
+ if (map.sourcesContent) {
55
+ map.sourcesContent = null
56
+ }
57
+ } else {
58
+ map = prev.consumer()
59
+ }
60
+
61
+ this.map.applySourceMap(map, from, this.toUrl(this.path(root)))
62
+ }
63
+ }
64
+
65
+ clearAnnotation() {
66
+ if (this.mapOpts.annotation === false) return
67
+
68
+ if (this.root) {
69
+ let node
70
+ for (let i = this.root.nodes.length - 1; i >= 0; i--) {
71
+ node = this.root.nodes[i]
72
+ if (node.type !== 'comment') continue
73
+ if (node.text.startsWith('# sourceMappingURL=')) {
74
+ this.root.removeChild(i)
75
+ }
76
+ }
77
+ } else if (this.css) {
78
+ this.css = this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm, '')
79
+ }
80
+ }
81
+
82
+ generate() {
83
+ this.clearAnnotation()
84
+ if (pathAvailable && sourceMapAvailable && this.isMap()) {
85
+ return this.generateMap()
86
+ } else {
87
+ let result = ''
88
+ this.stringify(this.root, i => {
89
+ result += i
90
+ })
91
+ return [result]
92
+ }
93
+ }
94
+
95
+ generateMap() {
96
+ if (this.root) {
97
+ this.generateString()
98
+ } else if (this.previous().length === 1) {
99
+ let prev = this.previous()[0].consumer()
100
+ prev.file = this.outputFile()
101
+ this.map = SourceMapGenerator.fromSourceMap(prev, {
102
+ ignoreInvalidMapping: true
103
+ })
104
+ } else {
105
+ this.map = new SourceMapGenerator({
106
+ file: this.outputFile(),
107
+ ignoreInvalidMapping: true
108
+ })
109
+ this.map.addMapping({
110
+ generated: { column: 0, line: 1 },
111
+ original: { column: 0, line: 1 },
112
+ source: this.opts.from
113
+ ? this.toUrl(this.path(this.opts.from))
114
+ : '<no source>'
115
+ })
116
+ }
117
+
118
+ if (this.isSourcesContent()) this.setSourcesContent()
119
+ if (this.root && this.previous().length > 0) this.applyPrevMaps()
120
+ if (this.isAnnotation()) this.addAnnotation()
121
+
122
+ if (this.isInline()) {
123
+ return [this.css]
124
+ } else {
125
+ return [this.css, this.map]
126
+ }
127
+ }
128
+
129
+ generateString() {
130
+ this.css = ''
131
+ this.map = new SourceMapGenerator({
132
+ file: this.outputFile(),
133
+ ignoreInvalidMapping: true
134
+ })
135
+
136
+ let line = 1
137
+ let column = 1
138
+
139
+ let noSource = '<no source>'
140
+ let mapping = {
141
+ generated: { column: 0, line: 0 },
142
+ original: { column: 0, line: 0 },
143
+ source: ''
144
+ }
145
+
146
+ let last, lines
147
+ this.stringify(this.root, (str, node, type) => {
148
+ this.css += str
149
+
150
+ if (node && type !== 'end') {
151
+ mapping.generated.line = line
152
+ mapping.generated.column = column - 1
153
+ if (node.source && node.source.start) {
154
+ mapping.source = this.sourcePath(node)
155
+ mapping.original.line = node.source.start.line
156
+ mapping.original.column = node.source.start.column - 1
157
+ this.map.addMapping(mapping)
158
+ } else {
159
+ mapping.source = noSource
160
+ mapping.original.line = 1
161
+ mapping.original.column = 0
162
+ this.map.addMapping(mapping)
163
+ }
164
+ }
165
+
166
+ lines = str.match(/\n/g)
167
+ if (lines) {
168
+ line += lines.length
169
+ last = str.lastIndexOf('\n')
170
+ column = str.length - last
171
+ } else {
172
+ column += str.length
173
+ }
174
+
175
+ if (node && type !== 'start') {
176
+ let p = node.parent || { raws: {} }
177
+ let childless =
178
+ node.type === 'decl' || (node.type === 'atrule' && !node.nodes)
179
+ if (!childless || node !== p.last || p.raws.semicolon) {
180
+ if (node.source && node.source.end) {
181
+ mapping.source = this.sourcePath(node)
182
+ mapping.original.line = node.source.end.line
183
+ mapping.original.column = node.source.end.column - 1
184
+ mapping.generated.line = line
185
+ mapping.generated.column = column - 2
186
+ this.map.addMapping(mapping)
187
+ } else {
188
+ mapping.source = noSource
189
+ mapping.original.line = 1
190
+ mapping.original.column = 0
191
+ mapping.generated.line = line
192
+ mapping.generated.column = column - 1
193
+ this.map.addMapping(mapping)
194
+ }
195
+ }
196
+ }
197
+ })
198
+ }
199
+
200
+ isAnnotation() {
201
+ if (this.isInline()) {
202
+ return true
203
+ }
204
+ if (typeof this.mapOpts.annotation !== 'undefined') {
205
+ return this.mapOpts.annotation
206
+ }
207
+ if (this.previous().length) {
208
+ return this.previous().some(i => i.annotation)
209
+ }
210
+ return true
211
+ }
212
+
213
+ isInline() {
214
+ if (typeof this.mapOpts.inline !== 'undefined') {
215
+ return this.mapOpts.inline
216
+ }
217
+
218
+ let annotation = this.mapOpts.annotation
219
+ if (typeof annotation !== 'undefined' && annotation !== true) {
220
+ return false
221
+ }
222
+
223
+ if (this.previous().length) {
224
+ return this.previous().some(i => i.inline)
225
+ }
226
+ return true
227
+ }
228
+
229
+ isMap() {
230
+ if (typeof this.opts.map !== 'undefined') {
231
+ return !!this.opts.map
232
+ }
233
+ return this.previous().length > 0
234
+ }
235
+
236
+ isSourcesContent() {
237
+ if (typeof this.mapOpts.sourcesContent !== 'undefined') {
238
+ return this.mapOpts.sourcesContent
239
+ }
240
+ if (this.previous().length) {
241
+ return this.previous().some(i => i.withContent())
242
+ }
243
+ return true
244
+ }
245
+
246
+ outputFile() {
247
+ if (this.opts.to) {
248
+ return this.path(this.opts.to)
249
+ } else if (this.opts.from) {
250
+ return this.path(this.opts.from)
251
+ } else {
252
+ return 'to.css'
253
+ }
254
+ }
255
+
256
+ path(file) {
257
+ if (this.mapOpts.absolute) return file
258
+ if (file.charCodeAt(0) === 60 /* `<` */) return file
259
+ if (/^\w+:\/\//.test(file)) return file
260
+ let cached = this.memoizedPaths.get(file)
261
+ if (cached) return cached
262
+
263
+ let from = this.opts.to ? dirname(this.opts.to) : '.'
264
+
265
+ if (typeof this.mapOpts.annotation === 'string') {
266
+ from = dirname(resolve(from, this.mapOpts.annotation))
267
+ }
268
+
269
+ let path = relative(from, file)
270
+ this.memoizedPaths.set(file, path)
271
+
272
+ return path
273
+ }
274
+
275
+ previous() {
276
+ if (!this.previousMaps) {
277
+ this.previousMaps = []
278
+ if (this.root) {
279
+ this.root.walk(node => {
280
+ if (node.source && node.source.input.map) {
281
+ let map = node.source.input.map
282
+ if (!this.previousMaps.includes(map)) {
283
+ this.previousMaps.push(map)
284
+ }
285
+ }
286
+ })
287
+ } else {
288
+ let input = new Input(this.originalCSS, this.opts)
289
+ if (input.map) this.previousMaps.push(input.map)
290
+ }
291
+ }
292
+
293
+ return this.previousMaps
294
+ }
295
+
296
+ setSourcesContent() {
297
+ let already = {}
298
+ if (this.root) {
299
+ this.root.walk(node => {
300
+ if (node.source) {
301
+ let from = node.source.input.from
302
+ if (from && !already[from]) {
303
+ already[from] = true
304
+ let fromUrl = this.usesFileUrls
305
+ ? this.toFileUrl(from)
306
+ : this.toUrl(this.path(from))
307
+ this.map.setSourceContent(fromUrl, node.source.input.css)
308
+ }
309
+ }
310
+ })
311
+ } else if (this.css) {
312
+ let from = this.opts.from
313
+ ? this.toUrl(this.path(this.opts.from))
314
+ : '<no source>'
315
+ this.map.setSourceContent(from, this.css)
316
+ }
317
+ }
318
+
319
+ sourcePath(node) {
320
+ if (this.mapOpts.from) {
321
+ return this.toUrl(this.mapOpts.from)
322
+ } else if (this.usesFileUrls) {
323
+ return this.toFileUrl(node.source.input.from)
324
+ } else {
325
+ return this.toUrl(this.path(node.source.input.from))
326
+ }
327
+ }
328
+
329
+ toBase64(str) {
330
+ if (Buffer) {
331
+ return Buffer.from(str).toString('base64')
332
+ } else {
333
+ return window.btoa(unescape(encodeURIComponent(str)))
334
+ }
335
+ }
336
+
337
+ toFileUrl(path) {
338
+ let cached = this.memoizedFileURLs.get(path)
339
+ if (cached) return cached
340
+
341
+ if (pathToFileURL) {
342
+ let fileURL = pathToFileURL(path).toString()
343
+ this.memoizedFileURLs.set(path, fileURL)
344
+
345
+ return fileURL
346
+ } else {
347
+ throw new Error(
348
+ '`map.absolute` option is not available in this PostCSS build'
349
+ )
350
+ }
351
+ }
352
+
353
+ toUrl(path) {
354
+ let cached = this.memoizedURLs.get(path)
355
+ if (cached) return cached
356
+
357
+ if (sep === '\\') {
358
+ path = path.replace(/\\/g, '/')
359
+ }
360
+
361
+ let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)
362
+ this.memoizedURLs.set(path, url)
363
+
364
+ return url
365
+ }
366
+ }
367
+
368
+ module.exports = MapGenerator
@@ -0,0 +1,46 @@
1
+ import LazyResult from './lazy-result.js'
2
+ import { SourceMap } from './postcss.js'
3
+ import Processor from './processor.js'
4
+ import Result, { Message, ResultOptions } from './result.js'
5
+ import Root from './root.js'
6
+ import Warning from './warning.js'
7
+
8
+ declare namespace NoWorkResult {
9
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
10
+ export { NoWorkResult_ as default }
11
+ }
12
+
13
+ /**
14
+ * A Promise proxy for the result of PostCSS transformations.
15
+ * This lazy result instance doesn't parse css unless `NoWorkResult#root` or `Result#root`
16
+ * are accessed. See the example below for details.
17
+ * A `NoWork` instance is returned by `Processor#process` ONLY when no plugins defined.
18
+ *
19
+ * ```js
20
+ * const noWorkResult = postcss().process(css) // No plugins are defined.
21
+ * // CSS is not parsed
22
+ * let root = noWorkResult.root // now css is parsed because we accessed the root
23
+ * ```
24
+ */
25
+ declare class NoWorkResult_ implements LazyResult<Root> {
26
+ catch: Promise<Result<Root>>['catch']
27
+ finally: Promise<Result<Root>>['finally']
28
+ then: Promise<Result<Root>>['then']
29
+ get content(): string
30
+ get css(): string
31
+ get map(): SourceMap
32
+ get messages(): Message[]
33
+ get opts(): ResultOptions
34
+ get processor(): Processor
35
+ get root(): Root
36
+ get [Symbol.toStringTag](): string
37
+ constructor(processor: Processor, css: string, opts: ResultOptions)
38
+ async(): Promise<Result<Root>>
39
+ sync(): Result<Root>
40
+ toString(): string
41
+ warnings(): Warning[]
42
+ }
43
+
44
+ declare class NoWorkResult extends NoWorkResult_ {}
45
+
46
+ export = NoWorkResult
@@ -0,0 +1,138 @@
1
+ 'use strict'
2
+
3
+ let MapGenerator = require('./map-generator')
4
+ let parse = require('./parse')
5
+ const Result = require('./result')
6
+ let stringify = require('./stringify')
7
+ let warnOnce = require('./warn-once')
8
+
9
+ class NoWorkResult {
10
+ get content() {
11
+ return this.result.css
12
+ }
13
+
14
+ get css() {
15
+ return this.result.css
16
+ }
17
+
18
+ get map() {
19
+ return this.result.map
20
+ }
21
+
22
+ get messages() {
23
+ return []
24
+ }
25
+
26
+ get opts() {
27
+ return this.result.opts
28
+ }
29
+
30
+ get processor() {
31
+ return this.result.processor
32
+ }
33
+
34
+ get root() {
35
+ if (this._root) {
36
+ return this._root
37
+ }
38
+
39
+ let root
40
+ let parser = parse
41
+
42
+ try {
43
+ root = parser(this._css, this._opts)
44
+ } catch (error) {
45
+ this.error = error
46
+ }
47
+
48
+ if (this.error) {
49
+ throw this.error
50
+ } else {
51
+ this._root = root
52
+ return root
53
+ }
54
+ }
55
+
56
+ get [Symbol.toStringTag]() {
57
+ return 'NoWorkResult'
58
+ }
59
+
60
+ constructor(processor, css, opts) {
61
+ css = css.toString()
62
+ this.stringified = false
63
+
64
+ this._processor = processor
65
+ this._css = css
66
+ this._opts = opts
67
+ this._map = undefined
68
+ let root
69
+
70
+ let str = stringify
71
+ this.result = new Result(this._processor, root, this._opts)
72
+ this.result.css = css
73
+
74
+ let self = this
75
+ Object.defineProperty(this.result, 'root', {
76
+ get() {
77
+ return self.root
78
+ }
79
+ })
80
+
81
+ let map = new MapGenerator(str, root, this._opts, css)
82
+ if (map.isMap()) {
83
+ let [generatedCSS, generatedMap] = map.generate()
84
+ if (generatedCSS) {
85
+ this.result.css = generatedCSS
86
+ }
87
+ if (generatedMap) {
88
+ this.result.map = generatedMap
89
+ }
90
+ } else {
91
+ map.clearAnnotation()
92
+ this.result.css = map.css
93
+ }
94
+ }
95
+
96
+ async() {
97
+ if (this.error) return Promise.reject(this.error)
98
+ return Promise.resolve(this.result)
99
+ }
100
+
101
+ catch(onRejected) {
102
+ return this.async().catch(onRejected)
103
+ }
104
+
105
+ finally(onFinally) {
106
+ return this.async().then(onFinally, onFinally)
107
+ }
108
+
109
+ sync() {
110
+ if (this.error) throw this.error
111
+ return this.result
112
+ }
113
+
114
+ then(onFulfilled, onRejected) {
115
+ if (process.env.NODE_ENV !== 'production') {
116
+ if (!('from' in this._opts)) {
117
+ warnOnce(
118
+ 'Without `from` option PostCSS could generate wrong source map ' +
119
+ 'and will not find Browserslist config. Set it to CSS file path ' +
120
+ 'or to `undefined` to prevent this warning.'
121
+ )
122
+ }
123
+ }
124
+
125
+ return this.async().then(onFulfilled, onRejected)
126
+ }
127
+
128
+ toString() {
129
+ return this._css
130
+ }
131
+
132
+ warnings() {
133
+ return []
134
+ }
135
+ }
136
+
137
+ module.exports = NoWorkResult
138
+ NoWorkResult.default = NoWorkResult