{"_id":"@geolonia/geonicdb-sdk","_rev":"29-a8e0ea4e9a933240133d2af3750f6db5","name":"@geolonia/geonicdb-sdk","dist-tags":{"latest":"0.20.0"},"versions":{"0.1.0":{"name":"@geolonia/geonicdb-sdk","version":"0.1.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"AGPL-3.0-or-later","_id":"@geolonia/geonicdb-sdk@0.1.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"f2ba664069200b633ab82ee1d1953a698f87f9e3","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.1.0.tgz","fileCount":9,"integrity":"sha512-UVSP8gSjbLOSQzVdnEjsT2FflealyJ7bhtrHEeW7fRJ/vKjONIifKrWsrfX+M3Wd/2oAbvVwcWdVczsNwGljGg==","signatures":[{"sig":"MEYCIQDIuC9GsRZei1KbK3xyp+6RiYuUoEyIkFDcuKlcTU0BDgIhAMQj8+0TpbOPJsD55bLa9aRdkCoG8t3G7UVD2HiTSWB5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299331},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"6c50dab4ac81ed6e98ae94817f295beb1eab9fdf","_npmUser":{"name":"miya0001","email":"hatatatehaze@gmail.com"},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.12.1","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.1.0_1775715432423_0.4019405761678372","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@geolonia/geonicdb-sdk","version":"0.1.1","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"AGPL-3.0-or-later","_id":"@geolonia/geonicdb-sdk@0.1.1","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"bf497e77eb40ea852c697ea4d1f6256ffafff4d4","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.1.1.tgz","fileCount":9,"integrity":"sha512-7CsVSBHztlAtnX9mqv2NEppSqsKFvQLfSNxoSrRG7Qx4k5mWh/yUbwPcdw7czRAlXuaXKqE1bobLWsSupNAPNg==","signatures":[{"sig":"MEUCIFL6Gl6mMv0xxGps9iogIRZ1aHbF9IA8Ww55br6XFXvAAiEA2rL4kTq4rkSaNI+ZDC2Or8Q8wzDBg9ha/eoxi1mdDdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302568},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"e4eac87aa8dfa6739093da387f8283f4b74afec6","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.1.1_1775737004352_0.3772135335023674","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@geolonia/geonicdb-sdk","version":"0.2.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"AGPL-3.0-or-later","_id":"@geolonia/geonicdb-sdk@0.2.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"f40aa1398422a61fb921315c5e083997871e48e5","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.2.0.tgz","fileCount":9,"integrity":"sha512-fq4yQJf20gQQeTQlbuMO9+sFNOvGkP74RKsJjqUzFP4h99ilr3anpVJjet8IxpglzK42gAC2xZqgkh3eKOxqHw==","signatures":[{"sig":"MEYCIQCjEKapWbA8x0JXP/Rtte+Bsx7F3YklWQfd62L1CxGnCgIhAOq+5ExxlwupRrtyDIf+INUdi5Tl4S8Xd/RONm4C/0lN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311071},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"d612df6b6d41c061eccf77f4a67f88e1e38e28a7","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.2.0_1776147583881_0.9244954916004895","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@geolonia/geonicdb-sdk","version":"0.2.1","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.2.1","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"e7927d8aa32f7c5468bfd184c91dceede2a42b7c","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.2.1.tgz","fileCount":10,"integrity":"sha512-/i9i4TcRx9oJLIptWiGLChyI407bxd/bOZO/okksJeVXNXbCe24AYbVHWB4Q+Ki/t3NPJiwH+gACSLEjmz0mwg==","signatures":[{"sig":"MEYCIQDeVv44GDkADBh126QctTzjbhp+bA1xTsXV+oPnt36IwgIhALSEY9iA4vmF1lTK/Q47LOPSvElA0hpK7ejEYRLv6UhO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304794},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"79137581e59b06938df68a4040a72ab0cc89ff5f","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.2.1_1776153500147_0.5228047387107237","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@geolonia/geonicdb-sdk","version":"0.3.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.3.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"ea3f8c700dd18c05bd4e88ab624877d0a5ab1df4","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.3.0.tgz","fileCount":10,"integrity":"sha512-xrma2ELyZ3bFLzSvLP+YS6y7vExScIY7jTj56A7xgCSJPZDaB4z/JpLoOOYkZFpR95C4zdFwcZe40IiHky0ydA==","signatures":[{"sig":"MEUCIQD4vARFYwG+K4UxQEMNrow59RaY08nMrl9WsO1Xo9UihAIgMx/lnKYRVuevrlbiVnkwp8z98XNP1wQgAK8t63LTfds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332480},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"f28a74dfd5679f60f0e1067f29c632756b335644","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.3.0_1777017911879_0.29021921211022517","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@geolonia/geonicdb-sdk","version":"0.4.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.4.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"4de5add64f10e120eadd786cf2b9a6517f715624","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.4.0.tgz","fileCount":10,"integrity":"sha512-StR6Ed6D0Uzy9OArTOInu/bktmVQfnaX9Ql57kwEeCHfQC1yDscvYZz7LK8AEZN2yrs54jGF/VvSUkvXtVKdHQ==","signatures":[{"sig":"MEUCIQCbKIMC8Tglq9MqHKUfYI2yxqU89rdJYu00GJhCVrHnDwIgeUxcZX/r3A706maxLGPmKacuWv3R5rw3g5o6cLYMlRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437550},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"caebf2622d53b7305be69cf76140726945f732de","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.4.0_1777278147793_0.4928432716186162","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@geolonia/geonicdb-sdk","version":"0.5.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.5.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"63b37eba31ff6d27182f6919a9532668c542bc30","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.5.0.tgz","fileCount":10,"integrity":"sha512-LVTlWsc6IHHLKQ2CWsZSHsplPG33OjjE0T2cv5EqNZWaausbNpMEsk+WfXfnsoEBGnJYh03zYmwmvbyjj0ubig==","signatures":[{"sig":"MEYCIQCNE27viD3FOdtfmz+i10XK5sJMAxFDWa9+qKYosLOClQIhAKOi9ZIWcBixxfsMgbZzm7zOmmAkGCp6mQxI1h6MaVwF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":438592},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"9b4f2b16016208dcfc43cc82c832a64fdcf5d1de","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.5.0_1777316017327_0.279155848500261","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@geolonia/geonicdb-sdk","version":"0.6.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.6.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"502e7f98fb37929073d2ffdba206132c1c5f7dd3","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.6.0.tgz","fileCount":10,"integrity":"sha512-VVpKgYheVguatbfn+zP20QyshSmsXl4JrXMoWWRu3ylaDte/ZZ6cLcSLpy1/enzYle/3qRUiEnd2V6JN11ezew==","signatures":[{"sig":"MEUCIQCf5MWa+OrTBpk4RbWNQyyhyO8jbWBn4FJuEQEtroy3yQIgcvHOsWvtdKPwjnFWgrXp77VT/7o6tBRlUjg6xDWV+8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":480129},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"4579f142097f7cb0f33aa39ccd630beb6f082574","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.6.0_1777615339502_0.8614473645928344","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@geolonia/geonicdb-sdk","version":"0.7.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.7.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"09e4653a26edc51a55edc7c0d5e08e2f83231f52","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.7.0.tgz","fileCount":10,"integrity":"sha512-dxYIP9JSnKvsp479pcaSdDWiV3YF2xLWovAydwOxwgeDXSlhpTYGlKFBmKsCXJnf8E6Z3jpv76z/1X1jsbEF0w==","signatures":[{"sig":"MEQCIG8xCb4K22c/mm/r5YT/1Y43xfdRG8ue55ybPlPQ9hoBAiBjqPYWX0QDkiyA9TrbfzwrR2Wx0BWV2MOvRXWG/ghenw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":479940},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"f885299201e03003a2206c68b39be16f29029a0c","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.7.0_1777655235230_0.7274628179240739","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@geolonia/geonicdb-sdk","version":"0.7.1","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.7.1","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"0ac7ec06565e3b901c1d55c558bc672bef1edeb4","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.7.1.tgz","fileCount":10,"integrity":"sha512-VuU86xbz68pAPKb4yjCi62vhUc6ieGqZPT3yQ528IMkd+ixdfE7pPQJPZ7sYKJrOOtnzfjii2AVNX3NWaqVtYQ==","signatures":[{"sig":"MEUCIFERMpobywOCYLkn3mF0CLEwOf7+L9lUif9OPFy9S6CDAiEAijXEvEeLSxY1bwWRUL2ncF13cAWtuL35Ppjv/vjeyR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":481024},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"8aae2a50010ec760c7cae5b937fab71a830fdcfc","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.7.1_1777705082445_0.3136250019618838","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@geolonia/geonicdb-sdk","version":"0.8.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.8.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"834951cc02ddba0bd72cf61d70b2ae5db2beba7e","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.8.0.tgz","fileCount":10,"integrity":"sha512-/qWh6QrulB7iThcfXTXv2G65Lw6Rk5n/SpqY/AYQDJsboxnOI2oA4m9OOTcHArA+GJjllya7HXxRKkA7JdYwrw==","signatures":[{"sig":"MEUCIChQs9BQHmpMdzFlOeitpugXCZcxou6xSGe3SAaYN6HzAiEAoTzqwTzMH+ROznrbDICjp/4lJxYSPf0etUTTotgdh0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":486550},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"31b87e94ec3a6679418d3b5899260003f361fe30","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.11.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.8.0_1777987618775_0.05541582725555383","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@geolonia/geonicdb-sdk","version":"0.9.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.9.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"9e9b156325ffc0d3c00a432471d5e48c56e434f1","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.9.0.tgz","fileCount":10,"integrity":"sha512-sI5rFo/+DsHILJa6UjTXcodvA+pwjhbABK1aWKHNVrIIKoN0FAsr/NBByfZZH2LRghmmbhXjircPxKTs10dt3Q==","signatures":[{"sig":"MEYCIQCT34IeiCPgAtnQN+FIt6K1Jco4/35QfnW4broz8ZN5QQIhAMenMYaR/fY3SfR3w34PKjEp1dEPD3BjlkZyA1ZJgJlx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544106},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"112642f732f5aa865fd52b40bb4954489cacae28","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.13.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.9.0_1781056383205_0.8740002888611618","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@geolonia/geonicdb-sdk","version":"0.10.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.10.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"7e3783ae5efdd02d6886d5d7bb0a338295ae1a41","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.10.0.tgz","fileCount":10,"integrity":"sha512-E9A9czGDxwrNBeQQBLXr0khBN2p1xZWvNtqeivL4oDHnr6Ts4WaFnjjl3NAYqh8GonBjVfpuqJKtAxx7KHWBNQ==","signatures":[{"sig":"MEQCIC3e1Il8nRoeHUcaOdJ9yr/orG7UKexV4fTfEk0a5K6+AiBVMAeylUA7RuXZId0z/5FtrIlAEy1UQCdcQo0w0PvT1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":637006},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"df617a0ed2d856f3832eedd00d3a7473a34b89f7","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.13.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.10.0_1781343285049_0.7535768857432905","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@geolonia/geonicdb-sdk","version":"0.10.1","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.10.1","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"ad37a3c0840f22e8c47a7c54e2a4da3749f699a3","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.10.1.tgz","fileCount":10,"integrity":"sha512-gIR4mxln7XzK3Jcvl8w+JCfgy0vqb8BzYIdP2wyjzEwxK1Hbv852dL8vWeM2XCcUIpiFJQv66P4HGMv/wqoA4Q==","signatures":[{"sig":"MEQCIAD0R6Ypc6bHm67G5JtxpOfEd/LyYueeCciekP2gWcLDAiB7cKr0Bue1EvhfFSfYJAEVzFCmlPv5l0fKom955vvlxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":655864},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"cd535ec44907dfce2f3b02b3c7f6f80a87af5faf","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.13.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.10.1_1781571273680_0.5556331114600896","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@geolonia/geonicdb-sdk","version":"0.11.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.11.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"32fa28cef3cca6449a6a2fb3c9aed709115f6a79","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.11.0.tgz","fileCount":10,"integrity":"sha512-SUATx6j12UC0lQblAo/Tt9ZHUOyIgI1CeFdbPZ3Jx7cLzfBzO+AODHnXTHEXNq/DMNXocvaOV7UufS450k5YWw==","signatures":[{"sig":"MEYCIQCIO69hiTG9LgbJ+HMGmimqaUgWZVJCdffkGSZ/33TVnwIhANfl8tN8WRlLuvxJO0jJHcnIY9pamajtlramLQ0+FZTO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":664276},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"57db823bf7d3185cec1fdf13ded5af7d967baa0a","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.13.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.11.0_1781664364367_0.6326811400402814","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@geolonia/geonicdb-sdk","version":"0.11.1","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.11.1","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"85c599b173de8d9774aadd1d8668e1cce6d9c581","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.11.1.tgz","fileCount":10,"integrity":"sha512-QlZDcpxIR0q4NZtnfHuAjLeVPLUunXLT/mwZtjA4CzW1HXPblG4qHrTD/RGRNAKN5PelGWalCqIVmBysw1dRHw==","signatures":[{"sig":"MEQCIA/Xcqm54JyvPvzJ+jSQO+VXRJS0liY+xF1CAApOmjwvAiAgvVuAuAawECLTAr/yyILZkNJWkCMUm/fzSwEww+3lEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":665364},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}}},"gitHead":"819629e2b16c9780c891fe9c9aff927be132bcf2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.13.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.11.1_1782266865803_0.43236331081345725","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@geolonia/geonicdb-sdk","version":"0.12.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.12.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"b98db640c417c41d163d191818b41c2586c518d4","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.12.0.tgz","fileCount":20,"integrity":"sha512-xq0yJl+CORFBqqrcVKFQ86MpERElY0GfqEv6W1U7ut3OCMRXKw6dgftm9ZbRyx3VumqIGapDE677DVMdd+cx1A==","signatures":[{"sig":"MEUCIQCagERyEwKK0nHV0ZZ1AgZvbrULCK4sNQdHVJL9J3m6OgIgJsMzhfVTPZKZp/uAXoaJCDRpOyPn8JX7rMsehgyx0z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764919},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"f00e43cba1746607b99202869363ab4719ded1f9","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.13.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.12.0_1782458032985_0.9879085733443509","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@geolonia/geonicdb-sdk","version":"0.13.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.13.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"7675edaacef863dfd6b6a350a94b7caf1ae779f6","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.13.0.tgz","fileCount":20,"integrity":"sha512-/4wHlsidD7BHSs/W/B300M0ebnqoluEewaYUrzoMLp7uraj9tIe5Xx4t8nsk8K9YLmKBTSx1RDzzmIDPEY72Fg==","signatures":[{"sig":"MEUCIQDH0poBj+h2XEMRlMGFGVSobZ/sGnvswGXUMoJcqhHh5gIgWzHvXakBG9jNN8TvwyUE/1vLoLPqRHws/Eum5jK/Pj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":886153},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"430acf7a2c29e974ab818ca5af5f89a30fda2532","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.13.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.13.0_1782804410772_0.27104225282803296","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@geolonia/geonicdb-sdk","version":"0.14.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.14.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"359e5154532d151e3c4e9542104edea2eea5d4d5","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.14.0.tgz","fileCount":20,"integrity":"sha512-f3Unw9g+gDkZb+7WClBpT5sFns18bVSVS2OHLa70g+6C7IOSLyfE2gzYhNlE3LlrMTJ/x5m0Ne67EqDzqZQCWg==","signatures":[{"sig":"MEYCIQCJW/Yg3+xlw2z81gTshONRhHDIin8Mlii3V+uFFWZHwAIhALUwfXbA2PCvQdbTzuggcoforfNm90lAMXSGJEnFPaUe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":889211},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"be339b804a824a1f1a739bd270cc873e364c6ece","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.16.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.14.0_1783159266825_0.00906797649435176","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@geolonia/geonicdb-sdk","version":"0.15.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.15.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"2aa60bb6238381f5c2b91d3416a0265774733eba","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.15.0.tgz","fileCount":20,"integrity":"sha512-2TKf6gmeBfaQel3J6AkrFg67CjQOzXTialwxnKynYr8FVmMyw76l5ZpzeVwlyAwECXdc0DRi9772NdtHlM0xLg==","signatures":[{"sig":"MEQCIHJ25cod3pCR/J4U8OLQf3Cj4IAvWzp19SXUXVO3cjKGAiBNKwV8Zqi+o3TesHLQlm4DH7FJS7YPFWjflVoQcF261Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":911812},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"1c13a5b1b5ae71f89e921ebcd7b09046111a5a27","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.16.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.15.0_1785454875835_0.5362351116633775","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@geolonia/geonicdb-sdk","version":"0.16.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.16.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"0c822ac8d5bcb61b0d728f96379491fc5d749164","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.16.0.tgz","fileCount":20,"integrity":"sha512-oNOZe2e9YdPH6EwSS3igIWwzx2eP1/nfuGxZdgqur2sFaUI9Tqkh0PfpmyuxPPFUAhT8KF4gGV6rI15i4vY0OQ==","signatures":[{"sig":"MEQCIGgGSb8/p5ukXlkOKDSr6Ideo+Oba22DDaVoMgaYcJzdAiB0IM8kSsWMvvWuzXUq0+tdYqLUGmz6fOJjPFsS82ckeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":918863},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"a266c38678faee353ecf71170e6a87466b96222b","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.16.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.16.0_1785803810767_0.004569626753865741","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@geolonia/geonicdb-sdk","version":"0.17.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.17.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"d45114cad69b69ec7e8cf2dafaed47e80b17af81","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.17.0.tgz","fileCount":20,"integrity":"sha512-tNYi4QNbIKuIkgimIAOuSS58Fuovhe1GGx7O1eVjcPb39EwmWdPJCLgd2jyQ5BvziBUKXQP1rBxmsMhezh+W1Q==","signatures":[{"sig":"MEYCIQD9lwcfK40oIPOF4q6D2abRvjWSVzpikhX2hpWLjP4ELQIhAPK8RxIVRSoQRLj/oB5y4mrRP9zX7Ukt7F+3fht1HkGt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":950884},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"975613e409b681c22ba88f24160669647e7ac209","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.17.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.17.0_1786932651498_0.13733483794701717","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@geolonia/geonicdb-sdk","version":"0.18.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.18.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"90f92e30916dc4c9bcb8833158af48b690c5c998","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.18.0.tgz","fileCount":20,"integrity":"sha512-dbC98MGK7Ob92917793DmXjqp/zn0B8EupE0yIARrgOpB/F2kMzGJ438J8rfEhQezOd0N8tHlGKx2dklELEb9w==","signatures":[{"sig":"MEYCIQDCCTw+nTjgovRwcEZhzymZmaJlQrrEi5arBkNfUzRG/wIhAKartwPaW5Lm7tjp6omjA/YyTEwK05N8veY9TZ87fxza","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":970138},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"c7839f62a2037e6f1f712f32d728916ba66aa86a","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.17.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.18.0_1787897342360_0.6873078199988498","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"@geolonia/geonicdb-sdk","version":"0.18.1","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.18.1","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"9fbbcc250c33d18e9a705c67cf9b2a4e6d9b354d","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.18.1.tgz","fileCount":20,"integrity":"sha512-uwjvJ4brL/Z+l7EWh7ktpE6IAlLk3TGgmFt1wwV5fNf5+V16qYuAF7uYazXMiG9n4PbSlEobzR3RFGbUbMo49Q==","signatures":[{"sig":"MEUCIEko5AKZet/ysfYsvv0AH1kx52ShWNxX3Hxxb1+1UTsZAiEAsMXNAOUeCwb+gib1wT2b2NXpOTMklBPCoSZcGdQKBSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":970138},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"bfc6c3e5097e3c35beb28a73c1b1926a08cfc32d","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.17.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.18.1_1787915778751_0.3225087973564489","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@geolonia/geonicdb-sdk","version":"0.19.0","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.19.0","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"14c5fdf9e129d55de0cf3ed39c349166bfb97e13","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.19.0.tgz","fileCount":20,"integrity":"sha512-NZyUBGnQp0KaTnNJ8HoipNxyTrIKfUtiRbWnkDIAQ+tA9uHtnGMFjD/dud0WNPf5vTgqG++AJ4+N2Fqlkmlu2g==","signatures":[{"sig":"MEQCID+zU17i0BbNzOjclmmHXZIu0eDQWMx5bXTScYktsZ9mAiBBUJaIoyKC2ci/0MvkOYB7dlrWhzr/N8rp6L16NE2chA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1045478},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"8d942905ba49c63de8a7dfba258a9061667afa75","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.19.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0 || ^5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.19.0_1788744522987_0.907772667073071","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"@geolonia/geonicdb-sdk","version":"0.19.1","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.19.1","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"dacdc8cb4f22f34b58d707d73791faf785d99c44","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.19.1.tgz","fileCount":20,"integrity":"sha512-Weu9/kzC10pzWh32iwWVNrmHnoTGkg4Z1k3bxvMFDlhIpAZcYNq1JVBy65OilMknzBJ3PXUxx1Lu1HbiMC3QSw==","signatures":[{"sig":"MEQCIAGBCaOFebL/mbC9OD2fbrCbIJRP7ynHTsgSch6BwU/DAiAc0bZt9qjUiD6tndDOndROV9PTrWYjHIjY4caWMnXj5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1045478},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"8310925a920a42350f06d63577c68d488ad46bf7","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.19.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0 || ^5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.19.1_1788815940107_0.2395913955812745","host":"s3://npm-registry-packages-npm-production"}},"0.19.2":{"name":"@geolonia/geonicdb-sdk","version":"0.19.2","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.19.2","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"051ca62272530a83b759736e6f19b31f0f0ee703","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.19.2.tgz","fileCount":20,"integrity":"sha512-9ppTV53y1HTpJ5aOlskgNETIptIq5c4sfK0eVqqaOgsIdHozH8Kj327OwqK3sEEQsO1ZMoLeiUIju1x77l8kDQ==","signatures":[{"sig":"MEUCIQDoo8UhP7IhUl7hcNP/ia+YHcm0LxkNA3MLbhIbJz/w4AIgeyw4qAK+zTsYJkLAsHhDIk13RC5ykvTBNbQzUyrNjx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1045478},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"08d25b0e1a52e2093dc145e7511f9188855ea75c","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.19.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0 || ^5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.19.2_1788834957601_0.7327888737901902","host":"s3://npm-registry-packages-npm-production"}},"0.19.3":{"name":"@geolonia/geonicdb-sdk","version":"0.19.3","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"license":"MIT","_id":"@geolonia/geonicdb-sdk@0.19.3","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"homepage":"https://github.com/geolonia/geonicdb#sdk","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"adcf22891d57715658293b5a1fc964ff59f2b31b","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.19.3.tgz","fileCount":20,"integrity":"sha512-DZnZKUO9hXbSOXyU9ykU7plz24OZiwuvodrWlXaMv6dDD7nmFsmtfRyV1+7iSHT4ieJZS9K/W+09wGeFvLxzsw==","signatures":[{"sig":"MEYCIQDL9I4Zgpcq6/+WAgQDThKPPzG79du3ccPfNDPThqdo7gIhAPlWlv1T6dCDJzeMbseZiSfeM1Dvu9k/ReoHO54vpwcS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1146340},"main":"geonicdb.cjs","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"f7b55e352c5ef49df1c0af96515d39fa42a0c2dc","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.19.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0 || ^5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/geonicdb-sdk_0.19.3_1788917622386_0.6546401177387697","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"_id":"@geolonia/geonicdb-sdk@0.20.0","bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"dist":{"shasum":"284ed00bcba38e7a6375f2f4a2d4803851c19e92","tarball":"https://registry.npmjs.org/@geolonia/geonicdb-sdk/-/geonicdb-sdk-0.20.0.tgz","fileCount":20,"integrity":"sha512-6eOf/z9c+rQvNXFq0x9LTLtAnSteEWTXDh29lLBzagHVrUjrjWK+5qVGV8ps4l3/QnrEW71RyPZFW+xFlymz2Q==","signatures":[{"sig":"MEUCIQDxkuCa5iRmrkjoZwnyNQaecjTqrtW8b/FC+DXY6uUMNgIgdQIDnlT6cpgfNMI0dSXQLmyusKrofXE1/y3N6HiQQpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCIFZ6nrIJABnGPn1exvOJ2Mr+0tFRSTiWvGVxIxl1fCgIhAOH4OhOxvnY9f3rQ1IG2mKrmqWIsWNxxgHudXvqGqFNR"}],"unpackedSize":1149463},"main":"geonicdb.cjs","name":"@geolonia/geonicdb-sdk","types":"geonicdb.d.ts","module":"geonicdb.mjs","browser":"geonicdb.iife.js","exports":{".":{"import":{"types":"./geonicdb.d.ts","default":"./geonicdb.mjs"},"require":{"types":"./geonicdb.d.ts","default":"./geonicdb.cjs"}},"./react":{"import":{"types":"./react/index.d.ts","default":"./react/index.mjs"},"require":{"types":"./react/index.d.ts","default":"./react/index.cjs"}},"./ngsi-v2":{"import":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.mjs"},"require":{"types":"./ngsi-v2/index.d.ts","default":"./ngsi-v2/index.cjs"}}},"gitHead":"d1672f26e2de7e21bd1c8daf2dadd551bf9fc4df","license":"MIT","version":"0.20.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:67eed757-648e-4b3e-9a2f-368904529495"}},"homepage":"https://github.com/geolonia/geonicdb#sdk","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"_npmVersion":"11.19.0","description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","directories":{},"maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18 || ^19","@geolonia/embed":"^1.0.0 || ^5.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"@geolonia/embed":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/geonicdb-sdk_0.20.0_1790543924617_0.2956046805931629"}}},"time":{"created":"2026-04-09T06:17:12.308Z","modified":"2026-09-27T21:18:44.982Z","0.1.0":"2026-04-09T06:17:12.588Z","0.1.1":"2026-04-09T12:16:44.548Z","0.2.0":"2026-04-14T06:19:44.027Z","0.2.1":"2026-04-14T07:58:20.303Z","0.3.0":"2026-04-24T08:05:12.019Z","0.4.0":"2026-04-27T08:22:27.948Z","0.5.0":"2026-04-27T18:53:37.463Z","0.6.0":"2026-05-01T06:02:19.696Z","0.7.0":"2026-05-01T17:07:15.391Z","0.7.1":"2026-05-02T06:58:02.595Z","0.8.0":"2026-05-05T13:26:58.930Z","0.9.0":"2026-06-10T01:53:03.370Z","0.10.0":"2026-06-13T09:34:45.212Z","0.10.1":"2026-06-16T00:54:33.924Z","0.11.0":"2026-06-17T02:46:04.550Z","0.11.1":"2026-06-24T02:07:45.974Z","0.12.0":"2026-06-26T07:13:53.177Z","0.13.0":"2026-06-30T07:26:50.926Z","0.14.0":"2026-07-04T10:01:06.987Z","0.15.0":"2026-07-30T23:41:16.014Z","0.16.0":"2026-08-04T00:36:51.107Z","0.17.0":"2026-08-17T02:10:51.652Z","0.18.0":"2026-08-28T06:09:02.567Z","0.18.1":"2026-08-28T11:16:18.934Z","0.19.0":"2026-09-07T01:28:43.153Z","0.19.1":"2026-09-07T21:19:00.271Z","0.19.2":"2026-09-08T02:35:57.726Z","0.19.3":"2026-09-09T01:33:42.535Z","0.20.0":"2026-09-27T21:18:44.730Z"},"bugs":{"url":"https://github.com/geolonia/geonicdb/issues"},"license":"MIT","homepage":"https://github.com/geolonia/geonicdb#sdk","keywords":["geonicdb","ngsi-ld","ngsiv2","context-broker","fiware","iot","smart-city"],"repository":{"url":"git+https://github.com/geolonia/geonicdb.git","type":"git","directory":"src/sdk"},"description":"GeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js","maintainers":[{"name":"miya0001","email":"hatatatehaze@gmail.com"},{"name":"naogify","email":"n.globe.us@gmail.com"},{"name":"halsk_geolonia","email":"hal@geolonia.com"},{"name":"satsuki-higuchi","email":"piguchi@geolonia.com"},{"name":"dkastl","email":"daniel.kastl@gmail.com"},{"name":"bougan1160","email":"yasuaki.kawakami@geolonia.com"}],"readme":"# @geolonia/geonicdb-sdk\n\nGeonicDB JavaScript SDK — NGSI-LD Context Broker client for browser and Node.js.\n\n> **Server-side reference**: most responses carry a\n> `Link: </llms.txt>; rel=\"describedby\"` header pointing at\n> `https://<your-broker>/llms.txt` — a single Markdown document covering the API\n> surface, the auth flow, the entity data model, and a **Troubleshooting**\n> section for symptoms whose cause is not what the error text suggests. NGSI-LD\n> paginated list responses are the exception: their `Link` header carries only\n> `rel=\"next\"`/`rel=\"prev\"`, not the discovery link. Read `/llms.txt` directly\n> alongside this README when a request fails for a reason the SDK cannot\n> explain on its own.\n\n## Installation\n\n```bash\nnpm install @geolonia/geonicdb-sdk\n```\n\n## Quick Start\n\n### Node.js / TypeScript\n\n```typescript\nimport GeonicDB from '@geolonia/geonicdb-sdk';\n\nconst db = new GeonicDB({\n  apiKey: 'your-api-key',\n  tenant: 'your-tenant',\n  baseUrl: 'https://your-geonicdb.example.com',\n});\n\n// Query entities\nconst rooms = await db.getEntities({ type: 'Room' });\nconsole.log(rooms);\n\n// Create entity\nawait db.createEntity({\n  id: 'urn:ngsi-ld:Room:001',\n  type: 'Room',\n  temperature: { type: 'Property', value: 23.5 },\n});\n```\n\n### TypeScript\n\nThe SDK ships type definitions (`geonicdb.d.ts`) in the published package. Named imports of error classes and types resolve cleanly even under strict tsconfig settings (`strict`, `verbatimModuleSyntax`, etc.):\n\n```typescript\nimport GeonicDB, {\n  AuthorizationError,\n  AuthenticationError,\n  type EntityEvent,\n  type RefreshedCredentials,\n} from '@geolonia/geonicdb-sdk';\n\ntry {\n  await db.deleteEntity(entityId);\n} catch (err) {\n  if (err instanceof AuthorizationError) {\n    // Type-safe branch on XACML denial.\n  }\n}\n```\n\nSee **Error Handling** below for the full list of exported error classes.\n\n### Browser (script tag)\n\n```html\n<script src=\"https://unpkg.com/@geolonia/geonicdb-sdk/geonicdb.iife.js\"></script>\n<script>\n  var db = new GeonicDB({\n    apiKey: 'your-api-key',\n    tenant: 'your-tenant',\n    baseUrl: 'https://your-geonicdb.example.com',\n  });\n  db.getEntities({ type: 'Room' }).then(console.log);\n</script>\n```\n\n## Authentication\n\n### API Key (DPoP + Proof of Work)\n\n```typescript\nconst db = new GeonicDB({\n  apiKey: 'your-api-key',\n  tenant: 'your-tenant',\n  baseUrl: 'https://your-geonicdb.example.com',\n});\n// Authentication is automatic — DPoP key pair generation,\n// PoW solving, and token exchange happen transparently.\n```\n\n### Bearer JWT (Email/Password Login)\n\n```typescript\nconst db = new GeonicDB({\n  tenant: 'your-tenant',\n  baseUrl: 'https://your-geonicdb.example.com',\n});\n\nawait db.login('user@example.com', 'password');\n// Token refresh is automatic via refresh token.\n```\n\nSessions are **DPoP sender-constrained automatically** (RFC 9449). After\n`POST /auth/login` succeeds, the SDK transparently exchanges the Bearer\nsession for a DPoP-bound one, generating a non-extractable ECDSA P-256 key\npair via Web Crypto and binding the access / refresh tokens to it. A token\nleaked from storage (e.g. localStorage XSS) therefore cannot be replayed\nfrom another origin. There is no DPoP option to set — you never deal with\nDPoP directly.\n\n```typescript\nconst result = await db.login('user@example.com', 'password');\n// result.tokenType === 'DPoP' when Web Crypto is available.\n// Subsequent requests use `Authorization: DPoP <token>` + per-request proof.\n// The bind step and the RFC 9449 §8 `use_dpop_nonce` handshake are internal.\n```\n\nOn runtimes without Web Crypto (`subtle.generateKey`, e.g. a non-HTTPS\ncontext), the session cannot be sender-constrained: the SDK silently keeps\nthe plain Bearer session and **login still succeeds** (`tokenType === 'Bearer'`).\n\n#### First-login forced password change (#1532)\n\nWhen an administrator issues a **temporary password** — either at creation\n(`POST /admin/users` with `passwordResetRequired: true`) or afterwards\n(`POST /admin/users/{userId}/reset-password`) — the user must set a new password\non first login. Logging in with only the temporary password throws\n`PasswordResetRequiredError`; supply `newPassword` to set the new password and\nreceive tokens in the same call (no re-login needed):\n\n```typescript\nimport { PasswordResetRequiredError, TemporaryPasswordExpiredError } from '@geolonia/geonicdb-sdk';\n\ntry {\n  await db.login('user@example.com', temporaryPassword);\n} catch (err) {\n  if (err instanceof PasswordResetRequiredError) {\n    // Prompt the user for a new password, then complete login in one call:\n    await db.login('user@example.com', temporaryPassword, { newPassword });\n  } else if (err instanceof TemporaryPasswordExpiredError) {\n    // Ask an administrator to re-issue the temporary password.\n  }\n}\n```\n\n#### Keeping the user signed in across page reloads\n\nBy default a session is held in memory only — reloading the page loses it\nand forces the user to log in again. Pass `{ rememberSession: true }` to keep\nthe user signed in:\n\n```typescript\nconst db = new GeonicDB({ baseUrl, tenant });\nawait db.login('user@example.com', 'password', { rememberSession: true });\n\n// On the next page load:\nconst db2 = new GeonicDB({ baseUrl, tenant });\nif (await db2.restoreSession()) {\n  // Session was rehydrated — boot the app.\n} else {\n  // No persisted session; show the login form.\n}\n\n// On logout, the persisted entry is cleared automatically.\nawait db2.logout();\n```\n\nUnder the hood, the session is persisted to **IndexedDB**. The structured\nclone algorithm stores the DPoP `CryptoKey` as-is, preserving\n`extractable: false`: the key survives reloads, but JavaScript on the page\nstill cannot read it back as JWK / PEM. Tokens leaked from any other storage\nremain unusable without this origin's IndexedDB.\n\nNotes:\n\n- The IndexedDB store is keyed by `tenant`, so multi-tenant apps in the\n  same origin keep separate sessions.\n- Persistence is best-effort: a failed IDB write (or no Web Crypto, so the\n  session stays Bearer) does not break login — it just means no rehydrate.\n- Opt-in by design: shared-device flows should leave `rememberSession` off.\n- iOS Safari may evict IndexedDB under ITP after 7 days of no user\n  interaction with the origin.\n\n### External Token\n\n```typescript\ndb.setCredentials({\n  token: 'your-jwt-token',\n  tokenType: 'Bearer',\n  expiresIn: 3600,\n  refreshToken: 'your-refresh-token',\n});\n```\n\n### Anonymous Mode (public viewers)\n\nFor public-facing apps such as GeoJSON viewers or BI dashboards that should\nserve **unregistered visitors** without forcing a login, pass `anonymous: true`\nto skip token acquisition entirely:\n\n```typescript\nconst db = new GeonicDB({\n  baseUrl: 'https://your-geonicdb.example.com',\n  tenant: 'public',\n  anonymous: true, // no Authorization header, no /auth/nonce, no /oauth/token\n});\n\n// The server treats this as `role: 'anonymous'` and the XACML policy engine\n// decides whether to permit. Tenant admins must register a custom policy that\n// permits the anonymous role for the resources to expose — the default\n// ANONYMOUS_DEFAULT_POLICY denies everything.\nconst entities = await db.getEntities({ type: 'GeoJSON' });\n```\n\n- `apiKey` and `anonymous: true` cannot be combined (constructor throws).\n- A **presented but invalid** Bearer / DPoP token returns HTTP 401 from the server (#2794), not an anonymous 403 — so refresh can fire. True anonymous mode sends **no** `Authorization` header.\n- `db.login()` upgrades the SDK out of anonymous mode (Bearer JWT).\n- `db.setCredentials({ token, tokenType: 'Bearer', ... })` upgrades from\n  anonymous. **`tokenType: 'DPoP'` is rejected** for anonymous-built instances\n  (no DPoP key pair is generated for them) — use a non-anonymous SDK instance\n  for DPoP credentials.\n- `db.logout()` reverts back to anonymous (`db.isAnonymous() === true` again).\n- WebSocket `db.connect()` is **not supported** in anonymous mode — call\n  `login()` / `setCredentials()` first.\n\n## Entity CRUD\n\n> **Automatic `@context` (#1583 / #1599 / #2069)**: the SDK sends requests as\n> `application/ld+json`, which per ETSI GS CIM 009 clause 6.3.5 requires an inline JSON-LD\n> `@context` in the body. When your body omits `@context`, the SDK injects the NGSI-LD core\n> context automatically; a `@context` you provide is always preserved (never overwritten).\n>\n> Injection covers the **whole NGSI-LD API (`/ngsi-ld/v1/**`)** — the same surface where the\n> broker enforces clause 6.3.5 (`/ngsi-ld/v1/jsonldContexts` is excluded, since its body *is*\n> the context document). **Batch array bodies (`/entityOperations/*`) get it per element**,\n> because each element is its own JSON-LD document (clause 5.6.7.3) and an element without a\n> `@context` comes back as a per-entity `BadRequestData` inside a **`207 Multi-Status`**.\n> Arrays of ID strings (`entityOperations/delete`, clause 5.6.10.3) are left alone, as are\n> non-NGSI-LD endpoints (auth / admin / rules), whose `.strict()` schemas reject unknown keys.\n>\n> **Do not attach a `Link` header to writes (#1924)**: ETSI GS CIM 009 clause 6.3.5\n> restricts where `@context` may come from based on `Content-Type` and forbids\n> mixing the two. Since the SDK always sends `application/ld+json`, adding a\n> JSON-LD `Link` header to a `POST` / `PATCH` / `PUT` via the `request()` /\n> `requestRaw()` escape hatch returns `400 BadRequestData`. Put the `@context`\n> in the body for writes; the `Link` header remains the channel for reads.\n\n```typescript\n// Create\nawait db.createEntity({ id: 'urn:ngsi-ld:Room:001', type: 'Room', ... });\n\n// Read\nconst entity = await db.getEntity('urn:ngsi-ld:Room:001');\n\n// Query (NGSI-LD §5.7.2 のクエリパラメータを網羅)\nconst entities = await db.getEntities({\n  type: 'Room',\n  limit: 10,\n  // scopeQ: '/OpenData;/OpenData/#',     // exact + descendants\n  // georel: 'near;maxDistance==1000',\n  // geometry: 'Point',\n  // coordinates: '139.7,35.6',\n  // attrs: 'name,location',\n  // pick: 'name', omit: 'createdAt',\n  // lang: 'ja',\n  // orderBy: 'modifiedAt', orderDirection: 'desc',\n  // count: true,\n});\n\n// Update\nawait db.updateEntity('urn:ngsi-ld:Room:001', { temperature: { type: 'Property', value: 25 } });\n\n// Delete\nawait db.deleteEntity('urn:ngsi-ld:Room:001');\n```\n\n## Types / Attributes Discovery\n\n```typescript\n// getTypes()/getAttributes() は EntityTypeList/AttributeList オブジェクトを返す。\n// 型名・属性名の一覧は typeList / attributeList から取得する。\nconst { typeList } = await db.getTypes();          // string[]\nconst roomType = await db.getType('Room');\nconst { attributeList } = await db.getAttributes(); // string[]\nconst tempAttr = await db.getAttribute('temperature');\n```\n\n## Temporal API\n\n```typescript\nconst history = await db.getTemporalEntities({\n  type: 'Room',\n  timerel: 'between',\n  timeAt: '2026-01-01T00:00:00Z',\n  endTimeAt: '2026-01-02T00:00:00Z',\n});\n\nconst entityHistory = await db.getTemporalEntity('urn:ngsi-ld:Room:001');\n```\n\n## Batch Operations\n\n```typescript\n// Create multiple entities\nawait db.batchCreate([\n  { id: 'urn:ngsi-ld:Room:001', type: 'Room', ... },\n  { id: 'urn:ngsi-ld:Room:002', type: 'Room', ... },\n]);\n\n// Upsert, Update, Delete\nawait db.batchUpsert(entities);\nawait db.batchUpdate(entities);\nawait db.batchDelete(['urn:ngsi-ld:Room:001', 'urn:ngsi-ld:Room:002']);\n```\n\n## Generic API Request\n\n```typescript\n// Access any API endpoint with automatic authentication\nconst result = await db.request('GET', '/ngsi-ld/v1/subscriptions');\n```\n\n## WebSocket Event Streaming\n\n> **NGSI-LD changes only (#2284).** A WebSocket connection streams entity changes made through the\n> NGSI-LD API. Writes performed with the NGSIv2 client (`@geolonia/geonicdb-sdk/ngsi-v2`) or any\n> other `/v2/*` caller are **not** delivered — entities are protocol-isolated and the socket is an\n> NGSI-LD reader. Use HTTP subscriptions (`/v2/subscriptions`) for NGSIv2 changes.\n\n> **Dedicated deployments (#2867):** REST resolves the database from the custom domain (`Host`), but\n> WebSocket uses a shared execute-api endpoint. The SDK calls `GET /sdk/v1/streaming` on your\n> `baseUrl`, reads the optional `deployment` hostname from the response, and appends\n> `?deployment=<hostname>` on `$connect`. Raw `WebSocket` clients must set the same query parameter\n> manually when connecting to a non-default deployment.\n\n```typescript\ndb.subscribe({ entityTypes: ['Room'] });\n\ndb.on('entityUpdated', (event) => {\n  // event.entity contains the complete NGSI-LD entity ({ id, type, ...attributes })\n  console.log(`${event.entityId} updated:`, event.entity);\n});\n\ndb.on('error', (err) => console.error(err));\n\nawait db.connect();\n```\n\n### Events\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `entityCreated` | `EntityEvent` | Entity was created |\n| `entityUpdated` | `EntityEvent` | Entity was updated |\n| `entityDeleted` | `EntityEvent` | Entity was deleted |\n\n`EntityEvent.entityType` is `string | string[]` (#2477): a single type is a string; multi-type entities use a string array (same rule as NGSI-LD GET / Table 5.2.4).\n\n| `open` | — | WebSocket connection opened |\n| `connected` | — | WebSocket ready |\n| `subscribed` | — | `subscribe()` filter is now active on the server. Applying a subscription is asynchronous (the server resolves the supplied `@context` to expand `entityTypes` for matching), so events published before this fires are not guaranteed to be delivered |\n| `close` | `{ code, reason }` | WebSocket closed |\n| `disconnected` | — | Unexpected disconnect |\n| `reconnecting` | `{ attempt, delay }` | Auto-reconnect starting |\n| `error` | `Error` | Error occurred |\n| `tokenRefresh` | `RefreshedCredentials` | Bearer token was refreshed |\n| `cacheHit` | `CacheEvent` | Request served from in-memory cache (304 received) |\n| `cacheMiss` | `CacheEvent` | Cache miss — fresh response fetched from origin |\n| `cacheInvalidated` | `CacheEvent` | Cache entry dropped via explicit `clearCache()`. WebSocket entity events do **not** trigger cache invalidation — see \"Client-side Cache & Polling\" |\n\n## Web Push Notifications (#3014 / #3060 / #3092)\n\nGeonicDB supports browser Web Push (VAPID) as a third NGSI subscription notification protocol\n(alongside HTTP webhook and MQTT — see [SUBSCRIPTIONS.md](https://github.com/geolonia/geonicdb/blob/main/docs/SUBSCRIPTIONS.md#web-push-3014)\nfor the full API contract). Prefer the idempotent helper that covers both the browser Push API\nand the GeonicDB subscription create:\n\n```javascript\nimport GeonicDB, { QuotaExceededError } from '@geolonia/geonicdb-sdk';\n\nawait navigator.serviceWorker.register('/sw.js');\n\ntry {\n  const { subscriptionId, created } = await db.registerWebPushSubscription({\n    protocol: 'ngsiv2', // required — no default ('ngsi-ld' also supported)\n    subject: { entities: [{ type: 'Sensor' }], condition: { attrs: ['value'] } },\n    ttl: 86400,\n  });\n} catch (err) {\n  if (err instanceof QuotaExceededError) {\n    // 507 — subscription quota grace ceiling; retry later\n  }\n  throw err;\n}\n```\n\nCalling `registerWebPushSubscription()` again reuses the id stored in `localStorage` when the\nbroker still has that subscription (`GET` → 200) and does not `POST`. After a VAPID key rotation\nthat changes the push endpoint, it `PATCH`es `notification.webpush` / `endpoint.webpush` instead\nof creating a new subscription. The default key is `baseUrl` + `tenant` + `protocol` only — **not**\nlogin principal. On a shared browser / kiosk (or when registering multiple distinct filters),\npass `storageKey` that still includes that scope plus app-managed suffixes (e.g. append\n`:${userId}:${filterId}` to `buildWebPushSubscriptionStorageKey(...)`); otherwise a later user\ncan reuse the earlier subscription id and the new subject is ignored (#3097). Concurrent calls\nwith the same key share one in-flight Promise. HTTP 507 (`QuotaExceededError`) requires deleting\nunused subscriptions or changing the plan — waiting alone will not clear the quota.\n\nLow-level helpers remain available: `subscribeWebPush()` + `toNgsiv2WebPushNotification()` /\n`toNgsiLdWebPushEndpoint()` + `request('POST', ...)`.\n\n`sw.js` receives the raw NGSI notification body in the `push` event:\n\n```javascript\n// sw.js\nself.addEventListener('push', (event) => {\n  const payload = event.data.json();\n  event.waitUntil(self.registration.showNotification('GeonicDB', { body: JSON.stringify(payload) }));\n});\n```\n\nCalling `subscribeWebPush()` again on an already-subscribed registration returns the existing\n`PushSubscription` as-is if it still matches the current VAPID public key. If the deployment\nrotated its VAPID keys, the stale subscription is unsubscribed and replaced with a fresh one\nsigned by the new key. Call `await db.unsubscribeWebPush()` to unsubscribe the browser side.\n\n| Method | Returns | Description |\n|--------|---------|--------------|\n| `getWebPushVapidKey()` | `Promise<string>` | Fetch the deployment's VAPID public key (unauthenticated discovery endpoint) |\n| `subscribeWebPush(options?)` | `Promise<PushSubscription>` | Subscribe via `PushManager.subscribe()`. Browser-only — does not create a GeonicDB subscription |\n| `registerWebPushSubscription(options)` | `Promise<{ subscriptionId, created }>` | Idempotent browser + GeonicDB registration (#3092). `protocol` required. 507 → `QuotaExceededError` |\n| `unsubscribeWebPush(registration?)` | `Promise<boolean>` | Unsubscribe; `false` if there was no active subscription |\n| `buildWebPushSubscriptionStorageKey(baseUrl, tenant, protocol)` | `string` | Default `localStorage` key used for idempotency |\n\n## Client-side Cache & Polling\n\nThe SDK includes an in-memory cache that handles `ETag` / `If-None-Match`\nnegotiation transparently. Subsequent reads of an unchanged resource are\nserved as `304 Not Modified` — the SDK presents them to your code as a normal\n`200` response with the cached body.\n\n```typescript\n// First call: fresh fetch, ETag stored\nconst rooms1 = await db.getEntities({ type: 'Room' });\n\n// Second call: server returns 304, SDK returns the cached body\nconst rooms2 = await db.getEntities({ type: 'Room' });\n\n// Concurrent calls to the same path are deduplicated:\nconst [a, b, c] = await Promise.all([\n  db.getEntities({ type: 'Room' }),\n  db.getEntities({ type: 'Room' }),\n  db.getEntities({ type: 'Room' }),\n]);  // → only one HTTP request hits the network\n```\n\nCache is enabled by default; pass `cache: false` to opt out.\n\n### Persistence across reloads\n\nIn the browser the cache (validators + bodies) is **persisted to IndexedDB** so\nit survives a page reload. A reloaded SPA can therefore send `If-None-Match` on\nits very first request and get a `304` instead of always cold-starting into a\nfull `200` body.\n\n```typescript\n// First load: fetched in full and saved to IndexedDB.\nawait db.getEntities({ type: 'AedLocation' });\n\n// After a page reload, restore the session — the cache rehydrates with it:\nif (await db.restoreSession()) {\n  await db.getEntities({ type: 'AedLocation' });\n  // → If-None-Match sent; unchanged data comes back as 304 (near-zero bytes).\n}\n```\n\n- Persistence is tied to `rememberSession`: it is active only for sessions that\n  themselves survive a reload (`login({ rememberSession: true })` →\n  `restoreSession()`), sharing the exact lifecycle of the persisted DPoP session.\n- Entries are namespaced by tenant **and authenticated principal**, so a\n  different subject sharing the same origin/tenant (another tab, another SDK\n  instance, a later login) never reads entries written by a previous principal.\n  They are dropped on every credential change (`login()`, `setCredentials()`,\n  `logout()`) and only read back by the same principal that wrote them, via\n  `restoreSession()`.\n- Capacity / LRU follow `cacheMaxEntries`, the same as the in-memory cache.\n- In non-browser runtimes (Node, CLI) without IndexedDB the cache stays\n  in-memory only — fully backward compatible.\n- `clearCache()` flushes the persisted store as well as the in-memory cache.\n\n### Cache lifetime under WebSocket activity\n\nWebSocket entity events (`entityCreated` / `entityUpdated` / `entityDeleted`)\ndo **not** automatically invalidate the SDK cache. This is intentional:\n\n- Data endpoints respond with `Cache-Control: private, no-cache`, so every\n  cached read already revalidates with the origin via `If-None-Match`.\n- If the entity actually changed, the server's freshly computed `ETag` will\n  not match the client's `If-None-Match` → server returns `200` with the\n  fresh body → SDK replaces the cache entry.\n- If the WebSocket event was noisy / unrelated to a particular cached query\n  (or the data hasn't propagated to the read replica yet), the server returns\n  `304 Not Modified` → SDK serves the cached body with no body bytes\n  transferred.\n\nDeleting cache entries on every WebSocket event would force the next read to\nmiss the cache and fetch a full `200` body — defeating the bandwidth-saving\n`304` path. To force a full reset (e.g. on auth change), call `clearCache()`\nexplicitly.\n\n### Polling\n\n`db.poll(params, options)` repeats `getEntities()` at an interval and reports\nback whether the data actually changed. Internally it leverages the cache's\nETag negotiation, so unchanged ticks transfer almost no bytes.\n\n```typescript\nconst handle = db.poll({ type: 'Room' }, {\n  interval: 5000,\n  onData: (rooms) => render(rooms),\n  onNoChange: () => {},  // server returned 304\n  onError: (err) => console.error(err),\n});\n\n// Stop later\nhandle.stop();\n```\n\n## API Reference\n\n### Constructor\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `new GeonicDB(options?)` | `GeonicDBOptions` | `GeonicDB` | Create a new SDK instance |\n\n#### `GeonicDBOptions`\n\n| Property | Type | Required | Description |\n|----------|------|----------|-------------|\n| `apiKey` | `string` | No | API key (or use `data-api-key` attribute on script tag) |\n| `tenant` | `string` | No | Tenant name (or use `data-tenant` attribute on script tag) |\n| `baseUrl` | `string` | No | API base URL (auto-detected from script `src` if omitted) |\n| `wsEndpoint` | `string` | No | WebSocket endpoint URL (auto-detected from `baseUrl` if omitted) |\n| `debug` | `boolean` | No | Enable debug logging to console (default: `false`) |\n| `cache` | `boolean` | No | Enable in-memory cache with ETag/304 + request dedup (default: `true`) |\n| `cacheMaxEntries` | `number` | No | LRU cache capacity when `cache` is enabled (default: `1000`) |\n| `anonymous` | `boolean` | No | Anonymous mode — skip token acquisition and send no `Authorization` header. Cannot be combined with `apiKey`. See [Anonymous Mode](#anonymous-mode-public-viewers) (default: `false`) |\n\n### Authentication\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `login(email, password, options?)` | `string, string, LoginOptions?` | `Promise<LoginResponse>` | Login with email and password. Upgrades the SDK out of anonymous mode. The session is DPoP sender-constrained (RFC 9449) **automatically and transparently** — no option to set; silently falls back to Bearer when Web Crypto is unavailable. Pass `{ rememberSession: true }` to keep the user signed in across page reloads (persisted to IndexedDB) |\n| `restoreSession()` | — | `Promise<boolean>` | Rehydrate a session previously persisted via `login({ rememberSession: true })`. Returns `true` if a session was found and loaded, `false` otherwise. Call at app startup before showing the login form |\n| `setCredentials(opts)` | `CredentialsOptions` | `this` | Set credentials externally (e.g. from a login API response). Upgrades the SDK out of anonymous mode when `tokenType: 'Bearer'`. **Throws** when `tokenType: 'DPoP'` is passed to an anonymous-built instance — anonymous instances do not generate a DPoP key pair |\n| `logout()` | — | `void` | Clear all credentials and disconnect WebSocket. Reverts to anonymous mode if `anonymous: true` was set at construction |\n| `isAnonymous()` | — | `boolean` | Whether explicit anonymous mode is active. Returns the explicit mode flag — not derived from credential presence — so a refresh failure that clears `_token` does NOT silently flip this back to `true` |\n\n### Entity CRUD\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `createEntity(entity)` | `Record<string, unknown>` | `Promise<{ created: true }>` | Create a new entity |\n| `getEntity(entityId)` | `string` | `Promise<Record<string, unknown>>` | Get a single entity by ID |\n| `getEntities(params?)` | `GetEntitiesParams` | `Promise<Record<string, unknown>[]>` | Query entities with optional filters |\n| `count(params?)` | `CountEntitiesParams` | `Promise<number>` | Count entities matching the given filters |\n| `updateEntity(entityId, attrs)` | `string, Record<string, unknown>` | `Promise<{ updated: true }>` | Update entity attributes (partial) |\n| `deleteEntity(entityId)` | `string` | `Promise<{ deleted: true }>` | Delete an entity |\n\n#### `GetEntitiesParams`\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `type` | `string` | Entity type filter |\n| `limit` | `number` | Max results |\n| `offset` | `number` | Pagination offset |\n| `q` | `string` | NGSI-LD query expression |\n| `datasetId` | `string` | Multi-attribute instance filter (comma-separated; default instance is `@none`). A single match is returned as one Attribute element (ETSI GS CIM 009 clause 4.5.5.1) |\n| `options` | `string` | NGSI-LD representation options (comma-separated): `sysAttrs` (include `createdAt`/`modifiedAt`), `keyValues`, `concise`, `normalized`. Under `keyValues`, multi-attributes (instances with a `datasetId`) are returned as a `dataset` map **only when more than one instance matches**, the default instance keyed by `@none`. A single matching instance stays a bare value (ETSI GS CIM 009 clause 4.5.4 / 4.5.5.1) |\n| `local` | `boolean` | **#2278.** Limit execution to local scope (ETSI GS CIM 009 clause 5.5.13). `GET /ngsi-ld/v1/entities` requires at least one of `type` / `attrs` (with a non-system attribute) / `q` (with a non-system attribute) / a geoquery / local scope (clause 5.7.2.4). **To fetch everything without a filter, pass `local: true`** — otherwise the broker returns `400 BadRequestData` (too wide query) |\n\n#### `CountEntitiesParams`\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `type` | `string` | Entity type filter |\n| `q` | `string` | NGSI-LD query expression |\n| `local` | `boolean` | **#2278.** Limit execution to local scope (ETSI GS CIM 009 clause 5.5.13). `GET /ngsi-ld/v1/entities` requires at least one of `type` / `attrs` (with a non-system attribute) / `q` (with a non-system attribute) / a geoquery / local scope (clause 5.7.2.4). **To fetch everything without a filter, pass `local: true`** — otherwise the broker returns `400 BadRequestData` (too wide query) |\n\n### Types / Attributes Discovery\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `getTypes()` | — | `Promise<EntityTypeList>` | List all entity types (`{ id, type, typeList }`) |\n| `getType(typeName)` | `string` | `Promise<Record<string, unknown>>` | Get details for a specific entity type |\n| `getAttributes()` | — | `Promise<AttributeList>` | List all attributes (`{ id, type, attributeList }`) |\n| `getAttribute(attrName)` | `string` | `Promise<Record<string, unknown>>` | Get details for a specific attribute |\n\n### Temporal API\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `getTemporalEntities(params?)` | `GetTemporalEntitiesParams` | `Promise<Record<string, unknown>[]>` | Query temporal entities |\n| `getTemporalEntity(entityId)` | `string` | `Promise<Record<string, unknown>>` | Get temporal representation of a single entity |\n\n> Temporal reads answer with **`206 Partial Content`** and a `Content-Range` header when `lastN` is present or the default instance cap actually truncated the history (#2343, ETSI GS CIM 009 clause 6.3.10). Untruncated reads are `200`. Empty results and aggregated representations (`aggrMethods`) remain `200` even when `lastN` is specified, because `Content-Range` cannot be derived. Both methods are unaffected — the SDK checks `res.ok`, which accepts any 2xx. Use `requestRaw()` when you need to read the `Content-Range` value itself.\n\n#### `GetTemporalEntitiesParams`\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `type` | `string` | Entity type filter |\n| `id` | `string` | Entity ID |\n| `idPattern` | `string` | Entity ID pattern (regex) |\n| `attrs` | `string` | Attribute names to retrieve |\n| `q` | `string` | NGSI-LD query expression |\n| `timeproperty` | `string` | Time property (`observedAt`, `createdAt`, `modifiedAt`, `deletedAt`; default `observedAt`) |\n| `timeAt` | `string` | Start time (ISO 8601) |\n| `endTimeAt` | `string` | End time (ISO 8601) |\n| `timerel` | `string` | Temporal relation (`before`, `after`, `between`) |\n| `limit` | `number` | Max results |\n| `offset` | `number` | Pagination offset |\n| `options` | `string` | NGSI-LD temporal representation options (comma-separated): `temporalValues`, `simplified` (alias), `aggregatedValues` (ETSI clause 4.5.19 shape — one member per aggregation method, each period an array of `[value, start, end]`; `aggrMethods` is required when `aggregatedValues` is specified via `options` in this SDK, and the server applies the same requirement to `format=aggregatedValues`), `sysAttrs` (ETSI 6.3.11 — adds `createdAt` / `modifiedAt` / `expiresAt` to each instance of the normalized representation where known; accepted and ignored for the simplified and aggregated representations). `options` is deprecated in favour of `format` (ETSI 6.3.12); when both are present, **`format` takes precedence** |\n| `format` | `'temporalValues' \\| 'aggregatedValues' \\| 'simplified'` | NGSI-LD temporal representation format (ETSI 6.3.12): `temporalValues` or `aggregatedValues` (`simplified` is accepted as an alias of `temporalValues`). Unknown values are rejected by the server with `400 InvalidRequest`. **Takes precedence over `options`** when both are present |\n| `aggrMethods` | `string` | Aggregation methods (comma-separated): `totalCount`, `distinctCount`, `sum`, `avg`, `min`, `max`, `stddev`, `sumsq`. Required when `aggregatedValues` is requested via `format` or `options` |\n| `aggrPeriodDuration` | `string` | Aggregation period as an ISO 8601 duration (e.g. `PT1H`). Optional (ETSI Table 5.2.21-1 cardinality 0..1) — when omitted, the whole time range of the query is aggregated as a single period (`PT0S`) |\n\n### Batch Operations\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `batchCreate(entities)` | `Record<string, unknown>[]` | `Promise<Record<string, unknown>>` | Create multiple entities |\n| `batchUpsert(entities)` | `Record<string, unknown>[]` | `Promise<string[] \\| Record<string, unknown>>` | Upsert multiple entities. Per ETSI clause 5.6.8.5 the server returns **201** with a `string[]` of the **created** entity IDs when anything was created, **204** (mapped to `{}`) when every entity already existed, or **207** with `{ created, updated, errors }` on partial failure (#1742) |\n| `batchUpdate(entities)` | `Record<string, unknown>[]` | `Promise<Record<string, unknown>>` | Update multiple entities |\n| `batchDelete(entityIds)` | `string[]` | `Promise<Record<string, unknown>>` | Delete multiple entities by ID |\n\n### Generic Request\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `request(method, path, body?)` | `string, string, unknown` | `Promise<unknown>` | Authenticated request with automatic JSON parsing |\n| `requestRaw(method, path, body?)` | `string, string, unknown` | `Promise<Response>` | Authenticated request returning raw `Response` (for accessing headers) |\n\n### Cache & Polling\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `poll(params, options)` | `GetEntitiesParams \\| undefined, PollOptions<T>` | `PollHandle` | ETag-based polling — fires `onData` only when the data actually changes. `options` is **required** (`onData` must be specified to receive data) |\n| `clearCache()` | — | `void` | Drop all cached responses |\n\n#### `PollOptions<T>`\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `interval` | `number` | Polling interval in milliseconds (default: `5000`) |\n| `onData` | `(data: T) => void` | Called whenever the server returns fresh data (200) |\n| `onNoChange` | `() => void` | Called when the server returns 304 Not Modified |\n| `onError` | `(err: Error) => void` | Called on any fetch/parse failure |\n\n#### `PollHandle`\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `stop()` | — | `void` | Stop the polling timer |\n\n#### `CacheEvent`\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `key` | `string` | Cache key (`METHOD:path`) |\n| `path` | `string` | Request path |\n\n### WebSocket\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `connect()` | — | `Promise<void>` | Establish WebSocket connection |\n| `reconnect()` | — | `Promise<void>` | Force-reconnect (preserves subscriptions) |\n| `disconnect()` | — | `void` | Disconnect WebSocket |\n| `isConnected()` | — | `boolean` | Check if WebSocket is currently open |\n| `subscribe(options?)` | `SubscribeOptions` | `void` | Subscribe to entity events |\n\n#### `SubscribeOptions`\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `entityTypes` | `string[]` | Entity types to subscribe to |\n| `idPattern` | `string` | Entity ID regex pattern |\n| `scopeQ` | `string` | NGSI-LD scope query expression (#1132) |\n| `@context` | `string \\| string[]` | **#2026.** JSON-LD `@context` used to render delivered events — entity type and attribute names are compacted against it (ETSI GS CIM 009 clause 5.5.7) and echoed back in each event's `@context`. URL string(s) only. **#2055.** It also governs `entityTypes` matching — the `@context` is resolved once at `subscribe` time to expand `entityTypes` into the canonical stored form, so custom terms change which entities match. `idPattern` alone matches the stored form verbatim |\n\n### Event Handling\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `on(event, listener)` | `string, Function` | `this` | Register an event listener |\n| `off(event, listener)` | `string, Function` | `this` | Remove an event listener |\n\n### Web Push\n\n| Method | Parameters | Returns | Description |\n|--------|-----------|---------|-------------|\n| `getWebPushVapidKey()` | — | `Promise<string>` | Fetch the deployment's VAPID public key |\n| `subscribeWebPush(options?)` | `WebPushSubscribeOptions` | `Promise<PushSubscription>` | Subscribe via `PushManager.subscribe()` (browser only; no GeonicDB registration) |\n| `registerWebPushSubscription(options)` | `RegisterWebPushSubscriptionOptions` | `Promise<RegisterWebPushSubscriptionResult>` | Idempotent browser + GeonicDB registration (#3092). `protocol` required |\n| `unsubscribeWebPush(registration?)` | `ServiceWorkerRegistration` | `Promise<boolean>` | Unsubscribe from Web Push |\n| `buildWebPushSubscriptionStorageKey(...)` | `baseUrl, tenant, protocol` | `string` | Default localStorage key for idempotency |\n\n#### `WebPushSubscribeOptions`\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `applicationServerKey` | `string` | VAPID public key (base64url). Auto-fetched via `getWebPushVapidKey()` when omitted |\n| `serviceWorkerRegistration` | `ServiceWorkerRegistration` | Registration to subscribe through. Defaults to `navigator.serviceWorker.ready` |\n\n## Error Handling\n\nAll async methods throw typed errors extending `GeonicDBError`. Use `instanceof` to distinguish error types.\n\n```typescript\nimport {\n  GeonicDBError,\n  AuthenticationError,\n  PasswordResetRequiredError,\n  TemporaryPasswordExpiredError,\n  NotFoundError,\n} from '@geolonia/geonicdb-sdk';\n\ntry {\n  await db.getEntity('urn:ngsi-ld:Room:404');\n} catch (err) {\n  if (err instanceof PasswordResetRequiredError) {\n    // 409 — collect a new password and call login(..., { newPassword })\n  } else if (err instanceof TemporaryPasswordExpiredError) {\n    // 403 — temporary password expired; ask an administrator to re-issue it\n  } else if (err instanceof AuthenticationError) {\n    // Other auth failures — re-login needed (typically 401; for HTTP-derived errors see err.statusCode)\n  } else if (err instanceof NotFoundError) {\n    // 404 — entity not found\n  } else if (err instanceof GeonicDBError) {\n    console.error(err.message, err.statusCode);\n  } else {\n    console.error(err);\n  }\n}\n```\n\n| Class | Status | Description |\n|-------|--------|-------------|\n| `GeonicDBError` | — | Base class (`statusCode` property) |\n| `AuthenticationError` | Real HTTP status (default 401) | Invalid credentials, expired token, or an HTTP failure on an auth endpoint. HTTP-derived errors carry the server status |\n| `PasswordResetRequiredError` | 409 | First login with a temporary password — set a new password (`AuthenticationError` subclass) |\n| `TemporaryPasswordExpiredError` | 403 | Temporary password expired (`AuthenticationError` subclass) |\n| `AuthorizationError` | 403 | Insufficient permissions |\n| `NotFoundError` | 404 | Resource not found |\n| `ConflictError` | 409 | Entity already exists |\n| `ValidationError` | 422 | Bad request payload |\n| `RateLimitError` | 429 | Rate limited (`retryAfter` property) |\n| `QuotaExceededError` | 507 | Storage / subscription quota exceeded (beyond plan grace ceiling) |\n| `NetworkError` | — | Fetch failure, DNS error, timeout |\n\n### Which request failed (`request`)\n\n`login()` makes up to two requests, the second one conditionally: `POST /auth/login`,\nfollowed by `POST /auth/dpop-bind` (RFC 9449 session sender-constraining) **only when\nthat login succeeded and a DPoP key pair exists**. Where Web Crypto (`crypto.subtle`)\nis unavailable no key pair is generated, so the bind is skipped and login succeeds with\na plain Bearer token.\n\nBoth requests surface the server's `detail` / `description` verbatim as an\n`AuthenticationError` (or one of its subclasses, `PasswordResetRequiredError` /\n`TemporaryPasswordExpiredError`). When the server answers both with the same body, the\nerror alone cannot tell a rejected credential from a rejected bind.\n\nErrors from those two requests carry a `request` property (`{ method, path }`), and\ntheir message is prefixed with `[METHOD path]`.\n\n```ts\ntry {\n  await db.login(email, password);\n} catch (err) {\n  if (err instanceof AuthenticationError) {\n    if (err.request?.path === '/auth/dpop-bind') {\n      // The credentials were accepted; the DPoP bind is what failed.\n    }\n    console.error(err.message); // \"[POST /auth/dpop-bind] Access denied: no applicable policy\"\n  } else {\n    console.error(err);\n  }\n}\n```\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `request` | `RequestContext \\| undefined` | `{ method, path }`. `path` is the endpoint path without the base URL — if the base URL itself carries a path prefix, the request path on the wire includes that prefix too. |\n\nOnly `POST /auth/login` (`AuthenticationError`, `PasswordResetRequiredError`,\n`TemporaryPasswordExpiredError`) and `POST /auth/dpop-bind` set it. Other auth failures\nalready name their step in the message (`Token refresh failed: <status>` and friends),\nso they leave `request` as `undefined` — but `statusCode` still reflects the real HTTP\nstatus. When the bind never runs — no Web Crypto, or a\nfailed `/auth/login` — there is no `/auth/dpop-bind` error to attribute in the first\nplace.\n\n> `PasswordResetRequiredError` / `TemporaryPasswordExpiredError` are control-flow\n> errors whose `message` an app may render as a prompt. With the prefix that text reads\n> `[POST /auth/login] Password reset required: …`, so branch on `err.request` and supply\n> your own wording rather than displaying the message verbatim.\n\n## React Hooks (`@geolonia/geonicdb-sdk/react`)\n\nOptional React integration, shipped as a separate subpath so the core SDK stays\nframework-agnostic. Requires React 18 or 19 (declared as an **optional peer\ndependency** — core consumers are unaffected).\n\n```tsx\nimport GeonicDB from '@geolonia/geonicdb-sdk';\nimport { useLdEntities, useTemporalData, GeonicDbMap } from '@geolonia/geonicdb-sdk/react';\n\nconst db = new GeonicDB({ baseUrl, tenant });\n\nfunction Rooms() {\n  const { entities, loading, error, refetch } = useLdEntities(db, { type: 'Room', limit: 100 });\n  if (loading) return <p>Loading…</p>;\n  if (error) return <p>{error.message}</p>;\n  return <GeonicDbMap entities={entities} apiKey=\"YOUR-GEOLONIA-KEY\" />;\n}\n```\n\n| Export | Type | Description |\n|--------|------|-------------|\n| `useLdEntities(client, options?)` | hook | NGSI-LD エンティティ取得。`{ entities, loading, error, refetch }` を返す。`options`: `type` / `limit` / `attrs` / `q` / `scopeQ` |\n| `useTemporalData(client, options)` | hook | Temporal API 取得。`{ data, loading, error, refetch }` を返す。`options.id` 指定時は単一エンティティ、`options.enabled === false` で取得スキップ |\n| `GeonicDbMap` | component | Geolonia 地図にエンティティをマーカー描画。`@geolonia/embed`（optional peer）を動的 import |\n\n両 hook は in-flight リクエストを世代管理しており、`options` 変更やアンマウント時に古いレスポンスが新しい結果を上書きしない。`GeonicDbMap` のポップアップは `entity.id` / `entity.type` を HTML エスケープして描画する。\n\n## NGSIv2 Client (`@geolonia/geonicdb-sdk/ngsi-v2`)\n\nNGSIv2 (`/v2/entities`) を叩く軽量クライアント。NGSI-LD を使うコア SDK とは独立した\nサブパスで、NGSIv2 のみを使う利用者向け。\n\n```ts\nimport { createNgsiV2Client } from '@geolonia/geonicdb-sdk/ngsi-v2';\n\nconst client = createNgsiV2Client({ baseUrl: 'https://geonicdb.example.com', apiKey: 'KEY', service: 'mytenant' });\nconst rooms = await client.getEntities({ type: 'Room', limit: 20 });\n```\n\n| Method | Description |\n|--------|-------------|\n| `createNgsiV2Client(config)` | `NgsiV2Client` を生成。`config`: `baseUrl`（必須）/ `apiKey` / `service` |\n| `getEntities(options?)` | エンティティ一覧（`type` / `q` / `limit` / `offset` / `attrs` / `options` / `georel` / `geometry` / `coords`） |\n| `getEntity(id, options?)` | 単一エンティティ取得 |\n| `createEntity(entity)` | エンティティ作成 |\n| `updateEntityAttributes(id, attrs)` | 属性の部分更新 |\n| `deleteEntity(id)` | エンティティ削除 |\n\n### Geospatial query (`georel` / `geometry` / `coords`)\n\nNGSIv2 の地理空間クエリに対応。`georel`・`geometry`・`coords` は 3 つ揃えて指定する（部分指定は Orion 側で `400`）。\n\n| Option | Type | Description |\n|--------|------|-------------|\n| `georel` | `string` | 地理的関係。複合形も可（例: `near;maxDistance:1000`, `coveredBy`） |\n| `geometry` | `'point' \\| 'line' \\| 'polygon' \\| 'box'` | ジオメトリ種別 |\n| `coords` | `string` | WGS84 座標。複数点はセミコロン区切り（例: `35.6,139.7`） |\n\n```ts\n// 指定座標から半径 1km 以内\nconst nearby = await client.getEntities({\n  type: 'PublicFacility',\n  georel: 'near;maxDistance:1000',\n  geometry: 'point',\n  coords: '35.6,139.7',\n});\n\n// ポリゴン内に含まれるエンティティ\nconst inArea = await client.getEntities({\n  georel: 'coveredBy',\n  geometry: 'polygon',\n  coords: '0,0;1,0;1,1;0,1;0,0',\n});\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}