@vepler/sdk 2.167.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +408 -402
- package/dist/commonjs/address-search/__tests__/controller.test.d.ts +2 -0
- package/dist/commonjs/address-search/__tests__/controller.test.d.ts.map +1 -0
- package/dist/commonjs/address-search/__tests__/controller.test.js +329 -0
- package/dist/commonjs/address-search/__tests__/controller.test.js.map +1 -0
- package/dist/commonjs/address-search/__tests__/default-transports.test.d.ts +2 -0
- package/dist/commonjs/address-search/__tests__/default-transports.test.d.ts.map +1 -0
- package/dist/commonjs/address-search/__tests__/default-transports.test.js +161 -0
- package/dist/commonjs/address-search/__tests__/default-transports.test.js.map +1 -0
- package/dist/commonjs/address-search/__tests__/narrow.test.d.ts +2 -0
- package/dist/commonjs/address-search/__tests__/narrow.test.d.ts.map +1 -0
- package/dist/commonjs/address-search/__tests__/narrow.test.js +63 -0
- package/dist/commonjs/address-search/__tests__/narrow.test.js.map +1 -0
- package/dist/commonjs/address-search/controller.d.ts +14 -0
- package/dist/commonjs/address-search/controller.d.ts.map +1 -0
- package/dist/commonjs/address-search/controller.js +190 -0
- package/dist/commonjs/address-search/controller.js.map +1 -0
- package/dist/commonjs/address-search/default-transports.d.ts +52 -0
- package/dist/commonjs/address-search/default-transports.d.ts.map +1 -0
- package/dist/commonjs/address-search/default-transports.js +134 -0
- package/dist/commonjs/address-search/default-transports.js.map +1 -0
- package/dist/commonjs/address-search/errors.d.ts +5 -0
- package/dist/commonjs/address-search/errors.d.ts.map +1 -0
- package/dist/commonjs/address-search/errors.js +12 -0
- package/dist/commonjs/address-search/errors.js.map +1 -0
- package/dist/commonjs/address-search/index.d.ts +8 -0
- package/dist/commonjs/address-search/index.d.ts.map +1 -0
- package/dist/commonjs/address-search/index.js +43 -0
- package/dist/commonjs/address-search/index.js.map +1 -0
- package/dist/commonjs/address-search/lru-cache.d.ts +13 -0
- package/dist/commonjs/address-search/lru-cache.d.ts.map +1 -0
- package/dist/commonjs/address-search/lru-cache.js +50 -0
- package/dist/commonjs/address-search/lru-cache.js.map +1 -0
- package/dist/commonjs/address-search/narrow.d.ts +21 -0
- package/dist/commonjs/address-search/narrow.d.ts.map +1 -0
- package/dist/commonjs/address-search/narrow.js +49 -0
- package/dist/commonjs/address-search/narrow.js.map +1 -0
- package/dist/commonjs/address-search/types.d.ts +125 -0
- package/dist/commonjs/address-search/types.d.ts.map +1 -0
- package/dist/commonjs/address-search/types.js +9 -0
- package/dist/commonjs/address-search/types.js.map +1 -0
- package/dist/commonjs/address-search.d.ts +3 -0
- package/dist/commonjs/address-search.d.ts.map +1 -0
- package/dist/commonjs/address-search.js +19 -0
- package/dist/commonjs/address-search.js.map +1 -0
- package/dist/commonjs/funcs/avmPredictPropertyValue.d.ts +1 -1
- package/dist/commonjs/funcs/avmPredictPropertyValue.d.ts.map +1 -1
- package/dist/commonjs/funcs/avmPredictPropertyValue.js +1 -1
- package/dist/commonjs/funcs/avmPredictPropertyValue.js.map +1 -1
- package/dist/commonjs/funcs/propertyGetProperties.js +1 -0
- package/dist/commonjs/funcs/propertyGetProperties.js.map +1 -1
- package/dist/commonjs/funcs/propertyGetPropertiesByLocation.js +1 -0
- package/dist/commonjs/funcs/propertyGetPropertiesByLocation.js.map +1 -1
- package/dist/commonjs/funcs/propertyGetPropertiesBySource.js +1 -0
- package/dist/commonjs/funcs/propertyGetPropertiesBySource.js.map +1 -1
- package/dist/commonjs/funcs/searchSearchRetrieve.d.ts +23 -0
- package/dist/commonjs/funcs/searchSearchRetrieve.d.ts.map +1 -0
- package/dist/commonjs/funcs/searchSearchRetrieve.js +128 -0
- package/dist/commonjs/funcs/searchSearchRetrieve.js.map +1 -0
- package/dist/commonjs/funcs/searchSearchSuggest.d.ts +3 -1
- package/dist/commonjs/funcs/searchSearchSuggest.d.ts.map +1 -1
- package/dist/commonjs/funcs/searchSearchSuggest.js +5 -1
- package/dist/commonjs/funcs/searchSearchSuggest.js.map +1 -1
- package/dist/commonjs/lib/config.d.ts +4 -4
- package/dist/commonjs/lib/config.js +4 -4
- package/dist/commonjs/lib/config.js.map +1 -1
- package/dist/commonjs/sdk/models/errors/index.d.ts +1 -0
- package/dist/commonjs/sdk/models/errors/index.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/errors/index.js +1 -0
- package/dist/commonjs/sdk/models/errors/index.js.map +1 -1
- package/dist/commonjs/sdk/models/errors/predictpropertyvalue.d.ts +65 -0
- package/dist/commonjs/sdk/models/errors/predictpropertyvalue.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/errors/predictpropertyvalue.js +57 -1
- package/dist/commonjs/sdk/models/errors/predictpropertyvalue.js.map +1 -1
- package/dist/commonjs/sdk/models/errors/searchretrieve.d.ts +201 -0
- package/dist/commonjs/sdk/models/errors/searchretrieve.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/errors/searchretrieve.js +213 -0
- package/dist/commonjs/sdk/models/errors/searchretrieve.js.map +1 -0
- package/dist/commonjs/sdk/models/operations/getcensuswholelevel.d.ts +1 -0
- package/dist/commonjs/sdk/models/operations/getcensuswholelevel.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/getcensuswholelevel.js +1 -0
- package/dist/commonjs/sdk/models/operations/getcensuswholelevel.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/getlistingbyid.d.ts +18 -15
- package/dist/commonjs/sdk/models/operations/getlistingbyid.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/getlistingbyid.js +15 -15
- package/dist/commonjs/sdk/models/operations/getlistingbyid.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/getlistingbysource.d.ts +18 -15
- package/dist/commonjs/sdk/models/operations/getlistingbysource.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/getlistingbysource.js +15 -15
- package/dist/commonjs/sdk/models/operations/getlistingbysource.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/getlistingsbylocation.d.ts +18 -15
- package/dist/commonjs/sdk/models/operations/getlistingsbylocation.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/getlistingsbylocation.js +16 -15
- package/dist/commonjs/sdk/models/operations/getlistingsbylocation.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/getproperties.d.ts +5 -0
- package/dist/commonjs/sdk/models/operations/getproperties.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/getproperties.js +1 -0
- package/dist/commonjs/sdk/models/operations/getproperties.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/getpropertiesbylocation.d.ts +5 -0
- package/dist/commonjs/sdk/models/operations/getpropertiesbylocation.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/getpropertiesbylocation.js +1 -0
- package/dist/commonjs/sdk/models/operations/getpropertiesbylocation.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/getpropertiesbysource.d.ts +5 -0
- package/dist/commonjs/sdk/models/operations/getpropertiesbysource.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/getpropertiesbysource.js +1 -0
- package/dist/commonjs/sdk/models/operations/getpropertiesbysource.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/index.d.ts +1 -0
- package/dist/commonjs/sdk/models/operations/index.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/index.js +1 -0
- package/dist/commonjs/sdk/models/operations/index.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/querylistings.d.ts +18 -15
- package/dist/commonjs/sdk/models/operations/querylistings.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/querylistings.js +17 -16
- package/dist/commonjs/sdk/models/operations/querylistings.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/querylistingsbysource.d.ts +18 -15
- package/dist/commonjs/sdk/models/operations/querylistingsbysource.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/querylistingsbysource.js +16 -15
- package/dist/commonjs/sdk/models/operations/querylistingsbysource.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/resolveaddress.d.ts +16 -3
- package/dist/commonjs/sdk/models/operations/resolveaddress.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/resolveaddress.js +18 -3
- package/dist/commonjs/sdk/models/operations/resolveaddress.js.map +1 -1
- package/dist/commonjs/sdk/models/operations/searchretrieve.d.ts +20 -0
- package/dist/commonjs/sdk/models/operations/searchretrieve.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/operations/searchretrieve.js +55 -0
- package/dist/commonjs/sdk/models/operations/searchretrieve.js.map +1 -0
- package/dist/commonjs/sdk/models/operations/searchsuggest.d.ts +35 -0
- package/dist/commonjs/sdk/models/operations/searchsuggest.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/operations/searchsuggest.js +18 -1
- package/dist/commonjs/sdk/models/operations/searchsuggest.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/addressresolverequest.d.ts +27 -0
- package/dist/commonjs/sdk/models/shared/addressresolverequest.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/addressresolverequest.js +25 -1
- package/dist/commonjs/sdk/models/shared/addressresolverequest.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlisting.d.ts +11 -11
- package/dist/commonjs/sdk/models/shared/advancedlisting.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlisting.js +11 -11
- package/dist/commonjs/sdk/models/shared/advancedlisting.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingaddress.d.ts +3 -3
- package/dist/commonjs/sdk/models/shared/advancedlistingaddress.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingaddress.js +3 -3
- package/dist/commonjs/sdk/models/shared/advancedlistingaddress.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingbuild.d.ts +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingbuild.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingbuild.js +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingbuild.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingenergyrating.d.ts +4 -4
- package/dist/commonjs/sdk/models/shared/advancedlistingenergyrating.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingenergyrating.js +4 -4
- package/dist/commonjs/sdk/models/shared/advancedlistingenergyrating.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingpricing.d.ts +4 -4
- package/dist/commonjs/sdk/models/shared/advancedlistingpricing.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingpricing.js +5 -4
- package/dist/commonjs/sdk/models/shared/advancedlistingpricing.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingroomdetails.d.ts +3 -3
- package/dist/commonjs/sdk/models/shared/advancedlistingroomdetails.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingroomdetails.js +3 -3
- package/dist/commonjs/sdk/models/shared/advancedlistingroomdetails.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingsalehistory.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/advancedlistingsalehistory.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingsalehistory.js +3 -2
- package/dist/commonjs/sdk/models/shared/advancedlistingsalehistory.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingseller.d.ts +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingseller.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingseller.js +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingseller.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingstatushistory.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/advancedlistingstatushistory.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingstatushistory.js +3 -2
- package/dist/commonjs/sdk/models/shared/advancedlistingstatushistory.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingtenure.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/advancedlistingtenure.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/advancedlistingtenure.js +2 -2
- package/dist/commonjs/sdk/models/shared/advancedlistingtenure.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/building.d.ts +41 -17
- package/dist/commonjs/sdk/models/shared/building.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/building.js +35 -18
- package/dist/commonjs/sdk/models/shared/building.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/buildingaddresslink.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/buildingaddresslink.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/buildingaddresslink.js +2 -2
- package/dist/commonjs/sdk/models/shared/buildingaddresslink.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/buildingpart.d.ts +31 -6
- package/dist/commonjs/sdk/models/shared/buildingpart.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/buildingpart.js +23 -7
- package/dist/commonjs/sdk/models/shared/buildingpart.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/censusareaprofilerequest.d.ts +20 -0
- package/dist/commonjs/sdk/models/shared/censusareaprofilerequest.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/censusareaprofilerequest.js +13 -1
- package/dist/commonjs/sdk/models/shared/censusareaprofilerequest.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/censusrolluprequest.d.ts +20 -0
- package/dist/commonjs/sdk/models/shared/censusrolluprequest.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/censusrolluprequest.js +12 -1
- package/dist/commonjs/sdk/models/shared/censusrolluprequest.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/chargeentry.d.ts +6 -6
- package/dist/commonjs/sdk/models/shared/chargeentry.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/chargeentry.js +6 -6
- package/dist/commonjs/sdk/models/shared/chargeentry.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/chargehistory.d.ts +3 -3
- package/dist/commonjs/sdk/models/shared/chargehistory.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/chargehistory.js +4 -3
- package/dist/commonjs/sdk/models/shared/chargehistory.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/conservationassessments.d.ts +7 -7
- package/dist/commonjs/sdk/models/shared/conservationassessments.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/conservationassessments.js +6 -6
- package/dist/commonjs/sdk/models/shared/conservationassessments.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/datasourceref.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/datasourceref.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/datasourceref.js +2 -2
- package/dist/commonjs/sdk/models/shared/datasourceref.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/epcdata.d.ts +134 -134
- package/dist/commonjs/sdk/models/shared/epcdata.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/epcdata.js +145 -134
- package/dist/commonjs/sdk/models/shared/epcdata.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/geocodeprecision.d.ts +17 -0
- package/dist/commonjs/sdk/models/shared/geocodeprecision.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/geocodeprecision.js +51 -0
- package/dist/commonjs/sdk/models/shared/geocodeprecision.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/heritageassessments.d.ts +7 -7
- package/dist/commonjs/sdk/models/shared/heritageassessments.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/heritageassessments.js +6 -6
- package/dist/commonjs/sdk/models/shared/heritageassessments.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/index.d.ts +14 -7
- package/dist/commonjs/sdk/models/shared/index.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/index.js +14 -7
- package/dist/commonjs/sdk/models/shared/index.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/listing.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/listing.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/listing.js +2 -2
- package/dist/commonjs/sdk/models/shared/listing.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/marketstatus.d.ts +6 -6
- package/dist/commonjs/sdk/models/shared/marketstatus.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/marketstatus.js +8 -6
- package/dist/commonjs/sdk/models/shared/marketstatus.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/mortgagecharge.d.ts +38 -0
- package/dist/commonjs/sdk/models/shared/mortgagecharge.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/{extractionmortgagecharge.js → mortgagecharge.js} +11 -11
- package/dist/commonjs/sdk/models/shared/mortgagecharge.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/othercharge.d.ts +23 -0
- package/dist/commonjs/sdk/models/shared/othercharge.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/{extractionothercharge.js → othercharge.js} +6 -6
- package/dist/commonjs/sdk/models/shared/othercharge.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/propertyaddress.d.ts +25 -3
- package/dist/commonjs/sdk/models/shared/propertyaddress.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/propertyaddress.js +15 -3
- package/dist/commonjs/sdk/models/shared/propertyaddress.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/propertybyslugsrequest.d.ts +5 -0
- package/dist/commonjs/sdk/models/shared/propertybyslugsrequest.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/propertybyslugsrequest.js +1 -0
- package/dist/commonjs/sdk/models/shared/propertybyslugsrequest.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/propertydataapi.d.ts +54 -4
- package/dist/commonjs/sdk/models/shared/propertydataapi.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/propertydataapi.js +36 -5
- package/dist/commonjs/sdk/models/shared/propertydataapi.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/propertyqueryrequest.d.ts +5 -0
- package/dist/commonjs/sdk/models/shared/propertyqueryrequest.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/propertyqueryrequest.js +1 -0
- package/dist/commonjs/sdk/models/shared/propertyqueryrequest.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/provenance.d.ts +4 -4
- package/dist/commonjs/sdk/models/shared/provenance.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/provenance.js +4 -4
- package/dist/commonjs/sdk/models/shared/provenance.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/registeredcharges.d.ts +14 -0
- package/dist/commonjs/sdk/models/shared/registeredcharges.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/{extractionproprietor.js → registeredcharges.js} +11 -15
- package/dist/commonjs/sdk/models/shared/registeredcharges.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/salerecord.d.ts +48 -3
- package/dist/commonjs/sdk/models/shared/salerecord.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/salerecord.js +30 -4
- package/dist/commonjs/sdk/models/shared/salerecord.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/searchresponse.d.ts +8 -0
- package/dist/commonjs/sdk/models/shared/searchresponse.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/searchresponse.js +4 -0
- package/dist/commonjs/sdk/models/shared/searchresponse.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/searchretrieveresponse.d.ts +82 -0
- package/dist/commonjs/sdk/models/shared/searchretrieveresponse.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/searchretrieveresponse.js +88 -0
- package/dist/commonjs/sdk/models/shared/searchretrieveresponse.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/site.d.ts +49 -25
- package/dist/commonjs/sdk/models/shared/site.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/site.js +43 -26
- package/dist/commonjs/sdk/models/shared/site.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/siteownership.d.ts +7 -7
- package/dist/commonjs/sdk/models/shared/siteownership.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/siteownership.js +7 -7
- package/dist/commonjs/sdk/models/shared/siteownership.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/siteplanningstats.d.ts +5 -5
- package/dist/commonjs/sdk/models/shared/siteplanningstats.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/siteplanningstats.js +5 -5
- package/dist/commonjs/sdk/models/shared/siteplanningstats.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/sitepropertystats.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/sitepropertystats.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/sitepropertystats.js +2 -2
- package/dist/commonjs/sdk/models/shared/sitepropertystats.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/siteproprietor.d.ts +6 -6
- package/dist/commonjs/sdk/models/shared/siteproprietor.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/siteproprietor.js +6 -6
- package/dist/commonjs/sdk/models/shared/siteproprietor.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/streetmatch.d.ts +106 -0
- package/dist/commonjs/sdk/models/shared/streetmatch.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/streetmatch.js +84 -0
- package/dist/commonjs/sdk/models/shared/streetmatch.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/titlecovenant.d.ts +23 -0
- package/dist/commonjs/sdk/models/shared/titlecovenant.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/{extractionrestriction.js → titlecovenant.js} +6 -6
- package/dist/commonjs/sdk/models/shared/titlecovenant.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/{extractiondocumentsummary.d.ts → titledocumentsummary.d.ts} +9 -9
- package/dist/commonjs/sdk/models/shared/titledocumentsummary.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/{extractiondocumentsummary.js → titledocumentsummary.js} +11 -11
- package/dist/commonjs/sdk/models/shared/titledocumentsummary.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/titleextractionpayload.d.ts +83 -0
- package/dist/commonjs/sdk/models/shared/titleextractionpayload.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/titleextractionpayload.js +103 -0
- package/dist/commonjs/sdk/models/shared/titleextractionpayload.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/titleextractionpollresponse.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/titleextractionpollresponse.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/titleextractionpollresponse.js +2 -2
- package/dist/commonjs/sdk/models/shared/titleextractionpollresponse.js.map +1 -1
- package/dist/{esm/sdk/models/shared/extractionnotice.d.ts → commonjs/sdk/models/shared/titlenotice.d.ts} +13 -4
- package/dist/commonjs/sdk/models/shared/titlenotice.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/{extractionnotice.js → titlenotice.js} +6 -6
- package/dist/commonjs/sdk/models/shared/titlenotice.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/titleproprietor.d.ts +54 -0
- package/dist/commonjs/sdk/models/shared/titleproprietor.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/titleproprietor.js +75 -0
- package/dist/commonjs/sdk/models/shared/titleproprietor.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/titlerestriction.d.ts +23 -0
- package/dist/commonjs/sdk/models/shared/titlerestriction.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/titlerestriction.js +54 -0
- package/dist/commonjs/sdk/models/shared/titlerestriction.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/titleschedulenoticeoflease.d.ts +13 -0
- package/dist/commonjs/sdk/models/shared/titleschedulenoticeoflease.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/titleschedulenoticeoflease.js +50 -0
- package/dist/commonjs/sdk/models/shared/titleschedulenoticeoflease.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/titlesummarycounts.d.ts +15 -0
- package/dist/commonjs/sdk/models/shared/titlesummarycounts.d.ts.map +1 -0
- package/dist/commonjs/sdk/models/shared/titlesummarycounts.js +55 -0
- package/dist/commonjs/sdk/models/shared/titlesummarycounts.js.map +1 -0
- package/dist/commonjs/sdk/models/shared/transaction.d.ts +10 -10
- package/dist/commonjs/sdk/models/shared/transaction.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/transaction.js +11 -10
- package/dist/commonjs/sdk/models/shared/transaction.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/transactionlocation.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/transactionlocation.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/transactionlocation.js +2 -2
- package/dist/commonjs/sdk/models/shared/transactionlocation.js.map +1 -1
- package/dist/commonjs/sdk/models/shared/transactionprice.d.ts +2 -2
- package/dist/commonjs/sdk/models/shared/transactionprice.d.ts.map +1 -1
- package/dist/commonjs/sdk/models/shared/transactionprice.js +2 -2
- package/dist/commonjs/sdk/models/shared/transactionprice.js.map +1 -1
- package/dist/commonjs/sdk/search.d.ts +14 -1
- package/dist/commonjs/sdk/search.d.ts.map +1 -1
- package/dist/commonjs/sdk/search.js +17 -1
- package/dist/commonjs/sdk/search.js.map +1 -1
- package/dist/esm/address-search/__tests__/controller.test.d.ts +2 -0
- package/dist/esm/address-search/__tests__/controller.test.d.ts.map +1 -0
- package/dist/esm/address-search/__tests__/controller.test.js +327 -0
- package/dist/esm/address-search/__tests__/controller.test.js.map +1 -0
- package/dist/esm/address-search/__tests__/default-transports.test.d.ts +2 -0
- package/dist/esm/address-search/__tests__/default-transports.test.d.ts.map +1 -0
- package/dist/esm/address-search/__tests__/default-transports.test.js +159 -0
- package/dist/esm/address-search/__tests__/default-transports.test.js.map +1 -0
- package/dist/esm/address-search/__tests__/narrow.test.d.ts +2 -0
- package/dist/esm/address-search/__tests__/narrow.test.d.ts.map +1 -0
- package/dist/esm/address-search/__tests__/narrow.test.js +61 -0
- package/dist/esm/address-search/__tests__/narrow.test.js.map +1 -0
- package/dist/esm/address-search/controller.d.ts +14 -0
- package/dist/esm/address-search/controller.d.ts.map +1 -0
- package/dist/esm/address-search/controller.js +187 -0
- package/dist/esm/address-search/controller.js.map +1 -0
- package/dist/esm/address-search/default-transports.d.ts +52 -0
- package/dist/esm/address-search/default-transports.d.ts.map +1 -0
- package/dist/esm/address-search/default-transports.js +129 -0
- package/dist/esm/address-search/default-transports.js.map +1 -0
- package/dist/esm/address-search/errors.d.ts +5 -0
- package/dist/esm/address-search/errors.d.ts.map +1 -0
- package/dist/esm/address-search/errors.js +8 -0
- package/dist/esm/address-search/errors.js.map +1 -0
- package/dist/esm/address-search/index.d.ts +8 -0
- package/dist/esm/address-search/index.d.ts.map +1 -0
- package/dist/esm/address-search/index.js +30 -0
- package/dist/esm/address-search/index.js.map +1 -0
- package/dist/esm/address-search/lru-cache.d.ts +13 -0
- package/dist/esm/address-search/lru-cache.d.ts.map +1 -0
- package/dist/esm/address-search/lru-cache.js +46 -0
- package/dist/esm/address-search/lru-cache.js.map +1 -0
- package/dist/esm/address-search/narrow.d.ts +21 -0
- package/dist/esm/address-search/narrow.d.ts.map +1 -0
- package/dist/esm/address-search/narrow.js +43 -0
- package/dist/esm/address-search/narrow.js.map +1 -0
- package/dist/esm/address-search/types.d.ts +125 -0
- package/dist/esm/address-search/types.d.ts.map +1 -0
- package/dist/esm/address-search/types.js +8 -0
- package/dist/esm/address-search/types.js.map +1 -0
- package/dist/esm/address-search.d.ts +3 -0
- package/dist/esm/address-search.d.ts.map +1 -0
- package/dist/esm/address-search.js +6 -0
- package/dist/esm/address-search.js.map +1 -0
- package/dist/esm/funcs/avmPredictPropertyValue.d.ts +1 -1
- package/dist/esm/funcs/avmPredictPropertyValue.d.ts.map +1 -1
- package/dist/esm/funcs/avmPredictPropertyValue.js +1 -1
- package/dist/esm/funcs/avmPredictPropertyValue.js.map +1 -1
- package/dist/esm/funcs/propertyGetProperties.js +1 -0
- package/dist/esm/funcs/propertyGetProperties.js.map +1 -1
- package/dist/esm/funcs/propertyGetPropertiesByLocation.js +1 -0
- package/dist/esm/funcs/propertyGetPropertiesByLocation.js.map +1 -1
- package/dist/esm/funcs/propertyGetPropertiesBySource.js +1 -0
- package/dist/esm/funcs/propertyGetPropertiesBySource.js.map +1 -1
- package/dist/esm/funcs/searchSearchRetrieve.d.ts +23 -0
- package/dist/esm/funcs/searchSearchRetrieve.d.ts.map +1 -0
- package/dist/esm/funcs/searchSearchRetrieve.js +92 -0
- package/dist/esm/funcs/searchSearchRetrieve.js.map +1 -0
- package/dist/esm/funcs/searchSearchSuggest.d.ts +3 -1
- package/dist/esm/funcs/searchSearchSuggest.d.ts.map +1 -1
- package/dist/esm/funcs/searchSearchSuggest.js +5 -1
- package/dist/esm/funcs/searchSearchSuggest.js.map +1 -1
- package/dist/esm/lib/config.d.ts +4 -4
- package/dist/esm/lib/config.js +4 -4
- package/dist/esm/lib/config.js.map +1 -1
- package/dist/esm/sdk/models/errors/index.d.ts +1 -0
- package/dist/esm/sdk/models/errors/index.d.ts.map +1 -1
- package/dist/esm/sdk/models/errors/index.js +1 -0
- package/dist/esm/sdk/models/errors/index.js.map +1 -1
- package/dist/esm/sdk/models/errors/predictpropertyvalue.d.ts +65 -0
- package/dist/esm/sdk/models/errors/predictpropertyvalue.d.ts.map +1 -1
- package/dist/esm/sdk/models/errors/predictpropertyvalue.js +54 -0
- package/dist/esm/sdk/models/errors/predictpropertyvalue.js.map +1 -1
- package/dist/esm/sdk/models/errors/searchretrieve.d.ts +201 -0
- package/dist/esm/sdk/models/errors/searchretrieve.d.ts.map +1 -0
- package/dist/esm/sdk/models/errors/searchretrieve.js +171 -0
- package/dist/esm/sdk/models/errors/searchretrieve.js.map +1 -0
- package/dist/esm/sdk/models/operations/getcensuswholelevel.d.ts +1 -0
- package/dist/esm/sdk/models/operations/getcensuswholelevel.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/getcensuswholelevel.js +1 -0
- package/dist/esm/sdk/models/operations/getcensuswholelevel.js.map +1 -1
- package/dist/esm/sdk/models/operations/getlistingbyid.d.ts +18 -15
- package/dist/esm/sdk/models/operations/getlistingbyid.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/getlistingbyid.js +16 -16
- package/dist/esm/sdk/models/operations/getlistingbyid.js.map +1 -1
- package/dist/esm/sdk/models/operations/getlistingbysource.d.ts +18 -15
- package/dist/esm/sdk/models/operations/getlistingbysource.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/getlistingbysource.js +16 -16
- package/dist/esm/sdk/models/operations/getlistingbysource.js.map +1 -1
- package/dist/esm/sdk/models/operations/getlistingsbylocation.d.ts +18 -15
- package/dist/esm/sdk/models/operations/getlistingsbylocation.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/getlistingsbylocation.js +17 -16
- package/dist/esm/sdk/models/operations/getlistingsbylocation.js.map +1 -1
- package/dist/esm/sdk/models/operations/getproperties.d.ts +5 -0
- package/dist/esm/sdk/models/operations/getproperties.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/getproperties.js +1 -0
- package/dist/esm/sdk/models/operations/getproperties.js.map +1 -1
- package/dist/esm/sdk/models/operations/getpropertiesbylocation.d.ts +5 -0
- package/dist/esm/sdk/models/operations/getpropertiesbylocation.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/getpropertiesbylocation.js +1 -0
- package/dist/esm/sdk/models/operations/getpropertiesbylocation.js.map +1 -1
- package/dist/esm/sdk/models/operations/getpropertiesbysource.d.ts +5 -0
- package/dist/esm/sdk/models/operations/getpropertiesbysource.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/getpropertiesbysource.js +1 -0
- package/dist/esm/sdk/models/operations/getpropertiesbysource.js.map +1 -1
- package/dist/esm/sdk/models/operations/index.d.ts +1 -0
- package/dist/esm/sdk/models/operations/index.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/index.js +1 -0
- package/dist/esm/sdk/models/operations/index.js.map +1 -1
- package/dist/esm/sdk/models/operations/querylistings.d.ts +18 -15
- package/dist/esm/sdk/models/operations/querylistings.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/querylistings.js +18 -17
- package/dist/esm/sdk/models/operations/querylistings.js.map +1 -1
- package/dist/esm/sdk/models/operations/querylistingsbysource.d.ts +18 -15
- package/dist/esm/sdk/models/operations/querylistingsbysource.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/querylistingsbysource.js +17 -16
- package/dist/esm/sdk/models/operations/querylistingsbysource.js.map +1 -1
- package/dist/esm/sdk/models/operations/resolveaddress.d.ts +16 -3
- package/dist/esm/sdk/models/operations/resolveaddress.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/resolveaddress.js +16 -2
- package/dist/esm/sdk/models/operations/resolveaddress.js.map +1 -1
- package/dist/esm/sdk/models/operations/searchretrieve.d.ts +20 -0
- package/dist/esm/sdk/models/operations/searchretrieve.d.ts.map +1 -0
- package/dist/esm/sdk/models/operations/searchretrieve.js +18 -0
- package/dist/esm/sdk/models/operations/searchretrieve.js.map +1 -0
- package/dist/esm/sdk/models/operations/searchsuggest.d.ts +35 -0
- package/dist/esm/sdk/models/operations/searchsuggest.d.ts.map +1 -1
- package/dist/esm/sdk/models/operations/searchsuggest.js +17 -0
- package/dist/esm/sdk/models/operations/searchsuggest.js.map +1 -1
- package/dist/esm/sdk/models/shared/addressresolverequest.d.ts +27 -0
- package/dist/esm/sdk/models/shared/addressresolverequest.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/addressresolverequest.js +23 -0
- package/dist/esm/sdk/models/shared/addressresolverequest.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlisting.d.ts +11 -11
- package/dist/esm/sdk/models/shared/advancedlisting.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlisting.js +11 -11
- package/dist/esm/sdk/models/shared/advancedlisting.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingaddress.d.ts +3 -3
- package/dist/esm/sdk/models/shared/advancedlistingaddress.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingaddress.js +3 -3
- package/dist/esm/sdk/models/shared/advancedlistingaddress.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingbuild.d.ts +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingbuild.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingbuild.js +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingbuild.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingenergyrating.d.ts +4 -4
- package/dist/esm/sdk/models/shared/advancedlistingenergyrating.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingenergyrating.js +4 -4
- package/dist/esm/sdk/models/shared/advancedlistingenergyrating.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingpricing.d.ts +4 -4
- package/dist/esm/sdk/models/shared/advancedlistingpricing.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingpricing.js +5 -4
- package/dist/esm/sdk/models/shared/advancedlistingpricing.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingroomdetails.d.ts +3 -3
- package/dist/esm/sdk/models/shared/advancedlistingroomdetails.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingroomdetails.js +3 -3
- package/dist/esm/sdk/models/shared/advancedlistingroomdetails.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingsalehistory.d.ts +2 -2
- package/dist/esm/sdk/models/shared/advancedlistingsalehistory.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingsalehistory.js +3 -2
- package/dist/esm/sdk/models/shared/advancedlistingsalehistory.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingseller.d.ts +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingseller.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingseller.js +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingseller.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingstatushistory.d.ts +2 -2
- package/dist/esm/sdk/models/shared/advancedlistingstatushistory.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingstatushistory.js +3 -2
- package/dist/esm/sdk/models/shared/advancedlistingstatushistory.js.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingtenure.d.ts +2 -2
- package/dist/esm/sdk/models/shared/advancedlistingtenure.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/advancedlistingtenure.js +2 -2
- package/dist/esm/sdk/models/shared/advancedlistingtenure.js.map +1 -1
- package/dist/esm/sdk/models/shared/building.d.ts +41 -17
- package/dist/esm/sdk/models/shared/building.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/building.js +33 -17
- package/dist/esm/sdk/models/shared/building.js.map +1 -1
- package/dist/esm/sdk/models/shared/buildingaddresslink.d.ts +2 -2
- package/dist/esm/sdk/models/shared/buildingaddresslink.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/buildingaddresslink.js +2 -2
- package/dist/esm/sdk/models/shared/buildingaddresslink.js.map +1 -1
- package/dist/esm/sdk/models/shared/buildingpart.d.ts +31 -6
- package/dist/esm/sdk/models/shared/buildingpart.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/buildingpart.js +22 -6
- package/dist/esm/sdk/models/shared/buildingpart.js.map +1 -1
- package/dist/esm/sdk/models/shared/censusareaprofilerequest.d.ts +20 -0
- package/dist/esm/sdk/models/shared/censusareaprofilerequest.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/censusareaprofilerequest.js +12 -0
- package/dist/esm/sdk/models/shared/censusareaprofilerequest.js.map +1 -1
- package/dist/esm/sdk/models/shared/censusrolluprequest.d.ts +20 -0
- package/dist/esm/sdk/models/shared/censusrolluprequest.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/censusrolluprequest.js +11 -0
- package/dist/esm/sdk/models/shared/censusrolluprequest.js.map +1 -1
- package/dist/esm/sdk/models/shared/chargeentry.d.ts +6 -6
- package/dist/esm/sdk/models/shared/chargeentry.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/chargeentry.js +6 -6
- package/dist/esm/sdk/models/shared/chargeentry.js.map +1 -1
- package/dist/esm/sdk/models/shared/chargehistory.d.ts +3 -3
- package/dist/esm/sdk/models/shared/chargehistory.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/chargehistory.js +4 -3
- package/dist/esm/sdk/models/shared/chargehistory.js.map +1 -1
- package/dist/esm/sdk/models/shared/conservationassessments.d.ts +7 -7
- package/dist/esm/sdk/models/shared/conservationassessments.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/conservationassessments.js +6 -6
- package/dist/esm/sdk/models/shared/conservationassessments.js.map +1 -1
- package/dist/esm/sdk/models/shared/datasourceref.d.ts +2 -2
- package/dist/esm/sdk/models/shared/datasourceref.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/datasourceref.js +2 -2
- package/dist/esm/sdk/models/shared/datasourceref.js.map +1 -1
- package/dist/esm/sdk/models/shared/epcdata.d.ts +134 -134
- package/dist/esm/sdk/models/shared/epcdata.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/epcdata.js +145 -134
- package/dist/esm/sdk/models/shared/epcdata.js.map +1 -1
- package/dist/esm/sdk/models/shared/geocodeprecision.d.ts +17 -0
- package/dist/esm/sdk/models/shared/geocodeprecision.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/geocodeprecision.js +15 -0
- package/dist/esm/sdk/models/shared/geocodeprecision.js.map +1 -0
- package/dist/esm/sdk/models/shared/heritageassessments.d.ts +7 -7
- package/dist/esm/sdk/models/shared/heritageassessments.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/heritageassessments.js +6 -6
- package/dist/esm/sdk/models/shared/heritageassessments.js.map +1 -1
- package/dist/esm/sdk/models/shared/index.d.ts +14 -7
- package/dist/esm/sdk/models/shared/index.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/index.js +14 -7
- package/dist/esm/sdk/models/shared/index.js.map +1 -1
- package/dist/esm/sdk/models/shared/listing.d.ts +2 -2
- package/dist/esm/sdk/models/shared/listing.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/listing.js +2 -2
- package/dist/esm/sdk/models/shared/listing.js.map +1 -1
- package/dist/esm/sdk/models/shared/marketstatus.d.ts +6 -6
- package/dist/esm/sdk/models/shared/marketstatus.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/marketstatus.js +8 -6
- package/dist/esm/sdk/models/shared/marketstatus.js.map +1 -1
- package/dist/esm/sdk/models/shared/mortgagecharge.d.ts +38 -0
- package/dist/esm/sdk/models/shared/mortgagecharge.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/mortgagecharge.js +28 -0
- package/dist/esm/sdk/models/shared/mortgagecharge.js.map +1 -0
- package/dist/esm/sdk/models/shared/othercharge.d.ts +23 -0
- package/dist/esm/sdk/models/shared/othercharge.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/{extractionothercharge.js → othercharge.js} +4 -4
- package/dist/esm/sdk/models/shared/othercharge.js.map +1 -0
- package/dist/esm/sdk/models/shared/propertyaddress.d.ts +25 -3
- package/dist/esm/sdk/models/shared/propertyaddress.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/propertyaddress.js +14 -2
- package/dist/esm/sdk/models/shared/propertyaddress.js.map +1 -1
- package/dist/esm/sdk/models/shared/propertybyslugsrequest.d.ts +5 -0
- package/dist/esm/sdk/models/shared/propertybyslugsrequest.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/propertybyslugsrequest.js +1 -0
- package/dist/esm/sdk/models/shared/propertybyslugsrequest.js.map +1 -1
- package/dist/esm/sdk/models/shared/propertydataapi.d.ts +54 -4
- package/dist/esm/sdk/models/shared/propertydataapi.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/propertydataapi.js +35 -4
- package/dist/esm/sdk/models/shared/propertydataapi.js.map +1 -1
- package/dist/esm/sdk/models/shared/propertyqueryrequest.d.ts +5 -0
- package/dist/esm/sdk/models/shared/propertyqueryrequest.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/propertyqueryrequest.js +1 -0
- package/dist/esm/sdk/models/shared/propertyqueryrequest.js.map +1 -1
- package/dist/esm/sdk/models/shared/provenance.d.ts +4 -4
- package/dist/esm/sdk/models/shared/provenance.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/provenance.js +4 -4
- package/dist/esm/sdk/models/shared/provenance.js.map +1 -1
- package/dist/esm/sdk/models/shared/registeredcharges.d.ts +14 -0
- package/dist/esm/sdk/models/shared/registeredcharges.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/registeredcharges.js +17 -0
- package/dist/esm/sdk/models/shared/registeredcharges.js.map +1 -0
- package/dist/esm/sdk/models/shared/salerecord.d.ts +48 -3
- package/dist/esm/sdk/models/shared/salerecord.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/salerecord.js +29 -3
- package/dist/esm/sdk/models/shared/salerecord.js.map +1 -1
- package/dist/esm/sdk/models/shared/searchresponse.d.ts +8 -0
- package/dist/esm/sdk/models/shared/searchresponse.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/searchresponse.js +4 -0
- package/dist/esm/sdk/models/shared/searchresponse.js.map +1 -1
- package/dist/esm/sdk/models/shared/searchretrieveresponse.d.ts +82 -0
- package/dist/esm/sdk/models/shared/searchretrieveresponse.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/searchretrieveresponse.js +50 -0
- package/dist/esm/sdk/models/shared/searchretrieveresponse.js.map +1 -0
- package/dist/esm/sdk/models/shared/site.d.ts +49 -25
- package/dist/esm/sdk/models/shared/site.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/site.js +42 -25
- package/dist/esm/sdk/models/shared/site.js.map +1 -1
- package/dist/esm/sdk/models/shared/siteownership.d.ts +7 -7
- package/dist/esm/sdk/models/shared/siteownership.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/siteownership.js +7 -7
- package/dist/esm/sdk/models/shared/siteownership.js.map +1 -1
- package/dist/esm/sdk/models/shared/siteplanningstats.d.ts +5 -5
- package/dist/esm/sdk/models/shared/siteplanningstats.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/siteplanningstats.js +5 -5
- package/dist/esm/sdk/models/shared/siteplanningstats.js.map +1 -1
- package/dist/esm/sdk/models/shared/sitepropertystats.d.ts +2 -2
- package/dist/esm/sdk/models/shared/sitepropertystats.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/sitepropertystats.js +2 -2
- package/dist/esm/sdk/models/shared/sitepropertystats.js.map +1 -1
- package/dist/esm/sdk/models/shared/siteproprietor.d.ts +6 -6
- package/dist/esm/sdk/models/shared/siteproprietor.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/siteproprietor.js +6 -6
- package/dist/esm/sdk/models/shared/siteproprietor.js.map +1 -1
- package/dist/esm/sdk/models/shared/streetmatch.d.ts +106 -0
- package/dist/esm/sdk/models/shared/streetmatch.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/streetmatch.js +45 -0
- package/dist/esm/sdk/models/shared/streetmatch.js.map +1 -0
- package/dist/esm/sdk/models/shared/titlecovenant.d.ts +23 -0
- package/dist/esm/sdk/models/shared/titlecovenant.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/{extractionrestriction.js → titlecovenant.js} +4 -4
- package/dist/esm/sdk/models/shared/titlecovenant.js.map +1 -0
- package/dist/esm/sdk/models/shared/{extractiondocumentsummary.d.ts → titledocumentsummary.d.ts} +9 -9
- package/dist/esm/sdk/models/shared/titledocumentsummary.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/{extractiondocumentsummary.js → titledocumentsummary.js} +9 -9
- package/dist/esm/sdk/models/shared/titledocumentsummary.js.map +1 -0
- package/dist/esm/sdk/models/shared/titleextractionpayload.d.ts +83 -0
- package/dist/esm/sdk/models/shared/titleextractionpayload.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/titleextractionpayload.js +65 -0
- package/dist/esm/sdk/models/shared/titleextractionpayload.js.map +1 -0
- package/dist/esm/sdk/models/shared/titleextractionpollresponse.d.ts +2 -2
- package/dist/esm/sdk/models/shared/titleextractionpollresponse.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/titleextractionpollresponse.js +2 -2
- package/dist/esm/sdk/models/shared/titleextractionpollresponse.js.map +1 -1
- package/dist/{commonjs/sdk/models/shared/extractionnotice.d.ts → esm/sdk/models/shared/titlenotice.d.ts} +13 -4
- package/dist/esm/sdk/models/shared/titlenotice.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/{extractionnotice.js → titlenotice.js} +4 -4
- package/dist/esm/sdk/models/shared/titlenotice.js.map +1 -0
- package/dist/esm/sdk/models/shared/titleproprietor.d.ts +54 -0
- package/dist/esm/sdk/models/shared/titleproprietor.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/titleproprietor.js +38 -0
- package/dist/esm/sdk/models/shared/titleproprietor.js.map +1 -0
- package/dist/esm/sdk/models/shared/titlerestriction.d.ts +23 -0
- package/dist/esm/sdk/models/shared/titlerestriction.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/titlerestriction.js +17 -0
- package/dist/esm/sdk/models/shared/titlerestriction.js.map +1 -0
- package/dist/esm/sdk/models/shared/titleschedulenoticeoflease.d.ts +13 -0
- package/dist/esm/sdk/models/shared/titleschedulenoticeoflease.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/titleschedulenoticeoflease.js +13 -0
- package/dist/esm/sdk/models/shared/titleschedulenoticeoflease.js.map +1 -0
- package/dist/esm/sdk/models/shared/titlesummarycounts.d.ts +15 -0
- package/dist/esm/sdk/models/shared/titlesummarycounts.d.ts.map +1 -0
- package/dist/esm/sdk/models/shared/titlesummarycounts.js +18 -0
- package/dist/esm/sdk/models/shared/titlesummarycounts.js.map +1 -0
- package/dist/esm/sdk/models/shared/transaction.d.ts +10 -10
- package/dist/esm/sdk/models/shared/transaction.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/transaction.js +11 -10
- package/dist/esm/sdk/models/shared/transaction.js.map +1 -1
- package/dist/esm/sdk/models/shared/transactionlocation.d.ts +2 -2
- package/dist/esm/sdk/models/shared/transactionlocation.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/transactionlocation.js +2 -2
- package/dist/esm/sdk/models/shared/transactionlocation.js.map +1 -1
- package/dist/esm/sdk/models/shared/transactionprice.d.ts +2 -2
- package/dist/esm/sdk/models/shared/transactionprice.d.ts.map +1 -1
- package/dist/esm/sdk/models/shared/transactionprice.js +2 -2
- package/dist/esm/sdk/models/shared/transactionprice.js.map +1 -1
- package/dist/esm/sdk/search.d.ts +14 -1
- package/dist/esm/sdk/search.d.ts.map +1 -1
- package/dist/esm/sdk/search.js +17 -1
- package/dist/esm/sdk/search.js.map +1 -1
- package/jsr.json +1 -1
- package/package.json +3 -2
- package/src/address-search/__tests__/controller.test.ts +395 -0
- package/src/address-search/__tests__/default-transports.test.ts +201 -0
- package/src/address-search/__tests__/narrow.test.ts +74 -0
- package/src/address-search/controller.ts +219 -0
- package/src/address-search/default-transports.ts +199 -0
- package/src/address-search/errors.ts +7 -0
- package/src/address-search/index.ts +54 -0
- package/src/address-search/lru-cache.ts +34 -0
- package/src/address-search/narrow.ts +45 -0
- package/src/address-search/types.ts +147 -0
- package/src/address-search.ts +40 -0
- package/src/funcs/avmPredictPropertyValue.ts +9 -2
- package/src/funcs/propertyGetProperties.ts +1 -0
- package/src/funcs/propertyGetPropertiesByLocation.ts +1 -0
- package/src/funcs/propertyGetPropertiesBySource.ts +1 -0
- package/src/funcs/searchSearchRetrieve.ts +192 -0
- package/src/funcs/searchSearchSuggest.ts +5 -1
- package/src/lib/config.ts +4 -4
- package/src/sdk/models/errors/index.ts +1 -0
- package/src/sdk/models/errors/predictpropertyvalue.ts +136 -0
- package/src/sdk/models/errors/searchretrieve.ts +391 -0
- package/src/sdk/models/operations/getcensuswholelevel.ts +1 -0
- package/src/sdk/models/operations/getlistingbyid.ts +84 -76
- package/src/sdk/models/operations/getlistingbysource.ts +95 -87
- package/src/sdk/models/operations/getlistingsbylocation.ts +95 -86
- package/src/sdk/models/operations/getproperties.ts +6 -0
- package/src/sdk/models/operations/getpropertiesbylocation.ts +6 -0
- package/src/sdk/models/operations/getpropertiesbysource.ts +6 -0
- package/src/sdk/models/operations/index.ts +1 -0
- package/src/sdk/models/operations/querylistings.ts +91 -82
- package/src/sdk/models/operations/querylistingsbysource.ts +95 -86
- package/src/sdk/models/operations/resolveaddress.ts +50 -12
- package/src/sdk/models/operations/searchretrieve.ts +45 -0
- package/src/sdk/models/operations/searchsuggest.ts +41 -0
- package/src/sdk/models/shared/addressresolverequest.ts +60 -0
- package/src/sdk/models/shared/advancedlisting.ts +22 -22
- package/src/sdk/models/shared/advancedlistingaddress.ts +6 -6
- package/src/sdk/models/shared/advancedlistingbuild.ts +2 -2
- package/src/sdk/models/shared/advancedlistingenergyrating.ts +8 -8
- package/src/sdk/models/shared/advancedlistingpricing.ts +9 -8
- package/src/sdk/models/shared/advancedlistingroomdetails.ts +6 -6
- package/src/sdk/models/shared/advancedlistingsalehistory.ts +5 -4
- package/src/sdk/models/shared/advancedlistingseller.ts +2 -2
- package/src/sdk/models/shared/advancedlistingstatushistory.ts +5 -4
- package/src/sdk/models/shared/advancedlistingtenure.ts +4 -4
- package/src/sdk/models/shared/building.ts +68 -34
- package/src/sdk/models/shared/buildingaddresslink.ts +4 -4
- package/src/sdk/models/shared/buildingpart.ts +47 -12
- package/src/sdk/models/shared/censusareaprofilerequest.ts +24 -0
- package/src/sdk/models/shared/censusrolluprequest.ts +27 -0
- package/src/sdk/models/shared/chargeentry.ts +12 -12
- package/src/sdk/models/shared/chargehistory.ts +7 -8
- package/src/sdk/models/shared/conservationassessments.ts +13 -13
- package/src/sdk/models/shared/datasourceref.ts +4 -4
- package/src/sdk/models/shared/epcdata.ts +315 -274
- package/src/sdk/models/shared/geocodeprecision.ts +27 -0
- package/src/sdk/models/shared/heritageassessments.ts +14 -12
- package/src/sdk/models/shared/index.ts +14 -7
- package/src/sdk/models/shared/listing.ts +4 -4
- package/src/sdk/models/shared/marketstatus.ts +14 -12
- package/src/sdk/models/shared/mortgagecharge.ts +76 -0
- package/src/sdk/models/shared/{extractionothercharge.ts → othercharge.ts} +16 -7
- package/src/sdk/models/shared/propertyaddress.ts +38 -5
- package/src/sdk/models/shared/propertybyslugsrequest.ts +6 -0
- package/src/sdk/models/shared/propertydataapi.ts +87 -8
- package/src/sdk/models/shared/propertyqueryrequest.ts +6 -0
- package/src/sdk/models/shared/provenance.ts +8 -8
- package/src/sdk/models/shared/registeredcharges.ts +40 -0
- package/src/sdk/models/shared/salerecord.ts +69 -6
- package/src/sdk/models/shared/searchresponse.ts +12 -0
- package/src/sdk/models/shared/searchretrieveresponse.ts +153 -0
- package/src/sdk/models/shared/site.ts +81 -50
- package/src/sdk/models/shared/siteownership.ts +14 -14
- package/src/sdk/models/shared/siteplanningstats.ts +10 -10
- package/src/sdk/models/shared/sitepropertystats.ts +4 -4
- package/src/sdk/models/shared/siteproprietor.ts +12 -12
- package/src/sdk/models/shared/streetmatch.ts +181 -0
- package/src/sdk/models/shared/{extractionrestriction.ts → titlecovenant.ts} +16 -7
- package/src/sdk/models/shared/{extractiondocumentsummary.ts → titledocumentsummary.ts} +20 -18
- package/src/sdk/models/shared/titleextractionpayload.ts +170 -0
- package/src/sdk/models/shared/titleextractionpollresponse.ts +5 -5
- package/src/sdk/models/shared/{extractionnotice.ts → titlenotice.ts} +16 -7
- package/src/sdk/models/shared/titleproprietor.ts +90 -0
- package/src/sdk/models/shared/titlerestriction.ts +48 -0
- package/src/sdk/models/shared/titleschedulenoticeoflease.ts +34 -0
- package/src/sdk/models/shared/titlesummarycounts.ts +41 -0
- package/src/sdk/models/shared/transaction.ts +21 -20
- package/src/sdk/models/shared/transactionlocation.ts +4 -4
- package/src/sdk/models/shared/transactionprice.ts +4 -4
- package/src/sdk/search.ts +25 -1
- package/dist/commonjs/sdk/models/shared/extractiondocumentsummary.d.ts.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractiondocumentsummary.js.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionmortgagecharge.d.ts +0 -26
- package/dist/commonjs/sdk/models/shared/extractionmortgagecharge.d.ts.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionmortgagecharge.js.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionnotice.d.ts.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionnotice.js.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionothercharge.d.ts +0 -14
- package/dist/commonjs/sdk/models/shared/extractionothercharge.d.ts.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionothercharge.js.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionpayload.d.ts +0 -63
- package/dist/commonjs/sdk/models/shared/extractionpayload.d.ts.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionpayload.js +0 -108
- package/dist/commonjs/sdk/models/shared/extractionpayload.js.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionproprietor.d.ts +0 -18
- package/dist/commonjs/sdk/models/shared/extractionproprietor.d.ts.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionproprietor.js.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionrestriction.d.ts +0 -14
- package/dist/commonjs/sdk/models/shared/extractionrestriction.d.ts.map +0 -1
- package/dist/commonjs/sdk/models/shared/extractionrestriction.js.map +0 -1
- package/dist/esm/sdk/models/shared/extractiondocumentsummary.d.ts.map +0 -1
- package/dist/esm/sdk/models/shared/extractiondocumentsummary.js.map +0 -1
- package/dist/esm/sdk/models/shared/extractionmortgagecharge.d.ts +0 -26
- package/dist/esm/sdk/models/shared/extractionmortgagecharge.d.ts.map +0 -1
- package/dist/esm/sdk/models/shared/extractionmortgagecharge.js +0 -28
- package/dist/esm/sdk/models/shared/extractionmortgagecharge.js.map +0 -1
- package/dist/esm/sdk/models/shared/extractionnotice.d.ts.map +0 -1
- package/dist/esm/sdk/models/shared/extractionnotice.js.map +0 -1
- package/dist/esm/sdk/models/shared/extractionothercharge.d.ts +0 -14
- package/dist/esm/sdk/models/shared/extractionothercharge.d.ts.map +0 -1
- package/dist/esm/sdk/models/shared/extractionothercharge.js.map +0 -1
- package/dist/esm/sdk/models/shared/extractionpayload.d.ts +0 -63
- package/dist/esm/sdk/models/shared/extractionpayload.d.ts.map +0 -1
- package/dist/esm/sdk/models/shared/extractionpayload.js +0 -68
- package/dist/esm/sdk/models/shared/extractionpayload.js.map +0 -1
- package/dist/esm/sdk/models/shared/extractionproprietor.d.ts +0 -18
- package/dist/esm/sdk/models/shared/extractionproprietor.d.ts.map +0 -1
- package/dist/esm/sdk/models/shared/extractionproprietor.js +0 -21
- package/dist/esm/sdk/models/shared/extractionproprietor.js.map +0 -1
- package/dist/esm/sdk/models/shared/extractionrestriction.d.ts +0 -14
- package/dist/esm/sdk/models/shared/extractionrestriction.d.ts.map +0 -1
- package/dist/esm/sdk/models/shared/extractionrestriction.js.map +0 -1
- package/src/sdk/models/shared/extractionmortgagecharge.ts +0 -66
- package/src/sdk/models/shared/extractionpayload.ts +0 -177
- package/src/sdk/models/shared/extractionproprietor.ts +0 -47
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { LruCache } from "./lru-cache.js";
|
|
2
|
+
import { extendsTriggerPrefix, narrowSuggestions, normaliseQuery } from "./narrow.js";
|
|
3
|
+
import type {
|
|
4
|
+
AddressSearchController,
|
|
5
|
+
AddressSearchListener,
|
|
6
|
+
AddressSearchOptions,
|
|
7
|
+
AddressSearchState,
|
|
8
|
+
AddressSearchTimers,
|
|
9
|
+
AddressSuggestion,
|
|
10
|
+
BillingMetadata,
|
|
11
|
+
SuggestResult,
|
|
12
|
+
TimerHandle,
|
|
13
|
+
} from "./types.js";
|
|
14
|
+
|
|
15
|
+
const DEFAULT_DEBOUNCE_MS = 250;
|
|
16
|
+
const DEFAULT_MIN_QUERY_LENGTH = 3;
|
|
17
|
+
const DEFAULT_CACHE_SIZE = 50;
|
|
18
|
+
|
|
19
|
+
const defaultTimers: AddressSearchTimers = {
|
|
20
|
+
now: (): number => Date.now(),
|
|
21
|
+
setTimeout: (callback: () => void, ms: number): TimerHandle => setTimeout(callback, ms),
|
|
22
|
+
clearTimeout: (handle: TimerHandle): void => clearTimeout(handle as ReturnType<typeof setTimeout>),
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const INITIAL_STATE: AddressSearchState = {
|
|
26
|
+
status: "idle",
|
|
27
|
+
query: "",
|
|
28
|
+
suggestions: [],
|
|
29
|
+
searchId: null,
|
|
30
|
+
setComplete: false,
|
|
31
|
+
billing: null,
|
|
32
|
+
error: null,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/** A complete candidate set held client-side, keyed by the prefix that fetched it. */
|
|
36
|
+
interface HeldCandidateSet {
|
|
37
|
+
readonly searchId: string;
|
|
38
|
+
readonly triggerPrefix: string;
|
|
39
|
+
readonly rows: readonly AddressSuggestion[];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Headless address autocomplete controller (SV2-C1). Framework-agnostic: no
|
|
44
|
+
* DOM access, no framework dependencies — feed keystrokes to `input()`,
|
|
45
|
+
* render from `subscribe()`/`getState()`, resolve a pick with `select()`.
|
|
46
|
+
*
|
|
47
|
+
* The point of the controller is the candidate-set protocol: once a response
|
|
48
|
+
* arrives with `set_complete: true`, further keystrokes that extend the
|
|
49
|
+
* fetched prefix narrow the held set locally — no request, no new royalty
|
|
50
|
+
* transaction. The server is consulted again only when the local narrow
|
|
51
|
+
* empties (set exhaustion) or the input stops extending the trigger prefix.
|
|
52
|
+
*/
|
|
53
|
+
export function createAddressSearch<TRecord = unknown>(
|
|
54
|
+
options: AddressSearchOptions<TRecord>,
|
|
55
|
+
): AddressSearchController<TRecord> {
|
|
56
|
+
const debounceMs = options.debounceMs ?? DEFAULT_DEBOUNCE_MS;
|
|
57
|
+
const minQueryLength = options.minQueryLength ?? DEFAULT_MIN_QUERY_LENGTH;
|
|
58
|
+
const timers = options.timers ?? defaultTimers;
|
|
59
|
+
const cache = new LruCache<string, SuggestResult>(options.cacheSize ?? DEFAULT_CACHE_SIZE);
|
|
60
|
+
|
|
61
|
+
let state = INITIAL_STATE;
|
|
62
|
+
const listeners = new Set<AddressSearchListener>();
|
|
63
|
+
let heldSet: HeldCandidateSet | null = null;
|
|
64
|
+
let pendingTimer: TimerHandle | null = null;
|
|
65
|
+
let inFlight: AbortController | null = null;
|
|
66
|
+
let requestSeq = 0;
|
|
67
|
+
const selections = new Map<string, Promise<TRecord>>();
|
|
68
|
+
let disposed = false;
|
|
69
|
+
|
|
70
|
+
function setState(patch: Partial<AddressSearchState>): void {
|
|
71
|
+
state = { ...state, ...patch };
|
|
72
|
+
for (const listener of listeners) listener(state);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function stampBilling(billing: BillingMetadata | null): Partial<AddressSearchState> {
|
|
76
|
+
return billing === null ? {} : { billing: { ...billing, receivedAt: timers.now() } };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function cancelPending(): void {
|
|
80
|
+
if (pendingTimer !== null) {
|
|
81
|
+
timers.clearTimeout(pendingTimer);
|
|
82
|
+
pendingTimer = null;
|
|
83
|
+
}
|
|
84
|
+
if (inFlight !== null) {
|
|
85
|
+
inFlight.abort();
|
|
86
|
+
inFlight = null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** Apply a server (or cached) result; adopt the set when it is complete. */
|
|
91
|
+
function applyResult(query: string, result: SuggestResult): void {
|
|
92
|
+
if (result.setComplete && result.searchId !== null) {
|
|
93
|
+
heldSet = { searchId: result.searchId, triggerPrefix: normaliseQuery(query), rows: result.suggestions };
|
|
94
|
+
}
|
|
95
|
+
setState({
|
|
96
|
+
status: "ready",
|
|
97
|
+
query,
|
|
98
|
+
suggestions: result.suggestions,
|
|
99
|
+
searchId: result.searchId,
|
|
100
|
+
setComplete: result.setComplete,
|
|
101
|
+
error: null,
|
|
102
|
+
...stampBilling(result.billing),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
async function fetchSuggestions(query: string, normalised: string): Promise<void> {
|
|
107
|
+
inFlight?.abort();
|
|
108
|
+
const abort = new AbortController();
|
|
109
|
+
inFlight = abort;
|
|
110
|
+
const seq = ++requestSeq;
|
|
111
|
+
setState({ status: "loading", query });
|
|
112
|
+
try {
|
|
113
|
+
// Always a fresh query, never a search_id: local narrowing mirrors the
|
|
114
|
+
// server's, so a server-side narrow of the held set could only return
|
|
115
|
+
// what we already computed (or less) — the only useful re-query is a
|
|
116
|
+
// fresh probe, which is the counted path.
|
|
117
|
+
const result = await options.suggest({ query, searchId: null, signal: abort.signal });
|
|
118
|
+
if (seq !== requestSeq || abort.signal.aborted) return; // superseded
|
|
119
|
+
inFlight = null;
|
|
120
|
+
cache.set(normalised, result);
|
|
121
|
+
applyResult(query, result);
|
|
122
|
+
} catch (error) {
|
|
123
|
+
if (seq !== requestSeq || abort.signal.aborted) return; // superseded or cancelled
|
|
124
|
+
inFlight = null;
|
|
125
|
+
setState({ status: "error", query, error: error instanceof Error ? error : new Error(String(error)) });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function input(text: string): void {
|
|
130
|
+
if (disposed) return;
|
|
131
|
+
const normalised = normaliseQuery(text);
|
|
132
|
+
|
|
133
|
+
// Below the minimum: clear suggestions, never fetch. The held set is kept —
|
|
134
|
+
// retyping into its prefix resumes local narrowing at zero cost.
|
|
135
|
+
if (normalised.length < minQueryLength) {
|
|
136
|
+
cancelPending();
|
|
137
|
+
setState({ status: "idle", query: text, suggestions: [], searchId: null, setComplete: false, error: null });
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// A query answered before costs nothing to answer again.
|
|
142
|
+
const cached = cache.get(normalised);
|
|
143
|
+
if (cached !== undefined) {
|
|
144
|
+
cancelPending();
|
|
145
|
+
applyResult(text, cached);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Local narrowing: the input extends the held set's trigger prefix, so the
|
|
150
|
+
// true match set is a subset of what we hold. Served instantly (no
|
|
151
|
+
// debounce — it is free) and no request leaves the client.
|
|
152
|
+
if (heldSet !== null && extendsTriggerPrefix(text, heldSet.triggerPrefix)) {
|
|
153
|
+
const narrowed = narrowSuggestions(heldSet.rows, text);
|
|
154
|
+
if (narrowed.length > 0) {
|
|
155
|
+
cancelPending();
|
|
156
|
+
setState({
|
|
157
|
+
status: "ready",
|
|
158
|
+
query: text,
|
|
159
|
+
suggestions: narrowed,
|
|
160
|
+
searchId: heldSet.searchId,
|
|
161
|
+
setComplete: true,
|
|
162
|
+
error: null,
|
|
163
|
+
});
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
// Set exhaustion: fall through to a fresh counted fetch (no search_id).
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
cancelPending();
|
|
170
|
+
setState({ status: "debouncing", query: text });
|
|
171
|
+
pendingTimer = timers.setTimeout(() => {
|
|
172
|
+
pendingTimer = null;
|
|
173
|
+
void fetchSuggestions(text, normalised);
|
|
174
|
+
}, debounceMs);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function select(suggestion: AddressSuggestion): Promise<TRecord> {
|
|
178
|
+
const searchId = state.searchId;
|
|
179
|
+
const key = `${searchId ?? ""}::${suggestion.uprn ?? suggestion.id}`;
|
|
180
|
+
const existing = selections.get(key);
|
|
181
|
+
if (existing !== undefined) return existing;
|
|
182
|
+
|
|
183
|
+
const promise = (async (): Promise<TRecord> => {
|
|
184
|
+
const result = await options.retrieve({ suggestion, searchId });
|
|
185
|
+
if (result.billing != null) setState(stampBilling(result.billing));
|
|
186
|
+
return result.record;
|
|
187
|
+
})();
|
|
188
|
+
selections.set(key, promise);
|
|
189
|
+
// A failed retrieve must not poison the guard — the user may retry.
|
|
190
|
+
promise.catch((): void => {
|
|
191
|
+
selections.delete(key);
|
|
192
|
+
});
|
|
193
|
+
return promise;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function subscribe(listener: AddressSearchListener): () => void {
|
|
197
|
+
listeners.add(listener);
|
|
198
|
+
return (): void => {
|
|
199
|
+
listeners.delete(listener);
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function dispose(): void {
|
|
204
|
+
disposed = true;
|
|
205
|
+
cancelPending();
|
|
206
|
+
listeners.clear();
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
return {
|
|
210
|
+
input,
|
|
211
|
+
select,
|
|
212
|
+
subscribe,
|
|
213
|
+
getState: (): AddressSearchState => state,
|
|
214
|
+
get billing() {
|
|
215
|
+
return state.billing;
|
|
216
|
+
},
|
|
217
|
+
dispose,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import type { SDKCore } from "../core.js";
|
|
2
|
+
import { addressLookupUprn } from "../funcs/addressLookupUprn.js";
|
|
3
|
+
import type { UprnLookupResponse } from "../sdk/models/shared/uprnlookupresponse.js";
|
|
4
|
+
import type { Result } from "../sdk/types/fp.js";
|
|
5
|
+
import { AddressSearchError } from "./errors.js";
|
|
6
|
+
import type {
|
|
7
|
+
AddressSuggestion,
|
|
8
|
+
BillingMetadata,
|
|
9
|
+
MatchedSubstring,
|
|
10
|
+
RetrieveResult,
|
|
11
|
+
RetrieveTransport,
|
|
12
|
+
SuggestResult,
|
|
13
|
+
SuggestTransport,
|
|
14
|
+
} from "./types.js";
|
|
15
|
+
|
|
16
|
+
const DEFAULT_BASE_URL = "https://api.vepler.com";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Request the full page cap so any candidate set the server forms (at most
|
|
20
|
+
* 100 rows) arrives complete in one response — `set_complete` is only true
|
|
21
|
+
* when nothing was paginated away.
|
|
22
|
+
*/
|
|
23
|
+
const CANDIDATE_PAGE_LIMIT = 100;
|
|
24
|
+
|
|
25
|
+
/** The subset of a fetch Response the suggest transport reads. */
|
|
26
|
+
export interface SuggestHttpResponse {
|
|
27
|
+
readonly ok: boolean;
|
|
28
|
+
readonly status: number;
|
|
29
|
+
readonly headers: { get(name: string): string | null };
|
|
30
|
+
json(): Promise<unknown>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Injectable fetch — the global `fetch` is assignable. */
|
|
34
|
+
export type FetchLike = (
|
|
35
|
+
url: string,
|
|
36
|
+
init: { readonly headers: Record<string, string>; readonly signal: AbortSignal },
|
|
37
|
+
) => Promise<SuggestHttpResponse>;
|
|
38
|
+
|
|
39
|
+
export interface SuggestTransportConfig {
|
|
40
|
+
/** API origin. Default `https://api.vepler.com`. */
|
|
41
|
+
readonly baseUrl?: string;
|
|
42
|
+
/** API key sent as `x-api-key`. Omit when auth is ambient (proxy, cookie). */
|
|
43
|
+
readonly apiKey?: string;
|
|
44
|
+
readonly fetch?: FetchLike;
|
|
45
|
+
/** Page size requested. Default 100 (the candidate-set cap). */
|
|
46
|
+
readonly limit?: number;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Parse the billing transparency headers; null when none are present. */
|
|
50
|
+
export function parseBillingHeaders(headers: { get(name: string): string | null }): BillingMetadata | null {
|
|
51
|
+
const charged = headers.get("X-Credits-Charged");
|
|
52
|
+
const balance = headers.get("X-Credits-Balance");
|
|
53
|
+
const already = headers.get("X-Already-Charged");
|
|
54
|
+
if (charged === null && balance === null && already === null) return null;
|
|
55
|
+
return {
|
|
56
|
+
creditsCharged: parseNumeric(charged),
|
|
57
|
+
creditsBalance: parseNumeric(balance),
|
|
58
|
+
alreadyCharged: already === null ? null : already === "true" || already === "1",
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function parseNumeric(value: string | null): number | null {
|
|
63
|
+
if (value === null) return null;
|
|
64
|
+
const parsed = Number(value);
|
|
65
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Loosely-typed views over the wire shapes — every field is verified before use. */
|
|
69
|
+
interface RawMatchedSubstring {
|
|
70
|
+
readonly offset?: unknown;
|
|
71
|
+
readonly length?: unknown;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
interface RawSuggestRow {
|
|
75
|
+
readonly id?: unknown;
|
|
76
|
+
readonly title?: unknown;
|
|
77
|
+
readonly main_text?: unknown;
|
|
78
|
+
readonly uprn?: unknown;
|
|
79
|
+
readonly source?: unknown;
|
|
80
|
+
readonly matched_substrings?: unknown;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
interface RawSuggestEnvelope {
|
|
84
|
+
readonly data?: unknown;
|
|
85
|
+
readonly result?: unknown;
|
|
86
|
+
readonly search_id?: unknown;
|
|
87
|
+
readonly set_complete?: unknown;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function parseMatchedSubstrings(value: unknown): MatchedSubstring[] {
|
|
91
|
+
if (!Array.isArray(value)) return [];
|
|
92
|
+
const ranges: MatchedSubstring[] = [];
|
|
93
|
+
for (const entry of value) {
|
|
94
|
+
if (typeof entry !== "object" || entry === null) continue;
|
|
95
|
+
const { offset, length } = entry as RawMatchedSubstring;
|
|
96
|
+
if (typeof offset === "number" && typeof length === "number") ranges.push({ offset, length });
|
|
97
|
+
}
|
|
98
|
+
return ranges;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function toSuggestion(row: unknown): AddressSuggestion | null {
|
|
102
|
+
if (typeof row !== "object" || row === null) return null;
|
|
103
|
+
const record = row as RawSuggestRow;
|
|
104
|
+
const title =
|
|
105
|
+
typeof record.title === "string" ? record.title : typeof record.main_text === "string" ? record.main_text : null;
|
|
106
|
+
if (title === null) return null;
|
|
107
|
+
return {
|
|
108
|
+
id: typeof record.id === "string" ? record.id : title,
|
|
109
|
+
title,
|
|
110
|
+
uprn: typeof record.uprn === "string" ? record.uprn : null,
|
|
111
|
+
source: typeof record.source === "string" ? record.source : "address",
|
|
112
|
+
matchedSubstrings: parseMatchedSubstrings(record.matched_substrings),
|
|
113
|
+
raw: row,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function parseSuggestBody(body: unknown): { rows: AddressSuggestion[]; searchId: string | null; setComplete: boolean } {
|
|
118
|
+
const envelope: RawSuggestEnvelope = typeof body === "object" && body !== null ? (body as RawSuggestEnvelope) : {};
|
|
119
|
+
const rawRows: unknown[] = Array.isArray(envelope.data)
|
|
120
|
+
? envelope.data
|
|
121
|
+
: Array.isArray(envelope.result)
|
|
122
|
+
? envelope.result
|
|
123
|
+
: [];
|
|
124
|
+
const rows: AddressSuggestion[] = [];
|
|
125
|
+
for (const raw of rawRows) {
|
|
126
|
+
const suggestion = toSuggestion(raw);
|
|
127
|
+
if (suggestion !== null) rows.push(suggestion);
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
rows,
|
|
131
|
+
searchId: typeof envelope.search_id === "string" ? envelope.search_id : null,
|
|
132
|
+
setComplete: envelope.set_complete === true,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Default suggest transport: `GET /v1/search/suggest` with the v2 response
|
|
138
|
+
* envelope, candidate-set fields (`search_id`, `set_complete`) and billing
|
|
139
|
+
* headers lifted into a `SuggestResult`.
|
|
140
|
+
*/
|
|
141
|
+
export function createSuggestTransport(config: SuggestTransportConfig = {}): SuggestTransport {
|
|
142
|
+
const baseUrl = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, "");
|
|
143
|
+
const fetchFn: FetchLike = config.fetch ?? globalThis.fetch;
|
|
144
|
+
const limit = config.limit ?? CANDIDATE_PAGE_LIMIT;
|
|
145
|
+
|
|
146
|
+
return async ({ query, searchId, signal }): Promise<SuggestResult> => {
|
|
147
|
+
const params = new URLSearchParams({ q: query, limit: String(limit) });
|
|
148
|
+
if (searchId !== null) params.set("search_id", searchId);
|
|
149
|
+
const headers: Record<string, string> = { Accept: "application/json", "X-API-Version": "2" };
|
|
150
|
+
if (config.apiKey !== undefined) headers["x-api-key"] = config.apiKey;
|
|
151
|
+
|
|
152
|
+
const response = await fetchFn(`${baseUrl}/v1/search/suggest?${params.toString()}`, { headers, signal });
|
|
153
|
+
if (!response.ok) {
|
|
154
|
+
throw new AddressSearchError(`Suggest request failed with status ${response.status}`);
|
|
155
|
+
}
|
|
156
|
+
const { rows, searchId: responseSearchId, setComplete } = parseSuggestBody(await response.json());
|
|
157
|
+
return {
|
|
158
|
+
suggestions: rows,
|
|
159
|
+
searchId: responseSearchId,
|
|
160
|
+
setComplete,
|
|
161
|
+
billing: parseBillingHeaders(response.headers),
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/** The generated UPRN lookup, injectable for tests. */
|
|
167
|
+
export type UprnLookupFn = (
|
|
168
|
+
client: SDKCore,
|
|
169
|
+
request: { uprn: string },
|
|
170
|
+
) => PromiseLike<Result<UprnLookupResponse, unknown>>;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Default retrieve transport: resolves a selected suggestion to the full
|
|
174
|
+
* address record through the SDK's UPRN lookup (`GET /v1/address/uprn/{uprn}`).
|
|
175
|
+
* Swap it out once the dedicated candidate-set retrieve endpoint ships — the
|
|
176
|
+
* `searchId` on the request is there for exactly that transport; this one
|
|
177
|
+
* cannot attribute it, so the lookup opens its own transaction row server-side.
|
|
178
|
+
*/
|
|
179
|
+
export function createUprnRetrieveTransport(
|
|
180
|
+
client: SDKCore,
|
|
181
|
+
deps: { readonly lookup?: UprnLookupFn } = {},
|
|
182
|
+
): RetrieveTransport<UprnLookupResponse> {
|
|
183
|
+
const lookup = deps.lookup ?? addressLookupUprn;
|
|
184
|
+
return async ({ suggestion }): Promise<RetrieveResult<UprnLookupResponse>> => {
|
|
185
|
+
if (suggestion.uprn === null) {
|
|
186
|
+
throw new AddressSearchError(
|
|
187
|
+
`Cannot retrieve suggestion "${suggestion.id}": it has no UPRN. ` +
|
|
188
|
+
"Only address rows are retrievable through the default UPRN transport.",
|
|
189
|
+
);
|
|
190
|
+
}
|
|
191
|
+
const result = await lookup(client, { uprn: suggestion.uprn });
|
|
192
|
+
if (!result.ok) {
|
|
193
|
+
throw result.error instanceof Error
|
|
194
|
+
? result.error
|
|
195
|
+
: new AddressSearchError(`UPRN lookup failed for "${suggestion.uprn}"`);
|
|
196
|
+
}
|
|
197
|
+
return { record: result.value };
|
|
198
|
+
};
|
|
199
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Headless address autocomplete (SV2-C1). Hand-written, generator-safe: this
|
|
3
|
+
* directory is not tracked in .speakeasy/gen.lock, so `speakeasy run` never
|
|
4
|
+
* touches it (same contract as src/hooks/registration.ts).
|
|
5
|
+
*
|
|
6
|
+
* Typical wiring:
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { SDKCore } from "@vepler/sdk/core.js";
|
|
10
|
+
* import {
|
|
11
|
+
* createAddressSearch,
|
|
12
|
+
* createSuggestTransport,
|
|
13
|
+
* createUprnRetrieveTransport,
|
|
14
|
+
* } from "@vepler/sdk/address-search";
|
|
15
|
+
*
|
|
16
|
+
* const core = new SDKCore({ apiKeyAuth: "..." });
|
|
17
|
+
* const search = createAddressSearch({
|
|
18
|
+
* suggest: createSuggestTransport({ apiKey: "..." }),
|
|
19
|
+
* retrieve: createUprnRetrieveTransport(core),
|
|
20
|
+
* });
|
|
21
|
+
* const unsubscribe = search.subscribe((state) => render(state));
|
|
22
|
+
* input.addEventListener("input", () => search.input(input.value));
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
export { createAddressSearch } from "./controller.js";
|
|
27
|
+
export type { FetchLike, SuggestHttpResponse, SuggestTransportConfig, UprnLookupFn } from "./default-transports.js";
|
|
28
|
+
export {
|
|
29
|
+
createSuggestTransport,
|
|
30
|
+
createUprnRetrieveTransport,
|
|
31
|
+
parseBillingHeaders,
|
|
32
|
+
} from "./default-transports.js";
|
|
33
|
+
export { AddressSearchError } from "./errors.js";
|
|
34
|
+
export { LruCache } from "./lru-cache.js";
|
|
35
|
+
export { extendsTriggerPrefix, narrowSuggestions, normaliseQuery, tokenise } from "./narrow.js";
|
|
36
|
+
export type {
|
|
37
|
+
AddressSearchController,
|
|
38
|
+
AddressSearchListener,
|
|
39
|
+
AddressSearchOptions,
|
|
40
|
+
AddressSearchState,
|
|
41
|
+
AddressSearchStatus,
|
|
42
|
+
AddressSearchTimers,
|
|
43
|
+
AddressSuggestion,
|
|
44
|
+
BillingMetadata,
|
|
45
|
+
BillingSnapshot,
|
|
46
|
+
MatchedSubstring,
|
|
47
|
+
RetrieveRequest,
|
|
48
|
+
RetrieveResult,
|
|
49
|
+
RetrieveTransport,
|
|
50
|
+
SuggestRequest,
|
|
51
|
+
SuggestResult,
|
|
52
|
+
SuggestTransport,
|
|
53
|
+
TimerHandle,
|
|
54
|
+
} from "./types.js";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal least-recently-used cache over an insertion-ordered Map: reads
|
|
3
|
+
* refresh recency by re-inserting; writes beyond capacity evict the oldest
|
|
4
|
+
* entry (the Map's first key).
|
|
5
|
+
*/
|
|
6
|
+
export class LruCache<K, V> {
|
|
7
|
+
readonly #capacity: number;
|
|
8
|
+
readonly #entries = new Map<K, V>();
|
|
9
|
+
|
|
10
|
+
constructor(capacity: number) {
|
|
11
|
+
this.#capacity = Math.max(1, Math.floor(capacity));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get(key: K): V | undefined {
|
|
15
|
+
const value = this.#entries.get(key);
|
|
16
|
+
if (value === undefined) return undefined;
|
|
17
|
+
this.#entries.delete(key);
|
|
18
|
+
this.#entries.set(key, value);
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
set(key: K, value: V): void {
|
|
23
|
+
this.#entries.delete(key);
|
|
24
|
+
this.#entries.set(key, value);
|
|
25
|
+
if (this.#entries.size > this.#capacity) {
|
|
26
|
+
const oldest = this.#entries.keys().next();
|
|
27
|
+
if (!oldest.done) this.#entries.delete(oldest.value);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
get size(): number {
|
|
32
|
+
return this.#entries.size;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Client-side narrowing for candidate sets. Deliberately mirrors the server's
|
|
3
|
+
* narrowing semantics — same tokenisation, same every-token-prefix rule — so
|
|
4
|
+
* client and server always agree on which rows survive a keystroke. Any
|
|
5
|
+
* divergence here would make the client claim a set is exhausted (an extra
|
|
6
|
+
* counted fetch) or show rows the server would not.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** Lower-case alphanumeric tokens; everything else is a separator. */
|
|
10
|
+
export function tokenise(text: string): string[] {
|
|
11
|
+
return text
|
|
12
|
+
.toLowerCase()
|
|
13
|
+
.split(/[^a-z0-9]+/)
|
|
14
|
+
.filter(Boolean);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A row survives when EVERY token of the query is a case-insensitive prefix
|
|
19
|
+
* of at least one token of the row's title. Order-preserving. An empty query
|
|
20
|
+
* narrows nothing (the whole set survives).
|
|
21
|
+
*/
|
|
22
|
+
export function narrowSuggestions<T extends { readonly title: string }>(rows: readonly T[], query: string): T[] {
|
|
23
|
+
const queryTokens = tokenise(query);
|
|
24
|
+
if (queryTokens.length === 0) return [...rows];
|
|
25
|
+
return rows.filter((row) => {
|
|
26
|
+
const titleTokens = tokenise(row.title);
|
|
27
|
+
return queryTokens.every((queryToken) => titleTokens.some((titleToken) => titleToken.startsWith(queryToken)));
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Lower-case, collapse whitespace runs and trim — the cache and prefix key form. */
|
|
32
|
+
export function normaliseQuery(text: string): string {
|
|
33
|
+
return text.toLowerCase().replace(/\s+/g, " ").trim();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* True when `query` still extends the prefix a candidate set was fetched for,
|
|
38
|
+
* meaning the set is guaranteed to contain every match for `query` and local
|
|
39
|
+
* narrowing stays sound. Backspacing past the trigger (or editing inside it)
|
|
40
|
+
* fails this check, which forces a fresh counted fetch — the set no longer
|
|
41
|
+
* bounds the true match set.
|
|
42
|
+
*/
|
|
43
|
+
export function extendsTriggerPrefix(query: string, triggerPrefix: string): boolean {
|
|
44
|
+
return normaliseQuery(query).startsWith(normaliseQuery(triggerPrefix));
|
|
45
|
+
}
|