@qooxdoo/framework 7.1.1 → 7.2.0

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 (100) hide show
  1. package/Manifest.json +1 -1
  2. package/lib/compiler/compile-info.json +83 -83
  3. package/lib/compiler/index.js +279 -274
  4. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
  5. package/npm-shrinkwrap.json +235 -11095
  6. package/package.json +6 -6
  7. package/source/class/qx/Interface.js +13 -15
  8. package/source/class/qx/dev/unit/MTestLoader.js +25 -33
  9. package/source/class/qx/dev/unit/TestResult.js +9 -13
  10. package/source/class/qx/html/Element.js +1 -1
  11. package/source/class/qx/html/Node.js +0 -1
  12. package/source/class/qx/io/request/AbstractRequest.js +42 -66
  13. package/source/class/qx/test/Interface.js +70 -6
  14. package/source/class/qx/test/Mixin.js +20 -17
  15. package/source/class/qx/test/Promise.js +67 -91
  16. package/source/class/qx/test/bom/History.js +11 -19
  17. package/source/class/qx/test/bom/WebWorker.js +7 -15
  18. package/source/class/qx/test/bom/media/MediaTestCase.js +10 -18
  19. package/source/class/qx/test/bom/media/Video.js +10 -18
  20. package/source/class/qx/test/bom/rest/Resource.js +3 -7
  21. package/source/class/qx/test/bom/rest/ResourceWithRemote.js +40 -56
  22. package/source/class/qx/test/bom/webfonts/Validator.js +12 -20
  23. package/source/class/qx/test/core/Object.js +3 -7
  24. package/source/class/qx/test/data/controller/List.js +18 -22
  25. package/source/class/qx/test/data/marshal/Json.js +10 -14
  26. package/source/class/qx/test/data/store/Json.js +337 -428
  27. package/source/class/qx/test/data/store/Jsonp.js +46 -66
  28. package/source/class/qx/test/data/store/RestWithRemote.js +10 -18
  29. package/source/class/qx/test/html/Element.js +4 -8
  30. package/source/class/qx/test/html/Iframe.js +48 -60
  31. package/source/class/qx/test/io/jsonrpc/Client.js +1 -1
  32. package/source/class/qx/test/io/request/JsonpWithRemote.js +6 -10
  33. package/source/class/qx/test/io/request/MRequest.js +13 -25
  34. package/source/class/qx/test/io/request/Xhr.js +5 -9
  35. package/source/class/qx/test/io/request/XhrWithRemote.js +50 -78
  36. package/source/class/qx/test/io/rest/Resource.js +3 -7
  37. package/source/class/qx/test/io/rest/ResourceWithRemote.js +41 -57
  38. package/source/class/qx/test/mobile/basic/Image.js +16 -24
  39. package/source/class/qx/test/mobile/container/Navigation.js +3 -7
  40. package/source/class/qx/test/mobile/container/Scroll.js +8 -12
  41. package/source/class/qx/test/mobile/page/Page.js +24 -44
  42. package/source/class/qx/test/performance/Property.js +2 -2
  43. package/source/class/qx/test/ui/basic/Image.js +32 -52
  44. package/source/class/qx/test/ui/core/Blocker.js +6 -14
  45. package/source/class/qx/test/ui/embed/Iframe.js +13 -21
  46. package/source/class/qx/test/ui/form/FileSelectorButton.js +32 -0
  47. package/source/class/qx/test/ui/form/FormValidator.js +147 -211
  48. package/source/class/qx/test/ui/form/Label.js +8 -16
  49. package/source/class/qx/test/ui/root/Inline.js +9 -13
  50. package/source/class/qx/test/ui/table/Table.js +6 -14
  51. package/source/class/qx/test/ui/toolbar/OverflowHandling.js +18 -30
  52. package/source/class/qx/test/ui/virtual/Pane.js +3 -7
  53. package/source/class/qx/test/util/DynamicScriptLoader.js +23 -42
  54. package/source/class/qx/theme/tangible/Appearance.js +22 -3
  55. package/source/class/qx/tool/cli/Watch.js +3 -7
  56. package/source/class/qx/tool/cli/api/AbstractApi.js +1 -1
  57. package/source/class/qx/tool/cli/api/CompilerApi.js +3 -7
  58. package/source/class/qx/tool/cli/commands/Compile.js +3 -3
  59. package/source/class/qx/tool/cli/commands/Lint.js +8 -5
  60. package/source/class/qx/tool/compiler/ClassFile.js +22 -12
  61. package/source/class/qx/tool/compiler/Es6ify.js +7 -3
  62. package/source/class/qx/tool/compiler/TargetError.js +3 -4
  63. package/source/class/qx/tool/compiler/app/Application.js +3 -3
  64. package/source/class/qx/tool/compiler/app/WebFont.js +8 -6
  65. package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +1 -1
  66. package/source/class/qx/tool/compiler/targets/Target.js +2 -1
  67. package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +1 -1
  68. package/source/class/qx/tool/compiler/targets/meta/Browserify.js +77 -83
  69. package/source/class/qx/tool/compiler/targets/meta/Uglify.js +11 -3
  70. package/source/class/qx/tool/utils/Website.js +2 -2
  71. package/source/class/qx/ui/basic/Label.js +13 -17
  72. package/source/class/qx/ui/core/MPlacement.js +13 -21
  73. package/source/class/qx/ui/core/Widget.js +2 -3
  74. package/source/class/qx/ui/core/scroll/NativeScrollBar.js +3 -7
  75. package/source/class/qx/ui/core/scroll/ScrollBar.js +3 -7
  76. package/source/class/qx/ui/embed/Iframe.js +40 -50
  77. package/source/class/qx/ui/form/AbstractField.js +8 -12
  78. package/source/class/qx/ui/form/ComboBox.js +7 -15
  79. package/source/class/qx/ui/form/DateField.js +9 -18
  80. package/source/class/qx/ui/form/FileSelectorButton.js +157 -0
  81. package/source/class/qx/ui/form/Spinner.js +7 -15
  82. package/source/class/qx/ui/form/TextArea.js +3 -7
  83. package/source/class/qx/ui/form/VirtualComboBox.js +8 -16
  84. package/source/class/qx/ui/form/VirtualSelectBox.js +21 -37
  85. package/source/class/qx/ui/layout/Canvas.js +2 -2
  86. package/source/class/qx/ui/mobile/container/MIScroll.js +3 -7
  87. package/source/class/qx/ui/progressive/headfoot/Progress.js +22 -34
  88. package/source/class/qx/ui/progressive/renderer/table/Row.js +1 -1
  89. package/source/class/qx/ui/splitpane/Pane.js +14 -22
  90. package/source/class/qx/ui/table/MTableContextMenu.js +63 -71
  91. package/source/class/qx/ui/table/Table.js +3 -7
  92. package/source/class/qx/ui/table/model/Abstract.js +5 -2
  93. package/source/class/qx/ui/table/pane/Scroller.js +8 -12
  94. package/source/class/qx/ui/toolbar/FileSelectorButton.js +57 -0
  95. package/source/class/qx/ui/toolbar/Part.js +3 -7
  96. package/source/class/qx/ui/tree/VirtualTree.js +5 -9
  97. package/source/class/qx/ui/treevirtual/MNode.js +5 -3
  98. package/source/class/qx/ui/treevirtual/TreeVirtual.js +3 -7
  99. package/source/class/qx/ui/virtual/core/Pane.js +30 -42
  100. package/source/class/qx/util/DynamicScriptLoader.js +31 -43
