create-microact-app 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/package.json +1 -1
  2. package/templates/vanilla/package.json +1 -1
  3. package/templates/vanilla/src/components/App.js +22 -35
  4. package/templates/vanilla/src/components/Card.js +5 -12
  5. package/templates/vanilla/src/components/Hero.js +6 -8
  6. package/templates/vanilla/src/components/InteractiveDemo.js +34 -32
  7. package/templates/vanilla/src/main.js +2 -6
  8. package/templates/web3/contracts/.gitmodules +3 -0
  9. package/templates/web3/contracts/foundry.lock +8 -0
  10. package/templates/web3/contracts/lib/forge-std/.gitattributes +1 -0
  11. package/templates/web3/contracts/lib/forge-std/.github/CODEOWNERS +1 -0
  12. package/templates/web3/contracts/lib/forge-std/.github/dependabot.yml +6 -0
  13. package/templates/web3/contracts/lib/forge-std/.github/workflows/ci.yml +125 -0
  14. package/templates/web3/contracts/lib/forge-std/.github/workflows/sync.yml +36 -0
  15. package/templates/web3/contracts/lib/forge-std/CONTRIBUTING.md +193 -0
  16. package/templates/web3/contracts/lib/forge-std/LICENSE-APACHE +203 -0
  17. package/templates/web3/contracts/lib/forge-std/LICENSE-MIT +25 -0
  18. package/templates/web3/contracts/lib/forge-std/README.md +268 -0
  19. package/templates/web3/contracts/lib/forge-std/RELEASE_CHECKLIST.md +12 -0
  20. package/templates/web3/contracts/lib/forge-std/foundry.toml +18 -0
  21. package/templates/web3/contracts/lib/forge-std/package.json +16 -0
  22. package/templates/web3/contracts/lib/forge-std/scripts/vm.py +636 -0
  23. package/templates/web3/contracts/lib/forge-std/src/Base.sol +48 -0
  24. package/templates/web3/contracts/lib/forge-std/src/Config.sol +60 -0
  25. package/templates/web3/contracts/lib/forge-std/src/LibVariable.sol +477 -0
  26. package/templates/web3/contracts/lib/forge-std/src/Script.sol +28 -0
  27. package/templates/web3/contracts/lib/forge-std/src/StdAssertions.sol +779 -0
  28. package/templates/web3/contracts/lib/forge-std/src/StdChains.sol +295 -0
  29. package/templates/web3/contracts/lib/forge-std/src/StdCheats.sol +825 -0
  30. package/templates/web3/contracts/lib/forge-std/src/StdConfig.sol +632 -0
  31. package/templates/web3/contracts/lib/forge-std/src/StdConstants.sol +30 -0
  32. package/templates/web3/contracts/lib/forge-std/src/StdError.sol +15 -0
  33. package/templates/web3/contracts/lib/forge-std/src/StdInvariant.sol +120 -0
  34. package/templates/web3/contracts/lib/forge-std/src/StdJson.sol +275 -0
  35. package/templates/web3/contracts/lib/forge-std/src/StdMath.sol +47 -0
  36. package/templates/web3/contracts/lib/forge-std/src/StdStorage.sol +475 -0
  37. package/templates/web3/contracts/lib/forge-std/src/StdStyle.sol +333 -0
  38. package/templates/web3/contracts/lib/forge-std/src/StdToml.sol +275 -0
  39. package/templates/web3/contracts/lib/forge-std/src/StdUtils.sol +200 -0
  40. package/templates/web3/contracts/lib/forge-std/src/Test.sol +32 -0
  41. package/templates/web3/contracts/lib/forge-std/src/Vm.sol +2500 -0
  42. package/templates/web3/contracts/lib/forge-std/src/console.sol +1551 -0
  43. package/templates/web3/contracts/lib/forge-std/src/console2.sol +4 -0
  44. package/templates/web3/contracts/lib/forge-std/src/interfaces/IERC1155.sol +105 -0
  45. package/templates/web3/contracts/lib/forge-std/src/interfaces/IERC165.sol +12 -0
  46. package/templates/web3/contracts/lib/forge-std/src/interfaces/IERC20.sol +43 -0
  47. package/templates/web3/contracts/lib/forge-std/src/interfaces/IERC4626.sol +190 -0
  48. package/templates/web3/contracts/lib/forge-std/src/interfaces/IERC6909.sol +72 -0
  49. package/templates/web3/contracts/lib/forge-std/src/interfaces/IERC721.sol +164 -0
  50. package/templates/web3/contracts/lib/forge-std/src/interfaces/IERC7540.sol +144 -0
  51. package/templates/web3/contracts/lib/forge-std/src/interfaces/IERC7575.sol +241 -0
  52. package/templates/web3/contracts/lib/forge-std/src/interfaces/IMulticall3.sol +68 -0
  53. package/templates/web3/contracts/lib/forge-std/src/safeconsole.sol +13248 -0
  54. package/templates/web3/contracts/lib/forge-std/test/CommonBase.t.sol +44 -0
  55. package/templates/web3/contracts/lib/forge-std/test/Config.t.sol +381 -0
  56. package/templates/web3/contracts/lib/forge-std/test/LibVariable.t.sol +452 -0
  57. package/templates/web3/contracts/lib/forge-std/test/StdAssertions.t.sol +141 -0
  58. package/templates/web3/contracts/lib/forge-std/test/StdChains.t.sol +227 -0
  59. package/templates/web3/contracts/lib/forge-std/test/StdCheats.t.sol +638 -0
  60. package/templates/web3/contracts/lib/forge-std/test/StdConstants.t.sol +38 -0
  61. package/templates/web3/contracts/lib/forge-std/test/StdError.t.sol +119 -0
  62. package/templates/web3/contracts/lib/forge-std/test/StdJson.t.sol +49 -0
  63. package/templates/web3/contracts/lib/forge-std/test/StdMath.t.sol +202 -0
  64. package/templates/web3/contracts/lib/forge-std/test/StdStorage.t.sol +485 -0
  65. package/templates/web3/contracts/lib/forge-std/test/StdStyle.t.sol +110 -0
  66. package/templates/web3/contracts/lib/forge-std/test/StdToml.t.sol +49 -0
  67. package/templates/web3/contracts/lib/forge-std/test/StdUtils.t.sol +342 -0
  68. package/templates/web3/contracts/lib/forge-std/test/Vm.t.sol +18 -0
  69. package/templates/web3/contracts/lib/forge-std/test/compilation/CompilationScript.sol +8 -0
  70. package/templates/web3/contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol +8 -0
  71. package/templates/web3/contracts/lib/forge-std/test/compilation/CompilationTest.sol +8 -0
  72. package/templates/web3/contracts/lib/forge-std/test/compilation/CompilationTestBase.sol +8 -0
  73. package/templates/web3/contracts/lib/forge-std/test/fixtures/broadcast.log.json +187 -0
  74. package/templates/web3/contracts/lib/forge-std/test/fixtures/config.toml +81 -0
  75. package/templates/web3/contracts/lib/forge-std/test/fixtures/test.json +8 -0
  76. package/templates/web3/contracts/lib/forge-std/test/fixtures/test.toml +6 -0
  77. package/templates/web3/package.json +1 -1
  78. package/templates/web3/src/components/App.js +23 -36
  79. package/templates/web3/src/components/CounterCard.js +45 -45
  80. package/templates/web3/src/main.js +5 -7
  81. package/templates/vanilla/node_modules/.package-lock.json +0 -207
  82. package/templates/vanilla/node_modules/@esbuild/darwin-x64/README.md +0 -3
  83. package/templates/vanilla/node_modules/@esbuild/darwin-x64/bin/esbuild +0 -0
  84. package/templates/vanilla/node_modules/@esbuild/darwin-x64/package.json +0 -17
  85. package/templates/vanilla/node_modules/@monygroupcorp/microact/README.md +0 -154
  86. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.cjs.js +0 -1749
  87. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.cjs.js.map +0 -1
  88. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.esm.js +0 -1743
  89. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.esm.js.map +0 -1
  90. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.umd.js +0 -2
  91. package/templates/vanilla/node_modules/@monygroupcorp/microact/dist/microact.umd.js.map +0 -1
  92. package/templates/vanilla/node_modules/@monygroupcorp/microact/example/index.html +0 -13
  93. package/templates/vanilla/node_modules/@monygroupcorp/microact/example/index.js +0 -63
  94. package/templates/vanilla/node_modules/@monygroupcorp/microact/package.json +0 -38
  95. package/templates/vanilla/node_modules/@monygroupcorp/microact/rollup.config.cjs +0 -30
  96. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/Component.js +0 -831
  97. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/DOMUpdater.js +0 -320
  98. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/EventBus.js +0 -123
  99. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/Router.js +0 -253
  100. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/UpdateScheduler.js +0 -218
  101. package/templates/vanilla/node_modules/@monygroupcorp/microact/src/index.js +0 -6
  102. package/templates/vanilla/node_modules/esbuild/LICENSE.md +0 -21
  103. package/templates/vanilla/node_modules/esbuild/README.md +0 -3
  104. package/templates/vanilla/node_modules/esbuild/bin/esbuild +0 -0
  105. package/templates/vanilla/node_modules/esbuild/install.js +0 -287
  106. package/templates/vanilla/node_modules/esbuild/lib/main.d.ts +0 -660
  107. package/templates/vanilla/node_modules/esbuild/lib/main.js +0 -2393
  108. package/templates/vanilla/node_modules/esbuild/package.json +0 -42
  109. package/templates/vanilla/node_modules/nanoid/LICENSE +0 -20
  110. package/templates/vanilla/node_modules/nanoid/README.md +0 -39
  111. package/templates/vanilla/node_modules/nanoid/async/index.browser.cjs +0 -69
  112. package/templates/vanilla/node_modules/nanoid/async/index.browser.js +0 -34
  113. package/templates/vanilla/node_modules/nanoid/async/index.cjs +0 -71
  114. package/templates/vanilla/node_modules/nanoid/async/index.d.ts +0 -56
  115. package/templates/vanilla/node_modules/nanoid/async/index.js +0 -35
  116. package/templates/vanilla/node_modules/nanoid/async/index.native.js +0 -26
  117. package/templates/vanilla/node_modules/nanoid/async/package.json +0 -12
  118. package/templates/vanilla/node_modules/nanoid/bin/nanoid.cjs +0 -55
  119. package/templates/vanilla/node_modules/nanoid/index.browser.cjs +0 -72
  120. package/templates/vanilla/node_modules/nanoid/index.browser.js +0 -34
  121. package/templates/vanilla/node_modules/nanoid/index.cjs +0 -85
  122. package/templates/vanilla/node_modules/nanoid/index.d.cts +0 -91
  123. package/templates/vanilla/node_modules/nanoid/index.d.ts +0 -91
  124. package/templates/vanilla/node_modules/nanoid/index.js +0 -45
  125. package/templates/vanilla/node_modules/nanoid/nanoid.js +0 -1
  126. package/templates/vanilla/node_modules/nanoid/non-secure/index.cjs +0 -34
  127. package/templates/vanilla/node_modules/nanoid/non-secure/index.d.ts +0 -33
  128. package/templates/vanilla/node_modules/nanoid/non-secure/index.js +0 -21
  129. package/templates/vanilla/node_modules/nanoid/non-secure/package.json +0 -6
  130. package/templates/vanilla/node_modules/nanoid/package.json +0 -89
  131. package/templates/vanilla/node_modules/nanoid/url-alphabet/index.cjs +0 -7
  132. package/templates/vanilla/node_modules/nanoid/url-alphabet/index.js +0 -3
  133. package/templates/vanilla/node_modules/nanoid/url-alphabet/package.json +0 -6
  134. package/templates/vanilla/node_modules/picocolors/LICENSE +0 -15
  135. package/templates/vanilla/node_modules/picocolors/README.md +0 -21
  136. package/templates/vanilla/node_modules/picocolors/package.json +0 -25
  137. package/templates/vanilla/node_modules/picocolors/picocolors.browser.js +0 -4
  138. package/templates/vanilla/node_modules/picocolors/picocolors.d.ts +0 -5
  139. package/templates/vanilla/node_modules/picocolors/picocolors.js +0 -75
  140. package/templates/vanilla/node_modules/picocolors/types.d.ts +0 -51
  141. package/templates/vanilla/node_modules/postcss/LICENSE +0 -20
  142. package/templates/vanilla/node_modules/postcss/README.md +0 -29
  143. package/templates/vanilla/node_modules/postcss/lib/at-rule.d.ts +0 -140
  144. package/templates/vanilla/node_modules/postcss/lib/at-rule.js +0 -25
  145. package/templates/vanilla/node_modules/postcss/lib/comment.d.ts +0 -68
  146. package/templates/vanilla/node_modules/postcss/lib/comment.js +0 -13
  147. package/templates/vanilla/node_modules/postcss/lib/container.d.ts +0 -483
  148. package/templates/vanilla/node_modules/postcss/lib/container.js +0 -447
  149. package/templates/vanilla/node_modules/postcss/lib/css-syntax-error.d.ts +0 -248
  150. package/templates/vanilla/node_modules/postcss/lib/css-syntax-error.js +0 -133
  151. package/templates/vanilla/node_modules/postcss/lib/declaration.d.ts +0 -151
  152. package/templates/vanilla/node_modules/postcss/lib/declaration.js +0 -24
  153. package/templates/vanilla/node_modules/postcss/lib/document.d.ts +0 -69
  154. package/templates/vanilla/node_modules/postcss/lib/document.js +0 -33
  155. package/templates/vanilla/node_modules/postcss/lib/fromJSON.d.ts +0 -9
  156. package/templates/vanilla/node_modules/postcss/lib/fromJSON.js +0 -54
  157. package/templates/vanilla/node_modules/postcss/lib/input.d.ts +0 -227
  158. package/templates/vanilla/node_modules/postcss/lib/input.js +0 -265
  159. package/templates/vanilla/node_modules/postcss/lib/lazy-result.d.ts +0 -190
  160. package/templates/vanilla/node_modules/postcss/lib/lazy-result.js +0 -550
  161. package/templates/vanilla/node_modules/postcss/lib/list.d.ts +0 -60
  162. package/templates/vanilla/node_modules/postcss/lib/list.js +0 -58
  163. package/templates/vanilla/node_modules/postcss/lib/map-generator.js +0 -368
  164. package/templates/vanilla/node_modules/postcss/lib/no-work-result.d.ts +0 -46
  165. package/templates/vanilla/node_modules/postcss/lib/no-work-result.js +0 -138
  166. package/templates/vanilla/node_modules/postcss/lib/node.d.ts +0 -556
  167. package/templates/vanilla/node_modules/postcss/lib/node.js +0 -449
  168. package/templates/vanilla/node_modules/postcss/lib/parse.d.ts +0 -9
  169. package/templates/vanilla/node_modules/postcss/lib/parse.js +0 -42
  170. package/templates/vanilla/node_modules/postcss/lib/parser.js +0 -611
  171. package/templates/vanilla/node_modules/postcss/lib/postcss.d.mts +0 -69
  172. package/templates/vanilla/node_modules/postcss/lib/postcss.d.ts +0 -458
  173. package/templates/vanilla/node_modules/postcss/lib/postcss.js +0 -101
  174. package/templates/vanilla/node_modules/postcss/lib/postcss.mjs +0 -30
  175. package/templates/vanilla/node_modules/postcss/lib/previous-map.d.ts +0 -81
  176. package/templates/vanilla/node_modules/postcss/lib/previous-map.js +0 -144
  177. package/templates/vanilla/node_modules/postcss/lib/processor.d.ts +0 -115
  178. package/templates/vanilla/node_modules/postcss/lib/processor.js +0 -67
  179. package/templates/vanilla/node_modules/postcss/lib/result.d.ts +0 -205
  180. package/templates/vanilla/node_modules/postcss/lib/result.js +0 -42
  181. package/templates/vanilla/node_modules/postcss/lib/root.d.ts +0 -87
  182. package/templates/vanilla/node_modules/postcss/lib/root.js +0 -61
  183. package/templates/vanilla/node_modules/postcss/lib/rule.d.ts +0 -126
  184. package/templates/vanilla/node_modules/postcss/lib/rule.js +0 -27
  185. package/templates/vanilla/node_modules/postcss/lib/stringifier.d.ts +0 -46
  186. package/templates/vanilla/node_modules/postcss/lib/stringifier.js +0 -353
  187. package/templates/vanilla/node_modules/postcss/lib/stringify.d.ts +0 -9
  188. package/templates/vanilla/node_modules/postcss/lib/stringify.js +0 -11
  189. package/templates/vanilla/node_modules/postcss/lib/symbols.js +0 -5
  190. package/templates/vanilla/node_modules/postcss/lib/terminal-highlight.js +0 -70
  191. package/templates/vanilla/node_modules/postcss/lib/tokenize.js +0 -266
  192. package/templates/vanilla/node_modules/postcss/lib/warn-once.js +0 -13
  193. package/templates/vanilla/node_modules/postcss/lib/warning.d.ts +0 -147
  194. package/templates/vanilla/node_modules/postcss/lib/warning.js +0 -37
  195. package/templates/vanilla/node_modules/postcss/package.json +0 -88
  196. package/templates/vanilla/node_modules/rollup/LICENSE.md +0 -695
  197. package/templates/vanilla/node_modules/rollup/README.md +0 -125
  198. package/templates/vanilla/node_modules/rollup/dist/bin/rollup +0 -1715
  199. package/templates/vanilla/node_modules/rollup/dist/es/getLogFilter.js +0 -64
  200. package/templates/vanilla/node_modules/rollup/dist/es/package.json +0 -1
  201. package/templates/vanilla/node_modules/rollup/dist/es/rollup.js +0 -17
  202. package/templates/vanilla/node_modules/rollup/dist/es/shared/node-entry.js +0 -27273
  203. package/templates/vanilla/node_modules/rollup/dist/es/shared/watch.js +0 -4857
  204. package/templates/vanilla/node_modules/rollup/dist/getLogFilter.d.ts +0 -5
  205. package/templates/vanilla/node_modules/rollup/dist/getLogFilter.js +0 -69
  206. package/templates/vanilla/node_modules/rollup/dist/loadConfigFile.d.ts +0 -20
  207. package/templates/vanilla/node_modules/rollup/dist/loadConfigFile.js +0 -29
  208. package/templates/vanilla/node_modules/rollup/dist/rollup.d.ts +0 -1012
  209. package/templates/vanilla/node_modules/rollup/dist/rollup.js +0 -31
  210. package/templates/vanilla/node_modules/rollup/dist/shared/fsevents-importer.js +0 -37
  211. package/templates/vanilla/node_modules/rollup/dist/shared/index.js +0 -4571
  212. package/templates/vanilla/node_modules/rollup/dist/shared/loadConfigFile.js +0 -546
  213. package/templates/vanilla/node_modules/rollup/dist/shared/rollup.js +0 -27351
  214. package/templates/vanilla/node_modules/rollup/dist/shared/watch-cli.js +0 -561
  215. package/templates/vanilla/node_modules/rollup/dist/shared/watch-proxy.js +0 -87
  216. package/templates/vanilla/node_modules/rollup/dist/shared/watch.js +0 -316
  217. package/templates/vanilla/node_modules/rollup/package.json +0 -181
  218. package/templates/vanilla/node_modules/source-map-js/LICENSE +0 -28
  219. package/templates/vanilla/node_modules/source-map-js/README.md +0 -765
  220. package/templates/vanilla/node_modules/source-map-js/lib/array-set.js +0 -121
  221. package/templates/vanilla/node_modules/source-map-js/lib/base64-vlq.js +0 -140
  222. package/templates/vanilla/node_modules/source-map-js/lib/base64.js +0 -67
  223. package/templates/vanilla/node_modules/source-map-js/lib/binary-search.js +0 -111
  224. package/templates/vanilla/node_modules/source-map-js/lib/mapping-list.js +0 -79
  225. package/templates/vanilla/node_modules/source-map-js/lib/quick-sort.js +0 -132
  226. package/templates/vanilla/node_modules/source-map-js/lib/source-map-consumer.d.ts +0 -1
  227. package/templates/vanilla/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
  228. package/templates/vanilla/node_modules/source-map-js/lib/source-map-generator.d.ts +0 -1
  229. package/templates/vanilla/node_modules/source-map-js/lib/source-map-generator.js +0 -444
  230. package/templates/vanilla/node_modules/source-map-js/lib/source-node.d.ts +0 -1
  231. package/templates/vanilla/node_modules/source-map-js/lib/source-node.js +0 -413
  232. package/templates/vanilla/node_modules/source-map-js/lib/util.js +0 -594
  233. package/templates/vanilla/node_modules/source-map-js/package.json +0 -71
  234. package/templates/vanilla/node_modules/source-map-js/source-map.d.ts +0 -104
  235. package/templates/vanilla/node_modules/source-map-js/source-map.js +0 -8
  236. package/templates/vanilla/node_modules/vite/LICENSE.md +0 -3396
  237. package/templates/vanilla/node_modules/vite/README.md +0 -20
  238. package/templates/vanilla/node_modules/vite/bin/openChrome.applescript +0 -95
  239. package/templates/vanilla/node_modules/vite/bin/vite.js +0 -61
  240. package/templates/vanilla/node_modules/vite/client.d.ts +0 -281
  241. package/templates/vanilla/node_modules/vite/dist/client/client.mjs +0 -725
  242. package/templates/vanilla/node_modules/vite/dist/client/client.mjs.map +0 -1
  243. package/templates/vanilla/node_modules/vite/dist/client/env.mjs +0 -30
  244. package/templates/vanilla/node_modules/vite/dist/client/env.mjs.map +0 -1
  245. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-7ec6f216.js +0 -914
  246. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-827b23df.js +0 -66713
  247. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-c423598f.js +0 -561
  248. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-f0c7dae0.js +0 -7930
  249. package/templates/vanilla/node_modules/vite/dist/node/chunks/dep-f1e8587f.js +0 -7646
  250. package/templates/vanilla/node_modules/vite/dist/node/cli.js +0 -929
  251. package/templates/vanilla/node_modules/vite/dist/node/constants.js +0 -130
  252. package/templates/vanilla/node_modules/vite/dist/node/index.d.ts +0 -3548
  253. package/templates/vanilla/node_modules/vite/dist/node/index.js +0 -158
  254. package/templates/vanilla/node_modules/vite/dist/node-cjs/publicUtils.cjs +0 -4555
  255. package/templates/vanilla/node_modules/vite/index.cjs +0 -34
  256. package/templates/vanilla/node_modules/vite/package.json +0 -173
  257. package/templates/vanilla/node_modules/vite/types/customEvent.d.ts +0 -35
  258. package/templates/vanilla/node_modules/vite/types/hmrPayload.d.ts +0 -61
  259. package/templates/vanilla/node_modules/vite/types/hot.d.ts +0 -32
  260. package/templates/vanilla/node_modules/vite/types/importGlob.d.ts +0 -97
  261. package/templates/vanilla/node_modules/vite/types/importMeta.d.ts +0 -26
  262. package/templates/vanilla/node_modules/vite/types/metadata.d.ts +0 -10
  263. package/templates/vanilla/node_modules/vite/types/package.json +0 -4
  264. package/templates/vanilla/package-lock.json +0 -589
