@campnetwork/origin 0.0.1 → 0.0.3

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/dist/core.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var t=require("axios"),e=require("viem"),i=require("viem/accounts"),n=require("viem/siwe");
1
+ "use strict";var t=require("axios"),e=require("viem"),n=require("viem/accounts"),i=require("viem/siwe");
2
2
  /******************************************************************************
3
3
  Copyright (c) Microsoft Corporation.
4
4
 
@@ -14,7 +14,7 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
15
  ***************************************************************************** */
16
16
  /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
17
- function r(t,e,i,n){return new(i||(i=Promise))((function(r,o){function s(t){try{d(n.next(t))}catch(t){o(t)}}function a(t){try{d(n.throw(t))}catch(t){o(t)}}function d(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(s,a)}d((n=n.apply(t,e||[])).next())}))}function o(t,e,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(t):n?n.value:e.get(t)}function s(t,e,i,n,r){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?r.call(t,i):r?r.value=i:e.set(t,i),i}"function"==typeof SuppressedError&&SuppressedError;class a extends Error{constructor(t,e){super(t),this.name="APIError",this.statusCode=e||500,Error.captureStackTrace(this,this.constructor)}toJSON(){return{error:this.name,message:this.message,statusCode:this.statusCode||500}}}
17
+ function a(t,e,n,i){return new(n||(n=Promise))((function(a,r){function s(t){try{d(i.next(t))}catch(t){r(t)}}function o(t){try{d(i.throw(t))}catch(t){r(t)}}function d(t){var e;t.done?a(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,o)}d((i=i.apply(t,e||[])).next())}))}function r(t,e,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(t):i?i.value:e.get(t)}function s(t,e,n,i,a){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?a.call(t,n):a?a.value=n:e.set(t,n),n}"function"==typeof SuppressedError&&SuppressedError;class o extends Error{constructor(t,e){super(t),this.name="APIError",this.statusCode=e||500,Error.captureStackTrace(this,this.constructor)}toJSON(){return{error:this.name,message:this.message,statusCode:this.statusCode||500}}}
18
18
  /**
19
19
  * Makes a GET request to the given URL with the provided headers.
20
20
  *
@@ -22,7 +22,7 @@ function r(t,e,i,n){return new(i||(i=Promise))((function(r,o){function s(t){try{
22
22
  * @param {object} headers - The headers to include in the request.
23
23
  * @returns {Promise<object>} - The response data.
24
24
  * @throws {APIError} - Throws an error if the request fails.
25
- */function d(e){return r(this,arguments,void 0,(function*(e,i={}){try{return(yield t.get(e,{headers:i})).data}catch(t){if(t.response)throw new a(t.response.data.message||"API request failed",t.response.status);throw new a("Network error or server is unavailable",500)}}))}
25
+ */function d(e){return a(this,arguments,void 0,(function*(e,n={}){try{return(yield t.get(e,{headers:n})).data}catch(t){if(t.response)throw new o(t.response.data.message||"API request failed",t.response.status);throw new o("Network error or server is unavailable",500)}}))}
26
26
  /**
27
27
  * Constructs a query string from an object of query parameters.
28
28
  *
@@ -36,92 +36,91 @@ function r(t,e,i,n){return new(i||(i=Promise))((function(r,o){function s(t){try{
36
36
  * @param {object} params - An object representing query parameters.
37
37
  * @returns {string} - The complete URL with query string.
38
38
  */
39
- function c(t,e={}){const i=function(t={}){return Object.keys(t).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`)).join("&")}(e);return i?`${t}?${i}`:t}const h="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev/twitter",u="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev/spotify";const l={id:123420001114,name:"Basecamp",nativeCurrency:{decimals:18,name:"Camp",symbol:"CAMP"},rpcUrls:{default:{http:["https://rpc-campnetwork.xyz","https://rpc.basecamp.t.raas.gelato.cloud"]}},blockExplorers:{default:{name:"Explorer",url:"https://basecamp.cloud.blockscout.com/"}}};
39
+ function u(t,e={}){const n=function(t={}){return Object.keys(t).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`)).join("&")}(e);return n?`${t}?${n}`:t}const l="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev/twitter",p="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev/spotify";const c={id:123420001114,name:"Basecamp",nativeCurrency:{decimals:18,name:"Camp",symbol:"CAMP"},rpcUrls:{default:{http:["https://rpc-campnetwork.xyz","https://rpc.basecamp.t.raas.gelato.cloud"]}},blockExplorers:{default:{name:"Explorer",url:"https://basecamp.cloud.blockscout.com/"}}};
40
40
  // @ts-ignore
