@loaders.gl/tile-converter 3.3.0-alpha.5 → 3.3.0-alpha.6

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 (169) hide show
  1. package/dist/3d-tiles-attributes-worker.js +2 -3
  2. package/dist/3d-tiles-attributes-worker.js.map +3 -3
  3. package/dist/converter.min.js +23 -20
  4. package/dist/dist.min.js +38221 -46898
  5. package/dist/es5/3d-tiles-attributes-worker.js +3 -6
  6. package/dist/es5/3d-tiles-attributes-worker.js.map +1 -1
  7. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +12 -111
  8. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  9. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +32 -72
  10. package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  11. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -8
  12. package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  13. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +0 -5
  14. package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  15. package/dist/es5/3d-tiles-converter/json-templates/tileset.js +0 -6
  16. package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  17. package/dist/es5/bundle.js +0 -1
  18. package/dist/es5/bundle.js.map +1 -1
  19. package/dist/es5/constants.js.map +1 -1
  20. package/dist/es5/converter-cli.js +2 -53
  21. package/dist/es5/converter-cli.js.map +1 -1
  22. package/dist/es5/deps-installer/deps-installer.js +5 -35
  23. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  24. package/dist/es5/i3s-attributes-worker.js +3 -6
  25. package/dist/es5/i3s-attributes-worker.js.map +1 -1
  26. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +2 -28
  27. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  28. package/dist/es5/i3s-converter/helpers/coordinate-converter.js +2 -20
  29. package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  30. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +0 -11
  31. package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  32. package/dist/es5/i3s-converter/helpers/feature-attributes.js +5 -34
  33. package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
  34. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +13 -45
  35. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  36. package/dist/es5/i3s-converter/helpers/geometry-converter.js +26 -221
  37. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  38. package/dist/es5/i3s-converter/helpers/gltf-attributes.js +2 -16
  39. package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  40. package/dist/es5/i3s-converter/helpers/node-debug.js +4 -23
  41. package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
  42. package/dist/es5/i3s-converter/helpers/node-pages.js +50 -86
  43. package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
  44. package/dist/es5/i3s-converter/i3s-converter.js +43 -360
  45. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  46. package/dist/es5/i3s-converter/json-templates/layers.js +1 -15
  47. package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
  48. package/dist/es5/i3s-converter/json-templates/metadata.js +0 -2
  49. package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -1
  50. package/dist/es5/i3s-converter/json-templates/node.js +2 -12
  51. package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
  52. package/dist/es5/i3s-converter/json-templates/scene-server.js +0 -2
  53. package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -1
  54. package/dist/es5/i3s-converter/json-templates/shared-resources.js +6 -29
  55. package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
  56. package/dist/es5/i3s-converter/json-templates/store.js.map +1 -1
  57. package/dist/es5/i3s-converter/types.js.map +1 -1
  58. package/dist/es5/i3s-server/app.js +0 -5
  59. package/dist/es5/i3s-server/app.js.map +1 -1
  60. package/dist/es5/i3s-server/controllers/index-controller.js +0 -16
  61. package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
  62. package/dist/es5/i3s-server/routes/index.js +1 -10
  63. package/dist/es5/i3s-server/routes/index.js.map +1 -1
  64. package/dist/es5/index.js +0 -3
  65. package/dist/es5/index.js.map +1 -1
  66. package/dist/es5/lib/utils/compress-util.js +19 -74
  67. package/dist/es5/lib/utils/compress-util.js.map +1 -1
  68. package/dist/es5/lib/utils/file-utils.js +10 -38
  69. package/dist/es5/lib/utils/file-utils.js.map +1 -1
  70. package/dist/es5/lib/utils/lod-conversion-utils.js +0 -7
  71. package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
  72. package/dist/es5/lib/utils/queue.js +0 -14
  73. package/dist/es5/lib/utils/queue.js.map +1 -1
  74. package/dist/es5/lib/utils/statistic-utills.js +1 -46
  75. package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
  76. package/dist/es5/lib/utils/write-queue.js +0 -52
  77. package/dist/es5/lib/utils/write-queue.js.map +1 -1
  78. package/dist/es5/pgm-loader.js +1 -8
  79. package/dist/es5/pgm-loader.js.map +1 -1
  80. package/dist/es5/workers/3d-tiles-attributes-worker.js +1 -8
  81. package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -1
  82. package/dist/es5/workers/i3s-attributes-worker.js +1 -9
  83. package/dist/es5/workers/i3s-attributes-worker.js.map +1 -1
  84. package/dist/esm/3d-tiles-attributes-worker.js +3 -1
  85. package/dist/esm/3d-tiles-attributes-worker.js.map +1 -1
  86. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +8 -40
  87. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  88. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +7 -38
  89. package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  90. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +1 -0
  91. package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
  92. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +1 -4
  93. package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
  94. package/dist/esm/3d-tiles-converter/json-templates/tileset.js +0 -3
  95. package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -1
  96. package/dist/esm/bundle.js +1 -1
  97. package/dist/esm/bundle.js.map +1 -1
  98. package/dist/esm/constants.js.map +1 -1
  99. package/dist/esm/converter-cli.js +3 -38
  100. package/dist/esm/converter-cli.js.map +1 -1
  101. package/dist/esm/deps-installer/deps-installer.js +6 -7
  102. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  103. package/dist/esm/i3s-attributes-worker.js +3 -1
  104. package/dist/esm/i3s-attributes-worker.js.map +1 -1
  105. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +4 -23
  106. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  107. package/dist/esm/i3s-converter/helpers/coordinate-converter.js +4 -6
  108. package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
  109. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +1 -0
  110. package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
  111. package/dist/esm/i3s-converter/helpers/feature-attributes.js +6 -20
  112. package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
  113. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +3 -22
  114. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  115. package/dist/esm/i3s-converter/helpers/geometry-converter.js +28 -139
  116. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  117. package/dist/esm/i3s-converter/helpers/gltf-attributes.js +7 -12
  118. package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
  119. package/dist/esm/i3s-converter/helpers/node-debug.js +3 -13
  120. package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
  121. package/dist/esm/i3s-converter/helpers/node-pages.js +2 -21
  122. package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
  123. package/dist/esm/i3s-converter/i3s-converter.js +49 -137
  124. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  125. package/dist/esm/i3s-converter/json-templates/layers.js +1 -11
  126. package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
  127. package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -1
  128. package/dist/esm/i3s-converter/json-templates/node.js +0 -4
  129. package/dist/esm/i3s-converter/json-templates/node.js.map +1 -1
  130. package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -1
  131. package/dist/esm/i3s-converter/json-templates/shared-resources.js +0 -12
  132. package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
  133. package/dist/esm/i3s-converter/json-templates/store.js.map +1 -1
  134. package/dist/esm/i3s-converter/types.js.map +1 -1
  135. package/dist/esm/i3s-server/app.js +0 -5
  136. package/dist/esm/i3s-server/app.js.map +1 -1
  137. package/dist/esm/i3s-server/controllers/index-controller.js +0 -5
  138. package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
  139. package/dist/esm/i3s-server/routes/index.js +0 -3
  140. package/dist/esm/i3s-server/routes/index.js.map +1 -1
  141. package/dist/esm/index.js.map +1 -1
  142. package/dist/esm/lib/utils/compress-util.js +19 -12
  143. package/dist/esm/lib/utils/compress-util.js.map +1 -1
  144. package/dist/esm/lib/utils/file-utils.js +10 -8
  145. package/dist/esm/lib/utils/file-utils.js.map +1 -1
  146. package/dist/esm/lib/utils/lod-conversion-utils.js +2 -6
  147. package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
  148. package/dist/esm/lib/utils/queue.js +0 -4
  149. package/dist/esm/lib/utils/queue.js.map +1 -1
  150. package/dist/esm/lib/utils/statistic-utills.js +0 -11
  151. package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
  152. package/dist/esm/lib/utils/write-queue.js +5 -23
  153. package/dist/esm/lib/utils/write-queue.js.map +1 -1
  154. package/dist/esm/pgm-loader.js +3 -1
  155. package/dist/esm/pgm-loader.js.map +1 -1
  156. package/dist/esm/workers/3d-tiles-attributes-worker.js +4 -1
  157. package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -1
  158. package/dist/esm/workers/i3s-attributes-worker.js +4 -1
  159. package/dist/esm/workers/i3s-attributes-worker.js.map +1 -1
  160. package/dist/i3s-attributes-worker.js +2 -3
  161. package/dist/i3s-attributes-worker.js.map +3 -3
  162. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  163. package/dist/i3s-converter/helpers/geometry-converter.js +2 -0
  164. package/dist/i3s-converter/i3s-converter.js +5 -1
  165. package/dist/pgm-loader.d.ts.map +1 -1
  166. package/dist/pgm-loader.js +2 -1
  167. package/package.json +15 -15
  168. package/src/i3s-converter/helpers/geometry-converter.ts +2 -0
  169. package/src/pgm-loader.ts +2 -2