@@ -58,29 +58,21 @@ qx.Class.define("qx.test.util.DynamicScriptLoader", {
58
58
 
59
59
  var l1Ready = false;
60
60
  var l2Ready = false;
61
- l1.addListenerOnce(
62
- "ready",
63
- function () {
64
- l1Ready = true;
65
- this.resume(function () {
66
- this.assertTrue(l1Ready && l2Ready);
67
- this.assertEquals(
68
- qx.test.DYNAMICSCRIPTTEST.second.third,
69
- "dynamically loaded"
70
- );
71
- }, this);
72
- },
73
- this
74
- );
61
+ l1.addListenerOnce("ready", () => {
62
+ l1Ready = true;
63
+ this.resume(function () {
64
+ this.assertTrue(l1Ready && l2Ready);
65
+ this.assertEquals(
66
+ qx.test.DYNAMICSCRIPTTEST.second.third,
67
+ "dynamically loaded"
68
+ );
69
+ }, this);
70
+ });
75
71
 
76
- l2.addListenerOnce(
77
- "ready",
78
- function () {
79
- l2Ready = true;
80
- this.assertTrue(!l1Ready && l2Ready);
81
- },
82
- this
83
- );
72
+ l2.addListenerOnce("ready", () => {
73
+ l2Ready = true;
74
+ this.assertTrue(!l1Ready && l2Ready);
75
+ });
84
76
 
85
77
  l1.start();
86
78
  l2.start();
@@ -100,13 +92,9 @@ qx.Class.define("qx.test.util.DynamicScriptLoader", {
100
92
  noEvent = false;
101
93
  }
102
94
  });
103
- loader.addListenerOnce(
104
- "ready",
105
- function () {
106
- this.assertTrue(noEvent);
107
- },
108
- this
109
- );
95
+ loader.addListenerOnce("ready", () => {
96
+ this.assertTrue(noEvent);
97
+ });
110
98
 
111
99
  loader.start();
112
100
  },