41
- let f=null,w=null;const p=(t,n="window.ethereum",r)=>{var o;if(!t&&!f)return console.warn("Provider is required to create a client."),null;if(!f||f.transport.name!==n&&t||r!==(null===(o=f.account)||void 0===o?void 0:o.address)&&t){const o={chain:l,transport:e.custom(t,{name:n})};r&&(o.account=i.toAccount(r)),f=e.createWalletClient(o)}return f},m=()=>(w||(w=e.createPublicClient({chain:l,transport:e.http()})),w);var v="Connect with Camp Network",y="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",g="https://ackee-production-01bd.up.railway.app",I={USER_CONNECTED:"ed42542d-b676-4112-b6d9-6db98048b2e0",USER_DISCONNECTED:"20af31ac-e602-442e-9e0e-b589f4dd4016",TWITTER_LINKED:"7fbea086-90ef-4679-ba69-f47f9255b34c",DISCORD_LINKED:"d73f5ae3-a8e8-48f2-8532-85e0c7780d6a",SPOTIFY_LINKED:"fc1788b4-c984-42c8-96f4-c87f6bb0b8f7",TIKTOK_LINKED:"4a2ffdd3-f0e9-4784-8b49-ff76ec1c0a6a",TELEGRAM_LINKED:"9006bc5d-bcc9-4d01-a860-4f1a201e8e47"};let A=[];const T=()=>A,k=t=>{function e(e){A.some((t=>t.info.uuid===e.detail.info.uuid))||(A=[...A,e.detail],t(A))}if("undefined"!=typeof window)return window.addEventListener("eip6963:announceProvider",e),window.dispatchEvent(new Event("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",e)};var b,$,E,S,j,C,O,U,P,D,N,_,W,B;
41
+ let y=null,h=null;const m=()=>(h||(h=e.createPublicClient({chain:c,transport:e.http()})),h);var f="Connect with Camp Network",w="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",v={USER_CONNECTED:"ed42542d-b676-4112-b6d9-6db98048b2e0",USER_DISCONNECTED:"20af31ac-e602-442e-9e0e-b589f4dd4016",TWITTER_LINKED:"7fbea086-90ef-4679-ba69-f47f9255b34c",DISCORD_LINKED:"d73f5ae3-a8e8-48f2-8532-85e0c7780d6a",SPOTIFY_LINKED:"fc1788b4-c984-42c8-96f4-c87f6bb0b8f7",TIKTOK_LINKED:"4a2ffdd3-f0e9-4784-8b49-ff76ec1c0a6a",TELEGRAM_LINKED:"9006bc5d-bcc9-4d01-a860-4f1a201e8e47"},T="0xd064817Dc0Af032c3fb5dd4671fd10E0a5F0515D",b="0x3B782d053de8910cC0EF3DC09EEA055229a70c6b";let g=[];const I=()=>g,A=t=>{function e(e){g.some((t=>t.info.uuid===e.detail.info.uuid))||(g=[...g,e.detail],t(g))}if("undefined"!=typeof window)return window.addEventListener("eip6963:announceProvider",e),window.dispatchEvent(new Event("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",e)};var k=[{inputs:[{internalType:"string",name:"_name",type:"string"},{internalType:"string",name:"_symbol",type:"string"},{internalType:"string",name:"_baseURI",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"DurationZero",type:"error"},{inputs:[{internalType:"uint16",name:"royaltyBps",type:"uint16"}],name:"InvalidRoyalty",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"caller",type:"address"}],name:"NotTokenOwner",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"URIQueryForNonexistentToken",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"Verifier_InvalidDeadline",type:"error"},{inputs:[],name:"Verifier_InvalidSignature",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint64",name:"newExpiry",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeletionRequested",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"creator",type:"address"}],name:"addCreator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pauser",type:"address"}],name:"addPauser",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner_",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"contentHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"creators",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"dataStatus",outputs:[{internalType:"enum DataNFT.DataStatus",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"finalizeDelete",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getTerms",outputs:[{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],internalType:"struct DataNFT.LicenseTerms",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner_",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"hash",type:"bytes32"},{internalType:"string",name:"uri",type:"string"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],internalType:"struct DataNFT.LicenseTerms",name:"licenseTerms",type:"tuple"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"mintWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"pausers",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"creator",type:"address"}],name:"removeCreator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"pauser",type:"address"}],name:"removePauser",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"requestDelete",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"salePrice",type:"uint256"}],name:"royaltyInfo",outputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"royaltyAmount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"royaltyPercentages",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"royaltyReceivers",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"terms",outputs:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],internalType:"struct DataNFT.LicenseTerms",name:"newTerms",type:"tuple"}],name:"updateTerms",outputs:[],stateMutability:"nonpayable",type:"function"}];
42
+ /**
43
+ * Mints a Data NFT with a signature.
44
+ * @param to The address to mint the NFT to.
45
+ * @param tokenId The ID of the token to mint.
46
+ * @param hash The hash of the data associated with the NFT.
47
+ * @param uri The URI of the NFT metadata.
48
+ * @param licenseTerms The terms of the license for the NFT.
49
+ * @param deadline The deadline for the minting operation.
50
+ * @param signature The signature for the minting operation.
51
+ * @returns A promise that resolves when the minting is complete.
52
+ */function C(t,e,n,i,r,s,o){return a(this,void 0,void 0,(function*(){return yield this.callContractMethod(T,k,"mintWithSignature",[t,e,n,i,r,s,o.v,o.r,o.s],{waitForReceipt:!0})}))}
53
+ /**
54
+ * Registers a Data NFT with the Origin service in order to obtain a signature for minting.
55
+ * @param source The source of the Data NFT (e.g., "spotify", "twitter", "tiktok", or "file").
56
+ * @param deadline The deadline for the registration operation.
57
+ * @param fileKey Optional file key for file uploads.
58
+ * @return A promise that resolves with the registration data.
59
+ */function M(t,e,n){return a(this,void 0,void 0,(function*(){const i={source:t,deadline:e.toString()};void 0!==n&&(i.fileKey=n);const a=yield fetch(`${w}/auth/origin/register`,{method:"POST",headers:{Authorization:`Bearer ${this.getJwt()}`},body:JSON.stringify(i)});if(!a.ok)throw new Error(`Failed to get signature: ${a.statusText}`);const r=yield a.json();if(r.isError)throw new Error(`Failed to get signature: ${r.message}`);return r.data}))}function E(t,e){return this.callContractMethod(T,k,"updateTerms",[t,e],{waitForReceipt:!0})}function x(t){return this.callContractMethod(T,k,"requestDelete",[t])}function S(t){return this.callContractMethod(T,k,"getTerms",[t])}function $(t){return this.callContractMethod(T,k,"ownerOf",[t])}function D(t){return this.callContractMethod(T,k,"balanceOf",[t])}function F(t){return this.callContractMethod(T,k,"contentHash",[t])}function j(t){return this.callContractMethod(T,k,"tokenURI",[t])}function P(t){return this.callContractMethod(T,k,"dataStatus",[t])}function U(t,e){return a(this,void 0,void 0,(function*(){return this.callContractMethod(T,k,"royaltyInfo",[t,e])}))}function N(t){return this.callContractMethod(T,k,"getApproved",[t])}function O(t,e){return this.callContractMethod(T,k,"isApprovedForAll",[t,e])}function B(t,e,n){return this.callContractMethod(T,k,"transferFrom",[t,e,n])}function _(t,e,n,i){const a=i?[t,e,n,i]:[t,e,n];return this.callContractMethod(T,k,"safeTransferFrom",a)}function W(t,e){return this.callContractMethod(T,k,"approve",[t,e])}function q(t,e){return this.callContractMethod(T,k,"setApprovalForAll",[t,e])}var R,z,L,K,J,H,G,V,Z,Q,Y,X,tt,et,nt,it=[{type:"constructor",inputs:[{name:"dataNFT_",type:"address",internalType:"address"},{name:"router_",type:"address",internalType:"address"},{name:"protocolFeeBps_",type:"uint16",internalType:"uint16"}],stateMutability:"nonpayable"},{type:"function",name:"addFeeManager",inputs:[{name:"feeManager",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addPauser",inputs:[{name:"pauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"buyAccess",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"periods",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"dataNFT",inputs:[],outputs:[{name:"",type:"address",internalType:"contract DataNFT"}],stateMutability:"view"},{type:"function",name:"feeManagers",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"hasAccess",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"pausers",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"protocolFeeBps",inputs:[],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"removeFeeManager",inputs:[{name:"feeManager",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removePauser",inputs:[{name:"pauser",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renewAccess",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"buyer",type:"address",internalType:"address"},{name:"periods",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"contract RoyaltyRouter"}],stateMutability:"view"},{type:"function",name:"subscriptionExpiry",inputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateProtocolFee",inputs:[{name:"newFeeBps",type:"uint16",internalType:"uint16"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AccessPurchased",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"buyer",type:"address",indexed:!0,internalType:"address"},{name:"periods",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newExpiry",type:"uint64",indexed:!1,internalType:"uint64"},{name:"amountPaid",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DataDeleted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DataDeletionRequested",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DataMinted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"},{name:"contentHash",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"RoyaltyPaid",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"royaltyAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"creator",type:"address",indexed:!1,internalType:"address"},{name:"protocolAmount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"TermsUpdated",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newPrice",type:"uint128",indexed:!1,internalType:"uint128"},{name:"newDuration",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newRoyaltyBps",type:"uint16",indexed:!1,internalType:"uint16"},{name:"paymentToken",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"error",name:"DurationZero",inputs:[]},{type:"error",name:"InvalidPayment",inputs:[{name:"expected",type:"uint256",internalType:"uint256"},{name:"actual",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidPeriods",inputs:[{name:"periods",type:"uint32",internalType:"uint32"}]},{type:"error",name:"InvalidRoyalty",inputs:[{name:"royaltyBps",type:"uint16",internalType:"uint16"}]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"ZeroAddress",inputs:[]}];function at(t,e,n){return this.callContractMethod(b,it,"buyAccess",[t,e],{waitForReceipt:!0,value:n})}function rt(t,e,n,i){return this.callContractMethod(b,it,"renewAccess",[t,e,n],void 0!==i?{value:i}:void 0)}function st(t,e){return this.callContractMethod(b,it,"hasAccess",[t,e])}function ot(t,e){return this.callContractMethod(b,it,"subscriptionExpiry",[t,e])}
60
+ /**
61
+ * Approves a spender to spend a specified amount of tokens on behalf of the owner.
62
+ * If the current allowance is less than the specified amount, it will perform the approval.
63
+ * @param {ApproveParams} params - The parameters for the approval.
64
+ */
42
65
  /**
43
66
  * The Origin class
44
67
  * Handles the upload of files to Origin, as well as querying the user's stats
45
- */class x{constructor(t){b.set(this,(t=>r(this,void 0,void 0,(function*(){const e=yield fetch(`${y}/auth/origin/upload-url`,{method:"POST",body:JSON.stringify({name:t.name,type:t.type}),headers:{Authorization:`Bearer ${this.jwt}`}}),i=yield e.json();return i.isError?i.message:i.data})))),$.set(this,((t,e)=>r(this,void 0,void 0,(function*(){(yield fetch(`${y}/auth/origin/update-status`,{method:"PATCH",body:JSON.stringify({status:e,fileKey:t}),headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}})).ok||console.error("Failed to update origin status")})))),this.uploadFile=(t,e)=>r(this,void 0,void 0,(function*(){const i=yield o(this,b,"f").call(this,t);if(i){try{yield((t,e,i)=>new Promise(((n,r)=>{const o=new XMLHttpRequest;o.open("PUT",e,!0),o.upload.onprogress=t=>{if(t.lengthComputable){const e=t.loaded/t.total*100;i(e)}},o.onload=()=>{o.status>=200&&o.status<300?n(o.response):r(o.statusText)},o.onerror=()=>r(o.statusText),o.send(t)})))(t,i.url,(null==e?void 0:e.progressCallback)||(()=>{}))}catch(t){throw yield o(this,$,"f").call(this,i.key,"failed"),new Error("Failed to upload file: "+t)}yield o(this,$,"f").call(this,i.key,"success")}else console.error("Failed to generate upload URL")})),this.getOriginUploads=()=>r(this,void 0,void 0,(function*(){const t=yield fetch(`${y}/auth/origin/files`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`}});if(!t.ok)return console.error("Failed to get origin uploads"),null;return(yield t.json()).data})),this.jwt=t}
68
+ */
69
+ class dt{constructor(e,n){R.add(this),z.set(this,(t=>a(this,void 0,void 0,(function*(){const e=yield fetch(`${w}/auth/origin/upload-url`,{method:"POST",body:JSON.stringify({name:t.name,type:t.type}),headers:{Authorization:`Bearer ${this.jwt}`}}),n=yield e.json();return n.isError?n.message:n.data})))),L.set(this,((t,e)=>a(this,void 0,void 0,(function*(){(yield fetch(`${w}/auth/origin/update-status`,{method:"PATCH",body:JSON.stringify({status:e,fileKey:t}),headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}})).ok||console.error("Failed to update origin status")})))),this.uploadFile=(e,n)=>a(this,void 0,void 0,(function*(){const i=yield r(this,z,"f").call(this,e);if(i){try{yield((e,n,i)=>new Promise(((a,r)=>{t.put(n,e,Object.assign({headers:{"Content-Type":e.type}},"undefined"!=typeof window&&"function"==typeof i?{onUploadProgress:t=>{if(t.total){const e=t.loaded/t.total*100;i(e)}}}:{})).then((t=>{a(t.data)})).catch((t=>{var e;const n=(null===(e=null==t?void 0:t.response)||void 0===e?void 0:e.data)||(null==t?void 0:t.message)||"Upload failed";r(n)}))})))(e,i.url,(null==n?void 0:n.progressCallback)||(()=>{}))}catch(t){throw yield r(this,L,"f").call(this,i.key,"failed"),new Error("Failed to upload file: "+t)}return yield r(this,L,"f").call(this,i.key,"success"),i}console.error("Failed to generate upload URL")})),this.mintFile=(t,e,n)=>a(this,void 0,void 0,(function*(){if(!this.viemClient)throw new Error("WalletClient not connected.");try{const i=yield this.uploadFile(t,n);if(!i||!i.key)return console.error("Invalid upload info:",i),null;const a=BigInt(Math.floor(Date.now()/1e3)+600),r=yield this.registerDataNFT("file",a,i.key),{tokenId:s,signerAddress:o,hash:d,v:u,r:l,s:p}=r;// 10 minutes from now
70
+ if(!s||!o||!d||void 0===u||void 0===l||void 0===p)return console.error("Invalid registration data:",r),null;const[c]=yield this.viemClient.request({method:"eth_requestAccounts",params:[]}),y={v:u,r:l,s:p};yield this.mintWithSignature(c,s,d,i.url,e,a,y);return s.toString()}catch(t){return console.error("Failed to upload file:",t),null}})),this.mintSocial=t=>a(this,void 0,void 0,(function*(){try{const e=BigInt(Math.floor(Date.now()/1e3)+600),n=yield this.registerDataNFT(t,e);// 10 minutes from now (temp)
71
+ return n?n.tokenId.toString():(console.error("Failed to register DataNFT"),null)}catch(t){return console.error("Failed to mint social DataNFT:",t),null}})),this.getOriginUploads=()=>a(this,void 0,void 0,(function*(){const t=yield fetch(`${w}/auth/origin/files`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`}});if(!t.ok)return console.error("Failed to get origin uploads"),null;return(yield t.json()).data})),this.jwt=e,this.viemClient=n,
72
+ // DataNFT methods
73
+ this.mintWithSignature=C.bind(this),this.registerDataNFT=M.bind(this),this.updateTerms=E.bind(this),this.requestDelete=x.bind(this),this.getTerms=S.bind(this),this.ownerOf=$.bind(this),this.balanceOf=D.bind(this),this.contentHash=F.bind(this),this.tokenURI=j.bind(this),this.dataStatus=P.bind(this),this.royaltyInfo=U.bind(this),this.getApproved=N.bind(this),this.isApprovedForAll=O.bind(this),this.transferFrom=B.bind(this),this.safeTransferFrom=_.bind(this),this.approve=W.bind(this),this.setApprovalForAll=q.bind(this),
74
+ // Marketplace methods
75
+ this.buyAccess=at.bind(this),this.renewAccess=rt.bind(this),this.hasAccess=st.bind(this),this.subscriptionExpiry=ot.bind(this)}getJwt(){return this.jwt}setViemClient(t){this.viemClient=t}
46
76
  /**
47
77
  * Get the user's Origin stats (multiplier, consent, usage, etc.).
48
78
  * @returns {Promise<OriginUsageReturnType>} A promise that resolves with the user's Origin stats.
49
- */getOriginUsage(){return r(this,void 0,void 0,(function*(){const t=yield fetch(`${y}/auth/origin/usage`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`,
79
+ */getOriginUsage(){return a(this,void 0,void 0,(function*(){const t=yield fetch(`${w}/auth/origin/usage`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`,
50
80
  // "x-client-id": this.clientId,
51
- "Content-Type":"application/json"}}).then((t=>t.json()));if(!t.isError&&t.data.user)return t;throw new a(t.message||"Failed to fetch Origin usage")}))}
81
+ "Content-Type":"application/json"}}).then((t=>t.json()));if(!t.isError&&t.data.user)return t;throw new o(t.message||"Failed to fetch Origin usage")}))}
52
82
  /**
53
83
  * Set the user's consent for Origin usage.
54
84
  * @param {boolean} consent The user's consent.
55
85
  * @returns {Promise<void>}
56
86
  * @throws {Error|APIError} - Throws an error if the user is not authenticated. Also throws an error if the consent is not provided.
57
- */setOriginConsent(t){return r(this,void 0,void 0,(function*(){if(void 0===t)throw new a("Consent is required");const e=yield fetch(`${y}/auth/origin/status`,{method:"PATCH",headers:{Authorization:`Bearer ${this.jwt}`,
87
+ */setOriginConsent(t){return a(this,void 0,void 0,(function*(){if(void 0===t)throw new o("Consent is required");const e=yield fetch(`${w}/auth/origin/status`,{method:"PATCH",headers:{Authorization:`Bearer ${this.jwt}`,
58
88
  // "x-client-id": this.clientId,
59
- "Content-Type":"application/json"},body:JSON.stringify({active:t})}).then((t=>t.json()));if(e.isError)throw new a(e.message||"Failed to set Origin consent")}))}
89
+ "Content-Type":"application/json"},body:JSON.stringify({active:t})}).then((t=>t.json()));if(e.isError)throw new o(e.message||"Failed to set Origin consent")}))}
60
90
  /**
61
91
  * Set the user's Origin multiplier.
62
92
  * @param {number} multiplier The user's Origin multiplier.
63
93
  * @returns {Promise<void>}
64
94
  * @throws {Error|APIError} - Throws an error if the user is not authenticated. Also throws an error if the multiplier is not provided.
65
- */setOriginMultiplier(t){return r(this,void 0,void 0,(function*(){if(void 0===t)throw new a("Multiplier is required");const e=yield fetch(`${y}/auth/origin/multiplier`,{method:"PATCH",headers:{Authorization:`Bearer ${this.jwt}`,
95
+ */setOriginMultiplier(t){return a(this,void 0,void 0,(function*(){if(void 0===t)throw new o("Multiplier is required");const e=yield fetch(`${w}/auth/origin/multiplier`,{method:"PATCH",headers:{Authorization:`Bearer ${this.jwt}`,
66
96
  // "x-client-id": this.clientId,
67
- "Content-Type":"application/json"},body:JSON.stringify({multiplier:t})}).then((t=>t.json()));if(e.isError)throw new a(e.message||"Failed to set Origin multiplier")}))}}b=new WeakMap,$=new WeakMap;S=new WeakMap,j=new WeakMap,E=new WeakSet,C=function(t,e){o(this,S,"f")[t]&&o(this,S,"f")[t].forEach((t=>t(e)))},O=function(t){return r(this,void 0,void 0,(function*(){var e,i;if("undefined"==typeof localStorage)return;const n=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("camp-sdk:wallet-address"),r=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("camp-sdk:user-id"),s=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("camp-sdk:jwt");if(n&&r&&s){this.walletAddress=n,this.userId=r,this.jwt=s,this.origin=new x(this.jwt),this.isAuthenticated=!0;let a=t;if(!a){const t=null!==(e=T())&&void 0!==e?e:[];for(const e of t)try{if((null===(i=(yield e.provider.request({method:"eth_accounts"}))[0])||void 0===i?void 0:i.toLowerCase())===n.toLowerCase()){a=e.provider;break}}catch(t){console.warn("Failed to fetch accounts from provider:",t)}}a&&(this.viem=p(a,(new Date).getTime().toString(),n),o(this,E,"m",C).call(this,"viem",this.viem))}else this.isAuthenticated=!1}))},U=function(){return r(this,void 0,void 0,(function*(){try{const[t]=yield this.viem.requestAddresses();return this.walletAddress=t,t}catch(t){throw new a(t)}}))},P=function(){return r(this,void 0,void 0,(function*(){try{const t=yield fetch(`${y}/auth/client-user/nonce`,{method:"POST",headers:{"Content-Type":"application/json","x-client-id":this.clientId},body:JSON.stringify({walletAddress:this.walletAddress})}),e=yield t.json();return 200!==t.status?Promise.reject(e.message||"Failed to fetch nonce"):e.data}catch(t){throw new Error(t)}}))},D=function(t,e){return r(this,void 0,void 0,(function*(){try{const i=yield fetch(`${y}/auth/client-user/verify`,{method:"POST",headers:{"Content-Type":"application/json","x-client-id":this.clientId},body:JSON.stringify({message:t,signature:e,walletAddress:this.walletAddress})}),n=yield i.json(),r=n.data.split(".")[1],o=JSON.parse(atob(r));return{success:!n.isError,userId:o.id,token:n.data}}catch(t){throw new a(t)}}))},N=function(t){return n.createSiweMessage({domain:window.location.host,address:this.walletAddress,statement:v,uri:window.location.origin,version:"1",chainId:this.viem.chain.id,nonce:t})},_=function(t,e){return r(this,arguments,void 0,(function*(t,e,i=1){o(this,j,"f")&&(yield((t,e,i,n)=>r(void 0,void 0,void 0,(function*(){return new Promise(((r,o)=>{if("undefined"!=typeof window&&t)try{t.action(e,{key:i,value:n},(t=>{r(t)}))}catch(t){console.error(t),o(t)}else o(new Error("Unable to send analytics event. If you are using the library, you can ignore this error."))}))})))(o(this,j,"f"),t,e,i))}))},W=function(t){return r(this,void 0,void 0,(function*(){if(!this.viem)throw new Error("WalletClient not connected.");for(;;){const e=yield this.viem.request({method:"eth_getTransactionReceipt",params:[t]});if(e&&e.blockNumber)return e;yield new Promise((t=>setTimeout(t,1e3)))}}))},B=function(t){return r(this,void 0,void 0,(function*(){
97
+ "Content-Type":"application/json"},body:JSON.stringify({multiplier:t})}).then((t=>t.json()));if(e.isError)throw new o(e.message||"Failed to set Origin multiplier")}))}
98
+ /**
99
+ * Call a contract method.
100
+ * @param {string} contractAddress The contract address.
101
+ * @param {Abi} abi The contract ABI.
102
+ * @param {string} methodName The method name.
103
+ * @param {any[]} params The method parameters.
104
+ * @param {CallOptions} [options] The call options.
105
+ * @returns {Promise<any>} A promise that resolves with the result of the contract call or transaction hash.
106
+ * @throws {Error} - Throws an error if the wallet client is not connected and the method is not a view function.
107
+ */callContractMethod(t,n,i,s){return a(this,arguments,void 0,(function*(t,n,i,a,s={}){const o=e.getAbiItem({abi:n,name:i}),d=o&&"stateMutability"in o&&("view"===o.stateMutability||"pure"===o.stateMutability);if(!d&&!this.viemClient)throw new Error("WalletClient not connected.");if(d){const e=m();return(yield e.readContract({address:t,abi:n,functionName:i,args:a}))||null}{const[o]=yield this.viemClient.request({method:"eth_requestAccounts",params:[]}),d=e.encodeFunctionData({abi:n,functionName:i,args:a});yield r(this,R,"m",J).call(this,c);const u=yield this.viemClient.sendTransaction({to:t,data:d,account:o,value:s.value,gas:s.gas});if("string"!=typeof u)throw new Error("Transaction failed to send.");if(!s.waitForReceipt)return u;return yield r(this,R,"m",K).call(this,u)}}))}
108
+ /**
109
+ * Buy access to an asset by first checking its price via getTerms, then calling buyAccess.
110
+ * @param {bigint} tokenId The token ID of the asset.
111
+ * @param {number} periods The number of periods to buy access for.
112
+ * @returns {Promise<any>} The result of the buyAccess call.
113
+ */buyAccessSmart(t,n){return a(this,void 0,void 0,(function*(){if(!this.viemClient)throw new Error("WalletClient not connected.");const i=yield this.getTerms(t);if(!i)throw new Error("Failed to fetch terms for asset");const{price:r,paymentToken:s}=i;if(void 0===r||void 0===s)throw new Error("Terms missing price or paymentToken");const o=r*BigInt(n);if(s===e.zeroAddress)return this.buyAccess(t,n,o);const d=yield this.viemClient.getAddress();return yield function(t){return a(this,arguments,void 0,(function*({walletClient:t,publicClient:n,tokenAddress:i,owner:a,spender:r,amount:s}){(yield n.readContract({address:i,abi:e.erc20Abi,functionName:"allowance",args:[a,r]}))<s&&(yield t.writeContract({address:i,account:a,abi:e.erc20Abi,functionName:"approve",args:[r,s],chain:c}))}))}({walletClient:this.viemClient,publicClient:m(),tokenAddress:s,owner:d,spender:b,amount:o}),this.buyAccess(t,n)}))}getData(t){return a(this,void 0,void 0,(function*(){const e=yield fetch(`${w}/auth/origin/data/${t}`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}});if(!e.ok)throw new Error("Failed to fetch data");return e.json()}))}}z=new WeakMap,L=new WeakMap,R=new WeakSet,K=function(t){return a(this,void 0,void 0,(function*(){if(!this.viemClient)throw new Error("WalletClient not connected.");for(;;){const e=yield this.viemClient.request({method:"eth_getTransactionReceipt",params:[t]});if(e&&e.blockNumber)return e;yield new Promise((t=>setTimeout(t,1e3)))}}))},J=function(t){return a(this,void 0,void 0,(function*(){
68
114
  // return;
69
- if(!this.viem)throw new Error("WalletClient not connected.");let e=yield this.viem.request({method:"eth_chainId",params:[]});if("string"==typeof e&&(e=parseInt(e,16)),e!==t.id)try{yield this.viem.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x"+BigInt(t.id).toString(16)}]})}catch(e){
115
+ if(!this.viemClient)throw new Error("WalletClient not connected.");let e=yield this.viemClient.request({method:"eth_chainId",params:[]});if("string"==typeof e&&(e=parseInt(e,16)),e!==t.id)try{yield this.viemClient.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x"+BigInt(t.id).toString(16)}]})}catch(e){
70
116
  // Unrecognized chain
71
- if(4902!==e.code)throw e;yield this.viem.request({method:"wallet_addEthereumChain",params:[{chainId:"0x"+BigInt(t.id).toString(16),chainName:t.name,rpcUrls:t.rpcUrls.default.http,nativeCurrency:t.nativeCurrency}]}),yield this.viem.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x"+BigInt(t.id).toString(16)}]})}}))};
72
- /**
73
- The MIT License (MIT)
74
-
75
- Copyright (c) Tobias Reich
76
-
77
- Permission is hereby granted, free of charge, to any person obtaining a copy
78
- of this software and associated documentation files (the "Software"), to deal
79
- in the Software without restriction, including without limitation the rights
80
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
81
- copies of the Software, and to permit persons to whom the Software is
82
- furnished to do so, subject to the following conditions:
83
-
84
- The above copyright notice and this permission notice shall be included in
85
- all copies or substantial portions of the Software.
86
-
87
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
88
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
89
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
90
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
91
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
92
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
93
- THE SOFTWARE.
94
- */
95
- const q="undefined"!=typeof window,F=q?null===window||void 0===window?void 0:window.navigator:{userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",language:"en",languages:[],platform:"",vendor:"",maxTouchPoints:0,hardwareConcurrency:0,deviceMemory:0},L=q?null===window||void 0===window?void 0:window.location:{href:"",protocol:"",host:"",hostname:"",port:"",pathname:"",search:"",hash:""},R=function(t){return"88888888-8888-8888-8888-888888888888"===t},K=function(){return"hidden"===document.visibilityState},z=function(){const t=(L.search.split("source=")[1]||"").split("&")[0];return""===t?void 0:t},M=function(t=!1){var e;const i={siteLocation:null===(e=null===window||void 0===window?void 0:window.location)||void 0===e?void 0:e.href,siteReferrer:document.referrer,source:z()},n={siteLanguage:F?((null==F?void 0:F.language)||(null==F?void 0:F.language)||"").substr(0,2):"",screenWidth:screen.width,screenHeight:screen.height,screenColorDepth:screen.colorDepth,browserWidth:null===window||void 0===window?void 0:window.outerWidth,browserHeight:null===window||void 0===window?void 0:window.outerHeight};return Object.assign(Object.assign({},i),!0===t?n:{})},J=function(t){return{query:"\n\t\t\tmutation updateRecord($recordId: ID!) {\n\t\t\t\tupdateRecord(id: $recordId) {\n\t\t\t\t\tsuccess\n\t\t\t\t}\n\t\t\t}\n\t\t",variables:{recordId:t}}},H=function(t,e,i,n){const r=new XMLHttpRequest;r.open("POST",t),r.onload=()=>{if(200!==r.status)throw new Error("Server returned with an unhandled status");let t=null;try{t=JSON.parse(r.responseText)}catch(t){throw new Error("Failed to parse response from server")}if(null!=t.errors)throw new Error(t.errors[0].message);if("function"==typeof n)return n(t)},r.setRequestHeader("Content-Type","application/json;charset=UTF-8"),
96
- // xhr.withCredentials = opts.ignoreOwnVisits ?? false;
97
- r.withCredentials=!1,r.send(JSON.stringify(e))},G=function(){const t=document.querySelector("[data-ackee-domain-id]");if(null==t)return;const e=t.getAttribute("data-ackee-server")||"",i=t.getAttribute("data-ackee-domain-id")||"",n=t.getAttribute("data-ackee-opts")||"{}";V(e,JSON.parse(n)).record(i)},V=function(t,e){e=function(t={}){
98
- // Create new object to avoid changes by reference
99
- const e={};
100
- // Defaults to false
101
- return e.detailed=!0===t.detailed,
102
- // Defaults to true
103
- e.ignoreLocalhost=!1!==t.ignoreLocalhost,
104
- // Defaults to true
105
- e.ignoreOwnVisits=!1!==t.ignoreOwnVisits,e}(e);const i=function(t){const e="/"===t.substr(-1);return t+(!0===e?"":"/")+"api"}(t),n=()=>{},r={record:()=>({stop:n}),updateRecord:()=>({stop:n}),action:n,updateAction:n};if(!0===e.ignoreLocalhost&&!0==(""===(o=L.hostname)||"localhost"===o||"127.0.0.1"===o||"::1"===o)&&!0===q)
106
- // console.warn("Ackee ignores you because you are on localhost");
107
- return r;var o,s;if(!0===(s=F?F.userAgent:"",/bot|crawler|spider|crawling/i.test(s)))
108
- // console.warn("Ackee ignores you because you are a bot");
109
- return r;
110
- // Creates a new record on the server and updates the record
111
- // very x seconds to track the duration of the visit. Tries to use
112
- // the default attributes when there're no custom attributes defined.
113
- // Return the real instance
114
- return{record:(t,n=M(e.detailed),r)=>{
115
- // Function to stop updating the record
116
- let o=!1;return H(i,function(t,e){return{query:"\n\t\t\tmutation createRecord($domainId: ID!, $input: CreateRecordInput!) {\n\t\t\t\tcreateRecord(domainId: $domainId, input: $input) {\n\t\t\t\t\tpayload {\n\t\t\t\t\t\tid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t",variables:{domainId:t,input:e}}}(t,n),0,(t=>{const e=t.data.createRecord.payload.id;if(!0===R(e))
117
- // return console.warn("Ackee ignores you because this is your own site");
118
- return;const n=setInterval((()=>{!0!==o?!0!==K()&&H(i,J(e)):clearInterval(n)}),15e3);return"function"==typeof r?r(e):void 0})),{stop:()=>{o=!0}}},updateRecord:t=>{
119
- // Function to stop updating the record
120
- let e=!1;const n=()=>{e=!0};if(!0===R(t))
121
- // console.warn("Ackee ignores you because this is your own site");
122
- return{stop:n};const r=setInterval((()=>{!0!==e?!0!==K()&&H(i,J(t)):clearInterval(r)}),15e3);return{stop:n}},action:(t,e,n)=>{H(i,function(t,e){return{query:"\n\t\t\tmutation createAction($eventId: ID!, $input: CreateActionInput!) {\n\t\t\t\tcreateAction(eventId: $eventId, input: $input) {\n\t\t\t\t\tpayload {\n\t\t\t\t\t\tid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t",variables:{eventId:t,input:e}}}(t,e),0,(t=>{const e=t.data.createAction.payload.id;if(!0!==R(e))return"function"==typeof n?n(e):void 0}))},updateAction:(t,e)=>{!0!==R(t)&&H(i,function(t,e){return{query:"\n\t\t\tmutation updateAction($actionId: ID!, $input: UpdateActionInput!) {\n\t\t\t\tupdateAction(id: $actionId, input: $input) {\n\t\t\t\t\tsuccess\n\t\t\t\t}\n\t\t\t}\n\t\t",variables:{actionId:t,input:e}}}(t,e))}}};
123
- // Only run Ackee automatically when executed in a browser environment
124
- !0===q&&G();var X=Object.freeze({__proto__:null,attributes:M,create:V,detect:G});exports.Ackee=X,exports.Auth=
117
+ if(4902!==e.code)throw e;yield this.viemClient.request({method:"wallet_addEthereumChain",params:[{chainId:"0x"+BigInt(t.id).toString(16),chainName:t.name,rpcUrls:t.rpcUrls.default.http,nativeCurrency:t.nativeCurrency}]}),yield this.viemClient.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x"+BigInt(t.id).toString(16)}]})}}))};G=new WeakMap,V=new WeakMap,H=new WeakSet,Z=function(t,e){r(this,G,"f")[t]&&r(this,G,"f")[t].forEach((t=>t(e)))},Q=function(t){return a(this,void 0,void 0,(function*(){var e,n;if("undefined"==typeof localStorage)return;const i=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("camp-sdk:wallet-address"),a=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("camp-sdk:user-id"),r=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("camp-sdk:jwt");if(i&&a&&r){this.walletAddress=i,this.userId=a,this.jwt=r,this.origin=new dt(this.jwt),this.isAuthenticated=!0;let s=t;if(!s){const t=null!==(e=I())&&void 0!==e?e:[];for(const e of t)try{if((null===(n=(yield e.provider.request({method:"eth_requestAccounts"}))[0])||void 0===n?void 0:n.toLowerCase())===i.toLowerCase()){s=e;break}}catch(t){console.warn("Failed to fetch accounts from provider:",t)}}s?this.setProvider({provider:s.provider,info:s.info||{name:"Unknown"},address:i}):
118
+ // await this.disconnect();
119
+ console.warn("No matching provider found for the stored wallet address. User disconnected.")}else this.isAuthenticated=!1}))},Y=function(){return a(this,void 0,void 0,(function*(){try{const[t]=yield this.viem.requestAddresses();return this.walletAddress=t,t}catch(t){throw new o(t)}}))},X=function(){return a(this,void 0,void 0,(function*(){try{const t=yield fetch(`${w}/auth/client-user/nonce`,{method:"POST",headers:{"Content-Type":"application/json","x-client-id":this.clientId},body:JSON.stringify({walletAddress:this.walletAddress})}),e=yield t.json();return 200!==t.status?Promise.reject(e.message||"Failed to fetch nonce"):e.data}catch(t){throw new Error(t)}}))},tt=function(t,e){return a(this,void 0,void 0,(function*(){try{const n=yield fetch(`${w}/auth/client-user/verify`,{method:"POST",headers:{"Content-Type":"application/json","x-client-id":this.clientId},body:JSON.stringify({message:t,signature:e,walletAddress:this.walletAddress})}),i=yield n.json(),a=i.data.split(".")[1],r=JSON.parse(atob(a));return{success:!i.isError,userId:r.id,token:i.data}}catch(t){throw new o(t)}}))},et=function(t){return i.createSiweMessage({domain:window.location.host,address:this.walletAddress,statement:f,uri:window.location.origin,version:"1",chainId:this.viem.chain.id,nonce:t})},nt=function(t,e){return a(this,arguments,void 0,(function*(t,e,n=1){
120
+ // if (this.#ackeeInstance)
121
+ // await sendAnalyticsEvent(this.#ackeeInstance, event, message, count);
122
+ // else return;
123
+ }))},exports.Auth=
125
124
  /**
126
125
  * The Auth class.
127
126
  * @class
@@ -137,11 +136,11 @@ class{
137
136
  * @param {object} [options.ackeeInstance] The Ackee instance.
138
137
  * @throws {APIError} - Throws an error if the clientId is not provided.
139
138
  */
140
- constructor({clientId:t,redirectUri:e,allowAnalytics:i=!0,ackeeInstance:n}){if(E.add(this),S.set(this,void 0),j.set(this,void 0),!t)throw new Error("clientId is required");this.viem=null,
139
+ constructor({clientId:t,redirectUri:e,allowAnalytics:n=!0,ackeeInstance:i}){if(H.add(this),G.set(this,void 0),V.set(this,void 0),!t)throw new Error("clientId is required");this.viem=null,
141
140
  // if (typeof window !== "undefined") {
142
141
  // if (window.ethereum) this.viem = getClient(window.ethereum);
143
142
  // }
144
- this.redirectUri=(t=>{const e=["twitter","discord","spotify"];return"object"==typeof t?e.reduce(((e,i)=>(e[i]=t[i]||("undefined"!=typeof window?window.location.href:""),e)),{}):"string"==typeof t?e.reduce(((e,i)=>(e[i]=t,e)),{}):t?{}:e.reduce(((t,e)=>(t[e]="undefined"!=typeof window?window.location.href:"",t)),{})})(e),n&&s(this,j,n,"f"),i&&!o(this,j,"f")&&"undefined"!=typeof window&&s(this,j,V(g,{detailed:!1,ignoreLocalhost:!0,ignoreOwnVisits:!1}),"f"),this.clientId=t,this.isAuthenticated=!1,this.jwt=null,this.origin=null,this.walletAddress=null,this.userId=null,s(this,S,{},"f"),k((t=>{o(this,E,"m",C).call(this,"providers",t)})),o(this,E,"m",O).call(this)}
143
+ this.redirectUri=(t=>{const e=["twitter","discord","spotify"];return"object"==typeof t?e.reduce(((e,n)=>(e[n]=t[n]||("undefined"!=typeof window?window.location.href:""),e)),{}):"string"==typeof t?e.reduce(((e,n)=>(e[n]=t,e)),{}):t?{}:e.reduce(((t,e)=>(t[e]="undefined"!=typeof window?window.location.href:"",t)),{})})(e),i&&s(this,V,i,"f"),n&&r(this,V,"f"),this.clientId=t,this.isAuthenticated=!1,this.jwt=null,this.origin=null,this.walletAddress=null,this.userId=null,s(this,G,{},"f"),A((t=>{r(this,H,"m",Z).call(this,"providers",t)})),r(this,H,"m",Q).call(this)}
145
144
  /**
146
145
  * Subscribe to an event. Possible events are "state", "provider", "providers", and "viem".
147
146
  * @param {("state"|"provider"|"providers"|"viem")} event The event.
@@ -151,21 +150,18 @@ this.redirectUri=(t=>{const e=["twitter","discord","spotify"];return"object"==ty
151
150
  * auth.on("state", (state) => {
152
151
  * console.log(state);
153
152
  * });
154
- */on(t,e){o(this,S,"f")[t]||(o(this,S,"f")[t]=[]),o(this,S,"f")[t].push(e),"providers"===t&&e(T())}
153
+ */on(t,e){r(this,G,"f")[t]||(r(this,G,"f")[t]=[]),r(this,G,"f")[t].push(e),"providers"===t&&e(I())}
155
154
  /**
156
155
  * Set the loading state.
157
156
  * @param {boolean} loading The loading state.
158
157
  * @returns {void}
159
- */setLoading(t){o(this,E,"m",C).call(this,"state",t?"loading":this.isAuthenticated?"authenticated":"unauthenticated")}
158
+ */setLoading(t){r(this,H,"m",Z).call(this,"state",t?"loading":this.isAuthenticated?"authenticated":"unauthenticated")}
160
159
  /**
161
160
  * Set the provider. This is useful for setting the provider when the user selects a provider from the UI or when dApp wishes to use a specific provider.
162
161
  * @param {object} options The options object. Includes the provider and the provider info.
163
162
  * @returns {void}
164
163
  * @throws {APIError} - Throws an error if the provider is not provided.
165
- */setProvider({provider:t,info:e,address:i}){if(!t)throw new a("provider is required");
166
- // const addr = provider.selectedAddress || provider.accounts[0];
167
- // TOFIX: the address can be the leftover address, make sure it resets after disconnection
168
- this.viem=p(t,e.name,i),o(this,E,"m",C).call(this,"viem",this.viem),o(this,E,"m",C).call(this,"provider",{provider:t,info:e})}
164
+ */setProvider({provider:t,info:i,address:a}){if(!t)throw new o("provider is required");this.viem=((t,i="window.ethereum",a)=>{var r;if(!t&&!y)return console.warn("Provider is required to create a client."),null;if(!y||y.transport.name!==i&&t||a!==(null===(r=y.account)||void 0===r?void 0:r.address)&&t){const r={chain:c,transport:e.custom(t,{name:i})};a&&(r.account=n.toAccount(a)),y=e.createWalletClient(r)}return y})(t,i.name,a),this.origin&&this.origin.setViemClient(this.viem),r(this,H,"m",Z).call(this,"viem",this.viem),r(this,H,"m",Z).call(this,"provider",{provider:t,info:i})}
169
165
  /**
170
166
  * Set the wallet address. This is useful for edge cases where the provider can't return the wallet address. Don't use this unless you know what you're doing.
171
167
  * @param {string} walletAddress The wallet address.
@@ -174,13 +170,12 @@ this.viem=p(t,e.name,i),o(this,E,"m",C).call(this,"viem",this.viem),o(this,E,"m"
174
170
  /**
175
171
  * Disconnect the user.
176
172
  * @returns {Promise<void>}
177
- */disconnect(){return r(this,void 0,void 0,(function*(){this.isAuthenticated&&(this.isAuthenticated=!1,this.walletAddress=null,this.userId=null,this.jwt=null,this.origin=null,localStorage.removeItem("camp-sdk:wallet-address"),localStorage.removeItem("camp-sdk:user-id"),localStorage.removeItem("camp-sdk:jwt"),o(this,E,"m",C).call(this,"state","unauthenticated"),yield o(this,E,"m",_).call(this,I.USER_DISCONNECTED,"User Disconnected"))}))}
173
+ */disconnect(){return a(this,void 0,void 0,(function*(){this.isAuthenticated&&(r(this,H,"m",Z).call(this,"state","unauthenticated"),this.isAuthenticated=!1,this.walletAddress=null,this.userId=null,this.jwt=null,this.origin=null,localStorage.removeItem("camp-sdk:wallet-address"),localStorage.removeItem("camp-sdk:user-id"),localStorage.removeItem("camp-sdk:jwt"))}))}
178
174
  /**
179
175
  * Connect the user's wallet and sign the message.
180
176
  * @returns {Promise<{ success: boolean; message: string; walletAddress: string }>} A promise that resolves with the authentication result.
181
177
  * @throws {APIError} - Throws an error if the user cannot be authenticated.
182
- */connect(){return r(this,void 0,void 0,(function*(){o(this,E,"m",C).call(this,"state","loading");try{this.walletAddress||(yield o(this,E,"m",U).call(this));const t=yield o(this,E,"m",P).call(this),e=o(this,E,"m",N).call(this,t),i=yield this.viem.signMessage({account:this.walletAddress,message:e}),n=yield o(this,E,"m",D).call(this,e,i);if(n.success)return this.isAuthenticated=!0,this.userId=n.userId,this.jwt=n.token,this.origin=new x(this.jwt),localStorage.setItem("camp-sdk:jwt",this.jwt),localStorage.setItem("camp-sdk:wallet-address",this.walletAddress),localStorage.setItem("camp-sdk:user-id",this.userId),o(this,E,"m",C).call(this,"state","authenticated"),yield o(this,E,"m",_).call(this,I.USER_CONNECTED,"User Connected"),{success:!0,message:"Successfully authenticated",walletAddress:this.walletAddress};throw this.isAuthenticated=!1,o(this,E,"m",C).call(this,"state","unauthenticated"),new a("Failed to authenticate")}catch(t){throw this.isAuthenticated=!1,o(this,E,"m",C).call(this,"state","unauthenticated"),new a(t)}}))}
183
- // ORIGIN
178
+ */connect(){return a(this,void 0,void 0,(function*(){r(this,H,"m",Z).call(this,"state","loading");try{this.walletAddress||(yield r(this,H,"m",Y).call(this));const t=yield r(this,H,"m",X).call(this),e=r(this,H,"m",et).call(this,t),n=yield this.viem.signMessage({account:this.walletAddress,message:e}),i=yield r(this,H,"m",tt).call(this,e,n);if(i.success)return this.isAuthenticated=!0,this.userId=i.userId,this.jwt=i.token,this.origin=new dt(this.jwt,this.viem),localStorage.setItem("camp-sdk:jwt",this.jwt),localStorage.setItem("camp-sdk:wallet-address",this.walletAddress),localStorage.setItem("camp-sdk:user-id",this.userId),r(this,H,"m",Z).call(this,"state","authenticated"),yield r(this,H,"m",nt).call(this,v.USER_CONNECTED,"User Connected"),{success:!0,message:"Successfully authenticated",walletAddress:this.walletAddress};throw this.isAuthenticated=!1,r(this,H,"m",Z).call(this,"state","unauthenticated"),new o("Failed to authenticate")}catch(t){throw this.isAuthenticated=!1,r(this,H,"m",Z).call(this,"state","unauthenticated"),new o(t)}}))}
184
179
  /**
185
180
  * Get the user's linked social accounts.
186
181
  * @returns {Promise<Record<string, boolean>>} A promise that resolves with the user's linked social accounts.
@@ -189,50 +184,49 @@ this.viem=p(t,e.name,i),o(this,E,"m",C).call(this,"viem",this.viem),o(this,E,"m"
189
184
  * const auth = new Auth({ clientId: "your-client-id" });
190
185
  * const socials = await auth.getLinkedSocials();
191
186
  * console.log(socials);
192
- */
193
- getLinkedSocials(){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const t=yield fetch(`${y}/auth/client-user/connections-sdk`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"}}).then((t=>t.json()));if(t.isError)throw new a(t.message||"Failed to fetch connections");{const e={};return Object.keys(t.data.data).forEach((i=>{e[i.split("User")[0]]=t.data.data[i]})),e}}))}
187
+ */getLinkedSocials(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const t=yield fetch(`${w}/auth/client-user/connections-sdk`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"}}).then((t=>t.json()));if(t.isError)throw new o(t.message||"Failed to fetch connections");{const e={};return Object.keys(t.data.data).forEach((n=>{e[n.split("User")[0]]=t.data.data[n]})),e}}))}
194
188
  /**
195
189
  * Link the user's Twitter account.
196
190
  * @returns {Promise<void>}
197
191
  * @throws {Error} - Throws an error if the user is not authenticated.
198
- */linkTwitter(){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");
192
+ */linkTwitter(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");
199
193
  // await this.#sendAnalyticsEvent(
200
194
  // constants.ACKEE_EVENTS.TWITTER_LINKED,
201
195
  // "Twitter Linked"
202
196
  // );
203
- window.location.href=`${y}/twitter/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.twitter}`}))}
197
+ window.location.href=`${w}/twitter/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.twitter}`}))}
204
198
  /**
205
199
  * Link the user's Discord account.
206
200
  * @returns {Promise<void>}
207
201
  * @throws {Error} - Throws an error if the user is not authenticated.
208
- */linkDiscord(){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");
202
+ */linkDiscord(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");
209
203
  // await this.#sendAnalyticsEvent(
210
204
  // constants.ACKEE_EVENTS.DISCORD_LINKED,
211
205
  // "Discord Linked"
212
206
  // );
213
- window.location.href=`${y}/discord/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.discord}`}))}
207
+ window.location.href=`${w}/discord/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.discord}`}))}
214
208
  /**
215
209
  * Link the user's Spotify account.
216
210
  * @returns {Promise<void>}
217
211
  * @throws {Error} - Throws an error if the user is not authenticated.
218
- */linkSpotify(){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");
212
+ */linkSpotify(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");
219
213
  // await this.#sendAnalyticsEvent(
220
214
  // constants.ACKEE_EVENTS.SPOTIFY_LINKED,
221
215
  // "Spotify Linked"
222
216
  // );
223
- window.location.href=`${y}/spotify/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.spotify}`}))}
217
+ window.location.href=`${w}/spotify/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.spotify}`}))}
224
218
  /**
225
219
  * Link the user's TikTok account.
226
220
  * @param {string} handle The user's TikTok handle.
227
221
  * @returns {Promise<any>} A promise that resolves with the TikTok account data.
228
222
  * @throws {Error|APIError} - Throws an error if the user is not authenticated.
229
- */linkTikTok(t){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${y}/tiktok/connect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userHandle:t,clientId:this.clientId,userId:this.userId})}).then((t=>t.json()));if(e.isError)throw"Request failed with status code 502"===e.message?new a("TikTok service is currently unavailable, try again later"):new a(e.message||"Failed to link TikTok account");return o(this,E,"m",_).call(this,I.TIKTOK_LINKED,"TikTok Linked"),e.data}))}
223
+ */linkTikTok(t){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${w}/tiktok/connect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userHandle:t,clientId:this.clientId,userId:this.userId})}).then((t=>t.json()));if(e.isError)throw"Request failed with status code 502"===e.message?new o("TikTok service is currently unavailable, try again later"):new o(e.message||"Failed to link TikTok account");return r(this,H,"m",nt).call(this,v.TIKTOK_LINKED,"TikTok Linked"),e.data}))}
230
224
  /**
231
225
  * Send an OTP to the user's Telegram account.
232
226
  * @param {string} phoneNumber The user's phone number.
233
227
  * @returns {Promise<any>} A promise that resolves with the OTP data.
234
228
  * @throws {Error|APIError} - Throws an error if the user is not authenticated.
235
- */sendTelegramOTP(t){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!t)throw new a("Phone number is required");yield this.unlinkTelegram();const e=yield fetch(`${y}/telegram/sendOTP-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({phone:t})}).then((t=>t.json()));if(e.isError)throw new a(e.message||"Failed to send Telegram OTP");return e.data}))}
229
+ */sendTelegramOTP(t){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!t)throw new o("Phone number is required");yield this.unlinkTelegram();const e=yield fetch(`${w}/telegram/sendOTP-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({phone:t})}).then((t=>t.json()));if(e.isError)throw new o(e.message||"Failed to send Telegram OTP");return e.data}))}
236
230
  /**
237
231
  * Link the user's Telegram account.
238
232
  * @param {string} phoneNumber The user's phone number.
@@ -240,47 +234,37 @@ window.location.href=`${y}/spotify/connect?clientId=${this.clientId}&userId=${th
240
234
  * @param {string} phoneCodeHash The phone code hash.
241
235
  * @returns {Promise<object>} A promise that resolves with the Telegram account data.
242
236
  * @throws {APIError|Error} - Throws an error if the user is not authenticated. Also throws an error if the phone number, OTP, and phone code hash are not provided.
243
- */linkTelegram(t,e,i){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!t||!e||!i)throw new a("Phone number, OTP, and phone code hash are required");const n=yield fetch(`${y}/telegram/signIn-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({phone:t,code:e,phone_code_hash:i,userId:this.userId,clientId:this.clientId})}).then((t=>t.json()));if(n.isError)throw new a(n.message||"Failed to link Telegram account");return o(this,E,"m",_).call(this,I.TELEGRAM_LINKED,"Telegram Linked"),n.data}))}
237
+ */linkTelegram(t,e,n){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!t||!e||!n)throw new o("Phone number, OTP, and phone code hash are required");const i=yield fetch(`${w}/telegram/signIn-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({phone:t,code:e,phone_code_hash:n,userId:this.userId,clientId:this.clientId})}).then((t=>t.json()));if(i.isError)throw new o(i.message||"Failed to link Telegram account");return r(this,H,"m",nt).call(this,v.TELEGRAM_LINKED,"Telegram Linked"),i.data}))}
244
238
  /**
245
239
  * Unlink the user's Twitter account.
246
240
  * @returns {Promise<any>} A promise that resolves with the unlink result.
247
241
  * @throws {Error} - Throws an error if the user is not authenticated.
248
242
  * @throws {APIError} - Throws an error if the request fails.
249
- */unlinkTwitter(){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const t=yield fetch(`${y}/twitter/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((t=>t.json()));if(t.isError)throw new a(t.message||"Failed to unlink Twitter account");return t.data}))}
243
+ */unlinkTwitter(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const t=yield fetch(`${w}/twitter/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((t=>t.json()));if(t.isError)throw new o(t.message||"Failed to unlink Twitter account");return t.data}))}
250
244
  /**
251
245
  * Unlink the user's Discord account.
252
246
  * @returns {Promise<any>} A promise that resolves with the unlink result.
253
247
  * @throws {Error} - Throws an error if the user is not authenticated.
254
248
  * @throws {APIError} - Throws an error if the request fails.
255
- */unlinkDiscord(){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new a("User needs to be authenticated");const t=yield fetch(`${y}/discord/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((t=>t.json()));if(t.isError)throw new a(t.message||"Failed to unlink Discord account");return t.data}))}
249
+ */unlinkDiscord(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new o("User needs to be authenticated");const t=yield fetch(`${w}/discord/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((t=>t.json()));if(t.isError)throw new o(t.message||"Failed to unlink Discord account");return t.data}))}
256
250
  /**
257
251
  * Unlink the user's Spotify account.
258
252
  * @returns {Promise<any>} A promise that resolves with the unlink result.
259
253
  * @throws {Error} - Throws an error if the user is not authenticated.
260
254
  * @throws {APIError} - Throws an error if the request fails.
261
- */unlinkSpotify(){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new a("User needs to be authenticated");const t=yield fetch(`${y}/spotify/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((t=>t.json()));if(t.isError)throw new a(t.message||"Failed to unlink Spotify account");return t.data}))}
255
+ */unlinkSpotify(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new o("User needs to be authenticated");const t=yield fetch(`${w}/spotify/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((t=>t.json()));if(t.isError)throw new o(t.message||"Failed to unlink Spotify account");return t.data}))}
262
256
  /**
263
257
  * Unlink the user's TikTok account.
264
258
  * @returns {Promise<any>} A promise that resolves with the unlink result.
265
259
  * @throws {Error} - Throws an error if the user is not authenticated.
266
260
  * @throws {APIError} - Throws an error if the request fails.
267
- */unlinkTikTok(){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new a("User needs to be authenticated");const t=yield fetch(`${y}/tiktok/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userId:this.userId})}).then((t=>t.json()));if(t.isError)throw new a(t.message||"Failed to unlink TikTok account");return t.data}))}
261
+ */unlinkTikTok(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new o("User needs to be authenticated");const t=yield fetch(`${w}/tiktok/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userId:this.userId})}).then((t=>t.json()));if(t.isError)throw new o(t.message||"Failed to unlink TikTok account");return t.data}))}
268
262
  /**
269
263
  * Unlink the user's Telegram account.
270
264
  * @returns {Promise<any>} A promise that resolves with the unlink result.
271
265
  * @throws {Error} - Throws an error if the user is not authenticated.
272
266
  * @throws {APIError} - Throws an error if the request fails.
273
- */unlinkTelegram(){return r(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new a("User needs to be authenticated");const t=yield fetch(`${y}/telegram/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userId:this.userId})}).then((t=>t.json()));if(t.isError)throw new a(t.message||"Failed to unlink Telegram account");return t.data}))}
274
- /**
275
- * Call a contract method.
276
- * @param {string} contractAddress The contract address.
277
- * @param {Abi} abi The contract ABI.
278
- * @param {string} methodName The method name.
279
- * @param {any[]} params The method parameters.
280
- * @param {CallOptions} [options] The call options.
281
- * @returns {Promise<any>} A promise that resolves with the result of the contract call or transaction hash.
282
- * @throws {Error} - Throws an error if the wallet client is not connected or if the method is not a view function.
283
- */callContractMethod(t,i,n,s){return r(this,arguments,void 0,(function*(t,i,n,r,s={}){const a=e.getAbiItem({abi:i,name:n}),d=a&&"stateMutability"in a&&("view"===a.stateMutability||"pure"===a.stateMutability);if(!d&&!this.viem)throw new Error("WalletClient not connected.");if(d){const e=m();return(yield e.readContract({address:t,abi:i,functionName:n,args:r}))||null}{const[a]=yield this.viem.getAddresses(),d=e.encodeFunctionData({abi:i,functionName:n,args:r});yield o(this,E,"m",B).call(this,l);const c=yield this.viem.sendTransaction({to:t,data:d,account:a,value:s.value,gas:s.gas});if(s.waitForReceipt){return yield o(this,E,"m",W).call(this,c)}return c}}))}},exports.SpotifyAPI=
267
+ */unlinkTelegram(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new o("User needs to be authenticated");const t=yield fetch(`${w}/telegram/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userId:this.userId})}).then((t=>t.json()));if(t.isError)throw new o(t.message||"Failed to unlink Telegram account");return t.data}))}},exports.SpotifyAPI=
284
268
  /**
285
269
  * The SpotifyAPI class.
286
270
  * @class
@@ -299,51 +283,51 @@ constructor(t){this.apiKey=t.apiKey}
299
283
  * @param {string} spotifyId - The user's Spotify ID.
300
284
  * @returns {Promise<object>} - The saved tracks.
301
285
  * @throws {APIError} - Throws an error if the request fails.
302
- */fetchSavedTracksById(t){return r(this,void 0,void 0,(function*(){const e=c(`${u}/save-tracks`,{spotifyId:t});return this._fetchDataWithAuth(e)}))}
286
+ */fetchSavedTracksById(t){return a(this,void 0,void 0,(function*(){const e=u(`${p}/save-tracks`,{spotifyId:t});return this._fetchDataWithAuth(e)}))}
303
287
  /**
304
288
  * Fetch the played tracks of a user by Spotify ID.
305
289
  * @param {string} spotifyId - The user's Spotify ID.
306
290
  * @returns {Promise<object>} - The played tracks.
307
291
  * @throws {APIError} - Throws an error if the request fails.
308
- */fetchPlayedTracksById(t){return r(this,void 0,void 0,(function*(){const e=c(`${u}/played-tracks`,{spotifyId:t});return this._fetchDataWithAuth(e)}))}
292
+ */fetchPlayedTracksById(t){return a(this,void 0,void 0,(function*(){const e=u(`${p}/played-tracks`,{spotifyId:t});return this._fetchDataWithAuth(e)}))}
309
293
  /**
310
294
  * Fetch the user's saved albums by Spotify user ID.
311
295
  * @param {string} spotifyId - The user's Spotify ID.
312
296
  * @returns {Promise<object>} - The saved albums.
313
297
  * @throws {APIError} - Throws an error if the request fails.
314
- */fetchSavedAlbumsById(t){return r(this,void 0,void 0,(function*(){const e=c(`${u}/saved-albums`,{spotifyId:t});return this._fetchDataWithAuth(e)}))}
298
+ */fetchSavedAlbumsById(t){return a(this,void 0,void 0,(function*(){const e=u(`${p}/saved-albums`,{spotifyId:t});return this._fetchDataWithAuth(e)}))}
315
299
  /**
316
300
  * Fetch the user's saved playlists by Spotify user ID.
317
301
  * @param {string} spotifyId - The user's Spotify ID.
318
302
  * @returns {Promise<object>} - The saved playlists.
319
303
  * @throws {APIError} - Throws an error if the request fails.
320
- */fetchSavedPlaylistsById(t){return r(this,void 0,void 0,(function*(){const e=c(`${u}/saved-playlists`,{spotifyId:t});return this._fetchDataWithAuth(e)}))}
304
+ */fetchSavedPlaylistsById(t){return a(this,void 0,void 0,(function*(){const e=u(`${p}/saved-playlists`,{spotifyId:t});return this._fetchDataWithAuth(e)}))}
321
305
  /**
322
306
  * Fetch the tracks of an album by album ID.
323
307
  * @param {string} spotifyId - The Spotify ID of the user.
324
308
  * @param {string} albumId - The album ID.
325
309
  * @returns {Promise<object>} - The tracks in the album.
326
310
  * @throws {APIError} - Throws an error if the request fails.
327
- */fetchTracksInAlbum(t,e){return r(this,void 0,void 0,(function*(){const i=c(`${u}/album/tracks`,{spotifyId:t,albumId:e});return this._fetchDataWithAuth(i)}))}
311
+ */fetchTracksInAlbum(t,e){return a(this,void 0,void 0,(function*(){const n=u(`${p}/album/tracks`,{spotifyId:t,albumId:e});return this._fetchDataWithAuth(n)}))}
328
312
  /**
329
313
  * Fetch the tracks in a playlist by playlist ID.
330
314
  * @param {string} spotifyId - The Spotify ID of the user.
331
315
  * @param {string} playlistId - The playlist ID.
332
316
  * @returns {Promise<object>} - The tracks in the playlist.
333
317
  * @throws {APIError} - Throws an error if the request fails.
334
- */fetchTracksInPlaylist(t,e){return r(this,void 0,void 0,(function*(){const i=c(`${u}/playlist/tracks`,{spotifyId:t,playlistId:e});return this._fetchDataWithAuth(i)}))}
318
+ */fetchTracksInPlaylist(t,e){return a(this,void 0,void 0,(function*(){const n=u(`${p}/playlist/tracks`,{spotifyId:t,playlistId:e});return this._fetchDataWithAuth(n)}))}
335
319
  /**
336
320
  * Fetch the user's Spotify data by wallet address.
337
321
  * @param {string} walletAddress - The wallet address.
338
322
  * @returns {Promise<object>} - The user's Spotify data.
339
323
  * @throws {APIError} - Throws an error if the request fails.
340
- */fetchUserByWalletAddress(t){return r(this,void 0,void 0,(function*(){const e=c(`${u}/wallet-spotify-data`,{walletAddress:t});return this._fetchDataWithAuth(e)}))}
324
+ */fetchUserByWalletAddress(t){return a(this,void 0,void 0,(function*(){const e=u(`${p}/wallet-spotify-data`,{walletAddress:t});return this._fetchDataWithAuth(e)}))}
341
325
  /**
342
326
  * Private method to fetch data with authorization header.
343
327
  * @param {string} url - The URL to fetch.
344
328
  * @returns {Promise<object>} - The response data.
345
329
  * @throws {APIError} - Throws an error if the request fails.
346
- */_fetchDataWithAuth(t){return r(this,void 0,void 0,(function*(){if(!this.apiKey)throw new a("API key is required for fetching data",401);try{return yield d(t,{"x-api-key":this.apiKey})}catch(t){throw new a(t.message,t.statusCode)}}))}},exports.TwitterAPI=
330
+ */_fetchDataWithAuth(t){return a(this,void 0,void 0,(function*(){if(!this.apiKey)throw new o("API key is required for fetching data",401);try{return yield d(t,{"x-api-key":this.apiKey})}catch(t){throw new o(t.message,t.statusCode)}}))}},exports.TwitterAPI=
347
331
  /**
348
332
  * The TwitterAPI class.
349
333
  * @class
@@ -361,7 +345,7 @@ constructor({apiKey:t}){this.apiKey=t}
361
345
  * @param {string} twitterUserName - The Twitter username.
362
346
  * @returns {Promise<object>} - The user details.
363
347
  * @throws {APIError} - Throws an error if the request fails.
364
- */fetchUserByUsername(t){return r(this,void 0,void 0,(function*(){const e=c(`${h}/user`,{twitterUserName:t});return this._fetchDataWithAuth(e)}))}
348
+ */fetchUserByUsername(t){return a(this,void 0,void 0,(function*(){const e=u(`${l}/user`,{twitterUserName:t});return this._fetchDataWithAuth(e)}))}
365
349
  /**
366
350
  * Fetch tweets by Twitter username.
367
351
  * @param {string} twitterUserName - The Twitter username.
@@ -369,7 +353,7 @@ constructor({apiKey:t}){this.apiKey=t}
369
353
  * @param {number} limit - The number of items per page.
370
354
  * @returns {Promise<object>} - The tweets.
371
355
  * @throws {APIError} - Throws an error if the request fails.
372
- */fetchTweetsByUsername(t){return r(this,arguments,void 0,(function*(t,e=1,i=10){const n=c(`${h}/tweets`,{twitterUserName:t,page:e,limit:i});return this._fetchDataWithAuth(n)}))}
356
+ */fetchTweetsByUsername(t){return a(this,arguments,void 0,(function*(t,e=1,n=10){const i=u(`${l}/tweets`,{twitterUserName:t,page:e,limit:n});return this._fetchDataWithAuth(i)}))}
373
357
  /**
374
358
  * Fetch followers by Twitter username.
375
359
  * @param {string} twitterUserName - The Twitter username.
@@ -377,7 +361,7 @@ constructor({apiKey:t}){this.apiKey=t}
377
361
  * @param {number} limit - The number of items per page.
378
362
  * @returns {Promise<object>} - The followers.
379
363
  * @throws {APIError} - Throws an error if the request fails.
380
- */fetchFollowersByUsername(t){return r(this,arguments,void 0,(function*(t,e=1,i=10){const n=c(`${h}/followers`,{twitterUserName:t,page:e,limit:i});return this._fetchDataWithAuth(n)}))}
364
+ */fetchFollowersByUsername(t){return a(this,arguments,void 0,(function*(t,e=1,n=10){const i=u(`${l}/followers`,{twitterUserName:t,page:e,limit:n});return this._fetchDataWithAuth(i)}))}
381
365
  /**
382
366
  * Fetch following by Twitter username.
383
367
  * @param {string} twitterUserName - The Twitter username.
@@ -385,13 +369,13 @@ constructor({apiKey:t}){this.apiKey=t}
385
369
  * @param {number} limit - The number of items per page.
386
370
  * @returns {Promise<object>} - The following.
387
371
  * @throws {APIError} - Throws an error if the request fails.
388
- */fetchFollowingByUsername(t){return r(this,arguments,void 0,(function*(t,e=1,i=10){const n=c(`${h}/following`,{twitterUserName:t,page:e,limit:i});return this._fetchDataWithAuth(n)}))}
372
+ */fetchFollowingByUsername(t){return a(this,arguments,void 0,(function*(t,e=1,n=10){const i=u(`${l}/following`,{twitterUserName:t,page:e,limit:n});return this._fetchDataWithAuth(i)}))}
389
373
  /**
390
374
  * Fetch tweet by tweet ID.
391
375
  * @param {string} tweetId - The tweet ID.
392
376
  * @returns {Promise<object>} - The tweet.
393
377
  * @throws {APIError} - Throws an error if the request fails.
394
- */fetchTweetById(t){return r(this,void 0,void 0,(function*(){const e=c(`${h}/getTweetById`,{tweetId:t});return this._fetchDataWithAuth(e)}))}
378
+ */fetchTweetById(t){return a(this,void 0,void 0,(function*(){const e=u(`${l}/getTweetById`,{tweetId:t});return this._fetchDataWithAuth(e)}))}
395
379
  /**
396
380
  * Fetch user by wallet address.
397
381
  * @param {string} walletAddress - The wallet address.
@@ -399,7 +383,7 @@ constructor({apiKey:t}){this.apiKey=t}
399
383
  * @param {number} limit - The number of items per page.
400
384
  * @returns {Promise<object>} - The user data.
401
385
  * @throws {APIError} - Throws an error if the request fails.
402
- */fetchUserByWalletAddress(t){return r(this,arguments,void 0,(function*(t,e=1,i=10){const n=c(`${h}/wallet-twitter-data`,{walletAddress:t,page:e,limit:i});return this._fetchDataWithAuth(n)}))}
386
+ */fetchUserByWalletAddress(t){return a(this,arguments,void 0,(function*(t,e=1,n=10){const i=u(`${l}/wallet-twitter-data`,{walletAddress:t,page:e,limit:n});return this._fetchDataWithAuth(i)}))}
403
387
  /**
404
388
  * Fetch reposted tweets by Twitter username.
405
389
  * @param {string} twitterUserName - The Twitter username.
@@ -407,7 +391,7 @@ constructor({apiKey:t}){this.apiKey=t}
407
391
  * @param {number} limit - The number of items per page.
408
392
  * @returns {Promise<object>} - The reposted tweets.
409
393
  * @throws {APIError} - Throws an error if the request fails.
410
- */fetchRepostedByUsername(t){return r(this,arguments,void 0,(function*(t,e=1,i=10){const n=c(`${h}/reposted`,{twitterUserName:t,page:e,limit:i});return this._fetchDataWithAuth(n)}))}
394
+ */fetchRepostedByUsername(t){return a(this,arguments,void 0,(function*(t,e=1,n=10){const i=u(`${l}/reposted`,{twitterUserName:t,page:e,limit:n});return this._fetchDataWithAuth(i)}))}
411
395
  /**
412
396
  * Fetch replies by Twitter username.
413
397
  * @param {string} twitterUserName - The Twitter username.
@@ -415,7 +399,7 @@ constructor({apiKey:t}){this.apiKey=t}
415
399
  * @param {number} limit - The number of items per page.
416
400
  * @returns {Promise<object>} - The replies.
417
401
  * @throws {APIError} - Throws an error if the request fails.
418
- */fetchRepliesByUsername(t){return r(this,arguments,void 0,(function*(t,e=1,i=10){const n=c(`${h}/replies`,{twitterUserName:t,page:e,limit:i});return this._fetchDataWithAuth(n)}))}
402
+ */fetchRepliesByUsername(t){return a(this,arguments,void 0,(function*(t,e=1,n=10){const i=u(`${l}/replies`,{twitterUserName:t,page:e,limit:n});return this._fetchDataWithAuth(i)}))}
419
403
  /**
420
404
  * Fetch likes by Twitter username.
421
405
  * @param {string} twitterUserName - The Twitter username.
@@ -423,7 +407,7 @@ constructor({apiKey:t}){this.apiKey=t}
423
407
  * @param {number} limit - The number of items per page.
424
408
  * @returns {Promise<object>} - The likes.
425
409
  * @throws {APIError} - Throws an error if the request fails.
426
- */fetchLikesByUsername(t){return r(this,arguments,void 0,(function*(t,e=1,i=10){const n=c(`${h}/event/likes/${t}`,{page:e,limit:i});return this._fetchDataWithAuth(n)}))}
410
+ */fetchLikesByUsername(t){return a(this,arguments,void 0,(function*(t,e=1,n=10){const i=u(`${l}/event/likes/${t}`,{page:e,limit:n});return this._fetchDataWithAuth(i)}))}
427
411
  /**
428
412
  * Fetch follows by Twitter username.
429
413
  * @param {string} twitterUserName - The Twitter username.
@@ -431,7 +415,7 @@ constructor({apiKey:t}){this.apiKey=t}
431
415
  * @param {number} limit - The number of items per page.
432
416
  * @returns {Promise<object>} - The follows.
433
417
  * @throws {APIError} - Throws an error if the request fails.
434
- */fetchFollowsByUsername(t){return r(this,arguments,void 0,(function*(t,e=1,i=10){const n=c(`${h}/event/follows/${t}`,{page:e,limit:i});return this._fetchDataWithAuth(n)}))}
418
+ */fetchFollowsByUsername(t){return a(this,arguments,void 0,(function*(t,e=1,n=10){const i=u(`${l}/event/follows/${t}`,{page:e,limit:n});return this._fetchDataWithAuth(i)}))}
435
419
  /**
436
420
  * Fetch viewed tweets by Twitter username.
437
421
  * @param {string} twitterUserName - The Twitter username.
@@ -439,10 +423,10 @@ constructor({apiKey:t}){this.apiKey=t}
439
423
  * @param {number} limit - The number of items per page.
440
424
  * @returns {Promise<object>} - The viewed tweets.
441
425
  * @throws {APIError} - Throws an error if the request fails.
442
- */fetchViewedTweetsByUsername(t){return r(this,arguments,void 0,(function*(t,e=1,i=10){const n=c(`${h}/event/viewed-tweets/${t}`,{page:e,limit:i});return this._fetchDataWithAuth(n)}))}
426
+ */fetchViewedTweetsByUsername(t){return a(this,arguments,void 0,(function*(t,e=1,n=10){const i=u(`${l}/event/viewed-tweets/${t}`,{page:e,limit:n});return this._fetchDataWithAuth(i)}))}
443
427
  /**
444
428
  * Private method to fetch data with authorization header.
445
429
  * @param {string} url - The URL to fetch.
446
430
  * @returns {Promise<object>} - The response data.
447
431
  * @throws {APIError} - Throws an error if the request fails.
448
- */_fetchDataWithAuth(t){return r(this,void 0,void 0,(function*(){if(!this.apiKey)throw new a("API key is required for fetching data",401);try{return yield d(t,{"x-api-key":this.apiKey})}catch(t){throw new a(t.message,t.statusCode)}}))}};
432
+ */_fetchDataWithAuth(t){return a(this,void 0,void 0,(function*(){if(!this.apiKey)throw new o("API key is required for fetching data",401);try{return yield d(t,{"x-api-key":this.apiKey})}catch(t){throw new o(t.message,t.statusCode)}}))}};