{"ref":"artifact:sebsst-cap-js-geoloc-plugin","page":"/artifacts/sebsst-cap-js-geoloc-plugin","json":"/artifacts/sebsst-cap-js-geoloc-plugin.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sebsst-cap-js-geoloc-plugin","name":"cap-js-geoloc-plugin","artifact_type":"cds-plugin","ecosystem":"cap","domain":"integration-and-messaging","origin_ring":"independent","description":{"one_line":"A CAP plugin for geocoding, address correction and route calculation, driven by three annotations on the model, with the geocoder and router chosen in configuration from providers such as OSRM and Nominatim.","short":"Annotation-driven geocoding, address correction and routing for CAP","what_it_solves":"Three annotations on a CAP entity do the work: @AddressSearch puts a selection popup on an address field, @AddressAutoCorrect geocodes what was typed and writes the corrected address back into a second field, and @RouteCalculation fills in distance and duration between two coordinate fields. The provider is named in configuration rather than in code, a geocoder and a router chosen from OSRM, Nominatim, OpenRouteService, LocationIQ, HERE, Mapbox and Google Maps and set through GEOLOC_ environment variables; the defaults, OSRM for routing and Nominatim for geocoding, need no API key. Answers are cached, thirty days by default, and the pause between geocoding calls is configurable; the free Nominatim tier allows one request per second.","when_not_to_use":"Nothing about it is readable from outside the package: there is no repository, no issue tracker, and the npm page carries no readme, so the README, the examples and the changelog can be read only from the tarball or a CDN mirror, and a bug has nowhere to be filed. Provider URLs are called from the plugin with API keys taken from environment variables in a .env file, so on BTP no call resolves through a destination and the keys live in the environment. The npm line stops at 1.0.1 on 3 November 2025; the changelog shipped inside that version is headed v2.1, so the version npm shows and the version the author counts are not the same."},"links":{"npm":"https://www.npmjs.com/package/cap-js-geoloc-plugin"},"identity":{"author":"sebsst","license":"MIT"},"compat":{"runtimes":["node"],"cds_range":">=8"},"type_properties":{"distribution":{"value":["npm"],"sources":[{"url":"https://www.npmjs.com/package/cap-js-geoloc-plugin","title":"cap-js-geoloc-plugin — README","checked":"2026-10-18","quote":"npm install cap-js-geoloc-plugin"}]}},"source_available":false,"provenance":{"discovered_via":[{"source":"source:npm","channel":"keywords:cds"}],"first_seen":"2026-09-07"},"provides":[{"capability":"capability:fiori-annotations","what_it_does":"Generates the actions its own annotations imply, searchAddress_*, calculateRoute and selectAddress, so an annotated address field gets its selection popup and a route its calculation without either being written into the service. Where @RouteCalculation sets autoCalculate, it also injects the SideEffects that refresh distance and duration after a save. The SideEffects that tie the search actions to the suggestions list are not injected: the examples file offers them as annotations to add.","sources":[{"url":"https://cdn.jsdelivr.net/npm/cap-js-geoloc-plugin@1.0.1/README.md","title":"cap-js-geoloc-plugin 1.0.1 — README","checked":"2026-09-18","quote":"All actions (`searchAddress_*`, `calculateRoute`, `selectAddress`) → Auto-generated"},{"url":"https://cdn.jsdelivr.net/npm/cap-js-geoloc-plugin@1.0.1/README.md","title":"cap-js-geoloc-plugin 1.0.1 — README","checked":"2026-09-18","quote":"Automatic selection popup"},{"url":"https://cdn.jsdelivr.net/npm/cap-js-geoloc-plugin@1.0.1/README.md","title":"cap-js-geoloc-plugin 1.0.1 — README","checked":"2026-09-18","quote":"SideEffects are automatically injected - no manual annotations needed!"},{"url":"https://cdn.jsdelivr.net/npm/cap-js-geoloc-plugin@1.0.1/EXAMPLES.md","title":"cap-js-geoloc-plugin 1.0.1 — EXAMPLES","checked":"2026-09-18","quote":"When autoCalculate: true, SideEffects are automatically injected!"},{"url":"https://cdn.jsdelivr.net/npm/cap-js-geoloc-plugin@1.0.1/EXAMPLES.md","title":"cap-js-geoloc-plugin 1.0.1 — EXAMPLES","checked":"2026-09-18","quote":"For address search, you can optionally add these for better UX:"}]},{"capability":"capability:location-services","what_it_does":"Address search, address correction and route calculation with distance and duration, driven from @AddressSearch, @AddressAutoCorrect and @RouteCalculation on the model and answered by the geocoding and routing provider the configuration names; the defaults, Nominatim and OSRM, need no API key.","sources":[{"url":"https://cdn.jsdelivr.net/npm/cap-js-geoloc-plugin@1.0.1/README.md","title":"cap-js-geoloc-plugin 1.0.1 — README","checked":"2026-09-15","quote":"Add annotations → The plugin allows, address search, address auto correct and route calculation (duration, distance)"},{"url":"https://cdn.jsdelivr.net/npm/cap-js-geoloc-plugin@1.0.1/README.md","title":"cap-js-geoloc-plugin 1.0.1 — README","checked":"2026-09-18","quote":"FREE, unlimited, no API key required"},{"url":"https://cdn.jsdelivr.net/npm/cap-js-geoloc-plugin@1.0.1/README.md","title":"cap-js-geoloc-plugin 1.0.1 — README","checked":"2026-09-18","quote":"no API key required, recommended for development"}]}],"drafted_with_ai":true,"history":[{"date":"2026-09-15","field":"provides","from":"capability:fiori-annotations","to":"capability:fiori-annotations, capability:location-services","reason":"Geocoding and routing is the job the plugin does; the Fiori annotations are how it shows it. The edge became possible with location-services, drafted in intake-20260915-location-services."},{"date":"2026-09-18","field":"requires","from":"artifact:btp-destination","to":"removed","reason":"The package was re-read on 2026-09-18. Its README, examples file and changelog name no destination and no destination service; providers are addressed by URL with API keys read from GEOLOC_ environment variables in a .env file, which is what the entry's own when_not_to_use already said. A requires edge points at what the README names, and this one pointed at the opposite."},{"date":"2026-09-18","field":"provides","from":"capability:fiori-annotations: @Common.ValueList, @Common.SideEffects, @UI.QuickViewFacets injected","to":"capability:fiori-annotations: generated actions, SideEffects under autoCalculate, search SideEffects left to the developer","reason":"Neither ValueList nor QuickViewFacets appears in the README or the examples file, so both were asserted without a source. What the documentation states is the generated actions, the SideEffects injected when @RouteCalculation sets autoCalculate, and the search SideEffects the examples offer as optional annotations to add."},{"date":"2026-09-18","field":"description","from":"one_line, when_not_to_use","to":"one_line, what_it_solves, when_not_to_use","reason":"The entry opened on a warning with nothing saying what the plugin does. when_not_to_use also said 'One release, November 2025': npm holds six versions, four alphas and 1.0.0 and 1.0.1, published between 31 October and 3 November 2025, and the changelog inside 1.0.1 is numbered v2.1."}]},"effective_normative_relations":[{"instrument":"instrument:sap-developer-license-3-2-cap","relation":"use-constrained-by","sections":["1","2","3"],"applies_when":"A cds-plugin is used with SAP CAP materials, or an artifact is explicitly identified as a CAP plugin or application.","note":"This is inherited applicability, not a licence verdict about the artifact itself. Review the agreement for the actual materials and use; an explicit artifact relationship to another revision takes precedence.","scope":{"kind":"artifact"},"sources":[{"url":"https://cap.cloud.sap/resources/license/developer-license-3_2_CAP.txt","title":"SAP Developer License Agreement 3.2 CAP","checked":"2026-09-16","quote":"documentation, plug-ins, templates, scripts and sample code, libraries, software development kits"}],"inherited_from":"cap-plugins-and-applications","relevant_capabilities":["agent-systems-access","async-processing","data-import-export","database-connectors","deployment","destinations","llm-integration","mcp-servers","plugin-authoring","replication","retrieval-augmented-generation","rfc-connectivity"]}],"readings":{"liveness":[{"label":"Maintenance","tier":"fair","evidence":"12 months since release"},{"label":"Continuity","tier":"fair","evidence":"1 publisher on npm"},{"label":"Repository","tier":"unknown","evidence":"no repository data"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":">=8 — includes cds 10 and 9"},{"label":"Survived majors","tier":"poor","evidence":"no release since @sap/cds 10 shipped (July 2026)"},{"label":"Maintainer's CI","tier":"unknown","evidence":"no repository data"}],"practice":[{"label":"Tests","tier":"unknown","evidence":"not crawled"},{"label":"Docs","tier":"good","evidence":"README 18 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the package"}],"reach":[{"value":13,"unit":"installs/week"},{"value":null,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","latest_version":"1.0.1","majors":{"1":{"version":"1.0.1","date":"2025-11-03"}},"license":"MIT","first_release":"2025-11-03","last_release":"2025-11-03","releases":1,"cadence_days":null,"maintainers":1,"repository":null,"peer_cds":">=8","test_script":false,"types":false,"downloads_weekly":13,"months_since_release":12,"dormant":false,"repository_directory":null,"npm_document_version":"1.0.1","npm_document_integrity":"sha512-kqOgnJlUgfSJlDXLeasMpayewhh6vtKZjx93XVer2Bhu0tINTBeDVt3PQh8mxDezT61f1kYvquB+hUMft6jPQg==","npm_document_tarball":"https://registry.npmjs.org/cap-js-geoloc-plugin/-/cap-js-geoloc-plugin-1.0.1.tgz","readme_path":"README.md","readme_bytes":18167,"readme_source":"npm","changelog":true,"changelog_path":"CHANGELOG.md","license_file":false,"dependencies":1,"node_engine":null,"downloads_monthly":24},"release_notes":{"license":"MIT","quotable":true,"source":{"kind":"npm","path":"CHANGELOG.md","version":"1.0.1","url":"https://unpkg.com/cap-js-geoloc-plugin@1.0.1/CHANGELOG.md"},"format":"headings","releases":[{"version":"1.0","heading":"v1.0 - v2.0","url":"https://unpkg.com/cap-js-geoloc-plugin@1.0.1/CHANGELOG.md","sections":[{"kind":"other","heading":"🔮 Future Roadmap","items":2}],"hash":"024a13c429e6fa58"}],"versions":[{"version":"1.0.1","date":"2025-11-03"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[],"contributors":[],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}