@@ -1,38 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
7
+ exports.addFileToZip = addFileToZip;
8
8
  exports.compressFileWithGzip = compressFileWithGzip;
9
9
  exports.compressFilesWithZip = compressFilesWithZip;
10
10
  exports.compressWithChildProcess = compressWithChildProcess;
11
11
  exports.generateHash128FromZip = generateHash128FromZip;
12
- exports.addFileToZip = addFileToZip;
13
-
14
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
-
16
13
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
14
  var _zlib = require("zlib");
19
-
20
15
  var _path = require("path");
21
-
22
16
  var _fs = require("fs");
23
-
24
17
  var _archiver = _interopRequireDefault(require("archiver"));
25
-
26
18
  var _fileUtils = require("./file-utils");
27
-
28
19
  var _workerUtils = require("@loaders.gl/worker-utils");
29
-
30
20
  var _jszip = _interopRequireDefault(require("jszip"));
31
-
32
21
  var _crypto = require("@loaders.gl/crypto");
33
-
34
22
  var _crypt = _interopRequireDefault(require("crypt"));
35
-
36
23
  function compressFileWithGzip(pathFile) {
37
24
  var compressedPathFile = "".concat(pathFile, ".gz");
38
25
  var gzip = (0, _zlib.createGzip)();
@@ -54,13 +41,12 @@ function compressFileWithGzip(pathFile) {
54
41
  function compressFilesWithZip(_x, _x2) {
55
42
  return _compressFilesWithZip.apply(this, arguments);
56
43
  }
57
-
58
44
  function _compressFilesWithZip() {
59
45
  _compressFilesWithZip = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(fileMap, outputFile) {
60
46
  var level,
61
- output,
62
- archive,
63
- _args2 = arguments;
47
+ output,
48
+ archive,
49
+ _args2 = arguments;
64
50
  return _regenerator.default.wrap(function _callee2$(_context2) {
65
51
  while (1) {
66
52
  switch (_context2.prev = _context2.next) {
@@ -69,15 +55,12 @@ function _compressFilesWithZip() {
69
55
  _context2.prev = 1;
70
56
  _context2.next = 4;
71
57
  return (0, _fileUtils.removeFile)(outputFile);
72
-
73
58
  case 4:
74
59
  _context2.next = 8;
75
60
  break;
76
-
77
61
  case 6:
78
62
  _context2.prev = 6;
79
63
  _context2.t0 = _context2["catch"](1);
80
-
81
64
  case 8:
82
65
  output = (0, _fs.createWriteStream)(outputFile);
83
66
  archive = (0, _archiver.default)('zip', {
@@ -97,38 +80,37 @@ function _compressFilesWithZip() {
97
80
  console.log("".concat(archive.pointer(), " total bytes"));
98
81
  resolve(null);
99
82
  });
83
+
100
84
  output.on('end', function () {
101
85
  console.log('Data has been drained');
102
86
  resolve(null);
103
87
  });
88
+
104
89
  archive.on('warning', function (err) {
105
90
  console.log(err);
106
91
  reject(err);
107
92
  });
93
+
108
94
  archive.on('error', function (err) {
109
95
  reject(err);
110
96
  });
97
+
111
98
  archive.pipe(output);
112
99
  _context.t0 = _regenerator.default.keys(fileMap);
113
-
114
100
  case 6:
115
101
  if ((_context.t1 = _context.t0()).done) {
116
102
  _context.next = 13;
117
103
  break;
118
104
  }
119
-
120
105
  subFileName = _context.t1.value;
121
106
  subFileData = fileMap[subFileName];
122
107
  _context.next = 11;
123
108
  return appendFileToArchive(archive, subFileName, subFileData);
124
-
125
109
  case 11:
126
110
  _context.next = 6;
127
111
  break;
128
-
129
112
  case 13:
130
113
  archive.finalize();
131
-
132
114
  case 14:
133
115
  case "end":
134
116
  return _context.stop();
@@ -136,12 +118,10 @@ function _compressFilesWithZip() {
136
118
  }
137
119
  }, _callee);
138
120
  }));
139
-
140
121
  return function (_x18, _x19) {
141
122
  return _ref.apply(this, arguments);
142
123
  };
143
124
  }()));
144
-
145
125
  case 11:
146
126
  case "end":
147
127
  return _context2.stop();
@@ -151,11 +131,9 @@ function _compressFilesWithZip() {
151
131
  }));
152
132
  return _compressFilesWithZip.apply(this, arguments);
153
133
  }
154
-
155
134
  function compressWithChildProcess(_x3, _x4, _x5, _x6, _x7) {
156
135
  return _compressWithChildProcess.apply(this, arguments);
157
136
  }
