git0 0.2.10 → 0.2.11

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 (239) hide show
  1. package/TypeScript-React-Starter/LICENSE +21 -0
  2. package/TypeScript-React-Starter/README-CRA.md +1281 -0
  3. package/TypeScript-React-Starter/README.md +810 -0
  4. package/TypeScript-React-Starter/package.json +28 -0
  5. package/TypeScript-React-Starter/public/favicon.ico +0 -0
  6. package/TypeScript-React-Starter/public/index.html +31 -0
  7. package/TypeScript-React-Starter/src/App.css +24 -0
  8. package/TypeScript-React-Starter/src/App.test.tsx +8 -0
  9. package/TypeScript-React-Starter/src/App.tsx +23 -0
  10. package/TypeScript-React-Starter/src/actions/index.tsx +24 -0
  11. package/TypeScript-React-Starter/src/components/Hello.css +13 -0
  12. package/TypeScript-React-Starter/src/components/Hello.test.tsx +30 -0
  13. package/TypeScript-React-Starter/src/components/Hello.tsx +35 -0
  14. package/TypeScript-React-Starter/src/constants/index.tsx +6 -0
  15. package/TypeScript-React-Starter/src/containers/Hello.tsx +20 -0
  16. package/TypeScript-React-Starter/src/index.css +5 -0
  17. package/TypeScript-React-Starter/src/index.tsx +22 -0
  18. package/TypeScript-React-Starter/src/logo.svg +7 -0
  19. package/TypeScript-React-Starter/src/reducers/index.tsx +15 -0
  20. package/TypeScript-React-Starter/src/types/index.tsx +5 -0
  21. package/TypeScript-React-Starter/tsconfig.json +29 -0
  22. package/TypeScript-React-Starter/tslint.json +11 -0
  23. package/TypeScript-React-Starter/yarn.lock +4785 -0
  24. package/package.json +2 -2
  25. package/src/github-api.js +1 -0
  26. package/svelte-nodegui/.all-contributorsrc +60 -0
  27. package/svelte-nodegui/.vscode/launch.json +29 -0
  28. package/svelte-nodegui/CHANGELOG.md +153 -0
  29. package/svelte-nodegui/LICENSE +22 -0
  30. package/svelte-nodegui/README.md +151 -0
  31. package/svelte-nodegui/demo/.editorconfig +15 -0
  32. package/svelte-nodegui/demo/.vscode/extensions.json +3 -0
  33. package/svelte-nodegui/demo/livereload.js +29 -0
  34. package/svelte-nodegui/demo/package-lock.json +3514 -0
  35. package/svelte-nodegui/demo/package.json +35 -0
  36. package/svelte-nodegui/demo/src/App.svelte +29 -0
  37. package/svelte-nodegui/demo/src/app.ts +31 -0
  38. package/svelte-nodegui/demo/tsconfig.json +40 -0
  39. package/svelte-nodegui/demo/webpack.config.js +110 -0
  40. package/svelte-nodegui/extras/assets/kitchen.png +0 -0
  41. package/svelte-nodegui/extras/assets/nodegui.png +0 -0
  42. package/svelte-nodegui/extras/assets/nodegui_white.png +0 -0
  43. package/svelte-nodegui/extras/assets/start_icon.png +0 -0
  44. package/svelte-nodegui/extras/legal/logo/thanks.md +13 -0
  45. package/svelte-nodegui/extras/legal/yode/LICENSE +21 -0
  46. package/svelte-nodegui/extras/legal/yoga/LICENSE +0 -0
  47. package/svelte-nodegui/extras/logo/nodegui-circle.png +0 -0
  48. package/svelte-nodegui/extras/logo/nodegui.png +0 -0
  49. package/svelte-nodegui/extras/logo/nodegui.svg +4 -0
  50. package/svelte-nodegui/nativescript-svelte-todo.gif +0 -0
  51. package/svelte-nodegui/package-lock.json +1749 -0
  52. package/svelte-nodegui/package.json +44 -0
  53. package/svelte-nodegui/repl-workers/bundler/commonjs.js +58 -0
  54. package/svelte-nodegui/repl-workers/bundler/index.js +353 -0
  55. package/svelte-nodegui/repl-workers/package-lock.json +484 -0
  56. package/svelte-nodegui/repl-workers/package.json +21 -0
  57. package/svelte-nodegui/repl-workers/rollup.config.js +21 -0
  58. package/svelte-nodegui/rollup.config.js +81 -0
  59. package/svelte-nodegui/scripts/create-pkg.js +42 -0
  60. package/svelte-nodegui/src/components/AsComponent.svelte +16 -0
  61. package/svelte-nodegui/src/components/SlotComponent.svelte +4 -0
  62. package/svelte-nodegui/src/components/Template.svelte +10 -0
  63. package/svelte-nodegui/src/components/Template.svelte.d.ts +6 -0
  64. package/svelte-nodegui/src/components/index.ts +2 -0
  65. package/svelte-nodegui/src/dom/index.ts +132 -0
  66. package/svelte-nodegui/src/dom/nativescript-vue-next/LICENCE +21 -0
  67. package/svelte-nodegui/src/dom/nativescript-vue-next/index.ts +19 -0
  68. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/index.ts +21 -0
  69. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/nodes.ts +890 -0
  70. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/registry.ts +262 -0
  71. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/runtimeHelpers.ts +20 -0
  72. package/svelte-nodegui/src/dom/react-nodegui/LICENSE +21 -0
  73. package/svelte-nodegui/src/dom/react-nodegui/src/components/AbstractComponents/RNAbstractButton.ts +67 -0
  74. package/svelte-nodegui/src/dom/react-nodegui/src/components/Action/RNAction.ts +146 -0
  75. package/svelte-nodegui/src/dom/react-nodegui/src/components/Action/index.ts +37 -0
  76. package/svelte-nodegui/src/dom/react-nodegui/src/components/AnimatedImage/RNAnimatedImage.ts +76 -0
  77. package/svelte-nodegui/src/dom/react-nodegui/src/components/AnimatedImage/index.ts +45 -0
  78. package/svelte-nodegui/src/dom/react-nodegui/src/components/BoxView/RNBoxView.ts +99 -0
  79. package/svelte-nodegui/src/dom/react-nodegui/src/components/BoxView/index.ts +49 -0
  80. package/svelte-nodegui/src/dom/react-nodegui/src/components/Button/RNButton.ts +71 -0
  81. package/svelte-nodegui/src/dom/react-nodegui/src/components/Button/index.ts +49 -0
  82. package/svelte-nodegui/src/dom/react-nodegui/src/components/CheckBox/RNCheckBox.ts +71 -0
  83. package/svelte-nodegui/src/dom/react-nodegui/src/components/CheckBox/index.ts +50 -0
  84. package/svelte-nodegui/src/dom/react-nodegui/src/components/ComboBox/RNComboBox.ts +118 -0
  85. package/svelte-nodegui/src/dom/react-nodegui/src/components/ComboBox/index.ts +50 -0
  86. package/svelte-nodegui/src/dom/react-nodegui/src/components/Dial/RNDial.ts +69 -0
  87. package/svelte-nodegui/src/dom/react-nodegui/src/components/Dial/index.ts +41 -0
  88. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridColumn/RNGridColumn.ts +95 -0
  89. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridColumn/index.ts +49 -0
  90. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridRow/RNGridRow.ts +141 -0
  91. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridRow/index.ts +47 -0
  92. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/RNGridView.ts +185 -0
  93. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/index.ts +51 -0
  94. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/utils.ts +59 -0
  95. package/svelte-nodegui/src/dom/react-nodegui/src/components/Image/RNImage.ts +135 -0
  96. package/svelte-nodegui/src/dom/react-nodegui/src/components/Image/index.ts +46 -0
  97. package/svelte-nodegui/src/dom/react-nodegui/src/components/LineEdit/RNLineEdit.ts +82 -0
  98. package/svelte-nodegui/src/dom/react-nodegui/src/components/LineEdit/index.ts +41 -0
  99. package/svelte-nodegui/src/dom/react-nodegui/src/components/Menu/RNMenu.ts +49 -0
  100. package/svelte-nodegui/src/dom/react-nodegui/src/components/Menu/index.ts +44 -0
  101. package/svelte-nodegui/src/dom/react-nodegui/src/components/MenuBar/RNMenuBar.ts +51 -0
  102. package/svelte-nodegui/src/dom/react-nodegui/src/components/MenuBar/index.ts +42 -0
  103. package/svelte-nodegui/src/dom/react-nodegui/src/components/PlainTextEdit/RNPlainTextEdit.ts +82 -0
  104. package/svelte-nodegui/src/dom/react-nodegui/src/components/PlainTextEdit/index.ts +44 -0
  105. package/svelte-nodegui/src/dom/react-nodegui/src/components/ProgressBar/RNProgressBar.ts +78 -0
  106. package/svelte-nodegui/src/dom/react-nodegui/src/components/ProgressBar/index.ts +43 -0
  107. package/svelte-nodegui/src/dom/react-nodegui/src/components/RadioButton/RNRadioButton.ts +50 -0
  108. package/svelte-nodegui/src/dom/react-nodegui/src/components/RadioButton/index.ts +43 -0
  109. package/svelte-nodegui/src/dom/react-nodegui/src/components/ScrollArea/RNScrollArea.ts +51 -0
  110. package/svelte-nodegui/src/dom/react-nodegui/src/components/ScrollArea/index.ts +44 -0
  111. package/svelte-nodegui/src/dom/react-nodegui/src/components/Slider/RNSlider.ts +97 -0
  112. package/svelte-nodegui/src/dom/react-nodegui/src/components/Slider/index.ts +46 -0
  113. package/svelte-nodegui/src/dom/react-nodegui/src/components/SpinBox/RNSpinBox.ts +88 -0
  114. package/svelte-nodegui/src/dom/react-nodegui/src/components/SpinBox/index.ts +49 -0
  115. package/svelte-nodegui/src/dom/react-nodegui/src/components/Svg/RNSvg.ts +67 -0
  116. package/svelte-nodegui/src/dom/react-nodegui/src/components/Svg/index.ts +43 -0
  117. package/svelte-nodegui/src/dom/react-nodegui/src/components/SystemTrayIcon/RNSystemTrayIcon.ts +141 -0
  118. package/svelte-nodegui/src/dom/react-nodegui/src/components/SystemTrayIcon/index.ts +43 -0
  119. package/svelte-nodegui/src/dom/react-nodegui/src/components/Tab/RNTab.ts +69 -0
  120. package/svelte-nodegui/src/dom/react-nodegui/src/components/Tab/index.ts +48 -0
  121. package/svelte-nodegui/src/dom/react-nodegui/src/components/TabItem/RNTabItem.ts +72 -0
  122. package/svelte-nodegui/src/dom/react-nodegui/src/components/TabItem/index.ts +40 -0
  123. package/svelte-nodegui/src/dom/react-nodegui/src/components/Text/RNText.ts +65 -0
  124. package/svelte-nodegui/src/dom/react-nodegui/src/components/Text/index.ts +49 -0
  125. package/svelte-nodegui/src/dom/react-nodegui/src/components/View/RNView.ts +306 -0
  126. package/svelte-nodegui/src/dom/react-nodegui/src/components/View/index.ts +44 -0
  127. package/svelte-nodegui/src/dom/react-nodegui/src/components/Window/RNWindow.ts +66 -0
  128. package/svelte-nodegui/src/dom/react-nodegui/src/components/Window/index.ts +50 -0
  129. package/svelte-nodegui/src/dom/react-nodegui/src/components/config.ts +95 -0
  130. package/svelte-nodegui/src/dom/react-nodegui/src/index.ts +52 -0
  131. package/svelte-nodegui/src/dom/react-nodegui/src/reconciler/index.ts +226 -0
  132. package/svelte-nodegui/src/dom/react-nodegui/src/utils/decoupleFromReact.ts +2 -0
  133. package/svelte-nodegui/src/dom/react-nodegui/src/utils/helpers.ts +14 -0
  134. package/svelte-nodegui/src/dom/shared/Logger.ts +16 -0
  135. package/svelte-nodegui/src/dom/shared/index.ts +1 -0
  136. package/svelte-nodegui/src/dom/svelte/HeadElement.ts +41 -0
  137. package/svelte-nodegui/src/dom/svelte/RNObject.ts +95 -0
  138. package/svelte-nodegui/src/dom/svelte/StyleElement.ts +92 -0
  139. package/svelte-nodegui/src/dom/svelte/SvelteNodeGUIDocument.ts +124 -0
  140. package/svelte-nodegui/src/dom/svelte/TemplateElement.ts +16 -0
  141. package/svelte-nodegui/src/dom/svelte-elements.ts +111 -0
  142. package/svelte-nodegui/src/index.ts +62 -0
  143. package/svelte-nodegui/src/svelte-nodegui.ts +159 -0
  144. package/svelte-nodegui/src/transitions/bezier.ts +112 -0
  145. package/svelte-nodegui/src/transitions/index.ts +227 -0
  146. package/svelte-nodegui/tsconfig.json +19 -0
  147. package/svelte-nodegui/website/README.md +33 -0
  148. package/svelte-nodegui/website/blog/2019-05-30-welcome.md +12 -0
  149. package/svelte-nodegui/website/docs/api/classes/renderer.md +49 -0
  150. package/svelte-nodegui/website/docs/api/classes/rnaction.md +608 -0
  151. package/svelte-nodegui/website/docs/api/classes/rngridcolumn.md +232 -0
  152. package/svelte-nodegui/website/docs/api/classes/rngridrow.md +247 -0
  153. package/svelte-nodegui/website/docs/api/classes/rnmenu.md +1337 -0
  154. package/svelte-nodegui/website/docs/api/classes/rnmenubar.md +1341 -0
  155. package/svelte-nodegui/website/docs/api/globals.md +832 -0
  156. package/svelte-nodegui/website/docs/api/index.md +0 -0
  157. package/svelte-nodegui/website/docs/api/interfaces/_react_proxy_.reactproxycomponent.md +38 -0
  158. package/svelte-nodegui/website/docs/api/interfaces/abstractbuttonprops.md +306 -0
  159. package/svelte-nodegui/website/docs/api/interfaces/actionprops.md +115 -0
  160. package/svelte-nodegui/website/docs/api/interfaces/animatedimageprops.md +297 -0
  161. package/svelte-nodegui/website/docs/api/interfaces/boxviewprops.md +245 -0
  162. package/svelte-nodegui/website/docs/api/interfaces/buttonprops.md +313 -0
  163. package/svelte-nodegui/website/docs/api/interfaces/checkboxprops.md +313 -0
  164. package/svelte-nodegui/website/docs/api/interfaces/comboboxprops.md +343 -0
  165. package/svelte-nodegui/website/docs/api/interfaces/datawithoffset.md +32 -0
  166. package/svelte-nodegui/website/docs/api/interfaces/dialprops.md +259 -0
  167. package/svelte-nodegui/website/docs/api/interfaces/gridviewprops.md +273 -0
  168. package/svelte-nodegui/website/docs/api/interfaces/imageprops.md +311 -0
  169. package/svelte-nodegui/website/docs/api/interfaces/lineeditprops.md +266 -0
  170. package/svelte-nodegui/website/docs/api/interfaces/menubarprops.md +245 -0
  171. package/svelte-nodegui/website/docs/api/interfaces/menuprops.md +245 -0
  172. package/svelte-nodegui/website/docs/api/interfaces/plaintexteditprops.md +259 -0
  173. package/svelte-nodegui/website/docs/api/interfaces/progressbarprops.md +266 -0
  174. package/svelte-nodegui/website/docs/api/interfaces/radiobuttonprops.md +282 -0
  175. package/svelte-nodegui/website/docs/api/interfaces/scrollareaprops.md +245 -0
  176. package/svelte-nodegui/website/docs/api/interfaces/sliderprops.md +329 -0
  177. package/svelte-nodegui/website/docs/api/interfaces/spinboxprops.md +273 -0
  178. package/svelte-nodegui/website/docs/api/interfaces/systemtrayiconprops.md +97 -0
  179. package/svelte-nodegui/website/docs/api/interfaces/tabitemprops.md +28 -0
  180. package/svelte-nodegui/website/docs/api/interfaces/tabprops.md +245 -0
  181. package/svelte-nodegui/website/docs/api/interfaces/textprops.md +277 -0
  182. package/svelte-nodegui/website/docs/api/interfaces/viewprops.md +261 -0
  183. package/svelte-nodegui/website/docs/api/interfaces/windowprops.md +245 -0
  184. package/svelte-nodegui/website/docs/api/modules/_react_proxy_.md +29 -0
  185. package/svelte-nodegui/website/docs/doc1.md +162 -0
  186. package/svelte-nodegui/website/docs/guides/custom-nodegui-native-plugin.md +6 -0
  187. package/svelte-nodegui/website/docs/guides/debugging-in-vscode.md +39 -0
  188. package/svelte-nodegui/website/docs/guides/debugging.md +59 -0
  189. package/svelte-nodegui/website/docs/guides/getting-started.md +141 -0
  190. package/svelte-nodegui/website/docs/guides/handle-events.md +188 -0
  191. package/svelte-nodegui/website/docs/guides/images.md +62 -0
  192. package/svelte-nodegui/website/docs/guides/layout.md +281 -0
  193. package/svelte-nodegui/website/docs/guides/networking.md +31 -0
  194. package/svelte-nodegui/website/docs/guides/packaging.md +32 -0
  195. package/svelte-nodegui/website/docs/guides/scroll-view.md +69 -0
  196. package/svelte-nodegui/website/docs/guides/styling.md +208 -0
  197. package/svelte-nodegui/website/docs/guides/tutorial.md +82 -0
  198. package/svelte-nodegui/website/docs/guides/using-native-node-modules.md +55 -0
  199. package/svelte-nodegui/website/docs/mdx.md +22 -0
  200. package/svelte-nodegui/website/docs/scripts/fixdocs.js +21 -0
  201. package/svelte-nodegui/website/docusaurus.config.js +131 -0
  202. package/svelte-nodegui/website/package.json +33 -0
  203. package/svelte-nodegui/website/sidebars.js +77 -0
  204. package/svelte-nodegui/website/src/components/CodeExample.js +42 -0
  205. package/svelte-nodegui/website/src/components/CreateNativeApps.js +46 -0
  206. package/svelte-nodegui/website/src/components/Features.js +62 -0
  207. package/svelte-nodegui/website/src/components/Hero.js +85 -0
  208. package/svelte-nodegui/website/src/components/SplitView.js +18 -0
  209. package/svelte-nodegui/website/src/components/Talks.js +68 -0
  210. package/svelte-nodegui/website/src/components/Try.js +83 -0
  211. package/svelte-nodegui/website/src/components/common.js +41 -0
  212. package/svelte-nodegui/website/src/components/styles.css +61 -0
  213. package/svelte-nodegui/website/src/css/custom.css +34 -0
  214. package/svelte-nodegui/website/src/pages/index.js +32 -0
  215. package/svelte-nodegui/website/src/pages/styles.module.css +35 -0
  216. package/svelte-nodegui/website/static/CNAME +1 -0
  217. package/svelte-nodegui/website/static/img/box-layout-1.png +0 -0
  218. package/svelte-nodegui/website/static/img/box-layout-2.png +0 -0
  219. package/svelte-nodegui/website/static/img/code-sample.png +0 -0
  220. package/svelte-nodegui/website/static/img/demo.png +0 -0
  221. package/svelte-nodegui/website/static/img/favicon.ico +0 -0
  222. package/svelte-nodegui/website/static/img/flex-layout-1.png +0 -0
  223. package/svelte-nodegui/website/static/img/grid-layout-1.png +0 -0
  224. package/svelte-nodegui/website/static/img/logo-circle.png +0 -0
  225. package/svelte-nodegui/website/static/img/logo.png +0 -0
  226. package/svelte-nodegui/website/static/img/logo.svg +5 -0
  227. package/svelte-nodegui/website/static/img/logox200.png +0 -0
  228. package/svelte-nodegui/website/static/img/undraw_building_websites.svg +1 -0
  229. package/svelte-nodegui/website/static/img/undraw_code_review.svg +1 -0
  230. package/svelte-nodegui/website/static/img/undraw_docusaurus_mountain.svg +170 -0
  231. package/svelte-nodegui/website/static/img/undraw_docusaurus_react.svg +169 -0
  232. package/svelte-nodegui/website/static/img/undraw_docusaurus_tree.svg +1 -0
  233. package/svelte-nodegui/website/static/img/undraw_react.svg +1 -0
  234. package/svelte-nodegui/website/static/img/undraw_website_setup.svg +1 -0
  235. package/svelte-nodegui/website/static/img/undraw_windows.svg +11 -0
  236. package/svelte-nodegui/website/website/sidebars.js +32 -0
  237. package/svelte-nodegui/website/yarn.lock +10533 -0
  238. package/bun.lock +0 -159
  239. package/docs-config/bun.lock +0 -6139
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@nodegui/svelte-nodegui",
3
+ "version": "0.1.2",
4
+ "description": "Svelte integration for NodeGUI",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/nodegui/svelte-nodegui.git"
8
+ },
9
+ "homepage": "https://github.com/nodegui/svelte-nodegui",
10
+ "keywords": [
11
+ "nodegui",
12
+ "svelte"
13
+ ],
14
+ "scripts": {
15
+ "clean": "npx rimraf ./dist/*",
16
+ "build": "npm run clean && rollup -c && node ./scripts/create-pkg.js",
17
+ "prepare": "npm run build",
18
+ "watch": "rollup -cw",
19
+ "deploy": "npm run build && cd dist && npm publish --access=public"
20
+ },
21
+ "author": "Jamie Birch (https://twitter.com/LinguaBrowse)",
22
+ "contributors": [
23
+ "Jamie Birch (https://twitter.com/LinguaBrowse)",
24
+ "Saurav Sahu <mrsauravsahu@outlook.com> (https://mrsauravsahu.github.io)"
25
+ ],
26
+ "license": "MIT",
27
+ "peerDependencies": {
28
+ "@nodegui/nodegui": "^0.30.2",
29
+ "phin": "^3.5.1",
30
+ "svelte": "^3.24.1"
31
+ },
32
+ "devDependencies": {
33
+ "@nodegui/nodegui": "^0.30.2",
34
+ "glob": "^7.1.6",
35
+ "phin": "^3.5.1",
36
+ "rimraf": "^2.7.1",
37
+ "rollup": "^2.43.0",
38
+ "rollup-plugin-node-resolve": "^5.2.0",
39
+ "rollup-plugin-svelte": "^6.1.1",
40
+ "rollup-plugin-typescript2": "^0.25.3",
41
+ "svelte": "^3.35.0",
42
+ "typescript": "^4.2.3"
43
+ }
44
+ }
@@ -0,0 +1,58 @@
1
+ import * as acorn from 'acorn';
2
+ import { walk } from 'estree-walker';
3
+
4
+ const require = `function require(id) {
5
+ if (id in __repl_lookup) return __repl_lookup[id];
6
+ throw new Error(\`Cannot require modules dynamically (\${id})\`);
7
+ }`;
8
+
9
+ export default {
10
+ name: 'commonjs',
11
+
12
+ transform: (code, id) => {
13
+
14
+ if (!/\b(require|module|exports)\b/.test(code)) return;
15
+ console.log('transforming commonjs ', id)
16
+ try {
17
+ const ast = acorn.parse(code, {
18
+ ecmaVersion: 2015,
19
+ sourceType: 'module'
20
+ });
21
+
22
+ const requires = [];
23
+
24
+ walk(ast, {
25
+ enter: node => {
26
+ if (node.type === 'CallExpression' && node.callee.name === 'require') {
27
+ if (node.arguments.length !== 1) return;
28
+ const arg = node.arguments[0];
29
+ if (arg.type !== 'Literal' || typeof arg.value !== 'string') return;
30
+
31
+ requires.push(arg.value);
32
+ }
33
+ }
34
+ });
35
+
36
+ const imports = requires.map((id, i) => `import __repl_${i} from '${id}';`).join('\n');
37
+ const lookup = `const __repl_lookup = { ${requires.map((id, i) => `'${id}': __repl_${i}`).join(', ')} };`;
38
+
39
+ const transformed = [
40
+ imports,
41
+ lookup,
42
+ require,
43
+ `const exports = {}; const module = { exports };`,
44
+ code,
45
+ `export default module.exports;`
46
+ ].join('\n\n');
47
+
48
+
49
+ return {
50
+ code: transformed,
51
+ map: null
52
+ };
53
+ } catch (err) {
54
+ console.log("Error during commonjs transform", err)
55
+ return null;
56
+ }
57
+ }
58
+ };
@@ -0,0 +1,353 @@
1
+ import * as rollup from 'rollup/dist/es/rollup.browser.js';
2
+ import commonjs from './commonjs.js';
3
+ import svelteNativePreprocessor from 'svelte-native-preprocessor'
4
+
5
+ self.window = self; // egregious hack to get magic-string to work in a worker
6
+
7
+
8
+ let fulfil;
9
+ let ready = new Promise(f => fulfil = f);
10
+
11
+ let svelteUrl = 'https://unpkg.com/svelte@latest'
12
+ let packagesUrl = 'https://unpkg.com'
13
+ let current_id;
14
+ var version = 'latest';
15
+
16
+ self.addEventListener('message', async event => {
17
+ switch (event.data.type) {
18
+ case 'init':
19
+ version = event.data.version;
20
+ svelteUrl = version === 'local' ?
21
+ '/repl/local?file=' :
22
+ `https://unpkg.com/svelte@${version}`;
23
+
24
+ importScripts(
25
+ `${svelteUrl}/compiler.js`
26
+ );
27
+
28
+ fulfil();
29
+ break;
30
+
31
+ case 'bundle':
32
+ const { components, uid } = event.data;
33
+
34
+ if (components.length === 0) return;
35
+
36
+ current_id = uid;
37
+
38
+ await ready;
39
+
40
+ if (current_id !== uid) return;
41
+
42
+ const result = await bundle({ uid, components });
43
+
44
+ if (result.error === ABORT) return;
45
+ if (result && uid === current_id) postMessage(result);
46
+
47
+ break;
48
+ }
49
+ });
50
+
51
+ let cached = {
52
+ dom: {},
53
+ ssr: {}
54
+ };
55
+
56
+ const ABORT = { aborted: true };
57
+
58
+ const fetch_cache = new Map();
59
+ function fetch_if_uncached(url) {
60
+ if (fetch_cache.has(url)) {
61
+ return fetch_cache.get(url);
62
+ }
63
+
64
+ const promise = fetch(url)
65
+ .then(async r => {
66
+ if (r.ok) {
67
+ return {
68
+ url: r.url,
69
+ body: await r.text()
70
+ };
71
+ }
72
+
73
+ throw new Error(await r.text());
74
+ })
75
+ .catch(err => {
76
+ fetch_cache.delete(url);
77
+ throw err;
78
+ });
79
+
80
+ fetch_cache.set(url, promise);
81
+ return promise;
82
+ }
83
+
84
+ async function follow_redirects(url) {
85
+ const res = await fetch_if_uncached(url);
86
+ return res.url;
87
+ }
88
+
89
+ function compare_to_version(major, minor, patch) {
90
+ const v = svelte.VERSION.match(/^(\d+)\.(\d+)\.(\d+)/);
91
+ return (v[1] - major) || (v[2] - minor) || (v[3] - patch);
92
+ }
93
+
94
+ function is_legacy_package_structure() {
95
+ return compare_to_version(3, 4, 4) <= 0;
96
+ }
97
+
98
+ function has_loopGuardTimeout_feature() {
99
+ return compare_to_version(3, 14, 0) >= 0;
100
+ }
101
+
102
+ async function get_bundle(uid, mode, cache, lookup) {
103
+ let bundle;
104
+
105
+ const imports = new Set();
106
+ const warnings = [];
107
+ const all_warnings = [];
108
+
109
+ const new_cache = {};
110
+
111
+ const repl_plugin = {
112
+ async resolveId(importee, importer) {
113
+ if (uid !== current_id) throw ABORT;
114
+
115
+ // importing from Svelte
116
+ if (importee === `svelte`) return `${svelteUrl}/index.mjs`;
117
+ if (importee.startsWith(`svelte/`)) {
118
+ return is_legacy_package_structure() ?
119
+ `${svelteUrl}/${importee.slice(7)}.mjs` :
120
+ `${svelteUrl}/${importee.slice(7)}/index.mjs`;
121
+ }
122
+
123
+ // importing one Svelte runtime module from another
124
+ if (importer && importer.startsWith(svelteUrl)) {
125
+ const resolved = new URL(importee, importer).href;
126
+ if (resolved.endsWith('.mjs')) return resolved;
127
+ return is_legacy_package_structure() ?
128
+ `${resolved}.mjs` :
129
+ `${resolved}/index.mjs`;
130
+ }
131
+
132
+ // importing from another file in REPL
133
+ if (importee in lookup) return importee;
134
+ if ((importee + '.js') in lookup) return importee + '.js';
135
+ if ((importee + '.json') in lookup) return importee + '.json';
136
+
137
+ // remove trailing slash
138
+ if (importee.endsWith('/')) importee = importee.slice(0, -1);
139
+
140
+ // importing from a URL
141
+ if (importee.startsWith('http:') || importee.startsWith('https:')) return importee;
142
+
143
+ if (importee == "svelte-native") {
144
+ return await follow_redirects(`${packagesUrl}/svelte-native/index.js`);
145
+ }
146
+
147
+ if (importer && importer.startsWith(`${packagesUrl}/svelte-native`) && importee.startsWith('.')) {
148
+ const url = new URL(importee, importer).href + "/index.js"
149
+ return await follow_redirects(url);
150
+ }
151
+
152
+ // importing from (probably) unpkg
153
+ if (importee.startsWith('.')) {
154
+ const url = new URL(importee, importer).href;
155
+ self.postMessage({ type: 'status', uid, message: `resolving ${url}` });
156
+
157
+ return await follow_redirects(url);
158
+ }
159
+
160
+ else {
161
+ // fetch from unpkg
162
+ self.postMessage({ type: 'status', uid, message: `resolving ${importee}` });
163
+
164
+ if (importer in lookup) {
165
+ const match = /^(@[^/]+\/)?[^/]+/.exec(importee);
166
+ if (match) imports.add(match[0]);
167
+ }
168
+
169
+ try {
170
+ const pkg_url = await follow_redirects(`${packagesUrl}/${importee}/package.json`);
171
+ const pkg_json = (await fetch_if_uncached(pkg_url)).body;
172
+ const pkg = JSON.parse(pkg_json);
173
+
174
+ if (pkg.svelte || pkg.module || pkg.main) {
175
+ const url = pkg_url.replace(/\/package\.json$/, '');
176
+ return new URL(pkg.svelte || pkg.module || pkg.main, `${url}/`).href;
177
+ }
178
+ } catch (err) {
179
+ // ignore
180
+ }
181
+
182
+ return await follow_redirects(`${packagesUrl}/${importee}`);
183
+ }
184
+ },
185
+ async load(resolved) {
186
+ if (uid !== current_id) throw ABORT;
187
+
188
+ if (resolved in lookup) return lookup[resolved].source;
189
+
190
+ if (!fetch_cache.has(resolved)) {
191
+ self.postMessage({ type: 'status', uid, message: `fetching ${resolved}` });
192
+ }
193
+
194
+ const res = await fetch_if_uncached(resolved);
195
+ return res.body;
196
+ },
197
+ async transform(code, id) {
198
+ if (uid !== current_id) throw ABORT;
199
+
200
+ self.postMessage({ type: 'status', uid, message: `bundling ${id}` });
201
+
202
+ if (!/\.svelte$/.test(id)) return null;
203
+
204
+ const name = id.split('/').pop().split('.')[0];
205
+
206
+ const result = cache[id] && cache[id].code === code
207
+ ? cache[id].result
208
+ : await svelte.preprocess(code, svelteNativePreprocessor())
209
+ .then(code =>
210
+ svelte.compile(code.toString(), {
211
+ generate: mode,
212
+ format: 'esm',
213
+ dev: true,
214
+ filename: name + '.svelte'
215
+ }));
216
+
217
+ new_cache[id] = { code, result };
218
+
219
+ (result.warnings || result.stats.warnings).forEach(warning => { // TODO remove stats post-launch
220
+ warnings.push({
221
+ message: warning.message,
222
+ filename: warning.filename,
223
+ start: warning.start,
224
+ end: warning.end
225
+ });
226
+ });
227
+
228
+ return result.js;
229
+ }
230
+ };
231
+
232
+ try {
233
+ bundle = await rollup.rollup({
234
+ input: './app.js',
235
+ external: id => {
236
+ if (id.startsWith('@nativescript/')) return true;
237
+ if (id.startsWith('tns-core-modules')) return true;
238
+ return false;
239
+ },
240
+ plugins: [
241
+ commonjs,
242
+ repl_plugin,
243
+ ],
244
+ inlineDynamicImports: true,
245
+ onwarn(warning) {
246
+ all_warnings.push({
247
+ message: warning.message
248
+ });
249
+ }
250
+ });
251
+
252
+ return { bundle, imports: Array.from(imports), cache: new_cache, error: null, warnings, all_warnings };
253
+ } catch (error) {
254
+ return { error, imports: null, bundle: null, cache: new_cache, warnings, all_warnings };
255
+ }
256
+ }
257
+
258
+ async function bundle({ uid, components }) {
259
+ console.clear();
260
+ console.log(`running Svelte compiler version %c${svelte.VERSION}`, 'font-weight: bold');
261
+
262
+ const lookup = {};
263
+ components.forEach(component => {
264
+ const path = `./${component.name}.${component.type}`;
265
+ lookup[path] = component;
266
+ });
267
+
268
+
269
+ // svelte native bootstrap
270
+ lookup['./app.js'] = {
271
+ name: 'app',
272
+ type: 'js',
273
+ source: `
274
+ import { navigate, svelteNative, initializeDom } from "svelte-native"
275
+ import App from "./App.svelte"
276
+
277
+ export function start() {
278
+ svelteNative(App, {});
279
+ }
280
+
281
+ export function reload() {
282
+ initializeDom();
283
+ navigate({ page: App, clearHistory: true });
284
+ }
285
+ `
286
+ }
287
+
288
+
289
+ let dom;
290
+ let error;
291
+
292
+ try {
293
+ dom = await get_bundle(uid, 'dom', cached.dom, lookup);
294
+ if (dom.error) {
295
+ throw dom.error;
296
+ }
297
+
298
+ cached.dom = dom.cache;
299
+
300
+ const dom_result = (await dom.bundle.generate({
301
+ format: 'cjs',
302
+ name: 'App',
303
+ // exports: 'named',
304
+ sourcemap: true,
305
+ })).output[0];
306
+
307
+ const ssr = false // TODO how can we do SSR?
308
+ ? await get_bundle(uid, 'ssr', cached.ssr, lookup)
309
+ : null;
310
+
311
+ if (ssr) {
312
+ cached.ssr = ssr.cache;
313
+ if (ssr.error) {
314
+ throw ssr.error;
315
+ }
316
+ }
317
+
318
+ const ssr_result = ssr
319
+ ? (await ssr.bundle.generate({
320
+ format: 'iife',
321
+ name: 'SvelteComponent',
322
+ // exports: 'named',
323
+ sourcemap: true
324
+ })).output[0]
325
+ : null;
326
+
327
+ return {
328
+ uid,
329
+ dom: dom_result,
330
+ ssr: ssr_result,
331
+ imports: dom.imports,
332
+ warnings: dom.warnings,
333
+ error: null
334
+ };
335
+ } catch (err) {
336
+ console.error(err);
337
+
338
+ const e = error || err;
339
+ delete e.toString;
340
+
341
+ return {
342
+ uid,
343
+ dom: null,
344
+ ssr: null,
345
+ imports: null,
346
+ warnings: dom.warnings,
347
+ error: Object.assign({}, e, {
348
+ message: e.message,
349
+ stack: e.stack
350
+ })
351
+ };
352
+ }
353
+ }