@qooxdoo/framework 7.9.1 → 8.0.0-beta.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 (597) hide show
  1. package/CHANGELOG.md +191 -33
  2. package/Manifest.json +3 -3
  3. package/bin/tools/utils.js +50 -13
  4. package/lib/compiler/compile-info.json +295 -225
  5. package/lib/compiler/index.js +56729 -44017
  6. package/lib/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-node.tmpl.js +1 -0
  7. package/lib/resource/qx/tool/compiler/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -0
  8. package/{source/resource/qx/tool → lib/resource/qx/tool/compiler}/cli/templates/template_vars.js +12 -9
  9. package/{source/resource/qx/tool → lib/resource/qx/tool/compiler}/schema/Manifest-1-0-0.json +2 -2
  10. package/lib/resource/qx/tool/{schema → compiler/schema}/Manifest-2-0-0.json +2 -2
  11. package/lib/resource/qx/tool/{schema → compiler/schema}/compile-1-0-0.json +15 -3
  12. package/{source/resource/qx/tool → lib/resource/qx/tool/compiler}/schema/qooxdoo-1-0-0.json +1 -1
  13. package/lib/resource/qx/tool/website/build/404.html +22 -22
  14. package/lib/resource/qx/tool/website/build/about.html +23 -23
  15. package/lib/resource/qx/tool/website/build/assets/common.js +30 -18
  16. package/lib/resource/qx/tool/website/build/assets/custom.css +290 -0
  17. package/lib/resource/qx/tool/website/build/assets/qxWeb.js +28 -0
  18. package/lib/resource/qx/tool/website/build/diagnostics/dependson.html +30 -30
  19. package/lib/resource/qx/tool/website/build/diagnostics/dependson.js +49 -40
  20. package/lib/resource/qx/tool/website/build/diagnostics/requiredby.html +20 -23
  21. package/lib/resource/qx/tool/website/build/diagnostics/requiredby.js +38 -31
  22. package/lib/resource/qx/tool/website/build/index.html +24 -24
  23. package/lib/resource/qx/tool/website/build/scripts/serve.js +63 -65
  24. package/lib/resource/qx/tool/website/partials/footer.html +8 -13
  25. package/lib/resource/qx/tool/website/partials/head.html +9 -7
  26. package/lib/resource/qx/tool/website/partials/header.html +3 -3
  27. package/lib/resource/qx/tool/website/src/assets/common.js +32 -0
  28. package/lib/resource/qx/tool/website/src/assets/custom.css +290 -0
  29. package/lib/resource/qx/tool/website/src/assets/qxWeb.js +28 -0
  30. package/lib/resource/qx/tool/website/src/diagnostics/dependson.js +49 -40
  31. package/lib/resource/qx/tool/website/src/diagnostics/requiredby.js +38 -31
  32. package/lib/resource/qx/tool/website/src/index.html +2 -2
  33. package/lib/resource/qx/tool/website/src/scripts/serve.js +63 -65
  34. package/package.json +20 -19
  35. package/source/boot/index.html +2 -2
  36. package/source/class/qx/Bootstrap.js +931 -705
  37. package/source/class/qx/Class.js +1476 -1451
  38. package/source/class/qx/Interface.js +40 -107
  39. package/source/class/qx/Mixin.js +58 -116
  40. package/source/class/qx/Promise.js +1 -0
  41. package/source/class/qx/Theme.js +1 -1
  42. package/source/class/qx/application/Routing.js +2 -0
  43. package/source/class/qx/bom/Font.js +3 -0
  44. package/source/class/qx/bom/client/Locale.js +5 -0
  45. package/source/class/qx/bom/request/Jsonp.js +5 -13
  46. package/source/class/qx/bom/request/Script.js +11 -35
  47. package/source/class/qx/bom/request/SimpleXhr.js +13 -41
  48. package/source/class/qx/bom/request/Xhr.js +19 -80
  49. package/source/class/qx/bom/storage/Memory.js +2 -0
  50. package/source/class/qx/bom/storage/UserData.js +2 -0
  51. package/source/class/qx/bom/storage/Web.js +2 -0
  52. package/source/class/qx/bom/webfonts/Validator.js +13 -5
  53. package/source/class/qx/core/Assert.js +14 -0
  54. package/source/class/qx/core/BaseInit.js +19 -20
  55. package/source/class/qx/core/Environment.js +23 -20
  56. package/source/class/qx/core/MEvent.js +1 -1
  57. package/source/class/qx/core/MObjectId.js +8 -6
  58. package/source/class/qx/core/MProperty.js +172 -136
  59. package/source/class/qx/core/Object.js +88 -102
  60. package/source/class/qx/core/check/AbstractCheck.js +111 -0
  61. package/source/class/qx/core/check/Any.js +63 -0
  62. package/source/class/qx/core/check/CheckFactory.js +151 -0
  63. package/source/class/qx/core/check/DynamicTypeCheck.js +90 -0
  64. package/source/class/qx/core/check/ICheck.js +75 -0
  65. package/source/class/qx/core/check/IsOneOfCheck.js +63 -0
  66. package/source/class/qx/core/check/JsDocCheck.js +71 -0
  67. package/source/class/qx/core/check/SimpleCheck.js +42 -0
  68. package/source/class/qx/core/check/standard/ArrayCheck.js +49 -0
  69. package/source/class/qx/core/check/standard/BooleanCheck.js +47 -0
  70. package/source/class/qx/core/check/standard/ClassCheck.js +33 -0
  71. package/source/class/qx/core/check/standard/ColorCheck.js +33 -0
  72. package/source/class/qx/core/check/standard/DateCheck.js +49 -0
  73. package/source/class/qx/core/check/standard/DecoratorCheck.js +33 -0
  74. package/source/class/qx/core/check/standard/DocumentCheck.js +40 -0
  75. package/source/class/qx/core/check/standard/ElementCheck.js +40 -0
  76. package/source/class/qx/core/check/standard/ErrorCheck.js +46 -0
  77. package/source/class/qx/core/check/standard/EventCheck.js +40 -0
  78. package/source/class/qx/core/check/standard/FontCheck.js +33 -0
  79. package/source/class/qx/core/check/standard/FunctionCheck.js +49 -0
  80. package/source/class/qx/core/check/standard/IntegerCheck.js +54 -0
  81. package/source/class/qx/core/check/standard/InterfaceCheck.js +33 -0
  82. package/source/class/qx/core/check/standard/MapCheck.js +33 -0
  83. package/source/class/qx/core/check/standard/MixinCheck.js +33 -0
  84. package/source/class/qx/core/check/standard/NodeCheck.js +40 -0
  85. package/source/class/qx/core/check/standard/NumberCheck.js +48 -0
  86. package/source/class/qx/core/check/standard/ObjectCheck.js +33 -0
  87. package/source/class/qx/core/check/standard/PositiveIntegerCheck.js +45 -0
  88. package/source/class/qx/core/check/standard/PositiveNumberCheck.js +45 -0
  89. package/source/class/qx/core/check/standard/PromiseCheck.js +33 -0
  90. package/source/class/qx/core/check/standard/RegExpCheck.js +46 -0
  91. package/source/class/qx/core/check/standard/StringCheck.js +43 -0
  92. package/source/class/qx/core/check/standard/ThemeCheck.js +33 -0
  93. package/source/class/qx/core/check/standard/WindowCheck.js +40 -0
  94. package/source/class/qx/core/property/ExplicitPropertyStorage.js +87 -0
  95. package/source/class/qx/core/property/GroupProperty.js +262 -0
  96. package/source/class/qx/core/property/IProperty.js +46 -0
  97. package/source/class/qx/core/property/IPropertyStorage.js +83 -0
  98. package/source/class/qx/core/property/ImmutableArrayStorage.js +38 -0
  99. package/source/class/qx/core/property/ImmutableDataArrayStorage.js +38 -0
  100. package/source/class/qx/core/property/ImmutableObjectStorage.js +39 -0
  101. package/source/class/qx/core/property/Property.js +1481 -0
  102. package/source/class/qx/core/property/PropertyStorageFactory.js +22 -0
  103. package/source/class/qx/core/property/SimplePropertyStorage.js +105 -0
  104. package/source/class/qx/data/Array.js +102 -57
  105. package/source/class/qx/data/MBinding.js +4 -29
  106. package/source/class/qx/data/SingleValueBinding.js +596 -1495
  107. package/source/class/qx/data/binding/AbstractSegment.js +197 -0
  108. package/source/class/qx/data/binding/ArrayIndexSegment.js +148 -0
  109. package/source/class/qx/data/binding/IInputReceiver.js +14 -0
  110. package/source/class/qx/data/binding/PropNameSegment.js +150 -0
  111. package/source/class/qx/data/controller/CheckedList.js +1 -1
  112. package/source/class/qx/data/controller/Form.js +78 -8
  113. package/source/class/qx/data/controller/Tree.js +27 -117
  114. package/source/class/qx/data/marshal/Json.js +46 -149
  115. package/source/class/qx/data/store/Json.js +0 -2
  116. package/source/class/qx/dev/Debug.js +1 -1
  117. package/source/class/qx/dev/LeakDetector.js +144 -0
  118. package/source/class/qx/dev/unit/AsyncWrapper.js +1 -0
  119. package/source/class/qx/dev/unit/MMock.js +7 -2
  120. package/source/class/qx/dev/unit/Sinon.js +0 -4
  121. package/source/class/qx/dev/unit/TestClass.js +2 -2
  122. package/source/class/qx/dev/unit/TestFunction.js +1 -0
  123. package/source/class/qx/dev/unit/TestLoaderBasic.js +1 -0
  124. package/source/class/qx/dev/unit/TestRunner.js +106 -0
  125. package/source/class/qx/event/IEventDispatcher.js +8 -4
  126. package/source/class/qx/event/Manager.js +4 -0
  127. package/source/class/qx/event/Messaging.js +2 -0
  128. package/source/class/qx/event/Pool.js +7 -0
  129. package/source/class/qx/event/Registration.js +33 -55
  130. package/source/class/qx/event/Timer.js +2 -0
  131. package/source/class/qx/event/Utils.js +25 -8
  132. package/source/class/qx/event/dispatch/AbstractBubbling.js +98 -194
  133. package/source/class/qx/event/dispatch/Direct.js +18 -13
  134. package/source/class/qx/event/handler/Appear.js +20 -24
  135. package/source/class/qx/event/handler/Application.js +4 -0
  136. package/source/class/qx/event/handler/DragDrop.js +182 -385
  137. package/source/class/qx/event/handler/Element.js +3 -0
  138. package/source/class/qx/event/handler/Focus.js +36 -30
  139. package/source/class/qx/event/handler/Input.js +5 -0
  140. package/source/class/qx/event/handler/Keyboard.js +107 -165
  141. package/source/class/qx/event/handler/Pointer.js +39 -68
  142. package/source/class/qx/event/handler/PointerCore.js +7 -25
  143. package/source/class/qx/event/handler/Window.js +5 -0
  144. package/source/class/qx/event/type/Event.js +12 -0
  145. package/source/class/qx/event/type/KeySequence.js +3 -0
  146. package/source/class/qx/event/type/Native.js +3 -0
  147. package/source/class/qx/html/Element.js +26 -91
  148. package/source/class/qx/io/jsonrpc/Client.js +1 -1
  149. package/source/class/qx/io/jsonrpc/protocol/Error.js +2 -2
  150. package/source/class/qx/io/jsonrpc/protocol/Parser.js +1 -0
  151. package/source/class/qx/io/jsonrpc/protocol/Result.js +2 -2
  152. package/source/class/qx/io/request/Xhr.js +3 -8
  153. package/source/class/qx/lang/normalize/Array.js +23 -1
  154. package/source/class/qx/locale/Date.js +520 -113
  155. package/source/class/qx/locale/LocalizedString.js +3 -0
  156. package/source/class/qx/locale/Manager.js +14 -3
  157. package/source/class/qx/locale/Number.js +60 -7
  158. package/source/class/qx/log/Logger.js +1 -1
  159. package/source/class/qx/module/Animation.js +2 -0
  160. package/source/class/qx/module/Attribute.js +2 -0
  161. package/source/class/qx/module/Css.js +7 -24
  162. package/source/class/qx/module/Event.js +2 -0
  163. package/source/class/qx/module/Manipulating.js +2 -0
  164. package/source/class/qx/module/Traversing.js +2 -0
  165. package/source/class/qx/test/Bootstrap.js +68 -53
  166. package/source/class/qx/test/Class.js +310 -2
  167. package/source/class/qx/test/Mixin.js +192 -42
  168. package/source/class/qx/test/Promise.js +129 -331
  169. package/source/class/qx/test/Theme.js +11 -0
  170. package/source/class/qx/test/bom/Font.js +2 -5
  171. package/source/class/qx/test/bom/Template.js +1 -1
  172. package/source/class/qx/test/compiler/ClassFile.js +14 -0
  173. package/source/class/qx/test/core/Assert.js +12 -0
  174. package/source/class/qx/test/core/Environment.js +17 -3
  175. package/source/class/qx/test/core/InheritanceDummy.js +10 -1
  176. package/source/class/qx/test/core/Object.js +51 -24
  177. package/source/class/qx/test/core/ObjectId.js +10 -1
  178. package/source/class/qx/test/core/Property.js +1338 -121
  179. package/source/class/qx/test/core/PropertyHelper.js +12 -0
  180. package/source/class/qx/test/core/Target.js +1 -0
  181. package/source/class/qx/test/core/Validation.js +2 -0
  182. package/source/class/qx/test/data/DataArray.js +218 -639
  183. package/source/class/qx/test/data/DataArrayWithChangeBubble.js +45 -215
  184. package/source/class/qx/test/data/MultiBinding.js +42 -0
  185. package/source/class/qx/test/data/async/__init__.js +4 -0
  186. package/source/class/qx/test/data/controller/Form.js +523 -14
  187. package/source/class/qx/test/data/controller/List.js +94 -426
  188. package/source/class/qx/test/data/controller/ListReverse.js +5 -20
  189. package/source/class/qx/test/data/controller/ListWithObjects.js +49 -225
  190. package/source/class/qx/test/data/controller/Object.js +54 -222
  191. package/source/class/qx/test/data/controller/Tree.js +195 -934
  192. package/source/class/qx/test/data/marshal/Json.js +74 -312
  193. package/source/class/qx/test/data/singlevalue/Array.js +55 -279
  194. package/source/class/qx/test/data/singlevalue/Async.js +173 -0
  195. package/source/class/qx/test/data/singlevalue/Deep.js +148 -327
  196. package/source/class/qx/test/data/singlevalue/Resolve.js +8 -28
  197. package/source/class/qx/test/data/singlevalue/Simple.js +124 -359
  198. package/source/class/qx/test/data/store/Json.js +86 -254
  199. package/source/class/qx/test/data/store/Jsonp.js +9 -29
  200. package/source/class/qx/test/data/store/Offline.js +2 -8
  201. package/source/class/qx/test/data/store/Rest.js +3 -3
  202. package/source/class/qx/test/dev/unit/Requirements.js +26 -10
  203. package/source/class/qx/test/event/GlobalError.js +2 -2
  204. package/source/class/qx/test/html/Iframe.js +1 -1
  205. package/source/class/qx/test/io/graphql/Client.js +2 -0
  206. package/source/class/qx/test/io/jsonrpc/Protocol.js +4 -2
  207. package/source/class/qx/test/io/request/MRequest.js +2 -8
  208. package/source/class/qx/test/io/request/Xhr.js +27 -117
  209. package/source/class/qx/test/lang/Function.js +6 -25
  210. package/source/class/qx/test/lang/Type.js +31 -13
  211. package/source/class/qx/test/locale/Date.js +173 -2
  212. package/source/class/qx/test/locale/Locale.js +23 -28
  213. package/source/class/qx/test/locale/Number.js +71 -0
  214. package/source/class/qx/test/log/Logger.js +7 -1
  215. package/source/class/qx/test/log/fixture/ClassA.js +2 -5
  216. package/source/class/qx/test/mobile/basic/Atom.js +3 -3
  217. package/source/class/qx/test/mobile/container/Scroll.js +4 -4
  218. package/source/class/qx/test/mobile/form/CheckBox.js +6 -12
  219. package/source/class/qx/test/performance/Property.js +5 -4
  220. package/source/class/qx/test/performance/widget/WidgetWithDecorator.js +2 -0
  221. package/source/class/qx/test/theme/Simple.js +34 -0
  222. package/source/class/qx/test/{MAppearance.js → theme/SimpleAppearance.js} +5 -4
  223. package/source/class/qx/test/{MDecoration.js → theme/SimpleDecoration.js} +6 -4
  224. package/source/class/qx/test/theme/manager/Color.js +23 -15
  225. package/source/class/qx/test/theme/manager/Decoration.js +23 -15
  226. package/source/class/qx/test/theme/manager/Font.js +23 -15
  227. package/source/class/qx/test/theme/manager/Icon.js +23 -15
  228. package/source/class/qx/test/theme/manager/Meta.js +33 -20
  229. package/source/class/qx/test/tool/__init__.js +3 -0
  230. package/source/class/qx/test/tool/cli/AbstractValue.js +274 -0
  231. package/source/class/qx/test/tool/cli/Argument.js +384 -0
  232. package/source/class/qx/test/tool/cli/Command.js +387 -0
  233. package/source/class/qx/test/tool/cli/Flag.js +413 -0
  234. package/source/class/qx/test/tool/cli/__init__.js +3 -0
  235. package/source/class/qx/test/ui/LayoutTestCase.js +1 -14
  236. package/source/class/qx/test/ui/basic/Label.js +106 -0
  237. package/source/class/qx/test/ui/core/Blocker.js +125 -3
  238. package/source/class/qx/test/ui/form/Form.js +106 -0
  239. package/source/class/qx/test/ui/form/FormManager.js +6 -5
  240. package/source/class/qx/test/ui/form/SplitButton.js +1 -1
  241. package/source/class/qx/test/ui/toolbar/OverflowHandling.js +13 -14
  242. package/source/class/qx/test/ui/toolbar/ToolBar.js +16 -16
  243. package/source/class/qx/test/ui/tree/TreeFolder.js +5 -7
  244. package/source/class/qx/test/ui/tree/virtual/AbstractTreeTest.js +2 -0
  245. package/source/class/qx/test/ui/tree/virtual/Tree.js +36 -0
  246. package/source/class/qx/test/util/DateFormat.js +1 -1
  247. package/source/class/qx/test/util/PropertyUtil.js +0 -36
  248. package/source/class/qx/theme/classic/Appearance.js +1 -1
  249. package/source/class/qx/theme/indigo/ColorDark.js +2 -0
  250. package/source/class/qx/theme/manager/Font.js +6 -1
  251. package/source/class/qx/theme/manager/Meta.js +2 -1
  252. package/source/class/qx/theme/simple/Appearance.js +31 -95
  253. package/source/class/qx/theme/simple/Decoration.js +0 -1
  254. package/source/class/qx/theme/tangible/Appearance.js +1 -1
  255. package/source/class/qx/tool/cli/AbstractCliApp.js +72 -0
  256. package/source/class/qx/tool/cli/AbstractValue.js +186 -0
  257. package/source/class/qx/tool/cli/Argument.js +155 -0
  258. package/source/class/qx/tool/cli/Command.js +518 -0
  259. package/source/class/qx/tool/cli/Flag.js +202 -0
  260. package/source/class/qx/tool/cli/Parser.js +39 -0
  261. package/source/class/qx/tool/cli/__init__.js +26 -1
  262. package/source/class/qx/tool/compiler/Analyser.js +41 -13
  263. package/source/class/qx/tool/compiler/ClassFile.js +37 -9
  264. package/source/class/qx/tool/compiler/Console.js +2 -0
  265. package/source/class/qx/tool/compiler/MetaExtraction.js +53 -33
  266. package/source/class/qx/tool/compiler/app/Library.js +1 -1
  267. package/source/class/qx/tool/compiler/app/WebFont.js +2 -0
  268. package/source/class/qx/tool/compiler/cli/Application.js +58 -0
  269. package/source/class/qx/tool/{cli/commands → compiler/cli}/Command.js +99 -45
  270. package/source/class/qx/tool/{cli → compiler/cli}/ConfigDb.js +7 -7
  271. package/source/class/qx/tool/compiler/cli/ConfigLoader.js +272 -0
  272. package/source/class/qx/tool/{cli → compiler/cli}/LibraryApplication.js +3 -3
  273. package/source/class/qx/tool/compiler/cli/RootCommand.js +63 -0
  274. package/source/class/qx/tool/{cli → compiler/cli}/Watch.js +49 -24
  275. package/source/class/qx/tool/compiler/cli/__init__.js +3 -0
  276. package/source/class/qx/tool/{cli → compiler/cli}/api/AbstractApi.js +2 -11
  277. package/source/class/qx/tool/{cli → compiler/cli}/api/CompilerApi.js +11 -10
  278. package/source/class/qx/tool/{cli → compiler/cli}/api/LibraryApi.js +13 -4
  279. package/source/class/qx/tool/{cli → compiler/cli}/api/Test.js +1 -1
  280. package/source/class/qx/tool/compiler/cli/commands/Add.js +49 -0
  281. package/source/class/qx/tool/{cli → compiler/cli}/commands/Clean.js +12 -25
  282. package/source/class/qx/tool/{cli → compiler/cli}/commands/Compile.js +524 -615
  283. package/source/class/qx/tool/{cli → compiler/cli}/commands/Config.js +22 -20
  284. package/source/class/qx/tool/{cli → compiler/cli}/commands/Create.js +77 -54
  285. package/source/class/qx/tool/{cli → compiler/cli}/commands/Deploy.js +45 -60
  286. package/source/class/qx/tool/{cli → compiler/cli}/commands/Es6ify.js +57 -41
  287. package/source/class/qx/tool/{cli → compiler/cli}/commands/ExportGlyphs.js +26 -7
  288. package/source/class/qx/tool/compiler/cli/commands/Lint.js +420 -0
  289. package/source/class/qx/tool/{cli → compiler/cli}/commands/Migrate.js +40 -20
  290. package/source/class/qx/tool/{cli → compiler/cli}/commands/Package.js +20 -32
  291. package/source/class/qx/tool/compiler/cli/commands/Pkg.js +36 -0
  292. package/source/class/qx/tool/compiler/cli/commands/Prettier.js +278 -0
  293. package/source/class/qx/tool/{cli → compiler/cli}/commands/Run.js +43 -39
  294. package/source/class/qx/tool/{cli → compiler/cli}/commands/Serve.js +63 -61
  295. package/source/class/qx/tool/{cli → compiler/cli}/commands/Test.js +49 -52
  296. package/source/class/qx/tool/{cli → compiler/cli}/commands/Typescript.js +51 -30
  297. package/source/class/qx/tool/{cli → compiler/cli}/commands/add/Class.js +54 -31
  298. package/source/class/qx/tool/{cli → compiler/cli}/commands/add/Script.js +56 -32
  299. package/source/class/qx/tool/{cli → compiler/cli}/commands/config/Delete.js +19 -13
  300. package/source/class/qx/tool/{cli → compiler/cli}/commands/config/Get.js +19 -13
  301. package/source/class/qx/tool/{cli → compiler/cli}/commands/config/List.js +20 -20
  302. package/source/class/qx/tool/{cli → compiler/cli}/commands/config/Set.js +28 -20
  303. package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Install.js +140 -75
  304. package/source/class/qx/tool/{cli → compiler/cli}/commands/package/List.js +119 -80
  305. package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Publish.js +194 -178
  306. package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Remove.js +18 -21
  307. package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Update.js +90 -69
  308. package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Upgrade.js +67 -54
  309. package/source/class/qx/tool/compiler/makers/AbstractAppMaker.js +2 -1
  310. package/source/class/qx/tool/compiler/resources/Manager.js +2 -0
  311. package/source/class/qx/tool/compiler/resources/ScssConverter.js +1 -1
  312. package/source/class/qx/tool/compiler/resources/ScssFile.js +1 -1
  313. package/source/class/qx/tool/compiler/targets/Target.js +5 -10
  314. package/source/class/qx/tool/compiler/targets/TypeScriptWriter.js +6 -2
  315. package/source/class/qx/tool/compiler/targets/meta/ApplicationMeta.js +2 -4
  316. package/source/class/qx/tool/compiler/targets/meta/BootJs.js +2 -0
  317. package/source/class/qx/tool/compiler/targets/meta/PackageJavascript.js +2 -0
  318. package/source/class/qx/tool/config/Abstract.js +5 -5
  319. package/source/class/qx/tool/config/Lockfile.js +1 -1
  320. package/source/class/qx/tool/migration/BaseMigration.js +9 -7
  321. package/source/class/qx/tool/migration/M6_0_0.js +3 -3
  322. package/source/class/qx/tool/migration/M8_0_0.js +958 -0
  323. package/source/class/qx/tool/utils/Debounce.js +0 -1
  324. package/source/class/qx/tool/utils/Http.js +109 -21
  325. package/source/class/qx/tool/utils/LogManager.js +7 -0
  326. package/source/class/qx/tool/utils/Promisify.js +12 -1
  327. package/source/class/qx/tool/utils/QooxdooVersions.js +193 -0
  328. package/source/class/qx/tool/utils/Utils.js +8 -5
  329. package/source/class/qx/tool/utils/Website.js +9 -222
  330. package/source/class/qx/tool/utils/Zip.js +47 -0
  331. package/source/class/qx/tool/utils/files/Utils.js +3 -11
  332. package/source/class/qx/tool/utils/json/Tokenizer.js +5 -0
  333. package/source/class/qx/ui/basic/Atom.js +8 -8
  334. package/source/class/qx/ui/core/Blocker.js +17 -4
  335. package/source/class/qx/ui/core/DragDropCursor.js +2 -1
  336. package/source/class/qx/ui/core/EventHandler.js +13 -21
  337. package/source/class/qx/ui/core/LayoutItem.js +8 -31
  338. package/source/class/qx/ui/core/MExecutable.js +21 -43
  339. package/source/class/qx/ui/core/MNativeOverflow.js +4 -2
  340. package/source/class/qx/ui/core/Widget.js +50 -165
  341. package/source/class/qx/ui/core/scroll/IScrollBar.js +9 -3
  342. package/source/class/qx/ui/core/scroll/ScrollBar.js +7 -1
  343. package/source/class/qx/ui/core/scroll/ScrollPane.js +12 -4
  344. package/source/class/qx/ui/embed/Html.js +6 -2
  345. package/source/class/qx/ui/form/AbstractField.js +4 -12
  346. package/source/class/qx/ui/form/Button.js +6 -4
  347. package/source/class/qx/ui/form/CheckedSelectBox.js +8 -8
  348. package/source/class/qx/ui/form/FileSelectorButton.js +1 -1
  349. package/source/class/qx/ui/form/Form.js +3 -0
  350. package/source/class/qx/ui/form/IListItem.js +3 -1
  351. package/source/class/qx/ui/form/IRadioItem.js +3 -1
  352. package/source/class/qx/ui/form/MForm.js +3 -1
  353. package/source/class/qx/ui/form/Slider.js +6 -2
  354. package/source/class/qx/ui/form/SplitButton.js +5 -5
  355. package/source/class/qx/ui/form/TextField.js +1 -2
  356. package/source/class/qx/ui/form/validation/Manager.js +6 -2
  357. package/source/class/qx/ui/menubar/Button.js +1 -1
  358. package/source/class/qx/ui/mobile/basic/Atom.js +5 -5
  359. package/source/class/qx/ui/mobile/dialog/Menu.js +9 -31
  360. package/source/class/qx/ui/mobile/dialog/Popup.js +13 -1
  361. package/source/class/qx/ui/table/pane/FocusIndicator.js +5 -2
  362. package/source/class/qx/ui/table/pane/Scroller.js +11 -28
  363. package/source/class/qx/ui/table/selection/Model.js +1 -0
  364. package/source/class/qx/ui/toolbar/Button.js +1 -1
  365. package/source/class/qx/ui/toolbar/CheckBox.js +1 -1
  366. package/source/class/qx/ui/toolbar/FileSelectorButton.js +1 -2
  367. package/source/class/qx/ui/toolbar/Part.js +2 -2
  368. package/source/class/qx/ui/toolbar/PartContainer.js +2 -2
  369. package/source/class/qx/ui/toolbar/ToolBar.js +24 -49
  370. package/source/class/qx/ui/tree/VirtualTree.js +6 -4
  371. package/source/class/qx/ui/tree/core/AbstractItem.js +10 -17
  372. package/source/class/qx/ui/tree/core/IVirtualTree.js +4 -2
  373. package/source/class/qx/ui/tree/provider/IVirtualTreeProvider.js +20 -10
  374. package/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js +4 -1
  375. package/source/class/qx/ui/virtual/cell/Cell.js +20 -48
  376. package/source/class/qx/ui/virtual/cell/WidgetCell.js +2 -4
  377. package/source/class/qx/ui/virtual/core/Axis.js +4 -0
  378. package/source/class/qx/ui/virtual/core/ILayer.js +14 -10
  379. package/source/class/qx/ui/virtual/core/Scroller.js +4 -4
  380. package/source/class/qx/ui/virtual/layer/WidgetCell.js +4 -0
  381. package/source/class/qx/ui/virtual/selection/Abstract.js +3 -0
  382. package/source/class/qx/ui/virtual/selection/MModel.js +1 -1
  383. package/source/class/qx/ui/window/IDesktop.js +6 -2
  384. package/source/class/qx/ui/window/IWindowManager.js +10 -4
  385. package/source/class/qx/ui/window/MDesktop.js +2 -1
  386. package/source/class/qx/ui/window/Manager.js +1 -1
  387. package/source/class/qx/ui/window/Window.js +6 -4
  388. package/source/class/qx/util/OOUtil.js +8 -9
  389. package/source/class/qx/util/PropertyUtil.js +34 -154
  390. package/source/class/qx/util/ResponseParser.js +2 -0
  391. package/source/class/qx/util/Serializer.js +69 -114
  392. package/source/class/qx/util/format/DateFormat.js +3 -2
  393. package/source/global.d.ts +4 -0
  394. package/source/resource/qx/tool/bin/download-assets +0 -2
  395. package/source/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-node.tmpl.js +1 -0
  396. package/{lib/resource/qx/tool → source/resource/qx/tool/compiler}/cli/templates/template_vars.js +12 -9
  397. package/{lib/resource/qx/tool → source/resource/qx/tool/compiler}/schema/Manifest-1-0-0.json +2 -2
  398. package/source/resource/qx/tool/{schema → compiler/schema}/Manifest-2-0-0.json +2 -2
  399. package/source/resource/qx/tool/{schema → compiler/schema}/compile-1-0-0.json +15 -3
  400. package/{lib/resource/qx/tool → source/resource/qx/tool/compiler}/schema/qooxdoo-1-0-0.json +1 -1
  401. package/source/resource/qx/tool/website/build/404.html +22 -22
  402. package/source/resource/qx/tool/website/build/about.html +23 -23
  403. package/source/resource/qx/tool/website/build/assets/common.js +30 -18
  404. package/source/resource/qx/tool/website/build/assets/custom.css +290 -0
  405. package/source/resource/qx/tool/website/build/assets/qxWeb.js +28 -0
  406. package/source/resource/qx/tool/website/build/diagnostics/dependson.html +30 -30
  407. package/source/resource/qx/tool/website/build/diagnostics/dependson.js +49 -40
  408. package/source/resource/qx/tool/website/build/diagnostics/requiredby.html +20 -23
  409. package/source/resource/qx/tool/website/build/diagnostics/requiredby.js +38 -31
  410. package/source/resource/qx/tool/website/build/index.html +24 -24
  411. package/source/resource/qx/tool/website/build/scripts/serve.js +63 -65
  412. package/source/resource/qx/tool/website/partials/footer.html +8 -13
  413. package/source/resource/qx/tool/website/partials/head.html +9 -7
  414. package/source/resource/qx/tool/website/partials/header.html +3 -3
  415. package/source/resource/qx/tool/website/src/assets/common.js +32 -0
  416. package/source/resource/qx/tool/website/src/assets/custom.css +290 -0
  417. package/source/resource/qx/tool/website/src/assets/qxWeb.js +28 -0
  418. package/source/resource/qx/tool/website/src/diagnostics/dependson.js +49 -40
  419. package/source/resource/qx/tool/website/src/diagnostics/requiredby.js +38 -31
  420. package/source/resource/qx/tool/website/src/index.html +2 -2
  421. package/source/resource/qx/tool/website/src/scripts/serve.js +63 -65
  422. package/lib/resource/qx/tool/bin/build-devtools +0 -13
  423. package/lib/resource/qx/tool/bin/build-website +0 -15
  424. package/lib/resource/qx/tool/bin/download-assets +0 -23
  425. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +0 -1
  426. package/lib/resource/qx/tool/website/build/assets/bootstrap.css +0 -7
  427. package/lib/resource/qx/tool/website/build/assets/bootstrap.min.css +0 -7
  428. package/lib/resource/qx/tool/website/build/assets/bootstrap.min.css.map +0 -1
  429. package/lib/resource/qx/tool/website/build/assets/jquery.js +0 -5453
  430. package/lib/resource/qx/tool/website/build/qooxdoo.css +0 -21
  431. package/lib/resource/qx/tool/website/sass/qooxdoo.css +0 -3
  432. package/lib/resource/qx/tool/website/sass/qooxdoo.css.map +0 -1
  433. package/lib/resource/qx/tool/website/src/assets/bootstrap.css +0 -7
  434. package/lib/resource/qx/tool/website/src/assets/bootstrap.min.css +0 -7
  435. package/lib/resource/qx/tool/website/src/assets/bootstrap.min.css.map +0 -1
  436. package/lib/resource/qx/tool/website/src/assets/jquery.js +0 -5453
  437. package/source/class/qx/core/Property.js +0 -2100
  438. package/source/class/qx/tool/cli/Application.js +0 -47
  439. package/source/class/qx/tool/cli/Cli.js +0 -713
  440. package/source/class/qx/tool/cli/commands/Add.js +0 -46
  441. package/source/class/qx/tool/cli/commands/Lint.js +0 -255
  442. package/source/class/qx/tool/cli/commands/Pkg.js +0 -56
  443. package/source/class/qx/tool/cli/commands/package/Migrate.js +0 -37
  444. package/source/class/qx/tool/compiler/app/Cldr.js +0 -725
  445. package/source/resource/qx/tool/bin/build-devtools +0 -13
  446. package/source/resource/qx/tool/bin/build-website +0 -15
  447. package/source/resource/qx/tool/website/build/assets/bootstrap.css +0 -7
  448. package/source/resource/qx/tool/website/build/assets/bootstrap.min.css +0 -7
  449. package/source/resource/qx/tool/website/build/assets/bootstrap.min.css.map +0 -1
  450. package/source/resource/qx/tool/website/build/assets/jquery.js +0 -5453
  451. package/source/resource/qx/tool/website/build/qooxdoo.css +0 -21
  452. package/source/resource/qx/tool/website/sass/qooxdoo.scss +0 -31
  453. package/source/resource/qx/tool/website/src/assets/bootstrap.css +0 -7
  454. package/source/resource/qx/tool/website/src/assets/bootstrap.min.css +0 -7
  455. package/source/resource/qx/tool/website/src/assets/bootstrap.min.css.map +0 -1
  456. package/source/resource/qx/tool/website/src/assets/jquery.js +0 -5453
  457. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/TypeScriptWriter-base_declaration.d.ts +0 -0
  458. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/default.tmpl.js +0 -0
  459. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/header.tmpl.js +0 -0
  460. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/interface.tmpl.js +0 -0
  461. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/mixin.tmpl.js +0 -0
  462. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/singleton.tmpl.js +0 -0
  463. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-browser.tmpl.js +0 -0
  464. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-rhino.tmpl.js +0 -0
  465. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/.gitignore.tmpl +0 -0
  466. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/Manifest.tmpl.json +0 -0
  467. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/compile.tmpl.json +0 -0
  468. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/readme.tmpl.md +0 -0
  469. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/boot/index.tmpl.html +0 -0
  470. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/boot/nojs.tmpl.html +0 -0
  471. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/Application.tmpl.js +0 -0
  472. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/__init__.tmpl.js +0 -0
  473. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/test/DemoTest.tmpl.js +0 -0
  474. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Appearance.tmpl.js +0 -0
  475. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Color.tmpl.js +0 -0
  476. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Decoration.tmpl.js +0 -0
  477. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Font.tmpl.js +0 -0
  478. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Theme.tmpl.js +0 -0
  479. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/app.png +0 -0
  480. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/favicon.png +0 -0
  481. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/js_256x256.png +0 -0
  482. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/test.png +0 -0
  483. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/translation/readme.txt +0 -0
  484. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/.gitignore.tmpl +0 -0
  485. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/Manifest.tmpl.json +0 -0
  486. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/compile.tmpl.json +0 -0
  487. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/readme.tmpl.md +0 -0
  488. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/boot/index.tmpl.html +0 -0
  489. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/boot/nojs.tmpl.html +0 -0
  490. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/Application.tmpl.js +0 -0
  491. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/__init__.tmpl.js +0 -0
  492. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/Login.tmpl.js +0 -0
  493. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/Overview.tmpl.js +0 -0
  494. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/__init__.tmpl.js +0 -0
  495. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/app.png +0 -0
  496. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/css/.gitignore.tmpl +0 -0
  497. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/favicon.png +0 -0
  498. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/js_256x256.png +0 -0
  499. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/theme/custom/css/custom.css +0 -0
  500. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/translation/readme.txt +0 -0
  501. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/.gitignore.tmpl +0 -0
  502. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/Manifest.tmpl.json +0 -0
  503. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/compile.tmpl.json +0 -0
  504. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/readme.tmpl.md +0 -0
  505. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/Button.tmpl.js +0 -0
  506. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/__init__.tmpl.js +0 -0
  507. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/demo/Application.tmpl.js +0 -0
  508. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/resource/custom/test.png +0 -0
  509. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/test/DemoTest.tmpl.js +0 -0
  510. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Appearance.tmpl.js +0 -0
  511. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Color.tmpl.js +0 -0
  512. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Decoration.tmpl.js +0 -0
  513. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Font.tmpl.js +0 -0
  514. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Theme.tmpl.js +0 -0
  515. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/resource/custom/test.png +0 -0
  516. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/translation/readme.txt +0 -0
  517. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/.gitignore.tmpl +0 -0
  518. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/Manifest.tmpl.json +0 -0
  519. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/compile.tmpl.json +0 -0
  520. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/readme.tmpl.txt +0 -0
  521. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/Application.tmpl.js +0 -0
  522. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/__init__.tmpl.js +0 -0
  523. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/test/DemoTest.tmpl.js +0 -0
  524. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/resource/custom/.gitignore.tmpl +0 -0
  525. /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/translation/readme.txt +0 -0
  526. /package/lib/resource/qx/tool/{loadsass.js → compiler/loadsass.js} +0 -0
  527. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/TypeScriptWriter-base_declaration.d.ts +0 -0
  528. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/default.tmpl.js +0 -0
  529. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/header.tmpl.js +0 -0
  530. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/interface.tmpl.js +0 -0
  531. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/mixin.tmpl.js +0 -0
  532. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/singleton.tmpl.js +0 -0
  533. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-browser.tmpl.js +0 -0
  534. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-rhino.tmpl.js +0 -0
  535. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/.gitignore.tmpl +0 -0
  536. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/Manifest.tmpl.json +0 -0
  537. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/compile.tmpl.json +0 -0
  538. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/readme.tmpl.md +0 -0
  539. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/boot/index.tmpl.html +0 -0
  540. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/boot/nojs.tmpl.html +0 -0
  541. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/Application.tmpl.js +0 -0
  542. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/__init__.tmpl.js +0 -0
  543. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/test/DemoTest.tmpl.js +0 -0
  544. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Appearance.tmpl.js +0 -0
  545. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Color.tmpl.js +0 -0
  546. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Decoration.tmpl.js +0 -0
  547. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Font.tmpl.js +0 -0
  548. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Theme.tmpl.js +0 -0
  549. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/app.png +0 -0
  550. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/favicon.png +0 -0
  551. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/js_256x256.png +0 -0
  552. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/test.png +0 -0
  553. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/translation/readme.txt +0 -0
  554. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/.gitignore.tmpl +0 -0
  555. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/Manifest.tmpl.json +0 -0
  556. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/compile.tmpl.json +0 -0
  557. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/readme.tmpl.md +0 -0
  558. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/boot/index.tmpl.html +0 -0
  559. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/boot/nojs.tmpl.html +0 -0
  560. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/Application.tmpl.js +0 -0
  561. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/__init__.tmpl.js +0 -0
  562. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/Login.tmpl.js +0 -0
  563. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/Overview.tmpl.js +0 -0
  564. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/__init__.tmpl.js +0 -0
  565. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/app.png +0 -0
  566. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/css/.gitignore.tmpl +0 -0
  567. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/favicon.png +0 -0
  568. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/js_256x256.png +0 -0
  569. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/theme/custom/scss/_styles.scss +0 -0
  570. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/theme/custom/scss/custom.scss +0 -0
  571. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/translation/readme.txt +0 -0
  572. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/.gitignore.tmpl +0 -0
  573. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/Manifest.tmpl.json +0 -0
  574. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/compile.tmpl.json +0 -0
  575. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/readme.tmpl.md +0 -0
  576. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/Button.tmpl.js +0 -0
  577. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/__init__.tmpl.js +0 -0
  578. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/demo/Application.tmpl.js +0 -0
  579. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/resource/custom/test.png +0 -0
  580. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/test/DemoTest.tmpl.js +0 -0
  581. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Appearance.tmpl.js +0 -0
  582. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Color.tmpl.js +0 -0
  583. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Decoration.tmpl.js +0 -0
  584. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Font.tmpl.js +0 -0
  585. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Theme.tmpl.js +0 -0
  586. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/resource/custom/test.png +0 -0
  587. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/translation/readme.txt +0 -0
  588. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/.gitignore.tmpl +0 -0
  589. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/Manifest.tmpl.json +0 -0
  590. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/compile.tmpl.json +0 -0
  591. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/readme.tmpl.txt +0 -0
  592. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/Application.tmpl.js +0 -0
  593. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/__init__.tmpl.js +0 -0
  594. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/test/DemoTest.tmpl.js +0 -0
  595. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/resource/custom/.gitignore.tmpl +0 -0
  596. /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/translation/readme.txt +0 -0
  597. /package/source/resource/qx/tool/{loadsass.js → compiler/loadsass.js} +0 -0
