firstly 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/esm/auth/Entities.js +2 -2
  3. package/esm/auth/server/helperRole.js +5 -2
  4. package/esm/auth/static/assets/Page-C1pM-UDt.js +2 -2
  5. package/esm/bin/cmd.js +1 -1
  6. package/esm/carbone/CarboneController.d.ts +35 -0
  7. package/esm/carbone/CarboneController.js +155 -0
  8. package/esm/carbone/Roles_Carbon.d.ts +8 -0
  9. package/esm/carbone/Roles_Carbon.js +8 -0
  10. package/esm/carbone/carboneEntities.d.ts +21 -0
  11. package/esm/carbone/carboneEntities.js +83 -0
  12. package/esm/carbone/index.d.ts +29 -0
  13. package/esm/carbone/index.js +68 -0
  14. package/esm/carbone/server/CarboneServer.d.ts +19 -0
  15. package/esm/carbone/server/CarboneServer.js +38 -0
  16. package/esm/carbone/server/index.d.ts +7 -0
  17. package/esm/carbone/server/index.js +23 -0
  18. package/esm/changeLog/changeLogEntities.js +1 -1
  19. package/esm/changeLog/index.d.ts +37 -1
  20. package/esm/changeLog/index.js +28 -0
  21. package/esm/changeLog/server/index.d.ts +17 -28
  22. package/esm/changeLog/server/index.js +17 -28
  23. package/esm/cron/Cron.js +1 -1
  24. package/esm/index.d.ts +5 -3
  25. package/esm/index.js +5 -3
  26. package/esm/internals/FF_Entity.js +4 -27
  27. package/esm/internals/FF_Fields.d.ts +3 -2
  28. package/esm/internals/FF_Fields.js +13 -9
  29. package/esm/internals/index.d.ts +1 -1
  30. package/esm/mail/Mail.js +1 -1
  31. package/esm/svelte/FF_Cell.svelte +1 -0
  32. package/esm/svelte/FF_Cell.svelte.d.ts +10 -3
  33. package/esm/svelte/FF_Cell_Caption.svelte.d.ts +10 -3
  34. package/esm/svelte/FF_Cell_Display.svelte.d.ts +10 -3
  35. package/esm/svelte/FF_Cell_Edit.svelte.d.ts +11 -4
  36. package/esm/svelte/FF_Cell_Error.svelte.d.ts +10 -3
  37. package/esm/svelte/FF_Cell_Hint.svelte.d.ts +10 -3
  38. package/esm/svelte/FF_Display.svelte.d.ts +10 -3
  39. package/esm/svelte/FF_Edit.svelte.d.ts +11 -4
  40. package/esm/svelte/FF_Error.svelte.d.ts +10 -3
  41. package/esm/svelte/FF_Field.svelte.d.ts +10 -3
  42. package/esm/svelte/FF_Form.svelte.d.ts +10 -3
  43. package/esm/svelte/FF_Grid.svelte +1 -1
  44. package/esm/svelte/FF_Grid.svelte.d.ts +10 -4
  45. package/esm/svelte/FF_Hint.svelte.d.ts +10 -3
  46. package/esm/svelte/FF_Label.svelte.d.ts +10 -3
  47. package/esm/svelte/FF_Layout.svelte.d.ts +10 -3
  48. package/esm/ui/Button.svelte +0 -1
  49. package/esm/ui/Field.svelte +19 -2
  50. package/esm/ui/LibIcon.d.ts +2 -0
  51. package/esm/ui/LibIcon.js +3 -1
  52. package/esm/ui/dialog/DialogPrimitive.svelte +1 -1
  53. package/esm/ui/internals/select/SelectMelt.svelte +22 -25
  54. package/esm/virtual/Customer.js +1 -1
  55. package/esm/virtual/UIEntity.js +1 -1
  56. package/package.json +11 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # firstly
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#176](https://github.com/jycouet/firstly/pull/176)
8
+ [`1859bba`](https://github.com/jycouet/firstly/commit/1859bbaff86d3592900c7a18de1491203f8ebe8d)
9
+ Thanks [@jycouet](https://github.com/jycouet)! - align with remult 3.1 (cuid to id)
10
+
11
+ ### Patch Changes
12
+
13
+ - [#172](https://github.com/jycouet/firstly/pull/172)
14
+ [`ab633f5`](https://github.com/jycouet/firstly/commit/ab633f59964f437c636f84c06e0ba82d11954c0a)
15
+ Thanks [@jycouet](https://github.com/jycouet)! - new module https://carbone.io/ 🎉
16
+
17
+ ## 0.1.3
18
+
19
+ ### Patch Changes
20
+
21
+ - [`2348b71`](https://github.com/jycouet/firstly/commit/2348b7172d67b2357daf6cc57fbbd69d13345505)
22
+ Thanks [@jycouet](https://github.com/jycouet)! - export `withChangeLog` to chain options for
23
+ `@Entity`
24
+
25
+ - [`51cbd73`](https://github.com/jycouet/firstly/commit/51cbd7318797bf740627ae4cac8cc5074f7dab5e)
26
+ Thanks [@jycouet](https://github.com/jycouet)! - export @kitql/helper as `h`
27
+
3
28
  ## 0.1.2
4
29
 
5
30
  ### Patch Changes
@@ -21,7 +21,7 @@ let FFAuthUser = class FFAuthUser {
21
21
  sessions;
22
22
  };
23
23
  __decorate([
24
- Fields.cuid()
24
+ Fields.id()
25
25
  ], FFAuthUser.prototype, "id", void 0);
26
26
  __decorate([
27
27
  Fields.createdAt({ includeInApi: [FF_Role_Auth.FF_Role_Auth_Admin, FF_Role.FF_Role_Admin] })
@@ -88,7 +88,7 @@ let FFAuthAccount = class FFAuthAccount {
88
88
  metadata;
89
89
  };
90
90
  __decorate([
91
- Fields.cuid()
91
+ Fields.id()
92
92
  ], FFAuthAccount.prototype, "id", void 0);
93
93
  __decorate([
94
94
  Fields.createdAt()
@@ -41,8 +41,11 @@ export const linkRoleToUsersFromEnv = async (o) => {
41
41
  if (!user) {
42
42
  user = repo(userEntity).create({ id: a.userId, name: nameify(providerUserId) });
43
43
  }
44
- user.roles = [...new Set([...user.roles, ...roles].sort())];
45
- await repo(userEntity).save(user);
44
+ const newRoles = [...new Set([...user.roles, ...roles].sort())];
45
+ if ((newRoles ?? []).join(',') !== (user.roles ?? []).join(',')) {
46
+ user.roles = newRoles;
47
+ await repo(userEntity).save(user);
48
+ }
46
49
  }
47
50
  }
48
51
  if (providersInfo.length > 0) {
@@ -4,7 +4,7 @@ var jn=Object.defineProperty;var Kr=i=>{throw TypeError(i)};var Jn=(i,e,t)=>e in
4
4
  `,e,{arguments:this.args,error:r}),r}}}class gn{constructor(e,t,r,n){f(this,"entity");f(this,"sql");f(this,"iAmUsed");f(this,"strategy");this.entity=e,this.sql=t,this.iAmUsed=r,this.strategy=n}async init(){let e=await wn(this.entity,t=>this.sql.wrapIdentifier(t));return await this.iAmUsed(e),e}async count(e){let t=await this.init(),r="select count(*) count from "+t.$entityName,n=this.sql.createCommand();if(e){let s=new Ue(n,t);e.__applyToConsumer(s),r+=await s.resolveWhere()}return n.execute(r).then(s=>Number(s.rows[0].count))}async groupBy(e){return await Ja(e,await this.init(),this.sql.createCommand(),this.sql._getSourceSql().orderByNullsFirst,this.sql._getSourceSql().getLimitSqlSyntax)}async find(e){let t=await this.init(),{colKeys:r,select:n}=this.buildSelect(t);n="select "+n,n+=`
5
5
  from `+t.$entityName;let s=this.sql.createCommand();if(e){if(e.where){let a=new Ue(s,t);e.where.__applyToConsumer(a),n+=await a.resolveWhere()}if(e.limit&&(e.orderBy=Ae.createUniqueSort(this.entity,e.orderBy)),e.orderBy||(e.orderBy=Ae.createUniqueSort(this.entity,new Ae)),e.orderBy){let a=!0,o=[];for(const l of e.orderBy.Segments)o.push(l);for(const l of o)a?(n+=" Order By ",a=!1):n+=", ",n+=t.$dbNameOf(l.field),l.isDescending&&(n+=" desc"),this.sql._getSourceSql().orderByNullsFirst&&(l.isDescending?n+=" nulls last":n+=" nulls first")}if(e.limit){let a=1;e.page&&(a=e.page),a<1&&(a=1),n+=" "+this.strategy.getLimitSqlSyntax(e.limit,(a-1)*e.limit)}}return s.execute(n).then(a=>a.rows.map(o=>this.buildResultRow(r,o,a)))}buildResultRow(e,t,r){let n={};for(let s=0;s<e.length;s++){const a=e[s];try{n[a.key]=a.valueConverter.fromDb(t[r.getColumnKeyInResultForIndexInSelect(s)])}catch(o){throw new Error("Failed to load from db:"+a.key+`\r
6
6
  `+o)}}return n}buildSelect(e){let t="",r=[];for(const n of this.entity.fields)n.isServerExpression||(r.length>0&&(t+=", "),t+=e.$dbNameOf(n),n.options.sqlExpression&&(t+=" as "+n.key),r.push(n));return{colKeys:r,select:t}}async update(e,t){let r=await this.init(),n=this.sql.createCommand(),s="update "+r.$entityName+" set ",a=!1;for(const h of this.entity.fields)if(!Ii(h,r)){if(t[h.key]!==void 0){let y=h.valueConverter.toDb(t[h.key]);y!==void 0&&(a?s+=", ":a=!0,s+=r.$dbNameOf(h)+" = "+n.param(y))}}const o=this.entity.idMetadata.getIdFilter(e);let l=new Ue(n,r);L.fromEntityFilter(this.entity,o).__applyToConsumer(l),s+=await l.resolveWhere();let{colKeys:u,select:d}=this.buildSelect(r),c=!0;return this.sql._getSourceSql().doesNotSupportReturningSyntax&&(c=!1),c&&this.sql._getSourceSql().doesNotSupportReturningSyntaxOnlyForUpdate&&(c=!1),c&&(s+=" returning "+d),n.execute(s).then(h=>{var y,p;if((p=(y=this.sql._getSourceSql()).afterMutation)==null||p.call(y),!c)return _i(this.entity,this,t,e,"update");if(h.rows.length!=1)throw new Error("Failed to update row with id "+e+", rows updated: "+h.rows.length);return this.buildResultRow(u,h.rows[0],h)})}async delete(e){let t=await this.init(),r=this.sql.createCommand(),n=new Ue(r,t);L.fromEntityFilter(this.entity,this.entity.idMetadata.getIdFilter(e)).__applyToConsumer(n);let s="delete from "+t.$entityName;return s+=await n.resolveWhere(),r.execute(s).then(()=>{var a,o;(o=(a=this.sql._getSourceSql()).afterMutation)==null||o.call(a)})}async insert(e){let t=await this.init(),r=this.sql.createCommand(),n="",s="",a=!1;for(const d of this.entity.fields)if(!Ii(d,t)){let c=d.valueConverter.toDb(e[d.key]);c!=null&&(a?(n+=", ",s+=", "):a=!0,n+=t.$dbNameOf(d),s+=r.param(c))}let o=`insert into ${t.$entityName} (${n}) values (${s})`,{colKeys:l,select:u}=this.buildSelect(t);return this.sql._getSourceSql().doesNotSupportReturningSyntax||(o+=" returning "+u),await r.execute(o).then(d=>{var c,h;if((h=(c=this.sql._getSourceSql()).afterMutation)==null||h.call(c),this.sql._getSourceSql().doesNotSupportReturningSyntax)if(Na(this.entity.idMetadata.field)){const y=d.rows[0];if(typeof y!="number")throw new Error("Auto increment, for a database that is does not support returning syntax, should return an array with the single last added id. Instead it returned: "+JSON.stringify(y));return this.find({where:new L(p=>p.isEqualTo(this.entity.idMetadata.field,y))}).then(p=>p[0])}else return _i(this.entity,this,e,void 0,"insert");return this.buildResultRow(l,d.rows[0],d)})}}f(gn,"LogToConsole",!1);class ja{execute(e){throw new Error("Method not implemented.")}addParameterAndReturnSqlToken(e){return this.param(e)}param(e){return e===null?"null":(e instanceof Date&&(e=e.toISOString()),typeof e=="string"?(e==null&&(e=""),"'"+e.replace(/'/g,"''")+"'"):e.toString())}}function _i(i,e,t,r,n){const s=r!==void 0?i.idMetadata.getIdFilter(r):{};return e.find({where:new L(a=>{for(const o of i.idMetadata.fields)a.isEqualTo(o,t[o.key]??s[o.key])})}).then(a=>{if(a.length!=1)throw new Error(`Failed to ${n} row - result contained ${a.length} rows`);return a[0]})}async function Ja(i,e,t,r,n){let s="select count(*) as count",a="";const o=[];if(o.push((c,h)=>{h[Ks]=Number(c)}),i!=null&&i.group)for(const c of i==null?void 0:i.group)c.isServerExpression||(s+=", "+e.$dbNameOf(c),c.options.sqlExpression&&(s+=" as "+c.key),a==""?a=" group by ":a+=", ",a+=e.$dbNameOf(c)),o.push((h,y)=>{y[c.key]=c.valueConverter.fromDb(h)});for(const c of Ys){const h=i==null?void 0:i[c];if(h)for(const y of h){if(!y.isServerExpression){const b=await e.$dbNameOf(y);s+=`, ${d(c,b)} as ${y.key}_${c}`}const p=y.valueType===Number||c=="distinctCount";o.push((b,w)=>{p&&(b=Number(b)),w[y.key]={...w[y.key],[c]:b}})}}if(s+=`
7
- from `+e.$entityName,i!=null&&i.where){let c=new Ue(t,e);i==null||i.where.__applyToConsumer(c),s+=await c.resolveWhere()}a&&(s+=a);let l="";if(i!=null&&i.orderBy){for(const c of i==null?void 0:i.orderBy){l==""?l=" order by ":l+=", ";let h=c.field&&await e.$dbNameOf(c.field);switch(c.operation){case"count":h=c.operation+"(*)";break;case void 0:break;default:h=d(c.operation,h)}l+=h,c.isDescending&&(l+=" desc"),r&&(c.isDescending?l+=" nulls last":l+=" nulls first")}l&&(s+=l)}if(i!=null&&i.limit){let c=1;i.page&&(c=i.page),c<1&&(c=1),s+=" "+n(i.limit,(c-1)*i.limit)}const u=await t.execute(s);return u.rows.map(c=>{let h={};return o.forEach((y,p)=>y(c[u.getColumnKeyInResultForIndexInSelect(p)],h)),h});function d(c,h){return c==="distinctCount"?`count (distinct ${h})`:`${c}( ${h} )`}}class Ue{constructor(e,t){f(this,"r");f(this,"nameProvider");f(this,"where","");f(this,"_addWhere",!0);f(this,"promises",[]);this.r=e,this.nameProvider=t}async resolveWhere(){for(;this.promises.length>0;){let e=this.promises;this.promises=[];for(const t of e)await t}return this.where}custom(e,t){throw new Error("Custom filter should be translated before it gets here")}or(e){let t="";this.promises.push((async()=>{for(const r of e){let n=new Ue(this.r,this.nameProvider);n._addWhere=!1,r.__applyToConsumer(n);let s=await n.resolveWhere();if(!s)return;s.length>0&&(t.length>0&&(t+=" or "),e.length>1?t+="("+s+")":t+=s)}this.addToWhere("("+t+")")})())}not(e){this.promises.push((async()=>{let t=new Ue(this.r,this.nameProvider);t._addWhere=!1,e.__applyToConsumer(t);let r=await t.resolveWhere();r&&this.addToWhere("not ("+r+")")})())}isNull(e){this.promises.push((async()=>this.addToWhere(this.nameProvider.$dbNameOf(e)+" is null"))())}isNotNull(e){this.promises.push((async()=>this.addToWhere(this.nameProvider.$dbNameOf(e)+" is not null"))())}isIn(e,t){this.promises.push((async()=>{t&&t.length>0?this.addToWhere(this.nameProvider.$dbNameOf(e)+" in ("+t.map(r=>this.r.param(e.valueConverter.toDb(r))).join(",")+")"):this.addToWhere("1 = 0 /*isIn with no values*/")})())}isEqualTo(e,t){this.add(e,t,"=")}isDifferentFrom(e,t){this.add(e,t,"<>")}isGreaterOrEqualTo(e,t){this.add(e,t,">=")}isGreaterThan(e,t){this.add(e,t,">")}isLessOrEqualTo(e,t){this.add(e,t,"<=")}isLessThan(e,t){this.add(e,t,"<")}containsCaseInsensitive(e,t){this.promises.push((async()=>{this.addToWhere("lower ("+this.nameProvider.$dbNameOf(e)+") like lower ('%"+t.replace(/'/g,"''")+"%')")})())}notContainsCaseInsensitive(e,t){this.promises.push((async()=>{this.addToWhere("not lower ("+this.nameProvider.$dbNameOf(e)+") like lower ('%"+t.replace(/'/g,"''")+"%')")})())}startsWithCaseInsensitive(e,t){this.promises.push((async()=>{this.addToWhere("lower ("+this.nameProvider.$dbNameOf(e)+") like lower ('"+t.replace(/'/g,"''")+"%')")})())}endsWithCaseInsensitive(e,t){this.promises.push((async()=>{this.addToWhere("lower ("+this.nameProvider.$dbNameOf(e)+") like lower ('%"+t.replace(/'/g,"''")+"')")})())}add(e,t,r){this.promises.push((async()=>{let n=this.nameProvider.$dbNameOf(e)+" "+r+" "+this.r.param(e.valueConverter.toDb(t));this.addToWhere(n)})())}addToWhere(e){this.where.length==0?this._addWhere&&(this.where+=" where "):this.where+=" and ",this.where+=e}databaseCustom(e){this.promises.push((async()=>{if(e!=null&&e.buildSql){let t=new Ua(this.r,this.nameProvider.wrapIdentifier),r=await e.buildSql(t);typeof r!="string"&&(r=t.sql),r&&this.addToWhere("("+r+")")}})())}}class Ua{constructor(e,t){f(this,"r");f(this,"wrapIdentifier");f(this,"sql","");f(this,"param",(e,t)=>(typeof t=="object"&&t.valueConverter.toDb&&(e=t.valueConverter.toDb(e)),this.r.param(e)));f(this,"filterToRaw",async(e,t)=>yt.filterToRaw(e,t,this,void 0,this.wrapIdentifier));this.r=e,this.wrapIdentifier=t,this.param.bind(this),this.filterToRaw.bind(this)}addParameterAndReturnSqlToken(e){return this.param(e)}}function Ii(i,e){return i.dbReadOnly||i.isServerExpression||i.options.sqlExpression&&i.dbName!=e.$dbNameOf(i)}async function wn(i,e){return Va(i,e,!0)}async function Va(i,e,t=!1){let r=typeof e=="function"?{wrapIdentifier:e}:e||{};var n=$a(i);r.wrapIdentifier||(r.wrapIdentifier=be.dataProvider.wrapIdentifier),r.wrapIdentifier||(r.wrapIdentifier=a=>a);const s={$entityName:await fn(n,r.wrapIdentifier),toString:()=>s.$entityName,$dbNameOf:a=>{var o;return typeof a=="string"?o=a:o=a.key,s[o]},wrapIdentifier:r.wrapIdentifier};for(const a of n.fields){let o=await jr(a,n,r.wrapIdentifier,t);a.options.sqlExpression||(typeof r.tableName=="string"?o=r.wrapIdentifier(r.tableName)+"."+o:r.tableName===!0&&(o=s.$entityName+"."+o)),s[a.key]=o}return s}function vn(i,...e){return(t,r)=>{let n=t;for(;n!=null;){for(const a in n)if(Object.prototype.hasOwnProperty.call(n,a)){const o=t[a];o!=null&&o.rawFilterInfo&&(o.rawFilterInfo.key||(o.rawFilterInfo.key=a))}n=Object.getPrototypeOf(n)}let s=a=>{let o={};for(const u of e)u&&(typeof u=="function"?u(o,a):Object.assign(o,u));let l=Object.getPrototypeOf(t);if(l){let u=Oe(l,!1);if(u){let d=u(a);d&&(o={...d,...o})}}return o};return D.allEntities.push(t),ba(t,{key:i}),t[Yi]=s,t[Zi]=i,t}}var Zt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},lt={},Je={},re={},ce={},Oi;function bn(){if(Oi)return ce;Oi=1,Object.defineProperty(ce,"__esModule",{value:!0}),ce.output=ce.exists=ce.hash=ce.bytes=ce.bool=ce.number=ce.isBytes=void 0;function i(l){if(!Number.isSafeInteger(l)||l<0)throw new Error(`positive integer expected, not ${l}`)}ce.number=i;function e(l){if(typeof l!="boolean")throw new Error(`boolean expected, not ${l}`)}ce.bool=e;function t(l){return l instanceof Uint8Array||l!=null&&typeof l=="object"&&l.constructor.name==="Uint8Array"}ce.isBytes=t;function r(l,...u){if(!t(l))throw new Error("Uint8Array expected");if(u.length>0&&!u.includes(l.length))throw new Error(`Uint8Array expected of length ${u}, not of length=${l.length}`)}ce.bytes=r;function n(l){if(typeof l!="function"||typeof l.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");i(l.outputLen),i(l.blockLen)}ce.hash=n;function s(l,u=!0){if(l.destroyed)throw new Error("Hash instance has been destroyed");if(u&&l.finished)throw new Error("Hash#digest() has already been called")}ce.exists=s;function a(l,u){r(l);const d=u.outputLen;if(l.length<d)throw new Error(`digestInto() expects output buffer of length at least ${d}`)}ce.output=a;const o={number:i,bool:e,bytes:r,hash:n,exists:s,output:a};return ce.default=o,ce}var j={},ki;function Wa(){if(ki)return j;ki=1,Object.defineProperty(j,"__esModule",{value:!0}),j.add5L=j.add5H=j.add4H=j.add4L=j.add3H=j.add3L=j.add=j.rotlBL=j.rotlBH=j.rotlSL=j.rotlSH=j.rotr32L=j.rotr32H=j.rotrBL=j.rotrBH=j.rotrSL=j.rotrSH=j.shrSL=j.shrSH=j.toBig=j.split=j.fromBig=void 0;const i=BigInt(2**32-1),e=BigInt(32);function t(E,C=!1){return C?{h:Number(E&i),l:Number(E>>e&i)}:{h:Number(E>>e&i)|0,l:Number(E&i)|0}}j.fromBig=t;function r(E,C=!1){let I=new Uint32Array(E.length),v=new Uint32Array(E.length);for(let S=0;S<E.length;S++){const{h:$,l:x}=t(E[S],C);[I[S],v[S]]=[$,x]}return[I,v]}j.split=r;const n=(E,C)=>BigInt(E>>>0)<<e|BigInt(C>>>0);j.toBig=n;const s=(E,C,I)=>E>>>I;j.shrSH=s;const a=(E,C,I)=>E<<32-I|C>>>I;j.shrSL=a;const o=(E,C,I)=>E>>>I|C<<32-I;j.rotrSH=o;const l=(E,C,I)=>E<<32-I|C>>>I;j.rotrSL=l;const u=(E,C,I)=>E<<64-I|C>>>I-32;j.rotrBH=u;const d=(E,C,I)=>E>>>I-32|C<<64-I;j.rotrBL=d;const c=(E,C)=>C;j.rotr32H=c;const h=(E,C)=>E;j.rotr32L=h;const y=(E,C,I)=>E<<I|C>>>32-I;j.rotlSH=y;const p=(E,C,I)=>C<<I|E>>>32-I;j.rotlSL=p;const b=(E,C,I)=>C<<I-32|E>>>64-I;j.rotlBH=b;const w=(E,C,I)=>E<<I-32|C>>>64-I;j.rotlBL=w;function P(E,C,I,v){const S=(C>>>0)+(v>>>0);return{h:E+I+(S/2**32|0)|0,l:S|0}}j.add=P;const k=(E,C,I)=>(E>>>0)+(C>>>0)+(I>>>0);j.add3L=k;const M=(E,C,I,v)=>C+I+v+(E/2**32|0)|0;j.add3H=M;const T=(E,C,I,v)=>(E>>>0)+(C>>>0)+(I>>>0)+(v>>>0);j.add4L=T;const g=(E,C,I,v,S)=>C+I+v+S+(E/2**32|0)|0;j.add4H=g;const O=(E,C,I,v,S)=>(E>>>0)+(C>>>0)+(I>>>0)+(v>>>0)+(S>>>0);j.add5L=O;const F=(E,C,I,v,S,$)=>C+I+v+S+$+(E/2**32|0)|0;j.add5H=F;const N={fromBig:t,split:r,toBig:n,shrSH:s,shrSL:a,rotrSH:o,rotrSL:l,rotrBH:u,rotrBL:d,rotr32H:c,rotr32L:h,rotlSH:y,rotlSL:p,rotlBH:b,rotlBL:w,add:P,add3L:k,add3H:M,add4L:T,add4H:g,add5H:F,add5L:O};return j.default=N,j}var Er={},Ot={},Ci;function Ha(){return Ci||(Ci=1,Object.defineProperty(Ot,"__esModule",{value:!0}),Ot.crypto=void 0,Ot.crypto=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0),Ot}var Ai;function Ga(){return Ai||(Ai=1,function(i){/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */Object.defineProperty(i,"__esModule",{value:!0}),i.randomBytes=i.wrapXOFConstructorWithOpts=i.wrapConstructorWithOpts=i.wrapConstructor=i.checkOpts=i.Hash=i.concatBytes=i.toBytes=i.utf8ToBytes=i.asyncLoop=i.nextTick=i.hexToBytes=i.bytesToHex=i.byteSwap32=i.byteSwapIfBE=i.byteSwap=i.isLE=i.rotl=i.rotr=i.createView=i.u32=i.u8=i.isBytes=void 0;const e=Ha(),t=bn();function r(v){return v instanceof Uint8Array||v!=null&&typeof v=="object"&&v.constructor.name==="Uint8Array"}i.isBytes=r;const n=v=>new Uint8Array(v.buffer,v.byteOffset,v.byteLength);i.u8=n;const s=v=>new Uint32Array(v.buffer,v.byteOffset,Math.floor(v.byteLength/4));i.u32=s;const a=v=>new DataView(v.buffer,v.byteOffset,v.byteLength);i.createView=a;const o=(v,S)=>v<<32-S|v>>>S;i.rotr=o;const l=(v,S)=>v<<S|v>>>32-S>>>0;i.rotl=l,i.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;const u=v=>v<<24&4278190080|v<<8&16711680|v>>>8&65280|v>>>24&255;i.byteSwap=u,i.byteSwapIfBE=i.isLE?v=>v:v=>(0,i.byteSwap)(v);function d(v){for(let S=0;S<v.length;S++)v[S]=(0,i.byteSwap)(v[S])}i.byteSwap32=d;const c=Array.from({length:256},(v,S)=>S.toString(16).padStart(2,"0"));function h(v){(0,t.bytes)(v);let S="";for(let $=0;$<v.length;$++)S+=c[v[$]];return S}i.bytesToHex=h;const y={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function p(v){if(v>=y._0&&v<=y._9)return v-y._0;if(v>=y._A&&v<=y._F)return v-(y._A-10);if(v>=y._a&&v<=y._f)return v-(y._a-10)}function b(v){if(typeof v!="string")throw new Error("hex string expected, got "+typeof v);const S=v.length,$=S/2;if(S%2)throw new Error("padded hex string expected, got unpadded hex of length "+S);const x=new Uint8Array($);for(let ee=0,W=0;ee<$;ee++,W+=2){const fe=p(v.charCodeAt(W)),He=p(v.charCodeAt(W+1));if(fe===void 0||He===void 0){const Be=v[W]+v[W+1];throw new Error('hex string expected, got non-hex character "'+Be+'" at index '+W)}x[ee]=fe*16+He}return x}i.hexToBytes=b;const w=async()=>{};i.nextTick=w;async function P(v,S,$){let x=Date.now();for(let ee=0;ee<v;ee++){$(ee);const W=Date.now()-x;W>=0&&W<S||(await(0,i.nextTick)(),x+=W)}}i.asyncLoop=P;function k(v){if(typeof v!="string")throw new Error(`utf8ToBytes expected string, got ${typeof v}`);return new Uint8Array(new TextEncoder().encode(v))}i.utf8ToBytes=k;function M(v){return typeof v=="string"&&(v=k(v)),(0,t.bytes)(v),v}i.toBytes=M;function T(...v){let S=0;for(let x=0;x<v.length;x++){const ee=v[x];(0,t.bytes)(ee),S+=ee.length}const $=new Uint8Array(S);for(let x=0,ee=0;x<v.length;x++){const W=v[x];$.set(W,ee),ee+=W.length}return $}i.concatBytes=T;class g{clone(){return this._cloneInto()}}i.Hash=g;const O={}.toString;function F(v,S){if(S!==void 0&&O.call(S)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(v,S)}i.checkOpts=F;function N(v){const S=x=>v().update(M(x)).digest(),$=v();return S.outputLen=$.outputLen,S.blockLen=$.blockLen,S.create=()=>v(),S}i.wrapConstructor=N;function E(v){const S=(x,ee)=>v(ee).update(M(x)).digest(),$=v({});return S.outputLen=$.outputLen,S.blockLen=$.blockLen,S.create=x=>v(x),S}i.wrapConstructorWithOpts=E;function C(v){const S=(x,ee)=>v(ee).update(M(x)).digest(),$=v({});return S.outputLen=$.outputLen,S.blockLen=$.blockLen,S.create=x=>v(x),S}i.wrapXOFConstructorWithOpts=C;function I(v=32){if(e.crypto&&typeof e.crypto.getRandomValues=="function")return e.crypto.getRandomValues(new Uint8Array(v));throw new Error("crypto.getRandomValues must be defined")}i.randomBytes=I}(Er)),Er}var Ei;function Qa(){if(Ei)return re;Ei=1,Object.defineProperty(re,"__esModule",{value:!0}),re.shake256=re.shake128=re.keccak_512=re.keccak_384=re.keccak_256=re.keccak_224=re.sha3_512=re.sha3_384=re.sha3_256=re.sha3_224=re.Keccak=re.keccakP=void 0;const i=bn(),e=Wa(),t=Ga(),r=[],n=[],s=[],a=BigInt(0),o=BigInt(1),l=BigInt(2),u=BigInt(7),d=BigInt(256),c=BigInt(113);for(let T=0,g=o,O=1,F=0;T<24;T++){[O,F]=[F,(2*O+3*F)%5],r.push(2*(5*F+O)),n.push((T+1)*(T+2)/2%64);let N=a;for(let E=0;E<7;E++)g=(g<<o^(g>>u)*c)%d,g&l&&(N^=o<<(o<<BigInt(E))-o);s.push(N)}const[h,y]=(0,e.split)(s,!0),p=(T,g,O)=>O>32?(0,e.rotlBH)(T,g,O):(0,e.rotlSH)(T,g,O),b=(T,g,O)=>O>32?(0,e.rotlBL)(T,g,O):(0,e.rotlSL)(T,g,O);function w(T,g=24){const O=new Uint32Array(10);for(let F=24-g;F<24;F++){for(let C=0;C<10;C++)O[C]=T[C]^T[C+10]^T[C+20]^T[C+30]^T[C+40];for(let C=0;C<10;C+=2){const I=(C+8)%10,v=(C+2)%10,S=O[v],$=O[v+1],x=p(S,$,1)^O[I],ee=b(S,$,1)^O[I+1];for(let W=0;W<50;W+=10)T[C+W]^=x,T[C+W+1]^=ee}let N=T[2],E=T[3];for(let C=0;C<24;C++){const I=n[C],v=p(N,E,I),S=b(N,E,I),$=r[C];N=T[$],E=T[$+1],T[$]=v,T[$+1]=S}for(let C=0;C<50;C+=10){for(let I=0;I<10;I++)O[I]=T[C+I];for(let I=0;I<10;I++)T[C+I]^=~O[(I+2)%10]&O[(I+4)%10]}T[0]^=h[F],T[1]^=y[F]}O.fill(0)}re.keccakP=w;class P extends t.Hash{constructor(g,O,F,N=!1,E=24){if(super(),this.blockLen=g,this.suffix=O,this.outputLen=F,this.enableXOF=N,this.rounds=E,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,(0,i.number)(F),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=(0,t.u32)(this.state)}keccak(){t.isLE||(0,t.byteSwap32)(this.state32),w(this.state32,this.rounds),t.isLE||(0,t.byteSwap32)(this.state32),this.posOut=0,this.pos=0}update(g){(0,i.exists)(this);const{blockLen:O,state:F}=this;g=(0,t.toBytes)(g);const N=g.length;for(let E=0;E<N;){const C=Math.min(O-this.pos,N-E);for(let I=0;I<C;I++)F[this.pos++]^=g[E++];this.pos===O&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:g,suffix:O,pos:F,blockLen:N}=this;g[F]^=O,(O&128)!==0&&F===N-1&&this.keccak(),g[N-1]^=128,this.keccak()}writeInto(g){(0,i.exists)(this,!1),(0,i.bytes)(g),this.finish();const O=this.state,{blockLen:F}=this;for(let N=0,E=g.length;N<E;){this.posOut>=F&&this.keccak();const C=Math.min(F-this.posOut,E-N);g.set(O.subarray(this.posOut,this.posOut+C),N),this.posOut+=C,N+=C}return g}xofInto(g){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(g)}xof(g){return(0,i.number)(g),this.xofInto(new Uint8Array(g))}digestInto(g){if((0,i.output)(g,this),this.finished)throw new Error("digest() was already called");return this.writeInto(g),this.destroy(),g}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(g){const{blockLen:O,suffix:F,outputLen:N,rounds:E,enableXOF:C}=this;return g||(g=new P(O,F,N,C,E)),g.state32.set(this.state32),g.pos=this.pos,g.posOut=this.posOut,g.finished=this.finished,g.rounds=E,g.suffix=F,g.outputLen=N,g.enableXOF=C,g.destroyed=this.destroyed,g}}re.Keccak=P;const k=(T,g,O)=>(0,t.wrapConstructor)(()=>new P(g,T,O));re.sha3_224=k(6,144,224/8),re.sha3_256=k(6,136,256/8),re.sha3_384=k(6,104,384/8),re.sha3_512=k(6,72,512/8),re.keccak_224=k(1,144,224/8),re.keccak_256=k(1,136,256/8),re.keccak_384=k(1,104,384/8),re.keccak_512=k(1,72,512/8);const M=(T,g,O)=>(0,t.wrapXOFConstructorWithOpts)((F={})=>new P(g,T,F.dkLen===void 0?O:F.dkLen,!0));return re.shake128=M(31,168,128/8),re.shake256=M(31,136,256/8),re}var Ti;function za(){if(Ti)return Je;Ti=1;const{sha3_512:i}=Qa(),e=24,t=32,r=(p=4,b=Math.random)=>{let w="";for(;w.length<p;)w=w+Math.floor(b()*36).toString(36);return w};function n(p){let b=8n,w=0n;for(const P of p.values()){const k=BigInt(P);w=(w<<b)+k}return w}const s=(p="")=>n(i(p)).toString(36).slice(1),a=Array.from({length:26},(p,b)=>String.fromCharCode(b+97)),o=p=>a[Math.floor(p()*a.length)],l=({globalObj:p=typeof Zt<"u"?Zt:typeof window<"u"?window:{},random:b=Math.random}={})=>{const w=Object.keys(p).toString(),P=w.length?w+r(t,b):r(t,b);return s(P).substring(0,t)},u=p=>()=>p++,d=476782367,c=({random:p=Math.random,counter:b=u(Math.floor(p()*d)),length:w=e,fingerprint:P=l({random:p})}={})=>function(){const M=o(p),T=Date.now().toString(36),g=b().toString(36),O=r(w,p),F=`${T+O+g+P}`;return`${M+s(F).substring(1,w)}`},h=c(),y=(p,{minLength:b=2,maxLength:w=t}={})=>{const P=p.length,k=/^[0-9a-z]+$/;try{if(typeof p=="string"&&P>=b&&P<=w&&k.test(p))return!0}finally{}return!1};return Je.getConstants=()=>({defaultLength:e,bigLength:t}),Je.init=c,Je.createId=h,Je.bufToBigInt=n,Je.createCounter=u,Je.createFingerprint=l,Je.isCuid=y,Je}var Si;function Ka(){if(Si)return lt;Si=1;const{createId:i,init:e,getConstants:t,isCuid:r}=za();return lt.createId=i,lt.init=e,lt.getConstants=t,lt.isCuid=r,lt}var Fi=Ka();const Pi=Ut(i=>!isNaN(i)&&isFinite(i));class Y{static object(...e){return pe(void 0,...e)}static json(...e){let t=e;return t.valueConverter&&!t.valueConverter.fieldTypeInDb&&(t.valueConverter.fieldTypeInDb="json"),t.valueType&&!t.valueType.inputType&&(t.valueType.inputType=Te.json),pe(void 0,{valueConverter:{fieldTypeInDb:"json",inputType:Te.json}},...e)}static dateOnly(...e){return pe(()=>Date,{valueConverter:ve.DateOnly},...e)}static date(...e){return pe(()=>Date,...e)}static integer(...e){return pe(()=>Number,{valueConverter:ve.Integer,validate:Pi},...e)}static autoIncrement(...e){return pe(()=>Number,{allowApiUpdate:!1,dbReadOnly:!0,valueConverter:{...ve.Integer,fieldTypeInDb:"autoincrement"}},...e)}static number(...e){return pe(()=>Number,{validate:Pi},...e)}static createdAt(...e){return pe(()=>Date,{allowApiUpdate:!1,saving:(t,r,{isNew:n})=>{n&&(r.value=new Date)}},...e)}static updatedAt(...e){return pe(()=>Date,{allowApiUpdate:!1,saving:(t,r)=>{r.value=new Date}},...e)}static uuid(...e){return pe(()=>String,{allowApiUpdate:!1,defaultValue:()=>Mr(),saving:(t,r)=>{r.value||(r.value=Mr())}},...e)}static cuid(...e){return pe(()=>String,{allowApiUpdate:!1,defaultValue:()=>Fi.createId(),saving:(t,r)=>{r.value||(r.value=Fi.createId())}},...e)}static literal(e,...t){return Y.string({validate:(r,n)=>Fe.in(e())(r,n),[Ar]:e},...t)}static enum(e,...t){let r;return pe(()=>e(),{validate:(n,s)=>Fe.enum(e())(n,s),[Ar]:()=>Vt(e())},...t,n=>{if(n[Ar]=()=>Vt(e()),r===void 0){let s=e();r=Vt(s).find(o=>typeof o=="string")?ve.String:ve.Integer}n.valueConverter?n.valueConverter.fieldTypeInDb||(n.valueConverter.fieldTypeInDb=r.fieldTypeInDb):n.valueConverter=r})}static string(...e){return pe(()=>String,...e)}static boolean(...e){return pe(()=>Boolean,...e)}}class or{static toOne(e,t){let r=typeof t=="string"?{field:t}:t||{};return!r.field&&!r.fields&&!r.findOptions?pe(e,{...r,...vr(e,"reference")}):pe(()=>{},{...r,serverExpression:()=>{},...vr(e,"toOne")})}static toMany(e,t){return pe(()=>{},{...typeof t=="string"?{field:t}:t,serverExpression:()=>{},...vr(e,"toMany")})}}function pe(i,...e){return(t,r,n)=>{const s=typeof r=="string"?r:r.name.toString();let a=u=>{let d=pn(e,u);if(d.required&&(d.validate=Wt(d.validate,Fe.required,!0)),ct(d,"maxLength")){let h=d;h.maxLength&&(h.validate=Wt(h.validate,Fe.maxLength(h.maxLength)))}if(ct(d,"minLength")){let h=d;h.minLength&&(h.validate=Wt(h.validate,Fe.minLength(h.minLength)))}!d.valueType&&i&&(d.valueType=i()),d.key||(d.key=s),d.dbName||(d.dbName=d.key);let c=d.valueType;return c||(c=typeof Reflect.getMetadata=="function"?Reflect.getMetadata("design:type",t,s):[],d.valueType=c),d.target||(d.target=t),d};_n(t);let o=D.columnsOfType.get(t.constructor);o||(o=[],D.columnsOfType.set(t.constructor,o));let l=o.find(u=>u.key==s);if(!l)o.push({key:s,settings:a});else{let u=l.settings;l.settings=d=>{let c=u(d),h=a(d);return Object.assign(c,h)}}}}function _n(i){if(!i)throw new Error("Set the 'experimentalDecorators:true' option in your 'tsconfig' or 'jsconfig' (target undefined)")}function Xa(i,e,t,r){var n=arguments.length,s=n<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(i,e,t,r);else for(var o=i.length-1;o>=0;o--)(a=i[o])&&(s=(n<3?a(s):n>3?a(e,t,s):a(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s}function Ya(i,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(i,e)}class er extends mn{constructor(){super(...arguments);f(this,"id")}}Xa([Y.uuid(),Ya("design:type",String)],er.prototype,"id",void 0);var Ri={};/*! *****************************************************************************
7
+ from `+e.$entityName,i!=null&&i.where){let c=new Ue(t,e);i==null||i.where.__applyToConsumer(c),s+=await c.resolveWhere()}a&&(s+=a);let l="";if(i!=null&&i.orderBy){for(const c of i==null?void 0:i.orderBy){l==""?l=" order by ":l+=", ";let h=c.field&&await e.$dbNameOf(c.field);switch(c.operation){case"count":h=c.operation+"(*)";break;case void 0:break;default:h=d(c.operation,h)}l+=h,c.isDescending&&(l+=" desc"),r&&(c.isDescending?l+=" nulls last":l+=" nulls first")}l&&(s+=l)}if(i!=null&&i.limit){let c=1;i.page&&(c=i.page),c<1&&(c=1),s+=" "+n(i.limit,(c-1)*i.limit)}const u=await t.execute(s);return u.rows.map(c=>{let h={};return o.forEach((y,p)=>y(c[u.getColumnKeyInResultForIndexInSelect(p)],h)),h});function d(c,h){return c==="distinctCount"?`count (distinct ${h})`:`${c}( ${h} )`}}class Ue{constructor(e,t){f(this,"r");f(this,"nameProvider");f(this,"where","");f(this,"_addWhere",!0);f(this,"promises",[]);this.r=e,this.nameProvider=t}async resolveWhere(){for(;this.promises.length>0;){let e=this.promises;this.promises=[];for(const t of e)await t}return this.where}custom(e,t){throw new Error("Custom filter should be translated before it gets here")}or(e){let t="";this.promises.push((async()=>{for(const r of e){let n=new Ue(this.r,this.nameProvider);n._addWhere=!1,r.__applyToConsumer(n);let s=await n.resolveWhere();if(!s)return;s.length>0&&(t.length>0&&(t+=" or "),e.length>1?t+="("+s+")":t+=s)}this.addToWhere("("+t+")")})())}not(e){this.promises.push((async()=>{let t=new Ue(this.r,this.nameProvider);t._addWhere=!1,e.__applyToConsumer(t);let r=await t.resolveWhere();r&&this.addToWhere("not ("+r+")")})())}isNull(e){this.promises.push((async()=>this.addToWhere(this.nameProvider.$dbNameOf(e)+" is null"))())}isNotNull(e){this.promises.push((async()=>this.addToWhere(this.nameProvider.$dbNameOf(e)+" is not null"))())}isIn(e,t){this.promises.push((async()=>{t&&t.length>0?this.addToWhere(this.nameProvider.$dbNameOf(e)+" in ("+t.map(r=>this.r.param(e.valueConverter.toDb(r))).join(",")+")"):this.addToWhere("1 = 0 /*isIn with no values*/")})())}isEqualTo(e,t){this.add(e,t,"=")}isDifferentFrom(e,t){this.add(e,t,"<>")}isGreaterOrEqualTo(e,t){this.add(e,t,">=")}isGreaterThan(e,t){this.add(e,t,">")}isLessOrEqualTo(e,t){this.add(e,t,"<=")}isLessThan(e,t){this.add(e,t,"<")}containsCaseInsensitive(e,t){this.promises.push((async()=>{this.addToWhere("lower ("+this.nameProvider.$dbNameOf(e)+") like lower ('%"+t.replace(/'/g,"''")+"%')")})())}notContainsCaseInsensitive(e,t){this.promises.push((async()=>{this.addToWhere("not lower ("+this.nameProvider.$dbNameOf(e)+") like lower ('%"+t.replace(/'/g,"''")+"%')")})())}startsWithCaseInsensitive(e,t){this.promises.push((async()=>{this.addToWhere("lower ("+this.nameProvider.$dbNameOf(e)+") like lower ('"+t.replace(/'/g,"''")+"%')")})())}endsWithCaseInsensitive(e,t){this.promises.push((async()=>{this.addToWhere("lower ("+this.nameProvider.$dbNameOf(e)+") like lower ('%"+t.replace(/'/g,"''")+"')")})())}add(e,t,r){this.promises.push((async()=>{let n=this.nameProvider.$dbNameOf(e)+" "+r+" "+this.r.param(e.valueConverter.toDb(t));this.addToWhere(n)})())}addToWhere(e){this.where.length==0?this._addWhere&&(this.where+=" where "):this.where+=" and ",this.where+=e}databaseCustom(e){this.promises.push((async()=>{if(e!=null&&e.buildSql){let t=new Ua(this.r,this.nameProvider.wrapIdentifier),r=await e.buildSql(t);typeof r!="string"&&(r=t.sql),r&&this.addToWhere("("+r+")")}})())}}class Ua{constructor(e,t){f(this,"r");f(this,"wrapIdentifier");f(this,"sql","");f(this,"param",(e,t)=>(typeof t=="object"&&t.valueConverter.toDb&&(e=t.valueConverter.toDb(e)),this.r.param(e)));f(this,"filterToRaw",async(e,t)=>yt.filterToRaw(e,t,this,void 0,this.wrapIdentifier));this.r=e,this.wrapIdentifier=t,this.param.bind(this),this.filterToRaw.bind(this)}addParameterAndReturnSqlToken(e){return this.param(e)}}function Ii(i,e){return i.dbReadOnly||i.isServerExpression||i.options.sqlExpression&&i.dbName!=e.$dbNameOf(i)}async function wn(i,e){return Va(i,e,!0)}async function Va(i,e,t=!1){let r=typeof e=="function"?{wrapIdentifier:e}:e||{};var n=$a(i);r.wrapIdentifier||(r.wrapIdentifier=be.dataProvider.wrapIdentifier),r.wrapIdentifier||(r.wrapIdentifier=a=>a);const s={$entityName:await fn(n,r.wrapIdentifier),toString:()=>s.$entityName,$dbNameOf:a=>{var o;return typeof a=="string"?o=a:o=a.key,s[o]},wrapIdentifier:r.wrapIdentifier};for(const a of n.fields){let o=await jr(a,n,r.wrapIdentifier,t);a.options.sqlExpression||(typeof r.tableName=="string"?o=r.wrapIdentifier(r.tableName)+"."+o:r.tableName===!0&&(o=s.$entityName+"."+o)),s[a.key]=o}return s}function vn(i,...e){return(t,r)=>{let n=t;for(;n!=null;){for(const a in n)if(Object.prototype.hasOwnProperty.call(n,a)){const o=t[a];o!=null&&o.rawFilterInfo&&(o.rawFilterInfo.key||(o.rawFilterInfo.key=a))}n=Object.getPrototypeOf(n)}let s=a=>{let o={};for(const u of e)u&&(typeof u=="function"?u(o,a):Object.assign(o,u));let l=Object.getPrototypeOf(t);if(l){let u=Oe(l,!1);if(u){let d=u(a);d&&(o={...d,...o})}}return o};return D.allEntities.push(t),ba(t,{key:i}),t[Yi]=s,t[Zi]=i,t}}var Zt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},lt={},Je={},re={},ce={},Oi;function bn(){if(Oi)return ce;Oi=1,Object.defineProperty(ce,"__esModule",{value:!0}),ce.output=ce.exists=ce.hash=ce.bytes=ce.bool=ce.number=ce.isBytes=void 0;function i(l){if(!Number.isSafeInteger(l)||l<0)throw new Error(`positive integer expected, not ${l}`)}ce.number=i;function e(l){if(typeof l!="boolean")throw new Error(`boolean expected, not ${l}`)}ce.bool=e;function t(l){return l instanceof Uint8Array||l!=null&&typeof l=="object"&&l.constructor.name==="Uint8Array"}ce.isBytes=t;function r(l,...u){if(!t(l))throw new Error("Uint8Array expected");if(u.length>0&&!u.includes(l.length))throw new Error(`Uint8Array expected of length ${u}, not of length=${l.length}`)}ce.bytes=r;function n(l){if(typeof l!="function"||typeof l.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");i(l.outputLen),i(l.blockLen)}ce.hash=n;function s(l,u=!0){if(l.destroyed)throw new Error("Hash instance has been destroyed");if(u&&l.finished)throw new Error("Hash#digest() has already been called")}ce.exists=s;function a(l,u){r(l);const d=u.outputLen;if(l.length<d)throw new Error(`digestInto() expects output buffer of length at least ${d}`)}ce.output=a;const o={number:i,bool:e,bytes:r,hash:n,exists:s,output:a};return ce.default=o,ce}var j={},ki;function Wa(){if(ki)return j;ki=1,Object.defineProperty(j,"__esModule",{value:!0}),j.add5L=j.add5H=j.add4H=j.add4L=j.add3H=j.add3L=j.add=j.rotlBL=j.rotlBH=j.rotlSL=j.rotlSH=j.rotr32L=j.rotr32H=j.rotrBL=j.rotrBH=j.rotrSL=j.rotrSH=j.shrSL=j.shrSH=j.toBig=j.split=j.fromBig=void 0;const i=BigInt(2**32-1),e=BigInt(32);function t(E,C=!1){return C?{h:Number(E&i),l:Number(E>>e&i)}:{h:Number(E>>e&i)|0,l:Number(E&i)|0}}j.fromBig=t;function r(E,C=!1){let I=new Uint32Array(E.length),v=new Uint32Array(E.length);for(let S=0;S<E.length;S++){const{h:$,l:x}=t(E[S],C);[I[S],v[S]]=[$,x]}return[I,v]}j.split=r;const n=(E,C)=>BigInt(E>>>0)<<e|BigInt(C>>>0);j.toBig=n;const s=(E,C,I)=>E>>>I;j.shrSH=s;const a=(E,C,I)=>E<<32-I|C>>>I;j.shrSL=a;const o=(E,C,I)=>E>>>I|C<<32-I;j.rotrSH=o;const l=(E,C,I)=>E<<32-I|C>>>I;j.rotrSL=l;const u=(E,C,I)=>E<<64-I|C>>>I-32;j.rotrBH=u;const d=(E,C,I)=>E>>>I-32|C<<64-I;j.rotrBL=d;const c=(E,C)=>C;j.rotr32H=c;const h=(E,C)=>E;j.rotr32L=h;const y=(E,C,I)=>E<<I|C>>>32-I;j.rotlSH=y;const p=(E,C,I)=>C<<I|E>>>32-I;j.rotlSL=p;const b=(E,C,I)=>C<<I-32|E>>>64-I;j.rotlBH=b;const w=(E,C,I)=>E<<I-32|C>>>64-I;j.rotlBL=w;function P(E,C,I,v){const S=(C>>>0)+(v>>>0);return{h:E+I+(S/2**32|0)|0,l:S|0}}j.add=P;const k=(E,C,I)=>(E>>>0)+(C>>>0)+(I>>>0);j.add3L=k;const M=(E,C,I,v)=>C+I+v+(E/2**32|0)|0;j.add3H=M;const T=(E,C,I,v)=>(E>>>0)+(C>>>0)+(I>>>0)+(v>>>0);j.add4L=T;const g=(E,C,I,v,S)=>C+I+v+S+(E/2**32|0)|0;j.add4H=g;const O=(E,C,I,v,S)=>(E>>>0)+(C>>>0)+(I>>>0)+(v>>>0)+(S>>>0);j.add5L=O;const F=(E,C,I,v,S,$)=>C+I+v+S+$+(E/2**32|0)|0;j.add5H=F;const N={fromBig:t,split:r,toBig:n,shrSH:s,shrSL:a,rotrSH:o,rotrSL:l,rotrBH:u,rotrBL:d,rotr32H:c,rotr32L:h,rotlSH:y,rotlSL:p,rotlBH:b,rotlBL:w,add:P,add3L:k,add3H:M,add4L:T,add4H:g,add5H:F,add5L:O};return j.default=N,j}var Er={},Ot={},Ci;function Ha(){return Ci||(Ci=1,Object.defineProperty(Ot,"__esModule",{value:!0}),Ot.crypto=void 0,Ot.crypto=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0),Ot}var Ai;function Ga(){return Ai||(Ai=1,function(i){/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */Object.defineProperty(i,"__esModule",{value:!0}),i.randomBytes=i.wrapXOFConstructorWithOpts=i.wrapConstructorWithOpts=i.wrapConstructor=i.checkOpts=i.Hash=i.concatBytes=i.toBytes=i.utf8ToBytes=i.asyncLoop=i.nextTick=i.hexToBytes=i.bytesToHex=i.byteSwap32=i.byteSwapIfBE=i.byteSwap=i.isLE=i.rotl=i.rotr=i.createView=i.u32=i.u8=i.isBytes=void 0;const e=Ha(),t=bn();function r(v){return v instanceof Uint8Array||v!=null&&typeof v=="object"&&v.constructor.name==="Uint8Array"}i.isBytes=r;const n=v=>new Uint8Array(v.buffer,v.byteOffset,v.byteLength);i.u8=n;const s=v=>new Uint32Array(v.buffer,v.byteOffset,Math.floor(v.byteLength/4));i.u32=s;const a=v=>new DataView(v.buffer,v.byteOffset,v.byteLength);i.createView=a;const o=(v,S)=>v<<32-S|v>>>S;i.rotr=o;const l=(v,S)=>v<<S|v>>>32-S>>>0;i.rotl=l,i.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;const u=v=>v<<24&4278190080|v<<8&16711680|v>>>8&65280|v>>>24&255;i.byteSwap=u,i.byteSwapIfBE=i.isLE?v=>v:v=>(0,i.byteSwap)(v);function d(v){for(let S=0;S<v.length;S++)v[S]=(0,i.byteSwap)(v[S])}i.byteSwap32=d;const c=Array.from({length:256},(v,S)=>S.toString(16).padStart(2,"0"));function h(v){(0,t.bytes)(v);let S="";for(let $=0;$<v.length;$++)S+=c[v[$]];return S}i.bytesToHex=h;const y={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function p(v){if(v>=y._0&&v<=y._9)return v-y._0;if(v>=y._A&&v<=y._F)return v-(y._A-10);if(v>=y._a&&v<=y._f)return v-(y._a-10)}function b(v){if(typeof v!="string")throw new Error("hex string expected, got "+typeof v);const S=v.length,$=S/2;if(S%2)throw new Error("padded hex string expected, got unpadded hex of length "+S);const x=new Uint8Array($);for(let ee=0,W=0;ee<$;ee++,W+=2){const fe=p(v.charCodeAt(W)),He=p(v.charCodeAt(W+1));if(fe===void 0||He===void 0){const Be=v[W]+v[W+1];throw new Error('hex string expected, got non-hex character "'+Be+'" at index '+W)}x[ee]=fe*16+He}return x}i.hexToBytes=b;const w=async()=>{};i.nextTick=w;async function P(v,S,$){let x=Date.now();for(let ee=0;ee<v;ee++){$(ee);const W=Date.now()-x;W>=0&&W<S||(await(0,i.nextTick)(),x+=W)}}i.asyncLoop=P;function k(v){if(typeof v!="string")throw new Error(`utf8ToBytes expected string, got ${typeof v}`);return new Uint8Array(new TextEncoder().encode(v))}i.utf8ToBytes=k;function M(v){return typeof v=="string"&&(v=k(v)),(0,t.bytes)(v),v}i.toBytes=M;function T(...v){let S=0;for(let x=0;x<v.length;x++){const ee=v[x];(0,t.bytes)(ee),S+=ee.length}const $=new Uint8Array(S);for(let x=0,ee=0;x<v.length;x++){const W=v[x];$.set(W,ee),ee+=W.length}return $}i.concatBytes=T;class g{clone(){return this._cloneInto()}}i.Hash=g;const O={}.toString;function F(v,S){if(S!==void 0&&O.call(S)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(v,S)}i.checkOpts=F;function N(v){const S=x=>v().update(M(x)).digest(),$=v();return S.outputLen=$.outputLen,S.blockLen=$.blockLen,S.create=()=>v(),S}i.wrapConstructor=N;function E(v){const S=(x,ee)=>v(ee).update(M(x)).digest(),$=v({});return S.outputLen=$.outputLen,S.blockLen=$.blockLen,S.create=x=>v(x),S}i.wrapConstructorWithOpts=E;function C(v){const S=(x,ee)=>v(ee).update(M(x)).digest(),$=v({});return S.outputLen=$.outputLen,S.blockLen=$.blockLen,S.create=x=>v(x),S}i.wrapXOFConstructorWithOpts=C;function I(v=32){if(e.crypto&&typeof e.crypto.getRandomValues=="function")return e.crypto.getRandomValues(new Uint8Array(v));throw new Error("crypto.getRandomValues must be defined")}i.randomBytes=I}(Er)),Er}var Ei;function Qa(){if(Ei)return re;Ei=1,Object.defineProperty(re,"__esModule",{value:!0}),re.shake256=re.shake128=re.keccak_512=re.keccak_384=re.keccak_256=re.keccak_224=re.sha3_512=re.sha3_384=re.sha3_256=re.sha3_224=re.Keccak=re.keccakP=void 0;const i=bn(),e=Wa(),t=Ga(),r=[],n=[],s=[],a=BigInt(0),o=BigInt(1),l=BigInt(2),u=BigInt(7),d=BigInt(256),c=BigInt(113);for(let T=0,g=o,O=1,F=0;T<24;T++){[O,F]=[F,(2*O+3*F)%5],r.push(2*(5*F+O)),n.push((T+1)*(T+2)/2%64);let N=a;for(let E=0;E<7;E++)g=(g<<o^(g>>u)*c)%d,g&l&&(N^=o<<(o<<BigInt(E))-o);s.push(N)}const[h,y]=(0,e.split)(s,!0),p=(T,g,O)=>O>32?(0,e.rotlBH)(T,g,O):(0,e.rotlSH)(T,g,O),b=(T,g,O)=>O>32?(0,e.rotlBL)(T,g,O):(0,e.rotlSL)(T,g,O);function w(T,g=24){const O=new Uint32Array(10);for(let F=24-g;F<24;F++){for(let C=0;C<10;C++)O[C]=T[C]^T[C+10]^T[C+20]^T[C+30]^T[C+40];for(let C=0;C<10;C+=2){const I=(C+8)%10,v=(C+2)%10,S=O[v],$=O[v+1],x=p(S,$,1)^O[I],ee=b(S,$,1)^O[I+1];for(let W=0;W<50;W+=10)T[C+W]^=x,T[C+W+1]^=ee}let N=T[2],E=T[3];for(let C=0;C<24;C++){const I=n[C],v=p(N,E,I),S=b(N,E,I),$=r[C];N=T[$],E=T[$+1],T[$]=v,T[$+1]=S}for(let C=0;C<50;C+=10){for(let I=0;I<10;I++)O[I]=T[C+I];for(let I=0;I<10;I++)T[C+I]^=~O[(I+2)%10]&O[(I+4)%10]}T[0]^=h[F],T[1]^=y[F]}O.fill(0)}re.keccakP=w;class P extends t.Hash{constructor(g,O,F,N=!1,E=24){if(super(),this.blockLen=g,this.suffix=O,this.outputLen=F,this.enableXOF=N,this.rounds=E,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,(0,i.number)(F),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=(0,t.u32)(this.state)}keccak(){t.isLE||(0,t.byteSwap32)(this.state32),w(this.state32,this.rounds),t.isLE||(0,t.byteSwap32)(this.state32),this.posOut=0,this.pos=0}update(g){(0,i.exists)(this);const{blockLen:O,state:F}=this;g=(0,t.toBytes)(g);const N=g.length;for(let E=0;E<N;){const C=Math.min(O-this.pos,N-E);for(let I=0;I<C;I++)F[this.pos++]^=g[E++];this.pos===O&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:g,suffix:O,pos:F,blockLen:N}=this;g[F]^=O,(O&128)!==0&&F===N-1&&this.keccak(),g[N-1]^=128,this.keccak()}writeInto(g){(0,i.exists)(this,!1),(0,i.bytes)(g),this.finish();const O=this.state,{blockLen:F}=this;for(let N=0,E=g.length;N<E;){this.posOut>=F&&this.keccak();const C=Math.min(F-this.posOut,E-N);g.set(O.subarray(this.posOut,this.posOut+C),N),this.posOut+=C,N+=C}return g}xofInto(g){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(g)}xof(g){return(0,i.number)(g),this.xofInto(new Uint8Array(g))}digestInto(g){if((0,i.output)(g,this),this.finished)throw new Error("digest() was already called");return this.writeInto(g),this.destroy(),g}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(g){const{blockLen:O,suffix:F,outputLen:N,rounds:E,enableXOF:C}=this;return g||(g=new P(O,F,N,C,E)),g.state32.set(this.state32),g.pos=this.pos,g.posOut=this.posOut,g.finished=this.finished,g.rounds=E,g.suffix=F,g.outputLen=N,g.enableXOF=C,g.destroyed=this.destroyed,g}}re.Keccak=P;const k=(T,g,O)=>(0,t.wrapConstructor)(()=>new P(g,T,O));re.sha3_224=k(6,144,224/8),re.sha3_256=k(6,136,256/8),re.sha3_384=k(6,104,384/8),re.sha3_512=k(6,72,512/8),re.keccak_224=k(1,144,224/8),re.keccak_256=k(1,136,256/8),re.keccak_384=k(1,104,384/8),re.keccak_512=k(1,72,512/8);const M=(T,g,O)=>(0,t.wrapXOFConstructorWithOpts)((F={})=>new P(g,T,F.dkLen===void 0?O:F.dkLen,!0));return re.shake128=M(31,168,128/8),re.shake256=M(31,136,256/8),re}var Ti;function za(){if(Ti)return Je;Ti=1;const{sha3_512:i}=Qa(),e=24,t=32,r=(p=4,b=Math.random)=>{let w="";for(;w.length<p;)w=w+Math.floor(b()*36).toString(36);return w};function n(p){let b=8n,w=0n;for(const P of p.values()){const k=BigInt(P);w=(w<<b)+k}return w}const s=(p="")=>n(i(p)).toString(36).slice(1),a=Array.from({length:26},(p,b)=>String.fromCharCode(b+97)),o=p=>a[Math.floor(p()*a.length)],l=({globalObj:p=typeof Zt<"u"?Zt:typeof window<"u"?window:{},random:b=Math.random}={})=>{const w=Object.keys(p).toString(),P=w.length?w+r(t,b):r(t,b);return s(P).substring(0,t)},u=p=>()=>p++,d=476782367,c=({random:p=Math.random,counter:b=u(Math.floor(p()*d)),length:w=e,fingerprint:P=l({random:p})}={})=>function(){const M=o(p),T=Date.now().toString(36),g=b().toString(36),O=r(w,p),F=`${T+O+g+P}`;return`${M+s(F).substring(1,w)}`},h=c(),y=(p,{minLength:b=2,maxLength:w=t}={})=>{const P=p.length,k=/^[0-9a-z]+$/;try{if(typeof p=="string"&&P>=b&&P<=w&&k.test(p))return!0}finally{}return!1};return Je.getConstants=()=>({defaultLength:e,bigLength:t}),Je.init=c,Je.createId=h,Je.bufToBigInt=n,Je.createCounter=u,Je.createFingerprint=l,Je.isCuid=y,Je}var Si;function Ka(){if(Si)return lt;Si=1;const{createId:i,init:e,getConstants:t,isCuid:r}=za();return lt.createId=i,lt.init=e,lt.getConstants=t,lt.isCuid=r,lt}var Fi=Ka();const Pi=Ut(i=>!isNaN(i)&&isFinite(i));class Y{static object(...e){return pe(void 0,...e)}static json(...e){let t=e;return t.valueConverter&&!t.valueConverter.fieldTypeInDb&&(t.valueConverter.fieldTypeInDb="json"),t.valueType&&!t.valueType.inputType&&(t.valueType.inputType=Te.json),pe(void 0,{valueConverter:{fieldTypeInDb:"json",inputType:Te.json}},...e)}static dateOnly(...e){return pe(()=>Date,{valueConverter:ve.DateOnly},...e)}static date(...e){return pe(()=>Date,...e)}static integer(...e){return pe(()=>Number,{valueConverter:ve.Integer,validate:Pi},...e)}static autoIncrement(...e){return pe(()=>Number,{allowApiUpdate:!1,dbReadOnly:!0,valueConverter:{...ve.Integer,fieldTypeInDb:"autoincrement"}},...e)}static number(...e){return pe(()=>Number,{validate:Pi},...e)}static createdAt(...e){return pe(()=>Date,{allowApiUpdate:!1,saving:(t,r,{isNew:n})=>{n&&(r.value=new Date)}},...e)}static updatedAt(...e){return pe(()=>Date,{allowApiUpdate:!1,saving:(t,r)=>{r.value=new Date}},...e)}static uuid(...e){return pe(()=>String,{allowApiUpdate:!1,defaultValue:()=>Mr(),saving:(t,r)=>{r.value||(r.value=Mr())}},...e)}static cuid(...e){return pe(()=>String,{allowApiUpdate:!1,defaultValue:()=>Fi.createId(),saving:(t,r)=>{r.value||(r.value=Fi.createId())}},...e)}static literal(e,...t){return Y.string({validate:(r,n)=>Fe.in(e())(r,n),[Ar]:e},...t)}static enum(e,...t){let r;return pe(()=>e(),{validate:(n,s)=>Fe.enum(e())(n,s),[Ar]:()=>Vt(e())},...t,n=>{if(n[Ar]=()=>Vt(e()),r===void 0){let s=e();r=Vt(s).find(o=>typeof o=="string")?ve.String:ve.Integer}n.valueConverter?n.valueConverter.fieldTypeInDb||(n.valueConverter.fieldTypeInDb=r.fieldTypeInDb):n.valueConverter=r})}static string(...e){return pe(()=>String,...e)}static boolean(...e){return pe(()=>Boolean,...e)}}class or{static toOne(e,t){let r=typeof t=="string"?{field:t}:t||{};return!r.field&&!r.fields&&!r.findOptions?pe(e,{...r,...vr(e,"reference")}):pe(()=>{},{...r,serverExpression:()=>{},...vr(e,"toOne")})}static toMany(e,t){return pe(()=>{},{...typeof t=="string"?{field:t}:t,serverExpression:()=>{},...vr(e,"toMany")})}}function pe(i,...e){return(t,r,n)=>{const s=typeof r=="string"?r:r.name.toString();let a=u=>{let d=pn(e,u);if(d.required&&(d.validate=Wt(d.validate,Fe.required,!0)),ct(d,"maxLength")){let h=d;h.maxLength&&(h.validate=Wt(h.validate,Fe.maxLength(h.maxLength)))}if(ct(d,"minLength")){let h=d;h.minLength&&(h.validate=Wt(h.validate,Fe.minLength(h.minLength)))}!d.valueType&&i&&(d.valueType=i()),d.key||(d.key=s),d.dbName||(d.dbName=d.key);let c=d.valueType;return c||(c=typeof Reflect.getMetadata=="function"?Reflect.getMetadata("design:type",t,s):[],d.valueType=c),d.target||(d.target=t),d};_n(t);let o=D.columnsOfType.get(t.constructor);o||(o=[],D.columnsOfType.set(t.constructor,o));let l=o.find(u=>u.key==s);if(!l)o.push({key:s,settings:a});else{let u=l.settings;l.settings=d=>{let c=u(d),h=a(d);return Object.assign(c,h)}}}}function _n(i){if(!i)throw new Error("Set the 'experimentalDecorators:true' option in your 'tsconfig' or 'jsconfig' (target undefined)")}function Xa(i,e,t,r){var n=arguments.length,s=n<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(i,e,t,r);else for(var o=i.length-1;o>=0;o--)(a=i[o])&&(s=(n<3?a(s):n>3?a(e,t,s):a(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s}function Ya(i,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(i,e)}class er extends mn{constructor(){super(...arguments);f(this,"id")}}Xa([Y.id(),Ya("design:type",String)],er.prototype,"id",void 0);var Ri={};/*! *****************************************************************************
8
8
  Copyright (C) Microsoft. All rights reserved.
9
9
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
10
10
  this file except in compliance with the License. You may obtain a copy of the
@@ -17,4 +17,4 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
17
17
 
18
18
  See the Apache Version 2.0 License for specific language governing permissions
19
19
  and limitations under the License.
20
- ***************************************************************************** */var Di;function Za(){if(Di)return Ri;Di=1;var i;return function(e){(function(t){var r=typeof Zt=="object"?Zt:typeof self=="object"?self:typeof this=="object"?this:Function("return this;")(),n=s(e);typeof r.Reflect>"u"?r.Reflect=e:n=s(r.Reflect,n),t(n);function s(a,o){return function(l,u){typeof a[l]!="function"&&Object.defineProperty(a,l,{configurable:!0,writable:!0,value:u}),o&&o(l,u)}}})(function(t){var r=Object.prototype.hasOwnProperty,n=typeof Symbol=="function",s=n&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",a=n&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",o=typeof Object.create=="function",l={__proto__:[]}instanceof Array,u=!o&&!l,d={create:o?function(){return dr(Object.create(null))}:l?function(){return dr({__proto__:null})}:function(){return dr({})},has:u?function(m,_){return r.call(m,_)}:function(m,_){return _ in m},get:u?function(m,_){return r.call(m,_)?m[_]:void 0}:function(m,_){return m[_]}},c=Object.getPrototypeOf(Function),h=typeof process=="object"&&process.env&&process.env.REFLECT_METADATA_USE_MAP_POLYFILL==="true",y=!h&&typeof Map=="function"&&typeof Map.prototype.entries=="function"?Map:qn(),p=!h&&typeof Set=="function"&&typeof Set.prototype.entries=="function"?Set:xn(),b=!h&&typeof WeakMap=="function"?WeakMap:Bn(),w=new b;function P(m,_,A,R){if(se(A)){if(!Hr(m))throw new TypeError;if(!Gr(_))throw new TypeError;return I(m,_)}else{if(!Hr(m))throw new TypeError;if(!ge(_))throw new TypeError;if(!ge(R)&&!se(R)&&!st(R))throw new TypeError;return st(R)&&(R=void 0),A=je(A),v(m,_,A,R)}}t("decorate",P);function k(m,_){function A(R,B){if(!ge(R))throw new TypeError;if(!se(B)&&!Dn(B))throw new TypeError;fe(m,_,R,B)}return A}t("metadata",k);function M(m,_,A,R){if(!ge(A))throw new TypeError;return se(R)||(R=je(R)),fe(m,_,A,R)}t("defineMetadata",M);function T(m,_,A){if(!ge(_))throw new TypeError;return se(A)||(A=je(A)),$(m,_,A)}t("hasMetadata",T);function g(m,_,A){if(!ge(_))throw new TypeError;return se(A)||(A=je(A)),x(m,_,A)}t("hasOwnMetadata",g);function O(m,_,A){if(!ge(_))throw new TypeError;return se(A)||(A=je(A)),ee(m,_,A)}t("getMetadata",O);function F(m,_,A){if(!ge(_))throw new TypeError;return se(A)||(A=je(A)),W(m,_,A)}t("getOwnMetadata",F);function N(m,_){if(!ge(m))throw new TypeError;return se(_)||(_=je(_)),He(m,_)}t("getMetadataKeys",N);function E(m,_){if(!ge(m))throw new TypeError;return se(_)||(_=je(_)),Be(m,_)}t("getOwnMetadataKeys",E);function C(m,_,A){if(!ge(_))throw new TypeError;se(A)||(A=je(A));var R=S(_,A,!1);if(se(R)||!R.delete(m))return!1;if(R.size>0)return!0;var B=w.get(_);return B.delete(A),B.size>0||w.delete(_),!0}t("deleteMetadata",C);function I(m,_){for(var A=m.length-1;A>=0;--A){var R=m[A],B=R(_);if(!se(B)&&!st(B)){if(!Gr(B))throw new TypeError;_=B}}return _}function v(m,_,A,R){for(var B=m.length-1;B>=0;--B){var he=m[B],J=he(_,A,R);if(!se(J)&&!st(J)){if(!ge(J))throw new TypeError;R=J}}return R}function S(m,_,A){var R=w.get(m);if(se(R)){if(!A)return;R=new y,w.set(m,R)}var B=R.get(_);if(se(B)){if(!A)return;B=new y,R.set(_,B)}return B}function $(m,_,A){var R=x(m,_,A);if(R)return!0;var B=fr(_);return st(B)?!1:$(m,B,A)}function x(m,_,A){var R=S(_,A,!1);return se(R)?!1:Pn(R.has(m))}function ee(m,_,A){var R=x(m,_,A);if(R)return W(m,_,A);var B=fr(_);if(!st(B))return ee(m,B,A)}function W(m,_,A){var R=S(_,A,!1);if(!se(R))return R.get(m)}function fe(m,_,A,R){var B=S(A,R,!0);B.set(m,_)}function He(m,_){var A=Be(m,_),R=fr(m);if(R===null)return A;var B=He(R,_);if(B.length<=0)return A;if(A.length<=0)return B;for(var he=new p,J=[],H=0,q=A;H<q.length;H++){var z=q[H],K=he.has(z);K||(he.add(z),J.push(z))}for(var Ge=0,zr=B;Ge<zr.length;Ge++){var z=zr[Ge],K=he.has(z);K||(he.add(z),J.push(z))}return J}function Be(m,_){var A=[],R=S(m,_,!1);if(se(R))return A;for(var B=R.keys(),he=Mn(B),J=0;;){var H=Ln(he);if(!H)return A.length=J,A;var q=Nn(H);try{A[J]=q}catch(z){try{$n(he)}finally{throw z}}J++}}function ur(m){if(m===null)return 1;switch(typeof m){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return m===null?1:6;default:return 6}}function se(m){return m===void 0}function st(m){return m===null}function Tn(m){return typeof m=="symbol"}function ge(m){return typeof m=="object"?m!==null:typeof m=="function"}function Sn(m,_){switch(ur(m)){case 0:return m;case 1:return m;case 2:return m;case 3:return m;case 4:return m;case 5:return m}var A="string",R=Qr(m,s);if(R!==void 0){var B=R.call(m,A);if(ge(B))throw new TypeError;return B}return Fn(m)}function Fn(m,_){var A,R,B;{var he=m.toString;if(Nt(he)){var R=he.call(m);if(!ge(R))return R}var A=m.valueOf;if(Nt(A)){var R=A.call(m);if(!ge(R))return R}}throw new TypeError}function Pn(m){return!!m}function Rn(m){return""+m}function je(m){var _=Sn(m);return Tn(_)?_:Rn(_)}function Hr(m){return Array.isArray?Array.isArray(m):m instanceof Object?m instanceof Array:Object.prototype.toString.call(m)==="[object Array]"}function Nt(m){return typeof m=="function"}function Gr(m){return typeof m=="function"}function Dn(m){switch(ur(m)){case 3:return!0;case 4:return!0;default:return!1}}function Qr(m,_){var A=m[_];if(A!=null){if(!Nt(A))throw new TypeError;return A}}function Mn(m){var _=Qr(m,a);if(!Nt(_))throw new TypeError;var A=_.call(m);if(!ge(A))throw new TypeError;return A}function Nn(m){return m.value}function Ln(m){var _=m.next();return _.done?!1:_}function $n(m){var _=m.return;_&&_.call(m)}function fr(m){var _=Object.getPrototypeOf(m);if(typeof m!="function"||m===c||_!==c)return _;var A=m.prototype,R=A&&Object.getPrototypeOf(A);if(R==null||R===Object.prototype)return _;var B=R.constructor;return typeof B!="function"||B===m?_:B}function qn(){var m={},_=[],A=function(){function J(H,q,z){this._index=0,this._keys=H,this._values=q,this._selector=z}return J.prototype["@@iterator"]=function(){return this},J.prototype[a]=function(){return this},J.prototype.next=function(){var H=this._index;if(H>=0&&H<this._keys.length){var q=this._selector(this._keys[H],this._values[H]);return H+1>=this._keys.length?(this._index=-1,this._keys=_,this._values=_):this._index++,{value:q,done:!1}}return{value:void 0,done:!0}},J.prototype.throw=function(H){throw this._index>=0&&(this._index=-1,this._keys=_,this._values=_),H},J.prototype.return=function(H){return this._index>=0&&(this._index=-1,this._keys=_,this._values=_),{value:H,done:!0}},J}();return function(){function J(){this._keys=[],this._values=[],this._cacheKey=m,this._cacheIndex=-2}return Object.defineProperty(J.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),J.prototype.has=function(H){return this._find(H,!1)>=0},J.prototype.get=function(H){var q=this._find(H,!1);return q>=0?this._values[q]:void 0},J.prototype.set=function(H,q){var z=this._find(H,!0);return this._values[z]=q,this},J.prototype.delete=function(H){var q=this._find(H,!1);if(q>=0){for(var z=this._keys.length,K=q+1;K<z;K++)this._keys[K-1]=this._keys[K],this._values[K-1]=this._values[K];return this._keys.length--,this._values.length--,H===this._cacheKey&&(this._cacheKey=m,this._cacheIndex=-2),!0}return!1},J.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=m,this._cacheIndex=-2},J.prototype.keys=function(){return new A(this._keys,this._values,R)},J.prototype.values=function(){return new A(this._keys,this._values,B)},J.prototype.entries=function(){return new A(this._keys,this._values,he)},J.prototype["@@iterator"]=function(){return this.entries()},J.prototype[a]=function(){return this.entries()},J.prototype._find=function(H,q){return this._cacheKey!==H&&(this._cacheIndex=this._keys.indexOf(this._cacheKey=H)),this._cacheIndex<0&&q&&(this._cacheIndex=this._keys.length,this._keys.push(H),this._values.push(void 0)),this._cacheIndex},J}();function R(J,H){return J}function B(J,H){return H}function he(J,H){return[J,H]}}function xn(){return function(){function m(){this._map=new y}return Object.defineProperty(m.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),m.prototype.has=function(_){return this._map.has(_)},m.prototype.add=function(_){return this._map.set(_,_),this},m.prototype.delete=function(_){return this._map.delete(_)},m.prototype.clear=function(){this._map.clear()},m.prototype.keys=function(){return this._map.keys()},m.prototype.values=function(){return this._map.values()},m.prototype.entries=function(){return this._map.entries()},m.prototype["@@iterator"]=function(){return this.keys()},m.prototype[a]=function(){return this.keys()},m}()}function Bn(){var m=16,_=d.create(),A=R();return function(){function q(){this._key=R()}return q.prototype.has=function(z){var K=B(z,!1);return K!==void 0?d.has(K,this._key):!1},q.prototype.get=function(z){var K=B(z,!1);return K!==void 0?d.get(K,this._key):void 0},q.prototype.set=function(z,K){var Ge=B(z,!0);return Ge[this._key]=K,this},q.prototype.delete=function(z){var K=B(z,!1);return K!==void 0?delete K[this._key]:!1},q.prototype.clear=function(){this._key=R()},q}();function R(){var q;do q="@@WeakMap@@"+H();while(d.has(_,q));return _[q]=!0,q}function B(q,z){if(!r.call(q,A)){if(!z)return;Object.defineProperty(q,A,{value:d.create()})}return q[A]}function he(q,z){for(var K=0;K<z;++K)q[K]=Math.random()*255|0;return q}function J(q){return typeof Uint8Array=="function"?typeof crypto<"u"?crypto.getRandomValues(new Uint8Array(q)):typeof msCrypto<"u"?msCrypto.getRandomValues(new Uint8Array(q)):he(new Uint8Array(q),q):he(new Array(q),q)}function H(){var q=J(m);q[6]=q[6]&79|64,q[8]=q[8]&191|128;for(var z="",K=0;K<m;++K){var Ge=q[K];(K===4||K===6||K===8)&&(z+="-"),Ge<16&&(z+="0"),z+=Ge.toString(16).toLowerCase()}return z}}function dr(m){return m.__=void 0,delete m.__,m}})}(i||(i={})),Ri}Za();const tr=class tr{constructor(e,t,r){f(this,"actionUrl");f(this,"queue");f(this,"allowed");f(this,"doWork");this.actionUrl=e,this.queue=t,this.allowed=r}async run(e,t,r){t===void 0&&(t=be.apiClient.url),r||(r=ht(be.apiClient.httpClient));let n=await r.post(t+"/"+this.actionUrl,e),s=n;if(s&&s.queuedJobId){let a=D.actionInfo.startBusyWithProgress();try{let o;if(await D.actionInfo.runActionWithoutBlockingUI(async()=>{for(;!o||!o.done;)o&&await new Promise(l=>setTimeout(()=>{l(void 0)},200)),o=await r.post(t+"/"+tr.apiUrlForJobStatus,{queuedJobId:n.queuedJobId}),o.progress&&a.progress(o.progress)}),o.error)throw o.error;return a.progress(1),o.result}finally{a.close()}}else return n}__register(e){e(this.actionUrl,this.queue,this.allowed,async(t,r,n)=>{try{var s=await this.execute(t,r,n);n.success(s)}catch(a){a.isForbiddenError?n.forbidden():n.error(a,void 0)}})}};f(tr,"apiUrlForJobStatus","jobStatusInQueue");let Rt=tr;class Lr extends Error{constructor(t="Forbidden"){super(t);f(this,"isForbiddenError",!0)}}class eo extends Rt{constructor(t,r,n,s){super(t,n.queue??!1,n.allowed);f(this,"types");f(this,"options");f(this,"originalMethod");this.types=r,this.options=n,this.originalMethod=s}async execute(t,r,n){let s={data:{}},a=r.dataProvider;return await kn(r,this.options,async()=>{if(!r.isAllowedForInstance(void 0,this.options.allowed))throw new Lr;t.args=await On(this.types(),t.args,r,a,n);try{s.data=await this.originalMethod(t.args)}catch(o){throw o}}),s}}function qe(i){return(e,t,r)=>{const n=typeof t=="string"?t:t.name.toString(),s=r?r.value:e;let a=s;_n(e);function o(){var d=typeof Reflect.getMetadata=="function"?Reflect.getMetadata("design:paramtypes",e,n):[];return i.paramTypes&&(d=typeof i.paramTypes=="function"?i.paramTypes():i.paramTypes),d}if(e.prototype!==void 0){let d=new eo((i!=null&&i.apiPrefix?i.apiPrefix+"/":"")+n,()=>o(),i,c=>s.apply(void 0,c));return d.doWork=async(c,h,y,p)=>(c=Li(o(),c),i.blockUser===!1?await D.actionInfo.runActionWithoutBlockingUI(async()=>(await d.run({args:c},y,p)).data):(await d.run({args:c},y,p)).data),a=async function(...c){return Pt()?await s.apply(this,c):await d.doWork(c,void 0)},Mi(e,a),a[Nr]=d,r?(r.value=a,r):a}let l=D.classHelpers.get(e.constructor);l||(l=new un,D.classHelpers.set(e.constructor,l));let u={__register(d){let c=new De;for(const h of l.classes.keys()){let y=l.classes.get(h);y.key||(y.key=c.repo(h).metadata.key),d(y.key+"/"+(i!=null&&i.apiPrefix?i.apiPrefix+"/":"")+n,i?i.queue??!1:!1,i.allowed,async(p,b,w)=>{p.args=p.args.map(k=>In(k)?void 0:k);let P=i.allowed;try{let k=b,M;await kn(k,i,async()=>{if(p.args=await On(o(),p.args,k,k.dataProvider,w),D.allEntities.includes(h)){let T=k.repo(h),g;const O=p.rowInfo;if(O.isNewRow)g=T.create(),await T.getEntityRef(g)._updateEntityBasedOnApi(O.data);else{let N=await T.find({where:{...T.metadata.idMetadata.getIdFilter(O.id),$and:[T.metadata.options.apiPrefilter??{}]}});if(N.length!=1)throw new Error("not found or too many matches");g=N[0],await T.getEntityRef(g)._updateEntityBasedOnApi(O.data)}if(!k.isAllowedForInstance(g,P))throw new Lr;let F=ie(g);await F.__validateEntity();try{M={result:await s.apply(g,p.args),rowInfo:{data:await F.toApiJson(),isNewRow:F.isNew(),wasChanged:F.wasChanged(),id:F.getOriginalId()}}}catch(N){throw F.catchSaveErrors(N)}}else{let T=new h(k,k.dataProvider),g=wi(T,k);if(await g._updateEntityBasedOnApi(p.fields),!k.isAllowedForInstance(T,P))throw new Lr;await g.__validateEntity();try{M={result:await s.apply(T,p.args),fields:await g.toApiJson()}}catch(O){throw g.catchSaveErrors(O)}}}),w.success(M)}catch(k){k.isForbiddenError?w.forbidden():w.error(k,void 0)}})}},doWork:async function(d,c,h,y){if(d=Li(o(),d),D.allEntities.includes(e.constructor)){let p=ie(c);await p.__validateEntity();let b=l.classes.get(c.constructor);b.key||(b.key=p.repository.metadata.key+"_methods");try{let w=await new class extends Rt{constructor(){super(...arguments);f(this,"execute")}}(b.key+"/"+(i!=null&&i.apiPrefix?i.apiPrefix+"/":"")+n,(i==null?void 0:i.queue)??!1,i.allowed).run({args:d,rowInfo:{data:await p.toApiJson(),isNewRow:p.isNew(),wasChanged:p.wasChanged(),id:p.getOriginalId()}},h,y);return await p._updateEntityBasedOnApi(w.rowInfo.data,!0),w.result}catch(w){throw p.catchSaveErrors(w)}}else{let p=wi(c,void 0);try{await p.__validateEntity();let b=await new class extends Rt{constructor(){super(...arguments);f(this,"execute")}}(l.classes.get(c.constructor).key+"/"+(i!=null&&i.apiPrefix?i.apiPrefix+"/":"")+n,(i==null?void 0:i.queue)??!1,i.allowed).run({args:d,fields:await p.toApiJson()},h,y);return await p._updateEntityBasedOnApi(b.fields),b.result}catch(b){throw p.catchSaveErrors(b)}}}};return a=async function(...d){let c=this;return Pt()?await s.apply(c,d):u.doWork(d,c)},Mi(e.constructor,a),a[Nr]=u,r?(r.value=a,r):a}}const to={_isUndefined:!0};function Mi(i,e){(i[$i]||(i[$i]=[])).push(e),D.actionInfo.allActions.push(e)}function In(i){return i&&i._isUndefined}class Ni{constructor(e){f(this,"res");this.res=e}progress(e){this.res.progress(e)}}function Li(i,e){if(i)for(let t=0;t<i.length;t++){const r=i[t];for(const n of[De,yt])(e[t]instanceof n||r==n)&&(e[t]=void 0);if(e[t]!=null){let n={valueType:r};if(n=Vr(n,new De),Oe(r,!1)!=null){let a=ie(e[t]);e[t]=a.getId()}n.valueConverter&&(e[t]=n.valueConverter.toJson(e[t]))}}return e.map(t=>t!==void 0?t:to)}async function On(i,e,t,r,n){for(let s=0;s<e.length;s++){const a=e[s];In(a)&&(e[s]=void 0)}if(i)for(let s=0;s<i.length;s++)if(e.length<s&&e.push(void 0),i[s]==De||i[s]==De)e[s]=t;else if(i[s]==yt&&r)e[s]=r;else if(i[s]==Ni)e[s]=new Ni(n);else{let a={valueType:i[s]};a=Vr(a,t),a.valueConverter&&(e[s]=a.valueConverter.fromJson(e[s])),Oe(i[s],!1)!=null&&(e[s]===null||e[s]===void 0||(e[s]=await t.repo(i[s]).findId(e[s])))}return e}const $i=Symbol.for("classBackendMethodsArray");async function kn(i,e,t){if(e.transactional===void 0||e.transactional===!0)return await Ia(i,t);await t(i.dataProvider)}function Cn(i,e){return be.repo(i,e)}D.actionInfo;class ro{constructor(e,t){f(this,"id");f(this,"caption");f(this,"icon");f(this,"where");f(this,"class");f(this,"hide");this.id=e.toString(),this.caption=(t==null?void 0:t.caption)??this.id,this.icon=t==null?void 0:t.icon,this.where=t==null?void 0:t.where,this.class=t==null?void 0:t.class,this.hide=t==null?void 0:t.hide,t!=null&&t.icon&&t.icon.caption===void 0&&(t.icon.caption=t==null?void 0:t.caption)}}const gt={FF_Role_Admin:"FF_Role.Admin"};var io=Object.defineProperty,no=Object.getOwnPropertyDescriptor,We=(i,e,t,r)=>{for(var n=r>1?void 0:r?no(e,t):e,s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=(r?a(e,t,n):a(n))||n);return r&&n&&io(e,t,n),n};const so={ChangeLog_Admin:"ChangeLog.Admin"};let Pe=class{constructor(){f(this,"id","");f(this,"entity","");f(this,"entityId","");f(this,"changeDate",new Date);f(this,"userId","");f(this,"changes",[]);f(this,"newRow",!1);f(this,"deleted",!1)}};We([Y.cuid()],Pe.prototype,"id",2);We([Y.string()],Pe.prototype,"entity",2);We([Y.string()],Pe.prototype,"entityId",2);We([Y.date()],Pe.prototype,"changeDate",2);We([Y.string()],Pe.prototype,"userId",2);We([Y.json({dbName:"changesJson"})],Pe.prototype,"changes",2);We([Y.boolean()],Pe.prototype,"newRow",2);We([Y.boolean()],Pe.prototype,"deleted",2);Pe=We([vn("_ff_change_logs",{caption:"FF Change Logs",allowApiCrud:so.ChangeLog_Admin,defaultOrderBy:{changeDate:"desc"}})],Pe);async function ao(i,e,t){var r;if(Pt()){const n=[],s=new An(i,t),a=(t==null?void 0:t.forceNew)||e.isNew,o=(t==null?void 0:t.forceDate)||new Date;for(const l of s.fields.filter(u=>u.valueChanged()||a&&u.value))try{const u=s.excludedValues.includes(l);n.push({key:l.metadata.key,newValue:u?"***":l.value instanceof er?l.value.id:l.metadata.options.valueConverter.toJson(l.value),oldValue:e.isNew?"---":u?"***":l.originalValue instanceof er?l.originalValue.id:l.metadata.options.valueConverter.toJson(l.originalValue)})}catch(u){throw console.error(l),u}n.length>0&&await Cn(Pe).insert({changeDate:o,changes:n,entity:e.metadata.key,entityId:e.metadata.idMetadata.getId(i),userId:((r=be.user)==null?void 0:r.id)||"",newRow:a})}}async function oo(i,e,t){var a;const r=[],n=new An(i,t),s=(t==null?void 0:t.forceDate)||new Date;for(const o of n.fields)try{const l=n.excludedValues.includes(o);r.push({key:o.metadata.key,newValue:l?"***":"---",oldValue:l?"***":o.originalValue instanceof er?o.originalValue.id:o.metadata.options.valueConverter.toJson(o.originalValue)})}catch(l){throw console.error(o),l}await Cn(Pe).insert({changeDate:s,changes:r,entity:e.metadata.key,entityId:e.metadata.idMetadata.getId(i),userId:((a=be.user)==null?void 0:a.id)||"",deleted:!0})}class An{constructor(e,t){f(this,"fields");f(this,"excludedFields");f(this,"excludedValues");const r=ie(e);t!=null&&t.excludeColumns?this.excludedFields=t.excludeColumns(r.fields):this.excludedFields=[],t!=null&&t.excludeValues?this.excludedValues=t.excludeValues(r.fields):this.excludedValues=[],this.excludedFields.push(...r.fields.toArray().filter(n=>n.metadata.options.serverExpression)),this.excludedFields.push(...r.fields.toArray().filter(n=>n.metadata.options.sqlExpression)),this.fields=r.fields.toArray().filter(n=>!this.excludedFields.includes(n))}}const kt=i=>{if(i)return Array.isArray(i)?i.map(e=>e.id):i.id};function Wr(i,e){return vn(i,{...e,allowApiCrud:(e==null?void 0:e.allowApiCrud)??kt(e==null?void 0:e.permissionApiCrud),allowApiDelete:(e==null?void 0:e.allowApiDelete)??kt(e==null?void 0:e.permissionApiDelete),allowApiInsert:(e==null?void 0:e.allowApiInsert)??kt(e==null?void 0:e.permissionApiInsert),allowApiRead:(e==null?void 0:e.allowApiRead)??kt(e==null?void 0:e.permissionApiRead),allowApiUpdate:(e==null?void 0:e.allowApiUpdate)??kt(e==null?void 0:e.permissionApiUpdate),saved:async(t,r)=>{var n;await((n=e==null?void 0:e.saved)==null?void 0:n.call(e,t,r)),(e==null?void 0:e.changeLog)===!1||Pt()&&await ao(t,r,e==null?void 0:e.changeLog)},deleted:async(t,r)=>{var n;await((n=e==null?void 0:e.deleted)==null?void 0:n.call(e,t,r)),(e==null?void 0:e.changeLog)===!1||Pt()&&await oo(t,r,e==null?void 0:e.changeLog)}})}var En=Object.defineProperty,lo=Object.getOwnPropertyDescriptor,uo=(i,e,t)=>e in i?En(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,te=(i,e,t,r)=>{for(var n=r>1?void 0:r?lo(e,t):e,s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=(r?a(e,t,n):a(n))||n);return r&&n&&En(e,t,n),n},lr=(i,e,t)=>uo(i,typeof e!="symbol"?e+"":e,t);const nt={FF_Role_Auth_Admin:"FF_Role_Auth.Admin",FF_Role_Auth_Invite:"FF_Role_Auth.Invite"};let Me=class{constructor(){f(this,"id");f(this,"createdAt");f(this,"updatedAt");f(this,"name");f(this,"roles",[]);f(this,"accounts");f(this,"sessions")}};te([Y.cuid()],Me.prototype,"id",2);te([Y.createdAt({includeInApi:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin]})],Me.prototype,"createdAt",2);te([Y.updatedAt({includeInApi:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin]})],Me.prototype,"updatedAt",2);te([Y.string({required:!0,validate:[Fe.unique(),Fe.required()]})],Me.prototype,"name",2);te([Y.json(()=>[],{includeInApi:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin],inputType:"selectEnum",valueConverter:{toDb:i=>i===null?null:Array.isArray(i)?i.join(","):i,fromDb:i=>i?i.split(",").map(e=>e.replace("{","").replace("}","")).filter(e=>e!==""):[]}})],Me.prototype,"roles",2);te([or.toMany(()=>_e,"userId")],Me.prototype,"accounts",2);te([or.toMany(()=>rt,"userId")],Me.prototype,"sessions",2);Me=te([Wr("ff_auth.users",{allowApiCrud:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin],caption:"FF Auth - Users"})],Me);let _e=class{constructor(){f(this,"id");f(this,"createdAt");f(this,"updatedAt");f(this,"userId");f(this,"user");f(this,"provider",Ne.PASSWORD.id);f(this,"providerUserId","");f(this,"email",null);f(this,"hashPassword");f(this,"token");f(this,"expiresAt");f(this,"lastVerifiedAt");f(this,"metadata")}};te([Y.cuid()],_e.prototype,"id",2);te([Y.createdAt()],_e.prototype,"createdAt",2);te([Y.updatedAt()],_e.prototype,"updatedAt",2);te([Y.string()],_e.prototype,"userId",2);te([or.toOne(()=>Me,"userId")],_e.prototype,"user",2);te([Y.string()],_e.prototype,"provider",2);te([Y.string()],_e.prototype,"providerUserId",2);te([Y.string({allowNull:!0})],_e.prototype,"email",2);te([Y.string({includeInApi:!1,allowNull:!0})],_e.prototype,"hashPassword",2);te([Y.string({includeInApi:!1,allowNull:!0})],_e.prototype,"token",2);te([Y.date({includeInApi:!1,allowNull:!0})],_e.prototype,"expiresAt",2);te([Y.date({includeInApi:!1,allowNull:!0})],_e.prototype,"lastVerifiedAt",2);te([Y.json({includeInApi:!1,allowNull:!0})],_e.prototype,"metadata",2);_e=te([Wr("ff_auth.accounts",{allowApiCrud:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin],caption:"FF Auth - Accounts",changeLog:{excludeColumns:i=>[i.hashPassword,i.token]}})],_e);let rt=class{constructor(){f(this,"id");f(this,"expiresAt");f(this,"userId");f(this,"user")}};te([Y.string()],rt.prototype,"id",2);te([Y.date()],rt.prototype,"expiresAt",2);te([Y.string()],rt.prototype,"userId",2);te([or.toOne(()=>Me,"userId")],rt.prototype,"user",2);rt=te([Wr("ff_auth.users_sessions",{allowApiCrud:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin],caption:"FF Auth - Users sessions",changeLog:!1})],rt);let Ne=class extends ro{constructor(i,e){super(i,{...e})}};lr(Ne,"DEMO",new Ne("DEMO",{caption:"Demo"}));lr(Ne,"PASSWORD",new Ne("PASSWORD",{caption:"Password"}));lr(Ne,"OTP",new Ne("OTP",{caption:"TOTP"}));lr(Ne,"OAUTH",new Ne("OAUTH",{caption:"OAUTH"}));Ne=te([La()],Ne);var fo=Object.defineProperty,co=Object.getOwnPropertyDescriptor,xe=(i,e,t,r)=>{for(var n=co(e,t),s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=a(e,t,n)||n);return n&&fo(e,t,n),n},we,ke;const Le=(we=class{static _setAbstraction(e){Zr(this,ke,e)}static async signOut(){return await Re(we,ke).signOut()}static async signInDemo(e){return await Re(we,ke).signInDemo(e)}static async invite(e){return await Re(we,ke).invite(e)}static async signUpPassword(e,t){return await Re(we,ke).signUpPassword(e,t)}static async signInPassword(e,t){return await Re(we,ke).signInPassword(e,t)}static async forgotPassword(e){return await Re(we,ke).forgotPassword(e)}static async resetPassword(e,t){return await Re(we,ke).resetPassword(e,t)}static async signInOTP(e){return await Re(we,ke).signInOTP(e)}static async verifyOtp(e,t){return await Re(we,ke).verifyOtp(e,t)}static async signInOAuthGetUrl(e){return await Re(we,ke).signInOAuthGetUrl(e)}},ke=new WeakMap,Yr(we,ke),we);xe([qe({allowed:!0})],Le,"signOut");xe([qe({allowed:!0})],Le,"signInDemo");xe([qe({allowed:nt.FF_Role_Auth_Invite})],Le,"invite");xe([qe({allowed:!0})],Le,"signUpPassword");xe([qe({allowed:!0})],Le,"signInPassword");xe([qe({allowed:!0})],Le,"forgotPassword");xe([qe({allowed:!0})],Le,"resetPassword");xe([qe({allowed:!0})],Le,"signInOTP");xe([qe({allowed:!0})],Le,"verifyOtp");xe([qe({allowed:!0})],Le,"signInOAuthGetUrl");let Mt=Le;function Ve(i){i.focus()}var ho=ue('<div class="login"><p> </p> <form class="svelte-skcj83"><input required type="email"/> <button> </button></form></div>');function yo(i,e){ze(e,!1);let t=Ee(e,"firstlyDataAuth",8),r=Ee(e,"email",12,""),n=Ie(""),s=Ie(""),a=Ie(!1);async function o(){Z(n,""),Z(s,""),Z(a,!0);try{const w=await Mt.forgotPassword(r());Z(s,w.message??"")}catch(w){w&&Z(n,w.message??""),Z(a,!1)}}pt();var l=ho(),u=Q(l);let d;var c=Q(u),h=G(u,2),y=Q(h);nr(y,w=>Ve==null?void 0:Ve(w)),it(()=>tt(y,r));var p=G(y,2),b=Q(p);Ce((w,P)=>{d=mt(u,1,"message",null,d,w),oe(c,`${V(n)??""}${V(s)??""}`),$e(y,"placeholder",(ae(t()),le(()=>{var k;return(k=t().ui)==null?void 0:k.strings.email_placeholder}))),p.disabled=P,oe(b,(ae(t()),le(()=>{var k;return(k=t().ui)==null?void 0:k.strings.send_password_reset_instructions})))},[()=>({error:V(n),success:V(s)}),()=>(ae(r()),V(a),le(()=>!r()||!r().includes("@")||!r().includes(".")||V(a)))],ir),Dt("submit",h,sr(o)),X(i,l),Ke()}var po=(i,e,t)=>e(V(t).name),mo=ue('<div class="oauth-button-icon svelte-1dwkktf"><!></div>'),go=ue('<button class="oauth-button svelte-1dwkktf"><!> <span> </span></button>'),wo=ue('<hr style="margin: 1rem"/> <div class="oauth-container svelte-1dwkktf"></div>',1);function qi(i,e){ze(e,!0);const t=async a=>{const o=await Mt.signInOAuthGetUrl({provider:a,redirect:new URL(window.location.href).searchParams.get("redirect")??"/"});window.location.href=o};var r=St(),n=Se(r);{var s=a=>{var o=wo(),l=G(Se(o),2);hs(l,21,()=>{var u;return((u=e.firstlyDataAuth)==null?void 0:u.providers)??[]},u=>u.name,(u,d)=>{var c=go();c.__click=[po,t,d];var h=Q(c);{var y=w=>{var P=mo(),k=Q(P);ms(k,()=>V(d).raw_svg),X(w,P)};me(h,w=>{V(d).raw_svg&&w(y)})}var p=G(h,2),b=Q(p);Ce(()=>oe(b,V(d).label)),X(u,c)}),X(a,o)};me(n,a=>{var o;(((o=e.firstlyDataAuth)==null?void 0:o.providers)??[].length!==0)&&a(s)})}X(i,r),Ke()}Ji(["click"]);var vo=ue('<div class="login"><p> </p> <form class="svelte-skcj83"> <input type="password" required/> <input type="password" required/> <button> </button></form></div>');function bo(i,e){ze(e,!1);let t=Ee(e,"firstlyDataAuth",8),r=Ee(e,"password1",12,""),n=Ee(e,"password2",12,""),s=Ie(""),a=Ie(""),o=Ie(!1);async function l(){Z(s,""),Z(a,""),Z(o,!0);const T=new URL(location.href).searchParams.get("token");try{const g=await Mt.resetPassword(T??"",r());Z(a,g.message??""),window.location.href="/"}catch(g){g&&Z(s,g.message??""),Z(o,!1)}}pt();var u=vo(),d=Q(u);let c;var h=Q(d),y=G(d,2),p=Q(y),b=G(p),w=G(b),P=G(w),k=G(P,2),M=Q(k);Ce(T=>{c=mt(d,1,"message",null,c,T),oe(h,`${V(s)??""}${V(a)??""}`),oe(p,`${ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.password})??""} `),$e(b,"placeholder",(ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.password_placeholder}))),oe(w,` ${ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.confirm})??""} `),$e(P,"placeholder",(ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.password_placeholder}))),k.disabled=!r()||!n()||V(o),oe(M,(ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.reset})))},[()=>({error:V(s)})],ir),tt(b,r),tt(P,n),Dt("submit",y,sr(l)),X(i,u),Ke()}var _o=ue('<form class="svelte-skcj83"><p> </p> <label> <input required type="email"/></label> <label> <input required type="password"/></label> <button> </button></form>');function Io(i,e){ze(e,!1);let t=Ee(e,"firstlyDataAuth",8),r=Ee(e,"view",8,"login"),n=Ee(e,"email",12,""),s=Ie(""),a=Ie(""),o=Ie(),l=Ie(!1);async function u(){Z(s,""),Z(a,""),Z(l,!0);try{await Mt.signInPassword(n(),V(o)),window.location.href=new URL(window.location.href).searchParams.get("redirect")??"/"}catch(y){y&&Z(s,y.message??""),Z(l,!1)}}pt();var d=St(),c=Se(d);{var h=y=>{var p=_o(),b=Q(p);let w;var P=Q(b),k=G(b,2),M=Q(k),T=G(M);it(()=>tt(T,n)),nr(T,C=>Ve==null?void 0:Ve(C));var g=G(k,2),O=Q(g),F=G(O),N=G(g,2),E=Q(N);Ce(C=>{w=mt(b,1,"message",null,w,C),oe(P,`${V(s)??""}${V(a)??""}`),oe(M,`${ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.email})??""} `),$e(T,"placeholder",(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.email_placeholder}))),oe(O,`${ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.password})??""} `),$e(F,"placeholder",(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.password_placeholder}))),N.disabled=!n()||!V(o)||V(l),oe(E,(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.btn_sign_in})))},[()=>({error:V(s)})],ir),tt(F,()=>V(o),C=>Z(o,C)),Dt("submit",p,sr(u)),X(y,p)};me(c,y=>{r()=="login"&&y(h)})}X(i,d),Ke()}var Oo=ue('<form class="svelte-skcj83"><p> </p> <label> <input required type="email"/></label> <label> <input required type="password"/></label> <button> </button></form>');function ko(i,e){ze(e,!1);let t=Ee(e,"firstlyDataAuth",8),r=Ee(e,"view",8,"login"),n=Ee(e,"email",12,""),s=Ie(""),a=Ie(""),o=Ie(),l=Ie(!1);async function u(){Z(s,""),Z(a,""),Z(l,!0);try{const y=await Mt.signUpPassword(n(),V(o));Z(a,y.message??""),await new Promise(p=>setTimeout(p,5e3)),window.location.href=new URL(window.location.href).searchParams.get("redirect")??"/"}catch(y){y&&Z(s,y.message??""),Z(l,!1)}}pt();var d=St(),c=Se(d);{var h=y=>{var p=Oo(),b=Q(p);let w;var P=Q(b),k=G(b,2),M=Q(k),T=G(M);it(()=>tt(T,n)),nr(T,C=>Ve==null?void 0:Ve(C));var g=G(k,2),O=Q(g),F=G(O),N=G(g,2),E=Q(N);Ce(C=>{w=mt(b,1,"message",null,w,C),oe(P,`${V(s)??""}${V(a)??""}`),oe(M,`${ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.email})??""} `),$e(T,"placeholder",(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.email_placeholder}))),oe(O,`${ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.password})??""} `),$e(F,"placeholder",(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.password_placeholder}))),N.disabled=!n()||!V(o)||V(l),oe(E,(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.btn_sign_up})))},[()=>({error:V(s)})],ir),tt(F,()=>V(o),C=>Z(o,C)),Dt("submit",p,sr(u)),X(y,p)};me(c,y=>{r()=="login"&&y(h)})}X(i,d),Ke()}var Co=ue('<h1 class="svelte-1jjivcr"> </h1>'),Ao=ue('<!> <div class="form-footer svelte-1jjivcr"><!></div> <!>',1),Eo=ue("<hr/> <!>",1),To=ue('<!> <div class="form-footer svelte-1jjivcr"><!> <!></div> <!>',1),So=ue('<!> <div class="form-footer svelte-1jjivcr"><!></div>',1),Fo=ue('<!> <div class="form-footer svelte-1jjivcr"><!></div>',1),Po=ue('<div class="form svelte-1jjivcr"><!> <!> <!> <!> <!></div>'),Ro=ue('<img alt="Authentication" class="svelte-1jjivcr"/>'),Do=ue('<div class="split-layout svelte-1jjivcr"><div class="form-side svelte-1jjivcr"><!></div> <div class="image-side svelte-1jjivcr"><!></div></div>'),Mo=ue('<div class="centered-layout svelte-1jjivcr"><!></div>'),No=ue('<div class="fallback svelte-1jjivcr"><small>- 404 -</small></div> <div class="fallback svelte-1jjivcr"><small>Nothing to see here</small></div>',1),Lo=ue("<!> <!>",1),$o=ue("<div><!></div>");function Bo(i,e){ze(e,!0);const t=u=>{var d=Po(),c=Q(d);{var h=g=>{var O=Co(),F=Q(O);Ce(()=>oe(F,r.ui.strings.app_name)),X(g,O)};me(c,g=>{var O;(O=r.ui)!=null&&O.strings.app_name&&g(h)})}var y=G(c,2);{var p=g=>{const O=wt(()=>{var F;return(F=r.ui)==null?void 0:F.paths.sign_up});at(g,{get path(){return V(O)},children:(F,N)=>{var E=Ao(),C=Se(E);ko(C,{get firstlyDataAuth(){return r},get email(){return V(n)},set email(x){Z(n,x,!0)}});var I=G(C,2),v=Q(I);{var S=x=>{It(x,{get href(){return r.ui.paths.sign_in},children:(ee,W)=>{var fe=vt();Ce(()=>oe(fe,r.ui.strings.back_to_sign_in)),X(ee,fe)},$$slots:{default:!0}})};me(v,x=>{r.ui.paths.sign_in&&x(S)})}var $=G(I,2);qi($,{get firstlyDataAuth(){return r}}),X(F,E)},$$slots:{default:!0}})};me(y,g=>{var O;(O=r.ui)!=null&&O.paths.sign_up&&g(p)})}var b=G(y,2);{var w=g=>{const O=wt(()=>{var F;return(F=r.ui)==null?void 0:F.paths.sign_in});at(g,{get path(){return V(O)},children:(F,N)=>{var E=To(),C=Se(E);Io(C,{get firstlyDataAuth(){return r},get email(){return V(n)},set email(W){Z(n,W,!0)}});var I=G(C,2),v=Q(I);{var S=W=>{It(W,{get href(){return r.ui.paths.forgot_password},children:(fe,He)=>{var Be=vt();Ce(()=>oe(Be,r.ui.strings.forgot_password)),X(fe,Be)},$$slots:{default:!0}})};me(v,W=>{var fe;(fe=r.ui)!=null&&fe.paths.forgot_password&&W(S)})}var $=G(v,2);{var x=W=>{var fe=Eo(),He=G(Se(fe),2);It(He,{get href(){return r.ui.paths.sign_up},children:(Be,ur)=>{var se=vt();Ce(()=>oe(se,r.ui.strings.btn_sign_up)),X(Be,se)},$$slots:{default:!0}}),X(W,fe)};me($,W=>{var fe;(fe=r.ui)!=null&&fe.paths.sign_up&&W(x)})}var ee=G(I,2);qi(ee,{get firstlyDataAuth(){return r}}),X(F,E)},$$slots:{default:!0}})};me(b,g=>{var O;(O=r.ui)!=null&&O.paths.sign_in&&g(w)})}var P=G(b,2);{var k=g=>{const O=wt(()=>{var F;return(F=r.ui)==null?void 0:F.paths.forgot_password});at(g,{get path(){return V(O)},children:(F,N)=>{var E=So(),C=Se(E);yo(C,{get firstlyDataAuth(){return r},get email(){return V(n)},set email($){Z(n,$,!0)}});var I=G(C,2),v=Q(I);{var S=$=>{It($,{get href(){return r.ui.paths.sign_in},children:(x,ee)=>{var W=vt();Ce(()=>oe(W,r.ui.strings.back_to_sign_in)),X(x,W)},$$slots:{default:!0}})};me(v,$=>{var x;(x=r.ui)!=null&&x.paths.sign_in&&$(S)})}X(F,E)},$$slots:{default:!0}})};me(P,g=>{var O;(O=r.ui)!=null&&O.paths.forgot_password&&g(k)})}var M=G(P,2);{var T=g=>{const O=wt(()=>{var F;return(F=r.ui)==null?void 0:F.paths.reset_password});at(g,{get path(){return V(O)},children:(F,N)=>{var E=Fo(),C=Se(E);bo(C,{get firstlyDataAuth(){return r}});var I=G(C,2),v=Q(I);{var S=$=>{It($,{get href(){return r.ui.paths.sign_in},children:(x,ee)=>{var W=vt();Ce(()=>oe(W,r.ui.strings.back_to_sign_in)),X(x,W)},$$slots:{default:!0}})};me(v,$=>{var x;(x=r.ui)!=null&&x.paths.sign_in&&$(S)})}X(F,E)},$$slots:{default:!0}})};me(M,g=>{var O;(O=r.ui)!=null&&O.paths.reset_password&&g(T)})}X(u,d)};let r=e.firstlyData.props,n=ys(""),s=wt(()=>{var u,d;return!!((d=(u=r.ui)==null?void 0:u.images)!=null&&d.main)});var a=$o();let o;var l=Q(a);at(l,{children:(u,d)=>{var c=Lo(),h=Se(c);{var y=w=>{var P=Do(),k=Q(P),M=Q(k);t(M);var T=G(k,2),g=Q(T);{var O=F=>{var N=Ro();Ce(()=>$e(N,"src",r.ui.images.main)),X(F,N)};me(g,F=>{var N,E;(E=(N=r.ui)==null?void 0:N.images)!=null&&E.main&&F(O)})}X(w,P)},p=w=>{var P=Mo(),k=Q(P);t(k),X(w,P)};me(h,w=>{V(s)?w(y):w(p,!1)})}var b=G(h,2);at(b,{fallback:!0,children:(w,P)=>{var k=No();X(w,k)},$$slots:{default:!0}}),X(u,c)},$$slots:{default:!0}}),Ce(u=>o=mt(a,1,"wrapper svelte-1jjivcr",null,o,u),[()=>({"with-image":V(s)})]),X(i,a),Ke()}export{Bo as default};
20
+ ***************************************************************************** */var Di;function Za(){if(Di)return Ri;Di=1;var i;return function(e){(function(t){var r=typeof Zt=="object"?Zt:typeof self=="object"?self:typeof this=="object"?this:Function("return this;")(),n=s(e);typeof r.Reflect>"u"?r.Reflect=e:n=s(r.Reflect,n),t(n);function s(a,o){return function(l,u){typeof a[l]!="function"&&Object.defineProperty(a,l,{configurable:!0,writable:!0,value:u}),o&&o(l,u)}}})(function(t){var r=Object.prototype.hasOwnProperty,n=typeof Symbol=="function",s=n&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",a=n&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",o=typeof Object.create=="function",l={__proto__:[]}instanceof Array,u=!o&&!l,d={create:o?function(){return dr(Object.create(null))}:l?function(){return dr({__proto__:null})}:function(){return dr({})},has:u?function(m,_){return r.call(m,_)}:function(m,_){return _ in m},get:u?function(m,_){return r.call(m,_)?m[_]:void 0}:function(m,_){return m[_]}},c=Object.getPrototypeOf(Function),h=typeof process=="object"&&process.env&&process.env.REFLECT_METADATA_USE_MAP_POLYFILL==="true",y=!h&&typeof Map=="function"&&typeof Map.prototype.entries=="function"?Map:qn(),p=!h&&typeof Set=="function"&&typeof Set.prototype.entries=="function"?Set:xn(),b=!h&&typeof WeakMap=="function"?WeakMap:Bn(),w=new b;function P(m,_,A,R){if(se(A)){if(!Hr(m))throw new TypeError;if(!Gr(_))throw new TypeError;return I(m,_)}else{if(!Hr(m))throw new TypeError;if(!ge(_))throw new TypeError;if(!ge(R)&&!se(R)&&!st(R))throw new TypeError;return st(R)&&(R=void 0),A=je(A),v(m,_,A,R)}}t("decorate",P);function k(m,_){function A(R,B){if(!ge(R))throw new TypeError;if(!se(B)&&!Dn(B))throw new TypeError;fe(m,_,R,B)}return A}t("metadata",k);function M(m,_,A,R){if(!ge(A))throw new TypeError;return se(R)||(R=je(R)),fe(m,_,A,R)}t("defineMetadata",M);function T(m,_,A){if(!ge(_))throw new TypeError;return se(A)||(A=je(A)),$(m,_,A)}t("hasMetadata",T);function g(m,_,A){if(!ge(_))throw new TypeError;return se(A)||(A=je(A)),x(m,_,A)}t("hasOwnMetadata",g);function O(m,_,A){if(!ge(_))throw new TypeError;return se(A)||(A=je(A)),ee(m,_,A)}t("getMetadata",O);function F(m,_,A){if(!ge(_))throw new TypeError;return se(A)||(A=je(A)),W(m,_,A)}t("getOwnMetadata",F);function N(m,_){if(!ge(m))throw new TypeError;return se(_)||(_=je(_)),He(m,_)}t("getMetadataKeys",N);function E(m,_){if(!ge(m))throw new TypeError;return se(_)||(_=je(_)),Be(m,_)}t("getOwnMetadataKeys",E);function C(m,_,A){if(!ge(_))throw new TypeError;se(A)||(A=je(A));var R=S(_,A,!1);if(se(R)||!R.delete(m))return!1;if(R.size>0)return!0;var B=w.get(_);return B.delete(A),B.size>0||w.delete(_),!0}t("deleteMetadata",C);function I(m,_){for(var A=m.length-1;A>=0;--A){var R=m[A],B=R(_);if(!se(B)&&!st(B)){if(!Gr(B))throw new TypeError;_=B}}return _}function v(m,_,A,R){for(var B=m.length-1;B>=0;--B){var he=m[B],J=he(_,A,R);if(!se(J)&&!st(J)){if(!ge(J))throw new TypeError;R=J}}return R}function S(m,_,A){var R=w.get(m);if(se(R)){if(!A)return;R=new y,w.set(m,R)}var B=R.get(_);if(se(B)){if(!A)return;B=new y,R.set(_,B)}return B}function $(m,_,A){var R=x(m,_,A);if(R)return!0;var B=fr(_);return st(B)?!1:$(m,B,A)}function x(m,_,A){var R=S(_,A,!1);return se(R)?!1:Pn(R.has(m))}function ee(m,_,A){var R=x(m,_,A);if(R)return W(m,_,A);var B=fr(_);if(!st(B))return ee(m,B,A)}function W(m,_,A){var R=S(_,A,!1);if(!se(R))return R.get(m)}function fe(m,_,A,R){var B=S(A,R,!0);B.set(m,_)}function He(m,_){var A=Be(m,_),R=fr(m);if(R===null)return A;var B=He(R,_);if(B.length<=0)return A;if(A.length<=0)return B;for(var he=new p,J=[],H=0,q=A;H<q.length;H++){var z=q[H],K=he.has(z);K||(he.add(z),J.push(z))}for(var Ge=0,zr=B;Ge<zr.length;Ge++){var z=zr[Ge],K=he.has(z);K||(he.add(z),J.push(z))}return J}function Be(m,_){var A=[],R=S(m,_,!1);if(se(R))return A;for(var B=R.keys(),he=Mn(B),J=0;;){var H=Ln(he);if(!H)return A.length=J,A;var q=Nn(H);try{A[J]=q}catch(z){try{$n(he)}finally{throw z}}J++}}function ur(m){if(m===null)return 1;switch(typeof m){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return m===null?1:6;default:return 6}}function se(m){return m===void 0}function st(m){return m===null}function Tn(m){return typeof m=="symbol"}function ge(m){return typeof m=="object"?m!==null:typeof m=="function"}function Sn(m,_){switch(ur(m)){case 0:return m;case 1:return m;case 2:return m;case 3:return m;case 4:return m;case 5:return m}var A="string",R=Qr(m,s);if(R!==void 0){var B=R.call(m,A);if(ge(B))throw new TypeError;return B}return Fn(m)}function Fn(m,_){var A,R,B;{var he=m.toString;if(Nt(he)){var R=he.call(m);if(!ge(R))return R}var A=m.valueOf;if(Nt(A)){var R=A.call(m);if(!ge(R))return R}}throw new TypeError}function Pn(m){return!!m}function Rn(m){return""+m}function je(m){var _=Sn(m);return Tn(_)?_:Rn(_)}function Hr(m){return Array.isArray?Array.isArray(m):m instanceof Object?m instanceof Array:Object.prototype.toString.call(m)==="[object Array]"}function Nt(m){return typeof m=="function"}function Gr(m){return typeof m=="function"}function Dn(m){switch(ur(m)){case 3:return!0;case 4:return!0;default:return!1}}function Qr(m,_){var A=m[_];if(A!=null){if(!Nt(A))throw new TypeError;return A}}function Mn(m){var _=Qr(m,a);if(!Nt(_))throw new TypeError;var A=_.call(m);if(!ge(A))throw new TypeError;return A}function Nn(m){return m.value}function Ln(m){var _=m.next();return _.done?!1:_}function $n(m){var _=m.return;_&&_.call(m)}function fr(m){var _=Object.getPrototypeOf(m);if(typeof m!="function"||m===c||_!==c)return _;var A=m.prototype,R=A&&Object.getPrototypeOf(A);if(R==null||R===Object.prototype)return _;var B=R.constructor;return typeof B!="function"||B===m?_:B}function qn(){var m={},_=[],A=function(){function J(H,q,z){this._index=0,this._keys=H,this._values=q,this._selector=z}return J.prototype["@@iterator"]=function(){return this},J.prototype[a]=function(){return this},J.prototype.next=function(){var H=this._index;if(H>=0&&H<this._keys.length){var q=this._selector(this._keys[H],this._values[H]);return H+1>=this._keys.length?(this._index=-1,this._keys=_,this._values=_):this._index++,{value:q,done:!1}}return{value:void 0,done:!0}},J.prototype.throw=function(H){throw this._index>=0&&(this._index=-1,this._keys=_,this._values=_),H},J.prototype.return=function(H){return this._index>=0&&(this._index=-1,this._keys=_,this._values=_),{value:H,done:!0}},J}();return function(){function J(){this._keys=[],this._values=[],this._cacheKey=m,this._cacheIndex=-2}return Object.defineProperty(J.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),J.prototype.has=function(H){return this._find(H,!1)>=0},J.prototype.get=function(H){var q=this._find(H,!1);return q>=0?this._values[q]:void 0},J.prototype.set=function(H,q){var z=this._find(H,!0);return this._values[z]=q,this},J.prototype.delete=function(H){var q=this._find(H,!1);if(q>=0){for(var z=this._keys.length,K=q+1;K<z;K++)this._keys[K-1]=this._keys[K],this._values[K-1]=this._values[K];return this._keys.length--,this._values.length--,H===this._cacheKey&&(this._cacheKey=m,this._cacheIndex=-2),!0}return!1},J.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=m,this._cacheIndex=-2},J.prototype.keys=function(){return new A(this._keys,this._values,R)},J.prototype.values=function(){return new A(this._keys,this._values,B)},J.prototype.entries=function(){return new A(this._keys,this._values,he)},J.prototype["@@iterator"]=function(){return this.entries()},J.prototype[a]=function(){return this.entries()},J.prototype._find=function(H,q){return this._cacheKey!==H&&(this._cacheIndex=this._keys.indexOf(this._cacheKey=H)),this._cacheIndex<0&&q&&(this._cacheIndex=this._keys.length,this._keys.push(H),this._values.push(void 0)),this._cacheIndex},J}();function R(J,H){return J}function B(J,H){return H}function he(J,H){return[J,H]}}function xn(){return function(){function m(){this._map=new y}return Object.defineProperty(m.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),m.prototype.has=function(_){return this._map.has(_)},m.prototype.add=function(_){return this._map.set(_,_),this},m.prototype.delete=function(_){return this._map.delete(_)},m.prototype.clear=function(){this._map.clear()},m.prototype.keys=function(){return this._map.keys()},m.prototype.values=function(){return this._map.values()},m.prototype.entries=function(){return this._map.entries()},m.prototype["@@iterator"]=function(){return this.keys()},m.prototype[a]=function(){return this.keys()},m}()}function Bn(){var m=16,_=d.create(),A=R();return function(){function q(){this._key=R()}return q.prototype.has=function(z){var K=B(z,!1);return K!==void 0?d.has(K,this._key):!1},q.prototype.get=function(z){var K=B(z,!1);return K!==void 0?d.get(K,this._key):void 0},q.prototype.set=function(z,K){var Ge=B(z,!0);return Ge[this._key]=K,this},q.prototype.delete=function(z){var K=B(z,!1);return K!==void 0?delete K[this._key]:!1},q.prototype.clear=function(){this._key=R()},q}();function R(){var q;do q="@@WeakMap@@"+H();while(d.has(_,q));return _[q]=!0,q}function B(q,z){if(!r.call(q,A)){if(!z)return;Object.defineProperty(q,A,{value:d.create()})}return q[A]}function he(q,z){for(var K=0;K<z;++K)q[K]=Math.random()*255|0;return q}function J(q){return typeof Uint8Array=="function"?typeof crypto<"u"?crypto.getRandomValues(new Uint8Array(q)):typeof msCrypto<"u"?msCrypto.getRandomValues(new Uint8Array(q)):he(new Uint8Array(q),q):he(new Array(q),q)}function H(){var q=J(m);q[6]=q[6]&79|64,q[8]=q[8]&191|128;for(var z="",K=0;K<m;++K){var Ge=q[K];(K===4||K===6||K===8)&&(z+="-"),Ge<16&&(z+="0"),z+=Ge.toString(16).toLowerCase()}return z}}function dr(m){return m.__=void 0,delete m.__,m}})}(i||(i={})),Ri}Za();const tr=class tr{constructor(e,t,r){f(this,"actionUrl");f(this,"queue");f(this,"allowed");f(this,"doWork");this.actionUrl=e,this.queue=t,this.allowed=r}async run(e,t,r){t===void 0&&(t=be.apiClient.url),r||(r=ht(be.apiClient.httpClient));let n=await r.post(t+"/"+this.actionUrl,e),s=n;if(s&&s.queuedJobId){let a=D.actionInfo.startBusyWithProgress();try{let o;if(await D.actionInfo.runActionWithoutBlockingUI(async()=>{for(;!o||!o.done;)o&&await new Promise(l=>setTimeout(()=>{l(void 0)},200)),o=await r.post(t+"/"+tr.apiUrlForJobStatus,{queuedJobId:n.queuedJobId}),o.progress&&a.progress(o.progress)}),o.error)throw o.error;return a.progress(1),o.result}finally{a.close()}}else return n}__register(e){e(this.actionUrl,this.queue,this.allowed,async(t,r,n)=>{try{var s=await this.execute(t,r,n);n.success(s)}catch(a){a.isForbiddenError?n.forbidden():n.error(a,void 0)}})}};f(tr,"apiUrlForJobStatus","jobStatusInQueue");let Rt=tr;class Lr extends Error{constructor(t="Forbidden"){super(t);f(this,"isForbiddenError",!0)}}class eo extends Rt{constructor(t,r,n,s){super(t,n.queue??!1,n.allowed);f(this,"types");f(this,"options");f(this,"originalMethod");this.types=r,this.options=n,this.originalMethod=s}async execute(t,r,n){let s={data:{}},a=r.dataProvider;return await kn(r,this.options,async()=>{if(!r.isAllowedForInstance(void 0,this.options.allowed))throw new Lr;t.args=await On(this.types(),t.args,r,a,n);try{s.data=await this.originalMethod(t.args)}catch(o){throw o}}),s}}function qe(i){return(e,t,r)=>{const n=typeof t=="string"?t:t.name.toString(),s=r?r.value:e;let a=s;_n(e);function o(){var d=typeof Reflect.getMetadata=="function"?Reflect.getMetadata("design:paramtypes",e,n):[];return i.paramTypes&&(d=typeof i.paramTypes=="function"?i.paramTypes():i.paramTypes),d}if(e.prototype!==void 0){let d=new eo((i!=null&&i.apiPrefix?i.apiPrefix+"/":"")+n,()=>o(),i,c=>s.apply(void 0,c));return d.doWork=async(c,h,y,p)=>(c=Li(o(),c),i.blockUser===!1?await D.actionInfo.runActionWithoutBlockingUI(async()=>(await d.run({args:c},y,p)).data):(await d.run({args:c},y,p)).data),a=async function(...c){return Pt()?await s.apply(this,c):await d.doWork(c,void 0)},Mi(e,a),a[Nr]=d,r?(r.value=a,r):a}let l=D.classHelpers.get(e.constructor);l||(l=new un,D.classHelpers.set(e.constructor,l));let u={__register(d){let c=new De;for(const h of l.classes.keys()){let y=l.classes.get(h);y.key||(y.key=c.repo(h).metadata.key),d(y.key+"/"+(i!=null&&i.apiPrefix?i.apiPrefix+"/":"")+n,i?i.queue??!1:!1,i.allowed,async(p,b,w)=>{p.args=p.args.map(k=>In(k)?void 0:k);let P=i.allowed;try{let k=b,M;await kn(k,i,async()=>{if(p.args=await On(o(),p.args,k,k.dataProvider,w),D.allEntities.includes(h)){let T=k.repo(h),g;const O=p.rowInfo;if(O.isNewRow)g=T.create(),await T.getEntityRef(g)._updateEntityBasedOnApi(O.data);else{let N=await T.find({where:{...T.metadata.idMetadata.getIdFilter(O.id),$and:[T.metadata.options.apiPrefilter??{}]}});if(N.length!=1)throw new Error("not found or too many matches");g=N[0],await T.getEntityRef(g)._updateEntityBasedOnApi(O.data)}if(!k.isAllowedForInstance(g,P))throw new Lr;let F=ie(g);await F.__validateEntity();try{M={result:await s.apply(g,p.args),rowInfo:{data:await F.toApiJson(),isNewRow:F.isNew(),wasChanged:F.wasChanged(),id:F.getOriginalId()}}}catch(N){throw F.catchSaveErrors(N)}}else{let T=new h(k,k.dataProvider),g=wi(T,k);if(await g._updateEntityBasedOnApi(p.fields),!k.isAllowedForInstance(T,P))throw new Lr;await g.__validateEntity();try{M={result:await s.apply(T,p.args),fields:await g.toApiJson()}}catch(O){throw g.catchSaveErrors(O)}}}),w.success(M)}catch(k){k.isForbiddenError?w.forbidden():w.error(k,void 0)}})}},doWork:async function(d,c,h,y){if(d=Li(o(),d),D.allEntities.includes(e.constructor)){let p=ie(c);await p.__validateEntity();let b=l.classes.get(c.constructor);b.key||(b.key=p.repository.metadata.key+"_methods");try{let w=await new class extends Rt{constructor(){super(...arguments);f(this,"execute")}}(b.key+"/"+(i!=null&&i.apiPrefix?i.apiPrefix+"/":"")+n,(i==null?void 0:i.queue)??!1,i.allowed).run({args:d,rowInfo:{data:await p.toApiJson(),isNewRow:p.isNew(),wasChanged:p.wasChanged(),id:p.getOriginalId()}},h,y);return await p._updateEntityBasedOnApi(w.rowInfo.data,!0),w.result}catch(w){throw p.catchSaveErrors(w)}}else{let p=wi(c,void 0);try{await p.__validateEntity();let b=await new class extends Rt{constructor(){super(...arguments);f(this,"execute")}}(l.classes.get(c.constructor).key+"/"+(i!=null&&i.apiPrefix?i.apiPrefix+"/":"")+n,(i==null?void 0:i.queue)??!1,i.allowed).run({args:d,fields:await p.toApiJson()},h,y);return await p._updateEntityBasedOnApi(b.fields),b.result}catch(b){throw p.catchSaveErrors(b)}}}};return a=async function(...d){let c=this;return Pt()?await s.apply(c,d):u.doWork(d,c)},Mi(e.constructor,a),a[Nr]=u,r?(r.value=a,r):a}}const to={_isUndefined:!0};function Mi(i,e){(i[$i]||(i[$i]=[])).push(e),D.actionInfo.allActions.push(e)}function In(i){return i&&i._isUndefined}class Ni{constructor(e){f(this,"res");this.res=e}progress(e){this.res.progress(e)}}function Li(i,e){if(i)for(let t=0;t<i.length;t++){const r=i[t];for(const n of[De,yt])(e[t]instanceof n||r==n)&&(e[t]=void 0);if(e[t]!=null){let n={valueType:r};if(n=Vr(n,new De),Oe(r,!1)!=null){let a=ie(e[t]);e[t]=a.getId()}n.valueConverter&&(e[t]=n.valueConverter.toJson(e[t]))}}return e.map(t=>t!==void 0?t:to)}async function On(i,e,t,r,n){for(let s=0;s<e.length;s++){const a=e[s];In(a)&&(e[s]=void 0)}if(i)for(let s=0;s<i.length;s++)if(e.length<s&&e.push(void 0),i[s]==De||i[s]==De)e[s]=t;else if(i[s]==yt&&r)e[s]=r;else if(i[s]==Ni)e[s]=new Ni(n);else{let a={valueType:i[s]};a=Vr(a,t),a.valueConverter&&(e[s]=a.valueConverter.fromJson(e[s])),Oe(i[s],!1)!=null&&(e[s]===null||e[s]===void 0||(e[s]=await t.repo(i[s]).findId(e[s])))}return e}const $i=Symbol.for("classBackendMethodsArray");async function kn(i,e,t){if(e.transactional===void 0||e.transactional===!0)return await Ia(i,t);await t(i.dataProvider)}function Cn(i,e){return be.repo(i,e)}D.actionInfo;class ro{constructor(e,t){f(this,"id");f(this,"caption");f(this,"icon");f(this,"where");f(this,"class");f(this,"hide");this.id=e.toString(),this.caption=(t==null?void 0:t.caption)??this.id,this.icon=t==null?void 0:t.icon,this.where=t==null?void 0:t.where,this.class=t==null?void 0:t.class,this.hide=t==null?void 0:t.hide,t!=null&&t.icon&&t.icon.caption===void 0&&(t.icon.caption=t==null?void 0:t.caption)}}const gt={FF_Role_Admin:"FF_Role.Admin"};var io=Object.defineProperty,no=Object.getOwnPropertyDescriptor,We=(i,e,t,r)=>{for(var n=r>1?void 0:r?no(e,t):e,s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=(r?a(e,t,n):a(n))||n);return r&&n&&io(e,t,n),n};const so={ChangeLog_Admin:"ChangeLog.Admin"};let Pe=class{constructor(){f(this,"id","");f(this,"entity","");f(this,"entityId","");f(this,"changeDate",new Date);f(this,"userId","");f(this,"changes",[]);f(this,"newRow",!1);f(this,"deleted",!1)}};We([Y.id()],Pe.prototype,"id",2);We([Y.string()],Pe.prototype,"entity",2);We([Y.string()],Pe.prototype,"entityId",2);We([Y.date()],Pe.prototype,"changeDate",2);We([Y.string()],Pe.prototype,"userId",2);We([Y.json({dbName:"changesJson"})],Pe.prototype,"changes",2);We([Y.boolean()],Pe.prototype,"newRow",2);We([Y.boolean()],Pe.prototype,"deleted",2);Pe=We([vn("_ff_change_logs",{caption:"FF Change Logs",allowApiCrud:so.ChangeLog_Admin,defaultOrderBy:{changeDate:"desc"}})],Pe);async function ao(i,e,t){var r;if(Pt()){const n=[],s=new An(i,t),a=(t==null?void 0:t.forceNew)||e.isNew,o=(t==null?void 0:t.forceDate)||new Date;for(const l of s.fields.filter(u=>u.valueChanged()||a&&u.value))try{const u=s.excludedValues.includes(l);n.push({key:l.metadata.key,newValue:u?"***":l.value instanceof er?l.value.id:l.metadata.options.valueConverter.toJson(l.value),oldValue:e.isNew?"---":u?"***":l.originalValue instanceof er?l.originalValue.id:l.metadata.options.valueConverter.toJson(l.originalValue)})}catch(u){throw console.error(l),u}n.length>0&&await Cn(Pe).insert({changeDate:o,changes:n,entity:e.metadata.key,entityId:e.metadata.idMetadata.getId(i),userId:((r=be.user)==null?void 0:r.id)||"",newRow:a})}}async function oo(i,e,t){var a;const r=[],n=new An(i,t),s=(t==null?void 0:t.forceDate)||new Date;for(const o of n.fields)try{const l=n.excludedValues.includes(o);r.push({key:o.metadata.key,newValue:l?"***":"---",oldValue:l?"***":o.originalValue instanceof er?o.originalValue.id:o.metadata.options.valueConverter.toJson(o.originalValue)})}catch(l){throw console.error(o),l}await Cn(Pe).insert({changeDate:s,changes:r,entity:e.metadata.key,entityId:e.metadata.idMetadata.getId(i),userId:((a=be.user)==null?void 0:a.id)||"",deleted:!0})}class An{constructor(e,t){f(this,"fields");f(this,"excludedFields");f(this,"excludedValues");const r=ie(e);t!=null&&t.excludeColumns?this.excludedFields=t.excludeColumns(r.fields):this.excludedFields=[],t!=null&&t.excludeValues?this.excludedValues=t.excludeValues(r.fields):this.excludedValues=[],this.excludedFields.push(...r.fields.toArray().filter(n=>n.metadata.options.serverExpression)),this.excludedFields.push(...r.fields.toArray().filter(n=>n.metadata.options.sqlExpression)),this.fields=r.fields.toArray().filter(n=>!this.excludedFields.includes(n))}}const kt=i=>{if(i)return Array.isArray(i)?i.map(e=>e.id):i.id};function Wr(i,e){return vn(i,{...e,allowApiCrud:(e==null?void 0:e.allowApiCrud)??kt(e==null?void 0:e.permissionApiCrud),allowApiDelete:(e==null?void 0:e.allowApiDelete)??kt(e==null?void 0:e.permissionApiDelete),allowApiInsert:(e==null?void 0:e.allowApiInsert)??kt(e==null?void 0:e.permissionApiInsert),allowApiRead:(e==null?void 0:e.allowApiRead)??kt(e==null?void 0:e.permissionApiRead),allowApiUpdate:(e==null?void 0:e.allowApiUpdate)??kt(e==null?void 0:e.permissionApiUpdate),saved:async(t,r)=>{var n;await((n=e==null?void 0:e.saved)==null?void 0:n.call(e,t,r)),(e==null?void 0:e.changeLog)===!1||Pt()&&await ao(t,r,e==null?void 0:e.changeLog)},deleted:async(t,r)=>{var n;await((n=e==null?void 0:e.deleted)==null?void 0:n.call(e,t,r)),(e==null?void 0:e.changeLog)===!1||Pt()&&await oo(t,r,e==null?void 0:e.changeLog)}})}var En=Object.defineProperty,lo=Object.getOwnPropertyDescriptor,uo=(i,e,t)=>e in i?En(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,te=(i,e,t,r)=>{for(var n=r>1?void 0:r?lo(e,t):e,s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=(r?a(e,t,n):a(n))||n);return r&&n&&En(e,t,n),n},lr=(i,e,t)=>uo(i,typeof e!="symbol"?e+"":e,t);const nt={FF_Role_Auth_Admin:"FF_Role_Auth.Admin",FF_Role_Auth_Invite:"FF_Role_Auth.Invite"};let Me=class{constructor(){f(this,"id");f(this,"createdAt");f(this,"updatedAt");f(this,"name");f(this,"roles",[]);f(this,"accounts");f(this,"sessions")}};te([Y.id()],Me.prototype,"id",2);te([Y.createdAt({includeInApi:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin]})],Me.prototype,"createdAt",2);te([Y.updatedAt({includeInApi:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin]})],Me.prototype,"updatedAt",2);te([Y.string({required:!0,validate:[Fe.unique(),Fe.required()]})],Me.prototype,"name",2);te([Y.json(()=>[],{includeInApi:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin],inputType:"selectEnum",valueConverter:{toDb:i=>i===null?null:Array.isArray(i)?i.join(","):i,fromDb:i=>i?i.split(",").map(e=>e.replace("{","").replace("}","")).filter(e=>e!==""):[]}})],Me.prototype,"roles",2);te([or.toMany(()=>_e,"userId")],Me.prototype,"accounts",2);te([or.toMany(()=>rt,"userId")],Me.prototype,"sessions",2);Me=te([Wr("ff_auth.users",{allowApiCrud:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin],caption:"FF Auth - Users"})],Me);let _e=class{constructor(){f(this,"id");f(this,"createdAt");f(this,"updatedAt");f(this,"userId");f(this,"user");f(this,"provider",Ne.PASSWORD.id);f(this,"providerUserId","");f(this,"email",null);f(this,"hashPassword");f(this,"token");f(this,"expiresAt");f(this,"lastVerifiedAt");f(this,"metadata")}};te([Y.id()],_e.prototype,"id",2);te([Y.createdAt()],_e.prototype,"createdAt",2);te([Y.updatedAt()],_e.prototype,"updatedAt",2);te([Y.string()],_e.prototype,"userId",2);te([or.toOne(()=>Me,"userId")],_e.prototype,"user",2);te([Y.string()],_e.prototype,"provider",2);te([Y.string()],_e.prototype,"providerUserId",2);te([Y.string({allowNull:!0})],_e.prototype,"email",2);te([Y.string({includeInApi:!1,allowNull:!0})],_e.prototype,"hashPassword",2);te([Y.string({includeInApi:!1,allowNull:!0})],_e.prototype,"token",2);te([Y.date({includeInApi:!1,allowNull:!0})],_e.prototype,"expiresAt",2);te([Y.date({includeInApi:!1,allowNull:!0})],_e.prototype,"lastVerifiedAt",2);te([Y.json({includeInApi:!1,allowNull:!0})],_e.prototype,"metadata",2);_e=te([Wr("ff_auth.accounts",{allowApiCrud:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin],caption:"FF Auth - Accounts",changeLog:{excludeColumns:i=>[i.hashPassword,i.token]}})],_e);let rt=class{constructor(){f(this,"id");f(this,"expiresAt");f(this,"userId");f(this,"user")}};te([Y.string()],rt.prototype,"id",2);te([Y.date()],rt.prototype,"expiresAt",2);te([Y.string()],rt.prototype,"userId",2);te([or.toOne(()=>Me,"userId")],rt.prototype,"user",2);rt=te([Wr("ff_auth.users_sessions",{allowApiCrud:[nt.FF_Role_Auth_Admin,gt.FF_Role_Admin],caption:"FF Auth - Users sessions",changeLog:!1})],rt);let Ne=class extends ro{constructor(i,e){super(i,{...e})}};lr(Ne,"DEMO",new Ne("DEMO",{caption:"Demo"}));lr(Ne,"PASSWORD",new Ne("PASSWORD",{caption:"Password"}));lr(Ne,"OTP",new Ne("OTP",{caption:"TOTP"}));lr(Ne,"OAUTH",new Ne("OAUTH",{caption:"OAUTH"}));Ne=te([La()],Ne);var fo=Object.defineProperty,co=Object.getOwnPropertyDescriptor,xe=(i,e,t,r)=>{for(var n=co(e,t),s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=a(e,t,n)||n);return n&&fo(e,t,n),n},we,ke;const Le=(we=class{static _setAbstraction(e){Zr(this,ke,e)}static async signOut(){return await Re(we,ke).signOut()}static async signInDemo(e){return await Re(we,ke).signInDemo(e)}static async invite(e){return await Re(we,ke).invite(e)}static async signUpPassword(e,t){return await Re(we,ke).signUpPassword(e,t)}static async signInPassword(e,t){return await Re(we,ke).signInPassword(e,t)}static async forgotPassword(e){return await Re(we,ke).forgotPassword(e)}static async resetPassword(e,t){return await Re(we,ke).resetPassword(e,t)}static async signInOTP(e){return await Re(we,ke).signInOTP(e)}static async verifyOtp(e,t){return await Re(we,ke).verifyOtp(e,t)}static async signInOAuthGetUrl(e){return await Re(we,ke).signInOAuthGetUrl(e)}},ke=new WeakMap,Yr(we,ke),we);xe([qe({allowed:!0})],Le,"signOut");xe([qe({allowed:!0})],Le,"signInDemo");xe([qe({allowed:nt.FF_Role_Auth_Invite})],Le,"invite");xe([qe({allowed:!0})],Le,"signUpPassword");xe([qe({allowed:!0})],Le,"signInPassword");xe([qe({allowed:!0})],Le,"forgotPassword");xe([qe({allowed:!0})],Le,"resetPassword");xe([qe({allowed:!0})],Le,"signInOTP");xe([qe({allowed:!0})],Le,"verifyOtp");xe([qe({allowed:!0})],Le,"signInOAuthGetUrl");let Mt=Le;function Ve(i){i.focus()}var ho=ue('<div class="login"><p> </p> <form class="svelte-skcj83"><input required type="email"/> <button> </button></form></div>');function yo(i,e){ze(e,!1);let t=Ee(e,"firstlyDataAuth",8),r=Ee(e,"email",12,""),n=Ie(""),s=Ie(""),a=Ie(!1);async function o(){Z(n,""),Z(s,""),Z(a,!0);try{const w=await Mt.forgotPassword(r());Z(s,w.message??"")}catch(w){w&&Z(n,w.message??""),Z(a,!1)}}pt();var l=ho(),u=Q(l);let d;var c=Q(u),h=G(u,2),y=Q(h);nr(y,w=>Ve==null?void 0:Ve(w)),it(()=>tt(y,r));var p=G(y,2),b=Q(p);Ce((w,P)=>{d=mt(u,1,"message",null,d,w),oe(c,`${V(n)??""}${V(s)??""}`),$e(y,"placeholder",(ae(t()),le(()=>{var k;return(k=t().ui)==null?void 0:k.strings.email_placeholder}))),p.disabled=P,oe(b,(ae(t()),le(()=>{var k;return(k=t().ui)==null?void 0:k.strings.send_password_reset_instructions})))},[()=>({error:V(n),success:V(s)}),()=>(ae(r()),V(a),le(()=>!r()||!r().includes("@")||!r().includes(".")||V(a)))],ir),Dt("submit",h,sr(o)),X(i,l),Ke()}var po=(i,e,t)=>e(V(t).name),mo=ue('<div class="oauth-button-icon svelte-1dwkktf"><!></div>'),go=ue('<button class="oauth-button svelte-1dwkktf"><!> <span> </span></button>'),wo=ue('<hr style="margin: 1rem"/> <div class="oauth-container svelte-1dwkktf"></div>',1);function qi(i,e){ze(e,!0);const t=async a=>{const o=await Mt.signInOAuthGetUrl({provider:a,redirect:new URL(window.location.href).searchParams.get("redirect")??"/"});window.location.href=o};var r=St(),n=Se(r);{var s=a=>{var o=wo(),l=G(Se(o),2);hs(l,21,()=>{var u;return((u=e.firstlyDataAuth)==null?void 0:u.providers)??[]},u=>u.name,(u,d)=>{var c=go();c.__click=[po,t,d];var h=Q(c);{var y=w=>{var P=mo(),k=Q(P);ms(k,()=>V(d).raw_svg),X(w,P)};me(h,w=>{V(d).raw_svg&&w(y)})}var p=G(h,2),b=Q(p);Ce(()=>oe(b,V(d).label)),X(u,c)}),X(a,o)};me(n,a=>{var o;(((o=e.firstlyDataAuth)==null?void 0:o.providers)??[].length!==0)&&a(s)})}X(i,r),Ke()}Ji(["click"]);var vo=ue('<div class="login"><p> </p> <form class="svelte-skcj83"> <input type="password" required/> <input type="password" required/> <button> </button></form></div>');function bo(i,e){ze(e,!1);let t=Ee(e,"firstlyDataAuth",8),r=Ee(e,"password1",12,""),n=Ee(e,"password2",12,""),s=Ie(""),a=Ie(""),o=Ie(!1);async function l(){Z(s,""),Z(a,""),Z(o,!0);const T=new URL(location.href).searchParams.get("token");try{const g=await Mt.resetPassword(T??"",r());Z(a,g.message??""),window.location.href="/"}catch(g){g&&Z(s,g.message??""),Z(o,!1)}}pt();var u=vo(),d=Q(u);let c;var h=Q(d),y=G(d,2),p=Q(y),b=G(p),w=G(b),P=G(w),k=G(P,2),M=Q(k);Ce(T=>{c=mt(d,1,"message",null,c,T),oe(h,`${V(s)??""}${V(a)??""}`),oe(p,`${ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.password})??""} `),$e(b,"placeholder",(ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.password_placeholder}))),oe(w,` ${ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.confirm})??""} `),$e(P,"placeholder",(ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.password_placeholder}))),k.disabled=!r()||!n()||V(o),oe(M,(ae(t()),le(()=>{var g;return(g=t().ui)==null?void 0:g.strings.reset})))},[()=>({error:V(s)})],ir),tt(b,r),tt(P,n),Dt("submit",y,sr(l)),X(i,u),Ke()}var _o=ue('<form class="svelte-skcj83"><p> </p> <label> <input required type="email"/></label> <label> <input required type="password"/></label> <button> </button></form>');function Io(i,e){ze(e,!1);let t=Ee(e,"firstlyDataAuth",8),r=Ee(e,"view",8,"login"),n=Ee(e,"email",12,""),s=Ie(""),a=Ie(""),o=Ie(),l=Ie(!1);async function u(){Z(s,""),Z(a,""),Z(l,!0);try{await Mt.signInPassword(n(),V(o)),window.location.href=new URL(window.location.href).searchParams.get("redirect")??"/"}catch(y){y&&Z(s,y.message??""),Z(l,!1)}}pt();var d=St(),c=Se(d);{var h=y=>{var p=_o(),b=Q(p);let w;var P=Q(b),k=G(b,2),M=Q(k),T=G(M);it(()=>tt(T,n)),nr(T,C=>Ve==null?void 0:Ve(C));var g=G(k,2),O=Q(g),F=G(O),N=G(g,2),E=Q(N);Ce(C=>{w=mt(b,1,"message",null,w,C),oe(P,`${V(s)??""}${V(a)??""}`),oe(M,`${ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.email})??""} `),$e(T,"placeholder",(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.email_placeholder}))),oe(O,`${ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.password})??""} `),$e(F,"placeholder",(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.password_placeholder}))),N.disabled=!n()||!V(o)||V(l),oe(E,(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.btn_sign_in})))},[()=>({error:V(s)})],ir),tt(F,()=>V(o),C=>Z(o,C)),Dt("submit",p,sr(u)),X(y,p)};me(c,y=>{r()=="login"&&y(h)})}X(i,d),Ke()}var Oo=ue('<form class="svelte-skcj83"><p> </p> <label> <input required type="email"/></label> <label> <input required type="password"/></label> <button> </button></form>');function ko(i,e){ze(e,!1);let t=Ee(e,"firstlyDataAuth",8),r=Ee(e,"view",8,"login"),n=Ee(e,"email",12,""),s=Ie(""),a=Ie(""),o=Ie(),l=Ie(!1);async function u(){Z(s,""),Z(a,""),Z(l,!0);try{const y=await Mt.signUpPassword(n(),V(o));Z(a,y.message??""),await new Promise(p=>setTimeout(p,5e3)),window.location.href=new URL(window.location.href).searchParams.get("redirect")??"/"}catch(y){y&&Z(s,y.message??""),Z(l,!1)}}pt();var d=St(),c=Se(d);{var h=y=>{var p=Oo(),b=Q(p);let w;var P=Q(b),k=G(b,2),M=Q(k),T=G(M);it(()=>tt(T,n)),nr(T,C=>Ve==null?void 0:Ve(C));var g=G(k,2),O=Q(g),F=G(O),N=G(g,2),E=Q(N);Ce(C=>{w=mt(b,1,"message",null,w,C),oe(P,`${V(s)??""}${V(a)??""}`),oe(M,`${ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.email})??""} `),$e(T,"placeholder",(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.email_placeholder}))),oe(O,`${ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.password})??""} `),$e(F,"placeholder",(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.password_placeholder}))),N.disabled=!n()||!V(o)||V(l),oe(E,(ae(t()),le(()=>{var I;return(I=t().ui)==null?void 0:I.strings.btn_sign_up})))},[()=>({error:V(s)})],ir),tt(F,()=>V(o),C=>Z(o,C)),Dt("submit",p,sr(u)),X(y,p)};me(c,y=>{r()=="login"&&y(h)})}X(i,d),Ke()}var Co=ue('<h1 class="svelte-1jjivcr"> </h1>'),Ao=ue('<!> <div class="form-footer svelte-1jjivcr"><!></div> <!>',1),Eo=ue("<hr/> <!>",1),To=ue('<!> <div class="form-footer svelte-1jjivcr"><!> <!></div> <!>',1),So=ue('<!> <div class="form-footer svelte-1jjivcr"><!></div>',1),Fo=ue('<!> <div class="form-footer svelte-1jjivcr"><!></div>',1),Po=ue('<div class="form svelte-1jjivcr"><!> <!> <!> <!> <!></div>'),Ro=ue('<img alt="Authentication" class="svelte-1jjivcr"/>'),Do=ue('<div class="split-layout svelte-1jjivcr"><div class="form-side svelte-1jjivcr"><!></div> <div class="image-side svelte-1jjivcr"><!></div></div>'),Mo=ue('<div class="centered-layout svelte-1jjivcr"><!></div>'),No=ue('<div class="fallback svelte-1jjivcr"><small>- 404 -</small></div> <div class="fallback svelte-1jjivcr"><small>Nothing to see here</small></div>',1),Lo=ue("<!> <!>",1),$o=ue("<div><!></div>");function Bo(i,e){ze(e,!0);const t=u=>{var d=Po(),c=Q(d);{var h=g=>{var O=Co(),F=Q(O);Ce(()=>oe(F,r.ui.strings.app_name)),X(g,O)};me(c,g=>{var O;(O=r.ui)!=null&&O.strings.app_name&&g(h)})}var y=G(c,2);{var p=g=>{const O=wt(()=>{var F;return(F=r.ui)==null?void 0:F.paths.sign_up});at(g,{get path(){return V(O)},children:(F,N)=>{var E=Ao(),C=Se(E);ko(C,{get firstlyDataAuth(){return r},get email(){return V(n)},set email(x){Z(n,x,!0)}});var I=G(C,2),v=Q(I);{var S=x=>{It(x,{get href(){return r.ui.paths.sign_in},children:(ee,W)=>{var fe=vt();Ce(()=>oe(fe,r.ui.strings.back_to_sign_in)),X(ee,fe)},$$slots:{default:!0}})};me(v,x=>{r.ui.paths.sign_in&&x(S)})}var $=G(I,2);qi($,{get firstlyDataAuth(){return r}}),X(F,E)},$$slots:{default:!0}})};me(y,g=>{var O;(O=r.ui)!=null&&O.paths.sign_up&&g(p)})}var b=G(y,2);{var w=g=>{const O=wt(()=>{var F;return(F=r.ui)==null?void 0:F.paths.sign_in});at(g,{get path(){return V(O)},children:(F,N)=>{var E=To(),C=Se(E);Io(C,{get firstlyDataAuth(){return r},get email(){return V(n)},set email(W){Z(n,W,!0)}});var I=G(C,2),v=Q(I);{var S=W=>{It(W,{get href(){return r.ui.paths.forgot_password},children:(fe,He)=>{var Be=vt();Ce(()=>oe(Be,r.ui.strings.forgot_password)),X(fe,Be)},$$slots:{default:!0}})};me(v,W=>{var fe;(fe=r.ui)!=null&&fe.paths.forgot_password&&W(S)})}var $=G(v,2);{var x=W=>{var fe=Eo(),He=G(Se(fe),2);It(He,{get href(){return r.ui.paths.sign_up},children:(Be,ur)=>{var se=vt();Ce(()=>oe(se,r.ui.strings.btn_sign_up)),X(Be,se)},$$slots:{default:!0}}),X(W,fe)};me($,W=>{var fe;(fe=r.ui)!=null&&fe.paths.sign_up&&W(x)})}var ee=G(I,2);qi(ee,{get firstlyDataAuth(){return r}}),X(F,E)},$$slots:{default:!0}})};me(b,g=>{var O;(O=r.ui)!=null&&O.paths.sign_in&&g(w)})}var P=G(b,2);{var k=g=>{const O=wt(()=>{var F;return(F=r.ui)==null?void 0:F.paths.forgot_password});at(g,{get path(){return V(O)},children:(F,N)=>{var E=So(),C=Se(E);yo(C,{get firstlyDataAuth(){return r},get email(){return V(n)},set email($){Z(n,$,!0)}});var I=G(C,2),v=Q(I);{var S=$=>{It($,{get href(){return r.ui.paths.sign_in},children:(x,ee)=>{var W=vt();Ce(()=>oe(W,r.ui.strings.back_to_sign_in)),X(x,W)},$$slots:{default:!0}})};me(v,$=>{var x;(x=r.ui)!=null&&x.paths.sign_in&&$(S)})}X(F,E)},$$slots:{default:!0}})};me(P,g=>{var O;(O=r.ui)!=null&&O.paths.forgot_password&&g(k)})}var M=G(P,2);{var T=g=>{const O=wt(()=>{var F;return(F=r.ui)==null?void 0:F.paths.reset_password});at(g,{get path(){return V(O)},children:(F,N)=>{var E=Fo(),C=Se(E);bo(C,{get firstlyDataAuth(){return r}});var I=G(C,2),v=Q(I);{var S=$=>{It($,{get href(){return r.ui.paths.sign_in},children:(x,ee)=>{var W=vt();Ce(()=>oe(W,r.ui.strings.back_to_sign_in)),X(x,W)},$$slots:{default:!0}})};me(v,$=>{var x;(x=r.ui)!=null&&x.paths.sign_in&&$(S)})}X(F,E)},$$slots:{default:!0}})};me(M,g=>{var O;(O=r.ui)!=null&&O.paths.reset_password&&g(T)})}X(u,d)};let r=e.firstlyData.props,n=ys(""),s=wt(()=>{var u,d;return!!((d=(u=r.ui)==null?void 0:u.images)!=null&&d.main)});var a=$o();let o;var l=Q(a);at(l,{children:(u,d)=>{var c=Lo(),h=Se(c);{var y=w=>{var P=Do(),k=Q(P),M=Q(k);t(M);var T=G(k,2),g=Q(T);{var O=F=>{var N=Ro();Ce(()=>$e(N,"src",r.ui.images.main)),X(F,N)};me(g,F=>{var N,E;(E=(N=r.ui)==null?void 0:N.images)!=null&&E.main&&F(O)})}X(w,P)},p=w=>{var P=Mo(),k=Q(P);t(k),X(w,P)};me(h,w=>{V(s)?w(y):w(p,!1)})}var b=G(h,2);at(b,{fallback:!0,children:(w,P)=>{var k=No();X(w,k)},$$slots:{default:!0}}),X(u,c)},$$slots:{default:!0}}),Ce(u=>o=mt(a,1,"wrapper svelte-1jjivcr",null,o,u),[()=>({"with-image":V(s)})]),X(i,a),Ke()}export{Bo as default};
package/esm/bin/cmd.js CHANGED
@@ -647,7 +647,7 @@ import { BaseEnum, LibIcon_Add, LibIcon_Delete, type BaseEnumOptions } from '../
647
647
  allowApiCrud: Allow.authenticated,
