@datawheel/bespoke 0.8.7 → 0.8.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -1,38 +1,38 @@
1
- import js, { getServerSession } from 'next-auth';
2
- import qs from 'next-auth/providers/auth0';
3
- import Ke from 'auth0';
4
- import * as Qi from 'pg';
5
- import { Sequelize, Error as Error$1, literal, Op as Op$1, fn as fn$1, col, where, cast, json, DataTypes, Model } from 'sequelize';
6
- import Zt from 'yn';
7
- import * as yi from 'd3-array';
8
- import * as gi from 'd3-collection';
9
- import * as hi from 'd3-format';
10
- import * as Ri from 'd3-time-format';
1
+ import Qs, { getServerSession } from 'next-auth';
2
+ import Hs from 'next-auth/providers/auth0';
3
+ import je from 'auth0';
4
+ import * as rc from 'pg';
5
+ import { Sequelize, Error as Error$1, literal, Op, fn as fn$1, col, where, cast, json, DataTypes, Model } from 'sequelize';
6
+ import Xt from 'yn';
7
+ import * as Si from 'd3-array';
8
+ import * as Ei from 'd3-collection';
9
+ import * as Ai from 'd3-format';
10
+ import * as Ti from 'd3-time-format';
11
11
  import { formatAbbreviate } from 'd3plus-format';
12
12
  import { date } from 'd3plus-axis';
13
13
  import { assign, closest, merge, isObject } from 'd3plus-common';
14
14
  import { strip, titleCase } from 'd3plus-text';
15
- import tc from 'slugify';
16
- import Dr from 'axios';
17
- import oc from 'jsonwebtoken';
18
- import nc from 'next/config';
19
- import Sc from 'flexsearch';
20
- import jc from 'base58';
21
- import Hc from 'flickr-sdk';
22
- import $c from 'sharp';
15
+ import sc from 'slugify';
16
+ import Ur from 'axios';
17
+ import cc from 'jsonwebtoken';
18
+ import lc from 'next/config';
19
+ import _c from 'flexsearch';
20
+ import Yc from 'base58';
21
+ import Qc from 'flickr-sdk';
22
+ import jc from 'sharp';
23
23
  import { createApi } from 'unsplash-js';
24
- import el from 'fs';
24
+ import nl from 'fs';
25
25
  import { createContext, createElement } from 'react';
26
26
  import { renderToString } from 'react-dom/server';
27
- import * as So from '@tabler/icons-react';
28
- import xl from 'nextjs-cors';
29
- import Il from 'image-type';
30
- import Tl from 'formidable';
31
- import kl from 'dom-parser';
32
- import dp from 'path';
33
- import Qa from 'axios-retry';
27
+ import * as Ao from '@tabler/icons-react';
28
+ import Vl from 'nextjs-cors';
29
+ import $l from 'image-type';
30
+ import kl from 'formidable';
31
+ import Ll from 'dom-parser';
32
+ import Tp from 'path';
33
+ import rs from 'axios-retry';
34
34
  import { format } from 'pretty-format';
35
- import Yl from 'toposort';
35
+ import iu from 'toposort';
36
36
  import { csvParse } from 'd3-dsv';
37
37
  import { getSession } from 'next-auth/react';
38
38
  import { schema, normalize } from 'normalizr';
@@ -43,33 +43,33 @@ import 'react-redux';
43
43
  import 'react/jsx-runtime';
44
44
  import '@mantine/core';
45
45
 
