@loaders.gl/tile-converter 4.0.0-alpha.14 → 4.0.0-alpha.15

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 (75) hide show
  1. package/bin/i3s-server.js +4 -0
  2. package/dist/converter.min.js +58 -58
  3. package/dist/dist.min.js +241 -127
  4. package/dist/es5/deps-installer/deps-installer.js +1 -1
  5. package/dist/es5/i3s-converter/i3s-converter.js +26 -22
  6. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  7. package/dist/es5/i3s-server/README.md +46 -2
  8. package/dist/es5/i3s-server/app.js +3 -3
  9. package/dist/es5/i3s-server/app.js.map +1 -1
  10. package/dist/es5/i3s-server/bin/www.js +61 -0
  11. package/dist/es5/i3s-server/bin/www.js.map +1 -0
  12. package/dist/es5/i3s-server/controllers/slpk-controller.js +14 -18
  13. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
  14. package/dist/es5/index.js +7 -0
  15. package/dist/es5/index.js.map +1 -1
  16. package/dist/es5/pgm-loader.js +1 -1
  17. package/dist/es5/slpk-extractor/helpers/file-handle-provider.js +59 -26
  18. package/dist/es5/slpk-extractor/helpers/file-handle-provider.js.map +1 -1
  19. package/dist/es5/slpk-extractor/helpers/fs-promises.js +77 -0
  20. package/dist/es5/slpk-extractor/helpers/fs-promises.js.map +1 -0
  21. package/dist/es5/slpk-extractor/slpk-extractor.js +7 -7
  22. package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -1
  23. package/dist/esm/deps-installer/deps-installer.js +1 -1
  24. package/dist/esm/i3s-converter/i3s-converter.js +5 -1
  25. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  26. package/dist/esm/i3s-server/README.md +46 -2
  27. package/dist/esm/i3s-server/app.js +4 -4
  28. package/dist/esm/i3s-server/app.js.map +1 -1
  29. package/dist/esm/i3s-server/bin/i3s-server.min.js +614 -0
  30. package/dist/esm/i3s-server/bin/{www → www.js} +12 -55
  31. package/dist/esm/i3s-server/bin/www.js.map +1 -0
  32. package/dist/esm/i3s-server/controllers/slpk-controller.js +6 -12
  33. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
  34. package/dist/esm/index.js +1 -0
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/pgm-loader.js +1 -1
  37. package/dist/esm/slpk-extractor/helpers/file-handle-provider.js +17 -6
  38. package/dist/esm/slpk-extractor/helpers/file-handle-provider.js.map +1 -1
  39. package/dist/esm/slpk-extractor/helpers/fs-promises.js +32 -0
  40. package/dist/esm/slpk-extractor/helpers/fs-promises.js.map +1 -0
  41. package/dist/esm/slpk-extractor/slpk-extractor.js +2 -2
  42. package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -1
  43. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  44. package/dist/i3s-converter/i3s-converter.js +5 -1
  45. package/dist/i3s-server/app.d.ts.map +1 -1
  46. package/dist/i3s-server/app.js +1 -1
  47. package/dist/i3s-server/bin/www.d.ts +3 -0
  48. package/dist/i3s-server/bin/www.d.ts.map +1 -0
  49. package/dist/i3s-server/bin/www.js +83 -0
  50. package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -1
  51. package/dist/i3s-server/controllers/slpk-controller.js +4 -9
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +3 -1
  55. package/dist/slpk-extractor/helpers/file-handle-provider.d.ts +15 -12
  56. package/dist/slpk-extractor/helpers/file-handle-provider.d.ts.map +1 -1
  57. package/dist/slpk-extractor/helpers/file-handle-provider.js +25 -10
  58. package/dist/slpk-extractor/helpers/fs-promises.d.ts +38 -0
  59. package/dist/slpk-extractor/helpers/fs-promises.d.ts.map +1 -0
  60. package/dist/slpk-extractor/helpers/fs-promises.js +51 -0
  61. package/dist/slpk-extractor/slpk-extractor.d.ts +2 -2
  62. package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -1
  63. package/dist/slpk-extractor/slpk-extractor.js +4 -7
  64. package/dist/slpk-extractor.min.js +44 -44
  65. package/package.json +21 -20
  66. package/src/i3s-converter/i3s-converter.ts +5 -1
  67. package/src/i3s-server/README.md +46 -2
  68. package/src/i3s-server/app.js +1 -1
  69. package/{dist/es5/i3s-server/bin/www → src/i3s-server/bin/www.js} +7 -7
  70. package/src/i3s-server/controllers/slpk-controller.js +4 -11
  71. package/src/index.ts +1 -0
  72. package/src/slpk-extractor/helpers/file-handle-provider.ts +36 -18
  73. package/src/slpk-extractor/helpers/fs-promises.ts +66 -0
  74. package/src/slpk-extractor/slpk-extractor.ts +5 -6
  75. package/src/i3s-server/bin/www +0 -102
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","names":["express","require","path","logger","cors","indexRouter","_require","sceneServerRouter","router","I3S_LAYER_PATH","process","env","I3sLayerPath","app","use","json","urlencoded","extended","static","join","__dirname","test","module","exports"],"sources":["../../../src/i3s-server/app.js"],"sourcesContent":["const express = require('express');\nconst path = require('path');\nconst logger = require('morgan');\nconst cors = require('cors');\n\nconst indexRouter = require('./routes/index');\nconst {sceneServerRouter, router} = require('./routes/slpk-router');\n\nconst I3S_LAYER_PATH = process.env.I3sLayerPath || ''; // eslint-disable-line no-process-env, no-undef\nconst app = express();\n\napp.use(logger('dev'));\napp.use(express.json());\napp.use(express.urlencoded({extended: false}));\napp.use(express.static(path.join(__dirname, 'public')));\napp.use(cors());\n\nif (/\\.slpk$/.test(I3S_LAYER_PATH)) {\n app.use('/SceneServer/layers/0', router);\n app.use('/SceneServer', sceneServerRouter);\n} else {\n app.use('/', indexRouter);\n}\n\nmodule.exports = app;\n"],"mappings":";;AAAA,IAAMA,OAAO,GAAGC,OAAO,CAAC,SAAS,CAAC;AAClC,IAAMC,IAAI,GAAGD,OAAO,CAAC,MAAM,CAAC;AAC5B,IAAME,MAAM,GAAGF,OAAO,CAAC,QAAQ,CAAC;AAChC,IAAMG,IAAI,GAAGH,OAAO,CAAC,MAAM,CAAC;AAE5B,IAAMI,WAAW,GAAGJ,OAAO,CAAC,gBAAgB,CAAC;AAC7C,IAAAK,QAAA,GAAoCL,OAAO,CAAC,sBAAsB,CAAC;EAA5DM,iBAAiB,GAAAD,QAAA,CAAjBC,iBAAiB;EAAEC,MAAM,GAAAF,QAAA,CAANE,MAAM;AAEhC,IAAMC,cAAc,GAAGC,OAAO,CAACC,GAAG,CAACC,YAAY,IAAI,EAAE;AACrD,IAAMC,GAAG,GAAGb,OAAO,CAAC,CAAC;AAErBa,GAAG,CAACC,GAAG,CAACX,MAAM,CAAC,KAAK,CAAC,CAAC;AACtBU,GAAG,CAACC,GAAG,CAACd,OAAO,CAACe,IAAI,CAAC,CAAC,CAAC;AACvBF,GAAG,CAACC,GAAG,CAACd,OAAO,CAACgB,UAAU,CAAC;EAACC,QAAQ,EAAE;AAAK,CAAC,CAAC,CAAC;AAC9CJ,GAAG,CAACC,GAAG,CAACd,OAAO,CAACkB,MAAM,CAAChB,IAAI,CAACiB,IAAI,CAACC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvDP,GAAG,CAACC,GAAG,CAACV,IAAI,CAAC,CAAC,CAAC;AAEf,IAAI,SAAS,CAACiB,IAAI,CAACZ,cAAc,CAAC,EAAE;EAClCI,GAAG,CAACC,GAAG,CAAC,uBAAuB,EAAEN,MAAM,CAAC;EACxCK,GAAG,CAACC,GAAG,CAAC,cAAc,EAAEP,iBAAiB,CAAC;AAC5C,CAAC,MAAM;EACLM,GAAG,CAACC,GAAG,CAAC,GAAG,EAAET,WAAW,CAAC;AAC3B;AAEAiB,MAAM,CAACC,OAAO,GAAGV,GAAG"}
1
+ {"version":3,"file":"app.js","names":["express","require","path","logger","cors","indexRouter","I3S_LAYER_PATH","process","env","I3sLayerPath","app","use","json","urlencoded","extended","static","join","__dirname","test","_require","sceneServerRouter","router","module","exports"],"sources":["../../../src/i3s-server/app.js"],"sourcesContent":["const express = require('express');\nconst path = require('path');\nconst logger = require('morgan');\nconst cors = require('cors');\n\nconst indexRouter = require('./routes/index');\n\nconst I3S_LAYER_PATH = process.env.I3sLayerPath || ''; // eslint-disable-line no-process-env, no-undef\nconst app = express();\n\napp.use(logger('dev'));\napp.use(express.json());\napp.use(express.urlencoded({extended: false}));\napp.use(express.static(path.join(__dirname, 'public')));\napp.use(cors());\n\nif (/\\.slpk$/.test(I3S_LAYER_PATH)) {\n const {sceneServerRouter, router} = require('./routes/slpk-router');\n app.use('/SceneServer/layers/0', router);\n app.use('/SceneServer', sceneServerRouter);\n} else {\n app.use('/', indexRouter);\n}\n\nmodule.exports = app;\n"],"mappings":";;AAAA,IAAMA,OAAO,GAAGC,OAAO,CAAC,SAAS,CAAC;AAClC,IAAMC,IAAI,GAAGD,OAAO,CAAC,MAAM,CAAC;AAC5B,IAAME,MAAM,GAAGF,OAAO,CAAC,QAAQ,CAAC;AAChC,IAAMG,IAAI,GAAGH,OAAO,CAAC,MAAM,CAAC;AAE5B,IAAMI,WAAW,GAAGJ,OAAO,CAAC,gBAAgB,CAAC;AAE7C,IAAMK,cAAc,GAAGC,OAAO,CAACC,GAAG,CAACC,YAAY,IAAI,EAAE;AACrD,IAAMC,GAAG,GAAGV,OAAO,CAAC,CAAC;AAErBU,GAAG,CAACC,GAAG,CAACR,MAAM,CAAC,KAAK,CAAC,CAAC;AACtBO,GAAG,CAACC,GAAG,CAACX,OAAO,CAACY,IAAI,CAAC,CAAC,CAAC;AACvBF,GAAG,CAACC,GAAG,CAACX,OAAO,CAACa,UAAU,CAAC;EAACC,QAAQ,EAAE;AAAK,CAAC,CAAC,CAAC;AAC9CJ,GAAG,CAACC,GAAG,CAACX,OAAO,CAACe,MAAM,CAACb,IAAI,CAACc,IAAI,CAACC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvDP,GAAG,CAACC,GAAG,CAACP,IAAI,CAAC,CAAC,CAAC;AAEf,IAAI,SAAS,CAACc,IAAI,CAACZ,cAAc,CAAC,EAAE;EAClC,IAAAa,QAAA,GAAoClB,OAAO,CAAC,sBAAsB,CAAC;IAA5DmB,iBAAiB,GAAAD,QAAA,CAAjBC,iBAAiB;IAAEC,MAAM,GAAAF,QAAA,CAANE,MAAM;EAChCX,GAAG,CAACC,GAAG,CAAC,uBAAuB,EAAEU,MAAM,CAAC;EACxCX,GAAG,CAACC,GAAG,CAAC,cAAc,EAAES,iBAAiB,CAAC;AAC5C,CAAC,MAAM;EACLV,GAAG,CAACC,GAAG,CAAC,GAAG,EAAEN,WAAW,CAAC;AAC3B;AAEAiB,MAAM,CAACC,OAAO,GAAGb,GAAG"}
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ var app = require('../app');
5
+ var debug = require('debug')('i3s-server:server');
6
+ var https = require('https');
7
+ var http = require('http');
8
+ var fs = require('fs');
9
+ var path = require('path');
10
+ var httpPort = normalizePort(process.env.PORT || '80');
11
+ var httpsPort = normalizePort(process.env.HTTPS_PORT || '443');
12
+ var options = {
13
+ key: fs.readFileSync(path.join(__dirname, '../certs/key.pem')),
14
+ cert: fs.readFileSync(path.join(__dirname, '../certs/cert.pem'))
15
+ };
16
+ var httpServer = http.createServer(app);
17
+ var httpsServer = https.createServer(options, app);
18
+ httpServer.listen(httpPort);
19
+ httpServer.on('error', formErrorHandler(httpPort));
20
+ httpServer.on('listening', formListeningHandler(httpServer));
21
+ httpsServer.listen(httpsPort);
22
+ httpsServer.on('error', formErrorHandler(httpsPort));
23
+ httpsServer.on('listening', formListeningHandler(httpsServer));
24
+ function normalizePort(val) {
25
+ var chkPort = parseInt(val, 10);
26
+ if (isNaN(chkPort)) {
27
+ return val;
28
+ }
29
+ if (chkPort >= 0) {
30
+ return chkPort;
31
+ }
32
+ return false;
33
+ }
34
+ function formErrorHandler(optionalPort) {
35
+ return function onError(error) {
36
+ if (error.syscall !== 'listen') {
37
+ throw error;
38
+ }
39
+ var bind = typeof global.port === 'string' ? "Pipe ".concat(optionalPort) : "Port ".concat(optionalPort);
40
+ switch (error.code) {
41
+ case 'EACCES':
42
+ console.error("".concat(bind, " requires elevated privileges"));
43
+ process.exit(1);
44
+ break;
45
+ case 'EADDRINUSE':
46
+ console.error("".concat(bind, " is already in use"));
47
+ process.exit(1);
48
+ break;
49
+ default:
50
+ throw error;
51
+ }
52
+ };
53
+ }
54
+ function formListeningHandler(optionalServer) {
55
+ return function onListening() {
56
+ var addr = optionalServer.address();
57
+ var bind = typeof addr === 'string' ? "pipe ".concat(addr) : "port ".concat(addr.port);
58
+ debug("Listening on ".concat(bind));
59
+ };
60
+ }
61
+ //# sourceMappingURL=www.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"www.js","names":["app","require","debug","https","http","fs","path","httpPort","normalizePort","process","env","PORT","httpsPort","HTTPS_PORT","options","key","readFileSync","join","__dirname","cert","httpServer","createServer","httpsServer","listen","on","formErrorHandler","formListeningHandler","val","chkPort","parseInt","isNaN","optionalPort","onError","error","syscall","bind","global","port","concat","code","console","exit","optionalServer","onListening","addr","address"],"sources":["../../../../src/i3s-server/bin/www.js"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * Module dependencies.\n */\n\nconst app = require('../app');\nconst debug = require('debug')('i3s-server:server');\nconst https = require('https');\nconst http = require('http');\nconst fs = require('fs');\nconst path = require('path');\n\n/**\n * Get port from environment and store in Express.\n */\n\nconst httpPort = normalizePort(process.env.PORT || '80'); // eslint-disable-line no-process-env, no-undef\nconst httpsPort = normalizePort(process.env.HTTPS_PORT || '443'); // eslint-disable-line no-process-env, no-undef\n\n/**\n * Create HTTP server.\n */\n\nconst options = {\n key: fs.readFileSync(path.join(__dirname, '../certs/key.pem')),\n cert: fs.readFileSync(path.join(__dirname, '../certs/cert.pem'))\n};\n\nconst httpServer = http.createServer(app);\nconst httpsServer = https.createServer(options, app);\n\n/**\n * Listen on provided port, on all network interfaces.\n */\n\nhttpServer.listen(httpPort);\nhttpServer.on('error', formErrorHandler(httpPort));\nhttpServer.on('listening', formListeningHandler(httpServer));\n\nhttpsServer.listen(httpsPort);\nhttpsServer.on('error', formErrorHandler(httpsPort));\nhttpsServer.on('listening', formListeningHandler(httpsServer));\n\n/**\n * Normalize a port into a number, string, or false.\n */\n\nfunction normalizePort(val) {\n const chkPort = parseInt(val, 10);\n\n if (isNaN(chkPort)) {\n // named pipe\n return val;\n }\n\n if (chkPort >= 0) {\n // port number\n return chkPort;\n }\n\n return false;\n}\n\n/**\n * Event listener for HTTP/HTTPS server \"error\" event.\n */\n\nfunction formErrorHandler(optionalPort) {\n return function onError(error) {\n if (error.syscall !== 'listen') {\n throw error;\n }\n\n const bind = typeof global.port === 'string' ? `Pipe ${optionalPort}` : `Port ${optionalPort}`;\n\n // handle specific listen errors with friendly messages\n switch (error.code) {\n case 'EACCES':\n console.error(`${bind} requires elevated privileges`); // eslint-disable-line no-console, no-undef\n process.exit(1); // eslint-disable-line no-process-exit, no-undef\n break;\n case 'EADDRINUSE':\n console.error(`${bind} is already in use`); // eslint-disable-line no-console, no-undef\n process.exit(1); // eslint-disable-line no-process-exit, no-undef\n break;\n default:\n throw error;\n }\n };\n}\n\n/**\n * Event listener for HTTP/HTTPS server \"listening\" event.\n */\nfunction formListeningHandler(optionalServer) {\n return function onListening() {\n const addr = optionalServer.address();\n const bind = typeof addr === 'string' ? `pipe ${addr}` : `port ${addr.port}`;\n debug(`Listening on ${bind}`);\n };\n}\n"],"mappings":"AAAA;AAAmB;;AAMnB,IAAMA,GAAG,GAAGC,OAAO,CAAC,QAAQ,CAAC;AAC7B,IAAMC,KAAK,GAAGD,OAAO,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC;AACnD,IAAME,KAAK,GAAGF,OAAO,CAAC,OAAO,CAAC;AAC9B,IAAMG,IAAI,GAAGH,OAAO,CAAC,MAAM,CAAC;AAC5B,IAAMI,EAAE,GAAGJ,OAAO,CAAC,IAAI,CAAC;AACxB,IAAMK,IAAI,GAAGL,OAAO,CAAC,MAAM,CAAC;AAM5B,IAAMM,QAAQ,GAAGC,aAAa,CAACC,OAAO,CAACC,GAAG,CAACC,IAAI,IAAI,IAAI,CAAC;AACxD,IAAMC,SAAS,GAAGJ,aAAa,CAACC,OAAO,CAACC,GAAG,CAACG,UAAU,IAAI,KAAK,CAAC;AAMhE,IAAMC,OAAO,GAAG;EACdC,GAAG,EAAEV,EAAE,CAACW,YAAY,CAACV,IAAI,CAACW,IAAI,CAACC,SAAS,EAAE,kBAAkB,CAAC,CAAC;EAC9DC,IAAI,EAAEd,EAAE,CAACW,YAAY,CAACV,IAAI,CAACW,IAAI,CAACC,SAAS,EAAE,mBAAmB,CAAC;AACjE,CAAC;AAED,IAAME,UAAU,GAAGhB,IAAI,CAACiB,YAAY,CAACrB,GAAG,CAAC;AACzC,IAAMsB,WAAW,GAAGnB,KAAK,CAACkB,YAAY,CAACP,OAAO,EAAEd,GAAG,CAAC;AAMpDoB,UAAU,CAACG,MAAM,CAAChB,QAAQ,CAAC;AAC3Ba,UAAU,CAACI,EAAE,CAAC,OAAO,EAAEC,gBAAgB,CAAClB,QAAQ,CAAC,CAAC;AAClDa,UAAU,CAACI,EAAE,CAAC,WAAW,EAAEE,oBAAoB,CAACN,UAAU,CAAC,CAAC;AAE5DE,WAAW,CAACC,MAAM,CAACX,SAAS,CAAC;AAC7BU,WAAW,CAACE,EAAE,CAAC,OAAO,EAAEC,gBAAgB,CAACb,SAAS,CAAC,CAAC;AACpDU,WAAW,CAACE,EAAE,CAAC,WAAW,EAAEE,oBAAoB,CAACJ,WAAW,CAAC,CAAC;AAM9D,SAASd,aAAaA,CAACmB,GAAG,EAAE;EAC1B,IAAMC,OAAO,GAAGC,QAAQ,CAACF,GAAG,EAAE,EAAE,CAAC;EAEjC,IAAIG,KAAK,CAACF,OAAO,CAAC,EAAE;IAElB,OAAOD,GAAG;EACZ;EAEA,IAAIC,OAAO,IAAI,CAAC,EAAE;IAEhB,OAAOA,OAAO;EAChB;EAEA,OAAO,KAAK;AACd;AAMA,SAASH,gBAAgBA,CAACM,YAAY,EAAE;EACtC,OAAO,SAASC,OAAOA,CAACC,KAAK,EAAE;IAC7B,IAAIA,KAAK,CAACC,OAAO,KAAK,QAAQ,EAAE;MAC9B,MAAMD,KAAK;IACb;IAEA,IAAME,IAAI,GAAG,OAAOC,MAAM,CAACC,IAAI,KAAK,QAAQ,WAAAC,MAAA,CAAWP,YAAY,YAAAO,MAAA,CAAaP,YAAY,CAAE;IAG9F,QAAQE,KAAK,CAACM,IAAI;MAChB,KAAK,QAAQ;QACXC,OAAO,CAACP,KAAK,IAAAK,MAAA,CAAIH,IAAI,kCAA+B,CAAC;QACrD1B,OAAO,CAACgC,IAAI,CAAC,CAAC,CAAC;QACf;MACF,KAAK,YAAY;QACfD,OAAO,CAACP,KAAK,IAAAK,MAAA,CAAIH,IAAI,uBAAoB,CAAC;QAC1C1B,OAAO,CAACgC,IAAI,CAAC,CAAC,CAAC;QACf;MACF;QACE,MAAMR,KAAK;IACf;EACF,CAAC;AACH;AAKA,SAASP,oBAAoBA,CAACgB,cAAc,EAAE;EAC5C,OAAO,SAASC,WAAWA,CAAA,EAAG;IAC5B,IAAMC,IAAI,GAAGF,cAAc,CAACG,OAAO,CAAC,CAAC;IACrC,IAAMV,IAAI,GAAG,OAAOS,IAAI,KAAK,QAAQ,WAAAN,MAAA,CAAWM,IAAI,YAAAN,MAAA,CAAaM,IAAI,CAACP,IAAI,CAAE;IAC5EnC,KAAK,iBAAAoC,MAAA,CAAiBH,IAAI,CAAE,CAAC;EAC/B,CAAC;AACH"}
@@ -4,26 +4,27 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
5
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
6
  require('@loaders.gl/polyfills');
