@datawheel/bespoke 0.7.6-rc.6 → 0.7.6

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,37 +1,37 @@
1
1
  import { initAuth0 } from '@auth0/nextjs-auth0';
2
- import gs from 'auth0';
3
- import * as gi from 'pg';
2
+ import hs from 'auth0';
3
+ import * as hi from 'pg';
4
4
  import { Sequelize, Error as Error$1, Op, fn as fn$1, col, literal, where, cast, json, DataTypes, Model } from 'sequelize';
5
- import dr from 'yn';
6
- import * as Ds from 'd3-array';
7
- import * as Ns from 'd3-collection';
8
- import * as Us from 'd3-format';
9
- import * as Fs from 'd3-time-format';
5
+ import ir from 'yn';
6
+ import * as Us from 'd3-array';
7
+ import * as Fs from 'd3-collection';
8
+ import * as Vs from 'd3-format';
9
+ import * as zs from 'd3-time-format';
10
10
  import { formatAbbreviate } from 'd3plus-format';
11
11
  import { date } from 'd3plus-axis';
12
12
  import { assign, closest, merge, isObject } from 'd3plus-common';
13
13
  import { strip, titleCase } from 'd3plus-text';
14
- import yr from 'axios';
15
- import bi from 'slugify';
16
- import ki from 'flexsearch';
17
- import ji from 'base58';
18
- import Hi from 'flickr-sdk';
19
- import zi from 'sharp';
14
+ import dr from 'axios';
15
+ import Si from 'slugify';
16
+ import Pi from 'flexsearch';
17
+ import Wi from 'base58';
18
+ import Ji from 'flickr-sdk';
19
+ import qi from 'sharp';
20
20
  import { createApi } from 'unsplash-js';
21
- import ec from 'fs';
21
+ import rc from 'fs';
22
22
  import { createContext, createElement } from 'react';
23
23
  import { renderToString } from 'react-dom/server';
24
- import * as Gr from '@tabler/icons-react';
25
- import xc from 'nextjs-cors';
26
- import Ic from 'image-type';
27
- import Tc from 'formidable';
28
- import wc from 'dom-parser';
29
- import gu from 'path';
30
- import Ea from 'axios-retry';
24
+ import * as qr from '@tabler/icons-react';
25
+ import Bc from 'nextjs-cors';
26
+ import Mc from 'image-type';
27
+ import kc from 'formidable';
28
+ import Cc from 'dom-parser';
29
+ import hu from 'path';
30
+ import ba from 'axios-retry';
31
31
  import { format } from 'pretty-format';
32
- import Xc from 'toposort';
32
+ import rl from 'toposort';
33
33
  import { csvParse } from 'd3-dsv';
34
- import pl from 'next/config';
34
+ import ml from 'next/config';
35
35
  import { schema, normalize } from 'normalizr';
36
36
  import { createSlice, configureStore } from '@reduxjs/toolkit';
37
37
  import { HYDRATE, createWrapper } from 'next-redux-wrapper';
@@ -40,24 +40,24 @@ import 'react-redux';
40
40
  import 'react/jsx-runtime';
41
41
  import '@mantine/core';
42
42
 
