From ea2f1691075b9dfdf1da03b2b7f314ea15a4808f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 10 Jan 2025 16:56:39 +0100 Subject: [PATCH] Publish v0.25.0 --- dist/genart.js | 2 +- dist/genart.min.js | 2 +- packages/adapter-editart/package.json | 2 +- packages/adapter-fxhash/package.json | 2 +- packages/adapter-layer/package.json | 2 +- packages/adapter-urlparams/package.json | 2 +- packages/core/package.json | 2 +- packages/time-fps-overlay/package.json | 2 +- packages/wasm/package.json | 2 +- packages/wasm/typedoc.json | 11 ++++++++++- project-template/package.json | 4 ++-- 11 files changed, 21 insertions(+), 12 deletions(-) diff --git a/dist/genart.js b/dist/genart.js index 990b8a5..62d6aa8 100644 --- a/dist/genart.js +++ b/dist/genart.js @@ -769,7 +769,7 @@ }); } get version() { - return "0.24.0"; + return "0.25.0"; } get id() { return this._opts.id; diff --git a/dist/genart.min.js b/dist/genart.min.js index 4162da6..c27a28e 100644 --- a/dist/genart.min.js +++ b/dist/genart.min.js @@ -1 +1 @@ -"use strict";(()=>{var Lt=Object.defineProperty;var L=(e,t)=>{for(var r in t)Lt(e,r,{get:t[r],enumerable:!0})};var W={};L(W,{clamp:()=>_,clamp01:()=>R,div:()=>B,easeInOut5:()=>K,fit:()=>G,mix:()=>T,norm:()=>M,parseNum:()=>$,round:()=>I,smoothstep:()=>Bt,smoothstep01:()=>v});var $=(e,t=0)=>{let r=e?parseFloat(e):Number.NaN;return isNaN(r)?t:r},T=(e,t,r)=>e+(t-e)*r,G=(e,t,r,a,n)=>a+(n-a)*M(e,t,r),_=(e,t,r)=>er?r:e,R=e=>e<0?0:e>1?1:e,I=(e,t)=>Math.round(B(e,t))*t,M=(e,t,r)=>B(e-t,r-t),B=(e,t)=>t!=0?e/t:0,Bt=(e,t,r)=>v(R(B(r-e,t-e))),v=e=>e*e*(3-2*e),vt=e=>{let t=2**(e-1);return r=>r<.5?t*r**e:1-(-2*r+2)**e/2},K=vt(5);var tt={};L(tt,{PARAM_DEFAULTS:()=>ct,bigint:()=>Ut,binary:()=>kt,choice:()=>Z,color:()=>$t,date:()=>Gt,datetime:()=>Kt,image:()=>Wt,numlist:()=>Q,ramp:()=>Xt,range:()=>qt,strlist:()=>Ht,text:()=>Yt,time:()=>Jt,toggle:()=>Zt,vector:()=>Qt,weighted:()=>te,xy:()=>ee});var D={};L(D,{ensure:()=>y,equiv:()=>J,equivArrayLike:()=>lt,equivObject:()=>dt,formatValuePrec:()=>Vt,hashBytes:()=>ft,hashString:()=>Dt,isBigInt:()=>V,isFunction:()=>q,isInRange:()=>c,isNumber:()=>u,isNumericArray:()=>h,isPrim:()=>X,isString:()=>p,isStringArray:()=>H,isTypedArray:()=>S,parseBigInt:()=>E,parseBigInt128:()=>mt,parseUUID:()=>Et,stringifyBigInt:()=>jt,stringifyJSON:()=>zt,u16:()=>z,u24:()=>Y,u32:()=>Ft,u8:()=>j,valuePrec:()=>pt});var F=0xfffffffffn,A=Math.imul,ot=Object.getPrototypeOf({}),y=(e,t)=>{if(!e)throw new Error(t);return e},V=e=>typeof e=="bigint",u=e=>typeof e=="number"&&!isNaN(e),p=e=>typeof e=="string",X=e=>{let t=typeof e;return t==="bigint"||t==="boolean"||t==="number"||t==="string"||t==="symbol"},q=e=>typeof e=="function",h=e=>S(e)||Array.isArray(e)&&e.every(u),H=e=>Array.isArray(e)&&e.every(p),S=e=>!!e&&(e instanceof Float32Array||e instanceof Float64Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint8ClampedArray),c=(e,t,r)=>e>=t&&e<=r,j=e=>(e&=255,(e<16?"0":"")+e.toString(16)),z=e=>j(e>>>8)+j(e),Y=e=>z(e>>>8)+j(e&255),Ft=e=>z(e>>>16)+z(e),jt=(e,t=10)=>{let r={10:"",2:"0b",8:"0o",16:"0x"}[t];return e<0n?"-"+r+(-e).toString(t):r+e.toString(t)},E=e=>/^-0[box]/.test(e)?-BigInt(e.substring(1)):BigInt(e),mt=e=>new Uint32Array([Number(e>>96n&F),Number(e>>64n&F),Number(e>>32n&F),Number(e&F)]),zt=e=>JSON.stringify(e,(t,r)=>V(r)?r.toString():S(r)?[...r]:r,4),pt=e=>{let t=e.toString(),r=t.indexOf(".");return r>0?t.length-r-1:0},Vt=e=>{let t=pt(e);return r=>r.toFixed(t)},J=(e,t)=>{let r;return e===t?!0:e==null?t==null:t==null?e==null:X(e)||X(t)||q(e)||q(t)?e===t||e!==e&&t!==t:e.length!=null&&t.length!=null?lt(e,t):(r=Object.getPrototypeOf(e),(r==null||r===ot)&&(r=Object.getPrototypeOf(t),r==null||r===ot)?dt(e,t):e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():e instanceof RegExp&&t instanceof RegExp?e.toString()===t.toString():e===t)},dt=(e,t)=>{if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(!(t.hasOwnProperty(r)&&J(e[r],t[r])))return!1;return!0},lt=(e,t)=>{if(e.length!==t.length)return!1;let r=e.length;for(;r-- >0&&J(e[r],t[r]););return r<0},Et=e=>mt(BigInt("0x"+e.replace(/-/g,"").substring(0,32))),ft=(e,t=0)=>{let r=s=>e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],a=(s,d)=>s<>>32-d,n=(s,d)=>{let P=d+1&3;x[d]=A(a(x[d]^A(a(A(r(s),g[d]),15+d),g[P]),19-(d<<1))+x[P],5)+f[d]},i=s=>{let d=s[0]+=s[1]+s[2]+s[3];return s[1]+=d,s[2]+=d,s[3]+=d,s},o=s=>(s^=s>>>16,s=A(s,2246822507),s^=s>>>13,s=A(s,3266489909),s^=s>>>16),m=e.length,f=new Uint32Array([1444728091,197830471,2530024501,850148119]),g=new Uint32Array([597399067,2869860233,951274213,2716044179]),x=g.map(s=>s^t),b=0;for(let s=m&-16;b0;s--){let d=s-1;if((s&3)===1){let P=s>>2;f[P]=a(A(f[P]^e[b+d],g[P]),15+P),x[P]^=A(f[P],g[P+1&3])}else f[d>>2]^=e[b+d]<<(d<<3)}return i(i(x.map(s=>s^m)).map(o))},Dt=(e,t)=>ft(new TextEncoder().encode(e),t);var Ot=/^\d{4}-\d{2}-\d{2}$/,O={validate:(e,t)=>t instanceof Date||u(t)||p(t)&&Ot.test(t),coerce:(e,t)=>u(t)?new Date(t):p(t)?new Date(Date.parse(t)):t};var Ct=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|[-+]\d{2}:\d{2})$/,C={validate:(e,t)=>t instanceof Date||u(t)||p(t)&&Ct.test(t),coerce:(e,t)=>u(t)?new Date(t):p(t)?new Date(Date.parse(t)):t};var N={validate:(e,t)=>h(t)&&t.length===3&&c(t[0],0,23)&&c(t[1],0,59)&&c(t[2],0,59)||p(t)&&/^([01]\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(t),coerce:(e,t)=>p(t)?t.split(":").map($):t,randomize:(e,t)=>[t()*24|0,t()*60|0,t()*60|0]};var U={validate:(e,t)=>{let{min:r,max:a,size:n}=e;return h(t)&&t.length===n&&t.every((i,o)=>c(i,r[o],a[o]))},coerce:(e,t)=>{let{min:r,max:a,step:n}=e;return t.map((i,o)=>_(I(i,n[o]),r[o],a[o]))},randomize:(e,t)=>{let{min:r,max:a,size:n,step:i}=e;return new Array(n).fill(0).map((o,m)=>_(I(T(r[m],a[m],t()),i[m]),r[m],a[m]))}};var ct={desc:"TODO description",edit:"protected",group:"main",order:0,randomize:!0,state:"void",update:"event",widget:"default"},l=(e,t,r=!0)=>(y(t.name,"missing param `name`"),{...ct,type:e,randomize:r,...t}),gt=(e,t)=>t!=null?y(e.validate(null,t),`invalid default value: ${t}`)&&e.coerce(null,t):t,ut=(e,t=10)=>{let r=0,a=e.maxLength||t;return e.minLength&&(r=e.minLength,e.maxLength||(a=Math.max(r,t))),y(r<=a,"invalid list length constraint"),[r,a]},Ut=e=>l("bigint",{min:0n,max:0xffffffffffffffffn,...e}),kt=e=>l("binary",{minLength:0,maxLength:1024,...e},!1),Z=e=>l("choice",e),$t=e=>l("color",e),Gt=e=>l("date",{...e,default:gt(O,e.default)},!1),Kt=e=>l("datetime",{...e,default:gt(C,e.default)},!1),Wt=e=>l("image",{default:e.default||new(e.format==="gray"?Uint8Array:Uint32Array)(e.width*e.height),...e},!1),Q=e=>{let[t,r]=ut(e,10);return l("numlist",{default:e.default||new Array(t).fill(0),minLength:t,maxLength:r,...e},!1)},Xt=e=>l("ramp",{...e,stops:e.stops?e.stops.flat():[0,0,1,1],mode:e.mode||"linear",default:0},!1),qt=e=>l("range",{min:0,max:100,step:1,...e}),Ht=e=>{let[t,r]=ut(e,10);return l("strlist",{default:e.default||new Array(t).fill(""),minLength:t,maxLength:r,...e},!1)},Yt=e=>l("text",{minLength:0,maxLength:32,multiline:!1,...e},!1),Jt=e=>l("time",{...e,default:e.default!=null?y(N.validate(null,e.default),"")&&N.coerce(null,e.default):e.default}),Zt=e=>l("toggle",e),Qt=e=>{e.labels?y(e.labels.length>=e.size,`expected ${e.size} labels`):y(e.size<=4,"missing vector labels");let t=(a,n,i=0)=>Array.isArray(n)?(y(n.length===a,"wrong vector size"),n):new Array(a).fill(u(n)?n:i),r={min:t(e.size,e.min,0),max:t(e.size,e.max,1),step:t(e.size,e.step,.01)};return l("vector",{...e,...r,default:e.default?y(e.default.length==e.size,`wrong vector size, expected ${e.size} values`)&&U.coerce(r,e.default):e.default,labels:e.labels||["X","Y","Z","W"].slice(0,e.size)})},te=e=>l("weighted",{...e,options:e.options.sort((t,r)=>r[0]-t[0]),total:e.options.reduce((t,r)=>t+r[0],0)}),ee=e=>l("xy",e);var rt={};L(rt,{defPRNG:()=>ae,randomBigInt:()=>et,sfc32:()=>re});var re=e=>{let t=new Uint32Array(4);return t.set(e),()=>{let r=(t[0]+t[1]>>>0)+t[3]>>>0;return t[3]=t[3]+1>>>0,t[0]=t[1]^t[1]>>>9,t[1]=t[2]+(t[2]<<3)>>>0,t[2]=(t[2]<<21|t[2]>>>11)+r>>>0,r/4294967296}},et=(e,t=Math.random)=>{let r=0n;for(let a=Math.log2(Number(e))+31>>5;a-- >0;)r=r<<32n|BigInt(t()*4294967296>>>0);return r%e},ae=(e,t,r)=>{let a=()=>r(t);return{seed:e,reset:a,rnd:a()}};var Pt={validate:(e,t)=>{let{min:r,max:a}=e;if(p(t)){if(!/^-?([0-9]+|0x[0-9a-f]+|0b[01]+|0o[0-7]+)$/.test(t))return!1;t=E(t)}else if(u(t)||V(t))t=BigInt(t);else return!1;return t>=r&&t<=a},coerce:(e,t)=>p(t)?E(t):BigInt(t),randomize:(e,t)=>{let{min:r,max:a}=e;return r+et(a-r,t)}};var yt={validate:(e,t)=>{let{minLength:r,maxLength:a}=e;return t instanceof Uint8Array&&t.length>=r&&t.length<=a}};var ht={validate:(e,t)=>!!e.options.find(r=>(p(r)?r:r[0])===t),randomize:(e,t)=>{let r=e.options,a=r[t()*r.length|0];return p(a)?a:a[0]}};var xt={validate:(e,t)=>p(t)&&/^#?[0-9a-f]{6,8}$/i.test(t),coerce:(e,t)=>(t[0]!=="#"?"#"+t:t).substring(0,7),randomize:(e,t)=>"#"+Y(t()*16777216|0)};var bt={validate:(e,t)=>{let{width:r,height:a,format:n}=e;return S(t)&&t.length==r*a&&(n==="gray"?t instanceof Uint8Array||t instanceof Uint8ClampedArray:t instanceof Uint32Array)}};var Tt={validate:(e,t)=>{let{minLength:r,maxLength:a}=e;return h(t)&&c(t.length,r,a)}};var _t={validate:()=>!1,read:(e,t)=>{let{stops:r,mode:a}=e,n=r.length,i=n;for(;(i-=2)>=0&&!(t>=r[i]););n-=2;let o=r[i],m=r[i+1],f=r[i+2],g=r[i+3];return i<0?r[1]:i>=n?r[n+1]:{exp:()=>T(m,g,K(M(t,o,f))),linear:()=>G(t,o,f,m,g),smooth:()=>T(m,g,v(M(t,o,f)))}[a||"linear"]()},params:{stops:Q({name:"Ramp stops",desc:"Control points",minLength:4,maxLength:1/0,default:[]}),mode:Z({name:"Ramp mode",desc:"Interpolation method",options:["linear","smooth","exp"]})}};var It={validate:(e,t)=>{let{min:r,max:a}=e;return u(t)&&c(t,r,a)},coerce:(e,t)=>{let r=e;return _(I(t??r.default,r.step||1),r.min,r.max)},randomize:(e,t)=>{let{min:r,max:a,step:n}=e;return _(I(T(r,a,t()),n||1),r,a)}};var At={validate:(e,t)=>{let{minLength:r,maxLength:a,match:n}=e;if(!(H(t)&&c(t.length,r,a)))return!1;if(n){let i=p(n)?new RegExp(n):n;return t.every(o=>i.test(o))}return!0}};var wt={validate:(e,t)=>{if(!p(t))return!1;let{minLength:r,maxLength:a,match:n}=e;return n&&!(p(n)?new RegExp(n):n).test(t)?!1:c(t.length,r,a)}};var Rt={validate:(e,t)=>p(t)?/^(true|false|0|1)$/.test(t):t===1||t===0||typeof t=="boolean",coerce:(e,t)=>t==="true"||t==="1"?!0:t==="false"||t==="0"?!1:!!t,randomize:(e,t)=>t()<.5};var Mt={validate:(e,t)=>!!e.options.find(r=>r[1]===t),randomize:(e,t)=>{let{options:r,total:a,default:n}=e,i=t()*a;for(let o=0,m=r.length;oh(t)&&t.length==2,coerce:(e,t)=>[R(t[0]),R(t[1])],randomize:(e,t)=>[t(),t()]};var Nt=(e=250,t=60,r=0)=>{let a=r,n=1e3/t;return{start(){a=r-1},next(i){setTimeout(()=>{a++,i(a*n,a)},e)},now:()=>[a*n,a]}};var at=(e=0,t=0)=>{let r=performance.now(),a=t,n=e,i=!0;return{start(){i=!0},next(o){requestAnimationFrame(m=>{i?(r=m,a=t,i=!1):a++,n=e+m-r,o(n,a)})},now:()=>[n,a]}};var{ensure:w,isFunction:ne}=D,k=typeof window<"u",it=class{_opts={id:Math.floor(Math.random()*1e12).toString(36),allowExternalConfig:!1,notifyFrameUpdate:!1};_adapter;_time=at();_prng;_update;_state="init";_traits;_params;_paramTypes={bigint:Pt,binary:yt,choice:ht,color:xt,date:O,datetime:C,image:bt,numlist:Tt,ramp:_t,range:It,strlist:At,text:wt,time:N,toggle:Rt,vector:U,weighted:Mt,xy:St};math=W;params=tt;prng=rt;utils=D;time={offline:Nt,raf:at};constructor(){k&&window.addEventListener("message",t=>{let r=t.data;if(!(!this.isRecipient(t)||r?.__self))switch(r.type){case"genart:get-info":this.notifyInfo();break;case"genart:randomize-param":this.randomizeParamValue(r.paramID,r.key);break;case"genart:resume":this.start(!0);break;case"genart:configure":{if(!this._opts.allowExternalConfig)return;let a=r.opts;delete a.id,delete a.allowExternalConfig,this.configure(a);break}case"genart:set-param-value":this.setParamValue(r.paramID,r.value,r.key);break;case"genart:start":this.start();break;case"genart:stop":this.stop();break}})}get version(){return"0.24.0"}get id(){return this._opts.id}get mode(){return this._adapter?.mode||"play"}get collector(){return this._adapter?.collector}get iteration(){return this._adapter?.iteration}get screen(){return this._adapter?.screen||(k?{width:window.innerWidth,height:window.innerHeight,dpr:window.devicePixelRatio||1}:{width:640,height:640,dpr:1})}get random(){return this._prng?this._prng:this._prng=w(this._adapter,"missing platform adapter").prng}get state(){return this._state}get paramSpecs(){return this._params}get adapter(){return this._adapter}get timeProvider(){return this._time}registerParamType(t,r){nt(t),this._paramTypes[t]&&console.warn("overriding impl for param type:",t),this._paramTypes[t]=r}paramType(t){return nt(t),this._paramTypes[t]}async setParams(t){try{this._adapter?.augmentParams&&(t=this._adapter.augmentParams(t)),this._params={};for(let r in t){st(r);let a={...t.PARAM_DEFAULTS,...t[r]},n=this.ensureParamImpl(a.type);if(a.default==null)if(n.randomize)a.default=n.randomize(a,this.random.rnd),a.state="random";else if(n.read)a.state="dynamic";else throw new Error(`missing default value for param: ${r}`);else{if(!(n.read||n.validate(a,a.default)))throw new Error(`invalid default value for param: ${r} (${a.default})`);a.state="default"}this._params[r]=a}return this._adapter&&(this._adapter.initParams&&await this._adapter.initParams(this._params),await this.updateParams()),this.notifySetParams(),this.getParamValue.bind(this)}catch(r){throw this.setState("error",r.message),r}}setTraits(t){this._traits=t,this.emit({type:"genart:traits",traits:t})}setAdapter(t){this._adapter=t,this.notifyReady()}waitForAdapter(){return this.waitFor("_adapter")}setTimeProvider(t){this._time=t,this.notifyReady()}waitForTimeProvider(){return this.waitFor("_time")}setUpdate(t){this._update=t,this.notifyReady()}async updateParams(t="none"){if(this._adapter)for(let r in this._params){let a=this._params[r],n=await this._adapter.updateParam(r,a);if(!n)continue;let{value:i,update:o}=n;if(o)for(let m in o)this.setParamValue(r,o[m],m,"none");this.setParamValue(r,i,void 0,i!=null||o?t:"none")}}setParamValue(t,r,a,n="all"){let{spec:i,impl:o}=this.ensureParam(t);if(r!=null){let m=i;if(a){let{spec:f,impl:g}=this.ensureNestedParam(i,a);m=f,o=g}if(!o.validate(m,r)){this.paramError(t);return}i[a||"value"]=o.coerce?o.coerce(m,r):r,a||(i.state="custom")}this.emit({type:"genart:param-change",__self:!0,param:this.asNestedParam(i),paramID:t,key:a},n)}randomizeParamValue(t,r,a=Math.random,n="all"){let{spec:i,impl:{randomize:o}}=this.ensureParam(t),m=o&&i.randomize!==!1;if(r){let{spec:f,impl:g}=this.ensureNestedParam(i,r),x=g.randomize&&f.randomize!==!1;x&&this.setParamValue(t,g.randomize(f,a),r,x||!m?n:"none")}m&&this.setParamValue(t,o(i,a),void 0,n)}getParamValue(t,r){return this.paramValueGetter(t)(r)}paramValueGetter(t){let{spec:r,impl:{randomize:a,read:n}}=this.ensureParam(t);return(i=0)=>{if(ne(i)){if(a)return a(r,i);i=0}return n?n(r,i):r.value??r.default}}paramError(t){this.emit({type:"genart:param-error",paramID:t})}configure(t){Object.assign(this._opts,t),this.notifyInfo()}on(t,r){w(k,"current env has no messaging support"),window.addEventListener("message",a=>{this.isRecipient(a)&&a.data?.type===t&&r(a.data)})}emit(t,r="all"){if(!k||r==="none")return;t.apiID=this.id;let a=r==="all";(a||r==="self")&&window.postMessage(t,"*"),(a&&parent!==window||r==="parent")&&parent.postMessage(t,"*")}start(t=!1){let r=this._state;if(r=="play")return;if(r!=="ready"&&r!=="stop")throw new Error(`can't start in state: ${r}`);this.setState("play");let a={type:"genart:frame",__self:!0,apiID:this.id,time:0,frame:0},n=(i,o)=>{this._state=="play"&&(this._update.call(null,i,o)?this._time.next(n):this.stop(),this._opts.notifyFrameUpdate&&(a.time=i,a.frame=o,this.emit(a)))};t||this._time.start(),this._time.next(n),this.emit({type:`genart:${t?"resume":"start"}`,__self:!0})}stop(){this._state==="play"&&(this.setState("stop"),this.emit({type:"genart:stop",__self:!0}))}capture(t){this._adapter?.capture(t),this.emit({type:"genart:capture",__self:!0},"parent")}setState(t,r){this._state=t,this.emit({type:"genart:state-change",__self:!0,state:t,info:r})}ensureParam(t){st(t);let r=w(w(this._params,"no params defined")[t],`unknown param: ${t}`);return{spec:r,impl:this.ensureParamImpl(r.type)}}ensureParamImpl(t){return nt(t),w(this._paramTypes[t],`unknown param type: ${t}`)}ensureNestedParam(t,r){let a=w(this.ensureParamImpl(t.type).params?.[r],`param type '${t.type}' has no nested: ${r}`);return{spec:a,impl:this.ensureParamImpl(a.type)}}waitFor(t){return this[t]?Promise.resolve():new Promise(r=>{let a=()=>{this[t]?r():setTimeout(a,0)};a()})}notifySetParams(){this._params&&Object.keys(this._params).length&&this.emit({type:"genart:params",__self:!0,params:this.asNestedParams({},this._params)})}notifyReady(){this._state==="init"&&this._adapter&&this._time&&this._update&&this.setState("ready")}notifyInfo(){let[t,r]=this._time.now(),{id:a,collector:n,iteration:i}=this._adapter??{};this.emit({type:"genart:info",opts:this._opts,state:this._state,version:this.version,seed:this.random.seed,adapter:a,collector:n,iteration:i,time:t,frame:r})}isRecipient({data:t}){return t!=null&&typeof t=="object"&&(t.apiID===this.id||t.apiID==="*")}asNestedParams(t,r){for(let a in r)t[a]=this.asNestedParam(r[a]);return t}asNestedParam(t){let r={...t},a=this._paramTypes[t.type];return a.params&&(r.__params=this.asNestedParams({},a.params)),r}},st=(e,t="ID")=>w(!(e==="__proto__"||e==="prototype"||e==="constructor"),`illegal param ${t}: ${e}`),nt=e=>st(e,"type");globalThis.$genart=new it;})(); +"use strict";(()=>{var Lt=Object.defineProperty;var L=(e,t)=>{for(var r in t)Lt(e,r,{get:t[r],enumerable:!0})};var W={};L(W,{clamp:()=>_,clamp01:()=>R,div:()=>B,easeInOut5:()=>K,fit:()=>G,mix:()=>T,norm:()=>M,parseNum:()=>$,round:()=>I,smoothstep:()=>Bt,smoothstep01:()=>v});var $=(e,t=0)=>{let r=e?parseFloat(e):Number.NaN;return isNaN(r)?t:r},T=(e,t,r)=>e+(t-e)*r,G=(e,t,r,a,n)=>a+(n-a)*M(e,t,r),_=(e,t,r)=>er?r:e,R=e=>e<0?0:e>1?1:e,I=(e,t)=>Math.round(B(e,t))*t,M=(e,t,r)=>B(e-t,r-t),B=(e,t)=>t!=0?e/t:0,Bt=(e,t,r)=>v(R(B(r-e,t-e))),v=e=>e*e*(3-2*e),vt=e=>{let t=2**(e-1);return r=>r<.5?t*r**e:1-(-2*r+2)**e/2},K=vt(5);var tt={};L(tt,{PARAM_DEFAULTS:()=>ct,bigint:()=>Ut,binary:()=>kt,choice:()=>Z,color:()=>$t,date:()=>Gt,datetime:()=>Kt,image:()=>Wt,numlist:()=>Q,ramp:()=>Xt,range:()=>qt,strlist:()=>Ht,text:()=>Yt,time:()=>Jt,toggle:()=>Zt,vector:()=>Qt,weighted:()=>te,xy:()=>ee});var D={};L(D,{ensure:()=>y,equiv:()=>J,equivArrayLike:()=>lt,equivObject:()=>dt,formatValuePrec:()=>Vt,hashBytes:()=>ft,hashString:()=>Dt,isBigInt:()=>V,isFunction:()=>q,isInRange:()=>c,isNumber:()=>u,isNumericArray:()=>h,isPrim:()=>X,isString:()=>p,isStringArray:()=>H,isTypedArray:()=>S,parseBigInt:()=>E,parseBigInt128:()=>mt,parseUUID:()=>Et,stringifyBigInt:()=>jt,stringifyJSON:()=>zt,u16:()=>z,u24:()=>Y,u32:()=>Ft,u8:()=>j,valuePrec:()=>pt});var F=0xfffffffffn,A=Math.imul,ot=Object.getPrototypeOf({}),y=(e,t)=>{if(!e)throw new Error(t);return e},V=e=>typeof e=="bigint",u=e=>typeof e=="number"&&!isNaN(e),p=e=>typeof e=="string",X=e=>{let t=typeof e;return t==="bigint"||t==="boolean"||t==="number"||t==="string"||t==="symbol"},q=e=>typeof e=="function",h=e=>S(e)||Array.isArray(e)&&e.every(u),H=e=>Array.isArray(e)&&e.every(p),S=e=>!!e&&(e instanceof Float32Array||e instanceof Float64Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint8ClampedArray),c=(e,t,r)=>e>=t&&e<=r,j=e=>(e&=255,(e<16?"0":"")+e.toString(16)),z=e=>j(e>>>8)+j(e),Y=e=>z(e>>>8)+j(e&255),Ft=e=>z(e>>>16)+z(e),jt=(e,t=10)=>{let r={10:"",2:"0b",8:"0o",16:"0x"}[t];return e<0n?"-"+r+(-e).toString(t):r+e.toString(t)},E=e=>/^-0[box]/.test(e)?-BigInt(e.substring(1)):BigInt(e),mt=e=>new Uint32Array([Number(e>>96n&F),Number(e>>64n&F),Number(e>>32n&F),Number(e&F)]),zt=e=>JSON.stringify(e,(t,r)=>V(r)?r.toString():S(r)?[...r]:r,4),pt=e=>{let t=e.toString(),r=t.indexOf(".");return r>0?t.length-r-1:0},Vt=e=>{let t=pt(e);return r=>r.toFixed(t)},J=(e,t)=>{let r;return e===t?!0:e==null?t==null:t==null?e==null:X(e)||X(t)||q(e)||q(t)?e===t||e!==e&&t!==t:e.length!=null&&t.length!=null?lt(e,t):(r=Object.getPrototypeOf(e),(r==null||r===ot)&&(r=Object.getPrototypeOf(t),r==null||r===ot)?dt(e,t):e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():e instanceof RegExp&&t instanceof RegExp?e.toString()===t.toString():e===t)},dt=(e,t)=>{if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(!(t.hasOwnProperty(r)&&J(e[r],t[r])))return!1;return!0},lt=(e,t)=>{if(e.length!==t.length)return!1;let r=e.length;for(;r-- >0&&J(e[r],t[r]););return r<0},Et=e=>mt(BigInt("0x"+e.replace(/-/g,"").substring(0,32))),ft=(e,t=0)=>{let r=s=>e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],a=(s,d)=>s<>>32-d,n=(s,d)=>{let P=d+1&3;x[d]=A(a(x[d]^A(a(A(r(s),g[d]),15+d),g[P]),19-(d<<1))+x[P],5)+f[d]},i=s=>{let d=s[0]+=s[1]+s[2]+s[3];return s[1]+=d,s[2]+=d,s[3]+=d,s},o=s=>(s^=s>>>16,s=A(s,2246822507),s^=s>>>13,s=A(s,3266489909),s^=s>>>16),m=e.length,f=new Uint32Array([1444728091,197830471,2530024501,850148119]),g=new Uint32Array([597399067,2869860233,951274213,2716044179]),x=g.map(s=>s^t),b=0;for(let s=m&-16;b0;s--){let d=s-1;if((s&3)===1){let P=s>>2;f[P]=a(A(f[P]^e[b+d],g[P]),15+P),x[P]^=A(f[P],g[P+1&3])}else f[d>>2]^=e[b+d]<<(d<<3)}return i(i(x.map(s=>s^m)).map(o))},Dt=(e,t)=>ft(new TextEncoder().encode(e),t);var Ot=/^\d{4}-\d{2}-\d{2}$/,O={validate:(e,t)=>t instanceof Date||u(t)||p(t)&&Ot.test(t),coerce:(e,t)=>u(t)?new Date(t):p(t)?new Date(Date.parse(t)):t};var Ct=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|[-+]\d{2}:\d{2})$/,C={validate:(e,t)=>t instanceof Date||u(t)||p(t)&&Ct.test(t),coerce:(e,t)=>u(t)?new Date(t):p(t)?new Date(Date.parse(t)):t};var N={validate:(e,t)=>h(t)&&t.length===3&&c(t[0],0,23)&&c(t[1],0,59)&&c(t[2],0,59)||p(t)&&/^([01]\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(t),coerce:(e,t)=>p(t)?t.split(":").map($):t,randomize:(e,t)=>[t()*24|0,t()*60|0,t()*60|0]};var U={validate:(e,t)=>{let{min:r,max:a,size:n}=e;return h(t)&&t.length===n&&t.every((i,o)=>c(i,r[o],a[o]))},coerce:(e,t)=>{let{min:r,max:a,step:n}=e;return t.map((i,o)=>_(I(i,n[o]),r[o],a[o]))},randomize:(e,t)=>{let{min:r,max:a,size:n,step:i}=e;return new Array(n).fill(0).map((o,m)=>_(I(T(r[m],a[m],t()),i[m]),r[m],a[m]))}};var ct={desc:"TODO description",edit:"protected",group:"main",order:0,randomize:!0,state:"void",update:"event",widget:"default"},l=(e,t,r=!0)=>(y(t.name,"missing param `name`"),{...ct,type:e,randomize:r,...t}),gt=(e,t)=>t!=null?y(e.validate(null,t),`invalid default value: ${t}`)&&e.coerce(null,t):t,ut=(e,t=10)=>{let r=0,a=e.maxLength||t;return e.minLength&&(r=e.minLength,e.maxLength||(a=Math.max(r,t))),y(r<=a,"invalid list length constraint"),[r,a]},Ut=e=>l("bigint",{min:0n,max:0xffffffffffffffffn,...e}),kt=e=>l("binary",{minLength:0,maxLength:1024,...e},!1),Z=e=>l("choice",e),$t=e=>l("color",e),Gt=e=>l("date",{...e,default:gt(O,e.default)},!1),Kt=e=>l("datetime",{...e,default:gt(C,e.default)},!1),Wt=e=>l("image",{default:e.default||new(e.format==="gray"?Uint8Array:Uint32Array)(e.width*e.height),...e},!1),Q=e=>{let[t,r]=ut(e,10);return l("numlist",{default:e.default||new Array(t).fill(0),minLength:t,maxLength:r,...e},!1)},Xt=e=>l("ramp",{...e,stops:e.stops?e.stops.flat():[0,0,1,1],mode:e.mode||"linear",default:0},!1),qt=e=>l("range",{min:0,max:100,step:1,...e}),Ht=e=>{let[t,r]=ut(e,10);return l("strlist",{default:e.default||new Array(t).fill(""),minLength:t,maxLength:r,...e},!1)},Yt=e=>l("text",{minLength:0,maxLength:32,multiline:!1,...e},!1),Jt=e=>l("time",{...e,default:e.default!=null?y(N.validate(null,e.default),"")&&N.coerce(null,e.default):e.default}),Zt=e=>l("toggle",e),Qt=e=>{e.labels?y(e.labels.length>=e.size,`expected ${e.size} labels`):y(e.size<=4,"missing vector labels");let t=(a,n,i=0)=>Array.isArray(n)?(y(n.length===a,"wrong vector size"),n):new Array(a).fill(u(n)?n:i),r={min:t(e.size,e.min,0),max:t(e.size,e.max,1),step:t(e.size,e.step,.01)};return l("vector",{...e,...r,default:e.default?y(e.default.length==e.size,`wrong vector size, expected ${e.size} values`)&&U.coerce(r,e.default):e.default,labels:e.labels||["X","Y","Z","W"].slice(0,e.size)})},te=e=>l("weighted",{...e,options:e.options.sort((t,r)=>r[0]-t[0]),total:e.options.reduce((t,r)=>t+r[0],0)}),ee=e=>l("xy",e);var rt={};L(rt,{defPRNG:()=>ae,randomBigInt:()=>et,sfc32:()=>re});var re=e=>{let t=new Uint32Array(4);return t.set(e),()=>{let r=(t[0]+t[1]>>>0)+t[3]>>>0;return t[3]=t[3]+1>>>0,t[0]=t[1]^t[1]>>>9,t[1]=t[2]+(t[2]<<3)>>>0,t[2]=(t[2]<<21|t[2]>>>11)+r>>>0,r/4294967296}},et=(e,t=Math.random)=>{let r=0n;for(let a=Math.log2(Number(e))+31>>5;a-- >0;)r=r<<32n|BigInt(t()*4294967296>>>0);return r%e},ae=(e,t,r)=>{let a=()=>r(t);return{seed:e,reset:a,rnd:a()}};var Pt={validate:(e,t)=>{let{min:r,max:a}=e;if(p(t)){if(!/^-?([0-9]+|0x[0-9a-f]+|0b[01]+|0o[0-7]+)$/.test(t))return!1;t=E(t)}else if(u(t)||V(t))t=BigInt(t);else return!1;return t>=r&&t<=a},coerce:(e,t)=>p(t)?E(t):BigInt(t),randomize:(e,t)=>{let{min:r,max:a}=e;return r+et(a-r,t)}};var yt={validate:(e,t)=>{let{minLength:r,maxLength:a}=e;return t instanceof Uint8Array&&t.length>=r&&t.length<=a}};var ht={validate:(e,t)=>!!e.options.find(r=>(p(r)?r:r[0])===t),randomize:(e,t)=>{let r=e.options,a=r[t()*r.length|0];return p(a)?a:a[0]}};var xt={validate:(e,t)=>p(t)&&/^#?[0-9a-f]{6,8}$/i.test(t),coerce:(e,t)=>(t[0]!=="#"?"#"+t:t).substring(0,7),randomize:(e,t)=>"#"+Y(t()*16777216|0)};var bt={validate:(e,t)=>{let{width:r,height:a,format:n}=e;return S(t)&&t.length==r*a&&(n==="gray"?t instanceof Uint8Array||t instanceof Uint8ClampedArray:t instanceof Uint32Array)}};var Tt={validate:(e,t)=>{let{minLength:r,maxLength:a}=e;return h(t)&&c(t.length,r,a)}};var _t={validate:()=>!1,read:(e,t)=>{let{stops:r,mode:a}=e,n=r.length,i=n;for(;(i-=2)>=0&&!(t>=r[i]););n-=2;let o=r[i],m=r[i+1],f=r[i+2],g=r[i+3];return i<0?r[1]:i>=n?r[n+1]:{exp:()=>T(m,g,K(M(t,o,f))),linear:()=>G(t,o,f,m,g),smooth:()=>T(m,g,v(M(t,o,f)))}[a||"linear"]()},params:{stops:Q({name:"Ramp stops",desc:"Control points",minLength:4,maxLength:1/0,default:[]}),mode:Z({name:"Ramp mode",desc:"Interpolation method",options:["linear","smooth","exp"]})}};var It={validate:(e,t)=>{let{min:r,max:a}=e;return u(t)&&c(t,r,a)},coerce:(e,t)=>{let r=e;return _(I(t??r.default,r.step||1),r.min,r.max)},randomize:(e,t)=>{let{min:r,max:a,step:n}=e;return _(I(T(r,a,t()),n||1),r,a)}};var At={validate:(e,t)=>{let{minLength:r,maxLength:a,match:n}=e;if(!(H(t)&&c(t.length,r,a)))return!1;if(n){let i=p(n)?new RegExp(n):n;return t.every(o=>i.test(o))}return!0}};var wt={validate:(e,t)=>{if(!p(t))return!1;let{minLength:r,maxLength:a,match:n}=e;return n&&!(p(n)?new RegExp(n):n).test(t)?!1:c(t.length,r,a)}};var Rt={validate:(e,t)=>p(t)?/^(true|false|0|1)$/.test(t):t===1||t===0||typeof t=="boolean",coerce:(e,t)=>t==="true"||t==="1"?!0:t==="false"||t==="0"?!1:!!t,randomize:(e,t)=>t()<.5};var Mt={validate:(e,t)=>!!e.options.find(r=>r[1]===t),randomize:(e,t)=>{let{options:r,total:a,default:n}=e,i=t()*a;for(let o=0,m=r.length;oh(t)&&t.length==2,coerce:(e,t)=>[R(t[0]),R(t[1])],randomize:(e,t)=>[t(),t()]};var Nt=(e=250,t=60,r=0)=>{let a=r,n=1e3/t;return{start(){a=r-1},next(i){setTimeout(()=>{a++,i(a*n,a)},e)},now:()=>[a*n,a]}};var at=(e=0,t=0)=>{let r=performance.now(),a=t,n=e,i=!0;return{start(){i=!0},next(o){requestAnimationFrame(m=>{i?(r=m,a=t,i=!1):a++,n=e+m-r,o(n,a)})},now:()=>[n,a]}};var{ensure:w,isFunction:ne}=D,k=typeof window<"u",it=class{_opts={id:Math.floor(Math.random()*1e12).toString(36),allowExternalConfig:!1,notifyFrameUpdate:!1};_adapter;_time=at();_prng;_update;_state="init";_traits;_params;_paramTypes={bigint:Pt,binary:yt,choice:ht,color:xt,date:O,datetime:C,image:bt,numlist:Tt,ramp:_t,range:It,strlist:At,text:wt,time:N,toggle:Rt,vector:U,weighted:Mt,xy:St};math=W;params=tt;prng=rt;utils=D;time={offline:Nt,raf:at};constructor(){k&&window.addEventListener("message",t=>{let r=t.data;if(!(!this.isRecipient(t)||r?.__self))switch(r.type){case"genart:get-info":this.notifyInfo();break;case"genart:randomize-param":this.randomizeParamValue(r.paramID,r.key);break;case"genart:resume":this.start(!0);break;case"genart:configure":{if(!this._opts.allowExternalConfig)return;let a=r.opts;delete a.id,delete a.allowExternalConfig,this.configure(a);break}case"genart:set-param-value":this.setParamValue(r.paramID,r.value,r.key);break;case"genart:start":this.start();break;case"genart:stop":this.stop();break}})}get version(){return"0.25.0"}get id(){return this._opts.id}get mode(){return this._adapter?.mode||"play"}get collector(){return this._adapter?.collector}get iteration(){return this._adapter?.iteration}get screen(){return this._adapter?.screen||(k?{width:window.innerWidth,height:window.innerHeight,dpr:window.devicePixelRatio||1}:{width:640,height:640,dpr:1})}get random(){return this._prng?this._prng:this._prng=w(this._adapter,"missing platform adapter").prng}get state(){return this._state}get paramSpecs(){return this._params}get adapter(){return this._adapter}get timeProvider(){return this._time}registerParamType(t,r){nt(t),this._paramTypes[t]&&console.warn("overriding impl for param type:",t),this._paramTypes[t]=r}paramType(t){return nt(t),this._paramTypes[t]}async setParams(t){try{this._adapter?.augmentParams&&(t=this._adapter.augmentParams(t)),this._params={};for(let r in t){st(r);let a={...t.PARAM_DEFAULTS,...t[r]},n=this.ensureParamImpl(a.type);if(a.default==null)if(n.randomize)a.default=n.randomize(a,this.random.rnd),a.state="random";else if(n.read)a.state="dynamic";else throw new Error(`missing default value for param: ${r}`);else{if(!(n.read||n.validate(a,a.default)))throw new Error(`invalid default value for param: ${r} (${a.default})`);a.state="default"}this._params[r]=a}return this._adapter&&(this._adapter.initParams&&await this._adapter.initParams(this._params),await this.updateParams()),this.notifySetParams(),this.getParamValue.bind(this)}catch(r){throw this.setState("error",r.message),r}}setTraits(t){this._traits=t,this.emit({type:"genart:traits",traits:t})}setAdapter(t){this._adapter=t,this.notifyReady()}waitForAdapter(){return this.waitFor("_adapter")}setTimeProvider(t){this._time=t,this.notifyReady()}waitForTimeProvider(){return this.waitFor("_time")}setUpdate(t){this._update=t,this.notifyReady()}async updateParams(t="none"){if(this._adapter)for(let r in this._params){let a=this._params[r],n=await this._adapter.updateParam(r,a);if(!n)continue;let{value:i,update:o}=n;if(o)for(let m in o)this.setParamValue(r,o[m],m,"none");this.setParamValue(r,i,void 0,i!=null||o?t:"none")}}setParamValue(t,r,a,n="all"){let{spec:i,impl:o}=this.ensureParam(t);if(r!=null){let m=i;if(a){let{spec:f,impl:g}=this.ensureNestedParam(i,a);m=f,o=g}if(!o.validate(m,r)){this.paramError(t);return}i[a||"value"]=o.coerce?o.coerce(m,r):r,a||(i.state="custom")}this.emit({type:"genart:param-change",__self:!0,param:this.asNestedParam(i),paramID:t,key:a},n)}randomizeParamValue(t,r,a=Math.random,n="all"){let{spec:i,impl:{randomize:o}}=this.ensureParam(t),m=o&&i.randomize!==!1;if(r){let{spec:f,impl:g}=this.ensureNestedParam(i,r),x=g.randomize&&f.randomize!==!1;x&&this.setParamValue(t,g.randomize(f,a),r,x||!m?n:"none")}m&&this.setParamValue(t,o(i,a),void 0,n)}getParamValue(t,r){return this.paramValueGetter(t)(r)}paramValueGetter(t){let{spec:r,impl:{randomize:a,read:n}}=this.ensureParam(t);return(i=0)=>{if(ne(i)){if(a)return a(r,i);i=0}return n?n(r,i):r.value??r.default}}paramError(t){this.emit({type:"genart:param-error",paramID:t})}configure(t){Object.assign(this._opts,t),this.notifyInfo()}on(t,r){w(k,"current env has no messaging support"),window.addEventListener("message",a=>{this.isRecipient(a)&&a.data?.type===t&&r(a.data)})}emit(t,r="all"){if(!k||r==="none")return;t.apiID=this.id;let a=r==="all";(a||r==="self")&&window.postMessage(t,"*"),(a&&parent!==window||r==="parent")&&parent.postMessage(t,"*")}start(t=!1){let r=this._state;if(r=="play")return;if(r!=="ready"&&r!=="stop")throw new Error(`can't start in state: ${r}`);this.setState("play");let a={type:"genart:frame",__self:!0,apiID:this.id,time:0,frame:0},n=(i,o)=>{this._state=="play"&&(this._update.call(null,i,o)?this._time.next(n):this.stop(),this._opts.notifyFrameUpdate&&(a.time=i,a.frame=o,this.emit(a)))};t||this._time.start(),this._time.next(n),this.emit({type:`genart:${t?"resume":"start"}`,__self:!0})}stop(){this._state==="play"&&(this.setState("stop"),this.emit({type:"genart:stop",__self:!0}))}capture(t){this._adapter?.capture(t),this.emit({type:"genart:capture",__self:!0},"parent")}setState(t,r){this._state=t,this.emit({type:"genart:state-change",__self:!0,state:t,info:r})}ensureParam(t){st(t);let r=w(w(this._params,"no params defined")[t],`unknown param: ${t}`);return{spec:r,impl:this.ensureParamImpl(r.type)}}ensureParamImpl(t){return nt(t),w(this._paramTypes[t],`unknown param type: ${t}`)}ensureNestedParam(t,r){let a=w(this.ensureParamImpl(t.type).params?.[r],`param type '${t.type}' has no nested: ${r}`);return{spec:a,impl:this.ensureParamImpl(a.type)}}waitFor(t){return this[t]?Promise.resolve():new Promise(r=>{let a=()=>{this[t]?r():setTimeout(a,0)};a()})}notifySetParams(){this._params&&Object.keys(this._params).length&&this.emit({type:"genart:params",__self:!0,params:this.asNestedParams({},this._params)})}notifyReady(){this._state==="init"&&this._adapter&&this._time&&this._update&&this.setState("ready")}notifyInfo(){let[t,r]=this._time.now(),{id:a,collector:n,iteration:i}=this._adapter??{};this.emit({type:"genart:info",opts:this._opts,state:this._state,version:this.version,seed:this.random.seed,adapter:a,collector:n,iteration:i,time:t,frame:r})}isRecipient({data:t}){return t!=null&&typeof t=="object"&&(t.apiID===this.id||t.apiID==="*")}asNestedParams(t,r){for(let a in r)t[a]=this.asNestedParam(r[a]);return t}asNestedParam(t){let r={...t},a=this._paramTypes[t.type];return a.params&&(r.__params=this.asNestedParams({},a.params)),r}},st=(e,t="ID")=>w(!(e==="__proto__"||e==="prototype"||e==="constructor"),`illegal param ${t}: ${e}`),nt=e=>st(e,"type");globalThis.$genart=new it;})(); diff --git a/packages/adapter-editart/package.json b/packages/adapter-editart/package.json index 8aede7c..f35ba99 100644 --- a/packages/adapter-editart/package.json +++ b/packages/adapter-editart/package.json @@ -1,6 +1,6 @@ { "name": "@genart-api/adapter-editart", - "version": "0.24.0", + "version": "0.25.0", "description": "GenArtAPI platform adapter for editart.xyz", "repository": { "type": "git", diff --git a/packages/adapter-fxhash/package.json b/packages/adapter-fxhash/package.json index da8250a..c5c4f50 100644 --- a/packages/adapter-fxhash/package.json +++ b/packages/adapter-fxhash/package.json @@ -1,6 +1,6 @@ { "name": "@genart-api/adapter-fxhash", - "version": "0.24.0", + "version": "0.25.0", "description": "GenArtAPI platform adapter for fxhash.xyz", "repository": { "type": "git", diff --git a/packages/adapter-layer/package.json b/packages/adapter-layer/package.json index 65ded62..f467192 100644 --- a/packages/adapter-layer/package.json +++ b/packages/adapter-layer/package.json @@ -1,6 +1,6 @@ { "name": "@genart-api/adapter-layer", - "version": "0.24.0", + "version": "0.25.0", "description": "GenArtAPI platform adapter for layer.com", "repository": { "type": "git", diff --git a/packages/adapter-urlparams/package.json b/packages/adapter-urlparams/package.json index 4719cea..5cd0c41 100644 --- a/packages/adapter-urlparams/package.json +++ b/packages/adapter-urlparams/package.json @@ -1,6 +1,6 @@ { "name": "@genart-api/adapter-urlparams", - "version": "0.24.0", + "version": "0.25.0", "description": "GenArtAPI reference platform adapter, using URL search params for artwork parameter configuration & serialization", "repository": { "type": "git", diff --git a/packages/core/package.json b/packages/core/package.json index 7349f4e..cd31d07 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@genart-api/core", - "version": "0.24.0", + "version": "0.25.0", "description": "Platform-independent extensible API for browser-based generative art", "repository": { "type": "git", diff --git a/packages/time-fps-overlay/package.json b/packages/time-fps-overlay/package.json index 266d7ad..554e102 100644 --- a/packages/time-fps-overlay/package.json +++ b/packages/time-fps-overlay/package.json @@ -1,6 +1,6 @@ { "name": "@genart-api/time-fps-overlay", - "version": "0.24.0", + "version": "0.25.0", "description": "GenArtAPI time provider with FPS overlay", "repository": { "type": "git", diff --git a/packages/wasm/package.json b/packages/wasm/package.json index d04f2d3..71cc800 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -17,7 +17,7 @@ "build:esbuild": "esbuild --format=esm --platform=neutral --target=es2022 --tsconfig=tsconfig.json --outdir=. src/**/*.ts", "build:bindings": "npx wasm-api-bindgen --config src/typedefs-config.json --lang ts -o src/generated/api.ts --lang zig -o zig/api.zig src/typedefs.json", "clean": "bun ../../tools/clean-package.js generated", - "doc": "typedoc src/api.ts", + "doc": "typedoc", "publish": "yarn npm publish --access public", "test": "bun test" }, diff --git a/packages/wasm/typedoc.json b/packages/wasm/typedoc.json index 047f8ea..df822e6 100644 --- a/packages/wasm/typedoc.json +++ b/packages/wasm/typedoc.json @@ -3,5 +3,14 @@ "excludePrivate": true, "excludeInternal": true, "out": "doc", - "entryPoints": ["src/index.ts"] + "entryPoints": ["src/index.ts"], + "highlightLanguages": [ + "bash", + "c", + "html", + "javascript", + "json", + "typescript", + "zig" + ] } diff --git a/project-template/package.json b/project-template/package.json index 30f8e53..8f60f32 100644 --- a/project-template/package.json +++ b/project-template/package.json @@ -18,7 +18,7 @@ "vite-plugin-html": "^3.2.2" }, "dependencies": { - "@genart-api/core": "^0.24.0", - "@genart-api/adpater-urlparams": "^0.24.0" + "@genart-api/core": "^0.25.0", + "@genart-api/adpater-urlparams": "^0.25.0" } } \ No newline at end of file