@httpstate/typescript 0.0.33 → 0.0.34
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/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.global.js +1 -1
- package/dist/index.global.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var l=(n,t)=>{for(var e in t)r(n,e,{get:t[e],enumerable:!0})},c=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of g(t))!f.call(n,s)&&s!==e&&r(n,s,{get:()=>t[s],enumerable:!(i=u(t,s))||i.enumerable});return n};var m=n=>c(r({},"__esModule",{value:!0}),n);var w={};l(w,{default:()=>b,get:()=>a,load:()=>o,read:()=>p,set:()=>d,write:()=>v});module.exports=m(w);var a=async n=>{let t=await fetch("https://httpstate.com/"+n);if(t.status===200)return await t.text()},o=async()=>{for(let n of document.querySelectorAll("[httpstate]")){let t=n.getAttribute("httpstate");globalThis.httpstate(t).on("change",e=>n.innerHTML=e.data)}},p=async n=>a(n),d=async(n,t)=>(await fetch("https://httpstate.com/"+n,{body:t,headers:{"Content-Type":"text/plain;charset=UTF-8"},method:"POST"})).status,v=async(n,t)=>d(n,t),h=n=>{let t={data:void 0,et:{},uuid:n,ws:new WebSocket("wss://httpstate.com/"+n),addEventListener:(e,i)=>t.on(e,i),destroy:()=>{clearInterval(t.ws.interval),t.ws?.close(1e3),delete t.data,delete t.et,delete t.uuid,delete t.ws},emit:(e,i)=>{if(t.et?.[e])for(let s of t.et[e])i===void 0?s.call(t):s.call(t,i);return t},get:async()=>{if(t.uuid){let e=await a(t.uuid);return e!==t.data&&setTimeout(()=>t.emit("change",t.data),0),t.data=e,t.data}},off:(e,i)=>(t.et?.[e]&&(t.et[e]=t.et[e].filter(s=>s!==i),t.et[e].length||delete t.et[e]),t),on:(e,i)=>(t.et&&(t.et[e]||(t.et[e]=[]),t.et[e].push(i)),t),read:async()=>{if(t.uuid)return a(t.uuid)},removeEventListener:(e,i)=>t.off(e,i),set:async e=>{if(t.uuid)return d(t.uuid,e)},write:async e=>{if(t.uuid)return d(t.uuid,e)}};return t.ws?.addEventListener("close",e=>console.log("close",e)),t.ws?.addEventListener("error",e=>console.log("error",e)),t.ws?.addEventListener("message",async e=>{let i=await e.data.text();i&&i.length>30&&i.substring(0,32)===t.uuid&&i.substring(45,46)==="1"&&(t.data=i.substring(46),t.emit("change",t.data))}),t.ws?.addEventListener("open",()=>{t.emit("open"),t.ws?.send(JSON.stringify({open:t.uuid}))}),t.ws.interval=setInterval(()=>{t.ws?.readyState===WebSocket.OPEN?t.ws?.send("0"):clearInterval(t.ws.interval)},3e4),setTimeout(t.get,0),t},b=h;typeof document<"u"&&typeof window<"u"&&globalThis===window&&globalThis.addEventListener("load",async()=>{globalThis.httpstate&&(globalThis.httpstate=Object.assign(globalThis.httpstate.default,globalThis.httpstate)),await o()},{once:!0});0&&(module.exports={get,load,read,set,write});
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// HTTP State, https://httpstate.com/\n// Copyright (C) Alex Morales, 2026\n//\n// Unless otherwise stated in particular files or directories, this software is free software.\n// You can redistribute it and/or modify it under the terms of the GNU Affero\n// General Public License as published by the Free Software Foundation, either\n// version 3 of the License, or (at your option) any later version.\n\nexport const get:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid);\n\n if(response.status === 200)\n return await response.text();\n};\n\nexport const load:() => Promise<void> = async ():Promise<void> => {\n for(const node of document.querySelectorAll('[httpstate]')) {\n const uuid:null|string = node.getAttribute('httpstate');\n\n (globalThis as any).httpstate(uuid)\n .on('change', (e:Event&{ data:string }) => node.innerHTML = e.data);\n }\n};\n\nexport const read:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => get(uuid);\n\nexport const set:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid, {\n body:data,\n headers:{ 'Content-Type':'text/plain;charset=UTF-8' },\n method:'POST'\n });\n\n return response.status;\n};\n\nexport const write:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => set(uuid, data);\n\n// HTTP State\nexport type HttpState = {\n data?:undefined|string;\n et?:undefined|{ [type:string]:((data?:undefined|string) => void)[] };\n uuid?:undefined|string;\n ws?:undefined|WebSocket;\n\n addEventListener(type:string, callback:(data?:undefined|string) => void):void;\n destroy():void;\n emit(type:string, data?:undefined|string):HttpState;\n get():Promise<undefined|string>;\n off(type:string, callback:(data?:undefined|string) => void):HttpState;\n on(type:string, callback:(data?:undefined|string) => void):HttpState;\n read():Promise<undefined|string>;\n removeEventListener(type:string, callback:(data?:undefined|string) => void):void;\n set(data:string):Promise<undefined|number>;\n write(data:string):Promise<undefined|number>;\n};\n\nconst httpstate:(uuid:string) => HttpState = (uuid:string):HttpState => {\n const _:HttpState = {\n data:undefined,\n et:{},\n uuid,\n ws:new WebSocket('wss://httpstate.com/' + uuid),\n\n addEventListener:(type:string, callback:(data?:undefined|string) => void) => _.on(type, callback),\n destroy:() => {\n clearInterval((_.ws as any).interval);\n _.ws?.close(1000);\n\n delete _.data;\n delete _.et;\n delete _.uuid;\n delete _.ws;\n },\n emit:(type:string, data?:undefined|string) => {\n if(_.et?.[type])\n for(const callback of _.et[type])\n if(data === undefined)\n callback.call(_);\n else\n callback.call(_, data);\n\n return _;\n },\n get:async ():Promise<undefined|string> => {\n if(_.uuid) {\n const data = await get(_.uuid);\n\n if(data !== _.data)\n setTimeout(() => _.emit('change', _.data), 0);\n \n _.data = data;\n\n return _.data;\n }\n },\n off:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et?.[type]) {\n _.et[type] = _.et[type].filter(_callback => _callback !== callback);\n\n if(!_.et[type].length)\n delete _.et[type];\n }\n\n return _;\n },\n on:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et) {\n if(!_.et[type])\n _.et[type] = [];\n\n _.et[type].push(callback);\n }\n\n return _;\n },\n read:async ():Promise<undefined|string> => {\n if(_.uuid)\n return
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// HTTP State, https://httpstate.com/\n// Copyright (C) Alex Morales, 2026\n//\n// Unless otherwise stated in particular files or directories, this software is free software.\n// You can redistribute it and/or modify it under the terms of the GNU Affero\n// General Public License as published by the Free Software Foundation, either\n// version 3 of the License, or (at your option) any later version.\n\nexport const get:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid);\n\n if(response.status === 200)\n return await response.text();\n};\n\nexport const load:() => Promise<void> = async ():Promise<void> => {\n for(const node of document.querySelectorAll('[httpstate]')) {\n const uuid:null|string = node.getAttribute('httpstate');\n\n (globalThis as any).httpstate(uuid)\n .on('change', (e:Event&{ data:string }) => node.innerHTML = e.data);\n }\n};\n\nexport const read:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => get(uuid);\n\nexport const set:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid, {\n body:data,\n headers:{ 'Content-Type':'text/plain;charset=UTF-8' },\n method:'POST'\n });\n\n return response.status;\n};\n\nexport const write:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => set(uuid, data);\n\n// HTTP State\nexport type HttpState = {\n data?:undefined|string;\n et?:undefined|{ [type:string]:((data?:undefined|string) => void)[] };\n uuid?:undefined|string;\n ws?:undefined|WebSocket;\n\n addEventListener(type:string, callback:(data?:undefined|string) => void):void;\n destroy():void;\n emit(type:string, data?:undefined|string):HttpState;\n get():Promise<undefined|string>;\n off(type:string, callback:(data?:undefined|string) => void):HttpState;\n on(type:string, callback:(data?:undefined|string) => void):HttpState;\n read():Promise<undefined|string>;\n removeEventListener(type:string, callback:(data?:undefined|string) => void):void;\n set(data:string):Promise<undefined|number>;\n write(data:string):Promise<undefined|number>;\n};\n\nconst httpstate:(uuid:string) => HttpState = (uuid:string):HttpState => {\n const _:HttpState = {\n data:undefined,\n et:{},\n uuid,\n ws:new WebSocket('wss://httpstate.com/' + uuid),\n\n addEventListener:(type:string, callback:(data?:undefined|string) => void) => _.on(type, callback),\n destroy:() => {\n clearInterval((_.ws as any).interval);\n _.ws?.close(1000);\n\n delete _.data;\n delete _.et;\n delete _.uuid;\n delete _.ws;\n },\n emit:(type:string, data?:undefined|string) => {\n if(_.et?.[type])\n for(const callback of _.et[type])\n if(data === undefined)\n callback.call(_);\n else\n callback.call(_, data);\n\n return _;\n },\n get:async ():Promise<undefined|string> => {\n if(_.uuid) {\n const data = await get(_.uuid);\n\n if(data !== _.data)\n setTimeout(() => _.emit('change', _.data), 0);\n \n _.data = data;\n\n return _.data;\n }\n },\n off:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et?.[type]) {\n _.et[type] = _.et[type].filter(_callback => _callback !== callback);\n\n if(!_.et[type].length)\n delete _.et[type];\n }\n\n return _;\n },\n on:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et) {\n if(!_.et[type])\n _.et[type] = [];\n\n _.et[type].push(callback);\n }\n\n return _;\n },\n read:async ():Promise<undefined|string> => {\n if(_.uuid)\n return get(_.uuid);\n },\n removeEventListener:(type:string, callback:(data?:undefined|string) => void) => _.off(type, callback),\n set:async (data:string):Promise<undefined|number> => {\n if(_.uuid)\n return set(_.uuid, data);\n },\n write:async (data:string):Promise<undefined|number> => {\n if(_.uuid)\n return set(_.uuid, data);\n }\n };\n\n _.ws?.addEventListener('close', e => console.log('close', e));\n _.ws?.addEventListener('error', e => console.log('error', e));\n _.ws?.addEventListener('message', async e => {\n const data = await e.data.text();\n\n if(\n data\n && data.length > 30\n && data.substring(0, 32) === _.uuid\n && data.substring(45, 46) === '1'\n ) {\n _.data = data.substring(46);\n\n _.emit('change', _.data);\n }\n });\n _.ws?.addEventListener('open', () => {\n _.emit('open');\n\n _.ws?.send(JSON.stringify({ open:_.uuid }));\n });\n\n (_.ws as any).interval = setInterval(() => {\n if(_.ws?.readyState === WebSocket.OPEN)\n _.ws?.send('0');\n else\n clearInterval((_.ws as any).interval);\n }, 1000*30); // 30 SECONDS\n\n setTimeout(_.get, 0);\n\n return _;\n};\n\nexport default httpstate;\n\nif(\n typeof document !== 'undefined'\n && typeof window !== 'undefined'\n && globalThis === window\n)\n globalThis.addEventListener('load', async () => {\n if((globalThis as any).httpstate)\n (globalThis as any).httpstate = Object.assign(\n (globalThis as any).httpstate.default,\n (globalThis as any).httpstate\n );\n\n await load();\n }, { once:true });\n"],"mappings":"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","names":["index_exports","__export","index_default","get","load","read","set","write","__toCommonJS","uuid","response","node","data","httpstate","_","type","callback","_callback"]}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var a=async i=>{let t=await fetch("https://httpstate.com/"+i);if(t.status===200)return await t.text()},r=async()=>{for(let i of document.querySelectorAll("[httpstate]")){let t=i.getAttribute("httpstate");globalThis.httpstate(t).on("change",e=>i.innerHTML=e.data)}},
|
|
1
|
+
var a=async i=>{let t=await fetch("https://httpstate.com/"+i);if(t.status===200)return await t.text()},r=async()=>{for(let i of document.querySelectorAll("[httpstate]")){let t=i.getAttribute("httpstate");globalThis.httpstate(t).on("change",e=>i.innerHTML=e.data)}},u=async i=>a(i),d=async(i,t)=>(await fetch("https://httpstate.com/"+i,{body:t,headers:{"Content-Type":"text/plain;charset=UTF-8"},method:"POST"})).status,g=async(i,t)=>d(i,t),o=i=>{let t={data:void 0,et:{},uuid:i,ws:new WebSocket("wss://httpstate.com/"+i),addEventListener:(e,n)=>t.on(e,n),destroy:()=>{clearInterval(t.ws.interval),t.ws?.close(1e3),delete t.data,delete t.et,delete t.uuid,delete t.ws},emit:(e,n)=>{if(t.et?.[e])for(let s of t.et[e])n===void 0?s.call(t):s.call(t,n);return t},get:async()=>{if(t.uuid){let e=await a(t.uuid);return e!==t.data&&setTimeout(()=>t.emit("change",t.data),0),t.data=e,t.data}},off:(e,n)=>(t.et?.[e]&&(t.et[e]=t.et[e].filter(s=>s!==n),t.et[e].length||delete t.et[e]),t),on:(e,n)=>(t.et&&(t.et[e]||(t.et[e]=[]),t.et[e].push(n)),t),read:async()=>{if(t.uuid)return a(t.uuid)},removeEventListener:(e,n)=>t.off(e,n),set:async e=>{if(t.uuid)return d(t.uuid,e)},write:async e=>{if(t.uuid)return d(t.uuid,e)}};return t.ws?.addEventListener("close",e=>console.log("close",e)),t.ws?.addEventListener("error",e=>console.log("error",e)),t.ws?.addEventListener("message",async e=>{let n=await e.data.text();n&&n.length>30&&n.substring(0,32)===t.uuid&&n.substring(45,46)==="1"&&(t.data=n.substring(46),t.emit("change",t.data))}),t.ws?.addEventListener("open",()=>{t.emit("open"),t.ws?.send(JSON.stringify({open:t.uuid}))}),t.ws.interval=setInterval(()=>{t.ws?.readyState===WebSocket.OPEN?t.ws?.send("0"):clearInterval(t.ws.interval)},3e4),setTimeout(t.get,0),t},f=o;typeof document<"u"&&typeof window<"u"&&globalThis===window&&globalThis.addEventListener("load",async()=>{globalThis.httpstate&&(globalThis.httpstate=Object.assign(globalThis.httpstate.default,globalThis.httpstate)),await r()},{once:!0});export{f as default,a as get,r as load,u as read,d as set,g as write};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// HTTP State, https://httpstate.com/\n// Copyright (C) Alex Morales, 2026\n//\n// Unless otherwise stated in particular files or directories, this software is free software.\n// You can redistribute it and/or modify it under the terms of the GNU Affero\n// General Public License as published by the Free Software Foundation, either\n// version 3 of the License, or (at your option) any later version.\n\nexport const get:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid);\n\n if(response.status === 200)\n return await response.text();\n};\n\nexport const load:() => Promise<void> = async ():Promise<void> => {\n for(const node of document.querySelectorAll('[httpstate]')) {\n const uuid:null|string = node.getAttribute('httpstate');\n\n (globalThis as any).httpstate(uuid)\n .on('change', (e:Event&{ data:string }) => node.innerHTML = e.data);\n }\n};\n\nexport const read:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => get(uuid);\n\nexport const set:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid, {\n body:data,\n headers:{ 'Content-Type':'text/plain;charset=UTF-8' },\n method:'POST'\n });\n\n return response.status;\n};\n\nexport const write:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => set(uuid, data);\n\n// HTTP State\nexport type HttpState = {\n data?:undefined|string;\n et?:undefined|{ [type:string]:((data?:undefined|string) => void)[] };\n uuid?:undefined|string;\n ws?:undefined|WebSocket;\n\n addEventListener(type:string, callback:(data?:undefined|string) => void):void;\n destroy():void;\n emit(type:string, data?:undefined|string):HttpState;\n get():Promise<undefined|string>;\n off(type:string, callback:(data?:undefined|string) => void):HttpState;\n on(type:string, callback:(data?:undefined|string) => void):HttpState;\n read():Promise<undefined|string>;\n removeEventListener(type:string, callback:(data?:undefined|string) => void):void;\n set(data:string):Promise<undefined|number>;\n write(data:string):Promise<undefined|number>;\n};\n\nconst httpstate:(uuid:string) => HttpState = (uuid:string):HttpState => {\n const _:HttpState = {\n data:undefined,\n et:{},\n uuid,\n ws:new WebSocket('wss://httpstate.com/' + uuid),\n\n addEventListener:(type:string, callback:(data?:undefined|string) => void) => _.on(type, callback),\n destroy:() => {\n clearInterval((_.ws as any).interval);\n _.ws?.close(1000);\n\n delete _.data;\n delete _.et;\n delete _.uuid;\n delete _.ws;\n },\n emit:(type:string, data?:undefined|string) => {\n if(_.et?.[type])\n for(const callback of _.et[type])\n if(data === undefined)\n callback.call(_);\n else\n callback.call(_, data);\n\n return _;\n },\n get:async ():Promise<undefined|string> => {\n if(_.uuid) {\n const data = await get(_.uuid);\n\n if(data !== _.data)\n setTimeout(() => _.emit('change', _.data), 0);\n \n _.data = data;\n\n return _.data;\n }\n },\n off:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et?.[type]) {\n _.et[type] = _.et[type].filter(_callback => _callback !== callback);\n\n if(!_.et[type].length)\n delete _.et[type];\n }\n\n return _;\n },\n on:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et) {\n if(!_.et[type])\n _.et[type] = [];\n\n _.et[type].push(callback);\n }\n\n return _;\n },\n read:async ():Promise<undefined|string> => {\n if(_.uuid)\n return
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// HTTP State, https://httpstate.com/\n// Copyright (C) Alex Morales, 2026\n//\n// Unless otherwise stated in particular files or directories, this software is free software.\n// You can redistribute it and/or modify it under the terms of the GNU Affero\n// General Public License as published by the Free Software Foundation, either\n// version 3 of the License, or (at your option) any later version.\n\nexport const get:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid);\n\n if(response.status === 200)\n return await response.text();\n};\n\nexport const load:() => Promise<void> = async ():Promise<void> => {\n for(const node of document.querySelectorAll('[httpstate]')) {\n const uuid:null|string = node.getAttribute('httpstate');\n\n (globalThis as any).httpstate(uuid)\n .on('change', (e:Event&{ data:string }) => node.innerHTML = e.data);\n }\n};\n\nexport const read:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => get(uuid);\n\nexport const set:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid, {\n body:data,\n headers:{ 'Content-Type':'text/plain;charset=UTF-8' },\n method:'POST'\n });\n\n return response.status;\n};\n\nexport const write:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => set(uuid, data);\n\n// HTTP State\nexport type HttpState = {\n data?:undefined|string;\n et?:undefined|{ [type:string]:((data?:undefined|string) => void)[] };\n uuid?:undefined|string;\n ws?:undefined|WebSocket;\n\n addEventListener(type:string, callback:(data?:undefined|string) => void):void;\n destroy():void;\n emit(type:string, data?:undefined|string):HttpState;\n get():Promise<undefined|string>;\n off(type:string, callback:(data?:undefined|string) => void):HttpState;\n on(type:string, callback:(data?:undefined|string) => void):HttpState;\n read():Promise<undefined|string>;\n removeEventListener(type:string, callback:(data?:undefined|string) => void):void;\n set(data:string):Promise<undefined|number>;\n write(data:string):Promise<undefined|number>;\n};\n\nconst httpstate:(uuid:string) => HttpState = (uuid:string):HttpState => {\n const _:HttpState = {\n data:undefined,\n et:{},\n uuid,\n ws:new WebSocket('wss://httpstate.com/' + uuid),\n\n addEventListener:(type:string, callback:(data?:undefined|string) => void) => _.on(type, callback),\n destroy:() => {\n clearInterval((_.ws as any).interval);\n _.ws?.close(1000);\n\n delete _.data;\n delete _.et;\n delete _.uuid;\n delete _.ws;\n },\n emit:(type:string, data?:undefined|string) => {\n if(_.et?.[type])\n for(const callback of _.et[type])\n if(data === undefined)\n callback.call(_);\n else\n callback.call(_, data);\n\n return _;\n },\n get:async ():Promise<undefined|string> => {\n if(_.uuid) {\n const data = await get(_.uuid);\n\n if(data !== _.data)\n setTimeout(() => _.emit('change', _.data), 0);\n \n _.data = data;\n\n return _.data;\n }\n },\n off:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et?.[type]) {\n _.et[type] = _.et[type].filter(_callback => _callback !== callback);\n\n if(!_.et[type].length)\n delete _.et[type];\n }\n\n return _;\n },\n on:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et) {\n if(!_.et[type])\n _.et[type] = [];\n\n _.et[type].push(callback);\n }\n\n return _;\n },\n read:async ():Promise<undefined|string> => {\n if(_.uuid)\n return get(_.uuid);\n },\n removeEventListener:(type:string, callback:(data?:undefined|string) => void) => _.off(type, callback),\n set:async (data:string):Promise<undefined|number> => {\n if(_.uuid)\n return set(_.uuid, data);\n },\n write:async (data:string):Promise<undefined|number> => {\n if(_.uuid)\n return set(_.uuid, data);\n }\n };\n\n _.ws?.addEventListener('close', e => console.log('close', e));\n _.ws?.addEventListener('error', e => console.log('error', e));\n _.ws?.addEventListener('message', async e => {\n const data = await e.data.text();\n\n if(\n data\n && data.length > 30\n && data.substring(0, 32) === _.uuid\n && data.substring(45, 46) === '1'\n ) {\n _.data = data.substring(46);\n\n _.emit('change', _.data);\n }\n });\n _.ws?.addEventListener('open', () => {\n _.emit('open');\n\n _.ws?.send(JSON.stringify({ open:_.uuid }));\n });\n\n (_.ws as any).interval = setInterval(() => {\n if(_.ws?.readyState === WebSocket.OPEN)\n _.ws?.send('0');\n else\n clearInterval((_.ws as any).interval);\n }, 1000*30); // 30 SECONDS\n\n setTimeout(_.get, 0);\n\n return _;\n};\n\nexport default httpstate;\n\nif(\n typeof document !== 'undefined'\n && typeof window !== 'undefined'\n && globalThis === window\n)\n globalThis.addEventListener('load', async () => {\n if((globalThis as any).httpstate)\n (globalThis as any).httpstate = Object.assign(\n (globalThis as any).httpstate.default,\n (globalThis as any).httpstate\n );\n\n await load();\n }, { once:true });\n"],"mappings":"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","names":["get","uuid","response","load","node","read","set","data","write","httpstate","_","type","callback","_callback","index_default"]}
|
package/dist/index.global.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var httpstate=(()=>{var
|
|
1
|
+
"use strict";var httpstate=(()=>{var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var l=(n,t)=>{for(var e in t)r(n,e,{get:t[e],enumerable:!0})},c=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of g(t))!f.call(n,s)&&s!==e&&r(n,s,{get:()=>t[s],enumerable:!(i=u(t,s))||i.enumerable});return n};var m=n=>c(r({},"__esModule",{value:!0}),n);var w={};l(w,{default:()=>b,get:()=>a,load:()=>o,read:()=>p,set:()=>d,write:()=>v});var a=async n=>{let t=await fetch("https://httpstate.com/"+n);if(t.status===200)return await t.text()},o=async()=>{for(let n of document.querySelectorAll("[httpstate]")){let t=n.getAttribute("httpstate");globalThis.httpstate(t).on("change",e=>n.innerHTML=e.data)}},p=async n=>a(n),d=async(n,t)=>(await fetch("https://httpstate.com/"+n,{body:t,headers:{"Content-Type":"text/plain;charset=UTF-8"},method:"POST"})).status,v=async(n,t)=>d(n,t),h=n=>{let t={data:void 0,et:{},uuid:n,ws:new WebSocket("wss://httpstate.com/"+n),addEventListener:(e,i)=>t.on(e,i),destroy:()=>{clearInterval(t.ws.interval),t.ws?.close(1e3),delete t.data,delete t.et,delete t.uuid,delete t.ws},emit:(e,i)=>{if(t.et?.[e])for(let s of t.et[e])i===void 0?s.call(t):s.call(t,i);return t},get:async()=>{if(t.uuid){let e=await a(t.uuid);return e!==t.data&&setTimeout(()=>t.emit("change",t.data),0),t.data=e,t.data}},off:(e,i)=>(t.et?.[e]&&(t.et[e]=t.et[e].filter(s=>s!==i),t.et[e].length||delete t.et[e]),t),on:(e,i)=>(t.et&&(t.et[e]||(t.et[e]=[]),t.et[e].push(i)),t),read:async()=>{if(t.uuid)return a(t.uuid)},removeEventListener:(e,i)=>t.off(e,i),set:async e=>{if(t.uuid)return d(t.uuid,e)},write:async e=>{if(t.uuid)return d(t.uuid,e)}};return t.ws?.addEventListener("close",e=>console.log("close",e)),t.ws?.addEventListener("error",e=>console.log("error",e)),t.ws?.addEventListener("message",async e=>{let i=await e.data.text();i&&i.length>30&&i.substring(0,32)===t.uuid&&i.substring(45,46)==="1"&&(t.data=i.substring(46),t.emit("change",t.data))}),t.ws?.addEventListener("open",()=>{t.emit("open"),t.ws?.send(JSON.stringify({open:t.uuid}))}),t.ws.interval=setInterval(()=>{t.ws?.readyState===WebSocket.OPEN?t.ws?.send("0"):clearInterval(t.ws.interval)},3e4),setTimeout(t.get,0),t},b=h;typeof document<"u"&&typeof window<"u"&&globalThis===window&&globalThis.addEventListener("load",async()=>{globalThis.httpstate&&(globalThis.httpstate=Object.assign(globalThis.httpstate.default,globalThis.httpstate)),await o()},{once:!0});return m(w);})();
|
|
2
2
|
//# sourceMappingURL=index.global.js.map
|
package/dist/index.global.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// HTTP State, https://httpstate.com/\n// Copyright (C) Alex Morales, 2026\n//\n// Unless otherwise stated in particular files or directories, this software is free software.\n// You can redistribute it and/or modify it under the terms of the GNU Affero\n// General Public License as published by the Free Software Foundation, either\n// version 3 of the License, or (at your option) any later version.\n\nexport const get:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid);\n\n if(response.status === 200)\n return await response.text();\n};\n\nexport const load:() => Promise<void> = async ():Promise<void> => {\n for(const node of document.querySelectorAll('[httpstate]')) {\n const uuid:null|string = node.getAttribute('httpstate');\n\n (globalThis as any).httpstate(uuid)\n .on('change', (e:Event&{ data:string }) => node.innerHTML = e.data);\n }\n};\n\nexport const read:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => get(uuid);\n\nexport const set:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid, {\n body:data,\n headers:{ 'Content-Type':'text/plain;charset=UTF-8' },\n method:'POST'\n });\n\n return response.status;\n};\n\nexport const write:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => set(uuid, data);\n\n// HTTP State\nexport type HttpState = {\n data?:undefined|string;\n et?:undefined|{ [type:string]:((data?:undefined|string) => void)[] };\n uuid?:undefined|string;\n ws?:undefined|WebSocket;\n\n addEventListener(type:string, callback:(data?:undefined|string) => void):void;\n destroy():void;\n emit(type:string, data?:undefined|string):HttpState;\n get():Promise<undefined|string>;\n off(type:string, callback:(data?:undefined|string) => void):HttpState;\n on(type:string, callback:(data?:undefined|string) => void):HttpState;\n read():Promise<undefined|string>;\n removeEventListener(type:string, callback:(data?:undefined|string) => void):void;\n set(data:string):Promise<undefined|number>;\n write(data:string):Promise<undefined|number>;\n};\n\nconst httpstate:(uuid:string) => HttpState = (uuid:string):HttpState => {\n const _:HttpState = {\n data:undefined,\n et:{},\n uuid,\n ws:new WebSocket('wss://httpstate.com/' + uuid),\n\n addEventListener:(type:string, callback:(data?:undefined|string) => void) => _.on(type, callback),\n destroy:() => {\n clearInterval((_.ws as any).interval);\n _.ws?.close(1000);\n\n delete _.data;\n delete _.et;\n delete _.uuid;\n delete _.ws;\n },\n emit:(type:string, data?:undefined|string) => {\n if(_.et?.[type])\n for(const callback of _.et[type])\n if(data === undefined)\n callback.call(_);\n else\n callback.call(_, data);\n\n return _;\n },\n get:async ():Promise<undefined|string> => {\n if(_.uuid) {\n const data = await get(_.uuid);\n\n if(data !== _.data)\n setTimeout(() => _.emit('change', _.data), 0);\n \n _.data = data;\n\n return _.data;\n }\n },\n off:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et?.[type]) {\n _.et[type] = _.et[type].filter(_callback => _callback !== callback);\n\n if(!_.et[type].length)\n delete _.et[type];\n }\n\n return _;\n },\n on:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et) {\n if(!_.et[type])\n _.et[type] = [];\n\n _.et[type].push(callback);\n }\n\n return _;\n },\n read:async ():Promise<undefined|string> => {\n if(_.uuid)\n return
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// HTTP State, https://httpstate.com/\n// Copyright (C) Alex Morales, 2026\n//\n// Unless otherwise stated in particular files or directories, this software is free software.\n// You can redistribute it and/or modify it under the terms of the GNU Affero\n// General Public License as published by the Free Software Foundation, either\n// version 3 of the License, or (at your option) any later version.\n\nexport const get:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid);\n\n if(response.status === 200)\n return await response.text();\n};\n\nexport const load:() => Promise<void> = async ():Promise<void> => {\n for(const node of document.querySelectorAll('[httpstate]')) {\n const uuid:null|string = node.getAttribute('httpstate');\n\n (globalThis as any).httpstate(uuid)\n .on('change', (e:Event&{ data:string }) => node.innerHTML = e.data);\n }\n};\n\nexport const read:(uuid:string) => Promise<undefined|string> = async (uuid:string):Promise<undefined|string> => get(uuid);\n\nexport const set:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => {\n const response:Response = await fetch('https://httpstate.com/' + uuid, {\n body:data,\n headers:{ 'Content-Type':'text/plain;charset=UTF-8' },\n method:'POST'\n });\n\n return response.status;\n};\n\nexport const write:(uuid:string, data:string) => Promise<number> = async (uuid:string, data:string):Promise<number> => set(uuid, data);\n\n// HTTP State\nexport type HttpState = {\n data?:undefined|string;\n et?:undefined|{ [type:string]:((data?:undefined|string) => void)[] };\n uuid?:undefined|string;\n ws?:undefined|WebSocket;\n\n addEventListener(type:string, callback:(data?:undefined|string) => void):void;\n destroy():void;\n emit(type:string, data?:undefined|string):HttpState;\n get():Promise<undefined|string>;\n off(type:string, callback:(data?:undefined|string) => void):HttpState;\n on(type:string, callback:(data?:undefined|string) => void):HttpState;\n read():Promise<undefined|string>;\n removeEventListener(type:string, callback:(data?:undefined|string) => void):void;\n set(data:string):Promise<undefined|number>;\n write(data:string):Promise<undefined|number>;\n};\n\nconst httpstate:(uuid:string) => HttpState = (uuid:string):HttpState => {\n const _:HttpState = {\n data:undefined,\n et:{},\n uuid,\n ws:new WebSocket('wss://httpstate.com/' + uuid),\n\n addEventListener:(type:string, callback:(data?:undefined|string) => void) => _.on(type, callback),\n destroy:() => {\n clearInterval((_.ws as any).interval);\n _.ws?.close(1000);\n\n delete _.data;\n delete _.et;\n delete _.uuid;\n delete _.ws;\n },\n emit:(type:string, data?:undefined|string) => {\n if(_.et?.[type])\n for(const callback of _.et[type])\n if(data === undefined)\n callback.call(_);\n else\n callback.call(_, data);\n\n return _;\n },\n get:async ():Promise<undefined|string> => {\n if(_.uuid) {\n const data = await get(_.uuid);\n\n if(data !== _.data)\n setTimeout(() => _.emit('change', _.data), 0);\n \n _.data = data;\n\n return _.data;\n }\n },\n off:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et?.[type]) {\n _.et[type] = _.et[type].filter(_callback => _callback !== callback);\n\n if(!_.et[type].length)\n delete _.et[type];\n }\n\n return _;\n },\n on:(type:string, callback:(data?:undefined|string) => void) => {\n if(_.et) {\n if(!_.et[type])\n _.et[type] = [];\n\n _.et[type].push(callback);\n }\n\n return _;\n },\n read:async ():Promise<undefined|string> => {\n if(_.uuid)\n return get(_.uuid);\n },\n removeEventListener:(type:string, callback:(data?:undefined|string) => void) => _.off(type, callback),\n set:async (data:string):Promise<undefined|number> => {\n if(_.uuid)\n return set(_.uuid, data);\n },\n write:async (data:string):Promise<undefined|number> => {\n if(_.uuid)\n return set(_.uuid, data);\n }\n };\n\n _.ws?.addEventListener('close', e => console.log('close', e));\n _.ws?.addEventListener('error', e => console.log('error', e));\n _.ws?.addEventListener('message', async e => {\n const data = await e.data.text();\n\n if(\n data\n && data.length > 30\n && data.substring(0, 32) === _.uuid\n && data.substring(45, 46) === '1'\n ) {\n _.data = data.substring(46);\n\n _.emit('change', _.data);\n }\n });\n _.ws?.addEventListener('open', () => {\n _.emit('open');\n\n _.ws?.send(JSON.stringify({ open:_.uuid }));\n });\n\n (_.ws as any).interval = setInterval(() => {\n if(_.ws?.readyState === WebSocket.OPEN)\n _.ws?.send('0');\n else\n clearInterval((_.ws as any).interval);\n }, 1000*30); // 30 SECONDS\n\n setTimeout(_.get, 0);\n\n return _;\n};\n\nexport default httpstate;\n\nif(\n typeof document !== 'undefined'\n && typeof window !== 'undefined'\n && globalThis === window\n)\n globalThis.addEventListener('load', async () => {\n if((globalThis as any).httpstate)\n (globalThis as any).httpstate = Object.assign(\n (globalThis as any).httpstate.default,\n (globalThis as any).httpstate\n );\n\n await load();\n }, { once:true });\n"],"mappings":"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","names":["index_exports","__export","index_default","get","load","read","set","write","uuid","response","node","data","httpstate","_","type","callback","_callback"]}
|
package/package.json
CHANGED