43
- var is=Object.defineProperty;var cs=(e,t)=>{for(var r in t)is(e,r,{get:t[r],enumerable:!0});};var Q=initAuth0({secret:process.env.AUTH0_SECRET,issuerBaseURL:process.env.AUTH0_ISSUER_BASE_URL,baseURL:process.env.REPORTS_BASE_URL||process.env.AUTH0_BASE_URL,clientID:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET});var us=Q.getSession;var ps=async(e,t,r)=>r,ds=async(e,t,r)=>await Q.handleProfile(e,t,{afterRefetch:ps,refetch:r}),ms=Q.handleAuth({profile:async(e,t)=>{try{await ds(e,t,!1);}catch(r){console.error(r);}}});var E=class extends Error{constructor(r,o){super(o);this.code=r;}toJSON(){return Io(this)}static is(r){return Object.prototype.hasOwnProperty.call(r,"code")&&typeof r.code=="number"}};function fs(e){return {ok:!0,status:200,data:e}}function Io(e){return {ok:!1,status:E.is(e)?e.code:500,error:e.message}}function _(e){return t=>e(t).then(fs,Io)}function oe(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${fe(r)}`;return e[n]}let o=`${t}${fe(r)}`;return e[o]}function fe(e){return e[0].toUpperCase()+e.slice(1)}var z={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},Co={APP:"App",USER:"User"},Bo=e=>{let t=Object.values(z);return e?e.map(r=>({...r,type:t.includes(r.name)?Co.APP:Co.USER})):[]};var ys={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"").host,clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET},le=new gs.ManagementClient(ys);function Mo(){return async()=>{try{let e=await le.roles.getAll({include_totals:!0,per_page:100});return {roles:Bo(e.roles)}}catch(e){throw console.error("AuthZeroError",e),new E(e.response?.status||500,e.message)}}}function Lo(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0};if(e.role_id&&e.role_id!==""){let o={...r,id:e.role_id};t=await le.roles.getUsers(o);}else {let o={...r,q:e.query};t=await le.users.getAll(o);}}return t}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function Oo(){return async e=>{try{if(e){let t=await Promise.all([le.users.get({id:e}),le.users.getRoles({id:e})]);return {...t[0],roles:t[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 Do(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await Cr(e.user_id,e.app_metadata),e.user_metadata&&await Br(e.user_id,e.user_metadata),e.roles){let r=(await le.users.getRoles({id:e.user_id})).map(s=>s.id),o=e.roles.map(s=>s.id),n=o.filter(s=>!r.includes(s)),a=r.filter(s=>!o.includes(s));n.length>0&&await le.users.assignRoles({id:e.user_id},{roles:n}),a.length>0&&await le.users.removeRoles({id:e.user_id},{roles:a});}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 No(){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 Cr(e,t){return await le.users.updateAppMetadata({id:e},t)}async function Br(e,t){return await le.users.updateUserMetadata({id:e},t)}async function Uo(e,t){try{let r=await le.getUsers({search_engine:"v3",q:`user_metadata.${e}:"${t}"`});for(let o=0;o<r.length;o++){let n=r[o];n.bespoke_user_metadata=n.user_metadata||{},delete n.user_metadata,n.bespoke_roles=(await le.users.getRoles({id:n.user_id})).map(a=>a.name);}return r}catch(r){console.error(r);}}var hs=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await Q.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_app_metadata||{},...r};await Cr(s.user.sub,l),await Q.updateSession(e,t,{...s,user:{...i,bespoke_app_metadata:l}}),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),bs=hs;var Rs=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await Q.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_user_metadata||{},...r};await Br(s.user.sub,l),await Q.updateSession(e,t,{...s,user:{...i,bespoke_user_metadata:l}}),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),Ss=Rs;var xt=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function er(e,t){return e.some(r=>t.includes(r))}function tr(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var Es=(e,t)=>async function(r,o){let n=await Q.getSession(r,o);if(!n||!n.user){o.status(401).json({error:"not_authenticated",description:"The user does not have an active session or is not authenticated"});return}let a=n.user.bespoke_roles;if(t.length>0&&!er(a,t)){o.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(r,o);},As=Es;var Ts=(e,t)=>new Promise((r,o)=>{(async()=>{try{if(e&&t&&e!==""&&t!==""){let a=await Uo(e,t);r(a);}else o({error:"empty_params",description:"key or value params are empty"});}catch(a){o({error:a.message,description:"Error "});}})();}),vs=Ts;var Qe=(e=process.env)=>dr(e.REPORTS_LOGGING);var Pe=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 Ps(e){return Pe.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=>(Pe.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Pe.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),Pe.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),Pe)}var Fo=Ps;var rr=class extends Model{};function xs(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 Vo=xs;var or=class extends Model{};function Cs(e){return or.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}),()=>or}var zo=Cs;function Or(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 qo(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 Bs(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(Or(c)-Or(i)-Or(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*qo(a,s,i):o=1-l*qo(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Ms(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function It(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 Ls(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;)It(t,c,e,e)*.5+It(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;)It(t,c,e,e)*.5+It(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 Os(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,nr((1+p)*i/(1-i),p+1,1e10)+.5*nr((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,nr((1+p)*i/(1-i),0,p-1)+.5*nr((1+p)*i/(1-i),p,p)<u?i-=c:i+=c;let y=(1+p)*i/(1-i)/a;return {lci:d,uci:y}}function nr(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 $o={binomialCdf:Bs,binP:It,computeMidP:Ls,criticalValue:Ms,smr:Os};var we={d3:{...Ds,...Ns,...Us,...Fs},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:$o},Go={};var Se={UNILATERAL:"uni",MULTILATERAL:"multi"},Ie={SINGLE:"single",MULTI:"multi"};var Dr={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Hs={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Ws={FALLBACK:"fallback"};var Js={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"},Nr={GENERATOR:"generator",RELATED:"related",VIZ:"visualization"},Ur="logic",q={...Js,...Nr},Ho={NAME:"name",DESCRIPTION:"description",...Dr,...Hs,...Ws};var ar={FORMATTER:"formatter",FUNCTION:"function"},Ze={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var Xe=class extends Model{};function Zs(e){return Xe.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},name:{type:DataTypes.STRING,defaultValue:""},content:{type:DataTypes.JSONB,defaultValue:{description:"",testValue:"Foo",type:ar.FORMATTER,inputType:Ze.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:!0,timestamps:!1,hooks:{async afterSync(t){let r=await Xe.findAll();if(t.force||r.length===0){let o=Object.entries(Go).map(([n,a])=>({name:n,content:a}));await Xe.bulkCreate(o);}}}}),()=>Xe}var Wo=Zs;var Ct=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 ei(e){return Ct.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=>(Ct.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Ct)}var Jo=ei;var sr=class extends Model{};function ri(e){return sr.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}),()=>sr}var Yo=ri;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 ni(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 Qo=ni;var ot=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function si(e){return ot.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=>(ot.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:!1}),ot.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),ot)}var Zo=si;var nt=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function ci(e){return nt.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=>(nt.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),nt.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),nt)}var Xo=ci;var be=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 ui(e){return be.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=>(be.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),be.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),be.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),be.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),be.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),be)}var en=ui;var ir=class extends Model{};function di(e){return ir.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}),()=>ir}var tn=di;var Mt=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function fi(e){return Mt.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=>(Mt.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),Mt)}var rn=fi;var on={block:Fo,block_content:Vo,block_input:zo,formatter:Wo,image:Jo,image_content:Yo,report:Qo,dimension:Zo,variant:Xo,search:en,search_content:tn,section:rn};var nn=Qe(),an=process.env.REPORTS_DB_CONNECTION||"";if(!an)throw new Error(`
43
+ var ls=Object.defineProperty;var us=(e,t)=>{for(var r in t)ls(e,r,{get:t[r],enumerable:!0});};var te=initAuth0({secret:process.env.AUTH0_SECRET,issuerBaseURL:process.env.AUTH0_ISSUER_BASE_URL,baseURL:process.env.REPORTS_BASE_URL||process.env.AUTH0_BASE_URL,clientID:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET});var ds=te.getSession;var ms=async(e,t,r)=>r,fs=async(e,t,r)=>await te.handleProfile(e,t,{afterRefetch:ms,refetch:r}),gs=te.handleAuth({profile:async(e,t)=>{try{await fs(e,t,!1);}catch(r){console.error(r);}}});var S=class extends Error{constructor(r,o){super(o);this.code=r;}toJSON(){return wo(this)}static is(r){return Object.prototype.hasOwnProperty.call(r,"code")&&typeof r.code=="number"}};function ys(e){return {ok:!0,status:200,data:e}}function wo(e){return {ok:!1,status:S.is(e)?e.code:500,error:e.message}}function w(e){return t=>e(t).then(ys,wo)}function se(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${ge(r)}`;return e[n]}let o=`${t}${ge(r)}`;return e[o]}function ge(e){return e[0].toUpperCase()+e.slice(1)}var H={ADMIN:"Admin",EDITOR:"Editor",WRITER:"Writer"},xo={APP:"App",USER:"User"},Io=e=>{let t=Object.values(H);return e?e.map(r=>({...r,type:t.includes(r.name)?xo.APP:xo.USER})):[]};var Rs={domain:new URL(process.env.AUTH0_ISSUER_BASE_URL||"").host,clientId:process.env.AUTH0_CLIENT_ID,clientSecret:process.env.AUTH0_CLIENT_SECRET},le=new hs.ManagementClient(Rs);function Co(){return async()=>{try{let e=await le.roles.getAll({include_totals:!0,per_page:100});return {roles:Io(e.roles)}}catch(e){throw console.error("AuthZeroError",e),new S(e.response?.status||500,e.message)}}}function Bo(){return async e=>{try{let t;if(e){let r={include_totals:!0,per_page:10,page:e.page||0};if(e.role_id&&e.role_id!==""){let o={...r,id:e.role_id};t=await le.roles.getUsers(o);}else {let o={...r,q:e.query};t=await le.users.getAll(o);}}return t}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Mo(){return async e=>{try{if(e){let t=await Promise.all([le.users.get({id:e}),le.users.getRoles({id:e})]);return {...t[0],roles:t[1]}}else throw new S(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Lo(){return async e=>{try{if(e.user_id){if(e.app_metadata&&await xr(e.user_id,e.app_metadata),e.user_metadata&&await Ir(e.user_id,e.user_metadata),e.roles){let r=(await le.users.getRoles({id:e.user_id})).map(s=>s.id),o=e.roles.map(s=>s.id),n=o.filter(s=>!r.includes(s)),a=r.filter(s=>!o.includes(s));n.length>0&&await le.users.assignRoles({id:e.user_id},{roles:n}),a.length>0&&await le.users.removeRoles({id:e.user_id},{roles:a});}return {status:"success",message:"User updated!"}}else throw new S(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}function Oo(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new S(t.response?.status||500,t.message)}}}async function xr(e,t){return await le.users.updateAppMetadata({id:e},t)}async function Ir(e,t){return await le.users.updateUserMetadata({id:e},t)}async function No(e,t){try{let r=await le.getUsers({search_engine:"v3",q:`user_metadata.${e}:"${t}"`});for(let o=0;o<r.length;o++){let n=r[o];n.bespoke_user_metadata=n.user_metadata||{},delete n.user_metadata,n.bespoke_roles=(await le.users.getRoles({id:n.user_id})).map(a=>a.name);}return r}catch(r){console.error(r);}}var bs=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await te.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_app_metadata||{},...r};await xr(s.user.sub,l),await te.updateSession(e,t,{...s,user:{...i,bespoke_app_metadata:l}}),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),Ss=bs;var Es=(e,t,r)=>new Promise((o,n)=>{(async()=>{try{let s=await te.getSession(e,t);if(!s||!s.user)throw new Error("not_authenticated");{let{user:i}=s,l={...s.user.bespoke_user_metadata||{},...r};await Ir(s.user.sub,l),await te.updateSession(e,t,{...s,user:{...i,bespoke_user_metadata:l}}),o({error:"",description:`App metadata updated for user ${s.user.email}`});}}catch(s){n({error:s.message,description:"The user does not have an active session or is not authenticated"});}})();}),As=Es;var Et=(e,t)=>t&&typeof t=="string"?t.split(".").reduce((r,o)=>r[o],e):e;function Jt(e,t){return e.some(r=>t.includes(r))}function Yt(e){return e.filter((t,r,o)=>o.indexOf(t)===r)}var Ts=(e,t)=>async function(r,o){let n=await te.getSession(r,o);if(!n||!n.user){o.status(401).json({error:"not_authenticated",description:"The user does not have an active session or is not authenticated"});return}let a=n.user.bespoke_roles;if(t.length>0&&!Jt(a,t)){o.status(402).json({error:"unauthorize",description:"The user requires some specific roles"});return}await e(r,o);},vs=Ts;var _s=(e,t)=>new Promise((r,o)=>{(async()=>{try{if(e&&t&&e!==""&&t!==""){let a=await No(e,t);r(a);}else o({error:"empty_params",description:"key or value params are empty"});}catch(a){o({error:a.message,description:"Error "});}})();}),ks=_s;var We=(e=process.env)=>ir(e.REPORTS_LOGGING);var Pe=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 xs(e){return Pe.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=>(Pe.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Pe.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),Pe.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),Pe)}var Do=xs;var Qt=class extends Model{};function Cs(e){return Qt.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}),()=>Qt}var Uo=Cs;var Zt=class extends Model{};function Ms(e){return Zt.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}),()=>Zt}var Fo=Ms;function Mr(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 Vo(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 Ls(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(Mr(c)-Mr(i)-Mr(s)+s*Math.log(a)+i*Math.log(1-a));a<(s+1)/(c+2)?o=l*Vo(a,s,i):o=1-l*Vo(1-a,i,s),n=1-o;}return Math.round(n*1e5)/1e5}function Os(e){return {.99999:15.137,.99:6.635,.95:3.841,.9:2.706}[e]}function At(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 Ns(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;)At(t,c,e,e)*.5+At(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;)At(t,c,e,e)*.5+At(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 Ds(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,Xt((1+p)*i/(1-i),p+1,1e10)+.5*Xt((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,Xt((1+p)*i/(1-i),0,p-1)+.5*Xt((1+p)*i/(1-i),p,p)<u?i-=c:i+=c;let y=(1+p)*i/(1-i)/a;return {lci:d,uci:y}}function Xt(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 zo={binomialCdf:Ls,binP:At,computeMidP:Ns,criticalValue:Os,smr:Ds};var we={d3:{...Us,...Fs,...Vs,...zs},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:zo},$o={};var Ee={UNILATERAL:"uni",MULTILATERAL:"multi"},Ie={SINGLE:"single",MULTI:"multi"};var Lr={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Js={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},Ys={FALLBACK:"fallback"};var Qs={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"},Or={GENERATOR:"generator",RELATED:"related",VIZ:"visualization",SECTION_FLAG:"section_flag"},Nr="logic",N={...Qs,...Or},Ko={NAME:"name",DESCRIPTION:"description",...Lr,...Js,...Ys};var er={FORMATTER:"formatter",FUNCTION:"function"},Je={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var Ye=class extends Model{};function ei(e){return Ye.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:Je.STRING,logic:"return n;"}}},{sequelize:e,modelName:"formatter",tableName:"bespoke_reports_formatter",freezeTableName:!0,timestamps:!1,hooks:{async afterSync(t){let r=await Ye.findAll();if(t.force||r.length===0){let o=Object.entries($o).map(([n,a])=>({name:n,content:a}));await Ye.bulkCreate(o);}}}}),()=>Ye}var jo=ei;var Tt=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 ri(e){return Tt.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=>(Tt.hasMany(t.image_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Tt)}var Ho=ri;var tr=class extends Model{};function ni(e){return tr.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}),()=>tr}var Wo=ni;var Ze=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 si(e){return Ze.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=>(Ze.hasMany(t.dimension,{foreignKey:"report_id",sourceKey:"id",as:"dimensions"}),Ze.hasMany(t.section,{foreignKey:"report_id",sourceKey:"id",as:"sections"}),Ze)}var Jo=si;var et=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function ci(e){return et.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=>(et.hasMany(t.variant,{foreignKey:"dimension_id",sourceKey:"id",as:"variants",constraints:!1}),et.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),et)}var Yo=ci;var tt=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function ui(e){return tt.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=>(tt.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),tt.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),tt)}var Qo=ui;var be=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 di(e){return be.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=>(be.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),be.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),be.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),be.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),be.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),be)}var Zo=di;var rr=class extends Model{};function fi(e){return rr.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}),()=>rr}var Xo=fi;var _t=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function yi(e){return _t.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=>(_t.hasMany(t.block,{foreignKey:"section_id",sourceKey:"id",as:"blocks"}),_t)}var en=yi;var tn={block:Do,block_content:Uo,block_input:Fo,formatter:jo,image:Ho,image_content:Wo,report:Jo,dimension:Yo,variant:Qo,search:Zo,search_content:Xo,section:en};var rn=We(),on=process.env.REPORTS_DB_CONNECTION||"";if(!on)throw new Error(`
44
44
  Env var 'REPORTS_DB_CONNECTION' is not present.
45
45
  This is required to connect to a database to save the Reports CMS changes.
46
- `);var Le=()=>{if(global.sequelize)nn&&console.log("\u267B\uFE0F RE-UTILIZING DB CONNECTION");else {nn&&console.log("\u{1F511} INITIALIZING DB CONNECTION");let e;try{e=new Sequelize(an,{logging:!1,dialectModule:gi,pool:{max:10,min:1,acquire:5*1e3,idle:10*1e3,evict:1*1e3}});}catch(t){throw new Error(`
46
+ `);var Le=()=>{if(global.sequelize)rn&&console.log("\u267B\uFE0F RE-UTILIZING DB CONNECTION");else {rn&&console.log("\u{1F511} INITIALIZING DB CONNECTION");let e;try{e=new Sequelize(on,{logging:!1,dialectModule:hi,pool:{max:10,min:1,acquire:5*1e3,idle:10*1e3,evict:1*1e3}});}catch(t){throw new Error(`
47
47
  Could not connect to the database using the given connection string.
48
48
  Please check that the connection string 'REPORTS_DB_CONNECTION' is correct.
49
49
  Details:
50
50
  ${t.message}
51
- `)}Object.values(on).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),`
51
+ `)}Object.values(tn).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),`
52
52
  Error initializing sequelize connection:
53
- `,t.stack||t.message),global.sequelize=void 0;}).then(()=>({...e.models,sequelize:e}));}return global.sequelize};var F=()=>{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}};function N(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 Lt(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}function Ri(e){return e?bi(Lt(N(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var cr=Ri;var Ot=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{localeDefault:zr}=F();function ln(e){let{search:t,search_content:r}=e;return o;async function o(a){let{id:s,config:i={},settings:c={}}=a,l=i[zr]?zr:Object.keys(i)[0],{overrideNames:u,overrideAttributes:p}=Ot(c),{accessor:d,path:m,idKey:y,labelKey:h}=i[zr];if(!m||!y||!h)return;let b=await yr.get(m).catch(S=>({data:[],error:S})),A=xt(b.data,d),v=[];try{console.log(`Ingesting default items for variant ${a.name} for ${l}`),v=await n(a,l,A);}catch(S){let M=`[ERROR] Ingesting default member items for ${l}`;throw console.error(M,S),new E(500,M)}let P=await t.findAll({where:{variant_id:s}}).then(S=>Object.fromEntries(S.map(M=>[M.id,{content_id:M.content_id,needsUpdate:v.includes(M.content_id)}]))),R=Object.entries(i).map(async([S,M])=>{let{path:I,accessor:T,idKey:U,labelKey:L,attributes:V=[]}=M;if(!I||!U||!L)return;let X=await yr.get(I).catch(j=>({data:[],error:j})),H=xt(X.data,T),x=await r.findAll({where:{id:v,locale:S}}).then(j=>Object.fromEntries(j.map(w=>[w.id,w.toJSON()]))),$=H.filter(j=>j[U]&&j[U]!==""&&j[L]&&j[L]!=="").map(j=>{let w=P[j[U]],C,D=Object.fromEntries(V.map(G=>[G.name,G.type==="constant"?G.value:j[G.value]||""]));return w.needsUpdate&&x[w.content_id]?(C={...x[w.content_id]},u&&(C.name=j[L]),p&&(C.attributes=D)):C={id:w.content_id,locale:S,name:j[L],attributes:D},C});try{return r.bulkCreate($,{updateOnDuplicate:["name","attributes"]})}catch(j){let w=`[ERROR] Ingesting search content items for ${S}`;throw console.error(w,j),new E(500,w)}});await Promise.all(R);}async function n(a,s,i){let{id:c,dimension_id:l,slug:u}=a,{report_id:p}=a.dimension,{idKey:d,labelKey:m,zValueKey:y}=a.config[s],{overrideNames:h,regenerateSlugs:b,keepOldMembers:A,overrideRelevance:v,overrideAttributes:P}=Ot(a.settings),R=t.findAll({attributes:["slug",[fn$1("COUNT",col("variant.id")),"slugCount"]],include:{association:"variant",attributes:[],required:!1,right:!0,where:{dimension_id:l,slug:u,id:{[Op.not]:c}}},group:"search.slug"}).then(w=>Object.fromEntries(w.map(C=>{let D=C.getDataValue("slugCount");return [C.slug,Number.parseInt(`${D}`,10)]}))),S=t.findAll({where:{variant_id:c}}).then(w=>Object.fromEntries(w.map(C=>[C.id,C.toJSON()]))),[M,I]=await Promise.all([R,S]),T=Object.values(I).map(w=>w.slug),U=[],L=null,V=null;if(y&&y!==""){for(let w of i)if(typeof w[y]=="number"&&!isNaN(w[y])){let C=w[y];(L===null||C<L)&&(L=C),(V===null||C>V)&&(V=C);}}let X=[],H=[],x=[],$=!1;i.filter(w=>w[d]&&w[d]!==""&&w[m]&&w[m]!=="").forEach(w=>{let C=w[d],D=cr(w[m]);$=!1;let G=parseFloat(Math.random().toPrecision(5));if(y&&y!==""&&L&&V&&w[y]){let k;try{k=parseInt(w[y],10);}catch{k=0;}let W=V!==null&&L!==null&&V!==L?(k-L)/(V-L):0;G=V===L?1:parseFloat(W.toPrecision(5));}if(I[C]){if(h||b||v||P){let k=I[C];if((h||P)&&x.push(k.content_id),h&&b){let W=Object.values(I).filter(me=>me.id!==C).map(me=>me.slug),ne=M[D]||W.includes[D]||U.includes(D);ne&&console.log("Duplicate slug!",D,"replaced by",`${D}-${C}`);let ae=ne?`${D}-${C}`:D;k.slug!==ae&&(k.slug=ae,U.push(D),$=!0,console.log("UPDATE SLUG",C,D));}y&&y!==""&&v&&k.zvalue!==G&&(k.zvalue=G,$=!0,console.log("UPDATE ZVALUE",C,G)),$&&H.push(k);}}else {console.log("INSERT ID",C);let k=M[D]||T.includes[D]||U.includes(D);k&&console.log("Duplicate slug!",D,"replaced by",`${D}-${C}`);let W=k?`${D}-${C}`:D;U.push(D),X.push({id:C,slug:W,variant_id:c,dimension_id:l,report_id:p,zvalue:G});}});let j=[];if(!A){let w=i.map(C=>C[d]);j=Object.keys(I).filter(C=>!w.includes(C));}try{return (X.length>0||H.length>0)&&(await t.bulkCreate([...X,...H],{updateOnDuplicate:["slug","zvalue"]}),console.log("New members ingested:",X.length),console.log("New members updated:",H.length)),j.length>0&&(await t.destroy({where:{id:{[Op.in]:j}}}),console.log("Old members deleted:",j.length)),x}catch(w){throw console.error(`[ERROR] Ingesting search members for ${s}`,w),new Error(w)}}}function pn(e){let{search:t}=e;return r;async function r(o){let{all:n,locale:a,mode:s,variant:i,output:c}=o,l={content_id:[],...i&&i.length?{variant_id:i}:{}};if(s==="content_ids")l.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=await t.findAll({attributes:["content_id"],where:{id:o.ids,...i&&i.length?{variant_id:i}:{}},include:[{association:"contentByLocale",where:{locale:a}}]});l.content_id=m.map(y=>y.content_id);}else if(s==="slugs"){let m=o.slugs.map(h=>t.findAll({attributes:["content_id"],where:{slug:h.memberSlug},include:{association:"variant",attributes:["id","name","slug"],required:!0,where:{slug:h.variantSlug}}})),y=await Promise.all(m).then(h=>h.reduce((b,A)=>b.concat(A),[]));l.content_id=y.map(h=>h.content_id);}else if(s==="related"){let m=()=>{if(o.variant_ids?.length)return {variant_id:o.variant_ids.map(h=>h)};if(o.dimension_ids?.length)return {dimension_id:o.dimension_ids.map(h=>h)};if(o.report_ids?.length)return {report_id:o.report_ids.map(h=>h)}},y=await t.findAll({attributes:["content_id"],where:{...m(),content_id:{[Op.notIn]:o.current_ids},visible:!0},order:[Sequelize.fn("RANDOM")],limit:o.related||4});l.content_id=y.map(h=>h.content_id);}else if(s==="whole"){let m={...i&&i.length?{variant_id:i}:{}},y=await t.findAll({attributes:["content_id"],where:m});l.content_id=y.map(h=>h.content_id);}let u={locale:n?{[Op.ne]:null}:a},p=await t.findAll({where:l,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:u}]},{association:"contentByLocale",where:u}]});if(!["related","whole"].includes(s)&&o[s]&&p.length!==o[s].length)throw new E(404,"One or more members were not found.");p.sort((m,y)=>l.content_id.indexOf(m.content_id)-l.content_id.indexOf(y.content_id));let d=p.map(m=>{let y,h={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,variant_id:m.variant_id,variant_name:m.variant.name,variant_slug:m.variant.slug};if(n){let b=m.contentByLocale;h.contentByLocale=b,h.image=m.image,h.image_id=m.image_id,y=h;}else {let b=m.getContent(a),A=m.image?.getContent(a),v=A&&{id:m.image.id,author:m.image.author,url:m.image.url,license:m.image.license,meta:A.meta};y={...h,locale:b.locale,name:b.name,attributes:b.attributes,keywords:b.keywords,image:v||null,image_id:m.image_id};}return c==="lite"&&(delete y.image,delete y.image_id),y});return {meta:o,results:d}}}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 vi(e,t=!0){if(!e)return "";let r=Lt(N(e.toLowerCase()));return (t?bi(r,{replacement:" ",remove:/[*+~.()'"!:@-]/g,lower:!0,strict:!1,trim:!0}):r).replace(/\s\s+/g," ")}var at=vi;var lr=[{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"]}],_i=lr.reduce((e,t)=>e.concat(t.locales),[]),Dt=Qe(),{locales:Pi}=F(),wi=Pi.filter(e=>_i.includes(e)),qr=!1,xi=async(e,t=!1)=>{if(t&&(Dt&&console.log("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.flexsearch=void 0,qr=!1),global.flexsearch)return Dt&&console.log("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.flexsearch;try{qr||(Dt&&console.log("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),qr=!0,global.flexsearch=await Ii(e));}catch(r){throw new Error(`
53
+ `,t.stack||t.message),global.sequelize=void 0;}).then(()=>({...e.models,sequelize:e}));}return global.sequelize};var K=()=>{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}};function G(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 kt(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}function Ei(e){return e?Si(kt(G(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var or=Ei;var Pt=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{localeDefault:Fr}=K();function sn(e){let{search:t,search_content:r}=e;return o;async function o(a){let{id:s,config:i={},settings:c={}}=a,l=i[Fr]?Fr:Object.keys(i)[0],{overrideNames:u,overrideAttributes:p}=Pt(c),{accessor:d,path:m,idKey:y,labelKey:R}=i[Fr];if(!m||!y||!R)return;let h=await dr.get(m).catch(b=>({data:[],error:b})),T=Et(h.data,d),k=[];try{console.log(`Ingesting default items for variant ${a.name} for ${l}`),k=await n(a,l,T);}catch(b){let M=`[ERROR] Ingesting default member items for ${l}`;throw console.error(M,b),new S(500,M)}let I=await t.findAll({where:{variant_id:s}}).then(b=>Object.fromEntries(b.map(M=>[M.id,{content_id:M.content_id,needsUpdate:k.includes(M.content_id)}]))),E=Object.entries(i).map(async([b,M])=>{let{path:D,accessor:F,idKey:Z,labelKey:W,attributes:L=[]}=M;if(!D||!Z||!W)return;let z=await dr.get(D).catch(O=>({data:[],error:O})),j=Et(z.data,F),_=await r.findAll({where:{id:k,locale:b}}).then(O=>Object.fromEntries(O.map(v=>[v.id,v.toJSON()]))),A=j.filter(O=>O[Z]&&O[Z]!==""&&O[W]&&O[W]!=="").map(O=>{let v=I[O[Z]],P,$=Object.fromEntries(L.map(X=>[X.name,X.type==="constant"?X.value:O[X.value]||""]));return v.needsUpdate&&_[v.content_id]?(P={..._[v.content_id]},u&&(P.name=O[W]),p&&(P.attributes=$)):P={id:v.content_id,locale:b,name:O[W],attributes:$},P});try{return r.bulkCreate(A,{updateOnDuplicate:["name","attributes"]})}catch(O){let v=`[ERROR] Ingesting search content items for ${b}`;throw console.error(v,O),new S(500,v)}});await Promise.all(E);}async function n(a,s,i){let{id:c,dimension_id:l,slug:u}=a,{report_id:p}=a.dimension,{idKey:d,labelKey:m,zValueKey:y}=a.config[s],{overrideNames:R,regenerateSlugs:h,keepOldMembers:T,overrideRelevance:k,overrideAttributes:I}=Pt(a.settings),E=t.findAll({attributes:["slug",[fn$1("COUNT",col("variant.id")),"slugCount"]],include:{association:"variant",attributes:[],required:!1,right:!0,where:{dimension_id:l,slug:u,id:{[Op.not]:c}}},group:"search.slug"}).then(v=>Object.fromEntries(v.map(P=>{let $=P.getDataValue("slugCount");return [P.slug,Number.parseInt(`${$}`,10)]}))),b=t.findAll({where:{variant_id:c}}).then(v=>Object.fromEntries(v.map(P=>[P.id,P.toJSON()]))),[M,D]=await Promise.all([E,b]),F=Object.values(D).map(v=>v.slug),Z=[],W=null,L=null;if(y&&y!==""){for(let v of i)if(typeof v[y]=="number"&&!isNaN(v[y])){let P=v[y];(W===null||P<W)&&(W=P),(L===null||P>L)&&(L=P);}}let z=[],j=[],_=[],A=!1;i.filter(v=>v[d]&&v[d]!==""&&v[m]&&v[m]!=="").forEach(v=>{let P=v[d],$=or(v[m]);A=!1;let X=parseFloat(Math.random().toPrecision(5));if(y&&y!==""&&W&&L&&v[y]){let x;try{x=parseInt(v[y],10);}catch{x=0;}let Y=L!==null&&W!==null&&L!==W?(x-W)/(L-W):0;X=L===W?1:parseFloat(Y.toPrecision(5));}if(D[P]){if(R||h||k||I){let x=D[P];if((R||I)&&_.push(x.content_id),R&&h){let Y=Object.values(D).filter(B=>B.id!==P).map(B=>B.slug),U=M[$]||Y.includes[$]||Z.includes($);U&&console.log("Duplicate slug!",$,"replaced by",`${$}-${P}`);let V=U?`${$}-${P}`:$;x.slug!==V&&(x.slug=V,Z.push($),A=!0,console.log("UPDATE SLUG",P,$));}y&&y!==""&&k&&x.zvalue!==X&&(x.zvalue=X,A=!0,console.log("UPDATE ZVALUE",P,X)),A&&j.push(x);}}else {console.log("INSERT ID",P);let x=M[$]||F.includes[$]||Z.includes($);x&&console.log("Duplicate slug!",$,"replaced by",`${$}-${P}`);let Y=x?`${$}-${P}`:$;Z.push($),z.push({id:P,slug:Y,variant_id:c,dimension_id:l,report_id:p,zvalue:X});}});let O=[];if(!T){let v=i.map(P=>P[d]);O=Object.keys(D).filter(P=>!v.includes(P));}try{return (z.length>0||j.length>0)&&(await t.bulkCreate([...z,...j],{updateOnDuplicate:["slug","zvalue"]}),console.log("New members ingested:",z.length),console.log("New members updated:",j.length)),O.length>0&&(await t.destroy({where:{id:{[Op.in]:O},variant_id:c}}),console.log("Old members deleted:",O.length)),_}catch(v){throw console.error(`[ERROR] Ingesting search members for ${s}`,v),new Error(v)}}}function cn(e){let{search:t}=e;return r;async function r(o){let{all:n,locale:a,mode:s,variant:i,output:c}=o,l={content_id:[],...i&&i.length?{variant_id:i}:{}};if(s==="content_ids")l.content_id=o.content_ids;else if(s==="ids"){if(n)throw new S(400,"Search by ids doesn't support locale all. Pick one locale.");let m=await t.findAll({attributes:["content_id"],where:{id:o.ids,...i&&i.length?{variant_id:i}:{}},include:[{association:"contentByLocale",where:{locale:a}}]});l.content_id=m.map(y=>y.content_id);}else if(s==="slugs"){let m=o.slugs.map(R=>t.findAll({attributes:["content_id"],where:{slug:R.memberSlug},include:{association:"variant",attributes:["id","name","slug"],required:!0,where:{slug:R.variantSlug}}})),y=await Promise.all(m).then(R=>R.reduce((h,T)=>h.concat(T),[]));l.content_id=y.map(R=>R.content_id);}else if(s==="related"){let m=()=>{if(o.variant_ids?.length)return {variant_id:o.variant_ids.map(h=>h)};if(o.dimension_ids?.length)return {dimension_id:o.dimension_ids.map(h=>h)};if(o.report_ids?.length)return {report_id:o.report_ids.map(h=>h)}},y=()=>o.include_ids?.length?{[Op.in]:o.include_ids.map(h=>h)}:!1,R=await t.findAll({attributes:["content_id"],where:{...m(),content_id:y()||{[Op.notIn]:o.current_ids},visible:!0},order:[Sequelize.fn("RANDOM")],limit:o.related||4});l.content_id=R.map(h=>h.content_id);}else if(s==="whole"){let m={...i&&i.length?{variant_id:i}:{}},y=await t.findAll({attributes:["content_id"],where:m});l.content_id=y.map(R=>R.content_id);}let u={locale:n?{[Op.ne]:null}:a},p=await t.findAll({where:l,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:u}]},{association:"contentByLocale",where:u}]});if(!["related","whole"].includes(s)&&o[s]&&p.length!==o[s].length)throw new S(404,"One or more members were not found.");p.sort((m,y)=>l.content_id.indexOf(m.content_id)-l.content_id.indexOf(y.content_id));let d=p.map(m=>{let y,R={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,variant_id:m.variant_id,variant_name:m.variant.name,variant_slug:m.variant.slug};if(n){let h=m.contentByLocale;R.contentByLocale=h,R.image=m.image,R.image_id=m.image_id,y=R;}else {let h=m.getContent(a),T=m.image?.getContent(a),k=T&&{id:m.image.id,author:m.image.author,url:m.image.url,license:m.image.license,meta:T.meta};y={...R,locale:h.locale,name:h.name,attributes:h.attributes,keywords:h.keywords,image:k||null,image_id:m.image_id};}return c==="lite"&&(delete y.image,delete y.image_id),y});return {meta:o,results:d}}}function ln(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 ki(e,t=!0){if(!e)return "";let r=kt(G(e.toLowerCase()));return (t?Si(r,{replacement:" ",remove:/[*+~.()'"!:@-]/g,lower:!0,strict:!1,trim:!0}):r).replace(/\s\s+/g," ")}var rt=ki;var nr=[{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"]}],wi=nr.reduce((e,t)=>e.concat(t.locales),[]),wt=We(),{locales:xi}=K(),Ii=xi.filter(e=>wi.includes(e)),zr=!1,Ci=async(e,t=!1)=>{if(t&&(wt&&console.log("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.flexsearch=void 0,zr=!1),global.flexsearch)return wt&&console.log("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.flexsearch;try{zr||(wt&&console.log("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),zr=!0,global.flexsearch=await Bi(e));}catch(r){throw new Error(`
54
54
  Could not initialize FlexSearch engine.
55
55
  Details:
56
56
  ${r.message}
57
- `)}return global.flexsearch};async function Ii(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]}),r=wi.map(async o=>{Dt&&console.log(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${o} LOCALE`);let n=lr.find(u=>u.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.log(` Charset for ${o}: ${a}`):Dt&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new ki.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=at(p.name,a!=="arabic"),m=Array.isArray(p.keywords)?p.keywords.map(h=>at(h,a!=="arabic")):null,y={id:u.id,content_id:u.content_id,name:p.name,keywords:m,attributes:p.attributes,clean:d};c.add(y),l++;}}),console.log(`\u{1F3F3}\uFE0F Indexed for ${o}: ${l} elements`),[o,c]});return Object.fromEntries(await Promise.all(r))}var Oe=xi;var{localeDefault:mn}=F();function st(e){let{search:t,report:r}=e;return o;async function o(n){let a=await Oe(e),s=[],{query:i,locale:c,preferredLocale:l,limit:u,format:p,visible:d,variant:m,dimension:y,report:h,all:b,noImage:A,includes:v,sort:P,direction:R="ASC",offset:S=0}=n,I=lr.find(k=>k.locales.includes(c))?.charset||"latin";if(i&&i!==""&&a[c]){let k=at(i,I!=="arabic");if(s=a[c].search({query:k,limit:9999999999}).reduce((ne,ae)=>ne.concat(ae.result),[]),s=tr(s),l&&a[l]){let ae=a[l].search(k).reduce((me,Ye)=>me.concat(Ye.result),[]);ae=tr(ae),s=tr([...s,...ae]);}}let T={...d?{visible:d}:{},...A?{image_id:{[Op.eq]:null}}:{},...m.length?{variant_id:m}:{},...y.length?{dimension_id:y}:{},...h.length?{report_id:h}:{}},U={locale:b?{[Op.ne]:null}:c},L=u&&!isNaN(u)?u:20,V=[["zvalue","DESC NULLS LAST"]];P&&P!=="name"&&V.unshift([P,R.toUpperCase()]),i&&i!==""&&(T.content_id=s);let X=[{association:"contentByLocale",where:U}];v&&X.push({association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name"]},{association:"variant",attributes:["id","slug","name"]});let H={...T.visible?{visible:T.visible}:{},...T.noImage?{image_id:T.noImage}:{},...T.content_id?{content_id:T.content_id}:{}};if(!T.report_id&&!T.dimension_id&&!T.variant_id&&d){let W=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(ne=>ne.id);W.length>0&&(T.report_id={[Op.notIn]:W},H.report_id=T.report_id);}let x=[],[$,j]=await Promise.all([t.findAll({limit:L,offset:S,where:T,include:X,order:V}),t.findAll({attributes:["variant_id",[fn$1("COUNT",col("variant_id")),"members_count"]],where:H,group:["variant_id"]})]),w=j.map(k=>k.toJSON());if(P==="name"){let k=R.toUpperCase()==="ASC"?1:-1;$.sort((W,ne)=>{let ae=W.getContent(mn),me=ne.getContent(mn);return ae&&me?ae.name>me.name?1*k:-1*k:0});}let C=p==="nested"?D:G;return x=$.map(C),p!=="nested"&&x.forEach(k=>{let{name:W,keywords:ne,score:ae=.1,zvalue:me}=k;if(W){let Ye=at(W),Xt=ae,_o=i.length/Ye.length,Po=Ye.split("").reduce((Ir,wo,xo)=>(i.slice(0,xo),i.charAt(xo)===wo&&(Ir+=wo),Ir),"").length;Ye===i||ne&&ne.includes(i)?Xt=1e6:Ye.startsWith(i)?Xt*=20*_o:Po&&(Xt*=Po*_o),k.zvalue=Xt*2+me;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(k=>[k[0],N(k[1])])),variantCount:w.reduce((k,W)=>(k[W.variant_id]=parseInt(W.members_count,10),k),{})},results:x};function D(k){return k.toJSON()}function G(k){let W=k.getContent(c);return {...k.toJSON(),locale:W.locale,name:W.name,attributes:W.attributes,keywords:W.keywords}}}}function fn(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 y=0;y<c.length;y++){let h=c[y];await n.update({name:h.name,keywords:h.keywords},{where:{id:h.id,locale:h.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 m=0;m<l.contentByLocale.length;m++){let y=l.contentByLocale[m];await r.update({meta:y.meta},{where:{id:y.id,locale:y.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 gn(e){return {ingestMembers:ln(e),readMember:pn(e),searchMember:st(e),updateMember:fn(e),readMemberImage:dn(e)}}var De={include:[{association:"contentByLocale",separate:!0},{association:"inputs",include:[{association:"contentByLocale",separate:!0}]},{association:"consumers",include:[{association:"contentByLocale",separate:!0}]}]},Nt=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"]]}),Ut={include:[{association:"blocks",separate:!0,...De}]},pr=e=>({include:[{association:"dimensions",separate:!0,...Nt(e)},{association:"sections",separate:!0,...Ut}]});var ge=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function yn(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(y=>({locale:y}))},{include:De.include})).toJSON()}async function a(u){let p=u.map(m=>{let{locales:y,...h}=m;return {...h,consumers:[],inputs:[],contentByLocale:y.map(A=>({locale:A}))}});return (await t.bulkCreate(p,{include:De.include})).map(m=>m.toJSON())}async function s({id:u,include:p}={}){let d=u==null?[]:[].concat(u),m=await t.findAll({where:d.length>0?{id:d}:void 0,include:p?De.include:void 0});if(d.length===0||m.length===d.length)return m.map(b=>b.toJSON());let y=m.map(b=>b.id),h=d.filter(b=>!y.includes(b));throw new E(404,`Block(id=[${h}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:d,consumers:m,inputs:y,inputAction:h,...b}=u,A=await t.findByPk(p,{include:De.include,rejectOnEmpty:!0});if(A.set(b),d){let v=Object.values(d);await r.bulkCreate(v,{updateOnDuplicate:["content"]});}return h&&(h.operation==="create"?await o.create(h.input):await o.destroy({where:h.input})),await A.save(),await A.reload(),A.toJSON()}async function c(u){let p=u.map(y=>{let{id:h,contentByLocale:b,consumers:A,inputs:v,inputAction:P,...R}=y;return {id:h,contentByLocale:b,inputAction:P,...R}}),d=await t.findAll({where:{id:{[Op.or]:p.map(y=>y.id)}},include:De.include}),m=[];for(let y of d){let h=p.filter(b=>b.id===y.id);for(let b=0;b<h.length;b++){let A=h[b],{id:v,contentByLocale:P,inputAction:R,...S}=A;if(R&&(R.operation==="create"?await o.create(R.input):await o.destroy({where:R.input})),P){let M=Object.values(P);await r.bulkCreate(M,{updateOnDuplicate:["content"]});}y.set(S),await y.save(),await y.reload(),m.push(y.toJSON());}}return m}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 hn(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,variants:[]},{include:Nt(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?Nt(r).include:void 0});if(l.length===0||u.length===l.length)return u.map(m=>m.toJSON());let p=u.map(m=>m.id),d=l.filter(m=>!p.includes(m));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:Nt(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 bn(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}}}var{locales:Fi}=F();function Rn(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:pr(r).include})).toJSON()}async function n({id:i,include:c,locales:l=Fi}={}){let p=(i==null?[]:[].concat(i)).reduce((h,b)=>(h.includes(b)||h.push(b),h),[]),d=await t.findAll({where:p.length>0?{id:p}:void 0,include:c?pr(r).include?.filter(h=>typeof c=="string"?h.association===c:c):void 0});if(p.length===0||d.length===p.length)return d.map(h=>{let b=h.toJSON();return {...b,sections:b.sections.map(A=>({...A,blocks:A.blocks.map(v=>({...v,contentByLocale:Object.keys(v.contentByLocale).reduce((P,R)=>({...P,...[...l,"logic"].includes(R)?{[R]:v.contentByLocale[R]}:{}}),{})}))}))}});let m=d.map(h=>h.id),y=p.filter(h=>!m.includes(h));throw new E(404,`Report(id=${y}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:u,...p}=i,d=await t.findByPk(c,{include:pr(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 Sn(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:Ut.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?Ut.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:Ut.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 Tn(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,m=await c({dimension:u,slug:d});return (await r.create({dimension_id:u,name:p,slug:m.valid?m.candidate:m.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(y=>y.toJSON());let d=p.map(y=>y.id),m=u.filter(y=>!d.includes(y));throw new E(404,`Variant(id=${m}) does not exist.`)}async function s(l){let{id:u,...p}=l,d=await r.findByPk(u,{include:[{association:"dimension"}],rejectOnEmpty:!0});p.settings=Ot(p.settings);let m=p.settings.doIngest;return p.settings.doIngest=!1,await d.update(p),m&&(await t.ingestMembers(d),await Oe(e,!0)),await d.reload(),d.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:!0});return await u.destroy(),Oe(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(h=>Object.fromEntries(h.map(b=>{let A=b.getDataValue("slugCount");return [b.slug,Number.parseInt(`${A}`,10)]}))),d=u,m=1,y=!0;for(;p[d];)y=!1,d=`${u}-${m}`,m++;return {candidate:u,dimension_id:l,suggestion:d,valid:y}}}function vn(e){let t={...yn(e),...hn(e),...bn(e),...gn(e),...Rn(e),...Sn(e)},r={...t,...Tn(e,t)};return {createFormatter:_(r.createFormatter),deleteFormatter:_(r.deleteFormatter),readFormatter:_(r.readFormatter),updateFormatter:_(r.updateFormatter),createReport:_(r.createReport),deleteReport:_(r.deleteReport),readReport:_(r.readReport),updateReport:_(r.updateReport),createDimension:_(r.createDimension),deleteDimension:_(r.deleteDimension),readDimension:_(r.readDimension),updateDimension:_(r.updateDimension),createVariant:_(r.createVariant),readVariant:_(r.readVariant),updateVariant:_(r.updateVariant),deleteVariant:_(r.deleteVariant),validateVariantSlug:_(r.validateVariantSlug),createSection:_(r.createSection),readSection:_(r.readSection),updateSection:_(r.updateSection),deleteSection:_(r.deleteSection),createBlock:_(r.createBlock),deleteBlock:_(r.deleteBlock),readBlock:_(r.readBlock),updateBlock:_(r.updateBlock),createBulkBlock:_(r.createBulkBlock),updateBulkBlock:_(r.updateBulkBlock),readMember:_(r.readMember),searchMember:_(r.searchMember),updateMember:_(r.updateMember),readMemberImage:_(r.readMemberImage)}}var kn=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},qi=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,$i=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,Gi=async(e,t,r)=>{let o=[{type:"splash",res:qi},{type:"thumb",res:$i}];for(let n of o){let a=await zi(r).resize(n.res).toFormat("webp").webp({lossless:!0}).toBuffer().catch(kn);await e.image.update({[n.type]:a},{where:{id:t}}).catch(kn);}},Ee=Gi;var _n="|||";var Pn=["4","5","7","8","9","10"],Wi=Pn.join(),{locales:Ji}=F(),Ae;if(process.env.FLICKR_API_KEY)try{Ae=new Hi(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function wn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Ae)throw console.log("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Ae.photos.search({text:o,license:Wi,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(Ae.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(m=>m.label==="Small 320");return d&&l.push({id:a[p].id,source:d.source}),l},[]);return {meta:{prompt:N(r.prompt),page:N(`${r.page}`)},results:c}}catch(r){throw console.log(r),new Error("Error in search flickr provider")}}async function xn(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:N(`${r}`)||"",id:N(`${o}`)||""},s=`https://flic.kr/p/${ji.int_to_base58(o)}`;if(!Ae)throw new Error("Flickr API Key not configured");let i=await Ae.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(Pn.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 Ae.photos.getSizes({photo_id:o}).then(R=>R.body),m=d.sizes.size.find(R=>parseInt(R.width,10)>=1600);if(m||(m=d.sizes.size.find(R=>parseInt(R.width,10)>=1e3)),m||(m=d.sizes.size.find(R=>parseInt(R.width,10)>=500)),!m||!m.source)throw new Error("Flickr Source Error, try another image.");let y=await yr.get(m.source,{responseType:"arraybuffer"}).then(R=>R.data),b=(await Ae.photos.licenses.getInfo().then(R=>R.body.licenses.license)).find(R=>R.id===parseInt(i.photo.license,10)),A={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:b?`${b.name}: ${b.url}`:""},v=await e.image.create(A);await e.image_content.destroy({where:{id:v.id}});let P=Ji.map(R=>({id:v.id,locale:R,meta:i.photo.title._content}));await e.image_content.bulkCreate(P),await e.search.update({image_id:v.id},{where:{content_id:r}}),await Ee(e,v.id,y);}let p=await e.search.findOne({where:{content_id:r},include:ge});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.log(r),new Error("Error in save flickr provider")}}function B(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function J(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 O(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:Te}=F();function In(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [B("GET","read/members",async a=>{let s=Yi(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)}),B("GET","search/members",a=>{let s=Ft(a.query);return r(s)}),B("POST","update/member",a=>{let{body:s}=a;return o(s)},[z.EDITOR]),B("GET","member/image",a=>{let s=O(a.query.size)[0];return n({member:J(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function Yi(e){let t=O(e.locale)[0]||Te||"en",r=t==="all"||dr(e.all),o=O(e.mode)[0],a=(O(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(O(e.related)[0],10)||5,i=O(e.variant).map(J);if(i.length===0&&(i=O(e["variant[]"]).map(J)),o==="ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:N(t),ids:O(e.ids||e["ids[]"])};if(o==="content_ids")return {all:r,mode:o,variant:i,output:a,locale:r?Te:N(t),content_ids:O(e.content_ids||e["content_ids[]"]).map(J)};if(o==="slugs")return {all:r,mode:o,variant:i,output:a,locale:r?Te:N(t),slugs:O(e.slugs||e["slugs[]"]).map(c=>{let[l,u]=c.split("/");return {variantSlug:l,memberSlug:u}})};if(o==="related")return {all:r,mode:o,locale:r?Te:N(t),related:s,current_ids:O(e.current_ids||e["current_ids[]"]).map(J),report_ids:O(e.report_ids||e["report_ids[]"]).map(J),dimension_ids:O(e.dimension_ids||e["dimension_ids[]"]).map(J),variant_ids:O(e.variant_ids||e["variant_ids[]"]).map(J),output:a};if(o==="whole")return {all:r,mode:o,variant:i,locale:r?Te:N(t),output:a};throw new E(400,`Invalid mode: '${o}'`)}function Ft(e){let t=O(e.locale)[0]||Te||"en",r=t==="all",o=O(e.format)[0],n=o?o==="nested":r,a=O(e.variant).map(J);a.length===0&&(a=O(e["variant[]"]).map(J));let s=O(e.dimension).map(J);s.length===0&&(s=O(e["dimension[]"]).map(J));let i=O(e.report).map(J);return i.length===0&&(i=O(e["report[]"]).map(J)),{query:O(e.query||e.q)[0]||"",locale:r?Te:t,preferredLocale:O(e.preferredLocale)[0],limit:O(e.limit).map(J)[0]??5,format:n?"nested":"plain",includes:dr(e.includes,{default:!0}),visible:dr(e.visible,{default:!0}),noImage:dr(e.noImage,{default:!1}),variant:a,dimension:s,report:i,all:r,sort:O(e.sort)[0],direction:O(e.direction)[0],offset:Number(e.offset||0)}}async function Cn(e,t){let r=st(e),o=Ft({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:N(o.query)},results:a}}async function Bn(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:ge}).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:Xi}=F(),Vt;if(process.env.UNSPLASH_API_KEY)try{Vt=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function Mn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Vt)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await Vt.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:N(r.prompt),page:N(`${r.page}`)},results:a}}catch(r){throw console.log(r),new Error("Error in search unsplash provider")}}async function Ln(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:N(`${r}`)||"",id:N(`${o}`)||""};if(!Vt)throw console.log("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await Vt.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 yr.get(a.urls.full,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.user.name||a.user.username,license:"Free Unsplash license: https://unsplash.com/license"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=Xi.map(h=>({id:m.id,locale:h,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,p);}let u=await e.search.findOne({where:{content_id:r},include:ge});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.log(r),new Error("Error in save unsplash provider")}}var{locales:tc}=F();async function On(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:N(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await ec.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=tc.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 Ee(e,u.id,c);}let i=await e.search.findOne({where:{content_id:r},include:ge});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.log(r),new Error("Error in save upload provider")}}var{locales:rc}=F();var Dn=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 zt;if(process.env.ADOBE_STOCK_API_KEY)try{zt={search:async(e,t)=>await yr.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await Dn(!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 yr.get("https://stock.adobe.io/Rest/Media/1/Files",{headers:await Dn(!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 Nn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!zt)throw new Error("Adobe API Key not configured");let n=(await zt.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:N(r.prompt),page:N(`${r.page}`)},results:n}}catch(r){throw console.log(r),new Error("Error in search Adobe provider")}}async function Un(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:N(`${r}`)||"",id:N(`${o}`)||""};if(!zt)throw console.log("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await zt.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 yr.get(a.thumbnail_1000_url,{responseType:"arraybuffer"}).then(h=>h.data),d={url:c,author:a.creator_name,license:"ADOBE, TO-DO"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=rc.map(h=>({id:m.id,locale:h,meta:a.title||a.description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ee(e,m.id,p);}let u=await e.search.findOne({where:{content_id:r},include:ge});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.log(r),new Error("Error in save adobe provider")}}var oc={local:Bn,flickr:xn,unsplash:Ln,upload:On,adobe:Un};function ct(e,t){let r=oc[t];if(!r)throw new E(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return _(o=>r(e,o))}var nc={local:Cn,flickr:wn,unsplash:Mn,adobe:Nn};function qt(e,t){let r=nc[t];if(!r)throw new E(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return _(o=>r(e,o))}var pc=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 fr(e){let{report:t,search:r}=e;return o;async function o(n){return {data:(await t.findAll({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",[fn$1("COUNT",col("members.id")),"members_count"],[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],include:[{model:r,attributes:[],as:"members"}],association:"variants",separate:!0,group:["variant.id"],order:[["ordering","ASC"]]}]}]})).map(s=>({...pc(s.toJSON()),mode:s.dimensions.length===1?Se.UNILATERAL:Se.MULTILATERAL}))}}}function Fn(e){return async()=>(await Oe(e,!0),{error:!1})}var{locales:dc,localeDefault:mc}=F(),fc=(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===Se.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.sort((o,n)=>o.confidence<n.confidence?1:-1)},gc=(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 Vn(e){let t=st(e),r=fr(e);return o;async function o(n){let a=n.format||"results",s=dc.includes(n.locale)?n.locale:mc,i=await t({...n,format:"plain",locale:N(s),visible:!0}),c=i.results?i.results:[],u=(await r()).data,p=gc(c,u);return {meta:{...i.meta,format:a},results:fc(p,u)}}}function zn(){return async e=>{let t=typeof e=="string"?{url:e}:e;try{let r=await yr.request(t);return {ok:!0,status:r.status,data:r.data}}catch(r){throw new E(r.response?.status||500,r.message)}}}function qn(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 $n(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new E(t.response?.status||500,t.message)}}}function Ne(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 hc(e,t){return e.some(r=>t.includes(`role.${r}`))}function Gn(e){let{report:t}=e;return r;async function r(o){let n=await t.findByPk(o.report_id,{include:{association:"sections",separate:!0,include:[{association:"blocks",separate:!0,include:[{association:"contentByLocale",separate:!0,where:{locale:o.locale}},{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")||hc(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(Ne(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var Sc=Object.keys(Gr).filter(e=>e.indexOf("Icon")===0);async function Kn(){return {meta:{provider:"tabler"},results:Sc}}async function jn(e){let t=Gr[e.name]?Gr[e.name]:()=>"";return renderToString(createElement(t))}var Ec={tabler:Kn};function Hn(e){let t=Ec[e];if(!t)throw new E(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return _(()=>t())}var Ac={tabler:jn};function Wn(e){return _(t=>{let r=Ac[e];if(!r)throw new E(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function Ue(e,t,r){return Le().then(o=>{Object.assign(r,lt(o));})}function lt(e){return {...vn(e),searchReport:_(Vn(e)),readMetadata:_(fr(e)),regenerateSearch:_(Fn(e)),imageFlickrSearch:qt(e,"flickr"),imageLocalSearch:qt(e,"local"),imageUnsplashSearch:qt(e,"unsplash"),imageAdobeSearch:qt(e,"adobe"),imageFlickrSave:ct(e,"flickr"),imageLocalSave:ct(e,"local"),imageUnsplashSave:ct(e,"unsplash"),imageUploadSave:ct(e,"upload"),imageAdobeSave:ct(e,"adobe"),urlProxy:zn(),searchRole:_(Mo()),searchUser:_(Lo()),readUser:_(Oo()),updateUser:_(Do()),updateMyData:_(No()),revalidateReport:_(qn(e)),revalidateUrl:_($n()),readPrivateBlocks:_(Gn(e)),listTablerIcons:Hn("tabler"),readTablerIcon:Wn("tabler")}}async function Kr(e){try{let t=new Tc.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.log("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 Fe(e,t){let r=oe(e,"create",t),o=oe(e,"read",t),n=oe(e,"update",t),a=oe(e,"delete",t),s=oe(e,"updateBulk",t),i=oe(e,"createBulk",t);return [B("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(m=>p[m]);return i(d)},[z.EDITOR]),B("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[z.EDITOR]),B("GET",`read/${t}`,c=>{let l=c.query,u=O(l.id).map(J);return o({id:u,include:dr(l.include)})}),B("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[z.EDITOR]),B("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(m=>p[m]);return s(d)},[z.EDITOR]),B("DELETE",`delete/${t}`,c=>{let l=J(c.query.id);return a(l)},[z.EDITOR])]}function Jn(e){let{validateVariantSlug:t}=e;return [...Fe(e,"variant"),B("GET","validate/variant",r=>{let o=r.query,n=J(o.dimension);return t({dimension:n,slug:cr(o.slug)})},[z.EDITOR])]}function ut(e,t){let r=`image${fe(t)}Save`,o=e[r];return B("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 $t(e,t){let r=`image${fe(t)}Search`,o=e[r];return B("GET",`images/search/${t}`,async n=>{let a=O(n.query.prompt)[0];if(!a)throw new E(400,"Empty 'prompt' param.");return o({prompt:a,page:J(n.query.page)})},[z.EDITOR])}function Yn(e){let{readMetadata:t}=e;return B("GET","read/metadata",()=>t({}))}function Qn(e){let{regenerateSearch:t}=e;return B("POST","search/regenerate",()=>t(void 0),[z.EDITOR])}function Zn(e){let{searchReport:t}=e;return B("GET","search/reports",r=>{let o=kc(r.query);return t(o)})}function kc(e){return {...Ft(e),format:O(e.format)[0]}}function Xn(e){let{urlProxy:t}=e;return B("GET","url/proxy",r=>{let{url:o,method:n="GET"}=r.query;if(!o)throw new E(400,"Missing URL parameter");return t({url:Array.isArray(o)?o.join(","):o,method:O(n)[0]==="POST"?"POST":"GET"})})}function ea(e){let{readMetadata:t,revalidateReport:r}=e;return B("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(y=>y!=="").join("/"),l=[],u=await t({}).then(y=>y.ok?y.data.data.find(h=>h.id===i):[]);u&&u.mode===Se.UNILATERAL&&u.dimensions.forEach(y=>{y.variants.forEach(h=>{l.push({prefix:c,variantId:h.id,variantSlug:h.slug});});});let p=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],m=0;return p.ok&&(m=p.data.paths.length,d=p.data.paths.slice(0,5),Promise.all(p.data.paths.map(y=>{let h;try{h=n.revalidate(y,{unstable_onlyGenerated:!0});}catch(b){console.log("error",y,b);}return h}))),{ok:!0,status:200,data:{reportId:a,revalidated:m,samples:d}}}catch(i){throw console.log(i),new E(500,"Error revalidating")}},[z.EDITOR])}function ta(){return B("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.log(o),new E(500,"Error revalidating")}else throw new E(400,"Missing target parameter in revalidate factory")},[z.ADMIN,z.EDITOR,z.WRITER])}var{localeDefault:_c}=F();function ra(e){let{readPrivateBlocks:t}=e;return B("POST","read/blocks/private",(r,o,n)=>{let a={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||_c,roles:n&&n.user?n.user.bespoke_roles:[]};return t(a)},[])}function oa(e){let{searchRole:t}=e;return B("GET","auth/search/roles",()=>t(""),[z.EDITOR])}function na(e){let{searchUser:t}=e;return B("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[z.ADMIN])}function aa(e){let{readUser:t}=e;return B("GET","auth/read/user",r=>t(r.query.user_id),[z.ADMIN])}function sa(e){let{updateUser:t,readUser:r}=e;return B("POST","auth/update/user",async(o,n,a)=>{let s=o.body,i=await t(s);if(a&&a.user&&s.user_id===a.user.sub){let c=await r(a.user.sub);c.ok&&await Q.updateSession(o,n,{...a,user:{...a.user,bespoke_app_metadata:c.data.app_metadata,bespoke_user_metadata:c.data.user_metadata,bespoke_roles:c.data.roles.map(l=>l.name)}});}return i},[z.ADMIN])}function ia(e){let{updateUser:t,readUser:r}=e;return B("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body,c={user_id:a.user.sub,user_metadata:{}};try{let{user:l}=a;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);let u=await r(c.user_id);return u.ok&&await Q.updateSession(o,n,{...a,user:{...l,bespoke_app_metadata:u.data.app_metadata,bespoke_user_metadata:u.data.user_metadata}}),{ok:!0,status:200,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:!1,status:500,error:l.message}}},[])}async function Pc(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(n){throw console.error("Error generating PDF:",n),n}}function ca(){return B("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 Pc()}}})}function la(e,t){let r=`list${fe(t)}Icons`,o=e[r];return B("GET",`list/icons/${t}`,async()=>o({}),[z.EDITOR])}function ua(e,t){let r=`read${fe(t)}Icon`,o=e[r];return B("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function pa(){return B("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 wc().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 Cc=Qe();function jr(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function Bc(e){let t=lt(e);return Object.fromEntries([...Fe(t,"block"),...Fe(t,"dimension"),...Fe(t,"formatter"),...Fe(t,"report"),...Fe(t,"section"),...Jn(t),...In(t),Zn(t),Yn(t),Qn(t),ut(t,"flickr"),ut(t,"local"),ut(t,"unsplash"),ut(t,"upload"),ut(t,"adobe"),$t(t,"flickr"),$t(t,"local"),$t(t,"unsplash"),$t(t,"adobe"),Xn(t),oa(t),na(t),aa(t),sa(t),ia(t),ea(t),ta(),ra(t),ca(),la(t,"tabler"),ua(t,"tabler"),pa()].map(({handler:r,method:o,path:n,roleRequired:a})=>[jr(o,n),{handler:r,roleRequired:a}]))}var da=Le().then(Bc);async function Mc(e,t){await xc(e,t,{methods:["GET","HEAD","PUT","PATCH","POST","DELETE"],origin:"*"});let{query:r,method:o}=e,{path:n,...a}=r;if(n&&o){let s=await da.then(i=>{let c=[].concat(n).join("/"),l=jr(o,c);return i[l]});if(s){let i=await Q.getSession(e,t);if(s.roleRequired){if(!i)return t.status(401).json({error:"Unauthorized. Must be logged in."});let c=i&&i.user&&i.user.bespoke_roles&&Array.isArray(i.user.bespoke_roles)?i.user.bespoke_roles:[];if(Array.isArray(s.roleRequired)&&s.roleRequired.length>0&&!er(c,s.roleRequired))return t.status(402).json({error:"Forbidden. Not enough roles."})}if(s.handler)return ["POST","DELETE"].includes(o)&&(e.body=await Kr(e)),Promise.resolve(e).then(c=>s.handler(c,t,i||void 0)).then(async c=>{if(c&&"error"in c)throw new E(c.status,c.error);if(c.ok)if(c.data instanceof Buffer){let l=await Ic(c.data),u=Buffer.byteLength(c.data);t.writeHead(c.status,{"Content-Type":l?l.mime:"image/jpeg","Content-Length":u.toString()}).send(c.data);}else e.url&&e.url.indexOf("/icon.svg?name=")>0?(t.setHeader("Content-Type","image/svg+xml"),t.status(c.status).send(c.data)):t.status(c.status).json({data:c.data});}).catch(c=>{Cc&&console.trace("Backend Error",c),t.status(c.code).json({error:c.message});})}}else n||await da.then(console.log);return t.status(404).json({error:"No matching route",path:n,query:a})}var Lc=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Oc=Lc;var We={};cs(We,{addBlockToState:()=>Ao,cloneEntity:()=>Ka,createEntity:()=>qa,deleteEntity:()=>Ga,deleteQueryParam:()=>eu,readEntity:()=>te,readMember:()=>ke,readMetadata:()=>ru,readPrivateBlocks:()=>lu,readUser:()=>su,recalculateVariables:()=>Xa,removeBlocksFromState:()=>kt,reportSearch:()=>Ql,resetSectionState:()=>Qa,revalidateReport:()=>pu,revalidateUrl:()=>uu,searchMember:()=>Xl,searchRegenerate:()=>Zl,searchRole:()=>nu,searchUser:()=>au,setCurrentLocale:()=>Wl,setPreferredLocale:()=>Jl,setPreviews:()=>Hl,setQueryParam:()=>tu,setSectionState:()=>Ya,setStatus:()=>Ja,updateEntity:()=>$a,updateMyData:()=>cu,updateUser:()=>iu,urlProxy:()=>ou,variantValidateSlug:()=>Yl});function pe(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,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 Z(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>pe(e,{...o,method:"GET",params:r?r(n):n})}function ee(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>pe(e,{...o,method:"POST",data:r?r(n):n})}function Ve(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>pe(e,{...o,method:"DELETE",params:r?r(n):n})}function pt(e,t){return r=>pe(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function Gt(e,t){return r=>pe(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function ma(e,t){return ()=>pe(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function fa(e,t){return r=>pe(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var dt=e=>({id:e}),Nc=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 Kt(e){let t=yr.create({baseURL:e});return {createBulkBlock:ee(t,"create/bulk/block"),createBlock:ee(t,"create/block"),createDimension:ee(t,"create/dimension"),createFormatter:ee(t,"create/formatter"),createReport:ee(t,"create/report"),createSection:ee(t,"create/section"),createVariant:ee(t,"create/variant"),deleteBlock:Ve(t,"delete/block",dt),deleteDimension:Ve(t,"delete/dimension",dt),deleteFormatter:Ve(t,"delete/formatter",dt),deleteReport:Ve(t,"delete/report",dt),deleteSection:Ve(t,"delete/section",dt),deleteVariant:Ve(t,"delete/variant",dt),readBlock:Z(t,"read/block"),readDimension:Z(t,"read/dimension"),readFormatter:Z(t,"read/formatter"),readReport:Z(t,"read/report"),readSection:Z(t,"read/section"),readVariant:Z(t,"read/variant"),updateBulkBlock:ee(t,"update/bulk/block"),updateBlock:ee(t,"update/block"),updateDimension:ee(t,"update/dimension"),updateFormatter:ee(t,"update/formatter"),updateReport:ee(t,"update/report"),updateSection:ee(t,"update/section"),updateVariant:ee(t,"update/variant"),searchReport:Z(t,"search/reports"),validateVariantSlug:Z(t,"validate/variant"),readMember:Z(t,"read/members",Nc),readMemberImage:Z(t,{url:"member/image",responseType:"blob"}),searchMember:Z(t,"search/members"),updateMember:Z(t,"update/members"),imageLocalSearch:Gt(t,"local"),imageLocalSave:pt(t,"local"),imageFlickrSearch:Gt(t,"flickr"),imageFlickrSave:pt(t,"flickr"),imageUnsplashSearch:Gt(t,"unsplash"),imageUnsplashSave:pt(t,"unsplash"),imageUploadSave:pt(t,"upload"),imageAdobeSearch:Gt(t,"adobe"),imageAdobeSave:pt(t,"adobe"),readMetadata:Z(t,"read/metadata"),regenerateSearch:ee(t,"search/regenerate"),urlProxy:Z(t,"url/proxy"),searchRole:Z(t,"auth/search/roles"),searchUser:Z(t,"auth/search/users"),readUser:Z(t,"auth/read/user"),updateUser:ee(t,"auth/update/user"),updateMyData:ee(t,"auth/update/me"),revalidateReport:Z(t,"revalidate/report"),revalidateUrl:Z(t,"revalidate/url"),readPrivateBlocks:ee(t,"read/blocks/private"),listTablerIcons:ma(t,"tabler"),readTablerIcon:fa(t,"tabler")}}var{localeDefault:Vc}=F();function ue(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||Vc}}var $c=dr(process.env.REPORTS_LOGGING),ze=Gc;function Gc(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=ue(a);try{if(t){let l=new Proxy(console,{get(p,d){return Kc(d,"log","debug","info","warn","error")?(...m)=>{i.push(`${d} ${Date.now()} - ${m.map(y=>format(y)).join(" ")}`),$c&&p[d](...m);}:p[d]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,we,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,we,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 Kc(e,...t){return t.includes(e)}function Hr(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 mt=jc;function jc(e,t,r,o=!1){let{variables:n}=ue(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,m=>m.toLowerCase());d in t?u=t[d]:u=m=>`${c}${m}`;}let p=Array.isArray(n[l])?Hr(n[l]):n[l];if(p===void 0)return o?i:"N/A";try{return u(p,we,t)}catch(d){return console.error(`Error using formatter ${u.name}
58
- `,`Error message: ${d.message}`),"N/A"}})}var Wr=(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]=mt(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?Wr(i,t,r):typeof i=="string"?mt(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=Wr(a[s],t,r));}),a},gr=Wr;var ga=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var Jr=(e,t,r)=>{if(!r)return !1;if(e===Ie.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))};function Yr(e,t,r,o,n=!1){let{variables:a}=ue(o),s=gr({logic:t},r,o).logic,i=ze("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||Ie.SINGLE,d=c.component||"Selector",m=c.hideLabel||"false",y=c.resetSectionVars||"false",h=c.name||"Unlabeled Selector",b=ga(c.options||[]),A=S=>p===Ie.MULTI&&!Array.isArray(S)?[S]:S,v=c.defaultValue,P;if(v&&(v=A(v),Jr(p,v,b)&&(P=v)),!P){let S=b&&b[0]&&b[0].id||b[0]||"";P=A(S);}if(n&&typeof window<"u"){let S=`selector${e}id`,M=new URLSearchParams(window.location.search),T=Object.fromEntries(M)[S];T&&!Jr(p,T,b)&&T!==void 0&&(M.delete(S),window.history.replaceState(null,null,`?${M.toString()}`));}return {config:{name:h,type:p,options:b,defaultValue:P,component:d,hideLabel:m,resetSectionVars:y},log:l,error:u}}function Qr(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 Zr(e,t,r,o,n=!1){let{variables:a}=ue(o),s=gr({logic:t},r,o).logic,i=ze("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,m=`multihierarchySelector${e}-type`,y=new URLSearchParams(window.location.search),h=Object.fromEntries(y),b=h[d],A=h[m];b&&b!==void 0&&A&&A!==void 0&&!Qr(c.data,A,b)&&(y.delete(d),y.delete(m),window.history.replaceState(null,null,`?${y.toString()}`));}return {config:c,log:l,error:u}}var Hc=(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===Ie.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}},ya=Hc;var Wc=(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||"",m=r.data?.filter(y=>p.includes(`${y[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((m||[]).map(y=>y[d]))],[`multihierarchySelector${e}type`]:d}},ha=Wc;var{localeDefault:ba,locales:Jc}=F(),Yc=Object.values(Nr),Qc=(e,t=ba)=>e&&Yc.includes(e.type)?{locale:Ur,locales:[Ur]}:{locale:t,locales:Jc},Ra=(e,t=ba)=>{if(!e)return {};let{locale:r}=Qc(e,t);return e.contentByLocale?.[r]?.content};function Zc(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 Sa=Zc;var jt=dr(process.env.NEXT_PUBLIC_REPORTS_DEBUG),rl=process.env.REPORTS_ORIGIN||"";Ea(yr,{retries:3,retryDelay:Ea.exponentialDelay,onRetry:(e,t,r)=>{console.log("Generator request failed. Retrying... Count: ",e),console.log("URL: ",r.url),console.log(t.message);}});yr.interceptors.request.use(e=>({...e,requestStart:Date.now()}));yr.interceptors.response.use(e=>({...e,requestDuration:new Date().getTime()-e.config.requestStart}),e=>Promise.reject(e));var ol=(e,t,r)=>{let o=mt(e,t,r);return o.startsWith("http")||(o=`${rl}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:nl}=Kt("/api/cms");function eo(e){return e.ok!==void 0}function Xr(e){this.message=e,this.name="ApiFetchException";}var Aa=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function al(e,t,r="en",o){let n=Date.now(),a=e,s,c=new URL(e).searchParams;if(c.has("bespoke_slugs")){let p=new RegExp(`[?&]bespoke_slugs=${c.get("bespoke_slugs")}`,"g");a=a.replace(p,"");}let l=o?o.settings:{},u=!!(l&&l.useProxy&&l.useProxy==="true");if(typeof window=="object"&&u){let p=await nl({url:a,timeout:Aa});if(p.ok===!0)s=p.data;else throw new Xr(p?.error)}else try{let p=await yr({url:a,timeout:Aa});if(p.status===200)p.headers["content-type"]==="text/csv"?s=csvParse(p.data):s=p.data;else throw new Xr("No response")}catch(p){throw new Xr(p.message)}if(c.has("bespoke_slugs")){let p=c.get("bespoke_slugs");if(p){let d=p.split(",");if(d.length===3){let[m,y,h]=d,b=xt(s,h);if(b&&Array.isArray(b)){let A=Array.from(new Set(b.map(R=>`${R[y]}`).filter(R=>!["","undefined"].includes(R)))),v=A.join("").length>2e3,P=await t({mode:v?"whole":"ids",ids:v?void 0:A,all:!1,locale:r,variant:[parseInt(m,10)],output:"lite",limit:A.length+1}).then(R=>{let S=[];return eo(R)?R.ok&&(S=R.data.results):S=R.results,S&&Array.isArray(S)?S:[]}).catch(R=>(console.error(`Error hydrating slugs for Variant: ${m}, Key: ${y}, Accessor: ${h}`),console.error(` Url ${e}`),o&&console.error(` From Section ${o.section_id} and Block ${o.id}`),console.error(R),[]));if(P){let R=Object.fromEntries(P.map(S=>[S.id,`/${S.variant_slug}/${S.slug}`]));b.map(S=>(S.bespoke_slug=R[S[y]]?R[S[y]]:null,S));}}}}}return {data:s,requestDuration:Date.now()-n}}function sl(e){this.name="BlockException",this.message=e;}async function il(e,t,r,o){let{locale:n,variables:a,query:s}=ue(r),i=ll(e,r,a,t),c=null,l=e.contentByLocale?.logic?.content?.api,u=null,p=null,d=null;if(!i)return {outputVariables:{},renderVariables:{},status:{allowed:!1,hiddenByCascade:e.id}};if(e.type===q.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:i,hiddenByCascade:e.id}};if(l){d=ol(l,t,r);let R=d.split(_n).filter(I=>I!==""),S=[];for(let I=0;I<R.length;I++){let T=R[I];new RegExp("^(?:[a-z+]+:)?//","i").test(d)||(T=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${T}`.replace(/([^:]\/)\/+/g,"$1")),S.push(al(T,o,n,e).catch(L=>{throw new sl(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${a.report_name} (${a.report_id}) failed.
59
- Error fetching ${T}.
60
- Message: ${L.message}.
61
- `)}));}let M=await Promise.all(S).catch(I=>I.message);if(typeof M=="string"&&M)return {outputVariables:{},renderVariables:{},status:{error:M}};c=M.length===1?M[0].data:M.map(I=>I.data),p=M.reduce((I,T)=>I+JSON.stringify(T.data).length/1024,0),u=Math.max(...M.map(I=>I.requestDuration));}if(e.type===q.SELECTOR){let{config:R,log:S,error:M}=Yr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:ya(e.id,s,R),renderVariables:R,status:{log:S,error:M,allowed:i}}}if(e.type===q.MULTIHIERARCHY_SELECTOR){let{config:R,log:S,error:M}=Zr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:ha(e.id,s,R),renderVariables:R,status:{log:S,error:M,allowed:i}}}if(e.type===q.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:i}};if(e.type===q.RELATED){let R=e.contentByLocale?.logic?.content?.simple?.compare||"variant",S=e.contentByLocale?.logic?.content?.simple?.limit||4,M=Object.keys(a).filter(x=>x.startsWith("report_id")).map(x=>a[x]),I=Object.keys(a).filter(x=>x.startsWith("dimension_id")).map(x=>a[x]),T=Object.keys(a).filter(x=>x.startsWith("variant_id")).map(x=>a[x]),U=Object.keys(a).filter(x=>x.startsWith("id")).map(x=>a[x]);if(!U.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let V=(await o({mode:"ids",locale:n,ids:U,output:"lite"}).then(x=>{let $=[];return eo(x)?x.ok&&($=x.data.results):$=x.results,$&&Array.isArray($)?$:[]}).catch(x=>(console.log("Error getting related members",x),[]))).map(x=>x.content_id),X={mode:"related",locale:n,related:S??4,current_ids:V,output:"full"};R&&(R==="report"?X.report_ids=M:R==="dimension"?X.dimension_ids=I:X.variant_ids=T);let H=await o(X).then(x=>{let $=[];return eo(x)?x.ok&&($=x.data.results):$=x.results,$&&Array.isArray($)?$:[]}).catch(x=>(console.log("Error getting related members",x),[]));return {outputVariables:{related_reports:H},renderVariables:{},status:{log:[],allowed:H.length>0}}}let{logic:m}=Ra(e,n),y=mt(m,t,r),h=ze("resp",c||{},y,t,a,r),{vars:b,error:A,log:v}=h;if(typeof b!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:v,duration:u,responseSize:p,resp:c,api:d,allowed:i}};let P=Object.keys(b).reduce((R,S)=>({...R,[`${e.type}${e.id}${S}`]:b[S]}),{});return {renderVariables:b,outputVariables:e.type===q.GENERATOR?b:P,status:{log:v,error:A,duration:u,responseSize:p,resp:c,api:d,allowed:i}}}function cl(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].section_id===t[r].section_id||!n).forEach(l=>to(l,t,o,!1,a,n,s));}})}var to=(e,t,r=[],o=!0,n=!0,a=!0,s=[])=>{if(s.includes(e))return [];s.push(e);let i=t[e];return i.inputs.length&&o&&i.inputs.forEach(c=>{let l=`${c}-${e}`;r.includes(l)||r.push(l),i.inputs.forEach(u=>to(u,t,r,o,!1,a,s));}),i.consumers.length&&n&&cl(i,t,e,r,a,n,s),r},ll=(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=ue(t),{error:s,output:i}=ze("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},ft=async(e,t,r,o,n,a={},s,i="section")=>{if(!r&&!t)return {...a};let c={...a.variables??{}},l={...a.status??{}},u=ue(n),p=u.variables,d=r?{[r]:e[r]}:(t??[]).reduce((I,{id:T})=>({...I,...Sa(T,e)}),{});jt&&console.log("%crunConsumers: running root blocks","color:purple",Object.keys(d));let m=i==="section",y=Object.keys(d).reduce((I,T)=>{let U=new Date,L=to(Number(T),e,[],!r,!0,m).map(H=>H.split("-")),X=(new Date().getTime()-U.getTime())/1e3;return jt&&console.log(`%cResolved dependencies for ${T} (${X.toFixed(2)}s)`,"color:blue"),[...I,...L]},[]),h=new Date,b=Object.keys(d).reduce((I,T)=>I.includes(T)?[...I]:[T,...I],Xc(y)),v=(new Date().getTime()-h.getTime())/1e3;jt&&console.log(`%cResolved DAG (${v.toFixed(2)}s): `,"color:green",b);async function P(I,T){let U=new Map;for(let L of I){let V=T[L],H=Promise.all(V.inputs.filter(x=>I.includes(String(x))).map(x=>U.get(Number(x)))).then(async()=>{let x=V.inputs.reduce((G,k)=>({...G,...c[k]}),p),$=V.inputs.find(G=>(V.settings?.ignoreCascade?V.settings?.ignoreCascade:[]).includes(G)?!1:!l[G].allowed||l[G].hiddenByCascade);if($){l[L]={allowed:!1,hiddenByCascade:l[$].hiddenByCascade||$},c[L]={};return}let j=new Date,w=await il(V,o,{...u,variables:x,locale:x.locale},s).then(({outputVariables:G,status:k})=>{if(k.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${L}, Section ${V.section_id}) failed with message: ${k.error}. `);l[L]={allowed:!1,error:k.error},c[L]={};}(V.consumers.length>0||[q.GENERATOR,q.RELATED].includes(V.type))&&k.allowed&&Object.keys(G).length>0?c[L]=G:c[L]={},i==="report"?(l[L]={allowed:k.allowed},V.type===q.GENERATOR&&k.api&&(l[L].api=k.api)):l[L]=k;}),D=(new Date().getTime()-j.getTime())/1e3;return jt&&console.log(`%cBlock ${V.id} resolved in ${D.toFixed(3)}s`,D>500?"color:red":"color:green"),w});U.set(Number(L),H);}await Promise.all(Array.from(U.values()));}let R=new Date;await P(b,e);let M=(new Date().getTime()-R.getTime())/1e3;return jt&&console.log(`%cResolved Variables (${M.toFixed(2)}s): `,"color:green"),{variables:{...a.variables??{},...c},status:{...a.status??{},...l}}};function ul(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 gt=ul;function dl(){let{publicRuntimeConfig:e}=pl(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var yt=dl;function ml(e,t){return +(e<t)-+(e>t)}function hr(e,t,r="ordering"){return ml(t[r],e[r])}var va=(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:we,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)};var{localeDefault:gl}=F();var Ht=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Ht.define({consumers:[Ht],inputs:[Ht]});var ka=new schema.Entity("variant"),_a=new schema.Entity("dimension",{variants:[ka]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),Pa=new schema.Entity("section",{blocks:[Ht]}),yl=new schema.Entity("report",{dimensions:[_a],sections:[Pa]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(hr):[]}}}),hl=new schema.Entity("formatter"),bl={report:yl,section:Pa,block:Ht,dimension:_a,variant:ka,formatter:hl};function br(e,t){let r=bl[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:ht(o,"report"),dimension:ht(o,"dimension"),section:ht(o,"section"),block:ht(o,"block"),variant:ht(o,"variant"),formatter:ht(o,"formatter")}}function ht(e,t){return e.hasOwnProperty(t)?e[t]:{}}var wa=(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}},Wt=(e=[],t=gl)=>e.reduce((r,o)=>{let n=va({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var se=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",Rr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[se];Rr.includes(se)||Rr.push(se);var El={localeDefault:se,locales:Rr,currentLocale:se,preferredLocale:se,showToolbar:!1,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:!0,settings:!1,reportEditor:!1},isCMS:!1},Sr=createSlice({name:"status",initialState:El,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]};}},extraReducers:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),qe=Sr.actions;var vl={attributes:{},variables:{},status:{}},Er=createSlice({name:"variables",initialState:vl,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}})}}),Rt=Er.actions;var Pl={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}}},ve=createSlice({name:"records",initialState:Pl,reducers:{set:(e,t)=>{let r=t.payload;return {entities:Jt(e.entities,r.entities||{}),requests:Jt(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=br(r.type,o),a=Jt(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=Ar(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=Ar(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=br(r.type,r.data),n=Jt(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=br(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=Jt(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=Ar(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=Ar(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`;wl(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}}}}},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:{}},tree:r.tree}}}});function Jt(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function Ar(e,t){return e.map(n=>t[n]).sort(hr).map(n=>n.id)}function wl(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function re(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=Dl[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 St(e){return !!e&&!!e[ie]}function Ge(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)===Nl}(e)||Array.isArray(e)||!!e[Da]||!!(!((t=e.constructor)===null||t===void 0)&&t[Da])||po(e)||mo(e))}function Qt(e,t,r){r===void 0&&(r=!1),At(e)===0?(r?Object.keys:bo)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e);}):e.forEach(function(o,n){return t(n,o,e)});}function At(e){var t=e[ie];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:po(e)?2:mo(e)?3:0}function so(e,t){return At(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function xl(e,t){return At(e)===2?e.get(t):e[t]}function Na(e,t,r){var o=At(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function Il(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function po(e){return Ll&&e instanceof Map}function mo(e){return Ol&&e instanceof Set}function $e(e){return e.o||e.t}function fo(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Ul(e);delete t[ie];for(var r=bo(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),yo(e)||St(e)||!Ge(e)||(At(e)>1&&(e.set=e.add=e.clear=e.delete=Cl),Object.freeze(e),t&&Qt(e,function(r,o){return go(o,!0)},!0)),e}function Cl(){re(2);}function yo(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function ye(e){var t=Fl[e];return t||re(18,e),t}function xa(){return process.env.NODE_ENV==="production"||Et||re(0),Et}function ro(e,t){t&&(ye("Patches"),e.u=[],e.s=[],e.v=t);}function Tr(e){io(e),e.p.forEach(Bl),e.p=null;}function io(e){e===Et&&(Et=e.l);}function Ia(e){return Et={p:[],l:Et,h:e,m:!0,_:0}}function Bl(e){var t=e[ie];t.i===0||t.i===1?t.j():t.g=!0;}function oo(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||ye("ES5").S(t,e,o),o?(r[ie].P&&(Tr(t),re(4)),Ge(e)&&(e=vr(t,e),t.l||kr(t,e)),t.u&&ye("Patches").M(r[ie].t,e,t.u,t.s)):e=vr(t,r,[]),Tr(t),t.u&&t.v(t.u,t.s),e!==Ua?e:void 0}function vr(e,t,r){if(yo(t))return t;var o=t[ie];if(!o)return Qt(t,function(i,c){return Ca(e,o,t,i,c,r)},!0),t;if(o.A!==e)return t;if(!o.P)return kr(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var n=o.i===4||o.i===5?o.o=fo(o.k):o.o,a=n,s=!1;o.i===3&&(a=new Set(n),n.clear(),s=!0),Qt(a,function(i,c){return Ca(e,o,n,i,c,r,s)}),kr(e,n,!1),r&&e.u&&ye("Patches").N(o,r,e.u,e.s);}return o.o}function Ca(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&re(5),St(n)){var i=vr(e,n,a&&t&&t.i!==3&&!so(t.R,o)?a.concat(o):void 0);if(Na(r,o,i),!St(i))return;e.m=!1;}else s&&r.add(n);if(Ge(n)&&!yo(n)){if(!e.h.D&&e._<1)return;vr(e,n),t&&t.A.l||kr(e,n);}}function kr(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&go(t,r);}function no(e,t){var r=e[ie];return (r?$e(r):e)[t]}function Ba(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 co(e){e.P||(e.P=!0,e.l&&co(e.l));}function ao(e){e.o||(e.o=fo(e.t));}function lo(e,t,r){var o=po(t)?ye("MapSet").F(t,r):mo(t)?ye("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:xa(),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=Yt);var u=Proxy.revocable(c,l),p=u.revoke,d=u.proxy;return i.k=d,i.j=p,d}(t,r):ye("ES5").J(t,r);return (r?r.A:xa()).p.push(o),o}function Ml(e){return St(e)||re(22,e),function t(r){if(!Ge(r))return r;var o,n=r[ie],a=At(r);if(n){if(!n.P&&(n.i<4||!ye("ES5").K(n)))return n.t;n.I=!0,o=Ma(r,a),n.I=!1;}else o=Ma(r,a);return Qt(o,function(s,i){n&&xl(n.t,s)===i||Na(o,s,t(i));}),a===3?new Set(o):o}(e)}function Ma(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return fo(e)}var La,Et,ho=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Ll=typeof Map<"u",Ol=typeof Set<"u",Oa=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Ua=ho?Symbol.for("immer-nothing"):((La={})["immer-nothing"]=!0,La),Da=ho?Symbol.for("immer-draftable"):"__$immer_draftable",ie=ho?Symbol.for("immer-state"):"__$immer_state";var Dl={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"},Nl=""+Object.prototype.constructor,bo=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Ul=Object.getOwnPropertyDescriptors||function(e){var t={};return bo(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},Fl={},uo={get:function(e,t){if(t===ie)return e;var r=$e(e);if(!so(r,t))return function(n,a,s){var i,c=Ba(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||!Ge(o)?o:o===no(e.t,t)?(ao(e),e.o[t]=lo(e.A.h,o,e)):o},has:function(e,t){return t in $e(e)},ownKeys:function(e){return Reflect.ownKeys($e(e))},set:function(e,t,r){var o=Ba($e(e),t);if(o?.set)return o.set.call(e.k,r),!0;if(!e.P){var n=no($e(e),t),a=n?.[ie];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(Il(r,n)&&(r!==void 0||so(e.t,t)))return !0;ao(e),co(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 no(e.t,t)!==void 0||t in e.t?(e.R[t]=!1,ao(e),co(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=$e(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){re(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){re(12);}},Yt={};Qt(uo,function(e,t){Yt[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};}),Yt.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&re(13),Yt.set.call(this,e,t,void 0)},Yt.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&re(14),uo.set.call(this,e[0],t,r,e[0])};var Vl=function(){function e(r){var o=this;this.O=Oa,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(h){var b=this;h===void 0&&(h=i);for(var A=arguments.length,v=Array(A>1?A-1:0),P=1;P<A;P++)v[P-1]=arguments[P];return c.produce(h,function(R){var S;return (S=a).call.apply(S,[b,R].concat(v))})}}var l;if(typeof a!="function"&&re(6),s!==void 0&&typeof s!="function"&&re(7),Ge(n)){var u=Ia(o),p=lo(o,n,void 0),d=!0;try{l=a(p),d=!1;}finally{d?Tr(u):io(u);}return typeof Promise<"u"&&l instanceof Promise?l.then(function(h){return ro(u,s),oo(h,u)},function(h){throw Tr(u),h}):(ro(u,s),oo(l,u))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===Ua&&(l=void 0),o.D&&go(l,!0),s){var m=[],y=[];ye("Patches").M(n,l,m,y),s(m,y);}return l}re(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(m){return n.apply(void 0,[m].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){Ge(r)||re(8),St(r)&&(r=Ml(r));var o=Ia(this),n=lo(this,r,void 0);return n[ie].C=!0,io(o),n},t.finishDraft=function(r,o){var n=r&&r[ie];process.env.NODE_ENV!=="production"&&(n&&n.C||re(9),n.I&&re(10));var a=n.A;return ro(a,o),oo(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!Oa&&re(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=ye("Patches").$;return St(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),ce=new Vl,zl=ce.produce;ce.produceWithPatches.bind(ce);ce.setAutoFreeze.bind(ce);ce.setUseProxies.bind(ce);ce.applyPatches.bind(ce);ce.createDraft.bind(ce);ce.finishDraft.bind(ce);var _r=zl;var de=ve.actions,qa=Zt({block:Ke("block"),dimension:Ke("dimension"),formatter:Ke("formatter"),report:Ke("report"),section:Ke("section"),variant:Ke("variant")}),te=Zt({block:je("block"),dimension:je("dimension"),formatter:je("formatter"),report:je("report"),section:je("section"),variant:je("variant")}),$a=Zt({block:Re("block"),dimension:Re("dimension"),formatter:Re("formatter"),report:Re("report"),section:Re("section"),variant:Re("variant")}),Ga=Zt({block:Tt("block"),dimension:Tt("dimension"),formatter:Tt("formatter"),report:Tt("report"),section:Tt("section"),variant:Tt("variant")}),Ka=Zt({block:Va("block"),section:Va("section")});function Zt(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 He(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(de.setRequest({key:t,type:e,status:s}));}}function vt(e,t,r,o){return n=>{typeof window=="object"&&notifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(de.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function Ke(e){return t=>{let r=So(e,t);return (o,n,a)=>(o(He(e,r)),oe(a,"create",e)(t).then(i=>(i.ok===!0?o(de.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(vt(e,r,i.status,i.error)),i)))}}function Gl(e){return t=>{let r=So(e,t[0]);return (o,n,a)=>(o(He(e,r)),oe(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(de.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(vt(e,r,i.status,i.error)),i)))}}function Fa(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Kl(e){return e.section_id!==void 0}function jl(e){return e.report_id!==void 0}function Va(e){return t=>{let{create:r}=t;return (o,n,a)=>Ke(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:u}=t,p=Wa(e,{id:l});if(o(He(e,`${p}`)),e==="block"&&Kl(r)){let d=_r(u,b=>{b.id=l;}),{contentByLocale:m}=d;m&&(d=_r(d,b=>{b.id=l,b.contentByLocale=Object.keys(m).reduce((A,v)=>{let P=m?m[v]:{};return A[v]={...P,id:l},A},{});}));let h=d.inputs?.map(b=>({type:b.type,id:b.id,inputAction:{operation:"create",input:{input_id:b.id,block_id:d.id}}}));return h&&h.length>0&&za(e)([d,...h])(o,n,a).then(()=>je("section")({id:d.section_id,include:!0})(o,n,a).then(b=>(b.ok&&o(de.setRequest({key:p,type:e,status:"SUCCESS",data:b.data})),b))),Re(e)(d)(o,n,a).then(b=>(b.ok&&o(de.setRequest({key:p,type:e,status:"SUCCESS",data:b.data})),b))}if(e==="section"&&jl(r)){let{id:d}=c,m=_r(u,b=>{b.id=d;}),{blocks:y}=m,h=y?.map(b=>({type:b.type,blockcol:b.blockcol,blockrow:b.blockrow,section_id:d,locales:Object.keys(b.contentByLocale).map(A=>A)}));return h&&y&&await Gl("block")(h)(o,n,a).then(b=>{if(b.ok){let A=b.data,v=[],P=A.map((R,S)=>{let I={...R},T=I.id,U=y[S];U.contentByLocale&&(I.contentByLocale=Object.keys(U.contentByLocale).reduce((w,C)=>{let D=U.contentByLocale[C];return w[C]={...D,content:{...D.content},id:I.id},w},{}));let{settings:L}=U,{contentByLocale:V,id:X}=I;I.settings=L;let H={id:X,contentByLocale:V,settings:L};return U.inputs.map(w=>w.id).reduce((w,C)=>{let D=y.findIndex(G=>G.id===C);return [...w,D]},[]).map(w=>({...A[w],originalBlock:y[w]})).forEach(w=>{let{id:C,type:D,originalBlock:G}=w;if(["selector","visualization"].includes(D)){if(H.contentByLocale?.logic?.content?.api){let k=H.contentByLocale?.logic.content.api;H.contentByLocale.logic.content.api=Fa(`(selector${G.id}id)`,`selector${C}id`,k);}if(H.contentByLocale?.logic?.content?.logic){let k=H.contentByLocale.logic.content.logic;H.contentByLocale.logic.content.logic=Fa(`(selector${G.id}id)`,`selector${C}id`,k);}}v.push({id:C,inputAction:{operation:"create",input:{input_id:C,block_id:T}}});}),H});return za("block")([...P,...v])(o,n,a)}}),Re(e)(m)(o,n,a).then(b=>(b.ok&&o(de.setRequest({key:p,type:e,status:"SUCCESS",data:b.data})),b))}return Re(e)({...u,id:c.id})(o,n,a)}})}}function je(e){return t=>{let r=ja(e,t);return (o,n,a)=>(o(He(e,r)),oe(a,"read",e)(t).then(i=>(i.ok===!0?o(de.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(vt(e,r,i.status,i.error)),i)))}}function Re(e){return t=>{let r=Eo(e,t);return (o,n,a)=>(o(He(e,r)),oe(a,"update",e)(t).then(i=>(i.ok===!0?o(de.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(vt(e,r,i.status,i.error)),i)))}}function za(e){return t=>{let r=Eo(e,t[0]);return (o,n,a)=>(o(He(e,r)),oe(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(de.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(vt(e,r,i.status,i.error)),i)))}}function Tt(e){return t=>{let r=Ha(e,t);return (o,n,a)=>(o(He(e,r)),oe(a,"delete",e)(t).then(i=>{i.ok===!0?o(de.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(vt(e,r,i.status,i.error));}))}}function So(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function ja(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function Eo(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function Ha(e,t){return `delete(${e}, ${t})`}function Wa(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:Ja,setPreviews:Hl,setSectionState:Ya,resetSectionState:Qa,setCurrentLocale:Wl,setPreferredLocale:Jl}=qe;function Yl(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 Ql(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 Zl(){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 ke(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 Xl(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 Za(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(Ja(i)),n.activeSection&&t(Xa(e,{query:s}));}function eu(e,t){return async(r,o)=>Za(e,r,o,{query:{[t]:void 0}})}function tu(e,t,r){return async(o,n)=>Za(e,o,n,{query:{[t]:r}})}function Xa(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],{parsedParams:c,statusPayload:l}=wa(n.status,t),{sid:u,bid:p,previews:d,query:m}=c;Object.keys(l).length&&r(qe.setStatus(l));let y={...gt(d),locale:a,...yt()},h={variables:y,query:m,locale:a},b=n.records.entities.section[u],A=async v=>r(ke(v));try{let v=await ft(s,b&&[b],p,i,h,void 0,A),{variables:P,status:R}=v;r(Rt.setVariableChange({attributes:y,variables:P,status:R}));}catch(v){console.log("Error in runConsumers client side: recalculateVariables",v);}}}function ru(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 ou(e){return async(t,r,o)=>{let n=await o.urlProxy({url:e});if("error"in n)throw new Error(n.error);return n.data}}function nu(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function au(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 su(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 iu({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 cu(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 kt(e){let{removeBlocks:t}=ve.actions;return async r=>{await r(t(e));}}function Ao(e){let{addBlocks:t}=ve.actions;return async r=>{await r(t(e));}}function lu(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 uu(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 pu(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}}var es=e=>configureStore({reducer:{[ve.name]:ve.reducer,[Sr.name]:Sr.reducer,[Er.name]:Er.reducer},middleware(t){return t({thunk:{extraArgument:Kt("/api/cms/")}})}}),Je=createWrapper(es);function yu(e){let t=process.cwd(),r=gu.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(ec.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 hu(e){let t=()=>Promise.resolve({}),{pathSegmentsKey:r="bespoke",preResolve:o=t,postResolve:n=t}=e||{};return Q.withPageAuthRequired({getServerSideProps:Je.getServerSideProps(a=>{let{dispatch:s}=a;return async i=>{let c=i.query[r],[l]=Array.isArray(c)?c:[c];await s(Ue);let u=await yu("@datawheel/bespoke"),p=await o(a,i);if("redirect"in p)return {props:p};l==="reports"&&(ts(i.query[r])?await Promise.all([s(te("formatter",{})),s(te("report",{id:ts(i.query[r]),include:!0})),qe.setStatus({isCMS:!0})]):await Promise.all([s(te("report",{include:"dimensions"})),qe.setStatus({isCMS:!0})])),l==="metadata"&&await s(te("report",{include:"dimensions"})),l==="formatters"&&await s(te("formatter",{}));let d=await n(a,i);return {props:{...p,...d,bespokeVersion:u}}}})})}function ts(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:Ru}=F(),Su={pathSegment:"path",formatterFunctions:Ru.reduce((e,t)=>({...e,[t]:{}}),{}),profilePrefix:"path",siteProps:{}};createContext(Su);F();var Pr=e=>e.records.entities.block;function wt(e){return t=>Object.values(t.records.entities[e])}var wr=wt("section"),xr=wt("formatter");function Ou(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=se,locales:a=[]}=o,s=[];if(r>0){let i=a.find(u=>u===n),{searchMember:c}=await Le().then(lt),l=await c({query:"",limit:r,format:"plain",locale:i||se,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 Du(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return Je.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(Ue);let a=new Date().toISOString(),{locale:s=se,params:i={}}=n,c=Array.from(ko(i[t]));if(c.length===0)return await Promise.all([o(te("formatter",{})),o(te("report",{include:!0}))]),{props:{buildTime:a}};let l=await o(ke({mode:"slugs",locale:s,slugs:c,output:"full"}));o(We.setPreviews(l.results)),await Promise.all([o(te("formatter",{})),o(te("report",{id:l.results.map(S=>S.report_id),include:!0,locales:[s]}))]);let u=r.getState(),p=xr(u),d=Wt(p,s),m=wr(u),y=Pr(u),h={...y},b={},A=Object.values(y).reduce((S,M)=>("access"in M.settings&&!["public","guest"].some(I=>!M.settings.access||M.settings.access.includes(I))&&S.push(M.id),S),[]);A=A.concat(Ne(A,Object.values(h)));let v=A.filter(S=>h[S].settings[Ho.FALLBACK]);A.forEach(S=>{v.includes(S)&&(b[S]={...h[S],type:"fallback"}),delete h[S];}),await o(kt(A)),await o(Ao(b));let P={...gt(l.results),locale:s,...yt()},R=async S=>await o(ke(S));return await ft({...h,...b},m,void 0,d,{locale:s,query:i,variables:P},void 0,R,"report").then(S=>{o(Rt.setVariableChange({...S,attributes:P}));}),{props:{buildTime:a}}}})}catch(r){console.log("ERROR SSR",r);}}function ko(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 Nu(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return Je.getServerSideProps(r=>{let{dispatch:o}=r;return async n=>{let{section:a,block:s}=n.query,i=Object.fromEntries(Object.entries(n.query).filter(([T])=>T.match(/selector\d+id/)));if(!a&&!s)return {notFound:!0};let c=Number(a);await o(Ue);let l=new Date().toISOString(),{locale:u=se,params:p={}}=n,d=Array.from(ko(p[t]));if(d.length===0)return {notFound:!0};let m=await o(ke({mode:"slugs",locale:u,slugs:d,output:"full"}));o(We.setPreviews(m.results)),await Promise.all([o(te("formatter",{})),o(te("report",{id:m.results.map(T=>T.report_id),include:!0,locales:[u]}))]);let y=r.getState(),h=xr(y),b=Wt(h,u),A=wr(y).filter(T=>T.id===c),v=Pr(y),P={...v},R=Object.values(v).reduce((T,U)=>("access"in U.settings&&!["public","guest"].some(L=>!U.settings.access||U.settings.access.includes(L))&&T.push(U.id),T),[]);R=R.concat(Ne(R,Object.values(P))),R.forEach(T=>{delete P[T];}),await o(kt(R));let S={...gt(m.results),locale:u,...yt()},M=async T=>await o(ke(T));await ft(P,A,void 0,b,{locale:u,query:{...p,...i},variables:S},void 0,M,"section").then(T=>{o(Rt.setVariableChange({...T,attributes:S}));});let I=Object.keys(P).filter(T=>a&&s?T!==s:P[T].section_id!==c);return await o(kt(I)),{props:{buildTime:l}}}})}catch(r){console.log("ERROR SSR",r);}}
57
+ `)}return global.flexsearch};async function Bi(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]}),r=Ii.map(async o=>{wt&&console.log(`\u{1F3F3}\uFE0F INITIALIZING SEARCH ${o} LOCALE`);let n=nr.find(u=>u.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.log(` Charset for ${o}: ${a}`):wt&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new Pi.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"),m=Array.isArray(p.keywords)?p.keywords.map(R=>rt(R,a!=="arabic")):null,y={id:u.id,content_id:u.content_id,name:p.name,keywords:m,attributes:p.attributes,clean:d};c.add(y),l++;}}),console.log(`\u{1F3F3}\uFE0F Indexed for ${o}: ${l} elements`),[o,c]});return Object.fromEntries(await Promise.all(r))}var Oe=Ci;var{localeDefault:un}=K();function ot(e){let{search:t,report:r}=e;return o;async function o(n){let a=await Oe(e),s=[],{query:i,locale:c,preferredLocale:l,limit:u,format:p,visible:d,variant:m,dimension:y,report:R,all:h,noImage:T,includes:k,sort:I,direction:E="ASC",offset:b=0}=n,D=nr.find(x=>x.locales.includes(c))?.charset||"latin";if(i&&i!==""&&a[c]){let x=rt(i,D!=="arabic");if(s=a[c].search({query:x,limit:9999999999}).reduce((U,V)=>U.concat(V.result),[]),s=Yt(s),l&&a[l]){let V=a[l].search(x).reduce((B,fe)=>B.concat(fe.result),[]);V=Yt(V),s=Yt([...s,...V]);}}let F={...d?{visible:d}:{},...T?{image_id:{[Op.eq]:null}}:{},...m.length?{variant_id:m}:{},...y.length?{dimension_id:y}:{},...R.length?{report_id:R}:{}},Z={locale:h?{[Op.ne]:null}:c},W=u&&!isNaN(u)?u:20,L=[["zvalue","DESC NULLS LAST"]];I&&I!=="name"&&L.unshift([I,E.toUpperCase()]),i&&i!==""&&(F.content_id=s);let z=[{association:"contentByLocale",where:Z}];k&&z.push({association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name"]},{association:"variant",attributes:["id","slug","name"]});let j={...F.visible?{visible:F.visible}:{},...F.noImage?{image_id:F.noImage}:{},...F.content_id?{content_id:F.content_id}:{}};if(!F.report_id&&!F.dimension_id&&!F.variant_id&&d){let Y=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(U=>U.id);Y.length>0&&(F.report_id={[Op.notIn]:Y},j.report_id=F.report_id);}let _=[],[A,O]=await Promise.all([t.findAll({limit:W,offset:b,where:F,include:z,order:L}),t.findAll({attributes:["variant_id",[fn$1("COUNT",col("variant_id")),"members_count"]],where:j,group:["variant_id"]})]),v=O.map(x=>x.toJSON());if(I==="name"){let x=E.toUpperCase()==="ASC"?1:-1;A.sort((Y,U)=>{let V=Y.getContent(un),B=U.getContent(un);return V&&B?V.name>B.name?1*x:-1*x:0});}let P=p==="nested"?$:X;return _=A.map(P),p!=="nested"&&_.forEach(x=>{let{name:Y,keywords:U,score:V=.1,zvalue:B}=x;if(Y){let fe=rt(Y),He=V,Wt=i.length/fe.length,_o=fe.split("").reduce((wr,ko,Po)=>(i.slice(0,Po),i.charAt(Po)===ko&&(wr+=ko),wr),"").length;fe===i||U&&U.includes(i)?He=1e6:fe.startsWith(i)?He*=20*Wt:_o&&(He*=_o*Wt),x.zvalue=He*2+B;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(x=>[x[0],G(x[1])])),variantCount:v.reduce((x,Y)=>(x[Y.variant_id]=parseInt(Y.members_count,10),x),{})},results:_};function $(x){return x.toJSON()}function X(x){let Y=x.getContent(c);return {...x.toJSON(),locale:Y.locale,name:Y.name,attributes:Y.attributes,keywords:Y.keywords}}}}function pn(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 y=0;y<c.length;y++){let R=c[y];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 m=0;m<l.contentByLocale.length;m++){let y=l.contentByLocale[m];await r.update({meta:y.meta},{where:{id:y.id,locale:y.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 dn(e){return {ingestMembers:sn(e),readMember:cn(e),searchMember:ot(e),updateMember:pn(e),readMemberImage:ln(e)}}var Ne={include:[{association:"contentByLocale",separate:!0},{association:"inputs",include:[{association:"contentByLocale",separate:!0}]},{association:"consumers",include:[{association:"contentByLocale",separate:!0}]}]},xt=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"]]}),It={include:[{association:"blocks",separate:!0,...Ne}]},sr=e=>({include:[{association:"dimensions",separate:!0,...xt(e)},{association:"sections",separate:!0,...It}]});var ye=[{association:"image",attributes:{exclude:["splash"]},include:[{association:"contentByLocale"}]},{association:"contentByLocale"}];function mn(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(y=>({locale:y}))},{include:Ne.include})).toJSON()}async function a(u){let p=u.map(m=>{let{locales:y,...R}=m;return {...R,consumers:[],inputs:[],contentByLocale:y.map(T=>({locale:T}))}});return (await t.bulkCreate(p,{include:Ne.include})).map(m=>m.toJSON())}async function s({id:u,include:p}={}){let d=u==null?[]:[].concat(u),m=await t.findAll({where:d.length>0?{id:d}:void 0,include:p?Ne.include:void 0});if(d.length===0||m.length===d.length)return m.map(h=>h.toJSON());let y=m.map(h=>h.id),R=d.filter(h=>!y.includes(h));throw new S(404,`Block(id=[${R}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:d,consumers:m,inputs:y,inputAction:R,...h}=u,T=await t.findByPk(p,{include:Ne.include,rejectOnEmpty:!0});if(T.set(h),d){let k=Object.values(d);await r.bulkCreate(k,{updateOnDuplicate:["content"]});}return R&&(R.operation==="create"?await o.create(R.input):await o.destroy({where:R.input})),await T.save(),await T.reload(),T.toJSON()}async function c(u){let p=u.map(y=>{let{id:R,contentByLocale:h,consumers:T,inputs:k,inputAction:I,...E}=y;return {id:R,contentByLocale:h,inputAction:I,...E}}),d=await t.findAll({where:{id:{[Op.or]:p.map(y=>y.id)}},include:Ne.include}),m=[];for(let y of d){let R=p.filter(h=>h.id===y.id);for(let h=0;h<R.length;h++){let T=R[h],{id:k,contentByLocale:I,inputAction:E,...b}=T;if(E&&(E.operation==="create"?await o.create(E.input):await o.destroy({where:E.input})),I){let M=Object.values(I);await r.bulkCreate(M,{updateOnDuplicate:["content"]});}y.set(b),await y.save(),await y.reload(),m.push(y.toJSON());}}return m}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 fn(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,variants:[]},{include:xt(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?xt(r).include:void 0});if(l.length===0||u.length===l.length)return u.map(m=>m.toJSON());let p=u.map(m=>m.id),d=l.filter(m=>!p.includes(m));throw new S(404,`Dimension(id=[${d}]) does not exist.`)}async function a(i){let{id:c,variants:l,...u}=i,p=await t.findByPk(c,{include:xt(r).include,rejectOnEmpty:!1});if(!p)throw new S(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 S(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}}}var{locales:zi}=K();function yn(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:sr(r).include})).toJSON()}async function n({id:i,include:c,locales:l=zi}={}){let p=(i==null?[]:[].concat(i)).reduce((R,h)=>(R.includes(h)||R.push(h),R),[]),d=await t.findAll({where:p.length>0?{id:p}:void 0,include:c?sr(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 h=R.toJSON();return {...h,sections:h.sections.map(T=>({...T,blocks:T.blocks.map(k=>({...k,contentByLocale:Object.keys(k.contentByLocale).reduce((I,E)=>({...I,...[...l,"logic"].includes(E)?{[E]:k.contentByLocale[E]}:{}}),{})}))}))}});let m=d.map(R=>R.id),y=p.filter(R=>!m.includes(R));throw new S(404,`Report(id=${y}) does not exist.`)}async function a(i){let{id:c,dimensions:l,sections:u,...p}=i,d=await t.findByPk(c,{include:sr(r).include,rejectOnEmpty:!1});if(!d)throw new S(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 hn(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:It.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?It.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 S(404,`Section(id=${p}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,u=await t.findByPk(i,{include:It.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 Sn(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,m=await c({dimension:u,slug:d});return (await r.create({dimension_id:u,name:p,slug:m.valid?m.candidate:m.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(y=>y.toJSON());let d=p.map(y=>y.id),m=u.filter(y=>!d.includes(y));throw new S(404,`Variant(id=${m}) does not exist.`)}async function s(l){let{id:u,...p}=l,d=await r.findByPk(u,{include:[{association:"dimension"}],rejectOnEmpty:!0});p.settings=Pt(p.settings);let m=p.settings.doIngest;return p.settings.doIngest=!1,await d.update(p),m&&(await t.ingestMembers(d),await Oe(e,!0)),await d.reload(),d.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:!0});return await u.destroy(),Oe(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(h=>{let T=h.getDataValue("slugCount");return [h.slug,Number.parseInt(`${T}`,10)]}))),d=u,m=1,y=!0;for(;p[d];)y=!1,d=`${u}-${m}`,m++;return {candidate:u,dimension_id:l,suggestion:d,valid:y}}}function En(e){let t={...mn(e),...fn(e),...gn(e),...dn(e),...yn(e),...hn(e)},r={...t,...Sn(e,t)};return {createFormatter:w(r.createFormatter),deleteFormatter:w(r.deleteFormatter),readFormatter:w(r.readFormatter),updateFormatter:w(r.updateFormatter),createReport:w(r.createReport),deleteReport:w(r.deleteReport),readReport:w(r.readReport),updateReport:w(r.updateReport),createDimension:w(r.createDimension),deleteDimension:w(r.deleteDimension),readDimension:w(r.readDimension),updateDimension:w(r.updateDimension),createVariant:w(r.createVariant),readVariant:w(r.readVariant),updateVariant:w(r.updateVariant),deleteVariant:w(r.deleteVariant),validateVariantSlug:w(r.validateVariantSlug),createSection:w(r.createSection),readSection:w(r.readSection),updateSection:w(r.updateSection),deleteSection:w(r.deleteSection),createBlock:w(r.createBlock),deleteBlock:w(r.deleteBlock),readBlock:w(r.readBlock),updateBlock:w(r.updateBlock),createBulkBlock:w(r.createBulkBlock),updateBulkBlock:w(r.updateBulkBlock),readMember:w(r.readMember),searchMember:w(r.searchMember),updateMember:w(r.updateMember),readMemberImage:w(r.readMemberImage)}}var An=e=>{throw console.error("/methods/helpers/uploadImage.ts:",e),new Error(e.message)},Gi=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,Ki=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,ji=async(e,t,r)=>{let o=[{type:"splash",res:Gi},{type:"thumb",res:Ki}];for(let n of o){let a=await qi(r).resize(n.res).toFormat("webp").webp({lossless:!0}).toBuffer().catch(An);await e.image.update({[n.type]:a},{where:{id:t}}).catch(An);}},Ae=ji;var Tn="|||";var vn="SECTION_ALLOWED";var _n=["4","5","7","8","9","10"],Yi=_n.join(),{locales:Qi}=K(),Te;if(process.env.FLICKR_API_KEY)try{Te=new Ji(process.env.FLICKR_API_KEY);}catch(e){throw console.error("Flickr ERROR:",e),new Error(e.message)}async function kn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Te)throw console.log("Flickr is not initialized. Check the credentials"),new Error("Flickr is not initialized. Check the credentials");let o=r.prompt,a=(await Te.photos.search({text:o,license:Yi,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(Te.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(m=>m.label==="Small 320");return d&&l.push({id:a[p].id,source:d.source}),l},[]);return {meta:{prompt:G(r.prompt),page:G(`${r.page}`)},results:c}}catch(r){throw console.log(r),new Error("Error in search flickr provider")}}async function Pn(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:G(`${r}`)||"",id:G(`${o}`)||""},s=`https://flic.kr/p/${Wi.int_to_base58(o)}`;if(!Te)throw new Error("Flickr API Key not configured");let i=await Te.photos.getInfo({photo_id:o}).then(l=>l.body),c;if(i)if(_n.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 Te.photos.getSizes({photo_id:o}).then(E=>E.body),m=d.sizes.size.find(E=>parseInt(E.width,10)>=1600);if(m||(m=d.sizes.size.find(E=>parseInt(E.width,10)>=1e3)),m||(m=d.sizes.size.find(E=>parseInt(E.width,10)>=500)),!m||!m.source)throw new Error("Flickr Source Error, try another image.");let y=await dr.get(m.source,{responseType:"arraybuffer"}).then(E=>E.data),h=(await Te.photos.licenses.getInfo().then(E=>E.body.licenses.license)).find(E=>E.id===parseInt(i.photo.license,10)),T={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:h?`${h.name}: ${h.url}`:""},k=await e.image.create(T);await e.image_content.destroy({where:{id:k.id}});let I=Qi.map(E=>({id:k.id,locale:E,meta:i.photo.title._content}));await e.image_content.bulkCreate(I),await e.search.update({image_id:k.id},{where:{content_id:r}}),await Ae(e,k.id,y);}let p=await e.search.findOne({where:{content_id:r},include:ye});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.log(r),new Error("Error in save flickr provider")}}function C(e,t,r,o){return {method:e,path:t,handler:r,roleRequired:o}}function Q(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new S(400,`Invalid numeric parameter: ${e}`);return t}function q(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:ve}=K();function wn(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [C("GET","read/members",async a=>{let s=Zi(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new S(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new S(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),C("GET","search/members",a=>{let s=Ct(a.query);return r(s)}),C("POST","update/member",a=>{let{body:s}=a;return o(s)},[H.EDITOR]),C("GET","member/image",a=>{let s=q(a.query.size)[0];return n({member:Q(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function Zi(e){let t=q(e.locale)[0]||ve||"en",r=t==="all"||ir(e.all),o=q(e.mode)[0],a=(q(e.output)[0]||"full")==="lite"?"lite":"full",s=parseInt(q(e.related)[0],10)||5,i=q(e.variant).map(Q);if(i.length===0&&(i=q(e["variant[]"]).map(Q)),o==="ids")return {all:r,mode:o,variant:i,output:a,locale:r?ve:G(t),ids:q(e.ids||e["ids[]"])};if(o==="content_ids")return {all:r,mode:o,variant:i,output:a,locale:r?ve:G(t),content_ids:q(e.content_ids||e["content_ids[]"]).map(Q)};if(o==="slugs")return {all:r,mode:o,variant:i,output:a,locale:r?ve:G(t),slugs:q(e.slugs||e["slugs[]"]).map(c=>{let[l,u]=c.split("/");return {variantSlug:l,memberSlug:u}})};if(o==="related")return {all:r,mode:o,locale:r?ve:G(t),related:s,current_ids:q(e.current_ids||e["current_ids[]"]).map(Q),include_ids:q(e.include_ids||e["include_ids[]"]).map(Q),report_ids:q(e.report_ids||e["report_ids[]"]).map(Q),dimension_ids:q(e.dimension_ids||e["dimension_ids[]"]).map(Q),variant_ids:q(e.variant_ids||e["variant_ids[]"]).map(Q),output:a};if(o==="whole")return {all:r,mode:o,variant:i,locale:r?ve:G(t),output:a};throw new S(400,`Invalid mode: '${o}'`)}function Ct(e){let t=q(e.locale)[0]||ve||"en",r=t==="all",o=q(e.format)[0],n=o?o==="nested":r,a=q(e.variant).map(Q);a.length===0&&(a=q(e["variant[]"]).map(Q));let s=q(e.dimension).map(Q);s.length===0&&(s=q(e["dimension[]"]).map(Q));let i=q(e.report).map(Q);return i.length===0&&(i=q(e["report[]"]).map(Q)),{query:q(e.query||e.q)[0]||"",locale:r?ve:t,preferredLocale:q(e.preferredLocale)[0],limit:q(e.limit).map(Q)[0]??5,format:n?"nested":"plain",includes:ir(e.includes,{default:!0}),visible:ir(e.visible,{default:!0}),noImage:ir(e.noImage,{default:!1}),variant:a,dimension:s,report:i,all:r,sort:q(e.sort)[0],direction:q(e.direction)[0],offset:Number(e.offset||0)}}async function xn(e,t){let r=ot(e),o=Ct({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:G(o.query)},results:a}}async function In(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:ye}).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:tc}=K(),Bt;if(process.env.UNSPLASH_API_KEY)try{Bt=createApi({accessKey:process.env.UNSPLASH_API_KEY});}catch(e){throw console.error("Unsplash error:",e),new Error(e.message)}async function Cn(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Bt)throw new Error("Unsplash API Key not configured");let o=r.prompt,a=(await Bt.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:G(r.prompt),page:G(`${r.page}`)},results:a}}catch(r){throw console.log(r),new Error("Error in search unsplash provider")}}async function Bn(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:G(`${r}`)||"",id:G(`${o}`)||""};if(!Bt)throw console.log("Unsplash is not initialized. Check the credentials"),new Error("Unsplash is not initialized. Check the credentials");let a=await Bt.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"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=tc.map(R=>({id:m.id,locale:R,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ae(e,m.id,p);}let u=await e.search.findOne({where:{content_id:r},include:ye});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.log(r),new Error("Error in save unsplash provider")}}var{locales:oc}=K();async function Mn(e,t){try{let{content_id:r,image_source:o,files:n}=t,a={content_id:G(`${r}`)||""};if(await e.search.findOne({where:{content_id:r}})&&n){let c=await rc.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=oc.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 Ae(e,u.id,c);}let i=await e.search.findOne({where:{content_id:r},include:ye});return i&&i.image&&(i.image.thumb=!!i.image.thumb),{meta:{...a},results:i}}catch(r){throw console.log(r),new Error("Error in save upload provider")}}var{locales:nc}=K();var Ln=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 Mt;if(process.env.ADOBE_STOCK_API_KEY)try{Mt={search:async(e,t)=>await dr.get("https://stock.adobe.io/Rest/Media/1/Search/Files",{headers:await Ln(!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 Ln(!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 On(e,t){try{let r={prompt:t.prompt||"",page:t.page||1};if(!Mt)throw new Error("Adobe API Key not configured");let n=(await Mt.search(r.prompt,r.page)).map(a=>({id:a.id,source:a.thumbnail_url}));return {meta:{prompt:G(r.prompt),page:G(`${r.page}`)},results:n}}catch(r){throw console.log(r),new Error("Error in search Adobe provider")}}async function Nn(e,t){try{let{content_id:r,image_id:o}=t,n={content_id:G(`${r}`)||"",id:G(`${o}`)||""};if(!Mt)throw console.log("Adobe is not initialized. Check the credentials"),new Error("Adobe is not initialized. Check the credentials");let a=await Mt.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"},m=await e.image.create(d);await e.image_content.destroy({where:{id:m.id}});let y=nc.map(R=>({id:m.id,locale:R,meta:a.title||a.description}));await e.image_content.bulkCreate(y),await e.search.update({image_id:m.id},{where:{content_id:r}}),await Ae(e,m.id,p);}let u=await e.search.findOne({where:{content_id:r},include:ye});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.log(r),new Error("Error in save adobe provider")}}var ac={local:In,flickr:Pn,unsplash:Bn,upload:Mn,adobe:Nn};function at(e,t){let r=ac[t];if(!r)throw new S(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return w(o=>r(e,o))}var sc={local:xn,flickr:kn,unsplash:Cn,adobe:On};function Lt(e,t){let r=sc[t];if(!r)throw new S(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return w(o=>r(e,o))}var mc=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){return {data:(await t.findAll({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",[fn$1("COUNT",col("members.id")),"members_count"],[literal("COALESCE(NULLIF(settings ->> 'order', '')::INTEGER, 0)"),"ordering"]],include:[{model:r,attributes:[],as:"members"}],association:"variants",separate:!0,group:["variant.id"],order:[["ordering","ASC"]]}]}]})).map(s=>({...mc(s.toJSON()),mode:s.dimensions.length===1?Ee.UNILATERAL:Ee.MULTILATERAL}))}}}function Dn(e){return async()=>(await Oe(e,!0),{error:!1})}var{locales:fc,localeDefault:gc}=K(),yc=(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===Ee.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.sort((o,n)=>o.confidence<n.confidence?1:-1)},hc=(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 Un(e){let t=ot(e),r=lr(e);return o;async function o(n){let a=n.format||"results",s=fc.includes(n.locale)?n.locale:gc,i=await t({...n,format:"plain",locale:G(s),visible:!0}),c=i.results?i.results:[],u=(await r()).data,p=hc(c,u);return {meta:{...i.meta,format:a},results:yc(p,u)}}}function Fn(){return async e=>{let t=typeof e=="string"?{url:e}:e;try{let r=await dr.request(t);return {ok:!0,status:r.status,data:r.data}}catch(r){throw new S(r.response?.status||500,r.message)}}}function Vn(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 S(r.response?.status||500,r.message)}}}function zn(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new S(t.response?.status||500,t.message)}}}function Ot(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 Sc(e,t){return e.some(r=>t.includes(`role.${r}`))}function $n(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")||Sc(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(Ot(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var Tc=Object.keys(qr).filter(e=>e.indexOf("Icon")===0);async function qn(){return {meta:{provider:"tabler"},results:Tc}}async function Gn(e){let t=qr[e.name]?qr[e.name]:()=>"";return renderToString(createElement(t))}var vc={tabler:qn};function Kn(e){let t=vc[e];if(!t)throw new S(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return w(()=>t())}var _c={tabler:Gn};function jn(e){return w(t=>{let r=_c[e];if(!r)throw new S(500,`Wrong provider dbReadIconFactory.ts: ${t.provider}`);return r({name:t.name,provider:e})})}function Nt(e,t,r){return Le().then(o=>{Object.assign(r,st(o));})}function st(e){return {...En(e),searchReport:w(Un(e)),readMetadata:w(lr(e)),regenerateSearch:w(Dn(e)),imageFlickrSearch:Lt(e,"flickr"),imageLocalSearch:Lt(e,"local"),imageUnsplashSearch:Lt(e,"unsplash"),imageAdobeSearch:Lt(e,"adobe"),imageFlickrSave:at(e,"flickr"),imageLocalSave:at(e,"local"),imageUnsplashSave:at(e,"unsplash"),imageUploadSave:at(e,"upload"),imageAdobeSave:at(e,"adobe"),urlProxy:Fn(),searchRole:w(Co()),searchUser:w(Bo()),readUser:w(Mo()),updateUser:w(Lo()),updateMyData:w(Oo()),revalidateReport:w(Vn(e)),revalidateUrl:w(zn()),readPrivateBlocks:w($n(e)),listTablerIcons:Kn("tabler"),readTablerIcon:jn("tabler")}}async function Gr(e){try{let t=new kc.IncomingForm,r=await new Promise((o,n)=>{t.parse(e,(a,s,i)=>{if(a){console.log("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=se(e,"create",t),o=se(e,"read",t),n=se(e,"update",t),a=se(e,"delete",t),s=se(e,"updateBulk",t),i=se(e,"createBulk",t);return [C("POST",`create/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(m=>p[m]);return i(d)},[H.EDITOR]),C("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[H.EDITOR]),C("GET",`read/${t}`,c=>{let l=c.query,u=q(l.id).map(Q);return o({id:u,include:ir(l.include)})}),C("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[H.EDITOR]),C("POST",`update/bulk/${t}`,c=>{let{body:l}=c,{files:u,...p}=l,d=Object.keys(p).map(m=>p[m]);return s(d)},[H.EDITOR]),C("DELETE",`delete/${t}`,c=>{let l=Q(c.query.id);return a(l)},[H.EDITOR])]}function Hn(e){let{validateVariantSlug:t}=e;return [...De(e,"variant"),C("GET","validate/variant",r=>{let o=r.query,n=Q(o.dimension);return t({dimension:n,slug:or(o.slug)})},[H.EDITOR])]}function it(e,t){let r=`image${ge(t)}Save`,o=e[r];return C("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new S(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new S(400,"Missing 'image_id' parameter.");return o(a)},[H.EDITOR])}function Dt(e,t){let r=`image${ge(t)}Search`,o=e[r];return C("GET",`images/search/${t}`,async n=>{let a=q(n.query.prompt)[0];if(!a)throw new S(400,"Empty 'prompt' param.");return o({prompt:a,page:Q(n.query.page)})},[H.EDITOR])}function Wn(e){let{readMetadata:t}=e;return C("GET","read/metadata",()=>t({}))}function Jn(e){let{regenerateSearch:t}=e;return C("POST","search/regenerate",()=>t(void 0),[H.EDITOR])}function Yn(e){let{searchReport:t}=e;return C("GET","search/reports",r=>{let o=wc(r.query);return t(o)})}function wc(e){return {...Ct(e),format:q(e.format)[0]}}function Qn(e){let{urlProxy:t}=e;return C("GET","url/proxy",r=>{let{url:o,method:n="GET"}=r.query;if(!o)throw new S(400,"Missing URL parameter");return t({url:Array.isArray(o)?o.join(","):o,method:q(n)[0]==="POST"?"POST":"GET"})})}function Zn(e){let{readMetadata:t,revalidateReport:r}=e;return C("GET","revalidate/report",async(o,n)=>{let{reportId:a,profilePrefix:s}=o.query;if(!a||!s)throw new S(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(y=>y!=="").join("/"),l=[],u=await t({}).then(y=>y.ok?y.data.data.find(R=>R.id===i):[]);u&&u.mode===Ee.UNILATERAL&&u.dimensions.forEach(y=>{y.variants.forEach(R=>{l.push({prefix:c,variantId:R.id,variantSlug:R.slug});});});let p=await r({profilePrefix:c,reportId:i,variantPaths:l}),d=[],m=0;return p.ok&&(m=p.data.paths.length,d=p.data.paths.slice(0,5),Promise.all(p.data.paths.map(y=>{let R;try{R=n.revalidate(y,{unstable_onlyGenerated:!0});}catch(h){console.log("error",y,h);}return R}))),{ok:!0,status:200,data:{reportId:a,revalidated:m,samples:d}}}catch(i){throw console.log(i),new S(500,"Error revalidating")}},[H.EDITOR])}function Xn(){return C("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.log(o),new S(500,"Error revalidating")}else throw new S(400,"Missing target parameter in revalidate factory")},[H.ADMIN,H.EDITOR,H.WRITER])}var{localeDefault:xc}=K();function ea(e){let{readPrivateBlocks:t}=e;return C("POST","read/blocks/private",(r,o,n)=>{let a={report_id:parseInt(r.body.report_id,10),locale:r.body.locale||xc,roles:n&&n.user?n.user.bespoke_roles:[],section_id:r.body.section_id||[]};return t(a)},[])}function ta(e){let{searchRole:t}=e;return C("GET","auth/search/roles",()=>t(""),[H.EDITOR])}function ra(e){let{searchUser:t}=e;return C("GET","auth/search/users",r=>t({query:r.query.query,role_id:r.query.role_id,page:r.query.page||0}),[H.ADMIN])}function oa(e){let{readUser:t}=e;return C("GET","auth/read/user",r=>t(r.query.user_id),[H.ADMIN])}function na(e){let{updateUser:t,readUser:r}=e;return C("POST","auth/update/user",async(o,n,a)=>{let s=o.body,i=await t(s);if(a&&a.user&&s.user_id===a.user.sub){let c=await r(a.user.sub);c.ok&&await te.updateSession(o,n,{...a,user:{...a.user,bespoke_app_metadata:c.data.app_metadata,bespoke_user_metadata:c.data.user_metadata,bespoke_roles:c.data.roles.map(l=>l.name)}});}return i},[H.ADMIN])}function aa(e){let{updateUser:t,readUser:r}=e;return C("POST","auth/update/me",async(o,n,a)=>{let{report_id:s,user_metadata:i}=o.body,c={user_id:a.user.sub,user_metadata:{}};try{let{user:l}=a;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);let u=await r(c.user_id);return u.ok&&await te.updateSession(o,n,{...a,user:{...l,bespoke_app_metadata:u.data.app_metadata,bespoke_user_metadata:u.data.user_metadata}}),{ok:!0,status:200,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:!1,status:500,error:l.message}}},[])}async function Ic(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(n){throw console.error("Error generating PDF:",n),n}}function sa(){return C("POST","pdf",async(e,t)=>{let{slugs:r,path:o}=e.body;if(!r||!o)throw new S(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:!0,status:200,data:await Ic()}}})}function ia(e,t){let r=`list${ge(t)}Icons`,o=e[r];return C("GET",`list/icons/${t}`,async()=>o({}),[H.EDITOR])}function ca(e,t){let r=`read${ge(t)}Icon`,o=e[r];return C("GET",`read/icons/${t}/icon.svg`,async n=>o({provider:t,name:n.query.name}))}function la(){return C("GET","report",async(e,t)=>{let{report:r,prefix:o,locale:n}=e.query;if(!r)throw new S(400,"Missing report parameter.");if(!o)throw new S(400,"Missing report parameter.");if(!n)throw new S(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new Cc().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 S(500,"Couldn't find page cache")}})}var Lc=We();function Kr(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function Oc(e){let t=st(e);return Object.fromEntries([...De(t,"block"),...De(t,"dimension"),...De(t,"formatter"),...De(t,"report"),...De(t,"section"),...Hn(t),...wn(t),Yn(t),Wn(t),Jn(t),it(t,"flickr"),it(t,"local"),it(t,"unsplash"),it(t,"upload"),it(t,"adobe"),Dt(t,"flickr"),Dt(t,"local"),Dt(t,"unsplash"),Dt(t,"adobe"),Qn(t),ta(t),ra(t),oa(t),na(t),aa(t),Zn(t),Xn(),ea(t),sa(),ia(t,"tabler"),ca(t,"tabler"),la()].map(({handler:r,method:o,path:n,roleRequired:a})=>[Kr(o,n),{handler:r,roleRequired:a}]))}var ua=Le().then(Oc);async function Nc(e,t){await Bc(e,t,{methods:["GET","HEAD","PUT","PATCH","POST","DELETE"],origin:"*"});let{query:r,method:o}=e,{path:n,...a}=r;if(n&&o){let s=await ua.then(i=>{let c=[].concat(n).join("/"),l=Kr(o,c);return i[l]});if(s){let i=await te.getSession(e,t);if(s.roleRequired){if(!i)return t.status(401).json({error:"Unauthorized. Must be logged in."});let c=i&&i.user&&i.user.bespoke_roles&&Array.isArray(i.user.bespoke_roles)?i.user.bespoke_roles:[];if(Array.isArray(s.roleRequired)&&s.roleRequired.length>0&&!Jt(c,s.roleRequired))return t.status(402).json({error:"Forbidden. Not enough roles."})}if(s.handler)return ["POST","DELETE"].includes(o)&&(e.body=await Gr(e)),Promise.resolve(e).then(c=>s.handler(c,t,i||void 0)).then(async c=>{if(c&&"error"in c)throw new S(c.status,c.error);if(c.ok)if(c.data instanceof Buffer){let l=await Mc(c.data),u=Buffer.byteLength(c.data);t.writeHead(c.status,{"Content-Type":l?l.mime:"image/jpeg","Content-Length":u.toString()}).send(c.data);}else e.url&&e.url.indexOf("/icon.svg?name=")>0?(t.setHeader("Content-Type","image/svg+xml"),t.status(c.status).send(c.data)):t.status(c.status).json({data:c.data});}).catch(c=>{Lc&&console.trace("Backend Error",c),t.status(c.code).json({error:c.message});})}}else n||await ua.then(console.log);return t.status(404).json({error:"No matching route",path:n,query:a})}var Dc=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},Uc=Dc;var jt={};us(jt,{addBlockToState:()=>Ao,cloneEntity:()=>Ga,createEntity:()=>za,deleteEntity:()=>qa,deleteQueryParam:()=>ru,readEntity:()=>ae,readMember:()=>Kt,readMetadata:()=>nu,readPrivateBlocks:()=>pu,readUser:()=>cu,recalculateVariables:()=>Za,removeBlocksFromState:()=>Pr,reportSearch:()=>Xl,resetSectionState:()=>Ya,revalidateReport:()=>mu,revalidateUrl:()=>du,searchMember:()=>tu,searchRegenerate:()=>eu,searchRole:()=>su,searchUser:()=>iu,setCurrentLocale:()=>Yl,setPreferredLocale:()=>Ql,setPreviews:()=>Jl,setQueryParam:()=>ou,setSectionState:()=>Ja,setStatus:()=>Wa,updateEntity:()=>$a,updateMyData:()=>uu,updateUser:()=>lu,urlProxy:()=>au,variantValidateSlug:()=>Zl});function pe(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,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 re(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>pe(e,{...o,method:"GET",params:r?r(n):n})}function oe(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>pe(e,{...o,method:"POST",data:r?r(n):n})}function Ue(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>pe(e,{...o,method:"DELETE",params:r?r(n):n})}function ct(e,t){return r=>pe(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function Ut(e,t){return r=>pe(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function pa(e,t){return ()=>pe(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function da(e,t){return r=>pe(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var lt=e=>({id:e}),Vc=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 Ft(e){let t=dr.create({baseURL:e});return {createBulkBlock:oe(t,"create/bulk/block"),createBlock:oe(t,"create/block"),createDimension:oe(t,"create/dimension"),createFormatter:oe(t,"create/formatter"),createReport:oe(t,"create/report"),createSection:oe(t,"create/section"),createVariant:oe(t,"create/variant"),deleteBlock:Ue(t,"delete/block",lt),deleteDimension:Ue(t,"delete/dimension",lt),deleteFormatter:Ue(t,"delete/formatter",lt),deleteReport:Ue(t,"delete/report",lt),deleteSection:Ue(t,"delete/section",lt),deleteVariant:Ue(t,"delete/variant",lt),readBlock:re(t,"read/block"),readDimension:re(t,"read/dimension"),readFormatter:re(t,"read/formatter"),readReport:re(t,"read/report"),readSection:re(t,"read/section"),readVariant:re(t,"read/variant"),updateBulkBlock:oe(t,"update/bulk/block"),updateBlock:oe(t,"update/block"),updateDimension:oe(t,"update/dimension"),updateFormatter:oe(t,"update/formatter"),updateReport:oe(t,"update/report"),updateSection:oe(t,"update/section"),updateVariant:oe(t,"update/variant"),searchReport:re(t,"search/reports"),validateVariantSlug:re(t,"validate/variant"),readMember:re(t,"read/members",Vc),readMemberImage:re(t,{url:"member/image",responseType:"blob"}),searchMember:re(t,"search/members"),updateMember:re(t,"update/members"),imageLocalSearch:Ut(t,"local"),imageLocalSave:ct(t,"local"),imageFlickrSearch:Ut(t,"flickr"),imageFlickrSave:ct(t,"flickr"),imageUnsplashSearch:Ut(t,"unsplash"),imageUnsplashSave:ct(t,"unsplash"),imageUploadSave:ct(t,"upload"),imageAdobeSearch:Ut(t,"adobe"),imageAdobeSave:ct(t,"adobe"),readMetadata:re(t,"read/metadata"),regenerateSearch:oe(t,"search/regenerate"),urlProxy:re(t,"url/proxy"),searchRole:re(t,"auth/search/roles"),searchUser:re(t,"auth/search/users"),readUser:re(t,"auth/read/user"),updateUser:oe(t,"auth/update/user"),updateMyData:oe(t,"auth/update/me"),revalidateReport:re(t,"revalidate/report"),revalidateUrl:re(t,"revalidate/url"),readPrivateBlocks:oe(t,"read/blocks/private"),listTablerIcons:pa(t,"tabler"),readTablerIcon:da(t,"tabler")}}var{localeDefault:qc}=K();function ue(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||qc}}var jc=ir(process.env.REPORTS_LOGGING),Fe=Hc;function Hc(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=ue(a);try{if(t){let l=new Proxy(console,{get(p,d){return Wc(d,"log","debug","info","warn","error")?(...m)=>{i.push(`${d} ${Date.now()} - ${m.map(y=>format(y)).join(" ")}`),jc&&p[d](...m);}:p[d]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,we,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,we,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 Wc(e,...t){return t.includes(e)}function jr(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 ut=Jc;function Jc(e,t,r,o=!1){let{variables:n}=ue(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,m=>m.toLowerCase());d in t?u=t[d]:u=m=>`${c}${m}`;}let p=Array.isArray(n[l])?jr(n[l]):n[l];if(p===void 0)return o?i:"N/A";try{return u(p,we,t)}catch(d){return console.error(`Error using formatter ${u.name}
58
+ `,`Error message: ${d.message}`),"N/A"}})}var Hr=(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]=ut(a[s],t,r):Array.isArray(a[s])?a[s]=a[s].filter(n).map(i=>typeof i=="object"?Hr(i,t,r):typeof i=="string"?ut(i,t,r):i):typeof a[s]=="object"&&a[s]!==null&&!(a[s]instanceof Date)&&(a[s]=Hr(a[s],t,r));}),a},ur=Hr;var ma=e=>Array.isArray(e)?e.map(t=>typeof t=="string"?{allowed:"always",label:t,id:t}:{allowed:"always",label:t.id,...t}):[];var Wr=(e,t,r)=>{if(!r)return !1;if(e===Ie.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))};function Jr(e,t,r,o,n=!1){let{variables:a}=ue(o),s=ur({logic:t},r,o).logic,i=Fe("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||Ie.SINGLE,d=c.component||"Selector",m=c.hideLabel||"false",y=c.resetSectionVars||"false",R=c.name||"Unlabeled Selector",h=ma(c.options||[]),T=b=>p===Ie.MULTI&&!Array.isArray(b)?[b]:b,k=c.defaultValue,I;if(k&&(k=T(k),Wr(p,k,h)&&(I=k)),!I){let b=h&&h[0]&&h[0].id||h[0]||"";I=T(b);}if(n&&typeof window<"u"){let b=`selector${e}id`,M=new URLSearchParams(window.location.search),F=Object.fromEntries(M)[b];F&&!Wr(p,F,h)&&F!==void 0&&(M.delete(b),window.history.replaceState(null,null,`?${M.toString()}`));}return {config:{name:R,type:p,options:h,defaultValue:I,component:d,hideLabel:m,resetSectionVars:y},log:l,error:u}}function Yr(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 Qr(e,t,r,o,n=!1){let{variables:a}=ue(o),s=ur({logic:t},r,o).logic,i=Fe("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i;if(n&&typeof window<"u"){let d=`multihierarchySelector${e}-value`,m=`multihierarchySelector${e}-type`,y=new URLSearchParams(window.location.search),R=Object.fromEntries(y),h=R[d],T=R[m];h&&h!==void 0&&T&&T!==void 0&&!Yr(c.data,T,h)&&(y.delete(d),y.delete(m),window.history.replaceState(null,null,`?${y.toString()}`));}return {config:c,log:l,error:u}}var Yc=(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===Ie.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}},fa=Yc;var Qc=(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||"",m=r.data?.filter(y=>p.includes(`${y[`${d} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((m||[]).map(y=>y[d]))],[`multihierarchySelector${e}type`]:d}},ga=Qc;var{localeDefault:ya,locales:Zc}=K(),Xc=Object.values(Or),el=(e,t=ya)=>e&&Xc.includes(e.type)?{locale:Nr,locales:[Nr]}:{locale:t,locales:Zc},ha=(e,t=ya)=>{if(!e)return {};let{locale:r}=el(e,t);return e.contentByLocale?.[r]?.content};function tl(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 Ra=tl;function Zr(e){return e.type===N.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var Ve=ir(process.env.NEXT_PUBLIC_REPORTS_DEBUG),al=process.env.REPORTS_ORIGIN||"";ba(dr,{retries:3,retryDelay:ba.exponentialDelay,onRetry:(e,t,r)=>{console.log("Generator request failed. Retrying... Count: ",e),console.log("URL: ",r.url),console.log(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 sl=(e,t,r)=>{let o=ut(e,t,r);return o.startsWith("http")||(o=`${al}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:il}=Ft("/api/cms");function pr(e){return e.ok!==void 0}function Xr(e){this.message=e,this.name="ApiFetchException";}var Sa=process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0;async function cl(e,t,r="en",o){let n=Date.now(),a=e,s,c=new URL(e).searchParams;if(c.has("bespoke_slugs")){let p=new RegExp(`[?&]bespoke_slugs=${c.get("bespoke_slugs")}`,"g");a=a.replace(p,"");}let l=o?o.settings:{},u=!!(l&&l.useProxy&&l.useProxy==="true");if(typeof window=="object"&&u){let p=await il({url:a,timeout:Sa});if(p.ok===!0)s=p.data;else throw new Xr(p?.error)}else try{let p=await dr({url:a,timeout:Sa});if(p.status===200)p.headers["content-type"]==="text/csv"?s=csvParse(p.data):s=p.data;else throw new Xr("No response")}catch(p){throw new Xr(p.message)}if(c.has("bespoke_slugs")){let p=c.get("bespoke_slugs");if(p){let d=p.split(",");if(d.length===3){let[m,y,R]=d,h=Et(s,R);if(h&&Array.isArray(h)){let T=Array.from(new Set(h.map(E=>`${E[y]}`).filter(E=>!["","undefined"].includes(E)))),k=T.join("").length>2e3,I=await t({mode:k?"whole":"ids",ids:k?void 0:T,all:!1,locale:r,variant:[parseInt(m,10)],output:"lite",limit:T.length+1}).then(E=>{let b=[];return pr(E)?E.ok&&(b=E.data.results):b=E.results,b&&Array.isArray(b)?b:[]}).catch(E=>(console.error(`Error hydrating slugs for Variant: ${m}, Key: ${y}, Accessor: ${R}`),console.error(` Url ${e}`),o&&console.error(` From Section ${o.section_id} and Block ${o.id}`),console.error(E),[]));if(I){let E=Object.fromEntries(I.map(b=>[b.id,`/${b.variant_slug}/${b.slug}`]));h.map(b=>(b.bespoke_slug=E[b[y]]?E[b[y]]:null,b));}}}}}return {data:s,requestDuration:Date.now()-n}}function ll(e){this.name="BlockException",this.message=e;}async function Ea(e,t,r,o){let{locale:n,variables:a,query:s}=ue(r),i=pl(e,r,a,t),c=null,l=e.contentByLocale?.logic?.content?.api,u=null,p=null,d=null;if(!i)return {outputVariables:{},renderVariables:{},status:{allowed:!1,hiddenByCascade:e.id}};if(e.type===N.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:i,hiddenByCascade:e.id}};if(l){d=sl(l,t,r);let E=d.split(Tn).filter(D=>D!==""),b=[];for(let D=0;D<E.length;D++){let F=E[D];new RegExp("^(?:[a-z+]+:)?//","i").test(d)||(F=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${F}`.replace(/([^:]\/)\/+/g,"$1")),b.push(cl(F,o,n,e).catch(W=>{throw new ll(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${a.report_name} (${a.report_id}) failed.
59
+ Error fetching ${F}.
60
+ Message: ${W.message}.
61
+ `)}));}let M=await Promise.all(b).catch(D=>D.message);if(typeof M=="string"&&M)return {outputVariables:{},renderVariables:{},status:{error:M}};c=M.length===1?M[0].data:M.map(D=>D.data),p=M.reduce((D,F)=>D+JSON.stringify(F.data).length/1024,0),u=Math.max(...M.map(D=>D.requestDuration));}if(e.type===N.SELECTOR){let{config:E,log:b,error:M}=Jr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:fa(e.id,s,E),renderVariables:E,status:{log:b,error:M,allowed:i}}}if(e.type===N.MULTIHIERARCHY_SELECTOR){let{config:E,log:b,error:M}=Qr(e.id,e.contentByLocale[n].content.logic,t,r,!0);return {outputVariables:ga(e.id,s,E),renderVariables:E,status:{log:b,error:M,allowed:i}}}if(e.type===N.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:i}};if(e.type===N.RELATED){let E=e.contentByLocale?.logic?.content?.simple?.compare||"variant",b=e.contentByLocale?.logic?.content?.simple?.limit||4,M=Object.keys(a).filter(A=>A.startsWith("report_id")).map(A=>a[A]),D=Object.keys(a).filter(A=>A.startsWith("dimension_id")).map(A=>a[A]),F=Object.keys(a).filter(A=>A.startsWith("variant_id")).map(A=>a[A]),Z=Object.keys(a).filter(A=>A.startsWith("id")).map(A=>a[A]);if(!Z.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let W=await o({mode:"ids",locale:n,ids:Z,output:"lite",variant:F}).then(A=>{let O=[];return pr(A)?A.ok&&(O=A.data.results):O=A.results,O&&Array.isArray(O)?O:[]}).catch(A=>(console.log("Error getting related members",A),[]));if(D.length>1){let A=Object.keys(a).filter(U=>U.startsWith("variant_slug")).map(U=>a[U]),O=W.map((U,V)=>{let B={mode:"related",locale:n,related:b??4,current_ids:[U.content_id],output:"full",variant_ids:[U.variant_id]};return V===0&&(B.include_ids=[U.content_id]),B}),v=await Promise.all(O.map(U=>o(U))).then(U=>U.flatMap(V=>{let B=[];return pr(V)?V.ok&&(B=V.data.results):B=V.results,B&&Array.isArray(B)?B:[]})).catch(U=>(console.log("Error getting related members",U),[])),P=v.reduce((U,V)=>{let B=V.variant_slug;return U[B]||(U[B]=[]),U[B].push(V),U},{}),$=[],X=Object.keys(P),x=[{combination:[],index:0}];for(;x.length>0;){let U=x.pop();if(!U)continue;let{combination:V,index:B}=U;if(B===X.length){$.push(V);continue}let fe=X[B],He=P[fe];for(let Wt of He)x.push({combination:[...V,Wt],index:B+1});}return {outputVariables:{related_reports:$.map(U=>{let V=U.sort((B,fe)=>A.indexOf(B.variant_slug)-A.indexOf(fe.variant_slug));return {entities:V,link:"/"+V.map(B=>`${B.variant_slug}/${B.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:v.length>0}}}let L=W.map(A=>A.content_id),z={mode:"related",locale:n,related:b??4,current_ids:L,output:"full"};E&&(E==="report"?z.report_ids=M:E==="dimension"?z.dimension_ids=D:z.variant_ids=F);let j=await o(z).then(A=>{let O=[];return pr(A)?A.ok&&(O=A.data.results):O=A.results,O&&Array.isArray(O)?O:[]}).catch(A=>(console.log("Error getting related members",A),[]));return {outputVariables:{related_reports:j.map(A=>({entities:[A],link:`/${A.variant_slug}/${A.slug}`}))},renderVariables:{},status:{log:[],allowed:j.length>0}}}let{logic:m}=ha(e,n),y=ut(m,t,r),R=Fe("resp",c||{},y,t,a,r),{vars:h,error:T,log:k}=R;if(typeof h!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:k,duration:u,responseSize:p,resp:c,api:d,allowed:i}};let I=Object.keys(h).reduce((E,b)=>({...E,[`${e.type}${e.id}${b}`]:h[b]}),{});return {renderVariables:h,outputVariables:[N.GENERATOR,N.SECTION_FLAG].includes(e.type)?h:I,status:{log:k,error:T,duration:u,responseSize:p,resp:c,api:d,allowed:i}}}function ul(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].section_id===t[r].section_id||!n).forEach(l=>eo(l,t,o,!1,a,n,s));}})}var eo=(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=>eo(u,t,r,o,!1,a,s));}),i&&i.consumers.length&&n&&ul(i,t,e,r,a,n,s),r},pl=(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=ue(t),{error:s,output:i}=Fe("variables",r,e.settings.allowedLogic||"return false;",o,void 0,a);s||(n=!!i);}return n},mr=async(e,t,r,o,n,a={},s,i="section")=>{let c=i==="section",l=ue(n),u=l.variables,p={...a.variables??{}},d={...a.status??{}},m=new Set,y=[],R={};r?R={...R,[r]:e[r]}:t?R=(t??[]).reduce((L,{id:z})=>({...L,...Ra(z,e)}),{}):R=Object.values(e).filter(L=>Zr(L)).reduce((L,z)=>({...L,[z.id]:z}),{});let h=Object.values(R).filter(L=>Zr(L));if(h.length>0){Ve&&console.log("%crunConsumers: calculating section flags","color:purple",h.map(_=>_.id).join(", "));let L=Object.fromEntries(await Promise.all(h.map(async _=>[_.id,await Ea(_,o,{...l,variables:u,locale:u.locale},s).then(A=>{let{outputVariables:O,status:v}=A;if(v.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${_.id}, Section ${_.section_id}) failed with message: ${v.error}. `);d[_.id]={allowed:!1,error:v.error},p[_.id]={};}return (_.consumers.length>0||[N.GENERATOR,N.SECTION_FLAG,N.RELATED].includes(_.type))&&v.allowed&&Object.keys(O).length>0?p[_.id]=O:p[_.id]={},i==="report"?(d[_.id]={allowed:v.allowed},[N.GENERATOR,N.SECTION_FLAG].includes(_.type)&&v.api&&(d[_.id].api=v.api)):d[_.id]=v,A})]))),j=Object.entries(L).filter(([_,A])=>!A.outputVariables[vn]).map(([_])=>Number(_));m=new Set(j.map(_=>e[_].section_id)),Object.values(R).filter(_=>m.has(_.section_id)).forEach(_=>{y.push(_.id),delete R[_.id];}),Ve&&console.log("%crunConsumers: removing sections","color:purple",m.keys());}let T=m.size>0?Object.fromEntries(Object.entries(e).filter(([L,z])=>m?.has(z.section_id)?(y.includes(z.id)||y.push(z.id),!1):!0)):e;if(y.length>0&&(T=Object.fromEntries(Object.entries(T).map(([L,z])=>{let j={...z,inputs:z.inputs.filter(_=>!y.includes(_)),consumers:z.consumers.filter(_=>!y.includes(_))};return [L,j]}))),!r&&!t)return {variables:{...a.variables??{},...p},status:{...a.status??{},...d}};i==="report"&&y.length>0&&y.forEach(L=>{delete p[L],delete d[L],delete e[L];}),Ve&&console.log("%crunConsumers: running root blocks","color:purple",Object.keys(R));let k=Object.keys(R).reduce((L,z)=>{let j=new Date,_=eo(Number(z),T,[],!r,!0,c).map(v=>v.split("-")),O=(new Date().getTime()-j.getTime())/1e3;return Ve&&console.log(`%cResolved dependencies for ${z} (${O.toFixed(2)}s)`,"color:blue"),[...L,..._]},[]),I=new Date,E=Object.keys(R).reduce((L,z)=>L.includes(z)?[...L]:[z,...L],rl(k)),M=(new Date().getTime()-I.getTime())/1e3;Ve&&console.log(`%cResolved DAG (${M.toFixed(2)}s): `,"color:green",E);async function D(L,z){let j=new Map;for(let _ of L){let A=z[_],v=Promise.all(A.inputs.filter(P=>L.includes(String(P))).map(P=>j.get(Number(P)))).then(async()=>{let P=A.inputs.reduce((V,B)=>({...V,...p[B]}),u),$=A.inputs.find(V=>(A.settings?.ignoreCascade?A.settings?.ignoreCascade:[]).includes(V)||!d[V]?!1:!d[V].allowed||d[V].hiddenByCascade);if($){d[_]={allowed:!1,hiddenByCascade:d[$].hiddenByCascade||$},p[_]={};return}let X=new Date,x=await Ea(A,o,{...l,variables:P,locale:P.locale},s).then(({outputVariables:V,status:B})=>{if(B.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${_}, Section ${A.section_id}) failed with message: ${B.error}. `);d[_]={allowed:!1,error:B.error},p[_]={};}(A.consumers.length>0||[N.GENERATOR,N.SECTION_FLAG,N.RELATED].includes(A.type))&&B.allowed&&Object.keys(V).length>0?p[_]=V:p[_]={},i==="report"?(d[_]={allowed:B.allowed},[N.GENERATOR,N.SECTION_FLAG].includes(A.type)&&B.api&&(d[_].api=B.api)):d[_]=B;}),U=(new Date().getTime()-X.getTime())/1e3;return Ve&&console.log(`%cBlock ${A.id} resolved in ${U.toFixed(3)}s`,U>500?"color:red":"color:green"),x});j.set(Number(_),v);}await Promise.all(Array.from(j.values()));}let F=new Date;await D(E,T);let W=(new Date().getTime()-F.getTime())/1e3;return Ve&&console.log(`%cResolved Variables (${W.toFixed(2)}s): `,"color:green"),{variables:{...a.variables??{},...p},status:{...a.status??{},...d}}};function dl(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 fr=dl;function fl(){let{publicRuntimeConfig:e}=ml(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var gr=fl;function gl(e,t){return +(e<t)-+(e>t)}function yr(e,t,r="ordering"){return gl(t[r],e[r])}var Ta=(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:we,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)};var{localeDefault:hl}=K();var Vt=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});Vt.define({consumers:[Vt],inputs:[Vt]});var va=new schema.Entity("variant"),_a=new schema.Entity("dimension",{variants:[va]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),ka=new schema.Entity("section",{blocks:[Vt]}),Rl=new schema.Entity("report",{dimensions:[_a],sections:[ka]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(yr):[]}}}),bl=new schema.Entity("formatter"),Sl={report:Rl,section:ka,block:Vt,dimension:_a,variant:va,formatter:bl};function hr(e,t){let r=Sl[e];if(!r)throw new Error(`Invalid entity type: ${e}`);let{entities:o}=normalize(t,[r]);return {report:pt(o,"report"),dimension:pt(o,"dimension"),section:pt(o,"section"),block:pt(o,"block"),variant:pt(o,"variant"),formatter:pt(o,"formatter")}}function pt(e,t){return e.hasOwnProperty(t)?e[t]:{}}var Pa=(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}},to=(e=[],t=hl)=>e.reduce((r,o)=>{let n=Ta({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var de=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",Rr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[de];Rr.includes(de)||Rr.push(de);var Tl={localeDefault:de,locales:Rr,currentLocale:de,preferredLocale:de,showToolbar:!1,activeSection:null,previews:[],query:{},sectionState:{},activeEntity:{type:null,id:null},sidebarStatus:{tools:!0,settings:!1,reportEditor:!1},isCMS:!1},br=createSlice({name:"status",initialState:Tl,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]};}},extraReducers:{[HYDRATE]:(e,t)=>({...e,previews:t.payload.status.previews})}}),ze=br.actions;var kl={attributes:{},variables:{},status:{}},Sr=createSlice({name:"variables",initialState:kl,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}})}}),Er=Sr.actions;var xl={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{}}},_e=createSlice({name:"records",initialState:xl,reducers:{set:(e,t)=>{let r=t.payload;return {entities:zt(e.entities,r.entities||{}),requests:zt(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=hr(r.type,o),a=zt(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=Ar(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=Ar(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=hr(r.type,r.data),n=zt(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=hr(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=zt(e.entities,n);if(e.entities=c,r.type==="dimension"){let l=r.data;e.entities.report[l.report_id].dimensions=Ar(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=Ar(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`;Il(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}}}}},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:{}},tree:r.tree}}}});function zt(e,t){return Object.fromEntries(Object.keys(e).map(r=>[r,{...e[r],...t[r]}]))}function Ar(e,t){return e.map(n=>t[n]).sort(yr).map(n=>n.id)}function Il(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function ne(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=Ul[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 mt(e){return !!e&&!!e[ie]}function qe(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)===Fl}(e)||Array.isArray(e)||!!e[Oa]||!!(!((t=e.constructor)===null||t===void 0)&&t[Oa])||po(e)||mo(e))}function qt(e,t,r){r===void 0&&(r=!1),gt(e)===0?(r?Object.keys:Ro)(e).forEach(function(o){r&&typeof o=="symbol"||t(o,e[o],e);}):e.forEach(function(o,n){return t(n,o,e)});}function gt(e){var t=e[ie];return t?t.i>3?t.i-4:t.i:Array.isArray(e)?1:po(e)?2:mo(e)?3:0}function so(e,t){return gt(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Cl(e,t){return gt(e)===2?e.get(t):e[t]}function Na(e,t,r){var o=gt(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function Bl(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function po(e){return Nl&&e instanceof Map}function mo(e){return Dl&&e instanceof Set}function $e(e){return e.o||e.t}function fo(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Vl(e);delete t[ie];for(var r=Ro(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),yo(e)||mt(e)||!qe(e)||(gt(e)>1&&(e.set=e.add=e.clear=e.delete=Ml),Object.freeze(e),t&&qt(e,function(r,o){return go(o,!0)},!0)),e}function Ml(){ne(2);}function yo(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function he(e){var t=zl[e];return t||ne(18,e),t}function wa(){return process.env.NODE_ENV==="production"||ft||ne(0),ft}function ro(e,t){t&&(he("Patches"),e.u=[],e.s=[],e.v=t);}function Tr(e){io(e),e.p.forEach(Ll),e.p=null;}function io(e){e===ft&&(ft=e.l);}function xa(e){return ft={p:[],l:ft,h:e,m:!0,_:0}}function Ll(e){var t=e[ie];t.i===0||t.i===1?t.j():t.g=!0;}function oo(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||he("ES5").S(t,e,o),o?(r[ie].P&&(Tr(t),ne(4)),qe(e)&&(e=vr(t,e),t.l||_r(t,e)),t.u&&he("Patches").M(r[ie].t,e,t.u,t.s)):e=vr(t,r,[]),Tr(t),t.u&&t.v(t.u,t.s),e!==Da?e:void 0}function vr(e,t,r){if(yo(t))return t;var o=t[ie];if(!o)return qt(t,function(i,c){return Ia(e,o,t,i,c,r)},!0),t;if(o.A!==e)return t;if(!o.P)return _r(e,o.t,!0),o.t;if(!o.I){o.I=!0,o.A._--;var n=o.i===4||o.i===5?o.o=fo(o.k):o.o,a=n,s=!1;o.i===3&&(a=new Set(n),n.clear(),s=!0),qt(a,function(i,c){return Ia(e,o,n,i,c,r,s)}),_r(e,n,!1),r&&e.u&&he("Patches").N(o,r,e.u,e.s);}return o.o}function Ia(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&ne(5),mt(n)){var i=vr(e,n,a&&t&&t.i!==3&&!so(t.R,o)?a.concat(o):void 0);if(Na(r,o,i),!mt(i))return;e.m=!1;}else s&&r.add(n);if(qe(n)&&!yo(n)){if(!e.h.D&&e._<1)return;vr(e,n),t&&t.A.l||_r(e,n);}}function _r(e,t,r){r===void 0&&(r=!1),!e.l&&e.h.D&&e.m&&go(t,r);}function no(e,t){var r=e[ie];return (r?$e(r):e)[t]}function Ca(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 co(e){e.P||(e.P=!0,e.l&&co(e.l));}function ao(e){e.o||(e.o=fo(e.t));}function lo(e,t,r){var o=po(t)?he("MapSet").F(t,r):mo(t)?he("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:wa(),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=$t);var u=Proxy.revocable(c,l),p=u.revoke,d=u.proxy;return i.k=d,i.j=p,d}(t,r):he("ES5").J(t,r);return (r?r.A:wa()).p.push(o),o}function Ol(e){return mt(e)||ne(22,e),function t(r){if(!qe(r))return r;var o,n=r[ie],a=gt(r);if(n){if(!n.P&&(n.i<4||!he("ES5").K(n)))return n.t;n.I=!0,o=Ba(r,a),n.I=!1;}else o=Ba(r,a);return qt(o,function(s,i){n&&Cl(n.t,s)===i||Na(o,s,t(i));}),a===3?new Set(o):o}(e)}function Ba(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return fo(e)}var Ma,ft,ho=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Nl=typeof Map<"u",Dl=typeof Set<"u",La=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Da=ho?Symbol.for("immer-nothing"):((Ma={})["immer-nothing"]=!0,Ma),Oa=ho?Symbol.for("immer-draftable"):"__$immer_draftable",ie=ho?Symbol.for("immer-state"):"__$immer_state";var Ul={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"},Fl=""+Object.prototype.constructor,Ro=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Vl=Object.getOwnPropertyDescriptors||function(e){var t={};return Ro(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},zl={},uo={get:function(e,t){if(t===ie)return e;var r=$e(e);if(!so(r,t))return function(n,a,s){var i,c=Ca(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||!qe(o)?o:o===no(e.t,t)?(ao(e),e.o[t]=lo(e.A.h,o,e)):o},has:function(e,t){return t in $e(e)},ownKeys:function(e){return Reflect.ownKeys($e(e))},set:function(e,t,r){var o=Ca($e(e),t);if(o?.set)return o.set.call(e.k,r),!0;if(!e.P){var n=no($e(e),t),a=n?.[ie];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(Bl(r,n)&&(r!==void 0||so(e.t,t)))return !0;ao(e),co(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 no(e.t,t)!==void 0||t in e.t?(e.R[t]=!1,ao(e),co(e)):delete e.R[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=$e(e),o=Reflect.getOwnPropertyDescriptor(r,t);return o&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:o.enumerable,value:r[t]}},defineProperty:function(){ne(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){ne(12);}},$t={};qt(uo,function(e,t){$t[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)};}),$t.deleteProperty=function(e,t){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(t))&&ne(13),$t.set.call(this,e,t,void 0)},$t.set=function(e,t,r){return process.env.NODE_ENV!=="production"&&t!=="length"&&isNaN(parseInt(t))&&ne(14),uo.set.call(this,e[0],t,r,e[0])};var $l=function(){function e(r){var o=this;this.O=La,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 h=this;R===void 0&&(R=i);for(var T=arguments.length,k=Array(T>1?T-1:0),I=1;I<T;I++)k[I-1]=arguments[I];return c.produce(R,function(E){var b;return (b=a).call.apply(b,[h,E].concat(k))})}}var l;if(typeof a!="function"&&ne(6),s!==void 0&&typeof s!="function"&&ne(7),qe(n)){var u=xa(o),p=lo(o,n,void 0),d=!0;try{l=a(p),d=!1;}finally{d?Tr(u):io(u);}return typeof Promise<"u"&&l instanceof Promise?l.then(function(R){return ro(u,s),oo(R,u)},function(R){throw Tr(u),R}):(ro(u,s),oo(l,u))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===Da&&(l=void 0),o.D&&go(l,!0),s){var m=[],y=[];he("Patches").M(n,l,m,y),s(m,y);}return l}ne(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(m){return n.apply(void 0,[m].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){qe(r)||ne(8),mt(r)&&(r=Ol(r));var o=xa(this),n=lo(this,r,void 0);return n[ie].C=!0,io(o),n},t.finishDraft=function(r,o){var n=r&&r[ie];process.env.NODE_ENV!=="production"&&(n&&n.C||ne(9),n.I&&ne(10));var a=n.A;return ro(a,o),oo(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!La&&ne(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=he("Patches").$;return mt(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),ce=new $l,ql=ce.produce;ce.produceWithPatches.bind(ce);ce.setAutoFreeze.bind(ce);ce.setUseProxies.bind(ce);ce.applyPatches.bind(ce);ce.createDraft.bind(ce);ce.finishDraft.bind(ce);var kr=ql;var me=_e.actions,za=Gt({block:Ge("block"),dimension:Ge("dimension"),formatter:Ge("formatter"),report:Ge("report"),section:Ge("section"),variant:Ge("variant")}),ae=Gt({block:Ke("block"),dimension:Ke("dimension"),formatter:Ke("formatter"),report:Ke("report"),section:Ke("section"),variant:Ke("variant")}),$a=Gt({block:Se("block"),dimension:Se("dimension"),formatter:Se("formatter"),report:Se("report"),section:Se("section"),variant:Se("variant")}),qa=Gt({block:yt("block"),dimension:yt("dimension"),formatter:yt("formatter"),report:yt("report"),section:yt("section"),variant:yt("variant")}),Ga=Gt({block:Fa("block"),section:Fa("section")});function Gt(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 je(e,t){return (r,o)=>{let a=o().records.requests[e][t],s=!a||a.status==="UNINITIALIZED"?"LOADING":"FETCHING";r(me.setRequest({key:t,type:e,status:s}));}}function ht(e,t,r,o){return n=>{typeof window=="object"&&notifications.show({autoClose:3e3,color:"red",id:t,message:o,title:"Error"}),n(me.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function Ge(e){return t=>{let r=So(e,t);return (o,n,a)=>(o(je(e,r)),se(a,"create",e)(t).then(i=>(i.ok===!0?o(me.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(ht(e,r,i.status,i.error)),i)))}}function jl(e){return t=>{let r=So(e,t[0]);return (o,n,a)=>(o(je(e,r)),se(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(me.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(ht(e,r,i.status,i.error)),i)))}}function Ua(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Hl(e){return e.section_id!==void 0}function Wl(e){return e.report_id!==void 0}function Fa(e){return t=>{let{create:r}=t;return (o,n,a)=>Ge(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:u}=t,p=Ha(e,{id:l});if(o(je(e,`${p}`)),e==="block"&&Hl(r)){let d=kr(u,h=>{h.id=l;}),{contentByLocale:m}=d;m&&(d=kr(d,h=>{h.id=l,h.contentByLocale=Object.keys(m).reduce((T,k)=>{let I=m?m[k]:{};return T[k]={...I,id:l},T},{});}));let R=d.inputs?.map(h=>({type:h.type,id:h.id,inputAction:{operation:"create",input:{input_id:h.id,block_id:d.id}}}));return R&&R.length>0&&Va(e)([d,...R])(o,n,a).then(()=>Ke("section")({id:d.section_id,include:!0})(o,n,a).then(h=>(h.ok&&o(me.setRequest({key:p,type:e,status:"SUCCESS",data:h.data})),h))),Se(e)(d)(o,n,a).then(h=>(h.ok&&o(me.setRequest({key:p,type:e,status:"SUCCESS",data:h.data})),h))}if(e==="section"&&Wl(r)){let{id:d}=c,m=kr(u,h=>{h.id=d;}),{blocks:y}=m,R=y?.map(h=>({type:h.type,blockcol:h.blockcol,blockrow:h.blockrow,section_id:d,locales:Object.keys(h.contentByLocale).map(T=>T)}));return R&&y&&await jl("block")(R)(o,n,a).then(h=>{if(h.ok){let T=h.data,k=[],I=T.map((E,b)=>{let D={...E},F=D.id,Z=y[b];Z.contentByLocale&&(D.contentByLocale=Object.keys(Z.contentByLocale).reduce((v,P)=>{let $=Z.contentByLocale[P];return v[P]={...$,content:{...$.content},id:D.id},v},{}));let{settings:W}=Z,{contentByLocale:L,id:z}=D;D.settings=W;let j={id:z,contentByLocale:L,settings:W};return Z.inputs.map(v=>v.id).reduce((v,P)=>{let $=y.findIndex(X=>X.id===P);return [...v,$]},[]).map(v=>({...T[v],originalBlock:y[v]})).forEach(v=>{let{id:P,type:$,originalBlock:X}=v;if([N.SELECTOR,N.VIZ].includes($)){if(j.contentByLocale?.logic?.content?.api){let x=j.contentByLocale?.logic.content.api;j.contentByLocale.logic.content.api=Ua(`(selector${X.id}id)`,`selector${P}id`,x);}if(j.contentByLocale?.logic?.content?.logic){let x=j.contentByLocale.logic.content.logic;j.contentByLocale.logic.content.logic=Ua(`(selector${X.id}id)`,`selector${P}id`,x);}}k.push({id:P,inputAction:{operation:"create",input:{input_id:P,block_id:F}}});}),j});return Va("block")([...I,...k])(o,n,a)}}),Se(e)(m)(o,n,a).then(h=>(h.ok&&o(me.setRequest({key:p,type:e,status:"SUCCESS",data:h.data})),h))}return Se(e)({...u,id:c.id})(o,n,a)}})}}function Ke(e){return t=>{let r=Ka(e,t);return (o,n,a)=>(o(je(e,r)),se(a,"read",e)(t).then(i=>(i.ok===!0?o(me.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(ht(e,r,i.status,i.error)),i)))}}function Se(e){return t=>{let r=Eo(e,t);return (o,n,a)=>(o(je(e,r)),se(a,"update",e)(t).then(i=>(i.ok===!0?o(me.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(ht(e,r,i.status,i.error)),i)))}}function Va(e){return t=>{let r=Eo(e,t[0]);return (o,n,a)=>(o(je(e,r)),se(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(me.setUpdateRequest({key:r,operation:"updateBulk",status:"SUCCESS",type:e,data:i.data})):o(ht(e,r,i.status,i.error)),i)))}}function yt(e){return t=>{let r=ja(e,t);return (o,n,a)=>(o(je(e,r)),se(a,"delete",e)(t).then(i=>{i.ok===!0?o(me.setDeleteRequest({key:r,operation:"delete",status:"SUCCESS",type:e,data:i.data})):o(ht(e,r,i.status,i.error));}))}}function So(e,t){if(e==="variant"){let r=t;return `create(variant, [${r.dimension_id}, ${r.name}])`}return `create(${e}, [${Object.keys(t)}])`}function Ka(e,t={}){let r=t.id==null?null:`'${t.id}'`;return `read(${e}, ${r}, ${!!t.include})`}function Eo(e,t){let{id:r,...o}=t;return `update(${e}, ${r}, [${Object.keys(o)}])`}function ja(e,t){return `delete(${e}, ${t})`}function Ha(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:Wa,setPreviews:Jl,setSectionState:Ja,resetSectionState:Ya,setCurrentLocale:Yl,setPreferredLocale:Ql}=ze;function Zl(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 Xl(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 eu(){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 Kt(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 tu(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 Qa(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(Wa(i)),n.activeSection&&t(Za(e,{query:s}));}function ru(e,t){return async(r,o)=>Qa(e,r,o,{query:{[t]:void 0}})}function ou(e,t,r){return async(o,n)=>Qa(e,o,n,{query:{[t]:r}})}function Za(e,t){return async(r,o)=>{let n=o(),{currentLocale:a}=n.status,s=n.records.entities.block,i=e.formatterFunctions[a],{parsedParams:c,statusPayload:l}=Pa(n.status,t),{sid:u,bid:p,previews:d,query:m}=c;Object.keys(l).length&&r(ze.setStatus(l));let y={...fr(d),locale:a,...gr()},R={variables:y,query:m,locale:a},h=n.records.entities.section[u],T=async k=>r(Kt(k));try{let k=await mr(s,h&&[h],p,i,R,void 0,T),{variables:I,status:E}=k;r(Er.setVariableChange({attributes:y,variables:I,status:E}));}catch(k){console.log("Error in runConsumers client side: recalculateVariables",k);}}}function nu(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 au(e){return async(t,r,o)=>{let n=await o.urlProxy({url:e});if("error"in n)throw new Error(n.error);return n.data}}function su(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function iu(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 cu(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 lu({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 uu(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 Pr(e){let{removeBlocks:t}=_e.actions;return async r=>{await r(t(e));}}function Ao(e){let{addBlocks:t}=_e.actions;return async r=>{await r(t(e));}}function pu(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 du(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 mu(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}}var Xa=e=>configureStore({reducer:{[_e.name]:_e.reducer,[br.name]:br.reducer,[Sr.name]:Sr.reducer},middleware(t){return t({thunk:{extraArgument:Ft("/api/cms/")}})}}),Ht=createWrapper(Xa);function Ru(e){let t=process.cwd(),r=hu.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(rc.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 bu(e){let t=()=>Promise.resolve({}),{pathSegmentsKey:r="bespoke",preResolve:o=t,postResolve:n=t}=e||{};return te.withPageAuthRequired({getServerSideProps:Ht.getServerSideProps(a=>{let{dispatch:s}=a;return async i=>{let c=i.query[r],[l]=Array.isArray(c)?c:[c];await s(Nt);let u=await Ru("@datawheel/bespoke"),p=await o(a,i);if("redirect"in p)return {props:p};l==="reports"&&(es(i.query[r])?await Promise.all([s(ae("formatter",{})),s(ae("report",{id:es(i.query[r]),include:!0})),ze.setStatus({isCMS:!0})]):await Promise.all([s(ae("report",{include:"dimensions"})),ze.setStatus({isCMS:!0})])),l==="metadata"&&await s(ae("report",{include:"dimensions"})),l==="formatters"&&await s(ae("formatter",{}));let d=await n(a,i);return {props:{...p,...d,bespokeVersion:u}}}})})}function es(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:Eu}=K(),Au={pathSegment:"path",formatterFunctions:Eu.reduce((e,t)=>({...e,[t]:{}}),{}),profilePrefix:"path",siteProps:{}};createContext(Au);K();var ss=e=>e.records.entities.block;function St(e){return t=>Object.values(t.records.entities[e])}var is=St("section"),cs=St("formatter");function Du(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=de,locales:a=[]}=o,s=[];if(r>0){let i=a.find(u=>u===n),{searchMember:c}=await Le().then(st),l=await c({query:"",limit:r,format:"plain",locale:i||de,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 Uu(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return Ht.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(Nt);let a=new Date().toISOString(),{locale:s=de,params:i={}}=n,c=Array.from(Fu(i[t]));if(c.length===0)return await Promise.all([o(ae("formatter",{})),o(ae("report",{include:!0}))]),{props:{buildTime:a}};let l=await o(Kt({mode:"slugs",locale:s,slugs:c,output:"full"}));o(jt.setPreviews(l.results)),await Promise.all([o(ae("formatter",{})),o(ae("report",{id:l.results.map(b=>b.report_id),include:!0,locales:[s]}))]);let u=r.getState(),p=cs(u),d=to(p,s),m=is(u),y=ss(u),R={...y},h={},T=Object.values(y).reduce((b,M)=>("access"in M.settings&&!["public","guest"].some(D=>!M.settings.access||M.settings.access.includes(D))&&b.push(M.id),b),[]);T=T.concat(Ot(T,Object.values(R)));let k=T.filter(b=>R[b].settings[Ko.FALLBACK]);T.forEach(b=>{k.includes(b)&&(h[b]={...R[b],type:"fallback",original_type:R[b].type}),delete R[b];}),await o(Pr(T)),await o(Ao(h));let I={...fr(l.results),locale:s,...gr()},E=async b=>await o(Kt(b));return await mr({...R,...h},m,void 0,d,{locale:s,query:i,variables:I},void 0,E,"report").then(async b=>{let M=Object.keys({...R,...h}).reduce((D,F)=>(b.variables[F]&&b.status[F]||D.push(F),D),[]);await o(Pr(M)),await o(Er.setVariableChange({...b,attributes:I}));}),{props:{buildTime:a}}}})}catch(r){console.log("ERROR SSR",r);}}function Fu(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}}}
62
62
 
63
- export { Nu as BespokeEmbedServerSideProps, us as BespokeGetSession, ms as BespokeHandleAuth, hu as BespokeManagerServerSideProps, Ou as BespokeRendererStaticPaths, Du as BespokeRendererStaticProps, vs as BespokeSearchUsersByMetadata, bs as BespokeUpdateCurrentUserAppMetadata, Ss as BespokeUpdateCurrentUserMetadata, As as BespokeWithApiRoleAuthRequired, Oc as ReportCrosswalkHandler, lt as dbApiFactory, jr as endpointKey, Mc as endpointNextJsHandlerFactory, Le as getDB, Ue as useDatabaseApi };
63
+ export { ds as BespokeGetSession, gs as BespokeHandleAuth, bu as BespokeManagerServerSideProps, Du as BespokeRendererStaticPaths, Uu as BespokeRendererStaticProps, ks as BespokeSearchUsersByMetadata, Ss as BespokeUpdateCurrentUserAppMetadata, As as BespokeUpdateCurrentUserMetadata, vs as BespokeWithApiRoleAuthRequired, Uc as ReportCrosswalkHandler, st as dbApiFactory, Kr as endpointKey, Nc as endpointNextJsHandlerFactory, Le as getDB, Nt as useDatabaseApi };