@wdft/micropayments-sdk 0.0.8 → 0.0.9

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/client.js CHANGED
@@ -1 +1 @@
1
- async function u(s){return s.headers.get("Content-Type")?.includes("application/json")?await s.json():await s.text()}function C(s,t){return Math.floor(Math.random()*(t-s+1))+s}function d(s){let t=0;if(!s)return t;let r=typeof s=="number"?s:parseInt(s,10);return!isNaN(r)&&isFinite(r)?t=r*1e3:t=0,t}async function l(s,t,r){try{let i=await r(new Request(s,t));if(i.ok){let e=i.headers.get("Retry-After");return{status:i.status,error:!1,retry_after:d(i.headers.get("Retry-After")),data:await u(i)}}let n=await u(i);return{status:i.status,error:n&&typeof n=="object"&&"error"in n?n.error:!0,message:n&&typeof n=="object"&&"message"in n?n.message:i.statusText,retry_after:d(i.headers.get("Retry-After")),data:null}}catch(i){return{status:500,error:!0,message:i instanceof Error?i.message:`${i}`,retry_after:C(1e4,3e4),data:null}}}function h(s,t){let r=s.endsWith("/")?s.substring(0,s.length-1):s,i=t.startsWith("/")?t:"/".concat(t);return r+i}var o=class{constructor(t){this.options=t;if(!t.fetcher&&!globalThis.fetch)throw new Error('fetch is not available in environment, pass "fetcher" option with satisfies fetch interface');this.fetcher=this.options.fetcher??globalThis.fetch}async createCommitment(t,r,i,n){let e=await l(h(this.options.endpoint,"/commitment"),{method:"POST",body:JSON.stringify({tenant_id:this.options.tenant_id,reference_id:t,currency:i,metadata:n??{title:"",url:""},amount:r})},this.fetcher);if(e.error)throw new Error(e.message);if(!e.data)throw new Error("Bad response");return e.data}async checkCommitment(t){let r=await l(h(this.options.endpoint,`/commitment/${t}`),{method:"GET"},this.fetcher);switch(r.status){case 402:return{commitment_id:t,message:r.message||"Payment required - you are over limit",status:"rejected"};case 410:return{commitment_id:t,message:r.message||"Expired",status:"expired"}}if(r.error)throw new Error(r.message);if(!r.data)throw new Error("Bad response");return{commitment_id:r.data.commitment_id,message:r.data.message,status:r.data.status,retry_after:r.retry_after}}};var c=5e3,a=class{constructor(t,r,i){this.service=t;this.options=i;this.retries=0;this.currentTimer=null;this.currentCheck=null;this.payload={message:"Creating...",status:"initializing",...r},this.options.onCreated&&this.options.onCreated(this)}isExpired(){return Date.now()>this.payload.expires_at}isRejected(){return this.getStatus()==="rejected"}isResolved(){return this.getStatus()==="resolved"}getMessage(){return this.payload.message||""}getStatus(){return this.payload.status}getClickUrl(){return this.payload.click_url}getAmount(){return this.payload.amount}getCurrency(){return this.payload.currency}getReferenceId(){return this.payload.reference_id}getCommitmentId(){return this.payload.commitment_id}markAsCreated(){this.payload.status!=="created"&&(this.payload.status="created",this.options.onCreated&&this.options.onCreated(this))}markAsDuplicated(){if(this.payload.status==="duplicated"){this.stopChecking();return}this.payload.status="duplicated",this.stopChecking(),this.options.onDuplicated&&this.options.onDuplicated(this)}markAsWaiting(){this.payload.status!=="waiting"&&(this.payload.status="waiting",this.options.onWaiting&&this.options.onWaiting(this))}markAsExpired(){if(this.payload.status==="expired"){this.stopChecking();return}this.payload.status="expired",this.options.onExpired&&this.options.onExpired(this),this.stopChecking()}markAsRejected(){if(this.payload.status==="rejected"){this.stopChecking();return}this.payload.status="rejected",this.options.onRejected&&this.options.onRejected(this),this.stopChecking()}markAsResolved(){if(this.payload.status==="resolved"){this.stopChecking();return}this.payload.status="resolved",this.stopChecking(),this.options.onResolved&&this.options.onResolved(this)}getNextCallTime(){return this.retries++,Math.min(5e3,this.payload.retry_ms+this.payload.retry_ms*(this.retries/10))}startChecking(){this.currentCheck||(this.currentCheck=this.check().then(t=>{let r=this.getNextCallTime();return t==="waiting"&&(this.currentTimer=setTimeout(()=>this.startChecking(),r)),t}).finally(()=>{this.stopChecking(!1)}))}stopChecking(t=!0){this.currentCheck=null,this.currentTimer&&t&&clearTimeout(this.currentTimer)}async check(){if(this.isExpired())return this.markAsExpired(),this.getStatus();if(this.isRejected())return this.markAsRejected(),this.getStatus();if(this.isResolved())return this.markAsResolved(),this.getStatus();try{let t=await this.service.checkCommitment(this.getCommitmentId());switch(t.retry_after&&(this.options.retry_ms=Math.max(this.options.retry_ms||c,t.retry_after)),t.status){case"duplicated":{this.markAsDuplicated();break}case"expired":{this.markAsExpired();break}case"resolved":{this.markAsResolved();break}case"waiting":{this.markAsWaiting();break}case"rejected":{this.markAsRejected();break}}this.options.onCheck&&this.options.onCheck(this)}catch(t){if(this.options.onError)this.options.onError(t,this),this.stopChecking();else throw t}return this.getStatus()}},p=class s{constructor(t,r){this.svc=t;this.options=r}static new(t){return new s(new o(t),t)}async createDirect(t,r,i={}){let n=i.currency??this.options.currency,e=await this.svc.createCommitment(t,r,n,i.metadata);return new a(this.svc,{commitment_id:e.commitment_id,amount:r,currency:n,reference_id:t,expires_at:e.expires_at,click_url:e.click_url,retry_ms:this.options.retry_ms??c},i)}create(t,r,i){let n=this.commitmentBuilder().setAmount(r).setCurrency(this.options.currency).setMetadataUrl(globalThis?.location?.href??"").setMetadataTitle(globalThis?.document?.title??"").setReference(t);this.options.retry_ms&&n.setRetryTime(this.options.retry_ms),n.onCreated(e=>(e.startChecking(),i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()}))).onWaiting(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onDuplicated(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onExpired(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onRejected(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onResolved(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onError((e,g)=>{g?.stopChecking(),i(e,null)}).exec()}commitmentBuilder(){return new m(this)}},m=class{constructor(t){this.client=t;this._retry_ms=c;this._metadata={title:"",url:""};this._onCreatedFn=()=>{};this._onResolvedFn=()=>{};this._onErrorFn=()=>{};this._onExpiredFn=()=>{};this._onRejectedFn=()=>{};this._onDuplicatedFn=()=>{};this._onCheckFn=()=>{};this._onWaitingFn=()=>{}}setMetadataTitle(t=""){return this._metadata.title=t,this}setMetadataUrl(t=""){return this._metadata.url=t,this}setRetryTime(t){return this._retry_ms=t,this}setAmount(t){return this._amount=t,this}setReference(t){return this._reference_id=t,this}setCurrency(t){return this._currency=t,this}onCreated(t){return this._onCreatedFn=t,this}onResolved(t){return this._onResolvedFn=t,this}onExpired(t){return this._onExpiredFn=t,this}onRejected(t){return this._onRejectedFn=t,this}onError(t){return this._onErrorFn=t,this}onDuplicated(t){return this._onDuplicatedFn=t,this}onCheck(t){return this._onCheckFn=t,this}onWaiting(t){return this._onWaitingFn=t,this}exec(){if(!this._reference_id)throw new Error("reference_id must be defined");if(!this._amount)throw new Error("amount must be defined");if(!this._currency)throw new Error("currency must be defined");this.client.createDirect(this._reference_id,this._amount,{retry_ms:this._retry_ms,currency:this._currency,metadata:this._metadata,onCheck:this._onCheckFn,onCreated:this._onCreatedFn,onDuplicated:this._onDuplicatedFn,onError:this._onErrorFn,onExpired:this._onExpiredFn,onWaiting:this._onWaitingFn,onRejected:this._onRejectedFn,onResolved:this._onResolvedFn}).catch(t=>{if(this._onErrorFn)this._onErrorFn(t);else throw t})}};export{p as Client};
1
+ var C="2025-09-30";async function u(s){return s.headers.get("Content-Type")?.includes("application/json")?await s.json():await s.text()}function y(s,t){return Math.floor(Math.random()*(t-s+1))+s}function d(s){let t=0;if(!s)return t;let r=typeof s=="number"?s:parseInt(s,10);return!isNaN(r)&&isFinite(r)?t=r*1e3:t=0,t}async function l(s,t,r){try{let i=await r(new Request(s,t));if(i.ok){let e=i.headers.get("Retry-After");return{status:i.status,error:!1,retry_after:d(i.headers.get("Retry-After")),data:await u(i)}}let n=await u(i);return{status:i.status,error:n&&typeof n=="object"&&"error"in n?n.error:!0,message:n&&typeof n=="object"&&"message"in n?n.message:i.statusText,retry_after:d(i.headers.get("Retry-After")),data:null}}catch(i){return{status:500,error:!0,message:i instanceof Error?i.message:`${i}`,retry_after:y(1e4,3e4),data:null}}}function h(s,t){let r=s.endsWith("/")?s.substring(0,s.length-1):s,i=t.startsWith("/")?t:"/".concat(t);return r+i}var o=class{constructor(t){this.options=t;if(!t.fetcher&&!globalThis.fetch)throw new Error('fetch is not available in environment, pass "fetcher" option with satisfies fetch interface');this.fetcher=this.options.fetcher??globalThis.fetch}async createCommitment(t,r,i,n){let e=await l(h(this.options.endpoint,"/commitment"),{method:"POST",headers:{"Content-Type":"application/json","X-Compatibility-Date":C},body:JSON.stringify({tenant_id:this.options.tenant_id,reference_id:t,currency:i,metadata:n??{title:"",url:""},amount:r})},this.fetcher);if(e.error)throw new Error(e.message);if(!e.data)throw new Error("Bad response");return e.data}async checkCommitment(t){let r=await l(h(this.options.endpoint,`/commitment/${t}`),{method:"GET"},this.fetcher);switch(r.status){case 402:return{commitment_id:t,message:r.message||"Payment required - you are over limit",status:"rejected"};case 410:return{commitment_id:t,message:r.message||"Expired",status:"expired"}}if(r.error)throw new Error(r.message);if(!r.data)throw new Error("Bad response");return{commitment_id:r.data.commitment_id,message:r.data.message,status:r.data.status,retry_after:r.retry_after}}};var c=5e3,a=class{constructor(t,r,i){this.service=t;this.options=i;this.retries=0;this.currentTimer=null;this.currentCheck=null;this.payload={message:"Creating...",status:"initializing",...r},this.options.onCreated&&this.options.onCreated(this)}isExpired(){return Date.now()>this.payload.expires_at}isRejected(){return this.getStatus()==="rejected"}isResolved(){return this.getStatus()==="resolved"}getMessage(){return this.payload.message||""}getStatus(){return this.payload.status}getClickUrl(){return this.payload.click_url}getAmount(){return this.payload.amount}getCurrency(){return this.payload.currency}getReferenceId(){return this.payload.reference_id}getCommitmentId(){return this.payload.commitment_id}markAsCreated(){this.payload.status!=="created"&&(this.payload.status="created",this.options.onCreated&&this.options.onCreated(this))}markAsDuplicated(){if(this.payload.status==="duplicated"){this.stopChecking();return}this.payload.status="duplicated",this.stopChecking(),this.options.onDuplicated&&this.options.onDuplicated(this)}markAsWaiting(){this.payload.status!=="waiting"&&(this.payload.status="waiting",this.options.onWaiting&&this.options.onWaiting(this))}markAsExpired(){if(this.payload.status==="expired"){this.stopChecking();return}this.payload.status="expired",this.options.onExpired&&this.options.onExpired(this),this.stopChecking()}markAsRejected(){if(this.payload.status==="rejected"){this.stopChecking();return}this.payload.status="rejected",this.options.onRejected&&this.options.onRejected(this),this.stopChecking()}markAsResolved(){if(this.payload.status==="resolved"){this.stopChecking();return}this.payload.status="resolved",this.stopChecking(),this.options.onResolved&&this.options.onResolved(this)}getNextCallTime(){return this.retries++,Math.min(5e3,this.payload.retry_ms+this.payload.retry_ms*(this.retries/10))}startChecking(){this.currentCheck||(this.currentCheck=this.check().then(t=>{let r=this.getNextCallTime();return t==="waiting"&&(this.currentTimer=setTimeout(()=>this.startChecking(),r)),t}).finally(()=>{this.stopChecking(!1)}))}stopChecking(t=!0){this.currentCheck=null,this.currentTimer&&t&&clearTimeout(this.currentTimer)}async check(){if(this.isExpired())return this.markAsExpired(),this.getStatus();if(this.isRejected())return this.markAsRejected(),this.getStatus();if(this.isResolved())return this.markAsResolved(),this.getStatus();try{let t=await this.service.checkCommitment(this.getCommitmentId());switch(t.retry_after&&(this.options.retry_ms=Math.max(this.options.retry_ms||c,t.retry_after)),t.status){case"duplicated":{this.markAsDuplicated();break}case"expired":{this.markAsExpired();break}case"resolved":{this.markAsResolved();break}case"waiting":{this.markAsWaiting();break}case"rejected":{this.markAsRejected();break}}this.options.onCheck&&this.options.onCheck(this)}catch(t){if(this.options.onError)this.options.onError(t,this),this.stopChecking();else throw t}return this.getStatus()}},p=class s{constructor(t,r){this.svc=t;this.options=r}static new(t){return new s(new o(t),t)}async createDirect(t,r,i={}){let n=i.currency??this.options.currency,e=await this.svc.createCommitment(t,r,n,i.metadata);return new a(this.svc,{commitment_id:e.commitment_id,amount:r,currency:n,reference_id:t,expires_at:e.expires_at,click_url:e.click_url,retry_ms:this.options.retry_ms??c},i)}create(t,r,i){let n=this.commitmentBuilder().setAmount(r).setCurrency(this.options.currency).setMetadataUrl(globalThis?.location?.href??"").setMetadataTitle(globalThis?.document?.title??"").setReference(t);this.options.retry_ms&&n.setRetryTime(this.options.retry_ms),n.onCreated(e=>(e.startChecking(),i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()}))).onWaiting(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onDuplicated(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onExpired(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onRejected(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onResolved(e=>i(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onError((e,g)=>{g?.stopChecking(),i(e,null)}).exec()}commitmentBuilder(){return new m(this)}},m=class{constructor(t){this.client=t;this._retry_ms=c;this._metadata={title:"",url:""};this._onCreatedFn=()=>{};this._onResolvedFn=()=>{};this._onErrorFn=()=>{};this._onExpiredFn=()=>{};this._onRejectedFn=()=>{};this._onDuplicatedFn=()=>{};this._onCheckFn=()=>{};this._onWaitingFn=()=>{}}setMetadataTitle(t=""){return this._metadata.title=t,this}setMetadataUrl(t=""){return this._metadata.url=t,this}setRetryTime(t){return this._retry_ms=t,this}setAmount(t){return this._amount=t,this}setReference(t){return this._reference_id=t,this}setCurrency(t){return this._currency=t,this}onCreated(t){return this._onCreatedFn=t,this}onResolved(t){return this._onResolvedFn=t,this}onExpired(t){return this._onExpiredFn=t,this}onRejected(t){return this._onRejectedFn=t,this}onError(t){return this._onErrorFn=t,this}onDuplicated(t){return this._onDuplicatedFn=t,this}onCheck(t){return this._onCheckFn=t,this}onWaiting(t){return this._onWaitingFn=t,this}exec(){if(!this._reference_id)throw new Error("reference_id must be defined");if(!this._amount)throw new Error("amount must be defined");if(!this._currency)throw new Error("currency must be defined");this.client.createDirect(this._reference_id,this._amount,{retry_ms:this._retry_ms,currency:this._currency,metadata:this._metadata,onCheck:this._onCheckFn,onCreated:this._onCreatedFn,onDuplicated:this._onDuplicatedFn,onError:this._onErrorFn,onExpired:this._onExpiredFn,onWaiting:this._onWaitingFn,onRejected:this._onRejectedFn,onResolved:this._onResolvedFn}).catch(t=>{if(this._onErrorFn)this._onErrorFn(t);else throw t})}};export{p as Client};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- async function d(r){return r.headers.get("Content-Type")?.includes("application/json")?await r.json():await r.text()}function C(r,t){return Math.floor(Math.random()*(t-r+1))+r}function l(r){let t=0;if(!r)return t;let i=typeof r=="number"?r:parseInt(r,10);return!isNaN(i)&&isFinite(i)?t=i*1e3:t=0,t}async function h(r,t,i){try{let s=await i(new Request(r,t));if(s.ok){let e=s.headers.get("Retry-After");return{status:s.status,error:!1,retry_after:l(s.headers.get("Retry-After")),data:await d(s)}}let n=await d(s);return{status:s.status,error:n&&typeof n=="object"&&"error"in n?n.error:!0,message:n&&typeof n=="object"&&"message"in n?n.message:s.statusText,retry_after:l(s.headers.get("Retry-After")),data:null}}catch(s){return{status:500,error:!0,message:s instanceof Error?s.message:`${s}`,retry_after:C(1e4,3e4),data:null}}}function p(r,t){let i=r.endsWith("/")?r.substring(0,r.length-1):r,s=t.startsWith("/")?t:"/".concat(t);return i+s}var o=class{constructor(t){this.options=t;if(!t.fetcher&&!globalThis.fetch)throw new Error('fetch is not available in environment, pass "fetcher" option with satisfies fetch interface');this.fetcher=this.options.fetcher??globalThis.fetch}async createCommitment(t,i,s,n){let e=await h(p(this.options.endpoint,"/commitment"),{method:"POST",body:JSON.stringify({tenant_id:this.options.tenant_id,reference_id:t,currency:s,metadata:n??{title:"",url:""},amount:i})},this.fetcher);if(e.error)throw new Error(e.message);if(!e.data)throw new Error("Bad response");return e.data}async checkCommitment(t){let i=await h(p(this.options.endpoint,`/commitment/${t}`),{method:"GET"},this.fetcher);switch(i.status){case 402:return{commitment_id:t,message:i.message||"Payment required - you are over limit",status:"rejected"};case 410:return{commitment_id:t,message:i.message||"Expired",status:"expired"}}if(i.error)throw new Error(i.message);if(!i.data)throw new Error("Bad response");return{commitment_id:i.data.commitment_id,message:i.data.message,status:i.data.status,retry_after:i.retry_after}}};var u=5e3,m=class{constructor(t,i,s){this.service=t;this.options=s;this.retries=0;this.currentTimer=null;this.currentCheck=null;this.payload={message:"Creating...",status:"initializing",...i},this.options.onCreated&&this.options.onCreated(this)}isExpired(){return Date.now()>this.payload.expires_at}isRejected(){return this.getStatus()==="rejected"}isResolved(){return this.getStatus()==="resolved"}getMessage(){return this.payload.message||""}getStatus(){return this.payload.status}getClickUrl(){return this.payload.click_url}getAmount(){return this.payload.amount}getCurrency(){return this.payload.currency}getReferenceId(){return this.payload.reference_id}getCommitmentId(){return this.payload.commitment_id}markAsCreated(){this.payload.status!=="created"&&(this.payload.status="created",this.options.onCreated&&this.options.onCreated(this))}markAsDuplicated(){if(this.payload.status==="duplicated"){this.stopChecking();return}this.payload.status="duplicated",this.stopChecking(),this.options.onDuplicated&&this.options.onDuplicated(this)}markAsWaiting(){this.payload.status!=="waiting"&&(this.payload.status="waiting",this.options.onWaiting&&this.options.onWaiting(this))}markAsExpired(){if(this.payload.status==="expired"){this.stopChecking();return}this.payload.status="expired",this.options.onExpired&&this.options.onExpired(this),this.stopChecking()}markAsRejected(){if(this.payload.status==="rejected"){this.stopChecking();return}this.payload.status="rejected",this.options.onRejected&&this.options.onRejected(this),this.stopChecking()}markAsResolved(){if(this.payload.status==="resolved"){this.stopChecking();return}this.payload.status="resolved",this.stopChecking(),this.options.onResolved&&this.options.onResolved(this)}getNextCallTime(){return this.retries++,Math.min(5e3,this.payload.retry_ms+this.payload.retry_ms*(this.retries/10))}startChecking(){this.currentCheck||(this.currentCheck=this.check().then(t=>{let i=this.getNextCallTime();return t==="waiting"&&(this.currentTimer=setTimeout(()=>this.startChecking(),i)),t}).finally(()=>{this.stopChecking(!1)}))}stopChecking(t=!0){this.currentCheck=null,this.currentTimer&&t&&clearTimeout(this.currentTimer)}async check(){if(this.isExpired())return this.markAsExpired(),this.getStatus();if(this.isRejected())return this.markAsRejected(),this.getStatus();if(this.isResolved())return this.markAsResolved(),this.getStatus();try{let t=await this.service.checkCommitment(this.getCommitmentId());switch(t.retry_after&&(this.options.retry_ms=Math.max(this.options.retry_ms||u,t.retry_after)),t.status){case"duplicated":{this.markAsDuplicated();break}case"expired":{this.markAsExpired();break}case"resolved":{this.markAsResolved();break}case"waiting":{this.markAsWaiting();break}case"rejected":{this.markAsRejected();break}}this.options.onCheck&&this.options.onCheck(this)}catch(t){if(this.options.onError)this.options.onError(t,this),this.stopChecking();else throw t}return this.getStatus()}},a=class r{constructor(t,i){this.svc=t;this.options=i}static new(t){return new r(new o(t),t)}async createDirect(t,i,s={}){let n=s.currency??this.options.currency,e=await this.svc.createCommitment(t,i,n,s.metadata);return new m(this.svc,{commitment_id:e.commitment_id,amount:i,currency:n,reference_id:t,expires_at:e.expires_at,click_url:e.click_url,retry_ms:this.options.retry_ms??u},s)}create(t,i,s){let n=this.commitmentBuilder().setAmount(i).setCurrency(this.options.currency).setMetadataUrl(globalThis?.location?.href??"").setMetadataTitle(globalThis?.document?.title??"").setReference(t);this.options.retry_ms&&n.setRetryTime(this.options.retry_ms),n.onCreated(e=>(e.startChecking(),s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()}))).onWaiting(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onDuplicated(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onExpired(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onRejected(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onResolved(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onError((e,g)=>{g?.stopChecking(),s(e,null)}).exec()}commitmentBuilder(){return new c(this)}},c=class{constructor(t){this.client=t;this._retry_ms=u;this._metadata={title:"",url:""};this._onCreatedFn=()=>{};this._onResolvedFn=()=>{};this._onErrorFn=()=>{};this._onExpiredFn=()=>{};this._onRejectedFn=()=>{};this._onDuplicatedFn=()=>{};this._onCheckFn=()=>{};this._onWaitingFn=()=>{}}setMetadataTitle(t=""){return this._metadata.title=t,this}setMetadataUrl(t=""){return this._metadata.url=t,this}setRetryTime(t){return this._retry_ms=t,this}setAmount(t){return this._amount=t,this}setReference(t){return this._reference_id=t,this}setCurrency(t){return this._currency=t,this}onCreated(t){return this._onCreatedFn=t,this}onResolved(t){return this._onResolvedFn=t,this}onExpired(t){return this._onExpiredFn=t,this}onRejected(t){return this._onRejectedFn=t,this}onError(t){return this._onErrorFn=t,this}onDuplicated(t){return this._onDuplicatedFn=t,this}onCheck(t){return this._onCheckFn=t,this}onWaiting(t){return this._onWaitingFn=t,this}exec(){if(!this._reference_id)throw new Error("reference_id must be defined");if(!this._amount)throw new Error("amount must be defined");if(!this._currency)throw new Error("currency must be defined");this.client.createDirect(this._reference_id,this._amount,{retry_ms:this._retry_ms,currency:this._currency,metadata:this._metadata,onCheck:this._onCheckFn,onCreated:this._onCreatedFn,onDuplicated:this._onDuplicatedFn,onError:this._onErrorFn,onExpired:this._onExpiredFn,onWaiting:this._onWaitingFn,onRejected:this._onRejectedFn,onResolved:this._onResolvedFn}).catch(t=>{if(this._onErrorFn)this._onErrorFn(t);else throw t})}};function k(r,t){a.new({currency:r.currency,endpoint:r.endpoint??"https://api.micropayments.wdft.ovh/",tenant_id:r.tenant_id,fetcher:r.fetcher??fetch,retry_ms:r.retry_ms??1e3}).create(r.reference_id,r.amount,t)}export{k as getViaMsg};
1
+ var C="2025-09-30";async function d(r){return r.headers.get("Content-Type")?.includes("application/json")?await r.json():await r.text()}function y(r,t){return Math.floor(Math.random()*(t-r+1))+r}function l(r){let t=0;if(!r)return t;let i=typeof r=="number"?r:parseInt(r,10);return!isNaN(i)&&isFinite(i)?t=i*1e3:t=0,t}async function h(r,t,i){try{let s=await i(new Request(r,t));if(s.ok){let e=s.headers.get("Retry-After");return{status:s.status,error:!1,retry_after:l(s.headers.get("Retry-After")),data:await d(s)}}let n=await d(s);return{status:s.status,error:n&&typeof n=="object"&&"error"in n?n.error:!0,message:n&&typeof n=="object"&&"message"in n?n.message:s.statusText,retry_after:l(s.headers.get("Retry-After")),data:null}}catch(s){return{status:500,error:!0,message:s instanceof Error?s.message:`${s}`,retry_after:y(1e4,3e4),data:null}}}function p(r,t){let i=r.endsWith("/")?r.substring(0,r.length-1):r,s=t.startsWith("/")?t:"/".concat(t);return i+s}var o=class{constructor(t){this.options=t;if(!t.fetcher&&!globalThis.fetch)throw new Error('fetch is not available in environment, pass "fetcher" option with satisfies fetch interface');this.fetcher=this.options.fetcher??globalThis.fetch}async createCommitment(t,i,s,n){let e=await h(p(this.options.endpoint,"/commitment"),{method:"POST",headers:{"Content-Type":"application/json","X-Compatibility-Date":C},body:JSON.stringify({tenant_id:this.options.tenant_id,reference_id:t,currency:s,metadata:n??{title:"",url:""},amount:i})},this.fetcher);if(e.error)throw new Error(e.message);if(!e.data)throw new Error("Bad response");return e.data}async checkCommitment(t){let i=await h(p(this.options.endpoint,`/commitment/${t}`),{method:"GET"},this.fetcher);switch(i.status){case 402:return{commitment_id:t,message:i.message||"Payment required - you are over limit",status:"rejected"};case 410:return{commitment_id:t,message:i.message||"Expired",status:"expired"}}if(i.error)throw new Error(i.message);if(!i.data)throw new Error("Bad response");return{commitment_id:i.data.commitment_id,message:i.data.message,status:i.data.status,retry_after:i.retry_after}}};var u=5e3,m=class{constructor(t,i,s){this.service=t;this.options=s;this.retries=0;this.currentTimer=null;this.currentCheck=null;this.payload={message:"Creating...",status:"initializing",...i},this.options.onCreated&&this.options.onCreated(this)}isExpired(){return Date.now()>this.payload.expires_at}isRejected(){return this.getStatus()==="rejected"}isResolved(){return this.getStatus()==="resolved"}getMessage(){return this.payload.message||""}getStatus(){return this.payload.status}getClickUrl(){return this.payload.click_url}getAmount(){return this.payload.amount}getCurrency(){return this.payload.currency}getReferenceId(){return this.payload.reference_id}getCommitmentId(){return this.payload.commitment_id}markAsCreated(){this.payload.status!=="created"&&(this.payload.status="created",this.options.onCreated&&this.options.onCreated(this))}markAsDuplicated(){if(this.payload.status==="duplicated"){this.stopChecking();return}this.payload.status="duplicated",this.stopChecking(),this.options.onDuplicated&&this.options.onDuplicated(this)}markAsWaiting(){this.payload.status!=="waiting"&&(this.payload.status="waiting",this.options.onWaiting&&this.options.onWaiting(this))}markAsExpired(){if(this.payload.status==="expired"){this.stopChecking();return}this.payload.status="expired",this.options.onExpired&&this.options.onExpired(this),this.stopChecking()}markAsRejected(){if(this.payload.status==="rejected"){this.stopChecking();return}this.payload.status="rejected",this.options.onRejected&&this.options.onRejected(this),this.stopChecking()}markAsResolved(){if(this.payload.status==="resolved"){this.stopChecking();return}this.payload.status="resolved",this.stopChecking(),this.options.onResolved&&this.options.onResolved(this)}getNextCallTime(){return this.retries++,Math.min(5e3,this.payload.retry_ms+this.payload.retry_ms*(this.retries/10))}startChecking(){this.currentCheck||(this.currentCheck=this.check().then(t=>{let i=this.getNextCallTime();return t==="waiting"&&(this.currentTimer=setTimeout(()=>this.startChecking(),i)),t}).finally(()=>{this.stopChecking(!1)}))}stopChecking(t=!0){this.currentCheck=null,this.currentTimer&&t&&clearTimeout(this.currentTimer)}async check(){if(this.isExpired())return this.markAsExpired(),this.getStatus();if(this.isRejected())return this.markAsRejected(),this.getStatus();if(this.isResolved())return this.markAsResolved(),this.getStatus();try{let t=await this.service.checkCommitment(this.getCommitmentId());switch(t.retry_after&&(this.options.retry_ms=Math.max(this.options.retry_ms||u,t.retry_after)),t.status){case"duplicated":{this.markAsDuplicated();break}case"expired":{this.markAsExpired();break}case"resolved":{this.markAsResolved();break}case"waiting":{this.markAsWaiting();break}case"rejected":{this.markAsRejected();break}}this.options.onCheck&&this.options.onCheck(this)}catch(t){if(this.options.onError)this.options.onError(t,this),this.stopChecking();else throw t}return this.getStatus()}},a=class r{constructor(t,i){this.svc=t;this.options=i}static new(t){return new r(new o(t),t)}async createDirect(t,i,s={}){let n=s.currency??this.options.currency,e=await this.svc.createCommitment(t,i,n,s.metadata);return new m(this.svc,{commitment_id:e.commitment_id,amount:i,currency:n,reference_id:t,expires_at:e.expires_at,click_url:e.click_url,retry_ms:this.options.retry_ms??u},s)}create(t,i,s){let n=this.commitmentBuilder().setAmount(i).setCurrency(this.options.currency).setMetadataUrl(globalThis?.location?.href??"").setMetadataTitle(globalThis?.document?.title??"").setReference(t);this.options.retry_ms&&n.setRetryTime(this.options.retry_ms),n.onCreated(e=>(e.startChecking(),s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()}))).onWaiting(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onDuplicated(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onExpired(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onRejected(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onResolved(e=>s(null,{status:e.getStatus(),message:e.getMessage(),reference_id:t,commitment_id:e.getCommitmentId(),click_url:e.getClickUrl()})).onError((e,g)=>{g?.stopChecking(),s(e,null)}).exec()}commitmentBuilder(){return new c(this)}},c=class{constructor(t){this.client=t;this._retry_ms=u;this._metadata={title:"",url:""};this._onCreatedFn=()=>{};this._onResolvedFn=()=>{};this._onErrorFn=()=>{};this._onExpiredFn=()=>{};this._onRejectedFn=()=>{};this._onDuplicatedFn=()=>{};this._onCheckFn=()=>{};this._onWaitingFn=()=>{}}setMetadataTitle(t=""){return this._metadata.title=t,this}setMetadataUrl(t=""){return this._metadata.url=t,this}setRetryTime(t){return this._retry_ms=t,this}setAmount(t){return this._amount=t,this}setReference(t){return this._reference_id=t,this}setCurrency(t){return this._currency=t,this}onCreated(t){return this._onCreatedFn=t,this}onResolved(t){return this._onResolvedFn=t,this}onExpired(t){return this._onExpiredFn=t,this}onRejected(t){return this._onRejectedFn=t,this}onError(t){return this._onErrorFn=t,this}onDuplicated(t){return this._onDuplicatedFn=t,this}onCheck(t){return this._onCheckFn=t,this}onWaiting(t){return this._onWaitingFn=t,this}exec(){if(!this._reference_id)throw new Error("reference_id must be defined");if(!this._amount)throw new Error("amount must be defined");if(!this._currency)throw new Error("currency must be defined");this.client.createDirect(this._reference_id,this._amount,{retry_ms:this._retry_ms,currency:this._currency,metadata:this._metadata,onCheck:this._onCheckFn,onCreated:this._onCreatedFn,onDuplicated:this._onDuplicatedFn,onError:this._onErrorFn,onExpired:this._onExpiredFn,onWaiting:this._onWaitingFn,onRejected:this._onRejectedFn,onResolved:this._onResolvedFn}).catch(t=>{if(this._onErrorFn)this._onErrorFn(t);else throw t})}};function R(r,t){a.new({currency:r.currency,endpoint:r.endpoint??"https://api.micropayments.wdft.ovh/",tenant_id:r.tenant_id,fetcher:r.fetcher??fetch,retry_ms:r.retry_ms??1e3}).create(r.reference_id,r.amount,t)}export{R as getViaMsg};
package/dist/service.js CHANGED
@@ -1 +1 @@
1
- async function i(r){return r.headers.get("Content-Type")?.includes("application/json")?await r.json():await r.text()}function f(r,e){return Math.floor(Math.random()*(e-r+1))+r}function o(r){let e=0;if(!r)return e;let t=typeof r=="number"?r:parseInt(r,10);return!isNaN(t)&&isFinite(t)?e=t*1e3:e=0,e}async function m(r,e,t){try{let s=await t(new Request(r,e));if(s.ok){let a=s.headers.get("Retry-After");return{status:s.status,error:!1,retry_after:o(s.headers.get("Retry-After")),data:await i(s)}}let n=await i(s);return{status:s.status,error:n&&typeof n=="object"&&"error"in n?n.error:!0,message:n&&typeof n=="object"&&"message"in n?n.message:s.statusText,retry_after:o(s.headers.get("Retry-After")),data:null}}catch(s){return{status:500,error:!0,message:s instanceof Error?s.message:`${s}`,retry_after:f(1e4,3e4),data:null}}}function c(r,e){let t=r.endsWith("/")?r.substring(0,r.length-1):r,s=e.startsWith("/")?e:"/".concat(e);return t+s}var u=class{constructor(e){this.options=e;if(!e.fetcher&&!globalThis.fetch)throw new Error('fetch is not available in environment, pass "fetcher" option with satisfies fetch interface');this.fetcher=this.options.fetcher??globalThis.fetch}async createCommitment(e,t,s,n){let a=await m(c(this.options.endpoint,"/commitment"),{method:"POST",body:JSON.stringify({tenant_id:this.options.tenant_id,reference_id:e,currency:s,metadata:n??{title:"",url:""},amount:t})},this.fetcher);if(a.error)throw new Error(a.message);if(!a.data)throw new Error("Bad response");return a.data}async checkCommitment(e){let t=await m(c(this.options.endpoint,`/commitment/${e}`),{method:"GET"},this.fetcher);switch(t.status){case 402:return{commitment_id:e,message:t.message||"Payment required - you are over limit",status:"rejected"};case 410:return{commitment_id:e,message:t.message||"Expired",status:"expired"}}if(t.error)throw new Error(t.message);if(!t.data)throw new Error("Bad response");return{commitment_id:t.data.commitment_id,message:t.data.message,status:t.data.status,retry_after:t.retry_after}}};export{u as Service};
1
+ var f="2025-09-30";async function i(r){return r.headers.get("Content-Type")?.includes("application/json")?await r.json():await r.text()}function d(r,e){return Math.floor(Math.random()*(e-r+1))+r}function o(r){let e=0;if(!r)return e;let t=typeof r=="number"?r:parseInt(r,10);return!isNaN(t)&&isFinite(t)?e=t*1e3:e=0,e}async function m(r,e,t){try{let s=await t(new Request(r,e));if(s.ok){let a=s.headers.get("Retry-After");return{status:s.status,error:!1,retry_after:o(s.headers.get("Retry-After")),data:await i(s)}}let n=await i(s);return{status:s.status,error:n&&typeof n=="object"&&"error"in n?n.error:!0,message:n&&typeof n=="object"&&"message"in n?n.message:s.statusText,retry_after:o(s.headers.get("Retry-After")),data:null}}catch(s){return{status:500,error:!0,message:s instanceof Error?s.message:`${s}`,retry_after:d(1e4,3e4),data:null}}}function c(r,e){let t=r.endsWith("/")?r.substring(0,r.length-1):r,s=e.startsWith("/")?e:"/".concat(e);return t+s}var u=class{constructor(e){this.options=e;if(!e.fetcher&&!globalThis.fetch)throw new Error('fetch is not available in environment, pass "fetcher" option with satisfies fetch interface');this.fetcher=this.options.fetcher??globalThis.fetch}async createCommitment(e,t,s,n){let a=await m(c(this.options.endpoint,"/commitment"),{method:"POST",headers:{"Content-Type":"application/json","X-Compatibility-Date":f},body:JSON.stringify({tenant_id:this.options.tenant_id,reference_id:e,currency:s,metadata:n??{title:"",url:""},amount:t})},this.fetcher);if(a.error)throw new Error(a.message);if(!a.data)throw new Error("Bad response");return a.data}async checkCommitment(e){let t=await m(c(this.options.endpoint,`/commitment/${e}`),{method:"GET"},this.fetcher);switch(t.status){case 402:return{commitment_id:e,message:t.message||"Payment required - you are over limit",status:"rejected"};case 410:return{commitment_id:e,message:t.message||"Expired",status:"expired"}}if(t.error)throw new Error(t.message);if(!t.data)throw new Error("Bad response");return{commitment_id:t.data.commitment_id,message:t.data.message,status:t.data.status,retry_after:t.retry_after}}};export{u as Service};
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wdft/micropayments-sdk",
3
3
  "description": "wdft - we do fintech - micropayments sdk",
4
- "version": "0.0.8",
4
+ "version": "0.0.9",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -31,6 +31,6 @@
31
31
  "build": "pnpm run build:types && pnpm run build:js",
32
32
  "fmt": "biome check --write ./src",
33
33
  "test": "vitest run",
34
- "release": "pnpm run build && changeset publish"
34
+ "release": "bash -ic 'read -r -p \"Are you sure you want to release? (y/n) \" answer; case $answer in [Yy]*) pnpm run build && changeset publish ;; *) echo \"Release cancelled.\" ;; esac'"
35
35
  }
36
36
  }
package/src/service.ts CHANGED
@@ -1,3 +1,5 @@
1
+ const COMPATIBILITY_DATE = "2025-09-30"
2
+
1
3
  interface CustomResponse {
2
4
  status: number;
3
5
  error: boolean;
@@ -151,6 +153,10 @@ export class Service {
151
153
  buildUrl(this.options.endpoint, "/commitment"),
152
154
  {
153
155
  method: "POST",
156
+ headers: {
157
+ "Content-Type": "application/json",
158
+ "X-Compatibility-Date": COMPATIBILITY_DATE
159
+ },
154
160
  body: JSON.stringify({
155
161
  tenant_id: this.options.tenant_id,
156
162
  reference_id,