@@ -115,19 +103,12 @@ qx.Class.define("qx.test.util.DynamicScriptLoader", {
115
103
  "qx/test/dynamicscriptloader/xyc.js"
116
104
  ]);
117
105
 
118
- loader.addListenerOnce(
119
- "failed",
120
- function (e) {
121
- var data = e.getData();
122
- this.resume(function () {
123
- this.assertEquals(
124
- data.script,
125
- "qx/test/dynamicscriptloader/xyc.js"
126
- );
127
- }, this);
128
- },
129
- this
130
- );
106
+ loader.addListenerOnce("failed", e => {
107
+ var data = e.getData();
108
+ this.resume(function () {
109
+ this.assertEquals(data.script, "qx/test/dynamicscriptloader/xyc.js");
110
+ }, this);
111
+ });
131
112
 
132
113
  loader.start();
133
114
  this.wait();
@@ -634,7 +634,8 @@ qx.Theme.define("qx.theme.tangible.Appearance", {
634
634
  style(states) {
635
635
  return {
636
636
  decorator: undefined,
637
- padding: [2, 2]
637
+ padding: [2, 2],
638
+ backgroundColor: "surface"
638
639
  };
639
640
  }
640
641
  },
@@ -644,7 +645,10 @@ qx.Theme.define("qx.theme.tangible.Appearance", {
644
645
  alias: "selectbox",
645
646
 
646
647
  style(states) {
647
- return { padding: [0, 2] };
648
+ return {
649
+ padding: [0, 2],
650
+ backgroundColor: "surface"
651
+ };
648
652
  }
649
653
  },
650
654
 
@@ -653,7 +657,10 @@ qx.Theme.define("qx.theme.tangible.Appearance", {
653
657
  alias: "combobox",
654
658
 
655
659
  style(states) {
656
- return { decorator: undefined };
660
+ return {
661
+ decorator: undefined,
662
+ backgroundColor: "surface"
663
+ };
657
664
  }
658
665
  },
659
666
 
@@ -999,6 +1006,18 @@ qx.Theme.define("qx.theme.tangible.Appearance", {
999
1006
  };
1000
1007
  }
1001
1008
  },
1009
+ "menubar-button/icon": {
1010
+ style(states) {
1011
+ return {
1012
+ textColor: states.disabled
1013
+ ? "text-disabled-on-surface"
1014
+ : ( states.pressed || states.hovered )
1015
+ ? "text-on-primary"
1016
+ : "text-on-surface"
1017
+ }
1018
+ }
1019
+ },
1020
+
1002
1021
 
1003
1022
  /*
1004
1023
  ---------------------------------------------------------------------------
@@ -140,13 +140,9 @@ qx.Class.define("qx.tool.cli.Watch", {
140
140
 
141
141
  var dirs = [];
142
142
  var analyser = this.__maker.getAnalyser();
143
- analyser.addListener(
144
- "compiledClass",
145
- function () {
146
- this.__stats.classesCompiled++;
147
- },
148
- this
149
- );
143
+ analyser.addListener("compiledClass", () => {
144
+ this.__stats.classesCompiled++;
145
+ });
150
146
 
151
147
  dirs.push(qx.tool.config.Compile.config.fileName);
152
148
  dirs.push("compile.js");
@@ -88,7 +88,7 @@ qx.Class.define("qx.tool.cli.api.AbstractApi", {
88
88
  const { execSync } = require("child_process");
89
89
  // since npm 7 --no-save deletes the node_modules folder
90
90
  // see https://github.com/npm/cli/pull/3907
91
- // let s = `npm install --no-save --no-package-lock ${module}`;
91
+ // let s = `npm install --no-save --no-package-lock ${module}`;
92
92
  let s = `npm install --no-package-lock ${module}`;
93
93
  qx.tool.compiler.Console.info(s);
94
94
  execSync(s, {
@@ -33,13 +33,9 @@ qx.Class.define("qx.tool.cli.api.CompilerApi", {
33
33
  construct() {
34
34
  super();
35
35
  this.__libraryApis = {};
36
- this.addListener(
37
- "changeCommand",
38
- function () {
39
- this.afterCommandLoaded(this.getCommand());
40
- },
41
- this
42
- );
36
+ this.addListener("changeCommand", () => {
37
+ this.afterCommandLoaded(this.getCommand());
38
+ });
43
39
  },
44
40
 
45
41
  properties: {
@@ -359,10 +359,10 @@ qx.Class.define("qx.tool.cli.commands.Compile", {
359
359
  this.argv["feedback"] = configDb.db("qx.default.feedback", true);
360
360
  }
361
361
 
362
- // Validate compile.json against the schema
363
- await qx.tool.config.Compile.getInstance().load();
362
+ // Validate compile.json against the schema
363
+ await qx.tool.config.Compile.getInstance().load();
364
364
 
365
- if (this.argv.verbose) {
365
+ if (this.argv.verbose) {
366
366
  console.log(`
367
367
  Compiler: v${this.getCompilerVersion()} in ${require.main.filename}
368
368
  Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
@@ -95,7 +95,6 @@ qx.Class.define("qx.tool.cli.commands.Lint", {
95
95
 
96
96
  members: {
97
97
  async process() {
98
-
99
98
  let files = this.argv.files || [];
100
99
  if (files.length === 0) {
101
100
  files.push("source/class/**/*.js");
@@ -121,14 +120,14 @@ qx.Class.define("qx.tool.cli.commands.Lint", {
121
120
  lintOptions.globals || {},
122
121
  await this.__addGlobals(config)
123
122
  );
123
+
124
124
  lintOptions.parser = "@babel/eslint-parser";
125
125
  lintOptions.parserOptions = lintOptions.parserOptions || {};
126
126
  lintOptions.parserOptions.requireConfigFile = false;
127
127
  lintOptions.parserOptions.babelOptions = {
128
128
  cwd: helperFilePath,
129
- plugins: [
130
- "@babel/plugin-syntax-jsx"
131
- ],
129
+ plugins: ["@babel/plugin-syntax-jsx"],
130
+
132
131
  parserOpts: {
133
132
  allowSuperOutsideMethod: true
134
133
  }
@@ -164,11 +163,15 @@ qx.Class.define("qx.tool.cli.commands.Lint", {
164
163
  // If there are too many errors, the pretty formatter is appallingly slow so if the
165
164
  // user has not specified a format, change to compact mode
166
165
  const maxDefaultFormatErrorCount = 150;
167
- if (report.errorCount + report.warningCount > maxDefaultFormatErrorCount) {
166
+ if (
167
+ report.errorCount + report.warningCount >
168
+ maxDefaultFormatErrorCount
169
+ ) {
168
170
  if (!this.argv.format) {
169
171
  qx.tool.compiler.Console.info(
170
172
  `Total errors and warnings exceed ${maxDefaultFormatErrorCount}, switching to "compact" style report`
171
173
  );
174
+
172
175
  outputFormat = "compact";
173
176
  } else {
174
177
  qx.tool.compiler.Console.info(
@@ -392,6 +392,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
392
392
  qx.tool.compiler.ClassFile.JSX_OPTIONS
393
393
  ]
394
394
  ],
395
+
395
396
  generatorOpts: {
396
397
  compact: false
397
398
  },
@@ -674,7 +675,9 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
674
675
  if (Object.keys(this.__commonjsModules).length > 0) {
675
676
  dbClassInfo.commonjsModules = {};
676
677
  for (let moduleName in this.__commonjsModules) {
677
- dbClassInfo.commonjsModules[moduleName] = [ ...this.__commonjsModules[moduleName] ];
678
+ dbClassInfo.commonjsModules[moduleName] = [
679
+ ...this.__commonjsModules[moduleName]
680
+ ];
678
681
  }
679
682
  }
680
683
 
@@ -1667,11 +1670,12 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1667
1670
  let scope;
1668
1671
  let applicationTypes = t.__analyser.getApplicationTypes();
1669
1672
 
1670
- if (path.node.callee.type == "Identifier" &&
1671
- path.node?.callee?.name == "require" &&
1672
- path.node.arguments?.length == 1 &&
1673
- applicationTypes.includes("browser")) {
1674
-
1673
+ if (
1674
+ path.node.callee.type == "Identifier" &&
1675
+ path.node?.callee?.name == "require" &&
1676
+ path.node.arguments?.length == 1 &&
1677
+ applicationTypes.includes("browser")
1678
+ ) {
1675
1679
  // See if this is a reference to global `require` or
1676
1680
  // something in the scope chain
1677
1681
  for (scope = t.__scope; scope; scope = scope.parent) {
@@ -1681,7 +1685,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1681
1685
  }
1682
1686
  }
1683
1687
  // Did we reach top level without finding it in a local scope?
1684
- if (! scope) {
1688
+ if (!scope) {
1685
1689
  // Yup. It's the global one we're looking for. Ensure the argument is valid.
1686
1690
  let arg = path.node.arguments[0];
1687
1691
  if (types.isLiteral(arg)) {
@@ -1694,8 +1698,13 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1694
1698
  } else {
1695
1699
  qx.tool.compiler.Console.log(
1696
1700
  `${t.__className}:${path.node.loc.start.line}:` +
1697
- ` automatically detected \'require(${arg.value})\``);
1698
- t.addCommonjsModule(arg.value, t.__className, path.node.loc.start.line);
1701
+ ` automatically detected \'require(${arg.value})\``
1702
+ );
1703
+ t.addCommonjsModule(
1704
+ arg.value,
1705
+ t.__className,
1706
+ path.node.loc.start.line
1707
+ );
1699
1708
 
1700
1709
  // Don't show "unresolved" error for `require` since the
1701
1710
  // browserified code defines it as a global
@@ -1885,6 +1894,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1885
1894
  types.stringLiteral(t.__classMeta.functionName)
1886
1895
  ]
1887
1896
  );
1897
+
1888
1898
  expr = types.memberExpression(expr, types.identifier("call"));
1889
1899
  } else if (t.__classMeta.functionName == "$$constructor") {
1890
1900
  expr = expandMemberExpression(
@@ -1893,8 +1903,8 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
1893
1903
  } else if (t.__classMeta.className) {
1894
1904
  expr = expandMemberExpression(
1895
1905
  t.__classMeta.className +
1896
- ".superclass" +
1897
- ".prototype." +
1906
+ ".superclass" +
1907
+ ".prototype." +
1898
1908
  t.__classMeta.functionName +
1899
1909
  ".call"
1900
1910
  );
@@ -2569,7 +2579,7 @@ qx.Class.define("qx.tool.compiler.ClassFile", {
2569
2579
  * @param name {String} name of the module
2570
2580
  */
2571
2581
  addCommonjsModule(moduleName, className, linenum) {
2572
- if (! this.__commonjsModules[moduleName]) {
2582
+ if (!this.__commonjsModules[moduleName]) {
2573
2583
  this.__commonjsModules[moduleName] = new Set();
2574
2584
  }
2575
2585
 
@@ -106,7 +106,7 @@ qx.Class.define("qx.tool.compiler.Es6ify", {
106
106
  construct(filename) {
107
107
  super();
108
108
  this.__filename = filename;
109
- this.__knownApiFunctions = ["addListener","addListenerOnce"];
109
+ this.__knownApiFunctions = ["addListener", "addListenerOnce"];
110
110
  },
111
111
 
112
112
  properties: {
@@ -176,7 +176,9 @@ qx.Class.define("qx.tool.compiler.Es6ify", {
176
176
  while (true) {
177
177
  cycleCount++;
178
178
  if (cycleCount > 10) {
179
- qx.tool.compiler.Console.warn(`Can not find a stable format for ${this.__filename}`);
179
+ qx.tool.compiler.Console.warn(
180
+ `Can not find a stable format for ${this.__filename}`
181
+ );
180
182
  break;
181
183
  }
182
184
  result = babelCore.transform(src, config);
@@ -285,7 +287,9 @@ qx.Class.define("qx.tool.compiler.Es6ify", {
285
287
  if (path.node.callee.type == "MemberExpression") {
286
288
  let callee = collapseMemberExpression(path.node.callee);
287
289
  if (arrowFunctions == "careful") {
288
- if (!knownApiFunctions.some(fName => callee.endsWith("."+fName))) {
290
+ if (
291
+ !knownApiFunctions.some(fName => callee.endsWith("." + fName))
292
+ ) {
289
293
  return;
290
294
  }
291
295
  if (
@@ -20,8 +20,7 @@
20
20
  *
21
21
  * ************************************************************************/
22
22
 
23
- qx.Class.define("qx.tool.compiler.TargetError",
24
- {
25
- // extend : qx.type.BaseError
26
- extend : Error
23
+ qx.Class.define("qx.tool.compiler.TargetError", {
24
+ // extend : qx.type.BaseError
25
+ extend: Error
27
26
  });
@@ -228,9 +228,9 @@ qx.Class.define("qx.tool.compiler.app.Application", {
228
228
  * relative to the directory containing compile.json. The module may be
229
229
  * either a CommonJS module or an ES6 module.
230
230
  */
231
- localModules : {
232
- init : null,
233
- check : "Object"
231
+ localModules: {
232
+ init: null,
233
+ check: "Object"
234
234
  }
235
235
  },
236
236
 
@@ -255,12 +255,14 @@ qx.Class.define("qx.tool.compiler.app.WebFont", {
255
255
  lookupListIndexes.forEach(index => {
256
256
  let subTable = lookupList[index].subTables[0];
257
257
  let leadingCharacters = [];
258
- subTable.coverage.rangeRecords.forEach(coverage => {
259
- for (let i = coverage.start; i <= coverage.end; i++) {
260
- let character = font.stringsForGlyph(i)[0];
261
- leadingCharacters.push(character);
262
- }
263
- });
258
+ if (subTable.coverage.rangeRecords) {
259
+ subTable.coverage.rangeRecords.forEach(coverage => {
260
+ for (let i = coverage.start; i <= coverage.end; i++) {
261
+ let character = font.stringsForGlyph(i)[0];
262
+ leadingCharacters.push(character);
263
+ }
264
+ });
265
+ }
264
266
  let ligatureSets = subTable.ligatureSets.toArray();
265
267
  ligatureSets.forEach((ligatureSet, ligatureSetIndex) => {
266
268
  let leadingCharacter = leadingCharacters[ligatureSetIndex];
@@ -24,7 +24,7 @@ const fs = qx.tool.utils.Promisify.fs;
24
24
  const path = require("upath");
25
25
 
26
26
  const crypto = require("crypto");
27
- const sourceMap = require("source-map");
27
+ const sourceMap = require("source-map-js");
28
28
 
29
29
  /**
30
30
  * Copies multiple javascript source files into a single destination, preserving (merging)
@@ -437,7 +437,8 @@ qx.Class.define("qx.tool.compiler.targets.Target", {
437
437
  // application in compile.json, but will not bundle `require()`d
438
438
  // modules that are Node modules.
439
439
  bootPackage.addJavascriptMeta(
440
- new qx.tool.compiler.targets.meta.Browserify(appMeta));
440
+ new qx.tool.compiler.targets.meta.Browserify(appMeta)
441
+ );
441
442
 
442
443
  /*
443
444
  * Assemble the Parts
@@ -22,7 +22,7 @@
22
22
 
23
23
  const fs = qx.tool.utils.Promisify.fs;
24
24
  const path = require("upath");
25
- const sourceMap = require("source-map");
25
+ const sourceMap = require("source-map-js");
26
26
 
27
27
  /**
28
28
  * An AbstractJavascriptMeta provides an abstraction of some source code, and might be
@@ -36,7 +36,7 @@ qx.Class.define("qx.tool.compiler.targets.meta.Browserify", {
36
36
  },
37
37
 
38
38
  members: {
39
- __appMeta : null,
39
+ __appMeta: null,
40
40
 
41
41
  /**
42
42
  * @Override
@@ -46,39 +46,40 @@ qx.Class.define("qx.tool.compiler.targets.meta.Browserify", {
46
46
  let commonjsModules = new Set();
47
47
  let references = {};
48
48
  const localModules =
49
- this.__appMeta.getApplication().getLocalModules() || {};
49
+ this.__appMeta.getApplication().getLocalModules() || {};
50
50
  const db = this.__appMeta.getAnalyser().getDatabase();
51
51
 
52
52
  // Only include discovered `require()`d Node modules if the
53
53
  // target application type is browser.
54
- if (this.__appMeta.getEnvironmentValue("qx.compiler.applicationType") ==
55
- "browser") {
56
-
54
+ if (
55
+ this.__appMeta.getEnvironmentValue("qx.compiler.applicationType") ==
56
+ "browser"
57
+ ) {
57
58
  // Get a Set of unique `require`d CommonJS module names from
58
59
  // all classes
59
60
  for (let className in db.classInfo) {
60
61
  let classInfo = db.classInfo[className];
61
62
  if (classInfo.commonjsModules) {
62
- Object.keys(classInfo.commonjsModules).forEach(
63
- moduleName =>
64
- {
65
- // Ignore this found `require()` if its a local modules
66
- if (moduleName in localModules) {
67
- return;
68
- }
69
-
70
- // Add this module name to the set of module names
71
- commonjsModules.add(moduleName);
72
-
73
- // Add the list of references from which this module was require()d
74
- if (! references[moduleName]) {
75
- references[moduleName] = new Set();
76
- }
77
- references[moduleName].add([ ...classInfo.commonjsModules[moduleName] ]);
78
-
79
- // There is at least one module
80
- hasCommonjsModules = true;
81
- });
63
+ Object.keys(classInfo.commonjsModules).forEach(moduleName => {
64
+ // Ignore this found `require()` if its a local modules
65
+ if (moduleName in localModules) {
66
+ return;
67
+ }
68
+
69
+ // Add this module name to the set of module names
70
+ commonjsModules.add(moduleName);
71
+
72
+ // Add the list of references from which this module was require()d
73
+ if (!references[moduleName]) {
74
+ references[moduleName] = new Set();
75
+ }
76
+ references[moduleName].add([
77
+ ...classInfo.commonjsModules[moduleName]
78
+ ]);
79
+
80
+ // There is at least one module
81
+ hasCommonjsModules = true;
82
+ });
82
83
  }
83
84
  }
84
85
  }
@@ -87,12 +88,7 @@ qx.Class.define("qx.tool.compiler.targets.meta.Browserify", {
87
88
  // any local modules specified for the application in
88
89
  // compile.json, browserify them
89
90
  if (hasCommonjsModules || localModules) {
90
- await this.__browserify(
91
- commonjsModules,
92
- references,
93
- localModules,
94
- ws
95
- );
91
+ await this.__browserify(commonjsModules, references, localModules, ws);
96
92
  }
97
93
 
98
94
  await new Promise(resolve => {
@@ -113,66 +109,64 @@ qx.Class.define("qx.tool.compiler.targets.meta.Browserify", {
113
109
  // Convert the Set of CommonJS module names to an array
114
110
  commonjsModules = [...commonjsModules];
115
111
 
116
- return new Promise(resolve =>
117
- {
118
- let b = browserify(
119
- [],
120
- {
121
- builtins : builtins,
122
- ignoreMissing : true,
123
- insertGlobals : true,
124
- detectGlobals : true
125
- });
126
- b._mdeps.on("missing", (id, parent) => {
127
- let message = [];
128
-
129
- message.push(`ERROR: could not locate require()d module: "${id}"`);
130
- message.push(" required from:");
131
-
132
- try {
133
- [ ...references[id] ].forEach(refs => {
134
- refs.forEach(ref =>
135
- {
136
- message.push(` ${ref}`);
137
- });
112
+ return new Promise(resolve => {
113
+ let b = browserify([], {
114
+ builtins: builtins,
115
+ ignoreMissing: true,
116
+ insertGlobals: true,
117
+ detectGlobals: true
118
+ });
119
+
120
+ b._mdeps.on("missing", (id, parent) => {
121
+ let message = [];
122
+
123
+ message.push(`ERROR: could not locate require()d module: "${id}"`);
124
+ message.push(" required from:");
125
+
126
+ try {
127
+ [...references[id]].forEach(refs => {
128
+ refs.forEach(ref => {
129
+ message.push(` ${ref}`);
138
130
  });
139
- } catch(e) {
140
- message.push(` <compile.json:application.localModules'>`);
141
- }
131
+ });
132
+ } catch (e) {
133
+ message.push(` <compile.json:application.localModules'>`);
134
+ }
135
+
136
+ qx.tool.compiler.Console.error(message.join("\n"));
137
+ });
142
138
 
143
- qx.tool.compiler.Console.error(message.join("\n"));
144
- });
139
+ // Include any dynamically determined `require()`d modules
140
+ if (commonjsModules.length > 0) {
141
+ b.require(commonjsModules);
142
+ }
145
143
 
146
- // Include any dynamically determined `require()`d modules
147
- if (commonjsModules.length > 0) {
148
- b.require(commonjsModules);
144
+ // Include any local modules specified for the application
145
+ // in compile.json
146
+ if (localModules) {
147
+ for (let requireName in localModules) {
148
+ b.require(localModules[requireName], { expose: requireName });
149
149
  }
150
+ }
151
+
152
+ // Ensure ES6 local modules are converted to CommonJS format
153
+ b.transform(babelify, {
154
+ presets: [preset],
155
+ sourceMaps: false,
156
+ global: true
157
+ });
150
158
 
151
- // Include any local modules specified for the application
152
- // in compile.json
153
- if (localModules) {
154
- for (let requireName in localModules) {
155
- b.require(localModules[requireName], { expose : requireName });
156
- }
159
+ b.bundle((e, output) => {
160
+ if (e) {
161
+ // We've already handled the case of missing module. This is something else.
162
+ qx.tool.compiler.Console.error(`Failed: ${e}`);
163
+ throw e;
157
164
  }
158
165
 
159
- // Ensure ES6 local modules are converted to CommonJS format
160
- b.transform(babelify, {
161
- presets: [preset],
162
- sourceMaps: false,
163
- global: true
164
- });
165
- b.bundle((e, output) => {
166
- if (e) {
167
- // We've already handled the case of missing module. This is something else.
168
- qx.tool.compiler.Console.error(`Failed: ${e}`);
169
- throw(e);
170
- }
171
-
172
- ws.write(output);
173
- resolve(null);
174
- });
166
+ ws.write(output);
167
+ resolve(null);
175
168
  });
169
+ });
176
170
  },
177
171
 
178
172
  /**