46
- var Vs=Object.defineProperty;var $s=(e,t)=>{for(var r in t)Vs(e,r,{get:t[r],enumerable:!0});};var Gs={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"https://localhost:3000").host,clientId:process.env.AUTH0_CLIENT_ID||"",clientSecret:process.env.AUTH0_CLIENT_SECRET||""};function Ge(e){let t=e;if(t&&!t.source)if(!t.providers||t.providers.length===0){let r=qs({clientId:process.env.AUTH0_CLIENT_ID||"",clientSecret:process.env.AUTH0_CLIENT_SECRET||"",issuer:process.env.AUTH0_ISSUER_BASE_URL||""});t.providers=[r],t.callbacks={async jwt({token:o,profile:n,trigger:a,session:s}){if(n&&(o.bespoke_app_metadata=n.bespoke_app_metadata||{},o.bespoke_user_metadata=n.bespoke_user_metadata||{},o.bespoke_roles=n.bespoke_roles||[],o.name=n.name),a==="update")try{let i=new Ke.ManagementClient(Gs),c=await i.users.get({id:o.sub});o.bespoke_user_metadata=c.user_metadata||{},o.bespoke_app_metadata=c.app_metadata||{};let l=await i.users.getRoles({id:o.sub});o.bespoke_roles=l.map(u=>u.name),s?.user_metadata&&(o.bespoke_user_metadata={...o.bespoke_user_metadata,...s.user_metadata}),s?.app_metadata&&(o.bespoke_app_metadata={...o.bespoke_app_metadata,...s.app_metadata});}catch(i){console.error("Error refreshing user data from Auth0:",i),o.bespoke_user_metadata={...o.bespoke_user_metadata,...s?.user_metadata||{}},o.bespoke_app_metadata={...o.bespoke_app_metadata,...s?.app_metadata||{}};}return o},async session({session:o,token:n}){return o&&n&&(o.user.id=n.sub,o.user.bespoke_app_metadata=n.bespoke_app_metadata,o.user.bespoke_user_metadata=n.bespoke_user_metadata,o.user.bespoke_roles=n.bespoke_roles),o}},t.source="auth0";}else t.source="custom";return t.secret||(t.secret=process.env.AUTH0_SECRET||process.env.NEXTAUTH_SECRET),t}async function ge(e,t,r={providers:[]}){let o=Ge(r),n=await getServerSession(e,t,o);return n&&(n.source=o.source||""),n}var Hs=(e={providers:[]})=>{let t=Ge(e);return js(t)},Ws=Hs;var T=class extends Error{constructor(r,o){super(o);this.code=r;}toJSON(){return en(this)}static is(r){return Object.prototype.hasOwnProperty.call(r,"code")&&typeof r.code=="number"}};function Js(e){return {ok:!0,status:200,wrapper:!0,data:e}}function en(e){return {ok:!1,status:T.is(e)?e.code:500,error:e.message}}function I(e){return t=>e(t).then(Js,en)}function pe(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${Ae(r)}`;return e[n]}let o=`${t}${Ae(r)}`;return e[o]}function Ae(e){return e[0].toUpperCase()+e.slice(1)}var z={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},tn={APP:"App",USER:"User"},rn=e=>{let t=Object.values(z);return e?e.map(r=>({...r,type:t.includes(r.name)?tn.APP:tn.USER})):[]};var je={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"https://localhost:3000").host,clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET};function on(){return async()=>{try{let t=await new Ke.ManagementClient(je).roles.getAll({include_totals:!0,per_page:100});return {roles:rn(t.roles)}}catch(e){throw console.error("AuthZeroError",e),new T(e.response?.status||500,e.message)}}}function nn(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0},o=new Ke.ManagementClient(je);if(e.role_id&&e.role_id!==""){let n={...r,id:e.role_id};t=await o.roles.getUsers(n);}else {let n={...r,q:e.query};t=await o.users.getAll(n);}}return t}catch(t){throw console.error("AuthZeroError",t),new T(t.response?.status||500,t.message)}}}function an(){return async e=>{try{if(e){let t=new Ke.ManagementClient(je),r=await Promise.all([t.users.get({id:e}),t.users.getRoles({id:e})]);return {...r[0],roles:r[1]}}else throw new T(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new T(t.response?.status||500,t.message)}}}function sn(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await to(e.user_id,e.app_metadata),e.user_metadata&&await ro(e.user_id,e.user_metadata),e.roles){let t=new Ke.ManagementClient(je),o=(await t.users.getRoles({id:e.user_id})).map(i=>i.id),n=e.roles.map(i=>i.id),a=n.filter(i=>!o.includes(i)),s=o.filter(i=>!n.includes(i));a.length>0&&await t.users.assignRoles({id:e.user_id},{roles:a}),s.length>0&&await t.users.removeRoles({id:e.user_id},{roles:s});}return {status:"success",message:"User updated!"}}else throw new T(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new T(t.response?.status||500,t.message)}}}function cn(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new T(t.response?.status||500,t.message)}}}async function to(e,t){return await new Ke.ManagementClient(je).users.updateAppMetadata({id:e},t)}async function ro(e,t){return await new Ke.ManagementClient(je).users.updateUserMetadata({id:e},t)}async function ln(e,t){try{let r=new Ke.ManagementClient(je),o=await r.getUsers({search_engine:"v3",q:`user_metadata.${e}:"${t}"`});for(let n=0;n<o.length;n++){let a=o[n];a.bespoke_user_metadata=a.user_metadata||{},delete a.user_metadata,a.bespoke_roles=(await r.users.getRoles({id:a.user_id})).map(s=>s.name);}return o}catch(r){console.error(r);}}var Ys=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await ge(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,p={...i.user.bespoke_app_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,app_metadata:p}):await to(c.id,p),n({error:"",description:`App metadata updated for user ${i.user.email}`});}}catch(i){a({error:i.message,description:"The user does not have an active session or is not authenticated"});}})();}),Qs=Ys;var Zs=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await ge(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,p={...c.bespoke_user_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,user_metadata:p}):await ro(c.id,p),n({error:"",description:`App metadata updated for user ${c.email}`});}}catch(i){a({error:i.message,description:"The user does not have an active session or is not authenticated"});}})();}),Xs=Zs;var qt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function yr(e,t){return e.some(r=>t.includes(r))}function gr(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var ei=(e,t,r)=>async function(o,n){let a=await ge(o,n,r);if(!a||!a.user){n.status(401).json({error:"not_authenticated",description:"The user does not have an active session or is not authenticated"});return}let s=a.user.bespoke_roles||[];if(t.length>0&&!yr(s,t)){n.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(o,n);},ti=ei;var ri=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{if(t&&r&&t!==""&&r!==""){let s;e.actions?.searchUser?s=await e.actions.searchUser()({[t]:r}):s=await ln(t,r),o(s);}else n({error:"empty_params",description:"key or value params are empty"});}catch(s){n({error:s.message,description:"Error "});}})();}),oi=ri;var Ie=(e=process.env)=>Zt(e.REPORTS_LOGGING);var We=class extends Model{getContent(t){let r=this.contentByLocale.find(o=>o.locale===t);if(!r)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return r}toJSON(){let t=this.get({plain:!0}),{inputs:r=[],consumers:o=[],contentByLocale:n=[]}=this;return {...t,inputs:r.map(a=>a.toJSON()),consumers:o.map(a=>a.toJSON()),contentByLocale:Object.fromEntries(n.map(a=>[a.locale,a.toJSON()]))}}};function si(e){return We.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},type:{type:DataTypes.STRING,defaultValue:"paragraph"},shared:{type:DataTypes.BOOLEAN,defaultValue:!1},blockrow:DataTypes.STRING,blockcol:DataTypes.STRING,section_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_section",key:"id"}}},{sequelize:e,modelName:"block",tableName:"bespoke_reports_block",freezeTableName:!0,timestamps:!1}),t=>(We.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),We.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),We.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),We)}var pn=si;var hr=class extends Model{};function ci(e){return hr.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},content:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"block_content",tableName:"bespoke_reports_block_content",freezeTableName:!0,timestamps:!1}),()=>hr}var dn=ci;var Rr=class extends Model{};function ui(e){return Rr.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},block_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},input_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}}},{sequelize:e,modelName:"block_input",tableName:"bespoke_reports_block_input",freezeTableName:!0,timestamps:!1}),()=>Rr}var mn=ui;function ao(e){let t=1+76.18009173/e-86.50532033/(e+1)+24.01409822/(e+2)-1.231739516/(e+3)+.00120858003/(e+4)-536382e-11/(e+5);return (e-.5)*Math.log(e+4.5)-(e+4.5)+Math.log(t*2.50662827465)}function fn(e,t,r){let o=0,n=1,a=1,s=1,i=0,c=0,l;for(;Math.abs((a-c)/a)>1e-5;)c=a,l=-(t+i)*(t+r+i)*e/(t+2*i)/(t+2*i+1),o=a+l*o,n=s+l*n,i+=1,l=i*(r-i)*e/(t+2*i-1)/(t+2*i),a=o+l*a,s=n+l*s,o/=s,n/=s,a/=s,s=1;return a/t}function pi(e,t,r){let o,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let a=r,s=e+1,i=t-e,c=s+i,l=Math.exp(ao(c)-ao(i)-ao(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*fn(a,s,i):o=1-l*fn(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function di(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function zt(e,t,r,o){let n=t/(1-t),a=0,s=1,i=0,c=0;for(;a<=e;)c+=s,a>=r&a<=o&&(i+=s),c>1e30&&(i/=1e30,c/=1e30,s/=1e30),a+=1,s=s*n*(e+1-a)/a;return i/c}function mi(e,t,r){let o=e/t,a=(100-r*100)/2,s,i;if(e===0)s=0;else {let c=o/2,l=0,u=o,p=a/100;for(;u-l>1e-5;)zt(t,c,e,e)*.5+zt(t,c,e+1,t)>p?(u=c,c=(l+c)/2):(l=c,c=(u+c)/2);s=c;}if(e===t)i=0;else {let c=(1+o)/2,l=o,u=1,p=a/100;for(;u-l>1e-5;)zt(t,c,e,e)*.5+zt(t,c,0,e-1)<p?(u=c,c=(l+c)/2):(l=c,c=(u+c)/2);i=c;}return {lci:s,uci:i}}function fi(e,t){let r=e,o=t,n=r,a=o,s=95,i=.5,c=.5,u=(100-s)/2/100,p=n;for(;c>1e-5;)c/=2,br((1+p)*i/(1-i),p+1,1e10)+.5*br((1+p)*i/(1-i),p,p)>u?i-=c:i+=c;let d=(1+p)*i/(1-i)/a;for(i=.5,c=.5,u=(100-s)/2/100;c>1e-5;)c/=2,br((1+p)*i/(1-i),0,p-1)+.5*br((1+p)*i/(1-i),p,p)<u?i-=c:i+=c;let m=(1+p)*i/(1-i)/a;return {lci:d,uci:m}}function br(e,t,r){let o=1,n=0,a=0,s=0;for(;s<e||o>n*1e-10;)n+=o,s>=t&s<=r&&(a+=o),n>1e30&&(a/=1e30,n/=1e30,o/=1e30),s+=1,o=o*e/s;return a/n}var yn={binomialCdf:pi,binP:zt,computeMidP:mi,criticalValue:di,smr:fi};var Je={d3:{...yi,...gi,...hi,...Ri},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:yn},gn={};var Ce={UNILATERAL:"uni",MULTILATERAL:"multi"},Qe={SINGLE:"single",MULTI:"multi"};var so={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},wi={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Pi={DISABLED:"disabled"},ki={FALLBACK:"fallback"};var xi={IMAGE:"image",PARAGRAPH:"paragraph",SELECTOR:"selector",STAT:"stat",SUBTITLE:"subtitle",TITLE:"title",NAV:"nav",RESET_BUTTON:"reset_button",COMPARISON_BUTTON:"comparison_button",TABLE:"table",BUTTON:"button",MULTIHIERARCHY_SELECTOR:"multihierarchy_selector",FALLBACK:"fallback"},io={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},co="logic",N={...xi,...io},Be={NAME:"name",DESCRIPTION:"description",...so,...wi,...ki,...Pi};var Sr={FORMATTER:"formatter",FUNCTION:"function"},bt={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var St=class extends Model{};function Bi(e){return St.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{description:"",testValue:"Foo",type:Sr.FORMATTER,inputType:bt.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:!0,timestamps:!1,hooks:{async afterSync(t){let r=await St.findAll();if(t.force||r.length===0){let o=Object.entries(gn).map(([n,a])=>({name:n,content:a}));await St.bulkCreate(o);}}}}),()=>St}var bn=Bi;var Gt=class extends Model{getContent(t){let{contentByLocale:r}=this;if(!r)throw new Error("This ImageModel entity didn't include its ImageContentModel association.");let o=r.find(n=>n.locale===t);if(!o)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return o}};function Oi(e){return Gt.init({id:{autoIncrement:!0,primaryKey:!0,type:DataTypes.INTEGER},url:{type:DataTypes.TEXT,unique:!0},author:DataTypes.TEXT,license:DataTypes.TEXT,splash:DataTypes.BLOB,thumb:DataTypes.BLOB},{sequelize:e,modelName:"image",tableName:"bespoke_reports_image",freezeTableName:!0}),t=>(Gt.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Gt)}var Sn=Oi;var Er=class extends Model{};function Ni(e){return Er.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_image",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},meta:DataTypes.TEXT},{sequelize:e,modelName:"image_content",tableName:"bespoke_reports_image_content",freezeTableName:!0,timestamps:!1}),()=>Er}var En=Ni;var At=class extends Model{toJSON(){let t=this.get({plain:!0}),{dimensions:r=[],sections:o=[]}=this;return {...t,settings:t.settings,date:new Date(this.date||Date.now()).toISOString(),dimensions:r.map(n=>n.toJSON()),sections:o.map(n=>n.toJSON())}}};function Ui(e){return At.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,allowNull:!1,defaultValue:""},visible:{type:DataTypes.BOOLEAN,defaultValue:!0},date:{type:DataTypes.DATE,defaultValue:DataTypes.NOW},type:{type:DataTypes.STRING,defaultValue:"report",validate:{isIn:[["report","story"]]}},settings:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"report",tableName:"bespoke_reports_report",freezeTableName:!0,timestamps:!1}),t=>(At.hasMany(t.dimension,{foreignKey:"report_id",sourceKey:"id",as:"dimensions"}),At.hasMany(t.section,{foreignKey:"report_id",sourceKey:"id",as:"sections"}),At)}var An=Ui;var vt=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function Vi(e){return vt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},ordering:{type:DataTypes.INTEGER,defaultValue:0},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"dimension",tableName:"bespoke_reports_report_dimension",freezeTableName:!0,timestamps:!1}),t=>(vt.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:!1}),vt.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),vt)}var Tn=Vi;var _t=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function qi(e){return _t.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},dimension_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},slug:{type:DataTypes.STRING,defaultValue:""},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},config:{type:DataTypes.JSONB,defaultValue:{}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:!0,timestamps:!1}),t=>(_t.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),_t.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),_t)}var vn=qi;var Pe=class extends Model{getContent(t){let{contentByLocale:r}=this;if(!r)throw new Error("This SearchModel entity didn't include its SearchContentModel association.");let o=r.find(n=>n.locale===t);if(!o)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return o}};function Gi(e){return Pe.init({id:{primaryKey:!0,type:DataTypes.TEXT},zvalue:DataTypes.DOUBLE,slug:DataTypes.TEXT,image_id:{type:DataTypes.INTEGER,references:{model:"bespoke_reports_image",key:"id"}},content_id:{autoIncrement:!0,type:DataTypes.INTEGER,unique:!0},variant_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension_variant",key:"id"}},dimension_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},report_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"search",tableName:"bespoke_reports_search",freezeTableName:!0,timestamps:!1}),t=>(Pe.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),Pe.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),Pe.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),Pe.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),Pe.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),Pe)}var _n=Gi;var Ar=class extends Model{};function ji(e){return Ar.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_search",key:"content_id"}},locale:{type:DataTypes.STRING,primaryKey:!0},name:DataTypes.TEXT,annotations:{type:DataTypes.JSONB,defaultValue:{}},attributes:{type:DataTypes.JSONB,defaultValue:{}},keywords:DataTypes.ARRAY(DataTypes.TEXT)},{sequelize:e,modelName:"search_content",tableName:"bespoke_reports_search_content",freezeTableName:!0,timestamps:!1}),()=>Ar}var wn=ji;var jt=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function Wi(e){return jt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},heading:{type:DataTypes.INTEGER,defaultValue:1},ordering:DataTypes.STRING,report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}}},{sequelize:e,modelName:"section",tableName:"bespoke_reports_section",freezeTableName:!0,timestamps:!1}),t=>(jt.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),jt)}var Pn=Wi;var vr=class extends Model{};function Yi(e){return vr.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,defaultValue:""},description:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{pattern:"",logic:`return {
46
+ var js=Object.defineProperty;var Ks=(e,t)=>{for(var r in t)js(e,r,{get:t[r],enumerable:!0});};var Js={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"https://localhost:3000").host,clientId:process.env.AUTH0_CLIENT_ID||"",clientSecret:process.env.AUTH0_CLIENT_SECRET||""};function Ge(e){let t=e;if(t&&!t.source)if(!t.providers||t.providers.length===0){let r=Hs({clientId:process.env.AUTH0_CLIENT_ID||"",clientSecret:process.env.AUTH0_CLIENT_SECRET||"",issuer:process.env.AUTH0_ISSUER_BASE_URL||""});t.providers=[r],t.callbacks={async jwt({token:o,profile:n,trigger:a,session:s}){if(n&&(o.bespoke_app_metadata=n.bespoke_app_metadata||{},o.bespoke_user_metadata=n.bespoke_user_metadata||{},o.bespoke_roles=n.bespoke_roles||[],o.name=n.name),a==="update")try{let i=new je.ManagementClient(Js),c=await i.users.get({id:o.sub});o.bespoke_user_metadata=c.user_metadata||{},o.bespoke_app_metadata=c.app_metadata||{};let l=await i.users.getRoles({id:o.sub});o.bespoke_roles=l.map(u=>u.name),s?.user_metadata&&(o.bespoke_user_metadata={...o.bespoke_user_metadata,...s.user_metadata}),s?.app_metadata&&(o.bespoke_app_metadata={...o.bespoke_app_metadata,...s.app_metadata});}catch(i){console.error("Error refreshing user data from Auth0:",i),o.bespoke_user_metadata={...o.bespoke_user_metadata,...s?.user_metadata||{}},o.bespoke_app_metadata={...o.bespoke_app_metadata,...s?.app_metadata||{}};}return o},async session({session:o,token:n}){return o&&n&&(o.user.id=n.sub,o.user.bespoke_app_metadata=n.bespoke_app_metadata,o.user.bespoke_user_metadata=n.bespoke_user_metadata,o.user.bespoke_roles=n.bespoke_roles),o}},t.source="auth0";}else t.source="custom";return t.secret||(t.secret=process.env.AUTH0_SECRET||process.env.NEXTAUTH_SECRET),t}async function ye(e,t,r={providers:[]}){let o=Ge(r),n=await getServerSession(e,t,o);return n&&(n.source=o.source||""),n}var Zs=(e={providers:[]})=>{let t=Ge(e);return Qs(t)},Xs=Zs;var E=class extends Error{constructor(r,o){super(o);this.code=r;}toJSON(){return rn(this)}static is(r){return Object.prototype.hasOwnProperty.call(r,"code")&&typeof r.code=="number"}};function ei(e){return {ok:!0,status:200,wrapper:!0,data:e}}function rn(e){return {ok:!1,status:E.is(e)?e.code:500,error:e.message}}function I(e){return t=>e(t).then(ei,rn)}function pe(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${Ae(r)}`;return e[n]}let o=`${t}${Ae(r)}`;return e[o]}function Ae(e){return e[0].toUpperCase()+e.slice(1)}var z={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},on={APP:"App",USER:"User"},nn=e=>{let t=Object.values(z);return e?e.map(r=>({...r,type:t.includes(r.name)?on.APP:on.USER})):[]};var Ke={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"https://localhost:3000").host,clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET};function an(){return async()=>{try{let t=await new je.ManagementClient(Ke).roles.getAll({include_totals:!0,per_page:100});return {roles:nn(t.roles)}}catch(e){throw console.error("AuthZeroError",e),new E(e.response?.status||500,e.message)}}}function sn(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0},o=new je.ManagementClient(Ke);if(e.role_id&&e.role_id!==""){let n={...r,id:e.role_id};t=await o.roles.getUsers(n);}else {let n={...r,q:e.query};t=await o.users.getAll(n);}}return t}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function cn(){return async e=>{try{if(e){let t=new je.ManagementClient(Ke),r=await Promise.all([t.users.get({id:e}),t.users.getRoles({id:e})]);return {...r[0],roles:r[1]}}else throw new E(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function ln(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await ro(e.user_id,e.app_metadata),e.user_metadata&&await oo(e.user_id,e.user_metadata),e.roles){let t=new je.ManagementClient(Ke),o=(await t.users.getRoles({id:e.user_id})).map(i=>i.id),n=e.roles.map(i=>i.id),a=n.filter(i=>!o.includes(i)),s=o.filter(i=>!n.includes(i));a.length>0&&await t.users.assignRoles({id:e.user_id},{roles:a}),s.length>0&&await t.users.removeRoles({id:e.user_id},{roles:s});}return {status:"success",message:"User updated!"}}else throw new E(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function un(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}async function ro(e,t){return await new je.ManagementClient(Ke).users.updateAppMetadata({id:e},t)}async function oo(e,t){return await new je.ManagementClient(Ke).users.updateUserMetadata({id:e},t)}async function pn(e,t){try{let r=new je.ManagementClient(Ke),o=await r.getUsers({search_engine:"v3",q:`user_metadata.${e}:"${t}"`});for(let n=0;n<o.length;n++){let a=o[n];a.bespoke_user_metadata=a.user_metadata||{},delete a.user_metadata,a.bespoke_roles=(await r.users.getRoles({id:a.user_id})).map(s=>s.name);}return o}catch(r){console.error(r);}}var ti=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await ye(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,p={...i.user.bespoke_app_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,app_metadata:p}):await ro(c.id,p),n({error:"",description:`App metadata updated for user ${i.user.email}`});}}catch(i){a({error:i.message,description:"The user does not have an active session or is not authenticated"});}})();}),ri=ti;var oi=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await ye(e,t,r);if(!i||!i.user)throw new Error("not_authenticated");{let{user:c,source:l}=i,p={...c.bespoke_user_metadata||{},...o};l==="custom"&&r.actions?.updateUser?await r.actions.updateUser()({user_id:c.id,user_metadata:p}):await oo(c.id,p),n({error:"",description:`App metadata updated for user ${c.email}`});}}catch(i){a({error:i.message,description:"The user does not have an active session or is not authenticated"});}})();}),ni=oi;var zt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function yr(e,t){return e.some(r=>t.includes(r))}function hr(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var ai=(e,t,r)=>async function(o,n){let a=await ye(o,n,r);if(!a||!a.user){n.status(401).json({error:"not_authenticated",description:"The user does not have an active session or is not authenticated"});return}let s=a.user.bespoke_roles||[];if(t.length>0&&!yr(s,t)){n.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(o,n);},si=ai;var ii=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{if(t&&r&&t!==""&&r!==""){let s;e.actions?.searchUser?s=await e.actions.searchUser()({[t]:r}):s=await pn(t,r),o(s);}else n({error:"empty_params",description:"key or value params are empty"});}catch(s){n({error:s.message,description:"Error "});}})();}),ci=ii;var Ie=(e=process.env)=>Xt(e.REPORTS_LOGGING);var We=class extends Model{getContent(t){let r=this.contentByLocale.find(o=>o.locale===t);if(!r)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return r}toJSON(){let t=this.get({plain:!0}),{inputs:r=[],consumers:o=[],contentByLocale:n=[]}=this;return {...t,inputs:r.map(a=>a.toJSON()),consumers:o.map(a=>a.toJSON()),contentByLocale:Object.fromEntries(n.map(a=>[a.locale,a.toJSON()]))}}};function pi(e){return We.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},type:{type:DataTypes.STRING,defaultValue:"paragraph"},shared:{type:DataTypes.BOOLEAN,defaultValue:!1},blockrow:DataTypes.STRING,blockcol:DataTypes.STRING,section_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_section",key:"id"}}},{sequelize:e,modelName:"block",tableName:"bespoke_reports_block",freezeTableName:!0,timestamps:!1}),t=>(We.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),We.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),We.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),We)}var mn=pi;var Rr=class extends Model{};function mi(e){return Rr.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},content:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"block_content",tableName:"bespoke_reports_block_content",freezeTableName:!0,timestamps:!1}),()=>Rr}var fn=mi;var br=class extends Model{};function gi(e){return br.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},block_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}},input_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_block",key:"id"}}},{sequelize:e,modelName:"block_input",tableName:"bespoke_reports_block_input",freezeTableName:!0,timestamps:!1}),()=>br}var gn=gi;function so(e){let t=1+76.18009173/e-86.50532033/(e+1)+24.01409822/(e+2)-1.231739516/(e+3)+.00120858003/(e+4)-536382e-11/(e+5);return (e-.5)*Math.log(e+4.5)-(e+4.5)+Math.log(t*2.50662827465)}function yn(e,t,r){let o=0,n=1,a=1,s=1,i=0,c=0,l;for(;Math.abs((a-c)/a)>1e-5;)c=a,l=-(t+i)*(t+r+i)*e/(t+2*i)/(t+2*i+1),o=a+l*o,n=s+l*n,i+=1,l=i*(r-i)*e/(t+2*i-1)/(t+2*i),a=o+l*a,s=n+l*s,o/=s,n/=s,a/=s,s=1;return a/t}function yi(e,t,r){let o,n;if(e<0)n=0;else if(e>=t)n=1;else {e=Math.floor(e);let a=r,s=e+1,i=t-e,c=s+i,l=Math.exp(so(c)-so(i)-so(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*yn(a,s,i):o=1-l*yn(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function hi(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function Gt(e,t,r,o){let n=t/(1-t),a=0,s=1,i=0,c=0;for(;a<=e;)c+=s,a>=r&a<=o&&(i+=s),c>1e30&&(i/=1e30,c/=1e30,s/=1e30),a+=1,s=s*n*(e+1-a)/a;return i/c}function Ri(e,t,r){let o=e/t,a=(100-r*100)/2,s,i;if(e===0)s=0;else {let c=o/2,l=0,u=o,p=a/100;for(;u-l>1e-5;)Gt(t,c,e,e)*.5+Gt(t,c,e+1,t)>p?(u=c,c=(l+c)/2):(l=c,c=(u+c)/2);s=c;}if(e===t)i=0;else {let c=(1+o)/2,l=o,u=1,p=a/100;for(;u-l>1e-5;)Gt(t,c,e,e)*.5+Gt(t,c,0,e-1)<p?(u=c,c=(l+c)/2):(l=c,c=(u+c)/2);i=c;}return {lci:s,uci:i}}function bi(e,t){let r=e,o=t,n=r,a=o,s=95,i=.5,c=.5,u=(100-s)/2/100,p=n;for(;c>1e-5;)c/=2,Sr((1+p)*i/(1-i),p+1,1e10)+.5*Sr((1+p)*i/(1-i),p,p)>u?i-=c:i+=c;let d=(1+p)*i/(1-i)/a;for(i=.5,c=.5,u=(100-s)/2/100;c>1e-5;)c/=2,Sr((1+p)*i/(1-i),0,p-1)+.5*Sr((1+p)*i/(1-i),p,p)<u?i-=c:i+=c;let m=(1+p)*i/(1-i)/a;return {lci:d,uci:m}}function Sr(e,t,r){let o=1,n=0,a=0,s=0;for(;s<e||o>n*1e-10;)n+=o,s>=t&s<=r&&(a+=o),n>1e30&&(a/=1e30,n/=1e30,o/=1e30),s+=1,o=o*e/s;return a/n}var hn={binomialCdf:yi,binP:Gt,computeMidP:Ri,criticalValue:hi,smr:bi};var Je={d3:{...Si,...Ei,...Ai,...Ti},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:hn},Rn={};var Ce={UNILATERAL:"uni",MULTILATERAL:"multi"},Qe={SINGLE:"single",MULTI:"multi"};var io={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Ci={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Bi={DISABLED:"disabled"},Li={FALLBACK:"fallback"};var Oi={IMAGE:"image",PARAGRAPH:"paragraph",SELECTOR:"selector",STAT:"stat",SUBTITLE:"subtitle",TITLE:"title",NAV:"nav",RESET_BUTTON:"reset_button",COMPARISON_BUTTON:"comparison_button",TABLE:"table",BUTTON:"button",MULTIHIERARCHY_SELECTOR:"multihierarchy_selector",FALLBACK:"fallback"},co={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},lo="logic",N={...Oi,...co},Be={NAME:"name",DESCRIPTION:"description",...io,...Ci,...Li,...Bi};var Er={FORMATTER:"formatter",FUNCTION:"function"},St={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var Et=class extends Model{};function Di(e){return Et.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{description:"",testValue:"Foo",type:Er.FORMATTER,inputType:St.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:!0,timestamps:!1,hooks:{async afterSync(t){let r=await Et.findAll();if(t.force||r.length===0){let o=Object.entries(Rn).map(([n,a])=>({name:n,content:a}));await Et.bulkCreate(o);}}}}),()=>Et}var En=Di;var jt=class extends Model{getContent(t){let{contentByLocale:r}=this;if(!r)throw new Error("This ImageModel entity didn't include its ImageContentModel association.");let o=r.find(n=>n.locale===t);if(!o)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return o}};function Fi(e){return jt.init({id:{autoIncrement:!0,primaryKey:!0,type:DataTypes.INTEGER},url:{type:DataTypes.TEXT,unique:!0},author:DataTypes.TEXT,license:DataTypes.TEXT,splash:DataTypes.BLOB,thumb:DataTypes.BLOB},{sequelize:e,modelName:"image",tableName:"bespoke_reports_image",freezeTableName:!0}),t=>(jt.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),jt)}var An=Fi;var Ar=class extends Model{};function $i(e){return Ar.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_image",key:"id"}},locale:{type:DataTypes.STRING,primaryKey:!0},meta:DataTypes.TEXT},{sequelize:e,modelName:"image_content",tableName:"bespoke_reports_image_content",freezeTableName:!0,timestamps:!1}),()=>Ar}var Tn=$i;var Tt=class extends Model{toJSON(){let t=this.get({plain:!0}),{dimensions:r=[],sections:o=[]}=this;return {...t,settings:t.settings,date:new Date(this.date||Date.now()).toISOString(),dimensions:r.map(n=>n.toJSON()),sections:o.map(n=>n.toJSON())}}};function zi(e){return Tt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,allowNull:!1,defaultValue:""},visible:{type:DataTypes.BOOLEAN,defaultValue:!0},date:{type:DataTypes.DATE,defaultValue:DataTypes.NOW},type:{type:DataTypes.STRING,defaultValue:"report",validate:{isIn:[["report","story"]]}},settings:{type:DataTypes.JSON,defaultValue:{}}},{sequelize:e,modelName:"report",tableName:"bespoke_reports_report",freezeTableName:!0,timestamps:!1}),t=>(Tt.hasMany(t.dimension,{foreignKey:"report_id",sourceKey:"id",as:"dimensions"}),Tt.hasMany(t.section,{foreignKey:"report_id",sourceKey:"id",as:"sections"}),Tt)}var vn=zi;var _t=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function ji(e){return _t.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},ordering:{type:DataTypes.INTEGER,defaultValue:0},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"dimension",tableName:"bespoke_reports_report_dimension",freezeTableName:!0,timestamps:!1}),t=>(_t.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:!1}),_t.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),_t)}var _n=ji;var wt=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function Hi(e){return wt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},dimension_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},slug:{type:DataTypes.STRING,defaultValue:""},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},config:{type:DataTypes.JSONB,defaultValue:{}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:!0,timestamps:!1}),t=>(wt.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),wt.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),wt)}var wn=Hi;var ke=class extends Model{getContent(t){let{contentByLocale:r}=this;if(!r)throw new Error("This SearchModel entity didn't include its SearchContentModel association.");let o=r.find(n=>n.locale===t);if(!o)throw new Error(`Missing SearchContent for locale '${t}' on Search ID '${this.id}'`);return o}};function Ji(e){return ke.init({id:{primaryKey:!0,type:DataTypes.TEXT},zvalue:DataTypes.DOUBLE,slug:DataTypes.TEXT,image_id:{type:DataTypes.INTEGER,references:{model:"bespoke_reports_image",key:"id"}},content_id:{autoIncrement:!0,type:DataTypes.INTEGER,unique:!0},variant_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension_variant",key:"id"}},dimension_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},report_id:{primaryKey:!0,type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"search",tableName:"bespoke_reports_search",freezeTableName:!0,timestamps:!1}),t=>(ke.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),ke.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),ke.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),ke.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),ke.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),ke)}var kn=Ji;var Tr=class extends Model{};function Qi(e){return Tr.init({id:{type:DataTypes.INTEGER,primaryKey:!0,onDelete:"cascade",references:{model:"bespoke_reports_search",key:"content_id"}},locale:{type:DataTypes.STRING,primaryKey:!0},name:DataTypes.TEXT,annotations:{type:DataTypes.JSONB,defaultValue:{}},attributes:{type:DataTypes.JSONB,defaultValue:{}},keywords:DataTypes.ARRAY(DataTypes.TEXT)},{sequelize:e,modelName:"search_content",tableName:"bespoke_reports_search_content",freezeTableName:!0,timestamps:!1}),()=>Tr}var Pn=Qi;var Ht=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function Xi(e){return Ht.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},settings:{type:DataTypes.JSON,defaultValue:{}},heading:{type:DataTypes.INTEGER,defaultValue:1},ordering:DataTypes.STRING,report_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report",key:"id"}}},{sequelize:e,modelName:"section",tableName:"bespoke_reports_section",freezeTableName:!0,timestamps:!1}),t=>(Ht.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),Ht)}var xn=Xi;var _r=class extends Model{};function tc(e){return _r.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,defaultValue:""},description:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{pattern:"",logic:`return {
47
47
  axiosConfig: {
48
48
  method: 'get',
49
49
  url: url,
50
50
  }
51
- };`,testUrl:""}}},{sequelize:e,modelName:"datasource",tableName:"bespoke_reports_data_source",freezeTableName:!0,timestamps:!1}),()=>vr}var kn=Yi;var xn={block:pn,block_content:dn,block_input:mn,formatter:bn,image:Sn,image_content:En,report:An,dimension:Tn,variant:vn,search:_n,search_content:wn,section:Pn,datasource:kn};var po=Ie(),In=process.env.REPORTS_DB_CONNECTION||"";if(!In)throw new Error(`
51
+ };`,testUrl:""}}},{sequelize:e,modelName:"datasource",tableName:"bespoke_reports_data_source",freezeTableName:!0,timestamps:!1}),()=>_r}var In=tc;var Cn={block:mn,block_content:fn,block_input:gn,formatter:En,image:An,image_content:Tn,report:vn,dimension:_n,variant:wn,search:kn,search_content:Pn,section:xn,datasource:In};var mo=Ie(),Bn=process.env.REPORTS_DB_CONNECTION||"";if(!Bn)throw new Error(`
52
52
  Env var 'REPORTS_DB_CONNECTION' is not present.
53
53
  This is required to connect to a database to save the Reports CMS changes.
54
- `);var tt=async()=>{if(global.sequelize){po&&console.info("\u267B\uFE0F RE-UTILIZING DB CONNECTION");let e=global.sequelize.sequelize;if(e)try{return await e.authenticate(),global.sequelize}catch(t){po&&console.warn(`\u26A0\uFE0F CONNECTION INACTIVE, REINITIALIZING: ${t.message}`),delete global.sequelize;}}if(!global.sequelize){po&&console.info("\u{1F511} INITIALIZING DB CONNECTION");let e;try{e=new Sequelize(In,{logging:!1,dialectModule:Qi,pool:{max:10,min:1,acquire:5*1e3,idle:10*1e3,evict:1*1e3}});}catch(t){throw new Error(`
54
+ `);var tt=async()=>{if(global.sequelize){mo&&console.info("\u267B\uFE0F RE-UTILIZING DB CONNECTION");let e=global.sequelize.sequelize;if(e)try{return await e.authenticate(),global.sequelize}catch(t){mo&&console.warn(`\u26A0\uFE0F CONNECTION INACTIVE, REINITIALIZING: ${t.message}`),delete global.sequelize;}}if(!global.sequelize){mo&&console.info("\u{1F511} INITIALIZING DB CONNECTION");let e;try{e=new Sequelize(Bn,{logging:!1,dialectModule:rc,pool:{max:10,min:1,acquire:5*1e3,idle:10*1e3,evict:1*1e3}});}catch(t){throw new Error(`
55
55
  Could not connect to the database using the given connection string.
56
56
  Please check that the connection string 'REPORTS_DB_CONNECTION' is correct.
57
57
  Details:
58
58
  ${t.message}
59
- `)}Object.values(xn).map(t=>t(e)).map(t=>t({...e.models,sequelize:e})),global.sequelize=e.sync().catch(t=>{t instanceof Error$1&&console.error("=".repeat(40),`
59
+ `)}Object.values(Cn).map(t=>t(e)).map(t=>t({...e.models,sequelize:e})),global.sequelize=e.sync().catch(t=>{t instanceof Error$1&&console.error("=".repeat(40),`
60
60
  Error initializing sequelize connection:
61
- `,t.stack||t.message),global.sequelize=void 0;}).then(()=>({...e.models,sequelize:e}));}return global.sequelize};var ec=()=>{let e=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",t=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[e];return t.includes(e)||t.push(e),{localeDefault:e,locales:t}},K=ec;function j(e){let t={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'","&#x60;":"`","&nbsp;":""},r=`(?:${Object.keys(t).join("|")})`,o=RegExp(r),n=RegExp(r,"g"),a=String(e).replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();return o.test(a)?a.replace(n,s=>t[s]):a}function Ht(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}function rc(e){return e?tc(Ht(j(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var _r=rc;var Wt=e=>({overrideNames:e&&typeof e.overrideNames<"u"?e.overrideNames:!1,overrideRelevance:e&&typeof e.overrideRelevance<"u"?e.overrideRelevance:!1,regenerateSlugs:e&&typeof e.regenerateSlugs<"u"?e.regenerateSlugs:!1,keepOldMembers:e&&typeof e.keepOldMembers<"u"?e.keepOldMembers:!0,doIngest:e&&typeof e.doIngest<"u"?e.doIngest:!1,overrideAttributes:e&&typeof e.overrideAttributes<"u"?e.overrideAttributes:!1,order:e&&typeof e.order<"u"?e.order:0});var Cn={jwt:oc};var Bn=(e,t={},r="en",o={},n={})=>{let a={setVariables:o.onSetVariables?o.onSetVariables:c=>c,openModal:o.onOpenModal?o.onOpenModal:c=>c,formatters:t,libs:Je,locale:r,...n};function s(c){return Function("globals",...c.vars,`with (globals) { ${c.logic} }`).bind(a,a)}function i(c){if(c.vars&&c.logic)return s(c);for(let l in c)Array.isArray(c[l])?c[l]=c[l].map(u=>isObject(u)?i(u):u):isObject(c[l])&&(c[l]=i(c[l]));return c}return i(e)},Pr=(e,t={})=>{let r={libs:Cn,...t};function o(a){return Function("globals",...a.vars,`with (globals) { ${a.logic} }`).bind(r,r)}function n(a){if(a.vars&&a.logic)return o(a);for(let s in a)Array.isArray(a[s])?a[s]=a[s].map(i=>isObject(i)?n(i):i):isObject(a[s])&&(a[s]=n(a[s]));return a}return n(e)};function ac(){let{publicRuntimeConfig:e}=nc(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var de=ac;function sc(){return typeof process>"u"?{}:Object.entries(process.env).filter(([e])=>e.startsWith("BESPOKE_SECRET_")).reduce((e,[t,r])=>({...e,[t.replace("BESPOKE_SECRET_","ENV_SECRET_")]:r}),{})}var wt=sc;var{localeDefault:lc}=K();function he(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||lc}}function mo(e){return e.reduce((t,r,o)=>(o?o===e.length-1&&o===1?t+=` and ${r}`:o===e.length-1?t+=`, and ${r}`:t+=`, ${r}`:t+=r,t),"")}var Re=uc;function uc(e,t,r,o=!1){let{variables:n}=he(r);if(!e)return e;let a=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(a,(i,c,l)=>{let u=d=>d;if(c){let d=c.replace(/^\w/g,f=>f.toLowerCase());d in t?u=t[d]:u=f=>`${c}${f}`;}let p=Array.isArray(n[l])?mo(n[l]):n[l];if(p===void 0)return o?i:"N/A";try{return u(p,Je,t)}catch(d){return console.error(`Error using formatter ${u.name}
62
- `,`Error message: ${d.message}`),"N/A"}})}function dc(e,t){return e.some(r=>t.includes(`role.${r}`))}function kr(e){return async t=>{let{url:r,method:o,timeout:n,wrapper:a=!0,session:s}=t,i=n||process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0,c={url:r,method:o||"GET",timeout:i},l=de(),u=wt(),p=null;s&&s.user&&(p={user:s.user,status:"authenticated",isLoading:!1,update:async()=>s});let d={envs:{...l,...u},...p?{session:p}:{}};try{let m=(await e.datasource.findAll({where:literal("(content->>'useProxy')::boolean = true"),order:[literal("(content->>'order')::integer ASC NULLS LAST")]})).map(y=>{let S={...l};return {...y.toJSON(),patternSwapped:Re(y.content.pattern,{},{variables:S})}}).find(y=>{if(!y.content?.pattern)return !1;try{return new RegExp(y.patternSwapped,"gm").test(c.url)}catch{return !1}});if(m){let y=t.user_roles&&Array.isArray(t.user_roles)?t.user_roles:[],S=m.content.access&&Array.isArray(m.content.access)?m.content.access:[];if(m.content.logic&&(S.length===0||S.includes("public")||S.includes("guest")&&y.length===0||S.includes("private")&&y.length>0||dc(y,S))){let P=await Pr({vars:["url","libs","session"],logic:m.content.logic},d)(c.url);if(P.axiosConfig)c=P.axiosConfig;else throw new T(500,`AxiosConfig is missing in Data Source ${m.name} (ID: ${m.id}).`)}else throw new T(401,`Query not allowed because user roles. Data Source ${m.name} (ID: ${m.id}).`)}let R=await Dr.request(c);return {ok:!0,wrapper:a,status:R.status,data:R.data}}catch(f){throw new T(f.response?.status||500,f.message)}}}var{localeDefault:fo}=K();function Mn(e){let{search:t,search_content:r}=e,o=kr(e);return n;async function n(s){let{id:i,config:c={},settings:l={}}=s,u=c[fo]?fo:Object.keys(c)[0],{overrideNames:p,overrideAttributes:d}=Wt(l),{accessor:f,path:m,idKey:R,labelKey:y}=c[fo];if(!m||!R||!y)return;let S=await o({url:m}).catch($=>({data:[],error:$}));if("error"in S)throw new T(500,`Failed to fetch members: ${S.error}`);let _=qt(S.data,f),P=[];try{console.info(`Ingesting default items for variant ${s.name} for ${u}`),P=await a(s,u,_);}catch($){let L=`[ERROR] Ingesting default member items for ${u}`;throw console.error(L,$),new T(500,L)}let C=await t.findAll({where:{variant_id:i}}).then($=>Object.fromEntries($.map(L=>[L.id,{content_id:L.content_id,needsUpdate:P.includes(L.content_id)}]))),x=Object.entries(c).map(async([$,L])=>{let{path:D,accessor:v,idKey:O,labelKey:U,attributes:B=[]}=L;if(!D||!O||!U)return;let q=await o({url:D}).catch(E=>({data:[],error:E}));if("error"in q)throw new T(500,`Failed to fetch members for locale ${$}: ${q.error}`);let M=qt(q.data,v),w=await r.findAll({where:{id:P,locale:$}}).then(E=>Object.fromEntries(E.map(b=>[b.id,b.toJSON()]))),J=M.filter(E=>typeof E[O]<"u"&&E[O]!==""&&typeof E[U]<"u"&&E[U]!=="").map(E=>{let b=C[E[O]],A,k=Object.fromEntries(B.map(ne=>[ne.name,ne.type==="constant"?ne.value:E[ne.value]||""]));return b.needsUpdate&&w[b.content_id]?(A={...w[b.content_id]},p&&(A.name=E[U]),d&&(A.attributes=k)):A={id:b.content_id,locale:$,name:E[U],attributes:k},A});try{return r.bulkCreate(J,{updateOnDuplicate:["name","attributes"]})}catch(E){let b=`[ERROR] Ingesting search content items for ${$}`;throw console.error(b,E),new T(500,b)}});await Promise.all(x);}async function a(s,i,c){let{id:l,dimension_id:u,slug:p}=s,{report_id:d}=s.dimension,{idKey:f,labelKey:m,zValueKey:R}=s.config[i],{overrideNames:y,regenerateSlugs:S,keepOldMembers:_,overrideRelevance:P,overrideAttributes:C}=Wt(s.settings),x=t.findAll({attributes:["slug",[fn$1("COUNT",col("variant.id")),"slugCount"]],include:{association:"variant",attributes:[],required:!1,right:!0,where:{dimension_id:u,slug:p,id:{[Op$1.not]:l}}},group:"search.slug"}).then(b=>Object.fromEntries(b.map(A=>{let k=A.getDataValue("slugCount");return [A.slug,Number.parseInt(`${k}`,10)]}))),$=t.findAll({where:{variant_id:l}}).then(b=>Object.fromEntries(b.map(A=>[A.id,A.toJSON()]))),[L,D]=await Promise.all([x,$]),v=Object.values(D).map(b=>b.slug),O=[],U=null,B=null;if(R&&R!==""){for(let b of c)if(typeof b[R]=="number"&&!isNaN(b[R])){let A=b[R];(U===null||A<U)&&(U=A),(B===null||A>B)&&(B=A);}}let q=[],M=[],w=[],J=!1;c.filter(b=>b[f]&&b[f]!==""&&b[m]&&b[m]!=="").forEach(b=>{let A=b[f],k=_r(b[m]);J=!1;let ne=parseFloat(Math.random().toPrecision(5));if(R&&R!==""&&U&&B&&b[R]){let ae;try{ae=parseInt(b[R],10);}catch{ae=0;}let Z=B!==null&&U!==null&&B!==U?(ae-U)/(B-U):0;ne=B===U?1:parseFloat(Z.toPrecision(5));}if(D[A]){if(y||S||P||C){let ae=D[A];if((y||C)&&w.push(ae.content_id),y&&S){let Z=Object.values(D).filter(V=>V.id!==A).map(V=>V.slug),W=L[k]||Z.includes[k]||O.includes(k);W&&console.warn("Duplicate slug!",k,"replaced by",`${k}-${A}`);let ie=W?`${k}-${A}`:k;ae.slug!==ie&&(ae.slug=ie,O.push(k),J=!0,console.info("UPDATE SLUG",A,k));}R&&R!==""&&P&&ae.zvalue!==ne&&(ae.zvalue=ne,J=!0,console.warn("UPDATE ZVALUE",A,ne)),J&&M.push(ae);}}else {console.info("INSERT ID",A);let ae=L[k]||v.includes[k]||O.includes(k);ae&&console.warn("Duplicate slug!",k,"replaced by",`${k}-${A}`);let Z=ae?`${k}-${A}`:k;O.push(k),q.push({id:A,slug:Z,variant_id:l,dimension_id:u,report_id:d,zvalue:ne});}});let E=[];if(!_){let b=c.map(A=>A[f]);E=Object.keys(D).filter(A=>!b.includes(A));}try{return (q.length>0||M.length>0)&&(await t.bulkCreate([...q,...M],{updateOnDuplicate:["slug","zvalue"]}),console.info("New members ingested:",q.length),console.info("New members updated:",M.length)),E.length>0&&(await t.destroy({where:{id:{[Op$1.in]:E},variant_id:l}}),console.warn("Old members deleted:",E.length)),w}catch(b){throw console.error(`[ERROR] Ingesting search members for ${i}`,b),new Error(b)}}}var hc=Zt(process.env.NEXT_PUBLIC_REPORTS_DEBUG);function Nn(e){let{search:t}=e;return r;async function r(o){let{all:n,locale:a,mode:s,variant:i,output:c,allowNulls:l}=o,u={content_id:[],...i&&i.length?{variant_id:i}:{}};if(s==="content_ids")u.content_id=o.content_ids;else if(s==="ids"){if(n)throw new T(400,"Search by ids doesn't support locale all. Pick one locale.");let m={id:o.ids,...i&&i.length?{variant_id:i}:{}},R=await t.findAll({attributes:["content_id"],where:m,include:[{association:"contentByLocale",where:{locale:a}}]});u.content_id=R.map(y=>y.content_id);}else if(s==="slugs"){let m=o.slugs.map(y=>t.findAll({attributes:["content_id"],where:{slug:y.memberSlug},include:{association:"variant",attributes:["id","name","slug"],required:!0,where:{slug:y.variantSlug}}})),R=await Promise.all(m).then(y=>y.reduce((S,_)=>S.concat(_),[]));u.content_id=R.map(y=>y.content_id);}else if(s==="related"){let m=()=>{if(o.variant_ids?.length)return {variant_id:o.variant_ids.map(S=>S)};if(o.dimension_ids?.length)return {dimension_id:o.dimension_ids.map(S=>S)};if(o.report_ids?.length)return {report_id:o.report_ids.map(S=>S)}},R=()=>o.include_ids?.length?{[Op$1.in]:o.include_ids.map(S=>S)}:!1,y=await t.findAll({attributes:["content_id"],where:{...m(),content_id:R()||{[Op$1.notIn]:o.current_ids},visible:!0},order:[Sequelize.fn("RANDOM")],limit:o.related||4});u.content_id=y.map(S=>S.content_id);}else if(s==="whole"){let m={...i&&i.length?{variant_id:i}:{}},R=await t.findAll({attributes:["content_id"],where:m});u.content_id=R.map(y=>y.content_id);}let p={locale:n?{[Op$1.ne]:null}:a},d=await t.findAll({where:u,include:[{association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name","ordering"]},{association:"variant",attributes:["id","name","slug"]},{association:"image",attributes:["id","author","url","license"],include:[{association:"contentByLocale",where:p}]},{association:"contentByLocale",where:p}]});if(!l&&!["related","whole"].includes(s)&&o[s]&&d.length!==o[s].length)throw hc&&console.error("Error in read members. The number of members requested doesn't match the number of members found.",JSON.stringify(o)),new T(404,"One or more members were not found. "+JSON.stringify(o));d.sort((m,R)=>u.content_id.indexOf(m.content_id)-u.content_id.indexOf(R.content_id));let f=d.map(m=>{let R,y={id:m.id,slug:m.slug,visible:m.visible,zvalue:m.zvalue,content_id:m.content_id,report_id:m.report_id,report_name:m.report.name,dimension_id:m.dimension_id,dimension_name:m.dimension.name,dimension_ordering:m.dimension.ordering,variant_id:m.variant_id,variant_name:m.variant.name,variant_slug:m.variant.slug};if(n){let S=m.contentByLocale;y.contentByLocale=S,y.image=m.image,y.image_id=m.image_id,R=y;}else {let S=m.getContent(a),_=m.image?.getContent(a),P=_&&{id:m.image.id,author:m.image.author,url:m.image.url,license:m.image.license,meta:_.meta};R={...y,locale:S.locale,name:S.name,attributes:S.attributes,keywords:S.keywords,image:P||null,image_id:m.image_id};}return c==="lite"&&(delete R.image,delete R.image_id),R});return {meta:o,results:f}}}function Dn(e){let{search:t}=e;return r;async function r(o){let n=await t.findOne({where:{content_id:o.member},include:[{association:"image",attributes:[o.size],include:[{association:"contentByLocale"}]}]});return n&&n.image&&n.image[o.size]?n.image[o.size]:Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkkAQAAB8AG7jymN8AAAAASUVORK5CYII=","base64")}}function bc(e,t=!0){if(!e)return "";let r=Ht(j(e.toLowerCase()));return (t?tc(r,{replacement:" ",remove:/[*+~.()'"!:@-]/g,lower:!0,strict:!1,trim:!0}):r).replace(/\s\s+/g," ")}var rt=bc;var Jt=[{charset:"latin",locales:["en","es","fr","de","it","pt","ro","nl","sv","da","fi","no","pl","cs","hu","sk","sl"]},{charset:"cjk",locales:["zh","ja","ko"]},{charset:"arabic",locales:["ar","fa","ur","he"]},{charset:"cyrilic",locales:["bg","ru","uk","sr","mk"]}],xr=Jt.reduce((e,t)=>e.concat(t.locales),[]);var Pt=Ie(),{locales:Ec}=K(),Ac=Ec.filter(e=>xr.includes(e)),go=!1,Tc=async(e,t=!1)=>{if(t&&(Pt&&console.info("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.flexsearch=void 0,go=!1),global.flexsearch)return Pt&&console.info("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.flexsearch;try{go||(Pt&&console.info("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),go=!0,global.flexsearch=await vc(e));}catch(r){throw new Error(`
61
+ `,t.stack||t.message),global.sequelize=void 0;}).then(()=>({...e.models,sequelize:e}));}return global.sequelize};var ac=()=>{let e=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",t=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[e];return t.includes(e)||t.push(e),{localeDefault:e,locales:t}},j=ac;function K(e){let t={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'","&#x60;":"`","&nbsp;":""},r=`(?:${Object.keys(t).join("|")})`,o=RegExp(r),n=RegExp(r,"g"),a=String(e).replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();return o.test(a)?a.replace(n,s=>t[s]):a}function Wt(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}function ic(e){return e?sc(Wt(K(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var wr=ic;var Jt=e=>({overrideNames:e&&typeof e.overrideNames<"u"?e.overrideNames:!1,overrideRelevance:e&&typeof e.overrideRelevance<"u"?e.overrideRelevance:!1,regenerateSlugs:e&&typeof e.regenerateSlugs<"u"?e.regenerateSlugs:!1,keepOldMembers:e&&typeof e.keepOldMembers<"u"?e.keepOldMembers:!0,doIngest:e&&typeof e.doIngest<"u"?e.doIngest:!1,overrideAttributes:e&&typeof e.overrideAttributes<"u"?e.overrideAttributes:!1,order:e&&typeof e.order<"u"?e.order:0});var Ln={jwt:cc};var On=(e,t={},r="en",o={},n={})=>{let a={setVariables:o.onSetVariables?o.onSetVariables:c=>c,openModal:o.onOpenModal?o.onOpenModal:c=>c,formatters:t,libs:Je,locale:r,...n};function s(c){return Function("globals",...c.vars,`with (globals) { ${c.logic} }`).bind(a,a)}function i(c){if(c.vars&&c.logic)return s(c);for(let l in c)Array.isArray(c[l])?c[l]=c[l].map(u=>isObject(u)?i(u):u):isObject(c[l])&&(c[l]=i(c[l]));return c}return i(e)},Pr=(e,t={})=>{let r={libs:Ln,...t};function o(a){return Function("globals",...a.vars,`with (globals) { ${a.logic} }`).bind(r,r)}function n(a){if(a.vars&&a.logic)return o(a);for(let s in a)Array.isArray(a[s])?a[s]=a[s].map(i=>isObject(i)?n(i):i):isObject(a[s])&&(a[s]=n(a[s]));return a}return n(e)};function uc(){let{publicRuntimeConfig:e}=lc(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var de=uc;function pc(){return typeof process>"u"?{}:Object.entries(process.env).filter(([e])=>e.startsWith("BESPOKE_SECRET_")).reduce((e,[t,r])=>({...e,[t.replace("BESPOKE_SECRET_","ENV_SECRET_")]:r}),{})}var kt=pc;var{localeDefault:fc}=j();function he(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||fc}}function fo(e){return e.reduce((t,r,o)=>(o?o===e.length-1&&o===1?t+=` and ${r}`:o===e.length-1?t+=`, and ${r}`:t+=`, ${r}`:t+=r,t),"")}var Re=gc;function gc(e,t,r,o=!1){let{variables:n}=he(r);if(!e)return e;let a=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(a,(i,c,l)=>{let u=d=>d;if(c){let d=c.replace(/^\w/g,f=>f.toLowerCase());d in t?u=t[d]:u=f=>`${c}${f}`;}let p=Array.isArray(n[l])?fo(n[l]):n[l];if(p===void 0)return o?i:"N/A";try{return u(p,Je,t)}catch(d){return console.error(`Error using formatter ${u.name}
62
+ `,`Error message: ${d.message}`),"N/A"}})}function hc(e,t){return e.some(r=>t.includes(`role.${r}`))}function xr(e){return async t=>{let{url:r,method:o,timeout:n,wrapper:a=!0,session:s}=t,i=n||process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0,c={url:r,method:o||"GET",timeout:i},l=de(),u=kt(),p=null;s&&s.user&&(p={user:s.user,status:"authenticated",isLoading:!1,update:async()=>s});let d={envs:{...l,...u},...p?{session:p}:{}};try{let m=(await e.datasource.findAll({where:literal("(content->>'useProxy')::boolean = true"),order:[literal("(content->>'order')::integer ASC NULLS LAST")]})).map(g=>{let S={...l};return {...g.toJSON(),patternSwapped:Re(g.content.pattern,{},{variables:S})}}).find(g=>{if(!g.content?.pattern)return !1;try{return new RegExp(g.patternSwapped,"gm").test(c.url)}catch{return !1}});if(m){let g=t.user_roles&&Array.isArray(t.user_roles)?t.user_roles:[],S=m.content.access&&Array.isArray(m.content.access)?m.content.access:[];if(m.content.logic&&(S.length===0||S.includes("public")||S.includes("guest")&&g.length===0||S.includes("private")&&g.length>0||hc(g,S))){let _=await Pr({vars:["url","libs","session"],logic:m.content.logic},d)(c.url);if(_.axiosConfig)c=_.axiosConfig;else throw new E(500,`AxiosConfig is missing in Data Source ${m.name} (ID: ${m.id}).`)}else throw new E(401,`Query not allowed because user roles. Data Source ${m.name} (ID: ${m.id}).`)}let R=await Ur.request(c);return {ok:!0,wrapper:a,status:R.status,data:R.data}}catch(f){throw new E(f.response?.status||500,f.message)}}}var{localeDefault:go}=j();function Dn(e){let{search:t,search_content:r}=e,o=xr(e);return n;async function n(s){let{id:i,config:c={},settings:l={}}=s,u=c[go]?go:Object.keys(c)[0],{overrideNames:p,overrideAttributes:d}=Jt(l),{accessor:f,path:m,idKey:R,labelKey:g}=c[go];if(!m||!R||!g)return;let S=await o({url:m}).catch($=>({data:[],error:$}));if("error"in S)throw new E(500,`Failed to fetch members: ${S.error}`);let w=zt(S.data,f),_=[];try{console.info(`Ingesting default items for variant ${s.name} for ${u}`),_=await a(s,u,w);}catch($){let L=`[ERROR] Ingesting default member items for ${u}`;throw console.error(L,$),new E(500,L)}let C=await t.findAll({where:{variant_id:i}}).then($=>Object.fromEntries($.map(L=>[L.id,{content_id:L.content_id,needsUpdate:_.includes(L.content_id)}]))),x=Object.entries(c).map(async([$,L])=>{let{path:U,accessor:v,idKey:O,labelKey:F,attributes:B=[]}=L;if(!U||!O||!F)return;let q=await o({url:U}).catch(A=>({data:[],error:A}));if("error"in q)throw new E(500,`Failed to fetch members for locale ${$}: ${q.error}`);let M=zt(q.data,v),k=await r.findAll({where:{id:_,locale:$}}).then(A=>Object.fromEntries(A.map(b=>[b.id,b.toJSON()]))),H=M.filter(A=>typeof A[O]<"u"&&A[O]!==""&&typeof A[F]<"u"&&A[F]!=="").map(A=>{let b=C[A[O]],T,P=Object.fromEntries(B.map(ne=>[ne.name,ne.type==="constant"?ne.value:A[ne.value]||""]));return b.needsUpdate&&k[b.content_id]?(T={...k[b.content_id]},p&&(T.name=A[F]),d&&(T.attributes=P)):T={id:b.content_id,locale:$,name:A[F],attributes:P},T});try{return r.bulkCreate(H,{updateOnDuplicate:["name","attributes"]})}catch(A){let b=`[ERROR] Ingesting search content items for ${$}`;throw console.error(b,A),new E(500,b)}});await Promise.all(x);}async function a(s,i,c){let{id:l,dimension_id:u,slug:p}=s,{report_id:d}=s.dimension,{idKey:f,labelKey:m,zValueKey:R}=s.config[i],{overrideNames:g,regenerateSlugs:S,keepOldMembers:w,overrideRelevance:_,overrideAttributes:C}=Jt(s.settings),x=t.findAll({attributes:["slug",[fn$1("COUNT",col("variant.id")),"slugCount"]],include:{association:"variant",attributes:[],required:!1,right:!0,where:{dimension_id:u,slug:p,id:{[Op.not]:l}}},group:"search.slug"}).then(b=>Object.fromEntries(b.map(T=>{let P=T.getDataValue("slugCount");return [T.slug,Number.parseInt(`${P}`,10)]}))),$=t.findAll({where:{variant_id:l}}).then(b=>Object.fromEntries(b.map(T=>[T.id,T.toJSON()]))),[L,U]=await Promise.all([x,$]),v=Object.values(U).map(b=>b.slug),O=[],F=null,B=null;if(R&&R!==""){for(let b of c)if(typeof b[R]=="number"&&!isNaN(b[R])){let T=b[R];(F===null||T<F)&&(F=T),(B===null||T>B)&&(B=T);}}let q=[],M=[],k=[],H=!1;c.filter(b=>b[f]&&b[f]!==""&&b[m]&&b[m]!=="").forEach(b=>{let T=b[f],P=wr(b[m]);H=!1;let ne=parseFloat(Math.random().toPrecision(5));if(R&&R!==""&&F&&B&&b[R]){let ae;try{ae=parseInt(b[R],10);}catch{ae=0;}let Z=B!==null&&F!==null&&B!==F?(ae-F)/(B-F):0;ne=B===F?1:parseFloat(Z.toPrecision(5));}if(U[T]){if(g||S||_||C){let ae=U[T];if((g||C)&&k.push(ae.content_id),g&&S){let Z=Object.values(U).filter(V=>V.id!==T).map(V=>V.slug),J=L[P]||Z.includes[P]||O.includes(P);J&&console.warn("Duplicate slug!",P,"replaced by",`${P}-${T}`);let ie=J?`${P}-${T}`:P;ae.slug!==ie&&(ae.slug=ie,O.push(P),H=!0,console.info("UPDATE SLUG",T,P));}R&&R!==""&&_&&ae.zvalue!==ne&&(ae.zvalue=ne,H=!0,console.warn("UPDATE ZVALUE",T,ne)),H&&M.push(ae);}}else {console.info("INSERT ID",T);let ae=L[P]||v.includes[P]||O.includes(P);ae&&console.warn("Duplicate slug!",P,"replaced by",`${P}-${T}`);let Z=ae?`${P}-${T}`:P;O.push(P),q.push({id:T,slug:Z,variant_id:l,dimension_id:u,report_id:d,zvalue:ne});}});let A=[];if(!w){let b=c.map(T=>T[f]);A=Object.keys(U).filter(T=>!b.includes(T));}try{return (q.length>0||M.length>0)&&(await t.bulkCreate([...q,...M],{updateOnDuplicate:["slug","zvalue"]}),console.info("New members ingested:",q.length),console.info("New members updated:",M.length)),A.length>0&&(await t.destroy({where:{id:{[Op.in]:A},variant_id:l}}),console.warn("Old members deleted:",A.length)),k}catch(b){throw console.error(`[ERROR] Ingesting search members for ${i}`,b),new Error(b)}}}var Ac=Xt(process.env.NEXT_PUBLIC_REPORTS_DEBUG);function Un(e){let{search:t}=e;return r;async function r(o){let{all:n,locale:a,mode:s,variant:i,output:c,allowNulls:l}=o,u={content_id:[],...i&&i.length?{variant_id:i}:{}};if(s==="content_ids")u.content_id=o.content_ids;else if(s==="ids"){if(n)throw new E(400,"Search by ids doesn't support locale all. Pick one locale.");let m={id:o.ids,...i&&i.length?{variant_id:i}:{}},R=await t.findAll({attributes:["content_id"],where:m,include:[{association:"contentByLocale",where:{locale:a}}]});u.content_id=R.map(g=>g.content_id);}else if(s==="slugs"){let m=o.slugs.map(g=>t.findAll({attributes:["content_id"],where:{slug:g.memberSlug},include:{association:"variant",attributes:["id","name","slug"],required:!0,where:{slug:g.variantSlug}}})),R=await Promise.all(m).then(g=>g.reduce((S,w)=>S.concat(w),[]));u.content_id=R.map(g=>g.content_id);}else if(s==="related"){let m=()=>{if(o.variant_ids?.length)return {variant_id:o.variant_ids.map(S=>S)};if(o.dimension_ids?.length)return {dimension_id:o.dimension_ids.map(S=>S)};if(o.report_ids?.length)return {report_id:o.report_ids.map(S=>S)}},R=()=>o.include_ids?.length?{[Op.in]:o.include_ids.map(S=>S)}:!1,g=await t.findAll({attributes:["content_id"],where:{...m(),content_id:R()||{[Op.notIn]:o.current_ids},visible:!0},order:[Sequelize.fn("RANDOM")],limit:o.related||4});u.content_id=g.map(S=>S.content_id);}else if(s==="whole"){let m={...i&&i.length?{variant_id:i}:{}},R=await t.findAll({attributes:["content_id"],where:m});u.content_id=R.map(g=>g.content_id);}let p={locale:n?{[Op.ne]:null}:a},d=await t.findAll({where:u,include:[{association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name","ordering"]},{association:"variant",attributes:["id","name","slug"]},{association:"image",attributes:["id","author","url","license"],include:[{association:"contentByLocale",where:p}]},{association:"contentByLocale",where:p}]});if(!l&&!["related","whole"].includes(s)&&o[s]&&d.length!==o[s].length)throw Ac&&console.error("Error in read members. The number of members requested doesn't match the number of members found.",JSON.stringify(o)),new E(404,"One or more members were not found. "+JSON.stringify(o));d.sort((m,R)=>u.content_id.indexOf(m.content_id)-u.content_id.indexOf(R.content_id));let f=d.map(m=>{let R,g={id:m.id,slug:m.slug,visible:m.visible,zvalue:m.zvalue,content_id:m.content_id,report_id:m.report_id,report_name:m.report.name,dimension_id:m.dimension_id,dimension_name:m.dimension.name,dimension_ordering:m.dimension.ordering,variant_id:m.variant_id,variant_name:m.variant.name,variant_slug:m.variant.slug};if(n){let S=m.contentByLocale;g.contentByLocale=S,g.image=m.image,g.image_id=m.image_id,R=g;}else {let S=m.getContent(a),w=m.image?.getContent(a),_=w&&{id:m.image.id,author:m.image.author,url:m.image.url,license:m.image.license,meta:w.meta};R={...g,locale:S.locale,name:S.name,attributes:S.attributes,keywords:S.keywords,image:_||null,image_id:m.image_id};}return c==="lite"&&(delete R.image,delete R.image_id),R});return {meta:o,results:f}}}function Fn(e){let{search:t}=e;return r;async function r(o){let n=await t.findOne({where:{content_id:o.member},include:[{association:"image",attributes:[o.size],include:[{association:"contentByLocale"}]}]});return n&&n.image&&n.image[o.size]?n.image[o.size]:Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkkAQAAB8AG7jymN8AAAAASUVORK5CYII=","base64")}}function vc(e,t=!0){if(!e)return "";let r=Wt(K(e.toLowerCase()));return (t?sc(r,{replacement:" ",remove:/[*+~.()'"!:@-]/g,lower:!0,strict:!1,trim:!0}):r).replace(/\s\s+/g," ")}var rt=vc;var Yt=[{charset:"latin",locales:["en","es","fr","de","it","pt","ro","nl","sv","da","fi","no","pl","cs","hu","sk","sl"]},{charset:"cjk",locales:["zh","ja","ko"]},{charset:"arabic",locales:["ar","fa","ur","he"]},{charset:"cyrilic",locales:["bg","ru","uk","sr","mk"]}],Ir=Yt.reduce((e,t)=>e.concat(t.locales),[]);var Pt=Ie(),{locales:wc}=j(),kc=wc.filter(e=>Ir.includes(e)),ho=!1,Pc=async(e,t=!1)=>{if(t&&(Pt&&console.info("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.flexsearch=void 0,ho=!1),global.flexsearch)return Pt&&console.info("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.flexsearch;try{ho||(Pt&&console.info("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),ho=!0,global.flexsearch=await xc(e));}catch(r){throw new Error(`
63
63
  Could not initialize FlexSearch engine.
64
64
  Details:
65
65
  ${r.message}
66
- `)}return global.flexsearch};async function vc(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]});Pt&&console.info("\u{1F3F3}\uFE0F INITIALIZING FLEXSEARCH");let r=Ac.map(async o=>{Pt&&console.info(`\u{1F3F3}\uFE0F INITIALIZING FLEXSEARCH ${o} LOCALE`);let n=Jt.find(u=>u.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.info(` Charset for ${o}: ${a}`):Pt&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new Sc.Document({language:o,encode:i.encode,tokenize:"reverse",stemmer:{},matcher:{},filter:[],preset:"default",cache:100,resolution:9,context:!1,optimize:!0,worker:!1,document:{id:"content_id",store:!1,index:["id","name","clean","keywords","attributes"]}}),l=0;return t.forEach(u=>{let p=u.contentByLocale.find(d=>d.locale===o);if(p){let d=rt(p.name,a!=="arabic"),f=Array.isArray(p.keywords)?p.keywords.map(R=>rt(R,a!=="arabic")):null,m={id:u.id,content_id:u.content_id,name:p.name,keywords:f,attributes:p.attributes,clean:d};c.add(m),l++;}}),console.info(`\u{1F3F3}\uFE0F Indexed for ${o}: ${l} elements`),[o,c]});return Object.fromEntries(await Promise.all(r))}var ot=Tc;var kt=process.env.REPORTS_EXTERNAL_SEARCH,Le=Ie(),{locales:_c}=K(),wc=_c.filter(e=>xr.includes(e)),ho=!1,Pc=async(e=!1)=>{if(e&&(Le&&console.info("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.typesense=void 0,ho=!1),global.typesense)return Le&&console.info("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.typesense;try{ho||(Le&&console.info("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),ho=!0,global.typesense=await xc());}catch(t){throw new Error(`
66
+ `)}return global.flexsearch};async function xc(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]});Pt&&console.info("\u{1F3F3}\uFE0F INITIALIZING FLEXSEARCH");let r=kc.map(async o=>{Pt&&console.info(`\u{1F3F3}\uFE0F INITIALIZING FLEXSEARCH ${o} LOCALE`);let n=Yt.find(u=>u.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.info(` Charset for ${o}: ${a}`):Pt&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new _c.Document({language:o,encode:i.encode,tokenize:"reverse",stemmer:{},matcher:{},filter:[],preset:"default",cache:100,resolution:9,context:!1,optimize:!0,worker:!1,document:{id:"content_id",store:!1,index:["id","name","clean","keywords","attributes"]}}),l=0;return t.forEach(u=>{let p=u.contentByLocale.find(d=>d.locale===o);if(p){let d=rt(p.name,a!=="arabic"),f=Array.isArray(p.keywords)?p.keywords.map(R=>rt(R,a!=="arabic")):null,m={id:u.id,content_id:u.content_id,name:p.name,keywords:f,attributes:p.attributes,clean:d};c.add(m),l++;}}),console.info(`\u{1F3F3}\uFE0F Indexed for ${o}: ${l} elements`),[o,c]});return Object.fromEntries(await Promise.all(r))}var ot=Pc;var xt=process.env.REPORTS_EXTERNAL_SEARCH,Le=Ie(),{locales:Ic}=j(),Cc=Ic.filter(e=>Ir.includes(e)),Ro=!1,Bc=async(e=!1)=>{if(e&&(Le&&console.info("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.typesense=void 0,Ro=!1),global.typesense)return Le&&console.info("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.typesense;try{Ro||(Le&&console.info("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),Ro=!0,global.typesense=await Oc());}catch(t){throw new Error(`
67
67
  Could not initialize Typesense engine.
68
68
  Details:
69
69
  ${t.message}
70
- `)}return global.typesense};async function kc(){try{if(kt){let e=await Dr.get(new URL(kt).origin);if(e?.data["typesense-health"]===!0)return Le&&console.info(`${kt} health check is OK. Version: ${e.data.Version}`),!0}else console.error("No envar set TYPESENSE_URL");return !1}catch(e){return console.error("Health check failed:",e.message),!1}}async function xc(){if(Le&&console.info(`\u{1F3F3}\uFE0F INITIALIZING TYPESENSE SEARCH AGAINST ${kt}`),!await kc())throw new Error("TYPESENSE_URL service is not healthy.");let t=wc.map(r=>(Le&&console.info(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${r} LOCALE`),[r,{search:async(n={query:"*",limit:12,offset:0})=>{let a={locale:r,query:n.query,limit:n.limit,offset:n.offset};return n.report&&Array.isArray(n.report)&&n.report.length>0&&(a["report[]"]=n.report.join(",")),n.variant&&Array.isArray(n.variant)&&n.variant.length>0&&(a["variant[]"]=n.variant.join(",")),Le&&console.info("Typesense URL:",kt,a),Dr.get(kt,{params:a}).then(i=>(Le&&(console.info("Typesense URL:",i.request.res.responseUrl),console.info("Typesense Results",i.data.data.results.length)),i.data.data)).catch(i=>(console.error("Typesense Call Error:",i),[]))}}]));return Object.fromEntries(await Promise.all(t))}var Fn=Pc;var{localeDefault:Ro}=K();function xt(e){let{search:t,report:r}=e;return o;async function o(n){let a=n.origin||"flexsearch",s=process.env.REPORTS_EXTERNAL_SEARCH&&a==="typesense",{query:i,locale:c,preferredLocale:l,limit:u,format:p,visible:d,variant:f,dimension:m,report:R,all:y,noImage:S,includes:_,sort:P,direction:C="ASC",offset:x=0}=n,L=Jt.find(B=>B.locales.includes(c))?.charset||"latin",D=u&&!isNaN(u)?u:20,v=rt(i,L!=="arabic");function O(B){return B.toJSON()}function U(B){let q=B.getContent(c);return {...B.toJSON(),locale:q.locale,name:q.name,attributes:q.attributes,keywords:q.keywords}}if(s){let B=await Fn(),q=B[c]||B[Ro],M={query:v===""?"*":v,limit:D,variant:f,report:R,offset:x};return await q.search(M)}else {let B=[],q=await ot(e);if(i&&i!==""&&q[c]){let W=rt(i,L!=="arabic"),ie={query:W,limit:D},V=await q[c].search(ie);if(s?B=V.data.results.map(Q=>parseInt(Q.content_id,10)):B=V.reduce((Q,H)=>Q.concat(H.result),[]),B=gr(B),l&&q[l]){let H=q[l].search(W).reduce((ue,se)=>ue.concat(se.result),[]);H=gr(H),B=gr([...B,...H]);}}let M={...d?{visible:d}:{},...S?{image_id:{[Op$1.eq]:null}}:{},...f.length?{variant_id:f}:{},...m.length?{dimension_id:m}:{},...R.length?{report_id:R}:{}},w={locale:y?{[Op$1.ne]:null}:c},J=i&&i!==""&&B.length?[[literal(`array_position(array[${B.join(",")}], "content_id")`),"ASC"]]:[["zvalue","DESC NULLS LAST"]];P&&P!=="name"&&J.unshift([P,C.toUpperCase()]),i&&i!==""&&(M.content_id=B);let E=[{association:"contentByLocale",where:w}];_&&E.push({association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name"]},{association:"variant",attributes:["id","slug","name"]});let b={...M.visible?{visible:M.visible}:{},...M.noImage?{image_id:M.noImage}:{},...M.content_id?{content_id:M.content_id}:{}};if(!M.report_id&&!M.dimension_id&&!M.variant_id&&d){let ie=(await r.findAll({attributes:["id"],where:{[Op$1.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(V=>V.id);ie.length>0&&(M.report_id={[Op$1.notIn]:ie},b.report_id=M.report_id);}let A=[],[k,ne]=await Promise.all([t.findAll({limit:D,offset:x,where:M,include:E,order:J}),t.findAll({attributes:["variant_id",[fn$1("COUNT",col("variant_id")),"members_count"]],where:b,group:["variant_id"]})]),ae=ne.map(W=>W.toJSON());if(P==="name"){let W=C.toUpperCase()==="ASC"?1:-1;k.sort((ie,V)=>{let Q=ie.getContent(Ro),H=V.getContent(Ro);return Q&&H?Q.name>H.name?1*W:-1*W:0});}let Z=p==="nested"?O:U;return A=k.map(Z),p!=="nested"&&A.forEach(W=>{let{name:ie,keywords:V,score:Q=.1,zvalue:H}=W;if(ie){let ue=rt(ie),se=Q,le=i.length/ue.length,Qo=ue.split("").reduce((eo,Zo,Xo)=>(i.slice(0,Xo),i.charAt(Xo)===Zo&&(eo+=Zo),eo),"").length;ue===i||V&&V.includes(i)?se=1e6:ue.startsWith(i)?se*=20*le:Qo&&(se*=Qo*le),W.zvalue=se*2+H;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(W=>[W[0],j(W[1])])),variantCount:ae.reduce((W,ie)=>(W[ie.variant_id]=parseInt(ie.members_count,10),W),{})},results:A}}}}function Vn(e){let{image:t,image_content:r,search:o,search_content:n}=e;return a;async function a(s){let{content_id:i,contentByLocale:c,image:l,image_id:u}=s,p={where:{content_id:i}},d=await o.findOne(p);if(await o.update(s,{where:{content_id:i}}),c){for(let m=0;m<c.length;m++){let R=c[m];await n.update({name:R.name,keywords:R.keywords},{where:{id:R.id,locale:R.locale}});}p={...p,...{include:[{association:"contentByLocale",separate:!0}]}};}if(l){if(l.id&&(await t.update({...l},{where:{id:l.id}}),l.contentByLocale))for(let f=0;f<l.contentByLocale.length;f++){let m=l.contentByLocale[f];await r.update({meta:m.meta},{where:{id:m.id,locale:m.locale}});}}else !u&&d.image_id&&(await e.search.findAll({where:{image_id:d.image_id}})).length===0&&await t.destroy({where:{id:d.image_id}});return o.findOne(p)}}function $n(e){return {ingestMembers:Mn(e),readMember:Nn(e),searchMember:xt(e),updateMember:Vn(e),readMemberImage:Dn(e)}}var nt={include:[{association:"contentByLocale",separate:!0},{association:"inputs",include:[{association:"contentByLocale",separate:!0}]},{association:"consumers",include:[{association:"contentByLocale",separate:!0}]}]},Yt=e=>({include:[{association:"variants",separate:!0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:e,as:"members",attributes:[]}],group:["variant.id"]}],order:[["ordering","ASC"]]}),Qt={include:[{association:"blocks",separate:!0,...nt}]},Cr=e=>({include:[{association:"dimensions",separate:!0,...Yt(e)},{association:"sections",separate:!0,...Qt}]});var Te=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function qn(e){let{block:t,block_content:r,block_input:o}=e;return {createBlock:n,readBlock:s,updateBlock:i,deleteBlock:l,createBulkBlock:a,updateBulkBlock:c};async function n(u){let{locales:p,...d}=u;return (await t.create({...d,consumers:[],inputs:[],contentByLocale:p.map(m=>({locale:m}))},{include:nt.include})).toJSON()}async function a(u){let p=u.map(f=>{let{locales:m,...R}=f;return {...R,consumers:[],inputs:[],contentByLocale:m.map(S=>({locale:S}))}});return (await t.bulkCreate(p,{include:nt.include})).map(f=>f.toJSON())}async function s({id:u,include:p}={}){let d=u==null?[]:[].concat(u),f=await t.findAll({where:d.length>0?{id:d}:void 0,include:p?nt.include:void 0});if(d.length===0||f.length===d.length)return f.map(y=>y.toJSON());let m=f.map(y=>y.id),R=d.filter(y=>!m.includes(y));throw new T(404,`Block(id=[${R}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:d,consumers:f,inputs:m,inputAction:R,...y}=u,S=await t.findByPk(p,{include:nt.include,rejectOnEmpty:!0});if(S.set(y),d){let _=Object.values(d);await r.bulkCreate(_,{updateOnDuplicate:["content"]});}return R&&(R.operation==="create"?await o.create(R.input):await o.destroy({where:R.input})),await S.save(),await S.reload(),S.toJSON()}async function c(u){let p=u.map(m=>{let{id:R,contentByLocale:y,consumers:S,inputs:_,inputAction:P,...C}=m;return {id:R,contentByLocale:y,inputAction:P,...C}}),d=await t.findAll({where:{id:{[Op$1.or]:p.map(m=>m.id)}},include:nt.include}),f=[];for(let m of d){let R=p.filter(y=>y.id===m.id);for(let y=0;y<R.length;y++){let S=R[y],{id:_,contentByLocale:P,inputAction:C,...x}=S;if(C&&(C.operation==="create"?await o.create(C.input):await o.destroy({where:C.input})),P){let $=Object.values(P);await r.bulkCreate($,{updateOnDuplicate:["content"]});}m.set(x),await m.save(),await m.reload(),f.push(m.toJSON());}}return f}async function l(u){let p=await t.findByPk(u,{rejectOnEmpty:!0});return await p.destroy(),{id:u,parentType:"section",parentId:p.section_id}}}function zn(e){let{dimension:t,search:r}=e;return {createDimension:o,readDimension:n,updateDimension:a,deleteDimension:s};async function o(i){return (await t.create({name:i.name,report_id:i.report_id,ordering:i.ordering||0,variants:[]},{include:Yt(r).include})).toJSON()}async function n({id:i,include:c}={}){let l=i==null?[]:[].concat(i),u=await t.findAll({where:l.length>0?{id:l}:void 0,include:c?Yt(r).include:void 0});if(l.length===0||u.length===l.length)return u.map(f=>f.toJSON());let p=u.map(f=>f.id),d=l.filter(f=>!p.includes(f));throw new T(404,`Dimension(id=[${d}]) does not exist.`)}async function a(i){let{id:c,variants:l,...u}=i,p=await t.findByPk(c,{include:Yt(r).include,rejectOnEmpty:!1});if(!p)throw new T(404,`Dimension(id=${c}) does not exist.`);return p.set(u),await p.save(),p.toJSON()}async function s(i){let c=await t.findByPk(i,{rejectOnEmpty:!1});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function Gn(e){let{formatter:t}=e;return {createFormatter:r,readFormatter:o,updateFormatter:n,deleteFormatter:a};async function r(s){return (await t.create(s)).toJSON()}async function o({id:s}={}){let i=s==null?[]:[].concat(s),c=await t.findAll({where:i.length>0?{id:i}:void 0});if(i.length===0||c.length===i.length)return c.map(p=>p.toJSON());let l=c.map(p=>p.id),u=i.filter(p=>!l.includes(p));throw new T(404,`Formatter(id=[${u}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}function jn(e){let{datasource:t}=e;return {createDatasource:r,readDatasource:o,updateDatasource:n,deleteDatasource:a};async function r(s){return (await t.create(s)).toJSON()}async function o({id:s,include:i}={}){try{let c=s==null?[]:[].concat(s),l=i===!0,u=await t.findAll({attributes:l?["id","name","description","content"]:["id","name","description",[literal("content - 'logic' - 'testUrl' - 'access'"),"content"]],where:c.length>0?{id:c}:void 0,order:[literal("(content->>'order')::integer ASC NULLS LAST")]});if(c.length===0||u.length===c.length)return u.map(f=>f.toJSON());let p=u.map(f=>f.id),d=c.filter(f=>!p.includes(f));throw new T(404,`Datasource(id=[${d}]) does not exist.`)}catch(c){throw new T(500,c)}}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}var{locales:Fc}=K();function Hn(e){let{report:t,search:r}=e;return {createReport:o,readReport:n,updateReport:a,deleteReport:s};async function o(i){return (await t.create({name:i.name,sections:[],dimensions:[]},{include:Cr(r).include})).toJSON()}async function n({id:i,include:c,locales:l=Fc}={}){let p=(i==null?[]:[].concat(i)).reduce((R,y)=>(R.includes(y)||R.push(y),R),[]),d=await t.findAll({where:p.length>0?{id:p}:void 0,include:c?Cr(r).include?.filter(R=>typeof c=="string"?R.association===c:c):void 0});if(p.length===0||d.length===p.length)return d.map(R=>{let y=R.toJSON();return {...y,sections:y.sections.map(S=>({...S,blocks:S.blocks.map(_=>({..._,contentByLocale:Object.keys(_.contentByLocale).reduce((P,C)=>({...P,...[...l,"logic"].includes(C)?{[C]:_.contentByLocale[C]}:{}}),{})}))}))}});let f=d.map(R=>R.id),m=p.filter(R=>!f.includes(R));throw new T(404,`Report(id=${m}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:u,...p}=i,d=await t.findByPk(c,{include:Cr(r).include,rejectOnEmpty:!1});if(!d)throw new T(404,`Report(id=${c}) does not exist.`);return d.set(p),await d.save(),await d.reload(),d.toJSON()}async function s(i){return await(await t.findByPk(i,{rejectOnEmpty:!1})).destroy(),{id:i}}}function Wn(e){let{section:t}=e;return {createSection:r,readSection:o,updateSection:n,deleteSection:a};async function r(s){return (await t.create({ordering:s.ordering,report_id:s.report_id,blocks:[]},{include:Qt.include})).toJSON()}async function o({id:s,include:i}={}){let c=s==null?[]:[].concat(s),l=await t.findAll({where:c.length>0?{id:c}:void 0,include:i?Qt.include:void 0});if(c.length===0||l.length===c.length)return l.map(d=>d.toJSON());let u=l.map(d=>d.id),p=c.filter(d=>!u.includes(d));throw new T(404,`Section(id=${p}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,u=await t.findByPk(i,{include:Qt.include,rejectOnEmpty:!1});return u.set(l),await u.save(),await u.reload(),u.toJSON()}async function a(s){let i=await t.findByPk(s,{rejectOnEmpty:!0});return await i.destroy(),{id:s,parentType:"report",parentId:i.report_id}}}function Qn(e,t){let{variant:r,search:o}=e;return {createVariant:n,readVariant:a,updateVariant:s,deleteVariant:i,validateVariantSlug:c};async function n(l){let{dimension_id:u,name:p,slug:d}=l,f=await c({dimension:u,slug:d});return (await r.create({dimension_id:u,name:p,slug:f.valid?f.candidate:f.suggestion})).toJSON()}async function a({id:l}={}){let u=l==null?[]:[].concat(l),p=await r.findAll({where:u.length>0?{id:u}:void 0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:o,attributes:[],as:"members"}],group:["variant.id"]});if(u.length===0||p.length===u.length)return p.map(m=>m.toJSON());let d=p.map(m=>m.id),f=u.filter(m=>!d.includes(m));throw new T(404,`Variant(id=${f}) does not exist.`)}async function s(l){let{id:u,...p}=l,d=await r.findByPk(u,{include:[{association:"dimension"}],rejectOnEmpty:!0});p.settings=Wt(p.settings);let f=p.settings.doIngest;return p.settings.doIngest=!1,await d.update(p),f&&(await t.ingestMembers(d),await ot(e,!0)),await d.reload(),d.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:!0});return await u.destroy(),ot(e,!0),{id:l,parentType:"dimension",parentId:u.dimension_id}}async function c({dimension:l,slug:u}){let p=await r.findAll({attributes:["slug",[fn$1("COUNT",col("id")),"slugCount"]],where:{dimension_id:{[Op$1.ne]:l}},group:"slug"}).then(R=>Object.fromEntries(R.map(y=>{let S=y.getDataValue("slugCount");return [y.slug,Number.parseInt(`${S}`,10)]}))),d=u,f=1,m=!0;for(;p[d];)m=!1,d=`${u}-${f}`,f++;return {candidate:u,dimension_id:l,suggestion:d,valid:m}}}function Zn(e){let t={...qn(e),...zn(e),...Gn(e),...jn(e),...$n(e),...Hn(e),...Wn(e)},r={...t,...Qn(e,t)};return {createFormatter:I(r.createFormatter),deleteFormatter:I(r.deleteFormatter),readFormatter:I(r.readFormatter),updateFormatter:I(r.updateFormatter),createReport:I(r.createReport),deleteReport:I(r.deleteReport),readReport:I(r.readReport),updateReport:I(r.updateReport),createDimension:I(r.createDimension),deleteDimension:I(r.deleteDimension),readDimension:I(r.readDimension),updateDimension:I(r.updateDimension),createVariant:I(r.createVariant),readVariant:I(r.readVariant),updateVariant:I(r.updateVariant),deleteVariant:I(r.deleteVariant),validateVariantSlug:I(r.validateVariantSlug),createSection:I(r.createSection),readSection:I(r.readSection),updateSection:I(r.updateSection),deleteSection:I(r.deleteSection),createBlock:I(r.createBlock),deleteBlock:I(r.deleteBlock),readBlock:I(r.readBlock),updateBlock:I(r.updateBlock),createBulkBlock:I(r.createBulkBlock),updateBulkBlock:I(r.updateBulkBlock),readMember:I(r.readMember),searchMember:I(r.searchMember),updateMember:I(r.updateMember),readMemberImage:I(r.readMemberImage),createDatasource:I(r.createDatasource),deleteDatasource:I(r.deleteDatasource),readDatasource:I(r.readDatasource),updateDatasource:I(r.updateDatasource)}}var Xn=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},qc=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,zc=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,Gc=async(e,t,r)=>{let o=[{type:"splash",res:qc},{type:"thumb",res:zc}];for(let n of o){let a=await $c(r).resize(n.res).toFormat("webp").webp({lossless:!0}).toBuffer().catch(Xn);await e.image.update({[n.type]:a},{where:{id:t}}).catch(Xn);}},Oe=Gc;var ea="|||";var ta="SECTION_ALLOWED";var ra=["4","5","7","8","9","10"],Wc=ra.join(),{locales:Jc}=K(),Me;if(process.env.FLICKR_API_KEY)try{Me=new Hc(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function oa(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Me)throw console.warn("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Me.photos.search({text:o,license:Wc,sort:"relevance",per_page:24,page:r.page,content_types:"0",orientation:"landscape"}).then(l=>l.body)).photos.photo,s=a.reduce((l,u)=>l.concat(Me.photos.getSizes({photo_id:u.id})),[]),c=(await Promise.all(s).then(l=>l)).reduce((l,u,p)=>{let d=u.body.sizes.size.find(f=>f.label==="Small 320");return d&&l.push({id:a[p].id,source:d.source}),l},[]);return {meta:{prompt:j(r.prompt),page:j(`${r.page}`)},results:c}}catch(r){throw console.error(r),new Error("Error in search flickr provider")}}async function na(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:j(`${r}`)||"",id:j(`${o}`)||""},s=`https://flic.kr/p/${jc.int_to_base58(o)}`;if(!Me)throw new Error("Flickr API Key not configured");let i=await Me.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(ra.includes(i.photo.license)){let l=await e.search.findOne({where:{content_id:r}}),u=await e.image.findOne({where:{url:s}});if(l){if(u)await e.search.update({image_id:u.id},{where:{content_id:r}});else {let d=await Me.photos.getSizes({photo_id:o}).then(C=>C.body),f=d.sizes.size.find(C=>parseInt(C.width,10)>=1600);if(f||(f=d.sizes.size.find(C=>parseInt(C.width,10)>=1e3)),f||(f=d.sizes.size.find(C=>parseInt(C.width,10)>=500)),!f||!f.source)throw new Error("Flickr Source Error, try another image.");let m=await Dr.get(f.source,{responseType:"arraybuffer"}).then(C=>C.data),y=(await Me.photos.licenses.getInfo().then(C=>C.body.licenses.license)).find(C=>C.id===parseInt(i.photo.license,10)),S={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:y?`${y.name}: ${y.url}`:""},_=await e.image.create(S);await e.image_content.destroy({where:{id:_.id}});let P=Jc.map(C=>({id:_.id,locale:C,meta:i.photo.title._content}));await e.image_content.bulkCreate(P),await e.search.update({image_id:_.id},{where:{content_id:r}}),await Oe(e,_.id,m);}let p=await e.search.findOne({where:{content_id:r},include:Te});p&&p.image&&(p.image.thumb=!!p.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Bad License");else throw new Error("Malformed URL");return {meta:{...n},results:c}}catch(r){throw console.error(r),new Error("Error in save flickr provider")}}function F(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function ee(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new T(400,`Invalid numeric parameter: ${e}`);return t}function G(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:Ne}=K();function aa(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [F("GET","read/members",async a=>{let s=Yc(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new T(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new T(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),F("GET","search/members",a=>{let s=Xt(a.query);return r(s)}),F("POST","update/member",a=>{let{body:s}=a;return o(s)},[z.EDITOR]),F("GET","member/image",a=>{let s=G(a.query.size)[0];return n({member:ee(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function Yc(e){let t=G(e.locale)[0]||Ne||"en",r=t==="all"||Zt(e.all),o=G(e.mode)[0],a=(G(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(G(e.related)[0],10)||5,i=Zt(e.allowNulls,{default:!1}),c=G(e.variant).map(ee);if(c.length===0&&(c=G(e["variant[]"]).map(ee)),o==="ids")return {all:r,mode:o,variant:c,output:a,locale:r?Ne:j(t),ids:G(e.ids||e["ids[]"]),allowNulls:i};if(o==="content_ids")return {all:r,mode:o,variant:c,output:a,locale:r?Ne:j(t),content_ids:G(e.content_ids||e["content_ids[]"]).map(ee),allowNulls:!1};if(o==="slugs")return {all:r,mode:o,variant:c,output:a,locale:r?Ne:j(t),slugs:G(e.slugs||e["slugs[]"]).map(l=>{let[u,p]=l.split("/");return {variantSlug:u,memberSlug:p}}),allowNulls:!1};if(o==="related")return {all:r,mode:o,locale:r?Ne:j(t),related:s,current_ids:G(e.current_ids||e["current_ids[]"]).map(ee),include_ids:G(e.include_ids||e["include_ids[]"]).map(ee),report_ids:G(e.report_ids||e["report_ids[]"]).map(ee),dimension_ids:G(e.dimension_ids||e["dimension_ids[]"]).map(ee),variant_ids:G(e.variant_ids||e["variant_ids[]"]).map(ee),output:a,allowNulls:!1};if(o==="whole")return {all:r,mode:o,variant:c,locale:r?Ne:j(t),output:a,allowNulls:i};throw new T(400,`Invalid mode: '${o}'`)}function Xt(e){let t=G(e.locale)[0]||Ne||"en",r=t==="all",o=G(e.format)[0],n=o?o==="nested":r,a=G(e.variant).map(ee);a.length===0&&(a=G(e["variant[]"]).map(ee));let s=G(e.dimension).map(ee);s.length===0&&(s=G(e["dimension[]"]).map(ee));let i=G(e.report).map(ee);i.length===0&&(i=G(e["report[]"]).map(ee));let c=e.origin==="typesense"?"typesense":"flexsearch";return {query:G(e.query||e.q)[0]||"",locale:r?Ne:t,preferredLocale:G(e.preferredLocale)[0],limit:G(e.limit).map(ee)[0]??5,format:n?"nested":"plain",includes:Zt(e.includes,{default:!0}),visible:Zt(e.visible,{default:!0}),noImage:Zt(e.noImage,{default:!1}),variant:a,dimension:s,report:i,all:r,sort:G(e.sort)[0],direction:G(e.direction)[0],offset:Number(e.offset||0),origin:c}}async function sa(e,t){let r=xt(e),o=Xt({query:t.prompt,limit:"50",visible:"false"}),a=(await r(o)).results.filter(s=>s.image_id).map(s=>({id:s.image_id,source:`/api/cms/member/image?member=${s.content_id}&size=thumb`}));return {meta:{prompt:j(o.query)},results:a}}async function ia(e,t){let{search:r}=e,{content_id:o,image_id:n}=t;await r.update({image_id:n},{where:{content_id:o}});let a=await r.findOne({where:{content_id:o},include:Te}).then(s=>s?{...s.toJSON(),image:{...s.image.toJSON(),thumb:!!s.image.thumb}}:null);return {meta:{id:n,content_id:o},results:a}}var{locales:Xc}=K(),er;if(process.env.UNSPLASH_API_KEY)try{er=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function ca(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!er)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await er.search.getPhotos({query:o,perPage:24,page:r.page,orientation:"landscape"}).then(s=>s.response.results)).map(s=>({id:s.id,source:s.urls.thumb}));return {meta:{prompt:j(r.prompt),page:j(`${r.page}`)},results:a}}catch(r){throw console.error(r),new Error("Error in search unsplash provider")}}async function la(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:j(`${r}`)||"",id:j(`${o}`)||""};if(!er)throw console.warn("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await er.photos.get({photoId:o}).then(i=>i.response),s;if(a){let i=await e.search.findOne({where:{content_id:r}}),c=a.links.html,l=await e.image.findOne({where:{url:c}});if(i){if(l)await e.search.update({image_id:l.id},{where:{content_id:r}});else {let p=await Dr.get(a.urls.full,{responseType:"arraybuffer"}).then(R=>R.data),d={url:c,author:a.user.name||a.user.username,license:"Free Unsplash license: https://unsplash.com/license"},f=await e.image.create(d);await e.image_content.destroy({where:{id:f.id}});let m=Xc.map(R=>({id:f.id,locale:R,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(m),await e.search.update({image_id:f.id},{where:{content_id:r}}),await Oe(e,f.id,p);}let u=await e.search.findOne({where:{content_id:r},include:Te});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.error(r),new Error("Error in save unsplash provider")}}var{locales:tl}=K();async function ua(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:j(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await el.readFileSync(n.file.filepath),l={url:o,author:"",license:""},u=await e.image.create(l);await e.image_content.destroy({where:{id:u.id}});let p=tl.map(d=>({id:u.id,locale:d,meta:""}));await e.image_content.bulkCreate(p),await e.search.update({image_id:u.id},{where:{content_id:r}}),await Oe(e,u.id,c);}let i=await e.search.findOne({where:{content_id:r},include:Te});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.error(r),new Error("Error in save upload provider")}}var{locales:rl}=K();var pa=async e=>{let t={"x-api-key":process.env.ADOBE_STOCK_API_KEY||"EMPTY_ADOBE_KEY","X-Product":"BespokeApp/0.1"};return e&&(t.Authorization=`Bearer ${e}`),t};var tr;if(process.env.ADOBE_STOCK_API_KEY)try{tr={search:async(e,t)=>await Dr.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await pa(!1),params:{locale:"en_US","search_parameters[limit]":24,"search_parameters[offset]":t*24,"search_parameters[words]":e,"search_parameters[filters][content_type:photo]":"1","search_parameters[filters][content_type:image]":"1","search_parameters[filters][orientation]":"horizontal",result_columns:["id","stock_id","thumbnail_url","is_licensed"]}}).then(r=>r.data.files),get:async e=>await Dr.get("https://stock.adobe.io/Rest/Media/1/Files",{headers:await pa(!1),params:{locale:"en_US",ids:e,result_columns:["id","thumbnail_url","creator_name","title","thumbnail_1000_url","details_url","category"]}}).then(t=>t.data.files[0])};}catch{}async function da(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!tr)throw new Error("Adobe API Key not configured");let n=(await tr.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:j(r.prompt),page:j(`${r.page}`)},results:n}}catch(r){throw console.error(r),new Error("Error in search Adobe provider")}}async function ma(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:j(`${r}`)||"",id:j(`${o}`)||""};if(!tr)throw console.warn("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await tr.get(o),s;if(a){let i=await e.search.findOne({where:{content_id:r}}),c=a.details_url,l=await e.image.findOne({where:{url:c}});if(i){if(l)await e.search.update({image_id:l.id},{where:{content_id:r}});else {let p=await Dr.get(a.thumbnail_1000_url,{responseType:"arraybuffer"}).then(R=>R.data),d={url:c,author:a.creator_name,license:"ADOBE, TO-DO"},f=await e.image.create(d);await e.image_content.destroy({where:{id:f.id}});let m=rl.map(R=>({id:f.id,locale:R,meta:a.title||a.description}));await e.image_content.bulkCreate(m),await e.search.update({image_id:f.id},{where:{content_id:r}}),await Oe(e,f.id,p);}let u=await e.search.findOne({where:{content_id:r},include:Te});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.error(r),new Error("Error in save adobe provider")}}var ol={local:ia,flickr:na,unsplash:la,upload:ua,adobe:ma};function Ct(e,t){let r=ol[t];if(!r)throw new T(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return I(o=>r(e,o))}var nl={local:sa,flickr:oa,unsplash:ca,adobe:da};function rr(e,t){let r=nl[t];if(!r)throw new T(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return I(o=>r(e,o))}var pl=e=>(e.dimensions&&e.dimensions.forEach(t=>{t.variants&&t.variants.forEach(r=>{r.members_count&&(r.members_count=parseInt(r.members_count,10));});}),e);function Lr(e){let{report:t,search:r}=e;return o;async function o(n){let a=n?.report_id?Number(n.report_id):void 0,s=!(typeof n?.count<"u"&&(n.count==="false"||n.count===!1)),i={attributes:["id","name",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"],[literal("COALESCE(NULLIF(settings ->> 'hide', '')::BOOL, false)"),"hide"]],where:{[Op$1.or]:[where(cast(json("settings.hide"),"boolean"),!1),literal("NOT (settings::jsonb ? 'hide')")]},order:[["ordering","ASC"]],include:[{attributes:["id","name","ordering"],association:"dimensions",separate:!0,order:[["ordering","ASC"]],include:[{attributes:["id","name","slug",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],association:"variants",separate:!0,group:["variant.id"],order:[["ordering","ASC"]]}]}]};return a&&(i.where={...i.where,id:a}),s&&i.include&&i.include[0]&&(i.include[0].include[0].attributes.push([fn$1("COUNT",col("members.id")),"members_count"]),i.include[0].include[0].include=[{model:r,attributes:[],as:"members",where:{visible:!0}}]),{data:(await t.findAll(i)).map(l=>({...pl(l.toJSON()),mode:l.dimensions.length===1?Ce.UNILATERAL:Ce.MULTILATERAL}))}}}function fa(e){return async()=>(await ot(e,!0),{error:!1})}var{locales:dl,localeDefault:ml}=K(),fl=(e,t)=>{if(!e)return [];let r=[];return t.forEach(o=>{let n=e.filter(a=>a.metadata.report.id===o.id);if(n.length>0)if(o.mode===Ce.UNILATERAL){let a=o.dimensions[0];a.variants.forEach(s=>{let i=n.filter(c=>c.metadata.dimension.id===a.id&&c.metadata.variant.id===s.id);i.length>0&&(r=r.concat(i.map(c=>({path:`/${s.slug}/${c.slug}`,name:c.name,confidence:c.confidence,report:{id:o.id,name:o.name,mode:o.mode},members:[c],id:`r-${o.id}-${[c].map(l=>`${l.id}`).join("-")}`}))));});}else o.mode;}),r},yl=(e,t)=>{if(!e)return [];let r,o,n;return e.map(a=>(r={...t.find(s=>s.id===a.report_id)},o={...r.dimensions.find(s=>s.id===a.dimension_id)},n={...o.variants.find(s=>s.id===a.variant_id)},delete r.dimensions,delete o.variants,{name:a.name,confidence:a.zvalue,metadata:{id:a.id,slug:a.slug,report:r,dimension:o,variant:n},id:a.content_id,slug:a.slug}))};function ya(e){let t=xt(e),r=Lr(e);return o;async function o(n){let a=n.format||"results",s=dl.includes(n.locale)?n.locale:ml,i=n.origin||"flexsearch",c=process.env.REPORTS_EXTERNAL_SEARCH&&i==="typesense",l=await t({...n,format:"plain",locale:j(s),visible:!0});if(c)return l;{let u=l.results?l.results:[],d=(await r()).data,f=yl(u,d);return {meta:{...l.meta,origin:"flexsearch",format:a},results:fl(f,d)}}}}function ga(e){return async t=>{try{let{variantPaths:r}=t,o=[];if(r)for(let n=0;n<r.length;n++){let a=r[n];(await e.search.findAll({attributes:["slug"],where:{variant_id:a.variantId}})).forEach(i=>{o.push(`/${a.prefix}/${a.variantSlug}/${i.slug}`);});}return {...t,paths:o,revalidated:0,samples:[]}}catch(r){throw new T(r.response?.status||500,r.message)}}}function ha(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new T(t.response?.status||500,t.message)}}}function be(e,t){let r=[],o=a=>Object.values(t).reduce((i,c)=>("inputs"in c&&c.inputs.includes(a)&&(i.push(c.id),i=i.concat(o(c.id))),i),[]);e.forEach(a=>{r=r.concat(o(a));});let n=[];return r.forEach(a=>{n.includes(a)||n.push(a);}),n}function hl(e,t){return e.some(r=>t.includes(`role.${r}`))}function Ra(e){let{report:t}=e;return r;async function r(o){let n=await t.findByPk(o.report_id,{include:{association:"sections",separate:!0,where:{id:o.section_id},include:[{association:"blocks",separate:!0,include:[{association:"contentByLocale",separate:!0,where:{locale:{[Op$1.or]:[o.locale,"logic"]}}},{association:"inputs"},{association:"consumers"}]}]}}).then(s=>s&&s.sections&&Array.isArray(s.sections)?s.sections.reduce((i,c)=>{let l=c.blocks.map(u=>{let p=u.toJSON();return p.inputs=p.inputs.map(d=>d.id),p.consumers=p.consumers.map(d=>d.id),p});return i.concat(l)},[]):[]),a=n.filter(s=>s.settings&&s.settings.access&&Array.isArray(s.settings.access)&&Array.isArray(o.roles)&&(s.settings.access.includes("private")||hl(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(be(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var Sl=Object.keys(So).filter(e=>e.indexOf("Icon")===0);async function ba(){return {meta:{provider:"tabler"},results:Sl}}async function Sa(e){let t=So[e.name]?So[e.name]:()=>"";return renderToString(createElement(t))}var El={tabler:ba};function Ea(e){let t=El[e];if(!t)throw new T(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return I(()=>t())}var Al={tabler:Sa};function Aa(e){return I(t=>{let r=Al[e];if(!r)throw new T(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function Ta(){return e;async function e(){return {secrets:wt()}}}function at(e,t,r){return tt().then(o=>{Object.assign(r,Bt(o));})}function Bt(e,t){let r={},o=Ge(t||{providers:[]});return t&&o.actions&&o.source==="custom"?(r.searchRole=I(o.actions.searchRole()),r.searchUser=I(o.actions.searchUser()),r.readUser=I(o.actions.readUser()),r.updateUser=I(o.actions.updateUser())):o.source==="auth0"&&(r.searchRole=I(on()),r.searchUser=I(nn()),r.readUser=I(an()),r.updateUser=I(sn())),{...Zn(e),searchReport:I(ya(e)),readMetadata:I(Lr(e)),regenerateSearch:I(fa(e)),imageFlickrSearch:rr(e,"flickr"),imageLocalSearch:rr(e,"local"),imageUnsplashSearch:rr(e,"unsplash"),imageAdobeSearch:rr(e,"adobe"),imageFlickrSave:Ct(e,"flickr"),imageLocalSave:Ct(e,"local"),imageUnsplashSave:Ct(e,"unsplash"),imageUploadSave:Ct(e,"upload"),imageAdobeSave:Ct(e,"adobe"),urlProxy:kr(e),searchRole:r.searchRole,searchUser:r.searchUser,readUser:r.readUser,updateUser:r.updateUser,updateMyData:I(cn()),revalidateReport:I(ga(e)),revalidateUrl:I(ha()),readPrivateBlocks:I(Ra(e)),listTablerIcons:Ea("tabler"),readTablerIcon:Aa("tabler"),readEnvSecrets:I(Ta())}}async function Eo(e){try{let t=new Tl.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.error("Error in formidable parse function inside internal parseBody.ts",a),n(a);return}o({fields:s,files:i});});});return {...r.fields,files:r.files}}catch(t){return {error:t}}}function De(e,t){let r=pe(e,"create",t),o=pe(e,"read",t),n=pe(e,"update",t),a=pe(e,"delete",t),s=pe(e,"updateBulk",t),i=pe(e,"createBulk",t);return [F("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(f=>p[f]);return i(d)},[z.EDITOR]),F("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[z.EDITOR]),F("GET",`read/${t}`,c=>{let l=c.query,u=G(l.id).map(ee);return o({id:u,include:Zt(l.include)})}),F("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[z.EDITOR]),F("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(f=>p[f]);return s(d)},[z.EDITOR]),F("DELETE",`delete/${t}`,c=>{let l=ee(c.query.id);return a(l)},[z.EDITOR])]}function va(e){let{validateVariantSlug:t}=e;return [...De(e,"variant"),F("GET","validate/variant",r=>{let o=r.query,n=ee(o.dimension);return t({dimension:n,slug:_r(o.slug)})},[z.EDITOR])]}function _a(e){return De(e,"datasource").map(r=>({...r,roleRequired:[z.EDITOR]}))}function Lt(e,t){let r=`image${Ae(t)}Save`,o=e[r];return F("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new T(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new T(400,"Missing 'image_id' parameter.");return o(a)},[z.EDITOR])}function or(e,t){let r=`image${Ae(t)}Search`,o=e[r];return F("GET",`images/search/${t}`,async n=>{let a=G(n.query.prompt)[0];if(!a)throw new T(400,"Empty 'prompt' param.");return o({prompt:a,page:ee(n.query.page)})},[z.EDITOR])}function wa(e){let{readMetadata:t}=e;return F("GET","read/metadata",r=>t(r.query))}function Pa(e){let{regenerateSearch:t}=e;return F("POST","search/regenerate",()=>t(void 0),[z.EDITOR])}function ka(e){let{searchReport:t}=e;return F("GET","search/reports",r=>{let o=_l(r.query);return t(o)})}function _l(e){return {...Xt(e),format:G(e.format)[0]}}function xa(e){let{urlProxy:t}=e;return F("GET","url/proxy",(r,o,n)=>{let{url:a,method:s="GET",wrapper:i="true"}=r.query;if(!a)throw new T(400,"Missing URL parameter");let c=[];return n&&n.user&&n.user.bespoke_roles&&(c=n.user.bespoke_roles),t({url:Array.isArray(a)?a.join(","):a,method:G(s)[0]==="POST"?"POST":"GET",user_roles:c,wrapper:i!=="false",session:n})})}function Ia(e){let{readMetadata:t,revalidateReport:r}=e;return F("GET","revalidate/report",async(o,n)=>{let{reportId:a,profilePrefix:s}=o.query;if(!a||!s)throw new T(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(m=>m!=="").join("/"),l=[],u=await t({}).then(m=>m.ok?m.data.data.find(R=>R.id===i):[]);u&&u.mode===Ce.UNILATERAL&&u.dimensions.forEach(m=>{m.variants.forEach(R=>{l.push({prefix:c,variantId:R.id,variantSlug:R.slug});});});let p=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],f=0;return p.ok&&(f=p.data.paths.length,d=p.data.paths.slice(0,5),Promise.all(p.data.paths.map(m=>{let R;try{R=n.revalidate(m,{unstable_onlyGenerated:!0});}catch(y){console.error("error",m,y);}return R}))),{ok:!0,status:200,data:{reportId:a,revalidated:f,samples:d}}}catch(i){throw console.error(i),new T(500,"Error revalidating")}},[z.EDITOR])}function Ca(){return F("GET","revalidate/url",async(e,t)=>{let{target:r}=e.query;if(r)try{return t.revalidate(r,{unstable_onlyGenerated:!0}),{ok:!0,status:200,data:{target:r}}}catch(o){throw console.error(o),new T(500,"Error revalidating")}else throw new T(400,"Missing target parameter in revalidate factory")},[z.ADMIN,z.EDITOR,z.WRITER])}var{localeDefault:wl}=K();function Ba(e){let{readPrivateBlocks:t}=e;return F("POST","read/blocks/private",(r,o,n)=>{let a={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||wl,roles:n&&n.user?n.user.bespoke_roles:[],section_id:r.body.section_id||[]};return t(a)},[])}function La(e){let{readEnvSecrets:t}=e;return F("GET","read/secrets",()=>t({}),[z.EDITOR])}function Oa(e){let{searchRole:t}=e;return F("GET","auth/search/roles",(r,o)=>t(""),[z.EDITOR,z.ADMIN])}function Ma(e){let{searchUser:t}=e;return F("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[z.ADMIN])}function Na(e){let{readUser:t}=e;return F("GET","auth/read/user",r=>t(r.query.user_id),[z.ADMIN])}function Da(e){let{updateUser:t}=e;return F("POST","auth/update/user",async r=>{let o=r.body;return await t(o)},[z.ADMIN])}function Ua(e){let{updateUser:t,readUser:r}=e;return F("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body,c={user_id:a.user.id,user_metadata:{}};try{let{user:l}=a;return a&&l&&s&&(l.bespoke_app_metadata&&l.bespoke_app_metadata.reports&&Array.isArray(l.bespoke_app_metadata.reports)?c.app_metadata={...l.bespoke_app_metadata}:c.app_metadata={reports:[]},c.app_metadata.reports.push({reportId:s})),i&&(c.user_metadata={...l.bespoke_app_metadata,...i}),await t(c),{ok:!0,status:200,wrapper:!0,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:!1,status:500,error:l.message}}},[])}async function Pl(e){try{return "JVBERi0xLjcKJYGBgYEKCjYgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMTYKPj4Kc3RyZWFtCnicHYqxCsJAEAX79xVbC+Lmbm/3DoKFeEcKG2F/QCSKYgol+P0mMkwxMG8cHEwrnzt2w/j6jvPjetkalyyZLReKTH5DEPITuv/aUWKKiz6hTywiGliTZWNtFkyWitr0qEWrWmBbq2ndkz/hG1THGT/eextGCmVuZHN0cmVhbQplbmRvYmoKCjcgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA1Ci9GaXJzdCAyNgovTGVuZ3RoIDM2Mgo+PgpzdHJlYW0KeJzVUt9LwzAQfs9fcY/6IEnTH2llDLa1VZChbIKi+JC1YVRGIm0m87/3ru0cexCfpXwkd/cl+a73BSBAQhRBCCqFCOJQQgwqCGAyYfzx68MAf9Bb0zF+19QdvCJHwAreGF+4vfUQsOmUnbgL7fXObdlwCAIiHxkPrav3lWlhUhZlKYQSQiQRIhFC5rguEBlCYow1meIeoaIRmFOhEOEMa+WARA1nqN5z4/F8gStyE+LkAzdKh/jnXXqrGO6Qf+nJpowvXZ1rb+Aiv5ZCRiKTsQyjTKYvl/g7WqO9+7/N9fobZ3/t8GzONF4acmvIA/2U+cp0bt9WOHbilQ4rtLk1u0/jm0pfKZGlqFOlGXpsNAZ/vt+8m6qnUlgc/M3ak4YhQbmlqRs9dwd0n8APOwDshDw4s9Z5cmXvR+tRDUXJ6NEzySSI8fV+4/uQkgHjc92ZXupJJ4qwlasbuwX+1NiZ7Zpjgm78BkHDxfcKZW5kc3RyZWFtCmVuZG9iagoKOCAwIG9iago8PAovU2l6ZSA5Ci9Sb290IDIgMCBSCi9JbmZvIDMgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW5ndGggNDEKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOSBdCj4+CnN0cmVhbQp4nBXEwQ0AIAwDsUuKxJf9JUZippb4YaDbbEhKTpWWOCDezxcGYeEDtQplbmRzdHJlYW0KZW5kb2JqCgpzdGFydHhyZWYKNjY5CiUlRU9G"}catch(t){throw console.error("Error generating PDF:",t),t}}function Fa(){return F("POST","pdf",async(e,t)=>{let{slugs:r,path:o}=e.body;if(!r||!o)throw new T(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:!0,status:200,data:await Pl()}}})}function Va(e,t){let r=`list${Ae(t)}Icons`,o=e[r];return F("GET",`list/icons/${t}`,async()=>o({}),[z.EDITOR])}function $a(e,t){let r=`read${Ae(t)}Icon`,o=e[r];return F("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function qa(){return F("GET","report",async(e,t)=>{let{report:r,prefix:o,locale:n}=e.query;if(!r)throw new T(400,"Missing report parameter.");if(!o)throw new T(400,"Missing report parameter.");if(!n)throw new T(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new kl().parseFromString(s,"text/html").getElementById("__NEXT_DATA__")?.textContent,u=JSON.parse(l).props;return {ok:!0,status:200,data:{variables:u.pageProps.initialState.variables,status:u.pageProps.initialState.status}}}catch(a){throw console.error(a),new T(500,"Couldn't find page cache")}})}var Cl=Ie();function Ao(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function Bl(e,t){let r=Bt(e,t);return Object.fromEntries([...De(r,"block"),...De(r,"dimension"),...De(r,"formatter"),...De(r,"report"),...De(r,"section"),..._a(r),...va(r),...aa(r),ka(r),wa(r),Pa(r),Lt(r,"flickr"),Lt(r,"local"),Lt(r,"unsplash"),Lt(r,"upload"),Lt(r,"adobe"),or(r,"flickr"),or(r,"local"),or(r,"unsplash"),or(r,"adobe"),xa(r),Oa(r),Ma(r),Na(r),Da(r),Ua(r),Ia(r),Ca(),Ba(r),Fa(),Va(r,"tabler"),$a(r,"tabler"),qa(),La(r)].map(({handler:o,method:n,path:a,roleRequired:s})=>[Ao(n,a),{handler:o,roleRequired:s}]))}function Ll(e){let t=tt().then(r=>Bl(r,e));return async function(o,n){await xl(o,n,{methods:["GET","HEAD","PUT","PATCH","POST","DELETE"],origin:"*"});let{query:a,method:s}=o,{path:i,...c}=a;if(i&&s){let l=await t.then(u=>{let p=[].concat(i).join("/"),d=Ao(s,p);return u[d]});if(l){let u=await ge(o,n,e);if(l.roleRequired){if(!u)return n.status(401).json({error:"Unauthorized. Must be logged in."});let p=u&&u.user&&u.user.bespoke_roles&&Array.isArray(u.user.bespoke_roles)?u.user.bespoke_roles:[];if(Array.isArray(l.roleRequired)&&l.roleRequired.length>0&&!yr(p,l.roleRequired))return n.status(402).json({error:"Forbidden. Not enough roles."})}if(l.handler)return ["POST","DELETE"].includes(s)&&(o.body=await Eo(o)),Promise.resolve(o).then(p=>l.handler(p,n,u||void 0)).then(async p=>{if(p&&"error"in p)throw new T(p.status,p.error);if(p.ok)if(p.data instanceof Buffer){let d=await Il(p.data),f=Buffer.byteLength(p.data);n.writeHead(p.status,{"Content-Type":d?d.mime:"image/jpeg","Content-Length":f.toString()}).send(p.data);}else o.url&&o.url.indexOf("/icon.svg?name=")>0?(n.setHeader("Content-Type","image/svg+xml"),n.status(p.status).send(p.data)):n.status(p.status).json(p.wrapper?{data:p.data}:p.data);}).catch(p=>{Cl&&console.error("Backend Error",p),n.status(p.code).json({error:p.message});})}}else i||await t.then(console.info);return n.status(404).json({error:"No matching route",path:i,query:c})}}var Ol=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Ml=Ol;var yt={};$s(yt,{addBlockToState:()=>mr,addRunConsumersRunning:()=>ks,cloneEntity:()=>Es,createEntity:()=>Rs,deleteEntity:()=>Ss,deleteQueryParam:()=>Qu,readEntity:()=>oe,readEnvSecrets:()=>cp,readMember:()=>qe,readMetadata:()=>dr,readPrivateBlocks:()=>ap,readUser:()=>rp,recalculateVariables:()=>Cs,removeBlocksFromState:()=>ze,removeDataSourceLogic:()=>fr,removeRunConsumersRunning:()=>xs,reportSearch:()=>Wu,resetSectionState:()=>Ps,revalidateReport:()=>ip,revalidateUrl:()=>sp,searchMember:()=>Yu,searchRegenerate:()=>Ju,searchRole:()=>ep,searchUser:()=>tp,setCurrentLocale:()=>Ku,setPreferredLocale:()=>ju,setPreviews:()=>Gu,setQueryParam:()=>Zu,setSectionState:()=>ws,setStatus:()=>_s,updateEntity:()=>bs,updateMyData:()=>np,updateUser:()=>op,urlProxy:()=>Xu,variantValidateSlug:()=>Hu});function Se(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:!1,status:o,error:n.error}:{ok:!0,status:o,wrapper:n.wrapper,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:!1,status:o,error:n?.error??r.message}}return {ok:!1,status:500,error:r.message}})}function te(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Se(e,{...o,method:"GET",params:r?r(n):n})}function re(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Se(e,{...o,method:"POST",data:r?r(n):n})}function Ue(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Se(e,{...o,method:"DELETE",params:r?r(n):n})}function Ot(e,t){return r=>Se(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function nr(e,t){return r=>Se(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function za(e,t){return ()=>Se(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function Ga(e,t){return r=>Se(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var st=e=>({id:e}),Dl=e=>{if(e.mode==="slugs"){let t=e.slugs.map(r=>[r.variantSlug,r.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};function ar(e){let t=Dr.create({baseURL:e});return {createBulkBlock:re(t,"create/bulk/block"),createBlock:re(t,"create/block"),createDimension:re(t,"create/dimension"),createFormatter:re(t,"create/formatter"),createReport:re(t,"create/report"),createSection:re(t,"create/section"),createVariant:re(t,"create/variant"),createDatasource:re(t,"create/datasource"),deleteBlock:Ue(t,"delete/block",st),deleteDimension:Ue(t,"delete/dimension",st),deleteFormatter:Ue(t,"delete/formatter",st),deleteReport:Ue(t,"delete/report",st),deleteSection:Ue(t,"delete/section",st),deleteVariant:Ue(t,"delete/variant",st),deleteDatasource:Ue(t,"delete/datasource",st),readBlock:te(t,"read/block"),readDimension:te(t,"read/dimension"),readFormatter:te(t,"read/formatter"),readReport:te(t,"read/report"),readSection:te(t,"read/section"),readVariant:te(t,"read/variant"),readDatasource:te(t,"read/datasource"),updateBulkBlock:re(t,"update/bulk/block"),updateBlock:re(t,"update/block"),updateDimension:re(t,"update/dimension"),updateFormatter:re(t,"update/formatter"),updateReport:re(t,"update/report"),updateSection:re(t,"update/section"),updateVariant:re(t,"update/variant"),updateDatasource:re(t,"update/datasource"),searchReport:te(t,"search/reports"),validateVariantSlug:te(t,"validate/variant"),readMember:te(t,"read/members",Dl),readMemberImage:te(t,{url:"member/image",responseType:"blob"}),searchMember:te(t,"search/members"),updateMember:te(t,"update/members"),imageLocalSearch:nr(t,"local"),imageLocalSave:Ot(t,"local"),imageFlickrSearch:nr(t,"flickr"),imageFlickrSave:Ot(t,"flickr"),imageUnsplashSearch:nr(t,"unsplash"),imageUnsplashSave:Ot(t,"unsplash"),imageUploadSave:Ot(t,"upload"),imageAdobeSearch:nr(t,"adobe"),imageAdobeSave:Ot(t,"adobe"),readMetadata:te(t,"read/metadata"),regenerateSearch:re(t,"search/regenerate"),urlProxy:te(t,"url/proxy"),searchRole:te(t,"auth/search/roles"),searchUser:te(t,"auth/search/users"),readUser:te(t,"auth/read/user"),updateUser:re(t,"auth/update/user"),updateMyData:re(t,"auth/update/me"),revalidateReport:te(t,"revalidate/report"),revalidateUrl:te(t,"revalidate/url"),readPrivateBlocks:re(t,"read/blocks/private"),listTablerIcons:za(t,"tabler"),readTablerIcon:Ga(t,"tabler"),readEnvSecrets:te(t,"read/secrets")}}var Vl=Zt(process.env.REPORTS_LOGGING),it=$l;function $l(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=he(a);try{if(t){let l=new Proxy(console,{get(p,d){return ql(d,"log","debug","info","warn","error")?(...f)=>{i.push(`${d} ${Date.now()} - ${f.map(m=>format(m)).join(" ")}`),Vl&&p[d](...f);}:p[d]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Je,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,Je,o,c),typeof u=="object"&&Object.keys(u).length>0&&Object.assign(s,u),{vars:s,error:null,log:i,output:u}}return {vars:s,error:"Invalid API Link",log:i}}catch(l){return {vars:s,error:l.message,log:i}}}function ql(e,...t){return t.includes(e)}var To=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?!1:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=Re(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?To(i,t,r):typeof i=="string"?Re(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=To(a[s],t,r));}),a},Or=To;var Ka=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var zl=(e,t,r)=>{if(!r)return !1;if(e===Qe.SINGLE)return r.find(n=>n.id===t);let o=Array.isArray(t)?t:t.split(",");return Array.isArray(o)&&o.every(n=>r.map(a=>a.id).includes(n))},vo=zl;function _o(e,t,r,o,n=!1){let{variables:a}=he(o),s=Or({logic:t},r,o).logic,i=it("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||Qe.SINGLE,d=c.component||"Selector",f=c.hideLabel||"false",m=c.resetSectionVars||"false",R=c.name||"Unlabeled Selector",y=Ka(c.options||[]),S=x=>p===Qe.MULTI&&!Array.isArray(x)?[x]:x,_=c.defaultValue,P;if(_&&(_=S(_),vo(p,_,y)&&(P=_)),!P){let x=y&&y[0]&&y[0].id||y[0]||"";P=S(x);}if(n&&typeof window<"u"){let x=`selector${e}id`,$=new URLSearchParams(window.location.search),D=Object.fromEntries($)[x];D&&!vo(p,D,y)&&D!==void 0&&($.delete(x),window.history.replaceState(null,null,`?${$.toString()}`));}return {config:{name:R,type:p,options:y,defaultValue:P,component:d,hideLabel:f,resetSectionVars:m},log:l,error:u}}function wo(e,t,r){if(!e)return !1;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(a=>`${a[`${t} ID`]}`).includes(n))}function Po(e,t,r,o,n=!1){let{variables:a}=he(o),s=Or({logic:t},r,o).logic,i=it("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,f=`multihierarchySelector${e}-type`,m=new URLSearchParams(window.location.search),R=Object.fromEntries(m),y=R[d],S=R[f];y&&y!==void 0&&S&&S!==void 0&&!wo(c.data,S,y)&&(m.delete(d),m.delete(f),window.history.replaceState(null,null,`?${m.toString()}`));}return {config:c,log:l,error:u}}var Gl=(e,t,r)=>{let o=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),a=new URLSearchParams(t).get(o),s=n||a;if(r.type===Qe.MULTI){let l=s?s.split(","):r.defaultValue,u=r.options.filter(p=>l.includes(p.id));return {[`selector${e}id`]:l,[`selector${e}label`]:(u||[]).map(p=>p.label)}}let i=s&&r.options.find(l=>l.id===s)?s:r.defaultValue,c=r.options.find(l=>l.id===i);return {[`selector${e}id`]:i,[`selector${e}label`]:c&&c.label||void 0}},ja=Gl;var Kl=(e,t,r)=>{let o=`multihierarchySelector${e}-value`,n=`multihierarchySelector${e}-type`,a=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),s=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(n),i=new URLSearchParams(t).get(o),c=new URLSearchParams(t).get(n),l=a||i,u=s||c,p=l?l.split(","):r.defaultValue||[],d=u||r.defaultValueType||"",f=r.data?.filter(m=>p.includes(`${m[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((f||[]).map(m=>m[d]))],[`multihierarchySelector${e}type`]:d}},Ha=Kl;var{localeDefault:Wa,locales:jl}=K(),Hl=Object.values(io),Wl=(e,t=Wa)=>e&&Hl.includes(e.type)?{locale:co,locales:[co]}:{locale:t,locales:jl},Ja=(e,t=Wa)=>{if(!e)return {};let{locale:r}=Wl(e,t);return e.contentByLocale?.[r]?.content};function Jl(e,t){let r=Object.values(t),o=r.filter(n=>n.shared&&n.section_id!==e).map(n=>n.id);return Object.fromEntries(r.filter(n=>n.section_id===e&&(n.inputs.length===0||n.inputs.some(a=>o.includes(a)))).map(n=>[n.id,n]))}var Ya=Jl;function ko(e){return e.type===N.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var Fe=Zt(process.env.NEXT_PUBLIC_REPORTS_DEBUG),eu=process.env.REPORTS_ORIGIN||"",tu=process.env.NEXT_PUBLIC_REPORTS_AXIOS_RETRIES,es=5;try{es=parseInt(`${tu||5}`,10);}catch(e){console.error("Error setting axios retries NEXT_PUBLIC_REPORTS_AXIOS_RETRIES defaults to 5",e);}Qa(Dr,{retries:es,retryDelay:Qa.exponentialDelay,onRetry:(e,t,r)=>{console.error("Generator request failed. Retrying... Count: ",e),console.error("URL: ",r.url),console.error(t.message);}});Dr.interceptors.request.use(e=>({...e,requestStart:Date.now()}));Dr.interceptors.response.use(e=>({...e,requestDuration:new Date().getTime()-e.config.requestStart}),e=>Promise.reject(e));var ru=(e,t,r)=>{let o=Re(e,t,r);return o.startsWith("http")||(o=`${eu}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:ou}=ar("/api/cms");function Nr(e){return e.ok!==void 0}function Mr(e){this.message=e,this.name="ApiFetchException";}var Za=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function nu(e,t,r="en",o,n){let a=Date.now(),s=e,i,c=de(),l=wt(),u={envs:{...c,...l}},p=new URL(e),d=new URLSearchParams(p.searchParams.toString());d.has("bespoke_slugs")&&(p.searchParams.delete("bespoke_slugs"),s=p.toString());let f={datasource:void 0};o.find(_=>{if(!_.content?.pattern)return !1;try{let P=new RegExp(_.content.pattern,"gm");return P.test(s)?(f.datasource=_,!0):P.test(s)}catch{return !1}});let m=n?n.settings:{},R=!!(m&&m.useProxy&&m.useProxy==="true"),y=f.datasource&&typeof f.datasource.content.useProxy=="boolean"?f.datasource.content.useProxy:!1,S=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(s)}`;if(typeof window=="object"&&(R||y)){let _=await ou({url:s,timeout:Za});if(_.ok===!0)i=_.data;else throw new Mr(_?.error)}else try{let P={url:s,timeout:Za};if(f.datasource){let x=u;if(typeof window<"u")try{let D=await getSession();if(D){let v={user:D.user,status:"authenticated",isLoading:!1,update:async()=>D};x={...u,session:v};}}catch(D){console.warn("Could not retrieve user session:",D);}let L=await Pr({vars:["url","libs","session"],logic:f.datasource.content.logic},x)(s);if(L.axiosConfig)P=L.axiosConfig;else throw new Mr(`AxiosConfig is missing in Data Source ${f.datasource.name} (ID: ${f.datasource.id}).`)}let C=await Dr(P);if(C.status===200)C.headers["content-type"]==="text/csv"?i=csvParse(C.data):i=C.data;else throw new Mr("No response for: "+s)}catch(_){throw new Mr(_.message)}if(d.has("bespoke_slugs")){let _=d.get("bespoke_slugs");if(_){let P=_.split(",");if(P.length===3){let[C,x,$]=P,L=qt(i,$);if(L&&Array.isArray(L)){let D=Array.from(new Set(L.map(v=>`${v[x]}`).filter(v=>!["","undefined"].includes(v))));if(D.length>0){let v=D.join("").length>2e3,O=await t({mode:v?"whole":"ids",ids:v?void 0:D,all:!1,locale:r,variant:[parseInt(C,10)],output:"lite",limit:D.length+1,allowNulls:!0}).then(U=>{let B=[];return Nr(U)?U.ok&&(B=U.data.results):B=U.results,B&&Array.isArray(B)?B:[]}).catch(U=>(console.error(`Error hydrating slugs for Variant: ${C}, Key: ${x}, Accessor: ${$}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(U),[]));if(O){let U=Object.fromEntries(O.map(B=>[B.id,`/${B.variant_slug}/${B.slug}`]));L.map(B=>(B.bespoke_slug=U[B[x]]?U[B[x]]:null,B));}}}}}}return {data:i,requestDuration:Date.now()-a,finalUrl:y||R?S:s,apiDataSource:f.datasource?f.datasource:!1}}function au(e){this.name="BlockException",this.message=e;}async function Xa(e,t,r,o,n){let{locale:a,variables:s,query:i}=he(r),c=iu(e,r,s,t),l=null,u=e.contentByLocale?.logic?.content?.api,p=null,d=null,f=null,m,R;if(!c)return {outputVariables:{},renderVariables:{},status:{allowed:!1,hiddenByCascade:e.id}};if(e.type===N.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(u){f=ru(u,t,r);let L=f.split(ea).filter(O=>O!==""),D=[];for(let O=0;O<L.length;O++){let U=L[O];new RegExp("^(?:[a-z+]+:)?//","i").test(f)||(U=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${U}`.replace(/([^:]\/)\/+/g,"$1")),D.push(nu(U,o,a,n,e).catch(q=>{throw new au(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${s.report_name} (${s.report_id}) failed.
71
- Error fetching ${U}.
70
+ `)}return global.typesense};async function Lc(){try{if(xt){let e=await Ur.get(new URL(xt).origin);if(e?.data["typesense-health"]===!0)return Le&&console.info(`${xt} health check is OK. Version: ${e.data.Version}`),!0}else console.error("No envar set TYPESENSE_URL");return !1}catch(e){return console.error("Health check failed:",e.message),!1}}async function Oc(){if(Le&&console.info(`\u{1F3F3}\uFE0F INITIALIZING TYPESENSE SEARCH AGAINST ${xt}`),!await Lc())throw new Error("TYPESENSE_URL service is not healthy.");let t=Cc.map(r=>(Le&&console.info(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${r} LOCALE`),[r,{search:async(n={query:"*",limit:12,offset:0})=>{let a={locale:r,query:n.query,limit:n.limit,offset:n.offset};return n.report&&Array.isArray(n.report)&&n.report.length>0&&(a["report[]"]=n.report.join(",")),n.variant&&Array.isArray(n.variant)&&n.variant.length>0&&(a["variant[]"]=n.variant.join(",")),Le&&console.info("Typesense URL:",xt,a),Ur.get(xt,{params:a}).then(i=>(Le&&(console.info("Typesense URL:",i.request.res.responseUrl),console.info("Typesense Results",i.data.data.results.length)),i.data.data)).catch(i=>(console.error("Typesense Call Error:",i),[]))}}]));return Object.fromEntries(await Promise.all(t))}var $n=Bc;var{localeDefault:So}=j();function It(e){let{search:t,report:r}=e;return o;async function o(n){let a=n.origin||"flexsearch",s=process.env.REPORTS_EXTERNAL_SEARCH&&a==="typesense",{query:i,locale:c,preferredLocale:l,limit:u,format:p,visible:d,variant:f,dimension:m,report:R,all:g,noImage:S,includes:w,sort:_,direction:C="ASC",offset:x=0}=n,L=Yt.find(B=>B.locales.includes(c))?.charset||"latin",U=u&&!isNaN(u)?u:20,v=rt(i,L!=="arabic");function O(B){return B.toJSON()}function F(B){let q=B.getContent(c);return {...B.toJSON(),locale:q.locale,name:q.name,attributes:q.attributes,keywords:q.keywords}}if(s){let B=await $n(),q=B[c]||B[So],M={query:v===""?"*":v,limit:U,variant:f,report:R,offset:x};return await q.search(M)}else {let B=[],q=await ot(e);if(i&&i!==""&&q[c]){let J=rt(i,L!=="arabic"),ie={query:J,limit:U},V=await q[c].search(ie);if(s?B=V.data.results.map(Q=>parseInt(Q.content_id,10)):B=V.reduce((Q,W)=>Q.concat(W.result),[]),B=hr(B),l&&q[l]){let W=q[l].search(J).reduce((ue,se)=>ue.concat(se.result),[]);W=hr(W),B=hr([...B,...W]);}}let M={...d?{visible:d}:{},...S?{image_id:{[Op.eq]:null}}:{},...f.length?{variant_id:f}:{},...m.length?{dimension_id:m}:{},...R.length?{report_id:R}:{}},k={locale:g?{[Op.ne]:null}:c},H=[];i&&i!==""&&B.length&&_!=="report"?H.push([literal(`array_position(array[${B.join(",")}], "content_id")`),"ASC"]):(_==="report"&&H.push([literal(`COALESCE(NULLIF("report"."settings"->>'order', '')::INTEGER, 999999)`),"ASC"],[literal(`COALESCE(NULLIF("variant"."settings"->>'order', '')::INTEGER, 999999)`),"ASC"]),H.push(["zvalue","DESC NULLS LAST"])),_&&_!=="name"&&_!=="report"&&H.unshift([_,C.toUpperCase()]),i&&i!==""&&(M.content_id=B);let A=[{association:"contentByLocale",where:k}];(w||_==="report")&&A.push({association:"report",attributes:["id","name","settings"]},{association:"dimension",attributes:["id","name","settings"]},{association:"variant",attributes:["id","slug","name","settings"]});let b={...M.visible?{visible:M.visible}:{},...M.noImage?{image_id:M.noImage}:{},...M.content_id?{content_id:M.content_id}:{}};if(!M.report_id&&!M.dimension_id&&!M.variant_id&&d){let ie=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(V=>V.id);ie.length>0&&(M.report_id={[Op.notIn]:ie},b.report_id=M.report_id);}let T=[],[P,ne]=await Promise.all([t.findAll({limit:U,offset:x,where:M,include:A,order:H,subQuery:!1}),t.findAll({attributes:["variant_id",[fn$1("COUNT",col("variant_id")),"members_count"]],where:b,group:["variant_id"]})]),ae=ne.map(J=>J.toJSON());if(_==="name"){let J=C.toUpperCase()==="ASC"?1:-1;P.sort((ie,V)=>{let Q=ie.getContent(So),W=V.getContent(So);return Q&&W?Q.name>W.name?1*J:-1*J:0});}let Z=p==="nested"?O:F;return T=P.map(Z),p!=="nested"&&T.forEach(J=>{let{name:ie,keywords:V,score:Q=.1,zvalue:W}=J;if(ie){let ue=rt(ie),se=Q,le=i.length/ue.length,Xo=ue.split("").reduce((to,en,tn)=>(i.slice(0,tn),i.charAt(tn)===en&&(to+=en),to),"").length;ue===i||V&&V.includes(i)?se=1e6:ue.startsWith(i)?se*=20*le:Xo&&(se*=Xo*le),J.zvalue=se*2+W;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(J=>[J[0],K(J[1])])),variantCount:ae.reduce((J,ie)=>(J[ie.variant_id]=parseInt(ie.members_count,10),J),{})},results:T}}}}function qn(e){let{image:t,image_content:r,search:o,search_content:n}=e;return a;async function a(s){let{content_id:i,contentByLocale:c,image:l,image_id:u}=s,p={where:{content_id:i}},d=await o.findOne(p);if(await o.update(s,{where:{content_id:i}}),c){for(let m=0;m<c.length;m++){let R=c[m];await n.update({name:R.name,keywords:R.keywords},{where:{id:R.id,locale:R.locale}});}p={...p,...{include:[{association:"contentByLocale",separate:!0}]}};}if(l){if(l.id&&(await t.update({...l},{where:{id:l.id}}),l.contentByLocale))for(let f=0;f<l.contentByLocale.length;f++){let m=l.contentByLocale[f];await r.update({meta:m.meta},{where:{id:m.id,locale:m.locale}});}}else !u&&d.image_id&&(await e.search.findAll({where:{image_id:d.image_id}})).length===0&&await t.destroy({where:{id:d.image_id}});return o.findOne(p)}}function zn(e){return {ingestMembers:Dn(e),readMember:Un(e),searchMember:It(e),updateMember:qn(e),readMemberImage:Fn(e)}}var nt={include:[{association:"contentByLocale",separate:!0},{association:"inputs",include:[{association:"contentByLocale",separate:!0}]},{association:"consumers",include:[{association:"contentByLocale",separate:!0}]}]},Qt=e=>({include:[{association:"variants",separate:!0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:e,as:"members",attributes:[]}],group:["variant.id"]}],order:[["ordering","ASC"]]}),Zt={include:[{association:"blocks",separate:!0,...nt}]},Br=e=>({include:[{association:"dimensions",separate:!0,...Qt(e)},{association:"sections",separate:!0,...Zt}]});var Te=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function Gn(e){let{block:t,block_content:r,block_input:o}=e;return {createBlock:n,readBlock:s,updateBlock:i,deleteBlock:l,createBulkBlock:a,updateBulkBlock:c};async function n(u){let{locales:p,...d}=u;return (await t.create({...d,consumers:[],inputs:[],contentByLocale:p.map(m=>({locale:m}))},{include:nt.include})).toJSON()}async function a(u){let p=u.map(f=>{let{locales:m,...R}=f;return {...R,consumers:[],inputs:[],contentByLocale:m.map(S=>({locale:S}))}});return (await t.bulkCreate(p,{include:nt.include})).map(f=>f.toJSON())}async function s({id:u,include:p}={}){let d=u==null?[]:[].concat(u),f=await t.findAll({where:d.length>0?{id:d}:void 0,include:p?nt.include:void 0});if(d.length===0||f.length===d.length)return f.map(g=>g.toJSON());let m=f.map(g=>g.id),R=d.filter(g=>!m.includes(g));throw new E(404,`Block(id=[${R}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:d,consumers:f,inputs:m,inputAction:R,...g}=u,S=await t.findByPk(p,{include:nt.include,rejectOnEmpty:!0});if(S.set(g),d){let w=Object.values(d);await r.bulkCreate(w,{updateOnDuplicate:["content"]});}return R&&(R.operation==="create"?await o.create(R.input):await o.destroy({where:R.input})),await S.save(),await S.reload(),S.toJSON()}async function c(u){let p=u.map(m=>{let{id:R,contentByLocale:g,consumers:S,inputs:w,inputAction:_,...C}=m;return {id:R,contentByLocale:g,inputAction:_,...C}}),d=await t.findAll({where:{id:{[Op.or]:p.map(m=>m.id)}},include:nt.include}),f=[];for(let m of d){let R=p.filter(g=>g.id===m.id);for(let g=0;g<R.length;g++){let S=R[g],{id:w,contentByLocale:_,inputAction:C,...x}=S;if(C&&(C.operation==="create"?await o.create(C.input):await o.destroy({where:C.input})),_){let $=Object.values(_);await r.bulkCreate($,{updateOnDuplicate:["content"]});}m.set(x),await m.save(),await m.reload(),f.push(m.toJSON());}}return f}async function l(u){let p=await t.findByPk(u,{rejectOnEmpty:!0});return await p.destroy(),{id:u,parentType:"section",parentId:p.section_id}}}function jn(e){let{dimension:t,search:r}=e;return {createDimension:o,readDimension:n,updateDimension:a,deleteDimension:s};async function o(i){return (await t.create({name:i.name,report_id:i.report_id,ordering:i.ordering||0,variants:[]},{include:Qt(r).include})).toJSON()}async function n({id:i,include:c}={}){let l=i==null?[]:[].concat(i),u=await t.findAll({where:l.length>0?{id:l}:void 0,include:c?Qt(r).include:void 0});if(l.length===0||u.length===l.length)return u.map(f=>f.toJSON());let p=u.map(f=>f.id),d=l.filter(f=>!p.includes(f));throw new E(404,`Dimension(id=[${d}]) does not exist.`)}async function a(i){let{id:c,variants:l,...u}=i,p=await t.findByPk(c,{include:Qt(r).include,rejectOnEmpty:!1});if(!p)throw new E(404,`Dimension(id=${c}) does not exist.`);return p.set(u),await p.save(),p.toJSON()}async function s(i){let c=await t.findByPk(i,{rejectOnEmpty:!1});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function Kn(e){let{formatter:t}=e;return {createFormatter:r,readFormatter:o,updateFormatter:n,deleteFormatter:a};async function r(s){return (await t.create(s)).toJSON()}async function o({id:s}={}){let i=s==null?[]:[].concat(s),c=await t.findAll({where:i.length>0?{id:i}:void 0});if(i.length===0||c.length===i.length)return c.map(p=>p.toJSON());let l=c.map(p=>p.id),u=i.filter(p=>!l.includes(p));throw new E(404,`Formatter(id=[${u}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}function Wn(e){let{datasource:t}=e;return {createDatasource:r,readDatasource:o,updateDatasource:n,deleteDatasource:a};async function r(s){return (await t.create(s)).toJSON()}async function o({id:s,include:i}={}){try{let c=s==null?[]:[].concat(s),l=i===!0,u=await t.findAll({attributes:l?["id","name","description","content"]:["id","name","description",[literal("content - 'logic' - 'testUrl' - 'access'"),"content"]],where:c.length>0?{id:c}:void 0,order:[literal("(content->>'order')::integer ASC NULLS LAST")]});if(c.length===0||u.length===c.length)return u.map(f=>f.toJSON());let p=u.map(f=>f.id),d=c.filter(f=>!p.includes(f));throw new E(404,`Datasource(id=[${d}]) does not exist.`)}catch(c){throw new E(500,c)}}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}var{locales:zc}=j();function Jn(e){let{report:t,search:r}=e;return {createReport:o,readReport:n,updateReport:a,deleteReport:s};async function o(i){return (await t.create({name:i.name,sections:[],dimensions:[]},{include:Br(r).include})).toJSON()}async function n({id:i,include:c,locales:l=zc}={}){let p=(i==null?[]:[].concat(i)).reduce((R,g)=>(R.includes(g)||R.push(g),R),[]),d=await t.findAll({where:p.length>0?{id:p}:void 0,include:c?Br(r).include?.filter(R=>typeof c=="string"?R.association===c:c):void 0});if(p.length===0||d.length===p.length)return d.map(R=>{let g=R.toJSON();return {...g,sections:g.sections.map(S=>({...S,blocks:S.blocks.map(w=>({...w,contentByLocale:Object.keys(w.contentByLocale).reduce((_,C)=>({..._,...[...l,"logic"].includes(C)?{[C]:w.contentByLocale[C]}:{}}),{})}))}))}});let f=d.map(R=>R.id),m=p.filter(R=>!f.includes(R));throw new E(404,`Report(id=${m}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:u,...p}=i,d=await t.findByPk(c,{include:Br(r).include,rejectOnEmpty:!1});if(!d)throw new E(404,`Report(id=${c}) does not exist.`);return d.set(p),await d.save(),await d.reload(),d.toJSON()}async function s(i){return await(await t.findByPk(i,{rejectOnEmpty:!1})).destroy(),{id:i}}}function Yn(e){let{section:t}=e;return {createSection:r,readSection:o,updateSection:n,deleteSection:a};async function r(s){return (await t.create({ordering:s.ordering,report_id:s.report_id,blocks:[]},{include:Zt.include})).toJSON()}async function o({id:s,include:i}={}){let c=s==null?[]:[].concat(s),l=await t.findAll({where:c.length>0?{id:c}:void 0,include:i?Zt.include:void 0});if(c.length===0||l.length===c.length)return l.map(d=>d.toJSON());let u=l.map(d=>d.id),p=c.filter(d=>!u.includes(d));throw new E(404,`Section(id=${p}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,u=await t.findByPk(i,{include:Zt.include,rejectOnEmpty:!1});return u.set(l),await u.save(),await u.reload(),u.toJSON()}async function a(s){let i=await t.findByPk(s,{rejectOnEmpty:!0});return await i.destroy(),{id:s,parentType:"report",parentId:i.report_id}}}function Xn(e,t){let{variant:r,search:o}=e;return {createVariant:n,readVariant:a,updateVariant:s,deleteVariant:i,validateVariantSlug:c};async function n(l){let{dimension_id:u,name:p,slug:d}=l,f=await c({dimension:u,slug:d});return (await r.create({dimension_id:u,name:p,slug:f.valid?f.candidate:f.suggestion})).toJSON()}async function a({id:l}={}){let u=l==null?[]:[].concat(l),p=await r.findAll({where:u.length>0?{id:u}:void 0,attributes:{include:[[fn$1("COUNT",col("members.id")),"members_count"]]},include:[{model:o,attributes:[],as:"members"}],group:["variant.id"]});if(u.length===0||p.length===u.length)return p.map(m=>m.toJSON());let d=p.map(m=>m.id),f=u.filter(m=>!d.includes(m));throw new E(404,`Variant(id=${f}) does not exist.`)}async function s(l){let{id:u,...p}=l,d=await r.findByPk(u,{include:[{association:"dimension"}],rejectOnEmpty:!0});p.settings=Jt(p.settings);let f=p.settings.doIngest;return p.settings.doIngest=!1,await d.update(p),f&&(await t.ingestMembers(d),await ot(e,!0)),await d.reload(),d.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:!0});return await u.destroy(),ot(e,!0),{id:l,parentType:"dimension",parentId:u.dimension_id}}async function c({dimension:l,slug:u}){let p=await r.findAll({attributes:["slug",[fn$1("COUNT",col("id")),"slugCount"]],where:{dimension_id:{[Op.ne]:l}},group:"slug"}).then(R=>Object.fromEntries(R.map(g=>{let S=g.getDataValue("slugCount");return [g.slug,Number.parseInt(`${S}`,10)]}))),d=u,f=1,m=!0;for(;p[d];)m=!1,d=`${u}-${f}`,f++;return {candidate:u,dimension_id:l,suggestion:d,valid:m}}}function ea(e){let t={...Gn(e),...jn(e),...Kn(e),...Wn(e),...zn(e),...Jn(e),...Yn(e)},r={...t,...Xn(e,t)};return {createFormatter:I(r.createFormatter),deleteFormatter:I(r.deleteFormatter),readFormatter:I(r.readFormatter),updateFormatter:I(r.updateFormatter),createReport:I(r.createReport),deleteReport:I(r.deleteReport),readReport:I(r.readReport),updateReport:I(r.updateReport),createDimension:I(r.createDimension),deleteDimension:I(r.deleteDimension),readDimension:I(r.readDimension),updateDimension:I(r.updateDimension),createVariant:I(r.createVariant),readVariant:I(r.readVariant),updateVariant:I(r.updateVariant),deleteVariant:I(r.deleteVariant),validateVariantSlug:I(r.validateVariantSlug),createSection:I(r.createSection),readSection:I(r.readSection),updateSection:I(r.updateSection),deleteSection:I(r.deleteSection),createBlock:I(r.createBlock),deleteBlock:I(r.deleteBlock),readBlock:I(r.readBlock),updateBlock:I(r.updateBlock),createBulkBlock:I(r.createBulkBlock),updateBulkBlock:I(r.updateBulkBlock),readMember:I(r.readMember),searchMember:I(r.searchMember),updateMember:I(r.updateMember),readMemberImage:I(r.readMemberImage),createDatasource:I(r.createDatasource),deleteDatasource:I(r.deleteDatasource),readDatasource:I(r.readDatasource),updateDatasource:I(r.updateDatasource)}}var ta=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},Kc=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,Hc=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,Wc=async(e,t,r)=>{let o=[{type:"splash",res:Kc},{type:"thumb",res:Hc}];for(let n of o){let a=await jc(r).resize(n.res).toFormat("webp").webp({lossless:!0}).toBuffer().catch(ta);await e.image.update({[n.type]:a},{where:{id:t}}).catch(ta);}},Oe=Wc;var ra="|||";var oa="SECTION_ALLOWED";var na=["4","5","7","8","9","10"],Zc=na.join(),{locales:Xc}=j(),Me;if(process.env.FLICKR_API_KEY)try{Me=new Qc(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function aa(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Me)throw console.warn("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Me.photos.search({text:o,license:Zc,sort:"relevance",per_page:24,page:r.page,content_types:"0",orientation:"landscape"}).then(l=>l.body)).photos.photo,s=a.reduce((l,u)=>l.concat(Me.photos.getSizes({photo_id:u.id})),[]),c=(await Promise.all(s).then(l=>l)).reduce((l,u,p)=>{let d=u.body.sizes.size.find(f=>f.label==="Small 320");return d&&l.push({id:a[p].id,source:d.source}),l},[]);return {meta:{prompt:K(r.prompt),page:K(`${r.page}`)},results:c}}catch(r){throw console.error(r),new Error("Error in search flickr provider")}}async function sa(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:K(`${r}`)||"",id:K(`${o}`)||""},s=`https://flic.kr/p/${Yc.int_to_base58(o)}`;if(!Me)throw new Error("Flickr API Key not configured");let i=await Me.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(na.includes(i.photo.license)){let l=await e.search.findOne({where:{content_id:r}}),u=await e.image.findOne({where:{url:s}});if(l){if(u)await e.search.update({image_id:u.id},{where:{content_id:r}});else {let d=await Me.photos.getSizes({photo_id:o}).then(C=>C.body),f=d.sizes.size.find(C=>parseInt(C.width,10)>=1600);if(f||(f=d.sizes.size.find(C=>parseInt(C.width,10)>=1e3)),f||(f=d.sizes.size.find(C=>parseInt(C.width,10)>=500)),!f||!f.source)throw new Error("Flickr Source Error, try another image.");let m=await Ur.get(f.source,{responseType:"arraybuffer"}).then(C=>C.data),g=(await Me.photos.licenses.getInfo().then(C=>C.body.licenses.license)).find(C=>C.id===parseInt(i.photo.license,10)),S={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:g?`${g.name}: ${g.url}`:""},w=await e.image.create(S);await e.image_content.destroy({where:{id:w.id}});let _=Xc.map(C=>({id:w.id,locale:C,meta:i.photo.title._content}));await e.image_content.bulkCreate(_),await e.search.update({image_id:w.id},{where:{content_id:r}}),await Oe(e,w.id,m);}let p=await e.search.findOne({where:{content_id:r},include:Te});p&&p.image&&(p.image.thumb=!!p.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Bad License");else throw new Error("Malformed URL");return {meta:{...n},results:c}}catch(r){throw console.error(r),new Error("Error in save flickr provider")}}function D(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function ee(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new E(400,`Invalid numeric parameter: ${e}`);return t}function G(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:Ne}=j();function ia(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [D("GET","read/members",async a=>{let s=el(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new E(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new E(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),D("GET","search/members",a=>{let s=er(a.query);return r(s)}),D("POST","update/member",a=>{let{body:s}=a;return o(s)},[z.EDITOR]),D("GET","member/image",a=>{let s=G(a.query.size)[0];return n({member:ee(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function el(e){let t=G(e.locale)[0]||Ne||"en",r=t==="all"||Xt(e.all),o=G(e.mode)[0],a=(G(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(G(e.related)[0],10)||5,i=Xt(e.allowNulls,{default:!1}),c=G(e.variant).map(ee);if(c.length===0&&(c=G(e["variant[]"]).map(ee)),o==="ids")return {all:r,mode:o,variant:c,output:a,locale:r?Ne:K(t),ids:G(e.ids||e["ids[]"]),allowNulls:i};if(o==="content_ids")return {all:r,mode:o,variant:c,output:a,locale:r?Ne:K(t),content_ids:G(e.content_ids||e["content_ids[]"]).map(ee),allowNulls:!1};if(o==="slugs")return {all:r,mode:o,variant:c,output:a,locale:r?Ne:K(t),slugs:G(e.slugs||e["slugs[]"]).map(l=>{let[u,p]=l.split("/");return {variantSlug:u,memberSlug:p}}),allowNulls:!1};if(o==="related")return {all:r,mode:o,locale:r?Ne:K(t),related:s,current_ids:G(e.current_ids||e["current_ids[]"]).map(ee),include_ids:G(e.include_ids||e["include_ids[]"]).map(ee),report_ids:G(e.report_ids||e["report_ids[]"]).map(ee),dimension_ids:G(e.dimension_ids||e["dimension_ids[]"]).map(ee),variant_ids:G(e.variant_ids||e["variant_ids[]"]).map(ee),output:a,allowNulls:!1};if(o==="whole")return {all:r,mode:o,variant:c,locale:r?Ne:K(t),output:a,allowNulls:i};throw new E(400,`Invalid mode: '${o}'`)}function er(e){let t=G(e.locale)[0]||Ne||"en",r=t==="all",o=G(e.format)[0],n=o?o==="nested":r,a=G(e.variant).map(ee);a.length===0&&(a=G(e["variant[]"]).map(ee));let s=G(e.dimension).map(ee);s.length===0&&(s=G(e["dimension[]"]).map(ee));let i=G(e.report).map(ee);i.length===0&&(i=G(e["report[]"]).map(ee));let c=e.origin==="typesense"?"typesense":"flexsearch";return {query:G(e.query||e.q)[0]||"",locale:r?Ne:t,preferredLocale:G(e.preferredLocale)[0],limit:G(e.limit).map(ee)[0]??5,format:n?"nested":"plain",includes:Xt(e.includes,{default:!0}),visible:Xt(e.visible,{default:!0}),noImage:Xt(e.noImage,{default:!1}),variant:a,dimension:s,report:i,all:r,sort:G(e.sort)[0],direction:G(e.direction)[0],offset:Number(e.offset||0),origin:c}}async function ca(e,t){let r=It(e),o=er({query:t.prompt,limit:"50",visible:"false"}),a=(await r(o)).results.filter(s=>s.image_id).map(s=>({id:s.image_id,source:`/api/cms/member/image?member=${s.content_id}&size=thumb`}));return {meta:{prompt:K(o.query)},results:a}}async function la(e,t){let{search:r}=e,{content_id:o,image_id:n}=t;await r.update({image_id:n},{where:{content_id:o}});let a=await r.findOne({where:{content_id:o},include:Te}).then(s=>s?{...s.toJSON(),image:{...s.image.toJSON(),thumb:!!s.image.thumb}}:null);return {meta:{id:n,content_id:o},results:a}}var{locales:ol}=j(),tr;if(process.env.UNSPLASH_API_KEY)try{tr=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function ua(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!tr)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await tr.search.getPhotos({query:o,perPage:24,page:r.page,orientation:"landscape"}).then(s=>s.response.results)).map(s=>({id:s.id,source:s.urls.thumb}));return {meta:{prompt:K(r.prompt),page:K(`${r.page}`)},results:a}}catch(r){throw console.error(r),new Error("Error in search unsplash provider")}}async function pa(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:K(`${r}`)||"",id:K(`${o}`)||""};if(!tr)throw console.warn("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await tr.photos.get({photoId:o}).then(i=>i.response),s;if(a){let i=await e.search.findOne({where:{content_id:r}}),c=a.links.html,l=await e.image.findOne({where:{url:c}});if(i){if(l)await e.search.update({image_id:l.id},{where:{content_id:r}});else {let p=await Ur.get(a.urls.full,{responseType:"arraybuffer"}).then(R=>R.data),d={url:c,author:a.user.name||a.user.username,license:"Free Unsplash license: https://unsplash.com/license"},f=await e.image.create(d);await e.image_content.destroy({where:{id:f.id}});let m=ol.map(R=>({id:f.id,locale:R,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(m),await e.search.update({image_id:f.id},{where:{content_id:r}}),await Oe(e,f.id,p);}let u=await e.search.findOne({where:{content_id:r},include:Te});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.error(r),new Error("Error in save unsplash provider")}}var{locales:al}=j();async function da(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:K(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await nl.readFileSync(n.file.filepath),l={url:o,author:"",license:""},u=await e.image.create(l);await e.image_content.destroy({where:{id:u.id}});let p=al.map(d=>({id:u.id,locale:d,meta:""}));await e.image_content.bulkCreate(p),await e.search.update({image_id:u.id},{where:{content_id:r}}),await Oe(e,u.id,c);}let i=await e.search.findOne({where:{content_id:r},include:Te});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.error(r),new Error("Error in save upload provider")}}var{locales:sl}=j();var ma=async e=>{let t={"x-api-key":process.env.ADOBE_STOCK_API_KEY||"EMPTY_ADOBE_KEY","X-Product":"BespokeApp/0.1"};return e&&(t.Authorization=`Bearer ${e}`),t};var rr;if(process.env.ADOBE_STOCK_API_KEY)try{rr={search:async(e,t)=>await Ur.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await ma(!1),params:{locale:"en_US","search_parameters[limit]":24,"search_parameters[offset]":t*24,"search_parameters[words]":e,"search_parameters[filters][content_type:photo]":"1","search_parameters[filters][content_type:image]":"1","search_parameters[filters][orientation]":"horizontal",result_columns:["id","stock_id","thumbnail_url","is_licensed"]}}).then(r=>r.data.files),get:async e=>await Ur.get("https://stock.adobe.io/Rest/Media/1/Files",{headers:await ma(!1),params:{locale:"en_US",ids:e,result_columns:["id","thumbnail_url","creator_name","title","thumbnail_1000_url","details_url","category"]}}).then(t=>t.data.files[0])};}catch{}async function fa(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!rr)throw new Error("Adobe API Key not configured");let n=(await rr.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:K(r.prompt),page:K(`${r.page}`)},results:n}}catch(r){throw console.error(r),new Error("Error in search Adobe provider")}}async function ga(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:K(`${r}`)||"",id:K(`${o}`)||""};if(!rr)throw console.warn("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await rr.get(o),s;if(a){let i=await e.search.findOne({where:{content_id:r}}),c=a.details_url,l=await e.image.findOne({where:{url:c}});if(i){if(l)await e.search.update({image_id:l.id},{where:{content_id:r}});else {let p=await Ur.get(a.thumbnail_1000_url,{responseType:"arraybuffer"}).then(R=>R.data),d={url:c,author:a.creator_name,license:"ADOBE, TO-DO"},f=await e.image.create(d);await e.image_content.destroy({where:{id:f.id}});let m=sl.map(R=>({id:f.id,locale:R,meta:a.title||a.description}));await e.image_content.bulkCreate(m),await e.search.update({image_id:f.id},{where:{content_id:r}}),await Oe(e,f.id,p);}let u=await e.search.findOne({where:{content_id:r},include:Te});u&&u.image&&(u.image.thumb=!!u.image.thumb);}else throw new Error("Error updating Search")}else throw new Error("Malformed URL");return {meta:{...n},results:s}}catch(r){throw console.error(r),new Error("Error in save adobe provider")}}var il={local:la,flickr:sa,unsplash:pa,upload:da,adobe:ga};function Bt(e,t){let r=il[t];if(!r)throw new E(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return I(o=>r(e,o))}var cl={local:ca,flickr:aa,unsplash:ua,adobe:fa};function or(e,t){let r=cl[t];if(!r)throw new E(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return I(o=>r(e,o))}var gl=e=>(e.dimensions&&e.dimensions.forEach(t=>{t.variants&&t.variants.forEach(r=>{r.members_count&&(r.members_count=parseInt(r.members_count,10));});}),e);function Or(e){let{report:t,search:r}=e;return o;async function o(n){let a=n?.report_id?Number(n.report_id):void 0,s=!(typeof n?.count<"u"&&(n.count==="false"||n.count===!1)),i={attributes:["id","name",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"],[literal("COALESCE(NULLIF(settings ->> 'hide', '')::BOOL, false)"),"hide"]],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!1),literal("NOT (settings::jsonb ? 'hide')")]},order:[["ordering","ASC"]],include:[{attributes:["id","name","ordering"],association:"dimensions",separate:!0,order:[["ordering","ASC"]],include:[{attributes:["id","name","slug",[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],association:"variants",separate:!0,group:["variant.id"],order:[["ordering","ASC"]]}]}]};return a&&(i.where={...i.where,id:a}),s&&i.include&&i.include[0]&&(i.include[0].include[0].attributes.push([fn$1("COUNT",col("members.id")),"members_count"]),i.include[0].include[0].include=[{model:r,attributes:[],as:"members",where:{visible:!0}}]),{data:(await t.findAll(i)).map(l=>({...gl(l.toJSON()),mode:l.dimensions.length===1?Ce.UNILATERAL:Ce.MULTILATERAL}))}}}function ya(e){return async()=>(await ot(e,!0),{error:!1})}var{locales:yl,localeDefault:hl}=j(),Rl=(e,t)=>{if(!e)return [];let r=[];return t.forEach(o=>{let n=e.filter(a=>a.metadata.report.id===o.id);if(n.length>0)if(o.mode===Ce.UNILATERAL){let a=o.dimensions[0];a.variants.forEach(s=>{let i=n.filter(c=>c.metadata.dimension.id===a.id&&c.metadata.variant.id===s.id);i.length>0&&(r=r.concat(i.map(c=>({path:`/${s.slug}/${c.slug}`,name:c.name,confidence:c.confidence,report:{id:o.id,name:o.name,mode:o.mode},members:[c],id:`r-${o.id}-${[c].map(l=>`${l.id}`).join("-")}`}))));});}else o.mode;}),r},bl=(e,t)=>{if(!e)return [];let r,o,n;return e.map(a=>(r={...t.find(s=>s.id===a.report_id)},o={...r.dimensions.find(s=>s.id===a.dimension_id)},n={...o.variants.find(s=>s.id===a.variant_id)},delete r.dimensions,delete o.variants,{name:a.name,confidence:a.zvalue,metadata:{id:a.id,slug:a.slug,report:r,dimension:o,variant:n},id:a.content_id,slug:a.slug}))};function ha(e){let t=It(e),r=Or(e);return o;async function o(n){let a=n.format||"results",s=yl.includes(n.locale)?n.locale:hl,i=n.origin||"flexsearch",c=process.env.REPORTS_EXTERNAL_SEARCH&&i==="typesense",l=await t({...n,format:"plain",locale:K(s),visible:!0});if(c)return l;{let u=l.results?l.results:[],d=(await r()).data,f=bl(u,d);return {meta:{...l.meta,origin:"flexsearch",format:a},results:Rl(f,d)}}}}function Ra(e){return async t=>{try{let{variantPaths:r}=t,o=[];if(r)for(let n=0;n<r.length;n++){let a=r[n];(await e.search.findAll({attributes:["slug"],where:{variant_id:a.variantId}})).forEach(i=>{o.push(`/${a.prefix}/${a.variantSlug}/${i.slug}`);});}return {...t,paths:o,revalidated:0,samples:[]}}catch(r){throw new E(r.response?.status||500,r.message)}}}function ba(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new E(t.response?.status||500,t.message)}}}function be(e,t){let r=[],o=a=>Object.values(t).reduce((i,c)=>("inputs"in c&&c.inputs.includes(a)&&(i.push(c.id),i=i.concat(o(c.id))),i),[]);e.forEach(a=>{r=r.concat(o(a));});let n=[];return r.forEach(a=>{n.includes(a)||n.push(a);}),n}function El(e,t){return e.some(r=>t.includes(`role.${r}`))}function Sa(e){let{report:t}=e;return r;async function r(o){let n=await t.findByPk(o.report_id,{include:{association:"sections",separate:!0,where:{id:o.section_id},include:[{association:"blocks",separate:!0,include:[{association:"contentByLocale",separate:!0,where:{locale:{[Op.or]:[o.locale,"logic"]}}},{association:"inputs"},{association:"consumers"}]}]}}).then(s=>s&&s.sections&&Array.isArray(s.sections)?s.sections.reduce((i,c)=>{let l=c.blocks.map(u=>{let p=u.toJSON();return p.inputs=p.inputs.map(d=>d.id),p.consumers=p.consumers.map(d=>d.id),p});return i.concat(l)},[]):[]),a=n.filter(s=>s.settings&&s.settings.access&&Array.isArray(s.settings.access)&&Array.isArray(o.roles)&&(s.settings.access.includes("private")||El(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(be(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var vl=Object.keys(Ao).filter(e=>e.indexOf("Icon")===0);async function Ea(){return {meta:{provider:"tabler"},results:vl}}async function Aa(e){let t=Ao[e.name]?Ao[e.name]:()=>"";return renderToString(createElement(t))}var _l={tabler:Ea};function Ta(e){let t=_l[e];if(!t)throw new E(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return I(()=>t())}var wl={tabler:Aa};function va(e){return I(t=>{let r=wl[e];if(!r)throw new E(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function _a(){return e;async function e(){return {secrets:kt()}}}function at(e,t,r){return tt().then(o=>{Object.assign(r,Lt(o));})}function Lt(e,t){let r={},o=Ge(t||{providers:[]});return t&&o.actions&&o.source==="custom"?(r.searchRole=I(o.actions.searchRole()),r.searchUser=I(o.actions.searchUser()),r.readUser=I(o.actions.readUser()),r.updateUser=I(o.actions.updateUser())):o.source==="auth0"&&(r.searchRole=I(an()),r.searchUser=I(sn()),r.readUser=I(cn()),r.updateUser=I(ln())),{...ea(e),searchReport:I(ha(e)),readMetadata:I(Or(e)),regenerateSearch:I(ya(e)),imageFlickrSearch:or(e,"flickr"),imageLocalSearch:or(e,"local"),imageUnsplashSearch:or(e,"unsplash"),imageAdobeSearch:or(e,"adobe"),imageFlickrSave:Bt(e,"flickr"),imageLocalSave:Bt(e,"local"),imageUnsplashSave:Bt(e,"unsplash"),imageUploadSave:Bt(e,"upload"),imageAdobeSave:Bt(e,"adobe"),urlProxy:xr(e),searchRole:r.searchRole,searchUser:r.searchUser,readUser:r.readUser,updateUser:r.updateUser,updateMyData:I(un()),revalidateReport:I(Ra(e)),revalidateUrl:I(ba()),readPrivateBlocks:I(Sa(e)),listTablerIcons:Ta("tabler"),readTablerIcon:va("tabler"),readEnvSecrets:I(_a())}}async function To(e){try{let t=new kl.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.error("Error in formidable parse function inside internal parseBody.ts",a),n(a);return}o({fields:s,files:i});});});return {...r.fields,files:r.files}}catch(t){return {error:t}}}function De(e,t){let r=pe(e,"create",t),o=pe(e,"read",t),n=pe(e,"update",t),a=pe(e,"delete",t),s=pe(e,"updateBulk",t),i=pe(e,"createBulk",t);return [D("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(f=>p[f]);return i(d)},[z.EDITOR]),D("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[z.EDITOR]),D("GET",`read/${t}`,c=>{let l=c.query,u=G(l.id).map(ee);return o({id:u,include:Xt(l.include)})}),D("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[z.EDITOR]),D("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(f=>p[f]);return s(d)},[z.EDITOR]),D("DELETE",`delete/${t}`,c=>{let l=ee(c.query.id);return a(l)},[z.EDITOR])]}function wa(e){let{validateVariantSlug:t}=e;return [...De(e,"variant"),D("GET","validate/variant",r=>{let o=r.query,n=ee(o.dimension);return t({dimension:n,slug:wr(o.slug)})},[z.EDITOR])]}function ka(e){return De(e,"datasource").map(r=>({...r,roleRequired:[z.EDITOR]}))}function Ot(e,t){let r=`image${Ae(t)}Save`,o=e[r];return D("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new E(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new E(400,"Missing 'image_id' parameter.");return o(a)},[z.EDITOR])}function nr(e,t){let r=`image${Ae(t)}Search`,o=e[r];return D("GET",`images/search/${t}`,async n=>{let a=G(n.query.prompt)[0];if(!a)throw new E(400,"Empty 'prompt' param.");return o({prompt:a,page:ee(n.query.page)})},[z.EDITOR])}function Pa(e){let{readMetadata:t}=e;return D("GET","read/metadata",r=>t(r.query))}function xa(e){let{regenerateSearch:t}=e;return D("POST","search/regenerate",()=>t(void 0),[z.EDITOR])}function Ia(e){let{searchReport:t}=e;return D("GET","search/reports",r=>{let o=xl(r.query);return t(o)})}function xl(e){return {...er(e),format:G(e.format)[0]}}function Ca(e){let{urlProxy:t}=e;return D("GET","url/proxy",(r,o,n)=>{let{url:a,method:s="GET",wrapper:i="true"}=r.query;if(!a)throw new E(400,"Missing URL parameter");let c=[];return n&&n.user&&n.user.bespoke_roles&&(c=n.user.bespoke_roles),t({url:Array.isArray(a)?a.join(","):a,method:G(s)[0]==="POST"?"POST":"GET",user_roles:c,wrapper:i!=="false",session:n})})}function Ba(e){let{readMetadata:t,revalidateReport:r}=e;return D("GET","revalidate/report",async(o,n)=>{let{reportId:a,profilePrefix:s}=o.query;if(!a||!s)throw new E(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(m=>m!=="").join("/"),l=[],u=await t({}).then(m=>m.ok?m.data.data.find(R=>R.id===i):[]);u&&u.mode===Ce.UNILATERAL&&u.dimensions.forEach(m=>{m.variants.forEach(R=>{l.push({prefix:c,variantId:R.id,variantSlug:R.slug});});});let p=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],f=0;return p.ok&&(f=p.data.paths.length,d=p.data.paths.slice(0,5),Promise.all(p.data.paths.map(m=>{let R;try{R=n.revalidate(m,{unstable_onlyGenerated:!0});}catch(g){console.error("error",m,g);}return R}))),{ok:!0,status:200,data:{reportId:a,revalidated:f,samples:d}}}catch(i){throw console.error(i),new E(500,"Error revalidating")}},[z.EDITOR])}function La(){return D("GET","revalidate/url",async(e,t)=>{let{target:r}=e.query;if(r)try{return t.revalidate(r,{unstable_onlyGenerated:!0}),{ok:!0,status:200,data:{target:r}}}catch(o){throw console.error(o),new E(500,"Error revalidating")}else throw new E(400,"Missing target parameter in revalidate factory")},[z.ADMIN,z.EDITOR,z.WRITER])}function st(e=process.env){let t=e.BESPOKE_JWT_SECRET;return t||(console.warn("WARNING: Using default BESPOKE_JWT_SECRET. This is insecure and not recommended for production environments."),"BESPOKE_JWT_SECRET")}var{localeDefault:Cl}=j(),Oa=st();function Ma(e){let{readPrivateBlocks:t}=e;return D("POST","read/blocks/private",(r,o,n)=>{let{userToken:a}=r.body,s=null;if(a&&Oa)try{let l=cc.verify(a,Oa);s=typeof l=="object"&&l!==null&&"roles"in l?l.roles:[];}catch(l){console.error("Failed to verify user token:",l);}if(!s&&(!n||!n.user))throw new E(401,"Unauthorized. Must be logged in or provide a valid token.");let i=a&&s?s:n&&n.user?n.user.bespoke_roles:[],c={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||Cl,roles:i,section_id:r.body.section_id||[]};return t(c)})}function Na(e){let{readEnvSecrets:t}=e;return D("GET","read/secrets",()=>t({}),[z.EDITOR])}function Da(e){let{searchRole:t}=e;return D("GET","auth/search/roles",(r,o)=>t(""),[z.EDITOR,z.ADMIN])}function Ua(e){let{searchUser:t}=e;return D("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[z.ADMIN])}function Fa(e){let{readUser:t}=e;return D("GET","auth/read/user",r=>t(r.query.user_id),[z.ADMIN])}function Va(e){let{updateUser:t}=e;return D("POST","auth/update/user",async r=>{let o=r.body;return await t(o)},[z.ADMIN])}function $a(e){let{updateUser:t,readUser:r}=e;return D("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body,c={user_id:a.user.id,user_metadata:{}};try{let{user:l}=a;return a&&l&&s&&(l.bespoke_app_metadata&&l.bespoke_app_metadata.reports&&Array.isArray(l.bespoke_app_metadata.reports)?c.app_metadata={...l.bespoke_app_metadata}:c.app_metadata={reports:[]},c.app_metadata.reports.push({reportId:s})),i&&(c.user_metadata={...l.bespoke_app_metadata,...i}),await t(c),{ok:!0,status:200,wrapper:!0,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:!1,status:500,error:l.message}}},[])}async function Bl(e){try{return "JVBERi0xLjcKJYGBgYEKCjYgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMTYKPj4Kc3RyZWFtCnicHYqxCsJAEAX79xVbC+Lmbm/3DoKFeEcKG2F/QCSKYgol+P0mMkwxMG8cHEwrnzt2w/j6jvPjetkalyyZLReKTH5DEPITuv/aUWKKiz6hTywiGliTZWNtFkyWitr0qEWrWmBbq2ndkz/hG1THGT/eextGCmVuZHN0cmVhbQplbmRvYmoKCjcgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA1Ci9GaXJzdCAyNgovTGVuZ3RoIDM2Mgo+PgpzdHJlYW0KeJzVUt9LwzAQfs9fcY/6IEnTH2llDLa1VZChbIKi+JC1YVRGIm0m87/3ru0cexCfpXwkd/cl+a73BSBAQhRBCCqFCOJQQgwqCGAyYfzx68MAf9Bb0zF+19QdvCJHwAreGF+4vfUQsOmUnbgL7fXObdlwCAIiHxkPrav3lWlhUhZlKYQSQiQRIhFC5rguEBlCYow1meIeoaIRmFOhEOEMa+WARA1nqN5z4/F8gStyE+LkAzdKh/jnXXqrGO6Qf+nJpowvXZ1rb+Aiv5ZCRiKTsQyjTKYvl/g7WqO9+7/N9fobZ3/t8GzONF4acmvIA/2U+cp0bt9WOHbilQ4rtLk1u0/jm0pfKZGlqFOlGXpsNAZ/vt+8m6qnUlgc/M3ak4YhQbmlqRs9dwd0n8APOwDshDw4s9Z5cmXvR+tRDUXJ6NEzySSI8fV+4/uQkgHjc92ZXupJJ4qwlasbuwX+1NiZ7Zpjgm78BkHDxfcKZW5kc3RyZWFtCmVuZG9iagoKOCAwIG9iago8PAovU2l6ZSA5Ci9Sb290IDIgMCBSCi9JbmZvIDMgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW5ndGggNDEKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOSBdCj4+CnN0cmVhbQp4nBXEwQ0AIAwDsUuKxJf9JUZippb4YaDbbEhKTpWWOCDezxcGYeEDtQplbmRzdHJlYW0KZW5kb2JqCgpzdGFydHhyZWYKNjY5CiUlRU9G"}catch(t){throw console.error("Error generating PDF:",t),t}}function qa(){return D("POST","pdf",async(e,t)=>{let{slugs:r,path:o}=e.body;if(!r||!o)throw new E(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:!0,status:200,data:await Bl()}}})}function za(e,t){let r=`list${Ae(t)}Icons`,o=e[r];return D("GET",`list/icons/${t}`,async()=>o({}),[z.EDITOR])}function Ga(e,t){let r=`read${Ae(t)}Icon`,o=e[r];return D("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function ja(){return D("GET","report",async(e,t)=>{let{report:r,prefix:o,locale:n}=e.query;if(!r)throw new E(400,"Missing report parameter.");if(!o)throw new E(400,"Missing report parameter.");if(!n)throw new E(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new Ll().parseFromString(s,"text/html").getElementById("__NEXT_DATA__")?.textContent,u=JSON.parse(l).props;return {ok:!0,status:200,data:{variables:u.pageProps.initialState.variables,status:u.pageProps.initialState.status}}}catch(a){throw console.error(a),new E(500,"Couldn't find page cache")}})}var Ml=st();function Nl(e){let t={email:e.user.email,name:e.user.name,roles:e.user.bespoke_roles||[]};return cc.sign(t,Ml,{expiresIn:"1min"})}function Ka(){return D("POST","users/generate-token",async(e,t,r)=>{if(!r||!r.user)throw new E(401,"Unauthorized. Must be logged in to generate a token.");try{return {ok:!0,status:200,wrapper:!1,data:{token:Nl(r)}}}catch(o){throw console.error("Error generating token:",o),new E(500,"Internal Server Error")}})}var Ul=st(),Fl=e=>!!cc.verify(e,Ul);function Ha(){return D("POST","users/validate-token",async(e,t)=>{let{token:r}=e.body;try{return Fl(r)?{ok:!0,status:200,wrapper:!1,data:{success:!0}}:{ok:!1,status:401,error:"Invalid token"}}catch{return {ok:!1,status:401,error:"Invalid token"}}})}var ql=Ie();function vo(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function zl(e,t){let r=Lt(e,t);return Object.fromEntries([...De(r,"block"),...De(r,"dimension"),...De(r,"formatter"),...De(r,"report"),...De(r,"section"),...ka(r),...wa(r),...ia(r),Ia(r),Pa(r),xa(r),Ot(r,"flickr"),Ot(r,"local"),Ot(r,"unsplash"),Ot(r,"upload"),Ot(r,"adobe"),nr(r,"flickr"),nr(r,"local"),nr(r,"unsplash"),nr(r,"adobe"),Ca(r),Da(r),Ua(r),Fa(r),Va(r),$a(r),Ba(r),La(),Ma(r),qa(),za(r,"tabler"),Ga(r,"tabler"),ja(),Na(r),Ka(),Ha()].map(({handler:o,method:n,path:a,roleRequired:s})=>[vo(n,a),{handler:o,roleRequired:s}]))}function Gl(e){let t=tt().then(r=>zl(r,e));return async function(o,n){await Vl(o,n,{methods:["GET","HEAD","PUT","PATCH","POST","DELETE"],origin:"*"});let{query:a,method:s}=o,{path:i,...c}=a;if(i&&s){let l=await t.then(u=>{let p=[].concat(i).join("/"),d=vo(s,p);return u[d]});if(l){let u=await ye(o,n,e);if(l.roleRequired){if(!u)return n.status(401).json({error:"Unauthorized. Must be logged in."});let p=u&&u.user&&u.user.bespoke_roles&&Array.isArray(u.user.bespoke_roles)?u.user.bespoke_roles:[];if(Array.isArray(l.roleRequired)&&l.roleRequired.length>0&&!yr(p,l.roleRequired))return n.status(402).json({error:"Forbidden. Not enough roles."})}if(l.handler)return ["POST","DELETE"].includes(s)&&(o.body=await To(o)),Promise.resolve(o).then(p=>l.handler(p,n,u||void 0)).then(async p=>{if(p&&"error"in p)throw new E(p.status,p.error);if(p.ok)if(p.data instanceof Buffer){let d=await $l(p.data),f=Buffer.byteLength(p.data);n.writeHead(p.status,{"Content-Type":d?d.mime:"image/jpeg","Content-Length":f.toString()}).send(p.data);}else o.url&&o.url.indexOf("/icon.svg?name=")>0?(n.setHeader("Content-Type","image/svg+xml"),n.status(p.status).send(p.data)):n.status(p.status).json(p.wrapper?{data:p.data}:p.data);}).catch(p=>{ql&&console.error("Backend Error",p),n.status(p.code).json({error:p.message});})}}else i||await t.then(console.info);return n.status(404).json({error:"No matching route",path:i,query:c})}}var jl=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Kl=jl;var yt={};Ks(yt,{addBlockToState:()=>fr,addRunConsumersRunning:()=>Ls,cloneEntity:()=>ws,createEntity:()=>Ts,deleteEntity:()=>_s,deleteQueryParam:()=>cp,readEntity:()=>oe,readEnvSecrets:()=>bp,readMember:()=>qe,readMetadata:()=>mr,readPrivateBlocks:()=>yp,readUser:()=>mp,recalculateVariables:()=>Ns,removeBlocksFromState:()=>ze,removeDataSourceLogic:()=>gr,removeRunConsumersRunning:()=>Os,reportSearch:()=>ap,resetSectionState:()=>Bs,revalidateReport:()=>Rp,revalidateUrl:()=>hp,searchMember:()=>ip,searchRegenerate:()=>sp,searchRole:()=>pp,searchUser:()=>dp,setCurrentLocale:()=>rp,setPreferredLocale:()=>op,setPreviews:()=>tp,setQueryParam:()=>lp,setSectionState:()=>Cs,setStatus:()=>Is,updateEntity:()=>vs,updateMyData:()=>gp,updateUser:()=>fp,urlProxy:()=>up,variantValidateSlug:()=>np});function Se(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:!1,status:o,error:n.error}:{ok:!0,status:o,wrapper:n.wrapper,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:!1,status:o,error:n?.error??r.message}}return {ok:!1,status:500,error:r.message}})}function te(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Se(e,{...o,method:"GET",params:r?r(n):n})}function re(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Se(e,{...o,method:"POST",data:r?r(n):n})}function Ue(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>Se(e,{...o,method:"DELETE",params:r?r(n):n})}function Mt(e,t){return r=>Se(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function ar(e,t){return r=>Se(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function Wa(e,t){return ()=>Se(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function Ja(e,t){return r=>Se(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var it=e=>({id:e}),Wl=e=>{if(e.mode==="slugs"){let t=e.slugs.map(r=>[r.variantSlug,r.memberSlug].join("/")).join(",");return {...e,slugs:t}}return ["related","whole"].includes(e.mode)?{...e}:{...e,[e.mode]:e[e.mode].join(",")}};function sr(e){let t=Ur.create({baseURL:e});return {createBulkBlock:re(t,"create/bulk/block"),createBlock:re(t,"create/block"),createDimension:re(t,"create/dimension"),createFormatter:re(t,"create/formatter"),createReport:re(t,"create/report"),createSection:re(t,"create/section"),createVariant:re(t,"create/variant"),createDatasource:re(t,"create/datasource"),deleteBlock:Ue(t,"delete/block",it),deleteDimension:Ue(t,"delete/dimension",it),deleteFormatter:Ue(t,"delete/formatter",it),deleteReport:Ue(t,"delete/report",it),deleteSection:Ue(t,"delete/section",it),deleteVariant:Ue(t,"delete/variant",it),deleteDatasource:Ue(t,"delete/datasource",it),readBlock:te(t,"read/block"),readDimension:te(t,"read/dimension"),readFormatter:te(t,"read/formatter"),readReport:te(t,"read/report"),readSection:te(t,"read/section"),readVariant:te(t,"read/variant"),readDatasource:te(t,"read/datasource"),updateBulkBlock:re(t,"update/bulk/block"),updateBlock:re(t,"update/block"),updateDimension:re(t,"update/dimension"),updateFormatter:re(t,"update/formatter"),updateReport:re(t,"update/report"),updateSection:re(t,"update/section"),updateVariant:re(t,"update/variant"),updateDatasource:re(t,"update/datasource"),searchReport:te(t,"search/reports"),validateVariantSlug:te(t,"validate/variant"),readMember:te(t,"read/members",Wl),readMemberImage:te(t,{url:"member/image",responseType:"blob"}),searchMember:te(t,"search/members"),updateMember:te(t,"update/members"),imageLocalSearch:ar(t,"local"),imageLocalSave:Mt(t,"local"),imageFlickrSearch:ar(t,"flickr"),imageFlickrSave:Mt(t,"flickr"),imageUnsplashSearch:ar(t,"unsplash"),imageUnsplashSave:Mt(t,"unsplash"),imageUploadSave:Mt(t,"upload"),imageAdobeSearch:ar(t,"adobe"),imageAdobeSave:Mt(t,"adobe"),readMetadata:te(t,"read/metadata"),regenerateSearch:re(t,"search/regenerate"),urlProxy:te(t,"url/proxy"),searchRole:te(t,"auth/search/roles"),searchUser:te(t,"auth/search/users"),readUser:te(t,"auth/read/user"),updateUser:re(t,"auth/update/user"),updateMyData:re(t,"auth/update/me"),revalidateReport:te(t,"revalidate/report"),revalidateUrl:te(t,"revalidate/url"),readPrivateBlocks:re(t,"read/blocks/private"),listTablerIcons:Wa(t,"tabler"),readTablerIcon:Ja(t,"tabler"),readEnvSecrets:te(t,"read/secrets")}}var Ql=Xt(process.env.REPORTS_LOGGING),ct=Zl;function Zl(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=he(a);try{if(t){let l=new Proxy(console,{get(p,d){return Xl(d,"log","debug","info","warn","error")?(...f)=>{i.push(`${d} ${Date.now()} - ${f.map(m=>format(m)).join(" ")}`),Ql&&p[d](...f);}:p[d]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Je,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,Je,o,c),typeof u=="object"&&Object.keys(u).length>0&&Object.assign(s,u),{vars:s,error:null,log:i,output:u}}return {vars:s,error:"Invalid API Link",log:i}}catch(l){return {vars:s,error:l.message,log:i}}}function Xl(e,...t){return t.includes(e)}var _o=(e,t,r)=>{let{variables:o}=r,n=s=>s.allowed==="never"?!1:!s.allowed||s.allowed==="always"||o[s.allowed],a={...e};return Object.keys(a).forEach(s=>{typeof a[s]=="string"?a[s]=Re(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?_o(i,t,r):typeof i=="string"?Re(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=_o(a[s],t,r));}),a},Mr=_o;var Ya=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var eu=(e,t,r)=>{if(!r)return !1;if(e===Qe.SINGLE)return r.find(n=>n.id===t);let o=Array.isArray(t)?t:t.split(",");return Array.isArray(o)&&o.every(n=>r.map(a=>a.id).includes(n))},wo=eu;function ko(e,t,r,o,n=!1){let{variables:a}=he(o),s=Mr({logic:t},r,o).logic,i=ct("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||Qe.SINGLE,d=c.component||"Selector",f=c.hideLabel||"false",m=c.resetSectionVars||"false",R=c.name||"Unlabeled Selector",g=Ya(c.options||[]),S=x=>p===Qe.MULTI&&!Array.isArray(x)?[x]:x,w=c.defaultValue,_;if(w&&(w=S(w),wo(p,w,g)&&(_=w)),!_){let x=g&&g[0]&&g[0].id||g[0]||"";_=S(x);}if(n&&typeof window<"u"){let x=`selector${e}id`,$=new URLSearchParams(window.location.search),U=Object.fromEntries($)[x];U&&!wo(p,U,g)&&U!==void 0&&($.delete(x),window.history.replaceState(null,null,`?${$.toString()}`));}return {config:{name:R,type:p,options:g,defaultValue:_,component:d,hideLabel:f,resetSectionVars:m},log:l,error:u}}function Po(e,t,r){if(!e)return !1;let o=Array.isArray(r)?r:r.split(",");return Array.isArray(o)&&o.every(n=>e.map(a=>`${a[`${t} ID`]}`).includes(n))}function xo(e,t,r,o,n=!1){let{variables:a}=he(o),s=Mr({logic:t},r,o).logic,i=ct("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,f=`multihierarchySelector${e}-type`,m=new URLSearchParams(window.location.search),R=Object.fromEntries(m),g=R[d],S=R[f];g&&g!==void 0&&S&&S!==void 0&&!Po(c.data,S,g)&&(m.delete(d),m.delete(f),window.history.replaceState(null,null,`?${m.toString()}`));}return {config:c,log:l,error:u}}var tu=(e,t,r)=>{let o=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),a=new URLSearchParams(t).get(o),s=n||a;if(r.type===Qe.MULTI){let l=s?s.split(","):r.defaultValue,u=r.options.filter(p=>l.includes(p.id));return {[`selector${e}id`]:l,[`selector${e}label`]:(u||[]).map(p=>p.label)}}let i=s&&r.options.find(l=>l.id===s)?s:r.defaultValue,c=r.options.find(l=>l.id===i);return {[`selector${e}id`]:i,[`selector${e}label`]:c&&c.label||void 0}},Qa=tu;var ru=(e,t,r)=>{let o=`multihierarchySelector${e}-value`,n=`multihierarchySelector${e}-type`,a=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),s=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(n),i=new URLSearchParams(t).get(o),c=new URLSearchParams(t).get(n),l=a||i,u=s||c,p=l?l.split(","):r.defaultValue||[],d=u||r.defaultValueType||"",f=r.data?.filter(m=>p.includes(`${m[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((f||[]).map(m=>m[d]))],[`multihierarchySelector${e}type`]:d}},Za=ru;var{localeDefault:Xa,locales:ou}=j(),nu=Object.values(co),au=(e,t=Xa)=>e&&nu.includes(e.type)?{locale:lo,locales:[lo]}:{locale:t,locales:ou},es=(e,t=Xa)=>{if(!e)return {};let{locale:r}=au(e,t);return e.contentByLocale?.[r]?.content};function su(e,t){let r=Object.values(t),o=r.filter(n=>n.shared&&n.section_id!==e).map(n=>n.id);return Object.fromEntries(r.filter(n=>n.section_id===e&&(n.inputs.length===0||n.inputs.some(a=>o.includes(a)))).map(n=>[n.id,n]))}var ts=su;function Io(e){return e.type===N.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var Fe=Xt(process.env.NEXT_PUBLIC_REPORTS_DEBUG),pu=process.env.REPORTS_ORIGIN||"",du=process.env.NEXT_PUBLIC_REPORTS_AXIOS_RETRIES,as=5;try{as=parseInt(`${du||5}`,10);}catch(e){console.error("Error setting axios retries NEXT_PUBLIC_REPORTS_AXIOS_RETRIES defaults to 5",e);}rs(Ur,{retries:as,retryDelay:rs.exponentialDelay,onRetry:(e,t,r)=>{console.error("Generator request failed. Retrying... Count: ",e),console.error("URL: ",r.url),console.error(t.message);}});Ur.interceptors.request.use(e=>({...e,requestStart:Date.now()}));Ur.interceptors.response.use(e=>({...e,requestDuration:new Date().getTime()-e.config.requestStart}),e=>Promise.reject(e));var mu=(e,t,r)=>{let o=Re(e,t,r);return o.startsWith("http")||(o=`${pu}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:fu}=sr("/api/cms");function Dr(e){return e.ok!==void 0}function Nr(e){this.message=e,this.name="ApiFetchException";}var os=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function gu(e,t,r="en",o,n){let a=Date.now(),s=e,i,c=de(),l=kt(),u={envs:{...c,...l}},p=new URL(e),d=new URLSearchParams(p.searchParams.toString());d.has("bespoke_slugs")&&(p.searchParams.delete("bespoke_slugs"),s=p.toString());let f={datasource:void 0};o.find(w=>{if(!w.content?.pattern)return !1;try{let _=new RegExp(w.content.pattern,"gm");return _.test(s)?(f.datasource=w,!0):_.test(s)}catch{return !1}});let m=n?n.settings:{},R=!!(m&&m.useProxy&&m.useProxy==="true"),g=f.datasource&&typeof f.datasource.content.useProxy=="boolean"?f.datasource.content.useProxy:!1,S=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(s)}`;if(typeof window=="object"&&(R||g)){let w=await fu({url:s,timeout:os});if(w.ok===!0)i=w.data;else throw new Nr(w?.error)}else try{let _={url:s,timeout:os};if(f.datasource){let x=u;if(typeof window<"u")try{let U=await getSession();if(U){let v={user:U.user,status:"authenticated",isLoading:!1,update:async()=>U};x={...u,session:v};}}catch(U){console.warn("Could not retrieve user session:",U);}let L=await Pr({vars:["url","libs","session"],logic:f.datasource.content.logic},x)(s);if(L.axiosConfig)_=L.axiosConfig;else throw new Nr(`AxiosConfig is missing in Data Source ${f.datasource.name} (ID: ${f.datasource.id}).`)}let C=await Ur(_);if(C.status===200)C.headers["content-type"]==="text/csv"?i=csvParse(C.data):i=C.data;else throw new Nr("No response for: "+s)}catch(w){throw new Nr(w.message)}if(d.has("bespoke_slugs")){let w=d.get("bespoke_slugs");if(w){let _=w.split(",");if(_.length===3){let[C,x,$]=_,L=zt(i,$);if(L&&Array.isArray(L)){let U=Array.from(new Set(L.map(v=>`${v[x]}`).filter(v=>!["","undefined"].includes(v))));if(U.length>0){let v=U.join("").length>2e3,O=await t({mode:v?"whole":"ids",ids:v?void 0:U,all:!1,locale:r,variant:[parseInt(C,10)],output:"lite",limit:U.length+1,allowNulls:!0}).then(F=>{let B=[];return Dr(F)?F.ok&&(B=F.data.results):B=F.results,B&&Array.isArray(B)?B:[]}).catch(F=>(console.error(`Error hydrating slugs for Variant: ${C}, Key: ${x}, Accessor: ${$}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(F),[]));if(O){let F=Object.fromEntries(O.map(B=>[B.id,`/${B.variant_slug}/${B.slug}`]));L.map(B=>(B.bespoke_slug=F[B[x]]?F[B[x]]:null,B));}}}}}}return {data:i,requestDuration:Date.now()-a,finalUrl:g||R?S:s,apiDataSource:f.datasource?f.datasource:!1}}function yu(e){this.name="BlockException",this.message=e;}async function ns(e,t,r,o,n){let{locale:a,variables:s,query:i}=he(r),c=Ru(e,r,s,t),l=null,u=e.contentByLocale?.logic?.content?.api,p=null,d=null,f=null,m,R;if(!c)return {outputVariables:{},renderVariables:{},status:{allowed:!1,hiddenByCascade:e.id}};if(e.type===N.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(u){f=mu(u,t,r);let L=f.split(ra).filter(O=>O!==""),U=[];for(let O=0;O<L.length;O++){let F=L[O];new RegExp("^(?:[a-z+]+:)?//","i").test(f)||(F=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${F}`.replace(/([^:]\/)\/+/g,"$1")),U.push(gu(F,o,a,n,e).catch(q=>{throw new yu(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${s.report_name} (${s.report_id}) failed.
71
+ Error fetching ${F}.
72
72
  Message: ${q.message}.
73
- `)}));}let v=await Promise.all(D).catch(O=>O.message);if(typeof v=="string"&&v)return {outputVariables:{},renderVariables:{},status:{error:v}};l=v.length===1?v[0].data:v.map(O=>O.data),d=v.reduce((O,U)=>O+JSON.stringify(U.data).length/1024,0),p=Math.max(...v.map(O=>O.requestDuration)),m=v.map(O=>O.apiDataSource?`${O.apiDataSource.name} (${O.apiDataSource.id})`:null),R=v.map(O=>O.finalUrl);}if(e.type===N.SELECTOR){let{config:L,log:D,error:v}=_o(e.id,e.contentByLocale[a].content.logic,t,r,!0);return {outputVariables:ja(e.id,i,L),renderVariables:L,status:{log:D,error:v,allowed:c}}}if(e.type===N.MULTIHIERARCHY_SELECTOR){let{config:L,log:D,error:v}=Po(e.id,e.contentByLocale[a].content.logic,t,r,!0);return {outputVariables:Ha(e.id,i,L),renderVariables:L,status:{log:D,error:v,allowed:c}}}if(e.type===N.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:c}};if(e.type===N.RELATED){let L=e.contentByLocale?.logic?.content?.simple?.compare||"variant",D=e.contentByLocale?.logic?.content?.simple?.limit||4,v=Object.keys(s).filter(b=>b.startsWith("report_id")).map(b=>s[b]),O=Object.keys(s).filter(b=>b.startsWith("dimension_id")).map(b=>s[b]),U=Object.keys(s).filter(b=>b.startsWith("variant_id")).map(b=>s[b]),B=Object.keys(s).filter(b=>b.startsWith("id")).map(b=>s[b]);if(!B.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let q=await Promise.all(B.map((b,A)=>o({mode:"ids",locale:a,ids:[b],output:"lite",variant:[U[A]]}))).then(b=>b.flatMap(A=>{let k=[];return Nr(A)?A.ok&&(k=A.data.results):k=A.results,k&&Array.isArray(k)?k:[]})).catch(b=>(console.error("Error getting related members",b),[]));if(O.length>1){let b=Object.keys(s).filter(V=>V.startsWith("variant_slug")).map(V=>s[V]),A=q.map((V,Q)=>{let H={mode:"related",locale:a,related:D??4,current_ids:[V.content_id],output:"full",variant_ids:[V.variant_id]};return Q===0&&(H.include_ids=[V.content_id]),H}),k=await Promise.all(A.map(V=>o(V))).then(V=>V.flatMap(Q=>{let H=[];return Nr(Q)?Q.ok&&(H=Q.data.results):H=Q.results,H&&Array.isArray(H)?H:[]})).catch(V=>(console.error("Error getting related members",V),[])),ne=k.reduce((V,Q)=>{let H=Q.variant_slug;return V[H]||(V[H]=[]),V[H].push(Q),V},{}),ae=[],Z=Object.keys(ne),W=[{combination:[],index:0}];for(;W.length>0;){let V=W.pop();if(!V)continue;let{combination:Q,index:H}=V;if(H===Z.length){ae.push(Q);continue}let ue=Z[H],se=ne[ue];for(let le of se)W.push({combination:[...Q,le],index:H+1});}return {outputVariables:{related_reports:ae.map(V=>{let Q=V.sort((H,ue)=>b.indexOf(H.variant_slug)-b.indexOf(ue.variant_slug));return {entities:Q,link:"/"+Q.map(H=>`${H.variant_slug}/${H.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:k.length>0}}}let M=q.map(b=>b.content_id),w={mode:"related",locale:a,related:D??4,current_ids:M,output:"full"};L&&(L==="report"?w.report_ids=v:L==="dimension"?w.dimension_ids=O:w.variant_ids=U);let J=await o(w).then(b=>{let A=[];return Nr(b)?b.ok&&(A=b.data.results):A=b.results,A&&Array.isArray(A)?A:[]}).catch(b=>(console.error("Error getting related members",b),[]));return {outputVariables:{related_reports:J.map(b=>({entities:[b],link:`/${b.variant_slug}/${b.slug}`}))},renderVariables:{},status:{log:[],allowed:J.length>0}}}let{logic:y}=Ja(e,a),S=Re(y,t,r),_=it("resp",l||{},S,t,s,r),{vars:P,error:C,log:x}=_;if(typeof P!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:x,duration:p,responseSize:d,resp:l,api:f,allowed:c,apiFinalUrls:R,apiDataSources:m}};let $=Object.keys(P).reduce((L,D)=>({...L,[`${e.type}${e.id}${D}`]:P[D]}),{});return {renderVariables:P,outputVariables:[N.GENERATOR,N.SECTION_FLAG].includes(e.type)?P:$,status:{log:x,error:C,duration:p,responseSize:d,resp:l,api:f,allowed:c,apiFinalUrls:R,apiDataSources:m}}}function su(e,t,r,o,n,a,s){return e.consumers.forEach(i=>{if(t[i]){let c=`${r}-${i}`;!o.includes(c)&&(t[i].section_id===t[r].section_id||!n)&&o.push(c),e.consumers.filter(l=>t[l]&&t[l].section_id===t[r].section_id||!n).forEach(l=>xo(l,t,o,!1,a,n,s));}})}var xo=(e,t,r=[],o=!0,n=!0,a=!0,s=[])=>{if(s.includes(e))return [];s.push(e);let i=t[e];return i&&i.inputs.length&&o&&i.inputs.forEach(c=>{let l=`${c}-${e}`;r.includes(l)||r.push(l),i.inputs.forEach(u=>xo(u,t,r,o,!1,a,s));}),i&&i.consumers.length&&n&&su(i,t,e,r,a,n,s),r},iu=(e,t,r,o)=>{let n=!0;if(e&&"allowed"in e.settings&&e.settings.allowed!=="always")if(e.settings.allowed==="never")n=!1;else {let a=he(t),{error:s,output:i}=it("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},Mt=async(e,t,r,o,n,a={},s,i="section",c)=>{let l=i==="section",u=he(n),p=u.variables,d={...a.variables??{}},f={...a.status??{}},m=new Set,R=[],y={};r?y={...y,[r]:e[r]}:t?y=(t??[]).reduce((M,{id:w})=>({...M,...Ya(w,e)}),{}):y=Object.values(e).filter(M=>ko(M)).reduce((M,w)=>({...M,[w.id]:w}),{});let S=Object.values(y).filter(M=>ko(M));if(S.length>0){Fe&&console.info("%crunConsumers: calculating section flags","color:purple",S.map(E=>E.id).join(", "));let M=Object.fromEntries(await Promise.all(S.map(async E=>[E.id,await Xa(E,o,{...u,variables:p,locale:p.locale},s,c).then(b=>{let{outputVariables:A,status:k}=b;if(k.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${E.id}, Section ${E.section_id}) failed with message: ${k.error}. `);f[E.id]={allowed:!1,error:k.error},d[E.id]={};}return (E.consumers.length>0||[N.GENERATOR,N.SECTION_FLAG,N.RELATED].includes(E.type))&&k.allowed&&Object.keys(A).length>0?d[E.id]=A:d[E.id]={},i==="report"?(f[E.id]={allowed:k.allowed},[N.GENERATOR,N.SECTION_FLAG].includes(E.type)&&k.api&&(f[E.id].api=k.api)):f[E.id]=k,b})]))),J=Object.entries(M).filter(([,E])=>!E.outputVariables[ta]).map(([E])=>Number(E));m=new Set(J.map(E=>e[E].section_id)),Object.values(y).filter(E=>m.has(E.section_id)).forEach(E=>{R.push(E.id),delete y[E.id];}),Fe&&console.info("%crunConsumers: removing sections","color:purple",m.keys());}let _=m.size>0?Object.fromEntries(Object.entries(e).filter(([,M])=>m?.has(M.section_id)?(R.includes(M.id)||R.push(M.id),!1):!0)):e;if(R.length>0&&(_=Object.fromEntries(Object.entries(_).map(([M,w])=>{let J={...w,inputs:w.inputs.filter(E=>!R.includes(E)),consumers:w.consumers.filter(E=>!R.includes(E))};return [M,J]}))),!r&&!t)return {variables:{...a.variables??{},...d},status:{...a.status??{},...f}};i==="report"&&R.length>0&&R.forEach(M=>{delete d[M],delete f[M],delete e[M];}),Fe&&console.info("%crunConsumers: running root blocks","color:purple",Object.keys(y));let P=Object.keys(y).reduce((M,w)=>{let J=new Date,E=xo(Number(w),_,[],!r,!0,l).map(k=>k.split("-")),A=(new Date().getTime()-J.getTime())/1e3;return Fe&&console.info(`%cResolved dependencies for ${w} (${A.toFixed(2)}s)`,"color:blue"),[...M,...E]},[]),C=new Date,x=Object.keys(y).reduce((M,w)=>M.includes(w)?[...M]:[w,...M],Yl(P)),L=(new Date().getTime()-C.getTime())/1e3;Fe&&console.info(`%cResolved DAG (${L.toFixed(2)}s): `,"color:green",x);let D=process.env.NEXT_PUBLIC_REPORTS_MAX_CONCURRENT_QUERIES_PER_REPORT,v=parseInt(`${D||0}`,10);async function O(M,w){let J=new Map,E=[],b=async()=>E.length;for(let A of M){if(v!==0){let Z=await b();for(;Z>=v;)Fe&&console.info("Too many pending promises, waiting...",Z,E),await new Promise(W=>setTimeout(W,500)),Z=await b();}let k=w[A],ae=Promise.all(k.inputs.filter(Z=>M.includes(String(Z))).map(Z=>J.get(Number(Z)))).then(async()=>{let Z=k.inputs.reduce((se,le)=>({...se,...d[le]}),p),W=k.inputs.find(se=>(k.settings?.ignoreCascade?k.settings?.ignoreCascade:[]).includes(se)||!f[se]?!1:!f[se].allowed||f[se].hiddenByCascade);if(W){f[A]={allowed:!1,hiddenByCascade:f[W].hiddenByCascade||W},d[A]={},E.splice(E.indexOf(Number(A)),1);return}let ie=new Date,V;typeof window<"u"&&[N.SELECTOR,N.MULTIHIERARCHY_SELECTOR].includes(k.type)&&k.settings[Be.DISABLED]?V=new Promise(se=>{se({outputVariables:d[A],status:f[A]});}):V=Xa(k,o,{...u,variables:Z,locale:Z.locale},s,c);let Q=await V.then(({outputVariables:se,status:le})=>{if(le.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${A}, Section ${k.section_id}) failed with message: ${le.error}.`);f[A]={allowed:!1,error:le.error},d[A]={};}(k.consumers.length>0||[N.GENERATOR,N.SECTION_FLAG,N.RELATED].includes(k.type))&&le.allowed&&Object.keys(se).length>0?d[A]=se:d[A]={},i==="report"?(f[A]={allowed:le.allowed},[N.GENERATOR,N.SECTION_FLAG].includes(k.type)&&le.api&&(f[A].api=le.api)):f[A]=le;}),ue=(new Date().getTime()-ie.getTime())/1e3;return Fe&&console.info(`%cBlock ${k.id} resolved in ${ue.toFixed(3)}s`,ue>500?"color:red":"color:green"),f[A].duration=f[A].duration?f[A].duration:ue,E.splice(E.indexOf(Number(A)),1),Q}).catch(Z=>{throw E.splice(E.indexOf(Number(A)),1),Z});E.push(Number(A)),J.set(Number(A),ae);}await Promise.all(Array.from(J.values()));}let U=new Date;await O(x,_);let q=(new Date().getTime()-U.getTime())/1e3;return Fe&&console.info(`%cResolved Variables (${q.toFixed(2)}s), ${x.length} blocks`,"color:green"),{variables:{...a.variables??{},...d},status:{...a.status??{},...f}}};function cu(e=[]){return e.reduce((t,r,o)=>{if(r){let n=o+1;t[`id${n}`]=r.id,t[`name${n}`]=r.name,t[`slug${n}`]=r.slug,"attributes"in r&&Object.keys(r.attributes).forEach(a=>{t[`attr_${a}${n}`]=r.attributes[a];}),t[`variant_id${n}`]=r.variant_id,t[`variant_name${n}`]=r.variant_name,t[`variant_slug${n}`]=r.variant_slug,t[`dimension_id${n}`]=r.dimension_id,t[`dimension_name${n}`]=r.dimension_name,t.report_id=r.report_id,t.report_name=r.report_name;}return t},{})}var Nt=cu;function lu(e,t){return +(e<t)-+(e>t)}function Ur(e,t,r="ordering"){return lu(t[r],e[r])}var{localeDefault:pu}=K();var sr=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});sr.define({consumers:[sr],inputs:[sr]});var ts=new schema.Entity("variant"),rs=new schema.Entity("dimension",{variants:[ts]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),os=new schema.Entity("section",{blocks:[sr]}),du=new schema.Entity("report",{dimensions:[rs],sections:[os]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Ur):[]}}}),mu=new schema.Entity("formatter"),fu=new schema.Entity("datasource"),yu={report:du,section:os,block:sr,dimension:rs,variant:ts,formatter:mu,datasource:fu};function Fr(e,t){let r=yu[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:ct(o,"report"),dimension:ct(o,"dimension"),section:ct(o,"section"),block:ct(o,"block"),variant:ct(o,"variant"),formatter:ct(o,"formatter"),datasource:ct(o,"datasource")}}function ct(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var ns=(e,t=void 0)=>{let{sid:r,bid:o,previews:n=[],query:a={}}=t||{},s,i,c={};return r?(s=r,c.activeSection=s):s=e.activeSection,n.length>0?(i=n,c.previews=i.filter(Boolean)):i=e.previews,{parsedParams:{sid:s,bid:o,previews:i,query:a},statusPayload:c}},ir=(e=[],t=pu)=>e.reduce((r,o)=>{let n=Bn({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var me=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",Vr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[me];Vr.includes(me)||Vr.push(me);var Ru={localeDefault:me,locales:Vr,currentLocale:me,preferredLocale:me,showToolbar:!1,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:!0,settings:!1,reportEditor:!1},isCMS:!1,isRunConsumersRunning:[]},$r=createSlice({name:"status",initialState:Ru,reducers:{setStatus:(e,t)=>{Object.assign(e,t.payload);},setPreviews(e,t){e.previews=t.payload;},setCurrentLocale(e,t){e.currentLocale=t.payload;},setPreferredLocale(e,t){e.preferredLocale=t.payload;},setSectionState(e,t){e.sectionState={...e.sectionState,...t.payload};},resetSectionState(e,t){e.sectionState={...e.sectionState,[t.payload]:{}};},setActiveEntity(e,t){e.activeEntity=t.payload;},openSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!0};},closeSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!1};},toggleSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!e.sidebarStatus[t.payload]};},addRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.concat(t.payload);},removeRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.filter(r=>!t.payload.includes(r));}},extraReducers:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),ke=$r.actions;var Eu={attributes:{},variables:{},status:{}},qr=createSlice({name:"variables",initialState:Eu,reducers:{setVariableChange:(e,t)=>{e.attributes={...e.attributes,...t.payload.attributes},e.variables={...e.variables,...t.payload.variables},e.status={...e.status,...t.payload.status};}},extraReducers:{[HYDRATE]:(e,t)=>({attributes:{...e.attributes,...t.payload.variables.attributes},status:{...e.status,...t.payload.variables.status},variables:{...e.variables,...t.payload.variables.variables}})}}),Dt=qr.actions;var vu={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}}},xe=createSlice({name:"records",initialState:vu,reducers:{set:(e,t)=>{let r=t.payload;return {entities:cr(e.entities,r.entities||{}),requests:cr(e.requests,r.requests||{}),reports:r.reports||e.reports,tree:r.tree||e.tree}},setRequest:(e,t)=>{let r=t.payload;e.requests[r.type][r.key]=r;},setCreateRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let o=Array.isArray(r.data)?r.data:[r.data],n=Fr(r.type,o),a=cr(e.entities,n);if(e.entities=a,r.type==="report"){let s=r.data;e.reports?e.reports.indexOf(s.id)===-1&&(e.reports=[...e.reports,s.id]):e.reports=[s.id];}else if(r.type==="dimension"){let s=r.data;e.entities.report[s.report_id].dimensions.push(s.id),e.entities.report[s.report_id].dimensions=zr(a.report[s.report_id].dimensions,a.dimension);}else if(r.type==="variant"){let s=r.data;e.entities.dimension[s.dimension_id].variants.push(s.id);}else if(r.type==="section"&&!Array.isArray(r.data)){let s=r.data;e.entities.report[s.report_id].sections.push(s.id),e.entities.report[s.report_id].sections=zr(a.report[s.report_id].sections,a.section);}else if(r.type==="block")if(Array.isArray(r.data)){let s=r.data,i=s[0],c=s.map(l=>l.id);e.entities.section[i.section_id].blocks.concat(c);}else {let s=r.data;e.entities.section[s.section_id].blocks.push(s.id);}}},setReadRequest(e,t){let r=t.payload;if(r.type!=="report"&&(e.requests[r.type][r.key]=r),r.status==="SUCCESS"){let o=Fr(r.type,r.data),n=cr(e.entities,o);e.entities=n;}},setUpdateRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let o=Array.isArray(r.data)?r.data:[r.data],n=Fr(r.type,o),a,s,i;if(r.type==="block"&&!Array.isArray(r.data)){let l=e.entities.block[r.data.id].inputs,u=n.block[r.data.id].inputs;a=l.length!==u.length,a&&(i=l.length>u.length,s=i?l.filter(p=>!u.includes(p))[0]:u.filter(p=>!l.includes(p))[0]),Object.values(n.block).forEach(p=>{p.block_input&&delete n.block[p.id];});}let c=cr(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=zr(c.report[l.report_id].dimensions,c.dimension);}else if(r.type==="section"&&!Array.isArray(r.data)){let l=r.data;e.entities.report[l.report_id].sections=zr(c.report[l.report_id].sections,c.section);}else if(r.type==="block"&&!Array.isArray(r.data)){let l=r.data;a&&(i?e.entities.block[s].consumers=e.entities.block[s].consumers.filter(u=>u!==l.id):e.entities.block[s].consumers.push(l.id));}}},setDeleteRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let{id:o,parentId:n,parentType:a}=r.data;if(delete e.entities[r.type][o],a&&n!=null){let s=`${r.type}s`;_u(e.entities[a][n][s],o);}}},removeBlocks:(e,t)=>{let r=t.payload,o={...e.entities.block};return r.forEach(n=>{delete o[n];}),{...e,entities:{...e.entities,block:o}}},addBlocks:(e,t)=>{let r=t.payload;return {...e,entities:{...e.entities,block:{...e.entities.block,...r}}}},removeDataSourceLogic:e=>{let t={...e.entities.datasource};Object.keys(t).forEach(r=>{e.entities.datasource[r].content.useProxy&&(delete e.entities.datasource[r].content.logic,delete e.entities.datasource[r].content.testUrl,delete e.entities.datasource[r].content.access);});}},extraReducers:{[HYDRATE]:(e,t)=>{let r=t.payload.records,o=r.entities;return {entities:o,reports:Object.values(o.report).map(n=>n.id),requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},tree:r.tree}}}});function cr(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function zr(e,t){return e.map(n=>t[n]).sort((n,a)=>typeof n.ordering=="string"&&typeof a.ordering=="string"?Ur(n,a):typeof n.ordering=="number"&&typeof a.ordering=="number"?n.ordering-a.ordering:String(n.ordering).localeCompare(String(a.ordering))).map(n=>n.id)}function _u(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function ce(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];if(process.env.NODE_ENV!=="production"){var n=Lu[e],a=n?typeof n=="function"?n.apply(null,r):n:"unknown error nr: "+e;throw Error("[Immer] "+a)}throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(s){return "'"+s+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function Ut(e){return !!e&&!!e[fe]}function pt(e){var t;return !!e&&(function(r){if(!r||typeof r!="object")return !1;var o=Object.getPrototypeOf(r);if(o===null)return !0;var n=Object.hasOwnProperty.call(o,"constructor")&&o.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===Ou}(e)||Array.isArray(e)||!!e[ds]||!!(!((t=e.constructor)===null||t===void 0)&&t[ds])||Fo(e)||Vo(e))}function ur(e,t,r){r===void 0&&(r=!1),Vt(e)===0?(r?Object.keys:Ko)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e);}):e.forEach(function(o,n){return t(n,o,e)});}function Vt(e){var t=e[fe];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:Fo(e)?2:Vo(e)?3:0}function Oo(e,t){return Vt(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function wu(e,t){return Vt(e)===2?e.get(t):e[t]}function ms(e,t,r){var o=Vt(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function Pu(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function Fo(e){return Cu&&e instanceof Map}function Vo(e){return Bu&&e instanceof Set}function ut(e){return e.o||e.t}function $o(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Mu(e);delete t[fe];for(var r=Ko(t),o=0;o<r.length;o++){var n=r[o],a=t[n];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[n]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[n]});}return Object.create(Object.getPrototypeOf(e),t)}function qo(e,t){return t===void 0&&(t=!1),zo(e)||Ut(e)||!pt(e)||(Vt(e)>1&&(e.set=e.add=e.clear=e.delete=ku),Object.freeze(e),t&&ur(e,function(r,o){return qo(o,!0)},!0)),e}function ku(){ce(2);}function zo(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function ve(e){var t=Nu[e];return t||ce(18,e),t}function as(){return process.env.NODE_ENV==="production"||Ft||ce(0),Ft}function Io(e,t){t&&(ve("Patches"),e.u=[],e.s=[],e.v=t);}function Gr(e){Mo(e),e.p.forEach(xu),e.p=null;}function Mo(e){e===Ft&&(Ft=e.l);}function ss(e){return Ft={p:[],l:Ft,h:e,m:!0,_:0}}function xu(e){var t=e[fe];t.i===0||t.i===1?t.j():t.g=!0;}function Co(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||ve("ES5").S(t,e,o),o?(r[fe].P&&(Gr(t),ce(4)),pt(e)&&(e=Kr(t,e),t.l||jr(t,e)),t.u&&ve("Patches").M(r[fe].t,e,t.u,t.s)):e=Kr(t,r,[]),Gr(t),t.u&&t.v(t.u,t.s),e!==fs?e:void 0}function Kr(e,t,r){if(zo(t))return t;var o=t[fe];if(!o)return ur(t,function(i,c){return is(e,o,t,i,c,r)},!0),t;if(o.A!==e)return t;if(!o.P)return jr(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var n=o.i===4||o.i===5?o.o=$o(o.k):o.o,a=n,s=!1;o.i===3&&(a=new Set(n),n.clear(),s=!0),ur(a,function(i,c){return is(e,o,n,i,c,r,s)}),jr(e,n,!1),r&&e.u&&ve("Patches").N(o,r,e.u,e.s);}return o.o}function is(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&ce(5),Ut(n)){var i=Kr(e,n,a&&t&&t.i!==3&&!Oo(t.R,o)?a.concat(o):void 0);if(ms(r,o,i),!Ut(i))return;e.m=!1;}else s&&r.add(n);if(pt(n)&&!zo(n)){if(!e.h.D&&e._<1)return;Kr(e,n),t&&t.A.l||jr(e,n);}}function jr(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&qo(t,r);}function Bo(e,t){var r=e[fe];return (r?ut(r):e)[t]}function cs(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var o=Object.getOwnPropertyDescriptor(r,t);if(o)return o;r=Object.getPrototypeOf(r);}}function No(e){e.P||(e.P=!0,e.l&&No(e.l));}function Lo(e){e.o||(e.o=$o(e.t));}function Do(e,t,r){var o=Fo(t)?ve("MapSet").F(t,r):Vo(t)?ve("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:as(),P:!1,I:!1,R:{},l:a,t:n,k:null,o:null,j:null,C:!1},c=i,l=Uo;s&&(c=[i],l=lr);var u=Proxy.revocable(c,l),p=u.revoke,d=u.proxy;return i.k=d,i.j=p,d}(t,r):ve("ES5").J(t,r);return (r?r.A:as()).p.push(o),o}function Iu(e){return Ut(e)||ce(22,e),function t(r){if(!pt(r))return r;var o,n=r[fe],a=Vt(r);if(n){if(!n.P&&(n.i<4||!ve("ES5").K(n)))return n.t;n.I=!0,o=ls(r,a),n.I=!1;}else o=ls(r,a);return ur(o,function(s,i){n&&wu(n.t,s)===i||ms(o,s,t(i));}),a===3?new Set(o):o}(e)}function ls(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return $o(e)}var us,Ft,Go=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Cu=typeof Map<"u",Bu=typeof Set<"u",ps=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",fs=Go?Symbol.for("immer-nothing"):((us={})["immer-nothing"]=!0,us),ds=Go?Symbol.for("immer-draftable"):"__$immer_draftable",fe=Go?Symbol.for("immer-state"):"__$immer_state";var Lu={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(e){return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+e},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(e){return "Cannot apply patch, path doesn't resolve: "+e},16:'Sets cannot have "replace" patches.',17:function(e){return "Unsupported patch operation: "+e},18:function(e){return "The plugin for '"+e+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+e+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(e){return "produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+e+"'"},22:function(e){return "'current' expects a draft, got: "+e},23:function(e){return "'original' expects a draft, got: "+e},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},Ou=""+Object.prototype.constructor,Ko=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Mu=Object.getOwnPropertyDescriptors||function(e){var t={};return Ko(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},Nu={},Uo={get:function(e,t){if(t===fe)return e;var r=ut(e);if(!Oo(r,t))return function(n,a,s){var i,c=cs(a,s);return c?"value"in c?c.value:(i=c.get)===null||i===void 0?void 0:i.call(n.k):void 0}(e,r,t);var o=r[t];return e.I||!pt(o)?o:o===Bo(e.t,t)?(Lo(e),e.o[t]=Do(e.A.h,o,e)):o},has:function(e,t){return t in ut(e)},ownKeys:function(e){return Reflect.ownKeys(ut(e))},set:function(e,t,r){var o=cs(ut(e),t);if(o?.set)return o.set.call(e.k,r),!0;if(!e.P){var n=Bo(ut(e),t),a=n?.[fe];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(Pu(r,n)&&(r!==void 0||Oo(e.t,t)))return !0;Lo(e),No(e);}return e.o[t]===r&&(r!==void 0||t in e.o)||Number.isNaN(r)&&Number.isNaN(e.o[t])||(e.o[t]=r,e.R[t]=!0),!0},deleteProperty:function(e,t){return Bo(e.t,t)!==void 0||t in e.t?(e.R[t]=!1,Lo(e),No(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=ut(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){ce(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){ce(12);}},lr={};ur(Uo,function(e,t){lr[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};}),lr.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&ce(13),lr.set.call(this,e,t,void 0)},lr.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&ce(14),Uo.set.call(this,e[0],t,r,e[0])};var Du=function(){function e(r){var o=this;this.O=ps,this.D=!0,this.produce=function(n,a,s){if(typeof n=="function"&&typeof a!="function"){var i=a;a=n;var c=o;return function(R){var y=this;R===void 0&&(R=i);for(var S=arguments.length,_=Array(S>1?S-1:0),P=1;P<S;P++)_[P-1]=arguments[P];return c.produce(R,function(C){var x;return (x=a).call.apply(x,[y,C].concat(_))})}}var l;if(typeof a!="function"&&ce(6),s!==void 0&&typeof s!="function"&&ce(7),pt(n)){var u=ss(o),p=Do(o,n,void 0),d=!0;try{l=a(p),d=!1;}finally{d?Gr(u):Mo(u);}return typeof Promise<"u"&&l instanceof Promise?l.then(function(R){return Io(u,s),Co(R,u)},function(R){throw Gr(u),R}):(Io(u,s),Co(l,u))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===fs&&(l=void 0),o.D&&qo(l,!0),s){var f=[],m=[];ve("Patches").M(n,l,f,m),s(f,m);}return l}ce(21,n);},this.produceWithPatches=function(n,a){if(typeof n=="function")return function(l){for(var u=arguments.length,p=Array(u>1?u-1:0),d=1;d<u;d++)p[d-1]=arguments[d];return o.produceWithPatches(l,function(f){return n.apply(void 0,[f].concat(p))})};var s,i,c=o.produce(n,a,function(l,u){s=l,i=u;});return typeof Promise<"u"&&c instanceof Promise?c.then(function(l){return [l,s,i]}):[c,s,i]},typeof r?.useProxies=="boolean"&&this.setUseProxies(r.useProxies),typeof r?.autoFreeze=="boolean"&&this.setAutoFreeze(r.autoFreeze);}var t=e.prototype;return t.createDraft=function(r){pt(r)||ce(8),Ut(r)&&(r=Iu(r));var o=ss(this),n=Do(this,r,void 0);return n[fe].C=!0,Mo(o),n},t.finishDraft=function(r,o){var n=r&&r[fe];process.env.NODE_ENV!=="production"&&(n&&n.C||ce(9),n.I&&ce(10));var a=n.A;return Io(a,o),Co(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!ps&&ce(20),this.O=r;},t.applyPatches=function(r,o){var n;for(n=o.length-1;n>=0;n--){var a=o[n];if(a.path.length===0&&a.op==="replace"){r=a.value;break}}n>-1&&(o=o.slice(n+1));var s=ve("Patches").$;return Ut(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),ye=new Du,Uu=ye.produce;ye.produceWithPatches.bind(ye);ye.setAutoFreeze.bind(ye);ye.setUseProxies.bind(ye);ye.applyPatches.bind(ye);ye.createDraft.bind(ye);ye.finishDraft.bind(ye);var Hr=Uu;var Ee=xe.actions,Rs=pr({block:Ve("block"),dimension:Ve("dimension"),formatter:Ve("formatter"),report:Ve("report"),section:Ve("section"),variant:Ve("variant"),datasource:Ve("datasource")}),oe=pr({block:$e("block"),dimension:$e("dimension"),formatter:$e("formatter"),report:$e("report"),section:$e("section"),variant:$e("variant"),datasource:$e("datasource")}),bs=pr({block:_e("block"),dimension:_e("dimension"),formatter:_e("formatter"),report:_e("report"),section:_e("section"),variant:_e("variant"),datasource:_e("datasource")}),Ss=pr({block:dt("block"),dimension:dt("dimension"),formatter:dt("formatter"),report:dt("report"),section:dt("section"),variant:dt("variant"),datasource:dt("datasource")}),Es=pr({block:gs("block"),section:gs("section")});function pr(e){return (t,r)=>{let o=e[t];if(!o)throw new Error(`Attempting to dispatch action for invalid entity type '${t}'`);return o(r)}}function ft(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(Ee.setRequest({key:t,type:e,status:s}));}}function mt(e,t,r,o){return n=>{typeof window=="object"&&notifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(Ee.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function Ve(e){return t=>{let r=Ho(e,t);return (o,n,a)=>(o(ft(e,r)),pe(a,"create",e)(t).then(i=>(i.ok===!0?o(Ee.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(mt(e,r,i.status,i.error)),i)))}}function $u(e){return t=>{let r=Ho(e,t[0]);return (o,n,a)=>(o(ft(e,r)),pe(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(Ee.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(mt(e,r,i.status,i.error)),i)))}}function ys(e,t,r){return r.replace(new RegExp(e,"g"),t)}function qu(e){return e.section_id!==void 0}function zu(e){return e.report_id!==void 0}function gs(e){return t=>{let{create:r}=t;return (o,n,a)=>Ve(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:u}=t,p=vs(e,{id:l});if(o(ft(e,`${p}`)),e==="block"&&qu(r)){let d=Hr(u,y=>{y.id=l;}),{contentByLocale:f}=d;f&&(d=Hr(d,y=>{y.id=l,y.contentByLocale=Object.keys(f).reduce((S,_)=>{let P=f?f[_]:{};return S[_]={...P,id:l},S},{});}));let R=d.inputs?.map(y=>({type:y.type,id:y.id,inputAction:{operation:"create",input:{input_id:y.id,block_id:d.id}}}));return R&&R.length>0&&hs(e)([d,...R])(o,n,a).then(()=>$e("section")({id:d.section_id,include:!0})(o,n,a).then(y=>(y.ok&&o(Ee.setRequest({key:p,type:e,status:"SUCCESS",data:y.data})),y))),_e(e)(d)(o,n,a).then(y=>(y.ok&&o(Ee.setRequest({key:p,type:e,status:"SUCCESS",data:y.data})),y))}if(e==="section"&&zu(r)){let{id:d}=c,f=Hr(u,y=>{y.id=d;}),{blocks:m}=f,R=m?.map(y=>({type:y.type,blockcol:y.blockcol,blockrow:y.blockrow,section_id:d,locales:Object.keys(y.contentByLocale).map(S=>S)}));return R&&m&&await $u("block")(R)(o,n,a).then(y=>{if(y.ok){let S=y.data,_=[],P=S.map((C,x)=>{let L={...C},D=L.id,v=m[x];v.contentByLocale&&(L.contentByLocale=Object.keys(v.contentByLocale).reduce((E,b)=>{let A=v.contentByLocale[b];return E[b]={...A,content:{...A.content},id:L.id},E},{}));let{settings:O}=v,{contentByLocale:U,id:B}=L;L.settings=O;let q={id:B,contentByLocale:U,settings:O};return v.inputs.map(E=>E.id).reduce((E,b)=>{let A=m.findIndex(k=>k.id===b);return [...E,A]},[]).map(E=>({...S[E],originalBlock:m[E]})).forEach(E=>{let{id:b,type:A,originalBlock:k}=E;if([N.SELECTOR,N.VIZ].includes(A)){if(q.contentByLocale?.logic?.content?.api){let ne=q.contentByLocale?.logic.content.api;q.contentByLocale.logic.content.api=ys(`(selector${k.id}id)`,`selector${b}id`,ne);}if(q.contentByLocale?.logic?.content?.logic){let ne=q.contentByLocale.logic.content.logic;q.contentByLocale.logic.content.logic=ys(`(selector${k.id}id)`,`selector${b}id`,ne);}}_.push({id:b,inputAction:{operation:"create",input:{input_id:b,block_id:D}}});}),q});return hs("block")([...P,..._])(o,n,a)}}),_e(e)(f)(o,n,a).then(y=>(y.ok&&o(Ee.setRequest({key:p,type:e,status:"SUCCESS",data:y.data})),y))}return _e(e)({...u,id:c.id})(o,n,a)}})}}function $e(e){return t=>{let r=As(e,t);return (o,n,a)=>{o(ft(e,r));let s=pe(a,"read",e);if(typeof s!="function"){let i=`Failed to get valid RPC method for entity "${e}"`;return o(mt(e,r,500,i)),Promise.reject(new Error(i))}return s(t).then(i=>(i.ok===!0?o(Ee.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(mt(e,r,i.status,i.error)),i))}}}function _e(e){return t=>{let r=Wo(e,t);return (o,n,a)=>(o(ft(e,r)),pe(a,"update",e)(t).then(i=>(i.ok===!0?o(Ee.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(mt(e,r,i.status,i.error)),i)))}}function hs(e){return t=>{let r=Wo(e,t[0]);return (o,n,a)=>(o(ft(e,r)),pe(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(Ee.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(mt(e,r,i.status,i.error)),i)))}}function dt(e){return t=>{let r=Ts(e,t);return (o,n,a)=>(o(ft(e,r)),pe(a,"delete",e)(t).then(i=>{i.ok===!0?o(Ee.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(mt(e,r,i.status,i.error));}))}}function Ho(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function As(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function Wo(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function Ts(e,t){return `delete(${e}, ${t})`}function vs(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:_s,setPreviews:Gu,setSectionState:ws,resetSectionState:Ps,setCurrentLocale:Ku,setPreferredLocale:ju,addRunConsumersRunning:ks,removeRunConsumersRunning:xs}=ke;function Hu(e,t){return async(r,o,n)=>{let a=await n.validateVariantSlug({dimension:e,slug:t});if("error"in a)throw new Error(a.error);return a.data}}function Wu(e){return async(t,r,o)=>{let n=await o.searchReport(e);if("error"in n)throw new Error(n.error);return n.data}}function Ju(){return async(e,t,r)=>{let o=await r.regenerateSearch(void 0);if("error"in o)throw new Error(o.error);return o.data}}function qe(e){return async(t,r,o)=>{let n=await o.readMember(e);if("error"in n)throw new Error(n.error);return n.data}}function Yu(e){return async(t,r,o)=>{let n=await o.searchMember(e);if(n.ok===!0)return n.data;throw new Error(n.error)}}async function Is(e,t,r,o){let n=r().status,a={...n,...o},s={...n.query,...o.query};Object.keys(s).forEach(c=>s[c]===void 0&&delete s[c]);let i={...a,query:s};t(_s(i)),n.activeSection&&t(Cs(e,{query:s}));}function Qu(e,t){return async(r,o)=>Is(e,r,o,{query:{[t]:void 0}})}function Zu(e,t,r){return async(o,n)=>Is(e,o,n,{query:{[t]:r}})}function Cs(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],c=e.datasourceFunctions,{parsedParams:l,statusPayload:u}=ns(n.status,t),{sid:p,bid:d,previews:f,query:m}=l;Object.keys(u).length&&r(ke.setStatus(u));let R={...Nt(f),locale:a,...de()},y={variables:R,query:m,locale:a};r(ke.addRunConsumersRunning([p]));let S=n.records.entities.section[p],_=async P=>r(qe(P));try{let P=await Mt(s,S&&[S],d,i,y,void 0,_,"section",c),{variables:C,status:x}=P;r(Dt.setVariableChange({attributes:R,variables:C,status:x})),r(ke.removeRunConsumersRunning([p]));}catch(P){console.error("Error in runConsumers client side: recalculateVariables",P);}}}function dr(e){return async(t,r,o)=>{let n=await o.readMetadata(e);if("error"in n)throw new Error(n.error);return n.data}}function Xu(e){return async(t,r,o)=>{let n=await o.urlProxy(e);if("error"in n)throw new Error(n.error);return n.data}}function ep(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function tp(e){return async(t,r,o)=>{let n=await o.searchUser(e);if("error"in n)throw new Error(n.error);return n.data}}function rp(e){return async(t,r,o)=>{let n=await o.readUser({user_id:e});if("error"in n)throw new Error(n.error);return n.data}}function op({user:e}){return async(t,r,o)=>{let n=await o.updateUser(e);if("error"in n)throw new Error(n.error);return n.data}}function np(e){return async(t,r,o)=>{let n=await o.updateMyData(e);if("error"in n)throw new Error(n.error);return n.data}}function ze(e){let{removeBlocks:t}=xe.actions;return async r=>{await r(t(e));}}function mr(e){let{addBlocks:t}=xe.actions;return async r=>{await r(t(e));}}function ap(e){return async(t,r,o)=>{let n=await o.readPrivateBlocks({...e,roles:[]});if("error"in n)throw new Error(n.error);return n.data}}function sp(e){return async(t,r,o)=>{let n=await o.revalidateUrl({target:e.target});if("error"in n)throw new Error(n.error);return n.data}}function ip(e){return async(t,r,o)=>{let n=await o.revalidateReport({reportId:e.reportId,profilePrefix:e.profilePrefix});if("error"in n)throw new Error(n.error);return n.data}}function cp(){return async(e,t,r)=>{let o=await r.readEnvSecrets({});if("error"in o)throw new Error(o.error);return o.data}}function fr(){let{removeDataSourceLogic:e}=xe.actions;return async t=>{await t(e());}}var Bs=()=>configureStore({reducer:{[xe.name]:xe.reducer,[$r.name]:$r.reducer,[qr.name]:qr.reducer},middleware(e){return e({thunk:{extraArgument:ar("/api/cms/")}})}}),gt=createWrapper(Bs);function mp(e){let t=process.cwd(),r=dp.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(el.readFileSync(r,"utf-8"));o=n.dependencies&&n.dependencies[e]&&n.dependencies[e].version!=="file:packages/reports"?n.dependencies[e].version:"0.dev";}catch{o="0.vercel";}return o||"Version not found"}function fp(e){let t=()=>Promise.resolve({}),{pathSegmentsKey:r="bespoke",preResolve:o=t,postResolve:n=t,authOptions:a={providers:[]}}=e||{};return gt.getServerSideProps(s=>{let{dispatch:i}=s;return async c=>{let l=await ge(c.req,c.res,a);if(!l)return {redirect:{destination:"/api/auth/signin?callbackUrl=/cms",permanent:!1}};let u=new Set([z.ADMIN,z.EDITOR,z.WRITER]);if(!(l?.user?.bespoke_roles||[]).some(S=>u.has(S)))return {redirect:{destination:"/",permanent:!1}};let d=c.query[r],[f]=Array.isArray(d)?d:[d];await i(at);let m=await mp("@datawheel/bespoke"),R=await o(s,c);if("redirect"in R)return {props:R};f==="reports"&&(Ls(c.query[r])?await Promise.all([i(oe("formatter",{})),i(oe("datasource",{include:!0})),i(oe("report",{id:Ls(c.query[r]),include:!0})),ke.setStatus({isCMS:!0})]):await Promise.all([i(oe("report",{include:"dimensions"})),ke.setStatus({isCMS:!0})])),f==="metadata"&&await i(oe("report",{include:"dimensions"})),f==="formatters"&&await i(oe("formatter",{})),f==="datasources"&&await i(oe("datasource",{include:!0}));let y=await n(s,c);return {props:{...R,...y,bespokeVersion:m,session:l}}}})}function Ls(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:gp}=K(),hp={pathSegment:"path",formatterFunctions:gp.reduce((e,t)=>({...e,[t]:{}}),{}),datasourceFunctions:[],profilePrefix:"path",siteProps:{}};createContext(hp);K();var Jr=e=>e.records.entities.block;function $t(e){return t=>Object.values(t.records.entities[e])}var Yr=$t("section"),Qr=$t("formatter"),Lp=de();function Zr(e){return Object.values(e.records.entities.datasource||[]).sort((t,r)=>t.content.order>r.content.order?1:-1).map(t=>{let r={...Lp};return {...t,content:{...t.content,pattern:Re(t.content.pattern,{},{variables:r})}}})}var Op=async(e,t,r,o,n)=>{if(e.length===0)throw new Error("No slugs provided");let a=await t(r({mode:"slugs",locale:n,slugs:e,output:"full"})),s=a.results[0].report_id;if(a.results.length>1){if(a.results.every(m=>m.report_id===s)===!1)throw new Error("Members belong to different reports");let l=a.results.map(m=>m.dimension_id),u=new Set(l);if(l.length!==u.size)throw new Error("Members belong to same dimensions");let p=a.results.sort((m,R)=>m.dimension_ordering>R.dimension_ordering?1:-1).reduce((m,R,y)=>(m[R.variant_slug]=y,m),{}),d=e.reduce((m,R,y)=>(m[R.variantSlug]=y,m),{});if(!(Object.keys(p).length===Object.keys(d).length&&Object.keys(p).every(m=>Object.prototype.hasOwnProperty.call(d,m)&&p[m]===d[m])))throw new Error("Variant slugs do not match the expected dimension order")}let c=(await t(o({report_id:s,count:!1}))).data.find(l=>l.id===s);if(!c||a.results.length!==c.dimensions.length)throw new Error(`Missing members for report ID ${s}`);return a},Xr=Op;function Mp(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=me,locales:a=[]}=o,s=[];if(r>0){let i=a.find(u=>u===n),{searchMember:c}=await tt().then(Bt),l=await c({query:"",limit:r,format:"plain",locale:i||me,noImage:!1,visible:!0,report:[],dimension:[],variant:[],includes:!0});l.ok===!0&&(s=l.data.results.map(u=>({locale:a.find(p=>p===u.locale),params:{bespoke:[u.variant.slug,u.slug]}})));}return {fallback:t,paths:s}}}function Np(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return gt.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(at);let a=new Date().toISOString(),{locale:s=me,params:i={}}=n,c=Array.from(Yo(i[t])),l;try{l=await Xr(c,o,qe,dr,s);}catch(v){return console.error("[Bespoke slug validation Failed]: Return 404:",v.message,`[${s}] -> /${c.map(O=>`${O.variantSlug}/${O.memberSlug}`).join("/")}`),{notFound:!0}}o(yt.setPreviews(l.results)),await Promise.all([o(oe("formatter",{})),o(oe("datasource",{include:!0})),o(oe("report",{id:l.results.map(v=>v.report_id),include:!0,locales:[s]}))]);let u=r.getState(),p=Qr(u),d=Zr(u),f=ir(p,s),m=Yr(u),R=Jr(u),y={...R},S={},_=Object.values(R).reduce((v,O)=>("access"in O.settings&&!["public","guest"].some(U=>!O.settings.access||O.settings.access.includes(U))&&v.push(O.id),v),[]),P=_.filter(v=>y[v].settings[Be.FALLBACK]),C=Array.from(new Set([...P,...be(P,Object.values(y))])),x=_.filter(v=>[N.SELECTOR,N.MULTIHIERARCHY_SELECTOR].includes(y[v].type)),$=Array.from(new Set([...x,...be(x,Object.values(y))]));_=Array.from(new Set([..._,...C,...$,...be(_,Object.values(y))])),_.forEach(v=>{P.includes(v)?(S[v]={...y[v],type:N.FALLBACK,original_type:y[v].type},delete y[v]):x.includes(v)&&(S[v]={...y[v],settings:{...y[v].settings,[Be.DISABLED]:!0}},delete y[v]),$.includes(v)||delete y[v];}),await o(ze(_.filter(v=>!$.includes(v)))),await o(mr(S));let L={...Nt(l.results),locale:s,...de()},D=async v=>await o(qe(v));return await Mt({...y,...S},m,void 0,f,{locale:s,query:i,variables:L},void 0,D,"report",d).then(async v=>{let O=Object.keys({...y,...S}).reduce((U,B)=>(v.variables[B]&&v.status[B]||U.push(B),U),[]);await o(ze(O)),await o(Dt.setVariableChange({...v,attributes:L})),await o(fr());}),{props:{buildTime:a}}}})}catch(r){console.error("ERROR SSR",r);}}function Yo(e=[]){let t=[].concat(e),r=0;return {next(){return {value:{variantSlug:t[r++],memberSlug:t[r++]},done:r>t.length}},[Symbol.iterator](){return this}}}function Dp(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return gt.getServerSideProps(r=>{let{dispatch:o}=r;return async n=>{let{section:a,block:s}=n.query,i=Object.fromEntries(Object.entries(n.query).filter(([w])=>w.match(/selector\d+id/)));if(!a&&!s)return {notFound:!0};let c=Number(a);await o(at);let l=new Date().toISOString(),{locale:u=me,params:p={},req:d}=n,f=Array.from(Yo(p[t])),m;try{m=await Xr(f,o,qe,dr,u);}catch(w){return console.error("[Bespoke slug validation Failed]: Return 404:",w.message,`/${u}/${d.url}`),{notFound:!0}}o(yt.setPreviews(m.results)),await Promise.all([o(oe("formatter",{})),o(oe("datasource",{include:!0})),o(oe("report",{id:m.results.map(w=>w.report_id),include:!0,locales:[u]}))]);let R=r.getState(),y=Qr(R),S=Zr(R),_=ir(y,u),P=Yr(R).filter(w=>w.id===c),C=Jr(R),x={...C},$={},L=Object.values(C).reduce((w,J)=>("access"in J.settings&&!["public","guest"].some(E=>!J.settings.access||J.settings.access.includes(E))&&w.push(J.id),w),[]),D=L.filter(w=>x[w].settings[Be.FALLBACK]),v=Array.from(new Set([...D,...be(D,Object.values(x))])),O=L.filter(w=>[N.SELECTOR,N.MULTIHIERARCHY_SELECTOR].includes(x[w].type)),U=Array.from(new Set([...O,...be(O,Object.values(x))]));L=Array.from(new Set([...L,...v,...U,...be(L,Object.values(x))])),L.forEach(w=>{D.includes(w)?($[w]={...x[w],type:N.FALLBACK,original_type:x[w].type},delete x[w]):O.includes(w)&&($[w]={...x[w],settings:{...x[w].settings,[Be.DISABLED]:!0}},delete x[w]),U.includes(w)||delete x[w];}),await o(ze(L.filter(w=>!U.includes(w)))),await o(mr($));let B={...Nt(m.results),locale:u,...de()},q=async w=>await o(qe(w));await Mt({...x,...$},P,void 0,_,{locale:u,query:{...p,...i},variables:B},void 0,q,"section",S).then(async w=>{let J=Object.keys({...x,...$}).reduce((E,b)=>(w.variables[b]&&w.status[b]||E.push(b),E),[]);await Promise.all([o(ze(J)),o(Dt.setVariableChange({...w,attributes:B})),o(fr())]);});let M=Object.keys({...x,...$}).filter(w=>a&&s?w!==s:x[w]&&x[w].section_id!==c);return await o(ze(M)),{props:{buildTime:l}}}})}catch(r){return console.error("ERROR SSR",r),async()=>({notFound:!0})}}
73
+ `)}));}let v=await Promise.all(U).catch(O=>O.message);if(typeof v=="string"&&v)return {outputVariables:{},renderVariables:{},status:{error:v}};l=v.length===1?v[0].data:v.map(O=>O.data),d=v.reduce((O,F)=>O+JSON.stringify(F.data).length/1024,0),p=Math.max(...v.map(O=>O.requestDuration)),m=v.map(O=>O.apiDataSource?`${O.apiDataSource.name} (${O.apiDataSource.id})`:null),R=v.map(O=>O.finalUrl);}if(e.type===N.SELECTOR){let{config:L,log:U,error:v}=ko(e.id,e.contentByLocale[a].content.logic,t,r,!0);return {outputVariables:Qa(e.id,i,L),renderVariables:L,status:{log:U,error:v,allowed:c}}}if(e.type===N.MULTIHIERARCHY_SELECTOR){let{config:L,log:U,error:v}=xo(e.id,e.contentByLocale[a].content.logic,t,r,!0);return {outputVariables:Za(e.id,i,L),renderVariables:L,status:{log:U,error:v,allowed:c}}}if(e.type===N.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:c}};if(e.type===N.RELATED){let L=e.contentByLocale?.logic?.content?.simple?.compare||"variant",U=e.contentByLocale?.logic?.content?.simple?.limit||4,v=Object.keys(s).filter(b=>b.startsWith("report_id")).map(b=>s[b]),O=Object.keys(s).filter(b=>b.startsWith("dimension_id")).map(b=>s[b]),F=Object.keys(s).filter(b=>b.startsWith("variant_id")).map(b=>s[b]),B=Object.keys(s).filter(b=>b.startsWith("id")).map(b=>s[b]);if(!B.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let q=await Promise.all(B.map((b,T)=>o({mode:"ids",locale:a,ids:[b],output:"lite",variant:[F[T]]}))).then(b=>b.flatMap(T=>{let P=[];return Dr(T)?T.ok&&(P=T.data.results):P=T.results,P&&Array.isArray(P)?P:[]})).catch(b=>(console.error("Error getting related members",b),[]));if(O.length>1){let b=Object.keys(s).filter(V=>V.startsWith("variant_slug")).map(V=>s[V]),T=q.map((V,Q)=>{let W={mode:"related",locale:a,related:U??4,current_ids:[V.content_id],output:"full",variant_ids:[V.variant_id]};return Q===0&&(W.include_ids=[V.content_id]),W}),P=await Promise.all(T.map(V=>o(V))).then(V=>V.flatMap(Q=>{let W=[];return Dr(Q)?Q.ok&&(W=Q.data.results):W=Q.results,W&&Array.isArray(W)?W:[]})).catch(V=>(console.error("Error getting related members",V),[])),ne=P.reduce((V,Q)=>{let W=Q.variant_slug;return V[W]||(V[W]=[]),V[W].push(Q),V},{}),ae=[],Z=Object.keys(ne),J=[{combination:[],index:0}];for(;J.length>0;){let V=J.pop();if(!V)continue;let{combination:Q,index:W}=V;if(W===Z.length){ae.push(Q);continue}let ue=Z[W],se=ne[ue];for(let le of se)J.push({combination:[...Q,le],index:W+1});}return {outputVariables:{related_reports:ae.map(V=>{let Q=V.sort((W,ue)=>b.indexOf(W.variant_slug)-b.indexOf(ue.variant_slug));return {entities:Q,link:"/"+Q.map(W=>`${W.variant_slug}/${W.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:P.length>0}}}let M=q.map(b=>b.content_id),k={mode:"related",locale:a,related:U??4,current_ids:M,output:"full"};L&&(L==="report"?k.report_ids=v:L==="dimension"?k.dimension_ids=O:k.variant_ids=F);let H=await o(k).then(b=>{let T=[];return Dr(b)?b.ok&&(T=b.data.results):T=b.results,T&&Array.isArray(T)?T:[]}).catch(b=>(console.error("Error getting related members",b),[]));return {outputVariables:{related_reports:H.map(b=>({entities:[b],link:`/${b.variant_slug}/${b.slug}`}))},renderVariables:{},status:{log:[],allowed:H.length>0}}}let{logic:g}=es(e,a),S=Re(g,t,r),w=ct("resp",l||{},S,t,s,r),{vars:_,error:C,log:x}=w;if(typeof _!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:x,duration:p,responseSize:d,resp:l,api:f,allowed:c,apiFinalUrls:R,apiDataSources:m}};let $=Object.keys(_).reduce((L,U)=>({...L,[`${e.type}${e.id}${U}`]:_[U]}),{});return {renderVariables:_,outputVariables:[N.GENERATOR,N.SECTION_FLAG].includes(e.type)?_:$,status:{log:x,error:C,duration:p,responseSize:d,resp:l,api:f,allowed:c,apiFinalUrls:R,apiDataSources:m}}}function hu(e,t,r,o,n,a,s){return e.consumers.forEach(i=>{if(t[i]){let c=`${r}-${i}`;!o.includes(c)&&(t[i].section_id===t[r].section_id||!n)&&o.push(c),e.consumers.filter(l=>t[l]&&t[l].section_id===t[r].section_id||!n).forEach(l=>Co(l,t,o,!1,a,n,s));}})}var Co=(e,t,r=[],o=!0,n=!0,a=!0,s=[])=>{if(s.includes(e))return [];s.push(e);let i=t[e];return i&&i.inputs.length&&o&&i.inputs.forEach(c=>{let l=`${c}-${e}`;r.includes(l)||r.push(l),i.inputs.forEach(u=>Co(u,t,r,o,!1,a,s));}),i&&i.consumers.length&&n&&hu(i,t,e,r,a,n,s),r},Ru=(e,t,r,o)=>{let n=!0;if(e&&"allowed"in e.settings&&e.settings.allowed!=="always")if(e.settings.allowed==="never")n=!1;else {let a=he(t),{error:s,output:i}=ct("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},Nt=async(e,t,r,o,n,a={},s,i="section",c)=>{let l=i==="section",u=he(n),p=u.variables,d={...a.variables??{}},f={...a.status??{}},m=new Set,R=[],g={};r?g={...g,[r]:e[r]}:t?g=(t??[]).reduce((M,{id:k})=>({...M,...ts(k,e)}),{}):g=Object.values(e).filter(M=>Io(M)).reduce((M,k)=>({...M,[k.id]:k}),{});let S=Object.values(g).filter(M=>Io(M));if(S.length>0){Fe&&console.info("%crunConsumers: calculating section flags","color:purple",S.map(A=>A.id).join(", "));let M=Object.fromEntries(await Promise.all(S.map(async A=>[A.id,await ns(A,o,{...u,variables:p,locale:p.locale},s,c).then(b=>{let{outputVariables:T,status:P}=b;if(P.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${A.id}, Section ${A.section_id}) failed with message: ${P.error}. `);f[A.id]={allowed:!1,error:P.error},d[A.id]={};}return (A.consumers.length>0||[N.GENERATOR,N.SECTION_FLAG,N.RELATED].includes(A.type))&&P.allowed&&Object.keys(T).length>0?d[A.id]=T:d[A.id]={},i==="report"?(f[A.id]={allowed:P.allowed},[N.GENERATOR,N.SECTION_FLAG].includes(A.type)&&P.api&&(f[A.id].api=P.api)):f[A.id]=P,b})]))),H=Object.entries(M).filter(([,A])=>!A.outputVariables[oa]).map(([A])=>Number(A));m=new Set(H.map(A=>e[A].section_id)),Object.values(g).filter(A=>m.has(A.section_id)).forEach(A=>{R.push(A.id),delete g[A.id];}),Fe&&console.info("%crunConsumers: removing sections","color:purple",m.keys());}let w=m.size>0?Object.fromEntries(Object.entries(e).filter(([,M])=>m?.has(M.section_id)?(R.includes(M.id)||R.push(M.id),!1):!0)):e;if(R.length>0&&(w=Object.fromEntries(Object.entries(w).map(([M,k])=>{let H={...k,inputs:k.inputs.filter(A=>!R.includes(A)),consumers:k.consumers.filter(A=>!R.includes(A))};return [M,H]}))),!r&&!t)return {variables:{...a.variables??{},...d},status:{...a.status??{},...f}};i==="report"&&R.length>0&&R.forEach(M=>{delete d[M],delete f[M],delete e[M];}),Fe&&console.info("%crunConsumers: running root blocks","color:purple",Object.keys(g));let _=Object.keys(g).reduce((M,k)=>{let H=new Date,A=Co(Number(k),w,[],!r,!0,l).map(P=>P.split("-")),T=(new Date().getTime()-H.getTime())/1e3;return Fe&&console.info(`%cResolved dependencies for ${k} (${T.toFixed(2)}s)`,"color:blue"),[...M,...A]},[]),C=new Date,x=Object.keys(g).reduce((M,k)=>M.includes(k)?[...M]:[k,...M],iu(_)),L=(new Date().getTime()-C.getTime())/1e3;Fe&&console.info(`%cResolved DAG (${L.toFixed(2)}s): `,"color:green",x);let U=process.env.NEXT_PUBLIC_REPORTS_MAX_CONCURRENT_QUERIES_PER_REPORT,v=parseInt(`${U||0}`,10);async function O(M,k){let H=new Map,A=[],b=async()=>A.length;for(let T of M){if(v!==0){let Z=await b();for(;Z>=v;)Fe&&console.info("Too many pending promises, waiting...",Z,A),await new Promise(J=>setTimeout(J,500)),Z=await b();}let P=k[T],ae=Promise.all(P.inputs.filter(Z=>M.includes(String(Z))).map(Z=>H.get(Number(Z)))).then(async()=>{let Z=P.inputs.reduce((se,le)=>({...se,...d[le]}),p),J=P.inputs.find(se=>(P.settings?.ignoreCascade?P.settings?.ignoreCascade:[]).includes(se)||!f[se]?!1:!f[se].allowed||f[se].hiddenByCascade);if(J){f[T]={allowed:!1,hiddenByCascade:f[J].hiddenByCascade||J},d[T]={},A.splice(A.indexOf(Number(T)),1);return}let ie=new Date,V;typeof window<"u"&&[N.SELECTOR,N.MULTIHIERARCHY_SELECTOR].includes(P.type)&&P.settings[Be.DISABLED]?V=new Promise(se=>{se({outputVariables:d[T],status:f[T]});}):V=ns(P,o,{...u,variables:Z,locale:Z.locale},s,c);let Q=await V.then(({outputVariables:se,status:le})=>{if(le.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${T}, Section ${P.section_id}) failed with message: ${le.error}.`);f[T]={allowed:!1,error:le.error},d[T]={};}(P.consumers.length>0||[N.GENERATOR,N.SECTION_FLAG,N.RELATED].includes(P.type))&&le.allowed&&Object.keys(se).length>0?d[T]=se:d[T]={},i==="report"?(f[T]={allowed:le.allowed},[N.GENERATOR,N.SECTION_FLAG].includes(P.type)&&le.api&&(f[T].api=le.api)):f[T]=le;}),ue=(new Date().getTime()-ie.getTime())/1e3;return Fe&&console.info(`%cBlock ${P.id} resolved in ${ue.toFixed(3)}s`,ue>500?"color:red":"color:green"),f[T].duration=f[T].duration?f[T].duration:ue,A.splice(A.indexOf(Number(T)),1),Q}).catch(Z=>{throw A.splice(A.indexOf(Number(T)),1),Z});A.push(Number(T)),H.set(Number(T),ae);}await Promise.all(Array.from(H.values()));}let F=new Date;await O(x,w);let q=(new Date().getTime()-F.getTime())/1e3;return Fe&&console.info(`%cResolved Variables (${q.toFixed(2)}s), ${x.length} blocks`,"color:green"),{variables:{...a.variables??{},...d},status:{...a.status??{},...f}}};function bu(e=[]){return e.reduce((t,r,o)=>{if(r){let n=o+1;t[`id${n}`]=r.id,t[`name${n}`]=r.name,t[`slug${n}`]=r.slug,"attributes"in r&&Object.keys(r.attributes).forEach(a=>{t[`attr_${a}${n}`]=r.attributes[a];}),t[`variant_id${n}`]=r.variant_id,t[`variant_name${n}`]=r.variant_name,t[`variant_slug${n}`]=r.variant_slug,t[`dimension_id${n}`]=r.dimension_id,t[`dimension_name${n}`]=r.dimension_name,t.report_id=r.report_id,t.report_name=r.report_name;}return t},{})}var Dt=bu;function Su(e,t){return +(e<t)-+(e>t)}function Fr(e,t,r="ordering"){return Su(t[r],e[r])}var{localeDefault:Au}=j();var ir=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});ir.define({consumers:[ir],inputs:[ir]});var ss=new schema.Entity("variant"),is=new schema.Entity("dimension",{variants:[ss]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),cs=new schema.Entity("section",{blocks:[ir]}),Tu=new schema.Entity("report",{dimensions:[is],sections:[cs]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Fr):[]}}}),vu=new schema.Entity("formatter"),_u=new schema.Entity("datasource"),wu={report:Tu,section:cs,block:ir,dimension:is,variant:ss,formatter:vu,datasource:_u};function Vr(e,t){let r=wu[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:lt(o,"report"),dimension:lt(o,"dimension"),section:lt(o,"section"),block:lt(o,"block"),variant:lt(o,"variant"),formatter:lt(o,"formatter"),datasource:lt(o,"datasource")}}function lt(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:{}}var ls=(e,t=void 0)=>{let{sid:r,bid:o,previews:n=[],query:a={}}=t||{},s,i,c={};return r?(s=r,c.activeSection=s):s=e.activeSection,n.length>0?(i=n,c.previews=i.filter(Boolean)):i=e.previews,{parsedParams:{sid:s,bid:o,previews:i,query:a},statusPayload:c}},cr=(e=[],t=Au)=>e.reduce((r,o)=>{let n=On({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var me=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",$r=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[me];$r.includes(me)||$r.push(me);var xu={localeDefault:me,locales:$r,currentLocale:me,preferredLocale:me,showToolbar:!1,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:!0,settings:!1,reportEditor:!1},isCMS:!1,isRunConsumersRunning:[]},qr=createSlice({name:"status",initialState:xu,reducers:{setStatus:(e,t)=>{Object.assign(e,t.payload);},setPreviews(e,t){e.previews=t.payload;},setCurrentLocale(e,t){e.currentLocale=t.payload;},setPreferredLocale(e,t){e.preferredLocale=t.payload;},setSectionState(e,t){e.sectionState={...e.sectionState,...t.payload};},resetSectionState(e,t){e.sectionState={...e.sectionState,[t.payload]:{}};},setActiveEntity(e,t){e.activeEntity=t.payload;},openSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!0};},closeSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!1};},toggleSidebar(e,t){e.sidebarStatus={...e.sidebarStatus,[t.payload]:!e.sidebarStatus[t.payload]};},addRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.concat(t.payload);},removeRunConsumersRunning(e,t){e.isRunConsumersRunning=e.isRunConsumersRunning.filter(r=>!t.payload.includes(r));}},extraReducers:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),Pe=qr.actions;var Bu={attributes:{},variables:{},status:{}},zr=createSlice({name:"variables",initialState:Bu,reducers:{setVariableChange:(e,t)=>{e.attributes={...e.attributes,...t.payload.attributes},e.variables={...e.variables,...t.payload.variables},e.status={...e.status,...t.payload.status};}},extraReducers:{[HYDRATE]:(e,t)=>({attributes:{...e.attributes,...t.payload.variables.attributes},status:{...e.status,...t.payload.variables.status},variables:{...e.variables,...t.payload.variables.variables}})}}),Ut=zr.actions;var Mu={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}}},xe=createSlice({name:"records",initialState:Mu,reducers:{set:(e,t)=>{let r=t.payload;return {entities:lr(e.entities,r.entities||{}),requests:lr(e.requests,r.requests||{}),reports:r.reports||e.reports,tree:r.tree||e.tree}},setRequest:(e,t)=>{let r=t.payload;e.requests[r.type][r.key]=r;},setCreateRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let o=Array.isArray(r.data)?r.data:[r.data],n=Vr(r.type,o),a=lr(e.entities,n);if(e.entities=a,r.type==="report"){let s=r.data;e.reports?e.reports.indexOf(s.id)===-1&&(e.reports=[...e.reports,s.id]):e.reports=[s.id];}else if(r.type==="dimension"){let s=r.data;e.entities.report[s.report_id].dimensions.push(s.id),e.entities.report[s.report_id].dimensions=Gr(a.report[s.report_id].dimensions,a.dimension);}else if(r.type==="variant"){let s=r.data;e.entities.dimension[s.dimension_id].variants.push(s.id);}else if(r.type==="section"&&!Array.isArray(r.data)){let s=r.data;e.entities.report[s.report_id].sections.push(s.id),e.entities.report[s.report_id].sections=Gr(a.report[s.report_id].sections,a.section);}else if(r.type==="block")if(Array.isArray(r.data)){let s=r.data,i=s[0],c=s.map(l=>l.id);e.entities.section[i.section_id].blocks.concat(c);}else {let s=r.data;e.entities.section[s.section_id].blocks.push(s.id);}}},setReadRequest(e,t){let r=t.payload;if(r.type!=="report"&&(e.requests[r.type][r.key]=r),r.status==="SUCCESS"){let o=Vr(r.type,r.data),n=lr(e.entities,o);e.entities=n;}},setUpdateRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let o=Array.isArray(r.data)?r.data:[r.data],n=Vr(r.type,o),a,s,i;if(r.type==="block"&&!Array.isArray(r.data)){let l=e.entities.block[r.data.id].inputs,u=n.block[r.data.id].inputs;a=l.length!==u.length,a&&(i=l.length>u.length,s=i?l.filter(p=>!u.includes(p))[0]:u.filter(p=>!l.includes(p))[0]),Object.values(n.block).forEach(p=>{p.block_input&&delete n.block[p.id];});}let c=lr(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=Gr(c.report[l.report_id].dimensions,c.dimension);}else if(r.type==="section"&&!Array.isArray(r.data)){let l=r.data;e.entities.report[l.report_id].sections=Gr(c.report[l.report_id].sections,c.section);}else if(r.type==="block"&&!Array.isArray(r.data)){let l=r.data;a&&(i?e.entities.block[s].consumers=e.entities.block[s].consumers.filter(u=>u!==l.id):e.entities.block[s].consumers.push(l.id));}}},setDeleteRequest(e,t){let r=t.payload;if(e.requests[r.type][r.key]=r,r.status==="SUCCESS"){let{id:o,parentId:n,parentType:a}=r.data;if(delete e.entities[r.type][o],a&&n!=null){let s=`${r.type}s`;Nu(e.entities[a][n][s],o);}}},removeBlocks:(e,t)=>{let r=t.payload,o={...e.entities.block};return r.forEach(n=>{delete o[n];}),{...e,entities:{...e.entities,block:o}}},addBlocks:(e,t)=>{let r=t.payload;return {...e,entities:{...e.entities,block:{...e.entities.block,...r}}}},removeDataSourceLogic:e=>{let t={...e.entities.datasource};Object.keys(t).forEach(r=>{e.entities.datasource[r].content.useProxy&&(delete e.entities.datasource[r].content.logic,delete e.entities.datasource[r].content.testUrl,delete e.entities.datasource[r].content.access);});}},extraReducers:{[HYDRATE]:(e,t)=>{let r=t.payload.records,o=r.entities;return {entities:o,reports:Object.values(o.report).map(n=>n.id),requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},tree:r.tree}}}});function lr(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function Gr(e,t){return e.map(n=>t[n]).sort((n,a)=>typeof n.ordering=="string"&&typeof a.ordering=="string"?Fr(n,a):typeof n.ordering=="number"&&typeof a.ordering=="number"?n.ordering-a.ordering:String(n.ordering).localeCompare(String(a.ordering))).map(n=>n.id)}function Nu(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function ce(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];if(process.env.NODE_ENV!=="production"){var n=Gu[e],a=n?typeof n=="function"?n.apply(null,r):n:"unknown error nr: "+e;throw Error("[Immer] "+a)}throw Error("[Immer] minified error nr: "+e+(r.length?" "+r.map(function(s){return "'"+s+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function Ft(e){return !!e&&!!e[fe]}function dt(e){var t;return !!e&&(function(r){if(!r||typeof r!="object")return !1;var o=Object.getPrototypeOf(r);if(o===null)return !0;var n=Object.hasOwnProperty.call(o,"constructor")&&o.constructor;return n===Object||typeof n=="function"&&Function.toString.call(n)===ju}(e)||Array.isArray(e)||!!e[hs]||!!(!((t=e.constructor)===null||t===void 0)&&t[hs])||$o(e)||qo(e))}function pr(e,t,r){r===void 0&&(r=!1),$t(e)===0?(r?Object.keys:Ho)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e);}):e.forEach(function(o,n){return t(n,o,e)});}function $t(e){var t=e[fe];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:$o(e)?2:qo(e)?3:0}function No(e,t){return $t(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Du(e,t){return $t(e)===2?e.get(t):e[t]}function Rs(e,t,r){var o=$t(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function Uu(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function $o(e){return qu&&e instanceof Map}function qo(e){return zu&&e instanceof Set}function pt(e){return e.o||e.t}function zo(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Ku(e);delete t[fe];for(var r=Ho(t),o=0;o<r.length;o++){var n=r[o],a=t[n];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[n]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[n]});}return Object.create(Object.getPrototypeOf(e),t)}function Go(e,t){return t===void 0&&(t=!1),jo(e)||Ft(e)||!dt(e)||($t(e)>1&&(e.set=e.add=e.clear=e.delete=Fu),Object.freeze(e),t&&pr(e,function(r,o){return Go(o,!0)},!0)),e}function Fu(){ce(2);}function jo(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function ve(e){var t=Hu[e];return t||ce(18,e),t}function us(){return process.env.NODE_ENV==="production"||Vt||ce(0),Vt}function Bo(e,t){t&&(ve("Patches"),e.u=[],e.s=[],e.v=t);}function jr(e){Do(e),e.p.forEach(Vu),e.p=null;}function Do(e){e===Vt&&(Vt=e.l);}function ps(e){return Vt={p:[],l:Vt,h:e,m:!0,_:0}}function Vu(e){var t=e[fe];t.i===0||t.i===1?t.j():t.g=!0;}function Lo(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||ve("ES5").S(t,e,o),o?(r[fe].P&&(jr(t),ce(4)),dt(e)&&(e=Kr(t,e),t.l||Hr(t,e)),t.u&&ve("Patches").M(r[fe].t,e,t.u,t.s)):e=Kr(t,r,[]),jr(t),t.u&&t.v(t.u,t.s),e!==bs?e:void 0}function Kr(e,t,r){if(jo(t))return t;var o=t[fe];if(!o)return pr(t,function(i,c){return ds(e,o,t,i,c,r)},!0),t;if(o.A!==e)return t;if(!o.P)return Hr(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var n=o.i===4||o.i===5?o.o=zo(o.k):o.o,a=n,s=!1;o.i===3&&(a=new Set(n),n.clear(),s=!0),pr(a,function(i,c){return ds(e,o,n,i,c,r,s)}),Hr(e,n,!1),r&&e.u&&ve("Patches").N(o,r,e.u,e.s);}return o.o}function ds(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&ce(5),Ft(n)){var i=Kr(e,n,a&&t&&t.i!==3&&!No(t.R,o)?a.concat(o):void 0);if(Rs(r,o,i),!Ft(i))return;e.m=!1;}else s&&r.add(n);if(dt(n)&&!jo(n)){if(!e.h.D&&e._<1)return;Kr(e,n),t&&t.A.l||Hr(e,n);}}function Hr(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&Go(t,r);}function Oo(e,t){var r=e[fe];return (r?pt(r):e)[t]}function ms(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var o=Object.getOwnPropertyDescriptor(r,t);if(o)return o;r=Object.getPrototypeOf(r);}}function Uo(e){e.P||(e.P=!0,e.l&&Uo(e.l));}function Mo(e){e.o||(e.o=zo(e.t));}function Fo(e,t,r){var o=$o(t)?ve("MapSet").F(t,r):qo(t)?ve("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:us(),P:!1,I:!1,R:{},l:a,t:n,k:null,o:null,j:null,C:!1},c=i,l=Vo;s&&(c=[i],l=ur);var u=Proxy.revocable(c,l),p=u.revoke,d=u.proxy;return i.k=d,i.j=p,d}(t,r):ve("ES5").J(t,r);return (r?r.A:us()).p.push(o),o}function $u(e){return Ft(e)||ce(22,e),function t(r){if(!dt(r))return r;var o,n=r[fe],a=$t(r);if(n){if(!n.P&&(n.i<4||!ve("ES5").K(n)))return n.t;n.I=!0,o=fs(r,a),n.I=!1;}else o=fs(r,a);return pr(o,function(s,i){n&&Du(n.t,s)===i||Rs(o,s,t(i));}),a===3?new Set(o):o}(e)}function fs(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return zo(e)}var gs,Vt,Ko=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",qu=typeof Map<"u",zu=typeof Set<"u",ys=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",bs=Ko?Symbol.for("immer-nothing"):((gs={})["immer-nothing"]=!0,gs),hs=Ko?Symbol.for("immer-draftable"):"__$immer_draftable",fe=Ko?Symbol.for("immer-state"):"__$immer_state";var Gu={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(e){return "Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+e},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(e){return "Cannot apply patch, path doesn't resolve: "+e},16:'Sets cannot have "replace" patches.',17:function(e){return "Unsupported patch operation: "+e},18:function(e){return "The plugin for '"+e+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+e+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(e){return "produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+e+"'"},22:function(e){return "'current' expects a draft, got: "+e},23:function(e){return "'original' expects a draft, got: "+e},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},ju=""+Object.prototype.constructor,Ho=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Ku=Object.getOwnPropertyDescriptors||function(e){var t={};return Ho(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},Hu={},Vo={get:function(e,t){if(t===fe)return e;var r=pt(e);if(!No(r,t))return function(n,a,s){var i,c=ms(a,s);return c?"value"in c?c.value:(i=c.get)===null||i===void 0?void 0:i.call(n.k):void 0}(e,r,t);var o=r[t];return e.I||!dt(o)?o:o===Oo(e.t,t)?(Mo(e),e.o[t]=Fo(e.A.h,o,e)):o},has:function(e,t){return t in pt(e)},ownKeys:function(e){return Reflect.ownKeys(pt(e))},set:function(e,t,r){var o=ms(pt(e),t);if(o?.set)return o.set.call(e.k,r),!0;if(!e.P){var n=Oo(pt(e),t),a=n?.[fe];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(Uu(r,n)&&(r!==void 0||No(e.t,t)))return !0;Mo(e),Uo(e);}return e.o[t]===r&&(r!==void 0||t in e.o)||Number.isNaN(r)&&Number.isNaN(e.o[t])||(e.o[t]=r,e.R[t]=!0),!0},deleteProperty:function(e,t){return Oo(e.t,t)!==void 0||t in e.t?(e.R[t]=!1,Mo(e),Uo(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=pt(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){ce(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){ce(12);}},ur={};pr(Vo,function(e,t){ur[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};}),ur.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&ce(13),ur.set.call(this,e,t,void 0)},ur.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&ce(14),Vo.set.call(this,e[0],t,r,e[0])};var Wu=function(){function e(r){var o=this;this.O=ys,this.D=!0,this.produce=function(n,a,s){if(typeof n=="function"&&typeof a!="function"){var i=a;a=n;var c=o;return function(R){var g=this;R===void 0&&(R=i);for(var S=arguments.length,w=Array(S>1?S-1:0),_=1;_<S;_++)w[_-1]=arguments[_];return c.produce(R,function(C){var x;return (x=a).call.apply(x,[g,C].concat(w))})}}var l;if(typeof a!="function"&&ce(6),s!==void 0&&typeof s!="function"&&ce(7),dt(n)){var u=ps(o),p=Fo(o,n,void 0),d=!0;try{l=a(p),d=!1;}finally{d?jr(u):Do(u);}return typeof Promise<"u"&&l instanceof Promise?l.then(function(R){return Bo(u,s),Lo(R,u)},function(R){throw jr(u),R}):(Bo(u,s),Lo(l,u))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===bs&&(l=void 0),o.D&&Go(l,!0),s){var f=[],m=[];ve("Patches").M(n,l,f,m),s(f,m);}return l}ce(21,n);},this.produceWithPatches=function(n,a){if(typeof n=="function")return function(l){for(var u=arguments.length,p=Array(u>1?u-1:0),d=1;d<u;d++)p[d-1]=arguments[d];return o.produceWithPatches(l,function(f){return n.apply(void 0,[f].concat(p))})};var s,i,c=o.produce(n,a,function(l,u){s=l,i=u;});return typeof Promise<"u"&&c instanceof Promise?c.then(function(l){return [l,s,i]}):[c,s,i]},typeof r?.useProxies=="boolean"&&this.setUseProxies(r.useProxies),typeof r?.autoFreeze=="boolean"&&this.setAutoFreeze(r.autoFreeze);}var t=e.prototype;return t.createDraft=function(r){dt(r)||ce(8),Ft(r)&&(r=$u(r));var o=ps(this),n=Fo(this,r,void 0);return n[fe].C=!0,Do(o),n},t.finishDraft=function(r,o){var n=r&&r[fe];process.env.NODE_ENV!=="production"&&(n&&n.C||ce(9),n.I&&ce(10));var a=n.A;return Bo(a,o),Lo(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!ys&&ce(20),this.O=r;},t.applyPatches=function(r,o){var n;for(n=o.length-1;n>=0;n--){var a=o[n];if(a.path.length===0&&a.op==="replace"){r=a.value;break}}n>-1&&(o=o.slice(n+1));var s=ve("Patches").$;return Ft(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),ge=new Wu,Ju=ge.produce;ge.produceWithPatches.bind(ge);ge.setAutoFreeze.bind(ge);ge.setUseProxies.bind(ge);ge.applyPatches.bind(ge);ge.createDraft.bind(ge);ge.finishDraft.bind(ge);var Wr=Ju;var Ee=xe.actions,Ts=dr({block:Ve("block"),dimension:Ve("dimension"),formatter:Ve("formatter"),report:Ve("report"),section:Ve("section"),variant:Ve("variant"),datasource:Ve("datasource")}),oe=dr({block:$e("block"),dimension:$e("dimension"),formatter:$e("formatter"),report:$e("report"),section:$e("section"),variant:$e("variant"),datasource:$e("datasource")}),vs=dr({block:_e("block"),dimension:_e("dimension"),formatter:_e("formatter"),report:_e("report"),section:_e("section"),variant:_e("variant"),datasource:_e("datasource")}),_s=dr({block:mt("block"),dimension:mt("dimension"),formatter:mt("formatter"),report:mt("report"),section:mt("section"),variant:mt("variant"),datasource:mt("datasource")}),ws=dr({block:Es("block"),section:Es("section")});function dr(e){return (t,r)=>{let o=e[t];if(!o)throw new Error(`Attempting to dispatch action for invalid entity type '${t}'`);return o(r)}}function gt(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(Ee.setRequest({key:t,type:e,status:s}));}}function ft(e,t,r,o){return n=>{typeof window=="object"&&notifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(Ee.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function Ve(e){return t=>{let r=Jo(e,t);return (o,n,a)=>(o(gt(e,r)),pe(a,"create",e)(t).then(i=>(i.ok===!0?o(Ee.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(ft(e,r,i.status,i.error)),i)))}}function Zu(e){return t=>{let r=Jo(e,t[0]);return (o,n,a)=>(o(gt(e,r)),pe(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(Ee.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(ft(e,r,i.status,i.error)),i)))}}function Ss(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Xu(e){return e.section_id!==void 0}function ep(e){return e.report_id!==void 0}function Es(e){return t=>{let{create:r}=t;return (o,n,a)=>Ve(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:u}=t,p=xs(e,{id:l});if(o(gt(e,`${p}`)),e==="block"&&Xu(r)){let d=Wr(u,g=>{g.id=l;}),{contentByLocale:f}=d;f&&(d=Wr(d,g=>{g.id=l,g.contentByLocale=Object.keys(f).reduce((S,w)=>{let _=f?f[w]:{};return S[w]={..._,id:l},S},{});}));let R=d.inputs?.map(g=>({type:g.type,id:g.id,inputAction:{operation:"create",input:{input_id:g.id,block_id:d.id}}}));return R&&R.length>0&&As(e)([d,...R])(o,n,a).then(()=>$e("section")({id:d.section_id,include:!0})(o,n,a).then(g=>(g.ok&&o(Ee.setRequest({key:p,type:e,status:"SUCCESS",data:g.data})),g))),_e(e)(d)(o,n,a).then(g=>(g.ok&&o(Ee.setRequest({key:p,type:e,status:"SUCCESS",data:g.data})),g))}if(e==="section"&&ep(r)){let{id:d}=c,f=Wr(u,g=>{g.id=d;}),{blocks:m}=f,R=m?.map(g=>({type:g.type,blockcol:g.blockcol,blockrow:g.blockrow,section_id:d,locales:Object.keys(g.contentByLocale).map(S=>S)}));return R&&m&&await Zu("block")(R)(o,n,a).then(g=>{if(g.ok){let S=g.data,w=[],_=S.map((C,x)=>{let L={...C},U=L.id,v=m[x];v.contentByLocale&&(L.contentByLocale=Object.keys(v.contentByLocale).reduce((A,b)=>{let T=v.contentByLocale[b];return A[b]={...T,content:{...T.content},id:L.id},A},{}));let{settings:O}=v,{contentByLocale:F,id:B}=L;L.settings=O;let q={id:B,contentByLocale:F,settings:O};return v.inputs.map(A=>A.id).reduce((A,b)=>{let T=m.findIndex(P=>P.id===b);return [...A,T]},[]).map(A=>({...S[A],originalBlock:m[A]})).forEach(A=>{let{id:b,type:T,originalBlock:P}=A;if([N.SELECTOR,N.VIZ].includes(T)){if(q.contentByLocale?.logic?.content?.api){let ne=q.contentByLocale?.logic.content.api;q.contentByLocale.logic.content.api=Ss(`(selector${P.id}id)`,`selector${b}id`,ne);}if(q.contentByLocale?.logic?.content?.logic){let ne=q.contentByLocale.logic.content.logic;q.contentByLocale.logic.content.logic=Ss(`(selector${P.id}id)`,`selector${b}id`,ne);}}w.push({id:b,inputAction:{operation:"create",input:{input_id:b,block_id:U}}});}),q});return As("block")([..._,...w])(o,n,a)}}),_e(e)(f)(o,n,a).then(g=>(g.ok&&o(Ee.setRequest({key:p,type:e,status:"SUCCESS",data:g.data})),g))}return _e(e)({...u,id:c.id})(o,n,a)}})}}function $e(e){return t=>{let r=ks(e,t);return (o,n,a)=>{o(gt(e,r));let s=pe(a,"read",e);if(typeof s!="function"){let i=`Failed to get valid RPC method for entity "${e}"`;return o(ft(e,r,500,i)),Promise.reject(new Error(i))}return s(t).then(i=>(i.ok===!0?o(Ee.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(ft(e,r,i.status,i.error)),i))}}}function _e(e){return t=>{let r=Yo(e,t);return (o,n,a)=>(o(gt(e,r)),pe(a,"update",e)(t).then(i=>(i.ok===!0?o(Ee.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(ft(e,r,i.status,i.error)),i)))}}function As(e){return t=>{let r=Yo(e,t[0]);return (o,n,a)=>(o(gt(e,r)),pe(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(Ee.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(ft(e,r,i.status,i.error)),i)))}}function mt(e){return t=>{let r=Ps(e,t);return (o,n,a)=>(o(gt(e,r)),pe(a,"delete",e)(t).then(i=>{i.ok===!0?o(Ee.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(ft(e,r,i.status,i.error));}))}}function Jo(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function ks(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function Yo(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function Ps(e,t){return `delete(${e}, ${t})`}function xs(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:Is,setPreviews:tp,setSectionState:Cs,resetSectionState:Bs,setCurrentLocale:rp,setPreferredLocale:op,addRunConsumersRunning:Ls,removeRunConsumersRunning:Os}=Pe;function np(e,t){return async(r,o,n)=>{let a=await n.validateVariantSlug({dimension:e,slug:t});if("error"in a)throw new Error(a.error);return a.data}}function ap(e){return async(t,r,o)=>{let n=await o.searchReport(e);if("error"in n)throw new Error(n.error);return n.data}}function sp(){return async(e,t,r)=>{let o=await r.regenerateSearch(void 0);if("error"in o)throw new Error(o.error);return o.data}}function qe(e){return async(t,r,o)=>{let n=await o.readMember(e);if("error"in n)throw new Error(n.error);return n.data}}function ip(e){return async(t,r,o)=>{let n=await o.searchMember(e);if(n.ok===!0)return n.data;throw new Error(n.error)}}async function Ms(e,t,r,o){let n=r().status,a={...n,...o},s={...n.query,...o.query};Object.keys(s).forEach(c=>s[c]===void 0&&delete s[c]);let i={...a,query:s};t(Is(i)),n.activeSection&&t(Ns(e,{query:s}));}function cp(e,t){return async(r,o)=>Ms(e,r,o,{query:{[t]:void 0}})}function lp(e,t,r){return async(o,n)=>Ms(e,o,n,{query:{[t]:r}})}function Ns(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],c=e.datasourceFunctions,{parsedParams:l,statusPayload:u}=ls(n.status,t),{sid:p,bid:d,previews:f,query:m}=l;Object.keys(u).length&&r(Pe.setStatus(u));let R={...Dt(f),locale:a,...de()},g={variables:R,query:m,locale:a};r(Pe.addRunConsumersRunning([p]));let S=n.records.entities.section[p],w=async _=>r(qe(_));try{let _=await Nt(s,S&&[S],d,i,g,void 0,w,"section",c),{variables:C,status:x}=_;r(Ut.setVariableChange({attributes:R,variables:C,status:x})),r(Pe.removeRunConsumersRunning([p]));}catch(_){console.error("Error in runConsumers client side: recalculateVariables",_);}}}function mr(e){return async(t,r,o)=>{let n=await o.readMetadata(e);if("error"in n)throw new Error(n.error);return n.data}}function up(e){return async(t,r,o)=>{let n=await o.urlProxy(e);if("error"in n)throw new Error(n.error);return n.data}}function pp(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function dp(e){return async(t,r,o)=>{let n=await o.searchUser(e);if("error"in n)throw new Error(n.error);return n.data}}function mp(e){return async(t,r,o)=>{let n=await o.readUser({user_id:e});if("error"in n)throw new Error(n.error);return n.data}}function fp({user:e}){return async(t,r,o)=>{let n=await o.updateUser(e);if("error"in n)throw new Error(n.error);return n.data}}function gp(e){return async(t,r,o)=>{let n=await o.updateMyData(e);if("error"in n)throw new Error(n.error);return n.data}}function ze(e){let{removeBlocks:t}=xe.actions;return async r=>{await r(t(e));}}function fr(e){let{addBlocks:t}=xe.actions;return async r=>{await r(t(e));}}function yp(e){return async(t,r,o)=>{let n=await o.readPrivateBlocks({...e,roles:[]});if("error"in n)throw new Error(n.error);return n.data}}function hp(e){return async(t,r,o)=>{let n=await o.revalidateUrl({target:e.target});if("error"in n)throw new Error(n.error);return n.data}}function Rp(e){return async(t,r,o)=>{let n=await o.revalidateReport({reportId:e.reportId,profilePrefix:e.profilePrefix});if("error"in n)throw new Error(n.error);return n.data}}function bp(){return async(e,t,r)=>{let o=await r.readEnvSecrets({});if("error"in o)throw new Error(o.error);return o.data}}function gr(){let{removeDataSourceLogic:e}=xe.actions;return async t=>{await t(e());}}var Ds=()=>configureStore({reducer:{[xe.name]:xe.reducer,[qr.name]:qr.reducer,[zr.name]:zr.reducer},middleware(e){return e({thunk:{extraArgument:sr("/api/cms/")}})}}),ht=createWrapper(Ds);function vp(e){let t=process.cwd(),r=Tp.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(nl.readFileSync(r,"utf-8"));o=n.dependencies&&n.dependencies[e]&&n.dependencies[e].version!=="file:packages/reports"?n.dependencies[e].version:"0.dev";}catch{o="0.vercel";}return o||"Version not found"}function _p(e){let t=()=>Promise.resolve({}),{pathSegmentsKey:r="bespoke",preResolve:o=t,postResolve:n=t,authOptions:a={providers:[]}}=e||{};return ht.getServerSideProps(s=>{let{dispatch:i}=s;return async c=>{let l=await ye(c.req,c.res,a);if(!l)return {redirect:{destination:"/api/auth/signin?callbackUrl=/cms",permanent:!1}};let u=new Set([z.ADMIN,z.EDITOR,z.WRITER]);if(!(l?.user?.bespoke_roles||[]).some(S=>u.has(S)))return {redirect:{destination:"/",permanent:!1}};let d=c.query[r],[f]=Array.isArray(d)?d:[d];await i(at);let m=await vp("@datawheel/bespoke"),R=await o(s,c);if("redirect"in R)return {props:R};f==="reports"&&(Us(c.query[r])?await Promise.all([i(oe("formatter",{})),i(oe("datasource",{include:!0})),i(oe("report",{id:Us(c.query[r]),include:!0})),Pe.setStatus({isCMS:!0})]):await Promise.all([i(oe("report",{include:"dimensions"})),Pe.setStatus({isCMS:!0})])),f==="metadata"&&await i(oe("report",{include:"dimensions"})),f==="formatters"&&await i(oe("formatter",{})),f==="datasources"&&await i(oe("datasource",{include:!0}));let g=await n(s,c);return {props:{...R,...g,bespokeVersion:m,session:l}}}})}function Us(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:kp}=j(),Pp={pathSegment:"path",formatterFunctions:kp.reduce((e,t)=>({...e,[t]:{}}),{}),datasourceFunctions:[],profilePrefix:"path",siteProps:{}};createContext(Pp);j();var Yr=e=>e.records.entities.block;function qt(e){return t=>Object.values(t.records.entities[e])}var Qr=qt("section"),Zr=qt("formatter"),Gp=de();function Xr(e){return Object.values(e.records.entities.datasource||[]).sort((t,r)=>t.content.order>r.content.order?1:-1).map(t=>{let r={...Gp};return {...t,content:{...t.content,pattern:Re(t.content.pattern,{},{variables:r})}}})}var jp=async(e,t,r,o,n)=>{if(e.length===0)throw new Error("No slugs provided");let a=await t(r({mode:"slugs",locale:n,slugs:e,output:"full"})),s=a.results[0].report_id;if(a.results.length>1){if(a.results.every(m=>m.report_id===s)===!1)throw new Error("Members belong to different reports");let l=a.results.map(m=>m.dimension_id),u=new Set(l);if(l.length!==u.size)throw new Error("Members belong to same dimensions");let p=a.results.sort((m,R)=>m.dimension_ordering>R.dimension_ordering?1:-1).reduce((m,R,g)=>(m[R.variant_slug]=g,m),{}),d=e.reduce((m,R,g)=>(m[R.variantSlug]=g,m),{});if(!(Object.keys(p).length===Object.keys(d).length&&Object.keys(p).every(m=>Object.prototype.hasOwnProperty.call(d,m)&&p[m]===d[m])))throw new Error("Variant slugs do not match the expected dimension order")}let c=(await t(o({report_id:s,count:!1}))).data.find(l=>l.id===s);if(!c||a.results.length!==c.dimensions.length)throw new Error(`Missing members for report ID ${s}`);return a},eo=jp;function Kp(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=me,locales:a=[]}=o,s=[];if(r>0){let i=a.find(u=>u===n),{searchMember:c}=await tt().then(Lt),l=await c({query:"",limit:r,format:"plain",locale:i||me,noImage:!1,visible:!0,report:[],dimension:[],variant:[],includes:!0});l.ok===!0&&(s=l.data.results.map(u=>({locale:a.find(p=>p===u.locale),params:{bespoke:[u.variant.slug,u.slug]}})));}return {fallback:t,paths:s}}}function Hp(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return ht.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(at);let a=new Date().toISOString(),{locale:s=me,params:i={}}=n,c=Array.from(Zo(i[t])),l;try{l=await eo(c,o,qe,mr,s);}catch(v){return console.error("[Bespoke slug validation Failed]: Return 404:",v.message,`[${s}] -> /${c.map(O=>`${O.variantSlug}/${O.memberSlug}`).join("/")}`),{notFound:!0}}o(yt.setPreviews(l.results)),await Promise.all([o(oe("formatter",{})),o(oe("datasource",{include:!0})),o(oe("report",{id:l.results.map(v=>v.report_id),include:!0,locales:[s]}))]);let u=r.getState(),p=Zr(u),d=Xr(u),f=cr(p,s),m=Qr(u),R=Yr(u),g={...R},S={},w=Object.values(R).reduce((v,O)=>("access"in O.settings&&!["public","guest"].some(F=>!O.settings.access||O.settings.access.includes(F))&&v.push(O.id),v),[]),_=w.filter(v=>g[v].settings[Be.FALLBACK]),C=Array.from(new Set([..._,...be(_,Object.values(g))])),x=w.filter(v=>[N.SELECTOR,N.MULTIHIERARCHY_SELECTOR].includes(g[v].type)),$=Array.from(new Set([...x,...be(x,Object.values(g))]));w=Array.from(new Set([...w,...C,...$,...be(w,Object.values(g))])),w.forEach(v=>{_.includes(v)?(S[v]={...g[v],type:N.FALLBACK,original_type:g[v].type},delete g[v]):x.includes(v)&&(S[v]={...g[v],settings:{...g[v].settings,[Be.DISABLED]:!0}},delete g[v]),$.includes(v)||delete g[v];}),await o(ze(w.filter(v=>!$.includes(v)))),await o(fr(S));let L={...Dt(l.results),locale:s,...de()},U=async v=>await o(qe(v));return await Nt({...g,...S},m,void 0,f,{locale:s,query:i,variables:L},void 0,U,"report",d).then(async v=>{let O=Object.keys({...g,...S}).reduce((F,B)=>(v.variables[B]&&v.status[B]||F.push(B),F),[]);await o(ze(O)),await o(Ut.setVariableChange({...v,attributes:L})),await o(gr());}),{props:{buildTime:a}}}})}catch(r){console.error("ERROR SSR",r);}}function Zo(e=[]){let t=[].concat(e),r=0;return {next(){return {value:{variantSlug:t[r++],memberSlug:t[r++]},done:r>t.length}},[Symbol.iterator](){return this}}}function Wp(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return ht.getServerSideProps(r=>{let{dispatch:o}=r;return async n=>{let{section:a,block:s}=n.query,i=Object.fromEntries(Object.entries(n.query).filter(([k])=>k.match(/selector\d+id/)));if(!a&&!s)return {notFound:!0};let c=Number(a);await o(at);let l=new Date().toISOString(),{locale:u=me,params:p={},req:d}=n,f=Array.from(Zo(p[t])),m;try{m=await eo(f,o,qe,mr,u);}catch(k){return console.error("[Bespoke slug validation Failed]: Return 404:",k.message,`/${u}/${d.url}`),{notFound:!0}}o(yt.setPreviews(m.results)),await Promise.all([o(oe("formatter",{})),o(oe("datasource",{include:!0})),o(oe("report",{id:m.results.map(k=>k.report_id),include:!0,locales:[u]}))]);let R=r.getState(),g=Zr(R),S=Xr(R),w=cr(g,u),_=Qr(R).filter(k=>k.id===c),C=Yr(R),x={...C},$={},L=Object.values(C).reduce((k,H)=>("access"in H.settings&&!["public","guest"].some(A=>!H.settings.access||H.settings.access.includes(A))&&k.push(H.id),k),[]),U=L.filter(k=>x[k].settings[Be.FALLBACK]),v=Array.from(new Set([...U,...be(U,Object.values(x))])),O=L.filter(k=>[N.SELECTOR,N.MULTIHIERARCHY_SELECTOR].includes(x[k].type)),F=Array.from(new Set([...O,...be(O,Object.values(x))]));L=Array.from(new Set([...L,...v,...F,...be(L,Object.values(x))])),L.forEach(k=>{U.includes(k)?($[k]={...x[k],type:N.FALLBACK,original_type:x[k].type},delete x[k]):O.includes(k)&&($[k]={...x[k],settings:{...x[k].settings,[Be.DISABLED]:!0}},delete x[k]),F.includes(k)||delete x[k];}),await o(ze(L.filter(k=>!F.includes(k)))),await o(fr($));let B={...Dt(m.results),locale:u,...de()},q=async k=>await o(qe(k));await Nt({...x,...$},_,void 0,w,{locale:u,query:{...p,...i},variables:B},void 0,q,"section",S).then(async k=>{let H=Object.keys({...x,...$}).reduce((A,b)=>(k.variables[b]&&k.status[b]||A.push(b),A),[]);await Promise.all([o(ze(H)),o(Ut.setVariableChange({...k,attributes:B})),o(gr())]);});let M=Object.keys({...x,...$}).filter(k=>a&&s?k!==s:x[k]&&x[k].section_id!==c);return await o(ze(M)),{props:{buildTime:l}}}})}catch(r){return console.error("ERROR SSR",r),async()=>({notFound:!0})}}
74
74
 
75
- export { Dp as BespokeEmbedServerSideProps, Ll as BespokeEndpointNextJsHandlerFactory, ge as BespokeGetSession, Ws as BespokeHandleAuth, fp as BespokeManagerServerSideProps, Mp as BespokeRendererStaticPaths, Np as BespokeRendererStaticProps, oi as BespokeSearchUsersByMetadata, Qs as BespokeUpdateCurrentUserAppMetadata, Xs as BespokeUpdateCurrentUserMetadata, ti as BespokeWithApiRoleAuthRequired, Ml as ReportCrosswalkHandler, Bt as dbApiFactory, Ao as endpointKey, tt as getDB, at as useDatabaseApi };
75
+ export { Wp as BespokeEmbedServerSideProps, Gl as BespokeEndpointNextJsHandlerFactory, ye as BespokeGetSession, Xs as BespokeHandleAuth, _p as BespokeManagerServerSideProps, Kp as BespokeRendererStaticPaths, Hp as BespokeRendererStaticProps, ci as BespokeSearchUsersByMetadata, ri as BespokeUpdateCurrentUserAppMetadata, ni as BespokeUpdateCurrentUserMetadata, si as BespokeWithApiRoleAuthRequired, Kl as ReportCrosswalkHandler, Lt as dbApiFactory, vo as endpointKey, tt as getDB, at as useDatabaseApi };