diff --git a/components/bridge_interactive_platform/actions/get-listings/get-listings.mjs b/components/bridge_interactive_platform/actions/get-listings/get-listings.mjs new file mode 100644 index 0000000000000..33b8f60603ba3 --- /dev/null +++ b/components/bridge_interactive_platform/actions/get-listings/get-listings.mjs @@ -0,0 +1,125 @@ +import bridgeInteractivePlatform from "../../bridge_interactive_platform.app.mjs"; +import { ConfigurationError } from "@pipedream/platform"; + +export default { + key: "bridge_interactive_platform-get-listings", + name: "Get Listings", + description: "Get MLS listings from a dataset. [See the documentation](https://bridgedataoutput.com/docs/explorer/mls-data)", + version: "0.0.1", + type: "action", + props: { + bridgeInteractivePlatform, + dataset: { + propDefinition: [ + bridgeInteractivePlatform, + "dataset", + ], + }, + near: { + propDefinition: [ + bridgeInteractivePlatform, + "near", + ], + }, + radius: { + propDefinition: [ + bridgeInteractivePlatform, + "radius", + ], + }, + box: { + propDefinition: [ + bridgeInteractivePlatform, + "box", + ], + }, + poly: { + propDefinition: [ + bridgeInteractivePlatform, + "poly", + ], + }, + geohash: { + propDefinition: [ + bridgeInteractivePlatform, + "geohash", + ], + }, + sortBy: { + propDefinition: [ + bridgeInteractivePlatform, + "field", + (c) => ({ + dataset: c.dataset, + }), + ], + label: "Sort By", + }, + order: { + type: "string", + label: "Order", + description: "Order of responses", + optional: true, + options: [ + "asc", + "desc", + ], + }, + fields: { + propDefinition: [ + bridgeInteractivePlatform, + "field", + (c) => ({ + dataset: c.dataset, + }), + ], + type: "string[]", + label: "Fields", + description: "Filters Response fields", + }, + limit: { + type: "integer", + label: "Limit", + description: "Maximum number of responses", + optional: true, + }, + offset: { + type: "integer", + label: "Offset", + description: "Number of responses to skip", + optional: true, + }, + }, + async run({ $ }) { + const coords = { + near: this.near, + poly: this.poly, + box: this.box, + geohash: this.geohash, + }; + + if (Object.values(coords).filter(Boolean).length > 1) { + throw new ConfigurationError("Only one of near, poly, box, or geohash can be used"); + } + + const response = await this.bridgeInteractivePlatform.getListings({ + dataset: this.dataset, + params: { + near: this.near, + radius: this.radius, + box: this.box, + poly: this.poly, + geohash: this.geohash, + sortBy: this.sortBy, + order: this.order, + fields: this.fields + ? this.fields.join(",") + : undefined, + limit: this.limit, + offset: this.offset, + }, + }); + $.export("$summary", `Found ${response.bundle.length} listings`); + return response; + }, +}; diff --git a/components/bridge_interactive_platform/bridge_interactive_platform.app.mjs b/components/bridge_interactive_platform/bridge_interactive_platform.app.mjs index 92cdf1d1a88ed..ddc298d9e93c8 100644 --- a/components/bridge_interactive_platform/bridge_interactive_platform.app.mjs +++ b/components/bridge_interactive_platform/bridge_interactive_platform.app.mjs @@ -1,11 +1,84 @@ +import { axios } from "@pipedream/platform"; + export default { type: "app", app: "bridge_interactive_platform", - propDefinitions: {}, + propDefinitions: { + dataset: { + type: "string", + label: "Dataset", + description: "The dataset to use for the query", + }, + field: { + type: "string", + label: "Field", + description: "Response field to sort query by", + optional: true, + async options({ dataset }) { + const response = await this.getListings({ + dataset, + params: { + limit: 1, + }, + }); + const listing = response.bundle[0]; + return Object.keys(listing); + }, + }, + near: { + type: "string", + label: "Near", + description: "Coord or location eg. near=-73.98,40.73 or near=San Diego", + optional: true, + }, + radius: { + type: "string", + label: "Radius", + description: "Search Radius in miles, km, or degrees (no units)s", + optional: true, + }, + box: { + type: "string", + label: "Box", + description: "Coordinates representing a box eg. box=-112.5,33.75,-123,39", + optional: true, + }, + poly: { + type: "string", + label: "Poly", + description: "Minimum 3 pairs of coordinates representing a polygon eg. poly=-112.5,33.75,-123,39,-120,38", + optional: true, + }, + geohash: { + type: "string", + label: "Geohash", + description: "Alphanumeric geohash eg. geohash=ezs42", + optional: true, + }, + }, methods: { - // this.$auth contains connected account data - authKeys() { - console.log(Object.keys(this.$auth)); + _baseUrl() { + return "https://api.bridgedataoutput.com/api/v2"; + }, + _makeRequest({ + $ = this, path, params, ...opts + }) { + return axios($, { + url: `${this._baseUrl()}${path}`, + params: { + ...params, + access_token: `${this.$auth.access_token}`, + }, + ...opts, + }); + }, + getListings({ + dataset, ...opts + }) { + return this._makeRequest({ + path: `/${dataset}/listings`, + ...opts, + }); }, }, -}; \ No newline at end of file +}; diff --git a/components/bridge_interactive_platform/package.json b/components/bridge_interactive_platform/package.json index c355dfce8fbbb..3d42a318eb4cf 100644 --- a/components/bridge_interactive_platform/package.json +++ b/components/bridge_interactive_platform/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/bridge_interactive_platform", - "version": "0.0.1", + "version": "0.1.0", "description": "Pipedream Bridge Interactive Platform Components", "main": "bridge_interactive_platform.app.mjs", "keywords": [ @@ -11,5 +11,8 @@ "author": "Pipedream (https://pipedream.com/)", "publishConfig": { "access": "public" + }, + "dependencies": { + "@pipedream/platform": "^3.1.0" } -} \ No newline at end of file +} diff --git a/components/bridge_interactive_platform/sources/new-listing-created/new-listing-created.mjs b/components/bridge_interactive_platform/sources/new-listing-created/new-listing-created.mjs new file mode 100644 index 0000000000000..66f264526ca33 --- /dev/null +++ b/components/bridge_interactive_platform/sources/new-listing-created/new-listing-created.mjs @@ -0,0 +1,123 @@ +import bridgeInteractivePlatform from "../../bridge_interactive_platform.app.mjs"; +import { + DEFAULT_POLLING_SOURCE_TIMER_INTERVAL, ConfigurationError, +} from "@pipedream/platform"; +import sampleEmit from "./test-event.mjs"; + +export default { + key: "bridge_interactive_platform-new-listing-created", + name: "New Listing Created", + description: "Emit new event when a new listing is created. [See the documentation](https://bridgedataoutput.com/docs/explorer/mls-data)", + version: "0.0.1", + type: "source", + props: { + bridgeInteractivePlatform, + db: "$.service.db", + timer: { + type: "$.interface.timer", + default: { + intervalSeconds: DEFAULT_POLLING_SOURCE_TIMER_INTERVAL, + }, + }, + dataset: { + propDefinition: [ + bridgeInteractivePlatform, + "dataset", + ], + }, + near: { + propDefinition: [ + bridgeInteractivePlatform, + "near", + ], + }, + radius: { + propDefinition: [ + bridgeInteractivePlatform, + "radius", + ], + }, + box: { + propDefinition: [ + bridgeInteractivePlatform, + "box", + ], + }, + poly: { + propDefinition: [ + bridgeInteractivePlatform, + "poly", + ], + }, + geohash: { + propDefinition: [ + bridgeInteractivePlatform, + "geohash", + ], + }, + }, + methods: { + _getLastTs() { + return this.db.get("lastTs") || 0; + }, + _setLastTs(ts) { + this.db.set("lastTs", ts); + }, + async processEvent(limit = 100) { + const coords = { + near: this.near, + poly: this.poly, + box: this.box, + geohash: this.geohash, + }; + + if (Object.values(coords).filter(Boolean).length > 1) { + throw new ConfigurationError("Only one of near, poly, box, or geohash can be used"); + } + + const lastTs = this._getLastTs(); + const response = await this.bridgeInteractivePlatform.getListings({ + dataset: this.dataset, + params: { + near: this.near, + radius: this.radius, + box: this.box, + poly: this.poly, + geohash: this.geohash, + sortBy: "OriginalEntryTimestamp", + order: "desc", + limit, + }, + }); + + if (!response?.bundle?.length) { + return; + }; + + this._setLastTs(Date.parse(response.bundle[0].OriginalEntryTimestamp)); + + const newListings = response.bundle + .filter((listing) => Date.parse(listing.OriginalEntryTimestamp) > lastTs); + newListings.forEach((listing) => { + const meta = this.generateMeta(listing); + this.$emit(listing, meta); + }); + }, + generateMeta(listing) { + return { + id: listing.ListingId, + summary: `New Listing Created: ${listing.ListingId}`, + ts: Date.parse(listing.OriginalEntryTimestamp), + }; + }, + }, + hooks: { + async deploy() { + await this.processEvent(25); + }, + }, + async run() { + await this.processEvent(); + }, + sampleEmit, +}; diff --git a/components/bridge_interactive_platform/sources/new-listing-created/test-event.mjs b/components/bridge_interactive_platform/sources/new-listing-created/test-event.mjs new file mode 100644 index 0000000000000..3e62394cea713 --- /dev/null +++ b/components/bridge_interactive_platform/sources/new-listing-created/test-event.mjs @@ -0,0 +1,857 @@ +export default { + "StreetDirPrefix": null, + "DistanceToStreetComments": null, + "PublicSurveyRange": null, + "LeaseAssignableYN": null, + "GreenWaterConservation": [], + "NumberOfUnitsMoMo": null, + "LivingAreaUnits": "SquareFeet", + "CoListAgentCellPhone": null, + "SeatingCapacity": null, + "TaxLegalDescription": "Totam ut aut magni consequatur voluptas. Dolorem ipsam voluptatem totam praesentium et molestias hic. Et ex animi ab assumenda aliquam aliquam.\n \r\tAdipisci repellendus esse nesciunt autem ea consequuntur. Fuga ut possimus dolores nesciunt ullam velit. Dolores aliquam ut delectus enim harum modi alias porro. Id quas in ipsum et eum est saepe eos. Ad autem sint aliquid dolores earum nulla architecto soluta.", + "LockBoxLocation": "Illum veniam ut expedita mollitia perspiciatis expedita et porro. Id consequatur natus repellat harum ea voluptatem sequi nemo. Corrupti quis optio unde quis. Architecto autem consequatur totam eum omnis magni. Aliquam iste perferendis et.", + "BuyerAgentDesignation": [], + "YearEstablished": null, + "BuyerTeamKey": null, + "ListPriceLow": null, + "ContingentDate": "2019-09-30", + "LaundryFeatures": [ + "In Kitchen", + "Gas Dryer Hookup" + ], + "Flooring": [ + "Hardwood", + "Laminate", + "Vinyl", + "Tiles", + "Cork" + ], + "PhotosCount": 7, + "FireplacesTotal": 4, + "ListTeamKey": null, + "AdditionalParcelsYN": true, + "CoBuyerAgentDirectPhone": null, + "WaterfrontFeatures": [], + "PastureArea": null, + "SubAgencyCompensation": null, + "ViewYN": false, + "SeniorCommunityYN": true, + "Cooling": [ + "Evaporative Cooler", + "Ceiling Fan" + ], + "ExteriorFeatures": [], + "CountryRegion": null, + "OtherParking": null, + "IrrigationWaterRightsAcres": null, + "SourceSystemID": null, + "StatusChangeTimestamp": "2019-10-30T23:42:50.358Z", + "SecurityFeatures": [], + "BuyerAgentFullName": null, + "RVParkingDimensions": null, + "CoBuyerAgentDesignation": [], + "CoBuyerAgentNamePrefix": null, + "CoBuyerAgentLastName": null, + "PrivateOfficeRemarks": "Eum eius in sint. Libero ratione voluptas facere vel. In fugiat itaque sint ullam harum inventore perspiciatis.\n \r\tAb quia aliquid nulla suscipit ab itaque dolorum soluta. Corporis iusto est voluptatem qui. Cumque aut laborum sed maiores.\n \r\tSint aperiam et dolore sequi praesentium. Quae animi deserunt ut illum et voluptas. Et accusamus molestiae praesentium dolore dolor.\n \r\tId aut non nihil. Ab minus unde et laborum. Tempora unde placeat iusto quasi. Corrupti omnis facilis id.", + "DocumentsCount": 3, + "CancelationDate": null, + "AssociationName": "optio", + "DistanceToBusComments": null, + "TaxExemptions": [], + "CoListAgentURL": null, + "BuildingName": "Angelita Langosh Plc", + "YearsCurrentOwner": null, + "DistanceToSchoolsComments": null, + "ListAgentPreferredPhoneExt": null, + "AssociationFeeFrequency": "Bi-Weekly", + "CrossStreet": null, + "OccupantPhone": "608.509.6631 x5911", + "HeatingYN": true, + "CoBuyerAgentStateLicense": null, + "WaterBodyName": null, + "ManagerExpense": null, + "DistanceToSewerNumeric": null, + "DistanceToGasComments": null, + "CoBuyerAgentMiddleName": null, + "AboveGradeFinishedArea": 7149, + "BuyerAgentFax": null, + "MajorChangeType": "back on market", + "ListingKeyNumeric": null, + "Appliances": [ + "Dishwasher", + "Disposal", + "Oven" + ], + "MLSAreaMajor": null, + "TaxAnnualAmount": 852020, + "LandLeaseAmount": 84533860305, + "CoBuyerAgentPreferredPhoneExt": null, + "CoListAgentPreferredPhone": null, + "CurrentUse": [], + "OriginatingSystemKey": "test", + "CountyOrParish": "County", + "PropertyType": "Business", + "BathroomsTotalDecimal": 4, + "NumberOfPads": null, + "TaxParcelLetter": null, + "OriginatingSystemName": null, + "AssociationYN": true, + "MlsStatus": "Active", + "CarrierRoute": null, + "BuyerOfficeURL": null, + "StreetNumber": null, + "GrossScheduledIncome": null, + "LeaseTerm": null, + "ListingKey": "P_5dba1ffa4aa4055b9f2a5936", + "CoBuyerAgentNameSuffix": null, + "CoListAgentNamePrefix": null, + "AssociationPhone2": null, + "CommonWalls": [ + "No One Below", + "No One Above", + "No Common Walls" + ], + "ListAgentVoiceMail": null, + "CommonInterest": null, + "ListAgentKeyNumeric": null, + "CoListAgentLastName": null, + "ShowingContactType": [ + "Seller" + ], + "CoBuyerAgentMobilePhone": null, + "Vegetation": [], + "IrrigationWaterRightsYN": null, + "BuyerAgentMiddleName": null, + "ElementarySchool": "Bartoletti-Homenick", + "DistanceToFreewayComments": null, + "StreetDirSuffix": null, + "DistanceToSchoolsNumeric": null, + "CoBuyerOfficePhone": null, + "CoListOfficePhoneExt": null, + "ListAgentFirstName": "Dario", + "DistanceToShoppingNumeric": null, + "TaxMapNumber": null, + "Directions": "Quibusdam aut accusamus et iure labore. Ut voluptate non sunt sit accusantium qui rerum aut. Voluptatem illo quia nulla et qui itaque quaerat.\n \r\tHarum voluptas in voluptatem non. Ea nesciunt aut reiciendis. Rerum aut qui voluptas quis nihil quod nesciunt.", + "Concessions": null, + "AttachedGarageYN": false, + "OnMarketTimestamp": null, + "DistanceToBusNumeric": null, + "StandardStatus": "Active", + "CultivatedArea": null, + "Roof": [ + "Metal" + ], + "BuyerAgentNamePrefix": null, + "ParkingTotal": 2, + "ContinentRegion": null, + "ListAgentOfficePhone": null, + "ListAgentHomePhone": null, + "BuyerTeamName": null, + "CoListOfficeKeyNumeric": null, + "DistanceToElectricUnits": null, + "PoolPrivateYN": false, + "PropertyUniversalID": null, + "AdditionalParcelsDescription": null, + "Township": null, + "ListingTerms": [ + "Cash" + ], + "NumberOfUnitsLeased": null, + "FurnitureReplacementExpense": null, + "DistanceToStreetUnits": null, + "BuyerAgentNameSuffix": null, + "GardenerExpense": null, + "DistanceToSchoolBusUnits": null, + "BuilderName": "Klein-Walsh", + "BuyerAgentStateLicense": null, + "ListOfficeEmail": null, + "PropertySubType": "Condominium", + "CoListAgentFirstName": null, + "BuyerAgentDirectPhone": null, + "CoBuyerAgentPreferredPhone": null, + "OtherExpense": null, + "Possession": [ + "Close of Escrow", + "Close Plus 1 Day", + "Close Plus 2 Days", + "Close Plus 3 Days", + "Close Plus 3 to 5 Days", + "Close Plus 30 Days" + ], + "CoListAgentOfficePhone": null, + "WaterfrontYN": true, + "BathroomsFull": 4, + "LotSizeAcres": 9, + "SubdivisionName": "expedita", + "SpecialLicenses": [], + "BuyerOfficeAOR": null, + "InternetAddressDisplayYN": false, + "Fencing": [ + "Wire", + "Wrought Iron", + "Wood" + ], + "LotSizeSource": "Estimate", + "WithdrawnDate": null, + "DistanceToWaterNumeric": null, + "VideosCount": null, + "Contingency": "Doloremque maiores reiciendis rerum. Quis quaerat ut debitis placeat ut aut nihil aliquam. Ut sunt magnam autem. Fugit molestiae sed sit.", + "FarmCreditServiceInclYN": null, + "ListingService": "Entry Only", + "Elevation": 59867, + "WaterSource": [ + "Municipal", + "Irrigation District", + "Private Utility" + ], + "Topography": null, + "SubAgencyCompensationType": null, + "ProfessionalManagementExpense": null, + "DistanceToFreewayUnits": null, + "DoorFeatures": [ + "Truck Doors", + "Overhead Doors", + "Sliding Doors" + ], + "StoriesTotal": 3, + "YearBuilt": 1955, + "ElectricOnPropertyYN": true, + "MapCoordinateSource": null, + "StateRegion": null, + "IrrigationSource": [], + "BathroomsPartial": 6, + "CoListOfficeFax": null, + "Disclaimer": "Quaerat accusantium explicabo repudiandae et. Consequuntur nisi illo nam officia. Et ut saepe modi dolore dolorem eum. Veniam animi dolorem magnam amet quod qui ea.\n \r\tPlaceat minus et provident qui doloribus. Nostrum quos omnis quo. Illo quos non unde alias. Est sunt magnam necessitatibus at. Cumque et fugit reprehenderit enim adipisci aut qui rerum.", + "ZoningDescription": "Agricultural", + "PreviousListPrice": 269900, + "LandLeaseYN": true, + "VacancyAllowanceRate": null, + "NumberOfSeparateWaterMeters": null, + "DaysOnMarket": 358, + "PetsAllowed": [ + "Yes", + "No", + "Call", + "Cats OK", + "Dogs OK", + "Number Limit" + ], + "CoBuyerAgentVoiceMailExt": null, + "BuyerAgencyCompensationType": null, + "ListAgentFax": null, + "NetOperatingIncome": null, + "SerialXX": null, + "OccupantType": "Vacant", + "OtherStructures": [ + "quia", + "laudantium" + ], + "AssociationAmenities": [ + "Pool", + "Clubhouse", + "Gym" + ], + "BodyType": [], + "ClosePrice": null, + "VirtualTourURLZillow": null, + "ListAgentDesignation": [], + "BuyerAgentPreferredPhone": null, + "DistanceToPhoneServiceComments": null, + "PoolExpense": null, + "PendingTimestamp": "2018-11-12T11:11:06.614Z", + "CoBuyerAgentURL": null, + "StreetNumberNumeric": null, + "ListAgentCellPhone": null, + "CoListAgentOfficePhoneExt": null, + "IncomeIncludes": [], + "CoBuyerAgentVoiceMail": null, + "LivingArea": 1750, + "TaxAssessedValue": 444566, + "BuyerTeamKeyNumeric": null, + "CoListAgentKeyNumeric": null, + "CumulativeDaysOnMarket": null, + "CoListAgentStateLicense": null, + "ParkingFeatures": [], + "PostalCodePlus4": null, + "ListAgentPreferredPhone": "1-703-302-8520 x6415", + "CoBuyerAgentHomePhone": null, + "BuyerOfficePhoneExt": null, + "PoolFeatures": [], + "BuyerAgentOfficePhoneExt": null, + "NumberOfUnitsInCommunity": null, + "Heating": [ + "Heat Pump", + "Wood", + "Forced Air" + ], + "StructureType": [], + "BuildingAreaSource": "Agent", + "BathroomsOneQuarter": 1, + "BuilderModel": "Awesome Wooden Computer", + "CoBuyerAgentTollFreePhone": null, + "TotalActualRent": null, + "TrashExpense": null, + "CoListAgentMlsId": null, + "DistanceToStreetNumeric": null, + "PublicSurveyTownship": null, + "ListAgentMiddleName": "Tyrell", + "OwnerPays": [], + "BedroomsPossible": 8, + "BuyerAgentVoiceMailExt": null, + "BuyerOfficePhone": null, + "RoadResponsibility": [], + "ListingAgreement": null, + "PublicSurveySection": null, + "CoListOfficeEmail": null, + "AssociationName2": "Spinka LLC", + "ListingId": "5dba1ffa4aa4055b9f2a5937", + "DocumentsChangeTimestamp": null, + "CommunityFeatures": [], + "ShowingStartTime": null, + "BathroomsTotalInteger": 7, + "ParkManagerName": null, + "MapCoordinate": null, + "RoomsTotal": 24, + "DistanceToPlaceofWorshipComments": null, + "ListAgentOfficePhoneExt": null, + "BuildingAreaUnits": "Square Meteres", + "City": "Pourosmouth", + "OwnerPhone": null, + "InternetEntireListingDisplayYN": false, + "CropsIncludedYN": null, + "BuyerAgentOfficePhone": null, + "GrazingPermitsBlmYN": null, + "BuyerAgencyCompensation": null, + "CoBuyerOfficeKeyNumeric": null, + "LeaseExpiration": null, + "ListAgentNameSuffix": null, + "ShowingAdvanceNotice": null, + "SerialX": null, + "InternetAutomatedValuationDisplayYN": false, + "BuyerAgentTollFreePhone": null, + "SerialU": null, + "TaxYear": 2018, + "Telephone": [ + "Installed" + ], + "DirectionFaces": "East", + "SourceSystemName": null, + "PossibleUse": [], + "Furnished": null, + "DistanceToSchoolBusComments": null, + "ConstructionMaterials": [ + "Brick" + ], + "SuppliesExpense": null, + "ListOfficeURL": null, + "RangeArea": null, + "ListingInputOriginalMedia": null, + "OccupantName": "Asha Donald Pollich", + "BuyerOfficeKey": null, + "ShowingEndTime": null, + "TaxOtherAnnualAssessmentAmount": null, + "PrivateRemarks": "Inventore quae modi saepe. Accusantium beatae laboriosam distinctio laudantium. Quod a corrupti in.\n \r\tNihil vitae qui animi numquam. Dolorem aut doloribus explicabo officia aut eveniet enim at. Iusto nam enim voluptate at atque voluptates ipsum voluptate.\n \r\tAssumenda quas exercitationem in voluptatem eos. Quo est similique perspiciatis ut natus et dolores. Debitis ut aut facilis dignissimos cum debitis.\n \r\tVoluptas iusto soluta vitae debitis. Eaque qui consequatur quia eius. Dicta aliquam hic minima sunt aut magni et.", + "InternetConsumerCommentYN": false, + "BuildingAreaTotal": 1614323, + "YearBuiltSource": "Estimate", + "OtherEquipment": [ + "Central Vacuum Nozzle", + "Intercom" + ], + "HabitableResidenceYN": null, + "PestControlExpense": null, + "LaborInformation": [], + "LandLeaseAmountFrequency": "Quarterly", + "BedroomsTotal": 4, + "ShowingInstructions": "Hic doloribus in labore dicta culpa. Est illum voluptatum ratione labore voluptas totam qui repudiandae. Id dolorem optio autem asperiores alias quia non sit. Molestiae ut qui ut quod dolor distinctio est. Sit reiciendis consequuntur repudiandae excepturi voluptates earum labore.\n \r\tDucimus fugit nihil ut consequuntur aut aut quisquam amet. Nihil nobis sit et delectus dolores. Asperiores voluptatem nisi omnis eaque hic doloremque ut amet.\n \r\tQui odio sunt doloremque veritatis. Et mollitia nostrum dicta omnis exercitationem quo aut aspernatur. Ut nemo praesentium quod id accusantium. Rerum in molestias dolorem impedit provident ducimus.\n \r\tEos in molestiae laudantium vitae nemo. Laborum est odio ut rem ut. Nulla dolores nihil aliquid at assumenda dolore.", + "CoBuyerOfficeEmail": null, + "CoListAgentDesignation": [], + "CoListAgentDirectPhone": null, + "CoolingYN": true, + "GreenSustainability": [], + "InsuranceExpense": null, + "ListAgentKey": "M_5dba1fa5a2a50c5b81f087b1", + "OnMarketDate": "2018-11-06", + "CarportSpaces": 2, + "LotSizeUnits": null, + "ListAgentEmail": null, + "ContractStatusChangeDate": "2019-04-04", + "BuyerAgentHomePhone": null, + "LeaseAmountFrequency": null, + "MajorChangeTimestamp": null, + "ElevationUnits": "Feet", + "CoBuyerAgentEmail": null, + "WalkScore": null, + "GarageYN": true, + "HoursDaysOfOperation": [], + "BuyerAgentPreferredPhoneExt": null, + "DistanceToWaterUnits": null, + "Make": null, + "Longitude": -118.240256, + "AvailabilityDate": "2020-01-07", + "TaxTract": "Lot 51 of Block 81 of Tract 2096 of Hermanmouth", + "Skirt": [], + "BuyerAgentURL": null, + "BuyerOfficeFax": null, + "CarportYN": true, + "PublicRemarks": "Cupiditate distinctio dolorem ratione animi aut. Dolorum blanditiis laboriosam et consectetur rem rerum. Natus dolores dolorum labore rerum quibusdam doloremque. Aliquam nemo consequatur iste et. Error laborum vitae numquam molestias id eligendi ea.\n \r\tImpedit magnam delectus et minus esse. Et itaque deserunt temporibus. Sunt natus placeat perferendis pariatur provident. Aut voluptas blanditiis tempora id animi alias dolores sequi. Beatae ut quia veniam sequi.\n \r\tSequi qui deserunt facilis omnis non. Deleniti vitae quis enim sunt eaque eos. Distinctio et exercitationem sint dolorem et.\n \r\tLaudantium omnis magnam voluptatibus qui occaecati laborum autem. Voluptates hic explicabo dolorem quaerat veritatis. Rerum explicabo vitae dignissimos id.", + "FinancialDataSource": [ + "Listing Broker", + "Not Available" + ], + "CoBuyerAgentKey": null, + "PostalCity": null, + "CurrentFinancing": [], + "CableTvExpense": null, + "NumberOfSeparateElectricMeters": null, + "ElementarySchoolDistrict": "Arkansas", + "NumberOfFullTimeEmployees": null, + "OffMarketTimestamp": null, + "CoBuyerOfficeFax": null, + "CoBuyerAgentFirstName": null, + "CoBuyerAgentPager": null, + "CoListOfficeName": null, + "PurchaseContractDate": null, + "ListAgentVoiceMailExt": null, + "RoadSurfaceType": [ + "Rock" + ], + "ListAgentPager": null, + "PriceChangeTimestamp": "2019-07-03T15:14:33.485Z", + "MapURL": null, + "CoListAgentPager": null, + "LeasableArea": null, + "ListingContractDate": "2019-10-30", + "CoListOfficeKey": null, + "MLSAreaMinor": null, + "FarmLandAreaUnits": null, + "Zoning": "CPO", + "ListAgentAOR": null, + "CoBuyerAgentKeyNumeric": null, + "GreenIndoorAirQuality": [], + "LivingAreaSource": "Assessor", + "MaintenanceExpense": null, + "BuyerAgentVoiceMail": null, + "DistanceToElectricNumeric": null, + "ListAOR": null, + "BelowGradeFinishedArea": 2073, + "CoBuyerOfficeName": null, + "ListOfficeName": "Kovacek LLC Realty", + "TaxBlock": "Lot 12 of Block 59 of Tract 1805 of New Vernville", + "CoListAgentTollFreePhone": null, + "BuyerFinancing": [ + "Assumed", + "Cash", + "Contract", + "Conventional", + "FHA", + "FHA 203(b)", + "FHA 203(k)" + ], + "GreenLocation": [], + "MobileWidth": null, + "GrazingPermitsPrivateYN": null, + "Basement": [ + "voluptas", + "culpa", + "incidunt", + "quo", + "reprehenderit" + ], + "BusinessType": [ + "Advertising" + ], + "DualVariableCompensationYN": false, + "Latitude": 34.06503, + "NumberOfSeparateGasMeters": null, + "PhotosChangeTimestamp": null, + "ListPrice": 763189, + "RoadFrontageType": [], + "BuyerAgentKeyNumeric": null, + "ListAgentTollFreePhone": null, + "DistanceToGasUnits": null, + "DistanceToPlaceofWorshipNumeric": null, + "ListOfficePhone": null, + "CoListAgentFax": null, + "GreenEnergyGeneration": [], + "DOH1": null, + "DOH2": null, + "FoundationArea": 7855929, + "DOH3": null, + "BelowGradeFinishedAreaSource": "Agent", + "CoBuyerOfficeKey": null, + "CoListAgentHomePhone": null, + "ElectricExpense": null, + "CoListOfficeMlsId": null, + "DistanceToElectricComments": null, + "CoBuyerOfficePhoneExt": null, + "AssociationFee2Frequency": "Bi-Weekly", + "CoListAgentVoiceMailExt": null, + "StateOrProvince": "New Mexico", + "AboveGradeFinishedAreaUnits": "Square Feet", + "DistanceToSewerComments": null, + "ListOfficeAOR": null, + "StreetAdditionalInfo": null, + "GreenBuildingVerificationType": null, + "CoveredSpaces": 2, + "MiddleOrJuniorSchool": "Hahn Group", + "AssociationFeeIncludes": [ + "Water", + "Trash", + "Maintenance Grounds", + "Cable TV", + "Security", + "Maintenance Exterior" + ], + "CoListAgentMobilePhone": null, + "ConcessionsComments": null, + "SyndicateTo": [ + "Zillow" + ], + "VirtualTourURLUnbranded": null, + "Gas": [ + "Private LP Tank" + ], + "CoListAgentEmail": null, + "LandLeaseExpirationDate": null, + "FrontageLength": "170", + "WorkmansCompensationExpense": null, + "ListOfficeKeyNumeric": null, + "CoListOfficeAOR": null, + "Disclosures": [], + "ListOfficeKey": "O_5dba1f95cf17cd5b43eb02a3", + "DistanceToGasNumeric": null, + "FireplaceYN": false, + "BathroomsThreeQuarter": 1, + "CoBuyerAgentCellPhone": null, + "BridgeModificationTimestamp": "2019-10-25T18:37:53.520Z", + "YearBuiltEffective": null, + "EntryLevel": null, + "ListAgentFullName": "Dario Tyrell Kling", + "TaxBookNumber": null, + "DistanceToSchoolBusNumeric": null, + "ListAgentMobilePhone": null, + "ShowingContactPhoneExt": null, + "MainLevelBathrooms": 1, + "PropertyCondition": [], + "FrontageType": [ + "Golf Course", + "Lakefront" + ], + "Stories": 1, + "DevelopmentStatus": [], + "GrossIncome": null, + "ParcelNumber": "1519", + "ShowingDays": null, + "CoBuyerAgentAOR": null, + "ShowingRequirements": null, + "UnitsFurnished": null, + "FuelExpense": null, + "CoListAgentVoiceMail": null, + "FoundationDetails": [ + "Slurry" + ], + "View": [], + "SignOnPropertyYN": true, + "OperatingExpense": null, + "LeaseRenewalOptionYN": null, + "LeaseRenewalCompensation": [], + "YearBuiltDetails": "Aut quia placeat aut eveniet non. Odio maxime accusantium molestiae. Tenetur omnis at iusto. Velit excepturi rerum ipsam id rerum pariatur sit.", + "BuyerAgentPager": null, + "HighSchool": "Schamberger-Walsh", + "LeaseConsideredYN": true, + "HomeWarrantyYN": true, + "Levels": [ + "One Level", + "Two Level", + "Split Level", + "Three or More Level" + ], + "OperatingExpenseIncludes": [], + "StreetSuffixModifier": null, + "IDXParticipationYN": true, + "DistanceToFreewayNumeric": null, + "ListAgentLastName": "Kling", + "ListAgentURL": null, + "InteriorFeatures": [ + "Nesciunt minima consequatur facere. Ut eaque soluta nostrum magnam. Deleniti omnis eaque natus similique. Non voluptatem minus eligendi non cupiditate occaecati. Expedita ab vero esse ut temporibus." + ], + "LockBoxType": [ + "Laborum rerum totam corporis quas at quis. Rem nostrum tempore exercitationem soluta rerum sit eum dolor. Nisi quisquam dolorem non suscipit sed delectus. Nemo harum saepe soluta." + ], + "OffMarketDate": null, + "CoBuyerAgentMlsId": null, + "PowerProductionType": null, + "DistanceToPhoneServiceNumeric": null, + "DistanceToWaterComments": null, + "CloseDate": "2019-04-20", + "ApprovalStatus": null, + "StreetSuffix": null, + "DistanceToPhoneServiceUnits": null, + "HorseAmenities": [], + "ListAgentMlsId": "5dba1fa5a2a50c5b81f087b2", + "CoListAgentNameSuffix": null, + "ListOfficePhoneExt": null, + "WaterSewerExpense": null, + "GrazingPermitsForestServiceYN": null, + "LotSizeDimensions": "436 x 616 x 250 x 358", + "ModificationTimestamp": "2019-07-06T08:30:25.226Z", + "PropertyAttachedYN": false, + "BuyerAgentKey": null, + "TaxLot": "Lot 6 of Block 68 of Tract 3220 of Jarvisfurt", + "BusinessName": "Terry-Russel", + "BuyerAgentEmail": null, + "Coordinates": [ + -118.240256, + 34.06503 + ], + "AccessCode": "6h9e", + "CoBuyerOfficeMlsId": null, + "ListAgentNamePrefix": null, + "OriginatingSystemID": "test", + "HorseYN": false, + "LotDimensionsSource": "Assessor", + "Country": "US", + "UnitNumber": null, + "CoListAgentPreferredPhoneExt": null, + "OpenParkingYN": false, + "TransactionBrokerCompensation": null, + "LeasableAreaUnits": null, + "MobileLength": null, + "CoBuyerOfficeAOR": null, + "NumberOfUnitsVacant": null, + "ListOfficeMlsId": "5dba1f95cf17cd5b43eb02a4", + "Inclusions": "Ipsum adipisci eveniet blanditiis. Et eum quia est. Quisquam eum modi soluta rerum maxime perferendis suscipit.", + "ListTeamKeyNumeric": null, + "ListAgentDirectPhone": null, + "CoBuyerAgentOfficePhone": null, + "VacancyAllowance": null, + "AssociationPhone": "776-887-5296", + "ConcessionsAmount": null, + "VirtualTourURLBranded": null, + "RoomType": null, + "CoListAgentFullName": null, + "CoListAgentKey": null, + "BelowGradeFinishedAreaUnits": "Square Meteres", + "CoListAgentMiddleName": null, + "CoListOfficeURL": null, + "RentControlYN": null, + "EntryLocation": "Elevator", + "BuyerAgentMobilePhone": null, + "SpaYN": false, + "SpaFeatures": [], + "ShowingContactPhone": "1-419-214-6506 x5022", + "BuyerAgentFirstName": null, + "DistanceToPlaceofWorshipUnits": null, + "ExistingLeaseType": [], + "BathroomsHalf": 4, + "GardnerExpense": null, + "LotSizeArea": null, + "Sewer": [ + "Septic" + ], + "ExpirationDate": null, + "SyndicationRemarks": null, + "Model": null, + "BuyerAgentLastName": null, + "MaloneId": null, + "ListAgentStateLicense": null, + "StreetName": null, + "ShowingAttendedYN": null, + "AboveGradeFinishedAreaSource": "Agent", + "ListOfficeFax": null, + "AnchorsCoTenants": "Murray, Volkman and Wunsch,Hilll-Ledner,Rodriguez LLC,Ortiz, Strosin and Friesen,Beahan, Steuber and Crist", + "PatioAndPorchFeatures": [ + "consectetur", + "facere", + "dignissimos", + "ducimus", + "beatae", + "et", + "inventore" + ], + "BuyerAgentCellPhone": null, + "NumberOfLots": null, + "ParkManagerPhone": null, + "ListTeamName": null, + "MainLevelBedrooms": null, + "CityRegion": "Adityahaven", + "NumberOfPartTimeEmployees": null, + "LockBoxSerialNumber": "5s8tpgiu8lf3mrphn720ti5xy", + "DistanceToBusUnits": null, + "Utilities": [], + "FireplaceFeatures": [ + "One", + "Living Room Fireplace", + "Wood", + "Gas" + ], + "WindowFeatures": [], + "SpecialListingConditions": [ + "Standard", + "REO" + ], + "NewConstructionYN": false, + "BuyerAgentAOR": null, + "ParkName": null, + "NumberOfBuildings": null, + "GarageSpaces": 4, + "OriginalListPrice": 795027, + "AssociationFee2": 80, + "HoursDaysOfOperationDescription": null, + "GreenEnergyEfficient": [ + "Energy efficient doors", + "Energy efficient windows" + ], + "Media": [ + { + "Order": 1, + "MediaURL": "https://s3.amazonaws.com/retsly-importd-production/test_data/listings/34.jpg", + "ResourceRecordKey": "ME_KEY_5dba1ffa4aa4055b9f2a592f", + "ResourceName": "Property", + "ClassName": "Business", + "MediaCategory": "Photo", + "MimeType": "image/jpeg", + "MediaObjectID": "ME_5dba1ffa4aa4055b9f2a592f", + "ShortDescription": "Inflammatio sequi vester alias vociferor." + }, + { + "Order": 2, + "MediaURL": "https://s3.amazonaws.com/retsly-importd-production/test_data/listings/20.jpg", + "ResourceRecordKey": "ME_KEY_5dba1ffa4aa4055b9f2a5930", + "ResourceName": "Property", + "ClassName": "Business", + "MediaCategory": "Photo", + "MimeType": "image/jpeg", + "MediaObjectID": "ME_5dba1ffa4aa4055b9f2a5930", + "ShortDescription": "Consequatur rerum abstergo adfectus stillicidium." + }, + { + "Order": 3, + "MediaURL": "https://s3.amazonaws.com/retsly-importd-production/test_data/listings/23.jpg", + "ResourceRecordKey": "ME_KEY_5dba1ffa4aa4055b9f2a5931", + "ResourceName": "Property", + "ClassName": "Business", + "MediaCategory": "Photo", + "MimeType": "image/jpeg", + "MediaObjectID": "ME_5dba1ffa4aa4055b9f2a5931", + "ShortDescription": "Omnis armo suadeo corrupti varius." + }, + { + "Order": 4, + "MediaURL": "https://s3.amazonaws.com/retsly-importd-production/test_data/listings/31.jpg", + "ResourceRecordKey": "ME_KEY_5dba1ffa4aa4055b9f2a5932", + "ResourceName": "Property", + "ClassName": "Business", + "MediaCategory": "Photo", + "MimeType": "image/jpeg", + "MediaObjectID": "ME_5dba1ffa4aa4055b9f2a5932", + "ShortDescription": "Beatus ut sed abscido." + }, + { + "Order": 5, + "MediaURL": "https://s3.amazonaws.com/retsly-importd-production/test_data/listings/14.jpg", + "ResourceRecordKey": "ME_KEY_5dba1ffa4aa4055b9f2a5933", + "ResourceName": "Property", + "ClassName": "Business", + "MediaCategory": "Photo", + "MimeType": "image/jpeg", + "MediaObjectID": "ME_5dba1ffa4aa4055b9f2a5933", + "ShortDescription": "Tersus surculus cinis viduata crux tyrannus." + }, + { + "Order": 6, + "MediaURL": "https://s3.amazonaws.com/retsly-importd-production/test_data/listings/35.jpg", + "ResourceRecordKey": "ME_KEY_5dba1ffa4aa4055b9f2a5934", + "ResourceName": "Property", + "ClassName": "Business", + "MediaCategory": "Photo", + "MimeType": "image/jpeg", + "MediaObjectID": "ME_5dba1ffa4aa4055b9f2a5934", + "ShortDescription": "Crastinus verbum crebro tot." + }, + { + "Order": 7, + "MediaURL": "https://s3.amazonaws.com/retsly-importd-production/test_data/listings/01.jpg", + "ResourceRecordKey": "ME_KEY_5dba1ffa4aa4055b9f2a5935", + "ResourceName": "Property", + "ClassName": "Business", + "MediaCategory": "Photo", + "MimeType": "image/jpeg", + "MediaObjectID": "ME_5dba1ffa4aa4055b9f2a5935", + "ShortDescription": "Audax unde ceno beatae." + } + ], + "CapRate": null, + "RentIncludes": [], + "DistanceToSchoolsUnits": null, + "BuyerOfficeKeyNumeric": null, + "UnitTypeType": null, + "AccessibilityFeatures": [], + "FarmLandAreaSource": null, + "HighSchoolDistrict": "Colorado", + "OriginalEntryTimestamp": "2019-10-29T23:28:48.759Z", + "BuildingFeatures": [ + "Elevator", + "Lounge", + "Cafeteria", + "Concierge Service" + ], + "OwnershipType": null, + "SourceSystemKey": null, + "Ownership": "Partnership", + "BuyerAgentMlsId": null, + "OwnerName": null, + "Exclusions": "In ut vel placeat culpa rerum non perspiciatis sint. Recusandae odio sunt sit qui sint et ipsam. Et et qui blanditiis porro quia. Laudantium illum cumque quidem mollitia harum qui ut ut.", + "CopyrightNotice": "Qui illo odio veniam maxime sit error. Tempora officia voluptatum ab sunt earum ea. Alias quia minus est iure minus recusandae quae aut.\n \r\tProvident praesentium explicabo hic laboriosam qui hic. Minima placeat quis doloribus eaque eaque dolore odit. Esse minima quia minima nihil ut voluptas voluptas.", + "ShowingContactName": "Janiya Napoleon Friesen", + "MobileDimUnits": null, + "LotFeatures": [ + "accusamus", + "atque", + "excepturi", + "suscipit", + "ipsum" + ], + "CoBuyerAgentOfficePhoneExt": null, + "License3": null, + "PostalCode": "19194-6204", + "License1": null, + "License2": null, + "BuyerOfficeMlsId": null, + "DocumentsAvailable": [], + "DistanceToShoppingUnits": null, + "NumberOfUnitsTotal": 16, + "BuyerOfficeName": null, + "AssociationFee": 66, + "LeaseAmount": null, + "LotSizeSquareFeet": 1090, + "DistanceToSewerUnits": null, + "CoBuyerAgentFullName": null, + "TenantPays": [], + "MiddleOrJuniorSchoolDistrict": "Alaska", + "DistanceToShoppingComments": null, + "Electric": [], + "ArchitecturalStyle": [ + "qui", + "laboriosam", + "sapiente", + "mollitia" + ], + "MobileHomeRemainsYN": null, + "NewTaxesExpense": null, + "VideosChangeTimestamp": null, + "CoBuyerOfficeURL": null, + "TaxStatusCurrent": [], + "UnparsedAddress": null, + "OpenParkingSpaces": 2, + "CoListOfficePhone": null, + "TransactionBrokerCompensationType": null, + "WoodedArea": null, + "LicensesExpense": null, + "BuyerOfficeEmail": null, + "CoListAgentAOR": null, + "CoBuyerAgentFax": null, + "FeedTypes": [], + "url": "api.bridgedataoutput.com/api/v2/test/listings/P_5dba1ffa4aa4055b9f2a5936" +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d69ccf45fdd07..e64173852dc2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1942,7 +1942,11 @@ importers: specifier: ^3.0.0 version: 3.0.3 - components/bridge_interactive_platform: {} + components/bridge_interactive_platform: + dependencies: + '@pipedream/platform': + specifier: ^3.1.0 + version: 3.1.0 components/bright_data: dependencies: