@loaders.gl/flatgeobuf 4.1.0-alpha.8 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/dist.dev.js +1 -1
  2. package/dist/flatgeobuf/3.27.2/column-meta.d.ts +1 -1
  3. package/dist/flatgeobuf/3.27.2/column-meta.d.ts.map +1 -1
  4. package/dist/flatgeobuf/3.27.2/column-meta.js.map +1 -1
  5. package/dist/flatgeobuf/3.27.2/dumptree.js +3 -3
  6. package/dist/flatgeobuf/3.27.2/dumptree.js.map +1 -1
  7. package/dist/flatgeobuf/3.27.2/feature.d.ts +1 -1
  8. package/dist/flatgeobuf/3.27.2/feature.d.ts.map +1 -1
  9. package/dist/flatgeobuf/3.27.2/feature.js +1 -1
  10. package/dist/flatgeobuf/3.27.2/feature.js.map +1 -1
  11. package/dist/flatgeobuf/3.27.2/flat-geobuf/column.d.ts +1 -1
  12. package/dist/flatgeobuf/3.27.2/flat-geobuf/column.d.ts.map +1 -1
  13. package/dist/flatgeobuf/3.27.2/flat-geobuf/column.js +1 -1
  14. package/dist/flatgeobuf/3.27.2/flat-geobuf/column.js.map +1 -1
  15. package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.d.ts +2 -2
  16. package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.d.ts.map +1 -1
  17. package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.js +2 -2
  18. package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.js.map +1 -1
  19. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.d.ts +1 -1
  20. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.d.ts.map +1 -1
  21. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.js +1 -1
  22. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.js.map +1 -1
  23. package/dist/flatgeobuf/3.27.2/flat-geobuf/header.d.ts +3 -3
  24. package/dist/flatgeobuf/3.27.2/flat-geobuf/header.d.ts.map +1 -1
  25. package/dist/flatgeobuf/3.27.2/flat-geobuf/header.js +3 -3
  26. package/dist/flatgeobuf/3.27.2/flat-geobuf/header.js.map +1 -1
  27. package/dist/flatgeobuf/3.27.2/flat-geobuf.d.ts +5 -5
  28. package/dist/flatgeobuf/3.27.2/flat-geobuf.d.ts.map +1 -1
  29. package/dist/flatgeobuf/3.27.2/flat-geobuf.js +5 -5
  30. package/dist/flatgeobuf/3.27.2/flat-geobuf.js.map +1 -1
  31. package/dist/flatgeobuf/3.27.2/generic/feature.d.ts +4 -4
  32. package/dist/flatgeobuf/3.27.2/generic/feature.d.ts.map +1 -1
  33. package/dist/flatgeobuf/3.27.2/generic/feature.js +3 -3
  34. package/dist/flatgeobuf/3.27.2/generic/feature.js.map +1 -1
  35. package/dist/flatgeobuf/3.27.2/generic/featurecollection.d.ts +6 -6
  36. package/dist/flatgeobuf/3.27.2/generic/featurecollection.d.ts.map +1 -1
  37. package/dist/flatgeobuf/3.27.2/generic/featurecollection.js +12 -12
  38. package/dist/flatgeobuf/3.27.2/generic/featurecollection.js.map +1 -1
  39. package/dist/flatgeobuf/3.27.2/generic/geometry.d.ts +2 -2
  40. package/dist/flatgeobuf/3.27.2/generic/geometry.d.ts.map +1 -1
  41. package/dist/flatgeobuf/3.27.2/generic/geometry.js +2 -2
  42. package/dist/flatgeobuf/3.27.2/generic/geometry.js.map +1 -1
  43. package/dist/flatgeobuf/3.27.2/generic/header.d.ts +3 -3
  44. package/dist/flatgeobuf/3.27.2/generic/header.d.ts.map +1 -1
  45. package/dist/flatgeobuf/3.27.2/generic/header.js +2 -2
  46. package/dist/flatgeobuf/3.27.2/generic/header.js.map +1 -1
  47. package/dist/flatgeobuf/3.27.2/generic.d.ts +7 -7
  48. package/dist/flatgeobuf/3.27.2/generic.d.ts.map +1 -1
  49. package/dist/flatgeobuf/3.27.2/generic.js +4 -4
  50. package/dist/flatgeobuf/3.27.2/generic.js.map +1 -1
  51. package/dist/flatgeobuf/3.27.2/geojson/feature.d.ts +3 -3
  52. package/dist/flatgeobuf/3.27.2/geojson/feature.d.ts.map +1 -1
  53. package/dist/flatgeobuf/3.27.2/geojson/feature.js +2 -2
  54. package/dist/flatgeobuf/3.27.2/geojson/feature.js.map +1 -1
  55. package/dist/flatgeobuf/3.27.2/geojson/featurecollection.d.ts +2 -2
  56. package/dist/flatgeobuf/3.27.2/geojson/featurecollection.d.ts.map +1 -1
  57. package/dist/flatgeobuf/3.27.2/geojson/featurecollection.js +6 -6
  58. package/dist/flatgeobuf/3.27.2/geojson/featurecollection.js.map +1 -1
  59. package/dist/flatgeobuf/3.27.2/geojson/geometry.d.ts +3 -3
  60. package/dist/flatgeobuf/3.27.2/geojson/geometry.d.ts.map +1 -1
  61. package/dist/flatgeobuf/3.27.2/geojson/geometry.js +2 -2
  62. package/dist/flatgeobuf/3.27.2/geojson/geometry.js.map +1 -1
  63. package/dist/flatgeobuf/3.27.2/geojson.d.ts +3 -3
  64. package/dist/flatgeobuf/3.27.2/geojson.d.ts.map +1 -1
  65. package/dist/flatgeobuf/3.27.2/geojson.js +1 -1
  66. package/dist/flatgeobuf/3.27.2/geojson.js.map +1 -1
  67. package/dist/flatgeobuf/3.27.2/header-meta.d.ts +3 -3
  68. package/dist/flatgeobuf/3.27.2/header-meta.d.ts.map +1 -1
  69. package/dist/flatgeobuf/3.27.2/header-meta.js +1 -1
  70. package/dist/flatgeobuf/3.27.2/header-meta.js.map +1 -1
  71. package/dist/flatgeobuf/3.27.2/header.d.ts +1 -1
  72. package/dist/flatgeobuf/3.27.2/header.d.ts.map +1 -1
  73. package/dist/flatgeobuf/3.27.2/header.js +1 -1
  74. package/dist/flatgeobuf/3.27.2/header.js.map +1 -1
  75. package/dist/flatgeobuf/3.27.2/http-reader.d.ts +3 -3
  76. package/dist/flatgeobuf/3.27.2/http-reader.d.ts.map +1 -1
  77. package/dist/flatgeobuf/3.27.2/http-reader.js +6 -6
  78. package/dist/flatgeobuf/3.27.2/http-reader.js.map +1 -1
  79. package/dist/flatgeobuf/3.27.2/index.d.ts +13 -13
  80. package/dist/flatgeobuf/3.27.2/index.d.ts.map +1 -1
  81. package/dist/flatgeobuf/3.27.2/index.js +13 -13
  82. package/dist/flatgeobuf/3.27.2/index.js.map +1 -1
  83. package/dist/flatgeobuf/3.27.2/packedrtree.js +2 -2
  84. package/dist/flatgeobuf/3.27.2/packedrtree.js.map +1 -1
  85. package/dist/flatgeobuf-loader.js +1 -1
  86. package/dist/flatgeobuf-loader.js.map +1 -1
  87. package/dist/flatgeobuf-worker.js +1 -1
  88. package/dist/lib/get-schema-from-fgb-header.d.ts.map +1 -1
  89. package/dist/lib/get-schema-from-fgb-header.js.map +1 -1
  90. package/dist/lib/parse-flatgeobuf.js +2 -2
  91. package/dist/lib/parse-flatgeobuf.js.map +1 -1
  92. package/package.json +6 -6
  93. package/src/flatgeobuf/3.27.2/.DS_Store +0 -0
  94. package/src/flatgeobuf/3.27.2/column-meta.ts +1 -1
  95. package/src/flatgeobuf/3.27.2/dumptree.ts +3 -3
  96. package/src/flatgeobuf/3.27.2/feature.ts +1 -1
  97. package/src/flatgeobuf/3.27.2/flat-geobuf/column.ts +1 -1
  98. package/src/flatgeobuf/3.27.2/flat-geobuf/feature.ts +2 -2
  99. package/src/flatgeobuf/3.27.2/flat-geobuf/geometry.ts +1 -1
  100. package/src/flatgeobuf/3.27.2/flat-geobuf/header.ts +3 -3
  101. package/src/flatgeobuf/3.27.2/flat-geobuf.ts +5 -5
  102. package/src/flatgeobuf/3.27.2/generic/feature.ts +5 -5
  103. package/src/flatgeobuf/3.27.2/generic/featurecollection.ts +17 -17
  104. package/src/flatgeobuf/3.27.2/generic/geometry.ts +2 -2
  105. package/src/flatgeobuf/3.27.2/generic/header.ts +4 -4
  106. package/src/flatgeobuf/3.27.2/generic.ts +7 -7
  107. package/src/flatgeobuf/3.27.2/geojson/feature.ts +5 -5
  108. package/src/flatgeobuf/3.27.2/geojson/featurecollection.ts +10 -10
  109. package/src/flatgeobuf/3.27.2/geojson/geometry.ts +3 -3
  110. package/src/flatgeobuf/3.27.2/geojson.ts +4 -4
  111. package/src/flatgeobuf/3.27.2/header-meta.ts +4 -4
  112. package/src/flatgeobuf/3.27.2/header.ts +1 -1
  113. package/src/flatgeobuf/3.27.2/http-reader.ts +6 -6
  114. package/src/flatgeobuf/3.27.2/index.ts +14 -14
  115. package/src/flatgeobuf/3.27.2/packedrtree.ts +2 -2
  116. package/src/lib/get-schema-from-fgb-header.ts +2 -0
  117. package/src/lib/parse-flatgeobuf.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"flatgeobuf-loader.js","names":["parseFlatGeobuf","parseFlatGeobufInBatches","VERSION","FGB_MAGIC_NUMBER","FlatGeobufWorkerLoader","id","name","module","version","worker","extensions","mimeTypes","category","tests","Uint8Array","buffer","options","flatgeobuf","shape","gis","reproject","FlatGeobufLoader","parse","arrayBuffer","parseSync","parseInBatchesFromStream","binary"],"sources":["../src/flatgeobuf-loader.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseFlatGeobuf, parseFlatGeobufInBatches} from './lib/parse-flatgeobuf';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n// FGB\\3FGB\\1\nconst FGB_MAGIC_NUMBER = [0x66, 0x67, 0x62, 0x03, 0x66, 0x67, 0x62, 0x01];\n\nexport type FlatGeobufLoaderOptions = LoaderOptions & {\n flatgeobuf?: {\n shape?: 'geojson-table' | 'columnar-table' | 'binary';\n };\n gis?: {\n reproject?: boolean;\n _targetCrs?: string;\n };\n};\n\nexport const FlatGeobufWorkerLoader: Loader<any, any, FlatGeobufLoaderOptions> = {\n id: 'flatgeobuf',\n name: 'FlatGeobuf',\n module: 'flatgeobuf',\n version: VERSION,\n worker: true,\n extensions: ['fgb'],\n mimeTypes: ['application/octet-stream'],\n category: 'geometry',\n tests: [new Uint8Array(FGB_MAGIC_NUMBER).buffer],\n options: {\n flatgeobuf: {\n shape: 'geojson-table'\n },\n gis: {\n reproject: false\n }\n }\n};\n\nexport const FlatGeobufLoader: LoaderWithParser<any, any, FlatGeobufLoaderOptions> = {\n ...FlatGeobufWorkerLoader,\n parse: async (arrayBuffer, options) => parseFlatGeobuf(arrayBuffer, options),\n parseSync: parseFlatGeobuf,\n // @ts-expect-error this is a stream parser not an async iterator parser\n parseInBatchesFromStream: parseFlatGeobufInBatches,\n binary: true\n};\n"],"mappings":"SAKQA,eAAe,EAAEC,wBAAwB;AAIjD,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAG3E,MAAMC,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAYzE,OAAO,MAAMC,sBAAiE,GAAG;EAC/EC,EAAE,EAAE,YAAY;EAChBC,IAAI,EAAE,YAAY;EAClBC,MAAM,EAAE,YAAY;EACpBC,OAAO,EAAEN,OAAO;EAChBO,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,CAAC,IAAIC,UAAU,CAACX,gBAAgB,CAAC,CAACY,MAAM,CAAC;EAChDC,OAAO,EAAE;IACPC,UAAU,EAAE;MACVC,KAAK,EAAE;IACT,CAAC;IACDC,GAAG,EAAE;MACHC,SAAS,EAAE;IACb;EACF;AACF,CAAC;AAED,OAAO,MAAMC,gBAAqE,GAAG;EACnF,GAAGjB,sBAAsB;EACzBkB,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEP,OAAO,KAAKhB,eAAe,CAACuB,WAAW,EAAEP,OAAO,CAAC;EAC5EQ,SAAS,EAAExB,eAAe;EAE1ByB,wBAAwB,EAAExB,wBAAwB;EAClDyB,MAAM,EAAE;AACV,CAAC"}