@@ -1,413 +0,0 @@
1
- /* -*- Mode: js; js-indent-level: 2; -*- */
2
- /*
3
- * Copyright 2011 Mozilla Foundation and contributors
4
- * Licensed under the New BSD license. See LICENSE or:
5
- * http://opensource.org/licenses/BSD-3-Clause
6
- */
7
-
8
- var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;
9
- var util = require('./util');
10
-
11
- // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
12
- // operating systems these days (capturing the result).
13
- var REGEX_NEWLINE = /(\r?\n)/;
14
-
15
- // Newline character code for charCodeAt() comparisons
16
- var NEWLINE_CODE = 10;
17
-
18
- // Private symbol for identifying `SourceNode`s when multiple versions of
19
- // the source-map library are loaded. This MUST NOT CHANGE across
20
- // versions!
21
- var isSourceNode = "$$$isSourceNode$$$";
22
-
23
- /**
24
- * SourceNodes provide a way to abstract over interpolating/concatenating
25
- * snippets of generated JavaScript source code while maintaining the line and
26
- * column information associated with the original source code.
27
- *
28
- * @param aLine The original line number.
29
- * @param aColumn The original column number.
30
- * @param aSource The original source's filename.
31
- * @param aChunks Optional. An array of strings which are snippets of
32
- * generated JS, or other SourceNodes.
33
- * @param aName The original identifier.
34
- */
35
- function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
36
- this.children = [];
37
- this.sourceContents = {};
38
- this.line = aLine == null ? null : aLine;
39
- this.column = aColumn == null ? null : aColumn;
40
- this.source = aSource == null ? null : aSource;
41
- this.name = aName == null ? null : aName;
42
- this[isSourceNode] = true;
43
- if (aChunks != null) this.add(aChunks);
44
- }
45
-
46
- /**
47
- * Creates a SourceNode from generated code and a SourceMapConsumer.
48
- *
49
- * @param aGeneratedCode The generated code
50
- * @param aSourceMapConsumer The SourceMap for the generated code
51
- * @param aRelativePath Optional. The path that relative sources in the
52
- * SourceMapConsumer should be relative to.
53
- */
54
- SourceNode.fromStringWithSourceMap =
55
- function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
56
- // The SourceNode we want to fill with the generated code
57
- // and the SourceMap
58
- var node = new SourceNode();
59
-
60
- // All even indices of this array are one line of the generated code,
61
- // while all odd indices are the newlines between two adjacent lines
62
- // (since `REGEX_NEWLINE` captures its match).
63
- // Processed fragments are accessed by calling `shiftNextLine`.
64
- var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
65
- var remainingLinesIndex = 0;
66
- var shiftNextLine = function() {
67
- var lineContents = getNextLine();
68
- // The last line of a file might not have a newline.
69
- var newLine = getNextLine() || "";
70
- return lineContents + newLine;
71
-
72
- function getNextLine() {
73
- return remainingLinesIndex < remainingLines.length ?
74
- remainingLines[remainingLinesIndex++] : undefined;
75
- }
76
- };
77
-
78
- // We need to remember the position of "remainingLines"
79
- var lastGeneratedLine = 1, lastGeneratedColumn = 0;
80
-
81
- // The generate SourceNodes we need a code range.
82
- // To extract it current and last mapping is used.
83
- // Here we store the last mapping.
84
- var lastMapping = null;
85
-
86
- aSourceMapConsumer.eachMapping(function (mapping) {
87
- if (lastMapping !== null) {
88
- // We add the code from "lastMapping" to "mapping":
89
- // First check if there is a new line in between.
90
- if (lastGeneratedLine < mapping.generatedLine) {
91
- // Associate first line with "lastMapping"
92
- addMappingWithCode(lastMapping, shiftNextLine());
93
- lastGeneratedLine++;
94
- lastGeneratedColumn = 0;
95
- // The remaining code is added without mapping
96
- } else {
97
- // There is no new line in between.
98
- // Associate the code between "lastGeneratedColumn" and
99
- // "mapping.generatedColumn" with "lastMapping"
100
- var nextLine = remainingLines[remainingLinesIndex] || '';
101
- var code = nextLine.substr(0, mapping.generatedColumn -
102
- lastGeneratedColumn);
103
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
104
- lastGeneratedColumn);
105
- lastGeneratedColumn = mapping.generatedColumn;
106
- addMappingWithCode(lastMapping, code);
107
- // No more remaining code, continue
108
- lastMapping = mapping;
109
- return;
110
- }
111
- }
112
- // We add the generated code until the first mapping
113
- // to the SourceNode without any mapping.
114
- // Each line is added as separate string.
115
- while (lastGeneratedLine < mapping.generatedLine) {
116
- node.add(shiftNextLine());
117
- lastGeneratedLine++;
118
- }
119
- if (lastGeneratedColumn < mapping.generatedColumn) {
120
- var nextLine = remainingLines[remainingLinesIndex] || '';
121
- node.add(nextLine.substr(0, mapping.generatedColumn));
122
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
123
- lastGeneratedColumn = mapping.generatedColumn;
124
- }
125
- lastMapping = mapping;
126
- }, this);
127
- // We have processed all mappings.
128
- if (remainingLinesIndex < remainingLines.length) {
129
- if (lastMapping) {
130
- // Associate the remaining code in the current line with "lastMapping"
131
- addMappingWithCode(lastMapping, shiftNextLine());
132
- }
133
- // and add the remaining lines without any mapping
134
- node.add(remainingLines.splice(remainingLinesIndex).join(""));
135
- }
136
-
137
- // Copy sourcesContent into SourceNode
138
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
139
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
140
- if (content != null) {
141
- if (aRelativePath != null) {
142
- sourceFile = util.join(aRelativePath, sourceFile);
143
- }
144
- node.setSourceContent(sourceFile, content);
145
- }
146
- });
147
-
148
- return node;
149
-
150
- function addMappingWithCode(mapping, code) {
151
- if (mapping === null || mapping.source === undefined) {
152
- node.add(code);
153
- } else {
154
- var source = aRelativePath
155
- ? util.join(aRelativePath, mapping.source)
156
- : mapping.source;
157
- node.add(new SourceNode(mapping.originalLine,
158
- mapping.originalColumn,
159
- source,
160
- code,
161
- mapping.name));
162
- }
163
- }
164
- };
165
-
166
- /**
167
- * Add a chunk of generated JS to this source node.
168
- *
169
- * @param aChunk A string snippet of generated JS code, another instance of
170
- * SourceNode, or an array where each member is one of those things.
171
- */
172
- SourceNode.prototype.add = function SourceNode_add(aChunk) {
173
- if (Array.isArray(aChunk)) {
174
- aChunk.forEach(function (chunk) {
175
- this.add(chunk);
176
- }, this);
177
- }
178
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
179
- if (aChunk) {
180
- this.children.push(aChunk);
181
- }
182
- }
183
- else {
184
- throw new TypeError(
185
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
186
- );
187
- }
188
- return this;
189
- };
190
-
191
- /**
192
- * Add a chunk of generated JS to the beginning of this source node.
193
- *
194
- * @param aChunk A string snippet of generated JS code, another instance of
195
- * SourceNode, or an array where each member is one of those things.
196
- */
197
- SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
198
- if (Array.isArray(aChunk)) {
199
- for (var i = aChunk.length-1; i >= 0; i--) {
200
- this.prepend(aChunk[i]);
201
- }
202
- }
203
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
204
- this.children.unshift(aChunk);
205
- }
206
- else {
207
- throw new TypeError(
208
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
209
- );
210
- }
211
- return this;
212
- };
213
-
214
- /**
215
- * Walk over the tree of JS snippets in this node and its children. The
216
- * walking function is called once for each snippet of JS and is passed that
217
- * snippet and the its original associated source's line/column location.
218
- *
219
- * @param aFn The traversal function.
220
- */
221
- SourceNode.prototype.walk = function SourceNode_walk(aFn) {
222
- var chunk;
223
- for (var i = 0, len = this.children.length; i < len; i++) {
224
- chunk = this.children[i];
225
- if (chunk[isSourceNode]) {
226
- chunk.walk(aFn);
227
- }
228
- else {
229
- if (chunk !== '') {
230
- aFn(chunk, { source: this.source,
231
- line: this.line,
232
- column: this.column,
233
- name: this.name });
234
- }
235
- }
236
- }
237
- };
238
-
239
- /**
240
- * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
241
- * each of `this.children`.
242
- *
243
- * @param aSep The separator.
244
- */
245
- SourceNode.prototype.join = function SourceNode_join(aSep) {
246
- var newChildren;
247
- var i;
248
- var len = this.children.length;
249
- if (len > 0) {
250
- newChildren = [];
251
- for (i = 0; i < len-1; i++) {
252
- newChildren.push(this.children[i]);
253
- newChildren.push(aSep);
254
- }
255
- newChildren.push(this.children[i]);
256
- this.children = newChildren;
257
- }
258
- return this;
259
- };
260
-
261
- /**
262
- * Call String.prototype.replace on the very right-most source snippet. Useful
263
- * for trimming whitespace from the end of a source node, etc.
264
- *
265
- * @param aPattern The pattern to replace.
266
- * @param aReplacement The thing to replace the pattern with.
267
- */
268
- SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
269
- var lastChild = this.children[this.children.length - 1];
270
- if (lastChild[isSourceNode]) {
271
- lastChild.replaceRight(aPattern, aReplacement);
272
- }
273
- else if (typeof lastChild === 'string') {
274
- this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
275
- }
276
- else {
277
- this.children.push(''.replace(aPattern, aReplacement));
278
- }
279
- return this;
280
- };
281
-
282
- /**
283
- * Set the source content for a source file. This will be added to the SourceMapGenerator
284
- * in the sourcesContent field.
285
- *
286
- * @param aSourceFile The filename of the source file
287
- * @param aSourceContent The content of the source file
288
- */
289
- SourceNode.prototype.setSourceContent =
290
- function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
291
- this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
292
- };
293
-
294
- /**
295
- * Walk over the tree of SourceNodes. The walking function is called for each
296
- * source file content and is passed the filename and source content.
297
- *
298
- * @param aFn The traversal function.
299
- */
300
- SourceNode.prototype.walkSourceContents =
301
- function SourceNode_walkSourceContents(aFn) {
302
- for (var i = 0, len = this.children.length; i < len; i++) {
303
- if (this.children[i][isSourceNode]) {
304
- this.children[i].walkSourceContents(aFn);
305
- }
306
- }
307
-
308
- var sources = Object.keys(this.sourceContents);
309
- for (var i = 0, len = sources.length; i < len; i++) {
310
- aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
311
- }
312
- };
313
-
314
- /**
315
- * Return the string representation of this source node. Walks over the tree
316
- * and concatenates all the various snippets together to one string.
317
- */
318
- SourceNode.prototype.toString = function SourceNode_toString() {
319
- var str = "";
320
- this.walk(function (chunk) {
321
- str += chunk;
322
- });
323
- return str;
324
- };
325
-
326
- /**
327
- * Returns the string representation of this source node along with a source
328
- * map.
329
- */
330
- SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
331
- var generated = {
332
- code: "",
333
- line: 1,
334
- column: 0
335
- };
336
- var map = new SourceMapGenerator(aArgs);
337
- var sourceMappingActive = false;
338
- var lastOriginalSource = null;
339
- var lastOriginalLine = null;
340
- var lastOriginalColumn = null;
341
- var lastOriginalName = null;
342
- this.walk(function (chunk, original) {
343
- generated.code += chunk;
344
- if (original.source !== null
345
- && original.line !== null
346
- && original.column !== null) {
347
- if(lastOriginalSource !== original.source
348
- || lastOriginalLine !== original.line
349
- || lastOriginalColumn !== original.column
350
- || lastOriginalName !== original.name) {
351
- map.addMapping({
352
- source: original.source,
353
- original: {
354
- line: original.line,
355
- column: original.column
356
- },
357
- generated: {
358
- line: generated.line,
359
- column: generated.column
360
- },
361
- name: original.name
362
- });
363
- }
364
- lastOriginalSource = original.source;
365
- lastOriginalLine = original.line;
366
- lastOriginalColumn = original.column;
367
- lastOriginalName = original.name;
368
- sourceMappingActive = true;
369
- } else if (sourceMappingActive) {
370
- map.addMapping({
371
- generated: {
372
- line: generated.line,
373
- column: generated.column
374
- }
375
- });
376
- lastOriginalSource = null;
377
- sourceMappingActive = false;
378
- }
379
- for (var idx = 0, length = chunk.length; idx < length; idx++) {
380
- if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
381
- generated.line++;
382
- generated.column = 0;
383
- // Mappings end at eol
384
- if (idx + 1 === length) {
385
- lastOriginalSource = null;
386
- sourceMappingActive = false;
387
- } else if (sourceMappingActive) {
388
- map.addMapping({
389
- source: original.source,
390
- original: {
391
- line: original.line,
392
- column: original.column
393
- },
394
- generated: {
395
- line: generated.line,
396
- column: generated.column
397
- },
398
- name: original.name
399
- });
400
- }
401
- } else {
402
- generated.column++;
403
- }
404
- }
405
- });
406
- this.walkSourceContents(function (sourceFile, sourceContent) {
407
- map.setSourceContent(sourceFile, sourceContent);
408
- });
409
-
410
- return { code: generated.code, map: map };
411
- };
412
-
413
- exports.SourceNode = SourceNode;