@datawheel/bespoke 0.7.6-rc.9 → 0.7.7

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