1
+ {"version":3,"file":"flatgeobuf-loader.js","names":["parseFlatGeobuf","parseFlatGeobufInBatches","VERSION","FGB_MAGIC_NUMBER","FlatGeobufWorkerLoader","id","name","module","version","worker","extensions","mimeTypes","category","tests","Uint8Array","buffer","options","flatgeobuf","shape","gis","reproject","FlatGeobufLoader","parse","arrayBuffer","parseSync","parseInBatchesFromStream","binary"],"sources":["../src/flatgeobuf-loader.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseFlatGeobuf, parseFlatGeobufInBatches} from './lib/parse-flatgeobuf';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n// FGB\\3FGB\\1\nconst FGB_MAGIC_NUMBER = [0x66, 0x67, 0x62, 0x03, 0x66, 0x67, 0x62, 0x01];\n\nexport type FlatGeobufLoaderOptions = LoaderOptions & {\n flatgeobuf?: {\n shape?: 'geojson-table' | 'columnar-table' | 'binary';\n };\n gis?: {\n reproject?: boolean;\n _targetCrs?: string;\n };\n};\n\nexport const FlatGeobufWorkerLoader: Loader<any, any, FlatGeobufLoaderOptions> = {\n id: 'flatgeobuf',\n name: 'FlatGeobuf',\n module: 'flatgeobuf',\n version: VERSION,\n worker: true,\n extensions: ['fgb'],\n mimeTypes: ['application/octet-stream'],\n category: 'geometry',\n tests: [new Uint8Array(FGB_MAGIC_NUMBER).buffer],\n options: {\n flatgeobuf: {\n shape: 'geojson-table'\n },\n gis: {\n reproject: false\n }\n }\n};\n\nexport const FlatGeobufLoader: LoaderWithParser<any, any, FlatGeobufLoaderOptions> = {\n ...FlatGeobufWorkerLoader,\n parse: async (arrayBuffer, options) => parseFlatGeobuf(arrayBuffer, options),\n parseSync: parseFlatGeobuf,\n // @ts-expect-error this is a stream parser not an async iterator parser\n parseInBatchesFromStream: parseFlatGeobufInBatches,\n binary: true\n};\n"],"mappings":"SAKQA,eAAe,EAAEC,wBAAwB;AAIjD,MAAMC,OAAO,GAAG,cAAkB,KAAK,WAAW,aAAiB,QAAQ;AAG3E,MAAMC,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAYzE,OAAO,MAAMC,sBAAiE,GAAG;EAC/EC,EAAE,EAAE,YAAY;EAChBC,IAAI,EAAE,YAAY;EAClBC,MAAM,EAAE,YAAY;EACpBC,OAAO,EAAEN,OAAO;EAChBO,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,CAAC,IAAIC,UAAU,CAACX,gBAAgB,CAAC,CAACY,MAAM,CAAC;EAChDC,OAAO,EAAE;IACPC,UAAU,EAAE;MACVC,KAAK,EAAE;IACT,CAAC;IACDC,GAAG,EAAE;MACHC,SAAS,EAAE;IACb;EACF;AACF,CAAC;AAED,OAAO,MAAMC,gBAAqE,GAAG;EACnF,GAAGjB,sBAAsB;EACzBkB,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEP,OAAO,KAAKhB,eAAe,CAACuB,WAAW,EAAEP,OAAO,CAAC;EAC5EQ,SAAS,EAAExB,eAAe;EAE1ByB,wBAAwB,EAAExB,wBAAwB;EAClDyB,MAAM,EAAE;AACV,CAAC"}
@@ -8855,7 +8855,7 @@
8855
8855
  }
8856
8856
 
8857
8857
  // src/flatgeobuf-loader.ts
8858
- var VERSION = true ? "4.1.0-alpha.8" : "latest";
8858
+ var VERSION = true ? "4.1.0" : "latest";
8859
8859
  var FGB_MAGIC_NUMBER = [102, 103, 98, 3, 102, 103, 98, 1];
