@mailto.foo/sdk 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -2
- package/dist/cdn.d.ts +1 -0
- package/dist/cdn.js +39 -0
- package/dist/cdn.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/sdk.min.js +1 -0
- package/package.json +10 -8
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ npm install @mailto.foo/sdk
|
|
|
12
12
|
```
|
|
13
13
|
Or via CDN (no npm needed):
|
|
14
14
|
``` html
|
|
15
|
-
<script src="https://cdn.mailto.foo/sdk.js"></script>
|
|
15
|
+
<script src="https://cdn.mailto.foo/sdk.min.js"></script>
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Usage
|
|
@@ -29,10 +29,26 @@ await mailto.subscribe({ email: 'user@example.com' })
|
|
|
29
29
|
|
|
30
30
|
### Script tag
|
|
31
31
|
|
|
32
|
+
The CDN build auto-enhances any `<form>` whose `action` points at your subscribe endpoint — no JavaScript required:
|
|
33
|
+
|
|
32
34
|
```html
|
|
33
|
-
<script src="https://cdn.mailto.foo/sdk.js"></script>
|
|
35
|
+
<script src="https://cdn.jsdelivr.net/npm/@mailto.foo/sdk@1.0.0/dist/sdk.min.js"></script>
|
|
36
|
+
|
|
37
|
+
<form action="https://api.mailto.foo/pk_your_publish_key/subscribe">
|
|
38
|
+
<input type="email" name="email" required>
|
|
39
|
+
<button type="submit">Subscribe</button>
|
|
40
|
+
</form>
|
|
34
41
|
```
|
|
35
42
|
|
|
43
|
+
On submit, the SDK intercepts the form, calls `subscribe` with the form fields, resets the form on success, and dispatches `mailto:success` / `mailto:error` custom events on the form element so you can hook in your own UI:
|
|
44
|
+
|
|
45
|
+
```js
|
|
46
|
+
form.addEventListener('mailto:success', () => showThankYou())
|
|
47
|
+
form.addEventListener('mailto:error', (e) => showError(e.detail.error.message))
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The SDK is also exposed as `window.Mailto` for manual usage:
|
|
51
|
+
|
|
36
52
|
```js
|
|
37
53
|
const mailto = new Mailto({ publishKey: 'pk_your_publish_key' })
|
|
38
54
|
|
package/dist/cdn.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/cdn.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Mailto } from "./index.js";
|
|
2
|
+
const FORM_ACTION_PATTERN = /\/(pk_[A-Za-z0-9_-]+)\/subscribe\/?(?:[?#].*)?$/;
|
|
3
|
+
const collectFormData = (form) => {
|
|
4
|
+
const data = {};
|
|
5
|
+
for (const [key, value] of new FormData(form).entries()) {
|
|
6
|
+
if (typeof value === "string")
|
|
7
|
+
data[key] = value;
|
|
8
|
+
}
|
|
9
|
+
return data;
|
|
10
|
+
};
|
|
11
|
+
const enhanceForm = (form, publishKey) => {
|
|
12
|
+
const mailto = new Mailto({ publishKey });
|
|
13
|
+
form.addEventListener("submit", async (event) => {
|
|
14
|
+
event.preventDefault();
|
|
15
|
+
try {
|
|
16
|
+
await mailto.subscribe(collectFormData(form));
|
|
17
|
+
form.reset();
|
|
18
|
+
form.dispatchEvent(new CustomEvent("mailto:success", { bubbles: true }));
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
form.dispatchEvent(new CustomEvent("mailto:error", { bubbles: true, detail: { error: err } }));
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
const enhanceForms = () => {
|
|
26
|
+
for (const form of document.querySelectorAll("form[action]")) {
|
|
27
|
+
const match = form.action.match(FORM_ACTION_PATTERN);
|
|
28
|
+
if (match?.[1])
|
|
29
|
+
enhanceForm(form, match[1]);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
if (document.readyState === "loading") {
|
|
33
|
+
document.addEventListener("DOMContentLoaded", enhanceForms);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
enhanceForms();
|
|
37
|
+
}
|
|
38
|
+
window.Mailto = Mailto;
|
|
39
|
+
//# sourceMappingURL=cdn.js.map
|
package/dist/cdn.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdn.js","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,mBAAmB,GAAG,iDAAiD,CAAC;AAE9E,MAAM,eAAe,GAAG,CAAC,IAAqB,EAA0B,EAAE;IACxE,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAqB,EAAE,UAAkB,EAAE,EAAE;IAChE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAE1C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAsB,CAAC,CAAC;YACnE,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACjG,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,gBAAgB,CAAkB,cAAc,CAAC,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;AAC9D,CAAC;KAAM,CAAC;IACN,YAAY,EAAE,CAAC;AACjB,CAAC;AAEA,MAAc,CAAC,MAAM,GAAG,MAAM,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,MAAM,QAAQ,GAAG,4CAA4C,CAAC;AAE9D,MAAM,oBAAoB,GAAG,KAAK,EAAE,UAAkB,EAA4B,EAAE;IAClF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,WAAW,UAAU,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAClG,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,GAAG,CAAC,IAAI,EAA8B,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,sBAAsB,GAAyB,IAAI,CAAC;AAExD,MAAM,mBAAmB,GAAG,GAAkB,EAAE;IAC9C,IAAK,MAAc,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACxD,IAAI,sBAAsB;QAAE,OAAO,sBAAsB,CAAC;IAE1D,sBAAsB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,uEAAuE,CAAC;QACrF,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;YACvB,sBAAsB,GAAG,IAAI,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,OAAO,sBAAsB,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAmB,EAAE;IACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG;YACtB,gBAAgB;YAChB,SAAS;YACT,oBAAoB;YACpB,cAAc;YACd,oBAAoB;YACpB,wBAAwB;YACxB,4BAA4B;SAC7B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEZ,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,QAAgB,CAAC;QACrB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC;gBAAE,MAAc,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1E,IAAI,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;QAC7E,CAAC,CAAC;QAEF,QAAQ,GAAI,MAAc,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;YAClD,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YACD,gBAAgB,EAAE,GAAG,EAAE;gBACrB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,kBAAkB,EAAE,GAAG,EAAE;gBACvB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/C,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IACnE,MAAM,mBAAmB,EAAE,CAAC;IAE5B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,iEAAiE,CAAC;IAC5F,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAErC,IAAI,QAAgB,CAAC;IACrB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC;YAAE,MAAc,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1E,IAAI,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjE,QAAQ,GAAI,MAAc,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE;YACrD,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,kBAAkB;YAC9B,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,gBAAgB,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrD,kBAAkB,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;SACvF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,OAAO,MAAM;IACT,UAAU,CAAS;IAE3B,YAAY,MAAuB;QACjC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAmB;QACjC,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,eAAe,CAAC,gBAAgB;YAC5C,CAAC,CAAC,MAAM,iBAAiB,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAC3D,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,IAAI,GAAkB;YAC1B,IAAI;YACJ,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;SAC/C,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,YAAY,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBACtD,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAyB,CAAA,CAAC,KAAK,IAAI,qBAAqB;gBACzE,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF"}
|
package/dist/sdk.min.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var d="https://api-mailto-foo.dan-7bc.workers.dev",b=async r=>{let e=new AbortController,n=setTimeout(()=>e.abort(),5e3);try{let t=await fetch(`${d}/config/${r}/config`,{signal:e.signal});if(clearTimeout(n),!t.ok)throw new Error(`Config fetch failed: ${t.status}`);return t.json()}catch(t){throw clearTimeout(n),t}},a=null,m=()=>window.turnstile?Promise.resolve():a||(a=new Promise((r,e)=>{let n=document.createElement("script");n.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",n.async=!0,n.defer=!0,n.onload=()=>r(),n.onerror=t=>{a=null,e(t)},document.head.appendChild(n)}),a),y=r=>new Promise((e,n)=>{let t=document.createElement("div");t.style.cssText=["position:fixed","inset:0","z-index:2147483647","display:flex","align-items:center","justify-content:center","background:rgba(0,0,0,0.5)"].join(";");let o=document.createElement("div");t.appendChild(o),document.body.appendChild(t);let i,s=()=>{try{window.turnstile.remove(i)}catch{}try{document.body.removeChild(t)}catch{}};i=window.turnstile.render(o,{sitekey:r,callback:c=>{s(),e(c)},"error-callback":()=>{s(),n(new Error("Turnstile verification failed"))},"expired-callback":()=>{s(),n(new Error("Turnstile token expired"))}})}),p=async r=>{await m();let e=document.createElement("div");e.style.cssText="position:fixed;bottom:0;right:0;z-index:9999;visibility:hidden;",document.body.appendChild(e);let n,t=()=>{try{window.turnstile.remove(n)}catch{}try{document.body.removeChild(e)}catch{}};return await new Promise((i,s)=>{n=window.turnstile.render(e,{sitekey:r,appearance:"interaction-only",callback:c=>{t(),i(c)},"error-callback":()=>{t(),i(null)},"expired-callback":()=>{t(),s(new Error("Turnstile token expired"))}})})??y(r)},l=class{publishKey;constructor(e){this.publishKey=e.publishKey}async subscribe(e){let n=await b(this.publishKey),t=n.turnstileSiteKey?await p(n.turnstileSiteKey):void 0,o={data:e,config:{publishKey:this.publishKey,token:t}},i=await fetch(`${d}/subscribe`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!i.ok){let c=(i.headers.get("content-type")??"").includes("application/json")?(await i.json()).error??"Subscription failed":await i.text();throw new Error(c)}}};var g=/\/(pk_[A-Za-z0-9_-]+)\/subscribe\/?(?:[?#].*)?$/,h=r=>{let e={};for(let[n,t]of new FormData(r).entries())typeof t=="string"&&(e[n]=t);return e},f=(r,e)=>{let n=new l({publishKey:e});r.addEventListener("submit",async t=>{t.preventDefault();try{await n.subscribe(h(r)),r.reset(),r.dispatchEvent(new CustomEvent("mailto:success",{bubbles:!0}))}catch(o){r.dispatchEvent(new CustomEvent("mailto:error",{bubbles:!0,detail:{error:o}}))}})},u=()=>{for(let r of document.querySelectorAll("form[action]")){let e=r.action.match(g);e?.[1]&&f(r,e[1])}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",u):u();window.Mailto=l;})();
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@mailto.foo/sdk",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"description": "Headless email subscription and contact form SDK for mailto.foo",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.3.0",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"repository": {
|
|
@@ -13,21 +13,23 @@
|
|
|
13
13
|
"files": [
|
|
14
14
|
"dist/**/*"
|
|
15
15
|
],
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "tsc",
|
|
18
|
-
"check": "biome check --write ./src",
|
|
19
|
-
"workflow:check": "biome check ./src",
|
|
20
|
-
"release": "pnpm run build && changeset publish"
|
|
21
|
-
},
|
|
22
16
|
"author": "saikksub<saikksub@gmail.com>",
|
|
23
17
|
"license": "MIT",
|
|
24
18
|
"devDependencies": {
|
|
25
19
|
"@biomejs/biome": "1.8.3",
|
|
26
20
|
"@changesets/cli": "^2.27.7",
|
|
27
21
|
"@total-typescript/tsconfig": "^1.0.4",
|
|
22
|
+
"esbuild": "^0.28.0",
|
|
28
23
|
"typescript": "^5.5.3"
|
|
29
24
|
},
|
|
30
25
|
"bugs": {
|
|
31
26
|
"url": "https://gitlab.com/mailto.foo/sdk/-/boards"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc && pnpm run build:cdn",
|
|
30
|
+
"build:cdn": "esbuild src/cdn.ts --bundle --minify --format=iife --outfile=dist/sdk.min.js",
|
|
31
|
+
"check": "biome check --write ./src",
|
|
32
|
+
"workflow:check": "biome check ./src",
|
|
33
|
+
"release": "pnpm run build && changeset publish"
|
|
32
34
|
}
|
|
33
|
-
}
|
|
35
|
+
}
|