@stacksjs/cms 0.70.23

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 ADDED
@@ -0,0 +1,59 @@
1
+ # Stacks CMS
2
+
3
+ wip
4
+
5
+ ## โ˜˜๏ธ Features
6
+
7
+ wip
8
+
9
+ - โšก๏ธ
10
+
11
+ wip
12
+
13
+ ## ๐Ÿค– Usage
14
+
15
+ wip
16
+
17
+ ```bash
18
+ bun install -d @stacksjs/cms
19
+ ```
20
+
21
+ Now, you can use it in your project:
22
+
23
+ ```js
24
+ import * as cms from '@stacksjs/cms'
25
+
26
+ // wip
27
+ ```
28
+
29
+ Learn more in the docs.
30
+
31
+ ## ๐Ÿงช Testing
32
+
33
+ ```bash
34
+ bun test
35
+ ```
36
+
37
+ ## ๐Ÿ“ˆ Changelog
38
+
39
+ Please see our [releases](https://github.com/stacksjs/stacks/releases) page for more information on what has changed recently.
40
+
41
+ ## ๐Ÿšœ Contributing
42
+
43
+ Please review the [Contributing Guide](https://github.com/stacksjs/contributing) for details.
44
+
45
+ ## ๐Ÿ Community
46
+
47
+ For help, discussion about best practices, or any other conversation that would benefit from being searchable:
48
+
49
+ [Discussions on GitHub](https://github.com/stacksjs/stacks/discussions)
50
+
51
+ For casual chit-chat with others using this package:
52
+
53
+ [Join the Stacks Discord Server](https://discord.gg/stacksjs)
54
+
55
+ ## ๐Ÿ“„ License
56
+
57
+ The MIT License (MIT). Please see [LICENSE](https://github.com/stacksjs/stacks/tree/main/LICENSE.md) for more information.
58
+
59
+ Made with ๐Ÿ’™
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ // @bun
2
+ var T0=Object.defineProperty;var _0=(G)=>G;function w0(G,Z){this[G]=_0.bind(null,Z)}var u=(G,Z)=>{for(var Q in Z)T0(G,Q,{get:Z[Q],enumerable:!0,configurable:!0,set:w0.bind(Z,Q)})};var f0=import.meta.require;var XB={};u(XB,{update:()=>aB,store:()=>iB,findOrCreate:()=>oB,findByUuid:()=>sB,findByUserId:()=>nB,findByName:()=>lB,findByEmail:()=>uB,fetchById:()=>pB,fetchAll:()=>gB,destroy:()=>bB});var hB;async function z(){return hB??=import("@stacksjs/database").then((G)=>G.db),hB}async function bB(G){let Z=await z();try{let Q=await Z.deleteFrom("authors").where("id","=",G).returningAll().executeTakeFirst();if(!Q)throw Error(`Author with ID ${G} not found`);return Q}catch(Q){if(Q instanceof Error)throw TypeError(`Author with ID ${G} not found`);throw Q}}async function pB(G){return await(await z()).selectFrom("authors").where("id","=",G).selectAll().executeTakeFirst()}async function gB(){return await(await z()).selectFrom("authors").selectAll().execute()}async function lB(G){return await(await z()).selectFrom("authors").where("name","=",G).selectAll().executeTakeFirst()}async function uB(G){return await(await z()).selectFrom("authors").where("email","=",G).selectAll().executeTakeFirst()}async function sB(G){return await(await z()).selectFrom("authors").where("uuid","=",G).selectAll().executeTakeFirst()}async function nB(G){return await(await z()).selectFrom("authors").where("user_id","=",G).selectAll().executeTakeFirst()}var{randomUUIDv7:dB}=globalThis.Bun;import{formatDate as s}from"@stacksjs/orm";async function oB(G){let Z=await z();try{let Q=await Z.selectFrom("authors").where((O)=>O.or([O("email","=",G.email),O("name","=",G.name)])).selectAll().executeTakeFirst();if(Q)return Q;let J=await Z.selectFrom("users").where("email","=",G.email).selectAll().executeTakeFirst();if(!J){let O=await Z.insertInto("users").values({email:G.email,name:G.name,password:dB(),uuid:dB(),created_at:s(new Date),updated_at:s(new Date)}).returningAll().executeTakeFirst();if(!O)throw Error("Failed to create user");J=O}let Y={user_id:J.id,name:G.name,email:G.email,created_at:s(new Date),updated_at:s(new Date)},V=await Z.insertInto("authors").values(Y).returningAll().executeTakeFirst();if(!V)throw Error("Failed to create author");return V}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to find or create author: ${Q.message}`);throw Q}}async function iB(G){let Z=await z();try{let Q=await Z.selectFrom("authors").where((V)=>V.or([V("email","=",G.email),V("name","=",G.name)])).selectAll().executeTakeFirst();if(Q)return Q;let J={user_id:G.user_id,name:G.name,email:G.email,created_at:s(new Date),updated_at:s(new Date)},Y=await Z.insertInto("authors").values(J).returningAll().executeTakeFirst();if(!Y)throw Error("Failed to create author");return Y}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to find or create author: ${Q.message}`);throw Q}}import{formatDate as y0}from"@stacksjs/orm";async function aB(G,Z){let Q=await z();try{let J={...Z,updated_at:y0(new Date)};return await Q.updateTable("authors").set(J).where("id","=",G).returningAll().executeTakeFirst()}catch(J){if(J instanceof Error)throw TypeError(`Failed to update author: ${J.message}`);throw J}}var UB={};u(UB,{update:()=>NP,storeCategorizableModel:()=>xP,store:()=>UP,fetchWithPosts:()=>AP,fetchBySlug:()=>LP,fetchByName:()=>EP,fetchById:()=>BB,fetchAll:()=>KP,destroy:()=>CP,bulkStore:()=>FP,bulkDestroy:()=>jP});var{defineProperty:VB,getOwnPropertyNames:D0,getOwnPropertyDescriptor:c0}=Object,m0=Object.prototype.hasOwnProperty,eB=new WeakMap,h0=(G)=>{var Z=eB.get(G),Q;if(Z)return Z;if(Z=VB({},"__esModule",{value:!0}),G&&typeof G==="object"||typeof G==="function")D0(G).map((J)=>!m0.call(Z,J)&&VB(Z,J,{get:()=>G[J],enumerable:!(Q=c0(G,J))||Q.enumerable}));return eB.set(G,Z),Z},b0=(G,Z)=>{for(var Q in Z)VB(G,Q,{get:Z[Q],enumerable:!0,configurable:!0,set:(J)=>Z[Q]=()=>J})},p0=(G,Z)=>()=>(G&&(Z=G(G=0)),Z),BP={};b0(BP,{transcode:()=>MP,resolveObjectURL:()=>PP,kStringMaxLength:()=>o,kMaxLength:()=>XP,isUtf8:()=>YP,isAscii:()=>JP,default:()=>zP,createObjectURL:()=>CB,constants:()=>jB,btoa:()=>AB,atob:()=>LB,File:()=>EB,Buffer:()=>$P,Blob:()=>KB});function PP(G){throw Error("Not implemented")}function MP(G,Z,Q){throw Error("Not implemented")}var GP,r,QP,ZP,HP,WP,JB=(G,Z)=>()=>(Z||G((Z={exports:{}}).exports,Z),Z.exports),g0=(G,Z)=>{for(var Q in Z)r(G,Q,{get:Z[Q],enumerable:!0})},OB=(G,Z,Q,J)=>{if(Z&&typeof Z=="object"||typeof Z=="function")for(let Y of ZP(Z))!WP.call(G,Y)&&Y!==Q&&r(G,Y,{get:()=>Z[Y],enumerable:!(J=QP(Z,Y))||J.enumerable});return G},l0=(G,Z,Q)=>(OB(G,Z,"default"),Q&&OB(Q,Z,"default")),YB=(G,Z,Q)=>(Q=G!=null?GP(HP(G)):{},OB(Z||!G||!G.__esModule?r(Q,"default",{value:G,enumerable:!0}):Q,G)),tB,rB,a,$B,zB,SB,o,XP=9007199254740991,KB,EB,LB,AB,CB,JP=(G)=>ArrayBuffer.isView(G)?G.every((Z)=>Z<128):G.split("").every((Z)=>Z.charCodeAt(0)<128),YP=(G)=>{throw Error("Not implemented")},jB,$P,zP,u0=p0(()=>{GP=Object.create,r=Object.defineProperty,QP=Object.getOwnPropertyDescriptor,ZP=Object.getOwnPropertyNames,HP=Object.getPrototypeOf,WP=Object.prototype.hasOwnProperty,tB=JB((G)=>{G.byteLength=L,G.toByteArray=C,G.fromByteArray=w;var Z=[],Q=[],J=typeof Uint8Array<"u"?Uint8Array:Array,Y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(V=0,O=Y.length;V<O;++V)Z[V]=Y[V],Q[Y.charCodeAt(V)]=V;var V,O;Q[45]=62,Q[95]=63;function W(K){var A=K.length;if(A%4>0)throw Error("Invalid string. Length must be a multiple of 4");var F=K.indexOf("=");F===-1&&(F=A);var I=F===A?0:4-F%4;return[F,I]}function L(K){var A=W(K),F=A[0],I=A[1];return(F+I)*3/4-I}function E(K,A,F){return(A+F)*3/4-F}function C(K){var A,F=W(K),I=F[0],y=F[1],k=new J(E(K,I,y)),D=0,m=y>0?I-4:I,f;for(f=0;f<m;f+=4)A=Q[K.charCodeAt(f)]<<18|Q[K.charCodeAt(f+1)]<<12|Q[K.charCodeAt(f+2)]<<6|Q[K.charCodeAt(f+3)],k[D++]=A>>16&255,k[D++]=A>>8&255,k[D++]=A&255;return y===2&&(A=Q[K.charCodeAt(f)]<<2|Q[K.charCodeAt(f+1)]>>4,k[D++]=A&255),y===1&&(A=Q[K.charCodeAt(f)]<<10|Q[K.charCodeAt(f+1)]<<4|Q[K.charCodeAt(f+2)]>>2,k[D++]=A>>8&255,k[D++]=A&255),k}function x(K){return Z[K>>18&63]+Z[K>>12&63]+Z[K>>6&63]+Z[K&63]}function v(K,A,F){for(var I,y=[],k=A;k<F;k+=3)I=(K[k]<<16&16711680)+(K[k+1]<<8&65280)+(K[k+2]&255),y.push(x(I));return y.join("")}function w(K){for(var A,F=K.length,I=F%3,y=[],k=16383,D=0,m=F-I;D<m;D+=k)y.push(v(K,D,D+k>m?m:D+k));return I===1?(A=K[F-1],y.push(Z[A>>2]+Z[A<<4&63]+"==")):I===2&&(A=(K[F-2]<<8)+K[F-1],y.push(Z[A>>10]+Z[A>>4&63]+Z[A<<2&63]+"=")),y.join("")}}),rB=JB((G)=>{G.read=function(Z,Q,J,Y,V){var O,W,L=V*8-Y-1,E=(1<<L)-1,C=E>>1,x=-7,v=J?V-1:0,w=J?-1:1,K=Z[Q+v];for(v+=w,O=K&(1<<-x)-1,K>>=-x,x+=L;x>0;O=O*256+Z[Q+v],v+=w,x-=8);for(W=O&(1<<-x)-1,O>>=-x,x+=Y;x>0;W=W*256+Z[Q+v],v+=w,x-=8);if(O===0)O=1-C;else{if(O===E)return W?NaN:(K?-1:1)*(1/0);W=W+Math.pow(2,Y),O=O-C}return(K?-1:1)*W*Math.pow(2,O-Y)},G.write=function(Z,Q,J,Y,V,O){var W,L,E,C=O*8-V-1,x=(1<<C)-1,v=x>>1,w=V===23?Math.pow(2,-24)-Math.pow(2,-77):0,K=Y?0:O-1,A=Y?1:-1,F=Q<0||Q===0&&1/Q<0?1:0;for(Q=Math.abs(Q),isNaN(Q)||Q===1/0?(L=isNaN(Q)?1:0,W=x):(W=Math.floor(Math.log(Q)/Math.LN2),Q*(E=Math.pow(2,-W))<1&&(W--,E*=2),W+v>=1?Q+=w/E:Q+=w*Math.pow(2,1-v),Q*E>=2&&(W++,E/=2),W+v>=x?(L=0,W=x):W+v>=1?(L=(Q*E-1)*Math.pow(2,V),W=W+v):(L=Q*Math.pow(2,v-1)*Math.pow(2,V),W=0));V>=8;Z[J+K]=L&255,K+=A,L/=256,V-=8);for(W=W<<V|L,C+=V;C>0;Z[J+K]=W&255,K+=A,W/=256,C-=8);Z[J+K-A]|=F*128}}),a=JB((G)=>{var Z=tB(),Q=rB(),J=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;G.Buffer=W,G.SlowBuffer=y,G.INSPECT_MAX_BYTES=50;var Y=2147483647;G.kMaxLength=Y,W.TYPED_ARRAY_SUPPORT=V(),!W.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function V(){try{let B=new Uint8Array(1),P={foo:function(){return 42}};return Object.setPrototypeOf(P,Uint8Array.prototype),Object.setPrototypeOf(B,P),B.foo()===42}catch{return!1}}Object.defineProperty(W.prototype,"parent",{enumerable:!0,get:function(){if(W.isBuffer(this))return this.buffer}}),Object.defineProperty(W.prototype,"offset",{enumerable:!0,get:function(){if(W.isBuffer(this))return this.byteOffset}});function O(B){if(B>Y)throw RangeError('The value "'+B+'" is invalid for option "size"');let P=new Uint8Array(B);return Object.setPrototypeOf(P,W.prototype),P}function W(B,P,M){if(typeof B=="number"){if(typeof P=="string")throw TypeError('The "string" argument must be of type string. Received type number');return x(B)}return L(B,P,M)}W.poolSize=8192;function L(B,P,M){if(typeof B=="string")return v(B,P);if(ArrayBuffer.isView(B))return K(B);if(B==null)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof B);if(h(B,ArrayBuffer)||B&&h(B.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(h(B,SharedArrayBuffer)||B&&h(B.buffer,SharedArrayBuffer)))return A(B,P,M);if(typeof B=="number")throw TypeError('The "value" argument must not be of type number. Received type number');let H=B.valueOf&&B.valueOf();if(H!=null&&H!==B)return W.from(H,P,M);let X=F(B);if(X)return X;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof B[Symbol.toPrimitive]=="function")return W.from(B[Symbol.toPrimitive]("string"),P,M);throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof B)}W.from=function(B,P,M){return L(B,P,M)},Object.setPrototypeOf(W.prototype,Uint8Array.prototype),Object.setPrototypeOf(W,Uint8Array);function E(B){if(typeof B!="number")throw TypeError('"size" argument must be of type number');if(B<0)throw RangeError('The value "'+B+'" is invalid for option "size"')}function C(B,P,M){return E(B),B<=0?O(B):P!==void 0?typeof M=="string"?O(B).fill(P,M):O(B).fill(P):O(B)}W.alloc=function(B,P,M){return C(B,P,M)};function x(B){return E(B),O(B<0?0:I(B)|0)}W.allocUnsafe=function(B){return x(B)},W.allocUnsafeSlow=function(B){return x(B)};function v(B,P){if((typeof P!="string"||P==="")&&(P="utf8"),!W.isEncoding(P))throw TypeError("Unknown encoding: "+P);let M=k(B,P)|0,H=O(M),X=H.write(B,P);return X!==M&&(H=H.slice(0,X)),H}function w(B){let P=B.length<0?0:I(B.length)|0,M=O(P);for(let H=0;H<P;H+=1)M[H]=B[H]&255;return M}function K(B){if(h(B,Uint8Array)){let P=new Uint8Array(B);return A(P.buffer,P.byteOffset,P.byteLength)}return w(B)}function A(B,P,M){if(P<0||B.byteLength<P)throw RangeError('"offset" is outside of buffer bounds');if(B.byteLength<P+(M||0))throw RangeError('"length" is outside of buffer bounds');let H;return P===void 0&&M===void 0?H=new Uint8Array(B):M===void 0?H=new Uint8Array(B,P):H=new Uint8Array(B,P,M),Object.setPrototypeOf(H,W.prototype),H}function F(B){if(W.isBuffer(B)){let P=I(B.length)|0,M=O(P);return M.length===0||B.copy(M,0,0,P),M}if(B.length!==void 0)return typeof B.length!="number"||WB(B.length)?O(0):w(B);if(B.type==="Buffer"&&Array.isArray(B.data))return w(B.data)}function I(B){if(B>=Y)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Y.toString(16)+" bytes");return B|0}function y(B){return+B!=B&&(B=0),W.alloc(+B)}W.isBuffer=function(B){return B!=null&&B._isBuffer===!0&&B!==W.prototype},W.compare=function(B,P){if(h(B,Uint8Array)&&(B=W.from(B,B.offset,B.byteLength)),h(P,Uint8Array)&&(P=W.from(P,P.offset,P.byteLength)),!W.isBuffer(B)||!W.isBuffer(P))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(B===P)return 0;let M=B.length,H=P.length;for(let X=0,$=Math.min(M,H);X<$;++X)if(B[X]!==P[X]){M=B[X],H=P[X];break}return M<H?-1:H<M?1:0},W.isEncoding=function(B){switch(String(B).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},W.concat=function(B,P){if(!Array.isArray(B))throw TypeError('"list" argument must be an Array of Buffers');if(B.length===0)return W.alloc(0);let M;if(P===void 0)for(P=0,M=0;M<B.length;++M)P+=B[M].length;let H=W.allocUnsafe(P),X=0;for(M=0;M<B.length;++M){let $=B[M];if(h($,Uint8Array))X+$.length>H.length?(W.isBuffer($)||($=W.from($)),$.copy(H,X)):Uint8Array.prototype.set.call(H,$,X);else if(W.isBuffer($))$.copy(H,X);else throw TypeError('"list" argument must be an Array of Buffers');X+=$.length}return H};function k(B,P){if(W.isBuffer(B))return B.length;if(ArrayBuffer.isView(B)||h(B,ArrayBuffer))return B.byteLength;if(typeof B!="string")throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof B);let M=B.length,H=arguments.length>2&&arguments[2]===!0;if(!H&&M===0)return 0;let X=!1;for(;;)switch(P){case"ascii":case"latin1":case"binary":return M;case"utf8":case"utf-8":return HB(B).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M*2;case"hex":return M>>>1;case"base64":return mB(B).length;default:if(X)return H?-1:HB(B).length;P=(""+P).toLowerCase(),X=!0}}W.byteLength=k;function D(B,P,M){let H=!1;if((P===void 0||P<0)&&(P=0),P>this.length||((M===void 0||M>this.length)&&(M=this.length),M<=0)||(M>>>=0,P>>>=0,M<=P))return"";for(B||(B="utf8");;)switch(B){case"hex":return U0(this,P,M);case"utf8":case"utf-8":return qB(this,P,M);case"ascii":return C0(this,P,M);case"latin1":case"binary":return j0(this,P,M);case"base64":return L0(this,P,M);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x0(this,P,M);default:if(H)throw TypeError("Unknown encoding: "+B);B=(B+"").toLowerCase(),H=!0}}W.prototype._isBuffer=!0;function m(B,P,M){let H=B[P];B[P]=B[M],B[M]=H}W.prototype.swap16=function(){let B=this.length;if(B%2!==0)throw RangeError("Buffer size must be a multiple of 16-bits");for(let P=0;P<B;P+=2)m(this,P,P+1);return this},W.prototype.swap32=function(){let B=this.length;if(B%4!==0)throw RangeError("Buffer size must be a multiple of 32-bits");for(let P=0;P<B;P+=4)m(this,P,P+3),m(this,P+1,P+2);return this},W.prototype.swap64=function(){let B=this.length;if(B%8!==0)throw RangeError("Buffer size must be a multiple of 64-bits");for(let P=0;P<B;P+=8)m(this,P,P+7),m(this,P+1,P+6),m(this,P+2,P+5),m(this,P+3,P+4);return this},W.prototype.toString=function(){let B=this.length;return B===0?"":arguments.length===0?qB(this,0,B):D.apply(this,arguments)},W.prototype.toLocaleString=W.prototype.toString,W.prototype.equals=function(B){if(!W.isBuffer(B))throw TypeError("Argument must be a Buffer");return this===B?!0:W.compare(this,B)===0},W.prototype.inspect=function(){let B="",P=G.INSPECT_MAX_BYTES;return B=this.toString("hex",0,P).replace(/(.{2})/g,"$1 ").trim(),this.length>P&&(B+=" ... "),"<Buffer "+B+">"},J&&(W.prototype[J]=W.prototype.inspect),W.prototype.compare=function(B,P,M,H,X){if(h(B,Uint8Array)&&(B=W.from(B,B.offset,B.byteLength)),!W.isBuffer(B))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof B);if(P===void 0&&(P=0),M===void 0&&(M=B?B.length:0),H===void 0&&(H=0),X===void 0&&(X=this.length),P<0||M>B.length||H<0||X>this.length)throw RangeError("out of range index");if(H>=X&&P>=M)return 0;if(H>=X)return-1;if(P>=M)return 1;if(P>>>=0,M>>>=0,H>>>=0,X>>>=0,this===B)return 0;let $=X-H,S=M-P,j=Math.min($,S),_=this.slice(H,X),R=B.slice(P,M);for(let U=0;U<j;++U)if(_[U]!==R[U]){$=_[U],S=R[U];break}return $<S?-1:S<$?1:0};function f(B,P,M,H,X){if(B.length===0)return-1;if(typeof M=="string"?(H=M,M=0):M>2147483647?M=2147483647:M<-2147483648&&(M=-2147483648),M=+M,WB(M)&&(M=X?0:B.length-1),M<0&&(M=B.length+M),M>=B.length){if(X)return-1;M=B.length-1}else if(M<0)if(X)M=0;else return-1;if(typeof P=="string"&&(P=W.from(P,H)),W.isBuffer(P))return P.length===0?-1:kB(B,P,M,H,X);if(typeof P=="number")return P=P&255,typeof Uint8Array.prototype.indexOf=="function"?X?Uint8Array.prototype.indexOf.call(B,P,M):Uint8Array.prototype.lastIndexOf.call(B,P,M):kB(B,[P],M,H,X);throw TypeError("val must be string, number or Buffer")}function kB(B,P,M,H,X){let $=1,S=B.length,j=P.length;if(H!==void 0&&(H=String(H).toLowerCase(),H==="ucs2"||H==="ucs-2"||H==="utf16le"||H==="utf-16le")){if(B.length<2||P.length<2)return-1;$=2,S/=2,j/=2,M/=2}function _(U,q){return $===1?U[q]:U.readUInt16BE(q*$)}let R;if(X){let U=-1;for(R=M;R<S;R++)if(_(B,R)===_(P,U===-1?0:R-U)){if(U===-1&&(U=R),R-U+1===j)return U*$}else U!==-1&&(R-=R-U),U=-1}else for(M+j>S&&(M=S-j),R=M;R>=0;R--){let U=!0;for(let q=0;q<j;q++)if(_(B,R+q)!==_(P,q)){U=!1;break}if(U)return R}return-1}W.prototype.includes=function(B,P,M){return this.indexOf(B,P,M)!==-1},W.prototype.indexOf=function(B,P,M){return f(this,B,P,M,!0)},W.prototype.lastIndexOf=function(B,P,M){return f(this,B,P,M,!1)};function S0(B,P,M,H){M=Number(M)||0;let X=B.length-M;H?(H=Number(H),H>X&&(H=X)):H=X;let $=P.length;H>$/2&&(H=$/2);let S;for(S=0;S<H;++S){let j=parseInt(P.substr(S*2,2),16);if(WB(j))return S;B[M+S]=j}return S}function V0(B,P,M,H){return i(HB(P,B.length-M),B,M,H)}function O0(B,P,M,H){return i(v0(P),B,M,H)}function K0(B,P,M,H){return i(mB(P),B,M,H)}function E0(B,P,M,H){return i(k0(P,B.length-M),B,M,H)}W.prototype.write=function(B,P,M,H){if(P===void 0)H="utf8",M=this.length,P=0;else if(M===void 0&&typeof P=="string")H=P,M=this.length,P=0;else if(isFinite(P))P=P>>>0,isFinite(M)?(M=M>>>0,H===void 0&&(H="utf8")):(H=M,M=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let X=this.length-P;if((M===void 0||M>X)&&(M=X),B.length>0&&(M<0||P<0)||P>this.length)throw RangeError("Attempt to write outside buffer bounds");H||(H="utf8");let $=!1;for(;;)switch(H){case"hex":return S0(this,B,P,M);case"utf8":case"utf-8":return V0(this,B,P,M);case"ascii":case"latin1":case"binary":return O0(this,B,P,M);case"base64":return K0(this,B,P,M);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E0(this,B,P,M);default:if($)throw TypeError("Unknown encoding: "+H);H=(""+H).toLowerCase(),$=!0}},W.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function L0(B,P,M){return P===0&&M===B.length?Z.fromByteArray(B):Z.fromByteArray(B.slice(P,M))}function qB(B,P,M){M=Math.min(B.length,M);let H=[],X=P;for(;X<M;){let $=B[X],S=null,j=$>239?4:$>223?3:$>191?2:1;if(X+j<=M){let _,R,U,q;switch(j){case 1:$<128&&(S=$);break;case 2:_=B[X+1],(_&192)===128&&(q=($&31)<<6|_&63,q>127&&(S=q));break;case 3:_=B[X+1],R=B[X+2],(_&192)===128&&(R&192)===128&&(q=($&15)<<12|(_&63)<<6|R&63,q>2047&&(q<55296||q>57343)&&(S=q));break;case 4:_=B[X+1],R=B[X+2],U=B[X+3],(_&192)===128&&(R&192)===128&&(U&192)===128&&(q=($&15)<<18|(_&63)<<12|(R&63)<<6|U&63,q>65535&&q<1114112&&(S=q))}}S===null?(S=65533,j=1):S>65535&&(S-=65536,H.push(S>>>10&1023|55296),S=56320|S&1023),H.push(S),X+=j}return A0(H)}var IB=4096;function A0(B){let P=B.length;if(P<=IB)return String.fromCharCode.apply(String,B);let M="",H=0;for(;H<P;)M+=String.fromCharCode.apply(String,B.slice(H,H+=IB));return M}function C0(B,P,M){let H="";M=Math.min(B.length,M);for(let X=P;X<M;++X)H+=String.fromCharCode(B[X]&127);return H}function j0(B,P,M){let H="";M=Math.min(B.length,M);for(let X=P;X<M;++X)H+=String.fromCharCode(B[X]);return H}function U0(B,P,M){let H=B.length;(!P||P<0)&&(P=0),(!M||M<0||M>H)&&(M=H);let X="";for(let $=P;$<M;++$)X+=q0[B[$]];return X}function x0(B,P,M){let H=B.slice(P,M),X="";for(let $=0;$<H.length-1;$+=2)X+=String.fromCharCode(H[$]+H[$+1]*256);return X}W.prototype.slice=function(B,P){let M=this.length;B=~~B,P=P===void 0?M:~~P,B<0?(B+=M,B<0&&(B=0)):B>M&&(B=M),P<0?(P+=M,P<0&&(P=0)):P>M&&(P=M),P<B&&(P=B);let H=this.subarray(B,P);return Object.setPrototypeOf(H,W.prototype),H};function T(B,P,M){if(B%1!==0||B<0)throw RangeError("offset is not uint");if(B+P>M)throw RangeError("Trying to access beyond buffer length")}W.prototype.readUintLE=W.prototype.readUIntLE=function(B,P,M){B=B>>>0,P=P>>>0,M||T(B,P,this.length);let H=this[B],X=1,$=0;for(;++$<P&&(X*=256);)H+=this[B+$]*X;return H},W.prototype.readUintBE=W.prototype.readUIntBE=function(B,P,M){B=B>>>0,P=P>>>0,M||T(B,P,this.length);let H=this[B+--P],X=1;for(;P>0&&(X*=256);)H+=this[B+--P]*X;return H},W.prototype.readUint8=W.prototype.readUInt8=function(B,P){return B=B>>>0,P||T(B,1,this.length),this[B]},W.prototype.readUint16LE=W.prototype.readUInt16LE=function(B,P){return B=B>>>0,P||T(B,2,this.length),this[B]|this[B+1]<<8},W.prototype.readUint16BE=W.prototype.readUInt16BE=function(B,P){return B=B>>>0,P||T(B,2,this.length),this[B]<<8|this[B+1]},W.prototype.readUint32LE=W.prototype.readUInt32LE=function(B,P){return B=B>>>0,P||T(B,4,this.length),(this[B]|this[B+1]<<8|this[B+2]<<16)+this[B+3]*16777216},W.prototype.readUint32BE=W.prototype.readUInt32BE=function(B,P){return B=B>>>0,P||T(B,4,this.length),this[B]*16777216+(this[B+1]<<16|this[B+2]<<8|this[B+3])},W.prototype.readBigUInt64LE=p(function(B){B=B>>>0,l(B,"offset");let P=this[B],M=this[B+7];(P===void 0||M===void 0)&&d(B,this.length-8);let H=P+this[++B]*256+this[++B]*65536+this[++B]*16777216,X=this[++B]+this[++B]*256+this[++B]*65536+M*16777216;return BigInt(H)+(BigInt(X)<<BigInt(32))}),W.prototype.readBigUInt64BE=p(function(B){B=B>>>0,l(B,"offset");let P=this[B],M=this[B+7];(P===void 0||M===void 0)&&d(B,this.length-8);let H=P*16777216+this[++B]*65536+this[++B]*256+this[++B],X=this[++B]*16777216+this[++B]*65536+this[++B]*256+M;return(BigInt(H)<<BigInt(32))+BigInt(X)}),W.prototype.readIntLE=function(B,P,M){B=B>>>0,P=P>>>0,M||T(B,P,this.length);let H=this[B],X=1,$=0;for(;++$<P&&(X*=256);)H+=this[B+$]*X;return X*=128,H>=X&&(H-=Math.pow(2,8*P)),H},W.prototype.readIntBE=function(B,P,M){B=B>>>0,P=P>>>0,M||T(B,P,this.length);let H=P,X=1,$=this[B+--H];for(;H>0&&(X*=256);)$+=this[B+--H]*X;return X*=128,$>=X&&($-=Math.pow(2,8*P)),$},W.prototype.readInt8=function(B,P){return B=B>>>0,P||T(B,1,this.length),this[B]&128?(255-this[B]+1)*-1:this[B]},W.prototype.readInt16LE=function(B,P){B=B>>>0,P||T(B,2,this.length);let M=this[B]|this[B+1]<<8;return M&32768?M|4294901760:M},W.prototype.readInt16BE=function(B,P){B=B>>>0,P||T(B,2,this.length);let M=this[B+1]|this[B]<<8;return M&32768?M|4294901760:M},W.prototype.readInt32LE=function(B,P){return B=B>>>0,P||T(B,4,this.length),this[B]|this[B+1]<<8|this[B+2]<<16|this[B+3]<<24},W.prototype.readInt32BE=function(B,P){return B=B>>>0,P||T(B,4,this.length),this[B]<<24|this[B+1]<<16|this[B+2]<<8|this[B+3]},W.prototype.readBigInt64LE=p(function(B){B=B>>>0,l(B,"offset");let P=this[B],M=this[B+7];(P===void 0||M===void 0)&&d(B,this.length-8);let H=this[B+4]+this[B+5]*256+this[B+6]*65536+(M<<24);return(BigInt(H)<<BigInt(32))+BigInt(P+this[++B]*256+this[++B]*65536+this[++B]*16777216)}),W.prototype.readBigInt64BE=p(function(B){B=B>>>0,l(B,"offset");let P=this[B],M=this[B+7];(P===void 0||M===void 0)&&d(B,this.length-8);let H=(P<<24)+this[++B]*65536+this[++B]*256+this[++B];return(BigInt(H)<<BigInt(32))+BigInt(this[++B]*16777216+this[++B]*65536+this[++B]*256+M)}),W.prototype.readFloatLE=function(B,P){return B=B>>>0,P||T(B,4,this.length),Q.read(this,B,!0,23,4)},W.prototype.readFloatBE=function(B,P){return B=B>>>0,P||T(B,4,this.length),Q.read(this,B,!1,23,4)},W.prototype.readDoubleLE=function(B,P){return B=B>>>0,P||T(B,8,this.length),Q.read(this,B,!0,52,8)},W.prototype.readDoubleBE=function(B,P){return B=B>>>0,P||T(B,8,this.length),Q.read(this,B,!1,52,8)};function c(B,P,M,H,X,$){if(!W.isBuffer(B))throw TypeError('"buffer" argument must be a Buffer instance');if(P>X||P<$)throw RangeError('"value" argument is out of bounds');if(M+H>B.length)throw RangeError("Index out of range")}W.prototype.writeUintLE=W.prototype.writeUIntLE=function(B,P,M,H){if(B=+B,P=P>>>0,M=M>>>0,!H){let S=Math.pow(2,8*M)-1;c(this,B,P,M,S,0)}let X=1,$=0;for(this[P]=B&255;++$<M&&(X*=256);)this[P+$]=B/X&255;return P+M},W.prototype.writeUintBE=W.prototype.writeUIntBE=function(B,P,M,H){if(B=+B,P=P>>>0,M=M>>>0,!H){let S=Math.pow(2,8*M)-1;c(this,B,P,M,S,0)}let X=M-1,$=1;for(this[P+X]=B&255;--X>=0&&($*=256);)this[P+X]=B/$&255;return P+M},W.prototype.writeUint8=W.prototype.writeUInt8=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,1,255,0),this[P]=B&255,P+1},W.prototype.writeUint16LE=W.prototype.writeUInt16LE=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,2,65535,0),this[P]=B&255,this[P+1]=B>>>8,P+2},W.prototype.writeUint16BE=W.prototype.writeUInt16BE=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,2,65535,0),this[P]=B>>>8,this[P+1]=B&255,P+2},W.prototype.writeUint32LE=W.prototype.writeUInt32LE=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,4,4294967295,0),this[P+3]=B>>>24,this[P+2]=B>>>16,this[P+1]=B>>>8,this[P]=B&255,P+4},W.prototype.writeUint32BE=W.prototype.writeUInt32BE=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,4,4294967295,0),this[P]=B>>>24,this[P+1]=B>>>16,this[P+2]=B>>>8,this[P+3]=B&255,P+4};function TB(B,P,M,H,X){cB(P,H,X,B,M,7);let $=Number(P&BigInt(4294967295));B[M++]=$,$=$>>8,B[M++]=$,$=$>>8,B[M++]=$,$=$>>8,B[M++]=$;let S=Number(P>>BigInt(32)&BigInt(4294967295));return B[M++]=S,S=S>>8,B[M++]=S,S=S>>8,B[M++]=S,S=S>>8,B[M++]=S,M}function _B(B,P,M,H,X){cB(P,H,X,B,M,7);let $=Number(P&BigInt(4294967295));B[M+7]=$,$=$>>8,B[M+6]=$,$=$>>8,B[M+5]=$,$=$>>8,B[M+4]=$;let S=Number(P>>BigInt(32)&BigInt(4294967295));return B[M+3]=S,S=S>>8,B[M+2]=S,S=S>>8,B[M+1]=S,S=S>>8,B[M]=S,M+8}W.prototype.writeBigUInt64LE=p(function(B,P=0){return TB(this,B,P,BigInt(0),BigInt("0xffffffffffffffff"))}),W.prototype.writeBigUInt64BE=p(function(B,P=0){return _B(this,B,P,BigInt(0),BigInt("0xffffffffffffffff"))}),W.prototype.writeIntLE=function(B,P,M,H){if(B=+B,P=P>>>0,!H){let j=Math.pow(2,8*M-1);c(this,B,P,M,j-1,-j)}let X=0,$=1,S=0;for(this[P]=B&255;++X<M&&($*=256);)B<0&&S===0&&this[P+X-1]!==0&&(S=1),this[P+X]=(B/$>>0)-S&255;return P+M},W.prototype.writeIntBE=function(B,P,M,H){if(B=+B,P=P>>>0,!H){let j=Math.pow(2,8*M-1);c(this,B,P,M,j-1,-j)}let X=M-1,$=1,S=0;for(this[P+X]=B&255;--X>=0&&($*=256);)B<0&&S===0&&this[P+X+1]!==0&&(S=1),this[P+X]=(B/$>>0)-S&255;return P+M},W.prototype.writeInt8=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,1,127,-128),B<0&&(B=255+B+1),this[P]=B&255,P+1},W.prototype.writeInt16LE=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,2,32767,-32768),this[P]=B&255,this[P+1]=B>>>8,P+2},W.prototype.writeInt16BE=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,2,32767,-32768),this[P]=B>>>8,this[P+1]=B&255,P+2},W.prototype.writeInt32LE=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,4,2147483647,-2147483648),this[P]=B&255,this[P+1]=B>>>8,this[P+2]=B>>>16,this[P+3]=B>>>24,P+4},W.prototype.writeInt32BE=function(B,P,M){return B=+B,P=P>>>0,M||c(this,B,P,4,2147483647,-2147483648),B<0&&(B=4294967295+B+1),this[P]=B>>>24,this[P+1]=B>>>16,this[P+2]=B>>>8,this[P+3]=B&255,P+4},W.prototype.writeBigInt64LE=p(function(B,P=0){return TB(this,B,P,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),W.prototype.writeBigInt64BE=p(function(B,P=0){return _B(this,B,P,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function wB(B,P,M,H,X,$){if(M+H>B.length)throw RangeError("Index out of range");if(M<0)throw RangeError("Index out of range")}function fB(B,P,M,H,X){return P=+P,M=M>>>0,X||wB(B,P,M,4,340282346638528860000000000000000000000,-340282346638528860000000000000000000000),Q.write(B,P,M,H,23,4),M+4}W.prototype.writeFloatLE=function(B,P,M){return fB(this,B,P,!0,M)},W.prototype.writeFloatBE=function(B,P,M){return fB(this,B,P,!1,M)};function yB(B,P,M,H,X){return P=+P,M=M>>>0,X||wB(B,P,M,8,179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),Q.write(B,P,M,H,52,8),M+8}W.prototype.writeDoubleLE=function(B,P,M){return yB(this,B,P,!0,M)},W.prototype.writeDoubleBE=function(B,P,M){return yB(this,B,P,!1,M)},W.prototype.copy=function(B,P,M,H){if(!W.isBuffer(B))throw TypeError("argument should be a Buffer");if(M||(M=0),!H&&H!==0&&(H=this.length),P>=B.length&&(P=B.length),P||(P=0),H>0&&H<M&&(H=M),H===M||B.length===0||this.length===0)return 0;if(P<0)throw RangeError("targetStart out of bounds");if(M<0||M>=this.length)throw RangeError("Index out of range");if(H<0)throw RangeError("sourceEnd out of bounds");H>this.length&&(H=this.length),B.length-P<H-M&&(H=B.length-P+M);let X=H-M;return this===B&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(P,M,H):Uint8Array.prototype.set.call(B,this.subarray(M,H),P),X},W.prototype.fill=function(B,P,M,H){if(typeof B=="string"){if(typeof P=="string"?(H=P,P=0,M=this.length):typeof M=="string"&&(H=M,M=this.length),H!==void 0&&typeof H!="string")throw TypeError("encoding must be a string");if(typeof H=="string"&&!W.isEncoding(H))throw TypeError("Unknown encoding: "+H);if(B.length===1){let $=B.charCodeAt(0);(H==="utf8"&&$<128||H==="latin1")&&(B=$)}}else typeof B=="number"?B=B&255:typeof B=="boolean"&&(B=Number(B));if(P<0||this.length<P||this.length<M)throw RangeError("Out of range index");if(M<=P)return this;P=P>>>0,M=M===void 0?this.length:M>>>0,B||(B=0);let X;if(typeof B=="number")for(X=P;X<M;++X)this[X]=B;else{let $=W.isBuffer(B)?B:W.from(B,H),S=$.length;if(S===0)throw TypeError('The value "'+B+'" is invalid for argument "value"');for(X=0;X<M-P;++X)this[X+P]=$[X%S]}return this};var g={};function ZB(B,P,M){g[B]=class extends M{constructor(){super(),Object.defineProperty(this,"message",{value:P.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${B}]`,this.stack,delete this.name}get code(){return B}set code(H){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:H,writable:!0})}toString(){return`${this.name} [${B}]: ${this.message}`}}}ZB("ERR_BUFFER_OUT_OF_BOUNDS",function(B){return B?`${B} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),ZB("ERR_INVALID_ARG_TYPE",function(B,P){return`The "${B}" argument must be of type number. Received type ${typeof P}`},TypeError),ZB("ERR_OUT_OF_RANGE",function(B,P,M){let H=`The value of "${B}" is out of range.`,X=M;return Number.isInteger(M)&&Math.abs(M)>4294967296?X=DB(String(M)):typeof M=="bigint"&&(X=String(M),(M>BigInt(2)**BigInt(32)||M<-(BigInt(2)**BigInt(32)))&&(X=DB(X)),X+="n"),H+=` It must be ${P}. Received ${X}`,H},RangeError);function DB(B){let P="",M=B.length,H=B[0]==="-"?1:0;for(;M>=H+4;M-=3)P=`_${B.slice(M-3,M)}${P}`;return`${B.slice(0,M)}${P}`}function F0(B,P,M){l(P,"offset"),(B[P]===void 0||B[P+M]===void 0)&&d(P,B.length-(M+1))}function cB(B,P,M,H,X,$){if(B>M||B<P){let S=typeof P=="bigint"?"n":"",j;throw $>3?P===0||P===BigInt(0)?j=`>= 0${S} and < 2${S} ** ${($+1)*8}${S}`:j=`>= -(2${S} ** ${($+1)*8-1}${S}) and < 2 ** ${($+1)*8-1}${S}`:j=`>= ${P}${S} and <= ${M}${S}`,new g.ERR_OUT_OF_RANGE("value",j,B)}F0(H,X,$)}function l(B,P){if(typeof B!="number")throw new g.ERR_INVALID_ARG_TYPE(P,"number",B)}function d(B,P,M){throw Math.floor(B)!==B?(l(B,M),new g.ERR_OUT_OF_RANGE(M||"offset","an integer",B)):P<0?new g.ERR_BUFFER_OUT_OF_BOUNDS:new g.ERR_OUT_OF_RANGE(M||"offset",`>= ${M?1:0} and <= ${P}`,B)}var N0=/[^+/0-9A-Za-z-_]/g;function R0(B){if(B=B.split("=")[0],B=B.trim().replace(N0,""),B.length<2)return"";for(;B.length%4!==0;)B=B+"=";return B}function HB(B,P){P=P||1/0;let M,H=B.length,X=null,$=[];for(let S=0;S<H;++S){if(M=B.charCodeAt(S),M>55295&&M<57344){if(!X){if(M>56319){(P-=3)>-1&&$.push(239,191,189);continue}else if(S+1===H){(P-=3)>-1&&$.push(239,191,189);continue}X=M;continue}if(M<56320){(P-=3)>-1&&$.push(239,191,189),X=M;continue}M=(X-55296<<10|M-56320)+65536}else X&&(P-=3)>-1&&$.push(239,191,189);if(X=null,M<128){if((P-=1)<0)break;$.push(M)}else if(M<2048){if((P-=2)<0)break;$.push(M>>6|192,M&63|128)}else if(M<65536){if((P-=3)<0)break;$.push(M>>12|224,M>>6&63|128,M&63|128)}else if(M<1114112){if((P-=4)<0)break;$.push(M>>18|240,M>>12&63|128,M>>6&63|128,M&63|128)}else throw Error("Invalid code point")}return $}function v0(B){let P=[];for(let M=0;M<B.length;++M)P.push(B.charCodeAt(M)&255);return P}function k0(B,P){let M,H,X,$=[];for(let S=0;S<B.length&&!((P-=2)<0);++S)M=B.charCodeAt(S),H=M>>8,X=M%256,$.push(X),$.push(H);return $}function mB(B){return Z.toByteArray(R0(B))}function i(B,P,M,H){let X;for(X=0;X<H&&!(X+M>=P.length||X>=B.length);++X)P[X+M]=B[X];return X}function h(B,P){return B instanceof P||B!=null&&B.constructor!=null&&B.constructor.name!=null&&B.constructor.name===P.name}function WB(B){return B!==B}var q0=function(){let B="0123456789abcdef",P=Array(256);for(let M=0;M<16;++M){let H=M*16;for(let X=0;X<16;++X)P[H+X]=B[M]+B[X]}return P}();function p(B){return typeof BigInt>"u"?I0:B}function I0(){throw Error("BigInt not supported")}}),$B={},g0($B,{Blob:()=>KB,Buffer:()=>SB.Buffer,File:()=>EB,atob:()=>LB,btoa:()=>AB,constants:()=>jB,createObjectURL:()=>CB,default:()=>zB.Buffer,isAscii:()=>JP,isUtf8:()=>YP,kMaxLength:()=>XP,kStringMaxLength:()=>o,resolveObjectURL:()=>PP,transcode:()=>MP}),l0($B,YB(a())),zB=YB(a()),SB=YB(a()),o=4294967295,{Blob:KB,File:EB,atob:LB,btoa:AB}=globalThis,{createObjectURL:CB}=URL,jB={__proto__:null,MAX_LENGTH:o,MAX_STRING_LENGTH:o,BYTES_PER_ELEMENT:1},$P=SB.Buffer,zP=zB.Buffer;/*!
3
+ * The buffer module from node.js, for the browser.
4
+ *
5
+ * @author Feross Aboukhadijeh <https://feross.org>
6
+ * @license MIT
7
+ *//*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */});function s0(G,Z){let Q=G.charCodeAt(Z);if(Number.isNaN(Q))throw RangeError(`Index ${Z} out of range for string "${G}"; please open an issue at https://github.com/Trott/slug/issues/new`);if(Q<55296||Q>57343)return[G.charAt(Z),Z];if(Q>=55296&&Q<=56319){if(G.length<=Z+1)return[" ",Z];let Y=G.charCodeAt(Z+1);if(Y<56320||Y>57343)return[" ",Z];return[G.charAt(Z)+G.charAt(Z+1),Z+1]}if(Z===0)return[" ",Z];let J=G.charCodeAt(Z-1);if(J<55296||J>56319)return[" ",Z];throw Error(`String "${G}" reaches code believed to be unreachable; please open an issue at https://github.com/Trott/slug/issues/new`)}var e;if(typeof window<"u")if(window.btoa)e=function(G){return btoa(unescape(encodeURIComponent(G)))};else e=function(G){let Z=unescape(encodeURIComponent(`${G}`)),Q="",J=0,Y,V=0,O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";while(!0){let W=O;if(!Z.charAt(V|0)){if(W="=",!(V%1))break}if(Q+=W.charAt(63&J>>8-V%1*8),W==="="&&!(V%1))break;if(Y=Z.charCodeAt(V+=0.75),Y>255)throw Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");J=J<<8|Y}return Q};else e=function(G){return(u0(),h0(BP)).Buffer.from(G).toString("base64")};var N=n0;function n0(G,Z){if(Z&&typeof Z==="object"&&Z.debug===!0){let V=G.split(" ").map((O)=>{return Array.from(O).map((W)=>W.codePointAt(0))});return`STRING: ${G}
8
+ CODEPOINTS: ${JSON.stringify(V)}`}let Q=b(G,Z);if((Z&&typeof Z==="object"&&Z.fallback!==void 0?Z.fallback:N.defaults.fallback)===!0&&Q===""){let Y="";for(let O=0;O<G.length;O++){let W=s0(G,O);O=W[1],Y+=W[0]}let V=e(Y);if(typeof V==="string")Q=b(V,Z)}return Q}var SP={bg:{\u{419}:"Y",\u{439}:"y",X:"H",x:"h",\u{426}:"Ts",\u{446}:"ts",\u{429}:"Sht",\u{449}:"sht",\u{42a}:"A",\u{44a}:"a",\u{42c}:"Y",\u{44c}:"y"},de:{\u{c4}:"AE",\u{e4}:"ae",\u{d6}:"OE",\u{f6}:"oe",\u{dc}:"UE",\u{fc}:"ue"},sr:{\u{111}:"dj",\u{110}:"DJ"},uk:{\u{418}:"Y",\u{438}:"y",\u{419}:"Y",\u{439}:"y",\u{426}:"Ts",\u{446}:"ts",\u{425}:"Kh",\u{445}:"kh",\u{429}:"Shch",\u{449}:"shch",\u{413}:"H",\u{433}:"h"}},t={};function b(G,Z){if(typeof G!=="string")throw TypeError(`slug() requires a string argument, received ${typeof G}`);let Q;if(typeof Z==="string")Q={replacement:Z};else Q=Z?Object.assign({},Z):{};Q.mode=Q.mode||N.defaults.mode;let J=N.defaults.modes[Q.mode],Y=["replacement","multicharmap","charmap","remove","lower","trim"];for(let E,C=0,x=Y.length;C<x;C++)E=Y[C],Q[E]=E in Q?Q[E]:J[E];let V=Q.locale?SP[Q.locale]||t:t,O=[];if(Q.multicharmap)for(let E in Q.multicharmap){if(!Object.prototype.hasOwnProperty.call(Q.multicharmap,E))continue;let C=E.length;if(!O.includes(C))O.push(C)}O=O.sort((E,C)=>C-E);let W=Q.mode==="rfc3986"?/[^\w\s\-.~]/:/[^A-Z0-9\s]/i,L="";for(let E,C=0,x=G.length;C<x;C++){E=G[C];let v=!1;for(let w=0;w<O.length;w++){let K=O[w],A=G.substr(C,K);if(Q.multicharmap&&Q.multicharmap[A]){C+=K-1,E=Q.multicharmap[A],v=!0;break}}if(!v)if(V[E])E=V[E];else if(Q.charmap&&Q.charmap[E])E=Q.charmap[E].replace(Q.replacement," ");else if(Q.replacement&&E.includes(Q.replacement))E=E.replace(Q.replacement," ");else E=E.replace(W,"");L+=E}if(Q.remove)L=L.replace(Q.remove,"");if(Q.trim)L=L.trim();if(L=L.replace(/\s+/g,Q.replacement),Q.lower)L=L.toLowerCase();return L}var VP={\u{92b}\u{93c}:"Fi",\u{917}\u{93c}:"Ghi",\u{916}\u{93c}:"Khi",\u{915}\u{93c}:"Qi",\u{921}\u{93c}:"ugDha",\u{922}\u{93c}:"ugDhha",\u{92f}\u{93c}:"Yi",\u{91c}\u{93c}:"Za",\u{5d1}\u{5b4}\u{5d9}:"i",\u{5d1}\u{5b5}:"e",\u{5d1}\u{5b5}\u{5d9}:"e",\u{5d1}\u{5b6}:"e",\u{5d1}\u{5b7}:"a",\u{5d1}\u{5b8}:"a",\u{5d1}\u{5b9}:"o",\u{5d5}\u{5b9}:"o",\u{5d1}\u{5bb}:"u",\u{5d5}\u{5bc}:"u",\u{5d1}\u{5bc}:"b",\u{5db}\u{5bc}:"k",\u{5da}\u{5bc}:"k",\u{5e4}\u{5bc}:"p",\u{5e9}\u{5c1}:"sh",\u{5e9}\u{5c2}:"s",\u{5d1}\u{5b0}:"e",\u{5d7}\u{5b1}:"e",\u{5d7}\u{5b2}:"a",\u{5d7}\u{5b3}:"o",\u{5d1}\u{5b4}:"i"},OP={\u{c0}:"A",\u{c1}:"A",\u{c2}:"A",\u{c3}:"A",\u{c4}:"A",\u{c5}:"A",\u{c6}:"AE",\u{c7}:"C",\u{c8}:"E",\u{c9}:"E",\u{ca}:"E",\u{cb}:"E",\u{cc}:"I",\u{cd}:"I",\u{ce}:"I",\u{cf}:"I",\u{d0}:"D",\u{d1}:"N",\u{d2}:"O",\u{d3}:"O",\u{d4}:"O",\u{d5}:"O",\u{d6}:"O",\u{150}:"O",\u{d8}:"O",\u{14c}:"O",\u{d9}:"U",\u{da}:"U",\u{db}:"U",\u{dc}:"U",\u{170}:"U",\u{dd}:"Y",\u{de}:"TH",\u{df}:"ss",\u{e0}:"a",\u{e1}:"a",\u{e2}:"a",\u{e3}:"a",\u{e4}:"a",\u{e5}:"a",\u{e6}:"ae",\u{e7}:"c",\u{e8}:"e",\u{e9}:"e",\u{ea}:"e",\u{eb}:"e",\u{ec}:"i",\u{ed}:"i",\u{ee}:"i",\u{ef}:"i",\u{f0}:"d",\u{f1}:"n",\u{f2}:"o",\u{f3}:"o",\u{f4}:"o",\u{f5}:"o",\u{f6}:"o",\u{151}:"o",\u{f8}:"o",\u{14d}:"o",\u{152}:"OE",\u{153}:"oe",\u{f9}:"u",\u{fa}:"u",\u{fb}:"u",\u{fc}:"u",\u{171}:"u",\u{fd}:"y",\u{fe}:"th",\u{ff}:"y",\u{1e9e}:"SS",\u{3b1}:"a",\u{3b2}:"b",\u{3b3}:"g",\u{3b4}:"d",\u{3b5}:"e",\u{3b6}:"z",\u{3b7}:"h",\u{3b8}:"th",\u{3b9}:"i",\u{3ba}:"k",\u{3bb}:"l",\u{3bc}:"m",\u{3bd}:"n",\u{3be}:"3",\u{3bf}:"o",\u{3c0}:"p",\u{3c1}:"r",\u{3c3}:"s",\u{3c4}:"t",\u{3c5}:"y",\u{3c6}:"f",\u{3c7}:"x",\u{3c8}:"ps",\u{3c9}:"w",\u{3ac}:"a",\u{3ad}:"e",\u{3af}:"i",\u{3cc}:"o",\u{3cd}:"y",\u{3ae}:"h",\u{3ce}:"w",\u{3c2}:"s",\u{3ca}:"i",\u{3b0}:"y",\u{3cb}:"y",\u{390}:"i",\u{391}:"A",\u{392}:"B",\u{393}:"G",\u{394}:"D",\u{395}:"E",\u{396}:"Z",\u{397}:"H",\u{398}:"Th",\u{399}:"I",\u{39a}:"K",\u{39b}:"L",\u{39c}:"M",\u{39d}:"N",\u{39e}:"3",\u{39f}:"O",\u{3a0}:"P",\u{3a1}:"R",\u{3a3}:"S",\u{3a4}:"T",\u{3a5}:"Y",\u{3a6}:"F",\u{3a7}:"X",\u{3a8}:"PS",\u{3a9}:"W",\u{386}:"A",\u{388}:"E",\u{38a}:"I",\u{38c}:"O",\u{38e}:"Y",\u{389}:"H",\u{38f}:"W",\u{3aa}:"I",\u{3ab}:"Y",\u{15f}:"s",\u{15e}:"S",\u{131}:"i",\u{130}:"I",\u{11f}:"g",\u{11e}:"G",\u{430}:"a",\u{431}:"b",\u{432}:"v",\u{433}:"g",\u{434}:"d",\u{435}:"e",\u{451}:"yo",\u{436}:"zh",\u{437}:"z",\u{438}:"i",\u{439}:"j",\u{43a}:"k",\u{43b}:"l",\u{43c}:"m",\u{43d}:"n",\u{43e}:"o",\u{43f}:"p",\u{440}:"r",\u{441}:"s",\u{442}:"t",\u{443}:"u",\u{444}:"f",\u{445}:"h",\u{446}:"c",\u{447}:"ch",\u{448}:"sh",\u{449}:"sh",\u{44a}:"u",\u{44b}:"y",\u{44c}:"",\u{44d}:"e",\u{44e}:"yu",\u{44f}:"ya",\u{410}:"A",\u{411}:"B",\u{412}:"V",\u{413}:"G",\u{414}:"D",\u{415}:"E",\u{401}:"Yo",\u{416}:"Zh",\u{417}:"Z",\u{418}:"I",\u{419}:"J",\u{41a}:"K",\u{41b}:"L",\u{41c}:"M",\u{41d}:"N",\u{41e}:"O",\u{41f}:"P",\u{420}:"R",\u{421}:"S",\u{422}:"T",\u{423}:"U",\u{424}:"F",\u{425}:"H",\u{426}:"C",\u{427}:"Ch",\u{428}:"Sh",\u{429}:"Sh",\u{42a}:"U",\u{42b}:"Y",\u{42c}:"",\u{42d}:"E",\u{42e}:"Yu",\u{42f}:"Ya",\u{404}:"Ye",\u{406}:"I",\u{407}:"Yi",\u{490}:"G",\u{454}:"ye",\u{456}:"i",\u{457}:"yi",\u{491}:"g",\u{10d}:"c",\u{10f}:"d",\u{11b}:"e",\u{148}:"n",\u{159}:"r",\u{161}:"s",\u{165}:"t",\u{16f}:"u",\u{17e}:"z",\u{10c}:"C",\u{10e}:"D",\u{11a}:"E",\u{147}:"N",\u{158}:"R",\u{160}:"S",\u{164}:"T",\u{16e}:"U",\u{17d}:"Z",\u{13e}:"l",\u{13a}:"l",\u{155}:"r",\u{13d}:"L",\u{139}:"L",\u{154}:"R",\u{105}:"a",\u{107}:"c",\u{119}:"e",\u{142}:"l",\u{144}:"n",\u{15b}:"s",\u{17a}:"z",\u{17c}:"z",\u{104}:"A",\u{106}:"C",\u{118}:"E",\u{141}:"L",\u{143}:"N",\u{15a}:"S",\u{179}:"Z",\u{17b}:"Z",\u{101}:"a",\u{113}:"e",\u{123}:"g",\u{12b}:"i",\u{137}:"k",\u{13c}:"l",\u{146}:"n",\u{16b}:"u",\u{100}:"A",\u{112}:"E",\u{122}:"G",\u{12a}:"I",\u{136}:"K",\u{13b}:"L",\u{145}:"N",\u{16a}:"U",\u{623}:"a",\u{625}:"i",\u{628}:"b",\u{62a}:"t",\u{62b}:"th",\u{62c}:"g",\u{62d}:"h",\u{62e}:"kh",\u{62f}:"d",\u{630}:"th",\u{631}:"r",\u{632}:"z",\u{633}:"s",\u{634}:"sh",\u{635}:"s",\u{636}:"d",\u{637}:"t",\u{638}:"th",\u{639}:"aa",\u{63a}:"gh",\u{641}:"f",\u{642}:"k",\u{643}:"k",\u{644}:"l",\u{645}:"m",\u{646}:"n",\u{647}:"h",\u{648}:"o",\u{64a}:"y",\u{621}:"aa",\u{629}:"a",\u{622}:"a",\u{627}:"a",\u{67e}:"p",\u{698}:"zh",\u{6af}:"g",\u{686}:"ch",\u{6a9}:"k",\u{6cc}:"i",\u{117}:"e",\u{12f}:"i",\u{173}:"u",\u{116}:"E",\u{12e}:"I",\u{172}:"U",\u{21b}:"t",\u{21a}:"T",\u{163}:"t",\u{162}:"T",\u{219}:"s",\u{218}:"S",\u{103}:"a",\u{102}:"A",\u{1ea0}:"A",\u{1ea2}:"A",\u{1ea6}:"A",\u{1ea4}:"A",\u{1eac}:"A",\u{1ea8}:"A",\u{1eaa}:"A",\u{1eb0}:"A",\u{1eae}:"A",\u{1eb6}:"A",\u{1eb2}:"A",\u{1eb4}:"A",\u{1eb8}:"E",\u{1eba}:"E",\u{1ebc}:"E",\u{1ec0}:"E",\u{1ebe}:"E",\u{1ec6}:"E",\u{1ec2}:"E",\u{1ec4}:"E",\u{1eca}:"I",\u{1ec8}:"I",\u{128}:"I",\u{1ecc}:"O",\u{1ece}:"O",\u{1ed2}:"O",\u{1ed0}:"O",\u{1ed8}:"O",\u{1ed4}:"O",\u{1ed6}:"O",\u{1a0}:"O",\u{1edc}:"O",\u{1eda}:"O",\u{1ee2}:"O",\u{1ede}:"O",\u{1ee0}:"O",\u{1ee4}:"U",\u{1ee6}:"U",\u{168}:"U",\u{1af}:"U",\u{1eea}:"U",\u{1ee8}:"U",\u{1ef0}:"U",\u{1eec}:"U",\u{1eee}:"U",\u{1ef2}:"Y",\u{1ef4}:"Y",\u{1ef6}:"Y",\u{1ef8}:"Y",\u{110}:"D",\u{1ea1}:"a",\u{1ea3}:"a",\u{1ea7}:"a",\u{1ea5}:"a",\u{1ead}:"a",\u{1ea9}:"a",\u{1eab}:"a",\u{1eb1}:"a",\u{1eaf}:"a",\u{1eb7}:"a",\u{1eb3}:"a",\u{1eb5}:"a",\u{1eb9}:"e",\u{1ebb}:"e",\u{1ebd}:"e",\u{1ec1}:"e",\u{1ebf}:"e",\u{1ec7}:"e",\u{1ec3}:"e",\u{1ec5}:"e",\u{1ecb}:"i",\u{1ec9}:"i",\u{129}:"i",\u{1ecd}:"o",\u{1ecf}:"o",\u{1ed3}:"o",\u{1ed1}:"o",\u{1ed9}:"o",\u{1ed5}:"o",\u{1ed7}:"o",\u{1a1}:"o",\u{1edd}:"o",\u{1edb}:"o",\u{1ee3}:"o",\u{1edf}:"o",\u{1ee1}:"o",\u{1ee5}:"u",\u{1ee7}:"u",\u{169}:"u",\u{1b0}:"u",\u{1eeb}:"u",\u{1ee9}:"u",\u{1ef1}:"u",\u{1eed}:"u",\u{1eef}:"u",\u{1ef3}:"y",\u{1ef5}:"y",\u{1ef7}:"y",\u{1ef9}:"y",\u{111}:"d",\u{4d8}:"AE",\u{4d9}:"ae",\u{492}:"GH",\u{493}:"gh",\u{49a}:"KH",\u{49b}:"kh",\u{4a2}:"NG",\u{4a3}:"ng",\u{4ae}:"UE",\u{4af}:"ue",\u{4b0}:"U",\u{4b1}:"u",\u{4ba}:"H",\u{4bb}:"h",\u{4e8}:"OE",\u{4e9}:"oe",\u{452}:"dj",\u{458}:"j",\u{459}:"lj",\u{45a}:"nj",\u{45b}:"c",\u{45f}:"dz",\u{402}:"Dj",\u{408}:"j",\u{409}:"Lj",\u{40a}:"Nj",\u{40b}:"C",\u{40f}:"Dz",\u{1cc}:"nj",\u{1c9}:"lj",\u{1cb}:"NJ",\u{1c8}:"LJ",\u{905}:"a",\u{906}:"aa",\u{90f}:"e",\u{908}:"ii",\u{90d}:"ei",\u{90e}:"ae",\u{910}:"ai",\u{907}:"i",\u{913}:"o",\u{911}:"oi",\u{912}:"oii",\u{90a}:"uu",\u{914}:"ou",\u{909}:"u",\u{92c}:"B",\u{92d}:"Bha",\u{91a}:"Ca",\u{91b}:"Chha",\u{921}:"Da",\u{922}:"Dha",\u{92b}:"Fa",\u{917}:"Ga",\u{918}:"Gha",\u{917}\u{93c}:"Ghi",\u{939}:"Ha",\u{91c}:"Ja",\u{91d}:"Jha",\u{915}:"Ka",\u{916}:"Kha",\u{916}\u{93c}:"Khi",\u{932}:"L",\u{933}:"Li",\u{90c}:"Li",\u{934}:"Lii",\u{961}:"Lii",\u{92e}:"Ma",\u{928}:"Na",\u{919}:"Na",\u{91e}:"Nia",\u{923}:"Nae",\u{929}:"Ni",\u{950}:"oms",\u{92a}:"Pa",\u{915}\u{93c}:"Qi",\u{930}:"Ra",\u{90b}:"Ri",\u{960}:"Ri",\u{931}:"Ri",\u{938}:"Sa",\u{936}:"Sha",\u{937}:"Shha",\u{91f}:"Ta",\u{924}:"Ta",\u{920}:"Tha",\u{926}:"Tha",\u{925}:"Tha",\u{927}:"Thha",\u{921}\u{93c}:"ugDha",\u{922}\u{93c}:"ugDhha",\u{935}:"Va",\u{92f}:"Ya",\u{92f}\u{93c}:"Yi",\u{91c}\u{93c}:"Za",\u{259}:"e",\u{18f}:"E",\u{10d0}:"a",\u{10d1}:"b",\u{10d2}:"g",\u{10d3}:"d",\u{10d4}:"e",\u{10d5}:"v",\u{10d6}:"z",\u{10d7}:"t",\u{10d8}:"i",\u{10d9}:"k",\u{10da}:"l",\u{10db}:"m",\u{10dc}:"n",\u{10dd}:"o",\u{10de}:"p",\u{10df}:"zh",\u{10e0}:"r",\u{10e1}:"s",\u{10e2}:"t",\u{10e3}:"u",\u{10e4}:"p",\u{10e5}:"k",\u{10e6}:"gh",\u{10e7}:"q",\u{10e8}:"sh",\u{10e9}:"ch",\u{10ea}:"ts",\u{10eb}:"dz",\u{10ec}:"ts",\u{10ed}:"ch",\u{10ee}:"kh",\u{10ef}:"j",\u{10f0}:"h",\u{5d1}:"v",\u{5d2}\u{5bc}:"g",\u{5d2}:"g",\u{5d3}:"d",\u{5d3}\u{5bc}:"d",\u{5d4}:"h",\u{5d5}:"v",\u{5d6}:"z",\u{5d7}:"h",\u{5d8}:"t",\u{5d9}:"y",\u{5db}:"kh",\u{5da}:"kh",\u{5dc}:"l",\u{5de}:"m",\u{5dd}:"m",\u{5e0}:"n",\u{5df}:"n",\u{5e1}:"s",\u{5e4}:"f",\u{5e3}:"f",\u{5e5}:"ts",\u{5e6}:"ts",\u{5e7}:"k",\u{5e8}:"r",\u{5ea}\u{5bc}:"t",\u{5ea}:"t"};N.charmap=Object.assign({},OP);N.multicharmap=Object.assign({},VP);N.defaults={charmap:N.charmap,mode:"pretty",modes:{rfc3986:{replacement:"-",remove:null,lower:!0,charmap:N.charmap,multicharmap:N.multicharmap,trim:!0},pretty:{replacement:"-",remove:null,lower:!0,charmap:N.charmap,multicharmap:N.multicharmap,trim:!0}},multicharmap:N.multicharmap,fallback:!0};N.reset=function(){N.defaults.modes.rfc3986.charmap=N.defaults.modes.pretty.charmap=N.charmap=N.defaults.charmap=Object.assign({},OP),N.defaults.modes.rfc3986.multicharmap=N.defaults.modes.pretty.multicharmap=N.multicharmap=N.defaults.multicharmap=Object.assign({},VP),t={}};N.extend=function(G){let Z=Object.keys(G),Q={},J={};for(let Y=0;Y<Z.length;Y++)if(Z[Y].length>1)Q[Z[Y]]=G[Z[Y]];else J[Z[Y]]=G[Z[Y]];Object.assign(N.charmap,J),Object.assign(N.multicharmap,Q)};N.setLocale=function(G){t=SP[G]||{}};async function BB(G){return await(await z()).selectFrom("categorizables").where("id","=",G).where("is_active","=",!0).selectAll().executeTakeFirst()}async function KP(){return await(await z()).selectFrom("categorizables").selectAll().execute()}async function EP(G){return await(await z()).selectFrom("categorizables").where("name","=",G).where("is_active","=",!0).selectAll().execute()}async function LP(G){return await(await z()).selectFrom("categorizables").where("slug","=",G).where("is_active","=",!0).selectAll().executeTakeFirst()}async function AP(G){return await(await z()).selectFrom("categorizables").where("id","=",G).where("is_active","=",!0).selectAll().executeTakeFirst()}async function CP(G){let Z=await z();try{if(!await BB(G))throw Error(`Category with ID ${G} not found`);return(await Z.deleteFrom("categorizables").where("id","=",G).executeTakeFirst()).numDeletedRows>0}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to delete category: ${Q.message}`);throw Q}}async function jP(G){let Z=await z();if(!G.length)return 0;try{let Q=await Z.deleteFrom("categorizables").where("id","in",G).executeTakeFirst();return Number(Q.numDeletedRows)||0}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to delete categories in bulk: ${Q.message}`);throw Q}}async function UP(G){let Z=await z();try{if(!G.name||G.name.trim()==="")throw Error("Category name is required");if(!G.categorizable_type||G.categorizable_type.trim()==="")throw Error("Category categorizable_type is required");let Q={name:G.name,slug:b(G.name),description:G.description,categorizable_type:G.categorizable_type,is_active:G.is_active??!0},J=await Z.insertInto("categorizables").values(Q).returningAll().executeTakeFirst();if(!J)throw Error("Failed to create category");return J}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to create category: ${Q.message}`);throw Q}}async function xP(G){let Z=await z();try{let Q={category_id:G.category_id,categorizable_type:G.categorizable_type},J=await Z.insertInto("categorizable_models").values(Q).returningAll().executeTakeFirst();if(!J)throw Error("Failed to create categorizable model relationship");return J}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to create categorizable model relationship: ${Q.message}`);throw Q}}async function FP(G){let Z=await z();try{return await Z.transaction(async(J)=>{let Y=[];for(let V of G){let O={name:V.name,slug:b(V.name),description:V.description,categorizable_type:V.categorizable_type,is_active:V.is_active??!0},W=await J.insertInto("categorizables").values(O).returningAll().executeTakeFirst();if(!W)throw Error(`Failed to create category: ${V.name}`);Y.push(W)}return Y})}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to create categories: ${Q.message}`);throw Q}}async function NP(G){let Z=await z();try{let Q=G.id;if(!Q)throw Error("Category ID is required for update");if(G.name!==void 0){if(G.name.trim()==="")throw Error("Category name cannot be empty");G.slug=b(G.name)}let{id:J,...Y}=G,V=await Z.updateTable("categorizables").set(Y).where("id","=",Q).returningAll().executeTakeFirst();if(!V)throw Error("Failed to update category");return V}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to update category: ${Q.message}`);throw Q}}var FB={};u(FB,{update:()=>cP,store:()=>DP,fetchStatusDistributionDonut:()=>_P,fetchPostsWithMostComments:()=>xB,fetchMonthlyCommentCounts:()=>wP,fetchCommentsByStatus:()=>qP,fetchCommentsByCommentables:()=>vP,fetchComments:()=>RP,fetchCommentCountByPeriod:()=>kP,fetchCommentCountBarGraph:()=>TP,fetchCommentById:()=>PB,destroy:()=>fP,calculateApprovalRate:()=>IP,bulkDestroy:()=>yP});import{formatDate as n}from"@stacksjs/orm";async function RP(G={}){let Q=(await z()).selectFrom("commentables");if(G.status)Q=Q.where("status","=",G.status);if(G.commentables_id)Q=Q.where("commentables_id","=",G.commentables_id);if(G.commentables_type)Q=Q.where("commentables_type","=",G.commentables_type);if(G.limit)Q=Q.limit(G.limit);if(G.offset)Q=Q.offset(G.offset);return Q.selectAll().execute()}async function PB(G){return(await z()).selectFrom("commentables").where("id","=",G).selectAll().executeTakeFirst()}async function vP(G,Z,Q={}){let Y=(await z()).selectFrom("commentables").where("commentables_id","=",G).where("commentables_type","=",Z);if(Q.status)Y=Y.where("status","=",Q.status);if(Q.limit)Y=Y.limit(Q.limit);if(Q.offset)Y=Y.offset(Q.offset);return Y.selectAll().execute()}async function kP(G){let Z=await z();try{let Q=await Z.selectFrom("commentables").where("created_at",">=",new Date(Date.now()-G*24*60*60*1000).toISOString()).count();return Number(Q)||0}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to fetch comment count: ${Q.message}`);throw Q}}async function qP(G,Z={}){let Q=await z();try{let J=Q.selectFrom("commentables").where("status","=",G);if(Z.limit)J=J.limit(Z.limit);if(Z.offset)J=J.offset(Z.offset);return J.selectAll().execute()}catch(J){if(J instanceof Error)throw TypeError(`Failed to fetch comments by status: ${J.message}`);throw J}}async function IP(){let G=await z();try{let[Z,Q]=await Promise.all([G.selectFrom("commentables").where("status","=","approved").count(),G.selectFrom("commentables").count()]),J=Number(Z||0),Y=Number(Q||0),V=Y>0?J/Y*100:0;return{approved:J,total:Y,rate:V}}catch(Z){if(Z instanceof Error)throw TypeError(`Failed to calculate approval rate: ${Z.message}`);throw Z}}async function xB(G,Z={}){let Q=await z();try{let J=Q.selectFrom("posts").leftJoin("commentables","posts.id","=","commentables.commentables_id").where("commentables.created_at",">=",n(G.startDate)).where("commentables.created_at","<=",n(G.endDate)).select(["posts.id","posts.title"]).groupBy("posts.id","posts.title").orderBy("posts.id","desc");if(Z.limit)J=J.limit(Z.limit);return(await J.execute()).map((V)=>({id:Number(V.id),title:String(V.title),comment_count:Number(V.comment_count||0)}))}catch(J){if(J instanceof Error)throw TypeError(`Failed to fetch posts with most comments: ${J.message}`);throw J}}async function TP(G,Z={}){try{let Q=await xB(G,Z);return{labels:Q.map((J)=>J.title),values:Q.map((J)=>J.comment_count)}}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to fetch bar graph data: ${Q.message}`);throw Q}}async function _P(G){let Z=await z();try{let J=await Z.selectFrom("commentables").where("created_at",">=",n(G.startDate)).where("created_at","<=",n(G.endDate)).select(["status"]).groupBy("status").execute(),Y=J.reduce((L,E)=>L+Number(E.count||0),0),V=J.map((L)=>String(L.status)),O=J.map((L)=>Number(L.count||0)),W=O.map((L)=>Y>0?L/Y*100:0);return{labels:V,values:O,percentages:W}}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to fetch status distribution: ${Q.message}`);throw Q}}async function wP(G){let Z=await z();try{let Q=await Z.selectFrom("commentables").where("created_at",">=",n(G.startDate)).where("created_at","<=",n(G.endDate)).select(["created_at"]).groupBy("created_at").orderBy("created_at","asc").execute(),J=new Map;Q.forEach((O)=>{if(!O.created_at)return;let W=new Date(O.created_at),L=`${W.getFullYear()}-${String(W.getMonth()+1).padStart(2,"0")}`;J.set(L,(J.get(L)||0)+Number(O.count||0))});let Y=[],V=[];return J.forEach((O,W)=>{let[L,E]=W.split("-");Y.push(new Date(Number(L),Number(E)-1).toLocaleString("default",{month:"short",year:"numeric"})),V.push(O)}),{labels:Y,values:V}}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to fetch monthly comment counts: ${Q.message}`);throw Q}}async function fP(G){let Z=await z();try{if(!await PB(G))throw Error(`Comment with ID ${G} not found`);return(await Z.deleteFrom("commentables").where("id","=",G).executeTakeFirst()).numDeletedRows>0}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to delete comment: ${Q.message}`);throw Q}}async function yP(G){let Z=await z();if(!G.length)return 0;try{let Q=await Z.deleteFrom("commentables").where("id","in",G).executeTakeFirst();return Number(Q.numDeletedRows)||0}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to delete comments in bulk: ${Q.message}`);throw Q}}async function DP(G){let Z=await z();try{if(!G.title||G.title.trim()==="")throw Error("Comment title is required");if(!G.body||G.body.trim()==="")throw Error("Comment body is required");if(!G.commentables_type||G.commentables_type.trim()==="")throw Error("Comment commentables_type is required");let Q=["pending","approved","rejected"];if(G.status&&!Q.includes(G.status))throw Error(`Invalid comment status: ${G.status}`);let J={title:G.title,body:G.body,status:G.status,commentables_id:G.commentables_id,commentables_type:G.commentables_type,user_id:G.user_id,is_active:G.is_active},Y=await Z.insertInto("commentables").values(J).returningAll().executeTakeFirst();if(!Y)throw Error("Failed to create comment");return Y}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to store comment: ${Q.message}`);throw Q}}import{formatDate as d0}from"@stacksjs/orm";async function cP(G,Z){let Q=await z();try{if(Z.title!==void 0&&Z.title.trim()==="")throw Error("Comment title cannot be empty");if(Z.body!==void 0&&Z.body.trim()==="")throw Error("Comment body cannot be empty");let J=["pending","approved","rejected"];if(Z.status!==void 0&&!J.includes(Z.status))throw Error(`Invalid comment status: ${Z.status}`);let Y={updated_at:d0(new Date)};if(Z.title!==void 0)Y.title=Z.title;if(Z.body!==void 0)Y.body=Z.body;if(Z.status!==void 0)Y.status=Z.status;if(Z.commentables_id!==void 0)Y.commentables_id=Z.commentables_id;if(Z.commentables_type!==void 0)Y.commentables_type=Z.commentables_type;if(Z.approved_at!==void 0)Y.approved_at=Z.approved_at;if(Z.rejected_at!==void 0)Y.rejected_at=Z.rejected_at;return await Q.updateTable("commentables").set(Y).where("id","=",G).execute(),await Q.selectFrom("commentables").where("id","=",G).selectAll().executeTakeFirst()}catch(J){if(J instanceof Error)throw TypeError(`Failed to update comment: ${J.message}`);throw J}}var NB={};u(NB,{update:()=>dP,store:()=>nP,fetchPublishedAfter:()=>gP,fetchByMinViews:()=>bP,fetchByMinConversions:()=>pP,fetchById:()=>MB,fetchByAuthor:()=>hP,fetchAll:()=>mP,destroy:()=>lP,bulkDestroy:()=>uP});async function MB(G){return await(await z()).selectFrom("pages").where("id","=",G).selectAll().executeTakeFirst()}async function mP(){return await(await z()).selectFrom("pages").selectAll().execute()}async function hP(G){return await(await z()).selectFrom("pages").where("author_id","=",G).selectAll().execute()}async function bP(G){return await(await z()).selectFrom("pages").where("views",">=",G).selectAll().execute()}async function pP(G){return await(await z()).selectFrom("pages").where("conversions",">=",G).selectAll().execute()}async function gP(G){return await(await z()).selectFrom("pages").where("published_at",">",G).selectAll().execute()}async function lP(G){let Z=await z();try{if(!await MB(G))throw Error(`Page with ID ${G} not found`);return(await Z.deleteFrom("pages").where("id","=",G).executeTakeFirst()).numDeletedRows>0}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to delete page: ${Q.message}`);throw Q}}async function uP(G){let Z=await z();if(!G.length)return 0;try{let Q=await Z.deleteFrom("pages").where("id","in",G).executeTakeFirst();return Number(Q.numDeletedRows)||0}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to delete pages in bulk: ${Q.message}`);throw Q}}import{formatDate as sP}from"@stacksjs/orm";async function nP(G){let Z=await z();try{let Q={author_id:G.author_id,title:G.title,template:G.template,views:G.views||0,conversions:G.conversions||0,created_at:sP(new Date),updated_at:sP(new Date)},J=await Z.insertInto("pages").values(Q).returningAll().executeTakeFirst();if(!J)throw Error("Failed to create page");return J}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to create page: ${Q.message}`);throw Q}}import{formatDate as o0}from"@stacksjs/orm";async function dP(G,Z){let Q=await z();try{let J={...Z,updated_at:o0(new Date)},Y=await Q.updateTable("pages").set(J).where("id","=",G).returningAll().executeTakeFirst();if(!Y)throw Error("Failed to update page");return Y}catch(J){if(J instanceof Error)throw TypeError(`Failed to update page: ${J.message}`);throw J}}var RB={};u(RB,{update:()=>H0,sync:()=>Z0,store:()=>M0,fetchPublishedAfter:()=>rP,fetchByStatus:()=>iP,fetchByMinViews:()=>tP,fetchById:()=>GB,fetchByCategory:()=>aP,fetchByAuthor:()=>eP,fetchAll:()=>oP,detach:()=>Q0,destroy:()=>B0,bulkDestroy:()=>P0,attach:()=>G0});async function GB(G){return await(await z()).selectFrom("posts").where("id","=",G).selectAll().executeTakeFirst()}async function oP(){return await(await z()).selectFrom("posts").selectAll().execute()}async function iP(G){return await(await z()).selectFrom("posts").where("status","=",G).selectAll().execute()}async function aP(G){return await(await z()).selectFrom("posts").where("category","=",G).selectAll().execute()}async function eP(G){return await(await z()).selectFrom("posts").where("author","=",G).selectAll().execute()}async function tP(G){return await(await z()).selectFrom("posts").where("views",">=",G).selectAll().execute()}async function rP(G){return await(await z()).selectFrom("posts").where("published_at",">",G).selectAll().execute()}async function B0(G){let Z=await z();try{if(!await GB(G))throw Error(`Post with ID ${G} not found`);await Z.deleteFrom("categorizable_models").where("categorizable_id","=",G).where("categorizable_type","=","posts").execute();let J=await Z.deleteFrom("posts").where("id","=",G).executeTakeFirst();return J?.numDeletedRows?J.numDeletedRows>0:!1}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to delete post: ${Q.message}`);throw Q}}async function P0(G){let Z=await z();if(!G.length)return 0;try{let J=(await Z.selectFrom("posts").select(["id"]).where("id","in",G).execute()).map((V)=>V.id);if(!J.length)return 0;await Z.deleteFrom("categorizable_models").where("categorizable_id","in",J).where("categorizable_type","=","posts").execute();let Y=await Z.deleteFrom("posts").where("id","in",J).executeTakeFirst();return Number(Y?.numDeletedRows)||0}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to delete posts in bulk: ${Q.message}`);throw Q}}var{randomUUIDv7:i0}=globalThis.Bun;import{formatDate as QB}from"@stacksjs/orm";var a0="Draft";async function M0(G){let Z=await z();try{if(!G.title||typeof G.title==="string"&&G.title.trim()==="")throw Error("Post title is required");let Q=G.content||G.body,J=G,Y={author_id:J.author_id,uuid:i0(),title:G.title,poster:G.poster,content:Q,body:G.body,category:G.category,excerpt:G.excerpt,is_featured:J.is_featured?Date.now():void 0,views:G.views||0,published_at:J.published_at||Date.now(),status:G.status||a0},V=await Z.insertInto("posts").values(Y).returningAll().executeTakeFirst();if(!V)throw Error("Failed to create post");return V}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to create post: ${Q.message}`);throw Q}}async function G0(G,Z,Q){let J=await z();try{let Y=Z==="categorizable_models"?"categorizable_id":"taggable_id",V=Z==="categorizable_models"?"categorizable_type":"taggable_type",O=Z==="categorizable_models"?"category_id":"tag_id",W=Q.map((L)=>({[O]:L,[Y]:G,[V]:"posts",created_at:QB(new Date),updated_at:QB(new Date)}));for(let L of W)await J.insertInto(Z).values(L).execute()}catch(Y){if(Y instanceof Error)throw TypeError(`Failed to attach records: ${Y.message}`);throw Y}}async function Q0(G,Z,Q){let J=await z();try{let Y=Z==="categorizable_models"?"categorizable_id":"taggable_id",V=Z==="categorizable_models"?"categorizable_type":"taggable_type",O=J.deleteFrom(Z).where(Y,"=",G).where(V,"=","posts");if(Q)O=O.where("id","in",Q);await O.execute()}catch(Y){if(Y instanceof Error)throw TypeError(`Failed to detach records: ${Y.message}`);throw Y}}async function Z0(G,Z,Q){let J=await z();try{let Y=Z==="categorizable_models"?"categorizable_id":"taggable_id",V=Z==="categorizable_models"?"categorizable_type":"taggable_type",W=(await J.selectFrom(Z).select(["id"]).where(Y,"=",G).where(V,"=","posts").execute()).map((C)=>C.id),L=W.filter((C)=>!Q.includes(C)),E=Q.filter((C)=>!W.includes(C));if(L.length>0)await J.deleteFrom(Z).where(Y,"=",G).where(V,"=","posts").where("id","in",L).execute();if(E.length>0){let C=E.map(()=>({[Y]:G,[V]:"posts",created_at:QB(new Date),updated_at:QB(new Date)}));await J.insertInto(Z).values(C).execute()}}catch(Y){if(Y instanceof Error)throw TypeError(`Failed to sync records: ${Y.message}`);throw Y}}async function H0(G,Z){let Q=await z();try{if(Z.title!==void 0&&typeof Z.title==="string"&&Z.title.trim()==="")throw Error("Post title cannot be empty");let J=["published","draft","archived"];if(Z.status!==void 0&&typeof Z.status==="string"&&!J.includes(Z.status))throw Error(`Invalid post status: ${Z.status}`);if(Z.views!==void 0&&typeof Z.views==="number"&&Z.views<0)throw Error("Views count cannot be negative");let Y=await Q.updateTable("posts").set(Z).where("id","=",G).returningAll().executeTakeFirst();if(!Y)throw Error("Failed to update post");return Y}catch(J){if(J instanceof Error)throw TypeError(`Failed to update post: ${J.message}`);throw J}}var vB={};u(vB,{update:()=>z0,store:()=>J0,fetchTags:()=>$0,fetchTagById:()=>Y0,destroy:()=>W0,bulkDestroy:()=>X0});async function W0(G){let Z=await z();if(!await Z.selectFrom("taggables").where("id","=",G).selectAll().executeTakeFirst())throw Error(`Tag with ID ${G} not found`);await Z.deleteFrom("taggables").where("id","=",G).executeTakeFirst()}async function X0(G){let Z=await z();try{await Z.deleteFrom("taggables").where("id","in",G).execute()}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to delete tags: ${Q.message}`);throw Q}}async function J0(G){let Z=await z();try{if(!G.name||G.name.trim()==="")throw Error("Tag name is required");if(!G.taggable_type||G.taggable_type.trim()==="")throw Error("Tag taggable_type is required");let Q=b(G.name);if(await Z.selectFrom("taggables").selectAll().where("slug","=",Q).executeTakeFirst())throw Error(`Tag with unique slug "${Q}" already exists`);let Y={name:G.name,slug:Q,description:G.description,is_active:G.is_active??!0,taggable_type:G.taggable_type};if(G.taggable_id!==void 0)Y.taggable_id=G.taggable_id;let V=await Z.insertInto("taggables").values(Y).returningAll().executeTakeFirst();if(!V)throw Error("Failed to create tag");return V}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to store tag: ${Q.message}`);throw Q}}async function Y0(G){let Z=await z();try{let Q=await Z.selectFrom("taggables").where("id","=",G).selectAll().executeTakeFirst();if(!Q)return;return Q}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to fetch tag: ${Q.message}`);throw Q}}async function $0(){let G=await z();try{return await G.selectFrom("taggables").where("is_active","=",!0).selectAll().execute()}catch(Z){if(Z instanceof Error)throw TypeError(`Failed to fetch tags: ${Z.message}`);throw Z}}import{uniqueSlug as e0}from"@stacksjs/slug";async function z0(G){let Z=await z();try{let Q=G.id;if(!Q)throw Error("Tag ID is required for update");if(G.name!==void 0){if(G.name.trim()==="")throw Error("Tag name cannot be empty");let O=await e0(G.name,{table:"taggables",column:"slug"});if(await Z.selectFrom("taggables").selectAll().where("slug","=",O).where("id","!=",Q).executeTakeFirst())throw Error(`Tag with unique slug "${O}" already exists`);G.slug=O}let{id:J,...Y}=G,V=await Z.updateTable("taggables").set(Y).where("id","=",Q).returningAll().executeTakeFirst();if(!V)throw Error("Failed to update tag");return V}catch(Q){if(Q instanceof Error)throw TypeError(`Failed to update tag: ${Q.message}`);throw Q}}var t0={posts:RB,postCategories:UB,tags:vB,comments:FB,authors:XB,pages:NB},g2=t0;export{vB as tags,RB as posts,NB as pages,g2 as default,FB as comments,t0 as cms,UB as categorizable,XB as authors};
@@ -0,0 +1,30 @@
1
+ import * as authors from './authors';
2
+ import * as comments from './commentables';
3
+ import * as pages from './pages';
4
+ import * as postCategories from './categorizables';
5
+ import * as posts from './posts';
6
+ import * as tags from './taggables';
7
+ export declare const cms: CmsNamespace;
8
+ export declare interface CmsNamespace {
9
+ posts: PostsModule
10
+ postCategories: PostCategoriesModule
11
+ tags: TagsModule
12
+ comments: CommentsModule
13
+ authors: AuthorsModule
14
+ pages: PagesModule
15
+ }
16
+ declare type PostsModule = typeof posts;
17
+ declare type PostCategoriesModule = typeof postCategories;
18
+ declare type TagsModule = typeof tags;
19
+ declare type CommentsModule = typeof comments;
20
+ declare type AuthorsModule = typeof authors;
21
+ declare type PagesModule = typeof pages;
22
+ export {
23
+ authors,
24
+ postCategories as categorizable,
25
+ comments,
26
+ pages,
27
+ posts,
28
+ tags,
29
+ };
30
+ export default cms;
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@stacksjs/cms",
3
+ "type": "module",
4
+ "version": "0.70.23",
5
+ "description": "Stacks cms utilities.",
6
+ "author": "Chris Breuer",
7
+ "contributors": [
8
+ "Chris Breuer <chris@stacksjs.com>"
9
+ ],
10
+ "license": "MIT",
11
+ "funding": "https://github.com/sponsors/chrisbbreuer",
12
+ "homepage": "https://github.com/stacksjs/stacks/tree/main/storage/framework/core/cms#readme",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/stacksjs/stacks.git",
16
+ "directory": "./storage/framework/core/cms"
17
+ },
18
+ "bugs": {
19
+ "url": "https://github.com/stacksjs/stacks/issues"
20
+ },
21
+ "keywords": [
22
+ "cms",
23
+ "utilities",
24
+ "functions",
25
+ "bun",
26
+ "stacks"
27
+ ],
28
+ "exports": {
29
+ ".": {
30
+ "bun": "./src/index.ts",
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.js"
33
+ },
34
+ "./*": {
35
+ "bun": "./src/*",
36
+ "import": "./dist/*"
37
+ }
38
+ },
39
+ "module": "dist/index.js",
40
+ "types": "dist/index.d.ts",
41
+ "files": [
42
+ "README.md",
43
+ "dist"
44
+ ],
45
+ "scripts": {
46
+ "build": "bun build.ts",
47
+ "typecheck": "bun tsc --noEmit",
48
+ "prepublishOnly": "bun run build"
49
+ },
50
+ "dependencies": {
51
+ "ts-slug": "^0.1.0",
52
+ "ts-spreadsheets": "^0.2.0"
53
+ },
54
+ "devDependencies": {
55
+ "better-dx": "^0.2.12"
56
+ }
57
+ }