8860
8860
  var FlatGeobufWorkerLoader = {
8861
8861
  id: "flatgeobuf",
@@ -1 +1 @@
1
- {"version":3,"file":"get-schema-from-fgb-header.d.ts","sourceRoot":"","sources":["../../src/lib/get-schema-from-fgb-header.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAkB,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,sBAAsB,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAcxE"}
1
+ {"version":3,"file":"get-schema-from-fgb-header.d.ts","sourceRoot":"","sources":["../../src/lib/get-schema-from-fgb-header.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,MAAM,EAAkB,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,sBAAsB,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAcxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-schema-from-fgb-header.js","names":["getSchemaFromFGBHeader","fgbHeader","_fgbHeader$envelope","_fgbHeader$columns","metadata","title","description","crs","JSON","stringify","geometryType","String","indexNodeSize","featureCount","featuresCount","bounds","envelope","join","fields","columns","map","column","getFieldFromFGBColumn","fgbColumn","width","precision","scale","unique","primary_key","name","type","getTypeFromFGBType","nullable","fgbColumnType","fgbType","Byte","UByte","Bool","Short","UShort","Int","UInt","Long","ULong","Float","Double","Json","DateTime","Binary"],"sources":["../../src/lib/get-schema-from-fgb-header.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Schema, Field, DataType} from '@loaders.gl/schema';\nimport * as fgb from '../flatgeobuf/3.27.2';\n\n/**\n * @param fgbHeader\n * geometryType: GeometryType;\n * columns: ColumnMeta[] | null;\n * envelope: Float64Array | null;\n * featuresCount: number;\n * indexNodeSize: number;\n * crs: CrsMeta | null;\n * title: string | null;\n * description: string | null;\n * metadata: string | null;\n */\nexport function getSchemaFromFGBHeader(fgbHeader: fgb.HeaderMeta): Schema {\n const metadata: Record<string, string> = {\n title: fgbHeader.title || '',\n description: fgbHeader.description || '',\n crs: JSON.stringify(fgbHeader.crs) || '',\n metadata: fgbHeader.metadata || '',\n geometryType: String(fgbHeader.geometryType),\n indexNodeSize: String(fgbHeader.indexNodeSize),\n featureCount: String(fgbHeader.featuresCount),\n bounds: fgbHeader.envelope?.join(',') || ''\n };\n\n const fields: Field[] = fgbHeader.columns?.map((column) => getFieldFromFGBColumn(column)) || [];\n return {metadata, fields};\n}\n\n/**\n * name: string;\n * type: ColumnType;\n * title: string | null;\n * description: string | null;\n * width: number;\n * precision: number;\n * scale: number;\n * nullable: boolean;\n * unique: boolean;\n * primary_key: boolean;\n */\nfunction getFieldFromFGBColumn(fgbColumn: fgb.ColumnMeta): Field {\n const metadata: Record<string, string> = {\n title: fgbColumn.title || '',\n description: fgbColumn.description || '',\n width: String(fgbColumn.width),\n precision: String(fgbColumn.precision),\n scale: String(fgbColumn.scale),\n unique: String(fgbColumn.unique),\n primary_key: String(fgbColumn.primary_key)\n };\n\n return {\n name: fgbColumn.name,\n type: getTypeFromFGBType(fgbColumn.type as unknown as fgbColumnType),\n nullable: fgbColumn.nullable,\n metadata\n };\n}\n\n/** Note: fgb.ColumType does not appear to be exported */\nenum fgbColumnType {\n Byte = 0,\n UByte = 1,\n Bool = 2,\n Short = 3,\n UShort = 4,\n Int = 5,\n UInt = 6,\n Long = 7,\n ULong = 8,\n Float = 9,\n Double = 10,\n String = 11,\n Json = 12,\n DateTime = 13,\n Binary = 14\n}\n\n/** Convert FGB types to arrow like types */\nfunction getTypeFromFGBType(fgbType: fgbColumnType /* fgb.ColumnMeta['type'] */): DataType {\n switch (fgbType) {\n case fgbColumnType.Byte:\n return 'int8';\n case fgbColumnType.UByte:\n return 'uint8';\n case fgbColumnType.Bool:\n return 'bool';\n case fgbColumnType.Short:\n return 'int16';\n case fgbColumnType.UShort:\n return 'uint16';\n case fgbColumnType.Int:\n return 'int32';\n case fgbColumnType.UInt:\n return 'uint32';\n case fgbColumnType.Long:\n return 'int64';\n case fgbColumnType.ULong:\n return 'uint64';\n case fgbColumnType.Float:\n return 'float32';\n case fgbColumnType.Double:\n return 'float64';\n case fgbColumnType.String:\n return 'utf8';\n case fgbColumnType.Json:\n return 'null';\n case fgbColumnType.DateTime:\n return 'date-millisecond';\n case fgbColumnType.Binary:\n return 'binary';\n default:\n return 'null';\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"get-schema-from-fgb-header.js","names":["getSchemaFromFGBHeader","fgbHeader","_fgbHeader$envelope","_fgbHeader$columns","metadata","title","description","crs","JSON","stringify","geometryType","String","indexNodeSize","featureCount","featuresCount","bounds","envelope","join","fields","columns","map","column","getFieldFromFGBColumn","fgbColumn","width","precision","scale","unique","primary_key","name","type","getTypeFromFGBType","nullable","fgbColumnType","fgbType","Byte","UByte","Bool","Short","UShort","Int","UInt","Long","ULong","Float","Double","Json","DateTime","Binary"],"sources":["../../src/lib/get-schema-from-fgb-header.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase */\n\nimport type {Schema, Field, DataType} from '@loaders.gl/schema';\nimport * as fgb from '../flatgeobuf/3.27.2';\n\n/**\n * @param fgbHeader\n * geometryType: GeometryType;\n * columns: ColumnMeta[] | null;\n * envelope: Float64Array | null;\n * featuresCount: number;\n * indexNodeSize: number;\n * crs: CrsMeta | null;\n * title: string | null;\n * description: string | null;\n * metadata: string | null;\n */\nexport function getSchemaFromFGBHeader(fgbHeader: fgb.HeaderMeta): Schema {\n const metadata: Record<string, string> = {\n title: fgbHeader.title || '',\n description: fgbHeader.description || '',\n crs: JSON.stringify(fgbHeader.crs) || '',\n metadata: fgbHeader.metadata || '',\n geometryType: String(fgbHeader.geometryType),\n indexNodeSize: String(fgbHeader.indexNodeSize),\n featureCount: String(fgbHeader.featuresCount),\n bounds: fgbHeader.envelope?.join(',') || ''\n };\n\n const fields: Field[] = fgbHeader.columns?.map((column) => getFieldFromFGBColumn(column)) || [];\n return {metadata, fields};\n}\n\n/**\n * name: string;\n * type: ColumnType;\n * title: string | null;\n * description: string | null;\n * width: number;\n * precision: number;\n * scale: number;\n * nullable: boolean;\n * unique: boolean;\n * primary_key: boolean;\n */\nfunction getFieldFromFGBColumn(fgbColumn: fgb.ColumnMeta): Field {\n const metadata: Record<string, string> = {\n title: fgbColumn.title || '',\n description: fgbColumn.description || '',\n width: String(fgbColumn.width),\n precision: String(fgbColumn.precision),\n scale: String(fgbColumn.scale),\n unique: String(fgbColumn.unique),\n primary_key: String(fgbColumn.primary_key)\n };\n\n return {\n name: fgbColumn.name,\n type: getTypeFromFGBType(fgbColumn.type as unknown as fgbColumnType),\n nullable: fgbColumn.nullable,\n metadata\n };\n}\n\n/** Note: fgb.ColumType does not appear to be exported */\nenum fgbColumnType {\n Byte = 0,\n UByte = 1,\n Bool = 2,\n Short = 3,\n UShort = 4,\n Int = 5,\n UInt = 6,\n Long = 7,\n ULong = 8,\n Float = 9,\n Double = 10,\n String = 11,\n Json = 12,\n DateTime = 13,\n Binary = 14\n}\n\n/** Convert FGB types to arrow like types */\nfunction getTypeFromFGBType(fgbType: fgbColumnType /* fgb.ColumnMeta['type'] */): DataType {\n switch (fgbType) {\n case fgbColumnType.Byte:\n return 'int8';\n case fgbColumnType.UByte:\n return 'uint8';\n case fgbColumnType.Bool:\n return 'bool';\n case fgbColumnType.Short:\n return 'int16';\n case fgbColumnType.UShort:\n return 'uint16';\n case fgbColumnType.Int:\n return 'int32';\n case fgbColumnType.UInt:\n return 'uint32';\n case fgbColumnType.Long:\n return 'int64';\n case fgbColumnType.ULong:\n return 'uint64';\n case fgbColumnType.Float:\n return 'float32';\n case fgbColumnType.Double:\n return 'float64';\n case fgbColumnType.String:\n return 'utf8';\n case fgbColumnType.Json:\n return 'null';\n case fgbColumnType.DateTime:\n return 'date-millisecond';\n case fgbColumnType.Binary:\n return 'binary';\n default:\n return 'null';\n }\n}\n"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { Proj4Projection } from '@math.gl/proj4';
2
2
  import { transformGeoJsonCoords } from '@loaders.gl/gis';
3
3
  import { fgbToBinaryGeometry } from "./binary-geometries.js";
4
4
  import { getSchemaFromFGBHeader } from "./get-schema-from-fgb-header.js";
5
- import * as geojson from '../flatgeobuf/3.27.2/geojson.js';
6
- import * as generic from '../flatgeobuf/3.27.2/generic.js';
5
+ import * as geojson from "../flatgeobuf/3.27.2/geojson/index.js";
6
+ import * as generic from "../flatgeobuf/3.27.2/generic/index.js";
7
7
  import { parseProperties as parsePropertiesBinary } from "../flatgeobuf/3.27.2/generic/feature.js";
8
8
  const deserializeGeoJson = geojson.deserialize;
9
9
  const deserializeGeneric = generic.deserialize;
@@ -1 +1 @@
1
- {"version":3,"file":"parse-flatgeobuf.js","names":["Proj4Projection","transformGeoJsonCoords","fgbToBinaryGeometry","getSchemaFromFGBHeader","geojson","generic","parseProperties","parsePropertiesBinary","deserializeGeoJson","deserialize","deserializeGeneric","binaryFromFeature","feature","header","geometry","geometryType","type","parsedGeometry","properties","columns","parseFlatGeobuf","arrayBuffer","options","_options$flatgeobuf","shape","flatgeobuf","parseFlatGeobufToGeoJSONTable","binary","parseFlatGeobufToBinary","data","Error","arguments","length","undefined","array","Uint8Array","byteLength","features","reproject","_targetCrs","gis","arr","fgbHeader","schema","headerMeta","crs","projection","from","wkt","to","e","coords","project","parseFlatGeobufInBatches","stream","_options$flatgeobuf2","parseFlatGeobufInBatchesToBinary","parseFlatGeobufInBatchesToGeoJSON","iterator","firstRecord"],"sources":["../../src/lib/parse-flatgeobuf.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Proj4Projection} from '@math.gl/proj4';\nimport {transformGeoJsonCoords} from '@loaders.gl/gis';\n\nimport type {FlatGeobufLoaderOptions} from '../flatgeobuf-loader';\nimport type {GeoJSONTable, Table, Schema} from '@loaders.gl/schema';\n\nimport {fgbToBinaryGeometry} from './binary-geometries';\nimport {getSchemaFromFGBHeader} from './get-schema-from-fgb-header';\n\nimport * as fgb from '../flatgeobuf/3.27.2';\nimport * as geojson from '../flatgeobuf/3.27.2/geojson.js';\nimport * as generic from '../flatgeobuf/3.27.2/generic.js';\nimport {parseProperties as parsePropertiesBinary} from '../flatgeobuf/3.27.2/generic/feature';\n\nconst deserializeGeoJson = geojson.deserialize;\nconst deserializeGeneric = generic.deserialize;\n// const parsePropertiesBinary = FlatgeobufFeature.parseProperties;\n\n// TODO: reproject binary features\nfunction binaryFromFeature(feature: fgb.Feature, header: fgb.HeaderMeta) {\n const geometry = feature.geometry();\n\n // FlatGeobuf files can only hold a single geometry type per file, otherwise\n // GeometryType is GeometryCollection\n // I believe geometry.type() is null (0) except when the geometry type isn't\n // known in the header?\n const geometryType = header.geometryType || geometry?.type();\n const parsedGeometry = fgbToBinaryGeometry(geometry, geometryType!);\n // @ts-expect-error this looks wrong\n parsedGeometry.properties = parsePropertiesBinary(feature, header.columns);\n\n // TODO: wrap binary data either in points, lines, or polygons key\n return parsedGeometry;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param arrayBuffer A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object\n */\nexport function parseFlatGeobuf(\n arrayBuffer: ArrayBuffer,\n options?: FlatGeobufLoaderOptions\n): Table {\n const shape = options?.flatgeobuf?.shape;\n\n switch (shape) {\n case 'geojson-table': {\n return parseFlatGeobufToGeoJSONTable(arrayBuffer, options);\n }\n\n case 'columnar-table': // binary + some JS arrays\n const binary = parseFlatGeobufToBinary(arrayBuffer, options);\n // @ts-expect-error\n return {shape: 'columnar-table', data: binary};\n\n case 'binary':\n // @ts-expect-error\n return parseFlatGeobufToBinary(arrayBuffer, options);\n\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseFlatGeobufToBinary(arrayBuffer: ArrayBuffer, options: FlatGeobufLoaderOptions = {}) {\n // TODO: reproject binary features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const array = new Uint8Array(arrayBuffer);\n // @ts-expect-error\n return deserializeGeneric(array, fgbToBinaryGeometry);\n}\n\nfunction parseFlatGeobufToGeoJSONTable(\n arrayBuffer: ArrayBuffer,\n options: FlatGeobufLoaderOptions = {}\n): GeoJSONTable {\n if (arrayBuffer.byteLength === 0) {\n return {shape: 'geojson-table', type: 'FeatureCollection', features: []};\n }\n\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const arr = new Uint8Array(arrayBuffer);\n\n let fgbHeader;\n let schema: Schema | undefined;\n\n // @ts-expect-error this looks wrong\n let {features} = deserializeGeoJson(arr, undefined, (headerMeta) => {\n fgbHeader = headerMeta;\n schema = getSchemaFromFGBHeader(fgbHeader);\n });\n\n const crs = fgbHeader && fgbHeader.crs;\n let projection;\n if (reproject && crs) {\n // Constructing the projection may fail for some invalid WKT strings\n try {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n } catch (e) {\n // no op\n }\n }\n\n if (projection) {\n features = transformGeoJsonCoords(features, (coords) => projection.project(coords));\n }\n\n return {shape: 'geojson-table', schema, type: 'FeatureCollection', features};\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param {ReadableStream} _ A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object iterator\n */\n// eslint-disable-next-line complexity\nexport function parseFlatGeobufInBatches(stream, options: FlatGeobufLoaderOptions) {\n const shape = options.flatgeobuf?.shape;\n switch (shape) {\n case 'binary':\n return parseFlatGeobufInBatchesToBinary(stream, options);\n case 'geojson-table':\n return parseFlatGeobufInBatchesToGeoJSON(stream, options);\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseFlatGeobufInBatchesToBinary(stream, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary streaming features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n // @ts-expect-error\n const iterator = deserializeGeneric(stream, binaryFromFeature);\n return iterator;\n}\n\n/**\n * @todo this does not return proper GeoJSONTable batches\n * @param stream\n * @param options\n */\n// eslint-disable-next-line complexity\nasync function* parseFlatGeobufInBatchesToGeoJSON(stream, options: FlatGeobufLoaderOptions) {\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n let fgbHeader;\n // let schema: Schema | undefined;\n const iterator = deserializeGeoJson(stream, undefined, (headerMeta) => {\n fgbHeader = headerMeta;\n // schema = getSchemaFromFGBHeader(fgbHeader);\n });\n\n let projection;\n let firstRecord = true;\n // @ts-expect-error this looks wrong\n for await (const feature of iterator) {\n if (firstRecord) {\n const crs = fgbHeader && fgbHeader.crs;\n if (reproject && crs) {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n }\n\n firstRecord = false;\n }\n\n if (reproject && projection) {\n // eslint-disable-next-line\n yield transformGeoJsonCoords([feature], (coords) => projection.project(coords));\n } else {\n yield feature;\n }\n }\n}\n"],"mappings":"AAIA,SAAQA,eAAe,QAAO,gBAAgB;AAC9C,SAAQC,sBAAsB,QAAO,iBAAiB;AAAC,SAK/CC,mBAAmB;AAAA,SACnBC,sBAAsB;AAG9B,OAAO,KAAKC,OAAO,MAAM,iCAAiC;AAC1D,OAAO,KAAKC,OAAO,MAAM,iCAAiC;AAAC,SACnDC,eAAe,IAAIC,qBAAqB;AAEhD,MAAMC,kBAAkB,GAAGJ,OAAO,CAACK,WAAW;AAC9C,MAAMC,kBAAkB,GAAGL,OAAO,CAACI,WAAW;AAI9C,SAASE,iBAAiBA,CAACC,OAAoB,EAAEC,MAAsB,EAAE;EACvE,MAAMC,QAAQ,GAAGF,OAAO,CAACE,QAAQ,CAAC,CAAC;EAMnC,MAAMC,YAAY,GAAGF,MAAM,CAACE,YAAY,KAAID,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,IAAI,CAAC,CAAC;EAC5D,MAAMC,cAAc,GAAGf,mBAAmB,CAACY,QAAQ,EAAEC,YAAa,CAAC;EAEnEE,cAAc,CAACC,UAAU,GAAGX,qBAAqB,CAACK,OAAO,EAAEC,MAAM,CAACM,OAAO,CAAC;EAG1E,OAAOF,cAAc;AACvB;AAQA,OAAO,SAASG,eAAeA,CAC7BC,WAAwB,EACxBC,OAAiC,EAC1B;EAAA,IAAAC,mBAAA;EACP,MAAMC,KAAK,GAAGF,OAAO,aAAPA,OAAO,wBAAAC,mBAAA,GAAPD,OAAO,CAAEG,UAAU,cAAAF,mBAAA,uBAAnBA,mBAAA,CAAqBC,KAAK;EAExC,QAAQA,KAAK;IACX,KAAK,eAAe;MAAE;QACpB,OAAOE,6BAA6B,CAACL,WAAW,EAAEC,OAAO,CAAC;MAC5D;IAEA,KAAK,gBAAgB;MACnB,MAAMK,MAAM,GAAGC,uBAAuB,CAACP,WAAW,EAAEC,OAAO,CAAC;MAE5D,OAAO;QAACE,KAAK,EAAE,gBAAgB;QAAEK,IAAI,EAAEF;MAAM,CAAC;IAEhD,KAAK,QAAQ;MAEX,OAAOC,uBAAuB,CAACP,WAAW,EAAEC,OAAO,CAAC;IAEtD;MACE,MAAM,IAAIQ,KAAK,CAACN,KAAK,CAAC;EAC1B;AACF;AAEA,SAASI,uBAAuBA,CAACP,WAAwB,EAAyC;EAAA,IAAvCC,OAAgC,GAAAS,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAI9F,MAAMG,KAAK,GAAG,IAAIC,UAAU,CAACd,WAAW,CAAC;EAEzC,OAAOX,kBAAkB,CAACwB,KAAK,EAAEhC,mBAAmB,CAAC;AACvD;AAEA,SAASwB,6BAA6BA,CACpCL,WAAwB,EAEV;EAAA,IADdC,OAAgC,GAAAS,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAErC,IAAIV,WAAW,CAACe,UAAU,KAAK,CAAC,EAAE;IAChC,OAAO;MAACZ,KAAK,EAAE,eAAe;MAAER,IAAI,EAAE,mBAAmB;MAAEqB,QAAQ,EAAE;IAAE,CAAC;EAC1E;EAEA,MAAM;IAACC,SAAS,GAAG,KAAK;IAAEC,UAAU,GAAG;EAAO,CAAC,GAAIjB,OAAO,IAAIA,OAAO,CAACkB,GAAG,IAAK,CAAC,CAAC;EAEhF,MAAMC,GAAG,GAAG,IAAIN,UAAU,CAACd,WAAW,CAAC;EAEvC,IAAIqB,SAAS;EACb,IAAIC,MAA0B;EAG9B,IAAI;IAACN;EAAQ,CAAC,GAAG7B,kBAAkB,CAACiC,GAAG,EAAER,SAAS,EAAGW,UAAU,IAAK;IAClEF,SAAS,GAAGE,UAAU;IACtBD,MAAM,GAAGxC,sBAAsB,CAACuC,SAAS,CAAC;EAC5C,CAAC,CAAC;EAEF,MAAMG,GAAG,GAAGH,SAAS,IAAIA,SAAS,CAACG,GAAG;EACtC,IAAIC,UAAU;EACd,IAAIR,SAAS,IAAIO,GAAG,EAAE;IAEpB,IAAI;MACFC,UAAU,GAAG,IAAI9C,eAAe,CAAC;QAAC+C,IAAI,EAAEF,GAAG,CAACG,GAAG;QAAEC,EAAE,EAAEV;MAAU,CAAC,CAAC;IACnE,CAAC,CAAC,OAAOW,CAAC,EAAE,CAEZ;EACF;EAEA,IAAIJ,UAAU,EAAE;IACdT,QAAQ,GAAGpC,sBAAsB,CAACoC,QAAQ,EAAGc,MAAM,IAAKL,UAAU,CAACM,OAAO,CAACD,MAAM,CAAC,CAAC;EACrF;EAEA,OAAO;IAAC3B,KAAK,EAAE,eAAe;IAAEmB,MAAM;IAAE3B,IAAI,EAAE,mBAAmB;IAAEqB;EAAQ,CAAC;AAC9E;AASA,OAAO,SAASgB,wBAAwBA,CAACC,MAAM,EAAEhC,OAAgC,EAAE;EAAA,IAAAiC,oBAAA;EACjF,MAAM/B,KAAK,IAAA+B,oBAAA,GAAGjC,OAAO,CAACG,UAAU,cAAA8B,oBAAA,uBAAlBA,oBAAA,CAAoB/B,KAAK;EACvC,QAAQA,KAAK;IACX,KAAK,QAAQ;MACX,OAAOgC,gCAAgC,CAACF,MAAM,EAAEhC,OAAO,CAAC;IAC1D,KAAK,eAAe;MAClB,OAAOmC,iCAAiC,CAACH,MAAM,EAAEhC,OAAO,CAAC;IAC3D;MACE,MAAM,IAAIQ,KAAK,CAACN,KAAK,CAAC;EAC1B;AACF;AAEA,SAASgC,gCAAgCA,CAACF,MAAM,EAAEhC,OAAgC,EAAE;EAKlF,MAAMoC,QAAQ,GAAGhD,kBAAkB,CAAC4C,MAAM,EAAE3C,iBAAiB,CAAC;EAC9D,OAAO+C,QAAQ;AACjB;AAQA,gBAAgBD,iCAAiCA,CAACH,MAAM,EAAEhC,OAAgC,EAAE;EAC1F,MAAM;IAACgB,SAAS,GAAG,KAAK;IAAEC,UAAU,GAAG;EAAO,CAAC,GAAIjB,OAAO,IAAIA,OAAO,CAACkB,GAAG,IAAK,CAAC,CAAC;EAEhF,IAAIE,SAAS;EAEb,MAAMgB,QAAQ,GAAGlD,kBAAkB,CAAC8C,MAAM,EAAErB,SAAS,EAAGW,UAAU,IAAK;IACrEF,SAAS,GAAGE,UAAU;EAExB,CAAC,CAAC;EAEF,IAAIE,UAAU;EACd,IAAIa,WAAW,GAAG,IAAI;EAEtB,WAAW,MAAM/C,OAAO,IAAI8C,QAAQ,EAAE;IACpC,IAAIC,WAAW,EAAE;MACf,MAAMd,GAAG,GAAGH,SAAS,IAAIA,SAAS,CAACG,GAAG;MACtC,IAAIP,SAAS,IAAIO,GAAG,EAAE;QACpBC,UAAU,GAAG,IAAI9C,eAAe,CAAC;UAAC+C,IAAI,EAAEF,GAAG,CAACG,GAAG;UAAEC,EAAE,EAAEV;QAAU,CAAC,CAAC;MACnE;MAEAoB,WAAW,GAAG,KAAK;IACrB;IAEA,IAAIrB,SAAS,IAAIQ,UAAU,EAAE;MAE3B,MAAM7C,sBAAsB,CAAC,CAACW,OAAO,CAAC,EAAGuC,MAAM,IAAKL,UAAU,CAACM,OAAO,CAACD,MAAM,CAAC,CAAC;IACjF,CAAC,MAAM;MACL,MAAMvC,OAAO;IACf;EACF;AACF"}
1
+ {"version":3,"file":"parse-flatgeobuf.js","names":["Proj4Projection","transformGeoJsonCoords","fgbToBinaryGeometry","getSchemaFromFGBHeader","geojson","generic","parseProperties","parsePropertiesBinary","deserializeGeoJson","deserialize","deserializeGeneric","binaryFromFeature","feature","header","geometry","geometryType","type","parsedGeometry","properties","columns","parseFlatGeobuf","arrayBuffer","options","_options$flatgeobuf","shape","flatgeobuf","parseFlatGeobufToGeoJSONTable","binary","parseFlatGeobufToBinary","data","Error","arguments","length","undefined","array","Uint8Array","byteLength","features","reproject","_targetCrs","gis","arr","fgbHeader","schema","headerMeta","crs","projection","from","wkt","to","e","coords","project","parseFlatGeobufInBatches","stream","_options$flatgeobuf2","parseFlatGeobufInBatchesToBinary","parseFlatGeobufInBatchesToGeoJSON","iterator","firstRecord"],"sources":["../../src/lib/parse-flatgeobuf.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Proj4Projection} from '@math.gl/proj4';\nimport {transformGeoJsonCoords} from '@loaders.gl/gis';\n\nimport type {FlatGeobufLoaderOptions} from '../flatgeobuf-loader';\nimport type {GeoJSONTable, Table, Schema} from '@loaders.gl/schema';\n\nimport {fgbToBinaryGeometry} from './binary-geometries';\nimport {getSchemaFromFGBHeader} from './get-schema-from-fgb-header';\n\nimport * as fgb from '../flatgeobuf/3.27.2';\nimport * as geojson from '../flatgeobuf/3.27.2/geojson';\nimport * as generic from '../flatgeobuf/3.27.2/generic';\nimport {parseProperties as parsePropertiesBinary} from '../flatgeobuf/3.27.2/generic/feature';\n\nconst deserializeGeoJson = geojson.deserialize;\nconst deserializeGeneric = generic.deserialize;\n// const parsePropertiesBinary = FlatgeobufFeature.parseProperties;\n\n// TODO: reproject binary features\nfunction binaryFromFeature(feature: fgb.Feature, header: fgb.HeaderMeta) {\n const geometry = feature.geometry();\n\n // FlatGeobuf files can only hold a single geometry type per file, otherwise\n // GeometryType is GeometryCollection\n // I believe geometry.type() is null (0) except when the geometry type isn't\n // known in the header?\n const geometryType = header.geometryType || geometry?.type();\n const parsedGeometry = fgbToBinaryGeometry(geometry, geometryType!);\n // @ts-expect-error this looks wrong\n parsedGeometry.properties = parsePropertiesBinary(feature, header.columns);\n\n // TODO: wrap binary data either in points, lines, or polygons key\n return parsedGeometry;\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param arrayBuffer A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object\n */\nexport function parseFlatGeobuf(\n arrayBuffer: ArrayBuffer,\n options?: FlatGeobufLoaderOptions\n): Table {\n const shape = options?.flatgeobuf?.shape;\n\n switch (shape) {\n case 'geojson-table': {\n return parseFlatGeobufToGeoJSONTable(arrayBuffer, options);\n }\n\n case 'columnar-table': // binary + some JS arrays\n const binary = parseFlatGeobufToBinary(arrayBuffer, options);\n // @ts-expect-error\n return {shape: 'columnar-table', data: binary};\n\n case 'binary':\n // @ts-expect-error\n return parseFlatGeobufToBinary(arrayBuffer, options);\n\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseFlatGeobufToBinary(arrayBuffer: ArrayBuffer, options: FlatGeobufLoaderOptions = {}) {\n // TODO: reproject binary features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const array = new Uint8Array(arrayBuffer);\n // @ts-expect-error\n return deserializeGeneric(array, fgbToBinaryGeometry);\n}\n\nfunction parseFlatGeobufToGeoJSONTable(\n arrayBuffer: ArrayBuffer,\n options: FlatGeobufLoaderOptions = {}\n): GeoJSONTable {\n if (arrayBuffer.byteLength === 0) {\n return {shape: 'geojson-table', type: 'FeatureCollection', features: []};\n }\n\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n const arr = new Uint8Array(arrayBuffer);\n\n let fgbHeader;\n let schema: Schema | undefined;\n\n // @ts-expect-error this looks wrong\n let {features} = deserializeGeoJson(arr, undefined, (headerMeta) => {\n fgbHeader = headerMeta;\n schema = getSchemaFromFGBHeader(fgbHeader);\n });\n\n const crs = fgbHeader && fgbHeader.crs;\n let projection;\n if (reproject && crs) {\n // Constructing the projection may fail for some invalid WKT strings\n try {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n } catch (e) {\n // no op\n }\n }\n\n if (projection) {\n features = transformGeoJsonCoords(features, (coords) => projection.project(coords));\n }\n\n return {shape: 'geojson-table', schema, type: 'FeatureCollection', features};\n}\n\n/*\n * Parse FlatGeobuf arrayBuffer and return GeoJSON.\n *\n * @param {ReadableStream} _ A FlatGeobuf arrayBuffer\n * @return A GeoJSON geometry object iterator\n */\n// eslint-disable-next-line complexity\nexport function parseFlatGeobufInBatches(stream, options: FlatGeobufLoaderOptions) {\n const shape = options.flatgeobuf?.shape;\n switch (shape) {\n case 'binary':\n return parseFlatGeobufInBatchesToBinary(stream, options);\n case 'geojson-table':\n return parseFlatGeobufInBatchesToGeoJSON(stream, options);\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseFlatGeobufInBatchesToBinary(stream, options: FlatGeobufLoaderOptions) {\n // TODO: reproject binary streaming features\n // const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n // @ts-expect-error\n const iterator = deserializeGeneric(stream, binaryFromFeature);\n return iterator;\n}\n\n/**\n * @todo this does not return proper GeoJSONTable batches\n * @param stream\n * @param options\n */\n// eslint-disable-next-line complexity\nasync function* parseFlatGeobufInBatchesToGeoJSON(stream, options: FlatGeobufLoaderOptions) {\n const {reproject = false, _targetCrs = 'WGS84'} = (options && options.gis) || {};\n\n let fgbHeader;\n // let schema: Schema | undefined;\n const iterator = deserializeGeoJson(stream, undefined, (headerMeta) => {\n fgbHeader = headerMeta;\n // schema = getSchemaFromFGBHeader(fgbHeader);\n });\n\n let projection;\n let firstRecord = true;\n // @ts-expect-error this looks wrong\n for await (const feature of iterator) {\n if (firstRecord) {\n const crs = fgbHeader && fgbHeader.crs;\n if (reproject && crs) {\n projection = new Proj4Projection({from: crs.wkt, to: _targetCrs});\n }\n\n firstRecord = false;\n }\n\n if (reproject && projection) {\n // eslint-disable-next-line\n yield transformGeoJsonCoords([feature], (coords) => projection.project(coords));\n } else {\n yield feature;\n }\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loaders.gl/flatgeobuf",
3
3
  "description": "Loader for FlatGeobuf",
4
- "version": "4.1.0-alpha.8",
4
+ "version": "4.1.0",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "publishConfig": {
@@ -26,9 +26,9 @@
26
26
  "module": "dist/index.js",
27
27
  "exports": {
28
28
  ".": {
29
+ "types": "./dist/index.d.ts",
29
30
  "import": "./dist/index.js",
30
- "require": "./dist/index.cjs",
31
- "types": "./dist/index.d.ts"
31
+ "require": "./dist/index.cjs"
32
32
  }
33
33
  },
34
34
  "sideEffects": false,
@@ -43,13 +43,13 @@
43
43
  "build-worker": "esbuild src/workers/flatgeobuf-worker.ts --bundle --outfile=dist/flatgeobuf-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
44
44
  },
45
45
  "dependencies": {
46
- "@loaders.gl/gis": "4.1.0-alpha.8",
47
- "@loaders.gl/loader-utils": "4.1.0-alpha.8",
46
+ "@loaders.gl/gis": "4.1.0",
47
+ "@loaders.gl/loader-utils": "4.1.0",
48
48
  "@math.gl/proj4": "^4.0.0",
49
49
  "flatgeobuf": "3.27.2"
50
50
  },
51
51
  "devDependencies": {
52
52
  "stream-buffers": "3.0.2"
53
53
  },
54
- "gitHead": "144bb2f0788b5495541d1b5f7276b02ee70bf6d5"
54
+ "gitHead": "75961cc7a6ed6679018c0e3fb6eb5c3c74d97bdb"
55
55
  }
Binary file
@@ -1,4 +1,4 @@
1
- import {ColumnType} from './flat-geobuf/column-type.js';
1
+ import {ColumnType} from './flat-geobuf/column-type';
2
2
 
3
3
  export default interface ColumnMeta {
4
4
  name: string;
@@ -7,9 +7,9 @@ import GeometryFactory from 'jsts/org/locationtech/jts/geom/GeometryFactory.js';
7
7
  import GeoJSONWriter from 'jsts/org/locationtech/jts/io/GeoJSONWriter.js';
8
8
  import {readFileSync, writeFileSync} from 'fs';
9
9
 
10
- import {magicbytes, SIZE_PREFIX_LEN} from './constants.js';
11
- import {fromByteBuffer} from './header-meta.js';
12
- import {calcTreeSize, generateLevelBounds} from './packedrtree.js';
10
+ import {magicbytes, SIZE_PREFIX_LEN} from './constants';
11
+ import {fromByteBuffer} from './header-meta';
12
+ import {calcTreeSize, generateLevelBounds} from './packedrtree';
13
13
 
14
14
  const buffer = readFileSync('./test/data/tiger_roads.fgb');
15
15
  const bytes = new Uint8Array(buffer);
@@ -1,3 +1,3 @@
1
1
  // automatically generated by the FlatBuffers compiler, do not modify
2
2
 
3
- export * as FlatGeobuf from './flat-geobuf.js';
3
+ export * as FlatGeobuf from './flat-geobuf';
@@ -2,7 +2,7 @@
2
2
 
3
3
  import * as flatbuffers from 'flatbuffers';
4
4
 
5
- import {ColumnType} from '../flat-geobuf/column-type.js';
5
+ import {ColumnType} from '../flat-geobuf/column-type';
6
6
 
7
7
  export class Column {
8
8
  bb: flatbuffers.ByteBuffer | null = null;
@@ -2,8 +2,8 @@
2
2
 
3
3
  import * as flatbuffers from 'flatbuffers';
4
4
 
5
- import {Column} from '../flat-geobuf/column.js';
6
- import {Geometry} from '../flat-geobuf/geometry.js';
5
+ import {Column} from '../flat-geobuf/column';
6
+ import {Geometry} from '../flat-geobuf/geometry';
7
7
 
8
8
  export class Feature {
9
9
  bb: flatbuffers.ByteBuffer | null = null;
@@ -2,7 +2,7 @@
2
2
 
3
3
  import * as flatbuffers from 'flatbuffers';
4
4
 
5
- import {GeometryType} from '../flat-geobuf/geometry-type.js';
5
+ import {GeometryType} from '../flat-geobuf/geometry-type';
6
6
 
7
7
  export class Geometry {
8
8
  bb: flatbuffers.ByteBuffer | null = null;
@@ -2,9 +2,9 @@
2
2
 
3
3
  import * as flatbuffers from 'flatbuffers';
4
4
 
5
- import {Column} from '../flat-geobuf/column.js';
6
- import {Crs} from '../flat-geobuf/crs.js';
7
- import {GeometryType} from '../flat-geobuf/geometry-type.js';
5
+ import {Column} from '../flat-geobuf/column';
6
+ import {Crs} from '../flat-geobuf/crs';
7
+ import {GeometryType} from '../flat-geobuf/geometry-type';
8
8
 
9
9
  export class Header {
10
10
  bb: flatbuffers.ByteBuffer | null = null;
@@ -1,7 +1,7 @@
1
1
  // automatically generated by the FlatBuffers compiler, do not modify
2
2
 
3
- export {Column} from './flat-geobuf/column.js';
4
- export {ColumnType} from './flat-geobuf/column-type.js';
5
- export {Crs} from './flat-geobuf/crs.js';
6
- export {GeometryType} from './flat-geobuf/geometry-type.js';
7
- export {Header} from './flat-geobuf/header.js';
3
+ export {Column} from './flat-geobuf/column';
4
+ export {ColumnType} from './flat-geobuf/column-type';
5
+ export {Crs} from './flat-geobuf/crs';
6
+ export {GeometryType} from './flat-geobuf/geometry-type';
7
+ export {Header} from './flat-geobuf/header';
@@ -1,10 +1,10 @@
1
1
  import * as flatbuffers from 'flatbuffers';
2
2
 
3
- import ColumnMeta from '../column-meta.js';
4
- import {ColumnType} from '../flat-geobuf/column-type.js';
5
- import {Feature} from '../flat-geobuf/feature.js';
6
- import HeaderMeta from '../header-meta.js';
7
- import {buildGeometry, ISimpleGeometry, ICreateGeometry, IParsedGeometry} from './geometry.js';
3
+ import ColumnMeta from '../column-meta';
4
+ import {ColumnType} from '../flat-geobuf/column-type';
5
+ import {Feature} from '../flat-geobuf/feature';
6
+ import HeaderMeta from '../header-meta';
7
+ import {buildGeometry, ISimpleGeometry, ICreateGeometry, IParsedGeometry} from './geometry';
8
8
 
9
9
  const textEncoder = new TextEncoder();
10
10
  const textDecoder = new TextDecoder();
@@ -1,23 +1,23 @@
1
1
  import * as flatbuffers from 'flatbuffers';
2
2
  import slice from 'slice-source';
3
3
 
4
- import ColumnMeta from '../column-meta.js';
5
-
6
- import {Header} from '../flat-geobuf/header.js';
7
-
8
- import {Column} from '../flat-geobuf/column.js';
9
- import {ColumnType} from '../flat-geobuf/column-type.js';
10
- import {Feature} from '../flat-geobuf/feature.js';
11
- import HeaderMeta, {fromByteBuffer} from '../header-meta.js';
12
-
13
- import {buildFeature, IFeature} from './feature.js';
14
- import {HttpReader} from '../http-reader.js';
15
- import Logger from '../logger.js';
16
- import {Rect, calcTreeSize} from '../packedrtree.js';
17
- import {parseGeometry} from './geometry.js';
18
- import {HeaderMetaFn} from '../generic.js';
19
- import {magicbytes, SIZE_PREFIX_LEN} from '../constants.js';
20
- import {inferGeometryType} from './header.js';
4
+ import ColumnMeta from '../column-meta';
5
+
6
+ import {Header} from '../flat-geobuf/header';
7
+
8
+ import {Column} from '../flat-geobuf/column';
9
+ import {ColumnType} from '../flat-geobuf/column-type';
10
+ import {Feature} from '../flat-geobuf/feature';
11
+ import HeaderMeta, {fromByteBuffer} from '../header-meta';
12
+
13
+ import {buildFeature, IFeature} from './feature';
14
+ import {HttpReader} from '../http-reader';
15
+ import Logger from '../logger';
16
+ import {Rect, calcTreeSize} from '../packedrtree';
17
+ import {parseGeometry} from './geometry';
18
+ import {HeaderMetaFn} from '../generic';
19
+ import {magicbytes, SIZE_PREFIX_LEN} from '../constants';
20
+ import {inferGeometryType} from './header';
21
21
 
22
22
  export type FromFeatureFn = (feature: Feature, header: HeaderMeta) => IFeature;
23
23
  type ReadFn = (size: number, purpose: string) => Promise<ArrayBuffer>;
@@ -1,6 +1,6 @@
1
1
  import * as flatbuffers from 'flatbuffers';
2
- import {GeometryType} from '../flat-geobuf/geometry-type.js';
3
- import {Geometry} from '../flat-geobuf/geometry.js';
2
+ import {GeometryType} from '../flat-geobuf/geometry-type';
3
+ import {Geometry} from '../flat-geobuf/geometry';
4
4
 
5
5
  export interface IParsedGeometry {
6
6
  xy: number[];
@@ -1,7 +1,7 @@
1
- import {GeometryType} from '../flat-geobuf/geometry-type.js';
2
- import {toGeometryType} from '../generic/geometry.js';
3
- import {IFeature} from './feature.js';
4
- import {IGeoJsonFeature} from '../geojson/feature.js';
1
+ import {GeometryType} from '../flat-geobuf/geometry-type';
2
+ import {toGeometryType} from '../generic/geometry';
3
+ import {IFeature} from './feature';
4
+ import {IGeoJsonFeature} from '../geojson/feature';
5
5
 
6
6
  function featureGeomType(feature: IFeature | IGeoJsonFeature): GeometryType {
7
7
  if (feature.getGeometry) {
@@ -3,11 +3,11 @@ import {
3
3
  deserializeStream,
4
4
  deserializeFiltered,
5
5
  FromFeatureFn
6
- } from './generic/featurecollection.js';
6
+ } from './generic/featurecollection';
7
7
 
8
- import {Rect} from './packedrtree.js';
9
- import {IFeature} from './generic/feature.js';
10
- import HeaderMeta from './header-meta.js';
8
+ import {Rect} from './packedrtree';
9
+ import {IFeature} from './generic/feature';
10
+ import HeaderMeta from './header-meta';
11
11
 
12
12
  export type HeaderMetaFn = (headerMeta: HeaderMeta) => void;
13
13
 
@@ -27,7 +27,7 @@ export function deserialize(
27
27
  return deserializeFiltered(input, rect as Rect, fromFeature);
28
28
  }
29
29
 
30
- export {serialize} from './generic/featurecollection.js';
30
+ export {serialize} from './generic/featurecollection';
31
31
 
32
- export {GeometryType} from './flat-geobuf/geometry-type.js';
33
- export {ColumnType} from './flat-geobuf/column-type.js';
32
+ export {GeometryType} from './flat-geobuf/geometry-type';
33
+ export {ColumnType} from './flat-geobuf/column-type';
@@ -1,8 +1,8 @@
1
- import {Feature} from '../flat-geobuf/feature.js';
2
- import {Geometry} from '../flat-geobuf/geometry.js';
3
- import HeaderMeta from '../header-meta.js';
4
- import {fromGeometry} from './geometry.js';
5
- import {IFeature, parseProperties} from '../generic/feature.js';
1
+ import {Feature} from '../flat-geobuf/feature';
2
+ import {Geometry} from '../flat-geobuf/geometry';
3
+ import HeaderMeta from '../header-meta';
4
+ import {fromGeometry} from './geometry';
5
+ import {IFeature, parseProperties} from '../generic/feature';
6
6
 
7
7
  import {Feature as GeoJsonFeature} from 'geojson';
8
8
 
@@ -1,20 +1,20 @@
1
- import ColumnMeta from '../column-meta.js';
2
- import HeaderMeta from '../header-meta.js';
1
+ import ColumnMeta from '../column-meta';
2
+ import HeaderMeta from '../header-meta';
3
3
 
4
- import {fromFeature} from './feature.js';
5
- import {parseGeometry, parseGC} from './geometry.js';
4
+ import {fromFeature} from './feature';
5
+ import {parseGeometry, parseGC} from './geometry';
6
6
  import {
7
7
  buildHeader,
8
8
  deserialize as genericDeserialize,
9
9
  deserializeStream as genericDeserializeStream,
10
10
  deserializeFiltered as genericDeserializeFiltered,
11
11
  mapColumn
12
- } from '../generic/featurecollection.js';
13
- import {Rect} from '../packedrtree.js';
14
- import {buildFeature, IProperties} from '../generic/feature.js';
15
- import {HeaderMetaFn} from '../generic.js';
16
- import {magicbytes} from '../constants.js';
17
- import {inferGeometryType} from '../generic/header.js';
12
+ } from '../generic/featurecollection';
13
+ import {Rect} from '../packedrtree';
14
+ import {buildFeature, IProperties} from '../generic/feature';
15
+ import {HeaderMetaFn} from '../generic';
16
+ import {magicbytes} from '../constants';
17
+ import {inferGeometryType} from '../generic/header';
18
18
 
19
19
  import {
20
20
  FeatureCollection as GeoJsonFeatureCollection,
@@ -1,5 +1,5 @@
1
- import {GeometryType} from '../flat-geobuf/geometry-type.js';
2
- import {Geometry} from '../flat-geobuf/geometry.js';
1
+ import {GeometryType} from '../flat-geobuf/geometry-type';
2
+ import {Geometry} from '../flat-geobuf/geometry';
3
3
 
4
4
  import {
5
5
  Geometry as GeoJsonGeometry,
@@ -12,7 +12,7 @@ import {
12
12
  GeometryCollection
13
13
  } from 'geojson';
14
14
 
15
- import {IParsedGeometry, flat, pairFlatCoordinates, toGeometryType} from '../generic/geometry.js';
15
+ import {IParsedGeometry, flat, pairFlatCoordinates, toGeometryType} from '../generic/geometry';
16
16
 
17
17
  export interface IGeoJsonGeometry {
18
18
  type: string;
@@ -3,13 +3,13 @@ import {
3
3
  deserializeStream as fcDeserializeStream,
4
4
  deserializeFiltered as fcDeserializeFiltered,
5
5
  serialize as fcSerialize
6
- } from './geojson/featurecollection.js';
6
+ } from './geojson/featurecollection';
7
7
 
8
8
  import {FeatureCollection as GeoJsonFeatureCollection} from 'geojson';
9
9
 
10
- import {Rect} from './packedrtree.js';
11
- import {IGeoJsonFeature} from './geojson/feature.js';
12
- import {HeaderMetaFn} from './generic.js';
10
+ import {Rect} from './packedrtree';
11
+ import {IGeoJsonFeature} from './geojson/feature';
12
+ import {HeaderMetaFn} from './generic';
13
13
 
14
14
  /**
15
15
  * Serialize GeoJSON to FlatGeobuf
@@ -1,9 +1,9 @@
1
1
  import * as flatbuffers from 'flatbuffers';
2
2
 
3
- import ColumnMeta from './column-meta.js';
4
- import CrsMeta from './crs-meta.js';
5
- import {GeometryType} from './flat-geobuf/geometry-type.js';
6
- import {Header} from './flat-geobuf/header.js';
3
+ import ColumnMeta from './column-meta';
4
+ import CrsMeta from './crs-meta';
5
+ import {GeometryType} from './flat-geobuf/geometry-type';
6
+ import {Header} from './flat-geobuf/header';
7
7
 
8
8
  export default interface HeaderMeta {
9
9
  geometryType: GeometryType;
@@ -1,3 +1,3 @@
1
1
  // automatically generated by the FlatBuffers compiler, do not modify
2
2
 
3
- export * as FlatGeobuf from './flat-geobuf.js';
3
+ export * as FlatGeobuf from './flat-geobuf';
@@ -7,12 +7,12 @@ import {
7
7
  DEFAULT_NODE_SIZE,
8
8
  NODE_ITEM_BYTE_LEN,
9
9
  streamSearch
10
- } from './packedrtree.js';
11
- import {magicbytes, SIZE_PREFIX_LEN} from './constants.js';
12
- import Config from './config.js';
13
- import Logger from './logger.js';
14
- import HeaderMeta, {fromByteBuffer} from './header-meta.js';
15
- import {Feature} from './flat-geobuf/feature.js';
10
+ } from './packedrtree';
11
+ import {magicbytes, SIZE_PREFIX_LEN} from './constants';
12
+ import Config from './config';
13
+ import Logger from './logger';
14
+ import HeaderMeta, {fromByteBuffer} from './header-meta';
15
+ import {Feature} from './flat-geobuf/feature';
16
16
 
17
17
  export class HttpReader {
18
18
  private headerClient: BufferedHttpRangeClient;
@@ -1,19 +1,19 @@
1
- export * as generic from './generic.js';
2
- export * as geojson from './geojson.js';
3
- // export * as ol from './ol.js';
1
+ export * as generic from './generic';
2
+ export * as geojson from './geojson';
3
+ // export * as ol from './ol';
4
4
 
5
- export {Column} from './flat-geobuf/column.js';
6
- export {Geometry} from './flat-geobuf/geometry.js';
7
- export {Feature} from './flat-geobuf/feature.js';
5
+ export {Column} from './flat-geobuf/column';
6
+ export {Geometry} from './flat-geobuf/geometry';
7
+ export {Feature} from './flat-geobuf/feature';
8
8
 
9
- export {ISimpleGeometry} from './generic/geometry.js';
10
- export {IFeature} from './generic/feature.js';
11
- export {FromFeatureFn} from './generic/featurecollection.js';
9
+ export {ISimpleGeometry} from './generic/geometry';
10
+ export {IFeature} from './generic/feature';
11
+ export {FromFeatureFn} from './generic/featurecollection';
12
12
 
13
- export {IGeoJsonFeature} from './geojson/feature.js';
13
+ export {IGeoJsonFeature} from './geojson/feature';
14
14
 
15
- export {default as HeaderMeta} from './header-meta.js';
16
- export {default as ColumnMeta} from './column-meta.js';
17
- export {default as CrsMeta} from './crs-meta.js';
15
+ export {default as HeaderMeta} from './header-meta';
16
+ export {default as ColumnMeta} from './column-meta';
17
+ export {default as CrsMeta} from './crs-meta';
18
18
 
19
- export {Rect} from './packedrtree.js';
19
+ export {Rect} from './packedrtree';
@@ -1,5 +1,5 @@
1
- import Config from './config.js';
2
- import Logger from './logger.js';
1
+ import Config from './config';
2
+ import Logger from './logger';
3
3
 
4
4
  export const NODE_ITEM_BYTE_LEN: number = 8 * 4 + 8;
5
5
  /**
@@ -2,6 +2,8 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
+ /* eslint-disable camelcase */
6
+
5
7
  import type {Schema, Field, DataType} from '@loaders.gl/schema';
6
8
  import * as fgb from '../flatgeobuf/3.27.2';
7
9
 
@@ -12,8 +12,8 @@ import {fgbToBinaryGeometry} from './binary-geometries';
12
12
  import {getSchemaFromFGBHeader} from './get-schema-from-fgb-header';
13
13
 
14
14
  import * as fgb from '../flatgeobuf/3.27.2';
15
- import * as geojson from '../flatgeobuf/3.27.2/geojson.js';
16
- import * as generic from '../flatgeobuf/3.27.2/generic.js';
15
+ import * as geojson from '../flatgeobuf/3.27.2/geojson';
16
+ import * as generic from '../flatgeobuf/3.27.2/generic';
17
17
  import {parseProperties as parsePropertiesBinary} from '../flatgeobuf/3.27.2/generic/feature';
18
18
 
19
19
  const deserializeGeoJson = geojson.deserialize;