@ignfab/geocontext 0.9.5 → 0.9.7
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/README.md +349 -259
- package/dist/gpf/adminexpress.d.ts +17 -8
- package/dist/gpf/adminexpress.js +40 -17
- package/dist/gpf/adminexpress.js.map +1 -1
- package/dist/gpf/altitude.d.ts +21 -9
- package/dist/gpf/altitude.js +5 -5
- package/dist/gpf/altitude.js.map +1 -1
- package/dist/gpf/geocode.d.ts +25 -4
- package/dist/gpf/geocode.js +5 -5
- package/dist/gpf/geocode.js.map +1 -1
- package/dist/gpf/parcellaire-express.d.ts +19 -9
- package/dist/gpf/parcellaire-express.js +59 -26
- package/dist/gpf/parcellaire-express.js.map +1 -1
- package/dist/gpf/urbanisme.d.ts +24 -16
- package/dist/gpf/urbanisme.js +81 -33
- package/dist/gpf/urbanisme.js.map +1 -1
- package/dist/gpf/{wfs.js → wfs-schema-catalog.js} +1 -1
- package/dist/gpf/wfs-schema-catalog.js.map +1 -0
- package/dist/helpers/RateLimiter.d.ts +44 -0
- package/dist/helpers/RateLimiter.js +52 -0
- package/dist/helpers/RateLimiter.js.map +1 -0
- package/dist/helpers/distance.d.ts +2 -1
- package/dist/helpers/distance.js +2 -1
- package/dist/helpers/distance.js.map +1 -1
- package/dist/helpers/errors/toolError.d.ts +30 -0
- package/dist/helpers/errors/toolError.js +193 -0
- package/dist/helpers/errors/toolError.js.map +1 -0
- package/dist/helpers/errors/zodErrorMapFr.d.ts +20 -0
- package/dist/helpers/errors/zodErrorMapFr.js +191 -0
- package/dist/helpers/errors/zodErrorMapFr.js.map +1 -0
- package/dist/helpers/http.d.ts +67 -7
- package/dist/helpers/http.js +458 -84
- package/dist/helpers/http.js.map +1 -1
- package/dist/helpers/jsonSchema.d.ts +20 -2
- package/dist/helpers/jsonSchema.js +12 -0
- package/dist/helpers/jsonSchema.js.map +1 -1
- package/dist/helpers/schemas.d.ts +4 -4
- package/dist/helpers/wfs_engine/attributeFilter.d.ts +51 -0
- package/dist/helpers/wfs_engine/attributeFilter.js +258 -0
- package/dist/helpers/wfs_engine/attributeFilter.js.map +1 -0
- package/dist/helpers/wfs_engine/byId.d.ts +76 -0
- package/dist/helpers/wfs_engine/byId.js +106 -0
- package/dist/helpers/wfs_engine/byId.js.map +1 -0
- package/dist/helpers/wfs_engine/execution.d.ts +72 -0
- package/dist/helpers/wfs_engine/execution.js +95 -0
- package/dist/helpers/wfs_engine/execution.js.map +1 -0
- package/dist/helpers/wfs_engine/features.d.ts +64 -0
- package/dist/helpers/wfs_engine/features.js +138 -0
- package/dist/helpers/wfs_engine/features.js.map +1 -0
- package/dist/helpers/wfs_engine/geometry.d.ts +16 -0
- package/dist/helpers/wfs_engine/geometry.js +44 -0
- package/dist/helpers/wfs_engine/geometry.js.map +1 -0
- package/dist/helpers/wfs_engine/properties.d.ts +51 -0
- package/dist/helpers/wfs_engine/properties.js +128 -0
- package/dist/helpers/wfs_engine/properties.js.map +1 -0
- package/dist/helpers/wfs_engine/queryPreparation.d.ts +32 -0
- package/dist/helpers/wfs_engine/queryPreparation.js +149 -0
- package/dist/helpers/wfs_engine/queryPreparation.js.map +1 -0
- package/dist/helpers/wfs_engine/request.d.ts +94 -0
- package/dist/helpers/wfs_engine/request.js +197 -0
- package/dist/helpers/wfs_engine/request.js.map +1 -0
- package/dist/helpers/wfs_engine/response.d.ts +80 -0
- package/dist/helpers/wfs_engine/response.js +135 -0
- package/dist/helpers/wfs_engine/response.js.map +1 -0
- package/dist/helpers/wfs_engine/schema.d.ts +209 -0
- package/dist/helpers/{wfs_internal → wfs_engine}/schema.js +50 -10
- package/dist/helpers/wfs_engine/schema.js.map +1 -0
- package/dist/helpers/wfs_engine/spatialCql.d.ts +46 -0
- package/dist/helpers/wfs_engine/spatialCql.js +54 -0
- package/dist/helpers/wfs_engine/spatialCql.js.map +1 -0
- package/dist/helpers/wfs_engine/spatialFilter.d.ts +14 -0
- package/dist/helpers/wfs_engine/spatialFilter.js +131 -0
- package/dist/helpers/wfs_engine/spatialFilter.js.map +1 -0
- package/dist/index.js +65 -23
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.js +4 -1
- package/dist/logger.js.map +1 -1
- package/dist/tools/AdminexpressTool.d.ts +42 -33
- package/dist/tools/AdminexpressTool.js +19 -3
- package/dist/tools/AdminexpressTool.js.map +1 -1
- package/dist/tools/AltitudeTool.d.ts +35 -44
- package/dist/tools/AltitudeTool.js +19 -8
- package/dist/tools/AltitudeTool.js.map +1 -1
- package/dist/tools/AssietteSupTool.d.ts +51 -34
- package/dist/tools/AssietteSupTool.js +18 -2
- package/dist/tools/AssietteSupTool.js.map +1 -1
- package/dist/tools/BaseTool.d.ts +17 -0
- package/dist/tools/BaseTool.js +41 -0
- package/dist/tools/BaseTool.js.map +1 -0
- package/dist/tools/CadastreTool.d.ts +53 -33
- package/dist/tools/CadastreTool.js +18 -2
- package/dist/tools/CadastreTool.js.map +1 -1
- package/dist/tools/GeocodeTool.d.ts +53 -37
- package/dist/tools/GeocodeTool.js +17 -2
- package/dist/tools/GeocodeTool.js.map +1 -1
- package/dist/tools/GpfWfsDescribeTypeTool.d.ts +66 -94
- package/dist/tools/GpfWfsDescribeTypeTool.js +26 -15
- package/dist/tools/GpfWfsDescribeTypeTool.js.map +1 -1
- package/dist/tools/GpfWfsGetFeatureByIdTool.d.ts +89 -0
- package/dist/tools/GpfWfsGetFeatureByIdTool.js +99 -0
- package/dist/tools/GpfWfsGetFeatureByIdTool.js.map +1 -0
- package/dist/tools/GpfWfsGetFeaturesTool.d.ts +89 -123
- package/dist/tools/GpfWfsGetFeaturesTool.js +31 -144
- package/dist/tools/GpfWfsGetFeaturesTool.js.map +1 -1
- package/dist/tools/GpfWfsSearchTypesTool.d.ts +41 -32
- package/dist/tools/GpfWfsSearchTypesTool.js +18 -3
- package/dist/tools/GpfWfsSearchTypesTool.js.map +1 -1
- package/dist/tools/UrbanismeTool.d.ts +42 -33
- package/dist/tools/UrbanismeTool.js +18 -2
- package/dist/tools/UrbanismeTool.js.map +1 -1
- package/package.json +51 -24
- package/dist/gpf/wfs.js.map +0 -1
- package/dist/helpers/wfs.d.ts +0 -27
- package/dist/helpers/wfs.js +0 -55
- package/dist/helpers/wfs.js.map +0 -1
- package/dist/helpers/wfs_internal/compile.d.ts +0 -46
- package/dist/helpers/wfs_internal/compile.js +0 -595
- package/dist/helpers/wfs_internal/compile.js.map +0 -1
- package/dist/helpers/wfs_internal/request.d.ts +0 -38
- package/dist/helpers/wfs_internal/request.js +0 -92
- package/dist/helpers/wfs_internal/request.js.map +0 -1
- package/dist/helpers/wfs_internal/response.d.ts +0 -21
- package/dist/helpers/wfs_internal/response.js +0 -29
- package/dist/helpers/wfs_internal/response.js.map +0 -1
- package/dist/helpers/wfs_internal/schema.d.ts +0 -167
- package/dist/helpers/wfs_internal/schema.js.map +0 -1
- /package/dist/gpf/{wfs.d.ts → wfs-schema-catalog.d.ts} +0 -0
package/dist/helpers/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/helpers/http.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/helpers/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,MAAM,MAAM,cAAc,CAAC;AAsDlC,6BAA6B;AAE7B,MAAM,cAAc,GAAG,YAAY,CAAC;AAEpC,SAAS,uBAAuB;IAC9B,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;IAChE,OAAO,mBAAmB,IAAI,YAAY,CAAC;AAC7C,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC;IACjC,MAAM,EAAE,kBAAkB;IAC1B,YAAY,EAAE,uBAAuB,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAgB;IAC7B,OAAO,EAAE,cAAc;CACxB,CAAC;AAEF,yBAAyB;AAEzB;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,UAAU,CAAU;IACpB,cAAc,CAAU;IACxB,WAAW,CAAU;IACrB,aAAa,CAAU;IAEvB,YAAY,OAAe,EAAE,OAAoC;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;IAC/C,CAAC;CACF;AAED,oBAAoB;AAEpB,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AACzD,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,eAAe,CAAU,CAAC;AACtE,MAAM,4BAA4B,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AAC5E,MAAM,+BAA+B,GAAG,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AACtF,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAC;AAC/D,MAAM,4BAA4B,GAAG,EAAE,CAAC;AACxC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AACvD,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAExC,8BAA8B;AAE9B;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;IAC5C,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,OAAe,EAAE,EAAE,UAA0B,EAAE;IAC9F,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACzF,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,oBAAoB,CAAC,GAAW,EAAE,OAAoB;IACnE,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE;YACtB,GAAG,OAAO;YACV,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1D,MAAM,IAAI,oBAAoB,CAC5B,oDAAoD,SAAS,OAAO,EACpE;gBACE,IAAI,EAAE;oBACJ,MAAM,EAAE,uBAAuB;oBAC/B,UAAU,EAAE,4BAA4B;iBACzC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,qBAAqB;oBAC3B,MAAM,EAAE,6DAA6D,SAAS,OAAO;iBACtF;aACF,CACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,IAAwB,EAAE,UAA0B,EAAE;IAC/F,OAAO;QACL,GAAG,SAAS;QACZ,MAAM;QACN,OAAO,EAAE,IAAI,OAAO,CAAC;YACnB,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACnB,CAAC;QACF,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB;IACvB,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAE3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,4BAA4B,GAAG,IAAI,CAAC;IAC7C,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,gEAAgE,iBAAiB,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,GAAG,IAAI,CAAC;AAC/B,CAAC;AAED,2BAA2B;AAE3B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAiB;IACvD,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAE7D,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IACxE,CAAC;IAED,wGAAwG;IACxG,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEpC,yFAAyF;IACzF,qEAAqE;IACrE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,yBAAyB,CAC7B,OAAO,EACP,2BAA2B,OAAO,CAAC,aAAa,MAAM,YAAY,CAAC,MAAM,EAAE,EAC3E;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,MAAM,EAAE,YAAY,CAAC,MAAM;SAC5B,CACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,OAA+B;IACpD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED,+BAA+B;AAE/B;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,OAA+B;IACxD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,yBAAyB,CAC7B,OAAO,EACP,2BAA2B,OAAO,CAAC,aAAa,MAAM,QAAQ,CAAC,OAAO,EAAE,EACxE;gBACE,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CACF,CAAC;QACJ,CAAC;QAED,MAAM,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;YACzD,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC;IAChF,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,yBAAyB,CAC7B,OAAO,EACP,2BAA2B,OAAO,CAAC,aAAa,MAAM,kBAAkB,EAAE,EAC1E,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAC/B,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,MAAM,IAAI,KAAK,CAAC,2CAA2C,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9G,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,QAAQ,KAAK,iBAAiB,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;YAC5E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACpF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,aAAa,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC;QAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnG,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhE,OAAO,YAAY;YACjB,CAAC,CAAC;gBACA,IAAI;gBACJ,MAAM,EAAE,OAAO,IAAI,SAAS;gBAC5B,OAAO,EAAE,YAAY;aACtB;YACD,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,QAAQ,CAAC,OAAsC,EAAE,SAAiB;IACzE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACjC,CAAC,SAAS,EAA2B,EAAE,CACrC,SAAS,YAAY,UAAU;QAC/B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,SAAS,CAChD,CAAC;IAEF,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED,gCAAgC;AAEhC;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,IAAa;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,uBAAuB,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,qBAAqB,GAAG,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAG,eAAe,CAAC;QAC3B,oBAAoB,CAAC,cAAc,EAAE,0BAA0B,CAAC;QAChE,QAAQ;QACR,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,oBAAoB,CAAC,cAAc,EAAE,4BAA4B,CAAC;QAClE,oBAAoB,CAAC,WAAW,EAAE,+BAA+B,CAAC;QAClE,qBAAqB;QACrB,cAAc;QACd,oBAAoB,CAAC,UAAU,EAAE,uBAAuB,CAAC;QACzD,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KACpE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,uBAAuB,CAAC;IAEnE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,2BAA2B;AAE3B;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAC3B,GAAiB,EACjB,IAAY,EACZ,WAAmB;IAEnB,OAAO;QACL,IAAI;QACJ,WAAW;QACX,YAAY,EAAE,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC;QAC5C,aAAa,EAAE,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;QAC7D,IAAI,EAAE,GAAG,CAAC,EAAE;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,WAAmB,EAAE,IAAY;IACpD,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAChC,OAA+B,EAC/B,OAAe,EACf,OAA4C;IAE5C,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE;QACvC,IAAI,EAAE;YACJ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,aAAa;SAClC;QACD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,WAAmB,EAAE,IAAY;IACzD,MAAM,OAAO,GAAG,CAAC,gBAAgB,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAc,EAAE,UAAkB;IAC5D,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,yBAAyB;AAEzB;;;;;GAKG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,MAA2C,EAC3C,MAAyB;IAEzB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,MAAiB;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
|
|
@@ -1,3 +1,21 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
1
|
+
export type PublishedInputSchema = {
|
|
2
|
+
type: "object";
|
|
3
|
+
properties?: Record<string, object>;
|
|
4
|
+
required?: string[];
|
|
5
|
+
additionalProperties?: boolean;
|
|
6
|
+
$schema?: string;
|
|
7
|
+
[key: string]: unknown;
|
|
3
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Converts a Zod v3 input schema into an MCP-compatible JSON Schema for publication.
|
|
11
|
+
*
|
|
12
|
+
* Uses strict union emission and, for `z.pipe(...)`, publishes the pre-transform
|
|
13
|
+
* argument shape (the value callers must send), not the transformed output shape.
|
|
14
|
+
*
|
|
15
|
+
* Note: with our current Zod v3 stack, the compat converter still emits an
|
|
16
|
+
* explicit draft-07 `$schema`. MCP defaults to 2020-12 only when `$schema` is
|
|
17
|
+
* absent, so callers should not assume this helper publishes 2020-12 today.
|
|
18
|
+
* The SDK helper supports a 2020-12 target on its Zod v4 path, but that option
|
|
19
|
+
* has no effect for the Zod v3 conversion path currently used in this repo.
|
|
20
|
+
*/
|
|
21
|
+
export declare function generatePublishedInputSchema(schema: any): PublishedInputSchema;
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import { toJsonSchemaCompat } from "@modelcontextprotocol/sdk/server/zod-json-schema-compat.js";
|
|
2
|
+
/**
|
|
3
|
+
* Converts a Zod v3 input schema into an MCP-compatible JSON Schema for publication.
|
|
4
|
+
*
|
|
5
|
+
* Uses strict union emission and, for `z.pipe(...)`, publishes the pre-transform
|
|
6
|
+
* argument shape (the value callers must send), not the transformed output shape.
|
|
7
|
+
*
|
|
8
|
+
* Note: with our current Zod v3 stack, the compat converter still emits an
|
|
9
|
+
* explicit draft-07 `$schema`. MCP defaults to 2020-12 only when `$schema` is
|
|
10
|
+
* absent, so callers should not assume this helper publishes 2020-12 today.
|
|
11
|
+
* The SDK helper supports a 2020-12 target on its Zod v4 path, but that option
|
|
12
|
+
* has no effect for the Zod v3 conversion path currently used in this repo.
|
|
13
|
+
*/
|
|
2
14
|
export function generatePublishedInputSchema(schema) {
|
|
3
15
|
return toJsonSchemaCompat(schema, {
|
|
4
16
|
strictUnions: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonSchema.js","sourceRoot":"","sources":["../../src/helpers/jsonSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;
|
|
1
|
+
{"version":3,"file":"jsonSchema.js","sourceRoot":"","sources":["../../src/helpers/jsonSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;AAWhG;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAW;IACtD,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,OAAO;KACtB,CAAyB,CAAC;AAC7B,CAAC"}
|
|
@@ -5,9 +5,9 @@ export declare const featureRefSchema: z.ZodObject<{
|
|
|
5
5
|
typename: z.ZodString;
|
|
6
6
|
feature_id: z.ZodString;
|
|
7
7
|
}, "strip", z.ZodTypeAny, {
|
|
8
|
-
typename
|
|
9
|
-
feature_id
|
|
8
|
+
typename: string;
|
|
9
|
+
feature_id: string;
|
|
10
10
|
}, {
|
|
11
|
-
typename
|
|
12
|
-
feature_id
|
|
11
|
+
typename: string;
|
|
12
|
+
feature_id: string;
|
|
13
13
|
}>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where-clause normalization and value coercion helpers for the structured WFS query compiler.
|
|
3
|
+
*
|
|
4
|
+
* This module validates raw attribute filters against catalog property metadata
|
|
5
|
+
* and produces normalized values ready for CQL rendering.
|
|
6
|
+
*/
|
|
7
|
+
import type { CollectionProperty } from "@ignfab/gpf-schema-store";
|
|
8
|
+
import type { WhereClause } from "./schema.js";
|
|
9
|
+
type ScalarValue = string | number | boolean;
|
|
10
|
+
type NormalizedWhereClause = {
|
|
11
|
+
property: string;
|
|
12
|
+
operator: "eq" | "ne";
|
|
13
|
+
value: ScalarValue;
|
|
14
|
+
} | {
|
|
15
|
+
property: string;
|
|
16
|
+
operator: "lt" | "lte" | "gt" | "gte";
|
|
17
|
+
value: number | string;
|
|
18
|
+
} | {
|
|
19
|
+
property: string;
|
|
20
|
+
operator: "in";
|
|
21
|
+
values: ScalarValue[];
|
|
22
|
+
} | {
|
|
23
|
+
property: string;
|
|
24
|
+
operator: "is_null";
|
|
25
|
+
};
|
|
26
|
+
export declare const SCALAR_COMPARISON_OPERATORS: {
|
|
27
|
+
readonly eq: "=";
|
|
28
|
+
readonly ne: "<>";
|
|
29
|
+
};
|
|
30
|
+
export declare const NUMERIC_COMPARISON_OPERATORS: {
|
|
31
|
+
readonly lt: "<";
|
|
32
|
+
readonly lte: "<=";
|
|
33
|
+
readonly gt: ">";
|
|
34
|
+
readonly gte: ">=";
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Formats a scalar value as a CQL literal.
|
|
38
|
+
*
|
|
39
|
+
* @param value Scalar value already normalized for its target property.
|
|
40
|
+
* @returns A CQL-ready literal representation.
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatScalarValue(value: ScalarValue): string;
|
|
43
|
+
/**
|
|
44
|
+
* Validates and normalizes a raw where clause into a shape that is easier to compile.
|
|
45
|
+
*
|
|
46
|
+
* @param property Property metadata targeted by the clause.
|
|
47
|
+
* @param clause Raw where clause received from the tool input.
|
|
48
|
+
* @returns A normalized where clause with coerced values.
|
|
49
|
+
*/
|
|
50
|
+
export declare function normalizeWhereClause(property: CollectionProperty, clause: WhereClause): NormalizedWhereClause;
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where-clause normalization and value coercion helpers for the structured WFS query compiler.
|
|
3
|
+
*
|
|
4
|
+
* This module validates raw attribute filters against catalog property metadata
|
|
5
|
+
* and produces normalized values ready for CQL rendering.
|
|
6
|
+
*/
|
|
7
|
+
// --- CQL Operator Mappings ---
|
|
8
|
+
export const SCALAR_COMPARISON_OPERATORS = {
|
|
9
|
+
eq: "=",
|
|
10
|
+
ne: "<>",
|
|
11
|
+
};
|
|
12
|
+
export const NUMERIC_COMPARISON_OPERATORS = {
|
|
13
|
+
lt: "<",
|
|
14
|
+
lte: "<=",
|
|
15
|
+
gt: ">",
|
|
16
|
+
gte: ">=",
|
|
17
|
+
};
|
|
18
|
+
// --- Scalar Formatting ---
|
|
19
|
+
/**
|
|
20
|
+
* Escapes a string literal so it can be embedded safely in a CQL string value.
|
|
21
|
+
*
|
|
22
|
+
* @param value Raw string value.
|
|
23
|
+
* @returns The escaped string value.
|
|
24
|
+
*/
|
|
25
|
+
function escapeStringLiteral(value) {
|
|
26
|
+
return value.replace(/'/g, "''");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Formats a scalar value as a CQL literal.
|
|
30
|
+
*
|
|
31
|
+
* @param value Scalar value already normalized for its target property.
|
|
32
|
+
* @returns A CQL-ready literal representation.
|
|
33
|
+
*/
|
|
34
|
+
export function formatScalarValue(value) {
|
|
35
|
+
if (typeof value === "string") {
|
|
36
|
+
return `'${escapeStringLiteral(value)}'`;
|
|
37
|
+
}
|
|
38
|
+
if (typeof value === "boolean") {
|
|
39
|
+
return value ? "TRUE" : "FALSE";
|
|
40
|
+
}
|
|
41
|
+
return String(value);
|
|
42
|
+
}
|
|
43
|
+
// --- Property-Type Detection ---
|
|
44
|
+
// TODO: Replace these heuristics with a more reliable mapping if catalog typing evolves.
|
|
45
|
+
/**
|
|
46
|
+
* Checks whether a property should be treated as boolean for value coercion.
|
|
47
|
+
*
|
|
48
|
+
* @param property Property metadata from the embedded catalog.
|
|
49
|
+
* @returns `true` when the property type is recognized as boolean-like.
|
|
50
|
+
*/
|
|
51
|
+
function isBooleanProperty(property) {
|
|
52
|
+
return ["boolean", "bool"].includes(property.type.toLowerCase());
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Checks whether a property should be treated as an integer for value coercion.
|
|
56
|
+
*
|
|
57
|
+
* @param property Property metadata from the embedded catalog.
|
|
58
|
+
* @returns `true` when the property type is recognized as integer-like.
|
|
59
|
+
*/
|
|
60
|
+
function isIntegerProperty(property) {
|
|
61
|
+
return ["integer", "long", "short"].includes(property.type.toLowerCase());
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Checks whether a property should be treated as numeric for value coercion.
|
|
65
|
+
*
|
|
66
|
+
* @param property Property metadata from the embedded catalog.
|
|
67
|
+
* @returns `true` when the property type is recognized as numeric-like.
|
|
68
|
+
*/
|
|
69
|
+
function isNumericProperty(property) {
|
|
70
|
+
return ["integer", "number", "float", "double", "decimal", "long", "short", "numeric"].includes(property.type.toLowerCase());
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Checks whether a property should be treated as a date for value coercion.
|
|
74
|
+
*
|
|
75
|
+
* @param property Property metadata from the embedded catalog.
|
|
76
|
+
* @returns `true` when the property type or name suggests a date-like value.
|
|
77
|
+
*/
|
|
78
|
+
function isDateProperty(property) {
|
|
79
|
+
const type = property.type.toLowerCase();
|
|
80
|
+
return ["date", "datetime", "timestamp", "timestamptz"].includes(type) || property.name.startsWith("date_");
|
|
81
|
+
}
|
|
82
|
+
// --- Scalar Parsing ---
|
|
83
|
+
/**
|
|
84
|
+
* Parses a serialized numeric value and rejects non-finite numbers.
|
|
85
|
+
*
|
|
86
|
+
* @param value Serialized numeric value.
|
|
87
|
+
* @param message Error message to throw when parsing fails.
|
|
88
|
+
* @returns The parsed numeric value.
|
|
89
|
+
*/
|
|
90
|
+
function parseNumericString(value, message) {
|
|
91
|
+
const parsed = Number(value);
|
|
92
|
+
if (!Number.isFinite(parsed)) {
|
|
93
|
+
throw new Error(message);
|
|
94
|
+
}
|
|
95
|
+
return parsed;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Parses a serialized integer value and rejects non-integer numbers.
|
|
99
|
+
*
|
|
100
|
+
* @param value Serialized integer value.
|
|
101
|
+
* @param message Error message to throw when parsing fails.
|
|
102
|
+
* @returns The parsed integer value.
|
|
103
|
+
*/
|
|
104
|
+
function parseIntegerString(value, message) {
|
|
105
|
+
const parsed = Number(value);
|
|
106
|
+
if (!Number.isInteger(parsed)) {
|
|
107
|
+
throw new Error(message);
|
|
108
|
+
}
|
|
109
|
+
return parsed;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Validates a serialized date value using JavaScript date parsing.
|
|
113
|
+
*
|
|
114
|
+
* @param value Serialized date value.
|
|
115
|
+
* @param message Error message to throw when parsing fails.
|
|
116
|
+
* @returns The original value once validated.
|
|
117
|
+
*/
|
|
118
|
+
function parseDateString(value, message) {
|
|
119
|
+
if (!Number.isFinite(Date.parse(value))) {
|
|
120
|
+
throw new Error(message);
|
|
121
|
+
}
|
|
122
|
+
return value;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Parses a serialized boolean value accepted by the tool contract.
|
|
126
|
+
*
|
|
127
|
+
* @param value Serialized boolean value.
|
|
128
|
+
* @param message Error message to throw when parsing fails.
|
|
129
|
+
* @returns The parsed boolean value.
|
|
130
|
+
*/
|
|
131
|
+
function parseBooleanString(value, message) {
|
|
132
|
+
if (value === "true") {
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
if (value === "false") {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
throw new Error(message);
|
|
139
|
+
}
|
|
140
|
+
// --- Clause Validation ---
|
|
141
|
+
/**
|
|
142
|
+
* Extracts the single serialized value required by operators such as `eq` or `gt`.
|
|
143
|
+
*
|
|
144
|
+
* @param filter Raw where clause.
|
|
145
|
+
* @param message Error message to throw when the clause shape is invalid.
|
|
146
|
+
* @returns The serialized scalar value carried by the clause.
|
|
147
|
+
*/
|
|
148
|
+
function getSingleStringValue(filter, message) {
|
|
149
|
+
if (typeof filter.value !== "string" || filter.values !== undefined) {
|
|
150
|
+
throw new Error(message);
|
|
151
|
+
}
|
|
152
|
+
return filter.value;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Ensures that ordered comparison operators only target numeric-like or date-like properties.
|
|
156
|
+
*
|
|
157
|
+
* @param property Property metadata from the embedded catalog.
|
|
158
|
+
* @param operator Ordered comparison operator being compiled.
|
|
159
|
+
* @returns Nothing. Throws when the property type is incompatible with ordered comparisons.
|
|
160
|
+
*/
|
|
161
|
+
function ensureNumericProperty(property, operator) {
|
|
162
|
+
if (!isNumericProperty(property) && !isDateProperty(property)) {
|
|
163
|
+
throw new Error(`L'opérateur '${operator}' n'est supporté que pour une propriété numérique ou de date. '${property.name}' est de type '${property.type}'.`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// --- Value Coercion ---
|
|
167
|
+
/**
|
|
168
|
+
* Coerces a serialized scalar value according to the target property metadata.
|
|
169
|
+
*
|
|
170
|
+
* @param property Property metadata from the embedded catalog.
|
|
171
|
+
* @param value Serialized scalar value received from the tool input.
|
|
172
|
+
* @returns A normalized scalar value ready for CQL formatting.
|
|
173
|
+
*/
|
|
174
|
+
function coerceScalarValueForProperty(property, value) {
|
|
175
|
+
if (isIntegerProperty(property)) {
|
|
176
|
+
return parseIntegerString(value, `La propriété '${property.name}' exige une valeur entière sérialisée en texte.`);
|
|
177
|
+
}
|
|
178
|
+
if (isNumericProperty(property)) {
|
|
179
|
+
return parseNumericString(value, `La propriété '${property.name}' exige une valeur numérique sérialisée en texte.`);
|
|
180
|
+
}
|
|
181
|
+
if (isBooleanProperty(property)) {
|
|
182
|
+
return parseBooleanString(value, `La propriété '${property.name}' exige une valeur booléenne sérialisée en texte ('true' ou 'false').`);
|
|
183
|
+
}
|
|
184
|
+
if (isDateProperty(property)) {
|
|
185
|
+
return parseDateString(value, `La propriété '${property.name}' exige une date sérialisée en texte valide.`);
|
|
186
|
+
}
|
|
187
|
+
if (Array.isArray(property.enum) && property.enum.length > 0 && !property.enum.includes(value)) {
|
|
188
|
+
throw new Error(`La propriété '${property.name}' exige une valeur parmi : ${property.enum.join(", ")}.`);
|
|
189
|
+
}
|
|
190
|
+
return value;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Coerces a serialized value used by ordered comparison operators.
|
|
194
|
+
*
|
|
195
|
+
* @param property Property metadata from the embedded catalog.
|
|
196
|
+
* @param value Serialized scalar value received from the tool input.
|
|
197
|
+
* @param operator Ordered comparison operator being compiled.
|
|
198
|
+
* @returns A normalized date or numeric value ready for CQL formatting.
|
|
199
|
+
*/
|
|
200
|
+
function coerceOrderedValueForProperty(property, value, operator) {
|
|
201
|
+
ensureNumericProperty(property, operator);
|
|
202
|
+
if (isDateProperty(property)) {
|
|
203
|
+
return parseDateString(value, `L'opérateur '${operator}' exige une propriété \`value\` date valide.`);
|
|
204
|
+
}
|
|
205
|
+
if (isIntegerProperty(property)) {
|
|
206
|
+
return parseIntegerString(value, `L'opérateur '${operator}' exige une propriété \`value\` entière.`);
|
|
207
|
+
}
|
|
208
|
+
return parseNumericString(value, `L'opérateur '${operator}' exige une propriété \`value\` numérique.`);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Validates and normalizes a raw where clause into a shape that is easier to compile.
|
|
212
|
+
*
|
|
213
|
+
* @param property Property metadata targeted by the clause.
|
|
214
|
+
* @param clause Raw where clause received from the tool input.
|
|
215
|
+
* @returns A normalized where clause with coerced values.
|
|
216
|
+
*/
|
|
217
|
+
export function normalizeWhereClause(property, clause) {
|
|
218
|
+
switch (clause.operator) {
|
|
219
|
+
case "eq":
|
|
220
|
+
case "ne": {
|
|
221
|
+
const value = getSingleStringValue(clause, `L'opérateur '${clause.operator}' exige exactement une propriété \`value\`.`);
|
|
222
|
+
return {
|
|
223
|
+
property: clause.property,
|
|
224
|
+
operator: clause.operator,
|
|
225
|
+
value: coerceScalarValueForProperty(property, value),
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
case "lt":
|
|
229
|
+
case "lte":
|
|
230
|
+
case "gt":
|
|
231
|
+
case "gte": {
|
|
232
|
+
const value = getSingleStringValue(clause, `L'opérateur '${clause.operator}' exige exactement une propriété \`value\`.`);
|
|
233
|
+
return {
|
|
234
|
+
property: clause.property,
|
|
235
|
+
operator: clause.operator,
|
|
236
|
+
value: coerceOrderedValueForProperty(property, value, clause.operator),
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
case "in":
|
|
240
|
+
if (clause.value !== undefined || !Array.isArray(clause.values) || clause.values.length === 0 || !clause.values.every((value) => typeof value === "string")) {
|
|
241
|
+
throw new Error("L'opérateur 'in' exige une propriété `values` non vide.");
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
property: clause.property,
|
|
245
|
+
operator: "in",
|
|
246
|
+
values: clause.values.map((value) => coerceScalarValueForProperty(property, value)),
|
|
247
|
+
};
|
|
248
|
+
case "is_null":
|
|
249
|
+
if (clause.value !== undefined || clause.values !== undefined) {
|
|
250
|
+
throw new Error("L'opérateur 'is_null' n'accepte ni `value` ni `values`.");
|
|
251
|
+
}
|
|
252
|
+
return {
|
|
253
|
+
property: clause.property,
|
|
254
|
+
operator: "is_null",
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=attributeFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributeFilter.js","sourceRoot":"","sources":["../../../src/helpers/wfs_engine/attributeFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution helpers for exact WFS feature lookup by `feature_id`.
|
|
3
|
+
*
|
|
4
|
+
* This module runs the structured WFS by-id flow independently from MCP tool
|
|
5
|
+
* concerns such as schema exposure and response formatting.
|
|
6
|
+
*/
|
|
7
|
+
import type { Collection } from "@ignfab/gpf-schema-store";
|
|
8
|
+
import { type WfsFeatureCollectionResponse, type WfsFeatureResponse } from "./execution.js";
|
|
9
|
+
/**
|
|
10
|
+
* Normalized execution input for the strict by-id `results` flow.
|
|
11
|
+
*/
|
|
12
|
+
export type GetFeatureByIdExecutionInput = {
|
|
13
|
+
typename: string;
|
|
14
|
+
feature_id: string;
|
|
15
|
+
select?: string[];
|
|
16
|
+
};
|
|
17
|
+
type PropertySelectionInput = {
|
|
18
|
+
includeGeometry?: boolean;
|
|
19
|
+
select?: string[];
|
|
20
|
+
};
|
|
21
|
+
type FetchFeatureByIdInput = {
|
|
22
|
+
typename: string;
|
|
23
|
+
feature_id: string;
|
|
24
|
+
propertyName?: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Builds the optional `propertyName` request parameter from `select`.
|
|
28
|
+
*
|
|
29
|
+
* @param featureType Feature type definition loaded from the embedded catalog.
|
|
30
|
+
* @param input Property selection options derived from the caller's output mode.
|
|
31
|
+
* @returns A comma-separated property list, or `undefined` when all properties should be returned.
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildPropertyName(featureType: Collection, input: PropertySelectionInput): string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Executes the live WFS lookup targeting a single `featureID`.
|
|
36
|
+
*
|
|
37
|
+
* @param input Target layer, expected feature id, and optional property selection.
|
|
38
|
+
* @returns The raw FeatureCollection returned by the WFS service.
|
|
39
|
+
*/
|
|
40
|
+
export declare function fetchFeatureById(input: FetchFeatureByIdInput): Promise<WfsFeatureCollectionResponse>;
|
|
41
|
+
/**
|
|
42
|
+
* Enforces the strict by-id contract on a raw WFS FeatureCollection.
|
|
43
|
+
*
|
|
44
|
+
* @param featureCollection Raw FeatureCollection returned by the WFS service.
|
|
45
|
+
* @param input Expected target layer and feature id.
|
|
46
|
+
* @returns The single matching feature.
|
|
47
|
+
*/
|
|
48
|
+
export declare function requireSingleFeatureById(featureCollection: WfsFeatureCollectionResponse, input: Pick<GetFeatureByIdExecutionInput, "typename" | "feature_id">): WfsFeatureResponse;
|
|
49
|
+
/**
|
|
50
|
+
* Executes the structured WFS by-id flow for `result_type="results"`.
|
|
51
|
+
*
|
|
52
|
+
* This function:
|
|
53
|
+
* - loads the feature type from the embedded catalog
|
|
54
|
+
* - builds the optional `propertyName` selection
|
|
55
|
+
* - executes the WFS request for the requested `feature_id`
|
|
56
|
+
* - enforces strict cardinality on the returned FeatureCollection
|
|
57
|
+
* - attaches reusable `feature_ref` metadata to the final response
|
|
58
|
+
*
|
|
59
|
+
* Tool-specific concerns such as MCP schema exposure and request-preview
|
|
60
|
+
* formatting remain outside this helper.
|
|
61
|
+
*
|
|
62
|
+
* This helper is intentionally scoped to the `results` path only. MCP-specific
|
|
63
|
+
* request preview assembly remains in the tool layer.
|
|
64
|
+
*
|
|
65
|
+
* @param input Normalized by-id execution input for the `results` flow.
|
|
66
|
+
* @returns A transformed FeatureCollection containing exactly one feature.
|
|
67
|
+
*/
|
|
68
|
+
export declare function executeGetFeatureById(input: GetFeatureByIdExecutionInput): Promise<Record<string, unknown> & {
|
|
69
|
+
features?: (Record<string, unknown> & {
|
|
70
|
+
feature_ref?: {
|
|
71
|
+
typename: string | null;
|
|
72
|
+
feature_id: string;
|
|
73
|
+
};
|
|
74
|
+
})[];
|
|
75
|
+
}>;
|
|
76
|
+
export {};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution helpers for exact WFS feature lookup by `feature_id`.
|
|
3
|
+
*
|
|
4
|
+
* This module runs the structured WFS by-id flow independently from MCP tool
|
|
5
|
+
* concerns such as schema exposure and response formatting.
|
|
6
|
+
*/
|
|
7
|
+
import { getFeatureType, fetchFeatureCollection, } from "./execution.js";
|
|
8
|
+
import { validateSelectProperty, getGeometryProperty } from "./queryPreparation.js";
|
|
9
|
+
import { buildGetFeatureByIdRequest } from "./request.js";
|
|
10
|
+
import { attachFeatureRefs } from "./response.js";
|
|
11
|
+
// --- Property Selection ---
|
|
12
|
+
/**
|
|
13
|
+
* Builds the optional `propertyName` request parameter from `select`.
|
|
14
|
+
*
|
|
15
|
+
* @param featureType Feature type definition loaded from the embedded catalog.
|
|
16
|
+
* @param input Property selection options derived from the caller's output mode.
|
|
17
|
+
* @returns A comma-separated property list, or `undefined` when all properties should be returned.
|
|
18
|
+
*/
|
|
19
|
+
export function buildPropertyName(featureType, input) {
|
|
20
|
+
if (!input.select || input.select.length === 0) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const geometryProperty = getGeometryProperty(featureType);
|
|
24
|
+
const selectedProperties = input.select.map((propertyName) => validateSelectProperty(featureType, geometryProperty, propertyName));
|
|
25
|
+
if (input.includeGeometry) {
|
|
26
|
+
return [...selectedProperties, geometryProperty.name].join(",");
|
|
27
|
+
}
|
|
28
|
+
return selectedProperties.join(",");
|
|
29
|
+
}
|
|
30
|
+
// --- Live Lookup ---
|
|
31
|
+
/**
|
|
32
|
+
* Executes the live WFS lookup targeting a single `featureID`.
|
|
33
|
+
*
|
|
34
|
+
* @param input Target layer, expected feature id, and optional property selection.
|
|
35
|
+
* @returns The raw FeatureCollection returned by the WFS service.
|
|
36
|
+
*/
|
|
37
|
+
export async function fetchFeatureById(input) {
|
|
38
|
+
const request = buildGetFeatureByIdRequest(input.typename, input.feature_id, input.propertyName);
|
|
39
|
+
return fetchFeatureCollection(request);
|
|
40
|
+
}
|
|
41
|
+
// --- Cardinality Enforcement ---
|
|
42
|
+
/**
|
|
43
|
+
* Enforces the strict by-id contract on a raw WFS FeatureCollection.
|
|
44
|
+
*
|
|
45
|
+
* @param featureCollection Raw FeatureCollection returned by the WFS service.
|
|
46
|
+
* @param input Expected target layer and feature id.
|
|
47
|
+
* @returns The single matching feature.
|
|
48
|
+
*/
|
|
49
|
+
export function requireSingleFeatureById(featureCollection, input) {
|
|
50
|
+
if (!Array.isArray(featureCollection.features)) {
|
|
51
|
+
throw new Error("Le service WFS n'a pas retourné de collection d'objets exploitable.");
|
|
52
|
+
}
|
|
53
|
+
if (featureCollection.features.length === 0) {
|
|
54
|
+
throw new Error(`Le feature '${input.feature_id}' est introuvable dans '${input.typename}'.`);
|
|
55
|
+
}
|
|
56
|
+
if (featureCollection.features.length > 1) {
|
|
57
|
+
throw new Error(`Le feature '${input.feature_id}' dans '${input.typename}' devrait être unique, mais ${featureCollection.features.length} objets ont été retournés.`);
|
|
58
|
+
}
|
|
59
|
+
const [firstFeature] = featureCollection.features;
|
|
60
|
+
if (firstFeature?.id !== input.feature_id) {
|
|
61
|
+
throw new Error(`Le service WFS a retourné l'identifiant '${String(firstFeature?.id)}' au lieu de '${input.feature_id}'.`);
|
|
62
|
+
}
|
|
63
|
+
return firstFeature;
|
|
64
|
+
}
|
|
65
|
+
// --- Results Execution ---
|
|
66
|
+
/**
|
|
67
|
+
* Executes the structured WFS by-id flow for `result_type="results"`.
|
|
68
|
+
*
|
|
69
|
+
* This function:
|
|
70
|
+
* - loads the feature type from the embedded catalog
|
|
71
|
+
* - builds the optional `propertyName` selection
|
|
72
|
+
* - executes the WFS request for the requested `feature_id`
|
|
73
|
+
* - enforces strict cardinality on the returned FeatureCollection
|
|
74
|
+
* - attaches reusable `feature_ref` metadata to the final response
|
|
75
|
+
*
|
|
76
|
+
* Tool-specific concerns such as MCP schema exposure and request-preview
|
|
77
|
+
* formatting remain outside this helper.
|
|
78
|
+
*
|
|
79
|
+
* This helper is intentionally scoped to the `results` path only. MCP-specific
|
|
80
|
+
* request preview assembly remains in the tool layer.
|
|
81
|
+
*
|
|
82
|
+
* @param input Normalized by-id execution input for the `results` flow.
|
|
83
|
+
* @returns A transformed FeatureCollection containing exactly one feature.
|
|
84
|
+
*/
|
|
85
|
+
export async function executeGetFeatureById(input) {
|
|
86
|
+
const featureType = await getFeatureType(input.typename);
|
|
87
|
+
const propertyName = buildPropertyName(featureType, {
|
|
88
|
+
includeGeometry: false,
|
|
89
|
+
select: input.select,
|
|
90
|
+
});
|
|
91
|
+
const featureCollection = await fetchFeatureById({
|
|
92
|
+
typename: input.typename,
|
|
93
|
+
feature_id: input.feature_id,
|
|
94
|
+
propertyName,
|
|
95
|
+
});
|
|
96
|
+
const firstFeature = requireSingleFeatureById(featureCollection, input);
|
|
97
|
+
const singleFeatureCollection = {
|
|
98
|
+
...featureCollection,
|
|
99
|
+
features: [firstFeature],
|
|
100
|
+
totalFeatures: 1,
|
|
101
|
+
numberReturned: 1,
|
|
102
|
+
numberMatched: 1,
|
|
103
|
+
};
|
|
104
|
+
return attachFeatureRefs(singleFeatureCollection, input.typename);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=byId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"byId.js","sourceRoot":"","sources":["../../../src/helpers/wfs_engine/byId.ts"],"names":[],"mappings":"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"}
|