648
648
  })
649
649
  export class Task {
650
- @Fields.cuid()
650
+ @Fields.id()
651
651
  id!: string
652
652
 
653
653
  @Fields.createdAt()
@@ -0,0 +1,35 @@
1
+ import type { CarboneServer } from './server/CarboneServer';
2
+ export declare class CarboneController {
3
+ static server: CarboneServer;
4
+ static uploadTemplate(config: {
5
+ name: string;
6
+ base64: string;
7
+ nameForCarbone?: string;
8
+ deleteOlderTemplatesWithSameName?: boolean;
9
+ }): Promise<void>;
10
+ static downloadTemplate(config: {
11
+ templateName?: string;
12
+ templateId?: string;
13
+ templateExtension?: string;
14
+ filename?: string;
15
+ }): Promise<{
16
+ data: string;
17
+ contentType: string;
18
+ filename: string;
19
+ }>;
20
+ static deleteTemplate(config: {
21
+ templateId: string;
22
+ }): Promise<void>;
23
+ static render(config: {
24
+ templateName?: string;
25
+ templateId?: string;
26
+ templateBase64?: string;
27
+ data: Record<string, any>;
28
+ convertTo?: 'pdf' | string;
29
+ filename?: string;
30
+ }): Promise<{
31
+ data: string;
32
+ contentType: string;
33
+ filename: string;
34
+ }>;
35
+ }
@@ -0,0 +1,155 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { BackendMethod, repo } from 'remult';
8
+ import { dateCompact, strTrimMid } from '@kitql/helpers';
9
+ import { CarboneLog, CarboneTemplate, CarbonLogAction } from './carboneEntities';
10
+ import { Roles_Carbon } from './Roles_Carbon';
11
+ export class CarboneController {
12
+ static server;
13
+ static async uploadTemplate(config) {
14
+ const { name, base64, nameForCarbone, deleteOlderTemplatesWithSameName } = config;
15
+ // 30 max 1 13
16
+ const nameToUse = strTrimMid(nameForCarbone ?? name, { len: 16, midStr: '-' }) + '_' + dateCompact();
17
+ const res = await CarboneController.server.fetch({
18
+ api: `/template`,
19
+ body: JSON.stringify({ name, template: base64 }),
20
+ headers: {
21
+ 'carbone-template-name': nameToUse,
22
+ },
23
+ });
24
+ const j = await res.json();
25
+ const templateId = j.data.templateId;
26
+ const newTemplate = await repo(CarboneTemplate).upsert({
27
+ where: { id: templateId, name, extension: j.data.templateExtension },
28
+ });
29
+ await repo(CarboneLog).insert({
30
+ templateId,
31
+ action: CarbonLogAction.template_upload,
32
+ });
33
+ // Delete all other templates with the same name
34
+ if (deleteOlderTemplatesWithSameName) {
35
+ const older = await repo(CarboneTemplate).find({
36
+ where: { name: newTemplate.name, id: { $ne: newTemplate.id } },
37
+ });
38
+ for (const t of older) {
39
+ await CarboneController.deleteTemplate({ templateId: t.id });
40
+ }
41
+ }
42
+ }
43
+ static async downloadTemplate(config) {
44
+ const { templateName, filename } = config;
45
+ let { templateId, templateExtension } = config;
46
+ if (templateName) {
47
+ const t = await repo(CarboneTemplate).findFirst({ name: templateName });
48
+ if (!t) {
49
+ throw new Error('Template not found');
50
+ }
51
+ templateId = t.id;
52
+ templateExtension = t.extension;
53
+ }
54
+ const response = await CarboneController.server.fetch({
55
+ api: `/template/${templateId}`,
56
+ method: 'GET',
57
+ });
58
+ await repo(CarboneLog).insert({
59
+ templateId,
60
+ action: CarbonLogAction.template_download,
61
+ });
62
+ const contentType = response.headers.get('content-type');
63
+ const arrayBuffer = await response.arrayBuffer();
64
+ const base64 = Buffer.from(arrayBuffer).toString('base64');
65
+ const filenameToUse = filename ?? templateName ?? `template_${templateId}`;
66
+ return {
67
+ data: base64,
68
+ contentType: contentType || 'application/octet-stream',
69
+ filename: `${filenameToUse}.${templateExtension}`,
70
+ };
71
+ }
72
+ static async deleteTemplate(config) {
73
+ const { templateId } = config;
74
+ const response = await CarboneController.server.fetch({
75
+ api: `/template/${templateId}`,
76
+ method: 'DELETE',
77
+ });
78
+ await repo(CarboneLog).insert({
79
+ templateId,
80
+ action: CarbonLogAction.template_delete,
81
+ });
82
+ await repo(CarboneTemplate).delete({ id: templateId });
83
+ }
84
+ static async render(config) {
85
+ const { templateName, templateBase64, data, filename } = config;
86
+ let { templateId, convertTo } = config;
87
+ let mode = '';
88
+ if (templateBase64) {
89
+ mode = 'templateBase64';
90
+ }
91
+ else if (templateName) {
92
+ mode = 'templateName';
93
+ const t = await repo(CarboneTemplate).findFirst({ name: templateName });
94
+ if (!t) {
95
+ throw new Error('Template not found');
96
+ }
97
+ templateId = t.id;
98
+ if (!convertTo) {
99
+ convertTo = t.extension;
100
+ }
101
+ }
102
+ else {
103
+ mode = 'templateId';
104
+ }
105
+ if (CarboneController.server.test) {
106
+ convertTo = 'pdf';
107
+ }
108
+ const response = templateBase64
109
+ ? await CarboneController.server.fetch({
110
+ api: `/render/template?download=true`,
111
+ body: JSON.stringify({ data, template: templateBase64, convertTo: convertTo ?? 'pdf' }),
112
+ })
113
+ : await CarboneController.server.fetch({
114
+ api: `/render/${templateId}?download=true`,
115
+ body: JSON.stringify({ data, convertTo: convertTo ?? 'pdf' }),
116
+ });
117
+ await repo(CarboneLog).insert({
118
+ templateId: mode === 'templateBase64' ? 'templateBase64' : templateId,
119
+ action: CarbonLogAction.render,
120
+ });
121
+ const contentType = response.headers.get('content-type');
122
+ const arrayBuffer = await response.arrayBuffer();
123
+ const base64 = Buffer.from(arrayBuffer).toString('base64');
124
+ const filenameToUse = filename ?? `template_${templateId}`;
125
+ return {
126
+ data: base64,
127
+ contentType: contentType || 'application/octet-stream',
128
+ filename: `${filenameToUse}.${convertTo}`,
129
+ };
130
+ }
131
+ }
132
+ __decorate([
133
+ BackendMethod({
134
+ allowed: [Roles_Carbon.Carbon_Admin, Roles_Carbon.Carbon_UploadTemplate],
135
+ apiPrefix: 'carbone',
136
+ })
137
+ ], CarboneController, "uploadTemplate", null);
138
+ __decorate([
139
+ BackendMethod({
140
+ allowed: [Roles_Carbon.Carbon_Admin, Roles_Carbon.Carbon_DownloadTemplate],
141
+ apiPrefix: 'carbone',
142
+ })
143
+ ], CarboneController, "downloadTemplate", null);
144
+ __decorate([
145
+ BackendMethod({
146
+ allowed: [Roles_Carbon.Carbon_Admin, Roles_Carbon.Carbon_DeleteTemplate],
147
+ apiPrefix: 'carbone',
148
+ })
149
+ ], CarboneController, "deleteTemplate", null);
150
+ __decorate([
151
+ BackendMethod({
152
+ allowed: [Roles_Carbon.Carbon_Admin, Roles_Carbon.Carbon_Render],
153
+ apiPrefix: 'carbone',
154
+ })
155
+ ], CarboneController, "render", null);
@@ -0,0 +1,8 @@
1
+ export declare const Roles_Carbon: {
2
+ readonly Carbon_Admin: "Carbon.Admin";
3
+ readonly Carbon_ViewTemplate: "Carbon.ViewTemplate";
4
+ readonly Carbon_UploadTemplate: "Carbon.UploadTemplate";
5
+ readonly Carbon_DownloadTemplate: "Carbon.DownloadTemplate";
6
+ readonly Carbon_DeleteTemplate: "Carbon.DeleteTemplate";
7
+ readonly Carbon_Render: "Carbon.Render";
8
+ };
@@ -0,0 +1,8 @@
1
+ export const Roles_Carbon = {
2
+ Carbon_Admin: 'Carbon.Admin',
3
+ Carbon_ViewTemplate: 'Carbon.ViewTemplate',
4
+ Carbon_UploadTemplate: 'Carbon.UploadTemplate',
5
+ Carbon_DownloadTemplate: 'Carbon.DownloadTemplate',
6
+ Carbon_DeleteTemplate: 'Carbon.DeleteTemplate',
7
+ Carbon_Render: 'Carbon.Render',
8
+ };
@@ -0,0 +1,21 @@
1
+ export declare class CarbonLogAction {
2
+ id: string;
3
+ static template_upload: CarbonLogAction;
4
+ static template_download: CarbonLogAction;
5
+ static template_delete: CarbonLogAction;
6
+ static render: CarbonLogAction;
7
+ constructor(id: string);
8
+ }
9
+ export declare class CarboneTemplate {
10
+ id: string;
11
+ updatedAt: Date;
12
+ name: string;
13
+ extension: string;
14
+ }
15
+ export declare class CarboneLog {
16
+ id: string;
17
+ updatedAt: Date;
18
+ userId: string;
19
+ action: CarbonLogAction;
20
+ templateId: string;
21
+ }