@datawheel/bespoke 0.8.0-rc.21 → 0.8.0-rc.22
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 +2 -2
- package/dist/redux-store.js +1 -1
- package/dist/report.js +2 -2
- package/dist/server.js +8 -8
- package/package.json +1 -1
package/dist/server.js
CHANGED
|
@@ -43,15 +43,15 @@ import 'react-redux';
|
|
|
43
43
|
import 'react/jsx-runtime';
|
|
44
44
|
import '@mantine/core';
|
|
45
45
|
|
|
46
|
-
var Ns=Object.defineProperty;var Us=(e,t)=>{for(var r in t)Ns(e,r,{get:t[r],enumerable:!0});};function Ve(e){let t=e;if(t&&!t.source)if(!t.providers||t.providers.length===0){let r=Fs({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 Re(e,t,r={providers:[]}){let o=Ve(r),n=await getServerSession(e,t,o);return n&&(n.source=o.source||""),n}var zs=(e={providers:[]})=>{let t=Ve(e);return $s(t)},qs=zs;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 E=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 Ks(e){return {ok:!0,status:200,data:e}}function Zo(e){return {ok:!1,status:E.is(e)?e.code:500,error:e.message}}function x(e){return t=>e(t).then(Ks,Zo)}function ie(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${be(r)}`;return e[n]}let o=`${t}${be(r)}`;return e[o]}function be(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 ze={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 $e.ManagementClient(ze).roles.getAll({include_totals:!0,per_page:100});return {roles:en(t.roles)}}catch(e){throw console.error("AuthZeroError",e),new E(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 $e.ManagementClient(ze);if(e.role_id&&e.role_id!==""){let n={...r,id:e.role_id};t=await o.roles.getUsers(n);}else {let n={...r,q:e.query};t=await o.users.getAll(n);}}return t}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function on(){return async e=>{try{if(e){let t=new $e.ManagementClient(ze),r=await Promise.all([t.users.get({id:e}),t.users.getRoles({id:e})]);return {...r[0],roles:r[1]}}else throw new E(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function 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 $e.ManagementClient(ze),o=(await t.users.getRoles({id:e.user_id})).map(i=>i.id),n=e.roles.map(i=>i.id),a=n.filter(i=>!o.includes(i)),s=o.filter(i=>!n.includes(i));a.length>0&&await t.users.assignRoles({id:e.user_id},{roles:a}),s.length>0&&await t.users.removeRoles({id:e.user_id},{roles:s});}return {status:"success",message:"User updated!"}}else throw new E(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function an(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}async function Xr(e,t){return await new $e.ManagementClient(ze).users.updateAppMetadata({id:e},t)}async function eo(e,t){return await new $e.ManagementClient(ze).users.updateUserMetadata({id:e},t)}async function sn(e,t){try{let r=new $e.ManagementClient(ze),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 js=(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"});}})();}),Hs=js;var Js=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await Re(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"});}})();}),Ys=Js;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 Qs=(e,t,r)=>async function(o,n){let a=await Re(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);},Zs=Qs;var Xs=(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 "});}})();}),ei=Xs;var we=(e=process.env)=>Ir(e.REPORTS_LOGGING);var Ge=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 oi(e){return Ge.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=>(Ge.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Ge.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),Ge.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),Ge)}var cn=oi;var fr=class extends Model{};function ai(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=ai;var yr=class extends Model{};function ii(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=ii;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 ci(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 li(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 ui(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 pi(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 g=(1+p)*i/(1-i)/a;return {lci:m,uci:g}}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:ci,binP:$t,computeMidP:ui,criticalValue:li,smr:pi};var Ke={d3:{...di,...mi,...fi,...yi},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:dn},mn={};var xe={UNILATERAL:"uni",MULTILATERAL:"multi"},He={SINGLE:"single",MULTI:"multi"};var no={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Ti={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},vi={FALLBACK:"fallback"};var _i={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",D={..._i,...ao},Rr={NAME:"name",DESCRIPTION:"description",...no,...Ti,...vi};var hr={FORMATTER:"formatter",FUNCTION:"function"},ht={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var Rt=class extends Model{};function wi(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=wi;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 Ii(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=Ii;var br=class extends Model{};function Bi(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=Bi;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 Oi(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=Oi;var At=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function Di(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=Di;var Tt=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function Ui(e){return Tt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},dimension_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},slug:{type:DataTypes.STRING,defaultValue:""},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},config:{type:DataTypes.JSONB,defaultValue:{}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:!0,timestamps:!1}),t=>(Tt.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),Tt.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),Tt)}var En=Ui;var ve=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 Vi(e){return ve.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=>(ve.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),ve.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),ve.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),ve.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),ve.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),ve)}var An=Vi;var Sr=class extends Model{};function zi(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=zi;var Gt=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function Gi(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=Gi;var Ar=class extends Model{};function ji(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 Ns=Object.defineProperty;var Us=(e,t)=>{for(var r in t)Ns(e,r,{get:t[r],enumerable:!0});};function Ve(e){let t=e;if(t&&!t.source)if(!t.providers||t.providers.length===0){let r=Fs({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 Re(e,t,r={providers:[]}){let o=Ve(r),n=await getServerSession(e,t,o);return n&&(n.source=o.source||""),n}var zs=(e={providers:[]})=>{let t=Ve(e);return $s(t)},qs=zs;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 E=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 Ks(e){return {ok:!0,status:200,wrapper:!0,data:e}}function Zo(e){return {ok:!1,status:E.is(e)?e.code:500,error:e.message}}function x(e){return t=>e(t).then(Ks,Zo)}function ie(e,t,r){if(t==="createBulk"||t==="updateBulk"){let n=`${t}${be(r)}`;return e[n]}let o=`${t}${be(r)}`;return e[o]}function be(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 ze={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 $e.ManagementClient(ze).roles.getAll({include_totals:!0,per_page:100});return {roles:en(t.roles)}}catch(e){throw console.error("AuthZeroError",e),new E(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 $e.ManagementClient(ze);if(e.role_id&&e.role_id!==""){let n={...r,id:e.role_id};t=await o.roles.getUsers(n);}else {let n={...r,q:e.query};t=await o.users.getAll(n);}}return t}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function on(){return async e=>{try{if(e){let t=new $e.ManagementClient(ze),r=await Promise.all([t.users.get({id:e}),t.users.getRoles({id:e})]);return {...r[0],roles:r[1]}}else throw new E(404,"User ID required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function 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 $e.ManagementClient(ze),o=(await t.users.getRoles({id:e.user_id})).map(i=>i.id),n=e.roles.map(i=>i.id),a=n.filter(i=>!o.includes(i)),s=o.filter(i=>!n.includes(i));a.length>0&&await t.users.assignRoles({id:e.user_id},{roles:a}),s.length>0&&await t.users.removeRoles({id:e.user_id},{roles:s});}return {status:"success",message:"User updated!"}}else throw new E(404,"user_id is required")}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}function an(){return async e=>{try{return "NOT USED SERVICE"}catch(t){throw console.error("AuthZeroError",t),new E(t.response?.status||500,t.message)}}}async function Xr(e,t){return await new $e.ManagementClient(ze).users.updateAppMetadata({id:e},t)}async function eo(e,t){return await new $e.ManagementClient(ze).users.updateUserMetadata({id:e},t)}async function sn(e,t){try{let r=new $e.ManagementClient(ze),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 js=(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"});}})();}),Hs=js;var Js=(e,t,r,o)=>new Promise((n,a)=>{(async()=>{try{let i=await Re(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"});}})();}),Ys=Js;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 Qs=(e,t,r)=>async function(o,n){let a=await Re(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);},Zs=Qs;var Xs=(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 "});}})();}),ei=Xs;var Pe=(e=process.env)=>Ir(e.REPORTS_LOGGING);var Ge=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 oi(e){return Ge.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=>(Ge.hasMany(t.block_content,{foreignKey:"id",sourceKey:"id",as:"contentByLocale"}),Ge.belongsToMany(t.block,{through:"block_input",foreignKey:"block_id",otherKey:"input_id",as:"inputs"}),Ge.belongsToMany(t.block,{through:"block_input",foreignKey:"input_id",otherKey:"block_id",as:"consumers"}),Ge)}var cn=oi;var fr=class extends Model{};function ai(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=ai;var yr=class extends Model{};function ii(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=ii;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 ci(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 li(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 ui(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 pi(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:ci,binP:$t,computeMidP:ui,criticalValue:li,smr:pi};var Ke={d3:{...di,...mi,...fi,...yi},d3plus:{assign:assign,closest:closest,date:date,formatAbbreviate:formatAbbreviate,merge:merge,strip:strip,titleCase:titleCase},stats:dn},mn={};var xe={UNILATERAL:"uni",MULTILATERAL:"multi"},He={SINGLE:"single",MULTI:"multi"};var no={ALLOWED:"allowed",ALLOWED_LOGIC:"allowedLogic",IGNORE_CASCADE:"ignoreCascade"},Ti={ACCESS:"access",ACCESS_LOGIC:"accessLogic"},vi={FALLBACK:"fallback"};var _i={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",D={..._i,...ao},Rr={NAME:"name",DESCRIPTION:"description",...no,...Ti,...vi};var hr={FORMATTER:"formatter",FUNCTION:"function"},ht={STRING:"string",NUMBER:"number",OBJECT:"object",DATE:"date"};var Rt=class extends Model{};function Pi(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=Pi;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 Ii(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=Ii;var br=class extends Model{};function Bi(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=Bi;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 Oi(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=Oi;var At=class extends Model{toJSON(){let t=this.get({plain:!0}),{variants:r=[]}=this;return {...t,variants:r.map(o=>o.toJSON())}}};function Di(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=Di;var Tt=class extends Model{get report(){return this.dimension?.report}toJSON(){return this.get({plain:!0})}};function Ui(e){return Tt.init({id:{type:DataTypes.INTEGER,primaryKey:!0,autoIncrement:!0},dimension_id:{type:DataTypes.INTEGER,onDelete:"cascade",references:{model:"bespoke_reports_report_dimension",key:"id"}},slug:{type:DataTypes.STRING,defaultValue:""},name:{type:DataTypes.STRING,defaultValue:""},settings:{type:DataTypes.JSONB,defaultValue:{}},config:{type:DataTypes.JSONB,defaultValue:{}},visible:{type:DataTypes.BOOLEAN,defaultValue:!0}},{sequelize:e,modelName:"variant",tableName:"bespoke_reports_report_dimension_variant",freezeTableName:!0,timestamps:!1}),t=>(Tt.hasMany(t.search,{foreignKey:"variant_id",sourceKey:"id",as:"members",constraints:!1}),Tt.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),Tt)}var En=Ui;var ve=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 Vi(e){return ve.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=>(ve.belongsTo(t.variant,{foreignKey:"variant_id",targetKey:"id",as:"variant",constraints:!1}),ve.belongsTo(t.dimension,{foreignKey:"dimension_id",targetKey:"id",as:"dimension",constraints:!1}),ve.belongsTo(t.report,{foreignKey:"report_id",targetKey:"id",as:"report",constraints:!1}),ve.belongsTo(t.image,{foreignKey:"image_id",targetKey:"id",as:"image",constraints:!1}),ve.hasMany(t.search_content,{foreignKey:"id",sourceKey:"content_id",as:"contentByLocale"}),ve)}var An=Vi;var Sr=class extends Model{};function zi(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=zi;var Gt=class extends Model{toJSON(){let t=this.get({plain:!0}),{blocks:r=[]}=this;return {...t,blocks:r.map(o=>o.toJSON())}}};function Gi(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=Gi;var Ar=class extends Model{};function ji(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 {
|
|
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}),()=>Ar}var _n=ji;var kn={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
|
|
51
|
+
};`,testUrl:""}}},{sequelize:e,modelName:"datasource",tableName:"bespoke_reports_data_source",freezeTableName:!0,timestamps:!1}),()=>Ar}var _n=ji;var kn={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 wn=Pe(),Pn=process.env.REPORTS_DB_CONNECTION||"";if(!Pn)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 Qe=()=>{if(global.sequelize)
|
|
54
|
+
`);var Qe=()=>{if(global.sequelize)wn&&console.info("\u267B\uFE0F RE-UTILIZING DB CONNECTION");else {wn&&console.info("\u{1F511} INITIALIZING DB CONNECTION");let e;try{e=new Sequelize(Pn,{logging:!1,dialectModule:Hi,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:
|
|
@@ -59,17 +59,17 @@ var Ns=Object.defineProperty;var Us=(e,t)=>{for(var r in t)Ns(e,r,{get:t[r],enum
|
|
|
59
59
|
`)}Object.values(kn).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
61
|
`,t.stack||t.message),global.sequelize=void 0;}).then(()=>({...e.models,sequelize:e}));}return global.sequelize};var Yi=()=>{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=Yi;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 Kt(e){return typeof e=="string"?String(e).replace(/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});/ig," "):e}function Zi(e){return e?Qi(Kt(j(e)),{replacement:"-",remove:/[*+~.()'"!:@]/g,lower:!0,strict:!0,trim:!0}):""}var Tr=Zi;var jt=e=>({overrideNames:e&&typeof e.overrideNames<"u"?e.overrideNames:!1,overrideRelevance:e&&typeof e.overrideRelevance<"u"?e.overrideRelevance:!1,regenerateSlugs:e&&typeof e.regenerateSlugs<"u"?e.regenerateSlugs:!1,keepOldMembers:e&&typeof e.keepOldMembers<"u"?e.keepOldMembers:!0,doIngest:e&&typeof e.doIngest<"u"?e.doIngest:!1,overrideAttributes:e&&typeof e.overrideAttributes<"u"?e.overrideAttributes:!1,order:e&&typeof e.order<"u"?e.order:0});var xn={jwt:Xi};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:Ke,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)},_r=(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 tc(){let{publicRuntimeConfig:e}=ec(),t=e.bespoke_report_env_vars||{};return {...Object.keys(t).reduce((r,o)=>(r[`ENV_${o}`]=t[o]||"N/A",r),{})}}var ce=tc;function rc(){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 vt=rc;var{localeDefault:ac}=K();function de(e){return {variables:e.variables||{},query:e.query||{},locale:e.locale||ac}}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 fe=sc;function sc(e,t,r,o=!1){let{variables:n}=de(r);if(!e)return e;let a=/([A-z0-9]*)\{\{([^\}]+)\}\}/g;return e.replace(a,(i,c,l)=>{let u=m=>m;if(c){let m=c.replace(/^\w/g,d=>d.toLowerCase());m in t?u=t[m]:u=d=>`${c}${d}`;}let p=Array.isArray(n[l])?lo(n[l]):n[l];if(p===void 0)return o?i:"N/A";try{return u(p,Ke,t)}catch(m){return console.error(`Error using formatter ${u.name}
|
|
62
|
-
`,`Error message: ${m.message}`),"N/A"}})}function cc(e,t){return e.some(r=>t.includes(`role.${r}`))}function kr(e){return async t=>{let{url:r,method:o,timeout:n}=t,
|
|
62
|
+
`,`Error message: ${m.message}`),"N/A"}})}function cc(e,t){return e.some(r=>t.includes(`role.${r}`))}function kr(e){return async t=>{let{url:r,method:o,timeout:n,wrapper:a=!0}=t,s=n||process.env.NEXT_PUBLIC_REPORTS_API_FETCH_TIMEOUT||0,i={url:r,method:o||"GET",timeout:s},c=ce(),l=vt(),u={envs:{...c,...l}};try{let m=(await e.datasource.findAll({where:literal("(content->>'useProxy')::boolean = true"),order:[literal("(content->>'order')::integer ASC NULLS LAST")]})).map(h=>{let f={...c};return {...h.toJSON(),patternSwapped:fe(h.content.pattern,{},{variables:f})}}).find(h=>{if(!h.content?.pattern)return !1;try{return new RegExp(h.patternSwapped,"gm").test(i.url)}catch{return !1}});if(m){let h=t.user_roles&&Array.isArray(t.user_roles)?t.user_roles:[],f=m.content.access&&Array.isArray(m.content.access)?m.content.access:[];if(m.content.logic&&(f.length===0||f.includes("public")||f.includes("guest")&&h.length===0||f.includes("private")&&h.length>0||cc(h,f))){let A=await _r({vars:["url","libs"],logic:m.content.logic},u)(i.url);if(A.axiosConfig)i=A.axiosConfig;else throw new E(500,`AxiosConfig is missing in Data Source ${m.name} (ID: ${m.id}).`)}else throw new E(401,`Query not allowed because user roles. Data Source ${m.name} (ID: ${m.id}).`)}let d=await Dr.request(i);return {ok:!0,wrapper:a,status:d.status,data:d.data}}catch(p){throw new E(p.response?.status||500,p.message)}}}var{localeDefault:uo}=K();function Ln(e){let{search:t,search_content:r}=e,o=kr(e);return n;async function n(s){let{id:i,config:c={},settings:l={}}=s,u=c[uo]?uo:Object.keys(c)[0],{overrideNames:p,overrideAttributes:m}=jt(l),{accessor:d,path:h,idKey:f,labelKey:R}=c[uo];if(!h||!f||!R)return;let A=await o({url:h}).catch(C=>({data:[],error:C}));if("error"in A)throw new E(500,`Failed to fetch members: ${A.error}`);let T=Vt(A.data,d),w=[];try{console.info(`Ingesting default items for variant ${s.name} for ${u}`),w=await a(s,u,T);}catch(C){let B=`[ERROR] Ingesting default member items for ${u}`;throw console.error(B,C),new E(500,B)}let _=await t.findAll({where:{variant_id:i}}).then(C=>Object.fromEntries(C.map(B=>[B.id,{content_id:B.content_id,needsUpdate:w.includes(B.content_id)}]))),N=Object.entries(c).map(async([C,B])=>{let{path:M,accessor:U,idKey:F,labelKey:v,attributes:S=[]}=B;if(!M||!F||!v)return;let I=await o({url:M}).catch($=>({data:[],error:$}));if("error"in I)throw new E(500,`Failed to fetch members for locale ${C}: ${I.error}`);let z=Vt(I.data,U),P=await r.findAll({where:{id:w,locale:C}}).then($=>Object.fromEntries($.map(b=>[b.id,b.toJSON()]))),W=z.filter($=>typeof $[F]<"u"&&$[F]!==""&&typeof $[v]<"u"&&$[v]!=="").map($=>{let b=_[$[F]],k,V=Object.fromEntries(S.map(re=>[re.name,re.type==="constant"?re.value:$[re.value]||""]));return b.needsUpdate&&P[b.content_id]?(k={...P[b.content_id]},p&&(k.name=$[v]),m&&(k.attributes=V)):k={id:b.content_id,locale:C,name:$[v],attributes:V},k});try{return r.bulkCreate(W,{updateOnDuplicate:["name","attributes"]})}catch($){let b=`[ERROR] Ingesting search content items for ${C}`;throw console.error(b,$),new E(500,b)}});await Promise.all(N);}async function a(s,i,c){let{id:l,dimension_id:u,slug:p}=s,{report_id:m}=s.dimension,{idKey:d,labelKey:h,zValueKey:f}=s.config[i],{overrideNames:R,regenerateSlugs:A,keepOldMembers:T,overrideRelevance:w,overrideAttributes:_}=jt(s.settings),N=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.not]:l}}},group:"search.slug"}).then(b=>Object.fromEntries(b.map(k=>{let V=k.getDataValue("slugCount");return [k.slug,Number.parseInt(`${V}`,10)]}))),C=t.findAll({where:{variant_id:l}}).then(b=>Object.fromEntries(b.map(k=>[k.id,k.toJSON()]))),[B,M]=await Promise.all([N,C]),U=Object.values(M).map(b=>b.slug),F=[],v=null,S=null;if(f&&f!==""){for(let b of c)if(typeof b[f]=="number"&&!isNaN(b[f])){let k=b[f];(v===null||k<v)&&(v=k),(S===null||k>S)&&(S=k);}}let I=[],z=[],P=[],W=!1;c.filter(b=>b[d]&&b[d]!==""&&b[h]&&b[h]!=="").forEach(b=>{let k=b[d],V=Tr(b[h]);W=!1;let re=parseFloat(Math.random().toPrecision(5));if(f&&f!==""&&v&&S&&b[f]){let ae;try{ae=parseInt(b[f],10);}catch{ae=0;}let me=S!==null&&v!==null&&S!==v?(ae-v)/(S-v):0;re=S===v?1:parseFloat(me.toPrecision(5));}if(M[k]){if(R||A||w||_){let ae=M[k];if((R||_)&&P.push(ae.content_id),R&&A){let me=Object.values(M).filter(L=>L.id!==k).map(L=>L.slug),J=B[V]||me.includes[V]||F.includes(V);J&&console.warn("Duplicate slug!",V,"replaced by",`${V}-${k}`);let Y=J?`${V}-${k}`:V;ae.slug!==Y&&(ae.slug=Y,F.push(V),W=!0,console.info("UPDATE SLUG",k,V));}f&&f!==""&&w&&ae.zvalue!==re&&(ae.zvalue=re,W=!0,console.warn("UPDATE ZVALUE",k,re)),W&&z.push(ae);}}else {console.info("INSERT ID",k);let ae=B[V]||U.includes[V]||F.includes(V);ae&&console.warn("Duplicate slug!",V,"replaced by",`${V}-${k}`);let me=ae?`${V}-${k}`:V;F.push(V),I.push({id:k,slug:me,variant_id:l,dimension_id:u,report_id:m,zvalue:re});}});let $=[];if(!T){let b=c.map(k=>k[d]);$=Object.keys(M).filter(k=>!b.includes(k));}try{return (I.length>0||z.length>0)&&(await t.bulkCreate([...I,...z],{updateOnDuplicate:["slug","zvalue"]}),console.info("New members ingested:",I.length),console.info("New members updated:",z.length)),$.length>0&&(await t.destroy({where:{id:{[Op.in]:$},variant_id:l}}),console.warn("Old members deleted:",$.length)),P}catch(b){throw console.error(`[ERROR] Ingesting search members for ${i}`,b),new Error(b)}}}function On(e){let{search:t}=e;return r;async function r(o){let{all:n,locale:a,mode:s,variant:i,output:c}=o,l={content_id:[],...i&&i.length?{variant_id:i}:{}};if(s==="content_ids")l.content_id=o.content_ids;else if(s==="ids"){if(n)throw new E(400,"Search by ids doesn't support locale all. Pick one locale.");let d={id:o.ids,...i&&i.length?{variant_id:i}:{}},h=await t.findAll({attributes:["content_id"],where:d,include:[{association:"contentByLocale",where:{locale:a}}]});l.content_id=h.map(f=>f.content_id);}else if(s==="slugs"){let d=o.slugs.map(f=>t.findAll({attributes:["content_id"],where:{slug:f.memberSlug},include:{association:"variant",attributes:["id","name","slug"],required:!0,where:{slug:f.variantSlug}}})),h=await Promise.all(d).then(f=>f.reduce((R,A)=>R.concat(A),[]));l.content_id=h.map(f=>f.content_id);}else if(s==="related"){let d=()=>{if(o.variant_ids?.length)return {variant_id:o.variant_ids.map(R=>R)};if(o.dimension_ids?.length)return {dimension_id:o.dimension_ids.map(R=>R)};if(o.report_ids?.length)return {report_id:o.report_ids.map(R=>R)}},h=()=>o.include_ids?.length?{[Op.in]:o.include_ids.map(R=>R)}:!1,f=await t.findAll({attributes:["content_id"],where:{...d(),content_id:h()||{[Op.notIn]:o.current_ids},visible:!0},order:[Sequelize.fn("RANDOM")],limit:o.related||4});l.content_id=f.map(R=>R.content_id);}else if(s==="whole"){let d={...i&&i.length?{variant_id:i}:{}},h=await t.findAll({attributes:["content_id"],where:d});l.content_id=h.map(f=>f.content_id);}let u={locale:n?{[Op.ne]:null}:a},p=await t.findAll({where:l,include:[{association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name","ordering"]},{association:"variant",attributes:["id","name","slug"]},{association:"image",attributes:["id","author","url","license"],include:[{association:"contentByLocale",where:u}]},{association:"contentByLocale",where:u}]});if(!["related","whole"].includes(s)&&o[s]&&p.length!==o[s].length)throw new E(404,"One or more members were not found.");p.sort((d,h)=>l.content_id.indexOf(d.content_id)-l.content_id.indexOf(h.content_id));let m=p.map(d=>{let h,f={id:d.id,slug:d.slug,visible:d.visible,zvalue:d.zvalue,content_id:d.content_id,report_id:d.report_id,report_name:d.report.name,dimension_id:d.dimension_id,dimension_name:d.dimension.name,variant_id:d.variant_id,variant_name:d.variant.name,variant_slug:d.variant.slug};if(n){let R=d.contentByLocale;f.contentByLocale=R,f.image=d.image,f.image_id=d.image_id,h=f;}else {let R=d.getContent(a),A=d.image?.getContent(a),T=A&&{id:d.image.id,author:d.image.author,url:d.image.url,license:d.image.license,meta:A.meta};h={...f,locale:R.locale,name:R.name,attributes:R.attributes,keywords:R.keywords,image:T||null,image_id:d.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 mc(e,t=!0){if(!e)return "";let r=Kt(j(e.toLowerCase()));return (t?Qi(r,{replacement:" ",remove:/[*+~.()'"!:@-]/g,lower:!0,strict:!1,trim:!0}):r).replace(/\s\s+/g," ")}var Ze=mc;var Ht=[{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"]}],wr=Ht.reduce((e,t)=>e.concat(t.locales),[]);var _t=Pe(),{locales:yc}=K(),gc=yc.filter(e=>wr.includes(e)),mo=!1,hc=async(e,t=!1)=>{if(t&&(_t&&console.info("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.flexsearch=void 0,mo=!1),global.flexsearch)return _t&&console.info("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.flexsearch;try{mo||(_t&&console.info("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),mo=!0,global.flexsearch=await Rc(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 Rc(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]});_t&&console.info("\u{1F3F3}\uFE0F INITIALIZING FLEXSEARCH");let r=gc.map(async o=>{_t&&console.info(`\u{1F3F3}\uFE0F INITIALIZING FLEXSEARCH ${o} LOCALE`);let n=Ht.find(u=>u.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.info(` Charset for ${o}: ${a}`):_t&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new fc.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(m=>m.locale===o);if(p){let m=Ze(p.name,a!=="arabic"),d=Array.isArray(p.keywords)?p.keywords.map(
|
|
66
|
+
`)}return global.flexsearch};async function Rc(e){let t=await e.search.findAll({include:[{association:"contentByLocale"}]});_t&&console.info("\u{1F3F3}\uFE0F INITIALIZING FLEXSEARCH");let r=gc.map(async o=>{_t&&console.info(`\u{1F3F3}\uFE0F INITIALIZING FLEXSEARCH ${o} LOCALE`);let n=Ht.find(u=>u.locales.includes(o)),a=n?.charset||"latin",s=a==="latin"?"advanced":"default";n?console.info(` Charset for ${o}: ${a}`):_t&&console.error(` Missing charset for ${o}, adding latin as default.`);let i=(await import(`flexsearch/dist/module/lang/${a}/${s}`)).default,c=new fc.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(m=>m.locale===o);if(p){let m=Ze(p.name,a!=="arabic"),d=Array.isArray(p.keywords)?p.keywords.map(f=>Ze(f,a!=="arabic")):null,h={id:u.id,content_id:u.content_id,name:p.name,keywords:d,attributes:p.attributes,clean:m};c.add(h),l++;}}),console.info(`\u{1F3F3}\uFE0F Indexed for ${o}: ${l} elements`),[o,c]});return Object.fromEntries(await Promise.all(r))}var Xe=hc;var kt=process.env.REPORTS_EXTERNAL_SEARCH,Ie=Pe(),{locales:bc}=K(),Sc=bc.filter(e=>wr.includes(e)),fo=!1,Ec=async(e=!1)=>{if(e&&(Ie&&console.info("0\uFE0F\u20E3 CLEARING SEARCH INDEX"),global.typesense=void 0,fo=!1),global.typesense)return Ie&&console.info("\u{1F501} RE-UTILIZING SEARCH INDEX"),global.typesense;try{fo||(Ie&&console.info("1\uFE0F\u20E3 INITIALIZING SEARCH INDEX"),fo=!0,global.typesense=await Tc());}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 Ac(){try{if(kt){let e=await Dr.get(new URL(kt).origin);if(e?.data["typesense-health"]===!0)return Ie&&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 Tc(){if(Ie&&console.info(`\u{1F3F3}\uFE0F INITIALIZING TYPESENSE SEARCH AGAINST ${kt}`),!await Ac())throw new Error("TYPESENSE_URL service is not healthy.");let t=Sc.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:",kt,a),Dr.get(kt,{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=Ec;var{localeDefault:yo}=K();function Pt(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:g,report:h,all:R,noImage:A,includes:T,sort:P,direction:_="ASC",offset:N=0}=n,B=Ht.find(S=>S.locales.includes(c))?.charset||"latin",M=u&&!isNaN(u)?u:20,U=Ze(i,B!=="arabic");function F(S){return S.toJSON()}function v(S){let I=S.getContent(c);return {...S.toJSON(),locale:I.locale,name:I.name,attributes:I.attributes,keywords:I.keywords}}if(s){let S=await Nn(),I=S[c]||S[yo],z={query:U===""?"*":U,limit:M,variant:d,report:h,offset:N};return await I.search(z)}else {let S=[],I=await Xe(e);if(i&&i!==""&&I[c]){let J=Ze(i,B!=="arabic"),Y={query:J,limit:M},L=await I[c].search(Y);if(s?S=L.data.results.map(Z=>parseInt(Z.content_id,10)):S=L.reduce((Z,H)=>Z.concat(H.result),[]),S=mr(S),l&&I[l]){let H=I[l].search(J).reduce((he,Pe)=>he.concat(Pe.result),[]);H=mr(H),S=mr([...S,...H]);}}let z={...m?{visible:m}:{},...A?{image_id:{[Op.eq]:null}}:{},...d.length?{variant_id:d}:{},...g.length?{dimension_id:g}:{},...h.length?{report_id:h}:{}},w={locale:R?{[Op.ne]:null}:c},W=i&&i!==""&&S.length?[[literal(`array_position(array[${S.join(",")}], "content_id")`),"ASC"]]:[["zvalue","DESC NULLS LAST"]];P&&P!=="name"&&W.unshift([P,_.toUpperCase()]),i&&i!==""&&(z.content_id=S);let $=[{association:"contentByLocale",where:w}];T&&$.push({association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name"]},{association:"variant",attributes:["id","slug","name"]});let b={...z.visible?{visible:z.visible}:{},...z.noImage?{image_id:z.noImage}:{},...z.content_id?{content_id:z.content_id}:{}};if(!z.report_id&&!z.dimension_id&&!z.variant_id&&m){let Y=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(L=>L.id);Y.length>0&&(z.report_id={[Op.notIn]:Y},b.report_id=z.report_id);}let k=[],[V,re]=await Promise.all([t.findAll({limit:M,offset:N,where:z,include:$,order:W}),t.findAll({attributes:["variant_id",[fn("COUNT",col("variant_id")),"members_count"]],where:b,group:["variant_id"]})]),ae=re.map(J=>J.toJSON());if(P==="name"){let J=_.toUpperCase()==="ASC"?1:-1;V.sort((Y,L)=>{let Z=Y.getContent(yo),H=L.getContent(yo);return Z&&H?Z.name>H.name?1*J:-1*J:0});}let me=p==="nested"?F:v;return k=V.map(me),p!=="nested"&&k.forEach(J=>{let{name:Y,keywords:L,score:Z=.1,zvalue:H}=J;if(Y){let he=Ze(Y),Pe=Z,pr=i.length/he.length,Wo=he.split("").reduce((Zr,Jo,Yo)=>(i.slice(0,Yo),i.charAt(Yo)===Jo&&(Zr+=Jo),Zr),"").length;he===i||L&&L.includes(i)?Pe=1e6:he.startsWith(i)?Pe*=20*pr:Wo&&(Pe*=Wo*pr),J.zvalue=Pe*2+H;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(J=>[J[0],j(J[1])])),variantCount:ae.reduce((J,Y)=>(J[Y.variant_id]=parseInt(Y.members_count,10),J),{})},results:k}}}}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 g=0;g<c.length;g++){let h=c[g];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 d=0;d<l.contentByLocale.length;d++){let g=l.contentByLocale[d];await r.update({meta:g.meta},{where:{id:g.id,locale:g.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:Pt(e),updateMember:Un(e),readMemberImage:Mn(e)}}var et={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,...et}]},xr=e=>({include:[{association:"dimensions",separate:!0,...Wt(e)},{association:"sections",separate:!0,...Jt}]});var Se=[{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(g=>({locale:g}))},{include:et.include})).toJSON()}async function a(u){let p=u.map(d=>{let{locales:g,...h}=d;return {...h,consumers:[],inputs:[],contentByLocale:g.map(A=>({locale:A}))}});return (await t.bulkCreate(p,{include:et.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?et.include:void 0});if(m.length===0||d.length===m.length)return d.map(R=>R.toJSON());let g=d.map(R=>R.id),h=m.filter(R=>!g.includes(R));throw new E(404,`Block(id=[${h}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:m,consumers:d,inputs:g,inputAction:h,...R}=u,A=await t.findByPk(p,{include:et.include,rejectOnEmpty:!0});if(A.set(R),m){let T=Object.values(m);await r.bulkCreate(T,{updateOnDuplicate:["content"]});}return h&&(h.operation==="create"?await o.create(h.input):await o.destroy({where:h.input})),await A.save(),await A.reload(),A.toJSON()}async function c(u){let p=u.map(g=>{let{id:h,contentByLocale:R,consumers:A,inputs:T,inputAction:P,..._}=g;return {id:h,contentByLocale:R,inputAction:P,..._}}),m=await t.findAll({where:{id:{[Op.or]:p.map(g=>g.id)}},include:et.include}),d=[];for(let g of m){let h=p.filter(R=>R.id===g.id);for(let R=0;R<h.length;R++){let A=h[R],{id:T,contentByLocale:P,inputAction:_,...N}=A;if(_&&(_.operation==="create"?await o.create(_.input):await o.destroy({where:_.input})),P){let C=Object.values(P);await r.bulkCreate(C,{updateOnDuplicate:["content"]});}g.set(N),await g.save(),await g.reload(),d.push(g.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 E(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 E(404,`Dimension(id=${c}) does not exist.`);return p.set(u),await p.save(),p.toJSON()}async function s(i){let c=await t.findByPk(i,{rejectOnEmpty:!1});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function 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 E(404,`Formatter(id=[${u}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}function 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 E(404,`Datasource(id=[${m}]) does not exist.`)}catch(c){throw new E(500,c)}}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}var{locales:Lc}=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=Lc}={}){let p=(i==null?[]:[].concat(i)).reduce((h,R)=>(h.includes(R)||h.push(R),h),[]),m=await t.findAll({where:p.length>0?{id:p}:void 0,include:c?xr(r).include?.filter(h=>typeof c=="string"?h.association===c:c):void 0});if(p.length===0||m.length===p.length)return m.map(h=>{let R=h.toJSON();return {...R,sections:R.sections.map(A=>({...A,blocks:A.blocks.map(T=>({...T,contentByLocale:Object.keys(T.contentByLocale).reduce((P,_)=>({...P,...[...l,"logic"].includes(_)?{[_]:T.contentByLocale[_]}:{}}),{})}))}))}});let d=m.map(h=>h.id),g=p.filter(h=>!d.includes(h));throw new E(404,`Report(id=${g}) 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 E(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 E(404,`Section(id=${p}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,u=await t.findByPk(i,{include: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(g=>g.toJSON());let m=p.map(g=>g.id),d=u.filter(g=>!m.includes(g));throw new E(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 Xe(e,!0)),await m.reload(),m.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:!0});return await u.destroy(),Xe(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(h=>Object.fromEntries(h.map(R=>{let A=R.getDataValue("slugCount");return [R.slug,Number.parseInt(`${A}`,10)]}))),m=u,d=1,g=!0;for(;p[m];)g=!1,m=`${u}-${d}`,d++;return {candidate:u,dimension_id:l,suggestion:m,valid:g}}}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)},Dc=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,Nc=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,Uc=async(e,t,r)=>{let o=[{type:"splash",res:Dc},{type:"thumb",res:Nc}];for(let n of o){let a=await Mc(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=Uc;var Zn="|||";var Xn="SECTION_ALLOWED";var ea=["4","5","7","8","9","10"],zc=ea.join(),{locales:qc}=K(),Be;if(process.env.FLICKR_API_KEY)try{Be=new $c(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:zc,sort:"relevance",per_page:24,page:r.page,content_types:"0",orientation:"landscape"}).then(l=>l.body)).photos.photo,s=a.reduce((l,u)=>l.concat(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/${Vc.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(_=>_.body),d=m.sizes.size.find(_=>parseInt(_.width,10)>=1600);if(d||(d=m.sizes.size.find(_=>parseInt(_.width,10)>=1e3)),d||(d=m.sizes.size.find(_=>parseInt(_.width,10)>=500)),!d||!d.source)throw new Error("Flickr Source Error, try another image.");let g=await Dr.get(d.source,{responseType:"arraybuffer"}).then(_=>_.data),R=(await Be.photos.licenses.getInfo().then(_=>_.body.licenses.license)).find(_=>_.id===parseInt(i.photo.license,10)),A={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:R?`${R.name}: ${R.url}`:""},T=await e.image.create(A);await e.image_content.destroy({where:{id:T.id}});let P=qc.map(_=>({id:T.id,locale:_,meta:i.photo.title._content}));await e.image_content.bulkCreate(P),await e.search.update({image_id:T.id},{where:{content_id:r}}),await Ce(e,T.id,g);}let p=await e.search.findOne({where:{content_id:r},include:Se});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 ee(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new E(400,`Invalid numeric parameter: ${e}`);return t}function G(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:Le}=K();function oa(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [O("GET","read/members",async a=>{let s=Gc(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new E(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new E(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),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)},[q.EDITOR]),O("GET","member/image",a=>{let s=G(a.query.size)[0];return n({member:ee(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function Gc(e){let t=G(e.locale)[0]||Le||"en",r=t==="all"||Ir(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=G(e.variant).map(ee);if(i.length===0&&(i=G(e["variant[]"]).map(ee)),o==="ids")return {all:r,mode:o,variant:i,output:a,locale:r?Le:j(t),ids:G(e.ids||e["ids[]"])};if(o==="content_ids")return {all:r,mode:o,variant:i,output:a,locale:r?Le:j(t),content_ids:G(e.content_ids||e["content_ids[]"]).map(ee)};if(o==="slugs")return {all:r,mode:o,variant:i,output:a,locale:r?Le:j(t),slugs:G(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:G(e.current_ids||e["current_ids[]"]).map(ee),include_ids:G(e.include_ids||e["include_ids[]"]).map(ee),report_ids:G(e.report_ids||e["report_ids[]"]).map(ee),dimension_ids:G(e.dimension_ids||e["dimension_ids[]"]).map(ee),variant_ids:G(e.variant_ids||e["variant_ids[]"]).map(ee),output:a};if(o==="whole")return {all:r,mode:o,variant:i,locale:r?Le:j(t),output:a};throw new E(400,`Invalid mode: '${o}'`)}function Yt(e){let t=G(e.locale)[0]||Le||"en",r=t==="all",o=G(e.format)[0],n=o?o==="nested":r,a=G(e.variant).map(ee);a.length===0&&(a=G(e["variant[]"]).map(ee));let s=G(e.dimension).map(ee);s.length===0&&(s=G(e["dimension[]"]).map(ee));let i=G(e.report).map(ee);i.length===0&&(i=G(e["report[]"]).map(ee));let c=e.origin==="typesense"?"typesense":"flexsearch";return {query:G(e.query||e.q)[0]||"",locale:r?Le:t,preferredLocale:G(e.preferredLocale)[0],limit:G(e.limit).map(ee)[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:G(e.sort)[0],direction:G(e.direction)[0],offset:Number(e.offset||0),origin:c}}async function na(e,t){let r=Pt(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:Se}).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:Hc}=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(h=>h.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 g=Hc.map(h=>({id:d.id,locale:h,meta:a.description||a.alt_description}));await e.image_content.bulkCreate(g),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:Se});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:Jc}=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 Wc.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=Jc.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:Se});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:Yc}=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(h=>h.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 g=Yc.map(h=>({id:d.id,locale:h,meta:a.title||a.description}));await e.image_content.bulkCreate(g),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:Se});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 Qc={local:aa,flickr:ra,unsplash:ia,upload:ca,adobe:pa};function xt(e,t){let r=Qc[t];if(!r)throw new E(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return x(o=>r(e,o))}var Zc={local:na,flickr:ta,unsplash:sa,adobe:ua};function Xt(e,t){let r=Zc[t];if(!r)throw new E(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return x(o=>r(e,o))}var al=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=>({...al(s.toJSON()),mode:s.dimensions.length===1?xe.UNILATERAL:xe.MULTILATERAL}))}}}function da(e){return async()=>(await Xe(e,!0),{error:!1})}var{locales:sl,localeDefault:il}=K(),cl=(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},ll=(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=Pt(e),r=Br(e);return o;async function o(n){let a=n.format||"results",s=sl.includes(n.locale)?n.locale:il,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=ll(u,m);return {meta:{...l.meta,origin:"flexsearch",format:a},results:cl(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 E(r.response?.status||500,r.message)}}}function ya(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new E(t.response?.status||500,t.message)}}}function tt(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 pl(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")||pl(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(tt(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var fl=Object.keys(ho).filter(e=>e.indexOf("Icon")===0);async function ha(){return {meta:{provider:"tabler"},results:fl}}async function Ra(e){let t=ho[e.name]?ho[e.name]:()=>"";return renderToString(createElement(t))}var yl={tabler:ha};function ba(e){let t=yl[e];if(!t)throw new E(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return x(()=>t())}var gl={tabler:Ra};function Sa(e){return x(t=>{let r=gl[e];if(!r)throw new E(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 rt(e,t,r){return Qe().then(o=>{Object.assign(r,It(o));})}function It(e,t){let r={},o=Ve(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:kr(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 hl.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=ie(e,"create",t),o=ie(e,"read",t),n=ie(e,"update",t),a=ie(e,"delete",t),s=ie(e,"updateBulk",t),i=ie(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)},[q.EDITOR]),O("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[q.EDITOR]),O("GET",`read/${t}`,c=>{let l=c.query,u=G(l.id).map(ee);return o({id:u,include:Ir(l.include)})}),O("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[q.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)},[q.EDITOR]),O("DELETE",`delete/${t}`,c=>{let l=ee(c.query.id);return a(l)},[q.EDITOR])]}function Aa(e){let{validateVariantSlug:t}=e;return [...Oe(e,"variant"),O("GET","validate/variant",r=>{let o=r.query,n=ee(o.dimension);return t({dimension:n,slug:Tr(o.slug)})},[q.EDITOR])]}function Ta(e){return Oe(e,"datasource").map(r=>({...r,roleRequired:[q.EDITOR]}))}function Ct(e,t){let r=`image${be(t)}Save`,o=e[r];return O("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new E(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new E(400,"Missing 'image_id' parameter.");return o(a)},[q.EDITOR])}function er(e,t){let r=`image${be(t)}Search`,o=e[r];return O("GET",`images/search/${t}`,async n=>{let a=G(n.query.prompt)[0];if(!a)throw new E(400,"Empty 'prompt' param.");return o({prompt:a,page:ee(n.query.page)})},[q.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),[q.EDITOR])}function ka(e){let{searchReport:t}=e;return O("GET","search/reports",r=>{let o=bl(r.query);return t(o)})}function bl(e){return {...Yt(e),format:G(e.format)[0]}}function Pa(e){let{urlProxy:t}=e;return O("GET","url/proxy",(r,o,n)=>{let{url:a,method:s="GET"}=r.query;if(!a)throw new E(400,"Missing URL parameter");let i=[];return n&&n.user&&n.user.bespoke_roles&&(i=n.user.bespoke_roles),t({url:Array.isArray(a)?a.join(","):a,method:G(s)[0]==="POST"?"POST":"GET",user_roles:i})})}function wa(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 E(400,"Missing URL parameter in revalidate factory: reportId or profilePrefix");try{let i=parseInt(`${a}`,10),c=`${s}`.split("/").filter(g=>g!=="").join("/"),l=[],u=await t({}).then(g=>g.ok?g.data.data.find(h=>h.id===i):[]);u&&u.mode===xe.UNILATERAL&&u.dimensions.forEach(g=>{g.variants.forEach(h=>{l.push({prefix:c,variantId:h.id,variantSlug:h.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(g=>{let h;try{h=n.revalidate(g,{unstable_onlyGenerated:!0});}catch(R){console.error("error",g,R);}return h}))),{ok:!0,status:200,data:{reportId:a,revalidated:d,samples:m}}}catch(i){throw console.error(i),new E(500,"Error revalidating")}},[q.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 E(500,"Error revalidating")}else throw new E(400,"Missing target parameter in revalidate factory")},[q.ADMIN,q.EDITOR,q.WRITER])}var{localeDefault:Sl}=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||Sl,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({}),[q.EDITOR])}function Ba(e){let{searchRole:t}=e;return O("GET","auth/search/roles",(r,o)=>t(""),[q.EDITOR,q.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}),[q.ADMIN])}function Oa(e){let{readUser:t}=e;return O("GET","auth/read/user",r=>t(r.query.user_id),[q.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},[q.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,data:{ok:!0,message:"User & session updated"}}}catch(l){return {ok:!1,status:500,error:l.message}}},[])}async function El(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 E(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:!0,status:200,data:await El()}}})}function Ua(e,t){let r=`list${be(t)}Icons`,o=e[r];return O("GET",`list/icons/${t}`,async()=>o({}),[q.EDITOR])}function Fa(e,t){let r=`read${be(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 E(400,"Missing report parameter.");if(!o)throw new E(400,"Missing report parameter.");if(!n)throw new E(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new Al().parseFromString(s,"text/html").getElementById("__NEXT_DATA__")?.textContent,u=JSON.parse(l).props;return {ok:!0,status:200,data:{variables:u.pageProps.initialState.variables,status:u.pageProps.initialState.status}}}catch(a){throw console.error(a),new E(500,"Couldn't find page cache")}})}var _l=we();function bo(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function kl(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),ka(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"),Pa(r),Ba(r),La(r),Oa(r),Ma(r),Da(r),wa(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 Pl(e){let t=Qe().then(r=>kl(r,e));return async function(o,n){await Tl(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 Re(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 E(p.status,p.error);if(p.ok)if(p.data instanceof Buffer){let m=await vl(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({data:p.data});}).catch(p=>{_l&&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 wl=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},xl=wl;var mt={};Us(mt,{addBlockToState:()=>lr,addRunConsumersRunning:()=>_s,cloneEntity:()=>Rs,createEntity:()=>ys,deleteEntity:()=>hs,deleteQueryParam:()=>qu,readEntity:()=>X,readEnvSecrets:()=>tp,readMember:()=>Ue,readMetadata:()=>Ku,readPrivateBlocks:()=>Zu,readUser:()=>Ju,recalculateVariables:()=>ws,removeBlocksFromState:()=>Fe,removeDataSourceLogic:()=>ur,removeRunConsumersRunning:()=>ks,reportSearch:()=>Vu,resetSectionState:()=>vs,revalidateReport:()=>ep,revalidateUrl:()=>Xu,searchMember:()=>zu,searchRegenerate:()=>$u,searchRole:()=>Hu,searchUser:()=>Wu,setCurrentLocale:()=>Nu,setPreferredLocale:()=>Uu,setPreviews:()=>Du,setQueryParam:()=>Gu,setSectionState:()=>Ts,setStatus:()=>As,updateEntity:()=>gs,updateMyData:()=>Qu,updateUser:()=>Yu,urlProxy:()=>ju,variantValidateSlug:()=>Fu});function ye(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:!1,status:o,error:n.error}:{ok:!0,status:o,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:!1,status:o,error:n?.error??r.message}}return {ok:!1,status:500,error:r.message}})}function te(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ye(e,{...o,method:"GET",params:r?r(n):n})}function ne(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ye(e,{...o,method:"POST",data:r?r(n):n})}function Me(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ye(e,{...o,method:"DELETE",params:r?r(n):n})}function Bt(e,t){return r=>ye(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function tr(e,t){return r=>ye(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function $a(e,t){return ()=>ye(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function za(e,t){return r=>ye(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var ot=e=>({id:e}),Cl=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:ne(t,"create/bulk/block"),createBlock:ne(t,"create/block"),createDimension:ne(t,"create/dimension"),createFormatter:ne(t,"create/formatter"),createReport:ne(t,"create/report"),createSection:ne(t,"create/section"),createVariant:ne(t,"create/variant"),createDatasource:ne(t,"create/datasource"),deleteBlock:Me(t,"delete/block",ot),deleteDimension:Me(t,"delete/dimension",ot),deleteFormatter:Me(t,"delete/formatter",ot),deleteReport:Me(t,"delete/report",ot),deleteSection:Me(t,"delete/section",ot),deleteVariant:Me(t,"delete/variant",ot),deleteDatasource:Me(t,"delete/datasource",ot),readBlock:te(t,"read/block"),readDimension:te(t,"read/dimension"),readFormatter:te(t,"read/formatter"),readReport:te(t,"read/report"),readSection:te(t,"read/section"),readVariant:te(t,"read/variant"),readDatasource:te(t,"read/datasource"),updateBulkBlock:ne(t,"update/bulk/block"),updateBlock:ne(t,"update/block"),updateDimension:ne(t,"update/dimension"),updateFormatter:ne(t,"update/formatter"),updateReport:ne(t,"update/report"),updateSection:ne(t,"update/section"),updateVariant:ne(t,"update/variant"),updateDatasource:ne(t,"update/datasource"),searchReport:te(t,"search/reports"),validateVariantSlug:te(t,"validate/variant"),readMember:te(t,"read/members",Cl),readMemberImage:te(t,{url:"member/image",responseType:"blob"}),searchMember:te(t,"search/members"),updateMember:te(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:te(t,"read/metadata"),regenerateSearch:ne(t,"search/regenerate"),urlProxy:te(t,"url/proxy"),searchRole:te(t,"auth/search/roles"),searchUser:te(t,"auth/search/users"),readUser:te(t,"auth/read/user"),updateUser:ne(t,"auth/update/user"),updateMyData:ne(t,"auth/update/me"),revalidateReport:te(t,"revalidate/report"),revalidateUrl:te(t,"revalidate/url"),readPrivateBlocks:ne(t,"read/blocks/private"),listTablerIcons:$a(t,"tabler"),readTablerIcon:za(t,"tabler"),readEnvSecrets:te(t,"read/secrets")}}var Ol=Ir(process.env.REPORTS_LOGGING),nt=Ml;function Ml(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=de(a);try{if(t){let l=new Proxy(console,{get(p,m){return Dl(m,"log","debug","info","warn","error")?(...d)=>{i.push(`${m} ${Date.now()} - ${d.map(g=>format(g)).join(" ")}`),Ol&&p[m](...d);}:p[m]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Ke,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,Ke,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 Dl(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]=fe(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"?fe(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 Nl=(e,t,r)=>{if(!r)return !1;if(e===He.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=Nl;function Ao(e,t,r,o,n=!1){let{variables:a}=de(o),s=Lr({logic:t},r,o).logic,i=nt("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||He.SINGLE,m=c.component||"Selector",d=c.hideLabel||"false",g=c.resetSectionVars||"false",h=c.name||"Unlabeled Selector",R=qa(c.options||[]),A=N=>p===He.MULTI&&!Array.isArray(N)?[N]:N,T=c.defaultValue,P;if(T&&(T=A(T),Eo(p,T,R)&&(P=T)),!P){let N=R&&R[0]&&R[0].id||R[0]||"";P=A(N);}if(n&&typeof window<"u"){let N=`selector${e}id`,C=new URLSearchParams(window.location.search),M=Object.fromEntries(C)[N];M&&!Eo(p,M,R)&&M!==void 0&&(C.delete(N),window.history.replaceState(null,null,`?${C.toString()}`));}return {config:{name:h,type:p,options:R,defaultValue:P,component:m,hideLabel:d,resetSectionVars:g},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}=de(o),s=Lr({logic:t},r,o).logic,i=nt("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`,g=new URLSearchParams(window.location.search),h=Object.fromEntries(g),R=h[m],A=h[d];R&&R!==void 0&&A&&A!==void 0&&!To(c.data,A,R)&&(g.delete(m),g.delete(d),window.history.replaceState(null,null,`?${g.toString()}`));}return {config:c,log:l,error:u}}var Ul=(e,t,r)=>{let o=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),a=new URLSearchParams(t).get(o),s=n||a;if(r.type===He.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=Ul;var Fl=(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(g=>p.includes(`${g[`${m} ID`]}`))||[];return {[`multihierarchySelector${e}id`]:p,[`multihierarchySelector${e}label`]:[...new Set((d||[]).map(g=>g[m]))],[`multihierarchySelector${e}type`]:m}},Ka=Fl;var{localeDefault:ja,locales:Vl}=K(),$l=Object.values(ao),zl=(e,t=ja)=>e&&$l.includes(e.type)?{locale:so,locales:[so]}:{locale:t,locales:Vl},Ha=(e,t=ja)=>{if(!e)return {};let{locale:r}=zl(e,t);return e.contentByLocale?.[r]?.content};function ql(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=ql;function _o(e){return e.type===D.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var at=Ir(process.env.NEXT_PUBLIC_REPORTS_DEBUG),Hl=process.env.REPORTS_ORIGIN||"";Ja(Dr,{retries:5,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 Wl=(e,t,r)=>{let o=fe(e,t,r);return o.startsWith("http")||(o=`${Hl}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:Jl}=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 Yl(e,t,r="en",o,n){let a=Date.now(),s=e,i,c=ce(),l=vt(),u={envs:{...c,...l}},m=new URL(e).searchParams;if(m.has("bespoke_slugs")){let T=new RegExp(`[?&]bespoke_slugs=${m.get("bespoke_slugs")}`,"g");s=s.replace(T,"");}let d={datasource:void 0};o.find(T=>{if(!T.content?.pattern)return !1;try{let P=new RegExp(T.content.pattern,"gm");return P.test(s)?(d.datasource=T,!0):P.test(s)}catch{return !1}});let g=n?n.settings:{},h=!!(g&&g.useProxy&&g.useProxy==="true"),R=d.datasource&&typeof d.datasource.content.useProxy=="boolean"?d.datasource.content.useProxy:!1,A=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(s)}`;if(typeof window=="object"&&(h||R)){let T=await Jl({url:s,timeout:Ya});if(T.ok===!0)i=T.data;else throw new Or(T?.error)}else try{let P={url:s,timeout:Ya};if(d.datasource){let C=await _r({vars:["url","libs"],logic:d.datasource.content.logic},u)(s);if(C.axiosConfig)P=C.axiosConfig;else throw new Or(`AxiosConfig is missing in Data Source ${d.datasource.name} (ID: ${d.datasource.id}).`)}let _=await Dr(P);if(_.status===200)_.headers["content-type"]==="text/csv"?i=csvParse(_.data):i=_.data;else throw new Or("No response for: "+s)}catch(T){throw new Or(T.message)}if(m.has("bespoke_slugs")){let T=m.get("bespoke_slugs");if(T){let P=T.split(",");if(P.length===3){let[_,N,C]=P,B=Vt(i,C);if(B&&Array.isArray(B)){let M=Array.from(new Set(B.map(U=>`${U[N]}`).filter(U=>!["","undefined"].includes(U))));if(M.length>0){let U=M.join("").length>2e3,F=await t({mode:U?"whole":"ids",ids:U?void 0:M,all:!1,locale:r,variant:[parseInt(_,10)],output:"lite",limit:M.length+1}).then(v=>{let S=[];return Mr(v)?v.ok&&(S=v.data.results):S=v.results,S&&Array.isArray(S)?S:[]}).catch(v=>(console.error(`Error hydrating slugs for Variant: ${_}, Key: ${N}, Accessor: ${C}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(v),[]));if(F){let v=Object.fromEntries(F.map(S=>[S.id,`/${S.variant_slug}/${S.slug}`]));B.map(S=>(S.bespoke_slug=v[S[N]]?v[S[N]]:null,S));}}}}}}return {data:i,requestDuration:Date.now()-a,finalUrl:R||h?A:s,apiDataSource:d.datasource?d.datasource:!1}}function Ql(e){this.name="BlockException",this.message=e;}async function Qa(e,t,r,o,n){let{locale:a,variables:s,query:i}=de(r),c=Xl(e,r,s,t),l=null,u=e.contentByLocale?.logic?.content?.api,p=null,m=null,d=null,g=null,h=null;if(!c)return {outputVariables:{},renderVariables:{},status:{allowed:!1,hiddenByCascade:e.id}};if(e.type===D.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(u){d=Wl(u,t,r);let B=d.split(Zn).filter(F=>F!==""),M=[];for(let F=0;F<B.length;F++){let v=B[F];new RegExp("^(?:[a-z+]+:)?//","i").test(d)||(v=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${v}`.replace(/([^:]\/)\/+/g,"$1")),M.push(Yl(v,o,a,n,e).catch(I=>{throw new Ql(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${s.report_name} (${s.report_id}) failed.
|
|
70
|
+
`)}return global.typesense};async function Ac(){try{if(kt){let e=await Dr.get(new URL(kt).origin);if(e?.data["typesense-health"]===!0)return Ie&&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 Tc(){if(Ie&&console.info(`\u{1F3F3}\uFE0F INITIALIZING TYPESENSE SEARCH AGAINST ${kt}`),!await Ac())throw new Error("TYPESENSE_URL service is not healthy.");let t=Sc.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:",kt,a),Dr.get(kt,{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=Ec;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:A,includes:T,sort:w,direction:_="ASC",offset:N=0}=n,B=Ht.find(S=>S.locales.includes(c))?.charset||"latin",M=u&&!isNaN(u)?u:20,U=Ze(i,B!=="arabic");function F(S){return S.toJSON()}function v(S){let I=S.getContent(c);return {...S.toJSON(),locale:I.locale,name:I.name,attributes:I.attributes,keywords:I.keywords}}if(s){let S=await Nn(),I=S[c]||S[yo],z={query:U===""?"*":U,limit:M,variant:d,report:f,offset:N};return await I.search(z)}else {let S=[],I=await Xe(e);if(i&&i!==""&&I[c]){let J=Ze(i,B!=="arabic"),Y={query:J,limit:M},L=await I[c].search(Y);if(s?S=L.data.results.map(Z=>parseInt(Z.content_id,10)):S=L.reduce((Z,H)=>Z.concat(H.result),[]),S=mr(S),l&&I[l]){let H=I[l].search(J).reduce((he,we)=>he.concat(we.result),[]);H=mr(H),S=mr([...S,...H]);}}let z={...m?{visible:m}:{},...A?{image_id:{[Op.eq]:null}}:{},...d.length?{variant_id:d}:{},...h.length?{dimension_id:h}:{},...f.length?{report_id:f}:{}},P={locale:R?{[Op.ne]:null}:c},W=i&&i!==""&&S.length?[[literal(`array_position(array[${S.join(",")}], "content_id")`),"ASC"]]:[["zvalue","DESC NULLS LAST"]];w&&w!=="name"&&W.unshift([w,_.toUpperCase()]),i&&i!==""&&(z.content_id=S);let $=[{association:"contentByLocale",where:P}];T&&$.push({association:"report",attributes:["id","name"]},{association:"dimension",attributes:["id","name"]},{association:"variant",attributes:["id","slug","name"]});let b={...z.visible?{visible:z.visible}:{},...z.noImage?{image_id:z.noImage}:{},...z.content_id?{content_id:z.content_id}:{}};if(!z.report_id&&!z.dimension_id&&!z.variant_id&&m){let Y=(await r.findAll({attributes:["id"],where:{[Op.or]:[where(cast(json("settings.hide"),"boolean"),!0)]}})).map(L=>L.id);Y.length>0&&(z.report_id={[Op.notIn]:Y},b.report_id=z.report_id);}let k=[],[V,re]=await Promise.all([t.findAll({limit:M,offset:N,where:z,include:$,order:W}),t.findAll({attributes:["variant_id",[fn("COUNT",col("variant_id")),"members_count"]],where:b,group:["variant_id"]})]),ae=re.map(J=>J.toJSON());if(w==="name"){let J=_.toUpperCase()==="ASC"?1:-1;V.sort((Y,L)=>{let Z=Y.getContent(yo),H=L.getContent(yo);return Z&&H?Z.name>H.name?1*J:-1*J:0});}let me=p==="nested"?F:v;return k=V.map(me),p!=="nested"&&k.forEach(J=>{let{name:Y,keywords:L,score:Z=.1,zvalue:H}=J;if(Y){let he=Ze(Y),we=Z,pr=i.length/he.length,Wo=he.split("").reduce((Zr,Jo,Yo)=>(i.slice(0,Yo),i.charAt(Yo)===Jo&&(Zr+=Jo),Zr),"").length;he===i||L&&L.includes(i)?we=1e6:he.startsWith(i)?we*=20*pr:Wo&&(we*=Wo*pr),J.zvalue=we*2+H;}}),{meta:{origin:"flexsearch",...Object.fromEntries(Object.entries(n).map(J=>[J[0],j(J[1])])),variantCount:ae.reduce((J,Y)=>(J[Y.variant_id]=parseInt(Y.members_count,10),J),{})},results:k}}}}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 et={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,...et}]},xr=e=>({include:[{association:"dimensions",separate:!0,...Wt(e)},{association:"sections",separate:!0,...Jt}]});var Se=[{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:et.include})).toJSON()}async function a(u){let p=u.map(d=>{let{locales:h,...f}=d;return {...f,consumers:[],inputs:[],contentByLocale:h.map(A=>({locale:A}))}});return (await t.bulkCreate(p,{include:et.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?et.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 E(404,`Block(id=[${f}]) does not exist.`)}async function i(u){let{id:p,contentByLocale:m,consumers:d,inputs:h,inputAction:f,...R}=u,A=await t.findByPk(p,{include:et.include,rejectOnEmpty:!0});if(A.set(R),m){let T=Object.values(m);await r.bulkCreate(T,{updateOnDuplicate:["content"]});}return f&&(f.operation==="create"?await o.create(f.input):await o.destroy({where:f.input})),await A.save(),await A.reload(),A.toJSON()}async function c(u){let p=u.map(h=>{let{id:f,contentByLocale:R,consumers:A,inputs:T,inputAction:w,..._}=h;return {id:f,contentByLocale:R,inputAction:w,..._}}),m=await t.findAll({where:{id:{[Op.or]:p.map(h=>h.id)}},include:et.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 A=f[R],{id:T,contentByLocale:w,inputAction:_,...N}=A;if(_&&(_.operation==="create"?await o.create(_.input):await o.destroy({where:_.input})),w){let C=Object.values(w);await r.bulkCreate(C,{updateOnDuplicate:["content"]});}h.set(N),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 E(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 E(404,`Dimension(id=${c}) does not exist.`);return p.set(u),await p.save(),p.toJSON()}async function s(i){let c=await t.findByPk(i,{rejectOnEmpty:!1});return await c.destroy(),{id:i,parentType:"report",parentId:c.report_id}}}function 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 E(404,`Formatter(id=[${u}]) does not exist.`)}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}function 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 E(404,`Datasource(id=[${m}]) does not exist.`)}catch(c){throw new E(500,c)}}async function n(s){let{id:i,...c}=s,l=await t.findByPk(i,{rejectOnEmpty:!0});return await l.update(c),l.toJSON()}async function a(s){return await(await t.findByPk(s,{rejectOnEmpty:!0})).destroy(),{id:s}}}var{locales:Lc}=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=Lc}={}){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(A=>({...A,blocks:A.blocks.map(T=>({...T,contentByLocale:Object.keys(T.contentByLocale).reduce((w,_)=>({...w,...[...l,"logic"].includes(_)?{[_]:T.contentByLocale[_]}:{}}),{})}))}))}});let d=m.map(f=>f.id),h=p.filter(f=>!d.includes(f));throw new E(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 E(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 E(404,`Section(id=${p}) does not exist.`)}async function n(s){let{id:i,blocks:c,...l}=s,u=await t.findByPk(i,{include: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 E(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 Xe(e,!0)),await m.reload(),m.toJSON()}async function i(l){let u=await r.findByPk(l,{rejectOnEmpty:!0});return await u.destroy(),Xe(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 A=R.getDataValue("slugCount");return [R.slug,Number.parseInt(`${A}`,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)},Dc=Number(process.env.NEXT_PUBLIC_IMAGE_SPLASH_WIDTH)||1400,Nc=Number(process.env.NEXT_PUBLIC_IMAGE_THUMB_WIDTH)||400,Uc=async(e,t,r)=>{let o=[{type:"splash",res:Dc},{type:"thumb",res:Nc}];for(let n of o){let a=await Mc(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=Uc;var Zn="|||";var Xn="SECTION_ALLOWED";var ea=["4","5","7","8","9","10"],zc=ea.join(),{locales:qc}=K(),Be;if(process.env.FLICKR_API_KEY)try{Be=new $c(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:zc,sort:"relevance",per_page:24,page:r.page,content_types:"0",orientation:"landscape"}).then(l=>l.body)).photos.photo,s=a.reduce((l,u)=>l.concat(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/${Vc.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(_=>_.body),d=m.sizes.size.find(_=>parseInt(_.width,10)>=1600);if(d||(d=m.sizes.size.find(_=>parseInt(_.width,10)>=1e3)),d||(d=m.sizes.size.find(_=>parseInt(_.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(_=>_.data),R=(await Be.photos.licenses.getInfo().then(_=>_.body.licenses.license)).find(_=>_.id===parseInt(i.photo.license,10)),A={url:s,author:i.photo.owner.realname||i.photo.owner.username,license:R?`${R.name}: ${R.url}`:""},T=await e.image.create(A);await e.image_content.destroy({where:{id:T.id}});let w=qc.map(_=>({id:T.id,locale:_,meta:i.photo.title._content}));await e.image_content.bulkCreate(w),await e.search.update({image_id:T.id},{where:{content_id:r}}),await Ce(e,T.id,h);}let p=await e.search.findOne({where:{content_id:r},include:Se});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 ee(e){let t=Number.parseInt(`${e||""}`,10);if(Number.isNaN(t)||!Number.isFinite(t))throw new E(400,`Invalid numeric parameter: ${e}`);return t}function G(e){return e==null||e===""?[]:Array.isArray(e)?e:e.toString().split(",")}var{localeDefault:Le}=K();function oa(e){let{readMember:t,searchMember:r,updateMember:o,readMemberImage:n}=e;return [O("GET","read/members",async a=>{let s=Gc(a.query),i=s[s.mode]||[],c=s.mode==="whole";if(!c&&i.length===0)throw new E(400,`The request is missing the '${s.mode}' parameter.`);if(!c&&i.length>20&&!s.variant)throw new E(400,`You can look for up to 20 '${s.mode}' in a single request.`);return t(s)}),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)},[q.EDITOR]),O("GET","member/image",a=>{let s=G(a.query.size)[0];return n({member:ee(a.query.member),size:s&&s==="splash"?"splash":"thumb"})})]}function Gc(e){let t=G(e.locale)[0]||Le||"en",r=t==="all"||Ir(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=G(e.variant).map(ee);if(i.length===0&&(i=G(e["variant[]"]).map(ee)),o==="ids")return {all:r,mode:o,variant:i,output:a,locale:r?Le:j(t),ids:G(e.ids||e["ids[]"])};if(o==="content_ids")return {all:r,mode:o,variant:i,output:a,locale:r?Le:j(t),content_ids:G(e.content_ids||e["content_ids[]"]).map(ee)};if(o==="slugs")return {all:r,mode:o,variant:i,output:a,locale:r?Le:j(t),slugs:G(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:G(e.current_ids||e["current_ids[]"]).map(ee),include_ids:G(e.include_ids||e["include_ids[]"]).map(ee),report_ids:G(e.report_ids||e["report_ids[]"]).map(ee),dimension_ids:G(e.dimension_ids||e["dimension_ids[]"]).map(ee),variant_ids:G(e.variant_ids||e["variant_ids[]"]).map(ee),output:a};if(o==="whole")return {all:r,mode:o,variant:i,locale:r?Le:j(t),output:a};throw new E(400,`Invalid mode: '${o}'`)}function Yt(e){let t=G(e.locale)[0]||Le||"en",r=t==="all",o=G(e.format)[0],n=o?o==="nested":r,a=G(e.variant).map(ee);a.length===0&&(a=G(e["variant[]"]).map(ee));let s=G(e.dimension).map(ee);s.length===0&&(s=G(e["dimension[]"]).map(ee));let i=G(e.report).map(ee);i.length===0&&(i=G(e["report[]"]).map(ee));let c=e.origin==="typesense"?"typesense":"flexsearch";return {query:G(e.query||e.q)[0]||"",locale:r?Le:t,preferredLocale:G(e.preferredLocale)[0],limit:G(e.limit).map(ee)[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:G(e.sort)[0],direction:G(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:Se}).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:Hc}=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=Hc.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:Se});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:Jc}=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 Wc.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=Jc.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:Se});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:Yc}=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=Yc.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:Se});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 Qc={local:aa,flickr:ra,unsplash:ia,upload:ca,adobe:pa};function xt(e,t){let r=Qc[t];if(!r)throw new E(500,`Wrong provider dbImageSaveFactory.ts: ${t}`);return x(o=>r(e,o))}var Zc={local:na,flickr:ta,unsplash:sa,adobe:ua};function Xt(e,t){let r=Zc[t];if(!r)throw new E(500,`Wrong provider dbImageSearchFactory.ts: ${t}`);return x(o=>r(e,o))}var al=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=>({...al(s.toJSON()),mode:s.dimensions.length===1?xe.UNILATERAL:xe.MULTILATERAL}))}}}function da(e){return async()=>(await Xe(e,!0),{error:!1})}var{locales:sl,localeDefault:il}=K(),cl=(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},ll=(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=sl.includes(n.locale)?n.locale:il,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=ll(u,m);return {meta:{...l.meta,origin:"flexsearch",format:a},results:cl(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 E(r.response?.status||500,r.message)}}}function ya(){return async e=>{try{let{target:t}=e;return {target:t}}catch(t){throw new E(t.response?.status||500,t.message)}}}function tt(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 pl(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")||pl(o.roles,s.settings.access))).map(s=>s.id);return a=a.concat(tt(a,n)),{params:{...o},data:n.filter(s=>a.includes(s.id))}}}var fl=Object.keys(ho).filter(e=>e.indexOf("Icon")===0);async function ha(){return {meta:{provider:"tabler"},results:fl}}async function Ra(e){let t=ho[e.name]?ho[e.name]:()=>"";return renderToString(createElement(t))}var yl={tabler:ha};function ba(e){let t=yl[e];if(!t)throw new E(500,`Wrong provider dbListIconsFactory.ts: ${e}`);return x(()=>t())}var gl={tabler:Ra};function Sa(e){return x(t=>{let r=gl[e];if(!r)throw new E(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 rt(e,t,r){return Qe().then(o=>{Object.assign(r,It(o));})}function It(e,t){let r={},o=Ve(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:kr(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 hl.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=ie(e,"create",t),o=ie(e,"read",t),n=ie(e,"update",t),a=ie(e,"delete",t),s=ie(e,"updateBulk",t),i=ie(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)},[q.EDITOR]),O("POST",`create/${t}`,c=>{let{body:l}=c;return r(l)},[q.EDITOR]),O("GET",`read/${t}`,c=>{let l=c.query,u=G(l.id).map(ee);return o({id:u,include:Ir(l.include)})}),O("POST",`update/${t}`,c=>{let{body:l}=c;return n(l)},[q.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)},[q.EDITOR]),O("DELETE",`delete/${t}`,c=>{let l=ee(c.query.id);return a(l)},[q.EDITOR])]}function Aa(e){let{validateVariantSlug:t}=e;return [...Oe(e,"variant"),O("GET","validate/variant",r=>{let o=r.query,n=ee(o.dimension);return t({dimension:n,slug:Tr(o.slug)})},[q.EDITOR])]}function Ta(e){return Oe(e,"datasource").map(r=>({...r,roleRequired:[q.EDITOR]}))}function Ct(e,t){let r=`image${be(t)}Save`,o=e[r];return O("POST",`images/save/${t}`,n=>{let a=n.body;if(!a.content_id)throw new E(400,"Missing 'content_id' parameter.");if(!a.image_id)throw new E(400,"Missing 'image_id' parameter.");return o(a)},[q.EDITOR])}function er(e,t){let r=`image${be(t)}Search`,o=e[r];return O("GET",`images/search/${t}`,async n=>{let a=G(n.query.prompt)[0];if(!a)throw new E(400,"Empty 'prompt' param.");return o({prompt:a,page:ee(n.query.page)})},[q.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),[q.EDITOR])}function ka(e){let{searchReport:t}=e;return O("GET","search/reports",r=>{let o=bl(r.query);return t(o)})}function bl(e){return {...Yt(e),format:G(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 E(400,"Missing URL parameter");let c=[];return n&&n.user&&n.user.bespoke_roles&&(c=n.user.bespoke_roles),t({url:Array.isArray(a)?a.join(","):a,method:G(s)[0]==="POST"?"POST":"GET",user_roles:c,wrapper:i!=="false"})})}function Pa(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 E(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 E(500,"Error revalidating")}},[q.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 E(500,"Error revalidating")}else throw new E(400,"Missing target parameter in revalidate factory")},[q.ADMIN,q.EDITOR,q.WRITER])}var{localeDefault:Sl}=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||Sl,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({}),[q.EDITOR])}function Ba(e){let{searchRole:t}=e;return O("GET","auth/search/roles",(r,o)=>t(""),[q.EDITOR,q.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}),[q.ADMIN])}function Oa(e){let{readUser:t}=e;return O("GET","auth/read/user",r=>t(r.query.user_id),[q.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},[q.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 El(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 E(400,"Missing path parameter in request.");{new URL(o,e.headers.origin);return {ok:!0,status:200,data:await El()}}})}function Ua(e,t){let r=`list${be(t)}Icons`,o=e[r];return O("GET",`list/icons/${t}`,async()=>o({}),[q.EDITOR])}function Fa(e,t){let r=`read${be(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 E(400,"Missing report parameter.");if(!o)throw new E(400,"Missing report parameter.");if(!n)throw new E(400,"Missing report parameter.");try{let s=await(await fetch(`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${n}${o}${r}`)).text(),l=new Al().parseFromString(s,"text/html").getElementById("__NEXT_DATA__")?.textContent,u=JSON.parse(l).props;return {ok:!0,status:200,data:{variables:u.pageProps.initialState.variables,status:u.pageProps.initialState.status}}}catch(a){throw console.error(a),new E(500,"Couldn't find page cache")}})}var _l=Pe();function bo(e,t){return `${e.toUpperCase()} ${t.toLowerCase()}`}function kl(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),ka(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),Pa(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 wl(e){let t=Qe().then(r=>kl(r,e));return async function(o,n){await Tl(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 Re(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 E(p.status,p.error);if(p.ok)if(p.data instanceof Buffer){let m=await vl(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=>{_l&&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 Pl=e=>{let t=e;return async function(r,o){let n=await t({test:"pala"});return o.json(n)}},xl=Pl;var mt={};Us(mt,{addBlockToState:()=>lr,addRunConsumersRunning:()=>_s,cloneEntity:()=>Rs,createEntity:()=>ys,deleteEntity:()=>hs,deleteQueryParam:()=>qu,readEntity:()=>X,readEnvSecrets:()=>tp,readMember:()=>Ue,readMetadata:()=>Ku,readPrivateBlocks:()=>Zu,readUser:()=>Ju,recalculateVariables:()=>Ps,removeBlocksFromState:()=>Fe,removeDataSourceLogic:()=>ur,removeRunConsumersRunning:()=>ks,reportSearch:()=>Vu,resetSectionState:()=>vs,revalidateReport:()=>ep,revalidateUrl:()=>Xu,searchMember:()=>zu,searchRegenerate:()=>$u,searchRole:()=>Hu,searchUser:()=>Wu,setCurrentLocale:()=>Nu,setPreferredLocale:()=>Uu,setPreviews:()=>Du,setQueryParam:()=>Gu,setSectionState:()=>Ts,setStatus:()=>As,updateEntity:()=>gs,updateMyData:()=>Qu,updateUser:()=>Yu,urlProxy:()=>ju,variantValidateSlug:()=>Fu});function ye(e,t){return e.request(t).then(r=>{let{status:o,data:n}=r;return "error"in n?{ok:!1,status:o,error:n.error}:{ok:!0,status:o,wrapper:n.wrapper,data:n.data}},r=>{if("isAxiosError"in r){let{status:o,data:n}=r.response||{status:500};return {ok:!1,status:o,error:n?.error??r.message}}return {ok:!1,status:500,error:r.message}})}function te(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ye(e,{...o,method:"GET",params:r?r(n):n})}function ne(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ye(e,{...o,method:"POST",data:r?r(n):n})}function Me(e,t,r){let o=typeof t=="string"?{url:t}:t;return n=>ye(e,{...o,method:"DELETE",params:r?r(n):n})}function Bt(e,t){return r=>ye(e,{method:"POST",url:`images/save/${t}`,params:{prompt:r.prompt,provider:t}})}function tr(e,t){return r=>ye(e,{method:"GET",url:`images/search/${t}`,params:{prompt:r.prompt,page:r.page,provider:t}})}function $a(e,t){return ()=>ye(e,{method:"GET",url:`list/icons/${t}`,params:{provider:t}})}function za(e,t){return r=>ye(e,{method:"GET",url:`read/icons/${t}/icon.svg`,params:{name:r.name}})}var ot=e=>({id:e}),Cl=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:ne(t,"create/bulk/block"),createBlock:ne(t,"create/block"),createDimension:ne(t,"create/dimension"),createFormatter:ne(t,"create/formatter"),createReport:ne(t,"create/report"),createSection:ne(t,"create/section"),createVariant:ne(t,"create/variant"),createDatasource:ne(t,"create/datasource"),deleteBlock:Me(t,"delete/block",ot),deleteDimension:Me(t,"delete/dimension",ot),deleteFormatter:Me(t,"delete/formatter",ot),deleteReport:Me(t,"delete/report",ot),deleteSection:Me(t,"delete/section",ot),deleteVariant:Me(t,"delete/variant",ot),deleteDatasource:Me(t,"delete/datasource",ot),readBlock:te(t,"read/block"),readDimension:te(t,"read/dimension"),readFormatter:te(t,"read/formatter"),readReport:te(t,"read/report"),readSection:te(t,"read/section"),readVariant:te(t,"read/variant"),readDatasource:te(t,"read/datasource"),updateBulkBlock:ne(t,"update/bulk/block"),updateBlock:ne(t,"update/block"),updateDimension:ne(t,"update/dimension"),updateFormatter:ne(t,"update/formatter"),updateReport:ne(t,"update/report"),updateSection:ne(t,"update/section"),updateVariant:ne(t,"update/variant"),updateDatasource:ne(t,"update/datasource"),searchReport:te(t,"search/reports"),validateVariantSlug:te(t,"validate/variant"),readMember:te(t,"read/members",Cl),readMemberImage:te(t,{url:"member/image",responseType:"blob"}),searchMember:te(t,"search/members"),updateMember:te(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:te(t,"read/metadata"),regenerateSearch:ne(t,"search/regenerate"),urlProxy:te(t,"url/proxy"),searchRole:te(t,"auth/search/roles"),searchUser:te(t,"auth/search/users"),readUser:te(t,"auth/read/user"),updateUser:ne(t,"auth/update/user"),updateMyData:ne(t,"auth/update/me"),revalidateReport:te(t,"revalidate/report"),revalidateUrl:te(t,"revalidate/url"),readPrivateBlocks:ne(t,"read/blocks/private"),listTablerIcons:$a(t,"tabler"),readTablerIcon:za(t,"tabler"),readEnvSecrets:te(t,"read/secrets")}}var Ol=Ir(process.env.REPORTS_LOGGING),nt=Ml;function Ml(e,t,r,o,n=void 0,a){let s={},i=[],{locale:c}=de(a);try{if(t){let l=new Proxy(console,{get(p,m){return Dl(m,"log","debug","info","warn","error")?(...d)=>{i.push(`${m} ${Date.now()} - ${d.map(h=>format(h)).join(" ")}`),Ol&&p[m](...d);}:p[m]}}),u;return n?u=new Function(e,"console","libs","formatters","locale","variables",r)(t,l,Ke,o,c,n):u=new Function(e,"console","libs","formatters","locale",r)(t,l,Ke,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 Dl(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]=fe(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"?fe(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 Nl=(e,t,r)=>{if(!r)return !1;if(e===He.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=Nl;function Ao(e,t,r,o,n=!1){let{variables:a}=de(o),s=Lr({logic:t},r,o).logic,i=nt("variables",a,s,r,void 0,o),{vars:c,log:l,error:u}=i,p=c.type||He.SINGLE,m=c.component||"Selector",d=c.hideLabel||"false",h=c.resetSectionVars||"false",f=c.name||"Unlabeled Selector",R=qa(c.options||[]),A=N=>p===He.MULTI&&!Array.isArray(N)?[N]:N,T=c.defaultValue,w;if(T&&(T=A(T),Eo(p,T,R)&&(w=T)),!w){let N=R&&R[0]&&R[0].id||R[0]||"";w=A(N);}if(n&&typeof window<"u"){let N=`selector${e}id`,C=new URLSearchParams(window.location.search),M=Object.fromEntries(C)[N];M&&!Eo(p,M,R)&&M!==void 0&&(C.delete(N),window.history.replaceState(null,null,`?${C.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}=de(o),s=Lr({logic:t},r,o).logic,i=nt("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],A=f[d];R&&R!==void 0&&A&&A!==void 0&&!To(c.data,A,R)&&(h.delete(m),h.delete(d),window.history.replaceState(null,null,`?${h.toString()}`));}return {config:c,log:l,error:u}}var Ul=(e,t,r)=>{let o=`selector${e}id`,n=new URLSearchParams(typeof location<"u"&&location?.search?location.search:"").get(o),a=new URLSearchParams(t).get(o),s=n||a;if(r.type===He.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=Ul;var Fl=(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=Fl;var{localeDefault:ja,locales:Vl}=K(),$l=Object.values(ao),zl=(e,t=ja)=>e&&$l.includes(e.type)?{locale:so,locales:[so]}:{locale:t,locales:Vl},Ha=(e,t=ja)=>{if(!e)return {};let{locale:r}=zl(e,t);return e.contentByLocale?.[r]?.content};function ql(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=ql;function _o(e){return e.type===D.SECTION_FLAG&&e.inputs.length===0&&e.consumers.length===0}var at=Ir(process.env.NEXT_PUBLIC_REPORTS_DEBUG),Hl=process.env.REPORTS_ORIGIN||"";Ja(Dr,{retries:5,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 Wl=(e,t,r)=>{let o=fe(e,t,r);return o.startsWith("http")||(o=`${Hl}${o.startsWith("/")?"":"/"}${o}`),o},{urlProxy:Jl}=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 Yl(e,t,r="en",o,n){let a=Date.now(),s=e,i,c=ce(),l=vt(),u={envs:{...c,...l}},m=new URL(e).searchParams;if(m.has("bespoke_slugs")){let T=new RegExp(`[?&]bespoke_slugs=${m.get("bespoke_slugs")}`,"g");s=s.replace(T,"");}let d={datasource:void 0};o.find(T=>{if(!T.content?.pattern)return !1;try{let w=new RegExp(T.content.pattern,"gm");return w.test(s)?(d.datasource=T,!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,A=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/api/cms/url/proxy?url=${encodeURIComponent(s)}`;if(typeof window=="object"&&(f||R)){let T=await Jl({url:s,timeout:Ya});if(T.ok===!0)i=T.data;else throw new Or(T?.error)}else try{let w={url:s,timeout:Ya};if(d.datasource){let C=await _r({vars:["url","libs"],logic:d.datasource.content.logic},u)(s);if(C.axiosConfig)w=C.axiosConfig;else throw new Or(`AxiosConfig is missing in Data Source ${d.datasource.name} (ID: ${d.datasource.id}).`)}let _=await Dr(w);if(_.status===200)_.headers["content-type"]==="text/csv"?i=csvParse(_.data):i=_.data;else throw new Or("No response for: "+s)}catch(T){throw new Or(T.message)}if(m.has("bespoke_slugs")){let T=m.get("bespoke_slugs");if(T){let w=T.split(",");if(w.length===3){let[_,N,C]=w,B=Vt(i,C);if(B&&Array.isArray(B)){let M=Array.from(new Set(B.map(U=>`${U[N]}`).filter(U=>!["","undefined"].includes(U))));if(M.length>0){let U=M.join("").length>2e3,F=await t({mode:U?"whole":"ids",ids:U?void 0:M,all:!1,locale:r,variant:[parseInt(_,10)],output:"lite",limit:M.length+1}).then(v=>{let S=[];return Mr(v)?v.ok&&(S=v.data.results):S=v.results,S&&Array.isArray(S)?S:[]}).catch(v=>(console.error(`Error hydrating slugs for Variant: ${_}, Key: ${N}, Accessor: ${C}`),console.error(` Url ${e}`),n&&console.error(` From Section ${n.section_id} and Block ${n.id}`),console.error(v),[]));if(F){let v=Object.fromEntries(F.map(S=>[S.id,`/${S.variant_slug}/${S.slug}`]));B.map(S=>(S.bespoke_slug=v[S[N]]?v[S[N]]:null,S));}}}}}}return {data:i,requestDuration:Date.now()-a,finalUrl:R||f?A:s,apiDataSource:d.datasource?d.datasource:!1}}function Ql(e){this.name="BlockException",this.message=e;}async function Qa(e,t,r,o,n){let{locale:a,variables:s,query:i}=de(r),c=Xl(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===D.FALLBACK)return {outputVariables:{},renderVariables:{},status:{allowed:c,hiddenByCascade:e.id}};if(u){d=Wl(u,t,r);let B=d.split(Zn).filter(F=>F!==""),M=[];for(let F=0;F<B.length;F++){let v=B[F];new RegExp("^(?:[a-z+]+:)?//","i").test(d)||(v=`${process.env.NEXT_PUBLIC_REPORTS_BASE_URL}/${v}`.replace(/([^:]\/)\/+/g,"$1")),M.push(Yl(v,o,a,n,e).catch(I=>{throw new Ql(` Excecution of ${e.type}-${e.id} in section ${e.section_id} in report ${s.report_name} (${s.report_id}) failed.
|
|
71
71
|
Error fetching ${v}.
|
|
72
72
|
Message: ${I.message}.
|
|
73
|
-
`)}));}let U=await Promise.all(M).catch(F=>F.message);if(typeof U=="string"&&U)return {outputVariables:{},renderVariables:{},status:{error:U}};l=U.length===1?U[0].data:U.map(F=>F.data),m=U.reduce((F,v)=>F+JSON.stringify(v.data).length/1024,0),p=Math.max(...U.map(F=>F.requestDuration)),g=U.map(F=>F.apiDataSource?`${F.apiDataSource.name} (${F.apiDataSource.id})`:!1),h=U.map(F=>F.finalUrl);}if(e.type===D.SELECTOR){let{config:B,log:M,error:U}=Ao(e.id,e.contentByLocale[a].content.logic,t,r,!0);return {outputVariables:Ga(e.id,i,B),renderVariables:B,status:{log:M,error:U,allowed:c}}}if(e.type===D.MULTIHIERARCHY_SELECTOR){let{config:B,log:M,error:U}=vo(e.id,e.contentByLocale[a].content.logic,t,r,!0);return {outputVariables:Ka(e.id,i,B),renderVariables:B,status:{log:M,error:U,allowed:c}}}if(e.type===D.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:c}};if(e.type===D.RELATED){let B=e.contentByLocale?.logic?.content?.simple?.compare||"variant",M=e.contentByLocale?.logic?.content?.simple?.limit||4,U=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]),v=Object.keys(s).filter(b=>b.startsWith("variant_id")).map(b=>s[b]),S=Object.keys(s).filter(b=>b.startsWith("id")).map(b=>s[b]);if(!S.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let I=await Promise.all(S.map((b,k)=>o({mode:"ids",locale:a,ids:[b],output:"lite",variant:[v[k]]}))).then(b=>b.flatMap(k=>{let V=[];return Mr(k)?k.ok&&(V=k.data.results):V=k.results,V&&Array.isArray(V)?V:[]})).catch(b=>(console.error("Error getting related members",b),[]));if(F.length>1){let b=Object.keys(s).filter(L=>L.startsWith("variant_slug")).map(L=>s[L]),k=I.map((L,Z)=>{let H={mode:"related",locale:a,related:M??4,current_ids:[L.content_id],output:"full",variant_ids:[L.variant_id]};return Z===0&&(H.include_ids=[L.content_id]),H}),V=await Promise.all(k.map(L=>o(L))).then(L=>L.flatMap(Z=>{let H=[];return Mr(Z)?Z.ok&&(H=Z.data.results):H=Z.results,H&&Array.isArray(H)?H:[]})).catch(L=>(console.error("Error getting related members",L),[])),re=V.reduce((L,Z)=>{let H=Z.variant_slug;return L[H]||(L[H]=[]),L[H].push(Z),L},{}),ae=[],me=Object.keys(re),J=[{combination:[],index:0}];for(;J.length>0;){let L=J.pop();if(!L)continue;let{combination:Z,index:H}=L;if(H===me.length){ae.push(Z);continue}let he=me[H],Pe=re[he];for(let pr of Pe)J.push({combination:[...Z,pr],index:H+1});}return {outputVariables:{related_reports:ae.map(L=>{let Z=L.sort((H,he)=>b.indexOf(H.variant_slug)-b.indexOf(he.variant_slug));return {entities:Z,link:"/"+Z.map(H=>`${H.variant_slug}/${H.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:V.length>0}}}let z=I.map(b=>b.content_id),w={mode:"related",locale:a,related:M??4,current_ids:z,output:"full"};B&&(B==="report"?w.report_ids=U:B==="dimension"?w.dimension_ids=F:w.variant_ids=v);let W=await o(w).then(b=>{let k=[];return Mr(b)?b.ok&&(k=b.data.results):k=b.results,k&&Array.isArray(k)?k:[]}).catch(b=>(console.error("Error getting related members",b),[]));return {outputVariables:{related_reports:W.map(b=>({entities:[b],link:`/${b.variant_slug}/${b.slug}`}))},renderVariables:{},status:{log:[],allowed:W.length>0}}}let{logic:R}=Ha(e,a),A=fe(R,t,r),T=nt("resp",l||{},A,t,s,r),{vars:P,error:_,log:N}=T;if(typeof P!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:N,duration:p,responseSize:m,resp:l,api:d,allowed:c,apiFinalUrls:h,apiDataSources:g}};let C=Object.keys(P).reduce((B,M)=>({...B,[`${e.type}${e.id}${M}`]:P[M]}),{});return {renderVariables:P,outputVariables:[D.GENERATOR,D.SECTION_FLAG].includes(e.type)?P:C,status:{log:N,error:_,duration:p,responseSize:m,resp:l,api:d,allowed:c,apiFinalUrls:h,apiDataSources:g}}}function Zl(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=>ko(l,t,o,!1,a,n,s));}})}var ko=(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=>ko(u,t,r,o,!1,a,s));}),i&&i.consumers.length&&n&&Zl(i,t,e,r,a,n,s),r},Xl=(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=de(t),{error:s,output:i}=nt("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=de(n),p=u.variables,m={...a.variables??{}},d={...a.status??{}},g=new Set,h=[],R={};r?R={...R,[r]:e[r]}:t?R=(t??[]).reduce((S,{id:I})=>({...S,...Wa(I,e)}),{}):R=Object.values(e).filter(S=>_o(S)).reduce((S,I)=>({...S,[I.id]:I}),{});let A=Object.values(R).filter(S=>_o(S));if(A.length>0){at&&console.info("%crunConsumers: calculating section flags","color:purple",A.map(w=>w.id).join(", "));let S=Object.fromEntries(await Promise.all(A.map(async w=>[w.id,await Qa(w,o,{...u,variables:p,locale:p.locale},s,c).then(W=>{let{outputVariables:$,status:b}=W;if(b.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${w.id}, Section ${w.section_id}) failed with message: ${b.error}. `);d[w.id]={allowed:!1,error:b.error},m[w.id]={};}return (w.consumers.length>0||[D.GENERATOR,D.SECTION_FLAG,D.RELATED].includes(w.type))&&b.allowed&&Object.keys($).length>0?m[w.id]=$:m[w.id]={},i==="report"?(d[w.id]={allowed:b.allowed},[D.GENERATOR,D.SECTION_FLAG].includes(w.type)&&b.api&&(d[w.id].api=b.api)):d[w.id]=b,W})]))),z=Object.entries(S).filter(([,w])=>!w.outputVariables[Xn]).map(([w])=>Number(w));g=new Set(z.map(w=>e[w].section_id)),Object.values(R).filter(w=>g.has(w.section_id)).forEach(w=>{h.push(w.id),delete R[w.id];}),at&&console.info("%crunConsumers: removing sections","color:purple",g.keys());}let T=g.size>0?Object.fromEntries(Object.entries(e).filter(([,S])=>g?.has(S.section_id)?(h.includes(S.id)||h.push(S.id),!1):!0)):e;if(h.length>0&&(T=Object.fromEntries(Object.entries(T).map(([S,I])=>{let z={...I,inputs:I.inputs.filter(w=>!h.includes(w)),consumers:I.consumers.filter(w=>!h.includes(w))};return [S,z]}))),!r&&!t)return {variables:{...a.variables??{},...m},status:{...a.status??{},...d}};i==="report"&&h.length>0&&h.forEach(S=>{delete m[S],delete d[S],delete e[S];}),at&&console.info("%crunConsumers: running root blocks","color:purple",Object.keys(R));let P=Object.keys(R).reduce((S,I)=>{let z=new Date,w=ko(Number(I),T,[],!r,!0,l).map(b=>b.split("-")),$=(new Date().getTime()-z.getTime())/1e3;return at&&console.info(`%cResolved dependencies for ${I} (${$.toFixed(2)}s)`,"color:blue"),[...S,...w]},[]),_=new Date,N=Object.keys(R).reduce((S,I)=>S.includes(I)?[...S]:[I,...S],Gl(P)),B=(new Date().getTime()-_.getTime())/1e3;at&&console.info(`%cResolved DAG (${B.toFixed(2)}s): `,"color:green",N);async function M(S,I){let z=new Map;for(let w of S){let W=I[w],b=Promise.all(W.inputs.filter(k=>S.includes(String(k))).map(k=>z.get(Number(k)))).then(async()=>{let k=W.inputs.reduce((Y,L)=>({...Y,...m[L]}),p),V=W.inputs.find(Y=>(W.settings?.ignoreCascade?W.settings?.ignoreCascade:[]).includes(Y)||!d[Y]?!1:!d[Y].allowed||d[Y].hiddenByCascade);if(V){d[w]={allowed:!1,hiddenByCascade:d[V].hiddenByCascade||V},m[w]={};return}let re=new Date,ae=await Qa(W,o,{...u,variables:k,locale:k.locale},s,c).then(({outputVariables:Y,status:L})=>{if(L.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${w}, Section ${W.section_id}) failed with message: ${L.error}. `);d[w]={allowed:!1,error:L.error},m[w]={};}(W.consumers.length>0||[D.GENERATOR,D.SECTION_FLAG,D.RELATED].includes(W.type))&&L.allowed&&Object.keys(Y).length>0?m[w]=Y:m[w]={},i==="report"?(d[w]={allowed:L.allowed},[D.GENERATOR,D.SECTION_FLAG].includes(W.type)&&L.api&&(d[w].api=L.api)):d[w]=L;}),J=(new Date().getTime()-re.getTime())/1e3;return at&&console.info(`%cBlock ${W.id} resolved in ${J.toFixed(3)}s`,J>500?"color:red":"color:green"),ae});z.set(Number(w),b);}await Promise.all(Array.from(z.values()));}let U=new Date;await M(N,T);let v=(new Date().getTime()-U.getTime())/1e3;return at&&console.info(`%cResolved Variables (${v.toFixed(2)}s): `,"color:green"),{variables:{...a.variables??{},...m},status:{...a.status??{},...d}}};function eu(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=eu;function tu(e,t){return +(e<t)-+(e>t)}function Nr(e,t,r="ordering"){return tu(t[r],e[r])}var{localeDefault:ou}=K();var or=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});or.define({consumers:[or],inputs:[or]});var Za=new schema.Entity("variant"),Xa=new schema.Entity("dimension",{variants:[Za]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),es=new schema.Entity("section",{blocks:[or]}),nu=new schema.Entity("report",{dimensions:[Xa],sections:[es]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Nr):[]}}}),au=new schema.Entity("formatter"),su=new schema.Entity("datasource"),iu={report:nu,section:es,block:or,dimension:Xa,variant:Za,formatter:au,datasource:su};function Ur(e,t){let r=iu[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 ts=(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=ou)=>e.reduce((r,o)=>{let n=In({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var le=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",Fr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[le];Fr.includes(le)||Fr.push(le);var uu={localeDefault:le,locales:Fr,currentLocale:le,preferredLocale:le,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:uu,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})}}),_e=Vr.actions;var mu={attributes:{},variables:{},status:{}},$r=createSlice({name:"variables",initialState:mu,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 gu={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}}},ke=createSlice({name:"records",initialState:gu,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`;hu(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 hu(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function se(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=_u[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[ue]}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[ls]||!!(!((t=e.constructor)===null||t===void 0)&&t[ls])||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[ue];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 Ru(e,t){return Ut(e)===2?e.get(t):e[t]}function us(e,t,r){var o=Ut(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function bu(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function Do(e){return Tu&&e instanceof Map}function No(e){return vu&&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=Pu(e);delete t[ue];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=Su),Object.freeze(e),t&&ir(e,function(r,o){return Fo(o,!0)},!0)),e}function Su(){se(2);}function Vo(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function Ee(e){var t=wu[e];return t||se(18,e),t}function rs(){return process.env.NODE_ENV==="production"||Nt||se(0),Nt}function Po(e,t){t&&(Ee("Patches"),e.u=[],e.s=[],e.v=t);}function qr(e){Bo(e),e.p.forEach(Eu),e.p=null;}function Bo(e){e===Nt&&(Nt=e.l);}function os(e){return Nt={p:[],l:Nt,h:e,m:!0,_:0}}function Eu(e){var t=e[ue];t.i===0||t.i===1?t.j():t.g=!0;}function wo(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||Ee("ES5").S(t,e,o),o?(r[ue].P&&(qr(t),se(4)),lt(e)&&(e=Gr(t,e),t.l||Kr(t,e)),t.u&&Ee("Patches").M(r[ue].t,e,t.u,t.s)):e=Gr(t,r,[]),qr(t),t.u&&t.v(t.u,t.s),e!==ps?e:void 0}function Gr(e,t,r){if(Vo(t))return t;var o=t[ue];if(!o)return ir(t,function(i,c){return ns(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 ns(e,o,n,i,c,r,s)}),Kr(e,n,!1),r&&e.u&&Ee("Patches").N(o,r,e.u,e.s);}return o.o}function ns(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&se(5),Dt(n)){var i=Gr(e,n,a&&t&&t.i!==3&&!Co(t.R,o)?a.concat(o):void 0);if(us(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[ue];return (r?ct(r):e)[t]}function as(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)?Ee("MapSet").F(t,r):No(t)?Ee("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:rs(),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):Ee("ES5").J(t,r);return (r?r.A:rs()).p.push(o),o}function Au(e){return Dt(e)||se(22,e),function t(r){if(!lt(r))return r;var o,n=r[ue],a=Ut(r);if(n){if(!n.P&&(n.i<4||!Ee("ES5").K(n)))return n.t;n.I=!0,o=ss(r,a),n.I=!1;}else o=ss(r,a);return ir(o,function(s,i){n&&Ru(n.t,s)===i||us(o,s,t(i));}),a===3?new Set(o):o}(e)}function ss(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return Uo(e)}var is,Nt,$o=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Tu=typeof Map<"u",vu=typeof Set<"u",cs=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",ps=$o?Symbol.for("immer-nothing"):((is={})["immer-nothing"]=!0,is),ls=$o?Symbol.for("immer-draftable"):"__$immer_draftable",ue=$o?Symbol.for("immer-state"):"__$immer_state";var _u={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,Pu=Object.getOwnPropertyDescriptors||function(e){var t={};return zo(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},wu={},Mo={get:function(e,t){if(t===ue)return e;var r=ct(e);if(!Co(r,t))return function(n,a,s){var i,c=as(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=as(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?.[ue];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(bu(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(){se(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){se(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))&&se(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))&&se(14),Mo.set.call(this,e[0],t,r,e[0])};var xu=function(){function e(r){var o=this;this.O=cs,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 A=arguments.length,T=Array(A>1?A-1:0),P=1;P<A;P++)T[P-1]=arguments[P];return c.produce(h,function(_){var N;return (N=a).call.apply(N,[R,_].concat(T))})}}var l;if(typeof a!="function"&&se(6),s!==void 0&&typeof s!="function"&&se(7),lt(n)){var u=os(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(h){return Po(u,s),wo(h,u)},function(h){throw qr(u),h}):(Po(u,s),wo(l,u))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===ps&&(l=void 0),o.D&&Fo(l,!0),s){var d=[],g=[];Ee("Patches").M(n,l,d,g),s(d,g);}return l}se(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)||se(8),Dt(r)&&(r=Au(r));var o=os(this),n=Oo(this,r,void 0);return n[ue].C=!0,Bo(o),n},t.finishDraft=function(r,o){var n=r&&r[ue];process.env.NODE_ENV!=="production"&&(n&&n.C||se(9),n.I&&se(10));var a=n.A;return Po(a,o),wo(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!cs&&se(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=Ee("Patches").$;return Dt(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),pe=new xu,Iu=pe.produce;pe.produceWithPatches.bind(pe);pe.setAutoFreeze.bind(pe);pe.setUseProxies.bind(pe);pe.applyPatches.bind(pe);pe.createDraft.bind(pe);pe.finishDraft.bind(pe);var jr=Iu;var ge=ke.actions,ys=cr({block:De("block"),dimension:De("dimension"),formatter:De("formatter"),report:De("report"),section:De("section"),variant:De("variant"),datasource:De("datasource")}),X=cr({block:Ne("block"),dimension:Ne("dimension"),formatter:Ne("formatter"),report:Ne("report"),section:Ne("section"),variant:Ne("variant"),datasource:Ne("datasource")}),gs=cr({block:Ae("block"),dimension:Ae("dimension"),formatter:Ae("formatter"),report:Ae("report"),section:Ae("section"),variant:Ae("variant"),datasource:Ae("datasource")}),hs=cr({block:ut("block"),dimension:ut("dimension"),formatter:ut("formatter"),report:ut("report"),section:ut("section"),variant:ut("variant"),datasource:ut("datasource")}),Rs=cr({block:ms("block"),section:ms("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(ge.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(ge.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function De(e){return t=>{let r=Go(e,t);return (o,n,a)=>(o(dt(e,r)),ie(a,"create",e)(t).then(i=>(i.ok===!0?o(ge.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(pt(e,r,i.status,i.error)),i)))}}function Lu(e){return t=>{let r=Go(e,t[0]);return (o,n,a)=>(o(dt(e,r)),ie(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(ge.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(pt(e,r,i.status,i.error)),i)))}}function ds(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Ou(e){return e.section_id!==void 0}function Mu(e){return e.report_id!==void 0}function ms(e){return t=>{let{create:r}=t;return (o,n,a)=>De(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:u}=t,p=Es(e,{id:l});if(o(dt(e,`${p}`)),e==="block"&&Ou(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((A,T)=>{let P=d?d[T]:{};return A[T]={...P,id:l},A},{});}));let h=m.inputs?.map(R=>({type:R.type,id:R.id,inputAction:{operation:"create",input:{input_id:R.id,block_id:m.id}}}));return h&&h.length>0&&fs(e)([m,...h])(o,n,a).then(()=>Ne("section")({id:m.section_id,include:!0})(o,n,a).then(R=>(R.ok&&o(ge.setRequest({key:p,type:e,status:"SUCCESS",data:R.data})),R))),Ae(e)(m)(o,n,a).then(R=>(R.ok&&o(ge.setRequest({key:p,type:e,status:"SUCCESS",data:R.data})),R))}if(e==="section"&&Mu(r)){let{id:m}=c,d=jr(u,R=>{R.id=m;}),{blocks:g}=d,h=g?.map(R=>({type:R.type,blockcol:R.blockcol,blockrow:R.blockrow,section_id:m,locales:Object.keys(R.contentByLocale).map(A=>A)}));return h&&g&&await Lu("block")(h)(o,n,a).then(R=>{if(R.ok){let A=R.data,T=[],P=A.map((_,N)=>{let B={..._},M=B.id,U=g[N];U.contentByLocale&&(B.contentByLocale=Object.keys(U.contentByLocale).reduce(($,b)=>{let k=U.contentByLocale[b];return $[b]={...k,content:{...k.content},id:B.id},$},{}));let{settings:F}=U,{contentByLocale:v,id:S}=B;B.settings=F;let I={id:S,contentByLocale:v,settings:F};return U.inputs.map($=>$.id).reduce(($,b)=>{let k=g.findIndex(V=>V.id===b);return [...$,k]},[]).map($=>({...A[$],originalBlock:g[$]})).forEach($=>{let{id:b,type:k,originalBlock:V}=$;if([D.SELECTOR,D.VIZ].includes(k)){if(I.contentByLocale?.logic?.content?.api){let re=I.contentByLocale?.logic.content.api;I.contentByLocale.logic.content.api=ds(`(selector${V.id}id)`,`selector${b}id`,re);}if(I.contentByLocale?.logic?.content?.logic){let re=I.contentByLocale.logic.content.logic;I.contentByLocale.logic.content.logic=ds(`(selector${V.id}id)`,`selector${b}id`,re);}}T.push({id:b,inputAction:{operation:"create",input:{input_id:b,block_id:M}}});}),I});return fs("block")([...P,...T])(o,n,a)}}),Ae(e)(d)(o,n,a).then(R=>(R.ok&&o(ge.setRequest({key:p,type:e,status:"SUCCESS",data:R.data})),R))}return Ae(e)({...u,id:c.id})(o,n,a)}})}}function Ne(e){return t=>{let r=bs(e,t);return (o,n,a)=>{o(dt(e,r));let s=ie(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(ge.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(pt(e,r,i.status,i.error)),i))}}}function Ae(e){return t=>{let r=Ko(e,t);return (o,n,a)=>(o(dt(e,r)),ie(a,"update",e)(t).then(i=>(i.ok===!0?o(ge.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(pt(e,r,i.status,i.error)),i)))}}function fs(e){return t=>{let r=Ko(e,t[0]);return (o,n,a)=>(o(dt(e,r)),ie(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(ge.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=Ss(e,t);return (o,n,a)=>(o(dt(e,r)),ie(a,"delete",e)(t).then(i=>{i.ok===!0?o(ge.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 bs(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 Ss(e,t){return `delete(${e}, ${t})`}function Es(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:As,setPreviews:Du,setSectionState:Ts,resetSectionState:vs,setCurrentLocale:Nu,setPreferredLocale:Uu,addRunConsumersRunning:_s,removeRunConsumersRunning:ks}=_e;function Fu(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 Vu(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 $u(){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 Ue(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 zu(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 Ps(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(As(i)),n.activeSection&&t(ws(e,{query:s}));}function qu(e,t){return async(r,o)=>Ps(e,r,o,{query:{[t]:void 0}})}function Gu(e,t,r){return async(o,n)=>Ps(e,o,n,{query:{[t]:r}})}function ws(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}=ts(n.status,t),{sid:p,bid:m,previews:d,query:g}=l;Object.keys(u).length&&r(_e.setStatus(u));let h={...Ot(d),locale:a,...ce()},R={variables:h,query:g,locale:a};r(_e.addRunConsumersRunning([p]));let A=n.records.entities.section[p],T=async P=>r(Ue(P));try{let P=await Lt(s,A&&[A],m,i,R,void 0,T,"section",c),{variables:_,status:N}=P;r(Mt.setVariableChange({attributes:h,variables:_,status:N})),r(_e.removeRunConsumersRunning([p]));}catch(P){console.error("Error in runConsumers client side: recalculateVariables",P);}}}function Ku(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 ju(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 Hu(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function Wu(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 Ju(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 Yu({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 Qu(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 Fe(e){let{removeBlocks:t}=ke.actions;return async r=>{await r(t(e));}}function lr(e){let{addBlocks:t}=ke.actions;return async r=>{await r(t(e));}}function Zu(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 Xu(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 ep(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 tp(){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}=ke.actions;return async t=>{await t(e());}}var xs=()=>configureStore({reducer:{[ke.name]:ke.reducer,[Vr.name]:Vr.reducer,[$r.name]:$r.reducer},middleware(e){return e({thunk:{extraArgument:rr("/api/cms/")}})}}),ft=createWrapper(xs);function sp(e){let t=process.cwd(),r=ap.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(Wc.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 ip(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 Re(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(A=>u.has(A)))return {redirect:{destination:"/",permanent:!1}};let m=c.query[r],[d]=Array.isArray(m)?m:[m];await i(rt);let g=await sp("@datawheel/bespoke"),h=await o(s,c);if("redirect"in h)return {props:h};d==="reports"&&(Is(c.query[r])?await Promise.all([i(X("formatter",{})),i(X("datasource",{include:!0})),i(X("report",{id:Is(c.query[r]),include:!0})),_e.setStatus({isCMS:!0})]):await Promise.all([i(X("report",{include:"dimensions"})),_e.setStatus({isCMS:!0})])),d==="metadata"&&await i(X("report",{include:"dimensions"})),d==="formatters"&&await i(X("formatter",{})),d==="datasources"&&await i(X("datasource",{include:!0}));let R=await n(s,c);return {props:{...h,...R,bespokeVersion:g,session:l}}}})}function Is(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:lp}=K(),up={pathSegment:"path",formatterFunctions:lp.reduce((e,t)=>({...e,[t]:{}}),{}),datasourceFunctions:[],profilePrefix:"path",siteProps:{}};createContext(up);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=ce();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:fe(t.content.pattern,{},{variables:r})}}})}function Pp(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=le,locales:a=[]}=o,s=[];if(r>0){let i=a.find(u=>u===n),{searchMember:c}=await Qe().then(It),l=await c({query:"",limit:r,format:"plain",locale:i||le,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 wp(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return ft.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(rt);let a=new Date().toISOString(),{locale:s=le,params:i={}}=n,c=Array.from(Ho(i[t]));if(c.length===0)return await Promise.all([o(X("formatter",{})),o(X("datasource",{include:!0})),o(X("report",{include:!1}))]),{props:{buildTime:a}};let l=await o(Ue({mode:"slugs",locale:s,slugs:c,output:"full"}));o(mt.setPreviews(l.results)),await Promise.all([o(X("formatter",{})),o(X("datasource",{include:!0})),o(X("report",{id:l.results.map(C=>C.report_id),include:!0,locales:[s]}))]);let u=r.getState(),p=Yr(u),m=Qr(u),d=nr(p,s),g=Jr(u),h=Wr(u),R={...h},A={},T=Object.values(h).reduce((C,B)=>("access"in B.settings&&!["public","guest"].some(M=>!B.settings.access||B.settings.access.includes(M))&&C.push(B.id),C),[]);T=T.concat(tt(T,Object.values(R)));let P=T.filter(C=>R[C].settings[Rr.FALLBACK]);T.forEach(C=>{P.includes(C)&&(A[C]={...R[C],type:D.FALLBACK,original_type:R[C].type}),delete R[C];}),await o(Fe(T)),await o(lr(A));let _={...Ot(l.results),locale:s,...ce()},N=async C=>await o(Ue(C));return await Lt({...R,...A},g,void 0,d,{locale:s,query:i,variables:_},void 0,N,"report",m).then(async C=>{let B=Object.keys({...R,...A}).reduce((M,U)=>(C.variables[U]&&C.status[U]||M.push(U),M),[]);await o(Fe(B)),await o(Mt.setVariableChange({...C,attributes:_})),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 xp(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(([v])=>v.match(/selector\d+id/)));if(!a&&!s)return {notFound:!0};let c=Number(a);await o(rt);let l=new Date().toISOString(),{locale:u=le,params:p={}}=n,m=Array.from(Ho(p[t]));if(m.length===0)return {notFound:!0};let d=await o(Ue({mode:"slugs",locale:u,slugs:m,output:"full"}));o(mt.setPreviews(d.results)),await Promise.all([o(X("formatter",{})),o(X("datasource",{include:!1})),o(X("report",{id:d.results.map(v=>v.report_id),include:!0,locales:[u]}))]);let g=r.getState(),h=Yr(g),R=Qr(g),A=nr(h,u),T=Jr(g).filter(v=>v.id===c),P=Wr(g),_={...P},N={},C=Object.values(P).reduce((v,S)=>("access"in S.settings&&!["public","guest"].some(I=>!S.settings.access||S.settings.access.includes(I))&&v.push(S.id),v),[]);C=C.concat(tt(C,Object.values(_)));let B=C.filter(v=>_[v].settings[Rr.FALLBACK]);C.forEach(v=>{B.includes(v)&&(N[v]={..._[v],type:"fallback",original_type:_[v].type}),delete _[v];}),await o(Fe(C)),await o(lr(N));let M={...Ot(d.results),locale:u,...ce()},U=async v=>await o(Ue(v));await Lt({..._,...N},T,void 0,A,{locale:u,query:{...p,...i},variables:M},void 0,U,"section",R).then(async v=>{let S=Object.keys({..._,...N}).reduce((I,z)=>(v.variables[z]&&v.status[z]||I.push(z),I),[]);await Promise.all([o(Fe(S)),o(Mt.setVariableChange({...v,attributes:M})),o(ur())]);});let F=Object.keys({..._,...N}).filter(v=>a&&s?v!==s:_[v].section_id!==c);return await o(Fe(F)),{props:{buildTime:l}}}})}catch(r){return console.error("ERROR SSR",r),async()=>({notFound:!0})}}
|
|
73
|
+
`)}));}let U=await Promise.all(M).catch(F=>F.message);if(typeof U=="string"&&U)return {outputVariables:{},renderVariables:{},status:{error:U}};l=U.length===1?U[0].data:U.map(F=>F.data),m=U.reduce((F,v)=>F+JSON.stringify(v.data).length/1024,0),p=Math.max(...U.map(F=>F.requestDuration)),h=U.map(F=>F.apiDataSource?`${F.apiDataSource.name} (${F.apiDataSource.id})`:!1),f=U.map(F=>F.finalUrl);}if(e.type===D.SELECTOR){let{config:B,log:M,error:U}=Ao(e.id,e.contentByLocale[a].content.logic,t,r,!0);return {outputVariables:Ga(e.id,i,B),renderVariables:B,status:{log:M,error:U,allowed:c}}}if(e.type===D.MULTIHIERARCHY_SELECTOR){let{config:B,log:M,error:U}=vo(e.id,e.contentByLocale[a].content.logic,t,r,!0);return {outputVariables:Ka(e.id,i,B),renderVariables:B,status:{log:M,error:U,allowed:c}}}if(e.type===D.VIZ)return {outputVariables:{},renderVariables:e.contentByLocale.logic.content,status:{log:[],allowed:c}};if(e.type===D.RELATED){let B=e.contentByLocale?.logic?.content?.simple?.compare||"variant",M=e.contentByLocale?.logic?.content?.simple?.limit||4,U=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]),v=Object.keys(s).filter(b=>b.startsWith("variant_id")).map(b=>s[b]),S=Object.keys(s).filter(b=>b.startsWith("id")).map(b=>s[b]);if(!S.length)return {outputVariables:{related_reports:[]},renderVariables:{},status:{log:[],allowed:!1}};let I=await Promise.all(S.map((b,k)=>o({mode:"ids",locale:a,ids:[b],output:"lite",variant:[v[k]]}))).then(b=>b.flatMap(k=>{let V=[];return Mr(k)?k.ok&&(V=k.data.results):V=k.results,V&&Array.isArray(V)?V:[]})).catch(b=>(console.error("Error getting related members",b),[]));if(F.length>1){let b=Object.keys(s).filter(L=>L.startsWith("variant_slug")).map(L=>s[L]),k=I.map((L,Z)=>{let H={mode:"related",locale:a,related:M??4,current_ids:[L.content_id],output:"full",variant_ids:[L.variant_id]};return Z===0&&(H.include_ids=[L.content_id]),H}),V=await Promise.all(k.map(L=>o(L))).then(L=>L.flatMap(Z=>{let H=[];return Mr(Z)?Z.ok&&(H=Z.data.results):H=Z.results,H&&Array.isArray(H)?H:[]})).catch(L=>(console.error("Error getting related members",L),[])),re=V.reduce((L,Z)=>{let H=Z.variant_slug;return L[H]||(L[H]=[]),L[H].push(Z),L},{}),ae=[],me=Object.keys(re),J=[{combination:[],index:0}];for(;J.length>0;){let L=J.pop();if(!L)continue;let{combination:Z,index:H}=L;if(H===me.length){ae.push(Z);continue}let he=me[H],we=re[he];for(let pr of we)J.push({combination:[...Z,pr],index:H+1});}return {outputVariables:{related_reports:ae.map(L=>{let Z=L.sort((H,he)=>b.indexOf(H.variant_slug)-b.indexOf(he.variant_slug));return {entities:Z,link:"/"+Z.map(H=>`${H.variant_slug}/${H.slug}`).join("/")}})},renderVariables:{},status:{log:[],allowed:V.length>0}}}let z=I.map(b=>b.content_id),P={mode:"related",locale:a,related:M??4,current_ids:z,output:"full"};B&&(B==="report"?P.report_ids=U:B==="dimension"?P.dimension_ids=F:P.variant_ids=v);let W=await o(P).then(b=>{let k=[];return Mr(b)?b.ok&&(k=b.data.results):k=b.results,k&&Array.isArray(k)?k:[]}).catch(b=>(console.error("Error getting related members",b),[]));return {outputVariables:{related_reports:W.map(b=>({entities:[b],link:`/${b.variant_slug}/${b.slug}`}))},renderVariables:{},status:{log:[],allowed:W.length>0}}}let{logic:R}=Ha(e,a),A=fe(R,t,r),T=nt("resp",l||{},A,t,s,r),{vars:w,error:_,log:N}=T;if(typeof w!="object")return {outputVariables:{},renderVariables:{},status:{error:"Configuration did not return an object",log:N,duration:p,responseSize:m,resp:l,api:d,allowed:c,apiFinalUrls:f,apiDataSources:h}};let C=Object.keys(w).reduce((B,M)=>({...B,[`${e.type}${e.id}${M}`]:w[M]}),{});return {renderVariables:w,outputVariables:[D.GENERATOR,D.SECTION_FLAG].includes(e.type)?w:C,status:{log:N,error:_,duration:p,responseSize:m,resp:l,api:d,allowed:c,apiFinalUrls:f,apiDataSources:h}}}function Zl(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=>ko(l,t,o,!1,a,n,s));}})}var ko=(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=>ko(u,t,r,o,!1,a,s));}),i&&i.consumers.length&&n&&Zl(i,t,e,r,a,n,s),r},Xl=(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=de(t),{error:s,output:i}=nt("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=de(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((S,{id:I})=>({...S,...Wa(I,e)}),{}):R=Object.values(e).filter(S=>_o(S)).reduce((S,I)=>({...S,[I.id]:I}),{});let A=Object.values(R).filter(S=>_o(S));if(A.length>0){at&&console.info("%crunConsumers: calculating section flags","color:purple",A.map(P=>P.id).join(", "));let S=Object.fromEntries(await Promise.all(A.map(async P=>[P.id,await Qa(P,o,{...u,variables:p,locale:p.locale},s,c).then(W=>{let{outputVariables:$,status:b}=W;if(b.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${P.id}, Section ${P.section_id}) failed with message: ${b.error}. `);d[P.id]={allowed:!1,error:b.error},m[P.id]={};}return (P.consumers.length>0||[D.GENERATOR,D.SECTION_FLAG,D.RELATED].includes(P.type))&&b.allowed&&Object.keys($).length>0?m[P.id]=$:m[P.id]={},i==="report"?(d[P.id]={allowed:b.allowed},[D.GENERATOR,D.SECTION_FLAG].includes(P.type)&&b.api&&(d[P.id].api=b.api)):d[P.id]=b,W})]))),z=Object.entries(S).filter(([,P])=>!P.outputVariables[Xn]).map(([P])=>Number(P));h=new Set(z.map(P=>e[P].section_id)),Object.values(R).filter(P=>h.has(P.section_id)).forEach(P=>{f.push(P.id),delete R[P.id];}),at&&console.info("%crunConsumers: removing sections","color:purple",h.keys());}let T=h.size>0?Object.fromEntries(Object.entries(e).filter(([,S])=>h?.has(S.section_id)?(f.includes(S.id)||f.push(S.id),!1):!0)):e;if(f.length>0&&(T=Object.fromEntries(Object.entries(T).map(([S,I])=>{let z={...I,inputs:I.inputs.filter(P=>!f.includes(P)),consumers:I.consumers.filter(P=>!f.includes(P))};return [S,z]}))),!r&&!t)return {variables:{...a.variables??{},...m},status:{...a.status??{},...d}};i==="report"&&f.length>0&&f.forEach(S=>{delete m[S],delete d[S],delete e[S];}),at&&console.info("%crunConsumers: running root blocks","color:purple",Object.keys(R));let w=Object.keys(R).reduce((S,I)=>{let z=new Date,P=ko(Number(I),T,[],!r,!0,l).map(b=>b.split("-")),$=(new Date().getTime()-z.getTime())/1e3;return at&&console.info(`%cResolved dependencies for ${I} (${$.toFixed(2)}s)`,"color:blue"),[...S,...P]},[]),_=new Date,N=Object.keys(R).reduce((S,I)=>S.includes(I)?[...S]:[I,...S],Gl(w)),B=(new Date().getTime()-_.getTime())/1e3;at&&console.info(`%cResolved DAG (${B.toFixed(2)}s): `,"color:green",N);async function M(S,I){let z=new Map;for(let P of S){let W=I[P],b=Promise.all(W.inputs.filter(k=>S.includes(String(k))).map(k=>z.get(Number(k)))).then(async()=>{let k=W.inputs.reduce((Y,L)=>({...Y,...m[L]}),p),V=W.inputs.find(Y=>(W.settings?.ignoreCascade?W.settings?.ignoreCascade:[]).includes(Y)||!d[Y]?!1:!d[Y].allowed||d[Y].hiddenByCascade);if(V){d[P]={allowed:!1,hiddenByCascade:d[V].hiddenByCascade||V},m[P]={};return}let re=new Date,ae=await Qa(W,o,{...u,variables:k,locale:k.locale},s,c).then(({outputVariables:Y,status:L})=>{if(L.error){if(typeof window>"u")throw new Error(`Run consumers (Block: ${P}, Section ${W.section_id}) failed with message: ${L.error}. `);d[P]={allowed:!1,error:L.error},m[P]={};}(W.consumers.length>0||[D.GENERATOR,D.SECTION_FLAG,D.RELATED].includes(W.type))&&L.allowed&&Object.keys(Y).length>0?m[P]=Y:m[P]={},i==="report"?(d[P]={allowed:L.allowed},[D.GENERATOR,D.SECTION_FLAG].includes(W.type)&&L.api&&(d[P].api=L.api)):d[P]=L;}),J=(new Date().getTime()-re.getTime())/1e3;return at&&console.info(`%cBlock ${W.id} resolved in ${J.toFixed(3)}s`,J>500?"color:red":"color:green"),ae});z.set(Number(P),b);}await Promise.all(Array.from(z.values()));}let U=new Date;await M(N,T);let v=(new Date().getTime()-U.getTime())/1e3;return at&&console.info(`%cResolved Variables (${v.toFixed(2)}s): `,"color:green"),{variables:{...a.variables??{},...m},status:{...a.status??{},...d}}};function eu(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=eu;function tu(e,t){return +(e<t)-+(e>t)}function Nr(e,t,r="ordering"){return tu(t[r],e[r])}var{localeDefault:ou}=K();var or=new schema.Entity("block",{},{mergeStrategy(e,t){return t.block_input?e||{}:{...e,...t}}});or.define({consumers:[or],inputs:[or]});var Za=new schema.Entity("variant"),Xa=new schema.Entity("dimension",{variants:[Za]},{processStrategy(e){return {...e,variants:"variants"in e?e.variants:[]}}}),es=new schema.Entity("section",{blocks:[or]}),nu=new schema.Entity("report",{dimensions:[Xa],sections:[es]},{processStrategy(e){return {...e,sections:"sections"in e?e.sections.sort(Nr):[]}}}),au=new schema.Entity("formatter"),su=new schema.Entity("datasource"),iu={report:nu,section:es,block:or,dimension:Xa,variant:Za,formatter:au,datasource:su};function Ur(e,t){let r=iu[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 ts=(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=ou)=>e.reduce((r,o)=>{let n=In({vars:["n"],logic:o.content.logic},{},t,{});return r[o.name]=n,r},{});var le=process.env.NEXT_PUBLIC_REPORTS_LOCALE_DEFAULT||"en",Fr=process.env.NEXT_PUBLIC_REPORTS_LOCALES?.split(",")||[le];Fr.includes(le)||Fr.push(le);var uu={localeDefault:le,locales:Fr,currentLocale:le,preferredLocale:le,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:uu,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})}}),_e=Vr.actions;var mu={attributes:{},variables:{},status:{}},$r=createSlice({name:"variables",initialState:mu,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 gu={tree:[],reports:null,entities:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}},requests:{block:{},dimension:{},report:{},section:{},variant:{},formatter:{},datasource:{}}},ke=createSlice({name:"records",initialState:gu,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`;hu(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 hu(e,t){let r=e.indexOf(t);r>-1&&e.splice(r,1);}function se(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=_u[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[ue]}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[ls]||!!(!((t=e.constructor)===null||t===void 0)&&t[ls])||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[ue];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 Ru(e,t){return Ut(e)===2?e.get(t):e[t]}function us(e,t,r){var o=Ut(e);o===2?e.set(t,r):o===3?e.add(r):e[t]=r;}function bu(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function Do(e){return Tu&&e instanceof Map}function No(e){return vu&&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=wu(e);delete t[ue];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=Su),Object.freeze(e),t&&ir(e,function(r,o){return Fo(o,!0)},!0)),e}function Su(){se(2);}function Vo(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function Ee(e){var t=Pu[e];return t||se(18,e),t}function rs(){return process.env.NODE_ENV==="production"||Nt||se(0),Nt}function wo(e,t){t&&(Ee("Patches"),e.u=[],e.s=[],e.v=t);}function qr(e){Bo(e),e.p.forEach(Eu),e.p=null;}function Bo(e){e===Nt&&(Nt=e.l);}function os(e){return Nt={p:[],l:Nt,h:e,m:!0,_:0}}function Eu(e){var t=e[ue];t.i===0||t.i===1?t.j():t.g=!0;}function Po(e,t){t._=t.p.length;var r=t.p[0],o=e!==void 0&&e!==r;return t.h.O||Ee("ES5").S(t,e,o),o?(r[ue].P&&(qr(t),se(4)),lt(e)&&(e=Gr(t,e),t.l||Kr(t,e)),t.u&&Ee("Patches").M(r[ue].t,e,t.u,t.s)):e=Gr(t,r,[]),qr(t),t.u&&t.v(t.u,t.s),e!==ps?e:void 0}function Gr(e,t,r){if(Vo(t))return t;var o=t[ue];if(!o)return ir(t,function(i,c){return ns(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 ns(e,o,n,i,c,r,s)}),Kr(e,n,!1),r&&e.u&&Ee("Patches").N(o,r,e.u,e.s);}return o.o}function ns(e,t,r,o,n,a,s){if(process.env.NODE_ENV!=="production"&&n===r&&se(5),Dt(n)){var i=Gr(e,n,a&&t&&t.i!==3&&!Co(t.R,o)?a.concat(o):void 0);if(us(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[ue];return (r?ct(r):e)[t]}function as(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)?Ee("MapSet").F(t,r):No(t)?Ee("MapSet").T(t,r):e.O?function(n,a){var s=Array.isArray(n),i={i:s?1:0,A:a?a.A:rs(),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):Ee("ES5").J(t,r);return (r?r.A:rs()).p.push(o),o}function Au(e){return Dt(e)||se(22,e),function t(r){if(!lt(r))return r;var o,n=r[ue],a=Ut(r);if(n){if(!n.P&&(n.i<4||!Ee("ES5").K(n)))return n.t;n.I=!0,o=ss(r,a),n.I=!1;}else o=ss(r,a);return ir(o,function(s,i){n&&Ru(n.t,s)===i||us(o,s,t(i));}),a===3?new Set(o):o}(e)}function ss(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return Uo(e)}var is,Nt,$o=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",Tu=typeof Map<"u",vu=typeof Set<"u",cs=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",ps=$o?Symbol.for("immer-nothing"):((is={})["immer-nothing"]=!0,is),ls=$o?Symbol.for("immer-draftable"):"__$immer_draftable",ue=$o?Symbol.for("immer-state"):"__$immer_state";var _u={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,wu=Object.getOwnPropertyDescriptors||function(e){var t={};return zo(e).forEach(function(r){t[r]=Object.getOwnPropertyDescriptor(e,r);}),t},Pu={},Mo={get:function(e,t){if(t===ue)return e;var r=ct(e);if(!Co(r,t))return function(n,a,s){var i,c=as(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=as(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?.[ue];if(a&&a.t===r)return e.o[t]=r,e.R[t]=!1,!0;if(bu(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(){se(11);},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){se(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))&&se(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))&&se(14),Mo.set.call(this,e[0],t,r,e[0])};var xu=function(){function e(r){var o=this;this.O=cs,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 A=arguments.length,T=Array(A>1?A-1:0),w=1;w<A;w++)T[w-1]=arguments[w];return c.produce(f,function(_){var N;return (N=a).call.apply(N,[R,_].concat(T))})}}var l;if(typeof a!="function"&&se(6),s!==void 0&&typeof s!="function"&&se(7),lt(n)){var u=os(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),Po(f,u)},function(f){throw qr(u),f}):(wo(u,s),Po(l,u))}if(!n||typeof n!="object"){if((l=a(n))===void 0&&(l=n),l===ps&&(l=void 0),o.D&&Fo(l,!0),s){var d=[],h=[];Ee("Patches").M(n,l,d,h),s(d,h);}return l}se(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)||se(8),Dt(r)&&(r=Au(r));var o=os(this),n=Oo(this,r,void 0);return n[ue].C=!0,Bo(o),n},t.finishDraft=function(r,o){var n=r&&r[ue];process.env.NODE_ENV!=="production"&&(n&&n.C||se(9),n.I&&se(10));var a=n.A;return wo(a,o),Po(void 0,a)},t.setAutoFreeze=function(r){this.D=r;},t.setUseProxies=function(r){r&&!cs&&se(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=Ee("Patches").$;return Dt(r)?s(r,o):this.produce(r,function(i){return s(i,o)})},e}(),pe=new xu,Iu=pe.produce;pe.produceWithPatches.bind(pe);pe.setAutoFreeze.bind(pe);pe.setUseProxies.bind(pe);pe.applyPatches.bind(pe);pe.createDraft.bind(pe);pe.finishDraft.bind(pe);var jr=Iu;var ge=ke.actions,ys=cr({block:De("block"),dimension:De("dimension"),formatter:De("formatter"),report:De("report"),section:De("section"),variant:De("variant"),datasource:De("datasource")}),X=cr({block:Ne("block"),dimension:Ne("dimension"),formatter:Ne("formatter"),report:Ne("report"),section:Ne("section"),variant:Ne("variant"),datasource:Ne("datasource")}),gs=cr({block:Ae("block"),dimension:Ae("dimension"),formatter:Ae("formatter"),report:Ae("report"),section:Ae("section"),variant:Ae("variant"),datasource:Ae("datasource")}),hs=cr({block:ut("block"),dimension:ut("dimension"),formatter:ut("formatter"),report:ut("report"),section:ut("section"),variant:ut("variant"),datasource:ut("datasource")}),Rs=cr({block:ms("block"),section:ms("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(ge.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(ge.setRequest({key:t,type:e,status:"FAILURE",error:{code:r,message:o}}));}}function De(e){return t=>{let r=Go(e,t);return (o,n,a)=>(o(dt(e,r)),ie(a,"create",e)(t).then(i=>(i.ok===!0?o(ge.setCreateRequest({key:r,operation:"create",status:"SUCCESS",type:e,data:i.data})):o(pt(e,r,i.status,i.error)),i)))}}function Lu(e){return t=>{let r=Go(e,t[0]);return (o,n,a)=>(o(dt(e,r)),ie(a,"createBulk",e)(t).then(i=>(i.ok===!0?o(ge.setCreateRequest({key:r,operation:"createBulk",status:"SUCCESS",type:e,data:i.data})):o(pt(e,r,i.status,i.error)),i)))}}function ds(e,t,r){return r.replace(new RegExp(e,"g"),t)}function Ou(e){return e.section_id!==void 0}function Mu(e){return e.report_id!==void 0}function ms(e){return t=>{let{create:r}=t;return (o,n,a)=>De(e)(r)(o,n,a).then(async i=>{if(i.ok){let{data:c}=i,{id:l}=c,{update:u}=t,p=Es(e,{id:l});if(o(dt(e,`${p}`)),e==="block"&&Ou(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((A,T)=>{let w=d?d[T]:{};return A[T]={...w,id:l},A},{});}));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&&fs(e)([m,...f])(o,n,a).then(()=>Ne("section")({id:m.section_id,include:!0})(o,n,a).then(R=>(R.ok&&o(ge.setRequest({key:p,type:e,status:"SUCCESS",data:R.data})),R))),Ae(e)(m)(o,n,a).then(R=>(R.ok&&o(ge.setRequest({key:p,type:e,status:"SUCCESS",data:R.data})),R))}if(e==="section"&&Mu(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(A=>A)}));return f&&h&&await Lu("block")(f)(o,n,a).then(R=>{if(R.ok){let A=R.data,T=[],w=A.map((_,N)=>{let B={..._},M=B.id,U=h[N];U.contentByLocale&&(B.contentByLocale=Object.keys(U.contentByLocale).reduce(($,b)=>{let k=U.contentByLocale[b];return $[b]={...k,content:{...k.content},id:B.id},$},{}));let{settings:F}=U,{contentByLocale:v,id:S}=B;B.settings=F;let I={id:S,contentByLocale:v,settings:F};return U.inputs.map($=>$.id).reduce(($,b)=>{let k=h.findIndex(V=>V.id===b);return [...$,k]},[]).map($=>({...A[$],originalBlock:h[$]})).forEach($=>{let{id:b,type:k,originalBlock:V}=$;if([D.SELECTOR,D.VIZ].includes(k)){if(I.contentByLocale?.logic?.content?.api){let re=I.contentByLocale?.logic.content.api;I.contentByLocale.logic.content.api=ds(`(selector${V.id}id)`,`selector${b}id`,re);}if(I.contentByLocale?.logic?.content?.logic){let re=I.contentByLocale.logic.content.logic;I.contentByLocale.logic.content.logic=ds(`(selector${V.id}id)`,`selector${b}id`,re);}}T.push({id:b,inputAction:{operation:"create",input:{input_id:b,block_id:M}}});}),I});return fs("block")([...w,...T])(o,n,a)}}),Ae(e)(d)(o,n,a).then(R=>(R.ok&&o(ge.setRequest({key:p,type:e,status:"SUCCESS",data:R.data})),R))}return Ae(e)({...u,id:c.id})(o,n,a)}})}}function Ne(e){return t=>{let r=bs(e,t);return (o,n,a)=>{o(dt(e,r));let s=ie(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(ge.setReadRequest({key:r,operation:"read",status:"SUCCESS",type:e,data:i.data})):o(pt(e,r,i.status,i.error)),i))}}}function Ae(e){return t=>{let r=Ko(e,t);return (o,n,a)=>(o(dt(e,r)),ie(a,"update",e)(t).then(i=>(i.ok===!0?o(ge.setUpdateRequest({key:r,operation:"update",status:"SUCCESS",type:e,data:i.data})):o(pt(e,r,i.status,i.error)),i)))}}function fs(e){return t=>{let r=Ko(e,t[0]);return (o,n,a)=>(o(dt(e,r)),ie(a,"updateBulk",e)(t).then(i=>(i.ok===!0?o(ge.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=Ss(e,t);return (o,n,a)=>(o(dt(e,r)),ie(a,"delete",e)(t).then(i=>{i.ok===!0?o(ge.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 bs(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 Ss(e,t){return `delete(${e}, ${t})`}function Es(e,t){let r=t.id==null?null:`'${t.id}'`;return `clone(${e}, ${r})`}var{setStatus:As,setPreviews:Du,setSectionState:Ts,resetSectionState:vs,setCurrentLocale:Nu,setPreferredLocale:Uu,addRunConsumersRunning:_s,removeRunConsumersRunning:ks}=_e;function Fu(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 Vu(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 $u(){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 Ue(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 zu(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 ws(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(As(i)),n.activeSection&&t(Ps(e,{query:s}));}function qu(e,t){return async(r,o)=>ws(e,r,o,{query:{[t]:void 0}})}function Gu(e,t,r){return async(o,n)=>ws(e,o,n,{query:{[t]:r}})}function Ps(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}=ts(n.status,t),{sid:p,bid:m,previews:d,query:h}=l;Object.keys(u).length&&r(_e.setStatus(u));let f={...Ot(d),locale:a,...ce()},R={variables:f,query:h,locale:a};r(_e.addRunConsumersRunning([p]));let A=n.records.entities.section[p],T=async w=>r(Ue(w));try{let w=await Lt(s,A&&[A],m,i,R,void 0,T,"section",c),{variables:_,status:N}=w;r(Mt.setVariableChange({attributes:f,variables:_,status:N})),r(_e.removeRunConsumersRunning([p]));}catch(w){console.error("Error in runConsumers client side: recalculateVariables",w);}}}function Ku(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 ju(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 Hu(){return async(e,t,r)=>{let o=await r.searchRole("");if("error"in o)throw new Error(o.error);return o.data}}function Wu(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 Ju(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 Yu({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 Qu(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 Fe(e){let{removeBlocks:t}=ke.actions;return async r=>{await r(t(e));}}function lr(e){let{addBlocks:t}=ke.actions;return async r=>{await r(t(e));}}function Zu(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 Xu(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 ep(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 tp(){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}=ke.actions;return async t=>{await t(e());}}var xs=()=>configureStore({reducer:{[ke.name]:ke.reducer,[Vr.name]:Vr.reducer,[$r.name]:$r.reducer},middleware(e){return e({thunk:{extraArgument:rr("/api/cms/")}})}}),ft=createWrapper(xs);function sp(e){let t=process.cwd(),r=ap.resolve(t.endsWith("/example")?t.replace("/example",""):t,"package-lock.json"),o;try{let n=JSON.parse(Wc.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 ip(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 Re(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(A=>u.has(A)))return {redirect:{destination:"/",permanent:!1}};let m=c.query[r],[d]=Array.isArray(m)?m:[m];await i(rt);let h=await sp("@datawheel/bespoke"),f=await o(s,c);if("redirect"in f)return {props:f};d==="reports"&&(Is(c.query[r])?await Promise.all([i(X("formatter",{})),i(X("datasource",{include:!0})),i(X("report",{id:Is(c.query[r]),include:!0})),_e.setStatus({isCMS:!0})]):await Promise.all([i(X("report",{include:"dimensions"})),_e.setStatus({isCMS:!0})])),d==="metadata"&&await i(X("report",{include:"dimensions"})),d==="formatters"&&await i(X("formatter",{})),d==="datasources"&&await i(X("datasource",{include:!0}));let R=await n(s,c);return {props:{...f,...R,bespokeVersion:h,session:l}}}})}function Is(e){if(e==null||e==="")return;let[,t]=Array.isArray(e)?e:[e];return Number.parseInt(t)||void 0}var {locales:lp}=K(),up={pathSegment:"path",formatterFunctions:lp.reduce((e,t)=>({...e,[t]:{}}),{}),datasourceFunctions:[],profilePrefix:"path",siteProps:{}};createContext(up);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=ce();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:fe(t.content.pattern,{},{variables:r})}}})}function wp(e){let{fallback:t=!0,limit:r=50}=e||{};return async o=>{let{defaultLocale:n=le,locales:a=[]}=o,s=[];if(r>0){let i=a.find(u=>u===n),{searchMember:c}=await Qe().then(It),l=await c({query:"",limit:r,format:"plain",locale:i||le,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 Pp(e){let{pathSegmentsKey:t="bespoke"}=e||{};try{return ft.getStaticProps(r=>{let{dispatch:o}=r;return async n=>{await o(rt);let a=new Date().toISOString(),{locale:s=le,params:i={}}=n,c=Array.from(Ho(i[t]));if(c.length===0)return await Promise.all([o(X("formatter",{})),o(X("datasource",{include:!0})),o(X("report",{include:!1}))]),{props:{buildTime:a}};let l=await o(Ue({mode:"slugs",locale:s,slugs:c,output:"full"}));o(mt.setPreviews(l.results)),await Promise.all([o(X("formatter",{})),o(X("datasource",{include:!0})),o(X("report",{id:l.results.map(C=>C.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},A={},T=Object.values(f).reduce((C,B)=>("access"in B.settings&&!["public","guest"].some(M=>!B.settings.access||B.settings.access.includes(M))&&C.push(B.id),C),[]);T=T.concat(tt(T,Object.values(R)));let w=T.filter(C=>R[C].settings[Rr.FALLBACK]);T.forEach(C=>{w.includes(C)&&(A[C]={...R[C],type:D.FALLBACK,original_type:R[C].type}),delete R[C];}),await o(Fe(T)),await o(lr(A));let _={...Ot(l.results),locale:s,...ce()},N=async C=>await o(Ue(C));return await Lt({...R,...A},h,void 0,d,{locale:s,query:i,variables:_},void 0,N,"report",m).then(async C=>{let B=Object.keys({...R,...A}).reduce((M,U)=>(C.variables[U]&&C.status[U]||M.push(U),M),[]);await o(Fe(B)),await o(Mt.setVariableChange({...C,attributes:_})),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 xp(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(([v])=>v.match(/selector\d+id/)));if(!a&&!s)return {notFound:!0};let c=Number(a);await o(rt);let l=new Date().toISOString(),{locale:u=le,params:p={}}=n,m=Array.from(Ho(p[t]));if(m.length===0)return {notFound:!0};let d=await o(Ue({mode:"slugs",locale:u,slugs:m,output:"full"}));o(mt.setPreviews(d.results)),await Promise.all([o(X("formatter",{})),o(X("datasource",{include:!1})),o(X("report",{id:d.results.map(v=>v.report_id),include:!0,locales:[u]}))]);let h=r.getState(),f=Yr(h),R=Qr(h),A=nr(f,u),T=Jr(h).filter(v=>v.id===c),w=Wr(h),_={...w},N={},C=Object.values(w).reduce((v,S)=>("access"in S.settings&&!["public","guest"].some(I=>!S.settings.access||S.settings.access.includes(I))&&v.push(S.id),v),[]);C=C.concat(tt(C,Object.values(_)));let B=C.filter(v=>_[v].settings[Rr.FALLBACK]);C.forEach(v=>{B.includes(v)&&(N[v]={..._[v],type:"fallback",original_type:_[v].type}),delete _[v];}),await o(Fe(C)),await o(lr(N));let M={...Ot(d.results),locale:u,...ce()},U=async v=>await o(Ue(v));await Lt({..._,...N},T,void 0,A,{locale:u,query:{...p,...i},variables:M},void 0,U,"section",R).then(async v=>{let S=Object.keys({..._,...N}).reduce((I,z)=>(v.variables[z]&&v.status[z]||I.push(z),I),[]);await Promise.all([o(Fe(S)),o(Mt.setVariableChange({...v,attributes:M})),o(ur())]);});let F=Object.keys({..._,...N}).filter(v=>a&&s?v!==s:_[v].section_id!==c);return await o(Fe(F)),{props:{buildTime:l}}}})}catch(r){return console.error("ERROR SSR",r),async()=>({notFound:!0})}}
|
|
74
74
|
|
|
75
|
-
export { xp as BespokeEmbedServerSideProps,
|
|
75
|
+
export { xp as BespokeEmbedServerSideProps, wl as BespokeEndpointNextJsHandlerFactory, Re as BespokeGetSession, qs as BespokeHandleAuth, ip as BespokeManagerServerSideProps, wp as BespokeRendererStaticPaths, Pp as BespokeRendererStaticProps, ei as BespokeSearchUsersByMetadata, Hs as BespokeUpdateCurrentUserAppMetadata, Ys as BespokeUpdateCurrentUserMetadata, Zs as BespokeWithApiRoleAuthRequired, xl as ReportCrosswalkHandler, It as dbApiFactory, bo as endpointKey, Qe as getDB, rt as useDatabaseApi };
|