158
-
159
137
  function _compressWithChildProcess() {
160
138
  _compressWithChildProcess = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(inputFolder, outputFile, level, inputFiles, sevenZipExe) {
161
139
  return _regenerator.default.wrap(function _callee3$(_context3) {
@@ -166,18 +144,14 @@ function _compressWithChildProcess() {
166
144
  _context3.next = 5;
167
145
  break;
168
146
  }
169
-
170
147
  _context3.next = 3;
171
148
  return compressWithChildProcessWindows(inputFolder, outputFile, level, inputFiles, sevenZipExe);
172
-
173
149
  case 3:
174
150
  _context3.next = 7;
175
151
  break;
176
-
177
152
  case 5:
178
153
  _context3.next = 7;
179
154
  return compressWithChildProcessUnix(inputFolder, outputFile, level, inputFiles);
180
-
181
155
  case 7:
182
156
  case "end":
183
157
  return _context3.stop();
@@ -187,19 +161,17 @@ function _compressWithChildProcess() {
187
161
  }));
188
162
  return _compressWithChildProcess.apply(this, arguments);
189
163
  }
190
-
191
164
  function compressWithChildProcessUnix(_x8, _x9) {
192
165
  return _compressWithChildProcessUnix.apply(this, arguments);
193
166
  }
194
-
195
167
  function _compressWithChildProcessUnix() {
196
168
  _compressWithChildProcessUnix = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(inputFolder, outputFile) {
197
169
  var level,
198
- inputFiles,
199
- fullOutputFile,
200
- args,
201
- childProcess,
202
- _args4 = arguments;
170
+ inputFiles,
171
+ fullOutputFile,
172
+ args,
173
+ childProcess,
174
+ _args4 = arguments;
203
175
  return _regenerator.default.wrap(function _callee4$(_context4) {
204
176
  while (1) {
205
177
  switch (_context4.prev = _context4.next) {
@@ -218,7 +190,6 @@ function _compressWithChildProcessUnix() {
218
190
  },
219
191
  wait: 0
220
192
  });
221
-
222
193
  case 7:
223
194
  case "end":
224
195
  return _context4.stop();
@@ -228,20 +199,18 @@ function _compressWithChildProcessUnix() {
228
199
  }));
229
200
  return _compressWithChildProcessUnix.apply(this, arguments);
230
201
  }
231
-
232
202
  function compressWithChildProcessWindows(_x10, _x11) {
233
203
  return _compressWithChildProcessWindows.apply(this, arguments);
234
204
  }
235
-
236
205
  function _compressWithChildProcessWindows() {
237
206
  _compressWithChildProcessWindows = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(inputFolder, outputFile) {
238
207
  var level,
239
- inputFiles,
240
- sevenZipExe,
241
- fullOutputFile,
242
- args,
243
- childProcess,
244
- _args5 = arguments;
208
+ inputFiles,
209
+ sevenZipExe,
210
+ fullOutputFile,
211
+ args,
212
+ childProcess,
213
+ _args5 = arguments;
245
214
  return _regenerator.default.wrap(function _callee5$(_context5) {
246
215
  while (1) {
247
216
  switch (_context5.prev = _context5.next) {
@@ -249,11 +218,9 @@ function _compressWithChildProcessWindows() {
249
218
  level = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : 0;
250
219
  inputFiles = _args5.length > 3 && _args5[3] !== undefined ? _args5[3] : (0, _path.join)('.', '*');
251
220
  sevenZipExe = _args5.length > 4 ? _args5[4] : undefined;
252
-
253
221
  if (inputFiles[0] === '@') {
254
222
  inputFiles = "*".concat(inputFiles.substr(1));
255
223
  }
256
-
257
224
  fullOutputFile = (0, _fileUtils.getAbsoluteFilePath)(outputFile);
258
225
  args = ['a', '-tzip', "-mx=".concat(level), fullOutputFile, inputFiles];
259
226
  childProcess = new _workerUtils.ChildProcessProxy();
@@ -266,7 +233,6 @@ function _compressWithChildProcessWindows() {
266
233
  },
267
234
  wait: 0
268
235
  });
269
-
270
236
  case 9:
271
237
  case "end":
272
238
  return _context5.stop();
@@ -276,55 +242,44 @@ function _compressWithChildProcessWindows() {
276
242
  }));
277
243
  return _compressWithChildProcessWindows.apply(this, arguments);
278
244
  }
279
-
280
245
  function generateHash128FromZip(_x12, _x13) {
281
246
  return _generateHash128FromZip.apply(this, arguments);
282
247
  }
283
-
284
248
  function _generateHash128FromZip() {
285
249
  _generateHash128FromZip = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(inputZipFile, outputFile) {
286
250
  var input, zip, hashTable, zipFiles, relativePath, zipEntry, _data, content, hash, output;
287
-
288
251
  return _regenerator.default.wrap(function _callee6$(_context6) {
289
252
  while (1) {
290
253
  switch (_context6.prev = _context6.next) {
291
254
  case 0:
292
255
  _context6.next = 2;
293
256
  return _fs.promises.readFile(inputZipFile);
294
-
295
257
  case 2:
296
258
  input = _context6.sent;
297
259
  _context6.next = 5;
298
260
  return _jszip.default.loadAsync(input);
299
-
300
261
  case 5:
301
262
  zip = _context6.sent;
302
263
  hashTable = [];
303
264
  zipFiles = zip.files;
304
265
  _context6.t0 = _regenerator.default.keys(zipFiles);
305
-
306
266
  case 9:
307
267
  if ((_context6.t1 = _context6.t0()).done) {
308
268
  _context6.next = 22;
309
269
  break;
310
270
  }
311
-
312
271
  relativePath = _context6.t1.value;
313
272
  zipEntry = zipFiles[relativePath];
314
273
  _data = '_data';
315
274
  content = zipEntry[_data].compressedContent;
316
-
317
275
  if (!zipEntry.dir) {
318
276
  _context6.next = 16;
319
277
  break;
320
278
  }
321
-
322
279
  return _context6.abrupt("continue", 9);
323
-
324
280
  case 16:
325
281
  _context6.next = 18;
326
282
  return new _crypto.MD5Hash().hash(Buffer.from(relativePath.toLowerCase()));
327
-
328
283
  case 18:
329
284
  hash = _context6.sent;
330
285
  hashTable.push({
@@ -333,13 +288,11 @@ function _generateHash128FromZip() {
333
288
  });
334
289
  _context6.next = 9;
335
290
  break;
336
-
337
291
  case 22:
338
292
  hashTable.sort(function (prev, next) {
339
293
  if (prev.key === next.key) {
340
294
  return prev.value < next.value ? -1 : 1;
341
295
  }
342
-
343
296
  return prev.key < next.key ? -1 : 1;
344
297
  });
345
298
  output = (0, _fs.createWriteStream)(outputFile);
@@ -352,16 +305,13 @@ function _generateHash128FromZip() {
352
305
  console.log(err);
353
306
  reject(err);
354
307
  });
355
-
356
308
  for (var _key in hashTable) {
357
309
  var item = hashTable[_key];
358
310
  var value = longToByteArray(item.value);
359
311
  output.write(Buffer.from(_crypt.default.hexToBytes(item.key).concat(value)));
360
312
  }
361
-
362
313
  output.close();
363
314
  }));
364
-
365
315
  case 25:
366
316
  case "end":
367
317
  return _context6.stop();
@@ -371,7 +321,6 @@ function _generateHash128FromZip() {
371
321
  }));
372
322
  return _generateHash128FromZip.apply(this, arguments);
373
323
  }
374
-
375
324
  function longToByteArray(long) {
376
325
  var buffer = new ArrayBuffer(8);
377
326
  var longNum = new Float64Array(buffer);
@@ -382,7 +331,6 @@ function longToByteArray(long) {
382
331
  function addFileToZip(_x14, _x15, _x16, _x17) {
383
332
  return _addFileToZip.apply(this, arguments);
384
333
  }
385
-
386
334
  function _addFileToZip() {
387
335
  _addFileToZip = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(inputFolder, fileName, zipFile, sevenZipExe) {
388
336
  return _regenerator.default.wrap(function _callee7$(_context7) {
@@ -391,10 +339,8 @@ function _addFileToZip() {
391
339
  case 0:
392
340
  _context7.next = 2;
393
341
  return compressWithChildProcess(inputFolder, zipFile, 0, fileName, sevenZipExe);
394
-
395
342
  case 2:
396
343
  console.log("".concat(fileName, " added to ").concat(zipFile, "."));
397
-
398
344
  case 3:
399
345
  case "end":
400
346
  return _context7.stop();
@@ -404,7 +350,6 @@ function _addFileToZip() {
404
350
  }));
405
351
  return _addFileToZip.apply(this, arguments);
406
352
  }
407
-
408
353
  function appendFileToArchive(archive, subFileName, subFileData) {
409
354
  return new Promise(function (resolve) {
410
355
  var fileStream = (0, _fs.createReadStream)(subFileData);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/compress-util.ts"],"names":["compressFileWithGzip","pathFile","compressedPathFile","gzip","input","output","Promise","resolve","reject","on","console","log","error","pipe","compressFilesWithZip","fileMap","outputFile","level","archive","zlib","pointer","err","subFileName","subFileData","appendFileToArchive","finalize","compressWithChildProcess","inputFolder","inputFiles","sevenZipExe","process","platform","compressWithChildProcessWindows","compressWithChildProcessUnix","fullOutputFile","args","childProcess","ChildProcessProxy","start","command","arguments","spawn","cwd","wait","substr","generateHash128FromZip","inputZipFile","fs","readFile","JSZip","loadAsync","zip","hashTable","zipFiles","files","relativePath","zipEntry","_data","content","compressedContent","dir","MD5Hash","hash","Buffer","from","toLowerCase","push","key","atob","value","byteOffset","sort","prev","next","item","longToByteArray","write","crypt","hexToBytes","concat","close","long","buffer","ArrayBuffer","longNum","Float64Array","parseInt","Array","Uint8Array","reverse","addFileToZip","fileName","zipFile","fileStream","append","name"],"mappings":"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","sourcesContent":["import {createGzip} from 'zlib';\nimport {join} from 'path';\nimport {promises as fs, createReadStream, createWriteStream} from 'fs';\nimport archiver from 'archiver';\nimport {removeFile} from './file-utils';\nimport {ChildProcessProxy} from '@loaders.gl/worker-utils';\nimport JSZip from 'jszip';\nimport {MD5Hash} from '@loaders.gl/crypto';\nimport crypt from 'crypt';\nimport {getAbsoluteFilePath} from './file-utils';\n\n/**\n * Compress file to gzip file\n *\n * @param pathFile - the path to the file\n * @return the path to the gzip file\n */\nexport function compressFileWithGzip(pathFile: string): Promise<string> {\n const compressedPathFile = `${pathFile}.gz`;\n const gzip = createGzip();\n const input = createReadStream(pathFile);\n const output = createWriteStream(compressedPathFile);\n\n return new Promise((resolve, reject) => {\n input.on('end', () => {\n console.log(`${compressedPathFile} compressed and saved.`); // eslint-disable-line no-undef,no-console\n resolve(compressedPathFile);\n });\n input.on('error', (error) => {\n console.log(`${compressedPathFile}: compression error!`); // eslint-disable-line no-undef,no-console\n reject(error);\n });\n input.pipe(gzip).pipe(output);\n });\n}\n\n/**\n * Compress files from map into slpk file\n *\n * @param fileMap - map with file paths (key: output path, value: input path)\n * @param outputFile - output slpk file\n * @param level - compression level\n */\nexport async function compressFilesWithZip(\n fileMap: {[key: string]: string},\n outputFile: string,\n level: number = 0\n) {\n // Before creating a new file, we need to delete the old file\n try {\n await removeFile(outputFile);\n } catch (e) {\n // Do nothing if old file doesn't exist\n }\n\n const output = createWriteStream(outputFile);\n const archive = archiver('zip', {\n zlib: {level} // Sets the compression level.\n });\n\n return new Promise(async (resolve, reject) => {\n // listen for all archive data to be writte\n // 'close' event is fired only when a file descriptor is involved\n output.on('close', function () {\n console.log(`${outputFile} saved.`); // eslint-disable-line no-undef,no-console\n console.log(`${archive.pointer()} total bytes`); // eslint-disable-line no-undef,no-console\n resolve(null);\n });\n\n // This event is fired when the data source is drained no matter what was the data source.\n // It is not part of this library but rather from the NodeJS Stream API.\n // @see: https://nodejs.org/api/stream.html#stream_event_end\n output.on('end', function () {\n console.log('Data has been drained'); // eslint-disable-line no-undef,no-console\n resolve(null);\n });\n\n // good practice to catch warnings (ie stat failures and other non-blocking errors)\n archive.on('warning', function (err) {\n console.log(err); // eslint-disable-line no-undef,no-console\n reject(err);\n });\n\n // good practice to catch this error explicitly\n archive.on('error', function (err) {\n reject(err);\n });\n\n // pipe archive data to the file\n archive.pipe(output);\n\n for (const subFileName in fileMap) {\n const subFileData = fileMap[subFileName];\n await appendFileToArchive(archive, subFileName, subFileData);\n }\n\n // finalize the archive (ie we are done appending files but streams have to finish yet)\n archive.finalize();\n });\n}\n\n/**\n * Compress files using external tool 'zip'/'7z'\n *\n * @param inputFolder - folder to archive - for cwd option\n * @param outputFile - output slpk file\n * @param level - compression level\n * @param inputFiles - input files path to pass to the executable as option\n * @param sevenZipExe - path to 7z.exe executable\n */\nexport async function compressWithChildProcess(\n inputFolder: string,\n outputFile: string,\n level: number,\n inputFiles: string,\n sevenZipExe: string\n) {\n // eslint-disable-next-line no-undef\n if (process.platform === 'win32') {\n await compressWithChildProcessWindows(inputFolder, outputFile, level, inputFiles, sevenZipExe);\n } else {\n await compressWithChildProcessUnix(inputFolder, outputFile, level, inputFiles);\n }\n}\n\n/**\n * Compress files using external linux tool 'zip'\n *\n * @param inputFolder - folder to archive - for cwd option\n * @param outputFile - output slpk file\n * @param level - compression level\n * @param inputFiles - input files path to pass to the executable as option\n */\nasync function compressWithChildProcessUnix(\n inputFolder: string,\n outputFile: string,\n level: number = 0,\n inputFiles: string = '.'\n) {\n const fullOutputFile = getAbsoluteFilePath(outputFile);\n const args = [`-${level}`, '-r', fullOutputFile, inputFiles];\n const childProcess = new ChildProcessProxy();\n await childProcess.start({\n command: 'zip',\n arguments: args,\n spawn: {\n cwd: inputFolder\n },\n wait: 0\n });\n}\n\n/**\n * Compress files using windows external tool '7z'\n *\n * @param inputFolder - folder to archive - for cwd option\n * @param outputFile - output slpk file\n * @param level - compression level\n * @param inputFiles - input files path to pass to the executable as option\n * @param sevenZipExe - path to 7z.exe executable\n */\nasync function compressWithChildProcessWindows(\n inputFolder: string,\n outputFile: string,\n level: number = 0,\n inputFiles: string = join('.', '*'),\n sevenZipExe: string\n) {\n // Workaround for @listfile issue. In 7z.exe @-leading files are handled as listfiles\n // https://sevenzip.osdn.jp/chm/cmdline/syntax.htm\n if (inputFiles[0] === '@') {\n inputFiles = `*${inputFiles.substr(1)}`;\n }\n\n const fullOutputFile = getAbsoluteFilePath(outputFile);\n const args = ['a', '-tzip', `-mx=${level}`, fullOutputFile, inputFiles];\n const childProcess = new ChildProcessProxy();\n await childProcess.start({\n command: sevenZipExe,\n arguments: args,\n spawn: {\n cwd: `${inputFolder}`\n },\n wait: 0\n });\n}\n\n/**\n * Generate hash file from zip archive\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.7/slpk_hashtable.cmn.md\n *\n * @param inputZipFile\n * @param outputFile\n */\nexport async function generateHash128FromZip(inputZipFile: string, outputFile: string) {\n const input = await fs.readFile(inputZipFile);\n const zip = await JSZip.loadAsync(input);\n const hashTable: {key: string; value: string}[] = [];\n const zipFiles = zip.files;\n for (const relativePath in zipFiles) {\n const zipEntry = zipFiles[relativePath];\n // Had to use a workaround because the correct string is getting the wrong data\n // const content = await zipEntry.async('nodebuffer');\n // _data isn't described in the interface, so lint thought it was wrong\n const _data = '_data';\n const content = zipEntry[_data].compressedContent;\n if (zipEntry.dir) continue; // eslint-disable-line no-continue\n // eslint-disable-next-line no-undef\n const hash = await new MD5Hash().hash(Buffer.from(relativePath.toLowerCase()));\n // eslint-disable-next-line no-undef\n hashTable.push({key: atob(hash), value: content.byteOffset});\n }\n\n hashTable.sort((prev, next) => {\n if (prev.key === next.key) {\n return prev.value < next.value ? -1 : 1;\n }\n return prev.key < next.key ? -1 : 1;\n });\n\n const output = createWriteStream(outputFile);\n return new Promise((resolve, reject) => {\n output.on('close', function () {\n console.log(`${outputFile} generated and saved`); // eslint-disable-line\n resolve(null);\n });\n output.on('error', function (err) {\n console.log(err); // eslint-disable-line\n reject(err);\n });\n for (const key in hashTable) {\n const item = hashTable[key];\n const value = longToByteArray(item.value);\n // TODO: perhaps you need to wait for the 'drain' event if the write returns 'false'\n // eslint-disable-next-line no-undef\n output.write(Buffer.from(crypt.hexToBytes(item.key).concat(value)));\n }\n output.close();\n });\n}\n\n/**\n * Encode 64 bit value to byte array\n *\n * @param long - stringified number\n * @returns\n */\nfunction longToByteArray(long: string): number[] {\n const buffer = new ArrayBuffer(8); // JS numbers are 8 bytes long, or 64 bits\n const longNum = new Float64Array(buffer); // so equivalent to Float64\n longNum[0] = parseInt(long);\n return Array.from(new Uint8Array(buffer)).reverse(); // reverse to get little endian\n}\n\n/**\n * Add file to zip archive\n *\n * @param inputFile\n * @param fileName\n * @param zipFile\n * @param sevenZipExe\n */\nexport async function addFileToZip(\n inputFolder: string,\n fileName: string,\n zipFile: string,\n sevenZipExe: string\n) {\n await compressWithChildProcess(inputFolder, zipFile, 0, fileName, sevenZipExe);\n console.log(`${fileName} added to ${zipFile}.`); // eslint-disable-line\n}\n\n/**\n *\n * @param archive zip archive instance\n * @param subFileName file path inside archive\n * @param subFileData source file path\n * @returns\n */\nfunction appendFileToArchive(archive: any, subFileName: string, subFileData: string) {\n return new Promise((resolve) => {\n const fileStream = createReadStream(subFileData);\n console.log(`Compression start: ${subFileName}`); // eslint-disable-line no-undef,no-console\n fileStream.on('close', () => {\n console.log(`Compression finish: ${subFileName}`); // eslint-disable-line no-undef,no-console\n resolve(null);\n });\n archive.append(fileStream, {name: subFileName});\n });\n}\n"],"file":"compress-util.js"}
1
+ {"version":3,"file":"compress-util.js","names":["compressFileWithGzip","pathFile","compressedPathFile","gzip","createGzip","input","createReadStream","output","createWriteStream","Promise","resolve","reject","on","console","log","error","pipe","compressFilesWithZip","fileMap","outputFile","level","removeFile","archive","archiver","zlib","pointer","err","subFileName","subFileData","appendFileToArchive","finalize","compressWithChildProcess","inputFolder","inputFiles","sevenZipExe","process","platform","compressWithChildProcessWindows","compressWithChildProcessUnix","fullOutputFile","getAbsoluteFilePath","args","childProcess","ChildProcessProxy","start","command","arguments","spawn","cwd","wait","join","substr","generateHash128FromZip","inputZipFile","fs","readFile","JSZip","loadAsync","zip","hashTable","zipFiles","files","relativePath","zipEntry","_data","content","compressedContent","dir","MD5Hash","hash","Buffer","from","toLowerCase","push","key","atob","value","byteOffset","sort","prev","next","item","longToByteArray","write","crypt","hexToBytes","concat","close","long","buffer","ArrayBuffer","longNum","Float64Array","parseInt","Array","Uint8Array","reverse","addFileToZip","fileName","zipFile","fileStream","append","name"],"sources":["../../../../src/lib/utils/compress-util.ts"],"sourcesContent":["import {createGzip} from 'zlib';\nimport {join} from 'path';\nimport {promises as fs, createReadStream, createWriteStream} from 'fs';\nimport archiver from 'archiver';\nimport {removeFile} from './file-utils';\nimport {ChildProcessProxy} from '@loaders.gl/worker-utils';\nimport JSZip from 'jszip';\nimport {MD5Hash} from '@loaders.gl/crypto';\nimport crypt from 'crypt';\nimport {getAbsoluteFilePath} from './file-utils';\n\n/**\n * Compress file to gzip file\n *\n * @param pathFile - the path to the file\n * @return the path to the gzip file\n */\nexport function compressFileWithGzip(pathFile: string): Promise<string> {\n const compressedPathFile = `${pathFile}.gz`;\n const gzip = createGzip();\n const input = createReadStream(pathFile);\n const output = createWriteStream(compressedPathFile);\n\n return new Promise((resolve, reject) => {\n input.on('end', () => {\n console.log(`${compressedPathFile} compressed and saved.`); // eslint-disable-line no-undef,no-console\n resolve(compressedPathFile);\n });\n input.on('error', (error) => {\n console.log(`${compressedPathFile}: compression error!`); // eslint-disable-line no-undef,no-console\n reject(error);\n });\n input.pipe(gzip).pipe(output);\n });\n}\n\n/**\n * Compress files from map into slpk file\n *\n * @param fileMap - map with file paths (key: output path, value: input path)\n * @param outputFile - output slpk file\n * @param level - compression level\n */\nexport async function compressFilesWithZip(\n fileMap: {[key: string]: string},\n outputFile: string,\n level: number = 0\n) {\n // Before creating a new file, we need to delete the old file\n try {\n await removeFile(outputFile);\n } catch (e) {\n // Do nothing if old file doesn't exist\n }\n\n const output = createWriteStream(outputFile);\n const archive = archiver('zip', {\n zlib: {level} // Sets the compression level.\n });\n\n return new Promise(async (resolve, reject) => {\n // listen for all archive data to be writte\n // 'close' event is fired only when a file descriptor is involved\n output.on('close', function () {\n console.log(`${outputFile} saved.`); // eslint-disable-line no-undef,no-console\n console.log(`${archive.pointer()} total bytes`); // eslint-disable-line no-undef,no-console\n resolve(null);\n });\n\n // This event is fired when the data source is drained no matter what was the data source.\n // It is not part of this library but rather from the NodeJS Stream API.\n // @see: https://nodejs.org/api/stream.html#stream_event_end\n output.on('end', function () {\n console.log('Data has been drained'); // eslint-disable-line no-undef,no-console\n resolve(null);\n });\n\n // good practice to catch warnings (ie stat failures and other non-blocking errors)\n archive.on('warning', function (err) {\n console.log(err); // eslint-disable-line no-undef,no-console\n reject(err);\n });\n\n // good practice to catch this error explicitly\n archive.on('error', function (err) {\n reject(err);\n });\n\n // pipe archive data to the file\n archive.pipe(output);\n\n for (const subFileName in fileMap) {\n const subFileData = fileMap[subFileName];\n await appendFileToArchive(archive, subFileName, subFileData);\n }\n\n // finalize the archive (ie we are done appending files but streams have to finish yet)\n archive.finalize();\n });\n}\n\n/**\n * Compress files using external tool 'zip'/'7z'\n *\n * @param inputFolder - folder to archive - for cwd option\n * @param outputFile - output slpk file\n * @param level - compression level\n * @param inputFiles - input files path to pass to the executable as option\n * @param sevenZipExe - path to 7z.exe executable\n */\nexport async function compressWithChildProcess(\n inputFolder: string,\n outputFile: string,\n level: number,\n inputFiles: string,\n sevenZipExe: string\n) {\n // eslint-disable-next-line no-undef\n if (process.platform === 'win32') {\n await compressWithChildProcessWindows(inputFolder, outputFile, level, inputFiles, sevenZipExe);\n } else {\n await compressWithChildProcessUnix(inputFolder, outputFile, level, inputFiles);\n }\n}\n\n/**\n * Compress files using external linux tool 'zip'\n *\n * @param inputFolder - folder to archive - for cwd option\n * @param outputFile - output slpk file\n * @param level - compression level\n * @param inputFiles - input files path to pass to the executable as option\n */\nasync function compressWithChildProcessUnix(\n inputFolder: string,\n outputFile: string,\n level: number = 0,\n inputFiles: string = '.'\n) {\n const fullOutputFile = getAbsoluteFilePath(outputFile);\n const args = [`-${level}`, '-r', fullOutputFile, inputFiles];\n const childProcess = new ChildProcessProxy();\n await childProcess.start({\n command: 'zip',\n arguments: args,\n spawn: {\n cwd: inputFolder\n },\n wait: 0\n });\n}\n\n/**\n * Compress files using windows external tool '7z'\n *\n * @param inputFolder - folder to archive - for cwd option\n * @param outputFile - output slpk file\n * @param level - compression level\n * @param inputFiles - input files path to pass to the executable as option\n * @param sevenZipExe - path to 7z.exe executable\n */\nasync function compressWithChildProcessWindows(\n inputFolder: string,\n outputFile: string,\n level: number = 0,\n inputFiles: string = join('.', '*'),\n sevenZipExe: string\n) {\n // Workaround for @listfile issue. In 7z.exe @-leading files are handled as listfiles\n // https://sevenzip.osdn.jp/chm/cmdline/syntax.htm\n if (inputFiles[0] === '@') {\n inputFiles = `*${inputFiles.substr(1)}`;\n }\n\n const fullOutputFile = getAbsoluteFilePath(outputFile);\n const args = ['a', '-tzip', `-mx=${level}`, fullOutputFile, inputFiles];\n const childProcess = new ChildProcessProxy();\n await childProcess.start({\n command: sevenZipExe,\n arguments: args,\n spawn: {\n cwd: `${inputFolder}`\n },\n wait: 0\n });\n}\n\n/**\n * Generate hash file from zip archive\n * https://github.com/Esri/i3s-spec/blob/master/docs/1.7/slpk_hashtable.cmn.md\n *\n * @param inputZipFile\n * @param outputFile\n */\nexport async function generateHash128FromZip(inputZipFile: string, outputFile: string) {\n const input = await fs.readFile(inputZipFile);\n const zip = await JSZip.loadAsync(input);\n const hashTable: {key: string; value: string}[] = [];\n const zipFiles = zip.files;\n for (const relativePath in zipFiles) {\n const zipEntry = zipFiles[relativePath];\n // Had to use a workaround because the correct string is getting the wrong data\n // const content = await zipEntry.async('nodebuffer');\n // _data isn't described in the interface, so lint thought it was wrong\n const _data = '_data';\n const content = zipEntry[_data].compressedContent;\n if (zipEntry.dir) continue; // eslint-disable-line no-continue\n // eslint-disable-next-line no-undef\n const hash = await new MD5Hash().hash(Buffer.from(relativePath.toLowerCase()));\n // eslint-disable-next-line no-undef\n hashTable.push({key: atob(hash), value: content.byteOffset});\n }\n\n hashTable.sort((prev, next) => {\n if (prev.key === next.key) {\n return prev.value < next.value ? -1 : 1;\n }\n return prev.key < next.key ? -1 : 1;\n });\n\n const output = createWriteStream(outputFile);\n return new Promise((resolve, reject) => {\n output.on('close', function () {\n console.log(`${outputFile} generated and saved`); // eslint-disable-line\n resolve(null);\n });\n output.on('error', function (err) {\n console.log(err); // eslint-disable-line\n reject(err);\n });\n for (const key in hashTable) {\n const item = hashTable[key];\n const value = longToByteArray(item.value);\n // TODO: perhaps you need to wait for the 'drain' event if the write returns 'false'\n // eslint-disable-next-line no-undef\n output.write(Buffer.from(crypt.hexToBytes(item.key).concat(value)));\n }\n output.close();\n });\n}\n\n/**\n * Encode 64 bit value to byte array\n *\n * @param long - stringified number\n * @returns\n */\nfunction longToByteArray(long: string): number[] {\n const buffer = new ArrayBuffer(8); // JS numbers are 8 bytes long, or 64 bits\n const longNum = new Float64Array(buffer); // so equivalent to Float64\n longNum[0] = parseInt(long);\n return Array.from(new Uint8Array(buffer)).reverse(); // reverse to get little endian\n}\n\n/**\n * Add file to zip archive\n *\n * @param inputFile\n * @param fileName\n * @param zipFile\n * @param sevenZipExe\n */\nexport async function addFileToZip(\n inputFolder: string,\n fileName: string,\n zipFile: string,\n sevenZipExe: string\n) {\n await compressWithChildProcess(inputFolder, zipFile, 0, fileName, sevenZipExe);\n console.log(`${fileName} added to ${zipFile}.`); // eslint-disable-line\n}\n\n/**\n *\n * @param archive zip archive instance\n * @param subFileName file path inside archive\n * @param subFileData source file path\n * @returns\n */\nfunction appendFileToArchive(archive: any, subFileName: string, subFileData: string) {\n return new Promise((resolve) => {\n const fileStream = createReadStream(subFileData);\n console.log(`Compression start: ${subFileName}`); // eslint-disable-line no-undef,no-console\n fileStream.on('close', () => {\n console.log(`Compression finish: ${subFileName}`); // eslint-disable-line no-undef,no-console\n resolve(null);\n });\n archive.append(fileStream, {name: subFileName});\n });\n}\n"],"mappings":"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"}
@@ -1,89 +1,71 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.writeFile = writeFile;
9
- exports.writeFileForSlpk = writeFileForSlpk;
7
+ exports.getAbsoluteFilePath = getAbsoluteFilePath;
10
8
  exports.removeDir = removeDir;
11
9
  exports.removeFile = removeFile;
12
- exports.getAbsoluteFilePath = getAbsoluteFilePath;
13
-
10
+ exports.writeFile = writeFile;
11
+ exports.writeFileForSlpk = writeFileForSlpk;
14
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
-
16
13
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
14
  var _fs = require("fs");
19
-
20
15
  var _path = require("path");
21
-
22
16
  var _compressUtil = require("./compress-util");
23
-
24
17
  function writeFile(_x, _x2) {
25
18
  return _writeFile.apply(this, arguments);
26
19
  }
27
-
28
20
  function _writeFile() {
29
21
  _writeFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path, data) {
30
22
  var fileName,
31
- toWriteData,
32
- pathFile,
33
- _args = arguments;
23
+ toWriteData,
24
+ pathFile,
25
+ _args = arguments;
34
26
  return _regenerator.default.wrap(function _callee$(_context) {
35
27
  while (1) {
36
28
  switch (_context.prev = _context.next) {
37
29
  case 0:
38
30
  fileName = _args.length > 2 && _args[2] !== undefined ? _args[2] : 'index.json';
39
-
40
31
  if (!(data instanceof Promise)) {
41
32
  _context.next = 9;
42
33
  break;
43
34
  }
44
-
45
35
  _context.t0 = Uint8Array;
46
36
  _context.next = 5;
47
37
  return data;
48
-
49
38
  case 5:
50
39
  _context.t1 = _context.sent;
51
40
  toWriteData = new _context.t0(_context.t1);
52
41
  _context.next = 10;
53
42
  break;
54
-
55
43
  case 9:
56
44
  if (data instanceof ArrayBuffer) {
57
45
  toWriteData = new Uint8Array(data);
58
46
  } else {
59
47
  toWriteData = data;
60
48
  }
61
-
62
49
  case 10:
63
50
  _context.next = 12;
64
51
  return _fs.promises.mkdir(path, {
65
52
  recursive: true
66
53
  });
67
-
68
54
  case 12:
69
55
  pathFile = (0, _path.join)(path, fileName);
70
56
  _context.prev = 13;
71
57
  _context.next = 16;
72
58
  return _fs.promises.writeFile(pathFile, toWriteData);
73
-
74
59
  case 16:
75
60
  _context.next = 21;
76
61
  break;
77
-
78
62
  case 18:
79
63
  _context.prev = 18;
80
64
  _context.t2 = _context["catch"](13);
81
65
  throw _context.t2;
82
-
83
66
  case 21:
84
67
  console.log("".concat(pathFile, " saved."));
85
68
  return _context.abrupt("return", pathFile);
86
-
87
69
  case 23:
88
70
  case "end":
89
71
  return _context.stop();
@@ -93,18 +75,16 @@ function _writeFile() {
93
75
  }));
94
76
  return _writeFile.apply(this, arguments);
95
77
  }
96
-
97
78
  function writeFileForSlpk(_x3, _x4) {
98
79
  return _writeFileForSlpk.apply(this, arguments);
99
80
  }
100
-
101
81
  function _writeFileForSlpk() {
102
82
  _writeFileForSlpk = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(path, data) {
103
83
  var fileName,
104
- compress,
105
- pathFile,
106
- pathGzFile,
107
- _args2 = arguments;
84
+ compress,
85
+ pathFile,
86
+ pathGzFile,
87
+ _args2 = arguments;
108
88
  return _regenerator.default.wrap(function _callee2$(_context2) {
109
89
  while (1) {
110
90
  switch (_context2.prev = _context2.next) {
@@ -113,29 +93,22 @@ function _writeFileForSlpk() {
113
93
  compress = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : true;
114
94
  _context2.next = 4;
115
95
  return writeFile(path, data, fileName);
116
-
117
96
  case 4:
118
97
  pathFile = _context2.sent;
119
-
120
98
  if (!compress) {
121
99
  _context2.next = 12;
122
100
  break;
123
101
  }
124
-
125
102
  _context2.next = 8;
126
103
  return (0, _compressUtil.compressFileWithGzip)(pathFile);
127
-
128
104
  case 8:
129
105
  pathGzFile = _context2.sent;
130
106
  _context2.next = 11;
131
107
  return removeFile(pathFile);
132
-
133
108
  case 11:
134
109
  return _context2.abrupt("return", pathGzFile);
135
-
136
110
  case 12:
137
111
  return _context2.abrupt("return", pathFile);
138
-
139
112
  case 13:
140
113
  case "end":
141
114
  return _context2.stop();
@@ -145,7 +118,6 @@ function _writeFileForSlpk() {
145
118
  }));
146
119
  return _writeFileForSlpk.apply(this, arguments);
147
120
  }
148
-
149
121
  function removeDir(path) {
150
122
  return _fs.promises.rmdir(path, {
151
123
  recursive: true
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/utils/file-utils.ts"],"names":["writeFile","path","data","fileName","Promise","Uint8Array","toWriteData","ArrayBuffer","fs","mkdir","recursive","pathFile","console","log","writeFileForSlpk","compress","pathGzFile","removeFile","removeDir","rmdir","unlink","getAbsoluteFilePath","filePath","process","cwd"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;SASsBA,S;;;;;yEAAf,iBACLC,IADK,EAELC,IAFK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGLC,YAAAA,QAHK,2DAGc,YAHd;;AAAA,kBAMDD,IAAI,YAAYE,OANf;AAAA;AAAA;AAAA;;AAAA,0BAOeC,UAPf;AAAA;AAAA,mBAOgCH,IAPhC;;AAAA;AAAA;AAOHI,YAAAA,WAPG;AAAA;AAAA;;AAAA;AAQE,gBAAIJ,IAAI,YAAYK,WAApB,EAAiC;AACtCD,cAAAA,WAAW,GAAG,IAAID,UAAJ,CAAeH,IAAf,CAAd;AACD,aAFM,MAEA;AACLI,cAAAA,WAAW,GAAGJ,IAAd;AACD;;AAZI;AAAA;AAAA,mBAaCM,aAAGC,KAAH,CAASR,IAAT,EAAe;AAACS,cAAAA,SAAS,EAAE;AAAZ,aAAf,CAbD;;AAAA;AAcCC,YAAAA,QAdD,GAcY,gBAAKV,IAAL,EAAWE,QAAX,CAdZ;AAAA;AAAA;AAAA,mBAgBGK,aAAGR,SAAH,CAAaW,QAAb,EAAuBL,WAAvB,CAhBH;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAoBLM,YAAAA,OAAO,CAACC,GAAR,WAAeF,QAAf;AApBK,6CAqBEA,QArBF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;SAgCeG,gB;;;;;gFAAf,kBACLb,IADK,EAELC,IAFK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGLC,YAAAA,QAHK,8DAGc,YAHd;AAILY,YAAAA,QAJK,8DAIe,IAJf;AAAA;AAAA,mBAMkBf,SAAS,CAACC,IAAD,EAAOC,IAAP,EAAaC,QAAb,CAN3B;;AAAA;AAMCQ,YAAAA,QAND;;AAAA,iBAODI,QAPC;AAAA;AAAA;AAAA;;AAAA;AAAA,mBAQsB,wCAAqBJ,QAArB,CARtB;;AAAA;AAQGK,YAAAA,UARH;AAAA;AAAA,mBAUGC,UAAU,CAACN,QAAD,CAVb;;AAAA;AAAA,8CAWIK,UAXJ;;AAAA;AAAA,8CAaEL,QAbF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAqBA,SAASO,SAAT,CAAmBjB,IAAnB,EAAiC;AACtC,SAAOO,aAAGW,KAAH,CAASlB,IAAT,EAAe;AAACS,IAAAA,SAAS,EAAE;AAAZ,GAAf,CAAP;AACD;;AAOM,SAASO,UAAT,CAAoBhB,IAApB,EAAkC;AACvC,SAAOO,aAAGY,MAAH,CAAUnB,IAAV,CAAP;AACD;;AAMM,SAASoB,mBAAT,CAA6BC,QAA7B,EAA+C;AACpD,SAAO,sBAAWA,QAAX,IAAuBA,QAAvB,GAAkC,gBAAKC,OAAO,CAACC,GAAR,EAAL,EAAoBF,QAApB,CAAzC;AACD","sourcesContent":["import {promises as fs} from 'fs';\nimport {isAbsolute, join} from 'path';\nimport {compressFileWithGzip} from './compress-util';\n\n/**\n * Write a file with data and name fileName to path\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n */\nexport async function writeFile(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json'\n): Promise<string> {\n let toWriteData: string | Uint8Array;\n if (data instanceof Promise) {\n toWriteData = new Uint8Array(await data);\n } else if (data instanceof ArrayBuffer) {\n toWriteData = new Uint8Array(data as ArrayBuffer);\n } else {\n toWriteData = data;\n }\n await fs.mkdir(path, {recursive: true});\n const pathFile = join(path, fileName);\n try {\n await fs.writeFile(pathFile, toWriteData);\n } catch (err) {\n throw err;\n }\n console.log(`${pathFile} saved.`); // eslint-disable-line\n return pathFile;\n}\n\n/**\n * Write a file with data and name fileName to path - specific one for further packaging into slpk\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n * @param compress - if need to compress file with gzip (default: true)\n */\nexport async function writeFileForSlpk(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json',\n compress: boolean = true\n): Promise<string> {\n const pathFile = await writeFile(path, data, fileName);\n if (compress) {\n const pathGzFile = await compressFileWithGzip(pathFile);\n // After compression, we don't need an uncompressed file\n await removeFile(pathFile);\n return pathGzFile;\n }\n return pathFile;\n}\n\n/**\n * Remove dir with path\n *\n * @param path\n */\nexport function removeDir(path: string) {\n return fs.rmdir(path, {recursive: true});\n}\n\n/**\n * Remove file with path\n *\n * @param path\n */\nexport function removeFile(path: string) {\n return fs.unlink(path);\n}\n\n/**\n * Generates absolute file path\n * @param filePath\n */\nexport function getAbsoluteFilePath(filePath: string) {\n return isAbsolute(filePath) ? filePath : join(process.cwd(), filePath); // eslint-disable-line no-undef\n}\n"],"file":"file-utils.js"}
1
+ {"version":3,"file":"file-utils.js","names":["writeFile","path","data","fileName","Promise","Uint8Array","toWriteData","ArrayBuffer","fs","mkdir","recursive","pathFile","join","console","log","writeFileForSlpk","compress","compressFileWithGzip","pathGzFile","removeFile","removeDir","rmdir","unlink","getAbsoluteFilePath","filePath","isAbsolute","process","cwd"],"sources":["../../../../src/lib/utils/file-utils.ts"],"sourcesContent":["import {promises as fs} from 'fs';\nimport {isAbsolute, join} from 'path';\nimport {compressFileWithGzip} from './compress-util';\n\n/**\n * Write a file with data and name fileName to path\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n */\nexport async function writeFile(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json'\n): Promise<string> {\n let toWriteData: string | Uint8Array;\n if (data instanceof Promise) {\n toWriteData = new Uint8Array(await data);\n } else if (data instanceof ArrayBuffer) {\n toWriteData = new Uint8Array(data as ArrayBuffer);\n } else {\n toWriteData = data;\n }\n await fs.mkdir(path, {recursive: true});\n const pathFile = join(path, fileName);\n try {\n await fs.writeFile(pathFile, toWriteData);\n } catch (err) {\n throw err;\n }\n console.log(`${pathFile} saved.`); // eslint-disable-line\n return pathFile;\n}\n\n/**\n * Write a file with data and name fileName to path - specific one for further packaging into slpk\n *\n * @param path - output path\n * @param data - file content\n * @param fileName - name of output file (default: index.json)\n * @param compress - if need to compress file with gzip (default: true)\n */\nexport async function writeFileForSlpk(\n path: string,\n data: string | Uint8Array | ArrayBuffer | Promise<ArrayBuffer>,\n fileName: string = 'index.json',\n compress: boolean = true\n): Promise<string> {\n const pathFile = await writeFile(path, data, fileName);\n if (compress) {\n const pathGzFile = await compressFileWithGzip(pathFile);\n // After compression, we don't need an uncompressed file\n await removeFile(pathFile);\n return pathGzFile;\n }\n return pathFile;\n}\n\n/**\n * Remove dir with path\n *\n * @param path\n */\nexport function removeDir(path: string) {\n return fs.rmdir(path, {recursive: true});\n}\n\n/**\n * Remove file with path\n *\n * @param path\n */\nexport function removeFile(path: string) {\n return fs.unlink(path);\n}\n\n/**\n * Generates absolute file path\n * @param filePath\n */\nexport function getAbsoluteFilePath(filePath: string) {\n return isAbsolute(filePath) ? filePath : join(process.cwd(), filePath); // eslint-disable-line no-undef\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AAAqD,SAS/BA,SAAS;EAAA;AAAA;AAAA;EAAA,uEAAxB,iBACLC,IAAY,EACZC,IAA8D;IAAA;MAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAC9DC,QAAgB,2DAAG,YAAY;YAAA,MAG3BD,IAAI,YAAYE,OAAO;cAAA;cAAA;YAAA;YAAA,cACPC,UAAU;YAAA;YAAA,OAAOH,IAAI;UAAA;YAAA;YAAvCI,WAAW;YAAA;YAAA;UAAA;YACN,IAAIJ,IAAI,YAAYK,WAAW,EAAE;cACtCD,WAAW,GAAG,IAAID,UAAU,CAACH,IAAI,CAAgB;YACnD,CAAC,MAAM;cACLI,WAAW,GAAGJ,IAAI;YACpB;UAAC;YAAA;YAAA,OACKM,YAAE,CAACC,KAAK,CAACR,IAAI,EAAE;cAACS,SAAS,EAAE;YAAI,CAAC,CAAC;UAAA;YACjCC,QAAQ,GAAG,IAAAC,UAAI,EAACX,IAAI,EAAEE,QAAQ,CAAC;YAAA;YAAA;YAAA,OAE7BK,YAAE,CAACR,SAAS,CAACW,QAAQ,EAAEL,WAAW,CAAC;UAAA;YAAA;YAAA;UAAA;YAAA;YAAA;YAAA;UAAA;YAI3CO,OAAO,CAACC,GAAG,WAAIH,QAAQ,aAAU;YAAC,iCAC3BA,QAAQ;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAChB;EAAA;AAAA;AAAA,SAUqBI,gBAAgB;EAAA;AAAA;AAAA;EAAA,8EAA/B,kBACLd,IAAY,EACZC,IAA8D;IAAA;MAAA;MAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAC9DC,QAAgB,8DAAG,YAAY;YAC/Ba,QAAiB,8DAAG,IAAI;YAAA;YAAA,OAEDhB,SAAS,CAACC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,CAAC;UAAA;YAAhDQ,QAAQ;YAAA,KACVK,QAAQ;cAAA;cAAA;YAAA;YAAA;YAAA,OACe,IAAAC,kCAAoB,EAACN,QAAQ,CAAC;UAAA;YAAjDO,UAAU;YAAA;YAAA,OAEVC,UAAU,CAACR,QAAQ,CAAC;UAAA;YAAA,kCACnBO,UAAU;UAAA;YAAA,kCAEZP,QAAQ;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAChB;EAAA;AAAA;AAOM,SAASS,SAAS,CAACnB,IAAY,EAAE;EACtC,OAAOO,YAAE,CAACa,KAAK,CAACpB,IAAI,EAAE;IAACS,SAAS,EAAE;EAAI,CAAC,CAAC;AAC1C;;AAOO,SAASS,UAAU,CAAClB,IAAY,EAAE;EACvC,OAAOO,YAAE,CAACc,MAAM,CAACrB,IAAI,CAAC;AACxB;;AAMO,SAASsB,mBAAmB,CAACC,QAAgB,EAAE;EACpD,OAAO,IAAAC,gBAAU,EAACD,QAAQ,CAAC,GAAGA,QAAQ,GAAG,IAAAZ,UAAI,EAACc,OAAO,CAACC,GAAG,EAAE,EAAEH,QAAQ,CAAC;AACxE"}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.convertGeometricErrorToScreenThreshold = convertGeometricErrorToScreenThreshold;
7
7
  exports.convertScreenThresholdToGeometricError = convertScreenThresholdToGeometricError;
8
8
  var DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR = 16;
9
-
10
9
  function convertGeometricErrorToScreenThreshold(tile, coordinates) {
11
10
  var lodSelection = [];
12
11
  var boundingVolume = tile.boundingVolume;
@@ -19,7 +18,6 @@ function convertGeometricErrorToScreenThreshold(tile, coordinates) {
19
18
  metricType: 'maxScreenThresholdSQ',
20
19
  maxError: Math.PI * 0.25 * maxScreenThreshold.maxError * maxScreenThreshold.maxError
21
20
  };
22
-
23
21
  if (boundingVolume.constructor.name === 'OrientedBoundingBox') {
24
22
  lodSelection.push(maxScreenThresholdSQ);
25
23
  lodSelection.push(maxScreenThreshold);
@@ -27,26 +25,21 @@ function convertGeometricErrorToScreenThreshold(tile, coordinates) {
27
25
  lodSelection.push(maxScreenThreshold);
28
26
  lodSelection.push(maxScreenThresholdSQ);
29
27
  }
30
-
31
28
  return lodSelection;
32
29
  }
33
30
 
34
31
  function convertScreenThresholdToGeometricError(node) {
35
32
  var metricData = node.header.lodSelection.maxScreenThreshold || {};
36
33
  var maxError = metricData.maxError;
37
-
38
34
  if (!maxError) {
39
35
  var sqMetricData = node.header.lodSelection.maxScreenThresholdSQ;
40
-
41
36
  if (sqMetricData) {
42
37
  maxError = Math.sqrt(sqMetricData.maxError / (Math.PI * 0.25));
43
38
  }
44
39
  }
45
-
46
40
  if (!maxError) {
47
41
  maxError = DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR;
48
42
  }
49
-
50
43
  return node.header.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR / maxError;
51
44
  }
52
45
  //# sourceMappingURL=lod-conversion-utils.js.map