@mapcomponents/react-maplibre 0.1.90 → 0.1.91

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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Change Log
2
2
 
3
- ## [v0.1.89] - 2024-01-02
3
+ ## [v0.1.91] - 2024-01-16
4
+
5
+ ### Fixed
6
+
7
+ - 4775728: remove mbtiles protocol handler from build to fix sql.js error
8
+
9
+ ## [v0.1.90] - 2024-01-16 (broken)
10
+
11
+ ### Fixed
12
+
13
+ - f40622f: fix build error suggesting marking sql.js as external
14
+
15
+ ## [v0.1.89] - 2024-01-02 (broken)
4
16
 
5
17
  ### Fixed
6
18
 
package/dist/index.esm.js CHANGED
@@ -68,8 +68,6 @@ var csv2geojson = require('csv2geojson');
68
68
  var topojsonClient = require('topojson-client');
69
69
  var osm2geojson = require('osm2geojson-lite');
70
70
  var externParser = require('@tmcw/togeojson');
71
- var initSqlJs = require('sql.js');
72
- var pako = require('pako');
73
71
  var KeyboardArrowDownIcon = require('@mui/icons-material/KeyboardArrowDown');
74
72
  var KeyboardArrowUpIcon = require('@mui/icons-material/KeyboardArrowUp');
75
73
  var AppBar = require('@mui/material/AppBar');