@@ -13,12 +13,13 @@
13
13
 
14
14
  Authors:
15
15
  * John Spackman (john.spackman@zenesis.com, @johnspackman)
16
+ * Henner Kollmann (Henner.Kollmann@gmx.de, @hkollmann)
16
17
 
17
18
  ************************************************************************ */
18
19
 
19
- const process = require("process");
20
- const Gauge = require("gauge");
21
20
  const semver = require("semver");
21
+ const process = require("process");
22
+ const cliProgress = require("cli-progress");
22
23
  const path = require("upath");
23
24
  const consoleControl = require("console-control-strings");
24
25
  const fs = qx.tool.utils.Promisify.fs;
@@ -27,224 +28,287 @@ require("app-module-path").addPath(process.cwd() + "/node_modules");
27
28
 
28
29
  /**
29
30
  * Handles compilation of the project
30
- * @ignore(setImmediate)
31
31
  */
32
- qx.Class.define("qx.tool.cli.commands.Compile", {
33
- extend: qx.tool.cli.commands.Command,
32
+ qx.Class.define("qx.tool.compiler.cli.commands.Compile", {
33
+ extend: qx.tool.compiler.cli.Command,
34
34
 
35
35
  statics: {
36
- YARGS_BUILDER: {
37
- target: {
38
- alias: "t",
39
- describe:
40
- "Set the target type: source or build or class name. Default is first target in config file",
41
- requiresArg: true,
42
- type: "string"
43
- },
36
+ async createCliCommand(clazz = this) {
37
+ let cmd = await qx.tool.compiler.cli.Command.createCliCommand(clazz);
38
+ cmd.set({
39
+ name: "compile",
40
+ description: "compiles the current application, using compile.json"
41
+ });
44
42
 
45
- "output-path-prefix": {
46
- describe:
47
- "Sets a prefix for the output path of the target - used to compile a version into a non-standard directory",
48
- type: "string"
49
- },
43
+ cmd.addFlag(
44
+ new qx.tool.cli.Flag("download").set({
45
+ shortCode: "d",
46
+ description: "Whether to automatically download missing libraries",
47
+ type: "boolean",
48
+ value: true
49
+ })
50
+ );
50
51
 
51
- download: {
52
- alias: "d",
53
- describe: "Whether to automatically download missing libraries",
54
- type: "boolean",
55
- default: true
56
- },
52
+ cmd.addFlag(
53
+ new qx.tool.cli.Flag("update-po-files").set({
54
+ shortCode: "u",
55
+ description:
56
+ "enables detection of translations and writing them out into .po files",
57
+ type: "boolean",
58
+ value: false
59
+ })
60
+ );
57
61
 
58
- locale: {
59
- alias: "l",
60
- describe: "Compile for a given locale",
61
- nargs: 1,
62
- requiresArg: true,
63
- type: "string",
64
- array: true
65
- },
62
+ cmd.addFlag(
63
+ new qx.tool.cli.Flag("library-po").set({
64
+ description: "The policy for updating translations in libraries",
65
+ type: ["ignore", "untranslated", "all"],
66
+ value: "ignore"
67
+ })
68
+ );
66
69
 
67
- "update-po-files": {
68
- alias: "u",
69
- describe:
70
- "enables detection of translations and writing them out into .po files",
71
- type: "boolean",
72
- default: false
73
- },
70
+ cmd.addFlag(
71
+ new qx.tool.cli.Flag("write-all-translations").set({
72
+ description:
73
+ "enables output of all translations, not just those that are explicitly referenced",
74
+ type: "boolean"
75
+ })
76
+ );
74
77
 
75
- "library-po": {
76
- describe: "The policy for updating translations in libraries",
77
- type: ["ignore", "untranslated", "all"],
78
- default: "ignore"
79
- },
78
+ cmd.addFlag(
79
+ new qx.tool.cli.Flag("target").set({
80
+ shortCode: "t",
81
+ description:
82
+ "Set the target type: source or build or class name. Default is first target in config file",
83
+ required: true,
84
+ type: "string",
85
+ value: "source"
86
+ })
87
+ );
80
88
 
81
- "write-all-translations": {
82
- describe:
83
- "enables output of all translations, not just those that are explicitly referenced",
84
- type: "boolean"
85
- },
89
+ cmd.addFlag(
90
+ new qx.tool.cli.Flag("output-path-prefix").set({
91
+ description:
92
+ "Sets a prefix for the output path of the target - used to compile a version into a non-standard directory",
93
+ type: "string"
94
+ })
95
+ );
86
96
 
87
- "app-class": {
88
- describe: "sets the application class",
89
- nargs: 1,
90
- requiresArg: true,
91
- type: "string"
92
- },
97
+ cmd.addFlag(
98
+ new qx.tool.cli.Flag("locale").set({
99
+ shortCode: "l",
100
+ description: "Compile for a given locale",
101
+ array: true,
102
+ type: "string",
103
+ value: ["en"]
104
+ })
105
+ );
93
106
 
94
- "app-theme": {
95
- describe: "sets the theme class for the current application",
96
- nargs: 1,
97
- requiresArg: true,
98
- type: "string"
99
- },
107
+ cmd.addFlag(
108
+ new qx.tool.cli.Flag("app-class").set({
109
+ description: "sets the application class",
110
+ array: true,
111
+ type: "string"
112
+ })
113
+ );
100
114
 
101
- "app-name": {
102
- describe: "sets the name of the current application",
103
- nargs: 1,
104
- requiresArg: true,
105
- type: "string"
106
- },
115
+ cmd.addFlag(
116
+ new qx.tool.cli.Flag("app-theme").set({
117
+ description: "sets the theme class for the current application",
118
+ array: true,
119
+ type: "string"
120
+ })
121
+ );
107
122
 
108
- "app-group": {
109
- describe: "which application groups to compile (defaults to all)",
110
- nargs: 1,
111
- requiresArg: true,
112
- type: "string"
113
- },
123
+ cmd.addFlag(
124
+ new qx.tool.cli.Flag("app-name").set({
125
+ description: "sets the name of the current application",
126
+ array: true,
127
+ type: "string"
128
+ })
129
+ );
114
130
 
115
- "local-fonts": {
116
- describe: "whether to prefer local font files over CDN",
117
- type: "boolean"
118
- },
131
+ cmd.addFlag(
132
+ new qx.tool.cli.Flag("app-group").set({
133
+ description: "which application groups to compile (defaults to all)",
134
+ type: "string"
135
+ })
136
+ );
119
137
 
120
- watch: {
121
- describe: "enables watching for changes and continuous compilation",
122
- type: "boolean",
123
- alias: "w"
124
- },
138
+ cmd.addFlag(
139
+ new qx.tool.cli.Flag("watch").set({
140
+ description:
141
+ "enables watching for changes and continuous compilation",
142
+ type: "boolean",
143
+ shortCode: "w",
144
+ value: false
145
+ })
146
+ );
125
147
 
126
- "watch-debug": {
127
- describe: "enables debug messages for watching",
128
- type: "boolean"
129
- },
148
+ cmd.addFlag(
149
+ new qx.tool.cli.Flag("watch-debug").set({
150
+ description: "enables debug messages for watching",
151
+ type: "boolean",
152
+ value: false
153
+ })
154
+ );
155
+
156
+ cmd.addFlag(
157
+ new qx.tool.cli.Flag("machine-readable").set({
158
+ shortCode: "M",
159
+ description: "output compiler messages in machine-readable format",
160
+ type: "boolean",
161
+ value: false
162
+ })
163
+ );
130
164
 
131
- "machine-readable": {
132
- alias: "M",
133
- describe: "output compiler messages in machine-readable format",
134
- type: "boolean"
135
- },
165
+ cmd.addFlag(
166
+ new qx.tool.cli.Flag("minify").set({
167
+ shortCode: "m",
168
+ description: "disables minification (build targets only)",
169
+ type: ["off", "minify", "mangle", "beautify"],
170
+ value: "mangle"
171
+ })
172
+ );
136
173
 
137
- minify: {
138
- alias: "m",
139
- describe: "disables minification (build targets only)",
140
- choices: ["off", "minify", "mangle", "beautify"],
141
- default: "mangle"
142
- },
174
+ cmd.addFlag(
175
+ new qx.tool.cli.Flag("mangle-privates").set({
176
+ description: "Whether to mangle private variables",
177
+ type: "boolean"
178
+ })
179
+ );
143
180
 
144
- "mangle-privates": {
145
- describe: "Whether to mangle private variables",
146
- default: true,
147
- type: "boolean"
148
- },
181
+ cmd.addFlag(
182
+ new qx.tool.cli.Flag("save-source-in-map").set({
183
+ description:
184
+ "Saves the source code in the map file (build target only)",
185
+ type: "boolean"
186
+ })
187
+ );
149
188
 
150
- "save-source-in-map": {
151
- describe: "Saves the source code in the map file (build target only)",
152
- type: "boolean",
153
- default: false
154
- },
189
+ cmd.addFlag(
190
+ new qx.tool.cli.Flag("source-map-relative-paths").set({
191
+ description:
192
+ "If true, the source file will be saved in the map file if the target supports it. Can be overridden on a per application basis.",
193
+ type: "boolean"
194
+ })
195
+ );
155
196
 
156
- "source-map-relative-paths": {
157
- describe:
158
- "If true, the source file will be saved in the map file if the target supports it. Can be overridden on a per application basis.",
159
- type: "boolean",
160
- default: false
161
- },
197
+ cmd.addFlag(
198
+ new qx.tool.cli.Flag("save-unminified").set({
199
+ shortCode: "u",
200
+ description:
201
+ "Saves a copy of the unminified version of output files (build target only)",
202
+ type: "boolean"
203
+ })
204
+ );
162
205
 
163
- "save-unminified": {
164
- alias: "u",
165
- describe:
166
- "Saves a copy of the unminified version of output files (build target only)",
167
- type: "boolean",
168
- default: false
169
- },
206
+ cmd.addFlag(
207
+ new qx.tool.cli.Flag("inline-external-scripts").set({
208
+ description: "Inlines external Javascript",
209
+ type: "boolean"
210
+ })
211
+ );
170
212
 
171
- "inline-external-scripts": {
172
- describe: "Inlines external Javascript",
173
- type: "boolean"
174
- },
213
+ cmd.addFlag(
214
+ new qx.tool.cli.Flag("erase").set({
215
+ shortCode: "e",
216
+ description:
217
+ "Enabled automatic deletion of the output directory when compiler version or environment variables change",
218
+ type: "boolean",
219
+ value: true
220
+ })
221
+ );
175
222
 
176
- erase: {
177
- alias: "e",
178
- describe:
179
- "Enabled automatic deletion of the output directory when compiler version or environment variables change",
180
- type: "boolean",
181
- default: true
182
- },
223
+ cmd.addFlag(
224
+ new qx.tool.cli.Flag("feedback").set({
225
+ description: "Shows progress bar feedback",
226
+ type: "boolean",
227
+ shortCode: "f",
228
+ value: false
229
+ })
230
+ );
183
231
 
184
- feedback: {
185
- describe: "Shows gas-gauge feedback",
186
- type: "boolean",
187
- alias: "f"
188
- },
232
+ cmd.addFlag(
233
+ new qx.tool.cli.Flag("typescript").set({
234
+ shortCode: "T",
235
+ description: "Outputs typescript definitions in qooxdoo.d.ts",
236
+ type: "boolean",
237
+ value: false
238
+ })
239
+ );
189
240
 
190
- typescript: {
191
- alias: "T",
192
- describe: "Outputs typescript definitions in qooxdoo.d.ts",
193
- type: "boolean",
194
- default: null
195
- },
241
+ cmd.addFlag(
242
+ new qx.tool.cli.Flag("add-created-at").set({
243
+ description: "Adds code to populate object's $$createdAt",
244
+ type: "boolean",
245
+ value: false
246
+ })
247
+ );
196
248
 
197
- "add-created-at": {
198
- describe: "Adds code to populate object's $$createdAt",
199
- type: "boolean"
200
- },
249
+ cmd.addFlag(
250
+ new qx.tool.cli.Flag("clean").set({
251
+ shortCode: "D",
252
+ description: "Deletes the target dir before compile",
253
+ type: "boolean",
254
+ value: false
255
+ })
256
+ );
201
257
 
202
- "verbose-created-at": {
203
- describe: "Adds additional detail to $$createdAt",
204
- type: "boolean"
205
- },
258
+ cmd.addFlag(
259
+ new qx.tool.cli.Flag("warn-as-error").set({
260
+ shortCode: "w",
261
+ description: "Handle compiler warnings as error",
262
+ type: "boolean",
263
+ value: false
264
+ })
265
+ );
206
266
 
207
- clean: {
208
- alias: "D",
209
- describe: "Deletes the target dir before compile",
210
- type: "boolean"
211
- },
267
+ cmd.addFlag(
268
+ new qx.tool.cli.Flag("write-library-info").set({
269
+ shortCode: "I",
270
+ description:
271
+ "Write library information to the script, for reflection",
272
+ type: "boolean",
273
+ value: true
274
+ })
275
+ );
212
276
 
213
- "warn-as-error": {
214
- alias: "E",
215
- describe: "Handle compiler warnings as error",
216
- type: "boolean",
217
- default: false
218
- },
277
+ cmd.addFlag(
278
+ new qx.tool.cli.Flag("write-compile-info").set({
279
+ description:
280
+ "Write application summary information to the script, used mostly for unit tests",
281
+ type: "boolean",
282
+ value: false
283
+ })
284
+ );
219
285
 
220
- "write-library-info": {
221
- alias: "I",
222
- describe: "Write library information to the script, for reflection",
223
- type: "boolean",
224
- default: true
225
- },
286
+ cmd.addFlag(
287
+ new qx.tool.cli.Flag("bundling").set({
288
+ shortCode: "b",
289
+ description: "Whether bundling is enabled",
290
+ type: "boolean",
291
+ value: true
292
+ })
293
+ );
226
294
 
227
- "write-compile-info": {
228
- describe:
229
- "Write application summary information to the script, used mostly for unit tests",
230
- type: "boolean",
231
- default: false
232
- },
295
+ cmd.addFlag(
296
+ new qx.tool.cli.Flag("set").set({
297
+ description: "sets an environment value for the compiler",
298
+ type: "string",
299
+ array: true
300
+ })
301
+ );
233
302
 
234
- bundling: {
235
- alias: "b",
236
- describe: "Whether bundling is enabled",
237
- type: "boolean",
238
- default: true
239
- }
240
- },
303
+ cmd.addFlag(
304
+ new qx.tool.cli.Flag("set-env").set({
305
+ description: "sets an environment value for the application",
306
+ type: "string",
307
+ array: true
308
+ })
309
+ );
241
310
 
242
- getYargsCommand() {
243
- return {
244
- command: "compile",
245
- describe: "compiles the current application, using compile.json",
246
- builder: qx.tool.cli.commands.Compile.YARGS_BUILDER
247
- };
311
+ return cmd;
248
312
  }
249
313
  },
250
314
 
@@ -281,13 +345,8 @@ qx.Class.define("qx.tool.cli.commands.Compile", {
281
345
  *
282
346
  * Note that target.getAppMeta() will return null after this event has been fired
283
347
  */
284
- writtenApplications: "qx.event.type.Data",
285
348
 
286
- /**
287
- * Fired after writing of all meta data; data is an object containing:
288
- * maker {qx.tool.compiler.makers.Maker}
289
- */
290
- writtenMetaData: "qx.event.type.Data",
349
+ writtenApplications: "qx.event.type.Data",
291
350
 
292
351
  /**
293
352
  * Fired when a class is about to be compiled.
@@ -358,28 +417,36 @@ qx.Class.define("qx.tool.cli.commands.Compile", {
358
417
  minifiedApplication: "qx.event.type.Data"
359
418
  },
360
419
 
420
+ properties: {},
421
+
361
422
  members: {
362
- __gauge: null,
423
+ __progressBar: null,
363
424
  __makers: null,
364
425
  __libraries: null,
365
426
  __outputDirWasCreated: false,
366
-
367
- /** @type{String} the path to the root of the meta files by classname */
368
- __metaDir: null,
369
-
370
- /** @type{Boolean} whether the typescript output is enabled */
371
- __typescriptEnabled: false,
372
-
373
- /** @type{String} the name of the typescript file to generate */
374
- __typescriptFile: null,
427
+ /** @type {Boolean} Whether libraries have had their `.load()` method called yet */
428
+ __librariesNotified: false,
375
429
 
376
430
  /*
377
431
  * @Override
378
432
  */
379
433
  async process() {
380
- await super.process();
434
+ let configDb = await qx.tool.compiler.cli.ConfigDb.getInstance();
435
+ if (this.argv.set) {
436
+ this.argv.set.forEach(function (kv) {
437
+ var m = kv.match(/^([^=\s]+)(=(.+))?$/);
438
+ if (m) {
439
+ var key = m[1];
440
+ var value = m[3];
441
+ configDb.setOverride(key, value);
442
+ } else {
443
+ throw new qx.tool.utils.Utils.UserError(
444
+ `Failed to parse environment setting commandline option '--set ${kv}'`
445
+ );
446
+ }
447
+ });
448
+ }
381
449
 
382
- let configDb = await qx.tool.cli.ConfigDb.getInstance();
383
450
  if (this.argv["feedback"] === null) {
384
451
  this.argv["feedback"] = configDb.db("qx.default.feedback", true);
385
452
  }
@@ -393,7 +460,6 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
393
460
  if (this.argv["machine-readable"]) {
394
461
  qx.tool.compiler.Console.getInstance().setMachineReadable(true);
395
462
  } else {
396
- let configDb = await qx.tool.cli.ConfigDb.getInstance();
397
463
  let color = configDb.db("qx.default.color", null);
398
464
  if (color) {
399
465
  let colorOn = consoleControl.color(color.split(" "));
@@ -408,20 +474,15 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
408
474
  }
409
475
 
410
476
  if (this.argv["feedback"]) {
411
- var themes = require("gauge/themes");
412
- var ourTheme = themes.newTheme(
413
- themes({ hasUnicode: true, hasColor: true })
414
- );
415
-
416
477
  let colorOn = qx.tool.compiler.Console.getInstance().getColorOn();
417
- ourTheme.preProgressbar = colorOn + ourTheme.preProgressbar;
418
- ourTheme.preSubsection = colorOn + ourTheme.preSubsection;
419
- ourTheme.progressbarTheme.postComplete += colorOn;
420
- ourTheme.progressbarTheme.postRemaining += colorOn;
421
-
422
- this.__gauge = new Gauge();
423
- this.__gauge.setTheme(ourTheme);
424
- this.__gauge.show("Compiling", 0);
478
+
479
+ this.__progressBar = new cliProgress.SingleBar({
480
+ format: colorOn + 'Progress |{bar}| {percentage}% | {status}',
481
+ barCompleteChar: '\u2588',
482
+ barIncompleteChar: '\u2591',
483
+ hideCursor: true
484
+ });
485
+ this.__progressBar.start(100, 0, { status: 'Compiling' });
425
486
  const TYPES = {
426
487
  error: "ERROR",
427
488
  warning: "Warning"
@@ -430,60 +491,122 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
430
491
  qx.tool.compiler.Console.getInstance().setWriter((str, msgId) => {
431
492
  msgId = qx.tool.compiler.Console.MESSAGE_IDS[msgId];
432
493
  if (!msgId || msgId.type !== "message") {
433
- this.__gauge.hide();
494
+ this.__progressBar.stop();
434
495
  qx.tool.compiler.Console.log(
435
496
  colorOn + TYPES[(msgId || {}).type || "error"] + ": " + str
436
497
  );
437
-
438
- this.__gauge.show();
498
+ this.__progressBar.start(100, this.__progressBar.value || 0, {
499
+ status: this.__progressBar.payload?.status || 'Compiling'
500
+ });
439
501
  } else {
440
- this.__gauge.show(colorOn + str);
502
+ this.__progressBar.update(this.__progressBar.value || 0, { status: colorOn + str });
441
503
  }
442
504
  });
443
505
  }
444
506
  }
507
+ let parsedArgs = {
508
+ target: this.argv.target,
509
+ outputPath: null,
510
+ locales: null,
511
+ writeAllTranslations: this.argv.writeAllTranslations,
512
+ environment: {},
513
+ verbose: this.argv.verbose
514
+ };
515
+
516
+ if (this.argv.locale && this.argv.locale.length) {
517
+ parsedArgs.locales = this.argv.locale;
518
+ }
519
+
520
+ if (this.argv["set-env"]) {
521
+ this.argv["set-env"].forEach(function (kv) {
522
+ var m = kv.match(/^([^=\s]+)(=(.+))?$/);
523
+ var key = m[1];
524
+ var value = m[3];
525
+ parsedArgs.environment[key] = value;
526
+ });
527
+ }
528
+
529
+ let targetType = this.getCompilerApi().getCommand().getTargetType();
530
+ let config = this.getCompilerApi().getConfiguration();
531
+
532
+ if (!config.locales) {
533
+ config.locales = [];
534
+ }
535
+ if (typeof parsedArgs.writeAllTranslations == "boolean") {
536
+ config.writeAllTranslations = parsedArgs.writeAllTranslations;
537
+ }
538
+
539
+ if (!config.environment) {
540
+ config.environment = {};
541
+ }
542
+
543
+ // Set the environment variables coming from command line arguments
544
+ // in target's environment object. If that object doesn't exist create
545
+ // one and assign it to the target.
546
+ if (config.targets) {
547
+ const target = config.targets.find(
548
+ target => target.type === targetType
549
+ );
550
+
551
+ target.environment = target.environment || {};
552
+ qx.lang.Object.mergeWith(
553
+ target.environment,
554
+ parsedArgs.environment,
555
+ true
556
+ );
557
+ }
558
+
559
+ if (config.sass && config.sass.compiler !== undefined) {
560
+ qx.tool.compiler.resources.ScssConverter.USE_V6_COMPILER =
561
+ config.sass.compiler == "latest";
562
+ } else {
563
+ qx.tool.compiler.resources.ScssConverter.USE_V6_COMPILER = null;
564
+ }
565
+ if (config.sass && config.sass.copyOriginal) {
566
+ qx.tool.compiler.resources.ScssConverter.COPY_ORIGINAL_FILES = true;
567
+ }
445
568
 
446
- if (this.__gauge) {
569
+ if (this.__progressBar) {
447
570
  this.addListener("writingApplications", () =>
448
- this.__gauge.show("Writing Applications", 0)
571
+ this.__progressBar.update(0, { status: "Writing Applications" })
449
572
  );
450
573
 
451
574
  this.addListener("writtenApplications", () =>
452
- this.__gauge.show("Writing Applications", 1)
575
+ this.__progressBar.update(100, { status: "Writing Applications" })
453
576
  );
454
577
 
455
578
  this.addListener("writingApplication", evt =>
456
- this.__gauge.pulse(
457
- "Writing Application " +
579
+ this.__progressBar.increment({
580
+ status: "Writing Application " +
458
581
  evt.getData().appMeta.getApplication().getName()
459
- )
582
+ })
460
583
  );
461
584
 
462
585
  this.addListener("compilingClass", evt =>
463
- this.__gauge.pulse(
464
- "Compiling " + evt.getData().classFile.getClassName()
465
- )
586
+ this.__progressBar.increment({
587
+ status: "Compiling " + evt.getData().classFile.getClassName()
588
+ })
466
589
  );
467
590
 
468
591
  this.addListener("minifyingApplication", evt =>
469
- this.__gauge.pulse(
470
- "Minifying " +
592
+ this.__progressBar.increment({
593
+ status: "Minifying " +
471
594
  evt.getData().application.getName() +
472
595
  " " +
473
596
  evt.getData().filename
474
- )
597
+ })
475
598
  );
476
599
  } else {
477
600
  this.addListener("writingApplication", evt => {
478
601
  let appInfo = evt.getData();
479
602
  qx.tool.compiler.Console.print(
480
- "qx.tool.cli.compile.writingApplication",
603
+ "qx.tool.compiler.cli.compile.writingApplication",
481
604
  appInfo.appMeta.getApplication().getName()
482
605
  );
483
606
  });
484
607
  this.addListener("minifyingApplication", evt =>
485
608
  qx.tool.compiler.Console.print(
486
- "qx.tool.cli.compile.minifyingApplication",
609
+ "qx.tool.compiler.cli.compile.minifyingApplication",
487
610
  evt.getData().application.getName(),
488
611
  evt.getData().filename
489
612
  )
@@ -491,18 +614,18 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
491
614
  }
492
615
 
493
616
  this.addListener("making", evt => {
494
- if (this.__gauge) {
495
- this.__gauge.show("Compiling", 1);
617
+ if (this.__progressBar) {
618
+ this.__progressBar.update(100, { status: "Compiling" });
496
619
  } else {
497
- qx.tool.compiler.Console.print("qx.tool.cli.compile.makeBegins");
620
+ qx.tool.compiler.Console.print("qx.tool.compiler.cli.compile.makeBegins");
498
621
  }
499
622
  });
500
623
 
501
624
  this.addListener("made", evt => {
502
- if (this.__gauge) {
503
- this.__gauge.show("Compiling", 1);
625
+ if (this.__progressBar) {
626
+ this.__progressBar.update(100, { status: "Compiling" });
504
627
  } else {
505
- qx.tool.compiler.Console.print("qx.tool.cli.compile.makeEnds");
628
+ qx.tool.compiler.Console.print("qx.tool.compiler.cli.compile.makeEnds");
506
629
  }
507
630
  });
508
631
 
@@ -537,17 +660,17 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
537
660
  ) {
538
661
  qx.tool.compiler.Console.warn(
539
662
  " *******************************************************************************************\n" +
540
- " ** **\n" +
541
- " ** Your compilation will include temporary files that are only necessary during **\n" +
542
- " ** development; these files speed up the compilation, but take up space that you would **\n" +
543
- " ** probably not want to put on a production server. **\n" +
544
- " ** **\n" +
545
- " ** When you are ready to deploy, try running `qx deploy` to get a minimised version **\n" +
546
- " ** **\n" +
547
- " *******************************************************************************************"
663
+ " ** **\n" +
664
+ " ** Your compilation will include temporary files that are only necessary during **\n" +
665
+ " ** development; these files speed up the compilation, but take up space that you would **\n" +
666
+ " ** probably not want to put on a production server. **\n" +
667
+ " ** **\n" +
668
+ " ** When you are ready to deploy, try running `qx deploy` to get a minimised version **\n" +
669
+ " ** **\n" +
670
+ " *******************************************************************************************"
548
671
  );
549
672
  }
550
- process.exitCode = success ? 0 : 1;
673
+ return success ? 0 : 1;
551
674
  }
552
675
  },
553
676
 
@@ -557,16 +680,6 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
557
680
  * @return {Boolean} true if all makers succeeded
558
681
  */
559
682
  async _loadConfigAndStartMaking() {
560
- if (
561
- !this.getCompilerApi().compileJsonExists() &&
562
- !qx.tool.cli.Cli.getInstance().compileJsExists()
563
- ) {
564
- qx.tool.compiler.Console.error(
565
- "Cannot find either compile.json nor compile.js"
566
- );
567
-
568
- process.exit(1);
569
- }
570
683
  var config = this.getCompilerApi().getConfiguration();
571
684
  var makers = (this.__makers = await this.createMakersFromConfig(config));
572
685
  if (!makers || !makers.length) {
@@ -581,120 +694,115 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
581
694
  this.dispatchEvent(evt.clone());
582
695
  }
583
696
  };
697
+ let waiters = [];
698
+ for await (const maker of makers) {
699
+ var analyser = maker.getAnalyser();
700
+ let cfg = await qx.tool.compiler.cli.ConfigDb.getInstance();
701
+ analyser.setWritePoLineNumbers(
702
+ cfg.db("qx.translation.strictPoCompatibility", false)
703
+ );
584
704
 
585
- let isFirstWatcher = true;
705
+ if (!(await fs.existsAsync(maker.getOutputDir()))) {
706
+ this.__outputDirWasCreated = true;
707
+ }
708
+ if (this.argv["clean"]) {
709
+ await maker.eraseOutputDir();
710
+ await qx.tool.utils.files.Utils.safeUnlink(analyser.getDbFilename());
586
711
 
587
- await qx.Promise.all(
588
- makers.map(async maker => {
589
- var analyser = maker.getAnalyser();
590
- let cfg = await qx.tool.cli.ConfigDb.getInstance();
591
- analyser.setWritePoLineNumbers(
592
- cfg.db("qx.translation.strictPoCompatibility", false)
712
+ await qx.tool.utils.files.Utils.safeUnlink(
713
+ analyser.getResDbFilename()
593
714
  );
715
+ }
716
+ if (config.ignores) {
717
+ analyser.setIgnores(config.ignores);
718
+ }
594
719
 
595
- if (!(await fs.existsAsync(maker.getOutputDir()))) {
596
- this.__outputDirWasCreated = true;
597
- }
598
- if (this.argv["clean"]) {
599
- await maker.eraseOutputDir();
600
- await qx.tool.utils.files.Utils.safeUnlink(
601
- analyser.getDbFilename()
602
- );
720
+ var target = maker.getTarget();
721
+ analyser.addListener("compilingClass", e =>
722
+ this.dispatchEvent(e.clone())
723
+ );
603
724
 
604
- await qx.tool.utils.files.Utils.safeUnlink(
605
- analyser.getResDbFilename()
606
- );
607
- }
608
- if (config.ignores) {
609
- analyser.setIgnores(config.ignores);
610
- }
725
+ analyser.addListener("compiledClass", e =>
726
+ this.dispatchEvent(e.clone())
727
+ );
611
728
 
612
- var target = maker.getTarget();
613
- analyser.addListener("compilingClass", e =>
614
- this.dispatchEvent(e.clone())
615
- );
729
+ analyser.addListener("saveDatabase", e =>
730
+ this.dispatchEvent(e.clone())
731
+ );
616
732
 
617
- analyser.addListener("compiledClass", e =>
618
- this.dispatchEvent(e.clone())
619
- );
733
+ target.addListener("checkEnvironment", e =>
734
+ this.dispatchEvent(e.clone())
735
+ );
736
+
737
+ let appInfos = [];
738
+ target.addListener("writingApplication", async () => {
739
+ let appInfo = {
740
+ maker,
741
+ target,
742
+ appMeta: target.getAppMeta()
743
+ };
620
744
 
621
- analyser.addListener("saveDatabase", e =>
745
+ appInfos.push(appInfo);
746
+ await this.fireDataEventAsync("writingApplication", appInfo);
747
+ });
748
+ target.addListener("writtenApplication", async () => {
749
+ await this.fireDataEventAsync("writtenApplication", {
750
+ maker,
751
+ target,
752
+ appMeta: target.getAppMeta()
753
+ });
754
+ });
755
+ maker.addListener("writingApplications", collateDispatchEvent);
756
+ maker.addListener("writtenApplications", async () => {
757
+ await this.fireDataEventAsync("writtenApplications", appInfos);
758
+ });
759
+
760
+ if (target instanceof qx.tool.compiler.targets.BuildTarget) {
761
+ target.addListener("minifyingApplication", e =>
622
762
  this.dispatchEvent(e.clone())
623
763
  );
624
764
 
625
- target.addListener("checkEnvironment", e =>
765
+ target.addListener("minifiedApplication", e =>
626
766
  this.dispatchEvent(e.clone())
627
767
  );
768
+ }
628
769
 
629
- let appInfos = [];
630
- target.addListener("writingApplication", async () => {
631
- let appInfo = {
632
- maker,
633
- target,
634
- appMeta: target.getAppMeta()
635
- };
770
+ let stat = await qx.tool.utils.files.Utils.safeStat(
771
+ "source/index.html"
772
+ );
636
773
 
637
- appInfos.push(appInfo);
638
- await this.fireDataEventAsync("writingApplication", appInfo);
639
- });
640
- target.addListener("writtenApplication", async () => {
641
- await this.fireDataEventAsync("writtenApplication", {
642
- maker,
643
- target,
644
- appMeta: target.getAppMeta()
645
- });
774
+ if (stat) {
775
+ qx.tool.compiler.Console.print(
776
+ "qx.tool.compiler.cli.compile.legacyFiles",
777
+ "source/index.html"
778
+ );
779
+ }
780
+
781
+ // Setup event listeners for non-watch mode
782
+ if (!this.argv.watch) {
783
+ maker.addListener("making", () => {
784
+ countMaking++;
785
+ if (countMaking == 1) {
786
+ this.fireEvent("making");
787
+ }
646
788
  });
647
- maker.addListener("writingApplications", collateDispatchEvent);
648
- maker.addListener("writtenApplications", async () => {
649
- await this.fireDataEventAsync("writtenApplications", appInfos);
789
+ maker.addListener("made", () => {
790
+ countMaking--;
791
+ if (countMaking == 0) {
792
+ this.fireEvent("made");
793
+ }
650
794
  });
795
+ }
651
796
 
652
- if (target instanceof qx.tool.compiler.targets.BuildTarget) {
653
- target.addListener("minifyingApplication", e =>
654
- this.dispatchEvent(e.clone())
655
- );
656
-
657
- target.addListener("minifiedApplication", e =>
658
- this.dispatchEvent(e.clone())
659
- );
660
- }
661
-
662
- let stat =
663
- await qx.tool.utils.files.Utils.safeStat("source/index.html");
664
-
665
- if (stat) {
666
- qx.tool.compiler.Console.print(
667
- "qx.tool.cli.compile.legacyFiles",
668
- "source/index.html"
669
- );
670
- }
671
-
672
- // Simple one of make
673
- if (!this.argv.watch) {
674
- maker.addListener("making", () => {
675
- countMaking++;
676
- if (countMaking == 1) {
677
- this.fireEvent("making");
678
- }
679
- });
680
- maker.addListener("made", () => {
681
- countMaking--;
682
- if (countMaking == 0) {
683
- this.fireEvent("made");
684
- }
685
- });
686
-
687
- return await maker.make();
688
- }
797
+ // Always make first
798
+ await maker.make();
689
799
 
690
- // Continuous make
691
- let watch = new qx.tool.cli.Watch(maker);
800
+ // Watch mode setup
801
+ if (this.argv.watch) {
802
+ let watch = new qx.tool.compiler.cli.Watch(maker);
692
803
  config.applications.forEach(appConfig => {
693
804
  if (appConfig.runWhenWatching) {
694
- watch.setRunWhenWatching(
695
- appConfig.name,
696
- appConfig.runWhenWatching
697
- );
805
+ watch.setRunWhenWatching(appConfig.name, appConfig.runWhenWatching);
698
806
  }
699
807
  });
700
808
  if (this.argv["watch-debug"]) {
@@ -722,145 +830,17 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
722
830
  );
723
831
 
724
832
  watch.setConfigFilenames(arr);
725
-
726
- if (
727
- target instanceof qx.tool.compiler.targets.SourceTarget &&
728
- isFirstWatcher
729
- ) {
730
- isFirstWatcher = false;
731
- try {
732
- await this.__attachTypescriptWatcher(watch);
733
- } catch (ex) {
734
- qx.tool.compiler.Console.error(ex);
735
- }
736
- }
737
-
738
- return watch.start();
739
- })
740
- );
741
-
742
- if (!this.argv.watch) {
743
- try {
744
- await this.__attachTypescriptWatcher(null);
745
- } catch (ex) {
746
- qx.tool.compiler.Console.error(ex);
833
+ waiters.push(watch.start());
747
834
  }
748
835
  }
749
- },
750
-
751
- async __attachTypescriptWatcher(watch) {
752
- let classFiles = [];
753
-
754
- // Scans a directory recursively to find all .js files
755
- const scanImpl = async filename => {
756
- let basename = path.basename(filename);
757
- let stat = await fs.promises.stat(filename);
758
- if (stat.isFile() && basename.match(/\.js$/)) {
759
- classFiles.push(filename);
760
- } else if (
761
- stat.isDirectory() &&
762
- (basename == "." || basename[0] != ".")
763
- ) {
764
- let files = await fs.promises.readdir(filename);
765
- for (let i = 0; i < files.length; i++) {
766
- let subname = path.join(filename, files[i]);
767
- await scanImpl(subname);
768
- }
769
- }
770
- };
771
-
772
- // Do the initial scan
773
- qx.tool.compiler.Console.info(`Loading meta data ...`);
774
- let metaDb = new qx.tool.compiler.MetaDatabase().set({
775
- rootDir: this.__metaDir
776
- });
777
-
778
- await metaDb.load();
779
-
780
- // Scan all library directories
781
- metaDb.getDatabase().libraries = {};
782
- for (let lib of Object.values(this.__libraries)) {
783
- let dir = path.join(lib.getRootDir(), lib.getSourcePath());
784
- metaDb.getDatabase().libraries[lib.getNamespace()] = {
785
- sourceDir: dir
786
- };
787
-
788
- await scanImpl(dir);
789
- }
790
-
791
- for (let filename of classFiles) {
792
- await metaDb.addFile(filename, !!this.argv.clean);
793
- }
794
- await metaDb.reparseAll();
795
- await metaDb.save();
796
- await this.fireDataEventAsync("writtenMetaData", metaDb);
797
-
798
- // Do the inital write
799
- let tsWriter = null;
800
- if (this.__typescriptEnabled) {
801
- qx.tool.compiler.Console.info(`Generating typescript output ...`);
802
- tsWriter = new qx.tool.compiler.targets.TypeScriptWriter(metaDb);
803
- if (this.__typescriptFile) {
804
- tsWriter.setOutputTo(this.__typescriptFile);
805
- } else {
806
- tsWriter.setOutputTo(path.join(this.__metaDir, "..", "qooxdoo.d.ts"));
807
- }
808
- await tsWriter.process();
809
- }
810
-
811
- if (!watch) {
812
- return;
813
- }
814
-
815
- // Redo the files that change, as they change
816
- classFiles = {};
817
- let debounce = new qx.tool.utils.Debounce(async () => {
818
- let filesParsed = false;
819
- qx.tool.compiler.Console.info(`Loading meta data ...`);
820
- let addFilePromises = [];
821
- while (true) {
822
- let arr = Object.keys(classFiles);
823
- if (arr.length == 0) {
824
- break;
825
- }
826
- filesParsed = true;
827
- classFiles = {};
828
- arr.forEach(filename => {
829
- if (this.argv.verbose) {
830
- qx.tool.compiler.Console.info(
831
- `Processing meta for ${filename} ...`
832
- );
833
- }
834
- addFilePromises.push(metaDb.addFile(filename));
835
- });
836
- }
837
- if (filesParsed) {
838
- qx.tool.compiler.Console.info(`Generating typescript output ...`);
839
- await Promise.all(addFilePromises);
840
- await metaDb.reparseAll();
841
- await metaDb.save();
842
- if (this.__typescriptEnabled) {
843
- await tsWriter.process();
844
- }
845
- }
846
- });
847
-
848
- // Watch for changes
849
- watch.addListener("fileChanged", evt => {
850
- let data = evt.getData();
851
- if (data.fileType == "source") {
852
- let filename = data.library.getFilename(data.filename);
853
- classFiles[filename] = true;
854
- debounce.run();
855
- }
856
- });
836
+ return qx.Promise.all(waiters);
857
837
  },
858
838
 
859
839
  /**
860
840
  * Processes the configuration from a JSON data structure and creates a Maker
861
841
  *
862
842
  * @param data {Map}
863
- * @return {qx.tool.compiler.makers.Maker}
843
+ * @return {Maker}
864
844
  */
865
845
  async createMakersFromConfig(data) {
866
846
  const Console = qx.tool.compiler.Console.getInstance();
@@ -870,40 +850,29 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
870
850
  data.babel = data.babel || {};
871
851
  data.babel.options = data.babelOptions;
872
852
  qx.tool.compiler.Console.print(
873
- "qx.tool.cli.compile.deprecatedBabelOptions"
853
+ "qx.tool.compiler.cli.compile.deprecatedBabelOptions"
874
854
  );
875
855
  } else {
876
856
  qx.tool.compiler.Console.print(
877
- "qx.tool.cli.compile.deprecatedBabelOptionsConflicting"
857
+ "qx.tool.compiler.cli.compile.deprecatedBabelOptionsConflicting"
878
858
  );
879
859
  }
880
860
  delete data.babelOptions;
881
861
  }
882
862
 
883
- if (qx.lang.Type.isBoolean(data?.meta?.typescript)) {
884
- this.__typescriptEnabled = data.meta.typescript;
885
- } else if (qx.lang.Type.isString(data?.meta?.typescript)) {
886
- this.__typescriptEnabled = true;
887
- this.__typescriptFile = path.relative(
888
- process.cwd(),
889
- path.resolve(data?.meta?.typescript)
890
- );
891
- }
892
- if (qx.lang.Type.isBoolean(this.argv.typescript)) {
893
- this.__typescriptEnabled = this.argv.typescript;
894
- }
895
-
896
863
  var argvAppNames = null;
897
864
  if (t.argv["app-name"]) {
898
865
  argvAppNames = {};
899
- t.argv["app-name"]
866
+ let appNameStr = String(t.argv["app-name"]);
867
+ appNameStr
900
868
  .split(",")
901
869
  .forEach(name => (argvAppNames[name] = true));
902
870
  }
903
871
  var argvAppGroups = null;
904
872
  if (t.argv["app-group"]) {
905
873
  argvAppGroups = {};
906
- t.argv["app-group"]
874
+ let appGroupStr = String(t.argv["app-group"]);
875
+ appGroupStr
907
876
  .split(",")
908
877
  .forEach(name => (argvAppGroups[name] = true));
909
878
  }
@@ -929,7 +898,7 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
929
898
  ) {
930
899
  if (defaultTargetConfig) {
931
900
  qx.tool.compiler.Console.print(
932
- "qx.tool.cli.compile.multipleDefaultTargets"
901
+ "qx.tool.compiler.cli.compile.multipleDefaultTargets"
933
902
  );
934
903
  } else {
935
904
  defaultTargetConfig = targetConfig;
@@ -979,8 +948,7 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
979
948
  appTargetConfigs = [defaultTargetConfig];
980
949
  } else {
981
950
  throw new qx.tool.utils.Utils.UserError(
982
- `Cannot find any suitable targets for application #${index} (named ${
983
- appConfig.name || "unnamed"
951
+ `Cannot find any suitable targets for application #${index} (named ${appConfig.name || "unnamed"
984
952
  })`
985
953
  );
986
954
  }
@@ -1002,12 +970,13 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1002
970
  }
1003
971
 
1004
972
  let libraries = (this.__libraries = {});
1005
- let librariesArray = [];
1006
- for (let libPath of data.libraries) {
1007
- let library = await qx.tool.compiler.app.Library.createLibrary(libPath);
973
+ let libs = this.getCompilerApi().getLibraryApis();
974
+ for await (const lib of libs) {
975
+ var library = await qx.tool.compiler.app.Library.createLibrary(
976
+ lib.getRootDir()
977
+ );
1008
978
 
1009
979
  libraries[library.getNamespace()] = library;
1010
- librariesArray.push(library);
1011
980
  }
1012
981
 
1013
982
  // Search for Qooxdoo library if not already provided
@@ -1016,7 +985,6 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1016
985
  let qxPath = await qx.tool.config.Utils.getQxPath();
1017
986
  var library = await qx.tool.compiler.app.Library.createLibrary(qxPath);
1018
987
  libraries[library.getNamespace()] = library;
1019
- librariesArray.push(library);
1020
988
  qxLib = libraries["qx"];
1021
989
  }
1022
990
  if (this.argv.verbose) {
@@ -1051,7 +1019,7 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1051
1019
  let setDefault;
1052
1020
  if (appConfig.writeIndexHtmlToRoot !== undefined) {
1053
1021
  qx.tool.compiler.Console.print(
1054
- "qx.tool.cli.compile.deprecatedCompileSeeOther",
1022
+ "qx.tool.compiler.cli.compile.deprecatedCompileSeeOther",
1055
1023
  "application.writeIndexHtmlToRoot",
1056
1024
  "application.default"
1057
1025
  );
@@ -1087,18 +1055,10 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1087
1055
  let targetOutputPaths = {};
1088
1056
  let makers = [];
1089
1057
 
1090
- this.__metaDir = data.meta?.output;
1091
- if (!this.__metaDir) {
1092
- this.__metaDir = path.relative(
1093
- process.cwd(),
1094
- path.resolve(targetConfigs[0].outputPath, "../meta")
1095
- );
1096
- }
1097
-
1098
1058
  targetConfigs.forEach(targetConfig => {
1099
1059
  if (!targetConfig.appConfigs) {
1100
1060
  qx.tool.compiler.Console.print(
1101
- "qx.tool.cli.compile.unusedTarget",
1061
+ "qx.tool.compiler.cli.compile.unusedTarget",
1102
1062
  targetConfig.type,
1103
1063
  targetConfig.index
1104
1064
  );
@@ -1146,15 +1106,15 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1146
1106
  }
1147
1107
 
1148
1108
  var targetClass = targetConfig.targetClass
1149
- ? this.resolveTargetClass(targetConfig.targetClass)
1109
+ ? this.__resolveTargetClass(targetConfig.targetClass)
1150
1110
  : null;
1151
1111
  if (!targetClass && targetConfig.type) {
1152
- targetClass = this.resolveTargetClass(targetConfig.type);
1112
+ targetClass = this.__resolveTargetClass(targetConfig.type);
1153
1113
  }
1154
1114
  if (!targetClass) {
1155
1115
  throw new qx.tool.utils.Utils.UserError(
1156
1116
  "Cannot find target class: " +
1157
- (targetConfig.targetClass || targetConfig.type)
1117
+ (targetConfig.targetClass || targetConfig.type)
1158
1118
  );
1159
1119
  }
1160
1120
  /* eslint-disable new-cap */
@@ -1162,7 +1122,7 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1162
1122
  /* eslint-enable new-cap */
1163
1123
  if (targetConfig.uri) {
1164
1124
  qx.tool.compiler.Console.print(
1165
- "qx.tool.cli.compile.deprecatedUri",
1125
+ "qx.tool.compiler.cli.compile.deprecatedUri",
1166
1126
  "target.uri",
1167
1127
  targetConfig.uri
1168
1128
  );
@@ -1184,18 +1144,6 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1184
1144
  target.setUpdatePoFiles(this.argv.updatePoFiles);
1185
1145
  target.setLibraryPoPolicy(this.argv.libraryPo);
1186
1146
 
1187
- let fontsConfig = targetConfig.fonts || {};
1188
- let preferLocalFonts = true;
1189
-
1190
- if (this.argv.localFonts !== undefined) {
1191
- preferLocalFonts = this.argv.localFonts;
1192
- } else if (fontsConfig.local !== undefined) {
1193
- preferLocalFonts = fontsConfig.local;
1194
- }
1195
- target.setPreferLocalFonts(preferLocalFonts);
1196
- if (fontsConfig.fontTypes !== undefined) {
1197
- target.setFontTypes(fontsConfig.fontTypes);
1198
- }
1199
1147
  // Take the command line for `minify` as most precedent only if provided
1200
1148
  var minify;
1201
1149
  if (process.argv.indexOf("--minify") > -1) {
@@ -1321,26 +1269,6 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1321
1269
  maker.setWriteAllTranslations(data.writeAllTranslations);
1322
1270
  }
1323
1271
 
1324
- if (typeof targetConfig.typescript == "string") {
1325
- Console.warn(
1326
- "The 'typescript' property inside a target definition is deprecated - please see top level 'meta.typescript' property"
1327
- );
1328
-
1329
- if (this.__typescriptFile) {
1330
- Console.warn(
1331
- "Multiple conflicting locations for the Typescript output - choosing to write to " +
1332
- this.__typescriptFile +
1333
- " and NOT " +
1334
- targetConfig.typescript
1335
- );
1336
- } else {
1337
- this.__typescriptEnabled = true;
1338
- this.__typescriptFile = path.relative(
1339
- process.cwd(),
1340
- path.resolve(targetConfig.typescript)
1341
- );
1342
- }
1343
- }
1344
1272
 
1345
1273
  if (data.environment) {
1346
1274
  maker.setEnvironment(data.environment);
@@ -1350,8 +1278,8 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1350
1278
  Libraries have to be added first because there is qx library
1351
1279
  which includes a framework version
1352
1280
  */
1353
- for (let library of librariesArray) {
1354
- maker.getAnalyser().addLibrary(library);
1281
+ for (let ns in libraries) {
1282
+ maker.getAnalyser().addLibrary(libraries[ns]);
1355
1283
  }
1356
1284
 
1357
1285
  let targetEnvironment = {
@@ -1412,16 +1340,12 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1412
1340
  );
1413
1341
  maker.getAnalyser().setBrowserifyConfig(browserifyConfig);
1414
1342
 
1343
+
1415
1344
  var addCreatedAt =
1416
1345
  targetConfig["addCreatedAt"] || t.argv["addCreatedAt"];
1417
1346
  if (addCreatedAt) {
1418
1347
  maker.getAnalyser().setAddCreatedAt(true);
1419
1348
  }
1420
- const verboseCreatedAt =
1421
- targetConfig["verboseCreatedAt"] || t.argv["verboseCreatedAt"];
1422
- if (verboseCreatedAt) {
1423
- maker.getAnalyser().setVerboseCreatedAt(true);
1424
- }
1425
1349
 
1426
1350
  let allApplicationTypes = {};
1427
1351
  appConfigs.forEach(appConfig => {
@@ -1452,7 +1376,7 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1452
1376
  allApplicationTypes[app.getType()] = true;
1453
1377
  if (appConfig.uri) {
1454
1378
  qx.tool.compiler.Console.print(
1455
- "qx.tool.cli.compile.deprecatedUri",
1379
+ "qx.tool.compiler.cli.compile.deprecatedUri",
1456
1380
  "application.uri",
1457
1381
  appConfig.uri
1458
1382
  );
@@ -1479,9 +1403,9 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1479
1403
  if (!parts.boot) {
1480
1404
  throw new qx.tool.utils.Utils.UserError(
1481
1405
  "Cannot determine a boot part for application " +
1482
- (appConfig.index + 1) +
1483
- " " +
1484
- (appConfig.name || "")
1406
+ (appConfig.index + 1) +
1407
+ " " +
1408
+ (appConfig.name || "")
1485
1409
  );
1486
1410
  }
1487
1411
  for (var partName in parts) {
@@ -1643,11 +1567,11 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1643
1567
  if (!fs.existsSync(qx.tool.config.Manifest.config.fileName)) {
1644
1568
  Console.error(
1645
1569
  "Libraries are missing and there is no Manifest.json in the current directory so we cannot attempt to install them; the missing libraries are: \n " +
1646
- urisToInstall.join("\n ") +
1647
- "\nThe library which refers to the missing libraries is " +
1648
- lib.getNamespace() +
1649
- " in " +
1650
- lib.getRootDir()
1570
+ urisToInstall.join("\n ") +
1571
+ "\nThe library which refers to the missing libraries is " +
1572
+ lib.getNamespace() +
1573
+ " in " +
1574
+ lib.getRootDir()
1651
1575
  );
1652
1576
 
1653
1577
  process.exit(1);
@@ -1660,11 +1584,11 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1660
1584
  )}...`
1661
1585
  );
1662
1586
  }
1663
- const installer = new qx.tool.cli.commands.package.Install({
1587
+ const installer = new qx.tool.compiler.cli.commands.package.Install();
1588
+ await installer.process({
1664
1589
  verbose: this.argv.verbose,
1665
1590
  save: false // save to lockfile only, not to manifest
1666
1591
  });
1667
- await installer.process();
1668
1592
  throw new qx.tool.utils.Utils.UserError(
1669
1593
  `Library ${lib.getNamespace()} requires ${urisToInstall.join(
1670
1594
  ","
@@ -1742,9 +1666,9 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1742
1666
  * Resolves the target class instance from the type name; accepts "source" or "build" or
1743
1667
  * a class name
1744
1668
  * @param type {String}
1745
- * @returns {qx.tool.compiler.makers.Maker}
1669
+ * @returns {Maker}
1746
1670
  */
1747
- resolveTargetClass(type) {
1671
+ __resolveTargetClass(type) {
1748
1672
  if (!type) {
1749
1673
  return null;
1750
1674
  }
@@ -1757,6 +1681,11 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1757
1681
  if (type == "source") {
1758
1682
  return qx.tool.compiler.targets.SourceTarget;
1759
1683
  }
1684
+ if (type == "typescript") {
1685
+ throw new qx.tool.utils.Utils.UserError(
1686
+ "Typescript targets are no longer supported - please use `typescript: true` in source target instead"
1687
+ );
1688
+ }
1760
1689
  if (type) {
1761
1690
  var targetClass;
1762
1691
  if (type.indexOf(".") < 0) {
@@ -1772,37 +1701,17 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1772
1701
  /**
1773
1702
  * Returns the list of makers to make
1774
1703
  *
1775
- * @return {qx.tool.compiler.makers.Maker[]}
1704
+ * @return {Maker[]}
1776
1705
  */
1777
1706
  getMakers() {
1778
1707
  return this.__makers;
1779
1708
  },
1780
1709
 
1781
- /**
1782
- * Returns the one maker; this is for backwards compatibility with the compiler API, because it is
1783
- * possible to define multiple targets and therefore have multiple makers. This method will return
1784
- * the one maker, when there is only one maker defined (ie one target), which is fine for any existing
1785
- * configurations.
1786
- *
1787
- * @deprected
1788
- * @return {qx.tool.compiler.makers.Maker}
1789
- */
1790
- getMaker() {
1791
- if (this.__makers.length == 1) {
1792
- return this.__makers[0];
1793
- }
1794
- throw new Error(
1795
- "Cannot get a single maker - there are " +
1796
- this.__makers.length +
1797
- " available"
1798
- );
1799
- },
1800
-
1801
1710
  /**
1802
1711
  * Returns the makers for a given application name
1803
1712
  *
1804
1713
  * @param appName {String} the name of the application
1805
- * @return {qx.tool.compiler.makers.Maker}
1714
+ * @return {Maker}
1806
1715
  */
1807
1716
  getMakersForApp(appName) {
1808
1717
  return this.__makers.filter(maker => {
@@ -1814,7 +1723,7 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1814
1723
  /**
1815
1724
  * Returns a list of libraries which are used
1816
1725
  *
1817
- * @return {qx.tool.compiler.app.Library[]}
1726
+ * @return {Library[]}
1818
1727
  */
1819
1728
  getLibraries() {
1820
1729
  return this.__libraries;
@@ -1823,35 +1732,35 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
1823
1732
 
1824
1733
  defer(statics) {
1825
1734
  qx.tool.compiler.Console.addMessageIds({
1826
- "qx.tool.cli.compile.writingApplication": "Writing application %1",
1827
- "qx.tool.cli.compile.minifyingApplication": "Minifying %1 %2",
1828
- "qx.tool.cli.compile.compilingClass": "Compiling class %1",
1829
- "qx.tool.cli.compile.compiledClass": "Compiled class %1 in %2s",
1830
- "qx.tool.cli.compile.makeBegins": "Making applications...",
1831
- "qx.tool.cli.compile.makeEnds": "Applications are made"
1735
+ "qx.tool.compiler.cli.compile.writingApplication": "Writing application %1",
1736
+ "qx.tool.compiler.cli.compile.minifyingApplication": "Minifying %1 %2",
1737
+ "qx.tool.compiler.cli.compile.compilingClass": "Compiling class %1",
1738
+ "qx.tool.compiler.cli.compile.compiledClass": "Compiled class %1 in %2s",
1739
+ "qx.tool.compiler.cli.compile.makeBegins": "Making applications...",
1740
+ "qx.tool.compiler.cli.compile.makeEnds": "Applications are made"
1832
1741
  });
1833
1742
 
1834
1743
  qx.tool.compiler.Console.addMessageIds(
1835
1744
  {
1836
- "qx.tool.cli.compile.multipleDefaultTargets":
1745
+ "qx.tool.compiler.cli.compile.multipleDefaultTargets":
1837
1746
  "Multiple default targets found!",
1838
- "qx.tool.cli.compile.unusedTarget":
1747
+ "qx.tool.compiler.cli.compile.unusedTarget":
1839
1748
  "Target type %1, index %2 is unused",
1840
- "qx.tool.cli.compile.selectingDefaultApp":
1749
+ "qx.tool.compiler.cli.compile.selectingDefaultApp":
1841
1750
  "You have multiple applications, none of which are marked as 'default'; the first application named %1 has been chosen as the default application",
1842
- "qx.tool.cli.compile.legacyFiles":
1751
+ "qx.tool.compiler.cli.compile.legacyFiles":
1843
1752
  "File %1 exists but is no longer used",
1844
- "qx.tool.cli.compile.deprecatedCompile":
1753
+ "qx.tool.compiler.cli.compile.deprecatedCompile":
1845
1754
  "The configuration setting %1 in compile.json is deprecated",
1846
- "qx.tool.cli.compile.deprecatedCompileSeeOther":
1755
+ "qx.tool.compiler.cli.compile.deprecatedCompileSeeOther":
1847
1756
  "The configuration setting %1 in compile.json is deprecated (see %2)",
1848
- "qx.tool.cli.compile.deprecatedUri":
1757
+ "qx.tool.compiler.cli.compile.deprecatedUri":
1849
1758
  "URIs are no longer set in compile.json, the configuration setting %1=%2 in compile.json is ignored (it's auto detected)",
1850
- "qx.tool.cli.compile.deprecatedProvidesBoot":
1759
+ "qx.tool.compiler.cli.compile.deprecatedProvidesBoot":
1851
1760
  "Manifest.Json no longer supports provides.boot - only Applications can have boot; specified in %1",
1852
- "qx.tool.cli.compile.deprecatedBabelOptions":
1761
+ "qx.tool.compiler.cli.compile.deprecatedBabelOptions":
1853
1762
  "Deprecated use of `babelOptions` - these should be moved to `babel.options`",
1854
- "qx.tool.cli.compile.deprecatedBabelOptionsConflicting":
1763
+ "qx.tool.compiler.cli.compile.deprecatedBabelOptionsConflicting":
1855
1764
  "Conflicting use of `babel.options` and the deprecated `babelOptions` (ignored)"
1856
1765
  },
1857
1766