### BUILDER UPDATE: Jan 15 - Jan 20, 2024 (posted via [Build DAO Gateway](https://nearbuilders.org/feed?hashtag=update)) **✅ DONE** - I had to adapt the ExternalDependency component because I didn't realize that objects that contain functions cannot be communicated to the parent using postMessage API as functions are not serializable. For this reason, I had to reformulate the concept into different components to be able to load npm packages: - ExternalDependency: Component that receives an adapter and loads the package in an iframe and executes instructions based on the adapter and communicates the result on-demand - ExternalDependencyAdapter: Abstract library created to be extended by another library that implements a npm package. It implements all the necessary methods to perform the correct communication between iframe and the BOS component. This library is wrapped by a function to allow Stateful behavior, therefore, it needs to be instantiated passing the State and state properties. - Adapter: This is the actual library that should extend from the ExternalDependencyAdapter. Its goal is to state the package to load, package object name, and implement all the methods that will call from that package. It communicates with the iframe via requests that return a JavaScript Promise. Once fulfilled, the result is available. - Refactored the CryptoJS library to be an adapter that implements all the encryption methods offered by the crypto-js package - Implemented Lens SDK Profile methods (create, fetch, fetchAll, stats, recommendations, interests, report, block, history) - Links - [ExternalDependency](https://near.org/near/widget/ComponentDetailsPage?src=sdks.near/widget/Abstracts.ExternalDependency) - [ExternalDependencyAdapter](https://near.org/near/widget/ComponentDetailsPage?src=sdks.near/widget/Abstracts.ExternalDependencyAdapter) - [CryptoJS Adapter](https://near.org/near/widget/ComponentDetailsPage?src=sdks.near/widget/Utils.CryptoJS) - [Lens SDK - Profile Queries](https://near.org/near/widget/ComponentDetailsPage?src=sdks.near/widget/SDKs.Lens.Queries.Profile) - [Lens SDK - Profile Requests](https://near.org/near/widget/ComponentDetailsPage?src=sdks.near/widget/SDKs.Lens.Requests.ProfileRequests) - [Lens SDK - Profile API](https://near.org/near/widget/ComponentDetailsPage?src=sdks.near/widget/SDKs.Lens.API.ProfileAPI) - [Lens SDK - Open Action Types](https://near.org/near/widget/ComponentDetailsPage?src=sdks.near/widget/SDKs.Lens.Types.OpenActionTypes) - [Lens SDK](https://near.org/near/widget/ComponentDetailsPage?src=sdks.near/widget/SDKs.Lens.Main) **⏩ NEXT** - I'm going to implement the remaining profile API methods: - onChainIdentity - isFollowedByMe - isBlockedByMe - isFollowingMe - canFollow - canUnfollow - canBlock - canUnblock - I'm going to implement the publication API methods: - fetch - fetchAll - stats - whoActed - comments - upvote - downvote - hide - report - I'm going to keep working on nearfrens for the ongoing Abstracting Hackathon **🛑 BLOCKERS** - None #build #update