@@ -161,8 +159,6 @@ var IndeterminateCheckBoxIcon__default = /*#__PURE__*/_interopDefaultLegacy(Inde
161
159
  var csv2geojson__namespace = /*#__PURE__*/_interopNamespace(csv2geojson);
162
160
  var osm2geojson__default = /*#__PURE__*/_interopDefaultLegacy(osm2geojson);
163
161
  var externParser__namespace = /*#__PURE__*/_interopNamespace(externParser);
164
- var initSqlJs__default = /*#__PURE__*/_interopDefaultLegacy(initSqlJs);
165
- var pako__namespace = /*#__PURE__*/_interopNamespace(pako);
166
162
  var KeyboardArrowDownIcon__default = /*#__PURE__*/_interopDefaultLegacy(KeyboardArrowDownIcon);
167
163
  var KeyboardArrowUpIcon__default = /*#__PURE__*/_interopDefaultLegacy(KeyboardArrowUpIcon);
168
164
  var AppBar__default = /*#__PURE__*/_interopDefaultLegacy(AppBar);
@@ -7777,128 +7773,6 @@ var XMLProtocolHandler = function (params, callback) {
7777
7773
  return { cancel: function () { } };
7778
7774
  };
7779
7775
 
7780
- var loadedMbtiles = {};
7781
- var parseTileParams = function (url) {
7782
- var urlParts = url.split('://');
7783
- var mbtilesUrl = urlParts.length > 2 ? urlParts[1] + '://' + urlParts[2] : urlParts[1];
7784
- var mbtilesParts = mbtilesUrl.split('/');
7785
- var mbtilesPartsLength = mbtilesParts.length;
7786
- var y = mbtilesParts.splice(mbtilesPartsLength - 1, 1)[0];
7787
- var x = mbtilesParts.splice(mbtilesPartsLength - 2, 1)[0];
7788
- var z = mbtilesParts.splice(mbtilesPartsLength - 3, 1)[0];
7789
- var filename = mbtilesParts.join('/');
7790
- return {
7791
- filename: filename,
7792
- z: z,
7793
- x: x,
7794
- y: y,
7795
- };
7796
- };
7797
- // mbtiles files are sqlite databases. This function loads the database and returns a handler
7798
- // to work with sqlite databases in javascript we need to use sql.js.
7799
- // to make this work in your project make sure to copy sql-wasm.wasm to the file root of your public folder and
7800
- // add the following config to the externals prop of your webpack config
7801
- // {externals: { fs: 'fs' }};
7802
- var getMbtilesDbHandler = function (_a) {
7803
- var filename = _a.filename;
7804
- return __awaiter(void 0, void 0, void 0, function () {
7805
- var SQL, fetched, buf, db;
7806
- return __generator(this, function (_b) {
7807
- switch (_b.label) {
7808
- case 0:
7809
- if (!!loadedMbtiles[filename]) return [3 /*break*/, 4];
7810
- return [4 /*yield*/, initSqlJs__default["default"]()];
7811
- case 1:
7812
- SQL = _b.sent();
7813
- return [4 /*yield*/, fetch(filename)];
7814
- case 2:
7815
- fetched = _b.sent();
7816
- return [4 /*yield*/, fetched.arrayBuffer()];
7817
- case 3:
7818
- buf = _b.sent();
7819
- db = new SQL.Database(new Uint8Array(buf));
7820
- loadedMbtiles[filename] = db;
7821
- _b.label = 4;
7822
- case 4: return [2 /*return*/, loadedMbtiles[filename]];
7823
- }
7824
- });
7825
- });
7826
- };
7827
- /**
7828
- * Example usage:
7829
- * getBufferFromMbtiles({ filename: 'mbtiles/countries.mbtiles', z: '0', x: '0', y: '0' }).then(
7830
- * (result) => {
7831
- * console.log(result);
7832
- * }
7833
- * );
7834
- */
7835
- function getBufferFromMbtiles(params) {
7836
- return __awaiter(this, void 0, void 0, function () {
7837
- var db, query;
7838
- return __generator(this, function (_a) {
7839
- switch (_a.label) {
7840
- case 0: return [4 /*yield*/, getMbtilesDbHandler(params)];
7841
- case 1:
7842
- db = _a.sent();
7843
- query = 'SELECT tile_data FROM tiles WHERE zoom_level = ' +
7844
- params.z +
7845
- ' AND tile_column = ' +
7846
- params.x +
7847
- ' AND tile_row = ' +
7848
- (Math.pow(2, parseInt(params.z)) - parseInt(params.y) - 1);
7849
- return [2 /*return*/, new Promise(function (resolve, reject) {
7850
- try {
7851
- // some of the logic here was heavily inspired by
7852
- // https://github.com/IsraelHikingMap/Site/blob/6aa2ec0cfb8891fa048b1d9e2a4fc7d4cbcc8c97/IsraelHiking.Web/src/application/services/database.service.ts
7853
- var result = db.exec(query);
7854
- if (result.length !== 1) {
7855
- reject(new Error('Tile not found.'));
7856
- return;
7857
- }
7858
- var resultData = result[0].values[0][0];
7859
- var binData = void 0;
7860
- var isGzipped = resultData[0] === 0x1f && resultData[1] === 0x8b;
7861
- if (isGzipped) {
7862
- binData = pako__namespace.inflate(resultData);
7863
- }
7864
- else {
7865
- binData = resultData;
7866
- }
7867
- if (binData === null || binData === void 0 ? void 0 : binData.buffer) {
7868
- resolve(binData.buffer);
7869
- }
7870
- else {
7871
- reject(new Error('Tile not found.'));
7872
- return;
7873
- }
7874
- }
7875
- catch (error) {
7876
- reject(error);
7877
- }
7878
- })];
7879
- }
7880
- });
7881
- });
7882
- }
7883
- /**
7884
- * Expects a tile url in the following format:
7885
- *
7886
- * 'mbtiles://mbtiles/countries.mbtiles/{z}/{x}/{y}'
7887
- */
7888
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7889
- var mbTilesProtocolHandler = function (params, callback) {
7890
- var parsedParams = parseTileParams(params.url);
7891
- getBufferFromMbtiles(parsedParams).then(function (result) {
7892
- if (result) {
7893
- callback(null, result, null, null);
7894
- }
7895
- else {
7896
- callback(new Error('Tile not found'));
7897
- }
7898
- });
7899
- return { cancel: function () { } };
7900
- };
7901
-
7902
7776
  var handlers = {
7903
7777
  csv: CSVProtocolHandler,
7904
7778
  topojson: TopojsonProtocolHandler,
@@ -7906,7 +7780,7 @@ var handlers = {
7906
7780
  gpx: XMLProtocolHandler,
7907
7781
  kml: XMLProtocolHandler,
7908
7782
  tcx: XMLProtocolHandler,
7909
- mbtiles: mbTilesProtocolHandler
7783
+ //mbtiles: mbTilesProtocolHandler
7910
7784
  };
7911
7785
  var types = ['fill', 'line', 'circle'];
7912
7786
  function ProtocolHandlerLayerForm(props) {
@@ -8152,19 +8026,12 @@ var AddLayerPopup = function (props) {
8152
8026
  };
8153
8027
  AddLayerPopup.defaultProps = {};
8154
8028
 
8155
- function AddProtocol(props) {
8156
- useAddProtocol({
8157
- protocol: props.protocol,
8158
- handler: props.handler,
8159
- });
8160
- return React__default["default"].createElement(React__default["default"].Fragment, null);
8161
- }
8162
8029
  var AddLayerButton = function (props) {
8163
8030
  var _a = React__default["default"].useState(false), popupOpen = _a[0], setPopupOpen = _a[1];
8164
8031
  var layerTypes = props.layerTypes || [
8165
8032
  'geojson',
8166
8033
  'wms',
8167
- 'mbtiles',
8034
+ //'mbtiles',
8168
8035
  'csv',
8169
8036
  'topojson',
8170
8037
  'osm',
@@ -8173,10 +8040,6 @@ var AddLayerButton = function (props) {
8173
8040
  'tcx',
8174
8041
  ];
8175
8042
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
8176
- layerTypes.includes('mbtiles') && (React__default["default"].createElement(AddProtocol, __assign({}, {
8177
- protocol: 'mbtiles',
8178
- handler: mbTilesProtocolHandler,
8179
- }))),
8180
8043
  React__default["default"].createElement(material.Button, { variant: "contained", sx: __assign({ marginTop: '10px' }, props.sx), onClick: function () { return setPopupOpen(true); } },
8181
8044
  React__default["default"].createElement(PlaylistAddIcon__default["default"], null)),
8182
8045
  React__default["default"].createElement(AddLayerPopup, { open: popupOpen, setOpen: setPopupOpen, onComplete: props === null || props === void 0 ? void 0 : props.onComplete, layerTypes: layerTypes })));