7
- var _require = require('@loaders.gl/core'),
8
- fetchFile = _require.fetchFile,
9
- parse = _require.parse;
10
- var _require2 = require('@loaders.gl/i3s'),
11
- SLPKLoader = _require2.SLPKLoader;
7
+ var _require = require('@loaders.gl/i3s'),
8
+ parseSLPK = _require.parseSLPK;
12
9
  var path = require('path');
10
+ var _require2 = require('@loaders.gl/tile-converter'),
11
+ FileHandleProvider = _require2.FileHandleProvider;
13
12
  var slpkArchive;
14
13
  var loadArchive = function () {
15
14
  var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(fullLayerPath) {
16
15
  return _regenerator.default.wrap(function _callee$(_context) {
17
16
  while (1) switch (_context.prev = _context.next) {
18
17
  case 0:
19
- _context.next = 2;
20
- return fetchFile(fullLayerPath);
21
- case 2:
22
- _context.next = 4;
23
- return _context.sent.arrayBuffer();
24
- case 4:
18
+ _context.t0 = parseSLPK;
19
+ _context.next = 3;
20
+ return FileHandleProvider.from(fullLayerPath);
21
+ case 3:
22
+ _context.t1 = _context.sent;
23
+ _context.next = 6;
24
+ return (0, _context.t0)(_context.t1);
25
+ case 6:
25
26
  slpkArchive = _context.sent;
26
- case 5:
27
+ case 7:
27
28
  case "end":
28
29
  return _context.stop();
29
30
  }
@@ -53,12 +54,7 @@ function _getFileByUrl() {
53
54
  _context2.prev = 2;
54
55
  _context2.t0 = Buffer;
55
56
  _context2.next = 6;
56
- return parse(slpkArchive, SLPKLoader, {
57
- slpk: {
58
- path: trimmedPath[1],
59
- pathMode: 'http'
60
- }
61
- });
57
+ return slpkArchive.getFile(trimmedPath[1], 'http');
62
58
  case 6:
63
59
  _context2.t1 = _context2.sent;
64
60
  uncompressedFile = _context2.t0.from.call(_context2.t0, _context2.t1);
@@ -1 +1 @@
1
- {"version":3,"file":"slpk-controller.js","names":["require","_require","fetchFile","parse","_require2","SLPKLoader","path","slpkArchive","loadArchive","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","fullLayerPath","wrap","_callee$","_context","prev","next","sent","arrayBuffer","stop","_x","apply","arguments","I3S_LAYER_PATH","process","env","I3sLayerPath","FULL_LAYER_PATH","join","cwd","getFileByUrl","_x2","_getFileByUrl","_callee2","url","trimmedPath","uncompressedFile","_callee2$","_context2","exec","t0","Buffer","slpk","pathMode","t1","from","call","t2","abrupt","module","exports"],"sources":["../../../../src/i3s-server/controllers/slpk-controller.js"],"sourcesContent":["require('@loaders.gl/polyfills');\nconst {fetchFile, parse} = require('@loaders.gl/core');\nconst {SLPKLoader} = require('@loaders.gl/i3s');\nconst path = require('path');\n\nlet slpkArchive;\n\nconst loadArchive = async (fullLayerPath) => {\n slpkArchive = await (await fetchFile(fullLayerPath)).arrayBuffer();\n};\n\nconst I3S_LAYER_PATH = process.env.I3sLayerPath || ''; // eslint-disable-line no-process-env, no-undef\nconst FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH); // eslint-disable-line no-undef\n\nloadArchive(FULL_LAYER_PATH);\n\nasync function getFileByUrl(url) {\n const trimmedPath = /^\\/?(.*)\\/?$/.exec(url);\n let uncompressedFile;\n if (trimmedPath) {\n try {\n uncompressedFile = Buffer.from(\n await parse(slpkArchive, SLPKLoader, {\n slpk: {\n path: trimmedPath[1],\n pathMode: 'http'\n }\n })\n );\n } catch (e) {}\n }\n return uncompressedFile;\n}\n\nmodule.exports = {\n loadArchive,\n getFileByUrl\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"slpk-controller.js","names":["require","_require","parseSLPK","path","_require2","FileHandleProvider","slpkArchive","loadArchive","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","fullLayerPath","wrap","_callee$","_context","prev","next","t0","from","t1","sent","stop","_x","apply","arguments","I3S_LAYER_PATH","process","env","I3sLayerPath","FULL_LAYER_PATH","join","cwd","getFileByUrl","_x2","_getFileByUrl","_callee2","url","trimmedPath","uncompressedFile","_callee2$","_context2","exec","Buffer","getFile","call","t2","abrupt","module","exports"],"sources":["../../../../src/i3s-server/controllers/slpk-controller.js"],"sourcesContent":["require('@loaders.gl/polyfills');\nconst {parseSLPK} = require('@loaders.gl/i3s');\nconst path = require('path');\nconst {FileHandleProvider} = require('@loaders.gl/tile-converter');\n\nlet slpkArchive;\n\nconst loadArchive = async (fullLayerPath) => {\n slpkArchive = await parseSLPK(await FileHandleProvider.from(fullLayerPath));\n};\n\nconst I3S_LAYER_PATH = process.env.I3sLayerPath || ''; // eslint-disable-line no-process-env, no-undef\nconst FULL_LAYER_PATH = path.join(process.cwd(), I3S_LAYER_PATH); // eslint-disable-line no-undef\n\nloadArchive(FULL_LAYER_PATH);\n\nasync function getFileByUrl(url) {\n const trimmedPath = /^\\/?(.*)\\/?$/.exec(url);\n let uncompressedFile;\n if (trimmedPath) {\n try {\n uncompressedFile = Buffer.from(await slpkArchive.getFile(trimmedPath[1], 'http'));\n } catch (e) {}\n }\n return uncompressedFile;\n}\n\nmodule.exports = {\n loadArchive,\n getFileByUrl\n};\n"],"mappings":"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"}
package/dist/es5/index.js CHANGED
@@ -4,6 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ Object.defineProperty(exports, "FileHandleProvider", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _fileHandleProvider.FileHandleProvider;
11
+ }
12
+ });
7
13
  Object.defineProperty(exports, "I3SConverter", {
8
14
  enumerable: true,
9
15
  get: function get() {
@@ -18,4 +24,5 @@ Object.defineProperty(exports, "Tiles3DConverter", {
18
24
  });
19
25
  var _i3sConverter = _interopRequireDefault(require("./i3s-converter/i3s-converter"));
20
26
  var _dTilesConverter = _interopRequireDefault(require("./3d-tiles-converter/3d-tiles-converter"));
27
+ var _fileHandleProvider = require("./slpk-extractor/helpers/file-handle-provider");
21
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_i3sConverter","_interopRequireDefault","require","_dTilesConverter"],"sources":["../../src/index.ts"],"sourcesContent":["export {default as I3SConverter} from './i3s-converter/i3s-converter';\nexport {default as Tiles3DConverter} from './3d-tiles-converter/3d-tiles-converter';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_i3sConverter","_interopRequireDefault","require","_dTilesConverter","_fileHandleProvider"],"sources":["../../src/index.ts"],"sourcesContent":["export {default as I3SConverter} from './i3s-converter/i3s-converter';\nexport {default as Tiles3DConverter} from './3d-tiles-converter/3d-tiles-converter';\nexport {FileHandleProvider} from './slpk-extractor/helpers/file-handle-provider';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA"}
@@ -8,7 +8,7 @@ exports.PGMLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _geoid = require("@math.gl/geoid");
11
- var VERSION = typeof "4.0.0-alpha.14" !== 'undefined' ? "4.0.0-alpha.14" : 'latest';
11
+ var VERSION = typeof "4.0.0-alpha.15" !== 'undefined' ? "4.0.0-alpha.15" : 'latest';
12
12
  var PGMLoader = {
13
13
  name: 'PGM - Netpbm grayscale image format',
14
14
  id: 'pgm',
@@ -10,7 +10,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
- var _fs = require("fs");
13
+ var _fsPromises = require("./fs-promises");
14
14
  var FileHandleProvider = function () {
15
15
  function FileHandleProvider(fileDescriptor, size) {
16
16
  (0, _classCallCheck2.default)(this, FileHandleProvider);
@@ -116,25 +116,64 @@ var FileHandleProvider = function () {
116
116
  return getUint32;
117
117
  }()
118
118
  }, {
119
- key: "slice",
119
+ key: "getBigUint64",
120
120
  value: function () {
121
- var _slice = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(startOffset, endOffset) {
122
- var length;
121
+ var _getBigUint = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(offset) {
122
+ var val;
123
123
  return _regenerator.default.wrap(function _callee4$(_context4) {
124
124
  while (1) switch (_context4.prev = _context4.next) {
125
125
  case 0:
126
- length = endOffset - startOffset;
126
+ _context4.t0 = BigInt64Array;
127
127
  _context4.next = 3;
128
- return this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffset);
128
+ return this.fileDescriptor.read(Buffer.alloc(8), 0, 4, offset);
129
129
  case 3:
130
- return _context4.abrupt("return", _context4.sent.buffer.buffer);
131
- case 4:
130
+ _context4.t1 = _context4.sent.buffer.buffer;
131
+ val = new _context4.t0(_context4.t1).at(0);
132
+ if (!(val === undefined)) {
133
+ _context4.next = 7;
134
+ break;
135
+ }
136
+ throw new Error('something went wrong');
137
+ case 7:
138
+ return _context4.abrupt("return", val);
139
+ case 8:
132
140
  case "end":
133
141
  return _context4.stop();
134
142
  }
135
143
  }, _callee4, this);
136
144
  }));
137
- function slice(_x4, _x5) {
145
+ function getBigUint64(_x4) {
146
+ return _getBigUint.apply(this, arguments);
147
+ }
148
+ return getBigUint64;
149
+ }()
150
+ }, {
151
+ key: "slice",
152
+ value: function () {
153
+ var _slice = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(startOffsset, endOffset) {
154
+ var bigLength, length;
155
+ return _regenerator.default.wrap(function _callee5$(_context5) {
156
+ while (1) switch (_context5.prev = _context5.next) {
157
+ case 0:
158
+ bigLength = endOffset - startOffsset;
159
+ if (!(bigLength > Number.MAX_SAFE_INTEGER)) {
160
+ _context5.next = 3;
161
+ break;
162
+ }
163
+ throw new Error('too big slice');
164
+ case 3:
165
+ length = Number(bigLength);
166
+ _context5.next = 6;
167
+ return this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffsset);
168
+ case 6:
169
+ return _context5.abrupt("return", _context5.sent.buffer.buffer);
170
+ case 7:
171
+ case "end":
172
+ return _context5.stop();
173
+ }
174
+ }, _callee5, this);
175
+ }));
176
+ function slice(_x5, _x6) {
138
177
  return _slice.apply(this, arguments);
139
178
  }
140
179
  return slice;
@@ -147,29 +186,23 @@ var FileHandleProvider = function () {
147
186
  }], [{
148
187
  key: "from",
149
188
  value: function () {
150
- var _from = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(path) {
189
+ var _from = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(path) {
151
190
  var fileDescriptor;
152
- return _regenerator.default.wrap(function _callee5$(_context5) {
153
- while (1) switch (_context5.prev = _context5.next) {
191
+ return _regenerator.default.wrap(function _callee6$(_context6) {
192
+ while (1) switch (_context6.prev = _context6.next) {
154
193
  case 0:
155
- _context5.next = 2;
156
- return _fs.promises.open(path);
194
+ _context6.next = 2;
195
+ return _fsPromises.FileHandle.open(path);
157
196
  case 2:
158
- fileDescriptor = _context5.sent;
159
- _context5.t0 = FileHandleProvider;
160
- _context5.t1 = fileDescriptor;
161
- _context5.next = 7;
162
- return fileDescriptor.stat();
163
- case 7:
164
- _context5.t2 = _context5.sent.size;
165
- return _context5.abrupt("return", new _context5.t0(_context5.t1, _context5.t2));
166
- case 9:
197
+ fileDescriptor = _context6.sent;
198
+ return _context6.abrupt("return", new FileHandleProvider(fileDescriptor, fileDescriptor.stat.size));
199
+ case 4:
167
200
  case "end":
168
- return _context5.stop();
201
+ return _context6.stop();
169
202
  }
170
- }, _callee5);
203
+ }, _callee6);
171
204
  }));
172
- function from(_x6) {
205
+ function from(_x7) {
173
206
  return _from.apply(this, arguments);
174
207
  }
175
208
  return from;
@@ -1 +1 @@
1
- {"version":3,"file":"file-handle-provider.js","names":["_fs","require","FileHandleProvider","fileDescriptor","size","_classCallCheck2","default","_defineProperty2","_createClass2","key","value","_getUint","_asyncToGenerator2","_regenerator","mark","_callee","offset","val","wrap","_callee$","_context","prev","next","t0","Uint8Array","read","Buffer","alloc","t1","sent","buffer","at","undefined","Error","abrupt","stop","getUint8","_x","apply","arguments","_getUint2","_callee2","_callee2$","_context2","Uint16Array","getUint16","_x2","_getUint3","_callee3","_callee3$","_context3","Uint32Array","getUint32","_x3","_slice","_callee4","startOffset","endOffset","length","_callee4$","_context4","slice","_x4","_x5","get","_from","_callee5","path","_callee5$","_context5","fsPromises","open","stat","t2","from","_x6","exports"],"sources":["../../../../src/slpk-extractor/helpers/file-handle-provider.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/i3s';\nimport {promises as fsPromises, PathLike} from 'fs';\n\n/**\n * Provides file data using node fs library\n */\nexport class FileHandleProvider implements FileProvider {\n /**\n * Returns a new copy of FileHandleProvider\n * @param path The path to the file in file system\n */\n static async from(path: PathLike): Promise<FileHandleProvider> {\n const fileDescriptor = await fsPromises.open(path);\n return new FileHandleProvider(fileDescriptor, (await fileDescriptor.stat()).size);\n }\n\n /**\n * The FileHandle from which data is provided\n */\n private fileDescriptor: fsPromises.FileHandle;\n\n /**\n * The file length in bytes\n */\n private size: number;\n\n private constructor(fileDescriptor: fsPromises.FileHandle, size: number) {\n this.fileDescriptor = fileDescriptor;\n this.size = size;\n }\n\n /**\n * Gets an unsigned 8-bit integer (unsigned byte) at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint8(offset: number): Promise<number> {\n const val = new Uint8Array(\n (await this.fileDescriptor.read(Buffer.alloc(1), 0, 1, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 16-bit integer (unsigned byte) at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint16(offset: number): Promise<number> {\n const val = new Uint16Array(\n (await this.fileDescriptor.read(Buffer.alloc(2), 0, 2, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 32-bit integer (unsigned byte) at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint32(offset: number): Promise<number> {\n const val = new Uint32Array(\n (await this.fileDescriptor.read(Buffer.alloc(4), 0, 4, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * returns an ArrayBuffer whose contents are a copy of this file bytes from startOffset, inclusive, up to endOffset, exclusive.\n * @param startOffset The offset, in bytes, from the start of the file where to start reading the data.\n * @param endOffset The offset, in bytes, from the start of the file where to end reading the data.\n */\n async slice(startOffset: number, endOffset: number): Promise<ArrayBuffer> {\n const length = endOffset - startOffset;\n return (await this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffset)).buffer\n .buffer;\n }\n\n /**\n * the length (in bytes) of the data.\n */\n get length(): number {\n return this.size;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"file-handle-provider.js","names":["_fsPromises","require","FileHandleProvider","fileDescriptor","size","_classCallCheck2","default","_defineProperty2","_createClass2","key","value","_getUint","_asyncToGenerator2","_regenerator","mark","_callee","offset","val","wrap","_callee$","_context","prev","next","t0","Uint8Array","read","Buffer","alloc","t1","sent","buffer","at","undefined","Error","abrupt","stop","getUint8","_x","apply","arguments","_getUint2","_callee2","_callee2$","_context2","Uint16Array","getUint16","_x2","_getUint3","_callee3","_callee3$","_context3","Uint32Array","getUint32","_x3","_getBigUint","_callee4","_callee4$","_context4","BigInt64Array","getBigUint64","_x4","_slice","_callee5","startOffsset","endOffset","bigLength","length","_callee5$","_context5","Number","MAX_SAFE_INTEGER","slice","_x5","_x6","get","_from","_callee6","path","_callee6$","_context6","FileHandle","open","stat","from","_x7","exports"],"sources":["../../../../src/slpk-extractor/helpers/file-handle-provider.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/i3s';\nimport {FileHandle} from './fs-promises';\n\n/**\n * Provides file data using node fs library\n */\nexport class FileHandleProvider implements FileProvider {\n /**\n * Returns a new copy of FileHandleProvider\n * @param path The path to the file in file system\n */\n static async from(path: string): Promise<FileHandleProvider> {\n const fileDescriptor = await FileHandle.open(path);\n return new FileHandleProvider(fileDescriptor, fileDescriptor.stat.size);\n }\n\n /**\n * The FileHandle from which data is provided\n */\n private fileDescriptor: FileHandle;\n\n /**\n * The file length in bytes\n */\n private size: bigint;\n\n private constructor(fileDescriptor: FileHandle, size: bigint) {\n this.fileDescriptor = fileDescriptor;\n this.size = size;\n }\n\n /**\n * Gets an unsigned 8-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint8(offset: bigint): Promise<number> {\n const val = new Uint8Array(\n (await this.fileDescriptor.read(Buffer.alloc(1), 0, 1, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 16-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint16(offset: bigint): Promise<number> {\n const val = new Uint16Array(\n (await this.fileDescriptor.read(Buffer.alloc(2), 0, 2, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 32-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint32(offset: bigint): Promise<number> {\n const val = new Uint32Array(\n (await this.fileDescriptor.read(Buffer.alloc(4), 0, 4, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 32-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getBigUint64(offset: bigint): Promise<bigint> {\n const val = new BigInt64Array(\n (await this.fileDescriptor.read(Buffer.alloc(8), 0, 4, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * returns an ArrayBuffer whose contents are a copy of this file bytes from startOffset, inclusive, up to endOffset, exclusive.\n * @param startOffsset The offset, in byte, from the start of the file where to start reading the data.\n * @param endOffset The offset, in bytes, from the start of the file where to end reading the data.\n */\n async slice(startOffsset: bigint, endOffset: bigint): Promise<ArrayBuffer> {\n const bigLength = endOffset - startOffsset;\n if (bigLength > Number.MAX_SAFE_INTEGER) {\n throw new Error('too big slice');\n }\n const length = Number(bigLength);\n return (await this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffsset)).buffer\n .buffer;\n }\n\n /**\n * the length (in bytes) of the data.\n */\n get length(): bigint {\n return this.size;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FileHandle = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _fs = require("fs");
15
+ var FileHandle = function () {
16
+ function FileHandle(fileDescriptor, stats) {
17
+ var _this = this;
18
+ (0, _classCallCheck2.default)(this, FileHandle);
19
+ (0, _defineProperty2.default)(this, "fileDescriptor", void 0);
20
+ (0, _defineProperty2.default)(this, "stats", void 0);
21
+ (0, _defineProperty2.default)(this, "read", function (buffer, offset, length, position) {
22
+ return new Promise(function (s) {
23
+ (0, _fs.read)(_this.fileDescriptor, buffer, offset, length, position, function (_err, bytesRead, buffer) {
24
+ return s({
25
+ bytesRead: bytesRead,
26
+ buffer: buffer
27
+ });
28
+ });
29
+ });
30
+ });
31
+ this.fileDescriptor = fileDescriptor;
32
+ this.stats = stats;
33
+ }
34
+ (0, _createClass2.default)(FileHandle, [{
35
+ key: "stat",
36
+ get: function get() {
37
+ return this.stats;
38
+ }
39
+ }]);
40
+ return FileHandle;
41
+ }();
42
+ exports.FileHandle = FileHandle;
43
+ (0, _defineProperty2.default)(FileHandle, "open", function () {
44
+ var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path) {
45
+ var _yield$Promise$all, _yield$Promise$all2, fd, stats;
46
+ return _regenerator.default.wrap(function _callee$(_context) {
47
+ while (1) switch (_context.prev = _context.next) {
48
+ case 0:
49
+ _context.next = 2;
50
+ return Promise.all([new Promise(function (s) {
51
+ (0, _fs.open)(path, undefined, undefined, function (_err, fd) {
52
+ return s(fd);
53
+ });
54
+ }), new Promise(function (s) {
55
+ (0, _fs.stat)(path, {
56
+ bigint: true
57
+ }, function (_err, stats) {
58
+ return s(stats);
59
+ });
60
+ })]);
61
+ case 2:
62
+ _yield$Promise$all = _context.sent;
63
+ _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 2);
64
+ fd = _yield$Promise$all2[0];
65
+ stats = _yield$Promise$all2[1];
66
+ return _context.abrupt("return", new FileHandle(fd, stats));
67
+ case 7:
68
+ case "end":
69
+ return _context.stop();
70
+ }
71
+ }, _callee);
72
+ }));
73
+ return function (_x) {
74
+ return _ref.apply(this, arguments);
75
+ };
76
+ }());
77
+ //# sourceMappingURL=fs-promises.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-promises.js","names":["_fs","require","FileHandle","fileDescriptor","stats","_this","_classCallCheck2","default","_defineProperty2","buffer","offset","length","position","Promise","s","read","_err","bytesRead","_createClass2","key","get","exports","_ref","_asyncToGenerator2","_regenerator","mark","_callee","path","_yield$Promise$all","_yield$Promise$all2","fd","wrap","_callee$","_context","prev","next","all","open","undefined","stat","bigint","sent","_slicedToArray2","abrupt","stop","_x","apply","arguments"],"sources":["../../../../src/slpk-extractor/helpers/fs-promises.ts"],"sourcesContent":["import {read, open, stat, BigIntStats} from 'fs';\n\n/** file reading result */\nexport type FileReadResult = {\n /** amount of the bytes read */\n bytesRead: number;\n /** the buffer filled with data from file*/\n buffer: Buffer;\n};\n\n/** Object handling file info */\nexport class FileHandle {\n private fileDescriptor: number;\n private stats: BigIntStats;\n private constructor(fileDescriptor: number, stats: BigIntStats) {\n this.fileDescriptor = fileDescriptor;\n this.stats = stats;\n }\n /**\n * Opens a `FileHandle`.\n *\n * @param path path to the file\n * @return Fulfills with a {FileHandle} object.\n */\n\n static open = async (path: string): Promise<FileHandle> => {\n const [fd, stats] = await Promise.all([\n new Promise<number>((s) => {\n open(path, undefined, undefined, (_err, fd) => s(fd));\n }),\n new Promise<BigIntStats>((s) => {\n stat(path, {bigint: true}, (_err, stats) => s(stats));\n })\n ]);\n return new FileHandle(fd, stats);\n };\n\n /**\n * Reads data from the file and stores that in the given buffer.\n *\n * If the file is not modified concurrently, the end-of-file is reached when the\n * number of bytes read is zero.\n * @param buffer A buffer that will be filled with the file data read.\n * @param offset The location in the buffer at which to start filling.\n * @param length The number of bytes to read.\n * @param position The location where to begin reading data from the file. If `null`, data will be read from the current file position, and the position will be updated. If `position` is an\n * integer, the current file position will remain unchanged.\n * @return Fulfills upon success with a FileReadResult object\n */\n read = (\n buffer: Buffer,\n offset: number,\n length: number,\n position: number | bigint\n ): Promise<FileReadResult> => {\n return new Promise((s) => {\n read(this.fileDescriptor, buffer, offset, length, position, (_err, bytesRead, buffer) =>\n s({bytesRead, buffer})\n );\n });\n };\n\n get stat(): BigIntStats {\n return this.stats;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AAAiD,IAWpCC,UAAU;EAGrB,SAAAA,WAAoBC,cAAsB,EAAEC,KAAkB,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAL,UAAA;IAAA,IAAAM,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,gBAmCzD,UACLE,MAAc,EACdC,MAAc,EACdC,MAAc,EACdC,QAAyB,EACG;MAC5B,OAAO,IAAIC,OAAO,CAAC,UAACC,CAAC,EAAK;QACxB,IAAAC,QAAI,EAACV,KAAI,CAACF,cAAc,EAAEM,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAE,UAACI,IAAI,EAAEC,SAAS,EAAER,MAAM;UAAA,OAClFK,CAAC,CAAC;YAACG,SAAS,EAATA,SAAS;YAAER,MAAM,EAANA;UAAM,CAAC,CAAC;QAAA,CACxB,CAAC;MACH,CAAC,CAAC;IACJ,CAAC;IA7CC,IAAI,CAACN,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;EAAC,IAAAc,aAAA,CAAAX,OAAA,EAAAL,UAAA;IAAAiB,GAAA;IAAAC,GAAA,EA6CD,SAAAA,IAAA,EAAwB;MACtB,OAAO,IAAI,CAAChB,KAAK;IACnB;EAAC;EAAA,OAAAF,UAAA;AAAA;AAAAmB,OAAA,CAAAnB,UAAA,GAAAA,UAAA;AAAA,IAAAM,gBAAA,CAAAD,OAAA,EArDUL,UAAU;EAAA,IAAAoB,IAAA,OAAAC,kBAAA,CAAAhB,OAAA,EAAAiB,YAAA,CAAAjB,OAAA,CAAAkB,IAAA,CAcP,SAAAC,QAAOC,IAAY;IAAA,IAAAC,kBAAA,EAAAC,mBAAA,EAAAC,EAAA,EAAA1B,KAAA;IAAA,OAAAoB,YAAA,CAAAjB,OAAA,CAAAwB,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OACLtB,OAAO,CAACuB,GAAG,CAAC,CACpC,IAAIvB,OAAO,CAAS,UAACC,CAAC,EAAK;YACzB,IAAAuB,QAAI,EAACV,IAAI,EAAEW,SAAS,EAAEA,SAAS,EAAE,UAACtB,IAAI,EAAEc,EAAE;cAAA,OAAKhB,CAAC,CAACgB,EAAE,CAAC;YAAA,EAAC;UACvD,CAAC,CAAC,EACF,IAAIjB,OAAO,CAAc,UAACC,CAAC,EAAK;YAC9B,IAAAyB,QAAI,EAACZ,IAAI,EAAE;cAACa,MAAM,EAAE;YAAI,CAAC,EAAE,UAACxB,IAAI,EAAEZ,KAAK;cAAA,OAAKU,CAAC,CAACV,KAAK,CAAC;YAAA,EAAC;UACvD,CAAC,CAAC,CACH,CAAC;QAAA;UAAAwB,kBAAA,GAAAK,QAAA,CAAAQ,IAAA;UAAAZ,mBAAA,OAAAa,eAAA,CAAAnC,OAAA,EAAAqB,kBAAA;UAPKE,EAAE,GAAAD,mBAAA;UAAEzB,KAAK,GAAAyB,mBAAA;UAAA,OAAAI,QAAA,CAAAU,MAAA,WAQT,IAAIzC,UAAU,CAAC4B,EAAE,EAAE1B,KAAK,CAAC;QAAA;QAAA;UAAA,OAAA6B,QAAA,CAAAW,IAAA;MAAA;IAAA,GAAAlB,OAAA;EAAA,CACjC;EAAA,iBAAAmB,EAAA;IAAA,OAAAvB,IAAA,CAAAwB,KAAA,OAAAC,SAAA;EAAA;AAAA"}
@@ -17,11 +17,11 @@ var _loaderUtils = require("@loaders.gl/loader-utils");
17
17
  var _compression = require("@loaders.gl/compression");
18
18
  var _fileUtils = require("../lib/utils/file-utils");
19
19
  var indexNames = ['3dSceneLayer.json.gz', '3dNodeIndexDocument.json.gz', 'sharedResource.json.gz'];
20
- var SLPKExtractor = function () {
21
- function SLPKExtractor() {
22
- (0, _classCallCheck2.default)(this, SLPKExtractor);
20
+ var SLPKConverter = function () {
21
+ function SLPKConverter() {
22
+ (0, _classCallCheck2.default)(this, SLPKConverter);
23
23
  }
24
- (0, _createClass2.default)(SLPKExtractor, [{
24
+ (0, _createClass2.default)(SLPKConverter, [{
25
25
  key: "extract",
26
26
  value: function () {
27
27
  var _extract = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
@@ -42,7 +42,7 @@ var SLPKExtractor = function () {
42
42
  case 6:
43
43
  provider = _context.sent;
44
44
  _context.next = 9;
45
- return (0, _i3s.parseZipLocalFileHeader)(0, provider);
45
+ return (0, _i3s.parseZipLocalFileHeader)(0n, provider);
46
46
  case 9:
47
47
  localHeader = _context.sent;
48
48
  case 10:
@@ -166,7 +166,7 @@ var SLPKExtractor = function () {
166
166
  return writeFile;
167
167
  }()
168
168
  }]);
169
- return SLPKExtractor;
169
+ return SLPKConverter;
170
170
  }();
171
- exports.default = SLPKExtractor;
171
+ exports.default = SLPKConverter;
172
172
  //# sourceMappingURL=slpk-extractor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slpk-extractor.js","names":["_core","require","_constants","_fileHandleProvider","_i3s","_loaderUtils","_compression","_fileUtils","indexNames","SLPKExtractor","_classCallCheck2","default","_createClass2","key","value","_extract","_asyncToGenerator2","_regenerator","mark","_callee","options","inputUrl","provider","localHeader","_localHeader","_localHeader2","wrap","_callee$","_context","prev","next","isBrowser","console","log","BROWSER_ERROR_MESSAGE","abrupt","FileHandleProvider","from","sent","parseZipLocalFileHeader","t0","t1","t2","correctIndexNames","fileName","slice","fileDataOffset","compressedSize","t3","t4","name","data","unGzip","call","t5","t6","outputPath","writeFile","stop","extract","_x","apply","arguments","includes","path","filename","join","dirname","parts","exec","concat","at","_unGzip","_callee2","file","_file$name","_file$name2","compression","decompressedData","_callee2$","_context2","test","GZipCompression","decompress","Promise","resolve","_x2","_writeFile2","_callee3","finalPath","dirName","_callee3$","_context3","_x3","_x4","exports"],"sources":["../../../src/slpk-extractor/slpk-extractor.ts"],"sourcesContent":["import {isBrowser} from '@loaders.gl/core';\n\nimport {BROWSER_ERROR_MESSAGE} from '../constants';\nimport {FileHandleProvider} from './helpers/file-handle-provider';\nimport {parseZipLocalFileHeader} from '@loaders.gl/i3s';\nimport {path} from '@loaders.gl/loader-utils';\nimport {GZipCompression} from '@loaders.gl/compression';\nimport {writeFile} from '../lib/utils/file-utils';\n\n/**\n * names of files that should be changed to index\n */\nconst indexNames = [\n '3dSceneLayer.json.gz',\n '3dNodeIndexDocument.json.gz',\n 'sharedResource.json.gz'\n];\n\n/**\n * Description of the file in the SLPK\n */\ntype File = {\n name: string | null;\n data: ArrayBuffer;\n};\n\n/**\n * Converter from slpk to i3s\n */\nexport default class SLPKExtractor {\n /**\n * extract slpk to i3s\n * @param options\n * @param options.inputUrl the url to read SLPK file\n * @param options.outputPath the output filename\n */\n public async extract(options: {inputUrl: string; outputPath: string}): Promise<string> {\n if (isBrowser) {\n console.log(BROWSER_ERROR_MESSAGE);\n return BROWSER_ERROR_MESSAGE;\n }\n const {inputUrl} = options;\n\n const provider = await FileHandleProvider.from(inputUrl);\n\n let localHeader = await parseZipLocalFileHeader(0, provider);\n while (localHeader) {\n await this.writeFile(\n await this.unGzip({\n name: this.correctIndexNames(localHeader.fileName),\n data: await provider.slice(\n localHeader.fileDataOffset,\n localHeader.fileDataOffset + localHeader.compressedSize\n )\n }),\n options.outputPath\n );\n localHeader = await parseZipLocalFileHeader(\n localHeader?.fileDataOffset + localHeader?.compressedSize,\n provider\n );\n }\n\n return 'success';\n }\n\n /**\n * Defines file name and path for i3s format\n * @param fileName initial file name and path\n */\n private correctIndexNames(fileName: string): string | null {\n if (indexNames.includes(path.filename(path.join('/', fileName)))) {\n return path.join(path.dirname(fileName), 'index.json.gz');\n }\n // finds path with name part and extention part\n let parts = /^(.*\\/[^\\/\\.]*)(\\..+)$/.exec(fileName);\n if (!parts) {\n return null;\n }\n return `${parts?.at(1)}/index${parts?.at(2)}`;\n }\n\n private async unGzip(file: File): Promise<File> {\n if (/\\.gz$/.test(file.name ?? '')) {\n const compression = new GZipCompression();\n\n const decompressedData = await compression.decompress(file.data);\n return {data: decompressedData, name: (file.name ?? '').slice(0, -3)};\n }\n return Promise.resolve(file);\n }\n\n private async writeFile(options: File, outputPath: string): Promise<void> {\n if (!options.name) {\n return;\n }\n const finalPath = path.join(outputPath, options.name);\n const dirName = path.dirname(finalPath);\n const fileName = path.filename(finalPath);\n await writeFile(dirName, options.data, fileName);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"slpk-extractor.js","names":["_core","require","_constants","_fileHandleProvider","_i3s","_loaderUtils","_compression","_fileUtils","indexNames","SLPKConverter","_classCallCheck2","default","_createClass2","key","value","_extract","_asyncToGenerator2","_regenerator","mark","_callee","options","inputUrl","provider","localHeader","_localHeader","_localHeader2","wrap","_callee$","_context","prev","next","isBrowser","console","log","BROWSER_ERROR_MESSAGE","abrupt","FileHandleProvider","from","sent","parseZipLocalFileHeader","t0","t1","t2","correctIndexNames","fileName","slice","fileDataOffset","compressedSize","t3","t4","name","data","unGzip","call","t5","t6","outputPath","writeFile","stop","extract","_x","apply","arguments","includes","path","filename","join","dirname","parts","exec","concat","at","_unGzip","_callee2","file","_file$name","_file$name2","compression","decompressedData","_callee2$","_context2","test","GZipCompression","decompress","Promise","resolve","_x2","_writeFile2","_callee3","finalPath","dirName","_callee3$","_context3","_x3","_x4","exports"],"sources":["../../../src/slpk-extractor/slpk-extractor.ts"],"sourcesContent":["import {isBrowser} from '@loaders.gl/core';\n\nimport {BROWSER_ERROR_MESSAGE} from '../constants';\nimport {FileHandleProvider} from './helpers/file-handle-provider';\nimport {parseZipLocalFileHeader} from '@loaders.gl/i3s';\nimport {path} from '@loaders.gl/loader-utils';\nimport {GZipCompression} from '@loaders.gl/compression';\nimport {writeFile} from '../lib/utils/file-utils';\n\nconst indexNames = [\n '3dSceneLayer.json.gz',\n '3dNodeIndexDocument.json.gz',\n 'sharedResource.json.gz'\n];\n\n/**\n * Description of the file in the SLPK\n */\ntype File = {\n name: string | null;\n data: ArrayBuffer;\n};\n\n/**\n * Converter from slpk to i3s\n */\nexport default class SLPKConverter {\n /**\n * Extract slpk to i3s\n * @param options\n * @param options.inputUrl the url to read SLPK file\n * @param options.outputPath the output filename\n */\n public async extract(options: {inputUrl: string; outputPath: string}): Promise<string> {\n if (isBrowser) {\n console.log(BROWSER_ERROR_MESSAGE);\n return BROWSER_ERROR_MESSAGE;\n }\n const {inputUrl} = options;\n\n const provider = await FileHandleProvider.from(inputUrl);\n\n let localHeader = await parseZipLocalFileHeader(0n, provider);\n while (localHeader) {\n await this.writeFile(\n await this.unGzip({\n name: this.correctIndexNames(localHeader.fileName),\n data: await provider.slice(\n localHeader.fileDataOffset,\n localHeader.fileDataOffset + localHeader.compressedSize\n )\n }),\n options.outputPath\n );\n localHeader = await parseZipLocalFileHeader(\n localHeader?.fileDataOffset + localHeader?.compressedSize,\n provider\n );\n }\n\n return 'success';\n }\n\n /**\n * Defines file name and path for i3s format\n * @param fileName initial file name and path\n */\n\n private correctIndexNames(fileName: string): string | null {\n if (indexNames.includes(path.filename(path.join('/', fileName)))) {\n return path.join(path.dirname(fileName), 'index.json.gz');\n }\n // finds path with name part and extention part\n let parts = /^(.*\\/[^\\/\\.]*)(\\..+)$/.exec(fileName);\n if (!parts) {\n return null;\n }\n return `${parts?.at(1)}/index${parts?.at(2)}`;\n }\n\n private async unGzip(file: File): Promise<File> {\n if (/\\.gz$/.test(file.name ?? '')) {\n const compression = new GZipCompression();\n\n const decompressedData = await compression.decompress(file.data);\n\n return {data: decompressedData, name: (file.name ?? '').slice(0, -3)};\n }\n return Promise.resolve(file);\n }\n\n private async writeFile(options: File, outputPath: string): Promise<void> {\n if (!options.name) {\n return;\n }\n const finalPath = path.join(outputPath, options.name);\n const dirName = path.dirname(finalPath);\n const fileName = path.filename(finalPath);\n await writeFile(dirName, options.data, fileName);\n }\n}\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { ZipLoader } from '@loaders.gl/zip';
3
3
  import { writeFile } from '../lib/utils/file-utils';
4
4
  import { join } from 'path';
5
5
  import { ChildProcessProxy } from '@loaders.gl/worker-utils';
6
- const VERSION = typeof "4.0.0-alpha.14" !== 'undefined' ? "4.0.0-alpha.14" : 'beta';
6
+ const VERSION = typeof "4.0.0-alpha.15" !== 'undefined' ? "4.0.0-alpha.15" : 'beta';
7
7
  const PGM_LINK = 'https://raw.githubusercontent.com/visgl/deck.gl-data/master/egm/egm2008-5.zip';
8
8
  export class DepsInstaller {
9
9
  async install() {
@@ -150,12 +150,16 @@ export default class I3SConverter {
150
150
  await this.loadWorkers();
151
151
  try {
152
152
  const preloadOptions = await this._fetchPreloadOptions();
153
+ let tilesetUrl = inputUrl;
154
+ if (preloadOptions.url) {
155
+ tilesetUrl = preloadOptions.url;
156
+ }
153
157
  if (preloadOptions.headers) {
154
158
  this.loadOptions.fetch = {
155
159
  headers: preloadOptions.headers
156
160
  };
157
161
  }
158
- this.sourceTileset = await load(inputUrl, this.Loader, this.loadOptions);
162
+ this.sourceTileset = await load(tilesetUrl, this.Loader, this.loadOptions);
159
163
  const preprocessResult = await this.preprocessConversion();
160
164
  if (preprocessResult) {
161
165
  await this._createAndSaveTileset(outputPath, tilesetName);