@loaders.gl/schema 4.0.0-alpha.5 → 4.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +2 -2
- package/dist/dist.min.js +11362 -13932
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/index.js +406 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/mesh/convert-mesh.js +34 -0
- package/dist/es5/lib/mesh/convert-mesh.js.map +1 -0
- package/dist/es5/lib/mesh/deduce-mesh-schema.js +56 -0
- package/dist/es5/lib/mesh/deduce-mesh-schema.js.map +1 -0
- package/dist/es5/lib/mesh/mesh-to-arrow-table.js +2 -0
- package/dist/es5/lib/mesh/mesh-to-arrow-table.js.map +1 -0
- package/dist/es5/lib/mesh/mesh-utils.js +40 -0
- package/dist/es5/lib/mesh/mesh-utils.js.map +1 -0
- package/dist/es5/lib/table/arrow/arrow-type-utils.js +30 -0
- package/dist/es5/lib/table/arrow/arrow-type-utils.js.map +1 -0
- package/dist/es5/lib/table/arrow/convert-schema-arrow.js +179 -0
- package/dist/es5/lib/table/arrow/convert-schema-arrow.js.map +1 -0
- package/dist/es5/lib/table/arrow/convert-table-to-arrow.js +2 -0
- package/dist/es5/lib/table/arrow/convert-table-to-arrow.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-field.js +49 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-field.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-schema.js +118 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-schema.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-table.js +80 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-table.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-type.js +740 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-type.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/enum.js +55 -0
- package/dist/es5/lib/table/arrow-api/enum.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/get-type-info.js +27 -0
- package/dist/es5/lib/table/arrow-api/get-type-info.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/index.js +44 -0
- package/dist/es5/lib/table/arrow-api/index.js.map +1 -0
- package/dist/es5/lib/table/batches/base-table-batch-aggregator.js +78 -0
- package/dist/es5/lib/table/batches/base-table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/table/batches/columnar-table-batch-aggregator.js +106 -0
- package/dist/es5/lib/table/batches/columnar-table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/table/batches/row-table-batch-aggregator.js +96 -0
- package/dist/es5/lib/table/batches/row-table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/table/batches/table-batch-aggregator.js +2 -0
- package/dist/es5/lib/table/batches/table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/table/batches/table-batch-builder.js +173 -0
- package/dist/es5/lib/table/batches/table-batch-builder.js.map +1 -0
- package/dist/es5/lib/table/simple-table/convert-table.js +82 -0
- package/dist/es5/lib/table/simple-table/convert-table.js.map +1 -0
- package/dist/es5/lib/table/simple-table/data-type.js +94 -0
- package/dist/es5/lib/table/simple-table/data-type.js.map +1 -0
- package/dist/es5/lib/table/simple-table/make-table.js +60 -0
- package/dist/es5/lib/table/simple-table/make-table.js.map +1 -0
- package/dist/es5/lib/table/simple-table/row-utils.js +34 -0
- package/dist/es5/lib/table/simple-table/row-utils.js.map +1 -0
- package/dist/es5/lib/table/simple-table/table-accessors.js +343 -0
- package/dist/es5/lib/table/simple-table/table-accessors.js.map +1 -0
- package/dist/es5/lib/table/simple-table/table-column.js +12 -0
- package/dist/es5/lib/table/simple-table/table-column.js.map +1 -0
- package/dist/es5/lib/table/simple-table/table-schema.js +85 -0
- package/dist/es5/lib/table/simple-table/table-schema.js.map +1 -0
- package/dist/es5/lib/utils/assert.js +12 -0
- package/dist/es5/lib/utils/assert.js.map +1 -0
- package/dist/es5/lib/utils/async-queue.js +169 -0
- package/dist/es5/lib/utils/async-queue.js.map +1 -0
- package/dist/es5/types/category-gis.js +2 -0
- package/dist/es5/types/category-gis.js.map +1 -0
- package/dist/es5/types/category-image.js +2 -0
- package/dist/es5/types/category-image.js.map +1 -0
- package/dist/es5/types/category-mesh.js +2 -0
- package/dist/es5/types/category-mesh.js.map +1 -0
- package/dist/es5/types/category-table.js +2 -0
- package/dist/es5/types/category-table.js.map +1 -0
- package/dist/es5/types/category-texture.js +2 -0
- package/dist/es5/types/category-texture.js.map +1 -0
- package/dist/es5/types/schema.js +2 -0
- package/dist/es5/types/schema.js.map +1 -0
- package/dist/es5/types/types.js +2 -0
- package/dist/es5/types/types.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/{category → esm/lib}/mesh/convert-mesh.js +0 -11
- package/dist/esm/lib/mesh/convert-mesh.js.map +1 -0
- package/dist/esm/lib/mesh/deduce-mesh-schema.js +48 -0
- package/dist/esm/lib/mesh/deduce-mesh-schema.js.map +1 -0
- package/dist/esm/lib/mesh/mesh-to-arrow-table.js +2 -0
- package/dist/esm/lib/mesh/mesh-to-arrow-table.js.map +1 -0
- package/dist/{category → esm/lib}/mesh/mesh-utils.js +0 -5
- package/dist/esm/lib/mesh/mesh-utils.js.map +1 -0
- package/dist/{lib/arrow/arrow-like-type-utils.js → esm/lib/table/arrow/arrow-type-utils.js} +3 -11
- package/dist/esm/lib/table/arrow/arrow-type-utils.js.map +1 -0
- package/dist/esm/lib/table/arrow/convert-schema-arrow.js +158 -0
- package/dist/esm/lib/table/arrow/convert-schema-arrow.js.map +1 -0
- package/dist/esm/lib/table/arrow/convert-table-to-arrow.js +2 -0
- package/dist/esm/lib/table/arrow/convert-table-to-arrow.js.map +1 -0
- package/dist/{lib/schema/impl/field.js → esm/lib/table/arrow-api/arrow-like-field.js} +6 -13
- package/dist/esm/lib/table/arrow-api/arrow-like-field.js.map +1 -0
- package/dist/{lib/schema/impl/schema.js → esm/lib/table/arrow-api/arrow-like-schema.js} +22 -47
- package/dist/esm/lib/table/arrow-api/arrow-like-schema.js.map +1 -0
- package/dist/esm/lib/table/arrow-api/arrow-like-table.js +51 -0
- package/dist/esm/lib/table/arrow-api/arrow-like-table.js.map +1 -0
- package/dist/{lib/schema/impl/type.js → esm/lib/table/arrow-api/arrow-like-type.js} +11 -116
- package/dist/esm/lib/table/arrow-api/arrow-like-type.js.map +1 -0
- package/dist/{lib/schema/impl → esm/lib/table/arrow-api}/enum.js +3 -4
- package/dist/esm/lib/table/arrow-api/enum.js.map +1 -0
- package/dist/{lib/arrow → esm/lib/table/arrow-api}/get-type-info.js +1 -4
- package/dist/esm/lib/table/arrow-api/get-type-info.js.map +1 -0
- package/dist/esm/lib/table/arrow-api/index.js +5 -0
- package/dist/esm/lib/table/arrow-api/index.js.map +1 -0
- package/dist/{lib → esm/lib/table}/batches/base-table-batch-aggregator.js +1 -18
- package/dist/esm/lib/table/batches/base-table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib/table}/batches/columnar-table-batch-aggregator.js +1 -24
- package/dist/esm/lib/table/batches/columnar-table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib/table}/batches/row-table-batch-aggregator.js +2 -22
- package/dist/esm/lib/table/batches/row-table-batch-aggregator.js.map +1 -0
- package/dist/esm/lib/table/batches/table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib/table}/batches/table-batch-builder.js +6 -49
- package/dist/esm/lib/table/batches/table-batch-builder.js.map +1 -0
- package/dist/esm/lib/table/simple-table/convert-table.js +59 -0
- package/dist/esm/lib/table/simple-table/convert-table.js.map +1 -0
- package/dist/esm/lib/table/simple-table/data-type.js +85 -0
- package/dist/esm/lib/table/simple-table/data-type.js.map +1 -0
- package/dist/esm/lib/table/simple-table/make-table.js +50 -0
- package/dist/esm/lib/table/simple-table/make-table.js.map +1 -0
- package/dist/{lib/utils → esm/lib/table/simple-table}/row-utils.js +0 -8
- package/dist/esm/lib/table/simple-table/row-utils.js.map +1 -0
- package/dist/esm/lib/table/simple-table/table-accessors.js +262 -0
- package/dist/esm/lib/table/simple-table/table-accessors.js.map +1 -0
- package/dist/esm/lib/table/simple-table/table-column.js +6 -0
- package/dist/esm/lib/table/simple-table/table-column.js.map +1 -0
- package/dist/esm/lib/table/simple-table/table-schema.js +70 -0
- package/dist/esm/lib/table/simple-table/table-schema.js.map +1 -0
- package/dist/esm/lib/utils/assert.js +6 -0
- package/dist/esm/lib/utils/assert.js.map +1 -0
- package/dist/esm/lib/utils/async-queue.js +94 -0
- package/dist/esm/lib/utils/async-queue.js.map +1 -0
- package/dist/esm/types/category-gis.js +2 -0
- package/dist/esm/types/category-gis.js.map +1 -0
- package/dist/esm/types/category-image.js +2 -0
- package/dist/esm/types/category-image.js.map +1 -0
- package/dist/esm/types/category-mesh.js +2 -0
- package/dist/esm/types/category-mesh.js.map +1 -0
- package/dist/esm/types/category-table.js +2 -0
- package/dist/esm/types/category-table.js.map +1 -0
- package/dist/esm/types/category-texture.js +2 -0
- package/dist/esm/types/category-texture.js.map +1 -0
- package/dist/esm/types/schema.js +2 -0
- package/dist/esm/types/schema.js.map +1 -0
- package/dist/esm/types/types.js.map +1 -0
- package/dist/index.d.ts +27 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +92 -13
- package/dist/{category → lib}/mesh/convert-mesh.d.ts +3 -3
- package/dist/lib/mesh/convert-mesh.d.ts.map +1 -0
- package/dist/lib/mesh/convert-mesh.js +40 -0
- package/dist/{category → lib}/mesh/deduce-mesh-schema.d.ts +5 -5
- package/dist/lib/mesh/deduce-mesh-schema.d.ts.map +1 -0
- package/dist/lib/mesh/deduce-mesh-schema.js +66 -0
- package/dist/lib/mesh/mesh-to-arrow-table.d.ts +1 -0
- package/dist/lib/mesh/mesh-to-arrow-table.d.ts.map +1 -0
- package/dist/lib/mesh/mesh-to-arrow-table.js +44 -0
- package/dist/{category → lib}/mesh/mesh-utils.d.ts +4 -4
- package/dist/lib/mesh/mesh-utils.d.ts.map +1 -0
- package/dist/lib/mesh/mesh-utils.js +51 -0
- package/dist/lib/table/arrow/arrow-type-utils.d.ts +4 -0
- package/dist/lib/table/arrow/arrow-type-utils.d.ts.map +1 -0
- package/dist/lib/table/arrow/arrow-type-utils.js +53 -0
- package/dist/lib/table/arrow/convert-schema-arrow.d.ts +13 -0
- package/dist/lib/table/arrow/convert-schema-arrow.d.ts.map +1 -0
- package/dist/lib/table/arrow/convert-schema-arrow.js +187 -0
- package/dist/lib/table/arrow/convert-table-to-arrow.d.ts +42 -0
- package/dist/lib/table/arrow/convert-table-to-arrow.d.ts.map +1 -0
- package/dist/lib/table/arrow/convert-table-to-arrow.js +57 -0
- package/dist/lib/{schema/impl/field.d.ts → table/arrow-api/arrow-like-field.d.ts} +4 -4
- package/dist/lib/table/arrow-api/arrow-like-field.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/arrow-like-field.js +34 -0
- package/dist/lib/table/arrow-api/arrow-like-schema.d.ts +12 -0
- package/dist/lib/table/arrow-api/arrow-like-schema.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/arrow-like-schema.js +81 -0
- package/dist/lib/table/arrow-api/arrow-like-table.d.ts +28 -0
- package/dist/lib/table/arrow-api/arrow-like-table.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/arrow-like-table.js +53 -0
- package/dist/lib/{schema/impl/type.d.ts → table/arrow-api/arrow-like-type.d.ts} +7 -6
- package/dist/lib/table/arrow-api/arrow-like-type.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/arrow-like-type.js +463 -0
- package/dist/lib/table/arrow-api/enum.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/enum.js +97 -0
- package/dist/lib/{arrow → table/arrow-api}/get-type-info.d.ts +2 -3
- package/dist/lib/table/arrow-api/get-type-info.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/get-type-info.js +29 -0
- package/dist/lib/table/arrow-api/index.d.ts +5 -0
- package/dist/lib/table/arrow-api/index.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/index.js +25 -0
- package/dist/lib/{batches → table/batches}/base-table-batch-aggregator.d.ts +3 -3
- package/dist/lib/table/batches/base-table-batch-aggregator.d.ts.map +1 -0
- package/dist/lib/table/batches/base-table-batch-aggregator.js +60 -0
- package/dist/lib/{batches → table/batches}/columnar-table-batch-aggregator.d.ts +4 -4
- package/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts.map +1 -0
- package/dist/lib/table/batches/columnar-table-batch-aggregator.js +92 -0
- package/dist/lib/{batches → table/batches}/row-table-batch-aggregator.d.ts +3 -3
- package/dist/lib/table/batches/row-table-batch-aggregator.d.ts.map +1 -0
- package/dist/lib/table/batches/row-table-batch-aggregator.js +81 -0
- package/dist/lib/{batches → table/batches}/table-batch-aggregator.d.ts +2 -2
- package/dist/lib/table/batches/table-batch-aggregator.d.ts.map +1 -0
- package/dist/lib/table/batches/table-batch-aggregator.js +3 -0
- package/dist/lib/{batches → table/batches}/table-batch-builder.d.ts +5 -5
- package/dist/lib/table/batches/table-batch-builder.d.ts.map +1 -0
- package/dist/lib/table/batches/table-batch-builder.js +152 -0
- package/dist/lib/table/simple-table/convert-table.d.ts +8 -0
- package/dist/lib/table/simple-table/convert-table.d.ts.map +1 -0
- package/dist/lib/table/simple-table/convert-table.js +65 -0
- package/dist/lib/table/simple-table/data-type.d.ts +17 -0
- package/dist/lib/table/simple-table/data-type.d.ts.map +1 -0
- package/dist/lib/table/simple-table/data-type.js +93 -0
- package/dist/lib/table/simple-table/make-table.d.ts +65 -0
- package/dist/lib/table/simple-table/make-table.d.ts.map +1 -0
- package/dist/lib/table/simple-table/make-table.js +95 -0
- package/dist/lib/table/simple-table/row-utils.d.ts.map +1 -0
- package/dist/lib/table/simple-table/row-utils.js +33 -0
- package/dist/lib/table/simple-table/table-accessors.d.ts +67 -0
- package/dist/lib/table/simple-table/table-accessors.d.ts.map +1 -0
- package/dist/lib/table/simple-table/table-accessors.js +319 -0
- package/dist/lib/table/simple-table/table-column.d.ts +7 -0
- package/dist/lib/table/simple-table/table-column.d.ts.map +1 -0
- package/dist/lib/table/simple-table/table-column.js +41 -0
- package/dist/lib/table/simple-table/table-schema.d.ts +15 -0
- package/dist/lib/table/simple-table/table-schema.d.ts.map +1 -0
- package/dist/lib/table/simple-table/table-schema.js +85 -0
- package/dist/lib/utils/assert.js +11 -5
- package/dist/lib/utils/async-queue.js +82 -109
- package/dist/{category/gis.d.ts → types/category-gis.d.ts} +26 -26
- package/dist/types/category-gis.d.ts.map +1 -0
- package/dist/types/category-gis.js +2 -0
- package/dist/{category/image/image.d.ts → types/category-image.d.ts} +4 -4
- package/dist/types/category-image.d.ts.map +1 -0
- package/dist/types/category-image.js +2 -0
- package/dist/{category/mesh/mesh-types.d.ts → types/category-mesh.d.ts} +8 -10
- package/dist/types/category-mesh.d.ts.map +1 -0
- package/dist/types/category-mesh.js +3 -0
- package/dist/{category/table/table-types.d.ts → types/category-table.d.ts} +44 -34
- package/dist/types/category-table.d.ts.map +1 -0
- package/dist/types/category-table.js +3 -0
- package/dist/types/category-texture.d.ts +18 -0
- package/dist/types/category-texture.d.ts.map +1 -0
- package/dist/types/category-texture.js +3 -0
- package/dist/types/schema.d.ts +77 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +3 -0
- package/dist/types/types.d.ts +15 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +2 -0
- package/package.json +5 -6
- package/src/index.ts +65 -31
- package/src/{category → lib}/mesh/convert-mesh.ts +10 -8
- package/src/{category → lib}/mesh/deduce-mesh-schema.ts +20 -19
- package/src/{category → lib}/mesh/mesh-to-arrow-table.ts +5 -3
- package/src/{category → lib}/mesh/mesh-utils.ts +2 -2
- package/src/lib/{arrow → table/arrow}/arrow-type-utils.ts +16 -12
- package/src/lib/table/arrow/convert-schema-arrow.ts +232 -0
- package/src/lib/table/arrow/convert-table-to-arrow.ts +59 -0
- package/src/lib/{schema/impl/field.ts → table/arrow-api/arrow-like-field.ts} +6 -4
- package/src/lib/table/arrow-api/arrow-like-schema.ts +99 -0
- package/src/lib/table/arrow-api/arrow-like-table.ts +83 -0
- package/src/lib/{schema/impl/type.ts → table/arrow-api/arrow-like-type.ts} +2 -1
- package/src/lib/{arrow → table/arrow-api}/get-type-info.ts +4 -3
- package/src/lib/table/arrow-api/index.ts +6 -0
- package/src/lib/{batches → table/batches}/base-table-batch-aggregator.ts +5 -3
- package/src/lib/{batches → table/batches}/columnar-table-batch-aggregator.ts +5 -3
- package/src/lib/{batches → table/batches}/row-table-batch-aggregator.ts +6 -4
- package/src/lib/{batches → table/batches}/table-batch-aggregator.ts +4 -2
- package/src/lib/{batches → table/batches}/table-batch-builder.ts +8 -6
- package/src/lib/table/simple-table/convert-table.ts +72 -0
- package/src/lib/table/simple-table/data-type.ts +102 -0
- package/src/lib/table/simple-table/make-table.ts +108 -0
- package/src/lib/table/simple-table/table-accessors.ts +360 -0
- package/src/lib/table/simple-table/table-column.ts +47 -0
- package/src/lib/table/simple-table/table-schema.ts +97 -0
- package/src/{category/gis.ts → types/category-gis.ts} +9 -2
- package/src/{category/mesh/mesh-types.ts → types/category-mesh.ts} +6 -4
- package/src/types/category-table.ts +104 -0
- package/src/{category/texture/texture.ts → types/category-texture.ts} +3 -1
- package/src/types/schema.ts +97 -0
- package/src/types/types.ts +43 -0
- package/dist/bundle.js.map +0 -1
- package/dist/category/common.d.ts +0 -19
- package/dist/category/common.d.ts.map +0 -1
- package/dist/category/common.js +0 -2
- package/dist/category/common.js.map +0 -1
- package/dist/category/gis.d.ts.map +0 -1
- package/dist/category/gis.js +0 -2
- package/dist/category/gis.js.map +0 -1
- package/dist/category/image/image.d.ts.map +0 -1
- package/dist/category/image/image.js +0 -2
- package/dist/category/image/image.js.map +0 -1
- package/dist/category/mesh/convert-mesh.d.ts.map +0 -1
- package/dist/category/mesh/convert-mesh.js.map +0 -1
- package/dist/category/mesh/deduce-mesh-schema.d.ts.map +0 -1
- package/dist/category/mesh/deduce-mesh-schema.js +0 -42
- package/dist/category/mesh/deduce-mesh-schema.js.map +0 -1
- package/dist/category/mesh/mesh-to-arrow-table.d.ts +0 -11
- package/dist/category/mesh/mesh-to-arrow-table.d.ts.map +0 -1
- package/dist/category/mesh/mesh-to-arrow-table.js +0 -31
- package/dist/category/mesh/mesh-to-arrow-table.js.map +0 -1
- package/dist/category/mesh/mesh-types.d.ts.map +0 -1
- package/dist/category/mesh/mesh-types.js +0 -2
- package/dist/category/mesh/mesh-types.js.map +0 -1
- package/dist/category/mesh/mesh-utils.d.ts.map +0 -1
- package/dist/category/mesh/mesh-utils.js.map +0 -1
- package/dist/category/table/deduce-table-schema.d.ts +0 -9
- package/dist/category/table/deduce-table-schema.d.ts.map +0 -1
- package/dist/category/table/deduce-table-schema.js +0 -51
- package/dist/category/table/deduce-table-schema.js.map +0 -1
- package/dist/category/table/table-types.d.ts.map +0 -1
- package/dist/category/table/table-types.js +0 -2
- package/dist/category/table/table-types.js.map +0 -1
- package/dist/category/texture/texture.d.ts +0 -18
- package/dist/category/texture/texture.d.ts.map +0 -1
- package/dist/category/texture/texture.js +0 -2
- package/dist/category/texture/texture.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/arrow/arrow-like-type-utils.d.ts +0 -4
- package/dist/lib/arrow/arrow-like-type-utils.d.ts.map +0 -1
- package/dist/lib/arrow/arrow-like-type-utils.js.map +0 -1
- package/dist/lib/arrow/arrow-type-utils.d.ts +0 -6
- package/dist/lib/arrow/arrow-type-utils.d.ts.map +0 -1
- package/dist/lib/arrow/arrow-type-utils.js +0 -62
- package/dist/lib/arrow/arrow-type-utils.js.map +0 -1
- package/dist/lib/arrow/get-type-info.d.ts.map +0 -1
- package/dist/lib/arrow/get-type-info.js.map +0 -1
- package/dist/lib/batches/base-table-batch-aggregator.d.ts.map +0 -1
- package/dist/lib/batches/base-table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/columnar-table-batch-aggregator.d.ts.map +0 -1
- package/dist/lib/batches/columnar-table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/row-table-batch-aggregator.d.ts.map +0 -1
- package/dist/lib/batches/row-table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/table-batch-aggregator.d.ts.map +0 -1
- package/dist/lib/batches/table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/table-batch-builder.d.ts.map +0 -1
- package/dist/lib/batches/table-batch-builder.js.map +0 -1
- package/dist/lib/schema/impl/enum.d.ts.map +0 -1
- package/dist/lib/schema/impl/enum.js.map +0 -1
- package/dist/lib/schema/impl/field.d.ts.map +0 -1
- package/dist/lib/schema/impl/field.js.map +0 -1
- package/dist/lib/schema/impl/schema.d.ts +0 -16
- package/dist/lib/schema/impl/schema.d.ts.map +0 -1
- package/dist/lib/schema/impl/schema.js.map +0 -1
- package/dist/lib/schema/impl/type.d.ts.map +0 -1
- package/dist/lib/schema/impl/type.js.map +0 -1
- package/dist/lib/schema/schema.d.ts +0 -5
- package/dist/lib/schema/schema.d.ts.map +0 -1
- package/dist/lib/schema/schema.js +0 -5
- package/dist/lib/schema/schema.js.map +0 -1
- package/dist/lib/schema-utils/deduce-column-type.d.ts +0 -3
- package/dist/lib/schema-utils/deduce-column-type.d.ts.map +0 -1
- package/dist/lib/schema-utils/deduce-column-type.js +0 -23
- package/dist/lib/schema-utils/deduce-column-type.js.map +0 -1
- package/dist/lib/utils/assert.js.map +0 -1
- package/dist/lib/utils/async-queue.js.map +0 -1
- package/dist/lib/utils/row-utils.d.ts.map +0 -1
- package/dist/lib/utils/row-utils.js.map +0 -1
- package/dist/types.d.ts +0 -8
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/src/category/common.ts +0 -30
- package/src/category/table/deduce-table-schema.ts +0 -123
- package/src/category/table/table-types.ts +0 -81
- package/src/lib/arrow/arrow-like-type-utils.ts +0 -35
- package/src/lib/schema/impl/schema.ts +0 -99
- package/src/lib/schema/schema.ts +0 -82
- package/src/lib/schema-utils/deduce-column-type.ts +0 -92
- package/src/types.ts +0 -19
- /package/dist/{lib → esm/lib/table}/batches/table-batch-aggregator.js +0 -0
- /package/dist/{types.js → esm/types/types.js} +0 -0
- /package/dist/lib/{schema/impl → table/arrow-api}/enum.d.ts +0 -0
- /package/dist/lib/{utils → table/simple-table}/row-utils.d.ts +0 -0
- /package/src/lib/{schema/impl → table/arrow-api}/enum.ts +0 -0
- /package/src/lib/{utils → table/simple-table}/row-utils.ts +0 -0
- /package/src/{category/image/image.ts → types/category-image.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-table.js","names":["deduceTableSchema","makeTableFromData","data","table","getTableShapeFromData","shape","Error","schema","Array","isArray","length","firstRow"],"sources":["../../../../../src/lib/table/simple-table/make-table.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {Table, ArrayRowTable, ObjectRowTable, ColumnarTable} from '../../../types/category-table';\nimport {deduceTableSchema} from './table-schema';\n\n/**\n * Makes a typed table from data.\n * @throws Row tables must contain at least one row. Columnar tables must contain empty arrays\n */\nexport function makeTableFromData(data: unknown[][]): ArrayRowTable;\nexport function makeTableFromData(data: {[column: string]: unknown}[]): ObjectRowTable;\nexport function makeTableFromData(data: {[column: string]: ArrayLike<unknown>}): ColumnarTable;\nexport function makeTableFromData(data: unknown): Table {\n let table: Table;\n switch (getTableShapeFromData(data)) {\n case 'array-row-table':\n table = {shape: 'array-row-table', data: data as unknown[][]};\n break;\n case 'object-row-table':\n table = {shape: 'object-row-table', data: data as {[key: string]: unknown}[]};\n break;\n case 'columnar-table':\n table = {shape: 'columnar-table', data: data as {[column: string]: ArrayLike<unknown>}};\n break;\n default:\n throw new Error('table');\n }\n const schema = deduceTableSchema(table);\n return {...table, schema};\n}\n\n/** Helper function to get shape of data */\nfunction getTableShapeFromData(data) {\n if (Array.isArray(data)) {\n if (data.length === 0) {\n throw new Error('cannot deduce type of empty table');\n }\n\n // Deduce the table shape from the first row\n const firstRow = data[0];\n\n if (Array.isArray(firstRow)) {\n return 'array-row-table';\n }\n\n if (firstRow && typeof firstRow === 'object') {\n return 'object-row-table';\n }\n }\n\n if (data && typeof data === 'object') {\n return 'columnar-table';\n }\n\n throw new Error('invalid table');\n}\n\n/** Convert any table into object row format *\nexport function makeColumnarTable(table: Table): ColumnarTable {\n if (table.shape === 'columnar-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'columnar-table',\n schema: table.schema,\n data\n };\n}\n\n\n/** Convert any table into array row format *\nexport function makeArrayRowTable(table: TableLike): ArrayRowTable {\n if (table.shape === 'array-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<unknown[]>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsArray(table, rowIndex);\n }\n return {\n shape: 'array-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format *\nexport function makeObjectRowTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n*/\n"],"mappings":"AAEA,SAAQA,iBAAiB,QAAO,gBAAgB;AAShD,OAAO,SAASC,iBAAiBA,CAACC,IAAa,EAAS;EACtD,IAAIC,KAAY;EAChB,QAAQC,qBAAqB,CAACF,IAAI,CAAC;IACjC,KAAK,iBAAiB;MACpBC,KAAK,GAAG;QAACE,KAAK,EAAE,iBAAiB;QAAEH,IAAI,EAAEA;MAAmB,CAAC;MAC7D;IACF,KAAK,kBAAkB;MACrBC,KAAK,GAAG;QAACE,KAAK,EAAE,kBAAkB;QAAEH,IAAI,EAAEA;MAAkC,CAAC;MAC7E;IACF,KAAK,gBAAgB;MACnBC,KAAK,GAAG;QAACE,KAAK,EAAE,gBAAgB;QAAEH,IAAI,EAAEA;MAA8C,CAAC;MACvF;IACF;MACE,MAAM,IAAII,KAAK,CAAC,OAAO,CAAC;EAC5B;EACA,MAAMC,MAAM,GAAGP,iBAAiB,CAACG,KAAK,CAAC;EACvC,OAAO;IAAC,GAAGA,KAAK;IAAEI;EAAM,CAAC;AAC3B;AAGA,SAASH,qBAAqBA,CAACF,IAAI,EAAE;EACnC,IAAIM,KAAK,CAACC,OAAO,CAACP,IAAI,CAAC,EAAE;IACvB,IAAIA,IAAI,CAACQ,MAAM,KAAK,CAAC,EAAE;MACrB,MAAM,IAAIJ,KAAK,CAAC,mCAAmC,CAAC;IACtD;IAGA,MAAMK,QAAQ,GAAGT,IAAI,CAAC,CAAC,CAAC;IAExB,IAAIM,KAAK,CAACC,OAAO,CAACE,QAAQ,CAAC,EAAE;MAC3B,OAAO,iBAAiB;IAC1B;IAEA,IAAIA,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;MAC5C,OAAO,kBAAkB;IAC3B;EACF;EAEA,IAAIT,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACpC,OAAO,gBAAgB;EACzB;EAEA,MAAM,IAAII,KAAK,CAAC,eAAe,CAAC;AAClC"}
|
|
@@ -2,34 +2,26 @@ export function convertToObjectRow(arrayRow, headers) {
|
|
|
2
2
|
if (!arrayRow) {
|
|
3
3
|
throw new Error('null row');
|
|
4
4
|
}
|
|
5
|
-
|
|
6
5
|
if (!headers) {
|
|
7
6
|
throw new Error('no headers');
|
|
8
7
|
}
|
|
9
|
-
|
|
10
8
|
const objectRow = {};
|
|
11
|
-
|
|
12
9
|
for (let i = 0; i < headers.length; i++) {
|
|
13
10
|
objectRow[headers[i]] = arrayRow[i];
|
|
14
11
|
}
|
|
15
|
-
|
|
16
12
|
return objectRow;
|
|
17
13
|
}
|
|
18
14
|
export function convertToArrayRow(objectRow, headers) {
|
|
19
15
|
if (!objectRow) {
|
|
20
16
|
throw new Error('null row');
|
|
21
17
|
}
|
|
22
|
-
|
|
23
18
|
if (!headers) {
|
|
24
19
|
throw new Error('no headers');
|
|
25
20
|
}
|
|
26
|
-
|
|
27
21
|
const arrayRow = new Array(headers.length);
|
|
28
|
-
|
|
29
22
|
for (let i = 0; i < headers.length; i++) {
|
|
30
23
|
arrayRow[i] = objectRow[headers[i]];
|
|
31
24
|
}
|
|
32
|
-
|
|
33
25
|
return arrayRow;
|
|
34
26
|
}
|
|
35
27
|
//# sourceMappingURL=row-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-utils.js","names":["convertToObjectRow","arrayRow","headers","Error","objectRow","i","length","convertToArrayRow","Array"],"sources":["../../../../../src/lib/table/simple-table/row-utils.ts"],"sourcesContent":["/** Convert an object row to an array row */\nexport function convertToObjectRow(\n arrayRow: any[],\n headers: string[]\n): {[columnName: string]: any} {\n if (!arrayRow) {\n throw new Error('null row');\n }\n if (!headers) {\n throw new Error('no headers');\n }\n const objectRow = {};\n for (let i = 0; i < headers.length; i++) {\n objectRow[headers[i]] = arrayRow[i];\n }\n return objectRow;\n}\n\n/** Convert an object row to an array row */\nexport function convertToArrayRow(\n objectRow: {[columnName: string]: any},\n headers: string[]\n): any[] {\n if (!objectRow) {\n throw new Error('null row');\n }\n if (!headers) {\n throw new Error('no headers');\n }\n const arrayRow = new Array(headers.length);\n for (let i = 0; i < headers.length; i++) {\n arrayRow[i] = objectRow[headers[i]];\n }\n return arrayRow;\n}\n"],"mappings":"AACA,OAAO,SAASA,kBAAkBA,CAChCC,QAAe,EACfC,OAAiB,EACY;EAC7B,IAAI,CAACD,QAAQ,EAAE;IACb,MAAM,IAAIE,KAAK,CAAC,UAAU,CAAC;EAC7B;EACA,IAAI,CAACD,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,YAAY,CAAC;EAC/B;EACA,MAAMC,SAAS,GAAG,CAAC,CAAC;EACpB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,OAAO,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;IACvCD,SAAS,CAACF,OAAO,CAACG,CAAC,CAAC,CAAC,GAAGJ,QAAQ,CAACI,CAAC,CAAC;EACrC;EACA,OAAOD,SAAS;AAClB;AAGA,OAAO,SAASG,iBAAiBA,CAC/BH,SAAsC,EACtCF,OAAiB,EACV;EACP,IAAI,CAACE,SAAS,EAAE;IACd,MAAM,IAAID,KAAK,CAAC,UAAU,CAAC;EAC7B;EACA,IAAI,CAACD,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,YAAY,CAAC;EAC/B;EACA,MAAMF,QAAQ,GAAG,IAAIO,KAAK,CAACN,OAAO,CAACI,MAAM,CAAC;EAC1C,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,OAAO,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;IACvCJ,QAAQ,CAACI,CAAC,CAAC,GAAGD,SAAS,CAACF,OAAO,CAACG,CAAC,CAAC,CAAC;EACrC;EACA,OAAOJ,QAAQ;AACjB"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
export function getTableLength(table) {
|
|
2
|
+
switch (table.shape) {
|
|
3
|
+
case 'array-row-table':
|
|
4
|
+
case 'object-row-table':
|
|
5
|
+
case 'geojson-row-table':
|
|
6
|
+
return table.data.length;
|
|
7
|
+
case 'arrow-table':
|
|
8
|
+
return table.data.numRows;
|
|
9
|
+
case 'columnar-table':
|
|
10
|
+
for (const column of Object.values(table.data)) {
|
|
11
|
+
return column.length || 0;
|
|
12
|
+
}
|
|
13
|
+
return 0;
|
|
14
|
+
default:
|
|
15
|
+
throw new Error('table');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function getTableNumCols(table) {
|
|
19
|
+
if (table.schema) {
|
|
20
|
+
return table.schema.fields.length;
|
|
21
|
+
}
|
|
22
|
+
if (getTableLength(table) === 0) {
|
|
23
|
+
throw new Error('empty table');
|
|
24
|
+
}
|
|
25
|
+
switch (table.shape) {
|
|
26
|
+
case 'array-row-table':
|
|
27
|
+
return table.data[0].length;
|
|
28
|
+
case 'object-row-table':
|
|
29
|
+
case 'geojson-row-table':
|
|
30
|
+
return Object.keys(table.data[0]).length;
|
|
31
|
+
case 'columnar-table':
|
|
32
|
+
return Object.keys(table.data).length;
|
|
33
|
+
case 'arrow-table':
|
|
34
|
+
return table.data.numCols;
|
|
35
|
+
default:
|
|
36
|
+
throw new Error('table');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function getTableCell(table, rowIndex, columnName) {
|
|
40
|
+
var _table$data$getChildA;
|
|
41
|
+
switch (table.shape) {
|
|
42
|
+
case 'array-row-table':
|
|
43
|
+
const columnIndex = getTableColumnIndex(table, columnName);
|
|
44
|
+
return table.data[rowIndex][columnIndex];
|
|
45
|
+
case 'object-row-table':
|
|
46
|
+
case 'geojson-row-table':
|
|
47
|
+
return table.data[rowIndex][columnName];
|
|
48
|
+
case 'columnar-table':
|
|
49
|
+
const column = table.data[columnName];
|
|
50
|
+
return column[rowIndex];
|
|
51
|
+
case 'arrow-table':
|
|
52
|
+
const arrowColumnIndex = table.data.schema.fields.findIndex(field => field.name === columnName);
|
|
53
|
+
return (_table$data$getChildA = table.data.getChildAt(arrowColumnIndex)) === null || _table$data$getChildA === void 0 ? void 0 : _table$data$getChildA.get(rowIndex);
|
|
54
|
+
default:
|
|
55
|
+
throw new Error('todo');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export function getTableCellAt(table, rowIndex, columnIndex) {
|
|
59
|
+
var _table$data$getChildA2;
|
|
60
|
+
switch (table.shape) {
|
|
61
|
+
case 'array-row-table':
|
|
62
|
+
return table.data[rowIndex][columnIndex];
|
|
63
|
+
case 'object-row-table':
|
|
64
|
+
case 'geojson-row-table':
|
|
65
|
+
let columnName = getTableColumnName(table, columnIndex);
|
|
66
|
+
return table.data[rowIndex][columnName];
|
|
67
|
+
case 'columnar-table':
|
|
68
|
+
columnName = getTableColumnName(table, columnIndex);
|
|
69
|
+
const column = table.data[columnName];
|
|
70
|
+
return column[rowIndex];
|
|
71
|
+
case 'arrow-table':
|
|
72
|
+
return (_table$data$getChildA2 = table.data.getChildAt(columnIndex)) === null || _table$data$getChildA2 === void 0 ? void 0 : _table$data$getChildA2.get(rowIndex);
|
|
73
|
+
default:
|
|
74
|
+
throw new Error('todo');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export function getTableRowShape(table) {
|
|
78
|
+
switch (table.shape) {
|
|
79
|
+
case 'array-row-table':
|
|
80
|
+
case 'object-row-table':
|
|
81
|
+
return table.shape;
|
|
82
|
+
case 'geojson-row-table':
|
|
83
|
+
return 'object-row-table';
|
|
84
|
+
case 'columnar-table':
|
|
85
|
+
default:
|
|
86
|
+
throw new Error('Not a row table');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
export function getTableColumnIndex(table, columnName) {
|
|
90
|
+
var _table$schema;
|
|
91
|
+
const columnIndex = (_table$schema = table.schema) === null || _table$schema === void 0 ? void 0 : _table$schema.fields.findIndex(field => field.name === columnName);
|
|
92
|
+
if (columnIndex === undefined) {
|
|
93
|
+
throw new Error(columnName);
|
|
94
|
+
}
|
|
95
|
+
return columnIndex;
|
|
96
|
+
}
|
|
97
|
+
export function getTableColumnName(table, columnIndex) {
|
|
98
|
+
var _table$schema2, _table$schema2$fields;
|
|
99
|
+
const columnName = (_table$schema2 = table.schema) === null || _table$schema2 === void 0 ? void 0 : (_table$schema2$fields = _table$schema2.fields[columnIndex]) === null || _table$schema2$fields === void 0 ? void 0 : _table$schema2$fields.name;
|
|
100
|
+
if (!columnName) {
|
|
101
|
+
throw new Error("".concat(columnIndex));
|
|
102
|
+
}
|
|
103
|
+
return columnName;
|
|
104
|
+
}
|
|
105
|
+
export function getTableRowAsObject(table, rowIndex, target, copy) {
|
|
106
|
+
switch (table.shape) {
|
|
107
|
+
case 'object-row-table':
|
|
108
|
+
return copy ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];
|
|
109
|
+
case 'array-row-table':
|
|
110
|
+
case 'geojson-row-table':
|
|
111
|
+
if (table.schema) {
|
|
112
|
+
const objectRow = target || {};
|
|
113
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
114
|
+
objectRow[table.schema.fields[i].name] = table.data[rowIndex][i];
|
|
115
|
+
}
|
|
116
|
+
return objectRow;
|
|
117
|
+
}
|
|
118
|
+
throw new Error('no schema');
|
|
119
|
+
case 'columnar-table':
|
|
120
|
+
if (table.schema) {
|
|
121
|
+
const objectRow = target || {};
|
|
122
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
123
|
+
objectRow[table.schema.fields[i].name] = table.data[table.schema.fields[i].name][rowIndex];
|
|
124
|
+
}
|
|
125
|
+
return objectRow;
|
|
126
|
+
} else {
|
|
127
|
+
const objectRow = target || {};
|
|
128
|
+
for (const [name, column] of Object.entries(table.data)) {
|
|
129
|
+
objectRow[name] = column[rowIndex];
|
|
130
|
+
}
|
|
131
|
+
return objectRow;
|
|
132
|
+
}
|
|
133
|
+
case 'arrow-table':
|
|
134
|
+
const objectRow = target || {};
|
|
135
|
+
const row = table.data.get(rowIndex);
|
|
136
|
+
const schema = table.data.schema;
|
|
137
|
+
for (let i = 0; i < schema.fields.length; i++) {
|
|
138
|
+
objectRow[schema.fields[i].name] = row === null || row === void 0 ? void 0 : row[schema.fields[i].name];
|
|
139
|
+
}
|
|
140
|
+
return objectRow;
|
|
141
|
+
default:
|
|
142
|
+
throw new Error('shape');
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
export function getTableRowAsArray(table, rowIndex, target, copy) {
|
|
146
|
+
switch (table.shape) {
|
|
147
|
+
case 'array-row-table':
|
|
148
|
+
return copy ? Array.from(table.data[rowIndex]) : table.data[rowIndex];
|
|
149
|
+
case 'object-row-table':
|
|
150
|
+
case 'geojson-row-table':
|
|
151
|
+
if (table.schema) {
|
|
152
|
+
const arrayRow = target || [];
|
|
153
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
154
|
+
arrayRow[i] = table.data[rowIndex][table.schema.fields[i].name];
|
|
155
|
+
}
|
|
156
|
+
return arrayRow;
|
|
157
|
+
}
|
|
158
|
+
return Object.values(table.data[rowIndex]);
|
|
159
|
+
case 'columnar-table':
|
|
160
|
+
if (table.schema) {
|
|
161
|
+
const arrayRow = target || [];
|
|
162
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
163
|
+
arrayRow[i] = table.data[table.schema.fields[i].name][rowIndex];
|
|
164
|
+
}
|
|
165
|
+
return arrayRow;
|
|
166
|
+
} else {
|
|
167
|
+
const arrayRow = target || [];
|
|
168
|
+
let i = 0;
|
|
169
|
+
for (const column of Object.values(table.data)) {
|
|
170
|
+
arrayRow[i] = column[rowIndex];
|
|
171
|
+
i++;
|
|
172
|
+
}
|
|
173
|
+
return arrayRow;
|
|
174
|
+
}
|
|
175
|
+
case 'arrow-table':
|
|
176
|
+
const arrayRow = target || [];
|
|
177
|
+
const row = table.data.get(rowIndex);
|
|
178
|
+
const schema = table.data.schema;
|
|
179
|
+
for (let i = 0; i < schema.fields.length; i++) {
|
|
180
|
+
arrayRow[i] = row === null || row === void 0 ? void 0 : row[schema.fields[i].name];
|
|
181
|
+
}
|
|
182
|
+
return arrayRow;
|
|
183
|
+
default:
|
|
184
|
+
throw new Error('shape');
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
export function makeArrayRowTable(table) {
|
|
188
|
+
if (table.shape === 'array-row-table') {
|
|
189
|
+
return table;
|
|
190
|
+
}
|
|
191
|
+
const length = getTableLength(table);
|
|
192
|
+
const data = new Array(length);
|
|
193
|
+
for (let rowIndex = 0; rowIndex < length; rowIndex++) {
|
|
194
|
+
data[rowIndex] = getTableRowAsArray(table, rowIndex);
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
shape: 'array-row-table',
|
|
198
|
+
schema: table.schema,
|
|
199
|
+
data
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
export function makeObjectRowTable(table) {
|
|
203
|
+
if (table.shape === 'object-row-table') {
|
|
204
|
+
return table;
|
|
205
|
+
}
|
|
206
|
+
const length = getTableLength(table);
|
|
207
|
+
const data = new Array(length);
|
|
208
|
+
for (let rowIndex = 0; rowIndex < length; rowIndex++) {
|
|
209
|
+
data[rowIndex] = getTableRowAsObject(table, rowIndex);
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
shape: 'object-row-table',
|
|
213
|
+
schema: table.schema,
|
|
214
|
+
data
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
export function makeColumnarTable(table) {
|
|
218
|
+
if (table.shape === 'object-row-table') {
|
|
219
|
+
return table;
|
|
220
|
+
}
|
|
221
|
+
const length = getTableLength(table);
|
|
222
|
+
const data = new Array(length);
|
|
223
|
+
for (let rowIndex = 0; rowIndex < length; rowIndex++) {
|
|
224
|
+
data[rowIndex] = getTableRowAsObject(table, rowIndex);
|
|
225
|
+
}
|
|
226
|
+
return {
|
|
227
|
+
shape: 'object-row-table',
|
|
228
|
+
schema: table.schema,
|
|
229
|
+
data
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
export function* makeRowIterator(table, shape) {
|
|
233
|
+
switch (shape) {
|
|
234
|
+
case 'array-row-table':
|
|
235
|
+
yield* makeArrayRowIterator(table);
|
|
236
|
+
break;
|
|
237
|
+
case 'object-row-table':
|
|
238
|
+
yield* makeObjectRowIterator(table);
|
|
239
|
+
break;
|
|
240
|
+
default:
|
|
241
|
+
throw new Error("Unknown row type ".concat(shape));
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
export function makeArrayRowIterator(table) {
|
|
245
|
+
let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
246
|
+
return function* () {
|
|
247
|
+
const length = getTableLength(table);
|
|
248
|
+
for (let rowIndex = 0; rowIndex < length; rowIndex++) {
|
|
249
|
+
yield getTableRowAsArray(table, rowIndex, target);
|
|
250
|
+
}
|
|
251
|
+
}();
|
|
252
|
+
}
|
|
253
|
+
export function makeObjectRowIterator(table) {
|
|
254
|
+
let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
255
|
+
return function* () {
|
|
256
|
+
const length = getTableLength(table);
|
|
257
|
+
for (let rowIndex = 0; rowIndex < length; rowIndex++) {
|
|
258
|
+
yield getTableRowAsObject(table, rowIndex, target);
|
|
259
|
+
}
|
|
260
|
+
}();
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=table-accessors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-accessors.js","names":["getTableLength","table","shape","data","length","numRows","column","Object","values","Error","getTableNumCols","schema","fields","keys","numCols","getTableCell","rowIndex","columnName","_table$data$getChildA","columnIndex","getTableColumnIndex","arrowColumnIndex","findIndex","field","name","getChildAt","get","getTableCellAt","_table$data$getChildA2","getTableColumnName","getTableRowShape","_table$schema","undefined","_table$schema2","_table$schema2$fields","concat","getTableRowAsObject","target","copy","fromEntries","entries","objectRow","i","row","getTableRowAsArray","Array","from","arrayRow","makeArrayRowTable","makeObjectRowTable","makeColumnarTable","makeRowIterator","makeArrayRowIterator","makeObjectRowIterator","arguments"],"sources":["../../../../../src/lib/table/simple-table/table-accessors.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n/* eslint-disable no-else-return */\n\nimport {Table, ArrayRowTable, ObjectRowTable} from '../../../types/category-table';\n\n/**\n * Returns the length of the table (i.e. the number of rows)\n */\nexport function getTableLength(table: Table): number {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n case 'geojson-row-table':\n return table.data.length;\n\n case 'arrow-table':\n return table.data.numRows;\n\n case 'columnar-table':\n for (const column of Object.values(table.data)) {\n return column.length || 0;\n }\n return 0;\n default:\n throw new Error('table');\n }\n}\n\n/**\n * Returns the number of columns in the table\n * @throws Fails to deduce number of columns if the table has no schema and is empty\n */\nexport function getTableNumCols(table: Table): number {\n if (table.schema) {\n return table.schema.fields.length;\n }\n if (getTableLength(table) === 0) {\n throw new Error('empty table');\n }\n switch (table.shape) {\n case 'array-row-table':\n return table.data[0].length;\n case 'object-row-table':\n case 'geojson-row-table':\n return Object.keys(table.data[0]).length;\n\n case 'columnar-table':\n return Object.keys(table.data).length;\n\n case 'arrow-table':\n return table.data.numCols;\n default:\n throw new Error('table');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCell(table: Table, rowIndex: number, columnName: string): unknown {\n switch (table.shape) {\n case 'array-row-table':\n const columnIndex = getTableColumnIndex(table, columnName);\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n case 'geojson-row-table':\n return table.data[rowIndex][columnName];\n\n case 'columnar-table':\n const column = table.data[columnName];\n return column[rowIndex];\n\n case 'arrow-table':\n const arrowColumnIndex = table.data.schema.fields.findIndex(\n (field) => field.name === columnName\n );\n return table.data.getChildAt(arrowColumnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCellAt(table: Table, rowIndex: number, columnIndex: number): unknown {\n switch (table.shape) {\n case 'array-row-table':\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n case 'geojson-row-table':\n let columnName = getTableColumnName(table, columnIndex);\n return table.data[rowIndex][columnName];\n\n case 'columnar-table':\n columnName = getTableColumnName(table, columnIndex);\n const column = table.data[columnName];\n return column[rowIndex];\n\n case 'arrow-table':\n return table.data.getChildAt(columnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Deduce the table row shape */\nexport function getTableRowShape(table: Table): 'array-row-table' | 'object-row-table' {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n return table.shape;\n\n case 'geojson-row-table':\n return 'object-row-table';\n\n case 'columnar-table':\n default:\n throw new Error('Not a row table');\n }\n}\n\n/** Get the index of a named table column. Requires the table to have a schema */\nexport function getTableColumnIndex(table: Table, columnName: string): number {\n const columnIndex = table.schema?.fields.findIndex((field) => field.name === columnName);\n if (columnIndex === undefined) {\n throw new Error(columnName);\n }\n return columnIndex;\n}\n\n/** Get the name of a table column by index. Requires the table to have a schema */\nexport function getTableColumnName(table: Table, columnIndex: number): string {\n const columnName = table.schema?.fields[columnIndex]?.name;\n if (!columnName) {\n throw new Error(`${columnIndex}`);\n }\n return columnName;\n}\n\n/**\n * Returns one row of the table in object format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsObject(\n table: Table,\n rowIndex: number,\n target?: {[columnName: string]: unknown},\n copy?: 'copy'\n): {[columnName: string]: unknown} {\n switch (table.shape) {\n case 'object-row-table':\n return copy ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];\n\n case 'array-row-table':\n case 'geojson-row-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] = table.data[rowIndex][i];\n }\n return objectRow;\n }\n throw new Error('no schema');\n\n case 'columnar-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] =\n table.data[table.schema.fields[i].name][rowIndex];\n }\n return objectRow;\n } else {\n // eslint-disable-line no-else-return\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (const [name, column] of Object.entries(table.data)) {\n objectRow[name] = column[rowIndex];\n }\n return objectRow;\n }\n\n case 'arrow-table':\n const objectRow: {[columnName: string]: unknown} = target || {};\n const row = table.data.get(rowIndex);\n const schema = table.data.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n objectRow[schema.fields[i].name] = row?.[schema.fields[i].name];\n }\n return objectRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/**\n * Returns one row of the table in array format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance.\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsArray(\n table: Table,\n rowIndex: number,\n target?: unknown[],\n copy?: 'copy'\n): unknown[] {\n switch (table.shape) {\n case 'array-row-table':\n return copy ? Array.from(table.data[rowIndex]) : table.data[rowIndex];\n\n case 'object-row-table':\n case 'geojson-row-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[rowIndex][table.schema.fields[i].name];\n }\n return arrayRow;\n }\n // Warning: just slap on the values, this risks mismatches between rows\n return Object.values(table.data[rowIndex]);\n\n case 'columnar-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[table.schema.fields[i].name][rowIndex];\n }\n return arrayRow;\n } else {\n // eslint-disable-line no-else-return\n const arrayRow: unknown[] = target || [];\n let i = 0;\n for (const column of Object.values(table.data)) {\n arrayRow[i] = column[rowIndex];\n i++;\n }\n return arrayRow;\n }\n\n case 'arrow-table':\n const arrayRow: unknown[] = target || [];\n const row = table.data.get(rowIndex);\n const schema = table.data.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n arrayRow[i] = row?.[schema.fields[i].name];\n }\n return arrayRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/** Convert any table into array row format */\nexport function makeArrayRowTable(table: Table): ArrayRowTable {\n if (table.shape === 'array-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<unknown[]>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsArray(table, rowIndex);\n }\n return {\n shape: 'array-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeObjectRowTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeColumnarTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n// Row Iterators\n\n/**\n * Iterate over table rows\n * @param table\n * @param shape\n */\nexport function* makeRowIterator(\n table: Table,\n shape: 'object-row-table' | 'array-row-table'\n): Iterable<unknown[] | {[key: string]: unknown}> {\n switch (shape) {\n case 'array-row-table':\n yield* makeArrayRowIterator(table);\n break;\n case 'object-row-table':\n yield* makeObjectRowIterator(table);\n break;\n\n default:\n throw new Error(`Unknown row type ${shape}`);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding array rows\n * @param table\n * @param shape\n */\nexport function* makeArrayRowIterator(table: Table, target: unknown[] = []): Iterable<unknown[]> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsArray(table, rowIndex, target);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding object rows\n * @param table\n * @param shape\n */\nexport function* makeObjectRowIterator(\n table: Table,\n target: {[key: string]: unknown} = {}\n): Iterable<{[key: string]: unknown}> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsObject(table, rowIndex, target);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-column.js","names":["getArrayTypeFromDataType","makeColumnFromField","field","length","ArrayType","type","nullable"],"sources":["../../../../../src/lib/table/simple-table/table-column.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// import type {TypedArray,} from '../../../types/types';\nimport {Field} from '../../../types/schema';\nimport {getArrayTypeFromDataType} from './data-type';\n\nexport interface ArrayType<T = unknown> {\n readonly length: number;\n [n: number]: T;\n}\n\nexport function makeColumnFromField(field: Field, length: number): ArrayType {\n const ArrayType = getArrayTypeFromDataType(field.type, field.nullable);\n return new ArrayType(length);\n}\n\n/*\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction deduceSchema(rows) {\n const row = rows[0];\n\n const schema = {};\n let i = 0;\n for (const columnName in row) {\n const value = row[columnName];\n switch (typeof value) {\n case 'number':\n case 'boolean':\n // TODO - booleans could be handled differently...\n schema[columnName] = {name: String(columnName), index: i, type: Float32Array};\n break;\n\n case 'object':\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n break;\n\n case 'string':\n default:\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n // We currently only handle numeric rows\n // TODO we could offer a function to map strings to numbers?\n }\n i++;\n }\n return schema;\n}\n*/\n"],"mappings":"AAIA,SAAQA,wBAAwB,QAAO,aAAa;AAOpD,OAAO,SAASC,mBAAmBA,CAACC,KAAY,EAAEC,MAAc,EAAa;EAC3E,MAAMC,SAAS,GAAGJ,wBAAwB,CAACE,KAAK,CAACG,IAAI,EAAEH,KAAK,CAACI,QAAQ,CAAC;EACtE,OAAO,IAAIF,SAAS,CAACD,MAAM,CAAC;AAC9B"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { getDataTypeFromArray, getDataTypeFromValue } from './data-type';
|
|
2
|
+
export function deduceTableSchema(table) {
|
|
3
|
+
switch (table.shape) {
|
|
4
|
+
case 'array-row-table':
|
|
5
|
+
case 'object-row-table':
|
|
6
|
+
return deduceSchemaFromRows(table.data);
|
|
7
|
+
case 'columnar-table':
|
|
8
|
+
return deduceSchemaFromColumns(table.data);
|
|
9
|
+
case 'arrow-table':
|
|
10
|
+
default:
|
|
11
|
+
throw new Error('Deduce schema');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function deduceSchema(data) {
|
|
15
|
+
return Array.isArray(data) ? deduceSchemaFromRows(data) : deduceSchemaFromColumns(data);
|
|
16
|
+
}
|
|
17
|
+
function deduceSchemaFromColumns(columnarTable) {
|
|
18
|
+
const fields = [];
|
|
19
|
+
for (const [columnName, column] of Object.entries(columnarTable)) {
|
|
20
|
+
const field = deduceFieldFromColumn(column, columnName);
|
|
21
|
+
fields.push(field);
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
fields,
|
|
25
|
+
metadata: {}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function deduceSchemaFromRows(rowTable) {
|
|
29
|
+
if (!rowTable.length) {
|
|
30
|
+
throw new Error('deduce from empty table');
|
|
31
|
+
}
|
|
32
|
+
const fields = [];
|
|
33
|
+
const row0 = rowTable[0];
|
|
34
|
+
for (const [columnName, value] of Object.entries(row0)) {
|
|
35
|
+
fields.push(deduceFieldFromValue(value, columnName));
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
fields,
|
|
39
|
+
metadata: {}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function deduceFieldFromColumn(column, name) {
|
|
43
|
+
if (ArrayBuffer.isView(column)) {
|
|
44
|
+
const type = getDataTypeFromArray(column);
|
|
45
|
+
return {
|
|
46
|
+
name,
|
|
47
|
+
type: type.type || 'null',
|
|
48
|
+
nullable: type.nullable
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (Array.isArray(column) && column.length > 0) {
|
|
52
|
+
const value = column[0];
|
|
53
|
+
const type = getDataTypeFromValue(value);
|
|
54
|
+
return {
|
|
55
|
+
name,
|
|
56
|
+
type,
|
|
57
|
+
nullable: true
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
throw new Error('empty table');
|
|
61
|
+
}
|
|
62
|
+
function deduceFieldFromValue(value, name) {
|
|
63
|
+
const type = getDataTypeFromValue(value);
|
|
64
|
+
return {
|
|
65
|
+
name,
|
|
66
|
+
type,
|
|
67
|
+
nullable: true
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=table-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-schema.js","names":["getDataTypeFromArray","getDataTypeFromValue","deduceTableSchema","table","shape","deduceSchemaFromRows","data","deduceSchemaFromColumns","Error","deduceSchema","Array","isArray","columnarTable","fields","columnName","column","Object","entries","field","deduceFieldFromColumn","push","metadata","rowTable","length","row0","value","deduceFieldFromValue","name","ArrayBuffer","isView","type","nullable"],"sources":["../../../../../src/lib/table/simple-table/table-schema.ts"],"sourcesContent":["// Type deduction\nimport {Schema, Field} from '../../../types/schema';\nimport {ArrayType} from '../../../types/types';\nimport {Table} from '../../../types/category-table';\nimport {getDataTypeFromArray, getDataTypeFromValue} from './data-type';\n\n/**\n * SCHEMA SUPPORT - AUTODEDUCTION\n * @param {*} table\n * @param {*} schema\n * @returns\n */\nexport function deduceTableSchema(table: Table): Schema {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n return deduceSchemaFromRows(table.data);\n\n case 'columnar-table':\n return deduceSchemaFromColumns(table.data);\n\n case 'arrow-table':\n default:\n throw new Error('Deduce schema');\n }\n}\n\nexport function deduceSchema(\n data: unknown[][] | {[key: string]: unknown}[] | {[key: string]: unknown[]}\n): Schema {\n return Array.isArray(data) ? deduceSchemaFromRows(data) : deduceSchemaFromColumns(data);\n}\n\n/** Given an object with columnar arrays, try to deduce a schema */\nfunction deduceSchemaFromColumns(columnarTable: {[key: string]: ArrayType}): Schema {\n const fields: Field[] = [];\n for (const [columnName, column] of Object.entries(columnarTable)) {\n const field = deduceFieldFromColumn(column, columnName);\n fields.push(field);\n }\n return {fields, metadata: {}};\n}\n\n/** Given an array of rows, try to deduce a schema */\nfunction deduceSchemaFromRows(rowTable: unknown[][] | {[key: string]: unknown}[]): Schema {\n if (!rowTable.length) {\n throw new Error('deduce from empty table');\n }\n const fields: Field[] = [];\n const row0 = rowTable[0];\n // TODO - fields can be nullable, false detection...\n // Could look at additional rows if nulls in first row\n // TODO - if array, column names will be numbers\n for (const [columnName, value] of Object.entries(row0)) {\n fields.push(deduceFieldFromValue(value, columnName));\n }\n\n return {fields, metadata: {}};\n}\n\n/** Given a column (i.e. array), attempt to deduce an appropriate `Field` */\nfunction deduceFieldFromColumn(column: ArrayType, name: string): Field {\n if (ArrayBuffer.isView(column)) {\n const type = getDataTypeFromArray(column);\n return {\n name,\n type: type.type || 'null',\n nullable: type.nullable\n // metadata: {}\n };\n }\n\n if (Array.isArray(column) && column.length > 0) {\n const value = column[0];\n const type = getDataTypeFromValue(value);\n // TODO - support nested schemas?\n return {\n name,\n type,\n nullable: true\n // metadata: {},\n };\n }\n\n throw new Error('empty table');\n}\n\n/** Given a value, attempt to deduce an appropriate `Field` */\nfunction deduceFieldFromValue(value: unknown, name: string): Field {\n const type = getDataTypeFromValue(value);\n return {\n name,\n type,\n nullable: true\n // metadata: {}\n };\n}\n"],"mappings":"AAIA,SAAQA,oBAAoB,EAAEC,oBAAoB,QAAO,aAAa;AAQtE,OAAO,SAASC,iBAAiBA,CAACC,KAAY,EAAU;EACtD,QAAQA,KAAK,CAACC,KAAK;IACjB,KAAK,iBAAiB;IACtB,KAAK,kBAAkB;MACrB,OAAOC,oBAAoB,CAACF,KAAK,CAACG,IAAI,CAAC;IAEzC,KAAK,gBAAgB;MACnB,OAAOC,uBAAuB,CAACJ,KAAK,CAACG,IAAI,CAAC;IAE5C,KAAK,aAAa;IAClB;MACE,MAAM,IAAIE,KAAK,CAAC,eAAe,CAAC;EACpC;AACF;AAEA,OAAO,SAASC,YAAYA,CAC1BH,IAA2E,EACnE;EACR,OAAOI,KAAK,CAACC,OAAO,CAACL,IAAI,CAAC,GAAGD,oBAAoB,CAACC,IAAI,CAAC,GAAGC,uBAAuB,CAACD,IAAI,CAAC;AACzF;AAGA,SAASC,uBAAuBA,CAACK,aAAyC,EAAU;EAClF,MAAMC,MAAe,GAAG,EAAE;EAC1B,KAAK,MAAM,CAACC,UAAU,EAAEC,MAAM,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,aAAa,CAAC,EAAE;IAChE,MAAMM,KAAK,GAAGC,qBAAqB,CAACJ,MAAM,EAAED,UAAU,CAAC;IACvDD,MAAM,CAACO,IAAI,CAACF,KAAK,CAAC;EACpB;EACA,OAAO;IAACL,MAAM;IAAEQ,QAAQ,EAAE,CAAC;EAAC,CAAC;AAC/B;AAGA,SAAShB,oBAAoBA,CAACiB,QAAkD,EAAU;EACxF,IAAI,CAACA,QAAQ,CAACC,MAAM,EAAE;IACpB,MAAM,IAAIf,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EACA,MAAMK,MAAe,GAAG,EAAE;EAC1B,MAAMW,IAAI,GAAGF,QAAQ,CAAC,CAAC,CAAC;EAIxB,KAAK,MAAM,CAACR,UAAU,EAAEW,KAAK,CAAC,IAAIT,MAAM,CAACC,OAAO,CAACO,IAAI,CAAC,EAAE;IACtDX,MAAM,CAACO,IAAI,CAACM,oBAAoB,CAACD,KAAK,EAAEX,UAAU,CAAC,CAAC;EACtD;EAEA,OAAO;IAACD,MAAM;IAAEQ,QAAQ,EAAE,CAAC;EAAC,CAAC;AAC/B;AAGA,SAASF,qBAAqBA,CAACJ,MAAiB,EAAEY,IAAY,EAAS;EACrE,IAAIC,WAAW,CAACC,MAAM,CAACd,MAAM,CAAC,EAAE;IAC9B,MAAMe,IAAI,GAAG9B,oBAAoB,CAACe,MAAM,CAAC;IACzC,OAAO;MACLY,IAAI;MACJG,IAAI,EAAEA,IAAI,CAACA,IAAI,IAAI,MAAM;MACzBC,QAAQ,EAAED,IAAI,CAACC;IAEjB,CAAC;EACH;EAEA,IAAIrB,KAAK,CAACC,OAAO,CAACI,MAAM,CAAC,IAAIA,MAAM,CAACQ,MAAM,GAAG,CAAC,EAAE;IAC9C,MAAME,KAAK,GAAGV,MAAM,CAAC,CAAC,CAAC;IACvB,MAAMe,IAAI,GAAG7B,oBAAoB,CAACwB,KAAK,CAAC;IAExC,OAAO;MACLE,IAAI;MACJG,IAAI;MACJC,QAAQ,EAAE;IAEZ,CAAC;EACH;EAEA,MAAM,IAAIvB,KAAK,CAAC,aAAa,CAAC;AAChC;AAGA,SAASkB,oBAAoBA,CAACD,KAAc,EAAEE,IAAY,EAAS;EACjE,MAAMG,IAAI,GAAG7B,oBAAoB,CAACwB,KAAK,CAAC;EACxC,OAAO;IACLE,IAAI;IACJG,IAAI;IACJC,QAAQ,EAAE;EAEZ,CAAC;AACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.js","names":["assert","condition","message","Error"],"sources":["../../../../src/lib/utils/assert.ts"],"sourcesContent":["// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\nexport function assert(condition: boolean, message?: string) {\n if (!condition) {\n throw new Error(message || 'loader assertion failed.');\n }\n}\n"],"mappings":"AAGA,OAAO,SAASA,MAAMA,CAACC,SAAkB,EAAEC,OAAgB,EAAE;EAC3D,IAAI,CAACD,SAAS,EAAE;IACd,MAAM,IAAIE,KAAK,CAACD,OAAO,IAAI,0BAA0B,CAAC;EACxD;AACF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
let _Symbol$asyncIterator;
|
|
3
|
+
class ArrayQueue extends Array {
|
|
4
|
+
enqueue(value) {
|
|
5
|
+
return this.push(value);
|
|
6
|
+
}
|
|
7
|
+
dequeue() {
|
|
8
|
+
return this.shift();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
_Symbol$asyncIterator = Symbol.asyncIterator;
|
|
12
|
+
export default class AsyncQueue {
|
|
13
|
+
constructor() {
|
|
14
|
+
_defineProperty(this, "_values", void 0);
|
|
15
|
+
_defineProperty(this, "_settlers", void 0);
|
|
16
|
+
_defineProperty(this, "_closed", void 0);
|
|
17
|
+
this._values = new ArrayQueue();
|
|
18
|
+
this._settlers = new ArrayQueue();
|
|
19
|
+
this._closed = false;
|
|
20
|
+
}
|
|
21
|
+
close() {
|
|
22
|
+
while (this._settlers.length > 0) {
|
|
23
|
+
this._settlers.dequeue().resolve({
|
|
24
|
+
done: true
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
this._closed = true;
|
|
28
|
+
}
|
|
29
|
+
[_Symbol$asyncIterator]() {
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
enqueue(value) {
|
|
33
|
+
if (this._closed) {
|
|
34
|
+
throw new Error('Closed');
|
|
35
|
+
}
|
|
36
|
+
if (this._settlers.length > 0) {
|
|
37
|
+
if (this._values.length > 0) {
|
|
38
|
+
throw new Error('Illegal internal state');
|
|
39
|
+
}
|
|
40
|
+
const settler = this._settlers.dequeue();
|
|
41
|
+
if (value instanceof Error) {
|
|
42
|
+
settler.reject(value);
|
|
43
|
+
} else {
|
|
44
|
+
settler.resolve({
|
|
45
|
+
value
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
this._values.enqueue(value);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
next() {
|
|
53
|
+
if (this._values.length > 0) {
|
|
54
|
+
const value = this._values.dequeue();
|
|
55
|
+
if (value instanceof Error) {
|
|
56
|
+
return Promise.reject(value);
|
|
57
|
+
}
|
|
58
|
+
return Promise.resolve({
|
|
59
|
+
value
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (this._closed) {
|
|
63
|
+
if (this._settlers.length > 0) {
|
|
64
|
+
throw new Error('Illegal internal state');
|
|
65
|
+
}
|
|
66
|
+
return Promise.resolve({
|
|
67
|
+
done: true
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
this._settlers.enqueue({
|
|
72
|
+
resolve,
|
|
73
|
+
reject
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export async function takeAsync(asyncIterable) {
|
|
79
|
+
let count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;
|
|
80
|
+
const result = [];
|
|
81
|
+
const iterator = asyncIterable[Symbol.asyncIterator]();
|
|
82
|
+
while (result.length < count) {
|
|
83
|
+
const {
|
|
84
|
+
value,
|
|
85
|
+
done
|
|
86
|
+
} = await iterator.next();
|
|
87
|
+
if (done) {
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
result.push(value);
|
|
91
|
+
}
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=async-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-queue.js","names":["ArrayQueue","Array","enqueue","value","push","dequeue","shift","_Symbol$asyncIterator","Symbol","asyncIterator","AsyncQueue","constructor","_defineProperty","_values","_settlers","_closed","close","length","resolve","done","Error","settler","reject","next","Promise","takeAsync","asyncIterable","count","arguments","undefined","Infinity","result","iterator"],"sources":["../../../../src/lib/utils/async-queue.ts"],"sourcesContent":["// From https://github.com/rauschma/async-iter-demo/tree/master/src under MIT license\n// http://2ality.com/2016/10/asynchronous-iteration.html\n\nclass ArrayQueue<T> extends Array<T> {\n enqueue(value: T) {\n // Add at the end\n return this.push(value);\n }\n dequeue(): T {\n // Remove first element\n return this.shift() as T;\n }\n}\n\nexport default class AsyncQueue<T> {\n private _values: ArrayQueue<T | Error>;\n private _settlers: ArrayQueue<{resolve: (value: any) => void; reject: (reason?: any) => void}>;\n private _closed: boolean;\n\n constructor() {\n // enqueues > dequeues\n this._values = new ArrayQueue<T>();\n // dequeues > enqueues\n this._settlers = new ArrayQueue<{\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n }>();\n this._closed = false;\n }\n\n close(): void {\n while (this._settlers.length > 0) {\n this._settlers.dequeue().resolve({done: true});\n }\n this._closed = true;\n }\n\n [Symbol.asyncIterator](): AsyncIterator<T> {\n return this;\n }\n\n enqueue(value: T | Error): void {\n if (this._closed) {\n throw new Error('Closed');\n }\n\n if (this._settlers.length > 0) {\n if (this._values.length > 0) {\n throw new Error('Illegal internal state');\n }\n const settler = this._settlers.dequeue();\n if (value instanceof Error) {\n settler.reject(value);\n } else {\n settler.resolve({value});\n }\n } else {\n this._values.enqueue(value);\n }\n }\n\n /**\n * @returns a Promise for an IteratorResult\n */\n next(): Promise<any> {\n if (this._values.length > 0) {\n const value = this._values.dequeue();\n if (value instanceof Error) {\n return Promise.reject(value);\n }\n return Promise.resolve({value});\n }\n\n if (this._closed) {\n if (this._settlers.length > 0) {\n throw new Error('Illegal internal state');\n }\n return Promise.resolve({done: true});\n }\n // Wait for new values to be enqueued\n return new Promise((resolve, reject) => {\n this._settlers.enqueue({resolve, reject});\n });\n }\n}\n\n/**\n * @returns a Promise for an Array with the elements in `asyncIterable`\n */\nexport async function takeAsync(\n asyncIterable: AsyncIterable<any>,\n count = Infinity\n): Promise<any[]> {\n const result: Array<any> = [];\n const iterator = asyncIterable[Symbol.asyncIterator]();\n while (result.length < count) {\n const {value, done} = await iterator.next();\n if (done) {\n break;\n }\n result.push(value);\n }\n return result;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-gis.js","names":[],"sources":["../../../src/types/category-gis.ts"],"sourcesContent":["// GIS\nimport type {TypedArray} from './types';\nimport type {Feature, Geometry, Point, LineString, Polygon} from 'geojson';\n\n// GEOJSON FORMAT GEOMETRY\n\n// eslint-disable-next-line import/no-unresolved\nexport type {\n GeoJSON,\n Feature,\n FeatureCollection,\n Geometry,\n Position,\n GeoJsonProperties\n} from 'geojson';\n// eslint-disable-next-line import/no-unresolved\nexport type {\n Point,\n MultiPoint,\n LineString,\n MultiLineString,\n Polygon,\n MultiPolygon,\n GeometryCollection\n} from 'geojson';\n\n// Aggregate information for converting GeoJSON into other formats\nexport type GeojsonGeometryInfo = {\n coordLength: number;\n pointPositionsCount: number;\n pointFeaturesCount: number;\n linePositionsCount: number;\n linePathsCount: number;\n lineFeaturesCount: number;\n polygonPositionsCount: number;\n polygonObjectsCount: number;\n polygonRingsCount: number;\n polygonFeaturesCount: number;\n};\n\n// FLAT GEOJSON FORMAT GEOMETRY\nexport type FlatGeometryType = 'Point' | 'LineString' | 'Polygon';\ntype RemoveCoordinatesField<Type> = {\n [Property in keyof Type as Exclude<Property, 'coordinates'>]: Type[Property];\n};\n\n/**\n * Generic flat geometry data storage type\n */\nexport type FlatIndexedGeometry = {\n data: number[];\n indices: number[];\n};\n\n/**\n * GeoJSON (Multi)Point geometry with coordinate data flattened into `data` array and indexed by `indices`\n */\nexport type FlatPoint = RemoveCoordinatesField<Point> & FlatIndexedGeometry;\n\n/**\n * GeoJSON (Multi)LineString geometry with coordinate data flattened into `data` array and indexed by `indices`\n */\nexport type FlatLineString = RemoveCoordinatesField<LineString> & FlatIndexedGeometry;\n\n/**\n * GeoJSON (Multi)Polygon geometry with coordinate data flattened into `data` array and indexed by 2D `indices`\n */\nexport type FlatPolygon = RemoveCoordinatesField<Polygon> & {\n data: number[];\n indices: number[][];\n areas: number[][];\n};\n\nexport type FlatGeometry = FlatPoint | FlatLineString | FlatPolygon;\n\ntype FlattenGeometry<Type> = {\n [Property in keyof Type]: Type[Property] extends Geometry ? FlatGeometry : Type[Property];\n};\n\n/**\n * GeoJSON Feature with Geometry replaced by FlatGeometry\n */\nexport type FlatFeature = FlattenGeometry<Feature>;\n\n// BINARY FORMAT GEOMETRY\n\nexport type BinaryAttribute = {value: TypedArray; size: number};\nexport type BinaryGeometryType = 'Point' | 'LineString' | 'Polygon';\n\ntype NumericProps = {[key: string]: BinaryAttribute};\ntype Properties = object[];\n\n/**\n * Represent a single Geometry, similar to a GeoJSON Geometry\n */\nexport type BinaryGeometry = BinaryPointGeometry | BinaryLineGeometry | BinaryPolygonGeometry;\n\nexport type BinaryPointGeometry = {\n type: 'Point';\n positions: BinaryAttribute;\n};\n\nexport type BinaryLineGeometry = {\n type: 'LineString';\n positions: BinaryAttribute;\n pathIndices: BinaryAttribute;\n};\n\nexport type BinaryPolygonGeometry = {\n type: 'Polygon';\n positions: BinaryAttribute;\n polygonIndices: BinaryAttribute;\n primitivePolygonIndices: BinaryAttribute;\n triangles?: BinaryAttribute;\n};\n\nexport type BinaryProperties = {\n featureIds: BinaryAttribute;\n globalFeatureIds: BinaryAttribute;\n numericProps: NumericProps;\n properties: Properties;\n fields?: Properties;\n};\n\nexport type BinaryPointFeatures = BinaryPointGeometry & BinaryProperties;\nexport type BinaryLineFeatures = BinaryLineGeometry & BinaryProperties;\nexport type BinaryPolygonFeatures = BinaryPolygonGeometry & BinaryProperties;\n\n/**\n * Represent a collection of Features, similar to a GeoJSON FeatureCollection\n */\nexport type BinaryFeatures = {\n points?: BinaryPointFeatures;\n lines?: BinaryLineFeatures;\n polygons?: BinaryPolygonFeatures;\n};\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-image.js","names":[],"sources":["../../../src/types/category-image.ts"],"sourcesContent":["/**\n * data images\n */\nexport type ImageDataType = {\n data: Uint8Array;\n width: number;\n height: number;\n compressed?: boolean;\n};\n\n/**\n * Supported Image Types\n */\nexport type ImageType = ImageBitmap | typeof Image | ImageDataType;\n\n/**\n * Image type string used to control or determine the type of images returned from ImageLoader\n */\nexport type ImageTypeEnum = 'imagebitmap' | 'image' | 'data';\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-mesh.js","names":[],"sources":["../../../src/types/category-mesh.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Schema} from './schema';\nimport type {TypedArray} from './types';\nimport type {ColumnarTable, ArrowTable} from './category-table';\n\n/** Mesh as columnar table */\nexport interface MeshTable extends ColumnarTable {\n // shape: 'mesh-table';\n topology: 'point-list' | 'triangle-list' | 'triangle-strip';\n indices?: MeshAttribute;\n}\n\n/** Mesh as arrow table */\nexport interface MeshArrowTable extends ArrowTable {\n // shape: 'mesh-arrow-table';\n topology: 'point-list' | 'triangle-list' | 'triangle-strip';\n indices?: MeshAttribute;\n}\n\n/** Geometry part of a Mesh (compatible with a standard luma.gl \"mesh\") */\nexport type MeshGeometry = {\n attributes: {[attributeName: string]: MeshAttribute};\n indices?: MeshAttribute;\n topology: 'point-list' | 'triangle-list' | 'triangle-strip';\n mode: number;\n};\n\n/** Geometry and metadata for a Mesh (compatible with a standard luma.gl \"mesh\") */\nexport type Mesh = MeshGeometry & {\n loader?: string;\n loaderData?: {[key: string]: any};\n header?: {\n vertexCount: number;\n boundingBox?: [number[], number[]];\n };\n schema: Schema;\n};\n\n/**\n * luma.gl compatible attribute descriptors\n * Can be mapped to any WebGL framework\n */\nexport type MeshAttribute = {\n value: TypedArray;\n size: number;\n byteOffset?: number;\n byteStride?: number;\n normalized?: boolean;\n};\n\n/** A map of mesh attributes keyed by attribute names */\nexport type MeshAttributes = Record<string, MeshAttribute>;\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-table.js","names":[],"sources":["../../../src/types/category-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Table as ApacheArrowTable, RecordBatch} from 'apache-arrow';\nimport type {Batch, Schema} from './schema';\nimport type {Feature} from './category-gis';\n\n// Idea was to just import types, but it seems\n// Seems this triggers more bundling and build issues than it is worth...\n// import type {Table as ApacheArrowTable, RecordBatch} from 'apache-arrow';\n// type ApacheArrowTable = any;\n// type RecordBatch = any;\n\n/** A general table */\nexport type Table =\n | RowTable\n | ArrayRowTable\n | ObjectRowTable\n | GeoJSONRowTable\n | ColumnarTable\n | ArrowTable;\n\n/** A table organized as an array of rows */\nexport type RowTable = ArrayRowTable | ObjectRowTable | GeoJSONRowTable;\n\n/** A table organized as an array of rows, each row is an array of values */\nexport type ArrayRowTable = {\n shape: 'array-row-table';\n schema?: Schema;\n data: any[][];\n};\n\n/** A table organized as an array of rows, each row is an object mapping columns to values */\nexport type ObjectRowTable = {\n shape: 'object-row-table';\n schema?: Schema;\n data: {[columnName: string]: any}[];\n};\n\n/** A table organized as an array of rows, each row is a GeoJSON Feature */\nexport type GeoJSONRowTable = {\n shape: 'geojson-row-table';\n schema?: Schema;\n data: Feature[];\n};\n\n/** A table organized as a map of columns, each column is an array of value */\nexport type ColumnarTable = {\n shape: 'columnar-table';\n schema?: Schema;\n data: {[columnName: string]: ArrayLike<unknown>};\n};\n\n/** A table organized as an Apache Arrow table */\nexport type ArrowTable = {\n shape: 'arrow-table';\n schema?: Schema;\n data: ApacheArrowTable;\n};\n\n/** A collection of tables */\nexport type Tables<TableType = Table> = {\n shape: 'tables';\n tables: {name: string; table: TableType}[];\n};\n\n// Batches\n\n/** Batch for a general table */\nexport type TableBatch = Batch & {\n data: any;\n length: number;\n schema?: Schema;\n schemaType?: 'explicit' | 'deduced';\n};\n\n/** Batch for a table organized as an array of rows, each row is an array of values */\nexport type ArrayRowTableBatch = TableBatch & {\n shape: 'array-row-table';\n data: any[][];\n};\n\n/** Batch for a table organized as an array of rows, each row is an object mapping columns to values */\nexport type ObjectRowTableBatch = TableBatch & {\n shape: 'object-row-table';\n data: {[columnName: string]: any}[];\n};\n\n/** Batch for a table organized as an array of rows, each row is an array of values */\nexport type GeoJSONRowTableBatch = TableBatch & {\n shape: 'geojson-row-table';\n data: Feature[];\n};\n\n/** Batch for a table organized as a map of columns, each column is an array of value */\nexport type ColumnarTableBatch = TableBatch & {\n shape: 'columnar-table';\n data: {[columnName: string]: ArrayLike<unknown>};\n};\n\n/** Batch for a table organized as an Apache Arrow table */\nexport type ArrowTableBatch = TableBatch & {\n shape: 'arrow-table';\n data: RecordBatch;\n};\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-texture.js","names":[],"sources":["../../../src/types/category-texture.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {ImageType} from './category-image';\n\n/**\n * These represent the main compressed texture formats\n * Each format typically has a number of more specific subformats\n */\nexport type GPUTextureFormat =\n | 'dxt'\n | 'dxt-srgb'\n | 'etc1'\n | 'etc2'\n | 'pvrtc'\n | 'atc'\n | 'astc'\n | 'rgtc';\n\n/** One mip level */\nexport type TextureLevel = {\n compressed: boolean;\n format?: number;\n data: Uint8Array;\n width: number;\n height: number;\n levelSize?: number;\n hasAlpha?: boolean;\n};\n\nexport type TextureOrImage = ImageType | (TextureLevel | ImageType);\n"],"mappings":""}
|