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