UNPKG

featureserver

Version:

*An open source implementation of the GeoServices specification*

622 lines (496 loc) 21.4 kB
# Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). ## [5.0.0] - 02-2-2023 ### Added - Add support for returnDistinctValues ### Changed - No more support for Node 10, 12 ## [4.1.1] - 11-04-2022 ### Fixed - Allow field definitions to set editable and nullable properties ## [4.1.0] - 09-15-2022 ### Added - Set hasZ from metadata setting when present ## [4.0.2] - 09-14-2022 ### Fixed - geojson validation security vulnerablity - fix ids in layers metadata - fix params passed to QueryFields.create ## [4.0.1] - 08-05-2022 ### Changed - bump winnow version ## [4.0.0] - 06-14-2022 ### Added - override default currentVersion and fullVersion via app.locals.config.featureServer - override default service-description and layer-description via app.locals.config.featureServer ### Changed - function signature on the restInfo method ## [3.5.1] - 06-01-2022 ### Changed - bump winnow version - refactor "fields" array generation ## [3.5.0] - 04-25-2022 ### Added - Add support for overrided default value for copyrightText ## [3.4.0] - 03-28-2022 ### Added - Add support for overriding default value for supportsPagination ## [3.3.4] - 03-25-2022 ### Changed - Refactor design pattern for layer metadata ## [3.3.3] - 03-23-2022 ### Fixed - Server info handler was not properly assigned ## [3.3.2] - 03-11-2022 ### Fixed - Ensure `outSR ` is used when `returnExtentOnly=true` and extent not precalculated ### Changed - Refactor the query handler ## [3.3.1] - 02-24-2022 ### Fixed - support for `returnExtentOnly` ## [3.3.0] - 02-16-2022 ### Added * support for queryRelatedRecords ## [3.2.1] - 01-20-2022 ### Fixed * templates pulled from metadata for JSAPI 4.x support * OBJECTID not forced to Integer if it is a true string (GUID) ## [3.2.0] - 11-30-2021 ### Added * Support for multipoint ### Fixed * Table ID numbering ## [3.1.0] - 09-28-2021 ### Added * Ability to specify the editable property for each field via the metadata object ## [3.0.1] - 09-01-2021 ### Changed * Added ability to specify capabilities the feature service would like to handle ## [3.0.0] - 02-18-2021 ### Changed * End support for Node < 10; remove buble compile step ### Fixed * Allow other properties in spatialReference object ## [2.25.2] - 12-18-2020 ### Fixed * Properly set spatial reference values in service, layer, and query info when source data is not WGS84 ## [2.25.1] - 12-14-2020 ### Changed * Bumped Winnow version for patch ## [2.25.0] - 12-14-2020 ### Changed * Bumped Winnow version - better support for input/output CRSs ## [2.24.1] - 09-10-2020 ### Changed * Bumped Winnow version ## [2.24.0] - 09-08-2020 ### Changed * Bumped Winnow version ## [2.23.0] - 05-13-2020 ### Added * Added Multi versions of all geojson shapes so they will be recognized and translated to esri geometries ## [2.22.1] - 04-14-2020 ### Changed * Bumped Winnow version ## [2.22.0] - 01-13-2020 ### Added * ability to override id, defaultVisibility, minScale, and maxScale in layer info via metadata object ## [2.21.2] - 10-31-2019 ### Fixed * Ensure ObjectID field is moved to being of response fields array * Pass domain and nullable properties into response if provided ## [2.21.1] - 10-04-2019 ### Fixed * Correct packaging ## [2.21.0] - 09-27-2019 ### Added * Support for provider to set renderer; geojson.metadata.render ## [2.20.0] - 07-02-2019 ### Added * Support for `returnExtentOnly` ## [2.19.0] - 06-27-2019 ### Added * Support for info routes with trailing slashes ## [2.18.0] - 05-29-2019 ### Added * Support for `/FeatureServer/info` requests ## [2.17.2] - 05-22-2019 ### Fixed * `returnIdsOnly=true` query requests has `objectIdFieldName` property rather than `objectIdField` ## [2.17.1] - 04-30-2019 ### Added * Colorized warnings ### Changed * Condensed GeoJSON warnings * Provide a more descriptive unassigned `idField` warning ## [2.17.0] - 04-10-2019 ### Added * Additional layer-info route handling for `FeatureServer/:layerId/info` ## [2.16.4] - 12-27-2018 ### Fixed * Before warning of discrepancies between metadata `fields` array and feature properties, compare name and alias to feature property keys. * Remove `exceededTransferLimit` check specific to `maxRecordCount` which can break paging functionality of clients ## [2.16.3] - 11-28-2018 ### Changed * Removed workaround for adding and `OBJECTID` field even when metadata `idField` is set ## [2.16.2] - 10-19-2018 ### Changed * Bump Winnow to 1.16.4 ### Fixed * Add `resultRecordCount` to the `limit` setting hierarchy ## [2.16.1] - 10-03-2018 ### Fixed * package not pointed to `dist/index.js` ## [2.16.0] - 09-17-2018 ### Added * Support addition of "Extract" to layer info capabilities if provider's geojson includes `{ capabilities: { extract: true } }` ## [2.15.2] - 09-10-2018 ### Changed * Supress various warnings when `NODE_ENV !== 'production'` or `KOOP_WARNINGS !== 'suppress'` ## [2.15.1] - 06-06-2018 ### Added * Add warnings for invalid GeoJSON when `NODE_ENV !== 'production'` ## [2.15.0] - 05-30-2018 ### Fixed * Authentication and authorization error messages now properly handled if request has `callback` query parameter ### Added * Helper function to handle all responses, with or without `callback` query parameter * `fullVersion: "10.5.1"` to info responses * 404 handling of urls that don't include `/FeatureServer` ## [2.14.1] - 05-22-2018 ### Fixed * Version bump due to NPM's inability to resolve last publish ## [2.14.0] - 05-22-2018 ### Added * Add response handlers for authentication success and authentication/authorization errors ## [2.13.0] - 05-10-2018 ### Added * Add parameter to the `rest/info` handler and use the argument to supplement/override of the templated JSON response ## [2.12.1] - 05-03-2018 ### Fixed * Bump version, 2.12.0 was npm published without a compile ## [2.12.0] - 05-03-2018 ### Added * support the `/rest/info` route * warnings when `fields` set in provider's metadata don't match name/type of fields found in feature properties * support for setting the length of string and date fields in the `fields` array of a provider's metadata , e.g `[{ name: 'Title', type: 'String', length: 50}]` * support for additional ESRI types when setting `fields` in provider metadata ## [2.11.1] - 04-18-2018 ### Fixed * default to templated value of display field if not provided in metadata and an `empty` fields array ### Added * if request includes `returnGeometry=false` and `outSR=<EPSG>`, delete the `outSR` param since no geometry will be present to reproject ## [2.11.0] - 04-17-2018 ### Added * provider attributes referenced by metadata `idField` are maintained as separate field in addition to OBJECTID when creating ESRI json * warnings when a provider's `idField` is not set or references non- or out-of-range integer values * warning when a provider's `idField` is a mixed-case version of 'OBJECTID' * Bump to winnow 1.14.0 ### Fixed * changed default value of `hasStaticData` to `false` ## [2.10.2] - 04-10-2018 ### Fixed * set Content-Type: application/javascript when response is wrapped in callback (JSONP) ## [2.10.1] - 04-06-2018 ### Fixed * on layer info responses, ensure `fields` array objects have properties `name`, `type`, `alias`, `defaultValue: null`, `domain: null`, `editable: false`, `nullable: false` and `sqlType: "sqlTypeOther"` * on layer info responses, ensure that all `fields` array objects of type `String` and `Date` have a `length` property with values `128` and `36` respectfully * on layer info responses, ensure that the first element of `fields` array in the response is the object with `name: 'OBJECTID'` * on query responses, ensure that all `fields` array objects have properties `name`, `type`, `alias`, `defaultValue: null`, `domain: null`, and `sqlType: "sqlTypeOther"` * on query responses, ensure that the first element of `fields` array in the response is the object with `name: 'OBJECTID'` ### Added * winnow version bump to 1.13.0 ## [2.10.0] - 03-08-2018 ### Added * filtersApplied.limit for already applied limits ## [2.9.3] - 01-08-2018 ### Fixed * Send 400 on unhandled request method ## [2.9.2] - 12-28-2017 ### Fixed * logic for setting layer type to table * exception when count is 0 and no features are provided ## [2.9.1] - 12-07-2017 ### Fixed * Position of capabilities * version to support quantization ## [2.9.0] - 12-07-2017 ### Added * Support for passing through quantization capability ## [2.8.0] - 12-06-2017 ### Added * Support translate and transform quantization metadata ## [2.7.0] - 11-20-2017 ### Added * `filtersApplied.all skips all post processing` ## [2.6.1] - 11-07-2017 ### Fixed * Set spatial reference correctly even when projection is already applied ## [2.6.0] - 11-07-2017 ### Added * `filtersApplied.projection` in metadata ## [2.5.0] 10-23-2017 ### Added * `filtersApplied.offset` in metadata ## [2.4.6] 10-05-2017 ### Fixed * Server info works when metadata.name is undefined ## [2.4.5] 10-05-2017 ### Changed * set `exceededTransferLimit = true` when the number of features returned is limited by the maxRecordCount ### Fixed * layer info for multiple layers works ## [2.4.4] 09-21-17 ### Fixed * Limit to max record count ## [2.4.3] 08-23-2017 ### Fixed * Don't throw an exception when response includes only tables * Allow geometryType to be passed in for layer responses ## [2.4.2] 08-22-2017 ### Fixed * check isNaN instead of falsy for extent validity ## [2.4.1] 08-22-2017 ### Fixed * Don't bomb out /FeatureServer calls when metadata with no extent is passed in ## [2.4.0] 08-04-2017 ### Added * Support for generateRenderer ## [2.3.12] 07-18-2017 ### Fixed * Query returns correct fields when outFields specified ## [2.3.11] - 2017-07-08 ### Fixed * ObjectID Fields set to esriFieldTypeOID ## [2.3.10] - 2017-07-07 ### Fixed * Added package details from [2.3.9] ## [2.3.9] - 2017-07-07 ### Fixed * Import function error in dist ## [2.3.8] - 2017-07-07 ### Fixed * Save id property when rendering layer ### Changed * Reorganize templates.js into individual render functions * Renamed renderStatistics to renderStats for render function consistency ## [2.3.7] - 2017-07-06 ### Fixed - supportsPagination => true ## [2.3.6] - 2017-06-28 ### Fixed * fixed out statistics when statistics are passed in ## [2.3.5] - 2017-06-28 ### Fixed * Date fields are properly converted while using statistics ## [2.3.4] - 2017-06-26 ### Fixed * Date fields show up in webmap viewer ## [2.3.3] - 2017-06-20 ### Fixed * Use indexOf instead of includes to compile to es5 ## [2.3.2] - 2017-06-16 ### Fixed * correct typo: esrifieldTypeInteger => esriFieldTypeInteger * object ids no longer undefined on limit queries ## [2.3.1] - 2017-06-15 ### Fixed * Serialize date fields as UNIX timestamps * Response when objectids query is for a single feature ## [2.3.0] - 2017-06-05 ### Added * Server metadata supports `hasStaticData` and `maxRecordCount` ## [2.2.0] - 2017-06-05 ### Added * Support displayField, timeInfo, maxRecordCount, idField ## [2.1.0] - 2017-06-02 ### Added * Support for passing a server extent e.g. [[-180, -90], [180, 90]] * Support passed geometryType passed in layer metadata ## [2.0.0] - 2017-06-01 ### Added * /FeatureServer supports multiple layers ### Breaking * rename `serviceInfo` => `serverInfo` * remove `serviceInfo` public API * rename `layers` => `layersInfo` ## [1.3.4] - 2017-04-03 ### Fix * OBJECTID is in the fields array only layer request ## [1.3.3] - 2017-03-28 ### Fixed * OID rewrite is now correct ## [1.3.2] - 2017-03-28 ### Changed * Better way of handling oid overwrite ## [1.3.1] - 2017-03-28 ### Fixed * Don't overwrite OBJECTID field if it already exists ## [1.3.0] - 2017-03-16 ### Added * Support for `f=geojson` ## [1.2.5] - 2017-02-28 ### Fixed * Prevent exception on queries with no features ## [1.2.4] - 2017-02-27 ### Fixed * Prevent object ids from being reshuffled on similar requests ## [1.2.3] - 2017-02-27 ### Fixed * Correct response on /FeatureServer endpoint ## [1.2.2] - 2017-02-14 ### Fixed * Set geometry type correctly on query ## [1.2.1] - 2017-02-14 ### Fixed * Correctly compute spatialReference field ## [1.2.0] - 2017-02-10 ### Added * Support for `outSR` ## [1.1.1] - 2017-02-09 ### Fixed * Features are serialized correctly ## [1.1.0] - 2017-02-06 ### Changed * Enable orderByFields ## [1.0.10] - 2017-02-06 ### Fixed * Create correct response for group by statistics ## [1.0.9] - 2017-02-06 ### Added * Handle JSON parameters in all query options ## [1.0.8] - 2017-02-02 ### Fixed * Exclude features from layer info response ## [1.0.7] - 2017-02-02 ### Fixed * Coerce all query parameters to true or false before any function is executed ## [1.0.6] - 2017-02-01 ### Fixed * Pre es6 compatiblity ## [1.0.5] - 2017-02-01 ### Fixed * Build error ## [1.0.4] - 2017-02-01 ### Changed * Reorganize templates ## [1.0.3] - 2017-02-01 ### Fixed * Dont overwrite templates/index in compile step ## [1.0.2] - 2017-01-31 ### Fixed * Geometry query is parsed as json ## [1.0.1] - 2017-01-31 ### Fixed * Remove Standard from deps * Fix reference errors in query ## [1.0.0] - 2017-01-25 * Initial Release [4.1.0]: https://github.com/koopjs/featureserver/compare/v4.0.2...v4.1.0 [4.0.2]: https://github.com/koopjs/featureserver/compare/v4.0.1...v4.0.2 [4.0.1]: https://github.com/koopjs/featureserver/compare/v4.0.0...v4.0.1 [4.0.0]: https://github.com/koopjs/featureserver/compare/v3.5.0...v4.0.0 [3.5.0]: https://github.com/koopjs/featureserver/compare/v3.4.0...v3.5.0 [3.4.0]: https://github.com/koopjs/featureserver/compare/v3.3.4...v3.4.0 [3.3.4]: https://github.com/koopjs/featureserver/compare/v3.3.3...v3.3.4 [3.3.3]: https://github.com/koopjs/featureserver/compare/v3.3.2...v3.3.3 [3.3.2]: https://github.com/koopjs/featureserver/compare/v3.3.1...v3.3.2 [3.3.1]: https://github.com/koopjs/featureserver/compare/v3.3.0...v3.3.1 [3.3.0]: https://github.com/koopjs/featureserver/compare/v3.2.1...v3.3.0 [3.2.1]: https://github.com/koopjs/featureserver/compare/v3.2.0...v3.2.1 [3.2.0]: https://github.com/koopjs/featureserver/compare/v3.1.0...v3.2.0 [3.1.0]: https://github.com/koopjs/featureserver/compare/v3.0.1...v3.1.0 [3.0.1]: https://github.com/koopjs/featureserver/compare/v3.0.0...v3.0.1 [3.0.0]: https://github.com/koopjs/featureserver/compare/v2.25.1...v3.0.0 [2.25.1]: https://github.com/koopjs/featureserver/compare/v2.25.0...v2.25.1 [2.25.0]: https://github.com/koopjs/featureserver/compare/v2.24.1...v2.25.0 [2.24.1]: https://github.com/koopjs/featureserver/compare/v2.24.0...v2.24.1 [2.24.0]: https://github.com/koopjs/featureserver/compare/v2.23.0...v2.24.0 [2.23.0]: https://github.com/koopjs/featureserver/compare/v2.22.1...v2.23.0 [2.22.1]: https://github.com/koopjs/featureserver/compare/v2.22.0...v2.22.1 [2.22.0]: https://github.com/koopjs/featureserver/compare/v2.21.2...v2.22.0 [2.21.2]: https://github.com/koopjs/featureserver/compare/v2.21.1...v2.21.2 [2.21.1]: https://github.com/koopjs/featureserver/compare/v2.21.0...v2.21.1 [2.21.0]: https://github.com/koopjs/featureserver/compare/v2.20.0...v2.21.0 [2.20.0]: https://github.com/koopjs/featureserver/compare/v2.19.0...v2.20.0 [2.19.0]: https://github.com/koopjs/featureserver/compare/v2.18.0...v2.19.0 [2.18.0]: https://github.com/koopjs/featureserver/compare/v2.17.2...v2.18.0 [2.17.2]: https://github.com/koopjs/featureserver/compare/v2.17.1...v2.17.2 [2.17.1]: https://github.com/koopjs/featureserver/compare/v2.17.0...v2.17.1 [2.17.0]: https://github.com/koopjs/featureserver/compare/v2.16.4...v2.17.0 [2.16.4]: https://github.com/koopjs/featureserver/compare/v2.16.3...v2.16.4 [2.16.3]: https://github.com/koopjs/featureserver/compare/v2.16.2...v2.16.3 [2.16.2]: https://github.com/koopjs/featureserver/compare/v2.16.1...v2.16.2 [2.16.1]: https://github.com/koopjs/featureserver/compare/v2.16.0...v2.16.1 [2.16.0]: https://github.com/koopjs/featureserver/compare/v2.15.2...v2.16.0 [2.15.2]: https://github.com/koopjs/featureserver/compare/v2.15.1...v2.15.2 [2.15.1]: https://github.com/koopjs/featureserver/compare/v2.15.0...v2.15.1 [2.15.0]: https://github.com/koopjs/featureserver/compare/v2.14.1...v2.15.0 [2.14.1]: https://github.com/koopjs/featureserver/compare/v2.14.0...v2.14.1 [2.14.0]: https://github.com/koopjs/featureserver/compare/v2.13.0...v2.14.0 [2.13.0]: https://github.com/koopjs/featureserver/compare/v2.12.1...v2.13.0 [2.12.1]: https://github.com/koopjs/featureserver/compare/v2.12.0...v2.12.1 [2.12.0]: https://github.com/koopjs/featureserver/compare/v2.11.1...v2.12.0 [2.11.1]: https://github.com/koopjs/featureserver/compare/v2.11.0...v2.11.1 [2.11.0]: https://github.com/koopjs/featureserver/compare/v2.10.2...v2.11.0 [2.10.2]: https://github.com/koopjs/featureserver/compare/v2.10.1...v2.10.2 [2.10.1]: https://github.com/koopjs/featureserver/compare/v2.10.0...v2.10.1 [2.10.0]: https://github.com/koopjs/featureserver/compare/v2.9.3...v2.10.0 [2.9.3]: https://github.com/koopjs/featureserver/compare/v2.9.2...v2.9.3 [2.9.2]: https://github.com/koopjs/featureserver/compare/v2.9.1...v2.9.2 [2.9.1]: https://github.com/koopjs/featureserver/compare/v2.9.0...v2.9.1 [2.9.0]: https://github.com/koopjs/featureserver/compare/v2.8.0...v2.9.0 [2.8.0]: https://github.com/koopjs/featureserver/compare/v2.7.0...v2.8.0 [2.7.0]: https://github.com/koopjs/featureserver/compare/v2.6.1...v2.7.0 [2.6.1]: https://github.com/koopjs/featureserver/compare/v2.6.0...v2.6.1 [2.6.0]: https://github.com/koopjs/featureserver/compare/v2.5.0...v2.6.0 [2.5.0]: https://github.com/koopjs/featureserver/compare/v2.4.6...v2.5.0 [2.4.6]: https://github.com/koopjs/featureserver/compare/v2.4.5...v2.4.6 [2.4.5]: https://github.com/koopjs/featureserver/compare/v2.4.4...v2.4.5 [2.4.4]: https://github.com/koopjs/featureserver/compare/v2.4.3...v2.4.4 [2.4.3]: https://github.com/koopjs/featureserver/compare/v2.4.2...v2.4.3 [2.4.2]: https://github.com/koopjs/featureserver/compare/v2.4.1...v2.4.2 [2.4.1]: https://github.com/koopjs/featureserver/compare/v2.4.0...v2.4.1 [2.4.0]: https://github.com/featureserver/featureserver/compare/v2.3.12...v2.4.0 [2.3.12]: https://github.com/featureserver/featureserver/compare/v2.3.11...v2.3.12 [2.3.11]: https://github.com/featureserver/featureserver/compare/v2.3.10...v2.3.11 [2.3.10]: https://github.com/featureserver/featureserver/compare/v2.3.9...v2.3.10 [2.3.9]: https://github.com/featureserver/featureserver/compare/v2.3.8...v2.3.9 [2.3.8]: https://github.com/featureserver/featureserver/compare/v2.3.7...v2.3.8 [2.3.7]: https://github.com/featureserver/featureserver/compare/v2.3.6...v2.3.7 [2.3.6]: https://github.com/featureserver/featureserver/compare/v2.3.5...v2.3.6 [2.3.5]: https://github.com/featureserver/featureserver/compare/v2.3.4...v2.3.5 [2.3.4]: https://github.com/featureserver/featureserver/compare/v2.3.3...v2.3.4 [2.3.3]: https://github.com/featureserver/featureserver/compare/v2.3.2...v2.3.3 [2.3.2]: https://github.com/featureserver/featureserver/compare/v2.3.1...v2.3.2 [2.3.1]: https://github.com/featureserver/featureserver/compare/v2.3.1...v2.3.0 [2.3.0]: https://github.com/featureserver/featureserver/compare/v2.2.0...v2.3.0 [2.2.0]: https://github.com/featureserver/featureserver/compare/v2.2.0...v2.1.0 [2.1.0]: https://github.com/featureserver/featureserver/compare/v2.0.0...v2.1.0 [2.0.0]: https://github.com/featureserver/featureserver/compare/v2.0.0...v1.3.4 [1.3.4]: https://github.com/featureserver/featureserver/compare/v1.3.3...v1.3.4 [1.3.3]: https://github.com/featureserver/featureserver/compare/v1.3.2...v1.3.3 [1.3.2]: https://github.com/featureserver/featureserver/compare/v1.3.1...v1.3.2 [1.3.1]: https://github.com/featureserver/featureserver/compare/v1.3.0...v1.3.1 [1.3.0]: https://github.com/featureserver/featureserver/compare/v1.2.5...v1.3.0 [1.2.5]: https://github.com/featureserver/featureserver/compare/v1.2.5...v1.2.4 [1.2.4]: https://github.com/featureserver/featureserver/compare/v1.2.3...v1.2.4 [1.2.3]: https://github.com/featureserver/featureserver/compare/v1.2.3...v1.2.2 [1.2.2]: https://github.com/featureserver/featureserver/compare/v1.2.1...v1.2.2 [1.2.1]: https://github.com/featureserver/featureserver/compare/v1.2.0...v1.2.1 [1.2.0]: https://github.com/featureserver/featureserver/compare/v1.1.1...v1.2.0 [1.1.1]: https://github.com/featureserver/featureserver/compare/v1.1.0...v1.1.1 [1.1.0]: https://github.com/featureserver/featureserver/compare/v1.0.10...v1.1.0 [1.0.10]: https://github.com/featureserver/featureserver/compare/v1.0.9...v1.0.10 [1.0.9]: https://github.com/featureserver/featureserver/compare/v1.0.8...v1.0.9 [1.0.8]: https://github.com/featureserver/featureserver/compare/v1.0.7...v1.0.8 [1.0.7]: https://github.com/featureserver/featureserver/compare/v1.0.6...v1.0.7 [1.0.6]: https://github.com/featureserver/featureserver/compare/v1.0.5...v1.0.6 [1.0.5]: https://github.com/featureserver/featureserver/compare/v1.0.4...v1.0.5 [1.0.4]: https://github.com/featureserver/featureserver/compare/v1.0.3...v1.0.4 [1.0.3]: https://github.com/featureserver/featureserver/compare/v1.0.2...v1.0.3 [1.0.2]: https://github.com/featureserver/featureserver/compare/v1.0.1...v1.0.2 [1.0.1]: https://github.com/featureserver/featureserver/compare/v1.0.0...v1.0.1 [1.0.0]: https://github.com/featureserver/featureserver/releases/tag/v1.0.0