prismic 1.6.1 → 1.7.0

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/index.mjs CHANGED
@@ -1,18 +1,19 @@
1
1
  #!/usr/bin/env node
2
- import{A as e,B as t,C as n,D as r,E as i,F as a,I as o,M as s,N as c,O as l,P as u,R as d,S as f,T as p,_ as m,a as h,b as g,c as _,f as ee,g as te,h as ne,i as re,j as ie,k as ae,l as oe,m as se,n as v,o as ce,s as le,t as ue,u as de,v as fe,w as y,y as pe}from"./string-Cm7AZ7LW.mjs";import{n as me,t as he}from"./package-DZQ0fS1u.mjs";import{c as ge,d as _e,f as b,g as ve,i as ye,l as x,n as be,o as xe,r as S,s as Se,u as Ce}from"./schemas-BDdFIiZQ.mjs";import{a as we,c as Te,d as Ee,f as C,l as De,p as w,t as T,u as E}from"./json-CCpSnNgM.mjs";import{a as Oe}from"./packageJson-CfpsZ9YS.mjs";import{n as ke,t as Ae}from"./env-LvTyEV-S.mjs";import{a as je,c as Me,i as D,n as Ne,r as O,s as Pe,t as Fe}from"./auth-CFvQoAjM.mjs";import{a as Ie,i as k,n as Le,r as Re,t as ze}from"./segment-4X9XW3DX.mjs";import{t as Be}from"./update-notifier-C2AFlvX2.mjs";import*as Ve from"node:util";import{parseArgs as He,promisify as Ue}from"node:util";import{pathToFileURL as We}from"node:url";import{createHash as Ge}from"node:crypto";import{dirname as Ke,join as qe,posix as Je,sep as Ye}from"node:path";import{exec as Xe,execFile as Ze}from"node:child_process";import{Readable as Qe}from"node:stream";import{createInterface as $e}from"node:readline";import*as et from"node:http";import*as A from"node:os";import{setTimeout as tt}from"node:timers/promises";import{isMainThread as nt,threadId as rt}from"worker_threads";import*as it from"node:diagnostics_channel";import{subscribe as at}from"node:diagnostics_channel";import{createReadStream as ot,existsSync as st,readFile as ct,readFileSync as lt,readdir as ut}from"node:fs";import{Worker as dt}from"node:worker_threads";import*as ft from"node:https";import{createGzip as pt}from"node:zlib";import*as mt from"node:net";import*as ht from"node:tls";import{AsyncLocalStorage as gt}from"node:async_hooks";function j(e,t){return async function(){let{positionals:n={},options:r={}}=e,i=e.name.split(` `).length,a=process.argv.slice(1+i),o=Object.keys(n).length>0,s=He({args:a,options:{...r,help:{type:`boolean`,short:`h`}},allowPositionals:o,strict:!0});if(s.values.help){console.info(_t(e));return}for(let[e,[t,r]]of Object.entries(n).entries())if(r.required&&!s.positionals[e])throw new N(`Missing required argument: <${t}>`);for(let[e,t]of Object.entries(r))if(t.required&&!(e in s.values))throw new N(`Missing required option: --${e}`);await t(s)}}function _t(e){let{description:t,sections:n,positionals:r={},options:i}=e,a=Object.keys(r),o=[ue(t)];o.push(``),o.push(`USAGE`);let s=` ${e.name}`;if(a.length>0&&(s+=` `+a.map(e=>`<${e}>`).join(` `)),s+=` [options]`,o.push(s),a.length>0){o.push(``),o.push(`ARGUMENTS`);let e=[];for(let t in r){let n=r[t],i=n.description+(n.required?` (required)`:``);e.push([` <${t}>`,i])}o.push(v(e))}o.push(``),o.push(`OPTIONS`);let c=[];if(i){let e=Object.keys(i);for(let t of e){let e=i[t],n=`${e.short?`-${e.short}, `:` `}--${t}${e.type===`string`?` string`:``}`,r=e.description+(e.required?` (required)`:``);c.push({left:n,description:r})}}c.push({left:`-h, --help`,description:`Show help for command`});let l=c.map(e=>[` ${e.left}`,e.description]);if(o.push(v(l)),n)for(let e in n){let t=ue(n[e]);o.push(``),o.push(e);for(let e of t.split(`
2
+ import{C as e,E as t,O as n,S as r,T as i,_ as a,a as o,b as s,c,f as l,g as u,h as d,i as f,l as p,m,n as h,o as g,s as ee,t as te,u as _,v,w as y,y as ne}from"./string-Bf7FlVOu.mjs";import{n as re,t as ie}from"./package-D7f_4PH5.mjs";import{_ as ae,a as oe,c as se,d as ce,f as le,i as ue,l as de,n as fe,p as b,r as x,s as pe,u as S}from"./schemas-CyhgtjZl.mjs";import{a as C,f as me,i as w,m as he,n as T,o as E,p as ge,r as _e,t as ve,u as ye}from"./request-DClMWmnH.mjs";import{a as be,s as xe}from"./packageJson-BNFJTFZF.mjs";import{n as Se,t as Ce}from"./env-DbZx_TgQ.mjs";import{a as we,c as Te,i as D,n as Ee,r as O,s as De,t as Oe}from"./auth-IehtWQjS.mjs";import{a as ke,i as k,n as Ae,r as je,t as Me}from"./segment-B4aDWMdC.mjs";import{t as Ne}from"./update-notifier-zw3PKsIt.mjs";import*as Pe from"node:util";import{parseArgs as Fe,promisify as Ie}from"node:util";import{fileURLToPath as Le,pathToFileURL as Re}from"node:url";import{createHash as ze}from"node:crypto";import{dirname as Be,join as Ve,posix as He,sep as Ue}from"node:path";import{exec as We,execFile as Ge}from"node:child_process";import{Readable as Ke}from"node:stream";import{createInterface as qe}from"node:readline";import*as Je from"node:http";import*as A from"node:os";import{setTimeout as Ye}from"node:timers/promises";import{isMainThread as Xe,threadId as Ze}from"worker_threads";import*as Qe from"node:diagnostics_channel";import{subscribe as $e}from"node:diagnostics_channel";import{createReadStream as et,existsSync as tt,readFile as nt,readFileSync as rt,readdir as it}from"node:fs";import{Worker as at}from"node:worker_threads";import*as ot from"node:https";import{createGzip as st}from"node:zlib";import*as ct from"node:net";import*as lt from"node:tls";import{AsyncLocalStorage as ut}from"node:async_hooks";function j(e,t){return async function(){let{positionals:n={},options:r={}}=e,i=e.name.split(` `).length,a=process.argv.slice(1+i),o=Object.keys(n).length>0,s=Fe({args:a,options:{...r,help:{type:`boolean`,short:`h`}},allowPositionals:o,strict:!0});if(s.values.help){console.info(dt(e));return}for(let[e,[t,r]]of Object.entries(n).entries())if(r.required&&!s.positionals[e])throw new N(`Missing required argument: <${t}>`);for(let[e,t]of Object.entries(r))if(t.required&&!(e in s.values))throw new N(`Missing required option: --${e}`);await t(s)}}function dt(e){let{description:t,sections:n,positionals:r={},options:i}=e,a=Object.keys(r),o=[te(t)];o.push(``),o.push(`USAGE`);let s=` ${e.name}`;if(a.length>0&&(s+=` `+a.map(e=>`<${e}>`).join(` `)),s+=` [options]`,o.push(s),a.length>0){o.push(``),o.push(`ARGUMENTS`);let e=[];for(let t in r){let n=r[t],i=n.description+(n.required?` (required)`:``);e.push([` <${t}>`,i])}o.push(h(e))}o.push(``),o.push(`OPTIONS`);let c=[];if(i){let e=Object.keys(i);for(let t of e){let e=i[t],n=`${e.short?`-${e.short}, `:` `}--${t}${e.type===`string`?` string`:``}`,r=e.description+(e.required?` (required)`:``);c.push({left:n,description:r})}}c.push({left:`-h, --help`,description:`Show help for command`});let l=c.map(e=>[` ${e.left}`,e.description]);if(o.push(h(l)),n)for(let e in n){let t=te(n[e]);o.push(``),o.push(e);for(let e of t.split(`
3
3
  `))o.push(e?` ${e}`:``)}o.push(``),o.push(`LEARN MORE`);let u=e.name.split(` `)[0];return o.push(` Use \`${u} <command> --help\` for more information about a command.`),o.join(`
4
- `)}function M(e){let{name:t,description:n,commands:r}=e,i=t.split(` `).length;return async function(){let{positionals:[a]}=He({args:process.argv.slice(1+i),options:{help:{type:`boolean`,short:`h`}},allowPositionals:!0,strict:!1}),o=a?e.commands[a]:void 0;if(o){await o.handler();return}if(a)throw new N(`Unknown command: ${a}`);console.info(vt({name:t,description:n,commands:r}))}}function vt(e){let{name:t,description:n,commands:r}=e,i=[n];i.push(``),i.push(`USAGE`),i.push(` ${t} <command> [options]`),i.push(``),i.push(`COMMANDS`);let a=Object.entries(r).map(([e,t])=>[` ${e}`,t.description]);return i.push(v(a)),i.push(``),i.push(`OPTIONS`),i.push(` -h, --help Show help for command`),i.push(``),i.push(`LEARN MORE`),i.push(` Use \`${t} <command> --help\` for more information about a command.`),i.join(`
5
- `)}var N=class extends Error{name=`CommandError`};const yt=x({path:b(),title:b(),description:Ce(b())}),bt=x({path:b(),title:b(),description:Ce(b()),anchors:be(x({slug:b(),excerpt:b()}))});async function xt(){return await w(new URL(`api/index/`,wt()),{schema:be(yt)})}async function St(e){let t=new URL(`api/index/${e}`,wt());try{return await w(t,{schema:bt})}catch(t){throw t instanceof E&&(t.message=`Documentation page not found: ${e}`),t}}async function Ct(e){let t=new URL(e,wt());try{return await w(t,{headers:{Accept:`text/markdown`},schema:b()})}catch(t){throw t instanceof E&&(t.message=`Page not found: ${e}`),t}}function wt(){let e=ke.PRISMIC_DOCS_HOST??Ae;return new URL(`https://${e}/docs/`)}var Tt=j({name:`prismic docs list`,description:`
4
+ `)}function M(e){let t=e.name.split(` `).length;return async function(){let{positionals:[n]}=Fe({args:process.argv.slice(1+t),options:{help:{type:`boolean`,short:`h`}},allowPositionals:!0,strict:!1}),r=n?e.commands[n]:void 0;if(r){await r.handler();return}if(n)throw new N(`Unknown command: ${n}`);console.info(ft(e))}}function ft(e){let{name:t,description:n,sections:r,commands:i}=e,a=[n];a.push(``),a.push(`USAGE`),a.push(` ${t} <command> [options]`),a.push(``),a.push(`COMMANDS`);let o=Object.entries(i).map(([e,t])=>[` ${e}`,t.description]);if(a.push(h(o)),a.push(``),a.push(`OPTIONS`),a.push(` -h, --help Show help for command`),r)for(let e in r){let t=te(r[e]);a.push(``),a.push(e);for(let e of t.split(`
5
+ `))a.push(e?` ${e}`:``)}return a.push(``),a.push(`LEARN MORE`),a.push(` Use \`${t} <command> --help\` for more information about a command.`),a.join(`
6
+ `)}var N=class extends Error{name=`CommandError`};const pt=S({path:b(),title:b(),description:ce(b())}),mt=S({path:b(),title:b(),description:ce(b()),anchors:x(S({slug:b(),excerpt:b()}))});async function ht(){return await C(new URL(`api/index/`,vt()),{schema:x(pt)})}async function gt(e){let t=new URL(`api/index/${e}`,vt());try{return await C(t,{schema:mt})}catch(t){throw t instanceof T&&(t.message=`Documentation page not found: ${e}`),t}}async function _t(e){let t=new URL(e,vt());try{return await C(t,{headers:{Accept:`text/markdown`},schema:b()})}catch(t){throw t instanceof T&&(t.message=`Page not found: ${e}`),t}}function vt(){let e=Se.PRISMIC_DOCS_HOST??Ce;return new URL(`https://${e}/docs/`)}var yt=j({name:`prismic docs list`,description:`
6
7
  List available documentation pages.
7
8
 
8
9
  With a path argument, list the anchors within that page.
9
- `,positionals:{path:{description:`Documentation path to list anchors for`,required:!1}},options:{json:{type:`boolean`,description:`Output as JSON`}}},async({positionals:e,values:t})=>{let[n]=e,{json:r}=t;if(n){let e;try{e=await St(n)}catch(e){throw e instanceof C?new N(`Failed to fetch documentation index: ${await e.text()}`):e}if(e.anchors.sort((e,t)=>e.slug.localeCompare(t.slug)),r){console.info(T(e));return}if(e.anchors.length===0){console.info(`(no anchors)`);return}let t=e.anchors.map(e=>[`${n}#${e.slug}`,e.excerpt]);console.info(v(t,{headers:[`PATH`,`EXCERPT`]}))}else{let e;try{e=await xt()}catch(e){throw e instanceof C?new N(`Failed to fetch documentation index: ${await e.text()}`):e}if(e.sort((e,t)=>e.path.localeCompare(t.path)),r){console.info(T(e));return}if(e.length===0){console.info(`No documentation pages found.`);return}let t=e.map(e=>[e.path,e.title,e.description??``]);console.info(v(t,{headers:[`PATH`,`TITLE`,`DESCRIPTION`]}))}});const Et=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,Dt=Object.hasOwnProperty;var Ot=class{constructor(){this.occurrences,this.reset()}slug(e,t){let n=this,r=kt(e,t===!0),i=r;for(;Dt.call(n.occurrences,r);)n.occurrences[i]++,r=i+`-`+n.occurrences[i];return n.occurrences[r]=0,r}reset(){this.occurrences=Object.create(null)}};function kt(e,t){return typeof e==`string`?(t||(e=e.toLowerCase()),e.replace(Et,``).replace(/ /g,`-`)):``}var At=j({name:`prismic docs view`,description:`
10
+ `,positionals:{path:{description:`Documentation path to list anchors for`,required:!1}},options:{json:{type:`boolean`,description:`Output as JSON`}}},async({positionals:e,values:t})=>{let[n]=e,{json:r}=t;if(n){let e;try{e=await gt(n)}catch(e){throw e instanceof w?new N(`Failed to fetch documentation index: ${await e.text()}`):e}if(r){console.info(E(e));return}if(e.anchors.length===0){console.info(`(no anchors)`);return}let t=e.anchors.map(e=>[`${n}#${e.slug}`,e.excerpt]);console.info(h(t,{headers:[`PATH`,`EXCERPT`]}))}else{let e;try{e=await ht()}catch(e){throw e instanceof w?new N(`Failed to fetch documentation index: ${await e.text()}`):e}if(e.sort((e,t)=>e.path.localeCompare(t.path)),r){console.info(E(e));return}if(e.length===0){console.info(`No documentation pages found.`);return}let t=e.map(e=>[e.path,e.title,e.description??``]);console.info(h(t,{headers:[`PATH`,`TITLE`,`DESCRIPTION`]}))}});const bt=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,xt=Object.hasOwnProperty;var St=class{constructor(){this.occurrences,this.reset()}slug(e,t){let n=this,r=Ct(e,t===!0),i=r;for(;xt.call(n.occurrences,r);)n.occurrences[i]++,r=i+`-`+n.occurrences[i];return n.occurrences[r]=0,r}reset(){this.occurrences=Object.create(null)}};function Ct(e,t){return typeof e==`string`?(t||(e=e.toLowerCase()),e.replace(bt,``).replace(/ /g,`-`)):``}var wt=j({name:`prismic docs view`,description:`
10
11
  View a documentation page as Markdown.
11
12
 
12
13
  Append #anchor to the path to view only the section under that heading.
13
- `,positionals:{path:{description:`Documentation path, optionally with #anchor (e.g., setup#install)`,required:!0}},options:{json:{type:`boolean`,description:`Output as JSON`}}},async({positionals:e,values:t})=>{let[n]=e,{json:r}=t,i=n.indexOf(`#`),a=i>=0?n.slice(0,i):n,o=i>=0?n.slice(i+1):void 0,s;try{s=await Ct(a)}catch(e){throw e instanceof C?new N(`Failed to fetch page: ${await e.text()}`):e}if(o){let e=jt(s,o);if(!e)throw new N(`Anchor not found: #${o}`);s=e}if(r){console.info(T({path:a,anchor:o,content:s}));return}console.info(s)});function jt(e,t){let n=e.split(`
14
- `),r=new Ot,i,a,o,s;for(let e=0;e<n.length;e++){let c=n[e],l=c.match(/^(?<fence>`{3,}|~{3,})/)?.groups?.fence;if(i){l?.startsWith(i)&&(i=void 0);continue}else if(l){i=l;continue}let u=c.match(/^(?<level>#{1,6})\s+(?<text>.*)/);if(u?.groups?.level&&u?.groups?.text){if(a!==void 0&&s!==void 0&&u.groups.level.length<=s){o=e;break}r.slug(u.groups.text)===t&&(a=e,s=u.groups.level.length)}}if(a!==void 0)return n.slice(a,o).join(`
15
- `).trim()}var Mt=M({name:`prismic docs`,description:`Browse Prismic documentation.`,commands:{list:{handler:Tt,description:`List available documentation pages`},view:{handler:At,description:`View a documentation page`}}});const P={"to-slice":{type:`string`,description:`ID of the target slice`},"to-type":{type:`string`,description:`ID of the target content type`},variation:{type:`string`,description:`Slice variation ID (default: "default")`},tab:{type:`string`,description:`Content type tab name (default: "Main")`},repo:{type:`string`,short:`r`,description:`Repository domain`}},Nt={"from-slice":{type:`string`,description:`ID of the source slice`},"from-type":{type:`string`,description:`ID of the source content type`},variation:P.variation,repo:P.repo};async function Pt(e,t,n){let r=await h(),{"from-slice":a,"from-type":o,variation:l=`default`}=t,u=[a,o].filter(Boolean).length;if(u===0)throw new N(`Specify a target with --from-slice or --from-type.`);if(u>1)throw new N(`Only one of --from-slice or --from-type can be specified.`);if(a){let t=await i(a,n),o=t.variations.find(e=>e.id===l);if(!o)throw new N(`Variation "${l}" not found. Available: ${t.variations?.map(e=>e.id).join(`, `)||`(none)`}`);return o.primary??={},I(o.primary,e),[o.primary,async()=>{await c(t,n);try{await r.updateSlice(t)}catch{await r.createSlice(t)}await r.generateTypes()},`slice`]}let d=await y(o,n),f=e.includes(`.`)?e.split(`.`)[0]:e,p;for(let e in d.json)f in d.json[e]&&(p=d.json[e]);if(!p)throw new N(`Field "${e}" not found. Available: ${Object.keys(Object.assign({},...Object.values(d.json))).join(`, `)||`(none)`}`);return I(p,e),[p,async()=>{await s(d,n);try{await r.updateCustomType(d)}catch{await r.createCustomType(d)}await r.generateTypes()},`customType`]}async function Ft(e,t,n,r){let a=await h(),{"from-slice":o,"from-type":l,variation:u=`default`}=n,d=[o,l].filter(Boolean).length;if(d===0)throw new N(`Specify a target with --from-slice or --from-type.`);if(d>1)throw new N(`Only one of --from-slice or --from-type can be specified.`);if(o){let e=await i(o,r),t=e.variations.find(e=>e.id===u);if(!t)throw new N(`Variation "${u}" not found. Available: ${e.variations?.map(e=>e.id).join(`, `)||`(none)`}`);return t.primary??={},[t.primary,t.primary,async()=>{await c(e,r);try{await a.updateSlice(e)}catch{await a.createSlice(e)}await a.generateTypes()},`slice`]}let f=await y(l,r),p=e.includes(`.`)?e.split(`.`)[0]:e,m=t.includes(`.`)?t.split(`.`)[0]:t,g,_;for(let e in f.json){let t=f.json[e];p in t&&(g=t),m in t&&(_=t)}let ee=Object.keys(Object.assign({},...Object.values(f.json))).join(`, `)||`(none)`;if(!g)throw new N(`Field "${e}" not found. Available: ${ee}`);if(!_)throw new N(`Field "${t}" not found. Available: ${ee}`);return[g,_,async()=>{await s(f,r);try{await a.updateCustomType(f)}catch{await a.createCustomType(f)}await a.generateTypes()},`customType`]}async function F(e,t){let n=await h(),r=e[`to-slice`]??e[`from-slice`],a=e[`to-type`]??e[`from-type`],o=[r,a].filter(Boolean).length;if(o===0)throw new N(`Specify a target with --to-slice or --to-type.`);if(o>1)throw new N(`Only one of --to-slice or --to-type can be specified.`);if(r){if(`tab`in e)throw new N(`--tab is only valid for content types.`);let a=e.variation??`default`,o=await i(r,t),s=structuredClone(o),l=s.variations?.find(e=>e.id===a);if(!l)throw new N(`Variation "${a}" not found. Available: ${o.variations?.map(e=>e.id).join(`, `)||`(none)`}`);return l.primary??={},[l.primary,async()=>{try{await c(s,t)}catch(e){throw e instanceof C?new N(`Failed to update slice: ${await e.text()}`):e}try{await n.updateSlice(s)}catch{await n.createSlice(s)}await n.generateTypes()},`slice`]}if(`variation`in e)throw new N(`--variation is only valid for slices.`);let l=e.tab??`Main`,u=await y(a,t),d=structuredClone(u),f=d.json[l];if(!f)throw new N(`Tab "${l}" not found. Available: ${Object.keys(u.json).join(`, `)||`(none)`}`);return[f,async()=>{try{await s(d,t)}catch(e){throw e instanceof C?new N(`Failed to update type: ${await e.text()}`):e}try{await n.updateCustomType(d)}catch{await n.createCustomType(d)}await n.generateTypes()},`customType`]}function I(e,t){if(!t.includes(`.`))return[e,t];let n=t.split(`.`),r=n.pop();if(!r)throw Error(`This is a bug. We cannot continue.`);let i=e;for(let e of n){let t=i[e];if(!t)throw new N(`Field "${e}" does not exist.`);if(t.type!==`Group`)throw new N(`Field "${e}" is not a group field.`);t.config??={},t.config.fields??={},i=t.config.fields}return[i,r]}const It=[`Slices`,`UID`,`Choice`];async function Lt(e,t,n){return Rt(e,Object.assign({},...Object.values(t.json)),t.id,n,1)}async function Rt(e,t,n,r,i){let a=[],o=new Map;for(let r of e){let e=r.indexOf(`.`);if(e===-1)zt(r,t,n),a.push(r);else{let t=r.slice(0,e),n=r.slice(e+1);o.has(t)||o.set(t,[]),o.get(t).push(n)}}for(let[e,s]of o){let o=t[e];if(!o)throw new N(`Field "${e}" not found on type "${n}".`);if(o.type===`Group`){let t=await Rt(s,o.config?.fields??{},n,r,i);a.push({id:e,fields:t})}else if(o.type===`Link`&&o.config?.select===`document`){if(i<=0)throw new N(`Cannot nest deeper than --field group.cr.group.leaf.`);let t=o.config?.customtypes;if(!t||t.length!==1)throw new N(`Field "${e}" must be restricted to a single custom type to select fields from it.`);let n=typeof t[0]==`string`?t[0]:t[0].id,c=await y(n,r),l=await Rt(s,Object.assign({},...Object.values(c.json)),n,r,i-1);a.push({id:e,customtypes:[{id:n,fields:l}]})}else throw new N(`Field "${e}" is not a group or content relationship field.`)}return a}function zt(e,t,n){if(!(e in t))throw new N(`Field "${e}" not found on type "${n}".`);if(It.includes(t[e].type)||e===`uid`)throw new N(`Field "${e}" cannot be fetched from a content relationship.`);if(t[e].type===`Group`)throw new N(`Field "${e}" is a group. Select specific sub-fields with --field ${e}.<sub-field>.`)}var Bt=j({name:`prismic field add boolean`,description:`Add a boolean field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},"default-value":{type:`boolean`,description:`Default value`},"true-label":{type:`string`,description:`Label for true value`},"false-label":{type:`string`,description:`Label for false value`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,"default-value":i,"true-label":a,"false-label":s,repo:c=await m()}=t,[l,u]=await F(t,{repo:c,token:await D(),host:await O()}),[d,f]=I(l,n),p={type:`Boolean`,config:{label:r??o(f),default_value:i,placeholder_true:a,placeholder_false:s}};if(f in d)throw new N(`Field "${n}" already exists.`);d[f]=p,await u(),console.info(`Field added: ${n}`)}),Vt=j({name:`prismic field add color`,description:`Add a color field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,repo:a=await m()}=t,[s,c]=await F(t,{repo:a,token:await D(),host:await O()}),[l,u]=I(s,n),d={type:`Color`,config:{label:r??o(u),placeholder:i}};if(u in l)throw new N(`Field "${n}" already exists.`);l[u]=d,await c(),console.info(`Field added: ${n}`)}),Ht=j({name:`prismic field add content-relationship`,description:`
14
+ `,positionals:{path:{description:`Documentation path, optionally with #anchor (e.g., setup#install)`,required:!0}},options:{json:{type:`boolean`,description:`Output as JSON`}}},async({positionals:e,values:t})=>{let[n]=e,{json:r}=t,i=n.indexOf(`#`),a=i>=0?n.slice(0,i):n,o=i>=0?n.slice(i+1):void 0,s;try{s=await _t(a)}catch(e){throw e instanceof w?new N(`Failed to fetch page: ${await e.text()}`):e}if(o){let e=Tt(s,o);if(!e)throw new N(`Anchor not found: #${o}`);s=e}if(r){console.info(E({path:a,anchor:o,content:s}));return}console.info(s)});function Tt(e,t){let n=e.split(`
15
+ `),r=new St,i,a,o,s;for(let e=0;e<n.length;e++){let c=n[e],l=c.match(/^(?<fence>`{3,}|~{3,})/)?.groups?.fence;if(i){l?.startsWith(i)&&(i=void 0);continue}else if(l){i=l;continue}let u=c.match(/^(?<level>#{1,6})\s+(?<text>.*)/);if(u?.groups?.level&&u?.groups?.text){if(a!==void 0&&s!==void 0&&u.groups.level.length<=s){o=e;break}r.slug(u.groups.text)===t&&(a=e,s=u.groups.level.length)}}if(a!==void 0)return n.slice(a,o).join(`
16
+ `).trim()}var Et=M({name:`prismic docs`,description:`Browse Prismic documentation.`,commands:{list:{handler:yt,description:`List available documentation pages`},view:{handler:wt,description:`View a documentation page`}}});const P={"to-slice":{type:`string`,description:`ID of the target slice`},"to-type":{type:`string`,description:`ID of the target content type`},variation:{type:`string`,description:`Slice variation ID (default: "default")`},tab:{type:`string`,description:`Content type tab name (default: "Main")`}},Dt={"from-slice":{type:`string`,description:`ID of the source slice`},"from-type":{type:`string`,description:`ID of the source content type`},variation:P.variation};async function Ot(e,t){let n=await o(),{"from-slice":r,"from-type":i,variation:a=`default`}=t,s=[r,i].filter(Boolean).length;if(s===0)throw new N(`Specify a target with --from-slice or --from-type.`);if(s>1)throw new N(`Only one of --from-slice or --from-type can be specified.`);if(r){let t=await n.getSlice(r),i=t.model.variations.find(e=>e.id===a);if(!i)throw new N(`Variation "${a}" not found. Available: ${t.model.variations?.map(e=>e.id).join(`, `)||`(none)`}`);return i.primary??={},I(i.primary,e),[i.primary,async()=>{await n.updateSlice(t.model),await n.generateTypes()},`slice`]}let c=await n.getCustomType(i),l=e.includes(`.`)?e.split(`.`)[0]:e,u;for(let e in c.model.json)l in c.model.json[e]&&(u=c.model.json[e]);if(!u)throw new N(`Field "${e}" not found. Available: ${Object.keys(Object.assign({},...Object.values(c.model.json))).join(`, `)||`(none)`}`);return I(u,e),[u,async()=>{await n.updateCustomType(c.model),await n.generateTypes()},`customType`]}async function kt(e,t,n){let r=await o(),{"from-slice":i,"from-type":a,variation:s=`default`}=n,c=[i,a].filter(Boolean).length;if(c===0)throw new N(`Specify a target with --from-slice or --from-type.`);if(c>1)throw new N(`Only one of --from-slice or --from-type can be specified.`);if(i){let e=await r.getSlice(i),t=e.model.variations.find(e=>e.id===s);if(!t)throw new N(`Variation "${s}" not found. Available: ${e.model.variations?.map(e=>e.id).join(`, `)||`(none)`}`);return t.primary??={},[t.primary,t.primary,async()=>{await r.updateSlice(e.model),await r.generateTypes()},`slice`]}let l=await r.getCustomType(a),u=e.includes(`.`)?e.split(`.`)[0]:e,d=t.includes(`.`)?t.split(`.`)[0]:t,f,p;for(let e in l.model.json){let t=l.model.json[e];u in t&&(f=t),d in t&&(p=t)}let m=Object.keys(Object.assign({},...Object.values(l.model.json))).join(`, `)||`(none)`;if(!f)throw new N(`Field "${e}" not found. Available: ${m}`);if(!p)throw new N(`Field "${t}" not found. Available: ${m}`);return[f,p,async()=>{await r.updateCustomType(l.model),await r.generateTypes()},`customType`]}async function F(e){let t=await o(),n=e[`to-slice`]??e[`from-slice`],r=e[`to-type`]??e[`from-type`],i=[n,r].filter(Boolean).length;if(i===0)throw new N(`Specify a target with --to-slice or --to-type.`);if(i>1)throw new N(`Only one of --to-slice or --to-type can be specified.`);if(n){if(`tab`in e)throw new N(`--tab is only valid for content types.`);let r=e.variation??`default`,i=await t.getSlice(n),a=i.model.variations?.find(e=>e.id===r);if(!a)throw new N(`Variation "${r}" not found. Available: ${i.model.variations?.map(e=>e.id).join(`, `)||`(none)`}`);return a.primary??={},[a.primary,async()=>{await t.updateSlice(i.model),await t.generateTypes()},`slice`]}if(`variation`in e)throw new N(`--variation is only valid for slices.`);let a=e.tab??`Main`,s=await t.getCustomType(r),c=s.model.json[a];if(!c)throw new N(`Tab "${a}" not found. Available: ${Object.keys(s.model.json).join(`, `)||`(none)`}`);return[c,async()=>{await t.updateCustomType(s.model),await t.generateTypes()},`customType`]}function I(e,t){if(!t.includes(`.`))return[e,t];let n=t.split(`.`),r=n.pop();if(!r)throw Error(`This is a bug. We cannot continue.`);let i=e;for(let e of n){let t=i[e];if(!t)throw new N(`Field "${e}" does not exist.`);if(t.type!==`Group`)throw new N(`Field "${e}" is not a group field.`);t.config??={},t.config.fields??={},i=t.config.fields}return[i,r]}const At=[`Slices`,`UID`,`Choice`];async function jt(e,t){let n=await o(),r=await n.getCustomType(t);return Mt(e,Object.assign({},...Object.values(r.model.json)),r.model.id,n,1)}async function Mt(e,t,n,r,i){let a=[],o=new Map;for(let r of e){let e=r.indexOf(`.`);if(e===-1)Nt(r,t,n),a.push(r);else{let t=r.slice(0,e),n=r.slice(e+1);o.has(t)||o.set(t,[]),o.get(t).push(n)}}for(let[e,s]of o){let o=t[e];if(!o)throw new N(`Field "${e}" not found on type "${n}".`);if(o.type===`Group`){let t=await Mt(s,o.config?.fields??{},n,r,i);a.push({id:e,fields:t})}else if(o.type===`Link`&&o.config?.select===`document`){if(i<=0)throw new N(`Cannot nest deeper than --field group.cr.group.leaf.`);let t=o.config?.customtypes;if(!t||t.length!==1)throw new N(`Field "${e}" must be restricted to a single custom type to select fields from it.`);let n=typeof t[0]==`string`?t[0]:t[0].id,c=await r.getCustomType(n),l=await Mt(s,Object.assign({},...Object.values(c.model.json)),n,r,i-1);a.push({id:e,customtypes:[{id:n,fields:l}]})}else throw new N(`Field "${e}" is not a group or content relationship field.`)}return a}function Nt(e,t,n){if(!(e in t))throw new N(`Field "${e}" not found on type "${n}".`);if(At.includes(t[e].type)||e===`uid`)throw new N(`Field "${e}" cannot be fetched from a content relationship.`);if(t[e].type===`Group`)throw new N(`Field "${e}" is a group. Select specific sub-fields with --field ${e}.<sub-field>.`)}function L(e){let{modelKind:t,targetId:n}=e;return t===`slice`?`Run \`prismic slice view ${n}\` to view the updated slice.`:`Run \`prismic type view ${n}\` to view the updated type.`}var Pt=j({name:`prismic field add boolean`,description:`Add a boolean field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},"default-value":{type:`boolean`,description:`Default value`},"true-label":{type:`string`,description:`Label for true value`},"false-label":{type:`string`,description:`Label for false value`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,"default-value":i,"true-label":a,"false-label":o}=t,[s,c,l]=await F(t),[u,d]=I(s,n),f={type:`Boolean`,config:{label:r??y(d),default_value:i,placeholder_true:a,placeholder_false:o}};if(d in u)throw new N(`Field "${n}" already exists.`);u[d]=f,await c(),console.info(`Field added: ${n}`);let p=t[`to-slice`]??t[`to-type`];console.info(L({targetId:p,modelKind:l}))}),Ft=j({name:`prismic field add color`,description:`Add a color field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i}=t,[a,o,s]=await F(t),[c,l]=I(a,n),u={type:`Color`,config:{label:r??y(l),placeholder:i}};if(l in c)throw new N(`Field "${n}" already exists.`);c[l]=u,await o(),console.info(`Field added: ${n}`);let d=t[`to-slice`]??t[`to-type`];console.info(L({targetId:d,modelKind:s}))}),It=j({name:`prismic field add content-relationship`,description:`
16
17
  Add a content relationship field to a slice or custom type.
17
18
 
18
19
  Content relationships fetch and display data from related documents
@@ -23,61 +24,119 @@ import{A as e,B as t,C as n,D as r,E as i,F as a,I as o,M as s,N as c,O as l,P a
23
24
  Use --custom-type and --tag to restrict which documents can be
24
25
  selected. These filters define exactly which documents are queryable
25
26
  through this field. If neither is specified, all documents are allowed.
26
- `,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},tag:{type:`string`,multiple:!0,description:`Restrict to documents with this tag (can be repeated)`},"custom-type":{type:`string`,multiple:!0,description:`Restrict to documents of this type (can be repeated)`},field:{type:`string`,multiple:!0,description:`Fetch this field from the related document (can be repeated, requires one --custom-type)`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,tag:i,"custom-type":a,field:s,repo:c=await m()}=t;if(s&&(!a||a.length!==1))throw new N(`--field requires exactly one --custom-type.`);let l=await D(),u=await O(),[d,f]=await F(t,{repo:c,token:l,host:u}),[p,h]=I(d,n),g=a;if(s&&a){let e=await Lt(s,await y(a[0],{repo:c,token:l,host:u}),{repo:c,token:l,host:u});g=[{id:a[0],fields:e}]}let _={type:`Link`,config:{label:r??o(h),select:`document`,tags:i,customtypes:g}};if(h in p)throw new N(`Field "${n}" already exists.`);p[h]=_,await f(),console.info(`Field added: ${n}`)}),Ut=j({name:`prismic field add date`,description:`Add a date field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},default:{type:`string`,description:`Default value`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,default:a,repo:s=await m()}=t,[c,l]=await F(t,{repo:s,token:await D(),host:await O()}),[u,d]=I(c,n),f={type:`Date`,config:{label:r??o(d),placeholder:i,default:a}};if(d in u)throw new N(`Field "${n}" already exists.`);u[d]=f,await l(),console.info(`Field added: ${n}`)}),Wt=j({name:`prismic field add embed`,description:`Add an embed field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,repo:a=await m()}=t,[s,c]=await F(t,{repo:a,token:await D(),host:await O()}),[l,u]=I(s,n),d={type:`Embed`,config:{label:r??o(u),placeholder:i}};if(u in l)throw new N(`Field "${n}" already exists.`);l[u]=d,await c(),console.info(`Field added: ${n}`)}),Gt=j({name:`prismic field add geopoint`,description:`Add a geopoint field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,repo:i=await m()}=t,[a,s]=await F(t,{repo:i,token:await D(),host:await O()}),[c,l]=I(a,n),u={type:`GeoPoint`,config:{label:r??o(l)}};if(l in c)throw new N(`Field "${n}" already exists.`);c[l]=u,await s(),console.info(`Field added: ${n}`)}),Kt=j({name:`prismic field add group`,description:`Add a group field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,repo:i=await m()}=t,[a,s]=await F(t,{repo:i,token:await D(),host:await O()}),[c,l]=I(a,n),u={type:`Group`,config:{label:r??o(l)}};if(l in c)throw new N(`Field "${n}" already exists.`);c[l]=u,await s(),console.info(`Field added: ${n}`)}),qt=j({name:`prismic field add image`,description:`Add an image field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,repo:a=await m()}=t,[s,c]=await F(t,{repo:a,token:await D(),host:await O()}),[l,u]=I(s,n),d={type:`Image`,config:{label:r??o(u),placeholder:i}};if(u in l)throw new N(`Field "${n}" already exists.`);l[u]=d,await c(),console.info(`Field added: ${n}`)}),Jt=j({name:`prismic field add integration`,description:`Add an integration field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},catalog:{type:`string`,description:`Integration catalog ID`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,catalog:a,repo:s=await m()}=t,[c,l]=await F(t,{repo:s,token:await D(),host:await O()}),[u,d]=I(c,n),f={type:`IntegrationFields`,config:{label:r??o(d),placeholder:i,catalog:a}};if(d in u)throw new N(`Field "${n}" already exists.`);u[d]=f,await l(),console.info(`Field added: ${n}`)}),Yt=j({name:`prismic field add link`,description:`Add a link field to a slice or custom type. Use for navigational links to URLs, documents, or media. For data-level relations between documents, use content-relationship instead.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},allow:{type:`string`,description:`Restrict to a link type: document, media, or web`},"allow-target-blank":{type:`boolean`,description:`Allow opening in new tab`},"allow-text":{type:`boolean`,description:`Allow custom link text`},repeatable:{type:`boolean`,description:`Allow multiple links`},variant:{type:`string`,multiple:!0,description:`Allowed variant (can be repeated)`}}},async({positionals:e,values:t})=>{let[n]=e,r=[`document`,`media`,`web`],{label:i,allow:a,"allow-target-blank":s,"allow-text":c,repeatable:l,variant:u,repo:d=await m()}=t;if(a&&!r.includes(a))throw new N(`--allow must be one of: ${r.join(`, `)}`);let f=a,[p,h]=await F(t,{repo:d,token:await D(),host:await O()}),[g,_]=I(p,n),ee={type:`Link`,config:{label:i??o(_),select:f,allowTargetBlank:s,allowText:c,repeat:l,variants:u}};if(_ in g)throw new N(`Field "${n}" already exists.`);g[_]=ee,await h(),console.info(`Field added: ${n}`)}),Xt=j({name:`prismic field add number`,description:`Add a number field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},min:{type:`string`,description:`Minimum value`},max:{type:`string`,description:`Maximum value`},step:{type:`string`,description:`Step increment`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,repo:a=await m()}=t,s=Zt(t.min,`min`),c=Zt(t.max,`max`),l=Zt(t.step,`step`),[u,d]=await F(t,{repo:a,token:await D(),host:await O()}),[f,p]=I(u,n),h={type:`Number`,config:{label:r??o(p),placeholder:i,min:s,max:c,step:l}};if(p in f)throw new N(`Field "${n}" already exists.`);f[p]=h,await d(),console.info(`Field added: ${n}`)});function Zt(e,t){if(e===void 0)return;let n=Number(e);if(Number.isNaN(n))throw new N(`--${t} must be a valid number, got "${e}"`);return n}var Qt=j({name:`prismic field add rich-text`,description:`Add a rich text field to a slice or custom type.`,sections:{BLOCKS:`
27
+ `,sections:{"FETCHED FIELDS":`
28
+ By default, a content relationship only returns the linked
29
+ document's metadata (ID, type, tags). Use --field to fetch
30
+ specific fields from the related document so you can display
31
+ them without a separate query.
32
+
33
+ --field requires exactly one --custom-type. Dot notation is
34
+ supported for fields inside groups (e.g. --field
35
+ authors.name).
36
+ `,EXAMPLES:`
37
+ Allow any document:
38
+ prismic field add content-relationship author --to-type blog_post
39
+
40
+ Restrict to a specific type:
41
+ prismic field add content-relationship category --to-type blog_post --custom-type blog_category
42
+
43
+ Fetch fields from the related document:
44
+ prismic field add content-relationship author --to-type blog_post --custom-type author --field name --field bio
45
+ `},positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},tag:{type:`string`,multiple:!0,description:`Restrict to documents with this tag (can be repeated)`},"custom-type":{type:`string`,multiple:!0,description:`Restrict to documents of this type (can be repeated)`},field:{type:`string`,multiple:!0,description:`Fetch this field from the related document (can be repeated, requires one --custom-type)`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,tag:i,"custom-type":a,field:o}=t;if(o&&(!a||a.length!==1))throw new N(`--field requires exactly one --custom-type.`);let[s,c,l]=await F(t),[u,d]=I(s,n),f=a;if(o&&a){let e=await jt(o,a[0]);f=[{id:a[0],fields:e}]}let p={type:`Link`,config:{label:r??y(d),select:`document`,tags:i,customtypes:f}};if(d in u)throw new N(`Field "${n}" already exists.`);u[d]=p,await c(),console.info(`Field added: ${n}`);let m=t[`to-slice`]??t[`to-type`];console.info(L({targetId:m,modelKind:l}))}),Lt=j({name:`prismic field add date`,description:`Add a date field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},default:{type:`string`,description:`Default value`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,default:a}=t,[o,s,c]=await F(t),[l,u]=I(o,n),d={type:`Date`,config:{label:r??y(u),placeholder:i,default:a}};if(u in l)throw new N(`Field "${n}" already exists.`);l[u]=d,await s(),console.info(`Field added: ${n}`);let f=t[`to-slice`]??t[`to-type`];console.info(L({targetId:f,modelKind:c}))}),Rt=j({name:`prismic field add embed`,description:`Add an embed field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i}=t,[a,o,s]=await F(t),[c,l]=I(a,n),u={type:`Embed`,config:{label:r??y(l),placeholder:i}};if(l in c)throw new N(`Field "${n}" already exists.`);c[l]=u,await o(),console.info(`Field added: ${n}`);let d=t[`to-slice`]??t[`to-type`];console.info(L({targetId:d,modelKind:s}))}),zt=j({name:`prismic field add geopoint`,description:`Add a geopoint field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r}=t,[i,a,o]=await F(t),[s,c]=I(i,n),l={type:`GeoPoint`,config:{label:r??y(c)}};if(c in s)throw new N(`Field "${n}" already exists.`);s[c]=l,await a(),console.info(`Field added: ${n}`);let u=t[`to-slice`]??t[`to-type`];console.info(L({targetId:u,modelKind:o}))}),Bt=j({name:`prismic field add group`,description:`Add a group field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r}=t,[i,a,o]=await F(t),[s,c]=I(i,n),l={type:`Group`,config:{label:r??y(c)}};if(c in s)throw new N(`Field "${n}" already exists.`);s[c]=l,await a(),console.info(`Field added: ${n}`);let u=t[`to-slice`]??t[`to-type`];console.info(L({targetId:u,modelKind:o}))}),Vt=j({name:`prismic field add image`,description:`Add an image field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i}=t,[a,o,s]=await F(t),[c,l]=I(a,n),u={type:`Image`,config:{label:r??y(l),placeholder:i}};if(l in c)throw new N(`Field "${n}" already exists.`);c[l]=u,await o(),console.info(`Field added: ${n}`);let d=t[`to-slice`]??t[`to-type`];console.info(L({targetId:d,modelKind:s}))}),Ht=j({name:`prismic field add integration`,description:`Add an integration field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},catalog:{type:`string`,description:`Integration catalog ID`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,catalog:a}=t,[o,s,c]=await F(t),[l,u]=I(o,n),d={type:`IntegrationFields`,config:{label:r??y(u),placeholder:i,catalog:a}};if(u in l)throw new N(`Field "${n}" already exists.`);l[u]=d,await s(),console.info(`Field added: ${n}`);let f=t[`to-slice`]??t[`to-type`];console.info(L({targetId:f,modelKind:c}))}),Ut=j({name:`prismic field add link`,description:`Add a link field to a slice or custom type. Use for navigational links to URLs, documents, or media. For data-level relations between documents, use content-relationship instead.`,sections:{EXAMPLES:`
46
+ Add a link that opens in a new tab:
47
+ prismic field add link cta --to-type landing_page --allow-target-blank
48
+
49
+ Restrict to media links only:
50
+ prismic field add link download --to-type blog_post --allow media
51
+
52
+ Add a repeatable link with custom text:
53
+ prismic field add link nav_item --to-type navigation --repeatable --allow-text
54
+ `},positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},allow:{type:`string`,description:`Restrict to a link type: document, media, or web`},"allow-target-blank":{type:`boolean`,description:`Allow opening in new tab`},"allow-text":{type:`boolean`,description:`Allow custom link text`},repeatable:{type:`boolean`,description:`Allow multiple links`},variant:{type:`string`,multiple:!0,description:`Allowed variant (can be repeated)`}}},async({positionals:e,values:t})=>{let[n]=e,r=[`document`,`media`,`web`],{label:i,allow:a,"allow-target-blank":o,"allow-text":s,repeatable:c,variant:l}=t;if(a&&!r.includes(a))throw new N(`--allow must be one of: ${r.join(`, `)}`);let u=a,[d,f,p]=await F(t),[m,h]=I(d,n),g={type:`Link`,config:{label:i??y(h),select:u,allowTargetBlank:o,allowText:s,repeat:c,variants:l}};if(h in m)throw new N(`Field "${n}" already exists.`);m[h]=g,await f(),console.info(`Field added: ${n}`);let ee=t[`to-slice`]??t[`to-type`];console.info(L({targetId:ee,modelKind:p}))}),Wt=j({name:`prismic field add number`,description:`Add a number field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},min:{type:`string`,description:`Minimum value`},max:{type:`string`,description:`Maximum value`},step:{type:`string`,description:`Step increment`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i}=t,a=Gt(t.min,`min`),o=Gt(t.max,`max`),s=Gt(t.step,`step`),[c,l,u]=await F(t),[d,f]=I(c,n),p={type:`Number`,config:{label:r??y(f),placeholder:i,min:a,max:o,step:s}};if(f in d)throw new N(`Field "${n}" already exists.`);d[f]=p,await l(),console.info(`Field added: ${n}`);let m=t[`to-slice`]??t[`to-type`];console.info(L({targetId:m,modelKind:u}))});function Gt(e,t){if(e===void 0)return;let n=Number(e);if(Number.isNaN(n))throw new N(`--${t} must be a valid number, got "${e}"`);return n}var Kt=j({name:`prismic field add rich-text`,description:`Add a rich text field to a slice or custom type.`,sections:{BLOCKS:`
27
55
  heading1, heading2, heading3, heading4, heading5, heading6,
28
56
  paragraph, strong, em, preformatted, hyperlink, image, embed,
29
57
  list-item, o-list-item, rtl
30
- `},positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},allow:{type:`string`,description:`Comma-separated allowed block types (e.g. heading1,heading2,paragraph)`},single:{type:`boolean`,description:`Restrict to a single block`},"allow-target-blank":{type:`boolean`,description:`Allow opening links in new tab`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,allow:a=`paragraph,preformatted,heading1,heading2,heading3,heading4,heading5,heading6,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl`,single:s,"allow-target-blank":c,repo:l=await m()}=t,[u,d]=await F(t,{repo:l,token:await D(),host:await O()}),[f,p]=I(u,n),h={type:`StructuredText`,config:{label:r??o(p),placeholder:i,...s?{single:a}:{multi:a},allowTargetBlank:c}};if(p in f)throw new N(`Field "${n}" already exists.`);f[p]=h,await d(),console.info(`Field added: ${n}`)}),$t=j({name:`prismic field add select`,description:`Add a select field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},"default-value":{type:`string`,description:`Default selected value`},option:{type:`string`,multiple:!0,description:`Select option value (can be repeated)`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,"default-value":a,option:s,repo:c=await m()}=t,[l,u]=await F(t,{repo:c,token:await D(),host:await O()}),[d,f]=I(l,n),p={type:`Select`,config:{label:r??o(f),placeholder:i,default_value:a,options:s}};if(f in d)throw new N(`Field "${n}" already exists.`);d[f]=p,await u(),console.info(`Field added: ${n}`)}),en=j({name:`prismic field add table`,description:`Add a table field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,repo:i=await m()}=t,[a,s]=await F(t,{repo:i,token:await D(),host:await O()}),[c,l]=I(a,n),u={type:`Table`,config:{label:r??o(l)}};if(l in c)throw new N(`Field "${n}" already exists.`);c[l]=u,await s(),console.info(`Field added: ${n}`)}),tn=j({name:`prismic field add text`,description:`Add a text field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,repo:a=await m()}=t,[s,c]=await F(t,{repo:a,token:await D(),host:await O()}),[l,u]=I(s,n),d={type:`Text`,config:{label:r??o(u),placeholder:i}};if(u in l)throw new N(`Field "${n}" already exists.`);l[u]=d,await c(),console.info(`Field added: ${n}`)}),nn=j({name:`prismic field add timestamp`,description:`Add a timestamp field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},default:{type:`string`,description:`Default value`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,default:a,repo:s=await m()}=t,[c,l]=await F(t,{repo:s,token:await D(),host:await O()}),[u,d]=I(c,n),f={type:`Timestamp`,config:{label:r??o(d),placeholder:i,default:a}};if(d in u)throw new N(`Field "${n}" already exists.`);u[d]=f,await l(),console.info(`Field added: ${n}`)}),rn=j({name:`prismic field add uid`,description:`Add a UID field to a content type.`,options:{"to-type":{type:`string`,description:`Name of the target content type`},tab:{type:`string`,description:`Content type tab name (default: "Main")`},repo:{type:`string`,short:`r`,description:`Repository domain`},label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({values:e})=>{let{label:t=`UID`,placeholder:n,repo:r=await m()}=e,[i,a]=await F(e,{repo:r,token:await D(),host:await O()}),o={type:`UID`,config:{label:t,placeholder:n}};if(`uid`in i)throw new N(`Field "uid" already exists.`);i.uid=o,await a(),console.info(`Field added: uid`)}),an=M({name:`prismic field add`,description:`Add a field to a slice or custom type.`,commands:{boolean:{handler:Bt,description:`Add a boolean field`},color:{handler:Vt,description:`Add a color field`},"content-relationship":{handler:Ht,description:`Add a content relationship field for fetching data from related documents (not for navigation -- use link)`},date:{handler:Ut,description:`Add a date field`},embed:{handler:Wt,description:`Add an embed field`},geopoint:{handler:Gt,description:`Add a geopoint field`},group:{handler:Kt,description:`Add a group field`},image:{handler:qt,description:`Add an image field`},integration:{handler:Jt,description:`Add an integration field`},link:{handler:Yt,description:`Add a link field for URLs, documents, or media (navigational)`},number:{handler:Xt,description:`Add a number field`},"rich-text":{handler:Qt,description:`Add a rich text field`},select:{handler:$t,description:`Add a select field`},table:{handler:en,description:`Add a table field`},text:{handler:tn,description:`Add a text field`},timestamp:{handler:nn,description:`Add a timestamp field`},uid:{handler:rn,description:`Add a UID field`}}}),on=j({name:`prismic field edit`,description:`Edit an existing field in a slice or custom type.`,sections:{"FIELD TYPE OPTIONS":`
58
+ `,EXAMPLES:`
59
+ Add a title field (single heading):
60
+ prismic field add rich-text title --to-type blog_post --allow heading1 --single
61
+
62
+ Add a body field with only headings and paragraphs:
63
+ prismic field add rich-text body --to-type blog_post --allow heading1,heading2,paragraph,strong,em,hyperlink
64
+ `},positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},allow:{type:`string`,description:`Comma-separated allowed block types (e.g. heading1,heading2,paragraph)`},single:{type:`boolean`,description:`Restrict to a single block`},"allow-target-blank":{type:`boolean`,description:`Allow opening links in new tab`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,allow:a=`paragraph,preformatted,heading1,heading2,heading3,heading4,heading5,heading6,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl`,single:o,"allow-target-blank":s}=t,[c,l,u]=await F(t),[d,f]=I(c,n),p={type:`StructuredText`,config:{label:r??y(f),placeholder:i,...o?{single:a}:{multi:a},allowTargetBlank:s}};if(f in d)throw new N(`Field "${n}" already exists.`);d[f]=p,await l(),console.info(`Field added: ${n}`);let m=t[`to-slice`]??t[`to-type`];console.info(L({targetId:m,modelKind:u}))}),qt=j({name:`prismic field add select`,description:`Add a select field to a slice or custom type.`,sections:{EXAMPLES:`
65
+ Add a select with options:
66
+ prismic field add select theme --to-type landing_page --option light --option dark --option brand
67
+
68
+ With a default value:
69
+ prismic field add select layout --to-type landing_page --option full --option centered --option sidebar --default-value full
70
+ `},positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},"default-value":{type:`string`,description:`Default selected value`},option:{type:`string`,multiple:!0,description:`Select option value (can be repeated)`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,"default-value":a,option:o}=t,[s,c,l]=await F(t),[u,d]=I(s,n),f={type:`Select`,config:{label:r??y(d),placeholder:i,default_value:a,options:o}};if(d in u)throw new N(`Field "${n}" already exists.`);u[d]=f,await c(),console.info(`Field added: ${n}`);let p=t[`to-slice`]??t[`to-type`];console.info(L({targetId:p,modelKind:l}))}),Jt=j({name:`prismic field add table`,description:`Add a table field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r}=t,[i,a,o]=await F(t),[s,c]=I(i,n),l={type:`Table`,config:{label:r??y(c)}};if(c in s)throw new N(`Field "${n}" already exists.`);s[c]=l,await a(),console.info(`Field added: ${n}`);let u=t[`to-slice`]??t[`to-type`];console.info(L({targetId:u,modelKind:o}))}),Yt=j({name:`prismic field add text`,description:`Add a text field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i}=t,[a,o,s]=await F(t),[c,l]=I(a,n),u={type:`Text`,config:{label:r??y(l),placeholder:i}};if(l in c)throw new N(`Field "${n}" already exists.`);c[l]=u,await o(),console.info(`Field added: ${n}`);let d=t[`to-slice`]??t[`to-type`];console.info(L({targetId:d,modelKind:s}))}),Xt=j({name:`prismic field add timestamp`,description:`Add a timestamp field to a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...P,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},default:{type:`string`,description:`Default value`}}},async({positionals:e,values:t})=>{let[n]=e,{label:r,placeholder:i,default:a}=t,[o,s,c]=await F(t),[l,u]=I(o,n),d={type:`Timestamp`,config:{label:r??y(u),placeholder:i,default:a}};if(u in l)throw new N(`Field "${n}" already exists.`);l[u]=d,await s(),console.info(`Field added: ${n}`);let f=t[`to-slice`]??t[`to-type`];console.info(L({targetId:f,modelKind:c}))}),Zt=j({name:`prismic field add uid`,description:`Add a UID field to a content type.`,options:{"to-type":{type:`string`,description:`Name of the target content type`},tab:{type:`string`,description:`Content type tab name (default: "Main")`},label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`}}},async({values:e})=>{let{label:t=`UID`,placeholder:n}=e,[r,i,a]=await F(e),o={type:`UID`,config:{label:t,placeholder:n}};if(`uid`in r)throw new N(`Field "uid" already exists.`);r.uid=o,await i(),console.info(`Field added: uid`);let s=e[`to-type`];console.info(L({targetId:s,modelKind:a}))}),Qt=M({name:`prismic field add`,description:`Add a field to a slice or custom type.`,sections:{"GROUP FIELDS":`
71
+ To add a field inside a group, use dot notation for the field ID:
72
+
73
+ prismic field add text my_group.description --to-type blog_post
74
+
75
+ The group must already exist. Only one level of nesting is supported.
76
+ `},commands:{boolean:{handler:Pt,description:`Add a boolean field`},color:{handler:Ft,description:`Add a color field`},"content-relationship":{handler:It,description:`Add a content relationship field for fetching data from related documents (not for navigation -- use link)`},date:{handler:Lt,description:`Add a date field`},embed:{handler:Rt,description:`Add an embed field`},geopoint:{handler:zt,description:`Add a geopoint field`},group:{handler:Bt,description:`Add a group field`},image:{handler:Vt,description:`Add an image field`},integration:{handler:Ht,description:`Add an integration field`},link:{handler:Ut,description:`Add a link field for URLs, documents, or media (navigational)`},number:{handler:Wt,description:`Add a number field`},"rich-text":{handler:Kt,description:`Add a rich text field`},select:{handler:qt,description:`Add a select field`},table:{handler:Jt,description:`Add a table field`},text:{handler:Yt,description:`Add a text field`},timestamp:{handler:Xt,description:`Add a timestamp field`},uid:{handler:Zt,description:`Add a UID field`}}}),$t=j({name:`prismic field edit`,description:`Edit an existing field in a slice or custom type.`,sections:{"FIELD TYPE OPTIONS":`
31
77
  Options vary by field type. Only options matching the field's
32
78
  type will be applied. See \`prismic field add <type> --help\`
33
79
  for type-specific option details.
34
- `},positionals:{id:{description:`Field ID`,required:!0}},options:{...Nt,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},"default-value":{type:`string`,description:`Default value (boolean: true/false, select: option value)`},"true-label":{type:`string`,description:`Label for true value (boolean)`},"false-label":{type:`string`,description:`Label for false value (boolean)`},default:{type:`string`,description:`Default value (date/timestamp)`},min:{type:`string`,description:`Minimum value (number)`},max:{type:`string`,description:`Maximum value (number)`},step:{type:`string`,description:`Step increment (number)`},option:{type:`string`,multiple:!0,description:`Select option value (can be repeated)`},"allow-target-blank":{type:`boolean`,description:`Allow opening in new tab (link/rich-text)`},"allow-text":{type:`boolean`,description:`Allow custom link text (link)`},repeatable:{type:`boolean`,description:`Allow multiple links (link)`},variant:{type:`string`,multiple:!0,description:`Allowed variant (link/link-to-media, can be repeated)`},tag:{type:`string`,multiple:!0,description:`Allowed tag (content-relationship, can be repeated)`},"custom-type":{type:`string`,multiple:!0,description:`Allowed custom type (content-relationship, can be repeated)`},field:{type:`string`,multiple:!0,description:`Fetch this field from the related document (content-relationship, can be repeated)`},allow:{type:`string`,description:`Comma-separated allowed block types (rich-text)`},single:{type:`boolean`,description:`Restrict to a single block (rich-text)`},catalog:{type:`string`,description:`Integration catalog ID (integration)`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O(),[o,s]=await Pt(n,t,{repo:r,token:i,host:a}),[c,l]=I(o,n),u=c[l];if(!u)throw new N(`Field "${n}" does not exist.`);switch(u.config??={},`label`in t&&(u.config.label=t.label),`placeholder`in t&&(u.config.placeholder=t.placeholder),u.type){case`Boolean`:if(`default-value`in t){let e=t[`default-value`];if(e!==`true`&&e!==`false`)throw new N(`--default-value for boolean fields must be "true" or "false"`);u.config.default_value=e===`true`}`true-label`in t&&(u.config.placeholder_true=t[`true-label`]),`false-label`in t&&(u.config.placeholder_false=t[`false-label`]);break;case`Number`:`min`in t&&(u.config.min=sn(t.min,`min`)),`max`in t&&(u.config.max=sn(t.max,`max`)),`step`in t&&(u.config.step=sn(t.step,`step`));break;case`Select`:`default-value`in t&&(u.config.default_value=t[`default-value`]),`option`in t&&(u.config.options=t.option);break;case`Date`:case`Timestamp`:`default`in t&&(u.config.default=t.default);break;case`IntegrationFields`:`catalog`in t&&(u.config.catalog=t.catalog);break;case`StructuredText`:if(`allow-target-blank`in t&&(u.config.allowTargetBlank=t[`allow-target-blank`]),`single`in t){let e=`allow`in t?t.allow:u.config.multi??u.config.single;delete u.config.multi,u.config.single=e}else `allow`in t&&(`single`in u.config?u.config.single=t.allow:u.config.multi=t.allow);break;case`Link`:if(`allow-target-blank`in t&&(u.config.allowTargetBlank=t[`allow-target-blank`]),`allow-text`in t&&(u.config.allowText=t[`allow-text`]),`repeatable`in t&&(u.config.repeat=t.repeatable),`variant`in t&&(u.config.variants=t.variant),`tag`in t&&(u.config.tags=t.tag),`field`in t){let e=`custom-type`in t?t[`custom-type`]:u.config.customtypes;if(!e||e.length===0)throw new N(`--field requires the field to be restricted to a custom type. Use --custom-type to specify one.`);if(e.length>1)throw new N(`--field requires the field to be restricted to a single custom type.`);let n=typeof e[0]==`string`?e[0]:e[0].id,o=await y(n,{repo:r,token:i,host:a}),s=await Lt(t.field,o,{repo:r,token:i,host:a});u.config.customtypes=[{id:n,fields:s}]}else `custom-type`in t&&(u.config.customtypes=t[`custom-type`]);break}await s(),console.info(`Field updated: ${n}`)});function sn(e,t){if(e===void 0)return;let n=Number(e);if(Number.isNaN(n))throw new N(`--${t} must be a valid number, got "${e}"`);return n}var cn=j({name:`prismic field remove`,description:`Remove a field from a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:Nt},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,[i,a]=await Pt(n,t,{repo:r,token:await D(),host:await O()}),[o,s]=I(i,n);if(!(s in o))throw new N(`Field "${n}" does not exist.`);delete o[s],await a(),console.info(`Field removed: ${n}`)}),ln=j({name:`prismic field reorder`,description:`Reorder a field in a slice or custom type.`,positionals:{id:{description:`Field ID to move`,required:!0}},options:{before:{type:`string`,description:`Place field before this field ID`},after:{type:`string`,description:`Place field after this field ID`},"from-slice":{type:`string`,description:`ID of the source slice`},"from-type":{type:`string`,description:`ID of the source content type`},variation:{type:`string`,description:`Slice variation ID (default: "default")`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{before:r,after:i,repo:a=await m()}=t;if(!r&&!i)throw new N(`Specify --before or --after.`);if(r&&i)throw new N(`Only one of --before or --after can be specified.`);let o=r??i,s=r?`before`:`after`;if(n===o)throw new N(`Cannot reorder "${n}" relative to itself.`);let c=n.lastIndexOf(`.`),l=o.lastIndexOf(`.`);if((c===-1?``:n.slice(0,c))!==(l===-1?``:o.slice(0,l)))throw new N(`Cannot reorder "${n}" relative to "${o}": fields must be in the same container.`);let[u,d,f]=await Ft(n,o,t,{repo:a,token:await D(),host:await O()}),[p,h]=I(u,n),[g,_]=I(d,o);if(!(h in p))throw new N(`Field "${n}" does not exist.`);if(!(_ in g))throw new N(`Field "${o}" does not exist.`);let ee=p[h];delete p[h];let te=Object.entries(g);for(let e of Object.keys(g))delete g[e];for(let[e,t]of te)s===`before`&&e===_&&(g[h]=ee),g[e]=t,s===`after`&&e===_&&(g[h]=ee);await f(),console.info(`Field reordered: ${n}`)}),un=j({name:`prismic field view`,description:`View details of a field in a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...Nt,json:{type:`boolean`,description:`Output as JSON`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,[i]=await Pt(n,t,{repo:r,token:await D(),host:await O()}),[a,s]=I(i,n),c=a[s];if(!c)throw new N(`Field "${n}" does not exist.`);if(t.json){console.info(T({id:s,...c}));return}if(console.info(`Type: ${c.type}`),c.config){for(let[e,t]of Object.entries(c.config))if(t!==void 0)if(e===`fields`&&typeof t==`object`&&t){let e=Object.keys(t).join(`, `)||`(none)`;console.info(`Fields: ${e}`)}else Array.isArray(t)?console.info(`${o(e)}: ${t.join(`, `)}`):console.info(`${o(e)}: ${t}`)}}),dn=M({name:`prismic field`,description:`Manage fields in slices and content types.`,commands:{add:{handler:an,description:`Add a field`},edit:{handler:on,description:`Edit a field`},remove:{handler:cn,description:`Remove a field`},reorder:{handler:ln,description:`Reorder a field`},view:{handler:un,description:`View details of a field`}}}),fn=j({name:`prismic gen setup`,description:`
80
+ `,EXAMPLES:`
81
+ Rename a field's label:
82
+ prismic field edit title --from-type blog_post --label "Page Title"
83
+
84
+ Change a select field's options:
85
+ prismic field edit theme --from-type landing_page --option light --option dark
86
+
87
+ Restrict a rich text field to a single block:
88
+ prismic field edit subtitle --from-type blog_post --single
89
+ `},positionals:{id:{description:`Field ID`,required:!0}},options:{...Dt,label:{type:`string`,description:`Field label`},placeholder:{type:`string`,description:`Placeholder text`},"default-value":{type:`string`,description:`Default value (boolean: true/false, select: option value)`},"true-label":{type:`string`,description:`Label for true value (boolean)`},"false-label":{type:`string`,description:`Label for false value (boolean)`},default:{type:`string`,description:`Default value (date/timestamp)`},min:{type:`string`,description:`Minimum value (number)`},max:{type:`string`,description:`Maximum value (number)`},step:{type:`string`,description:`Step increment (number)`},option:{type:`string`,multiple:!0,description:`Select option value (can be repeated)`},"allow-target-blank":{type:`boolean`,description:`Allow opening in new tab (link/rich-text)`},"allow-text":{type:`boolean`,description:`Allow custom link text (link)`},repeatable:{type:`boolean`,description:`Allow multiple links (link)`},variant:{type:`string`,multiple:!0,description:`Allowed variant (link/link-to-media, can be repeated)`},tag:{type:`string`,multiple:!0,description:`Allowed tag (content-relationship, can be repeated)`},"custom-type":{type:`string`,multiple:!0,description:`Allowed custom type (content-relationship, can be repeated)`},field:{type:`string`,multiple:!0,description:`Fetch this field from the related document (content-relationship, can be repeated)`},allow:{type:`string`,description:`Comma-separated allowed block types (rich-text)`},single:{type:`boolean`,description:`Restrict to a single block (rich-text)`},catalog:{type:`string`,description:`Integration catalog ID (integration)`}}},async({positionals:e,values:t})=>{let[n]=e,[r,i]=await Ot(n,t),[a,o]=I(r,n),s=a[o];if(!s)throw new N(`Field "${n}" does not exist.`);switch(s.config??={},`label`in t&&(s.config.label=t.label),`placeholder`in t&&(s.config.placeholder=t.placeholder),s.type){case`Boolean`:if(`default-value`in t){let e=t[`default-value`];if(e!==`true`&&e!==`false`)throw new N(`--default-value for boolean fields must be "true" or "false"`);s.config.default_value=e===`true`}`true-label`in t&&(s.config.placeholder_true=t[`true-label`]),`false-label`in t&&(s.config.placeholder_false=t[`false-label`]);break;case`Number`:`min`in t&&(s.config.min=en(t.min,`min`)),`max`in t&&(s.config.max=en(t.max,`max`)),`step`in t&&(s.config.step=en(t.step,`step`));break;case`Select`:`default-value`in t&&(s.config.default_value=t[`default-value`]),`option`in t&&(s.config.options=t.option);break;case`Date`:case`Timestamp`:`default`in t&&(s.config.default=t.default);break;case`IntegrationFields`:`catalog`in t&&(s.config.catalog=t.catalog);break;case`StructuredText`:if(`allow-target-blank`in t&&(s.config.allowTargetBlank=t[`allow-target-blank`]),`single`in t){let e=`allow`in t?t.allow:s.config.multi??s.config.single;delete s.config.multi,s.config.single=e}else `allow`in t&&(`single`in s.config?s.config.single=t.allow:s.config.multi=t.allow);break;case`Link`:if(`allow-target-blank`in t&&(s.config.allowTargetBlank=t[`allow-target-blank`]),`allow-text`in t&&(s.config.allowText=t[`allow-text`]),`repeatable`in t&&(s.config.repeat=t.repeatable),`variant`in t&&(s.config.variants=t.variant),`tag`in t&&(s.config.tags=t.tag),`field`in t){let e=`custom-type`in t?t[`custom-type`]:s.config.customtypes;if(!e||e.length===0)throw new N(`--field requires the field to be restricted to a custom type. Use --custom-type to specify one.`);if(e.length>1)throw new N(`--field requires the field to be restricted to a single custom type.`);let n=typeof e[0]==`string`?e[0]:e[0].id,r=await jt(t.field,n);s.config.customtypes=[{id:n,fields:r}]}else `custom-type`in t&&(s.config.customtypes=t[`custom-type`]);break}await i(),console.info(`Field updated: ${n}`)});function en(e,t){if(e===void 0)return;let n=Number(e);if(Number.isNaN(n))throw new N(`--${t} must be a valid number, got "${e}"`);return n}var tn=j({name:`prismic field remove`,description:`Remove a field from a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:Dt},async({positionals:e,values:t})=>{let[n]=e,[r,i]=await Ot(n,t),[a,o]=I(r,n);if(!(o in a))throw new N(`Field "${n}" does not exist.`);delete a[o],await i(),console.info(`Field removed: ${n}`)}),nn=j({name:`prismic field reorder`,description:`Reorder a field in a slice or custom type.`,positionals:{id:{description:`Field ID to move`,required:!0}},options:{before:{type:`string`,description:`Place field before this field ID`},after:{type:`string`,description:`Place field after this field ID`},"from-slice":{type:`string`,description:`ID of the source slice`},"from-type":{type:`string`,description:`ID of the source content type`},variation:{type:`string`,description:`Slice variation ID (default: "default")`}}},async({positionals:e,values:t})=>{let[n]=e,{before:r,after:i}=t;if(!r&&!i)throw new N(`Specify --before or --after.`);if(r&&i)throw new N(`Only one of --before or --after can be specified.`);let a=r??i,o=r?`before`:`after`;if(n===a)throw new N(`Cannot reorder "${n}" relative to itself.`);let s=n.lastIndexOf(`.`),c=a.lastIndexOf(`.`);if((s===-1?``:n.slice(0,s))!==(c===-1?``:a.slice(0,c)))throw new N(`Cannot reorder "${n}" relative to "${a}": fields must be in the same container.`);let[l,u,d]=await kt(n,a,t),[f,p]=I(l,n),[m,h]=I(u,a);if(!(p in f))throw new N(`Field "${n}" does not exist.`);if(!(h in m))throw new N(`Field "${a}" does not exist.`);let g=f[p];delete f[p];let ee=Object.entries(m);for(let e of Object.keys(m))delete m[e];for(let[e,t]of ee)o===`before`&&e===h&&(m[p]=g),m[e]=t,o===`after`&&e===h&&(m[p]=g);await d(),console.info(`Field reordered: ${n}`)}),rn=j({name:`prismic field view`,description:`View details of a field in a slice or custom type.`,positionals:{id:{description:`Field ID`,required:!0}},options:{...Dt,json:{type:`boolean`,description:`Output as JSON`}}},async({positionals:e,values:t})=>{let[n]=e,[r]=await Ot(n,t),[i,a]=I(r,n),o=i[a];if(!o)throw new N(`Field "${n}" does not exist.`);if(t.json){console.info(E({id:a,...o}));return}if(console.info(`Type: ${o.type}`),o.config){for(let[e,t]of Object.entries(o.config))if(t!==void 0)if(e===`fields`&&typeof t==`object`&&t){let e=Object.keys(t).join(`, `)||`(none)`;console.info(`Fields: ${e}`)}else Array.isArray(t)?console.info(`${y(e)}: ${t.join(`, `)}`):console.info(`${y(e)}: ${t}`)}}),an=M({name:`prismic field`,description:`Manage fields in slices and content types.`,commands:{add:{handler:Qt,description:`Add a field`},edit:{handler:$t,description:`Edit a field`},remove:{handler:tn,description:`Remove a field`},reorder:{handler:nn,description:`Reorder a field`},view:{handler:rn,description:`View details of a field`}}}),on=j({name:`prismic gen setup`,description:`
35
90
  Generate framework-specific setup files for a Prismic project.
36
91
 
37
92
  Installs dependencies, creates the Prismic client file, slice simulator
38
93
  page, preview routes, and other files required by the detected framework.
39
94
  Skips files that already exist.
40
- `,options:{"no-install":{type:`boolean`,description:`Skip installing dependencies`}}},async({values:e})=>{if(await(await h()).setupProject(),!e[`no-install`])try{console.info(`Installing dependencies...`),await Oe()}catch{console.warn("Could not install dependencies automatically. Please install them manually (i.e. `npm install`).")}console.info(`Generated setup files.`)}),pn=j({name:`prismic gen types`,description:`Generate TypeScript types for slices and content types.`},async()=>{let e=await(await h()).generateTypes(),t=Te(await te(),e);console.info(`Generated types at ${t}`)}),mn=M({name:`prismic gen`,description:`Generate files from local Prismic models.`,commands:{setup:{handler:fn,description:`Generate framework-specific Prismic setup`},types:{handler:pn,description:`Generate TypeScript types from local models`}}});function hn(e){Xe(`${process.platform===`darwin`?`open`:process.platform===`win32`?`start`:`xdg-open`} "${e.toString()}"`)}var gn=j({name:`prismic init`,description:`
41
- Initialize a Prismic project by creating a prismic.config.json file.
42
-
43
- Detects the project framework, installs dependencies, and syncs models
44
- from Prismic. If a slicemachine.config.json exists, it will be migrated.
45
- `,options:{repo:{type:`string`,short:`r`,description:`Repository name`},"no-browser":{type:`boolean`,description:`Skip opening the browser automatically during login`}}},async({values:e})=>{let{repo:t,"no-browser":n}=e;try{throw await fe(),new N(`A prismic.config.json file exists. This project is already initialized.`)}catch(e){if(!(e instanceof _))throw e}let r;try{r=await pe()}catch(e){e instanceof ce&&console.warn(`Could not read slicemachine.config.json, ignoring.`)}let i=t??r?.repositoryName;if(!i)throw new N(`Missing required flag: --repo`);let a=await D(),o=await O(),s;try{s=await f({token:a,host:o})}catch(e){if(e instanceof Ee||e instanceof De){console.info(`Not logged in. Starting login...`);let{email:e}=await Ne({onReady:e=>{n?console.info(`Open this URL to log in: ${e}`):(console.info(`Opening browser to complete login...`),console.info(`If the browser doesn't open, visit: ${e}`),hn(e))}});console.info(`Logged in as ${e}`),a=await D(),s=await f({token:a,host:o})}else throw e}if(!s.repositories.find(e=>e.domain===i))throw new N(`Repository "${i}" not found in your account. Check the name or request access to the repository.`);if(!await ee(i,{token:a,host:o}))throw new oe;let c=await h();try{await se({repositoryName:i,documentAPIEndpoint:o===Ae?void 0:`https://${i}.cdn.${o}/api/v2/`,libraries:r?.libraries,routes:[]})}catch(e){throw e instanceof de?new N(`Could not find a package.json file. Run this command from a project directory.`):new N(`Failed to create prismic.config.json.`)}if(r){try{await ne()}catch{}console.info(`Migrated slicemachine.config.json to prismic.config.json`)}await c.initProject();try{console.info(`Installing dependencies...`),await Oe()}catch{console.warn("Could not install dependencies automatically. Please install them manually (i.e. `npm install`).")}await c.syncModels({repo:i,token:a,host:o}),console.info(`\nInitialized Prismic for repository "${i}".`)});const _n=x({id:b(),label:b(),customName:Se(b()),isMaster:S()});async function vn(e){let{repo:t,token:n,host:r}=e,i=new URL(`repository/locales`,xn(r));i.searchParams.set(`repository`,t);try{return(await w(i,{headers:{Authorization:`Bearer ${n}`},schema:x({results:be(_n)})})).results}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${t}`),e}}async function yn(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`repository/locales`,xn(i));a.searchParams.set(`repository`,n);try{return await w(a,{method:`POST`,body:{id:e.id,isMaster:e.isMaster??!1,...e.customName?{customName:e.customName}:{}},headers:{Authorization:`Bearer ${r}`},schema:_n})}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${n}`),e}}async function bn(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`repository/locales/${encodeURIComponent(e)}`,xn(i));a.searchParams.set(`repository`,n),await w(a,{method:`DELETE`,headers:{Authorization:`Bearer ${r}`}})}function xn(e){return new URL(`https://api.internal.${e}/locale/`)}var Sn=j({name:`prismic locale add`,description:`
95
+ `,options:{"no-install":{type:`boolean`,description:`Skip installing dependencies`}}},async({values:e})=>{if(await(await o()).setupProject(),!e[`no-install`])try{console.info(`Installing dependencies...`),await be()}catch{console.warn("Could not install dependencies automatically. Please install them manually (i.e. `npm install`).")}console.info(`Generated setup files.`)}),sn=j({name:`prismic gen types`,description:`Generate TypeScript types for slices and content types.`},async()=>{let e=await(await o()).generateTypes(),t=he(await u(),e);console.info(`Generated types at ${t}`)}),cn=M({name:`prismic gen`,description:`Generate files from local Prismic models.`,commands:{setup:{handler:on,description:`Generate framework-specific Prismic setup`},types:{handler:sn,description:`Generate TypeScript types from local models`}}});async function ln(e){let{repo:t,token:n,host:r}=e,i=xn(r),a=new URL(`customtypes`,i);try{return await C(a,{headers:{repository:t,Authorization:`Bearer ${n}`}})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t}`),e}}async function un(e,t){let{repo:n,token:r,host:i}=t,a=xn(i);await C(new URL(`customtypes/insert`,a),{method:`POST`,headers:{repository:n,Authorization:`Bearer ${r}`},body:e})}async function dn(e,t){let{repo:n,token:r,host:i}=t,a=xn(i);await C(new URL(`customtypes/update`,a),{method:`POST`,headers:{repository:n,Authorization:`Bearer ${r}`},body:e})}async function fn(e,t){let{repo:n,token:r,host:i}=t,a=xn(i);await C(new URL(`customtypes/${encodeURIComponent(e)}`,a),{method:`DELETE`,headers:{repository:n,Authorization:`Bearer ${r}`}})}async function pn(e){let{repo:t,token:n,host:r}=e,i=xn(r),a=new URL(`slices`,i);try{return await C(a,{headers:{repository:t,Authorization:`Bearer ${n}`}})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t}`),e}}async function mn(e,t){let{repo:n,token:r,host:i}=t,a=xn(i);await C(new URL(`slices/insert`,a),{method:`POST`,headers:{repository:n,Authorization:`Bearer ${r}`},body:e})}async function hn(e,t){let{repo:n,token:r,host:i}=t,a=xn(i);await C(new URL(`slices/update`,a),{method:`POST`,headers:{repository:n,Authorization:`Bearer ${r}`},body:e})}async function gn(e,t){let{repo:n,token:r,host:i}=t,a=xn(i);await C(new URL(`slices/${encodeURIComponent(e)}`,a),{method:`DELETE`,headers:{repository:n,Authorization:`Bearer ${r}`}})}const _n=S({values:S({url:b(),fields:le(b(),b())}),imgixEndpoint:b()}),vn={"image/png":`.png`,"image/jpeg":`.jpg`,"image/gif":`.gif`,"image/webp":`.webp`};async function yn(e,t){let{sliceId:n,variationId:r,repo:i,token:a,host:o}=t,s=e.type;if(!(s in vn))throw new bn(s);let c=await C(new URL(`create`,Sn(o)),{headers:{Repository:i,Authorization:`Bearer ${a}`},schema:_n}),l=vn[s],u=`${i}/shared-slices/${n}/${r}/${ze(`md5`).update(new Uint8Array(await e.arrayBuffer())).digest(`hex`)}${l}`,d=new FormData;for(let[e,t]of Object.entries(c.values.fields))d.append(e,t);d.append(`key`,u),d.append(`Content-Type`,s),d.append(`file`,e),await C(c.values.url,{method:`POST`,body:d});let f=new URL(u,me(c.imgixEndpoint));return f.searchParams.set(`auto`,`compress,format`),f}var bn=class extends Error{name=`UnsupportedFileTypeError`;constructor(e){super(`Unsupported file type: ${e||`unknown`}. Supported: ${Object.keys(vn).join(`, `)}`)}};function xn(e){return new URL(`https://customtypes.${e}/`)}function Sn(e){return new URL(`https://acl-provider.${e}/`)}function Cn(e){We(`${process.platform===`darwin`?`open`:process.platform===`win32`?`start ""`:`xdg-open`} "${e.toString()}"`)}function R(e,t,n){let{getKey:r}=n,i={insert:[],update:[],delete:[]};for(let n of e){let e=t.find(e=>r(e)===r(n));e?JSON.stringify(n)!==JSON.stringify(e)&&i.update.push(n):i.insert.push(n)}for(let n of t)e.some(e=>r(e)===r(n))||i.delete.push(n);return i}const wn=S({documentsPublished:ue(),documentsUnpublished:ue(),releasesCreated:ue(),releasesUpdated:ue(),tagsCreated:ue(),tagsDeleted:ue()}),Tn=Object.keys(wn.shape),En=S({config:oe(wn,{_id:b(),url:b(),active:ue(),name:se(b()),secret:se(b()),headers:le(b(),b())})});async function Dn(e){let{repo:t,token:n,host:r}=e,i=z(t,r),a=new URL(`app/settings/webhooks`,i);try{return await C(a,{credentials:{"prismic-auth":n},schema:x(En)})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t}`),e}}async function On(e,t){let{repo:n,token:r,host:i}=t,a=z(n,i),o=new URL(`app/settings/webhooks/create`,a),s=new FormData;s.set(`url`,e.url),s.set(`name`,e.name??``),s.set(`secret`,e.secret??``),s.set(`headers`,JSON.stringify({})),s.set(`active`,`on`),s.set(`documentsPublished`,e.documentsPublished.toString()),s.set(`documentsUnpublished`,e.documentsUnpublished.toString()),s.set(`releasesCreated`,e.releasesCreated.toString()),s.set(`releasesUpdated`,e.releasesUpdated.toString()),s.set(`tagsCreated`,e.tagsCreated.toString()),s.set(`tagsDeleted`,e.tagsDeleted.toString());try{await C(o,{method:`POST`,body:s,credentials:{"prismic-auth":r}})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${n}`),e}}async function kn(e,t,n){let{repo:r,token:i,host:a}=n,o=z(r,a),s=new URL(`app/settings/webhooks/${e}`,o),c=new FormData;c.set(`url`,t.url),c.set(`name`,t.name??``),c.set(`secret`,t.secret??``),c.set(`headers`,JSON.stringify(t.headers??{})),c.set(`active`,t.active?`on`:`off`),c.set(`documentsPublished`,t.documentsPublished.toString()),c.set(`documentsUnpublished`,t.documentsUnpublished.toString()),c.set(`releasesCreated`,t.releasesCreated.toString()),c.set(`releasesUpdated`,t.releasesUpdated.toString()),c.set(`tagsCreated`,t.tagsCreated.toString()),c.set(`tagsDeleted`,t.tagsDeleted.toString());try{await C(s,{method:`POST`,body:c,credentials:{"prismic-auth":i}})}catch(e){throw e instanceof T&&(e.message=`Webhook not found`),e}}async function An(e,t){let{repo:n,token:r,host:i}=t,a=z(n,i),o=new URL(`app/settings/webhooks/${e}/delete`,a);try{await C(o,{method:`POST`,credentials:{"prismic-auth":r}})}catch(e){throw e instanceof T&&(e.message=`Webhook not found`),e}}const jn=S({id:b(),scope:b(),token:b(),created_at:S({$date:de()})}),Mn=S({id:b(),name:b(),wroom_auths:x(jn)}),Nn=S({app_name:b(),token:b(),timestamp:de()}),Pn=S({max_tokens:de(),tokens:x(Nn)});async function Fn(e){let t=new URL(`settings/security/contentapi`,z(e.repo,e.host));try{return await C(t,{credentials:{"prismic-auth":e.token},schema:x(Mn)})}catch(t){throw t instanceof T&&(t.message=`Repository not found: ${e.repo}`),t}}async function In(e,t){let n=new URL(`settings/security/oauthapp`,z(t.repo,t.host));try{return await C(n,{method:`POST`,body:{app_name:e},credentials:{"prismic-auth":t.token},schema:Mn})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t.repo}`),e}}async function Ln(e,t,n){let r=new URL(`settings/security/authorizations`,z(n.repo,n.host));try{return await C(r,{method:`POST`,body:{app:e,scope:t},credentials:{"prismic-auth":n.token},schema:jn})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${n.repo}`),e}}async function Rn(e,t){let n=new URL(`settings/security/authorizations/${encodeURIComponent(e)}`,z(t.repo,t.host));try{await C(n,{method:`DELETE`,credentials:{"prismic-auth":t.token}})}catch(e){throw e instanceof T&&(e.message=`Token not found`),e}}async function zn(e){let t=new URL(`settings/security/customtypesapi`,z(e.repo,e.host));try{return await C(t,{credentials:{"prismic-auth":e.token},schema:Pn})}catch(t){throw t instanceof T&&(t.message=`Repository not found: ${e.repo}`),t}}async function Bn(e,t){let n=new URL(`settings/security/token`,z(t.repo,t.host));try{return await C(n,{method:`POST`,body:{app_name:e},credentials:{"prismic-auth":t.token},schema:Nn})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t.repo}`),e}}async function Vn(e,t){let n=new URL(`settings/security/token/${encodeURIComponent(e)}`,z(t.repo,t.host));try{await C(n,{method:`DELETE`,credentials:{"prismic-auth":t.token}})}catch(t){throw t instanceof T&&(t.message=`Token not found: ${e}`),t}}async function Hn(e){let{domain:t,token:n,host:r}=e;return await C(new URL(`app/dashboard/repositories/${t}/exists`,Yn(r)),{credentials:{"prismic-auth":n},schema:ue()})}async function Un(e){let{domain:t,name:n,framework:r,token:i,host:a}=e;await C(new URL(`app/dashboard/repositories`,Yn(a)),{method:`POST`,body:{domain:t,name:n,framework:r,plan:`personal`},credentials:{"prismic-auth":i}})}const Wn=S({repository:S({api_access:b()})});async function Gn(e){let{repo:t,token:n,host:r}=e,i=new URL(`syncState`,z(t,r));try{return(await C(i,{credentials:{"prismic-auth":n},schema:Wn})).repository.api_access}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t}`),e}}async function Kn(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`settings/security/apiaccess`,z(n,i));try{await C(a,{method:`POST`,body:{api_access:e},credentials:{"prismic-auth":r}})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${n}`),e}}const qn=S({repository:S({name:b()})});async function Jn(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`app/settings/repository`,z(n,i)),o=new FormData;o.set(`displayname`,e);try{return(await C(a,{method:`POST`,body:o,credentials:{"prismic-auth":r},schema:qn})).repository.name}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${n}`),e}}function Yn(e){return new URL(`https://${e}/`)}function z(e,t){return new URL(`https://${e}.${t}/`)}var Xn=j({name:`prismic repo create`,description:`Create a new Prismic repository.`,options:{name:{type:`string`,short:`n`,description:`Display name for the repository`}}},async({values:e})=>{let{name:t}=e,n=await D(),r=await O(),i=await Zn({name:t,token:n,host:r});console.info(`Repository created: ${i}`),console.info(`URL: https://${i}.${r}/`)});async function Zn(e){let{name:t,token:n,host:r}=e,i=await Qn({token:n,host:r});if(!i)throw new N(`Failed to create a repository. Please try again.`);let a=(await o().catch(()=>void 0))?.id??`other`;try{await Un({domain:i,name:t??i,framework:a,token:n,host:r})}catch(e){throw e instanceof w?new N(`Failed to create repository: ${await e.text()}`):e}return i}async function Qn(e){let{token:t,host:n}=e,r;for(let e=0;e<5;e++){let e=crypto.randomUUID().replace(/-/g,``).slice(0,8);if(await Hn({domain:e,token:t,host:n})){r=e;break}}return r}var $n=j({name:`prismic init`,description:`
96
+ Initialize a new Prismic project by creating a repository and
97
+ prismic.config.json file. Detects the project framework, installs
98
+ dependencies, and syncs models from Prismic.
99
+
100
+ Use --repo to connect to an existing repository instead. If a
101
+ slicemachine.config.json exists, its repository and settings will be
102
+ migrated.
103
+ `,options:{repo:{type:`string`,short:`r`,description:`Repository name`},"no-browser":{type:`boolean`,description:`Skip opening the browser automatically during login`}}},async({values:e})=>{let{repo:t,"no-browser":n}=e;try{throw await v(),new N(`A prismic.config.json file exists. This project is already initialized.`)}catch(e){if(!(e instanceof c))throw e}let i;try{i=await ne()}catch(e){e instanceof g&&console.warn(`Could not read slicemachine.config.json, ignoring.`)}let a=await D(),s=await O(),u;try{u=await r({token:a,host:s})}catch(e){if(e instanceof _e||e instanceof ve){console.info(`Not logged in. Starting login...`);let{email:e}=await Ee({onReady:e=>{n?console.info(`Open this URL to log in: ${e}`):(console.info(`Opening browser to complete login...`),console.info(`If the browser doesn't open, visit: ${e}`),Cn(e))}});console.info(`Logged in as ${e}`),a=await D(),u=await r({token:a,host:s})}else throw e}let f=t??i?.repositoryName;if(f){if(!u.repositories.some(e=>e.domain===f))throw new N(`Repository "${f}" not found in your account. Check the name or request access to the repository.`);if(!await l(f,{token:a,host:s}))throw new p}let h=await o();f||(f=await Zn({token:a,host:s}),console.info(`Created repository: ${f}`));try{let e=s===Ce?void 0:`https://${f}.cdn.${s}/api/v2/`;await m({repositoryName:f,documentAPIEndpoint:e,libraries:i?.libraries,routes:[]})}catch(e){throw e instanceof _?new N(`Could not find a package.json file. Run this command from a project directory.`):new N(`Failed to create prismic.config.json.`)}if(i){try{await d()}catch{}console.info(`Migrated slicemachine.config.json to prismic.config.json`)}await h.initProject();try{console.info(`Installing dependencies...`),await be()}catch{console.warn("Could not install dependencies automatically. Please install them manually (i.e. `npm install`).")}let[ee,te,y,re]=await Promise.all([ln({repo:f,token:a,host:s}),pn({repo:f,token:a,host:s}),h.getCustomTypes(),h.getSlices()]),ie=y.map(e=>e.model),ae=R(te,re.map(e=>e.model),{getKey:e=>e.id});for(let e of ae.update)await h.updateSlice(e);for(let e of ae.delete)await h.deleteSlice(e.id);for(let e of ae.insert)await h.createSlice(e);let oe=R(ee,ie,{getKey:e=>e.id});for(let e of oe.update)await h.updateCustomType(e);for(let e of oe.delete)await h.deleteCustomType(e.id);for(let e of oe.insert)await h.createCustomType(e);await h.generateTypes(),console.info(`\nInitialized Prismic for repository "${f}".`),console.info("Run `prismic type create <name>` to create a content type."),console.info("Run `prismic sync` to sync models from Prismic.")});const er=S({id:b(),label:b(),customName:se(b()),isMaster:ue()});async function tr(e){let{repo:t,token:n,host:r}=e,i=new URL(`repository/locales`,ir(r));i.searchParams.set(`repository`,t);try{return(await C(i,{headers:{Authorization:`Bearer ${n}`},schema:S({results:x(er)})})).results}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t}`),e}}async function nr(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`repository/locales`,ir(i));a.searchParams.set(`repository`,n);try{return await C(a,{method:`POST`,body:{id:e.id,isMaster:e.isMaster??!1,...e.customName?{customName:e.customName}:{}},headers:{Authorization:`Bearer ${r}`},schema:er})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${n}`),e}}async function rr(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`repository/locales/${encodeURIComponent(e)}`,ir(i));a.searchParams.set(`repository`,n),await C(a,{method:`DELETE`,headers:{Authorization:`Bearer ${r}`}})}function ir(e){return new URL(`https://api.internal.${e}/locale/`)}const ar=S({results:x(S({id:b(),label:b(),url:b()}))});async function or(e){let{repo:t,token:n,host:r}=e,i=new URL(`core/repository/preview_configs`,mr(t,r));try{return(await C(i,{credentials:{"prismic-auth":n},schema:ar})).results}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t}`),e}}async function sr(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`previews/new`,mr(n,i));try{await C(a,{method:`POST`,body:{name:e.name,websiteURL:e.websiteURL,resolverPath:e.resolverPath},credentials:{"prismic-auth":r}})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${n}`),e}}async function cr(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`previews/delete/${e}`,mr(n,i));try{await C(a,{method:`POST`,body:{},credentials:{"prismic-auth":r}})}catch(e){throw e instanceof T&&(e.message=`Preview not found`),e}}const lr=S({results:x(S({kind:fe([`prod`,`stage`,`dev`]),name:b(),domain:b(),users:x(S({id:b()}))}))});async function ur(e){let{repo:t,token:n,host:r}=e,i=new URL(`core/environments`,mr(t,r));try{return(await C(i,{credentials:{"prismic-auth":n},schema:lr})).results}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t}`),e}}const dr=S({simulator_url:ce(b())});async function fr(e){let{repo:t,token:n,host:r}=e,i=new URL(`core/repository`,mr(t,r));try{return(await C(i,{credentials:{"prismic-auth":n},schema:dr})).simulator_url}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${t}`),e}}async function pr(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`core/repository`,mr(n,i));try{await C(a,{method:`PATCH`,body:{simulator_url:e},credentials:{"prismic-auth":r}})}catch(e){throw e instanceof T&&(e.message=`Repository not found: ${n}`),e}}function mr(e,t){return new URL(`https://${e}.${t}/`)}async function B(e){let{env:t,repo:n,token:i,host:a}=e,[o,s]=await Promise.all([r({token:i,host:a}),ur({repo:n,token:i,host:a})]),c=s.filter(e=>e.kind!==`dev`&&e.users.some(e=>e.id===o.shortId)),l=c.find(e=>e.domain===t);if(l)return l.domain;throw c.length===0?new N(`No environments available on repository "${n}".`):new N(`Environment "${t}" not found on repository "${n}".\n\nAvailable environments:\n${c.map(e=>` ${e.domain}`).join(`
104
+ `)}`)}var hr=j({name:`prismic locale add`,description:`
46
105
  Add a locale to a Prismic repository.
47
106
 
48
107
  By default, this command reads the repository from prismic.config.json at the
49
108
  project root.
50
- `,positionals:{code:{description:`Locale code (e.g. fr-fr, es-es)`,required:!0}},options:{master:{type:`boolean`,description:`Set as the master locale`},name:{type:`string`,short:`n`,description:`Custom display name (for custom locales)`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m(),master:i=!1,name:a}=t,o=await D(),s=await O();try{await yn({id:n,isMaster:i,customName:a},{repo:r,token:o,host:s})}catch(e){throw e instanceof C?new N(`Failed to add locale: ${await e.text()}`):e}console.info(`Locale added: ${n}`)}),Cn=j({name:`prismic locale list`,description:`
109
+ `,positionals:{code:{description:`Locale code (e.g. fr-fr, es-es)`,required:!0}},options:{master:{type:`boolean`,description:`Set as the master locale`},name:{type:`string`,short:`n`,description:`Custom display name (for custom locales)`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i,master:o=!1,name:s}=t,c=await D(),l=await O(),u=i?await B({env:i,repo:r,token:c,host:l}):r;try{await nr({id:n,isMaster:o,customName:s},{repo:u,token:c,host:l})}catch(e){throw e instanceof w?new N(`Failed to add locale: ${await e.text()}`):e}console.info(`Locale added: ${n}`)}),gr=j({name:`prismic locale list`,description:`
51
110
  List all locales in a Prismic repository.
52
111
 
53
112
  By default, this command reads the repository from prismic.config.json at the
54
113
  project root.
55
- `,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({values:e})=>{let{repo:t=await m(),json:n}=e,r=await D(),i=await O(),a;try{a=await vn({repo:t,token:r,host:i})}catch(e){throw e instanceof C?new N(`Failed to list locales: ${await e.text()}`):e}if(n){console.info(T(a));return}if(a.length===0){console.info(`No locales found.`);return}let o=a.map(e=>{let t=e.isMaster?` (master)`:``;return[e.id,`${e.label}${t}`]});console.info(v(o,{headers:[`ID`,`LABEL`]}))}),wn=j({name:`prismic locale remove`,description:`
114
+ `,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({values:e})=>{let{repo:t=await a(),env:n,json:r}=e,i=await D(),o=await O(),s=n?await B({env:n,repo:t,token:i,host:o}):t,c;try{c=await tr({repo:s,token:i,host:o})}catch(e){throw e instanceof w?new N(`Failed to list locales: ${await e.text()}`):e}if(r){console.info(E(c));return}if(c.length===0){console.info(`No locales found.`);return}let l=c.map(e=>{let t=e.isMaster?` (master)`:``;return[e.id,`${e.label}${t}`]});console.info(h(l,{headers:[`ID`,`LABEL`]}))}),_r=j({name:`prismic locale remove`,description:`
56
115
  Remove a locale from a Prismic repository.
57
116
 
58
117
  By default, this command reads the repository from prismic.config.json at the
59
118
  project root.
60
- `,positionals:{code:{description:`Locale code (e.g. en-us, fr-fr)`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O();try{await bn(n,{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to remove locale: ${await e.text()}`):e}console.info(`Locale removed: ${n}`)}),Tn=j({name:`prismic locale set-master`,description:`
119
+ `,positionals:{code:{description:`Locale code (e.g. en-us, fr-fr)`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i}=t,o=await D(),s=await O(),c=i?await B({env:i,repo:r,token:o,host:s}):r;try{await rr(n,{repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to remove locale: ${await e.text()}`):e}console.info(`Locale removed: ${n}`)}),vr=j({name:`prismic locale set-master`,description:`
61
120
  Set the master locale for a Prismic repository.
62
121
 
63
122
  By default, this command reads the repository from prismic.config.json at the
64
123
  project root.
65
- `,positionals:{code:{description:`Locale code (e.g. en-us, fr-fr)`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O(),o;try{o=await vn({repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to set master locale: ${await e.text()}`):e}let s=o.find(e=>e.id===n);if(!s)throw new N(`Locale "${n}" not found. Available locales: ${o.map(e=>e.id).join(`, `)}`);if(s.isMaster)throw new N(`Locale "${n}" is already the master.`);try{await yn({id:s.id,isMaster:!0,customName:s.customName??void 0},{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to set master locale: ${await e.text()}`):e}console.info(`Master locale set: ${n}`)}),En=M({name:`prismic locale`,description:`Manage locales in a Prismic repository.`,commands:{add:{handler:Sn,description:`Add a locale`},list:{handler:Cn,description:`List locales`},remove:{handler:wn,description:`Remove a locale`},"set-master":{handler:Tn,description:`Set the master locale`}}}),Dn=j({name:`prismic login`,description:`Log in to Prismic via browser.`,options:{"no-browser":{type:`boolean`,description:`Skip opening the browser automatically`}}},async({values:e})=>{let{"no-browser":t}=e,{email:n}=await Ne({onReady:e=>{t?console.info(`Open this URL to log in: ${e}`):(console.info(`Opening browser to complete login...`),console.info(`If the browser doesn't open, visit: ${e}`),On(e))}});console.info(`Logged in to Prismic as ${n}`)});function On(e){Xe(`${process.platform===`darwin`?`open`:process.platform===`win32`?`start`:`xdg-open`} "${e.toString()}"`)}var kn=j({name:`prismic logout`,description:`Log out of Prismic.`},async()=>{if(await je())console.info(`Logged out of Prismic`);else throw new N(`Logout failed. You can log out manually by deleting the file.`)});const An=x({results:be(x({id:b(),label:b(),url:b()}))});async function jn(e){let{repo:t,token:n,host:r}=e,i=new URL(`core/repository/preview_configs`,Ln(t,r));try{return(await w(i,{credentials:{"prismic-auth":n},schema:An})).results}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${t}`),e}}async function Mn(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`previews/new`,Ln(n,i));try{await w(a,{method:`POST`,body:{name:e.name,websiteURL:e.websiteURL,resolverPath:e.resolverPath},credentials:{"prismic-auth":r}})}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${n}`),e}}async function Nn(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`previews/delete/${e}`,Ln(n,i));try{await w(a,{method:`POST`,body:{},credentials:{"prismic-auth":r}})}catch(e){throw e instanceof E&&(e.message=`Preview not found`),e}}const Pn=x({simulator_url:Ce(b())});async function Fn(e){let{repo:t,token:n,host:r}=e,i=new URL(`core/repository`,Ln(t,r));try{return(await w(i,{credentials:{"prismic-auth":n},schema:Pn})).simulator_url}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${t}`),e}}async function In(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`core/repository`,Ln(n,i));try{await w(a,{method:`PATCH`,body:{simulator_url:e},credentials:{"prismic-auth":r}})}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${n}`),e}}function Ln(e,t){return new URL(`https://${e}.${t}/`)}var Rn=j({name:`prismic preview add`,description:`
124
+ `,positionals:{code:{description:`Locale code (e.g. en-us, fr-fr)`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i}=t,o=await D(),s=await O(),c=i?await B({env:i,repo:r,token:o,host:s}):r,l;try{l=await tr({repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to set master locale: ${await e.text()}`):e}let u=l.find(e=>e.id===n);if(!u)throw new N(`Locale "${n}" not found. Available locales: ${l.map(e=>e.id).join(`, `)}`);if(u.isMaster)throw new N(`Locale "${n}" is already the master.`);try{await nr({id:u.id,isMaster:!0,customName:u.customName??void 0},{repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to set master locale: ${await e.text()}`):e}console.info(`Master locale set: ${n}`)}),yr=M({name:`prismic locale`,description:`Manage locales in a Prismic repository.`,commands:{add:{handler:hr,description:`Add a locale`},list:{handler:gr,description:`List locales`},remove:{handler:_r,description:`Remove a locale`},"set-master":{handler:vr,description:`Set the master locale`}}}),br=j({name:`prismic login`,description:`Log in to Prismic via browser.`,options:{"no-browser":{type:`boolean`,description:`Skip opening the browser automatically`}}},async({values:e})=>{let{"no-browser":t}=e,{email:n}=await Ee({onReady:e=>{t?console.info(`Open this URL to log in: ${e}`):(console.info(`Opening browser to complete login...`),console.info(`If the browser doesn't open, visit: ${e}`),Cn(e))}});console.info(`Logged in to Prismic as ${n}`)}),xr=j({name:`prismic logout`,description:`Log out of Prismic.`},async()=>{if(await we())console.info(`Logged out of Prismic`);else throw new N(`Logout failed. You can log out manually by deleting the file.`)}),Sr=j({name:`prismic preview add`,description:`
66
125
  Add a preview configuration to a Prismic repository.
67
126
 
68
127
  By default, this command reads the repository from prismic.config.json at the
69
128
  project root.
70
- `,positionals:{url:{description:`Preview URL (e.g. https://example.com/api/preview)`,required:!0}},options:{name:{type:`string`,short:`n`,description:`Display name (defaults to hostname)`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m(),name:i}=t,a;try{a=new URL(n)}catch{throw new N(`Invalid URL: ${n}`)}let o=i||a.hostname,s=`${a.protocol}//${a.host}`,c=a.pathname===`/`?void 0:a.pathname,l=await D(),u=await O();try{await Mn({name:o,websiteURL:s,resolverPath:c},{repo:r,token:l,host:u})}catch(e){throw e instanceof C?new N(`Failed to add preview: ${await e.text()}`):e}console.info(`Preview added: ${n}`)}),zn=j({name:`prismic preview list`,description:`
129
+ `,positionals:{url:{description:`Preview URL (e.g. https://example.com/api/preview)`,required:!0}},options:{name:{type:`string`,short:`n`,description:`Display name (defaults to hostname)`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i,name:o}=t,s;try{s=new URL(n)}catch{throw new N(`Invalid URL: ${n}`)}let c=o||s.hostname,l=`${s.protocol}//${s.host}`,u=s.pathname===`/`?void 0:s.pathname,d=await D(),f=await O(),p=i?await B({env:i,repo:r,token:d,host:f}):r;try{await sr({name:c,websiteURL:l,resolverPath:u},{repo:p,token:d,host:f})}catch(e){throw e instanceof w?new N(`Failed to add preview: ${await e.text()}`):e}console.info(`Preview added: ${n}`),console.info("Run `prismic preview set-simulator <url>` to set the slice simulator URL.")}),Cr=j({name:`prismic preview list`,description:`
71
130
  List all preview configurations in a Prismic repository.
72
131
 
73
132
  By default, this command reads the repository from prismic.config.json at the
74
133
  project root.
75
- `,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({values:e})=>{let{repo:t=await m(),json:n}=e,r=await D(),i=await O(),a,o;try{[a,o]=await Promise.all([jn({repo:t,token:r,host:i}),Fn({repo:t,token:r,host:i})])}catch(e){throw e instanceof C?new N(`Failed to list previews: ${await e.text()}`):e}if(n){console.info(T({previews:a,simulatorUrl:o??null}));return}if(a.length===0&&!o){console.info(`No preview configurations found.`);return}if(a.length>0){let e=a.map(e=>[e.url,e.label]);console.info(v(e,{headers:[`URL`,`NAME`]}))}o&&(a.length>0&&console.info(``),console.info(`Simulator: ${o}`))}),Bn=j({name:`prismic preview remove`,description:`
134
+ `,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({values:e})=>{let{repo:t=await a(),env:n,json:r}=e,i=await D(),o=await O(),s=n?await B({env:n,repo:t,token:i,host:o}):t,c,l;try{[c,l]=await Promise.all([or({repo:s,token:i,host:o}),fr({repo:s,token:i,host:o})])}catch(e){throw e instanceof w?new N(`Failed to list previews: ${await e.text()}`):e}if(r){console.info(E({previews:c,simulatorUrl:l??null}));return}if(c.length===0&&!l){console.info(`No preview configurations found.`);return}if(c.length>0){let e=c.map(e=>[e.url,e.label]);console.info(h(e,{headers:[`URL`,`NAME`]}))}l&&(c.length>0&&console.info(``),console.info(`Simulator: ${l}`))}),wr=j({name:`prismic preview remove`,description:`
76
135
  Remove a preview configuration from a Prismic repository.
77
136
 
78
137
  By default, this command reads the repository from prismic.config.json at the
79
138
  project root.
80
- `,positionals:{url:{description:`Preview URL to remove`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O(),o;try{o=await jn({repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to remove preview: ${await e.text()}`):e}let s=o.find(e=>e.url===n);if(!s)throw new N(`Preview not found: ${n}`);try{await Nn(s.id,{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to remove preview: ${await e.text()}`):e}console.info(`Preview removed: ${n}`)}),Vn=j({name:`prismic preview set-simulator`,description:`
139
+ `,positionals:{url:{description:`Preview URL to remove`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i}=t,o=await D(),s=await O(),c=i?await B({env:i,repo:r,token:o,host:s}):r,l;try{l=await or({repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to remove preview: ${await e.text()}`):e}let u=l.find(e=>e.url===n);if(!u)throw new N(`Preview not found: ${n}`);try{await cr(u.id,{repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to remove preview: ${await e.text()}`):e}console.info(`Preview removed: ${n}`)}),Tr=j({name:`prismic preview set-simulator`,description:`
81
140
  Set the slice simulator URL for a Prismic repository.
82
141
 
83
142
  If the URL pathname does not end with /slice-simulator, it is appended
@@ -85,58 +144,127 @@ import{A as e,B as t,C as n,D as r,E as i,F as a,I as o,M as s,N as c,O as l,P a
85
144
 
86
145
  By default, this command reads the repository from prismic.config.json at the
87
146
  project root.
88
- `,positionals:{url:{description:`Simulator URL (e.g. https://example.com/slice-simulator)`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i;try{i=new URL(n)}catch{throw new N(`Invalid URL: ${n}`)}i.pathname.endsWith(`/slice-simulator`)||(i.pathname=i.pathname.replace(/\/+$/,``)+`/slice-simulator`);let a=i.toString(),o=await D(),s=await O();try{await In(a,{repo:r,token:o,host:s})}catch(e){throw e instanceof C?new N(`Failed to set simulator URL: ${await e.text()}`):e}console.info(`Simulator URL set: ${a}`)}),Hn=M({name:`prismic preview`,description:`Manage preview configurations in a Prismic repository.`,commands:{add:{handler:Rn,description:`Add a preview configuration`},list:{handler:zn,description:`List preview configurations`},remove:{handler:Bn,description:`Remove a preview configuration`},"set-simulator":{handler:Vn,description:`Set the slice simulator URL`}}});const Un=x({documentsPublished:S(),documentsUnpublished:S(),releasesCreated:S(),releasesUpdated:S(),tagsCreated:S(),tagsDeleted:S()}),Wn=Object.keys(Un.shape),Gn=x({config:ye(Un,{_id:b(),url:b(),active:S(),name:Se(b()),secret:Se(b()),headers:_e(b(),b())})});async function Kn(e){let{repo:t,token:n,host:r}=e,i=L(t,r),a=new URL(`app/settings/webhooks`,i);try{return await w(a,{credentials:{"prismic-auth":n},schema:be(Gn)})}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${t}`),e}}async function qn(e,t){let{repo:n,token:r,host:i}=t,a=L(n,i),o=new URL(`app/settings/webhooks/create`,a),s=new FormData;s.set(`url`,e.url),s.set(`name`,e.name??``),s.set(`secret`,e.secret??``),s.set(`headers`,JSON.stringify({})),s.set(`active`,`on`),s.set(`documentsPublished`,e.documentsPublished.toString()),s.set(`documentsUnpublished`,e.documentsUnpublished.toString()),s.set(`releasesCreated`,e.releasesCreated.toString()),s.set(`releasesUpdated`,e.releasesUpdated.toString()),s.set(`tagsCreated`,e.tagsCreated.toString()),s.set(`tagsDeleted`,e.tagsDeleted.toString());try{await w(o,{method:`POST`,body:s,credentials:{"prismic-auth":r}})}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${n}`),e}}async function Jn(e,t,n){let{repo:r,token:i,host:a}=n,o=L(r,a),s=new URL(`app/settings/webhooks/${e}`,o),c=new FormData;c.set(`url`,t.url),c.set(`name`,t.name??``),c.set(`secret`,t.secret??``),c.set(`headers`,JSON.stringify(t.headers??{})),c.set(`active`,t.active?`on`:`off`),c.set(`documentsPublished`,t.documentsPublished.toString()),c.set(`documentsUnpublished`,t.documentsUnpublished.toString()),c.set(`releasesCreated`,t.releasesCreated.toString()),c.set(`releasesUpdated`,t.releasesUpdated.toString()),c.set(`tagsCreated`,t.tagsCreated.toString()),c.set(`tagsDeleted`,t.tagsDeleted.toString());try{await w(s,{method:`POST`,body:c,credentials:{"prismic-auth":i}})}catch(e){throw e instanceof E&&(e.message=`Webhook not found`),e}}async function Yn(e,t){let{repo:n,token:r,host:i}=t,a=L(n,i),o=new URL(`app/settings/webhooks/${e}/delete`,a);try{await w(o,{method:`POST`,credentials:{"prismic-auth":r}})}catch(e){throw e instanceof E&&(e.message=`Webhook not found`),e}}const Xn=x({id:b(),scope:b(),token:b(),created_at:x({$date:ge()})}),Zn=x({id:b(),name:b(),wroom_auths:be(Xn)}),Qn=x({app_name:b(),token:b(),timestamp:ge()}),$n=x({max_tokens:ge(),tokens:be(Qn)});async function er(e){let t=new URL(`settings/security/contentapi`,L(e.repo,e.host));try{return await w(t,{credentials:{"prismic-auth":e.token},schema:be(Zn)})}catch(t){throw t instanceof E&&(t.message=`Repository not found: ${e.repo}`),t}}async function tr(e,t){let n=new URL(`settings/security/oauthapp`,L(t.repo,t.host));try{return await w(n,{method:`POST`,body:{app_name:e},credentials:{"prismic-auth":t.token},schema:Zn})}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${t.repo}`),e}}async function nr(e,t,n){let r=new URL(`settings/security/authorizations`,L(n.repo,n.host));try{return await w(r,{method:`POST`,body:{app:e,scope:t},credentials:{"prismic-auth":n.token},schema:Xn})}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${n.repo}`),e}}async function rr(e,t){let n=new URL(`settings/security/authorizations/${encodeURIComponent(e)}`,L(t.repo,t.host));try{await w(n,{method:`DELETE`,credentials:{"prismic-auth":t.token}})}catch(e){throw e instanceof E&&(e.message=`Token not found`),e}}async function ir(e){let t=new URL(`settings/security/customtypesapi`,L(e.repo,e.host));try{return await w(t,{credentials:{"prismic-auth":e.token},schema:$n})}catch(t){throw t instanceof E&&(t.message=`Repository not found: ${e.repo}`),t}}async function ar(e,t){let n=new URL(`settings/security/token`,L(t.repo,t.host));try{return await w(n,{method:`POST`,body:{app_name:e},credentials:{"prismic-auth":t.token},schema:Qn})}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${t.repo}`),e}}async function or(e,t){let n=new URL(`settings/security/token/${encodeURIComponent(e)}`,L(t.repo,t.host));try{await w(n,{method:`DELETE`,credentials:{"prismic-auth":t.token}})}catch(t){throw t instanceof E&&(t.message=`Token not found: ${e}`),t}}async function sr(e){let{domain:t,token:n,host:r}=e;return await w(new URL(`app/dashboard/repositories/${t}/exists`,mr(r)),{credentials:{"prismic-auth":n},schema:S()})}async function cr(e){let{domain:t,name:n,framework:r,token:i,host:a}=e;await w(new URL(`app/dashboard/repositories`,mr(a)),{method:`POST`,body:{domain:t,name:n,framework:r,plan:`personal`},credentials:{"prismic-auth":i}})}const lr=x({repository:x({api_access:b()})});async function ur(e){let{repo:t,token:n,host:r}=e,i=new URL(`syncState`,L(t,r));try{return(await w(i,{credentials:{"prismic-auth":n},schema:lr})).repository.api_access}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${t}`),e}}async function dr(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`settings/security/apiaccess`,L(n,i));try{await w(a,{method:`POST`,body:{api_access:e},credentials:{"prismic-auth":r}})}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${n}`),e}}const fr=x({repository:x({name:b()})});async function pr(e,t){let{repo:n,token:r,host:i}=t,a=new URL(`app/settings/repository`,L(n,i)),o=new FormData;o.set(`displayname`,e);try{return(await w(a,{method:`POST`,body:o,credentials:{"prismic-auth":r},schema:fr})).repository.name}catch(e){throw e instanceof E&&(e.message=`Repository not found: ${n}`),e}}function mr(e){return new URL(`https://${e}/`)}function L(e,t){return new URL(`https://${e}.${t}/`)}var hr=j({name:`prismic repo create`,description:`Create a new Prismic repository.`,options:{name:{type:`string`,short:`n`,description:`Display name for the repository`}}},async({values:e})=>{let{name:t}=e,n=await D(),r=await O(),i=await gr({token:n,host:r});if(!i)throw new N(`Failed to create a repository. Please try again.`);let a=(await h().catch(()=>void 0))?.id??`other`;try{await cr({domain:i,name:t??i,framework:a,token:n,host:r})}catch(e){throw e instanceof C?new N(`Failed to create repository: ${await e.text()}`):e}console.info(`Repository created: ${i}`),console.info(`URL: https://${i}.${r}/`)});async function gr(e){let{token:t,host:n}=e,r;for(let e=0;e<5;e++){let e=crypto.randomUUID().replace(/-/g,``).slice(0,8);if(await sr({domain:e,token:t,host:n})){r=e;break}}return r}var _r=j({name:`prismic repo list`,description:`List all Prismic repositories associated with your account.`,options:{json:{type:`boolean`,description:`Output as JSON`}}},async({values:e})=>{let{json:t}=e,n=await D(),r=await O(),i;try{i=await f({token:n,host:r})}catch(e){throw e instanceof C?new N(`Failed to list repositories: ${await e.text()}`):e}let a=i.repositories;if(t){console.info(T(a.map(e=>({domain:e.domain,name:e.name??null,role:e.role??null,url:`https://${e.domain}.${r}/`}))));return}if(a.length===0){console.info(`No repositories found.`);return}let o=a.map(e=>{let t=e.name||`(no name)`;return[e.domain,t,e.role??``]});console.info(v(o,{headers:[`DOMAIN`,`NAME`,`ROLE`]}))});const vr=[`private`,`public`,`open`];var yr=j({name:`prismic repo set-api-access`,description:`
147
+ `,positionals:{url:{description:`Simulator URL (e.g. https://example.com/slice-simulator)`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i}=t,o;try{o=new URL(n)}catch{throw new N(`Invalid URL: ${n}`)}o.pathname.endsWith(`/slice-simulator`)||(o.pathname=o.pathname.replace(/\/+$/,``)+`/slice-simulator`);let s=o.toString(),c=await D(),l=await O(),u=i?await B({env:i,repo:r,token:c,host:l}):r;try{await pr(s,{repo:u,token:c,host:l})}catch(e){throw e instanceof w?new N(`Failed to set simulator URL: ${await e.text()}`):e}console.info(`Simulator URL set: ${s}`)}),Er=M({name:`prismic preview`,description:`Manage preview configurations in a Prismic repository.`,commands:{add:{handler:Sr,description:`Add a preview configuration`},list:{handler:Cr,description:`List preview configurations`},remove:{handler:wr,description:`Remove a preview configuration`},"set-simulator":{handler:Tr,description:`Set the slice simulator URL`}}});async function Dr(e){try{let{stdout:t}=await xe(`git`,[`rev-parse`,`--show-toplevel`],{nodeOptions:{cwd:Le(e)},throwOnError:!0}),n=t.trim();return n?me(Re(n)):void 0}catch{return}}async function Or(e){try{let{stdout:t}=await xe(`git`,[`status`,`--porcelain`,`--untracked-files=no`],{nodeOptions:{cwd:Le(e)},throwOnError:!0}),n=[];for(let r of t.split(`
148
+ `)){if(r.length<4)continue;let t=r.slice(3),i=t.indexOf(` -> `);i!==-1&&(t=t.slice(i+4)),n.push(new URL(t,e))}return n}catch{return[]}}var kr=j({name:`prismic pull`,description:`
149
+ Pull content types and slices from Prismic to local files.
150
+
151
+ Remote models are the source of truth. Local files are created, updated,
152
+ or deleted to match.
153
+ `,options:{force:{type:`boolean`,short:`f`,description:`Overwrite local changes`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({values:e})=>{let{force:t=!1,repo:n=await a(),env:r}=e,i=await D(),s=await O(),c=await o(),l=await u(),d=r?await B({env:r,repo:n,token:i,host:s}):n;r?console.info(`Pulling from repository: ${n} (env: ${r})`):console.info(`Pulling from repository: ${d}`);let[f,p,m]=await Promise.all([Dr(l),c.getCustomTypeLibraries(),c.getSliceLibraries()]);if(!t&&f){let e=(await Or(f)).filter(e=>e.pathname.endsWith(`/model.json`)&&m.some(t=>ge(t,e))||e.pathname.endsWith(`/index.json`)&&p.some(t=>ge(t,e))).map(e=>he(l,e));if(e.length>0)throw new N(`
154
+ Local model files have uncommitted changes. Commit them first so a
155
+ pull won't silently discard your edits:
156
+
157
+ git add ${e.join(` `)}
158
+ git commit -m "Update Prismic models"
159
+ prismic pull
160
+
161
+ Other options:
162
+ prismic push --force Keep local edits, overwrite remote
163
+ prismic pull --force Discard local edits, adopt remote
164
+ `)}let[h,g,ee,te]=await Promise.all([c.getCustomTypes(),c.getSlices(),ln({repo:d,token:i,host:s}),pn({repo:d,token:i,host:s})]),_=R(ee,h.map(e=>e.model),{getKey:e=>e.id}),v=R(te,g.map(e=>e.model),{getKey:e=>e.id});if(!t&&!f){let e=new Set([..._.update,..._.delete].map(e=>e.id)),t=new Set([...v.update,...v.delete].map(e=>e.id)),n=[...h.filter(t=>e.has(t.model.id)),...g.filter(e=>t.has(e.model.id))].map(e=>he(l,e.modelPath));if(n.length>0)throw new N(`
165
+ Pull would modify or delete local model files:
166
+ ${n.join(`
167
+ `)}
168
+
169
+ This project isn't in a git repo, so changes can't be tracked. Choose one:
170
+ prismic pull --force Discard local files, adopt remote
171
+ prismic push --force Keep local files, overwrite remote
172
+ `)}for(let e of _.insert)await c.createCustomType(e);for(let e of _.update)await c.updateCustomType(e);for(let e of _.delete)await c.deleteCustomType(e.id);for(let e of v.insert)await c.createSlice(e);for(let e of v.update)await c.updateSlice(e);for(let e of v.delete)await c.deleteSlice(e.id);await c.generateTypes();let y=_.insert.length+_.update.length,ne=v.insert.length+v.update.length,re=_.delete.length+v.delete.length;if(y===0&&ne===0&&re===0){console.info(`Already up to date.`);return}console.info(`Inserted ${_.insert.length}, updated ${_.update.length}, deleted ${_.delete.length} types`),console.info(`Inserted ${v.insert.length}, updated ${v.update.length}, deleted ${v.delete.length} slices`)}),Ar=j({name:`prismic push`,description:`
173
+ Push local content types and slices to Prismic.
174
+
175
+ Local models are the source of truth. Remote models are created,
176
+ updated, or deleted to match.
177
+ `,options:{force:{type:`boolean`,short:`f`,description:`Skip safety checks`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({values:e})=>{let{force:t=!1,repo:n=await a(),env:r}=e,s=await D(),c=await O(),l=await o(),d=await u(),f=r?await B({env:r,repo:n,token:s,host:c}):n;r?console.info(`Pushing to repository: ${n} (env: ${r})`):console.info(`Pushing to repository: ${f}`);let[p,m,h]=await Promise.all([Dr(d),l.getCustomTypeLibraries(),l.getSliceLibraries()]);if(!t&&p){let e=(await Or(p)).filter(e=>e.pathname.endsWith(`/model.json`)&&h.some(t=>ge(t,e))||e.pathname.endsWith(`/index.json`)&&m.some(t=>ge(t,e))).map(e=>he(d,e));if(e.length>0)throw new N(`
178
+ Local model files have uncommitted changes. Commit them, then push:
179
+
180
+ git add ${e.join(` `)}
181
+ git commit -m "Update Prismic models"
182
+ prismic push
183
+
184
+ Or skip the safety check with \`prismic push --force\`.
185
+ `)}let[g,ee,te,_]=await Promise.all([l.getCustomTypes(),l.getSlices(),ln({repo:f,token:s,host:c}),pn({repo:f,token:s,host:c})]),v=R(g.map(e=>e.model),te,{getKey:e=>e.id}),y=R(ee.map(e=>e.model),_,{getKey:e=>e.id});if(!t){let e=me(m[0]),t=me(h[0]),n=[...v.delete.map(t=>he(d,new URL(`${t.id}/index.json`,e))),...y.delete.map(e=>he(d,new URL(`${i(e.name)}/model.json`,t)))];if(n.length>0)throw new N(`
186
+ Push would delete remote models. Re-run with --force to proceed.
187
+
188
+ Models that would be deleted:
189
+ ${n.join(`
190
+ `)}
191
+ `)}for(let e of v.insert)await un(e,{repo:f,token:s,host:c});for(let e of v.update)await dn(e,{repo:f,token:s,host:c});for(let e of v.delete.map(e=>e.id))await fn(e,{repo:f,token:s,host:c});for(let e of y.insert)await mn(e,{repo:f,token:s,host:c});for(let e of y.update)await hn(e,{repo:f,token:s,host:c});for(let e of y.delete.map(e=>e.id))await gn(e,{repo:f,token:s,host:c});let ne=v.insert.length+v.update.length,re=y.insert.length+y.update.length,ie=v.delete.length+y.delete.length;ne===0&&re===0&&ie===0?console.info(`Already up to date.`):(console.info(`Pushed ${ne} type(s), ${re} slice(s).`),ie>0&&console.info(`Deleted ${ie} model(s).`))}),jr=j({name:`prismic repo list`,description:`List all Prismic repositories associated with your account.`,options:{json:{type:`boolean`,description:`Output as JSON`}}},async({values:e})=>{let{json:t}=e,n=await D(),i=await O(),a;try{a=await r({token:n,host:i})}catch(e){throw e instanceof w?new N(`Failed to list repositories: ${await e.text()}`):e}let o=a.repositories;if(t){console.info(E(o.map(e=>({domain:e.domain,name:e.name??null,role:e.role??null,url:`https://${e.domain}.${i}/`}))));return}if(o.length===0){console.info(`No repositories found.`);return}let s=o.map(e=>{let t=e.name||`(no name)`;return[e.domain,t,e.role??``]});console.info(h(s,{headers:[`DOMAIN`,`NAME`,`ROLE`]}))});const Mr=[`private`,`public`,`open`];var Nr=j({name:`prismic repo set-api-access`,description:`
89
192
  Set the Content API access level of a Prismic repository.
90
193
 
91
194
  By default, this command reads the repository from prismic.config.json at the
92
195
  project root.
93
- `,positionals:{level:{description:`Access level (${vr.join(`, `)})`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t;if(!vr.includes(n))throw new N(`Invalid access level: ${n}. Must be one of: ${vr.join(`, `)}`);let i=await D(),a=await O();try{await dr(n,{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to set repository access: ${await e.text()}`):e}console.info(`Repository access set to: ${n}`)}),br=j({name:`prismic repo set-name`,description:`
196
+ `,positionals:{level:{description:`Access level (${Mr.join(`, `)})`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a()}=t;if(!Mr.includes(n))throw new N(`Invalid access level: ${n}. Must be one of: ${Mr.join(`, `)}`);let i=await D(),o=await O();try{await Kn(n,{repo:r,token:i,host:o})}catch(e){throw e instanceof w?new N(`Failed to set repository access: ${await e.text()}`):e}console.info(`Repository access set to: ${n}`)}),Pr=j({name:`prismic repo set-name`,description:`
94
197
  Set the display name of a Prismic repository.
95
198
 
96
199
  By default, this command reads the repository from prismic.config.json at the
97
200
  project root.
98
- `,positionals:{name:{description:`Display name for the repository`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O(),o;try{o=await pr(n,{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to set repository name: ${await e.text()}`):e}console.info(`Repository name set to: ${o}`)}),xr=j({name:`prismic repo view`,description:`
201
+ `,positionals:{name:{description:`Display name for the repository`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a()}=t,i=await D(),o=await O(),s;try{s=await Jn(n,{repo:r,token:i,host:o})}catch(e){throw e instanceof w?new N(`Failed to set repository name: ${await e.text()}`):e}console.info(`Repository name set to: ${s}`)}),Fr=j({name:`prismic repo view`,description:`
99
202
  View details of a Prismic repository.
100
203
 
101
204
  By default, this command reads the repository from prismic.config.json at the
102
205
  project root.
103
- `,options:{web:{type:`boolean`,short:`w`,description:`Open repository in browser`},json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({values:e})=>{let{repo:t=await m(),web:n,json:r}=e,i=await D(),a=await O(),o=`https://${t}.${a}/`;if(n){hn(new URL(o)),console.info(`Opening ${o}`);return}let s,c;try{[s,c]=await Promise.all([f({token:i,host:a}),ur({repo:t,token:i,host:a})])}catch(e){throw e instanceof C?new N(`Failed to fetch repository details: ${await e.text()}`):e}let l=s.repositories.find(e=>e.domain===t);if(!l)throw new N(`Repository not found: ${t}`);if(r){console.info(T({domain:l.domain,name:l.name??null,url:o,apiAccess:c}));return}let u=l.name||`(no name)`;console.info(`Name: ${u}`),console.info(`URL: ${o}`),console.info(`Content API: ${c}`)}),Sr=M({name:`prismic repo`,description:`Manage Prismic repositories.`,commands:{create:{handler:hr,description:`Create a new repository`},list:{handler:_r,description:`List repositories`},view:{handler:xr,description:`View repository details`},"set-name":{handler:br,description:`Set repository display name`},"set-api-access":{handler:yr,description:`Set Content API access level`}}}),Cr=j({name:`prismic slice add-variation`,description:`Add a variation to a slice.`,positionals:{name:{description:`Name of the variation`,required:!0}},options:{to:{type:`string`,required:!0,description:`ID of the slice`},id:{type:`string`,description:`Custom ID for the variation`},screenshot:{type:`string`,short:`s`,description:`Screenshot image file path or URL`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[r]=e,{to:o,id:s=a(r),screenshot:l,repo:d=await m()}=t,f=await h(),p=await D(),g=await O(),_=await i(o,{repo:d,token:p,host:g});if(_.variations.some(e=>e.id===s))throw new N(`Variation "${s}" already exists in slice "${o}".`);let ee=``;if(l){let e=await we(/^https?:\/\//i.test(l)?new URL(l):We(l)),t;try{t=await u(e,{sliceId:_.id,variationId:s,repo:d,token:p,host:g})}catch(e){throw e instanceof n?new N(e.message):e}ee=t.toString()}let te={..._,variations:[..._.variations,{id:s,name:r,description:r,docURL:``,imageUrl:ee,version:``,primary:{}}]};try{await c(te,{repo:d,host:g,token:p})}catch(e){throw e instanceof C?new N(`Failed to add variation: ${await e.text()}`):e}try{await f.updateSlice(te)}catch{await f.createSlice(te)}await f.generateTypes(),console.info(`Added variation "${r}" (id: "${s}") to slice "${o}"`)}),wr=j({name:`prismic slice connect`,description:`Connect a slice to a type's slice zone.`,positionals:{id:{description:`ID of the slice`,required:!0}},options:{to:{type:`string`,required:!0,description:`ID of the content type`},"slice-zone":{type:`string`,description:`Slice zone field ID (default: "slices")`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{to:r,"slice-zone":a=`slices`,repo:o=await m()}=t,c=await h(),l={repo:o,token:await D(),host:await O()},u=await i(n,l),d=await y(r,l),f=Object.assign({},...Object.values(d.json))[a];if(!f||f.type!==`Slices`)throw new N(`Slice zone "${a}" not found in "${r}".`);if(f.config??={},f.config.choices??={},u.id in f.config.choices)throw new N(`Slice "${u.id}" is already connected to "${r}" in slice zone "${a}".`);f.config.choices[u.id]={type:`SharedSlice`};try{await s(d,l)}catch(e){throw e instanceof C?new N(`Failed to connect slice: ${await e.text()}`):e}try{await c.updateCustomType(d)}catch{await c.createCustomType(d)}await c.generateTypes(),console.info(`Connected slice "${n}" to "${r}"`)}),Tr=j({name:`prismic slice create`,description:`Create a new slice.`,positionals:{name:{description:`Name of the slice`,required:!0}},options:{id:{type:`string`,description:`Custom ID for the slice`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{id:r=d(n),repo:i=await m()}=t,a={id:r,name:n,type:`SharedSlice`,variations:[{id:`default`,name:`Default`,description:`Default`,docURL:``,imageUrl:``,version:``,primary:{}}]},o=await h(),s=await D(),c=await O();try{await ae(a,{repo:i,host:c,token:s})}catch(e){throw e instanceof C?new N(`Failed to create slice: ${await e.text()}`):e}await o.createSlice(a),await o.generateTypes(),console.info(`Created slice "${n}" (id: "${r}")`)}),Er=j({name:`prismic slice disconnect`,description:`Disconnect a slice from a type's slice zone.`,positionals:{id:{description:`ID of the slice`,required:!0}},options:{from:{type:`string`,required:!0,description:`ID of the content type`},"slice-zone":{type:`string`,description:`Slice zone field ID (default: "slices")`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{from:r,"slice-zone":a=`slices`,repo:o=await m()}=t,c=await h(),l={repo:o,token:await D(),host:await O()},u=await i(n,l),d=await y(r,l),f=Object.assign({},...Object.values(d.json))[a];if(!f||f.type!==`Slices`)throw new N(`Slice zone "${a}" not found in "${r}".`);if(!f.config?.choices||!(u.id in f.config.choices))throw new N(`Slice "${u.id}" is not connected to "${r}" in slice zone "${a}".`);delete f.config.choices[u.id];try{await s(d,l)}catch(e){throw e instanceof C?new N(`Failed to disconnect slice: ${await e.text()}`):e}try{await c.updateCustomType(d)}catch{await c.createCustomType(d)}await c.generateTypes(),console.info(`Disconnected slice "${n}" from "${r}"`)}),Dr=j({name:`prismic slice edit`,description:`Edit a slice.`,positionals:{id:{description:`ID of the slice`,required:!0}},options:{name:{type:`string`,short:`n`,description:`New name for the slice`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,a=await h(),o=await D(),s=await O(),l={...await i(n,{repo:r,token:o,host:s})};`name`in t&&(l.name=t.name);try{await c(l,{repo:r,host:s,token:o})}catch(e){throw e instanceof C?new N(`Failed to update slice: ${await e.text()}`):e}try{await a.updateSlice(l)}catch{await a.createSlice(l)}await a.generateTypes(),console.info(`Slice updated: "${l.name}" (id: ${l.id})`)}),Or=j({name:`prismic slice edit-variation`,description:`Edit a variation of a slice.`,positionals:{id:{description:`ID of the variation`,required:!0}},options:{"from-slice":{type:`string`,required:!0,description:`ID of the slice`},name:{type:`string`,short:`n`,description:`New name for the variation`},screenshot:{type:`string`,short:`s`,description:`Screenshot image file path or URL`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[r]=e,{"from-slice":a,screenshot:o,repo:s=await m()}=t,l=await h(),d=await D(),f=await O(),p=await i(a,{repo:s,token:d,host:f}),g=p.variations.find(e=>e.id===r);if(!g)throw new N(`Variation "${r}" not found in slice "${a}".`);if(`name`in t&&(g.name=t.name),o){let e=await we(/^https?:\/\//i.test(o)?new URL(o):We(o)),t;try{t=await u(e,{sliceId:p.id,variationId:g.id,repo:s,token:d,host:f})}catch(e){throw e instanceof n?new N(e.message):e}g.imageUrl=t.toString()}try{await c(p,{repo:s,host:f,token:d})}catch(e){throw e instanceof C?new N(`Failed to update variation: ${await e.text()}`):e}try{await l.updateSlice(p)}catch{await l.createSlice(p)}await l.generateTypes(),console.info(`Variation updated: "${r}" in slice "${a}"`)}),kr=j({name:`prismic slice list`,description:`List all slices.`,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({values:e})=>{let{json:t,repo:n=await m()}=e,i=await r({repo:n,token:await D(),host:await O()});if(t){console.info(T(i));return}if(i.length===0){console.info(`No slices found.`);return}let a=i.map(e=>[e.name,e.id]);console.info(v(a,{headers:[`NAME`,`ID`]}))}),Ar=j({name:`prismic slice remove`,description:`Remove a slice.`,positionals:{id:{description:`ID of the slice`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,a=await h(),o=await D(),s=await O(),c=await i(n,{repo:r,token:o,host:s});try{await ie(c.id,{repo:r,host:s,token:o})}catch(e){throw e instanceof C?new N(`Failed to remove slice: ${await e.text()}`):e}try{await a.deleteSlice(c.id)}catch{}await a.generateTypes(),console.info(`Slice removed: ${n}`)}),jr=j({name:`prismic slice remove-variation`,description:`Remove a variation from a slice.`,positionals:{id:{description:`ID of the variation`,required:!0}},options:{from:{type:`string`,required:!0,description:`ID of the slice`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{from:r,repo:a=await m()}=t,o=await h(),s=await D(),l=await O(),u=await i(r,{repo:a,token:s,host:l}),d=u.variations.find(e=>e.id===n);if(!d)throw new N(`Variation "${n}" not found in slice "${r}".`);let f={...u,variations:u.variations.filter(e=>e.id!==d.id)};try{await c(f,{repo:a,host:l,token:s})}catch(e){throw e instanceof C?new N(`Failed to remove variation: ${await e.text()}`):e}try{await o.updateSlice(f)}catch{await o.createSlice(f)}await o.generateTypes(),console.info(`Removed variation "${n}" from slice "${r}"`)}),Mr=j({name:`prismic slice view`,description:`View details of a slice.`,positionals:{id:{description:`ID of the slice`,required:!0}},options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{json:r,repo:a=await m()}=t,o=await i(n,{repo:a,token:await D(),host:await O()});if(r){console.info(T(o));return}console.info(`ID: ${o.id}`),console.info(`Name: ${o.name}`);for(let e of o.variations??[]){console.info(``),console.info(`${e.id}:`);let t=Object.entries(e.primary??{});if(t.length===0)console.info(` (no fields)`);else{let e=t.map(([e,t])=>{let n=t.config,r=n?.label||``,i=n?.placeholder?`"${n.placeholder}"`:``;return[` ${e}`,t.type,r,i]});console.info(v(e))}}}),Nr=M({name:`prismic slice`,description:`Manage slices.`,commands:{create:{handler:Tr,description:`Create a new slice`},edit:{handler:Dr,description:`Edit a slice`},remove:{handler:Ar,description:`Remove a slice`},list:{handler:kr,description:`List slices`},view:{handler:Mr,description:`View a slice`},connect:{handler:wr,description:`Connect a slice to a type's slice zone`},disconnect:{handler:Er,description:`Disconnect a slice from a type's slice zone`},"add-variation":{handler:Cr,description:`Add a variation to a slice`},"edit-variation":{handler:Or,description:`Edit a variation of a slice`},"remove-variation":{handler:jr,description:`Remove a variation from a slice`}}});const Pr=ke.TEST?500:5e3,Fr=6e4;var Ir=j({name:`prismic sync`,description:`
104
- Sync content types and slices from Prismic to local files.
105
-
106
- Remote models are the source of truth. Local files are created, updated,
107
- or deleted to match.
108
- `,options:{repo:{type:`string`,short:`r`,description:`Repository domain`},watch:{type:`boolean`,short:`w`,description:`Watch for changes and sync continuously`}}},async({values:e})=>{let{repo:t=await m(),watch:n}=e;if(!await ee(t,{token:await D(),host:await O()}))throw new oe;let r=await h();if(console.info(`Syncing from repository: ${t}`),Ie(`sync`,{watch:n}),n)await Lr(t,r);else{let e=await D(),i=await O();await r.syncModels({repo:t,token:e,host:i}),k(`sync`,{watch:n}),console.info(`Sync complete`)}});async function Lr(e,t){let n=await D(),i=await O(),a=await r({repo:e,token:n,host:i}),o=await p({repo:e,token:n,host:i});await t.syncModels({repo:e,token:n,host:i}),console.info(ue`
109
- Initial sync completed!
110
-
111
- Watching for changes (polling every ${Pr/1e3}s),
112
- Press Ctrl+C to stop\n
113
- `);let s=Br(a),c=Br(o),l=0;for(process.on(`SIGINT`,Rr),process.on(`SIGTERM`,Rr),process.on(`SIGHUP`,Rr),process.on(`SIGQUIT`,Rr),process.platform===`win32`&&process.on(`SIGBREAK`,Rr);;){await tt(zr(l));try{let a=Br(await r({repo:e,token:n,host:i})),o=a!==s,u=Br(await p({repo:e,token:n,host:i})),d=u!==c;if(o||d){let r=[];o&&(await t.syncSlices({repo:e,token:n,host:i,generateTypes:!1}),s=a,r.push(`slices`)),d&&(await t.syncCustomTypes({repo:e,token:n,host:i,generateTypes:!1}),c=u,r.push(`custom types`)),await t.generateTypes();let l=new Date().toLocaleTimeString();console.info(`[${l}] Changes detected in ${r.join(` and `)}`)}l=0}catch(e){l++;let t=e instanceof Error?e.message:`Unknown error`,n=Math.min(Pr*2**(l-1),Fr);if(console.error(`Error checking for changes: ${t}. Retrying in ${n/1e3}s...`),l>=10)throw Error(`Too many consecutive errors (10), stopping watch.`)}}}function Rr(){console.info(`Watch stopped. Goodbye!`),k(`sync`,{watch:!0}),process.exit(0)}function zr(e){return e===0?Pr:Math.min(Pr*2**(e-1),Fr)}function Br(e){return Ge(`sha256`).update(JSON.stringify(e)).digest(`hex`)}const Vr=`Prismic CLI`;var Hr=j({name:`prismic token create`,description:`
206
+ `,options:{web:{type:`boolean`,short:`w`,description:`Open repository in browser`},json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({values:e})=>{let{repo:t=await a(),web:n,json:i}=e,o=await D(),s=await O(),c=`https://${t}.${s}/`;if(n){Cn(new URL(c)),console.info(`Opening ${c}`);return}let l,u;try{[l,u]=await Promise.all([r({token:o,host:s}),Gn({repo:t,token:o,host:s})])}catch(e){throw e instanceof w?new N(`Failed to fetch repository details: ${await e.text()}`):e}let d=l.repositories.find(e=>e.domain===t);if(!d)throw new N(`Repository not found: ${t}`);if(i){console.info(E({domain:d.domain,name:d.name??null,url:c,apiAccess:u}));return}let f=d.name||`(no name)`;console.info(`Name: ${f}`),console.info(`URL: ${c}`),console.info(`Content API: ${u}`)}),Ir=M({name:`prismic repo`,description:`Manage Prismic repositories.`,commands:{create:{handler:Xn,description:`Create a new repository`},list:{handler:jr,description:`List repositories`},view:{handler:Fr,description:`View repository details`},"set-name":{handler:Pr,description:`Set repository display name`},"set-api-access":{handler:Nr,description:`Set Content API access level`}}}),Lr=j({name:`prismic slice add-variation`,description:`Add a variation to a slice.`,positionals:{name:{description:`Name of the variation`,required:!0}},options:{to:{type:`string`,required:!0,description:`ID of the slice`},id:{type:`string`,description:`Custom ID for the variation`},screenshot:{type:`string`,short:`s`,description:`Screenshot image file path or URL`}}},async({positionals:t,values:n})=>{let[r]=t,{to:i,id:s=e(r),screenshot:c}=n,l=await o(),{model:u}=await l.getSlice(i);if(u.variations.some(e=>e.id===s))throw new N(`Variation "${s}" already exists in slice "${i}".`);let d=``;if(c){let e=await a(),t=await D(),n=await O(),r=await ye(/^https?:\/\//i.test(c)?new URL(c):Re(c)),i;try{i=await yn(r,{sliceId:u.id,variationId:s,repo:e,token:t,host:n})}catch(e){throw e instanceof bn?new N(e.message):e}d=i.toString()}u.variations=[...u.variations,{id:s,name:r,description:r,docURL:``,imageUrl:d,version:``,primary:{}}],await l.updateSlice(u),await l.generateTypes(),console.info(`Added variation "${r}" (id: "${s}") to slice "${i}"`)}),Rr=j({name:`prismic slice connect`,description:`Connect a slice to a type's slice zone.`,sections:{EXAMPLES:`
207
+ Connect a slice to a type's default slice zone:
208
+ prismic slice connect hero --to blog_post
209
+
210
+ Connect to a named slice zone:
211
+ prismic slice connect hero --to blog_post --slice-zone page_slices
212
+ `},positionals:{id:{description:`ID of the slice`,required:!0}},options:{to:{type:`string`,required:!0,description:`ID of the content type`},"slice-zone":{type:`string`,description:`Slice zone field ID (default: "slices")`}}},async({positionals:e,values:t})=>{let[n]=e,{to:r,"slice-zone":i=`slices`}=t,a=await o(),{model:s}=await a.getSlice(n),{model:c}=await a.getCustomType(r),l=Object.assign({},...Object.values(c.json))[i];if(!l||l.type!==`Slices`)throw new N(`Slice zone "${i}" not found in "${r}".`);if(l.config??={},l.config.choices??={},s.id in l.config.choices)throw new N(`Slice "${s.id}" is already connected to "${r}" in slice zone "${i}".`);l.config.choices[s.id]={type:`SharedSlice`},await a.updateCustomType(c),await a.generateTypes(),console.info(`Connected slice "${n}" to "${r}"`)}),zr=j({name:`prismic slice create`,description:`Create a new slice.`,positionals:{name:{description:`Name of the slice`,required:!0}},options:{id:{type:`string`,description:`Custom ID for the slice`}}},async({positionals:e,values:n})=>{let[r]=e,{id:i=t(r)}=n,a={id:i,name:r,type:`SharedSlice`,variations:[{id:`default`,name:`Default`,description:`Default`,docURL:``,imageUrl:``,version:``,primary:{}}]},s=await o();await s.createSlice(a),await s.generateTypes(),console.info(`Created slice "${r}" (id: "${i}")`),console.info(`Run \`prismic field add <type> --to-slice ${i}\` to add fields.`),console.info(`Run \`prismic slice connect ${i} --to <type>\` to connect the slice to a type.`)}),Br=j({name:`prismic slice disconnect`,description:`Disconnect a slice from a type's slice zone.`,positionals:{id:{description:`ID of the slice`,required:!0}},options:{from:{type:`string`,required:!0,description:`ID of the content type`},"slice-zone":{type:`string`,description:`Slice zone field ID (default: "slices")`}}},async({positionals:e,values:t})=>{let[n]=e,{from:r,"slice-zone":i=`slices`}=t,a=await o(),{model:s}=await a.getSlice(n),{model:c}=await a.getCustomType(r),l=Object.assign({},...Object.values(c.json))[i];if(!l||l.type!==`Slices`)throw new N(`Slice zone "${i}" not found in "${r}".`);if(!l.config?.choices||!(s.id in l.config.choices))throw new N(`Slice "${s.id}" is not connected to "${r}" in slice zone "${i}".`);delete l.config.choices[s.id],await a.updateCustomType(c),await a.generateTypes(),console.info(`Disconnected slice "${n}" from "${r}"`)}),Vr=j({name:`prismic slice edit`,description:`Edit a slice.`,positionals:{id:{description:`ID of the slice`,required:!0}},options:{name:{type:`string`,short:`n`,description:`New name for the slice`}}},async({positionals:e,values:t})=>{let[n]=e,r=await o(),{model:i}=await r.getSlice(n);`name`in t&&(i.name=t.name),await r.updateSlice(i),await r.generateTypes(),console.info(`Slice updated: "${i.name}" (id: ${i.id})`)}),Hr=j({name:`prismic slice edit-variation`,description:`Edit a variation of a slice.`,positionals:{id:{description:`ID of the variation`,required:!0}},options:{"from-slice":{type:`string`,required:!0,description:`ID of the slice`},name:{type:`string`,short:`n`,description:`New name for the variation`},screenshot:{type:`string`,short:`s`,description:`Screenshot image file path or URL`}}},async({positionals:e,values:t})=>{let[n]=e,{"from-slice":r,screenshot:i}=t,s=await o(),{model:c}=await s.getSlice(r),l=c.variations.find(e=>e.id===n);if(!l)throw new N(`Variation "${n}" not found in slice "${r}".`);if(`name`in t&&(l.name=t.name),i){let e=await a(),t=await D(),n=await O(),r=await ye(/^https?:\/\//i.test(i)?new URL(i):Re(i)),o;try{o=await yn(r,{sliceId:c.id,variationId:l.id,repo:e,token:t,host:n})}catch(e){throw e instanceof bn?new N(e.message):e}l.imageUrl=o.toString()}await s.updateSlice(c),await s.generateTypes(),console.info(`Variation updated: "${n}" in slice "${r}"`)}),Ur=j({name:`prismic slice list`,description:`List all slices.`,options:{json:{type:`boolean`,description:`Output as JSON`}}},async({values:e})=>{let{json:t}=e,n=await(await o()).getSlices();if(t){console.info(E(n.map(e=>e.model)));return}if(n.length===0){console.info(`No slices found.`);return}let r=n.map(({model:e})=>[e.name,e.id]);console.info(h(r,{headers:[`NAME`,`ID`]}))}),Wr=j({name:`prismic slice remove`,description:`Remove a slice.`,positionals:{id:{description:`ID of the slice`,required:!0}}},async({positionals:e})=>{let[t]=e,n=await o(),{model:r}=await n.getSlice(t);await n.deleteSlice(r.id),await n.generateTypes(),console.info(`Slice removed: ${t}`)}),Gr=j({name:`prismic slice remove-variation`,description:`Remove a variation from a slice.`,positionals:{id:{description:`ID of the variation`,required:!0}},options:{from:{type:`string`,required:!0,description:`ID of the slice`}}},async({positionals:e,values:t})=>{let[n]=e,{from:r}=t,i=await o(),{model:a}=await i.getSlice(r),s=a.variations.find(e=>e.id===n);if(!s)throw new N(`Variation "${n}" not found in slice "${r}".`);a.variations=a.variations.filter(e=>e.id!==s.id),await i.updateSlice(a),await i.generateTypes(),console.info(`Removed variation "${n}" from slice "${r}"`)}),Kr=j({name:`prismic slice view`,description:`View details of a slice.`,positionals:{id:{description:`ID of the slice`,required:!0}},options:{json:{type:`boolean`,description:`Output as JSON`}}},async({positionals:e,values:t})=>{let[n]=e,{json:r}=t,{model:i}=await(await o()).getSlice(n);if(r){console.info(E(i));return}console.info(`ID: ${i.id}`),console.info(`Name: ${i.name}`);for(let e of i.variations??[]){console.info(``),console.info(`${e.id}:`);let t=Object.entries(e.primary??{});if(t.length===0)console.info(` (no fields)`);else{let e=t.map(([e,t])=>{let n=t.config,r=n?.label||``,i=n?.placeholder?`"${n.placeholder}"`:``;return[` ${e}`,t.type,r,i]});console.info(h(e))}}}),qr=M({name:`prismic slice`,description:`Manage slices.`,commands:{create:{handler:zr,description:`Create a new slice`},edit:{handler:Vr,description:`Edit a slice`},remove:{handler:Wr,description:`Remove a slice`},list:{handler:Ur,description:`List slices`},view:{handler:Kr,description:`View a slice`},connect:{handler:Rr,description:`Connect a slice to a type's slice zone`},disconnect:{handler:Br,description:`Disconnect a slice from a type's slice zone`},"add-variation":{handler:Lr,description:`Add a variation to a slice`},"edit-variation":{handler:Hr,description:`Edit a variation of a slice`},"remove-variation":{handler:Gr,description:`Remove a variation from a slice`}}}),Jr=j({name:`prismic status`,description:`
213
+ Show local vs remote model differences.
214
+
215
+ Reports what would be pushed to or pulled from Prismic, plus any local
216
+ model files with uncommitted git changes that would block pull and push.
217
+ `,options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({values:e})=>{let{repo:t=await a(),env:n}=e,i=await D(),s=await O(),c=await o(),l=await u(),[d,f,p,m,h]=await Promise.all([Dr(l),c.getCustomTypeLibraries(),c.getSliceLibraries(),c.getCustomTypes(),c.getSlices()]),g=t,ee,_,v;if(i){n&&(g=await B({env:n,repo:t,token:i,host:s}));let[e,a,o]=await Promise.all([r({token:i,host:s}),ln({repo:g,token:i,host:s}),pn({repo:g,token:i,host:s})]);ee=e.email,_=R(m.map(e=>e.model),a,{getKey:e=>e.id}),v=R(h.map(e=>e.model),o,{getKey:e=>e.id})}let y=[];d&&(y=(await Or(d)).filter(e=>e.pathname.endsWith(`/model.json`)&&p.some(t=>ge(t,e))||e.pathname.endsWith(`/index.json`)&&f.some(t=>ge(t,e))).map(e=>he(l,e))),console.info(`Repository: ${t}`),n&&console.info(`Environment: ${n}`),ee?console.info(`Authenticated as: ${ee}`):console.info("Not logged in — log in with `prismic login` to compare with remote.");let ne=_!==void 0&&v!==void 0&&_.insert.length===0&&_.update.length===0&&_.delete.length===0&&v.insert.length===0&&v.update.length===0&&v.delete.length===0;if(ne&&y.length===0){console.info(``),console.info(`Already up to date.`);return}if(_&&v){let e=[],t=[..._.insert.map(e=>` ${e.id} (custom type)`),...v.insert.map(e=>` ${e.id} (slice)`)];t.length>0&&e.push([`Local-only:`,...t]);let n=[..._.delete.map(e=>` ${e.id} (custom type)`),...v.delete.map(e=>` ${e.id} (slice)`)];n.length>0&&e.push([`Remote-only:`,...n]);let r=[..._.update.map(e=>` ${e.id} (custom type)`),...v.update.map(e=>` ${e.id} (slice)`)];r.length>0&&e.push([`Differ:`,...r]);for(let t of e){console.info(``);for(let e of t)console.info(e)}}if(y.length>0&&(console.info(``),console.info(te`
218
+ Pull and push won't run while these model files have uncommitted git changes:
219
+ ${y.join(`
220
+ `)}
221
+
222
+ To unblock, commit them:
223
+ git add ${y.join(` `)}
224
+ git commit -m "Update Prismic models"
225
+
226
+ Or override with \`prismic push --force\` (keep local) or \`prismic pull --force\` (discard local).
227
+ `)),_&&v&&!ne){let e=_.insert.length+v.insert.length,t=_.update.length+v.update.length,n=_.delete.length+v.delete.length;console.info(``),console.info(`Next:`),console.info(` prismic push — would create ${e}, update ${t}, delete ${n}`),console.info(` prismic pull — would create ${n}, update ${t}, delete ${e}`)}});const Yr=Se.TEST?500:5e3;var Xr=j({name:`prismic sync`,description:`
228
+ Watch Prismic and continuously pull changes to local files.
229
+
230
+ For one-time pulls, use \`prismic pull\`.
231
+ `,options:{watch:{type:`boolean`,short:`w`,description:`Watch for changes and sync continuously`,required:!0},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({values:e})=>{let{repo:t=await a(),env:n}=e,r=await D(),i=await O(),s=await o(),c=n?await B({env:n,repo:t,token:r,host:i}):t;ke(`sync`,{watch:!0}),process.on(`SIGINT`,()=>{console.info(`
232
+ Watch stopped. Goodbye!`),k(`sync`,{watch:!0}),process.exit(0)}),n?console.info(`Watching repository: ${t} (env: ${n}, polling every ${Yr/1e3}s, Ctrl+C to stop)`):console.info(`Watching repository: ${c} (polling every ${Yr/1e3}s, Ctrl+C to stop)`);let l=``,u=0;for(;;){try{let[e,t]=await Promise.all([ln({repo:c,token:r,host:i}),pn({repo:c,token:r,host:i})]),n=Zr({remoteCustomTypes:e,remoteSlices:t});if(n!==l){let r=l===``,[i,a]=await Promise.all([s.getCustomTypes(),s.getSlices()]),o=i.map(e=>e.model),c=a.map(e=>e.model),u=[],d=R(t,c,{getKey:e=>e.id});if(d.insert.length+d.update.length+d.delete.length>0){for(let e of d.update)await s.updateSlice(e);for(let e of d.delete)await s.deleteSlice(e.id);for(let e of d.insert)await s.createSlice(e);u.push(`slices`)}let f=R(e,o,{getKey:e=>e.id});if(f.insert.length+f.update.length+f.delete.length>0){for(let e of f.update)await s.updateCustomType(e);for(let e of f.delete)await s.deleteCustomType(e.id);for(let e of f.insert)await s.createCustomType(e);u.push(`custom types`)}if(await s.generateTypes(),l=n,r)console.info(`Initial sync complete.`);else{let e=new Date().toLocaleTimeString();console.info(`[${e}] Changes detected in ${u.join(` and `)}`)}}u=0}catch(e){u++;let t=e instanceof Error?e.message:`Unknown error`;if(console.error(`Error checking for changes: ${t}`),u>=5)throw Error(`Too many consecutive errors (5), stopping watch.`)}await Ye(Yr)}});function Zr(e){return ze(`sha256`).update(JSON.stringify(e)).digest(`hex`)}const Qr=`Prismic CLI`;var $r=j({name:`prismic token create`,description:`
114
233
  Create a new API token for a Prismic repository.
115
234
 
116
235
  By default, this command reads the repository from prismic.config.json at the
117
236
  project root.
118
- `,options:{write:{type:`boolean`,description:`Create a write token`},"allow-releases":{type:`boolean`,description:`Allow access to releases (read tokens only)`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({values:e})=>{let{repo:t=await m(),write:n,"allow-releases":r}=e;if(n&&r)throw new N(`--allow-releases is only valid for access tokens (not with --write)`);let i=await D(),a=await O();try{if(n){let e=await ar(Vr,{repo:t,token:i,host:a});console.info(`Token created: ${e.token}`)}else{let e=r?`master+releases`:`master`,n=(await er({repo:t,token:i,host:a})).find(e=>e.name===Vr);n||=await tr(Vr,{repo:t,token:i,host:a});let o=await nr(n.id,e,{repo:t,token:i,host:a});console.info(`Token created: ${o.token}`)}}catch(e){throw e instanceof C?new N(`Failed to create token: ${await e.text()}`):e}}),Ur=j({name:`prismic token delete`,description:`
237
+ `,options:{write:{type:`boolean`,description:`Create a write token`},"allow-releases":{type:`boolean`,description:`Allow access to releases (read tokens only)`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({values:e})=>{let{repo:t=await a(),env:n,write:r,"allow-releases":i}=e;if(r&&i)throw new N(`--allow-releases is only valid for access tokens (not with --write)`);let o=await D(),s=await O(),c=n?await B({env:n,repo:t,token:o,host:s}):t,l;try{if(r)l=(await Bn(Qr,{repo:c,token:o,host:s})).token;else{let e=i?`master+releases`:`master`,t=(await Fn({repo:c,token:o,host:s})).find(e=>e.name===Qr);t||=await In(Qr,{repo:c,token:o,host:s}),l=(await Ln(t.id,e,{repo:c,token:o,host:s})).token}}catch(e){throw e instanceof w?new N(`Failed to create token: ${await e.text()}`):e}console.info(`Token created: ${l}`);let u=r?`PRISMIC_WRITE_TOKEN`:`PRISMIC_ACCESS_TOKEN`;console.info(`Add it to your .env file: ${u}=${l}`)}),ei=j({name:`prismic token delete`,description:`
119
238
  Delete a token from a Prismic repository.
120
239
 
121
240
  By default, this command reads the repository from prismic.config.json at the
122
241
  project root.
123
- `,positionals:{token:{description:`Token value`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O(),o,s;try{[o,s]=await Promise.all([er({repo:r,token:i,host:a}),ir({repo:r,token:i,host:a})])}catch(e){throw e instanceof C?new N(`Failed to delete token: ${await e.text()}`):e}let c=o.flatMap(e=>e.wroom_auths).find(e=>e.token===n);if(c){try{await rr(c.id,{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to delete token: ${await e.text()}`):e}console.info(`Token deleted`);return}let l=s.tokens.find(e=>e.token===n);if(l){try{await or(l.token,{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to delete token: ${await e.text()}`):e}console.info(`Token deleted`);return}throw new N(`Token not found: ${n}`)}),Wr=M({name:`prismic token`,description:`Manage API tokens for a Prismic repository.`,commands:{list:{handler:j({name:`prismic token list`,description:`
242
+ `,positionals:{token:{description:`Token value`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i}=t,o=await D(),s=await O(),c=i?await B({env:i,repo:r,token:o,host:s}):r,l,u;try{[l,u]=await Promise.all([Fn({repo:c,token:o,host:s}),zn({repo:c,token:o,host:s})])}catch(e){throw e instanceof w?new N(`Failed to delete token: ${await e.text()}`):e}let d=l.flatMap(e=>e.wroom_auths).find(e=>e.token===n);if(d){try{await Rn(d.id,{repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to delete token: ${await e.text()}`):e}console.info(`Token deleted`);return}let f=u.tokens.find(e=>e.token===n);if(f){try{await Vn(f.token,{repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to delete token: ${await e.text()}`):e}console.info(`Token deleted`);return}throw new N(`Token not found: ${n}`)}),ti=M({name:`prismic token`,description:`Manage API tokens for a Prismic repository.`,commands:{list:{handler:j({name:`prismic token list`,description:`
124
243
  List all API tokens for a Prismic repository.
125
244
 
126
245
  By default, this command reads the repository from prismic.config.json at the
127
246
  project root.
128
- `,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({values:e})=>{let{repo:t=await m(),json:n}=e,r=await D(),i=await O(),a,o;try{[a,o]=await Promise.all([er({repo:t,token:r,host:i}),ir({repo:t,token:r,host:i})])}catch(e){throw e instanceof C?new N(`Failed to list tokens: ${await e.text()}`):e}let s=a.flatMap(e=>e.wroom_auths.map(t=>({name:e.name,scope:t.scope,token:t.token,createdAt:new Date(t.created_at.$date).toISOString().split(`T`)[0]}))),c=o.tokens;if(n){console.info(T({accessTokens:s,writeTokens:c}));return}if(s.length>0){console.info(`ACCESS TOKENS`);let e=s.map(e=>[` ${e.name}`,e.scope,e.token,e.createdAt]);console.info(v(e))}else console.info(`ACCESS TOKENS (none)`);if(console.info(``),c.length>0){console.info(`WRITE TOKENS`);let e=c.map(e=>{let t=new Date(e.timestamp*1e3).toISOString().split(`T`)[0];return[` ${e.app_name}`,e.token,t]});console.info(v(e))}else console.info(`WRITE TOKENS (none)`)}),description:`List all tokens`},create:{handler:Hr,description:`Create a new token`},delete:{handler:Ur,description:`Delete a token`}}}),Gr=j({name:`prismic type add-tab`,description:`Add a tab to a content type.`,positionals:{name:{description:`Name of the tab`,required:!0}},options:{to:{type:`string`,required:!0,description:`ID of the content type`},"with-slice-zone":{type:`boolean`,description:`Add a slice zone to the tab`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{to:r,"with-slice-zone":i,repo:a=await m()}=t,o=await h(),c=await D(),l=await O(),u=await y(r,{repo:a,token:c,host:l});if(n in u.json)throw new N(`Tab "${n}" already exists in "${r}".`);u.json[n]=i?{slices:{type:`Slices`,fieldset:`Slice Zone`,config:{choices:{}}}}:{};try{await s(u,{repo:a,host:l,token:c})}catch(e){throw e instanceof C?new N(`Failed to add tab: ${await e.text()}`):e}try{await o.updateCustomType(u)}catch{await o.createCustomType(u)}await o.generateTypes(),console.info(`Added tab "${n}" to "${r}"`)}),Kr=j({name:`prismic type create`,description:`Create a new content type.`,positionals:{name:{description:`Name of the content type`,required:!0}},options:{format:{type:`string`,short:`f`,description:`Type format: "custom" (default) or "page"`},single:{type:`boolean`,short:`s`,description:`Allow only one document of this type`},id:{type:`string`,description:`Custom ID for the content type`},repo:{type:`string`,short:`r`,description:`Repository domain`}},sections:{FORMATS:`
247
+ `,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({values:e})=>{let{repo:t=await a(),env:n,json:r}=e,i=await D(),o=await O(),s=n?await B({env:n,repo:t,token:i,host:o}):t,c,l;try{[c,l]=await Promise.all([Fn({repo:s,token:i,host:o}),zn({repo:s,token:i,host:o})])}catch(e){throw e instanceof w?new N(`Failed to list tokens: ${await e.text()}`):e}let u=c.flatMap(e=>e.wroom_auths.map(t=>({name:e.name,scope:t.scope,token:t.token,createdAt:new Date(t.created_at.$date).toISOString().split(`T`)[0]}))),d=l.tokens;if(r){console.info(E({accessTokens:u,writeTokens:d}));return}if(u.length>0){console.info(`ACCESS TOKENS`);let e=u.map(e=>[` ${e.name}`,e.scope,e.token,e.createdAt]);console.info(h(e))}else console.info(`ACCESS TOKENS (none)`);if(console.info(``),d.length>0){console.info(`WRITE TOKENS`);let e=d.map(e=>{let t=new Date(e.timestamp*1e3).toISOString().split(`T`)[0];return[` ${e.app_name}`,e.token,t]});console.info(h(e))}else console.info(`WRITE TOKENS (none)`)}),description:`List all tokens`},create:{handler:$r,description:`Create a new token`},delete:{handler:ei,description:`Delete a token`}}}),ni=j({name:`prismic type add-tab`,description:`Add a tab to a content type.`,positionals:{name:{description:`Name of the tab`,required:!0}},options:{to:{type:`string`,required:!0,description:`ID of the content type`},"with-slice-zone":{type:`boolean`,description:`Add a slice zone to the tab`}}},async({positionals:e,values:t})=>{let[n]=e,{to:r,"with-slice-zone":i}=t,a=await o(),{model:s}=await a.getCustomType(r);if(n in s.json)throw new N(`Tab "${n}" already exists in "${r}".`);s.json[n]=i?{slices:{type:`Slices`,fieldset:`Slice Zone`,config:{choices:{}}}}:{},await a.updateCustomType(s),await a.generateTypes(),console.info(`Added tab "${n}" to "${r}"`)}),ri=j({name:`prismic type create`,description:`Create a new content type.`,positionals:{name:{description:`Name of the content type`,required:!0}},options:{format:{type:`string`,short:`f`,description:`Type format: "custom" (default) or "page"`},single:{type:`boolean`,short:`s`,description:`Allow only one document of this type`},id:{type:`string`,description:`Custom ID for the content type`}},sections:{FORMATS:`
129
248
  custom A non-page type (e.g. settings, navigation, author, blog
130
249
  category). This is the default.
131
250
  page A page type with a URL (e.g. homepage, blog post, landing
132
251
  page). Includes a slice zone and SEO & Metadata tab by
133
252
  default, and configures a route in prismic.config.json.
134
- `}},async({positionals:e,values:t})=>{let[n]=e,{format:r=`custom`,single:i=!1,id:a=d(n),repo:o=await m()}=t;if(r!==`custom`&&r!==`page`)throw new N(`Invalid format: "${r}". Use "custom" or "page".`);let s={id:a,label:n,repeatable:!i,status:!0,format:r,json:r===`page`?{Main:{slices:{type:`Slices`,fieldset:`Slice Zone`,config:{choices:{}}}},"SEO & Metadata":{meta_title:{type:`Text`,config:{label:`Meta Title`,placeholder:`A title of the page used for social media and search engines`}},meta_description:{type:`Text`,config:{label:`Meta Description`,placeholder:`A brief summary of the page`}},meta_image:{type:`Image`,config:{label:`Meta Image`,constraint:{width:2400,height:1260},thumbnails:[]}}}}:{Main:{}}},c=await h(),u=await D(),f=await O();try{await l(s,{repo:o,host:f,token:u})}catch(e){throw e instanceof C?new N(`Failed to create type: ${await e.text()}`):e}await c.createCustomType(s),await c.generateTypes(),console.info(`Created type "${n}" (id: "${a}", format: "${r}")`)}),qr=j({name:`prismic type edit`,description:`Edit a content type.`,positionals:{id:{description:`ID of the content type`,required:!0}},options:{name:{type:`string`,short:`n`,description:`New name for the type`},format:{type:`string`,short:`f`,description:`Type format: "custom" or "page"`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t;if(`format`in t&&t.format!==`custom`&&t.format!==`page`)throw new N(`Invalid format: "${t.format}". Use "custom" or "page".`);let i=await h(),a=await D(),o=await O(),c=await y(n,{repo:r,token:a,host:o});`name`in t&&(c.label=t.name),`format`in t&&(c.format=t.format);try{await s(c,{repo:r,host:o,token:a})}catch(e){throw e instanceof C?new N(`Failed to update type: ${await e.text()}`):e}try{await i.updateCustomType(c)}catch{await i.createCustomType(c)}await i.generateTypes(),console.info(`Type updated: "${c.label}" (id: ${c.id})`)}),Jr=j({name:`prismic type edit-tab`,description:`Edit a tab of a content type.`,positionals:{name:{description:`Current name of the tab`,required:!0}},options:{"from-type":{type:`string`,required:!0,description:`ID of the content type`},name:{type:`string`,short:`n`,description:`New name for the tab`},"with-slice-zone":{type:`boolean`,description:`Add a slice zone to the tab`},"without-slice-zone":{type:`boolean`,description:`Remove the slice zone from the tab`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{"from-type":r,repo:i=await m()}=t,a=await h(),o=await D(),c=await O(),l=await y(r,{repo:i,token:o,host:c});if(!(n in l.json))throw new N(`Tab "${n}" not found in "${r}".`);if(`with-slice-zone`in t&&`without-slice-zone`in t)throw new N(`Cannot use --with-slice-zone and --without-slice-zone together.`);if(`with-slice-zone`in t){let e=l.json[n];if(Object.values(e).some(e=>e.type===`Slices`))throw new N(`Tab "${n}" already has a slice zone.`);e.slices={type:`Slices`,fieldset:`Slice Zone`,config:{choices:{}}}}if(`without-slice-zone`in t){let e=l.json[n],t=Object.entries(e).find(([,e])=>e.type===`Slices`);if(!t)throw new N(`Tab "${n}" does not have a slice zone.`);let[r,i]=t,a=i.type===`Slices`?i.config?.choices??{}:{};if(Object.keys(a).length>0)throw new N(`Cannot remove slice zone from "${n}": disconnect all slices first.`);delete e[r]}if(`name`in t){if(t.name in l.json)throw new N(`Tab "${t.name}" already exists in "${r}".`);let e={};for(let[r,i]of Object.entries(l.json))e[r===n?t.name:r]=i;l.json=e}try{await s(l,{repo:i,host:c,token:o})}catch(e){throw e instanceof C?new N(`Failed to update tab: ${await e.text()}`):e}try{await a.updateCustomType(l)}catch{await a.createCustomType(l)}await a.generateTypes(),console.info(`Tab updated: "${n}" in "${r}"`)}),Yr=j({name:`prismic type list`,description:`List all content types.`,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({values:e})=>{let{json:t,repo:n=await m()}=e,r=await p({repo:n,token:await D(),host:await O()});if(t){console.info(T(r));return}if(r.length===0){console.info(`No types found.`);return}let i=r.map(e=>[e.label||`(no name)`,e.id,e.format??``]);console.info(v(i,{headers:[`NAME`,`ID`,`FORMAT`]}))}),Xr=j({name:`prismic type remove`,description:`Remove a content type.`,positionals:{id:{description:`ID of the content type`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:t,values:n})=>{let[r]=t,{repo:i=await m()}=n,a=await h(),o=await D(),s=await O(),c=await y(r,{repo:i,token:o,host:s});try{await e(c.id,{repo:i,host:s,token:o})}catch(e){if(e instanceof C){let t=await e.text();throw t.includes(`associated documents`)?new N(`Type "${r}" has documents. Delete its documents before removing the type.`):new N(`Failed to remove type: ${t}`)}throw e}try{await a.deleteCustomType(c.id)}catch{}await a.generateTypes(),console.info(`Type removed: ${r}`)}),Zr=j({name:`prismic type remove-tab`,description:`Remove a tab from a content type.`,positionals:{name:{description:`Name of the tab`,required:!0}},options:{from:{type:`string`,required:!0,description:`ID of the content type`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{from:r,repo:i=await m()}=t,a=await h(),o=await D(),c=await O(),l=await y(r,{repo:i,token:o,host:c});if(!(n in l.json))throw new N(`Tab "${n}" not found in "${r}".`);if(Object.keys(l.json).length<=1)throw new N(`Cannot remove the last tab from "${r}".`);delete l.json[n];try{await s(l,{repo:i,host:c,token:o})}catch(e){throw e instanceof C?new N(`Failed to remove tab: ${await e.text()}`):e}try{await a.updateCustomType(l)}catch{await a.createCustomType(l)}await a.generateTypes(),console.info(`Removed tab "${n}" from "${r}"`)}),Qr=j({name:`prismic type view`,description:`View details of a content type.`,positionals:{id:{description:`ID of the content type`,required:!0}},options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{json:r,repo:i=await m()}=t,a=await y(n,{repo:i,token:await D(),host:await O()});if(r){console.info(T(a));return}console.info(`ID: ${a.id}`),console.info(`Name: ${a.label||`(no name)`}`),console.info(`Format: ${a.format}`),console.info(`Repeatable: ${a.repeatable}`);for(let[e,t]of Object.entries(a.json)){console.info(``),console.info(`${e}:`);let n=Object.entries(t);if(n.length===0)console.info(` (no fields)`);else{let e=n.map(([e,t])=>{let n=t.config,r=n?.label||``,i=n?.placeholder?`"${n.placeholder}"`:``;return[` ${e}`,t.type,r,i]});console.info(v(e))}}}),$r=M({name:`prismic type`,description:`Manage content types.`,commands:{create:{handler:Kr,description:`Create a new content type`},edit:{handler:qr,description:`Edit a content type`},remove:{handler:Xr,description:`Remove a content type`},list:{handler:Yr,description:`List content types`},view:{handler:Qr,description:`View a content type`},"add-tab":{handler:Gr,description:`Add a tab to a content type`},"edit-tab":{handler:Jr,description:`Edit a tab of a content type`},"remove-tab":{handler:Zr,description:`Remove a tab from a content type`}}}),ei=j({name:`prismic webhook create`,description:`
253
+ `,EXAMPLES:`
254
+ Create a page type:
255
+ prismic type create "Blog Post" --format page
256
+
257
+ Create a singleton custom type:
258
+ prismic type create Settings --single
259
+
260
+ Create with a custom ID:
261
+ prismic type create "Landing Page" --format page --id landing
262
+ `}},async({positionals:e,values:n})=>{let[r]=e,{format:i=`custom`,single:a=!1,id:s=t(r)}=n;if(i!==`custom`&&i!==`page`)throw new N(`Invalid format: "${i}". Use "custom" or "page".`);let c={id:s,label:r,repeatable:!a,status:!0,format:i,json:i===`page`?{Main:{slices:{type:`Slices`,fieldset:`Slice Zone`,config:{choices:{}}}},"SEO & Metadata":{meta_title:{type:`Text`,config:{label:`Meta Title`,placeholder:`A title of the page used for social media and search engines`}},meta_description:{type:`Text`,config:{label:`Meta Description`,placeholder:`A brief summary of the page`}},meta_image:{type:`Image`,config:{label:`Meta Image`,constraint:{width:2400,height:1260},thumbnails:[]}}}}:{Main:{}}},l=await o();await l.createCustomType(c),await l.generateTypes(),console.info(`Created type "${r}" (id: "${s}", format: "${i}")`),console.info(`Run \`prismic field add <type> --to-type ${s}\` to add fields.`),console.info(`Run \`prismic type view ${s}\` to view the type.`)}),ii=j({name:`prismic type edit`,description:`Edit a content type.`,positionals:{id:{description:`ID of the content type`,required:!0}},options:{name:{type:`string`,short:`n`,description:`New name for the type`},format:{type:`string`,short:`f`,description:`Type format: "custom" or "page"`}}},async({positionals:e,values:t})=>{let[n]=e;if(`format`in t&&t.format!==`custom`&&t.format!==`page`)throw new N(`Invalid format: "${t.format}". Use "custom" or "page".`);let r=await o(),{model:i}=await r.getCustomType(n);`name`in t&&(i.label=t.name),`format`in t&&(i.format=t.format),await r.updateCustomType(i),await r.generateTypes(),console.info(`Type updated: "${i.label}" (id: ${i.id})`)}),ai=j({name:`prismic type edit-tab`,description:`Edit a tab of a content type.`,positionals:{name:{description:`Current name of the tab`,required:!0}},options:{"from-type":{type:`string`,required:!0,description:`ID of the content type`},name:{type:`string`,short:`n`,description:`New name for the tab`},"with-slice-zone":{type:`boolean`,description:`Add a slice zone to the tab`},"without-slice-zone":{type:`boolean`,description:`Remove the slice zone from the tab`}}},async({positionals:e,values:t})=>{let[n]=e,{"from-type":r}=t,i=await o(),{model:a}=await i.getCustomType(r);if(!(n in a.json))throw new N(`Tab "${n}" not found in "${r}".`);if(`with-slice-zone`in t&&`without-slice-zone`in t)throw new N(`Cannot use --with-slice-zone and --without-slice-zone together.`);if(`with-slice-zone`in t){let e=a.json[n];if(Object.values(e).some(e=>e.type===`Slices`))throw new N(`Tab "${n}" already has a slice zone.`);e.slices={type:`Slices`,fieldset:`Slice Zone`,config:{choices:{}}}}if(`without-slice-zone`in t){let e=a.json[n],t=Object.entries(e).find(([,e])=>e.type===`Slices`);if(!t)throw new N(`Tab "${n}" does not have a slice zone.`);let[r,i]=t,o=i.type===`Slices`?i.config?.choices??{}:{};if(Object.keys(o).length>0)throw new N(`Cannot remove slice zone from "${n}": disconnect all slices first.`);delete e[r]}if(`name`in t){if(t.name in a.json)throw new N(`Tab "${t.name}" already exists in "${r}".`);let e={};for(let[r,i]of Object.entries(a.json))e[r===n?t.name:r]=i;a.json=e}await i.updateCustomType(a),await i.generateTypes(),console.info(`Tab updated: "${n}" in "${r}"`)}),oi=j({name:`prismic type list`,description:`List all content types.`,options:{json:{type:`boolean`,description:`Output as JSON`}}},async({values:e})=>{let{json:t}=e,n=await(await o()).getCustomTypes();if(t){console.info(E(n.map(e=>e.model)));return}if(n.length===0){console.info(`No types found.`);return}let r=n.map(({model:e})=>[e.label||`(no name)`,e.id,e.format??``]);console.info(h(r,{headers:[`NAME`,`ID`,`FORMAT`]}))}),si=j({name:`prismic type remove`,description:`Remove a content type.`,positionals:{id:{description:`ID of the content type`,required:!0}}},async({positionals:e})=>{let[t]=e,n=await o(),{model:r}=await n.getCustomType(t);await n.deleteCustomType(r.id),await n.generateTypes(),console.info(`Type removed: ${t}`)}),ci=j({name:`prismic type remove-tab`,description:`Remove a tab from a content type.`,positionals:{name:{description:`Name of the tab`,required:!0}},options:{from:{type:`string`,required:!0,description:`ID of the content type`}}},async({positionals:e,values:t})=>{let[n]=e,{from:r}=t,i=await o(),{model:a}=await i.getCustomType(r);if(!(n in a.json))throw new N(`Tab "${n}" not found in "${r}".`);if(Object.keys(a.json).length<=1)throw new N(`Cannot remove the last tab from "${r}".`);delete a.json[n],await i.updateCustomType(a),await i.generateTypes(),console.info(`Removed tab "${n}" from "${r}"`)}),li=j({name:`prismic type view`,description:`View details of a content type.`,positionals:{id:{description:`ID of the content type`,required:!0}},options:{json:{type:`boolean`,description:`Output as JSON`}}},async({positionals:e,values:t})=>{let[n]=e,{json:r}=t,{model:i}=await(await o()).getCustomType(n);if(r){console.info(E(i));return}console.info(`ID: ${i.id}`),console.info(`Name: ${i.label||`(no name)`}`),console.info(`Format: ${i.format}`),console.info(`Repeatable: ${i.repeatable}`);for(let[e,t]of Object.entries(i.json)){console.info(``),console.info(`${e}:`);let n=Object.entries(t);if(n.length===0)console.info(` (no fields)`);else{let e=n.map(([e,t])=>{let n=t.config,r=n?.label||``,i=n?.placeholder?`"${n.placeholder}"`:``;return[` ${e}`,t.type,r,i]});console.info(h(e))}}}),ui=M({name:`prismic type`,description:`Manage content types.`,commands:{create:{handler:ri,description:`Create a new content type`},edit:{handler:ii,description:`Edit a content type`},remove:{handler:si,description:`Remove a content type`},list:{handler:oi,description:`List content types`},view:{handler:li,description:`View a content type`},"add-tab":{handler:ni,description:`Add a tab to a content type`},"edit-tab":{handler:ai,description:`Edit a tab of a content type`},"remove-tab":{handler:ci,description:`Remove a tab from a content type`}}}),di=j({name:`prismic webhook create`,description:`
135
263
  Create a new webhook in a Prismic repository.
136
264
 
137
265
  By default, this command reads the repository from prismic.config.json at the
138
266
  project root.
139
- `,positionals:{url:{description:`Webhook URL to receive events`,required:!0}},options:{name:{type:`string`,short:`n`,description:`Webhook name`},secret:{type:`string`,short:`s`,description:`Secret for webhook signature`},trigger:{type:`string`,multiple:!0,short:`t`,description:`Trigger events (can be repeated)`},repo:{type:`string`,short:`r`,description:`Repository domain`}},sections:{TRIGGERS:`
267
+ `,positionals:{url:{description:`Webhook URL to receive events`,required:!0}},options:{name:{type:`string`,short:`n`,description:`Webhook name`},secret:{type:`string`,short:`s`,description:`Secret for webhook signature`},trigger:{type:`string`,multiple:!0,short:`t`,description:`Trigger events (can be repeated)`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}},sections:{TRIGGERS:`
140
268
  documentsPublished When documents are published
141
269
  documentsUnpublished When documents are unpublished
142
270
  releasesCreated When a release is created
@@ -145,49 +273,58 @@ import{A as e,B as t,C as n,D as r,E as i,F as a,I as o,M as s,N as c,O as l,P a
145
273
  tagsDeleted When a tag is deleted
146
274
 
147
275
  If no triggers specified, all are enabled.
148
- `}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m(),name:i,secret:a,trigger:o=[]}=t;for(let e of o)if(!Wn.includes(e))throw new N(`Invalid trigger: ${e}\nValid triggers: ${Wn.join(`, `)}`);let s=await D(),c=await O(),l=!(o.length>0);try{await qn({url:n,name:i??null,secret:a??null,documentsPublished:o.includes(`documentsPublished`)||l,documentsUnpublished:o.includes(`documentsUnpublished`)||l,releasesCreated:o.includes(`releasesCreated`)||l,releasesUpdated:o.includes(`releasesUpdated`)||l,tagsCreated:o.includes(`tagsCreated`)||l,tagsDeleted:o.includes(`tagsDeleted`)||l},{repo:r,token:s,host:c})}catch(e){throw e instanceof C?new N(`Failed to create webhook: ${await e.text()}`):e}console.info(`Webhook created: ${n}`)}),ti=j({name:`prismic webhook disable`,description:`
276
+ `,EXAMPLES:`
277
+ Create a webhook for all events:
278
+ prismic webhook create https://example.com/webhook
279
+
280
+ Create a webhook for specific events:
281
+ prismic webhook create https://example.com/webhook -t documentsPublished -t documentsUnpublished
282
+
283
+ Create a named webhook with a secret:
284
+ prismic webhook create https://example.com/webhook --name "Deploy" --secret my-secret
285
+ `}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i,name:o,secret:s,trigger:c=[]}=t;for(let e of c)if(!Tn.includes(e))throw new N(`Invalid trigger: ${e}\nValid triggers: ${Tn.join(`, `)}`);let l=await D(),u=await O(),d=i?await B({env:i,repo:r,token:l,host:u}):r,f=!(c.length>0);try{await On({url:n,name:o??null,secret:s??null,documentsPublished:c.includes(`documentsPublished`)||f,documentsUnpublished:c.includes(`documentsUnpublished`)||f,releasesCreated:c.includes(`releasesCreated`)||f,releasesUpdated:c.includes(`releasesUpdated`)||f,tagsCreated:c.includes(`tagsCreated`)||f,tagsDeleted:c.includes(`tagsDeleted`)||f},{repo:d,token:l,host:u})}catch(e){throw e instanceof w?new N(`Failed to create webhook: ${await e.text()}`):e}console.info(`Webhook created: ${n}`),console.info(`Run \`prismic webhook set-triggers ${n}\` to configure triggers.`)}),fi=j({name:`prismic webhook disable`,description:`
149
286
  Disable a webhook in a Prismic repository.
150
287
 
151
288
  By default, this command reads the repository from prismic.config.json at the
152
289
  project root.
153
- `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O(),o;try{o=await Kn({repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to disable webhook: ${await e.text()}`):e}let s=o.find(e=>e.config.url===n);if(!s)throw new N(`Webhook not found: ${n}`);if(!s.config.active){console.info(`Webhook already disabled: ${n}`);return}let c=s.config._id,l=structuredClone(s.config);l.active=!1;try{await Jn(c,l,{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to disable webhook: ${await e.text()}`):e}console.info(`Webhook disabled: ${n}`)}),ni=j({name:`prismic webhook enable`,description:`
290
+ `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i}=t,o=await D(),s=await O(),c=i?await B({env:i,repo:r,token:o,host:s}):r,l;try{l=await Dn({repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to disable webhook: ${await e.text()}`):e}let u=l.find(e=>e.config.url===n);if(!u)throw new N(`Webhook not found: ${n}`);if(!u.config.active){console.info(`Webhook already disabled: ${n}`);return}let d=u.config._id,f=structuredClone(u.config);f.active=!1;try{await kn(d,f,{repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to disable webhook: ${await e.text()}`):e}console.info(`Webhook disabled: ${n}`)}),pi=j({name:`prismic webhook enable`,description:`
154
291
  Enable a webhook in a Prismic repository.
155
292
 
156
293
  By default, this command reads the repository from prismic.config.json at the
157
294
  project root.
158
- `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O(),o;try{o=await Kn({repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to enable webhook: ${await e.text()}`):e}let s=o.find(e=>e.config.url===n);if(!s)throw new N(`Webhook not found: ${n}`);if(s.config.active){console.info(`Webhook already enabled: ${n}`);return}let c=s.config._id,l=structuredClone(s.config);l.active=!0;try{await Jn(c,l,{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to enable webhook: ${await e.text()}`):e}console.info(`Webhook enabled: ${n}`)}),ri=j({name:`prismic webhook list`,description:`
295
+ `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i}=t,o=await D(),s=await O(),c=i?await B({env:i,repo:r,token:o,host:s}):r,l;try{l=await Dn({repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to enable webhook: ${await e.text()}`):e}let u=l.find(e=>e.config.url===n);if(!u)throw new N(`Webhook not found: ${n}`);if(u.config.active){console.info(`Webhook already enabled: ${n}`);return}let d=u.config._id,f=structuredClone(u.config);f.active=!0;try{await kn(d,f,{repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to enable webhook: ${await e.text()}`):e}console.info(`Webhook enabled: ${n}`)}),mi=j({name:`prismic webhook list`,description:`
159
296
  List all webhooks in a Prismic repository.
160
297
 
161
298
  By default, this command reads the repository from prismic.config.json at the
162
299
  project root.
163
- `,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({values:e})=>{let{repo:t=await m(),json:n}=e,r=await D(),i=await O(),a;try{a=await Kn({repo:t,token:r,host:i})}catch(e){throw e instanceof C?new N(`Failed to list webhooks: ${await e.text()}`):e}if(n){console.info(T(a.map(e=>e.config)));return}if(a.length===0){console.info(`No webhooks configured.`);return}let o=a.map(e=>{let t=e.config.active?`enabled`:`disabled`,n=e.config.name?` (${e.config.name})`:``;return[`${e.config.url}${n}`,`[${t}]`]});console.info(v(o,{headers:[`URL`,`STATUS`]}))}),ii=j({name:`prismic webhook remove`,description:`
300
+ `,options:{json:{type:`boolean`,description:`Output as JSON`},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({values:e})=>{let{repo:t=await a(),env:n,json:r}=e,i=await D(),o=await O(),s=n?await B({env:n,repo:t,token:i,host:o}):t,c;try{c=await Dn({repo:s,token:i,host:o})}catch(e){throw e instanceof w?new N(`Failed to list webhooks: ${await e.text()}`):e}if(r){console.info(E(c.map(e=>e.config)));return}if(c.length===0){console.info(`No webhooks configured.`);return}let l=c.map(e=>{let t=e.config.active?`enabled`:`disabled`,n=e.config.name?` (${e.config.name})`:``;return[`${e.config.url}${n}`,`[${t}]`]});console.info(h(l,{headers:[`URL`,`STATUS`]}))}),hi=j({name:`prismic webhook remove`,description:`
164
301
  Delete a webhook from a Prismic repository.
165
302
 
166
303
  By default, this command reads the repository from prismic.config.json at the
167
304
  project root.
168
- `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O(),o;try{o=await Kn({repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to remove webhook: ${await e.text()}`):e}let s=o.find(e=>e.config.url===n);if(!s)throw new N(`Webhook not found: ${n}`);let c=s.config._id;try{await Yn(c,{repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to remove webhook: ${await e.text()}`):e}console.info(`Webhook removed: ${n}`)}),ai=j({name:`prismic webhook set-triggers`,description:`
305
+ `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i}=t,o=await D(),s=await O(),c=i?await B({env:i,repo:r,token:o,host:s}):r,l;try{l=await Dn({repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to remove webhook: ${await e.text()}`):e}let u=l.find(e=>e.config.url===n);if(!u)throw new N(`Webhook not found: ${n}`);let d=u.config._id;try{await An(d,{repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to remove webhook: ${await e.text()}`):e}console.info(`Webhook removed: ${n}`)}),gi=j({name:`prismic webhook set-triggers`,description:`
169
306
  Update which events trigger a webhook.
170
307
 
171
308
  By default, this command reads the repository from prismic.config.json at the
172
309
  project root.
173
- `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{trigger:{type:`string`,multiple:!0,short:`t`,description:`Trigger events (can be repeated)`,required:!0},repo:{type:`string`,short:`r`,description:`Repository domain`}},sections:{TRIGGERS:`
310
+ `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{trigger:{type:`string`,multiple:!0,short:`t`,description:`Trigger events (can be repeated)`,required:!0},repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}},sections:{TRIGGERS:`
174
311
  documentsPublished When documents are published
175
312
  documentsUnpublished When documents are unpublished
176
313
  releasesCreated When a release is created
177
314
  releasesUpdated When a release is edited or deleted
178
315
  tagsCreated When a tag is created
179
316
  tagsDeleted When a tag is deleted
180
- `}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m(),trigger:i=[]}=t;for(let e of i)if(!Wn.includes(e))throw new N(`Invalid trigger: ${e}\nValid triggers: ${Wn.join(`, `)}`);let a=await D(),o=await O(),s;try{s=await Kn({repo:r,token:a,host:o})}catch(e){throw e instanceof C?new N(`Failed to update webhook triggers: ${await e.text()}`):e}let c=s.find(e=>e.config.url===n);if(!c)throw new N(`Webhook not found: ${n}`);let l=c.config._id;try{await Jn(l,{...c.config,documentsPublished:i.includes(`documentsPublished`),documentsUnpublished:i.includes(`documentsUnpublished`),releasesCreated:i.includes(`releasesCreated`),releasesUpdated:i.includes(`releasesUpdated`),tagsCreated:i.includes(`tagsCreated`),tagsDeleted:i.includes(`tagsDeleted`)},{repo:r,token:a,host:o})}catch(e){throw e instanceof C?new N(`Failed to update webhook triggers: ${await e.text()}`):e}console.info(`Webhook triggers updated: ${i.join(`, `)}`)}),oi=j({name:`prismic webhook view`,description:`
317
+ `}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i,trigger:o=[]}=t;for(let e of o)if(!Tn.includes(e))throw new N(`Invalid trigger: ${e}\nValid triggers: ${Tn.join(`, `)}`);let s=await D(),c=await O(),l=i?await B({env:i,repo:r,token:s,host:c}):r,u;try{u=await Dn({repo:l,token:s,host:c})}catch(e){throw e instanceof w?new N(`Failed to update webhook triggers: ${await e.text()}`):e}let d=u.find(e=>e.config.url===n);if(!d)throw new N(`Webhook not found: ${n}`);let f=d.config._id;try{await kn(f,{...d.config,documentsPublished:o.includes(`documentsPublished`),documentsUnpublished:o.includes(`documentsUnpublished`),releasesCreated:o.includes(`releasesCreated`),releasesUpdated:o.includes(`releasesUpdated`),tagsCreated:o.includes(`tagsCreated`),tagsDeleted:o.includes(`tagsDeleted`)},{repo:l,token:s,host:c})}catch(e){throw e instanceof w?new N(`Failed to update webhook triggers: ${await e.text()}`):e}console.info(`Webhook triggers updated: ${o.join(`, `)}`)}),_i=j({name:`prismic webhook view`,description:`
181
318
  View details of a webhook in a Prismic repository.
182
319
 
183
320
  By default, this command reads the repository from prismic.config.json at the
184
321
  project root.
185
- `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await m()}=t,i=await D(),a=await O(),o;try{o=await Kn({repo:r,token:i,host:a})}catch(e){throw e instanceof C?new N(`Failed to fetch webhook details: ${await e.text()}`):e}let s=o.find(e=>e.config.url===n);if(!s)throw new N(`Webhook not found: ${n}`);let{config:c}=s;console.info(`URL: ${c.url}`),console.info(`Name: ${c.name||`(none)`}`),console.info(`Status: ${c.active?`enabled`:`disabled`}`),console.info(`Secret: ${c.secret?`(set)`:`(none)`}`);let l=[];for(let e of Wn)c[e]&&l.push(e);if(console.info(`Triggers: ${l.length>0?l.join(`, `):`(none)`}`),Object.keys(c.headers).length>0){console.info(`Headers:`);for(let[e,t]of Object.entries(c.headers))console.info(` ${e}: ${t}`)}else console.info(`Headers: (none)`)}),si=M({name:`prismic webhook`,description:`Manage webhooks in a Prismic repository.`,commands:{list:{handler:ri,description:`List all webhooks`},create:{handler:ei,description:`Create a new webhook`},view:{handler:oi,description:`View webhook details`},remove:{handler:ii,description:`Delete a webhook`},enable:{handler:ni,description:`Enable a webhook`},disable:{handler:ti,description:`Disable a webhook`},"set-triggers":{handler:ai,description:`Update webhook triggers`}}}),ci=j({name:`prismic whoami`,description:`Show the currently logged in user.`},async()=>{let e=await f({token:await D(),host:await O()});console.info(e.email)});const R=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,z=globalThis,li=`10.42.0`;function B(){return ui(z),z}function ui(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||li,t[li]=t[li]||{}}function di(e,t,n=z){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[li]=r[li]||{};return i[e]||(i[e]=t())}const fi=[`debug`,`info`,`warn`,`error`,`log`,`assert`,`trace`],pi={};function V(e){if(!(`console`in z))return e();let t=z.console,n={},r=Object.keys(pi);r.forEach(e=>{let r=pi[e];n[e]=t[e],t[e]=r});try{return e()}finally{r.forEach(e=>{t[e]=n[e]})}}function mi(){xi().enabled=!0}function hi(){xi().enabled=!1}function gi(){return xi().enabled}function _i(...e){bi(`log`,...e)}function vi(...e){bi(`warn`,...e)}function yi(...e){bi(`error`,...e)}function bi(e,...t){R&&gi()&&V(()=>{z.console[e](`Sentry Logger [${e}]:`,...t)})}function xi(){return R?di(`loggerSettings`,()=>({enabled:!1})):{enabled:!1}}const H={enable:mi,disable:hi,isEnabled:gi,log:_i,warn:vi,error:yi},Si=/\(error: (.*)\)/,Ci=/captureMessage|captureException/;function wi(...e){let t=e.sort((e,t)=>e[0]-t[0]).map(e=>e[1]);return(e,n=0,r=0)=>{let i=[],a=e.split(`
186
- `);for(let e=n;e<a.length;e++){let n=a[e];n.length>1024&&(n=n.slice(0,1024));let o=Si.test(n)?n.replace(Si,`$1`):n;if(!o.match(/\S*Error: /)){for(let e of t){let t=e(o);if(t){i.push(t);break}}if(i.length>=50+r)break}}return Ei(i.slice(r))}}function Ti(e){return Array.isArray(e)?wi(...e):e}function Ei(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Di(t).function||``)&&t.pop(),t.reverse(),Ci.test(Di(t).function||``)&&(t.pop(),Ci.test(Di(t).function||``)&&t.pop()),t.slice(0,50).map(e=>({...e,filename:e.filename||Di(t).filename,function:e.function||`?`}))}function Di(e){return e[e.length-1]||{}}const Oi=`<anonymous>`;function ki(e){try{return!e||typeof e!=`function`?Oi:e.name||Oi}catch{return Oi}}function Ai(e){return`__v_isVNode`in e&&e.__v_isVNode?`[VueVNode]`:`[VueViewModel]`}function ji(e){let t=e?.startsWith(`file://`)?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}const Mi={},Ni={};function Pi(e,t){Mi[e]=Mi[e]||[],Mi[e].push(t)}function Fi(e,t){if(!Ni[e]){Ni[e]=!0;try{t()}catch(t){R&&H.error(`Error while instrumenting ${e}`,t)}}}function Ii(e,t){let n=e&&Mi[e];if(n)for(let r of n)try{r(t)}catch(t){R&&H.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${ki(r)}\nError:`,t)}}let Li=null;function Ri(e){let t=`error`;Pi(t,e),Fi(t,zi)}function zi(){Li=z.onerror,z.onerror=function(e,t,n,r,i){return Ii(`error`,{column:r,error:i,line:n,msg:e,url:t}),Li?Li.apply(this,arguments):!1},z.onerror.__SENTRY_INSTRUMENTED__=!0}let Bi=null;function Vi(e){let t=`unhandledrejection`;Pi(t,e),Fi(t,Hi)}function Hi(){Bi=z.onunhandledrejection,z.onunhandledrejection=function(e){return Ii(`unhandledrejection`,e),Bi?Bi.apply(this,arguments):!0},z.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}const Ui=Object.prototype.toString;function Wi(e){switch(Ui.call(e)){case`[object Error]`:case`[object Exception]`:case`[object DOMException]`:case`[object WebAssembly.Exception]`:return!0;default:return na(e,Error)}}function Gi(e,t){return Ui.call(e)===`[object ${t}]`}function Ki(e){return Gi(e,`ErrorEvent`)}function qi(e){return Gi(e,`String`)}function Ji(e){return typeof e==`object`&&!!e&&`__sentry_template_string__`in e&&`__sentry_template_values__`in e}function Yi(e){return e===null||Ji(e)||typeof e!=`object`&&typeof e!=`function`}function Xi(e){return Gi(e,`Object`)}function Zi(e){return typeof Event<`u`&&na(e,Event)}function Qi(e){return typeof Element<`u`&&na(e,Element)}function $i(e){return Gi(e,`RegExp`)}function ea(e){return!!(e?.then&&typeof e.then==`function`)}function ta(e){return Xi(e)&&`nativeEvent`in e&&`preventDefault`in e&&`stopPropagation`in e}function na(e,t){try{return e instanceof t}catch{return!1}}function ra(e){return!!(typeof e==`object`&&e&&(e.__isVue||e._isVue||e.__v_isVNode))}const ia=z;function aa(e,t={}){if(!e)return`<unknown>`;try{let n=e,r=[],i=0,a=0,o,s=Array.isArray(t)?t:t.keyAttrs,c=!Array.isArray(t)&&t.maxStringLength||80;for(;n&&i++<5&&(o=oa(n,s),!(o===`html`||i>1&&a+r.length*3+o.length>=c));)r.push(o),a+=o.length,n=n.parentNode;return r.reverse().join(` > `)}catch{return`<unknown>`}}function oa(e,t){let n=e,r=[];if(!n?.tagName)return``;if(ia.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());let i=t?.length?t.filter(e=>n.getAttribute(e)).map(e=>[e,n.getAttribute(e)]):null;if(i?.length)i.forEach(e=>{r.push(`[${e[0]}="${e[1]}"]`)});else{n.id&&r.push(`#${n.id}`);let e=n.className;if(e&&qi(e)){let t=e.split(/\s+/);for(let e of t)r.push(`.${e}`)}}for(let e of[`aria-label`,`type`,`name`,`title`,`alt`]){let t=n.getAttribute(e);t&&r.push(`[${e}="${t}"]`)}return r.join(``)}function sa(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!=`function`)return;let i=n(r);typeof i==`function`&&la(i,r);try{e[t]=i}catch{R&&H.log(`Failed to replace method "${t}" in object`,e)}}function ca(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{R&&H.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function la(e,t){try{e.prototype=t.prototype=t.prototype||{},ca(e,`__sentry_original__`,t)}catch{}}function ua(e){return e.__sentry_original__}function da(e){if(Wi(e))return{message:e.message,name:e.name,stack:e.stack,...pa(e)};if(Zi(e)){let t={type:e.type,target:fa(e.target),currentTarget:fa(e.currentTarget),...pa(e)};return typeof CustomEvent<`u`&&na(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function fa(e){try{return Qi(e)?aa(e):Object.prototype.toString.call(e)}catch{return`<unknown>`}}function pa(e){if(typeof e==`object`&&e){let t={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}else return{}}function ma(e){let t=Object.keys(da(e));return t.sort(),t[0]?t.join(`, `):`[object has no keys]`}let ha;function ga(e){if(ha!==void 0)return ha?ha(e):e();let t=Symbol.for(`__SENTRY_SAFE_RANDOM_ID_WRAPPER__`),n=z;return t in n&&typeof n[t]==`function`?(ha=n[t],ha(e)):(ha=null,e())}function U(){return ga(()=>Math.random())}function _a(){return ga(()=>Date.now())}function va(e,t=0){return typeof e!=`string`||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function ya(e,t){let n=e,r=n.length;if(r<=150)return n;t>r&&(t=r);let i=Math.max(t-60,0);i<5&&(i=0);let a=Math.min(i+140,r);return a>r-5&&(a=r),a===r&&(i=Math.max(a-140,0)),n=n.slice(i,a),i>0&&(n=`'{snip} ${n}`),a<r&&(n+=` {snip}`),n}function ba(e,t){if(!Array.isArray(e))return``;let n=[];for(let t=0;t<e.length;t++){let r=e[t];try{ra(r)?n.push(Ai(r)):n.push(String(r))}catch{n.push(`[value cannot be serialized]`)}}return n.join(t)}function xa(e,t,n=!1){return qi(e)?$i(t)?t.test(e):qi(t)?n?e===t:e.includes(t):!1:!1}function Sa(e,t=[],n=!1){return t.some(t=>xa(e,t,n))}function Ca(){let e=z;return e.crypto||e.msCrypto}let wa;function Ta(){return U()*16}function W(e=Ca()){try{if(e?.randomUUID)return ga(()=>e.randomUUID()).replace(/-/g,``)}catch{}return wa||=`10000000100040008000100000000000`,wa.replace(/[018]/g,e=>(e^(Ta()&15)>>e/4).toString(16))}function Ea(e){return e.exception?.values?.[0]}function Da(e){let{message:t,event_id:n}=e;if(t)return t;let r=Ea(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||`<unknown>`:n||`<unknown>`}function Oa(e,t,n){let r=e.exception=e.exception||{},i=r.values=r.values||[],a=i[0]=i[0]||{};a.value||=t||``,a.type||=n||`Error`}function ka(e,t){let n=Ea(e);if(!n)return;let r={type:`generic`,handled:!0},i=n.mechanism;if(n.mechanism={...r,...i,...t},t&&`data`in t){let e={...i?.data,...t.data};n.mechanism.data=e}}const Aa=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function ja(e){return parseInt(e||``,10)}function Ma(e){let t=e.match(Aa)||[],n=ja(t[1]),r=ja(t[2]),i=ja(t[3]);return{buildmetadata:t[5],major:isNaN(n)?void 0:n,minor:isNaN(r)?void 0:r,patch:isNaN(i)?void 0:i,prerelease:t[4]}}function Na(e){if(Pa(e))return!0;try{ca(e,`__sentry_captured__`,!0)}catch{}return!1}function Pa(e){try{return e.__sentry_captured__}catch{}}const Fa=1e3;function Ia(){return _a()/Fa}function La(){let{performance:e}=z;if(!e?.now||!e.timeOrigin)return Ia;let t=e.timeOrigin;return()=>(t+ga(()=>e.now()))/Fa}let Ra;function za(){return(Ra??=La())()}function Ba(e){let t=za(),n={sid:W(),init:!0,timestamp:t,started:t,duration:0,status:`ok`,errors:0,ignoreDuration:!1,toJSON:()=>Ua(n)};return e&&Va(n,e),n}function Va(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||za(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:W()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started==`number`&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration==`number`)e.duration=t.duration;else{let t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors==`number`&&(e.errors=t.errors),t.status&&(e.status=t.status)}function Ha(e,t){let n={};t?n={status:t}:e.status===`ok`&&(n={status:`exited`}),Va(e,n)}function Ua(e){return{sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did==`number`||typeof e.did==`string`?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}function Wa(e,t,n=2){if(!t||typeof t!=`object`||n<=0)return t;if(e&&Object.keys(t).length===0)return e;let r={...e};for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=Wa(r[e],t[e],n-1));return r}function Ga(){return W()}function Ka(){return W().substring(16)}const qa=`_sentrySpan`;function Ja(e,t){t?ca(e,qa,t):delete e[qa]}function Ya(e){return e[qa]}var Xa=class e{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:Ga(),sampleRand:U()}}clone(){let t=new e;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._attributes={...this._attributes},t._extra={...this._extra},t._contexts={...this._contexts},this._contexts.flags&&(t._contexts.flags={values:[...this._contexts.flags.values]}),t._user=this._user,t._level=this._level,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t._lastEventId=this._lastEventId,t._conversationId=this._conversationId,Ja(t,Ya(this)),t}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Va(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(e){return this._conversationId=e||void 0,this._notifyScopeListeners(),this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this.setTags({[e]:t})}setAttributes(e){return this._attributes={...this._attributes,...e},this._notifyScopeListeners(),this}setAttribute(e,t){return this.setAttributes({[e]:t})}removeAttribute(e){return e in this._attributes&&(delete this._attributes[e],this._notifyScopeListeners()),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;let n=typeof t==`function`?t(this):t,{tags:r,attributes:i,extra:a,user:o,contexts:s,level:c,fingerprint:l=[],propagationContext:u,conversationId:d}=(n instanceof e?n.getScopeData():Xi(n)?t:void 0)||{};return this._tags={...this._tags,...r},this._attributes={...this._attributes,...i},this._extra={...this._extra,...a},this._contexts={...this._contexts,...s},o&&Object.keys(o).length&&(this._user=o),c&&(this._level=c),l.length&&(this._fingerprint=l),u&&(this._propagationContext=u),d&&(this._conversationId=d),this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,Ja(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Ga(),sampleRand:U()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){let n=typeof t==`number`?t:100;if(n<=0)return this;let r={timestamp:Ia(),...e,message:e.message?va(e.message,2048):e.message};return this._breadcrumbs.push(r),this._breadcrumbs.length>n&&(this._breadcrumbs=this._breadcrumbs.slice(-n),this._client?.recordDroppedEvent(`buffer_overflow`,`log_item`)),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:Ya(this),conversationId:this._conversationId}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=Wa(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){let n=t?.event_id||W();if(!this._client)return R&&H.warn(`No client configured on scope - will not capture exception!`),n;let r=Error(`Sentry syntheticException`);return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:n},this),n}captureMessage(e,t,n){let r=n?.event_id||W();if(!this._client)return R&&H.warn(`No client configured on scope - will not capture message!`),r;let i=n?.syntheticException??Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:r},this),r}captureEvent(e,t){let n=e.event_id||t?.event_id||W();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(R&&H.warn(`No client configured on scope - will not capture event!`),n)}_notifyScopeListeners(){this._notifyingListeners||=(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),!1)}};function Za(){return di(`defaultCurrentScope`,()=>new Xa)}function Qa(){return di(`defaultIsolationScope`,()=>new Xa)}var $a=class{constructor(e,t){let n;n=e||new Xa;let r;r=t||new Xa,this._stack=[{scope:n}],this._isolationScope=r}withScope(e){let t=this._pushScope(),n;try{n=e(t)}catch(e){throw this._popScope(),e}return ea(n)?n.then(e=>(this._popScope(),e),e=>{throw this._popScope(),e}):(this._popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}};function eo(){let e=ui(B());return e.stack=e.stack||new $a(Za(),Qa())}function to(e){return eo().withScope(e)}function no(e,t){let n=eo();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function ro(e){return eo().withScope(()=>e(eo().getIsolationScope()))}function io(){return{withIsolationScope:ro,withScope:to,withSetScope:no,withSetIsolationScope:(e,t)=>ro(t),getCurrentScope:()=>eo().getScope(),getIsolationScope:()=>eo().getIsolationScope()}}function ao(e){let t=ui(B());t.acs=e}function oo(e){let t=ui(e);return t.acs?t.acs:io()}function G(){return oo(B()).getCurrentScope()}function K(){return oo(B()).getIsolationScope()}function so(){return di(`globalScope`,()=>new Xa)}function co(...e){let t=oo(B());if(e.length===2){let[n,r]=e;return n?t.withSetScope(n,r):t.withScope(r)}return t.withScope(e[0])}function lo(...e){let t=oo(B());if(e.length===2){let[n,r]=e;return n?t.withSetIsolationScope(n,r):t.withIsolationScope(r)}return t.withIsolationScope(e[0])}function q(){return G().getClient()}function uo(e){let{traceId:t,parentSpanId:n,propagationSpanId:r}=e.getPropagationContext(),i={trace_id:t,span_id:r||Ka()};return n&&(i.parent_span_id=n),i}const fo=`sentry.profile_id`,po=`sentry.exclusive_time`;function mo(e){if(e){if(typeof e==`object`&&`deref`in e&&typeof e.deref==`function`)try{return e.deref()}catch{return}return e}}function ho(e){let t=e;return{scope:t._sentryScope,isolationScope:mo(t._sentryIsolationScope)}}const go=/^sentry-/;function _o(e){let t=yo(e);if(!t)return;let n=Object.entries(t).reduce((e,[t,n])=>{if(t.match(go)){let r=t.slice(7);e[r]=n}return e},{});if(Object.keys(n).length>0)return n}function vo(e){if(e)return xo(Object.entries(e).reduce((e,[t,n])=>(n&&(e[`sentry-${t}`]=n),e),{}))}function yo(e){if(!(!e||!qi(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((e,t)=>{let n=bo(t);return Object.entries(n).forEach(([t,n])=>{e[t]=n}),e},{}):bo(e)}function bo(e){return e.split(`,`).map(e=>{let t=e.indexOf(`=`);return t===-1?[]:[e.slice(0,t),e.slice(t+1)].map(e=>{try{return decodeURIComponent(e.trim())}catch{return}})}).reduce((e,[t,n])=>(t&&n&&(e[t]=n),e),{})}function xo(e){if(Object.keys(e).length!==0)return Object.entries(e).reduce((e,[t,n],r)=>{let i=`${encodeURIComponent(t)}=${encodeURIComponent(n)}`,a=r===0?i:`${e},${i}`;return a.length>8192?(R&&H.warn(`Not adding key: ${t} with val: ${n} to baggage header due to exceeding baggage size limits.`),e):a},``)}const So=/^o(\d+)\./,Co=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/;function wo(e){return e===`http`||e===`https`}function To(e,t=!1){let{host:n,path:r,pass:i,port:a,projectId:o,protocol:s,publicKey:c}=e;return`${s}://${c}${t&&i?`:${i}`:``}@${n}${a?`:${a}`:``}/${r&&`${r}/`}${o}`}function Eo(e){let t=Co.exec(e);if(!t){V(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});return}let[n,r,i=``,a=``,o=``,s=``]=t.slice(1),c=``,l=s,u=l.split(`/`);if(u.length>1&&(c=u.slice(0,-1).join(`/`),l=u.pop()),l){let e=l.match(/^\d+/);e&&(l=e[0])}return Do({host:a,pass:i,path:c,projectId:l,port:o,protocol:n,publicKey:r})}function Do(e){return{protocol:e.protocol,publicKey:e.publicKey||``,pass:e.pass||``,host:e.host,port:e.port||``,path:e.path||``,projectId:e.projectId}}function Oo(e){if(!R)return!0;let{port:t,projectId:n,protocol:r}=e;return[`protocol`,`publicKey`,`host`,`projectId`].find(t=>e[t]?!1:(H.error(`Invalid Sentry Dsn: ${t} missing`),!0))?!1:n.match(/^\d+$/)?wo(r)?t&&isNaN(parseInt(t,10))?(H.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):!0:(H.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(H.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function ko(e){return e.match(So)?.[1]}function Ao(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=ko(n)),r}function jo(e){let t=typeof e==`string`?Eo(e):Do(e);if(!(!t||!Oo(t)))return t}function Mo(e){if(typeof e==`boolean`)return Number(e);let t=typeof e==`string`?parseFloat(e):e;if(!(typeof t!=`number`||isNaN(t)||t<0||t>1))return t}const No=RegExp(`^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$`);function Po(e){if(!e)return;let t=e.match(No);if(!t)return;let n;return t[3]===`1`?n=!0:t[3]===`0`&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function Fo(e,t){let n=Po(e),r=_o(t);if(!n?.traceId)return{traceId:Ga(),sampleRand:U()};let i=Ro(n,r);r&&(r.sample_rand=i.toString());let{traceId:a,parentSpanId:o,parentSampled:s}=n;return{traceId:a,parentSpanId:o,sampled:s,dsc:r||{},sampleRand:i}}function Io(e=Ga(),t=Ka(),n){let r=``;return n!==void 0&&(r=n?`-1`:`-0`),`${e}-${t}${r}`}function Lo(e=Ga(),t=Ka(),n){return`00-${e}-${t}-${n?`01`:`00`}`}function Ro(e,t){let n=Mo(t?.sample_rand);if(n!==void 0)return n;let r=Mo(t?.sample_rate);return r&&e?.parentSampled!==void 0?e.parentSampled?U()*r:r+U()*(1-r):U()}function zo(e,t){let n=Ao(e);return t&&n&&t!==n?(H.log(`Won't continue trace because org IDs don't match (incoming baggage: ${t}, SDK options: ${n})`),!1):e.getOptions().strictTraceContinuation&&(t&&!n||!t&&n)?(H.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${t}, Sentry client: ${n})`),!1):!0}let Bo=!1;function Vo(e){let{spanId:t,traceId:n,isRemote:r}=e.spanContext(),i=r?t:qo(e).parent_span_id,a=ho(e).scope;return{parent_span_id:i,span_id:r?a?.getPropagationContext().propagationSpanId||Ka():t,trace_id:n}}function Ho(e){let{traceId:t,spanId:n}=e.spanContext();return Io(t,n,Xo(e))}function Uo(e){let{traceId:t,spanId:n}=e.spanContext();return Lo(t,n,Xo(e))}function Wo(e){if(e&&e.length>0)return e.map(({context:{spanId:e,traceId:t,traceFlags:n,...r},attributes:i})=>({span_id:e,trace_id:t,sampled:n===1,attributes:i,...r}))}function Go(e){return typeof e==`number`?Ko(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?Ko(e.getTime()):za()}function Ko(e){return e>9999999999?e/1e3:e}function qo(e){if(Yo(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(Jo(e)){let{attributes:r,startTime:i,name:a,endTime:o,status:s,links:c}=e;return{span_id:t,trace_id:n,data:r,description:a,parent_span_id:`parentSpanId`in e?e.parentSpanId:`parentSpanContext`in e?e.parentSpanContext?.spanId:void 0,start_timestamp:Go(i),timestamp:Go(o)||void 0,status:Zo(s),op:r[`sentry.op`],origin:r[`sentry.origin`],links:Wo(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function Jo(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function Yo(e){return typeof e.getSpanJSON==`function`}function Xo(e){let{traceFlags:t}=e.spanContext();return t===1}function Zo(e){if(!(!e||e.code===0))return e.code===1?`ok`:e.message||`internal_error`}function Qo(e){return e._sentryRootSpan||e}function $o(){let e=oo(B());return e.getActiveSpan?e.getActiveSpan():Ya(G())}function es(){Bo||=(V(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),!0)}let ts=!1;function ns(){if(ts)return;function e(){let e=$o(),t=e&&Qo(e);if(t){let e=`internal_error`;R&&H.log(`[Tracing] Root span: ${e} -> Global error occurred`),t.setStatus({code:2,message:e})}}e.tag=`sentry_tracingErrorCallback`,ts=!0,Ri(e),Vi(e)}function rs(e){if(typeof __SENTRY_TRACING__==`boolean`&&!__SENTRY_TRACING__)return!1;let t=e||q()?.getOptions();return!!t&&(t.tracesSampleRate!=null||!!t.tracesSampler)}function is(e){H.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function as(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(ss(n)){if(xa(e.description,n))return R&&is(e),!0;continue}if(!n.name&&!n.op)continue;let t=n.name?xa(e.description,n.name):!0,r=n.op?e.op&&xa(e.op,n.op):!0;if(t&&r)return R&&is(e),!0}return!1}function os(e,t){let n=t.parent_span_id,r=t.span_id;if(n)for(let t of e)t.parent_span_id===r&&(t.parent_span_id=n)}function ss(e){return typeof e==`string`||e instanceof RegExp}const cs=`production`;function ls(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||cs,release:n.release,public_key:r,trace_id:e,org_id:Ao(t)};return t.emit(`createDsc`,i),i}function us(e,t){let n=t.getPropagationContext();return n.dsc||ls(n.traceId,e)}function ds(e){let t=q();if(!t)return{};let n=Qo(e),r=qo(n),i=r.data,a=n.spanContext().traceState,o=a?.get(`sentry.sample_rate`)??i[`sentry.sample_rate`]??i[`sentry.previous_trace_sample_rate`];function s(e){return(typeof o==`number`||typeof o==`string`)&&(e.sample_rate=`${o}`),e}let c=n._frozenDsc;if(c)return s(c);let l=a?.get(`sentry.dsc`),u=l&&_o(l);if(u)return s(u);let d=ls(e.spanContext().traceId,t),f=i[`sentry.source`],p=r.description;return f!==`url`&&p&&(d.transaction=p),rs()&&(d.sampled=String(Xo(n)),d.sample_rand=a?.get(`sentry.sample_rand`)??ho(n).scope?.getPropagationContext().sampleRand.toString()),s(d),t.emit(`createDsc`,d,n),d}function J(e,t=100,n=1/0){try{return ps(``,e,t,n)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function fs(e,t=3,n=100*1024){let r=J(e,t);return _s(r)>n?fs(e,t-1,n):r}function ps(e,t,n=1/0,r=1/0,i=vs()){let[a,o]=i;if(t==null||[`boolean`,`string`].includes(typeof t)||typeof t==`number`&&Number.isFinite(t))return t;let s=ms(e,t);if(!s.startsWith(`[object `))return s;if(t.__sentry_skip_normalization__)return t;let c=typeof t.__sentry_override_normalization_depth__==`number`?t.__sentry_override_normalization_depth__:n;if(c===0)return s.replace(`object `,``);if(a(t))return`[Circular ~]`;let l=t;if(l&&typeof l.toJSON==`function`)try{return ps(``,l.toJSON(),c-1,r,i)}catch{}let u=Array.isArray(t)?[]:{},d=0,f=da(t);for(let e in f){if(!Object.prototype.hasOwnProperty.call(f,e))continue;if(d>=r){u[e]=`[MaxProperties ~]`;break}let t=f[e];u[e]=ps(e,t,c-1,r,i),d++}return o(t),u}function ms(e,t){try{if(e===`domain`&&t&&typeof t==`object`&&t._events)return`[Domain]`;if(e===`domainEmitter`)return`[DomainEmitter]`;if(typeof global<`u`&&t===global)return`[Global]`;if(typeof window<`u`&&t===window)return`[Window]`;if(typeof document<`u`&&t===document)return`[Document]`;if(ra(t))return Ai(t);if(ta(t))return`[SyntheticEvent]`;if(typeof t==`number`&&!Number.isFinite(t))return`[${t}]`;if(typeof t==`function`)return`[Function: ${ki(t)}]`;if(typeof t==`symbol`)return`[${String(t)}]`;if(typeof t==`bigint`)return`[BigInt: ${String(t)}]`;let n=hs(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(e){return`**non-serializable** (${e})`}}function hs(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:`null prototype`}function gs(e){return~-encodeURI(e).split(/%..|./).length}function _s(e){return gs(JSON.stringify(e))}function vs(){let e=new WeakSet;function t(t){return e.has(t)?!0:(e.add(t),!1)}function n(t){e.delete(t)}return[t,n]}function ys(e,t=[]){return[e,t]}function bs(e,t){let[n,r]=e;return[n,[...r,t]]}function xs(e,t){let n=e[1];for(let e of n){let n=e[0].type;if(t(e,n))return!0}return!1}function Ss(e,t){return xs(e,(e,n)=>t.includes(n))}function Cs(e){let t=ui(z);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function ws(e){let[t,n]=e,r=JSON.stringify(t);function i(e){typeof r==`string`?r=typeof e==`string`?r+e:[Cs(r),e]:r.push(typeof e==`string`?Cs(e):e)}for(let e of n){let[t,n]=e;if(i(`\n${JSON.stringify(t)}\n`),typeof n==`string`||n instanceof Uint8Array)i(n);else{let e;try{e=JSON.stringify(n)}catch{e=JSON.stringify(J(n))}i(e)}}return typeof r==`string`?r:Ts(r)}function Ts(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function Es(e){let t=typeof e.data==`string`?Cs(e.data):e.data;return[{type:`attachment`,length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}const Ds={session:`session`,sessions:`session`,attachment:`attachment`,transaction:`transaction`,event:`error`,client_report:`internal`,user_report:`default`,profile:`profile`,profile_chunk:`profile`,replay_event:`replay`,replay_recording:`replay`,check_in:`monitor`,feedback:`feedback`,span:`span`,raw_security:`security`,log:`log_item`,metric:`metric`,trace_metric:`metric`};function Os(e){return Ds[e]}function ks(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function As(e,t,n,r){let i=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:To(r)},...i&&{trace:i}}}function js(e,t){if(!t)return e;let n=e.sdk||{};return e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0},e}function Ms(e,t,n,r){let i=ks(n);return ys({sent_at:new Date().toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:To(t)}},[`aggregates`in e?[{type:`sessions`},e]:[{type:`session`},e.toJSON()]])}function Ns(e,t,n,r){let i=ks(n),a=e.type&&e.type!==`replay_event`?e.type:`event`;js(e,n?.sdk);let o=As(e,i,r,t);return delete e.sdkProcessingMetadata,ys(o,[[{type:a},e]])}const Ps=`__SENTRY_SUPPRESS_TRACING__`,Fs=(e,t)=>{let n=oo(B());if(n.continueTrace)return n.continueTrace(e,t);let{sentryTrace:r,baggage:i}=e,a=q(),o=_o(i);return a&&!zo(a,o?.org_id)?Rs(t):co(e=>{let n=Fo(r,i);return e.setPropagationContext(n),Ja(e,void 0),t()})};function Is(e,t){let n=zs();return n.withActiveSpan?n.withActiveSpan(e,t):co(n=>(Ja(n,e||void 0),t(n)))}function Ls(e){let t=zs();return t.suppressTracing?t.suppressTracing(e):co(t=>{t.setSDKProcessingMetadata({[Ps]:!0});let n=e();return t.setSDKProcessingMetadata({[Ps]:void 0}),n})}function Rs(e){return co(t=>(t.setPropagationContext({traceId:Ga(),sampleRand:U()}),R&&H.log(`Starting a new trace with id ${t.getPropagationContext().traceId}`),Is(null,e)))}function zs(){return oo(B())}function Bs(e){return new Hs(t=>{t(e)})}function Vs(e){return new Hs((t,n)=>{n(e)})}var Hs=class e{constructor(e){this._state=0,this._handlers=[],this._runExecutor(e)}then(t,n){return new e((e,r)=>{this._handlers.push([!1,n=>{if(!t)e(n);else try{e(t(n))}catch(e){r(e)}},t=>{if(!n)r(t);else try{e(n(t))}catch(e){r(e)}}]),this._executeHandlers()})}catch(e){return this.then(e=>e,e)}finally(t){return new e((e,n)=>{let r,i;return this.then(e=>{i=!1,r=e,t&&t()},e=>{i=!0,r=e,t&&t()}).then(()=>{if(i){n(r);return}e(r)})})}_executeHandlers(){if(this._state===0)return;let e=this._handlers.slice();this._handlers=[],e.forEach(e=>{e[0]||=(this._state===1&&e[1](this._value),this._state===2&&e[2](this._value),!0)})}_runExecutor(e){let t=(e,t)=>{if(this._state===0){if(ea(t)){t.then(n,r);return}this._state=e,this._value=t,this._executeHandlers()}},n=e=>{t(1,e)},r=e=>{t(2,e)};try{e(n,r)}catch(e){r(e)}}};function Us(e,t,n,r=0){try{let i=Ws(t,n,e,r);return ea(i)?i:Bs(i)}catch(e){return Vs(e)}}function Ws(e,t,n,r){let i=n[r];if(!e||!i)return e;let a=i({...e},t);return R&&a===null&&H.log(`Event processor "${i.id||`?`}" dropped event`),ea(a)?a.then(e=>Ws(e,t,n,r+1)):Ws(a,t,n,r+1)}let Gs,Ks,qs,Js;function Ys(e){let t=z._sentryDebugIds,n=z._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(Js&&r.length===Ks&&i.length===qs)return Js;Ks=r.length,qs=i.length,Js={},Gs||={};let a=(t,n)=>{for(let r of t){let t=n[r],i=Gs?.[r];if(i&&Js&&t)Js[i[0]]=t,Gs&&(Gs[r]=[i[0],t]);else if(t){let n=e(r);for(let e=n.length-1;e>=0;e--){let i=n[e]?.filename;if(i&&Js&&Gs){Js[i]=t,Gs[r]=[i,t];break}}}}};return t&&a(r,t),n&&a(i,n),Js}function Xs(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:a}=t;ec(e,t),r&&rc(e,r),ic(e,n),tc(e,i),nc(e,a)}function Zs(e,t){let{extra:n,tags:r,attributes:i,user:a,contexts:o,level:s,sdkProcessingMetadata:c,breadcrumbs:l,fingerprint:u,eventProcessors:d,attachments:f,propagationContext:p,transactionName:m,span:h}=t;Qs(e,`extra`,n),Qs(e,`tags`,r),Qs(e,`attributes`,i),Qs(e,`user`,a),Qs(e,`contexts`,o),e.sdkProcessingMetadata=Wa(e.sdkProcessingMetadata,c,2),s&&(e.level=s),m&&(e.transactionName=m),h&&(e.span=h),l.length&&(e.breadcrumbs=[...e.breadcrumbs,...l]),u.length&&(e.fingerprint=[...e.fingerprint,...u]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),f.length&&(e.attachments=[...e.attachments,...f]),e.propagationContext={...e.propagationContext,...p}}function Qs(e,t,n){e[t]=Wa(e[t],n,1)}function $s(e,t){let n=so().getScopeData();return e&&Zs(n,e.getScopeData()),t&&Zs(n,t.getScopeData()),n}function ec(e,t){let{extra:n,tags:r,user:i,contexts:a,level:o,transactionName:s}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(r).length&&(e.tags={...r,...e.tags}),Object.keys(i).length&&(e.user={...i,...e.user}),Object.keys(a).length&&(e.contexts={...a,...e.contexts}),o&&(e.level=o),s&&e.type!==`transaction`&&(e.transaction=s)}function tc(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function nc(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function rc(e,t){e.contexts={trace:Vo(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:ds(t),...e.sdkProcessingMetadata};let n=qo(Qo(t)).description;n&&!e.transaction&&e.type===`transaction`&&(e.transaction=n)}function ic(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}function ac(e,t,n,r,i,a){let{normalizeDepth:o=3,normalizeMaxBreadth:s=1e3}=e,c={...t,event_id:t.event_id||n.event_id||W(),timestamp:t.timestamp||Ia()},l=n.integrations||e.integrations.map(e=>e.name);oc(c,e),lc(c,l),i&&i.emit(`applyFrameMetadata`,t),t.type===void 0&&sc(c,e.stackParser);let u=dc(r,n.captureContext);n.mechanism&&ka(c,n.mechanism);let d=i?i.getEventProcessors():[],f=$s(a,u),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),Xs(c,f);let m=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?Bs(c):Us(m,c,n)).then(e=>(e&&cc(e),typeof o==`number`&&o>0?uc(e,o,s):e))}function oc(e,t){let{environment:n,release:r,dist:i,maxValueLength:a}=t;e.environment=e.environment||n||cs,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&a&&(o.url=va(o.url,a)),a&&e.exception?.values?.forEach(e=>{e.value&&=va(e.value,a)})}function sc(e,t){let n=Ys(t);e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.filename&&(e.debug_id=n[e.filename])})})}function cc(e){let t={};if(e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)})}),Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];let n=e.debug_meta.images;Object.entries(t).forEach(([e,t])=>{n.push({type:`sourcemap`,code_file:e,debug_id:t})})}function lc(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function uc(e,t,n){if(!e)return null;let r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(e=>({...e,...e.data&&{data:J(e.data,t,n)}}))},...e.user&&{user:J(e.user,t,n)},...e.contexts&&{contexts:J(e.contexts,t,n)},...e.extra&&{extra:J(e.extra,t,n)}};return e.contexts?.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=J(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(e=>({...e,...e.data&&{data:J(e.data,t,n)}}))),e.contexts?.flags&&r.contexts&&(r.contexts.flags=J(e.contexts.flags,3,n)),r}function dc(e,t){if(!t)return e;let n=e?e.clone():new Xa;return n.update(t),n}function fc(e){if(e)return pc(e)||hc(e)?{captureContext:e}:e}function pc(e){return e instanceof Xa||typeof e==`function`}const mc=[`user`,`level`,`extra`,`contexts`,`tags`,`fingerprint`,`propagationContext`];function hc(e){return Object.keys(e).some(e=>mc.includes(e))}function gc(e,t){return G().captureException(e,fc(t))}function _c(e,t){K().setContext(e,t)}function vc(e,t){K().setTag(e,t)}function yc(e){K().setUser(e)}async function bc(e){let t=q();return t?t.flush(e):(R&&H.warn(`Cannot flush events. No client defined.`),Promise.resolve(!1))}function xc(){let e=q();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function Sc(e){let t=K(),{user:n}=$s(t,G()),{userAgent:r}=z.navigator||{},i=Ba({user:n,...r&&{userAgent:r},...e}),a=t.getSession();return a?.status===`ok`&&Va(a,{status:`exited`}),Cc(),t.setSession(i),i}function Cc(){let e=K(),t=G().getSession()||e.getSession();t&&Ha(t),wc(),e.setSession()}function wc(){let e=K(),t=q(),n=e.getSession();n&&t&&t.captureSession(n)}function Tc(e){let t=e.protocol?`${e.protocol}:`:``,n=e.port?`:${e.port}`:``;return`${t}//${e.host}${n}${e.path?`/${e.path}`:``}/api/`}function Ec(e){return`${Tc(e)}${e.projectId}/envelope/`}function Dc(e,t){let n={sentry_version:`7`};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function Oc(e,t,n){return t||`${Ec(e)}?${Dc(e,n)}`}const kc=[];function Ac(e){let t={};return e.forEach(e=>{let{name:n}=e,r=t[n];r&&!r.isDefaultInstance&&e.isDefaultInstance||(t[n]=e)}),Object.values(t)}function jc(e){let t=e.defaultIntegrations||[],n=e.integrations;t.forEach(e=>{e.isDefaultInstance=!0});let r;if(Array.isArray(n))r=[...t,...n];else if(typeof n==`function`){let e=n(t);r=Array.isArray(e)?e:[e]}else r=t;return Ac(r)}function Mc(e,t){let n={};return t.forEach(t=>{t&&Pc(e,t,n)}),n}function Nc(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function Pc(e,t,n){if(n[t.name]){R&&H.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,!kc.includes(t.name)&&typeof t.setupOnce==`function`&&(t.setupOnce(),kc.push(t.name)),t.setup&&typeof t.setup==`function`&&t.setup(e),typeof t.preprocessEvent==`function`){let n=t.preprocessEvent.bind(t);e.on(`preprocessEvent`,(t,r)=>n(t,r,e))}if(typeof t.processEvent==`function`){let n=t.processEvent.bind(t),r=Object.assign((t,r)=>n(t,r,e),{id:t.name});e.addEventProcessor(r)}R&&H.log(`Integration installed: ${t.name}`)}function Y(e){return e}function Fc(e,t){return t?co(t,()=>{let n=$o(),r=n?Vo(n):uo(t);return[n?ds(n):us(e,t),r]}):[void 0,void 0]}function Ic(e){return[{type:`log`,item_count:e.length,content_type:`application/vnd.sentry.items.log+json`},{items:e}]}function Lc(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=To(r)),ys(i,[Ic(e)])}function Rc(e,t){let n=t??zc(e)??[];if(n.length===0)return;let r=e.getOptions(),i=Lc(n,r._metadata,r.tunnel,e.getDsn());Bc().set(e,[]),e.emit(`flushLogs`),e.sendEnvelope(i)}function zc(e){return Bc().get(e)}function Bc(){return di(`clientToLogBufferMap`,()=>new WeakMap)}function Vc(e){return[{type:`trace_metric`,item_count:e.length,content_type:`application/vnd.sentry.items.trace-metric+json`},{items:e}]}function Hc(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=To(r)),ys(i,[Vc(e)])}function Uc(e,t){let n=t??Wc(e)??[];if(n.length===0)return;let r=e.getOptions(),i=Hc(n,r._metadata,r.tunnel,e.getDsn());Gc().set(e,[]),e.emit(`flushMetrics`),e.sendEnvelope(i)}function Wc(e){return Gc().get(e)}function Gc(){return di(`clientToMetricBufferMap`,()=>new WeakMap)}function Kc(e){return typeof e==`object`&&typeof e.unref==`function`&&e.unref(),e}const qc=Symbol.for(`SentryBufferFullError`);function Jc(e=100){let t=new Set;function n(){return t.size<e}function r(e){t.delete(e)}function i(e){if(!n())return Vs(qc);let i=e();return t.add(i),i.then(()=>r(i),()=>r(i)),i}function a(e){if(!t.size)return Bs(!0);let n=Promise.allSettled(Array.from(t)).then(()=>!0);if(!e)return n;let r=[n,new Promise(t=>Kc(setTimeout(()=>t(!1),e)))];return Promise.race(r)}return{get $(){return Array.from(t)},add:i,drain:a}}function Yc(e,t=_a()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?6e4:r-t}function Xc(e,t){return e[t]||e.all||0}function Zc(e,t,n=_a()){return Xc(e,t)>n}function Qc(e,{statusCode:t,headers:n},r=_a()){let i={...e},a=n?.[`x-sentry-rate-limits`],o=n?.[`retry-after`];if(a)for(let e of a.trim().split(`,`)){let[t,n,,,a]=e.split(`:`,5),o=parseInt(t,10),s=(isNaN(o)?60:o)*1e3;if(!n)i.all=r+s;else for(let e of n.split(`;`))e===`metric_bucket`?(!a||a.split(`;`).includes(`custom`))&&(i[e]=r+s):i[e]=r+s}else o?i.all=r+Yc(o,r):t===429&&(i.all=r+60*1e3);return i}function $c(e,t,n=Jc(e.bufferSize||64)){let r={},i=e=>n.drain(e);function a(i){let a=[];if(xs(i,(t,n)=>{let i=Os(n);Zc(r,i)?e.recordDroppedEvent(`ratelimit_backoff`,i):a.push(t)}),a.length===0)return Promise.resolve({});let o=ys(i[0],a),s=t=>{if(Ss(o,[`client_report`])){R&&H.warn(`Dropping client report. Will not send outcomes (reason: ${t}).`);return}xs(o,(n,r)=>{e.recordDroppedEvent(t,Os(r))})};return n.add(()=>t({body:ws(o)}).then(e=>e.statusCode===413?(R&&H.error(`Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.`),s(`send_error`),e):(R&&e.statusCode!==void 0&&(e.statusCode<200||e.statusCode>=300)&&H.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),r=Qc(r,e),e),e=>{throw s(`network_error`),R&&H.error(`Encountered error running transport request:`,e),e})).then(e=>e,e=>{if(e===qc)return R&&H.error(`Skipped sending event because buffer is full.`),s(`queue_overflow`),Promise.resolve({});throw e})}return{send:a,flush:i}}function el(e,t,n){let r=[{type:`client_report`},{timestamp:n||Ia(),discarded_events:e}];return ys(t?{dsn:t}:{},[r])}function tl(e){let t=[];e.message&&t.push(e.message);try{let n=e.exception.values[e.exception.values.length-1];n?.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}function nl(e){let{trace_id:t,parent_span_id:n,span_id:r,status:i,origin:a,data:o,op:s}=e.contexts?.trace??{};return{data:o??{},description:e.transaction,op:s,parent_span_id:n,span_id:r??``,start_timestamp:e.start_timestamp??0,status:i,timestamp:e.timestamp,trace_id:t??``,origin:a,profile_id:o?.[fo],exclusive_time:o?.[po],measurements:e.measurements,is_segment:!0}}function rl(e){return{type:`transaction`,timestamp:e.timestamp,start_timestamp:e.start_timestamp,transaction:e.description,contexts:{trace:{trace_id:e.trace_id,span_id:e.span_id,parent_span_id:e.parent_span_id,op:e.op,status:e.status,origin:e.origin,data:{...e.data,...e.profile_id&&{[fo]:e.profile_id},...e.exclusive_time&&{[po]:e.exclusive_time}}}},measurements:e.measurements}}const il=`Not capturing exception because it's already been captured.`,al=`Discarded session because of missing or non-string release`,ol=Symbol.for(`SentryInternalError`),sl=Symbol.for(`SentryDoNotSendEventError`);function cl(e){return{message:e,[ol]:!0}}function ll(e){return{message:e,[sl]:!0}}function ul(e){return!!e&&typeof e==`object`&&ol in e}function dl(e){return!!e&&typeof e==`object`&&sl in e}function fl(e,t,n,r,i){let a=0,o,s=!1;e.on(n,()=>{a=0,clearTimeout(o),s=!1}),e.on(t,t=>{a+=r(t),a>=8e5?i(e):s||(s=!0,o=Kc(setTimeout(()=>{i(e)},5e3)))}),e.on(`flush`,()=>{i(e)})}var pl=class{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=Jc(e.transportOptions?.bufferSize??64),e.dsn?this._dsn=jo(e.dsn):R&&H.warn(`No DSN provided, client will not send events.`),this._dsn){let t=Oc(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs&&fl(this,`afterCaptureLog`,`flushLogs`,bl,Rc),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&fl(this,`afterCaptureMetric`,`flushMetrics`,yl,Uc)}captureException(e,t,n){let r=W();if(Na(e))return R&&H.log(il),r;let i={event_id:r,...t};return this._process(()=>this.eventFromException(e,i).then(e=>this._captureEvent(e,i,n)).then(e=>e),`error`),i.event_id}captureMessage(e,t,n,r){let i={event_id:W(),...n},a=Ji(e)?e:String(e),o=Yi(e),s=o?this.eventFromMessage(a,t,i):this.eventFromException(e,i);return this._process(()=>s.then(e=>this._captureEvent(e,i,r)),o?`unknown`:`error`),i.event_id}captureEvent(e,t,n){let r=W();if(t?.originalException&&Na(t.originalException))return R&&H.log(il),r;let i={event_id:r,...t},a=e.sdkProcessingMetadata||{},o=a.capturedSpanScope,s=a.capturedSpanIsolationScope,c=ml(e.type);return this._process(()=>this._captureEvent(e,i,o||n,s),c),i.event_id}captureSession(e){this.sendSession(e),Va(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(e){let t=this._transport;if(!t)return!0;this.emit(`flush`);let n=await this._isClientDoneProcessing(e),r=await t.flush(e);return n&&r}async close(e){Rc(this);let t=await this.flush(e);return this.getOptions().enabled=!1,this.emit(`close`),t}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith(`Spotlight`)))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){let t=this._integrations[e.name];Pc(this,e,this._integrations),t||Nc(this,[e])}sendEvent(e,t={}){this.emit(`beforeSendEvent`,e,t);let n=Ns(e,this._dsn,this._options._metadata,this._options.tunnel);for(let e of t.attachments||[])n=bs(n,Es(e));this.sendEnvelope(n).then(t=>this.emit(`afterSendEvent`,e,t))}sendSession(e){let{release:t,environment:n=cs}=this._options;if(`aggregates`in e){let r=e.attrs||{};if(!r.release&&!t){R&&H.warn(al);return}r.release=r.release||t,r.environment=r.environment||n,e.attrs=r}else{if(!e.release&&!t){R&&H.warn(al);return}e.release=e.release||t,e.environment=e.environment||n}this.emit(`beforeSendSession`,e);let r=Ms(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(r)}recordDroppedEvent(e,t,n=1){if(this._options.sendClientReports){let r=`${e}:${t}`;R&&H.log(`Recording outcome: "${r}"${n>1?` (${n} times)`:``}`),this._outcomes[r]=(this._outcomes[r]||0)+n}}on(e,t){let n=this._hooks[e]=this._hooks[e]||new Set,r=(...e)=>t(...e);return n.add(r),()=>{n.delete(r)}}emit(e,...t){let n=this._hooks[e];n&&n.forEach(e=>e(...t))}async sendEnvelope(e){if(this.emit(`beforeEnvelope`,e),this._isEnabled()&&this._transport)try{return await this._transport.send(e)}catch(e){return R&&H.error(`Error while sending envelope:`,e),{}}return R&&H.error(`Transport disabled`),{}}dispose(){}_setupIntegrations(){let{integrations:e}=this._options;this._integrations=Mc(this,e),Nc(this,e)}_updateSessionFromEvent(e,t){let n=t.level===`fatal`,r=!1,i=t.exception?.values;if(i){r=!0,n=!1;for(let e of i)if(e.mechanism?.handled===!1){n=!0;break}}let a=e.status===`ok`;(a&&e.errors===0||a&&n)&&(Va(e,{...n&&{status:`crashed`},errors:e.errors||Number(r||n)}),this.captureSession(e))}async _isClientDoneProcessing(e){let t=0;for(;!e||t<e;){if(await new Promise(e=>setTimeout(e,1)),!this._numProcessing)return!0;t++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,t,n,r){let i=this.getOptions(),a=Object.keys(this._integrations);return!t.integrations&&a?.length&&(t.integrations=a),this.emit(`preprocessEvent`,e,t),e.type||r.setLastEventId(e.event_id||t.event_id),ac(i,e,t,n,this,r).then(e=>e===null?e:(this.emit(`postprocessEvent`,e,t),e.contexts={trace:uo(n),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:us(this,n),...e.sdkProcessingMetadata},e))}_captureEvent(e,t={},n=G(),r=K()){return R&&_l(e)&&H.log(`Captured error event \`${tl(e)[0]||`<unknown>`}\``),this._processEvent(e,t,n,r).then(e=>e.event_id,e=>{R&&(dl(e)?H.log(e.message):ul(e)?H.warn(e.message):H.warn(e))})}_processEvent(e,t,n,r){let i=this.getOptions(),{sampleRate:a}=i,o=vl(e),s=_l(e),c=`before send for type \`${e.type||`error`}\``,l=a===void 0?void 0:Mo(a);if(s&&typeof l==`number`&&U()>l)return this.recordDroppedEvent(`sample_rate`,`error`),Vs(ll(`Discarding event because it's not included in the random sample (sampling rate = ${a})`));let u=ml(e.type);return this._prepareEvent(e,t,n,r).then(e=>{if(e===null)throw this.recordDroppedEvent(`event_processor`,u),ll("An event processor returned `null`, will not send event.");return t.data&&t.data.__sentry__===!0?e:hl(gl(this,i,e,t),c)}).then(i=>{if(i===null){if(this.recordDroppedEvent(`before_send`,u),o){let t=1+(e.spans||[]).length;this.recordDroppedEvent(`before_send`,`span`,t)}throw ll(`${c} returned \`null\`, will not send event.`)}let a=n.getSession()||r.getSession();if(s&&a&&this._updateSessionFromEvent(a,i),o){let e=(i.sdkProcessingMetadata?.spanCountBeforeProcessing||0)-(i.spans?i.spans.length:0);e>0&&this.recordDroppedEvent(`before_send`,`span`,e)}let l=i.transaction_info;return o&&l&&i.transaction!==e.transaction&&(i.transaction_info={...l,source:`custom`}),this.sendEvent(i,t),i}).then(null,e=>{throw dl(e)||ul(e)?e:(this.captureException(e,{mechanism:{handled:!1,type:`internal`},data:{__sentry__:!0},originalException:e}),cl(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`))})}_process(e,t){this._numProcessing++,this._promiseBuffer.add(e).then(e=>(this._numProcessing--,e),e=>(this._numProcessing--,e===qc&&this.recordDroppedEvent(`queue_overflow`,t),e))}_clearOutcomes(){let e=this._outcomes;return this._outcomes={},Object.entries(e).map(([e,t])=>{let[n,r]=e.split(`:`);return{reason:n,category:r,quantity:t}})}_flushOutcomes(){R&&H.log(`Flushing outcomes...`);let e=this._clearOutcomes();if(e.length===0){R&&H.log(`No outcomes to send`);return}if(!this._dsn){R&&H.log(`No dsn provided, will not send outcomes`);return}R&&H.log(`Sending outcomes:`,e);let t=el(e,this._options.tunnel&&To(this._dsn));this.sendEnvelope(t)}};function ml(e){return e===`replay_event`?`replay`:e||`error`}function hl(e,t){let n=`${t} must return \`null\` or a valid event.`;if(ea(e))return e.then(e=>{if(!Xi(e)&&e!==null)throw cl(n);return e},e=>{throw cl(`${t} rejected with ${e}`)});if(!Xi(e)&&e!==null)throw cl(n);return e}function gl(e,t,n,r){let{beforeSend:i,beforeSendTransaction:a,beforeSendSpan:o,ignoreSpans:s}=t,c=n;if(_l(c)&&i)return i(c,r);if(vl(c)){if(o||s){let t=nl(c);if(s?.length&&as(t,s))return null;if(o){let e=o(t);e?c=Wa(n,rl(e)):es()}if(c.spans){let t=[],n=c.spans;for(let e of n){if(s?.length&&as(e,s)){os(n,e);continue}if(o){let n=o(e);n?t.push(n):(es(),t.push(e))}else t.push(e)}let r=c.spans.length-t.length;r&&e.recordDroppedEvent(`before_send`,`span`,r),c.spans=t}}if(a){if(c.spans){let e=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:e}}return a(c,r)}}return c}function _l(e){return e.type===void 0}function vl(e){return e.type===`transaction`}function yl(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+xl(e.attributes)}function bl(e){let t=0;return e.message&&(t+=e.message.length*2),t+xl(e.attributes)}function xl(e){if(!e)return 0;let t=0;return Object.values(e).forEach(e=>{Array.isArray(e)?t+=e.length*Sl(e[0]):Yi(e)?t+=Sl(e):t+=100}),t}function Sl(e){return typeof e==`string`?e.length*2:typeof e==`number`?8:typeof e==`boolean`?4:0}function Cl(e,t,n,r,i){let a={sent_at:new Date().toISOString()};return n?.sdk&&(a.sdk={name:n.sdk.name,version:n.sdk.version}),r&&i&&(a.dsn=To(i)),t&&(a.trace=t),ys(a,[wl(e)])}function wl(e){return[{type:`check_in`},e]}function Tl(e){let t=e._metadata?.sdk,n=t?.name&&t?.version?`${t?.name}/${t?.version}`:void 0;e.transportOptions={...e.transportOptions,headers:{...n&&{"user-agent":n},...e.transportOptions?.headers}}}function El(e,t){return e(t.stack||``,1)}function Dl(e){return Wi(e)&&`__sentry_fetch_url_host__`in e&&typeof e.__sentry_fetch_url_host__==`string`}function Ol(e){return Dl(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function kl(e,t){let n={type:t.name||t.constructor.name,value:Ol(t)},r=El(e,t);return r.length&&(n.stacktrace={frames:r}),n}function Al(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function jl(e){if(`name`in e&&typeof e.name==`string`){let t=`'${e.name}' captured as exception`;return`message`in e&&typeof e.message==`string`&&(t+=` with message '${e.message}'`),t}else if(`message`in e&&typeof e.message==`string`)return e.message;let t=ma(e);if(Ki(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=Ml(e);return`${n&&n!==`Object`?`'${n}'`:`Object`} captured as exception with keys: ${t}`}function Ml(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function Nl(e,t,n,r){if(Wi(n))return[n,void 0];if(t.synthetic=!0,Xi(n)){let t=e?.getOptions().normalizeDepth,i={__serialized__:fs(n,t)},a=Al(n);if(a)return[a,i];let o=jl(n),s=r?.syntheticException||Error(o);return s.message=o,[s,i]}let i=r?.syntheticException||Error(n);return i.message=`${n}`,[i,void 0]}function Pl(e,t,n,r){let i=r?.data&&r.data.mechanism||{handled:!0,type:`generic`},[a,o]=Nl(e,i,n,r),s={exception:{values:[kl(t,a)]}};return o&&(s.extra=o),Oa(s,void 0,void 0),ka(s,i),{...s,event_id:r?.event_id}}function Fl(e,t,n=`info`,r,i){let a={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let n=El(e,r.syntheticException);n.length&&(a.exception={values:[{value:t,stacktrace:{frames:n}}]},ka(a,{synthetic:!0}))}if(Ji(t)){let{__sentry_template_string__:e,__sentry_template_values__:n}=t;return a.logentry={message:e,params:n},a}return a.message=t,a}var Il=class extends pl{constructor(e){ns(),Tl(e),super(e),this._setUpMetricsProcessing()}eventFromException(e,t){let n=Pl(this,this._options.stackParser,e,t);return n.level=`error`,Bs(n)}eventFromMessage(e,t=`info`,n){return Bs(Fl(this._options.stackParser,e,t,n,this._options.attachStacktrace))}captureException(e,t,n){return Ll(t),super.captureException(e,t,n)}captureEvent(e,t,n){return!e.type&&e.exception?.values&&e.exception.values.length>0&&Ll(t),super.captureEvent(e,t,n)}captureCheckIn(e,t,n){let r=`checkInId`in e&&e.checkInId?e.checkInId:W();if(!this._isEnabled())return R&&H.warn(`SDK not enabled, will not capture check-in.`),r;let{release:i,environment:a,tunnel:o}=this.getOptions(),s={check_in_id:r,monitor_slug:e.monitorSlug,status:e.status,release:i,environment:a};`duration`in e&&(s.duration=e.duration),t&&(s.monitor_config={schedule:t.schedule,checkin_margin:t.checkinMargin,max_runtime:t.maxRuntime,timezone:t.timezone,failure_issue_threshold:t.failureIssueThreshold,recovery_threshold:t.recoveryThreshold});let[c,l]=Fc(this,n);l&&(s.contexts={trace:l});let u=Cl(s,c,this.getSdkMetadata(),o,this.getDsn());return R&&H.log(`Sending checkin:`,e.monitorSlug,e.status),this.sendEnvelope(u),r}dispose(){R&&H.log(`Disposing client...`);for(let e of Object.keys(this._hooks))this._hooks[e]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=Jc(64)}_prepareEvent(e,t,n,r){return this._options.platform&&(e.platform=e.platform||this._options.platform),this._options.runtime&&(e.contexts={...e.contexts,runtime:e.contexts?.runtime||this._options.runtime}),this._options.serverName&&(e.server_name=e.server_name||this._options.serverName),super._prepareEvent(e,t,n,r)}_setUpMetricsProcessing(){this.on(`processMetric`,e=>{this._options.serverName&&(e.attributes={"server.address":this._options.serverName,...e.attributes})})}};function Ll(e){let t=K().getScopeData().sdkProcessingMetadata.requestSession;if(t){let n=e?.mechanism?.handled??!0;n&&t.status!==`crashed`?t.status=`errored`:n||(t.status=`crashed`)}}const Rl=new Set([`false`,`f`,`n`,`no`,`off`,`0`]),zl=new Set([`true`,`t`,`y`,`yes`,`on`,`1`]);function Bl(e,t){let n=String(e).toLowerCase();return Rl.has(n)?!1:zl.has(n)?!0:t?.strict?null:!!e}function Vl(e){if(!e)return{};let t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};let n=t[6]||``,r=t[8]||``;return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function Hl(e){return e.split(/[?#]/,1)[0]}function Ul(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,`[filtered]:[filtered]@`).replace(/(:80)$/,``).replace(/(:443)$/,``)||``;return`${t?`${t}://`:``}${i}${r}`}function Wl(e,t,n=[t],r=`npm`){let i=(e._metadata=e._metadata||{}).sdk=e._metadata.sdk||{};i.name||(i.name=`sentry.javascript.${t}`,i.packages=n.map(e=>({name:`${r}:@sentry/${e}`,version:li})),i.version=li)}function Gl(e={}){let t=e.client||q();if(!xc()||!t)return{};let n=oo(B());if(n.getTraceData)return n.getTraceData(e);let r=e.scope||G(),i=e.span||$o(),a=i?Ho(i):Kl(r),o=vo(i?ds(i):us(t,r));if(!No.test(a))return H.warn(`Invalid sentry-trace data. Cannot generate trace data`),{};let s={"sentry-trace":a,baggage:o};return e.propagateTraceparent&&(s.traceparent=i?Uo(i):ql(r)),s}function Kl(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Io(t,r,n)}function ql(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Lo(t,r,n)}const Jl=`[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:`;function Yl(e,t,n){if(typeof e!=`string`||!t)return!0;let r=n?.get(e);if(r!==void 0)return R&&!r&&H.log(Jl,e),r;let i=Sa(e,t);return n?.set(e,i),R&&!i&&H.log(Jl,e),i}function Xl(e){let t=Object.create(null);try{Object.entries(e).forEach(([e,n])=>{typeof n==`string`&&(t[e]=n)})}catch{}return t}function Zl(e){let t=e.headers||{},n=(typeof t[`x-forwarded-host`]==`string`?t[`x-forwarded-host`]:void 0)||(typeof t.host==`string`?t.host:void 0),r=(typeof t[`x-forwarded-proto`]==`string`?t[`x-forwarded-proto`]:void 0)||e.protocol||(e.socket?.encrypted?`https`:`http`),i=e.url||``,a=Ql({url:i,host:n,protocol:r}),o=e.body||void 0,s=e.cookies;return{url:a,method:e.method,query_string:$l(i),headers:Xl(t),cookies:s,data:o}}function Ql({url:e,protocol:t,host:n}){if(e?.startsWith(`http`))return e;if(e&&n)return`${t}://${n}${e}`}function $l(e){if(e)try{let t=new URL(e,`http://s.io`).search.slice(1);return t.length?t:void 0}catch{return}}function eu(e,t){let n=q(),r=K();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:a=100}=n.getOptions();if(a<=0)return;let o={timestamp:Ia(),...e},s=i?V(()=>i(o,t)):o;s!==null&&(n.emit&&n.emit(`beforeAddBreadcrumb`,s,t),r.addBreadcrumb(s,a))}let tu;const nu=new WeakMap,ru=Y((()=>({name:`FunctionToString`,setupOnce(){tu=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=ua(this),n=nu.has(q())&&t!==void 0?t:this;return tu.apply(n,e)}}catch{}},setup(e){nu.set(e,!0)}}))),iu=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,`vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)`,`Can't find variable: _AutofillCallbackHandler`,/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],au=Y((e={})=>{let t;return{name:`EventFilters`,setup(n){t=ou(e,n.getOptions())},processEvent(n,r,i){return t||=ou(e,i.getOptions()),su(n,t)?null:n}}});function ou(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:iu],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function su(e,t){if(e.type){if(e.type===`transaction`&&lu(e,t.ignoreTransactions))return R&&H.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${Da(e)}`),!0}else{if(cu(e,t.ignoreErrors))return R&&H.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${Da(e)}`),!0;if(mu(e))return R&&H.warn(`Event dropped due to not having an error message, error type or stacktrace.\nEvent: ${Da(e)}`),!0;if(uu(e,t.denyUrls))return R&&H.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${Da(e)}.\nUrl: ${pu(e)}`),!0;if(!du(e,t.allowUrls))return R&&H.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${Da(e)}.\nUrl: ${pu(e)}`),!0}return!1}function cu(e,t){return t?.length?tl(e).some(e=>Sa(e,t)):!1}function lu(e,t){if(!t?.length)return!1;let n=e.transaction;return n?Sa(n,t):!1}function uu(e,t){if(!t?.length)return!1;let n=pu(e);return n?Sa(n,t):!1}function du(e,t){if(!t?.length)return!0;let n=pu(e);return n?Sa(n,t):!0}function fu(e=[]){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n&&n.filename!==`<anonymous>`&&n.filename!==`[native code]`)return n.filename||null}return null}function pu(e){try{let t=[...e.exception?.values??[]].reverse().find(e=>e.mechanism?.parent_id===void 0&&e.stacktrace?.frames?.length)?.stacktrace?.frames;return t?fu(t):null}catch{return R&&H.error(`Cannot extract url for event ${Da(e)}`),null}}function mu(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(e=>e.stacktrace||e.type&&e.type!==`Error`||e.value):!1}function hu(e,t,n,r,i,a){if(!i.exception?.values||!a||!na(a.originalException,Error))return;let o=i.exception.values.length>0?i.exception.values[i.exception.values.length-1]:void 0;o&&(i.exception.values=gu(e,t,r,a.originalException,n,i.exception.values,o,0))}function gu(e,t,n,r,i,a,o,s){if(a.length>=n+1)return a;let c=[...a];if(na(r[i],Error)){vu(o,s,r);let a=e(t,r[i]),l=c.length;yu(a,i,l,s),c=gu(e,t,n,r[i],i,[a,...c],a,l)}return _u(r)&&r.errors.forEach((a,l)=>{if(na(a,Error)){vu(o,s,r);let u=e(t,a),d=c.length;yu(u,`errors[${l}]`,d,s),c=gu(e,t,n,a,i,[u,...c],u,d)}}),c}function _u(e){return Array.isArray(e.errors)}function vu(e,t,n){e.mechanism={handled:!0,type:`auto.core.linked_errors`,..._u(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function yu(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:`chained`,source:t,exception_id:n,parent_id:r}}const bu=Y(((e={})=>{let t=e.limit||5,n=e.key||`cause`;return{name:`LinkedErrors`,preprocessEvent(e,r,i){hu(kl,i.getOptions().stackParser,n,t,e,r)}}}));function xu(e){let t={},n=0;for(;n<e.length;){let r=e.indexOf(`=`,n);if(r===-1)break;let i=e.indexOf(`;`,n);if(i===-1)i=e.length;else if(i<r){n=e.lastIndexOf(`;`,r-1)+1;continue}let a=e.slice(n,r).trim();if(t[a]===void 0){let n=e.slice(r+1,i).trim();n.charCodeAt(0)===34&&(n=n.slice(1,-1));try{t[a]=n.indexOf(`%`)===-1?n:decodeURIComponent(n)}catch{t[a]=n}}n=i+1}return t}const Su=[`X-Client-IP`,`X-Forwarded-For`,`Fly-Client-IP`,`CF-Connecting-IP`,`Fastly-Client-Ip`,`True-Client-Ip`,`X-Real-IP`,`X-Cluster-Client-IP`,`X-Forwarded`,`Forwarded-For`,`Forwarded`,`X-Vercel-Forwarded-For`];function Cu(e){let t={};for(let n of Object.keys(e))t[n.toLowerCase()]=e[n];return Su.map(e=>{let n=t[e.toLowerCase()],r=Array.isArray(n)?n.join(`;`):n;return e===`Forwarded`?wu(r):r?.split(`,`).map(e=>e.trim())}).reduce((e,t)=>t?e.concat(t):e,[]).find(e=>e!==null&&Tu(e))||null}function wu(e){if(!e)return null;for(let t of e.split(`;`))if(t.startsWith(`for=`))return t.slice(4);return null}function Tu(e){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(e)}const Eu={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},Du=Y(((e={})=>{let t={...Eu,...e.include};return{name:`RequestData`,processEvent(e,n,r){let{sdkProcessingMetadata:i={}}=e,{normalizedRequest:a,ipAddress:o}=i,s={...t,ip:t.ip??r.getOptions().sendDefaultPii};return a&&Ou(e,a,{ipAddress:o},s),e}}}));function Ou(e,t,n,r){if(e.request={...e.request,...ku(t,r)},r.ip){let r=t.headers&&Cu(t.headers)||n.ipAddress;r&&(e.user={...e.user,ip_address:r})}}function ku(e,t){let n={},r={...e.headers};return t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||Su.forEach(e=>{delete r[e]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies&&(n.cookies=e.cookies||(r?.cookie?xu(r.cookie):void 0)||{}),t.query_string&&(n.query_string=e.query_string),t.data&&(n.data=e.data),n}function Au(e){let t=`console`;Pi(t,e),Fi(t,ju)}function ju(){`console`in z&&fi.forEach(function(e){e in z.console&&sa(z.console,e,function(t){return pi[e]=t,function(...t){Ii(`console`,{args:t,level:e}),pi[e]?.apply(z.console,t)}})})}function Mu(e){return e===`warn`?`warning`:[`fatal`,`error`,`warning`,`log`,`info`,`debug`].includes(e)?e:`log`}const Nu=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function Pu(e){let t=e.length>1024?`<truncated>${e.slice(-1024)}`:e,n=Nu.exec(t);return n?n.slice(1):[]}function Fu(e){let t=Pu(e),n=t[0]||``,r=t[1];return!n&&!r?`.`:(r&&=r.slice(0,r.length-1),n+r)}const Iu=Y((e={})=>{let t=new Set(e.levels||fi);return{name:`Console`,setup(e){Au(({args:n,level:r})=>{q()!==e||!t.has(r)||Lu(r,n)})}}});function Lu(e,t){let n={category:`console`,data:{arguments:t,logger:`console`},level:Mu(e),message:Ru(t)};if(e===`assert`)if(t[0]===!1){let e=t.slice(1);n.message=e.length>0?`Assertion failed: ${Ru(e)}`:`Assertion failed`,n.data.arguments=e}else return;eu(n,{input:t,level:e})}function Ru(e){return`util`in z&&typeof z.util.format==`function`?z.util.format(...e):ba(e,` `)}function zu(e){if(e!==void 0){if(e>=400&&e<500)return`warning`;if(e>=500)return`error`}}function Bu(e,t=!1){return!(t||e&&!e.startsWith(`/`)&&!e.match(/^[A-Z]:/)&&!e.startsWith(`.`)&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&e!==void 0&&!e.includes(`node_modules/`)}function Vu(e){let t=/^\s*[-]{4,}$/,n=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,r=/at (?:async )?(.+?) \(data:(.*?),/;return i=>{let a=i.match(r);if(a)return{filename:`<data:${a[2]}>`,function:a[1]};let o=i.match(n);if(o){let t,n,r,i,a;if(o[1]){r=o[1];let e=r.lastIndexOf(`.`);if(r[e-1]===`.`&&e--,e>0){t=r.slice(0,e),n=r.slice(e+1);let i=t.indexOf(`.Module`);i>0&&(r=r.slice(i+1),t=t.slice(0,i))}i=void 0}n&&(i=t,a=n),n===`<anonymous>`&&(a=void 0,r=void 0),r===void 0&&(a||=`?`,r=i?`${i}.${a}`:a);let s=ji(o[2]),c=o[5]===`native`;!s&&o[5]&&!c&&(s=o[5]);let l=s?Wu(s):void 0;return{filename:l??s,module:l&&e?.(l),function:r,lineno:Uu(o[3]),colno:Uu(o[4]),in_app:Bu(s||``,c)}}if(i.match(t))return{filename:i}}}function Hu(e){return[90,Vu(e)]}function Uu(e){return parseInt(e||``,10)||void 0}function Wu(e){try{return decodeURI(e)}catch{return}}var Gu=class{constructor(e){this._maxSize=e,this._cache=new Map}get size(){return this._cache.size}get(e){let t=this._cache.get(e);if(t!==void 0)return this._cache.delete(e),this._cache.set(e,t),t}set(e,t){if(this._cache.size>=this._maxSize){let e=this._cache.keys().next().value;this._cache.delete(e)}this._cache.set(e,t)}remove(e){let t=this._cache.get(e);return t&&this._cache.delete(e),t}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let e=[];return this._cache.forEach(t=>e.push(t)),e}};const X=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__;var Ku=class extends Il{constructor(e){let t=e.includeServerName===!1?void 0:e.serverName||global.process.env.SENTRY_NAME||A.hostname(),n={...e,platform:`node`,runtime:{name:`node`,version:global.process.version},serverName:t};Wl(n,`node-light`,[`node-core`]),H.log(`Initializing Sentry: process: ${process.pid}, thread: ${nt?`main`:`worker-${rt}`}.`),super(n),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{Rc(this)},t&&this.on(`beforeCaptureLog`,e=>{e.attributes={...e.attributes,"server.address":t}}),process.on(`beforeExit`,this._logOnExitFlushListener))}async flush(e){return this.getOptions().sendClientReports&&this._flushOutcomes(),super.flush(e)}async close(e){return this._clientReportInterval&&clearInterval(this._clientReportInterval),this._clientReportOnExitFlushListener&&process.off(`beforeExit`,this._clientReportOnExitFlushListener),this._logOnExitFlushListener&&process.off(`beforeExit`,this._logOnExitFlushListener),super.close(e)}startClientReportTracking(){let e=this.getOptions();e.sendClientReports&&(this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{X&&H.log(`Flushing client reports based on interval.`),this._flushOutcomes()},e.clientReportFlushInterval??6e4).unref(),process.on(`beforeExit`,this._clientReportOnExitFlushListener))}};const qu=Y((e={})=>({name:`ChildProcess`,setup(){it.channel(`child_process`).subscribe(t=>{t&&typeof t==`object`&&`process`in t&&Ju(t.process,e)}),it.channel(`worker_threads`).subscribe(t=>{t&&typeof t==`object`&&`worker`in t&&Yu(t.worker,e)})}}));function Ju(e,t){let n=!1,r;e.on(`spawn`,()=>{if(e.spawnfile===`/usr/bin/sw_vers`){n=!0;return}r={spawnfile:e.spawnfile},t.includeChildProcessArgs&&(r.spawnargs=e.spawnargs)}).on(`exit`,e=>{n||(n=!0,e!==null&&e!==0&&eu({category:`child_process`,message:`Child process exited with code '${e}'`,level:e===0?`info`:`warning`,data:r}))}).on(`error`,e=>{n||(n=!0,eu({category:`child_process`,message:`Child process errored with '${e.message}'`,level:`error`,data:r}))})}function Yu(e,t){let n;e.on(`online`,()=>{n=e.threadId}).on(`error`,e=>{t.captureWorkerErrors===!1?eu({category:`worker_thread`,message:`Worker thread errored with '${e.message}'`,level:`error`,data:{threadId:n}}):gc(e,{mechanism:{type:`auto.child_process.worker_thread`,handled:!1,data:{threadId:String(n)}}})})}const Xu=Ue(ct),Zu=Ue(ut),Qu=Y(((e={})=>{let t,n={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...e};async function r(e){t===void 0&&(t=i());let n=$u(await t);return e.contexts={...e.contexts,app:{...n.app,...e.contexts?.app},os:{...n.os,...e.contexts?.os},device:{...n.device,...e.contexts?.device},culture:{...n.culture,...e.contexts?.culture},cloud_resource:{...n.cloud_resource,...e.contexts?.cloud_resource}},e}async function i(){let e={};if(n.os&&(e.os=await ed()),n.app&&(e.app=nd()),n.device&&(e.device=rd(n.device)),n.culture){let t=td();t&&(e.culture=t)}return n.cloudResource&&(e.cloud_resource=ud()),e}return{name:`Context`,processEvent(e){return r(e)}}}));function $u(e){if(e.app?.app_memory&&(e.app.app_memory=process.memoryUsage().rss),e.app?.free_memory&&typeof process.availableMemory==`function`){let t=process.availableMemory?.();t!=null&&(e.app.free_memory=t)}return e.device?.free_memory&&(e.device.free_memory=A.freemem()),e}async function ed(){let e=A.platform();switch(e){case`darwin`:return sd();case`linux`:return ld();default:return{name:id[e]||e,version:A.release()}}}function td(){try{if(typeof process.versions.icu!=`string`)return;let e=new Date(9e8);if(new Intl.DateTimeFormat(`es`,{month:`long`}).format(e)===`enero`){let e=Intl.DateTimeFormat().resolvedOptions();return{locale:e.locale,timezone:e.timeZone}}}catch{}}function nd(){let e=process.memoryUsage().rss,t={app_start_time:new Date(Date.now()-process.uptime()*1e3).toISOString(),app_memory:e};if(typeof process.availableMemory==`function`){let e=process.availableMemory?.();e!=null&&(t.free_memory=e)}return t}function rd(e){let t={},n;try{n=A.uptime()}catch{}if(typeof n==`number`&&(t.boot_time=new Date(Date.now()-n*1e3).toISOString()),t.arch=A.arch(),(e===!0||e.memory)&&(t.memory_size=A.totalmem(),t.free_memory=A.freemem()),e===!0||e.cpu){let e=A.cpus(),n=e?.[0];n&&(t.processor_count=e.length,t.cpu_description=n.model,t.processor_frequency=n.speed)}return t}const id={aix:`IBM AIX`,freebsd:`FreeBSD`,openbsd:`OpenBSD`,sunos:`SunOS`,win32:`Windows`,ohos:`OpenHarmony`,android:`Android`},ad=[{name:`fedora-release`,distros:[`Fedora`]},{name:`redhat-release`,distros:[`Red Hat Linux`,`Centos`]},{name:`redhat_version`,distros:[`Red Hat Linux`]},{name:`SuSE-release`,distros:[`SUSE Linux`]},{name:`lsb-release`,distros:[`Ubuntu Linux`,`Arch Linux`]},{name:`debian_version`,distros:[`Debian`]},{name:`debian_release`,distros:[`Debian`]},{name:`arch-release`,distros:[`Arch Linux`]},{name:`gentoo-release`,distros:[`Gentoo Linux`]},{name:`novell-release`,distros:[`SUSE Linux`]},{name:`alpine-release`,distros:[`Alpine Linux`]}],od={alpine:e=>e,arch:e=>Z(/distrib_release=(.*)/,e),centos:e=>Z(/release ([^ ]+)/,e),debian:e=>e,fedora:e=>Z(/release (..)/,e),mint:e=>Z(/distrib_release=(.*)/,e),red:e=>Z(/release ([^ ]+)/,e),suse:e=>Z(/VERSION = (.*)\n/,e),ubuntu:e=>Z(/distrib_release=(.*)/,e)};function Z(e,t){let n=e.exec(t);return n?n[1]:void 0}async function sd(){let e={kernel_version:A.release(),name:`Mac OS X`,version:`10.${Number(A.release().split(`.`)[0])-4}`};try{let t=await new Promise((e,t)=>{Ze(`/usr/bin/sw_vers`,(n,r)=>{if(n){t(n);return}e(r)})});e.name=Z(/^ProductName:\s+(.*)$/m,t),e.version=Z(/^ProductVersion:\s+(.*)$/m,t),e.build=Z(/^BuildVersion:\s+(.*)$/m,t)}catch{}return e}function cd(e){return e.split(` `)[0].toLowerCase()}async function ld(){let e={kernel_version:A.release(),name:`Linux`};try{let t=await Zu(`/etc`),n=ad.find(e=>t.includes(e.name));if(!n)return e;let r=(await Xu(qe(`/etc`,n.name),{encoding:`utf-8`})).toLowerCase(),{distros:i}=n;e.name=i.find(e=>r.indexOf(cd(e))>=0)||i[0],e.version=od[cd(e.name)]?.(r)}catch{}return e}function ud(){if(process.env.VERCEL)return{"cloud.provider":`vercel`,"cloud.region":process.env.VERCEL_REGION};if(process.env.AWS_REGION)return{"cloud.provider":`aws`,"cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV};if(process.env.GCP_PROJECT)return{"cloud.provider":`gcp`};if(process.env.ALIYUN_REGION_ID)return{"cloud.provider":`alibaba_cloud`,"cloud.region":process.env.ALIYUN_REGION_ID};if(process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME)return{"cloud.provider":`azure`,"cloud.region":process.env.REGION_NAME};if(process.env.IBM_CLOUD_REGION)return{"cloud.provider":`ibm_cloud`,"cloud.region":process.env.IBM_CLOUD_REGION};if(process.env.TENCENTCLOUD_REGION)return{"cloud.provider":`tencent_cloud`,"cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE};if(process.env.NETLIFY)return{"cloud.provider":`netlify`};if(process.env.FLY_REGION)return{"cloud.provider":`fly.io`,"cloud.region":process.env.FLY_REGION};if(process.env.DYNO)return{"cloud.provider":`heroku`}}const dd=new Gu(10),fd=new Gu(20);function pd(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function md(e){return!!(e.startsWith(`node:`)||e.endsWith(`.min.js`)||e.endsWith(`.min.cjs`)||e.endsWith(`.min.mjs`)||e.startsWith(`data:`))}function hd(e){return e.lineno!==void 0&&e.lineno>1e4||e.colno!==void 0&&e.colno>1e3}function gd(e,t){let n=dd.get(e);if(n===void 0)return!1;for(let e=t[0];e<=t[1];e++)if(n[e]===void 0)return!1;return!0}function _d(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!=`number`)return[];let i=Td(r,t),a=[];for(;;){if(n===e.length-1){a.push(i);break}let r=e[n+1];if(typeof r!=`number`)break;r<=i[1]?i[1]=r+t:(a.push(i),i=Td(r,t)),n++}return a}function vd(e,t,n){return new Promise((r,i)=>{let a=ot(e),o=$e({input:a});function s(){a.destroy(),r()}let c=0,l=0,u=t[l];if(u===void 0){s();return}let d=u[0],f=u[1];function p(t){fd.set(e,1),X&&H.error(`Failed to read file: ${e}. Error: ${t}`),o.close(),o.removeAllListeners(),s()}a.on(`error`,p),o.on(`error`,p),o.on(`close`,s),o.on(`line`,e=>{if(c++,!(c<d)&&(n[c]=ya(e,0),c>=f)){if(l===t.length-1){o.close(),o.removeAllListeners();return}l++;let e=t[l];if(e===void 0){o.close(),o.removeAllListeners();return}d=e[0],f=e[1]}})})}async function yd(e,t){let n={};if(t>0&&e.exception?.values){for(let t of e.exception.values)if(t.stacktrace?.frames?.length)for(let e=t.stacktrace.frames.length-1;e>=0;e--){let r=t.stacktrace.frames[e],i=r?.filename;!r||typeof i!=`string`||typeof r.lineno!=`number`||md(i)||hd(r)||(n[i]||(n[i]=[]),n[i].push(r.lineno))}}let r=Object.keys(n);if(r.length==0)return e;let i=[];for(let e of r){if(fd.get(e))continue;let r=n[e];if(!r)continue;r.sort((e,t)=>e-t);let a=_d(r,t);if(a.every(t=>gd(e,t)))continue;let o=pd(dd,e,{});i.push(vd(e,a,o))}if(await Promise.all(i).catch(()=>{X&&H.log(`Failed to read one or more source files and resolve context lines`)}),t>0&&e.exception?.values)for(let n of e.exception.values)n.stacktrace?.frames&&n.stacktrace.frames.length>0&&bd(n.stacktrace.frames,t,dd);return e}function bd(e,t,n){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno==`number`){let e=n.get(r.filename);if(e===void 0)continue;Sd(r.lineno,r,t,e)}}function xd(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Sd(e,t,n,r){if(t.lineno===void 0||r===void 0){X&&H.error(`Cannot resolve context for frame with no lineno or file contents`);return}t.pre_context=[];for(let i=Cd(e,n);i<e;i++){let e=r[i];if(e===void 0){xd(t),X&&H.error(`Could not find line ${i} in file ${t.filename}`);return}t.pre_context.push(e)}if(r[e]===void 0){xd(t),X&&H.error(`Could not find line ${e} in file ${t.filename}`);return}t.context_line=r[e];let i=wd(e,n);t.post_context=[];for(let n=e+1;n<=i;n++){let e=r[n];if(e===void 0)break;t.post_context.push(e)}}function Cd(e,t){return Math.max(1,e-t)}function wd(e,t){return e+t}function Td(e,t){return[Cd(e,t),wd(e,t)]}const Ed=Y(((e={})=>{let t=e.frameContextLines===void 0?7:e.frameContextLines;return{name:`ContextLines`,processEvent(e){return yd(e,t)}}})),Dd=Ma(process.versions.node),Od=Dd.major;Dd.minor;let kd;async function Ad(){if(kd===void 0)try{kd=!!(await import(`node:inspector`)).url()}catch{kd=!1}return kd}const jd=`__SENTRY_ERROR_LOCAL_VARIABLES__`;function Md(e,t,n){let r=0,i=5,a=0;return setInterval(()=>{a===0?r>e&&(i*=2,n(i),i>86400&&(i=86400),a=i):(--a,a===0&&t()),r=0},1e3).unref(),()=>{r+=1}}function Nd(e){return e!==void 0&&(e.length===0||e===`?`||e===`<anonymous>`)}function Pd(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||Nd(e)&&Nd(t)}function Fd(...e){H.log(`[LocalVariables]`,...e)}const Id=Y(((e={})=>{function t(t,n){let r=(t.stacktrace?.frames||[]).filter(e=>e.function!==`new Promise`);for(let t=0;t<r.length;t++){let i=r.length-t-1,a=n[t],o=r[i];if(!o||!a)break;a.vars===void 0||o.in_app===!1&&e.includeOutOfAppFrames!==!0||!Pd(o.function,a.function)||(o.vars=a.vars)}}function n(e,n){if(n.originalException&&typeof n.originalException==`object`&&jd in n.originalException&&Array.isArray(n.originalException[jd])){for(let r of e.exception?.values||[])t(r,n.originalException[jd]);n.originalException[jd]=void 0}return e}async function r(){let e=await import(`node:inspector`);e.url()||e.open(0)}function i(e){let t=new dt(new URL(`data:application/javascript;base64,LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQyLjAgKDA3YzkxOTApIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=`),{workerData:e,execArgv:[],env:{...process.env,NODE_OPTIONS:void 0}});process.on(`exit`,()=>{t.terminate()}),t.once(`error`,e=>{Fd(`Worker error`,e)}),t.once(`exit`,e=>{Fd(`Worker exit`,e)}),t.unref()}return{name:`LocalVariablesAsync`,async setup(t){if(!t.getOptions().includeLocalVariables)return;if(await Ad()){H.warn(`Local variables capture has been disabled because the debugger was already enabled`);return}let n={...e,debug:H.isEnabled()};r().then(()=>{try{i(n)}catch(e){H.error(`Failed to start worker`,e)}},e=>{H.error(`Failed to start inspector`,e)})},processEvent(e,t){return n(e,t)}}}));function Ld(e){if(e!==void 0)return e.slice(-10).reduce((e,t)=>`${e},${t.function},${t.lineno},${t.colno}`,``)}function Rd(e,t){if(t!==void 0)return Ld(e(t,1))}function zd(e){let t=[],n=!1;function r(r){t=[],!n&&(n=!0,e(r))}t.push(r);function i(e){t.push(e)}function a(e){let n=t.pop()||r;try{n(e)}catch{r(e)}}return{add:i,next:a}}var Bd=class e{constructor(e){this._session=e}static async create(t){return t||new e(new(await(import(`node:inspector`))).Session)}configureAndConnect(e,t){this._session.connect(),this._session.on(`Debugger.paused`,t=>{e(t,()=>{this._session.post(`Debugger.resume`)})}),this._session.post(`Debugger.enable`),this._session.post(`Debugger.setPauseOnExceptions`,{state:t?`all`:`uncaught`})}setPauseOnExceptions(e){this._session.post(`Debugger.setPauseOnExceptions`,{state:e?`all`:`uncaught`})}getLocalVariables(e,t){this._getProperties(e,e=>{let{add:n,next:r}=zd(t);for(let t of e)if(t.value?.objectId&&t.value.className===`Array`){let e=t.value.objectId;n(n=>this._unrollArray(e,t.name,n,r))}else if(t.value?.objectId&&t.value.className===`Object`){let e=t.value.objectId;n(n=>this._unrollObject(e,t.name,n,r))}else t.value&&n(e=>this._unrollOther(t,e,r));r({})})}_getProperties(e,t){this._session.post(`Runtime.getProperties`,{objectId:e,ownProperties:!0},(e,n)=>{t(e?[]:n.result)})}_unrollArray(e,t,n,r){this._getProperties(e,e=>{n[t]=e.filter(e=>e.name!==`length`&&!isNaN(parseInt(e.name,10))).sort((e,t)=>parseInt(e.name,10)-parseInt(t.name,10)).map(e=>e.value?.value),r(n)})}_unrollObject(e,t,n,r){this._getProperties(e,e=>{n[t]=e.map(e=>[e.name,e.value?.value]).reduce((e,[t,n])=>(e[t]=n,e),{}),r(n)})}_unrollOther(e,t,n){e.value&&(`value`in e.value?e.value.value===void 0||e.value.value===null?t[e.name]=`<${e.value.value}>`:t[e.name]=e.value.value:`description`in e.value&&e.value.type!==`function`?t[e.name]=`<${e.value.description}>`:e.value.type===`undefined`&&(t[e.name]=`<undefined>`)),n(t)}};const Vd=Y(((e={},t)=>{let n=new Gu(20),r,i=!1;function a(t){let r=Ld(t.stacktrace?.frames);if(r===void 0)return;let i=n.remove(r);if(i===void 0)return;let a=(t.stacktrace?.frames||[]).filter(e=>e.function!==`new Promise`);for(let t=0;t<a.length;t++){let n=a.length-t-1,r=i[t],o=a[n];if(!o||!r)break;r.vars===void 0||o.in_app===!1&&e.includeOutOfAppFrames!==!0||!Pd(o.function,r.function)||(o.vars=r.vars)}}function o(e){for(let t of e.exception?.values||[])a(t);return e}let s;async function c(){let a=q()?.getOptions();if(a?.includeLocalVariables){if(Od<18){H.log("The `LocalVariables` integration is only supported on Node >= v18.");return}if(await Ad()){H.warn(`Local variables capture has been disabled because the debugger was already enabled`);return}try{let o=await Bd.create(t),s=(e,{params:{reason:t,data:i,callFrames:a}},s)=>{if(t!==`exception`&&t!==`promiseRejection`){s();return}r?.();let c=Rd(e,i.description);if(c==null){s();return}let{add:l,next:u}=zd(e=>{n.set(c,e),s()});for(let e=0;e<Math.min(a.length,5);e++){let{scopeChain:t,functionName:n,this:r}=a[e],i=t.find(e=>e.type===`local`),s=r.className===`global`||!r.className?n:`${r.className}.${n}`;if(i?.object.objectId===void 0)l(t=>{t[e]={function:s},u(t)});else{let t=i.object.objectId;l(n=>o.getLocalVariables(t,t=>{n[e]={function:s,vars:t},u(n)}))}}u([])},c=e.captureAllExceptions!==!1;o.configureAndConnect((e,t)=>s(a.stackParser,e,t),c),c&&(r=Md(e.maxExceptionsPerSecond||50,()=>{H.log(`Local variables rate-limit lifted.`),o.setPauseOnExceptions(!0)},e=>{H.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${e} seconds.`),o.setPauseOnExceptions(!1)})),i=!0}catch(e){H.log("The `LocalVariables` integration failed to start.",e)}}}return{name:`LocalVariables`,setupOnce(){s=c()},async processEvent(e){return await s,i?o(e):e},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}})),Hd=(e={})=>Dd.major<19?Vd(e):Id(e);function Ud(){try{return typeof module<`u`&&module.exports!==void 0}catch{return!1}}let Wd;const Gd=typeof __SENTRY_SERVER_MODULES__>`u`?{}:__SENTRY_SERVER_MODULES__,Kd=(()=>({name:`Modules`,processEvent(e){return e.modules={...e.modules,...Xd()},e},getModules:Xd}));function qd(){try{return t.cache?Object.keys(t.cache):[]}catch{return[]}}function Jd(){return{...Gd,...Qd(),...Ud()?Yd():{}}}function Yd(){let e=t.main?.paths||[],n=qd(),r={},i=new Set;return n.forEach(t=>{let n=t,a=()=>{let t=n;if(n=Ke(t),!n||t===n||i.has(t))return;if(e.indexOf(n)<0)return a();let o=qe(t,`package.json`);if(i.add(t),!st(o))return a();try{let e=JSON.parse(lt(o,`utf8`));r[e.name]=e.version}catch{}};a()}),r}function Xd(){return Wd||=Jd(),Wd}function Zd(){try{let e=qe(process.cwd(),`package.json`);return JSON.parse(lt(e,`utf8`))}catch{return{}}}function Qd(){let e=Zd();return{...e.dependencies,...e.devDependencies}}function $d(e){V(()=>{console.error(e)});let t=q();if(t===void 0){X&&H.warn(`No NodeClient was defined, we are exiting the process now.`),global.process.exit(1);return}let n=t.getOptions(),r=n?.shutdownTimeout&&n.shutdownTimeout>0?n.shutdownTimeout:2e3;t.close(r).then(e=>{e||X&&H.warn(`We reached the timeout for emptying the request buffer, still exiting now!`),global.process.exit(1)},e=>{X&&H.error(e)})}const ef=Y((e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:`OnUncaughtException`,setup(e){nt&&global.process.on(`uncaughtException`,tf(e,t))}}});function tf(e,t){let n=!1,r=!1,i=!1,a,o=e.getOptions();return Object.assign(s=>{let c=$d;t.onFatalError?c=t.onFatalError:o.onFatalError&&(c=o.onFatalError);let l=global.process.listeners(`uncaughtException`).filter(e=>e.name!==`domainUncaughtExceptionClear`&&e.tag!==`sentry_tracingErrorCallback`&&e._errorHandler!==!0).length===0,u=t.exitEvenIfOtherHandlersAreRegistered||l;n?u&&(i?(X&&H.warn(`uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown`),$d(s)):r||(r=!0,setTimeout(()=>{i||(i=!0,c(a,s))},2e3))):(a=s,n=!0,q()===e&&gc(s,{originalException:s,captureContext:{level:`fatal`},mechanism:{handled:!1,type:`auto.node.onuncaughtexception`}}),!i&&u&&(i=!0,c(s)))},{_errorHandler:!0})}const nf=[{name:`AI_NoOutputGeneratedError`},{name:`AbortError`}],rf=Y(((e={})=>{let t={mode:e.mode??`warn`,ignore:[...nf,...e.ignore??[]]};return{name:`OnUnhandledRejection`,setup(e){global.process.on(`unhandledRejection`,cf(e,t))}}}));function af(e){if(typeof e!=`object`||!e)return{name:``,message:String(e??``)};let t=e;return{name:typeof t.name==`string`?t.name:``,message:typeof t.message==`string`?t.message:String(e)}}function of(e,t){let n=e.name===void 0||xa(t.name,e.name,!0),r=e.message===void 0||xa(t.message,e.message);return n&&r}function sf(e,t){let n=af(t);return e.some(e=>of(e,n))}function cf(e,t){return function(n,r){if(q()!==e||sf(t.ignore??[],n))return;let i=t.mode===`strict`?`fatal`:`error`,a=n&&typeof n==`object`?n._sentry_active_span:void 0;(a?e=>Is(a,e):e=>e())(()=>{gc(n,{originalException:r,captureContext:{extra:{unhandledPromiseRejection:!0},level:i},mechanism:{handled:!1,type:`auto.node.onunhandledrejection`}})}),lf(n,t.mode)}}function lf(e,t){let n=`This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:`;t===`warn`?V(()=>{console.warn(n),console.error(e&&typeof e==`object`&&`stack`in e?e.stack:e)}):t===`strict`&&(V(()=>{console.warn(n)}),$d(e))}const uf=Y(()=>({name:`ProcessSession`,setupOnce(){Sc(),process.on(`beforeExit`,()=>{K().getSession()?.status!==`ok`&&Cc()})}})),df=`Spotlight`,ff=Y(((e={})=>{let t={sidecarUrl:e.sidecarUrl||`http://localhost:8969/stream`};return{name:df,setup(e){try{process.env.NODE_ENV&&process.env.NODE_ENV!==`development`&&H.warn(`[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?`)}catch{}pf(e,t)}}}));function pf(e,t){let n=mf(t.sidecarUrl);if(!n)return;let r=0;e.on(`beforeEnvelope`,e=>{if(r>3){H.warn(`[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests`);return}let t=ws(e);Ls(()=>{let e=et.request({method:`POST`,path:n.pathname,hostname:n.hostname,port:n.port,headers:{"Content-Type":`application/x-sentry-envelope`}},e=>{e.statusCode&&e.statusCode>=200&&e.statusCode<400&&(r=0),e.on(`data`,()=>{}),e.on(`end`,()=>{}),e.setEncoding(`utf8`)});e.on(`error`,()=>{r++,H.warn(`[Spotlight] Failed to send envelope to Spotlight Sidecar`)}),e.write(t),e.end()})})}function mf(e){try{return new URL(`${e}`)}catch{H.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}function hf(e){return!(e instanceof Error)||!(`errno`in e)||typeof e.errno!=`number`?!1:Ve.getSystemErrorMap().has(e.errno)}const gf=Y((e={})=>({name:`NodeSystemError`,processEvent:(t,n,r)=>{if(!hf(n.originalException))return t;let i=n.originalException,a={...i};!r.getOptions().sendDefaultPii&&e.includePaths!==!0&&(delete a.path,delete a.dest),t.contexts={...t.contexts,node_system_error:a};for(let e of t.exception?.values||[])e.value&&(i.path&&e.value.includes(i.path)&&(e.value=e.value.replace(`'${i.path}'`,``).trim()),i.dest&&e.value.includes(i.dest)&&(e.value=e.value.replace(`'${i.dest}'`,``).trim()));return t}}));function _f(e){return e.replace(/^[A-Z]:/,``).replace(/\\/g,`/`)}function vf(e=process.argv[1]?Fu(process.argv[1]):process.cwd(),t=Ye===`\\`){let n=t?_f(e):e;return e=>{if(!e)return;let r=t?_f(e):e,{dir:i,base:a,ext:o}=Je.parse(r);(o===`.js`||o===`.mjs`||o===`.cjs`)&&(a=a.slice(0,o.length*-1));let s=decodeURIComponent(a);i||=`.`;let c=i.lastIndexOf(`/node_modules`);if(c>-1)return`${i.slice(c+14).replace(/\//g,`.`)}:${s}`;if(i.startsWith(n)){let e=i.slice(n.length+1).replace(/\//g,`.`);return e?`${e}:${s}`:s}return s}}function yf(e){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(z.SENTRY_RELEASE?.id)return z.SENTRY_RELEASE.id;let t=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,n=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,r=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return t||n||r||e}const bf=wi(Hu(vf())),Q=Symbol(`AgentBaseInternalState`);var xf=class extends et.Agent{constructor(e){super(e),this[Q]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint==`boolean`)return e.secureEndpoint;if(typeof e.protocol==`string`)return e.protocol===`https:`}let{stack:t}=Error();return typeof t==`string`?t.split(`
187
- `).some(e=>e.indexOf(`(https.js:`)!==-1||e.indexOf(`node:https:`)!==-1):!1}createSocket(e,t,n){let r={...t,secureEndpoint:this.isSecureEndpoint(t)};Promise.resolve().then(()=>this.connect(e,r)).then(i=>{if(i instanceof et.Agent)return i.addRequest(e,r);this[Q].currentSocket=i,super.createSocket(e,t,n)},n)}createConnection(){let e=this[Q].currentSocket;if(this[Q].currentSocket=void 0,!e)throw Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[Q].defaultPort??(this.protocol===`https:`?443:80)}set defaultPort(e){this[Q]&&(this[Q].defaultPort=e)}get protocol(){return this[Q].protocol??(this.isSecureEndpoint()?`https:`:`http:`)}set protocol(e){this[Q]&&(this[Q].protocol=e)}};function Sf(...e){H.log(`[https-proxy-agent:parse-proxy-response]`,...e)}function Cf(e){return new Promise((t,n)=>{let r=0,i=[];function a(){let t=e.read();t?l(t):e.once(`readable`,a)}function o(){e.removeListener(`end`,s),e.removeListener(`error`,c),e.removeListener(`readable`,a)}function s(){o(),Sf(`onend`),n(Error(`Proxy connection ended before receiving CONNECT response`))}function c(e){o(),Sf(`onerror %o`,e),n(e)}function l(s){i.push(s),r+=s.length;let c=Buffer.concat(i,r),l=c.indexOf(`\r
322
+ `,positionals:{url:{description:`Webhook URL`,required:!0}},options:{repo:{type:`string`,short:`r`,description:`Repository domain`},env:{type:`string`,short:`e`,description:`Environment domain`}}},async({positionals:e,values:t})=>{let[n]=e,{repo:r=await a(),env:i}=t,o=await D(),s=await O(),c=i?await B({env:i,repo:r,token:o,host:s}):r,l;try{l=await Dn({repo:c,token:o,host:s})}catch(e){throw e instanceof w?new N(`Failed to fetch webhook details: ${await e.text()}`):e}let u=l.find(e=>e.config.url===n);if(!u)throw new N(`Webhook not found: ${n}`);let{config:d}=u;console.info(`URL: ${d.url}`),console.info(`Name: ${d.name||`(none)`}`),console.info(`Status: ${d.active?`enabled`:`disabled`}`),console.info(`Secret: ${d.secret?`(set)`:`(none)`}`);let f=[];for(let e of Tn)d[e]&&f.push(e);if(console.info(`Triggers: ${f.length>0?f.join(`, `):`(none)`}`),Object.keys(d.headers).length>0){console.info(`Headers:`);for(let[e,t]of Object.entries(d.headers))console.info(` ${e}: ${t}`)}else console.info(`Headers: (none)`)}),vi=M({name:`prismic webhook`,description:`Manage webhooks in a Prismic repository.`,commands:{list:{handler:mi,description:`List all webhooks`},create:{handler:di,description:`Create a new webhook`},view:{handler:_i,description:`View webhook details`},remove:{handler:hi,description:`Delete a webhook`},enable:{handler:pi,description:`Enable a webhook`},disable:{handler:fi,description:`Disable a webhook`},"set-triggers":{handler:gi,description:`Update webhook triggers`}}}),yi=j({name:`prismic whoami`,description:`Show the currently logged in user.`},async()=>{let e=await r({token:await D(),host:await O()});console.info(e.email)});const bi=pe({exp:ce(de())});function xi(e){try{let[,t]=e.split(`.`);return t?ae(bi,JSON.parse(Buffer.from(t,`base64url`).toString())):void 0}catch{return}}const V=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,H=globalThis,Si=`10.42.0`;function U(){return Ci(H),H}function Ci(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Si,t[Si]=t[Si]||{}}function wi(e,t,n=H){let r=n.__SENTRY__=n.__SENTRY__||{},i=r[Si]=r[Si]||{};return i[e]||(i[e]=t())}const Ti=[`debug`,`info`,`warn`,`error`,`log`,`assert`,`trace`],Ei={};function Di(e){if(!(`console`in H))return e();let t=H.console,n={},r=Object.keys(Ei);r.forEach(e=>{let r=Ei[e];n[e]=t[e],t[e]=r});try{return e()}finally{r.forEach(e=>{t[e]=n[e]})}}function Oi(){Fi().enabled=!0}function ki(){Fi().enabled=!1}function Ai(){return Fi().enabled}function ji(...e){Pi(`log`,...e)}function Mi(...e){Pi(`warn`,...e)}function Ni(...e){Pi(`error`,...e)}function Pi(e,...t){V&&Ai()&&Di(()=>{H.console[e](`Sentry Logger [${e}]:`,...t)})}function Fi(){return V?wi(`loggerSettings`,()=>({enabled:!1})):{enabled:!1}}const W={enable:Oi,disable:ki,isEnabled:Ai,log:ji,warn:Mi,error:Ni},Ii=/\(error: (.*)\)/,Li=/captureMessage|captureException/;function Ri(...e){let t=e.sort((e,t)=>e[0]-t[0]).map(e=>e[1]);return(e,n=0,r=0)=>{let i=[],a=e.split(`
323
+ `);for(let e=n;e<a.length;e++){let n=a[e];n.length>1024&&(n=n.slice(0,1024));let o=Ii.test(n)?n.replace(Ii,`$1`):n;if(!o.match(/\S*Error: /)){for(let e of t){let t=e(o);if(t){i.push(t);break}}if(i.length>=50+r)break}}return Bi(i.slice(r))}}function zi(e){return Array.isArray(e)?Ri(...e):e}function Bi(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(Vi(t).function||``)&&t.pop(),t.reverse(),Li.test(Vi(t).function||``)&&(t.pop(),Li.test(Vi(t).function||``)&&t.pop()),t.slice(0,50).map(e=>({...e,filename:e.filename||Vi(t).filename,function:e.function||`?`}))}function Vi(e){return e[e.length-1]||{}}const Hi=`<anonymous>`;function Ui(e){try{return!e||typeof e!=`function`?Hi:e.name||Hi}catch{return Hi}}function Wi(e){return`__v_isVNode`in e&&e.__v_isVNode?`[VueVNode]`:`[VueViewModel]`}function Gi(e){let t=e?.startsWith(`file://`)?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t}const Ki={},qi={};function Ji(e,t){Ki[e]=Ki[e]||[],Ki[e].push(t)}function Yi(e,t){if(!qi[e]){qi[e]=!0;try{t()}catch(t){V&&W.error(`Error while instrumenting ${e}`,t)}}}function Xi(e,t){let n=e&&Ki[e];if(n)for(let r of n)try{r(t)}catch(t){V&&W.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${Ui(r)}\nError:`,t)}}let Zi=null;function Qi(e){let t=`error`;Ji(t,e),Yi(t,$i)}function $i(){Zi=H.onerror,H.onerror=function(e,t,n,r,i){return Xi(`error`,{column:r,error:i,line:n,msg:e,url:t}),Zi?Zi.apply(this,arguments):!1},H.onerror.__SENTRY_INSTRUMENTED__=!0}let ea=null;function ta(e){let t=`unhandledrejection`;Ji(t,e),Yi(t,na)}function na(){ea=H.onunhandledrejection,H.onunhandledrejection=function(e){return Xi(`unhandledrejection`,e),ea?ea.apply(this,arguments):!0},H.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}const ra=Object.prototype.toString;function ia(e){switch(ra.call(e)){case`[object Error]`:case`[object Exception]`:case`[object DOMException]`:case`[object WebAssembly.Exception]`:return!0;default:return ga(e,Error)}}function aa(e,t){return ra.call(e)===`[object ${t}]`}function oa(e){return aa(e,`ErrorEvent`)}function sa(e){return aa(e,`String`)}function ca(e){return typeof e==`object`&&!!e&&`__sentry_template_string__`in e&&`__sentry_template_values__`in e}function la(e){return e===null||ca(e)||typeof e!=`object`&&typeof e!=`function`}function ua(e){return aa(e,`Object`)}function da(e){return typeof Event<`u`&&ga(e,Event)}function fa(e){return typeof Element<`u`&&ga(e,Element)}function pa(e){return aa(e,`RegExp`)}function ma(e){return!!(e?.then&&typeof e.then==`function`)}function ha(e){return ua(e)&&`nativeEvent`in e&&`preventDefault`in e&&`stopPropagation`in e}function ga(e,t){try{return e instanceof t}catch{return!1}}function _a(e){return!!(typeof e==`object`&&e&&(e.__isVue||e._isVue||e.__v_isVNode))}const va=H;function ya(e,t={}){if(!e)return`<unknown>`;try{let n=e,r=[],i=0,a=0,o,s=Array.isArray(t)?t:t.keyAttrs,c=!Array.isArray(t)&&t.maxStringLength||80;for(;n&&i++<5&&(o=ba(n,s),!(o===`html`||i>1&&a+r.length*3+o.length>=c));)r.push(o),a+=o.length,n=n.parentNode;return r.reverse().join(` > `)}catch{return`<unknown>`}}function ba(e,t){let n=e,r=[];if(!n?.tagName)return``;if(va.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());let i=t?.length?t.filter(e=>n.getAttribute(e)).map(e=>[e,n.getAttribute(e)]):null;if(i?.length)i.forEach(e=>{r.push(`[${e[0]}="${e[1]}"]`)});else{n.id&&r.push(`#${n.id}`);let e=n.className;if(e&&sa(e)){let t=e.split(/\s+/);for(let e of t)r.push(`.${e}`)}}for(let e of[`aria-label`,`type`,`name`,`title`,`alt`]){let t=n.getAttribute(e);t&&r.push(`[${e}="${t}"]`)}return r.join(``)}function xa(e,t,n){if(!(t in e))return;let r=e[t];if(typeof r!=`function`)return;let i=n(r);typeof i==`function`&&Ca(i,r);try{e[t]=i}catch{V&&W.log(`Failed to replace method "${t}" in object`,e)}}function Sa(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{V&&W.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function Ca(e,t){try{e.prototype=t.prototype=t.prototype||{},Sa(e,`__sentry_original__`,t)}catch{}}function wa(e){return e.__sentry_original__}function Ta(e){if(ia(e))return{message:e.message,name:e.name,stack:e.stack,...Da(e)};if(da(e)){let t={type:e.type,target:Ea(e.target),currentTarget:Ea(e.currentTarget),...Da(e)};return typeof CustomEvent<`u`&&ga(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function Ea(e){try{return fa(e)?ya(e):Object.prototype.toString.call(e)}catch{return`<unknown>`}}function Da(e){if(typeof e==`object`&&e){let t={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}else return{}}function Oa(e){let t=Object.keys(Ta(e));return t.sort(),t[0]?t.join(`, `):`[object has no keys]`}let ka;function Aa(e){if(ka!==void 0)return ka?ka(e):e();let t=Symbol.for(`__SENTRY_SAFE_RANDOM_ID_WRAPPER__`),n=H;return t in n&&typeof n[t]==`function`?(ka=n[t],ka(e)):(ka=null,e())}function ja(){return Aa(()=>Math.random())}function Ma(){return Aa(()=>Date.now())}function Na(e,t=0){return typeof e!=`string`||t===0||e.length<=t?e:`${e.slice(0,t)}...`}function Pa(e,t){let n=e,r=n.length;if(r<=150)return n;t>r&&(t=r);let i=Math.max(t-60,0);i<5&&(i=0);let a=Math.min(i+140,r);return a>r-5&&(a=r),a===r&&(i=Math.max(a-140,0)),n=n.slice(i,a),i>0&&(n=`'{snip} ${n}`),a<r&&(n+=` {snip}`),n}function Fa(e,t){if(!Array.isArray(e))return``;let n=[];for(let t=0;t<e.length;t++){let r=e[t];try{_a(r)?n.push(Wi(r)):n.push(String(r))}catch{n.push(`[value cannot be serialized]`)}}return n.join(t)}function Ia(e,t,n=!1){return sa(e)?pa(t)?t.test(e):sa(t)?n?e===t:e.includes(t):!1:!1}function La(e,t=[],n=!1){return t.some(t=>Ia(e,t,n))}function Ra(){let e=H;return e.crypto||e.msCrypto}let za;function Ba(){return ja()*16}function G(e=Ra()){try{if(e?.randomUUID)return Aa(()=>e.randomUUID()).replace(/-/g,``)}catch{}return za||=`10000000100040008000100000000000`,za.replace(/[018]/g,e=>(e^(Ba()&15)>>e/4).toString(16))}function Va(e){return e.exception?.values?.[0]}function Ha(e){let{message:t,event_id:n}=e;if(t)return t;let r=Va(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||`<unknown>`:n||`<unknown>`}function Ua(e,t,n){let r=e.exception=e.exception||{},i=r.values=r.values||[],a=i[0]=i[0]||{};a.value||=t||``,a.type||=n||`Error`}function Wa(e,t){let n=Va(e);if(!n)return;let r={type:`generic`,handled:!0},i=n.mechanism;if(n.mechanism={...r,...i,...t},t&&`data`in t){let e={...i?.data,...t.data};n.mechanism.data=e}}const Ga=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function Ka(e){return parseInt(e||``,10)}function qa(e){let t=e.match(Ga)||[],n=Ka(t[1]),r=Ka(t[2]),i=Ka(t[3]);return{buildmetadata:t[5],major:isNaN(n)?void 0:n,minor:isNaN(r)?void 0:r,patch:isNaN(i)?void 0:i,prerelease:t[4]}}function Ja(e){if(Ya(e))return!0;try{Sa(e,`__sentry_captured__`,!0)}catch{}return!1}function Ya(e){try{return e.__sentry_captured__}catch{}}const Xa=1e3;function Za(){return Ma()/Xa}function Qa(){let{performance:e}=H;if(!e?.now||!e.timeOrigin)return Za;let t=e.timeOrigin;return()=>(t+Aa(()=>e.now()))/Xa}let $a;function eo(){return($a??=Qa())()}function to(e){let t=eo(),n={sid:G(),init:!0,timestamp:t,started:t,duration:0,status:`ok`,errors:0,ignoreDuration:!1,toJSON:()=>io(n)};return e&&no(n,e),n}function no(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||eo(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:G()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started==`number`&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration==`number`)e.duration=t.duration;else{let t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors==`number`&&(e.errors=t.errors),t.status&&(e.status=t.status)}function ro(e,t){let n={};t?n={status:t}:e.status===`ok`&&(n={status:`exited`}),no(e,n)}function io(e){return{sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did==`number`||typeof e.did==`string`?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}function ao(e,t,n=2){if(!t||typeof t!=`object`||n<=0)return t;if(e&&Object.keys(t).length===0)return e;let r={...e};for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=ao(r[e],t[e],n-1));return r}function oo(){return G()}function so(){return G().substring(16)}const co=`_sentrySpan`;function lo(e,t){t?Sa(e,co,t):delete e[co]}function uo(e){return e[co]}var fo=class e{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:oo(),sampleRand:ja()}}clone(){let t=new e;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._attributes={...this._attributes},t._extra={...this._extra},t._contexts={...this._contexts},this._contexts.flags&&(t._contexts.flags={values:[...this._contexts.flags.values]}),t._user=this._user,t._level=this._level,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t._lastEventId=this._lastEventId,t._conversationId=this._conversationId,lo(t,uo(this)),t}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&no(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setConversationId(e){return this._conversationId=e||void 0,this._notifyScopeListeners(),this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this.setTags({[e]:t})}setAttributes(e){return this._attributes={...this._attributes,...e},this._notifyScopeListeners(),this}setAttribute(e,t){return this.setAttributes({[e]:t})}removeAttribute(e){return e in this._attributes&&(delete this._attributes[e],this._notifyScopeListeners()),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;let n=typeof t==`function`?t(this):t,{tags:r,attributes:i,extra:a,user:o,contexts:s,level:c,fingerprint:l=[],propagationContext:u,conversationId:d}=(n instanceof e?n.getScopeData():ua(n)?t:void 0)||{};return this._tags={...this._tags,...r},this._attributes={...this._attributes,...i},this._extra={...this._extra,...a},this._contexts={...this._contexts,...s},o&&Object.keys(o).length&&(this._user=o),c&&(this._level=c),l.length&&(this._fingerprint=l),u&&(this._propagationContext=u),d&&(this._conversationId=d),this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,this._conversationId=void 0,lo(this,void 0),this._attachments=[],this.setPropagationContext({traceId:oo(),sampleRand:ja()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){let n=typeof t==`number`?t:100;if(n<=0)return this;let r={timestamp:Za(),...e,message:e.message?Na(e.message,2048):e.message};return this._breadcrumbs.push(r),this._breadcrumbs.length>n&&(this._breadcrumbs=this._breadcrumbs.slice(-n),this._client?.recordDroppedEvent(`buffer_overflow`,`log_item`)),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:uo(this),conversationId:this._conversationId}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=ao(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){let n=t?.event_id||G();if(!this._client)return V&&W.warn(`No client configured on scope - will not capture exception!`),n;let r=Error(`Sentry syntheticException`);return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:n},this),n}captureMessage(e,t,n){let r=n?.event_id||G();if(!this._client)return V&&W.warn(`No client configured on scope - will not capture message!`),r;let i=n?.syntheticException??Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:r},this),r}captureEvent(e,t){let n=e.event_id||t?.event_id||G();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(V&&W.warn(`No client configured on scope - will not capture event!`),n)}_notifyScopeListeners(){this._notifyingListeners||=(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),!1)}};function po(){return wi(`defaultCurrentScope`,()=>new fo)}function mo(){return wi(`defaultIsolationScope`,()=>new fo)}var ho=class{constructor(e,t){let n;n=e||new fo;let r;r=t||new fo,this._stack=[{scope:n}],this._isolationScope=r}withScope(e){let t=this._pushScope(),n;try{n=e(t)}catch(e){throw this._popScope(),e}return ma(n)?n.then(e=>(this._popScope(),e),e=>{throw this._popScope(),e}):(this._popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){let e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}};function go(){let e=Ci(U());return e.stack=e.stack||new ho(po(),mo())}function _o(e){return go().withScope(e)}function vo(e,t){let n=go();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function yo(e){return go().withScope(()=>e(go().getIsolationScope()))}function bo(){return{withIsolationScope:yo,withScope:_o,withSetScope:vo,withSetIsolationScope:(e,t)=>yo(t),getCurrentScope:()=>go().getScope(),getIsolationScope:()=>go().getIsolationScope()}}function xo(e){let t=Ci(U());t.acs=e}function So(e){let t=Ci(e);return t.acs?t.acs:bo()}function K(){return So(U()).getCurrentScope()}function q(){return So(U()).getIsolationScope()}function Co(){return wi(`globalScope`,()=>new fo)}function wo(...e){let t=So(U());if(e.length===2){let[n,r]=e;return n?t.withSetScope(n,r):t.withScope(r)}return t.withScope(e[0])}function To(...e){let t=So(U());if(e.length===2){let[n,r]=e;return n?t.withSetIsolationScope(n,r):t.withIsolationScope(r)}return t.withIsolationScope(e[0])}function J(){return K().getClient()}function Eo(e){let{traceId:t,parentSpanId:n,propagationSpanId:r}=e.getPropagationContext(),i={trace_id:t,span_id:r||so()};return n&&(i.parent_span_id=n),i}const Do=`sentry.profile_id`,Oo=`sentry.exclusive_time`;function ko(e){if(e){if(typeof e==`object`&&`deref`in e&&typeof e.deref==`function`)try{return e.deref()}catch{return}return e}}function Ao(e){let t=e;return{scope:t._sentryScope,isolationScope:ko(t._sentryIsolationScope)}}const jo=/^sentry-/;function Mo(e){let t=Po(e);if(!t)return;let n=Object.entries(t).reduce((e,[t,n])=>{if(t.match(jo)){let r=t.slice(7);e[r]=n}return e},{});if(Object.keys(n).length>0)return n}function No(e){if(e)return Io(Object.entries(e).reduce((e,[t,n])=>(n&&(e[`sentry-${t}`]=n),e),{}))}function Po(e){if(!(!e||!sa(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((e,t)=>{let n=Fo(t);return Object.entries(n).forEach(([t,n])=>{e[t]=n}),e},{}):Fo(e)}function Fo(e){return e.split(`,`).map(e=>{let t=e.indexOf(`=`);return t===-1?[]:[e.slice(0,t),e.slice(t+1)].map(e=>{try{return decodeURIComponent(e.trim())}catch{return}})}).reduce((e,[t,n])=>(t&&n&&(e[t]=n),e),{})}function Io(e){if(Object.keys(e).length!==0)return Object.entries(e).reduce((e,[t,n],r)=>{let i=`${encodeURIComponent(t)}=${encodeURIComponent(n)}`,a=r===0?i:`${e},${i}`;return a.length>8192?(V&&W.warn(`Not adding key: ${t} with val: ${n} to baggage header due to exceeding baggage size limits.`),e):a},``)}const Lo=/^o(\d+)\./,Ro=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)((?:\[[:.%\w]+\]|[\w.-]+))(?::(\d+))?\/(.+)/;function zo(e){return e===`http`||e===`https`}function Bo(e,t=!1){let{host:n,path:r,pass:i,port:a,projectId:o,protocol:s,publicKey:c}=e;return`${s}://${c}${t&&i?`:${i}`:``}@${n}${a?`:${a}`:``}/${r&&`${r}/`}${o}`}function Vo(e){let t=Ro.exec(e);if(!t){Di(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});return}let[n,r,i=``,a=``,o=``,s=``]=t.slice(1),c=``,l=s,u=l.split(`/`);if(u.length>1&&(c=u.slice(0,-1).join(`/`),l=u.pop()),l){let e=l.match(/^\d+/);e&&(l=e[0])}return Ho({host:a,pass:i,path:c,projectId:l,port:o,protocol:n,publicKey:r})}function Ho(e){return{protocol:e.protocol,publicKey:e.publicKey||``,pass:e.pass||``,host:e.host,port:e.port||``,path:e.path||``,projectId:e.projectId}}function Uo(e){if(!V)return!0;let{port:t,projectId:n,protocol:r}=e;return[`protocol`,`publicKey`,`host`,`projectId`].find(t=>e[t]?!1:(W.error(`Invalid Sentry Dsn: ${t} missing`),!0))?!1:n.match(/^\d+$/)?zo(r)?t&&isNaN(parseInt(t,10))?(W.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):!0:(W.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(W.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function Wo(e){return e.match(Lo)?.[1]}function Go(e){let t=e.getOptions(),{host:n}=e.getDsn()||{},r;return t.orgId?r=String(t.orgId):n&&(r=Wo(n)),r}function Ko(e){let t=typeof e==`string`?Vo(e):Ho(e);if(!(!t||!Uo(t)))return t}function qo(e){if(typeof e==`boolean`)return Number(e);let t=typeof e==`string`?parseFloat(e):e;if(!(typeof t!=`number`||isNaN(t)||t<0||t>1))return t}const Jo=RegExp(`^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$`);function Yo(e){if(!e)return;let t=e.match(Jo);if(!t)return;let n;return t[3]===`1`?n=!0:t[3]===`0`&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function Xo(e,t){let n=Yo(e),r=Mo(t);if(!n?.traceId)return{traceId:oo(),sampleRand:ja()};let i=$o(n,r);r&&(r.sample_rand=i.toString());let{traceId:a,parentSpanId:o,parentSampled:s}=n;return{traceId:a,parentSpanId:o,sampled:s,dsc:r||{},sampleRand:i}}function Zo(e=oo(),t=so(),n){let r=``;return n!==void 0&&(r=n?`-1`:`-0`),`${e}-${t}${r}`}function Qo(e=oo(),t=so(),n){return`00-${e}-${t}-${n?`01`:`00`}`}function $o(e,t){let n=qo(t?.sample_rand);if(n!==void 0)return n;let r=qo(t?.sample_rate);return r&&e?.parentSampled!==void 0?e.parentSampled?ja()*r:r+ja()*(1-r):ja()}function es(e,t){let n=Go(e);return t&&n&&t!==n?(W.log(`Won't continue trace because org IDs don't match (incoming baggage: ${t}, SDK options: ${n})`),!1):e.getOptions().strictTraceContinuation&&(t&&!n||!t&&n)?(W.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${t}, Sentry client: ${n})`),!1):!0}let ts=!1;function ns(e){let{spanId:t,traceId:n,isRemote:r}=e.spanContext(),i=r?t:cs(e).parent_span_id,a=Ao(e).scope;return{parent_span_id:i,span_id:r?a?.getPropagationContext().propagationSpanId||so():t,trace_id:n}}function rs(e){let{traceId:t,spanId:n}=e.spanContext();return Zo(t,n,ds(e))}function is(e){let{traceId:t,spanId:n}=e.spanContext();return Qo(t,n,ds(e))}function as(e){if(e&&e.length>0)return e.map(({context:{spanId:e,traceId:t,traceFlags:n,...r},attributes:i})=>({span_id:e,trace_id:t,sampled:n===1,attributes:i,...r}))}function os(e){return typeof e==`number`?ss(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?ss(e.getTime()):eo()}function ss(e){return e>9999999999?e/1e3:e}function cs(e){if(us(e))return e.getSpanJSON();let{spanId:t,traceId:n}=e.spanContext();if(ls(e)){let{attributes:r,startTime:i,name:a,endTime:o,status:s,links:c}=e;return{span_id:t,trace_id:n,data:r,description:a,parent_span_id:`parentSpanId`in e?e.parentSpanId:`parentSpanContext`in e?e.parentSpanContext?.spanId:void 0,start_timestamp:os(i),timestamp:os(o)||void 0,status:fs(s),op:r[`sentry.op`],origin:r[`sentry.origin`],links:as(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function ls(e){let t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function us(e){return typeof e.getSpanJSON==`function`}function ds(e){let{traceFlags:t}=e.spanContext();return t===1}function fs(e){if(!(!e||e.code===0))return e.code===1?`ok`:e.message||`internal_error`}function ps(e){return e._sentryRootSpan||e}function ms(){let e=So(U());return e.getActiveSpan?e.getActiveSpan():uo(K())}function hs(){ts||=(Di(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),!0)}let gs=!1;function _s(){if(gs)return;function e(){let e=ms(),t=e&&ps(e);if(t){let e=`internal_error`;V&&W.log(`[Tracing] Root span: ${e} -> Global error occurred`),t.setStatus({code:2,message:e})}}e.tag=`sentry_tracingErrorCallback`,gs=!0,Qi(e),ta(e)}function vs(e){if(typeof __SENTRY_TRACING__==`boolean`&&!__SENTRY_TRACING__)return!1;let t=e||J()?.getOptions();return!!t&&(t.tracesSampleRate!=null||!!t.tracesSampler)}function ys(e){W.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function bs(e,t){if(!t?.length||!e.description)return!1;for(let n of t){if(Ss(n)){if(Ia(e.description,n))return V&&ys(e),!0;continue}if(!n.name&&!n.op)continue;let t=n.name?Ia(e.description,n.name):!0,r=n.op?e.op&&Ia(e.op,n.op):!0;if(t&&r)return V&&ys(e),!0}return!1}function xs(e,t){let n=t.parent_span_id,r=t.span_id;if(n)for(let t of e)t.parent_span_id===r&&(t.parent_span_id=n)}function Ss(e){return typeof e==`string`||e instanceof RegExp}const Cs=`production`;function ws(e,t){let n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i={environment:n.environment||Cs,release:n.release,public_key:r,trace_id:e,org_id:Go(t)};return t.emit(`createDsc`,i),i}function Ts(e,t){let n=t.getPropagationContext();return n.dsc||ws(n.traceId,e)}function Es(e){let t=J();if(!t)return{};let n=ps(e),r=cs(n),i=r.data,a=n.spanContext().traceState,o=a?.get(`sentry.sample_rate`)??i[`sentry.sample_rate`]??i[`sentry.previous_trace_sample_rate`];function s(e){return(typeof o==`number`||typeof o==`string`)&&(e.sample_rate=`${o}`),e}let c=n._frozenDsc;if(c)return s(c);let l=a?.get(`sentry.dsc`),u=l&&Mo(l);if(u)return s(u);let d=ws(e.spanContext().traceId,t),f=i[`sentry.source`],p=r.description;return f!==`url`&&p&&(d.transaction=p),vs()&&(d.sampled=String(ds(n)),d.sample_rand=a?.get(`sentry.sample_rand`)??Ao(n).scope?.getPropagationContext().sampleRand.toString()),s(d),t.emit(`createDsc`,d,n),d}function Ds(e,t=100,n=1/0){try{return ks(``,e,t,n)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function Os(e,t=3,n=100*1024){let r=Ds(e,t);return Ns(r)>n?Os(e,t-1,n):r}function ks(e,t,n=1/0,r=1/0,i=Ps()){let[a,o]=i;if(t==null||[`boolean`,`string`].includes(typeof t)||typeof t==`number`&&Number.isFinite(t))return t;let s=As(e,t);if(!s.startsWith(`[object `))return s;if(t.__sentry_skip_normalization__)return t;let c=typeof t.__sentry_override_normalization_depth__==`number`?t.__sentry_override_normalization_depth__:n;if(c===0)return s.replace(`object `,``);if(a(t))return`[Circular ~]`;let l=t;if(l&&typeof l.toJSON==`function`)try{return ks(``,l.toJSON(),c-1,r,i)}catch{}let u=Array.isArray(t)?[]:{},d=0,f=Ta(t);for(let e in f){if(!Object.prototype.hasOwnProperty.call(f,e))continue;if(d>=r){u[e]=`[MaxProperties ~]`;break}let t=f[e];u[e]=ks(e,t,c-1,r,i),d++}return o(t),u}function As(e,t){try{if(e===`domain`&&t&&typeof t==`object`&&t._events)return`[Domain]`;if(e===`domainEmitter`)return`[DomainEmitter]`;if(typeof global<`u`&&t===global)return`[Global]`;if(typeof window<`u`&&t===window)return`[Window]`;if(typeof document<`u`&&t===document)return`[Document]`;if(_a(t))return Wi(t);if(ha(t))return`[SyntheticEvent]`;if(typeof t==`number`&&!Number.isFinite(t))return`[${t}]`;if(typeof t==`function`)return`[Function: ${Ui(t)}]`;if(typeof t==`symbol`)return`[${String(t)}]`;if(typeof t==`bigint`)return`[BigInt: ${String(t)}]`;let n=js(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(e){return`**non-serializable** (${e})`}}function js(e){let t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:`null prototype`}function Ms(e){return~-encodeURI(e).split(/%..|./).length}function Ns(e){return Ms(JSON.stringify(e))}function Ps(){let e=new WeakSet;function t(t){return e.has(t)?!0:(e.add(t),!1)}function n(t){e.delete(t)}return[t,n]}function Fs(e,t=[]){return[e,t]}function Is(e,t){let[n,r]=e;return[n,[...r,t]]}function Ls(e,t){let n=e[1];for(let e of n){let n=e[0].type;if(t(e,n))return!0}return!1}function Rs(e,t){return Ls(e,(e,n)=>t.includes(n))}function zs(e){let t=Ci(H);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function Bs(e){let[t,n]=e,r=JSON.stringify(t);function i(e){typeof r==`string`?r=typeof e==`string`?r+e:[zs(r),e]:r.push(typeof e==`string`?zs(e):e)}for(let e of n){let[t,n]=e;if(i(`\n${JSON.stringify(t)}\n`),typeof n==`string`||n instanceof Uint8Array)i(n);else{let e;try{e=JSON.stringify(n)}catch{e=JSON.stringify(Ds(n))}i(e)}}return typeof r==`string`?r:Vs(r)}function Vs(e){let t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}function Hs(e){let t=typeof e.data==`string`?zs(e.data):e.data;return[{type:`attachment`,length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}const Us={session:`session`,sessions:`session`,attachment:`attachment`,transaction:`transaction`,event:`error`,client_report:`internal`,user_report:`default`,profile:`profile`,profile_chunk:`profile`,replay_event:`replay`,replay_recording:`replay`,check_in:`monitor`,feedback:`feedback`,span:`span`,raw_security:`security`,log:`log_item`,metric:`metric`,trace_metric:`metric`};function Ws(e){return Us[e]}function Gs(e){if(!e?.sdk)return;let{name:t,version:n}=e.sdk;return{name:t,version:n}}function Ks(e,t,n,r){let i=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:Bo(r)},...i&&{trace:i}}}function qs(e,t){if(!t)return e;let n=e.sdk||{};return e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0},e}function Js(e,t,n,r){let i=Gs(n);return Fs({sent_at:new Date().toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:Bo(t)}},[`aggregates`in e?[{type:`sessions`},e]:[{type:`session`},e.toJSON()]])}function Ys(e,t,n,r){let i=Gs(n),a=e.type&&e.type!==`replay_event`?e.type:`event`;qs(e,n?.sdk);let o=Ks(e,i,r,t);return delete e.sdkProcessingMetadata,Fs(o,[[{type:a},e]])}const Xs=`__SENTRY_SUPPRESS_TRACING__`,Zs=(e,t)=>{let n=So(U());if(n.continueTrace)return n.continueTrace(e,t);let{sentryTrace:r,baggage:i}=e,a=J(),o=Mo(i);return a&&!es(a,o?.org_id)?ec(t):wo(e=>{let n=Xo(r,i);return e.setPropagationContext(n),lo(e,void 0),t()})};function Qs(e,t){let n=tc();return n.withActiveSpan?n.withActiveSpan(e,t):wo(n=>(lo(n,e||void 0),t(n)))}function $s(e){let t=tc();return t.suppressTracing?t.suppressTracing(e):wo(t=>{t.setSDKProcessingMetadata({[Xs]:!0});let n=e();return t.setSDKProcessingMetadata({[Xs]:void 0}),n})}function ec(e){return wo(t=>(t.setPropagationContext({traceId:oo(),sampleRand:ja()}),V&&W.log(`Starting a new trace with id ${t.getPropagationContext().traceId}`),Qs(null,e)))}function tc(){return So(U())}function nc(e){return new ic(t=>{t(e)})}function rc(e){return new ic((t,n)=>{n(e)})}var ic=class e{constructor(e){this._state=0,this._handlers=[],this._runExecutor(e)}then(t,n){return new e((e,r)=>{this._handlers.push([!1,n=>{if(!t)e(n);else try{e(t(n))}catch(e){r(e)}},t=>{if(!n)r(t);else try{e(n(t))}catch(e){r(e)}}]),this._executeHandlers()})}catch(e){return this.then(e=>e,e)}finally(t){return new e((e,n)=>{let r,i;return this.then(e=>{i=!1,r=e,t&&t()},e=>{i=!0,r=e,t&&t()}).then(()=>{if(i){n(r);return}e(r)})})}_executeHandlers(){if(this._state===0)return;let e=this._handlers.slice();this._handlers=[],e.forEach(e=>{e[0]||=(this._state===1&&e[1](this._value),this._state===2&&e[2](this._value),!0)})}_runExecutor(e){let t=(e,t)=>{if(this._state===0){if(ma(t)){t.then(n,r);return}this._state=e,this._value=t,this._executeHandlers()}},n=e=>{t(1,e)},r=e=>{t(2,e)};try{e(n,r)}catch(e){r(e)}}};function ac(e,t,n,r=0){try{let i=oc(t,n,e,r);return ma(i)?i:nc(i)}catch(e){return rc(e)}}function oc(e,t,n,r){let i=n[r];if(!e||!i)return e;let a=i({...e},t);return V&&a===null&&W.log(`Event processor "${i.id||`?`}" dropped event`),ma(a)?a.then(e=>oc(e,t,n,r+1)):oc(a,t,n,r+1)}let sc,cc,lc,uc;function dc(e){let t=H._sentryDebugIds,n=H._debugIds;if(!t&&!n)return{};let r=t?Object.keys(t):[],i=n?Object.keys(n):[];if(uc&&r.length===cc&&i.length===lc)return uc;cc=r.length,lc=i.length,uc={},sc||={};let a=(t,n)=>{for(let r of t){let t=n[r],i=sc?.[r];if(i&&uc&&t)uc[i[0]]=t,sc&&(sc[r]=[i[0],t]);else if(t){let n=e(r);for(let e=n.length-1;e>=0;e--){let i=n[e]?.filename;if(i&&uc&&sc){uc[i]=t,sc[r]=[i,t];break}}}}};return t&&a(r,t),n&&a(i,n),uc}function fc(e,t){let{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:a}=t;gc(e,t),r&&yc(e,r),bc(e,n),_c(e,i),vc(e,a)}function pc(e,t){let{extra:n,tags:r,attributes:i,user:a,contexts:o,level:s,sdkProcessingMetadata:c,breadcrumbs:l,fingerprint:u,eventProcessors:d,attachments:f,propagationContext:p,transactionName:m,span:h}=t;mc(e,`extra`,n),mc(e,`tags`,r),mc(e,`attributes`,i),mc(e,`user`,a),mc(e,`contexts`,o),e.sdkProcessingMetadata=ao(e.sdkProcessingMetadata,c,2),s&&(e.level=s),m&&(e.transactionName=m),h&&(e.span=h),l.length&&(e.breadcrumbs=[...e.breadcrumbs,...l]),u.length&&(e.fingerprint=[...e.fingerprint,...u]),d.length&&(e.eventProcessors=[...e.eventProcessors,...d]),f.length&&(e.attachments=[...e.attachments,...f]),e.propagationContext={...e.propagationContext,...p}}function mc(e,t,n){e[t]=ao(e[t],n,1)}function hc(e,t){let n=Co().getScopeData();return e&&pc(n,e.getScopeData()),t&&pc(n,t.getScopeData()),n}function gc(e,t){let{extra:n,tags:r,user:i,contexts:a,level:o,transactionName:s}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(r).length&&(e.tags={...r,...e.tags}),Object.keys(i).length&&(e.user={...i,...e.user}),Object.keys(a).length&&(e.contexts={...a,...e.contexts}),o&&(e.level=o),s&&e.type!==`transaction`&&(e.transaction=s)}function _c(e,t){let n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function vc(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function yc(e,t){e.contexts={trace:ns(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Es(t),...e.sdkProcessingMetadata};let n=cs(ps(t)).description;n&&!e.transaction&&e.type===`transaction`&&(e.transaction=n)}function bc(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}function xc(e,t,n,r,i,a){let{normalizeDepth:o=3,normalizeMaxBreadth:s=1e3}=e,c={...t,event_id:t.event_id||n.event_id||G(),timestamp:t.timestamp||Za()},l=n.integrations||e.integrations.map(e=>e.name);Sc(c,e),Tc(c,l),i&&i.emit(`applyFrameMetadata`,t),t.type===void 0&&Cc(c,e.stackParser);let u=Dc(r,n.captureContext);n.mechanism&&Wa(c,n.mechanism);let d=i?i.getEventProcessors():[],f=hc(a,u),p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),fc(c,f);let m=[...d,...f.eventProcessors];return(n.data&&n.data.__sentry__===!0?nc(c):ac(m,c,n)).then(e=>(e&&wc(e),typeof o==`number`&&o>0?Ec(e,o,s):e))}function Sc(e,t){let{environment:n,release:r,dist:i,maxValueLength:a}=t;e.environment=e.environment||n||Cs,!e.release&&r&&(e.release=r),!e.dist&&i&&(e.dist=i);let o=e.request;o?.url&&a&&(o.url=Na(o.url,a)),a&&e.exception?.values?.forEach(e=>{e.value&&=Na(e.value,a)})}function Cc(e,t){let n=dc(t);e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.filename&&(e.debug_id=n[e.filename])})})}function wc(e){let t={};if(e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)})}),Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];let n=e.debug_meta.images;Object.entries(t).forEach(([e,t])=>{n.push({type:`sourcemap`,code_file:e,debug_id:t})})}function Tc(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function Ec(e,t,n){if(!e)return null;let r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(e=>({...e,...e.data&&{data:Ds(e.data,t,n)}}))},...e.user&&{user:Ds(e.user,t,n)},...e.contexts&&{contexts:Ds(e.contexts,t,n)},...e.extra&&{extra:Ds(e.extra,t,n)}};return e.contexts?.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=Ds(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(e=>({...e,...e.data&&{data:Ds(e.data,t,n)}}))),e.contexts?.flags&&r.contexts&&(r.contexts.flags=Ds(e.contexts.flags,3,n)),r}function Dc(e,t){if(!t)return e;let n=e?e.clone():new fo;return n.update(t),n}function Oc(e){if(e)return kc(e)||jc(e)?{captureContext:e}:e}function kc(e){return e instanceof fo||typeof e==`function`}const Ac=[`user`,`level`,`extra`,`contexts`,`tags`,`fingerprint`,`propagationContext`];function jc(e){return Object.keys(e).some(e=>Ac.includes(e))}function Mc(e,t){return K().captureException(e,Oc(t))}function Nc(e,t){q().setContext(e,t)}function Pc(e,t){q().setTag(e,t)}function Fc(e){q().setUser(e)}async function Ic(e){let t=J();return t?t.flush(e):(V&&W.warn(`Cannot flush events. No client defined.`),Promise.resolve(!1))}function Lc(){let e=J();return e?.getOptions().enabled!==!1&&!!e?.getTransport()}function Rc(e){let t=q(),{user:n}=hc(t,K()),{userAgent:r}=H.navigator||{},i=to({user:n,...r&&{userAgent:r},...e}),a=t.getSession();return a?.status===`ok`&&no(a,{status:`exited`}),zc(),t.setSession(i),i}function zc(){let e=q(),t=K().getSession()||e.getSession();t&&ro(t),Bc(),e.setSession()}function Bc(){let e=q(),t=J(),n=e.getSession();n&&t&&t.captureSession(n)}function Vc(e){let t=e.protocol?`${e.protocol}:`:``,n=e.port?`:${e.port}`:``;return`${t}//${e.host}${n}${e.path?`/${e.path}`:``}/api/`}function Hc(e){return`${Vc(e)}${e.projectId}/envelope/`}function Uc(e,t){let n={sentry_version:`7`};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function Wc(e,t,n){return t||`${Hc(e)}?${Uc(e,n)}`}const Gc=[];function Kc(e){let t={};return e.forEach(e=>{let{name:n}=e,r=t[n];r&&!r.isDefaultInstance&&e.isDefaultInstance||(t[n]=e)}),Object.values(t)}function qc(e){let t=e.defaultIntegrations||[],n=e.integrations;t.forEach(e=>{e.isDefaultInstance=!0});let r;if(Array.isArray(n))r=[...t,...n];else if(typeof n==`function`){let e=n(t);r=Array.isArray(e)?e:[e]}else r=t;return Kc(r)}function Jc(e,t){let n={};return t.forEach(t=>{t&&Xc(e,t,n)}),n}function Yc(e,t){for(let n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function Xc(e,t,n){if(n[t.name]){V&&W.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,!Gc.includes(t.name)&&typeof t.setupOnce==`function`&&(t.setupOnce(),Gc.push(t.name)),t.setup&&typeof t.setup==`function`&&t.setup(e),typeof t.preprocessEvent==`function`){let n=t.preprocessEvent.bind(t);e.on(`preprocessEvent`,(t,r)=>n(t,r,e))}if(typeof t.processEvent==`function`){let n=t.processEvent.bind(t),r=Object.assign((t,r)=>n(t,r,e),{id:t.name});e.addEventProcessor(r)}V&&W.log(`Integration installed: ${t.name}`)}function Y(e){return e}function Zc(e,t){return t?wo(t,()=>{let n=ms(),r=n?ns(n):Eo(t);return[n?Es(n):Ts(e,t),r]}):[void 0,void 0]}function Qc(e){return[{type:`log`,item_count:e.length,content_type:`application/vnd.sentry.items.log+json`},{items:e}]}function $c(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=Bo(r)),Fs(i,[Qc(e)])}function el(e,t){let n=t??tl(e)??[];if(n.length===0)return;let r=e.getOptions(),i=$c(n,r._metadata,r.tunnel,e.getDsn());nl().set(e,[]),e.emit(`flushLogs`),e.sendEnvelope(i)}function tl(e){return nl().get(e)}function nl(){return wi(`clientToLogBufferMap`,()=>new WeakMap)}function rl(e){return[{type:`trace_metric`,item_count:e.length,content_type:`application/vnd.sentry.items.trace-metric+json`},{items:e}]}function il(e,t,n,r){let i={};return t?.sdk&&(i.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(i.dsn=Bo(r)),Fs(i,[rl(e)])}function al(e,t){let n=t??ol(e)??[];if(n.length===0)return;let r=e.getOptions(),i=il(n,r._metadata,r.tunnel,e.getDsn());sl().set(e,[]),e.emit(`flushMetrics`),e.sendEnvelope(i)}function ol(e){return sl().get(e)}function sl(){return wi(`clientToMetricBufferMap`,()=>new WeakMap)}function cl(e){return typeof e==`object`&&typeof e.unref==`function`&&e.unref(),e}const ll=Symbol.for(`SentryBufferFullError`);function ul(e=100){let t=new Set;function n(){return t.size<e}function r(e){t.delete(e)}function i(e){if(!n())return rc(ll);let i=e();return t.add(i),i.then(()=>r(i),()=>r(i)),i}function a(e){if(!t.size)return nc(!0);let n=Promise.allSettled(Array.from(t)).then(()=>!0);if(!e)return n;let r=[n,new Promise(t=>cl(setTimeout(()=>t(!1),e)))];return Promise.race(r)}return{get $(){return Array.from(t)},add:i,drain:a}}function dl(e,t=Ma()){let n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;let r=Date.parse(`${e}`);return isNaN(r)?6e4:r-t}function fl(e,t){return e[t]||e.all||0}function pl(e,t,n=Ma()){return fl(e,t)>n}function ml(e,{statusCode:t,headers:n},r=Ma()){let i={...e},a=n?.[`x-sentry-rate-limits`],o=n?.[`retry-after`];if(a)for(let e of a.trim().split(`,`)){let[t,n,,,a]=e.split(`:`,5),o=parseInt(t,10),s=(isNaN(o)?60:o)*1e3;if(!n)i.all=r+s;else for(let e of n.split(`;`))e===`metric_bucket`?(!a||a.split(`;`).includes(`custom`))&&(i[e]=r+s):i[e]=r+s}else o?i.all=r+dl(o,r):t===429&&(i.all=r+60*1e3);return i}function hl(e,t,n=ul(e.bufferSize||64)){let r={},i=e=>n.drain(e);function a(i){let a=[];if(Ls(i,(t,n)=>{let i=Ws(n);pl(r,i)?e.recordDroppedEvent(`ratelimit_backoff`,i):a.push(t)}),a.length===0)return Promise.resolve({});let o=Fs(i[0],a),s=t=>{if(Rs(o,[`client_report`])){V&&W.warn(`Dropping client report. Will not send outcomes (reason: ${t}).`);return}Ls(o,(n,r)=>{e.recordDroppedEvent(t,Ws(r))})};return n.add(()=>t({body:Bs(o)}).then(e=>e.statusCode===413?(V&&W.error(`Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.`),s(`send_error`),e):(V&&e.statusCode!==void 0&&(e.statusCode<200||e.statusCode>=300)&&W.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),r=ml(r,e),e),e=>{throw s(`network_error`),V&&W.error(`Encountered error running transport request:`,e),e})).then(e=>e,e=>{if(e===ll)return V&&W.error(`Skipped sending event because buffer is full.`),s(`queue_overflow`),Promise.resolve({});throw e})}return{send:a,flush:i}}function gl(e,t,n){let r=[{type:`client_report`},{timestamp:n||Za(),discarded_events:e}];return Fs(t?{dsn:t}:{},[r])}function _l(e){let t=[];e.message&&t.push(e.message);try{let n=e.exception.values[e.exception.values.length-1];n?.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}function vl(e){let{trace_id:t,parent_span_id:n,span_id:r,status:i,origin:a,data:o,op:s}=e.contexts?.trace??{};return{data:o??{},description:e.transaction,op:s,parent_span_id:n,span_id:r??``,start_timestamp:e.start_timestamp??0,status:i,timestamp:e.timestamp,trace_id:t??``,origin:a,profile_id:o?.[Do],exclusive_time:o?.[Oo],measurements:e.measurements,is_segment:!0}}function yl(e){return{type:`transaction`,timestamp:e.timestamp,start_timestamp:e.start_timestamp,transaction:e.description,contexts:{trace:{trace_id:e.trace_id,span_id:e.span_id,parent_span_id:e.parent_span_id,op:e.op,status:e.status,origin:e.origin,data:{...e.data,...e.profile_id&&{[Do]:e.profile_id},...e.exclusive_time&&{[Oo]:e.exclusive_time}}}},measurements:e.measurements}}const bl=`Not capturing exception because it's already been captured.`,xl=`Discarded session because of missing or non-string release`,Sl=Symbol.for(`SentryInternalError`),Cl=Symbol.for(`SentryDoNotSendEventError`);function wl(e){return{message:e,[Sl]:!0}}function Tl(e){return{message:e,[Cl]:!0}}function El(e){return!!e&&typeof e==`object`&&Sl in e}function Dl(e){return!!e&&typeof e==`object`&&Cl in e}function Ol(e,t,n,r,i){let a=0,o,s=!1;e.on(n,()=>{a=0,clearTimeout(o),s=!1}),e.on(t,t=>{a+=r(t),a>=8e5?i(e):s||(s=!0,o=cl(setTimeout(()=>{i(e)},5e3)))}),e.on(`flush`,()=>{i(e)})}var kl=class{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=ul(e.transportOptions?.bufferSize??64),e.dsn?this._dsn=Ko(e.dsn):V&&W.warn(`No DSN provided, client will not send events.`),this._dsn){let t=Wc(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs&&Ol(this,`afterCaptureLog`,`flushLogs`,Il,el),(this._options.enableMetrics??this._options._experiments?.enableMetrics??!0)&&Ol(this,`afterCaptureMetric`,`flushMetrics`,Fl,al)}captureException(e,t,n){let r=G();if(Ja(e))return V&&W.log(bl),r;let i={event_id:r,...t};return this._process(()=>this.eventFromException(e,i).then(e=>this._captureEvent(e,i,n)).then(e=>e),`error`),i.event_id}captureMessage(e,t,n,r){let i={event_id:G(),...n},a=ca(e)?e:String(e),o=la(e),s=o?this.eventFromMessage(a,t,i):this.eventFromException(e,i);return this._process(()=>s.then(e=>this._captureEvent(e,i,r)),o?`unknown`:`error`),i.event_id}captureEvent(e,t,n){let r=G();if(t?.originalException&&Ja(t.originalException))return V&&W.log(bl),r;let i={event_id:r,...t},a=e.sdkProcessingMetadata||{},o=a.capturedSpanScope,s=a.capturedSpanIsolationScope,c=Al(e.type);return this._process(()=>this._captureEvent(e,i,o||n,s),c),i.event_id}captureSession(e){this.sendSession(e),no(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(e){let t=this._transport;if(!t)return!0;this.emit(`flush`);let n=await this._isClientDoneProcessing(e),r=await t.flush(e);return n&&r}async close(e){el(this);let t=await this.flush(e);return this.getOptions().enabled=!1,this.emit(`close`),t}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith(`Spotlight`)))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){let t=this._integrations[e.name];Xc(this,e,this._integrations),t||Yc(this,[e])}sendEvent(e,t={}){this.emit(`beforeSendEvent`,e,t);let n=Ys(e,this._dsn,this._options._metadata,this._options.tunnel);for(let e of t.attachments||[])n=Is(n,Hs(e));this.sendEnvelope(n).then(t=>this.emit(`afterSendEvent`,e,t))}sendSession(e){let{release:t,environment:n=Cs}=this._options;if(`aggregates`in e){let r=e.attrs||{};if(!r.release&&!t){V&&W.warn(xl);return}r.release=r.release||t,r.environment=r.environment||n,e.attrs=r}else{if(!e.release&&!t){V&&W.warn(xl);return}e.release=e.release||t,e.environment=e.environment||n}this.emit(`beforeSendSession`,e);let r=Js(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(r)}recordDroppedEvent(e,t,n=1){if(this._options.sendClientReports){let r=`${e}:${t}`;V&&W.log(`Recording outcome: "${r}"${n>1?` (${n} times)`:``}`),this._outcomes[r]=(this._outcomes[r]||0)+n}}on(e,t){let n=this._hooks[e]=this._hooks[e]||new Set,r=(...e)=>t(...e);return n.add(r),()=>{n.delete(r)}}emit(e,...t){let n=this._hooks[e];n&&n.forEach(e=>e(...t))}async sendEnvelope(e){if(this.emit(`beforeEnvelope`,e),this._isEnabled()&&this._transport)try{return await this._transport.send(e)}catch(e){return V&&W.error(`Error while sending envelope:`,e),{}}return V&&W.error(`Transport disabled`),{}}dispose(){}_setupIntegrations(){let{integrations:e}=this._options;this._integrations=Jc(this,e),Yc(this,e)}_updateSessionFromEvent(e,t){let n=t.level===`fatal`,r=!1,i=t.exception?.values;if(i){r=!0,n=!1;for(let e of i)if(e.mechanism?.handled===!1){n=!0;break}}let a=e.status===`ok`;(a&&e.errors===0||a&&n)&&(no(e,{...n&&{status:`crashed`},errors:e.errors||Number(r||n)}),this.captureSession(e))}async _isClientDoneProcessing(e){let t=0;for(;!e||t<e;){if(await new Promise(e=>setTimeout(e,1)),!this._numProcessing)return!0;t++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,t,n,r){let i=this.getOptions(),a=Object.keys(this._integrations);return!t.integrations&&a?.length&&(t.integrations=a),this.emit(`preprocessEvent`,e,t),e.type||r.setLastEventId(e.event_id||t.event_id),xc(i,e,t,n,this,r).then(e=>e===null?e:(this.emit(`postprocessEvent`,e,t),e.contexts={trace:Eo(n),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Ts(this,n),...e.sdkProcessingMetadata},e))}_captureEvent(e,t={},n=K(),r=q()){return V&&Nl(e)&&W.log(`Captured error event \`${_l(e)[0]||`<unknown>`}\``),this._processEvent(e,t,n,r).then(e=>e.event_id,e=>{V&&(Dl(e)?W.log(e.message):El(e)?W.warn(e.message):W.warn(e))})}_processEvent(e,t,n,r){let i=this.getOptions(),{sampleRate:a}=i,o=Pl(e),s=Nl(e),c=`before send for type \`${e.type||`error`}\``,l=a===void 0?void 0:qo(a);if(s&&typeof l==`number`&&ja()>l)return this.recordDroppedEvent(`sample_rate`,`error`),rc(Tl(`Discarding event because it's not included in the random sample (sampling rate = ${a})`));let u=Al(e.type);return this._prepareEvent(e,t,n,r).then(e=>{if(e===null)throw this.recordDroppedEvent(`event_processor`,u),Tl("An event processor returned `null`, will not send event.");return t.data&&t.data.__sentry__===!0?e:jl(Ml(this,i,e,t),c)}).then(i=>{if(i===null){if(this.recordDroppedEvent(`before_send`,u),o){let t=1+(e.spans||[]).length;this.recordDroppedEvent(`before_send`,`span`,t)}throw Tl(`${c} returned \`null\`, will not send event.`)}let a=n.getSession()||r.getSession();if(s&&a&&this._updateSessionFromEvent(a,i),o){let e=(i.sdkProcessingMetadata?.spanCountBeforeProcessing||0)-(i.spans?i.spans.length:0);e>0&&this.recordDroppedEvent(`before_send`,`span`,e)}let l=i.transaction_info;return o&&l&&i.transaction!==e.transaction&&(i.transaction_info={...l,source:`custom`}),this.sendEvent(i,t),i}).then(null,e=>{throw Dl(e)||El(e)?e:(this.captureException(e,{mechanism:{handled:!1,type:`internal`},data:{__sentry__:!0},originalException:e}),wl(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`))})}_process(e,t){this._numProcessing++,this._promiseBuffer.add(e).then(e=>(this._numProcessing--,e),e=>(this._numProcessing--,e===ll&&this.recordDroppedEvent(`queue_overflow`,t),e))}_clearOutcomes(){let e=this._outcomes;return this._outcomes={},Object.entries(e).map(([e,t])=>{let[n,r]=e.split(`:`);return{reason:n,category:r,quantity:t}})}_flushOutcomes(){V&&W.log(`Flushing outcomes...`);let e=this._clearOutcomes();if(e.length===0){V&&W.log(`No outcomes to send`);return}if(!this._dsn){V&&W.log(`No dsn provided, will not send outcomes`);return}V&&W.log(`Sending outcomes:`,e);let t=gl(e,this._options.tunnel&&Bo(this._dsn));this.sendEnvelope(t)}};function Al(e){return e===`replay_event`?`replay`:e||`error`}function jl(e,t){let n=`${t} must return \`null\` or a valid event.`;if(ma(e))return e.then(e=>{if(!ua(e)&&e!==null)throw wl(n);return e},e=>{throw wl(`${t} rejected with ${e}`)});if(!ua(e)&&e!==null)throw wl(n);return e}function Ml(e,t,n,r){let{beforeSend:i,beforeSendTransaction:a,beforeSendSpan:o,ignoreSpans:s}=t,c=n;if(Nl(c)&&i)return i(c,r);if(Pl(c)){if(o||s){let t=vl(c);if(s?.length&&bs(t,s))return null;if(o){let e=o(t);e?c=ao(n,yl(e)):hs()}if(c.spans){let t=[],n=c.spans;for(let e of n){if(s?.length&&bs(e,s)){xs(n,e);continue}if(o){let n=o(e);n?t.push(n):(hs(),t.push(e))}else t.push(e)}let r=c.spans.length-t.length;r&&e.recordDroppedEvent(`before_send`,`span`,r),c.spans=t}}if(a){if(c.spans){let e=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:e}}return a(c,r)}}return c}function Nl(e){return e.type===void 0}function Pl(e){return e.type===`transaction`}function Fl(e){let t=0;return e.name&&(t+=e.name.length*2),t+=8,t+Ll(e.attributes)}function Il(e){let t=0;return e.message&&(t+=e.message.length*2),t+Ll(e.attributes)}function Ll(e){if(!e)return 0;let t=0;return Object.values(e).forEach(e=>{Array.isArray(e)?t+=e.length*Rl(e[0]):la(e)?t+=Rl(e):t+=100}),t}function Rl(e){return typeof e==`string`?e.length*2:typeof e==`number`?8:typeof e==`boolean`?4:0}function zl(e,t,n,r,i){let a={sent_at:new Date().toISOString()};return n?.sdk&&(a.sdk={name:n.sdk.name,version:n.sdk.version}),r&&i&&(a.dsn=Bo(i)),t&&(a.trace=t),Fs(a,[Bl(e)])}function Bl(e){return[{type:`check_in`},e]}function Vl(e){let t=e._metadata?.sdk,n=t?.name&&t?.version?`${t?.name}/${t?.version}`:void 0;e.transportOptions={...e.transportOptions,headers:{...n&&{"user-agent":n},...e.transportOptions?.headers}}}function Hl(e,t){return e(t.stack||``,1)}function Ul(e){return ia(e)&&`__sentry_fetch_url_host__`in e&&typeof e.__sentry_fetch_url_host__==`string`}function Wl(e){return Ul(e)?`${e.message} (${e.__sentry_fetch_url_host__})`:e.message}function Gl(e,t){let n={type:t.name||t.constructor.name,value:Wl(t)},r=Hl(e,t);return r.length&&(n.stacktrace={frames:r}),n}function Kl(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];if(n instanceof Error)return n}}function ql(e){if(`name`in e&&typeof e.name==`string`){let t=`'${e.name}' captured as exception`;return`message`in e&&typeof e.message==`string`&&(t+=` with message '${e.message}'`),t}else if(`message`in e&&typeof e.message==`string`)return e.message;let t=Oa(e);if(oa(e))return`Event \`ErrorEvent\` captured as exception with message \`${e.message}\``;let n=Jl(e);return`${n&&n!==`Object`?`'${n}'`:`Object`} captured as exception with keys: ${t}`}function Jl(e){try{let t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function Yl(e,t,n,r){if(ia(n))return[n,void 0];if(t.synthetic=!0,ua(n)){let t=e?.getOptions().normalizeDepth,i={__serialized__:Os(n,t)},a=Kl(n);if(a)return[a,i];let o=ql(n),s=r?.syntheticException||Error(o);return s.message=o,[s,i]}let i=r?.syntheticException||Error(n);return i.message=`${n}`,[i,void 0]}function Xl(e,t,n,r){let i=r?.data&&r.data.mechanism||{handled:!0,type:`generic`},[a,o]=Yl(e,i,n,r),s={exception:{values:[Gl(t,a)]}};return o&&(s.extra=o),Ua(s,void 0,void 0),Wa(s,i),{...s,event_id:r?.event_id}}function Zl(e,t,n=`info`,r,i){let a={event_id:r?.event_id,level:n};if(i&&r?.syntheticException){let n=Hl(e,r.syntheticException);n.length&&(a.exception={values:[{value:t,stacktrace:{frames:n}}]},Wa(a,{synthetic:!0}))}if(ca(t)){let{__sentry_template_string__:e,__sentry_template_values__:n}=t;return a.logentry={message:e,params:n},a}return a.message=t,a}var Ql=class extends kl{constructor(e){_s(),Vl(e),super(e),this._setUpMetricsProcessing()}eventFromException(e,t){let n=Xl(this,this._options.stackParser,e,t);return n.level=`error`,nc(n)}eventFromMessage(e,t=`info`,n){return nc(Zl(this._options.stackParser,e,t,n,this._options.attachStacktrace))}captureException(e,t,n){return $l(t),super.captureException(e,t,n)}captureEvent(e,t,n){return!e.type&&e.exception?.values&&e.exception.values.length>0&&$l(t),super.captureEvent(e,t,n)}captureCheckIn(e,t,n){let r=`checkInId`in e&&e.checkInId?e.checkInId:G();if(!this._isEnabled())return V&&W.warn(`SDK not enabled, will not capture check-in.`),r;let{release:i,environment:a,tunnel:o}=this.getOptions(),s={check_in_id:r,monitor_slug:e.monitorSlug,status:e.status,release:i,environment:a};`duration`in e&&(s.duration=e.duration),t&&(s.monitor_config={schedule:t.schedule,checkin_margin:t.checkinMargin,max_runtime:t.maxRuntime,timezone:t.timezone,failure_issue_threshold:t.failureIssueThreshold,recovery_threshold:t.recoveryThreshold});let[c,l]=Zc(this,n);l&&(s.contexts={trace:l});let u=zl(s,c,this.getSdkMetadata(),o,this.getDsn());return V&&W.log(`Sending checkin:`,e.monitorSlug,e.status),this.sendEnvelope(u),r}dispose(){V&&W.log(`Disposing client...`);for(let e of Object.keys(this._hooks))this._hooks[e]?.clear();this._hooks={},this._eventProcessors.length=0,this._integrations={},this._outcomes={},this._transport=void 0,this._promiseBuffer=ul(64)}_prepareEvent(e,t,n,r){return this._options.platform&&(e.platform=e.platform||this._options.platform),this._options.runtime&&(e.contexts={...e.contexts,runtime:e.contexts?.runtime||this._options.runtime}),this._options.serverName&&(e.server_name=e.server_name||this._options.serverName),super._prepareEvent(e,t,n,r)}_setUpMetricsProcessing(){this.on(`processMetric`,e=>{this._options.serverName&&(e.attributes={"server.address":this._options.serverName,...e.attributes})})}};function $l(e){let t=q().getScopeData().sdkProcessingMetadata.requestSession;if(t){let n=e?.mechanism?.handled??!0;n&&t.status!==`crashed`?t.status=`errored`:n||(t.status=`crashed`)}}const eu=new Set([`false`,`f`,`n`,`no`,`off`,`0`]),tu=new Set([`true`,`t`,`y`,`yes`,`on`,`1`]);function nu(e,t){let n=String(e).toLowerCase();return eu.has(n)?!1:tu.has(n)?!0:t?.strict?null:!!e}function ru(e){if(!e)return{};let t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};let n=t[6]||``,r=t[8]||``;return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function iu(e){return e.split(/[?#]/,1)[0]}function au(e){let{protocol:t,host:n,path:r}=e,i=n?.replace(/^.*@/,`[filtered]:[filtered]@`).replace(/(:80)$/,``).replace(/(:443)$/,``)||``;return`${t?`${t}://`:``}${i}${r}`}function ou(e,t,n=[t],r=`npm`){let i=(e._metadata=e._metadata||{}).sdk=e._metadata.sdk||{};i.name||(i.name=`sentry.javascript.${t}`,i.packages=n.map(e=>({name:`${r}:@sentry/${e}`,version:Si})),i.version=Si)}function su(e={}){let t=e.client||J();if(!Lc()||!t)return{};let n=So(U());if(n.getTraceData)return n.getTraceData(e);let r=e.scope||K(),i=e.span||ms(),a=i?rs(i):cu(r),o=No(i?Es(i):Ts(t,r));if(!Jo.test(a))return W.warn(`Invalid sentry-trace data. Cannot generate trace data`),{};let s={"sentry-trace":a,baggage:o};return e.propagateTraceparent&&(s.traceparent=i?is(i):lu(r)),s}function cu(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Zo(t,r,n)}function lu(e){let{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Qo(t,r,n)}const uu=`[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:`;function du(e,t,n){if(typeof e!=`string`||!t)return!0;let r=n?.get(e);if(r!==void 0)return V&&!r&&W.log(uu,e),r;let i=La(e,t);return n?.set(e,i),V&&!i&&W.log(uu,e),i}function fu(e){let t=Object.create(null);try{Object.entries(e).forEach(([e,n])=>{typeof n==`string`&&(t[e]=n)})}catch{}return t}function pu(e){let t=e.headers||{},n=(typeof t[`x-forwarded-host`]==`string`?t[`x-forwarded-host`]:void 0)||(typeof t.host==`string`?t.host:void 0),r=(typeof t[`x-forwarded-proto`]==`string`?t[`x-forwarded-proto`]:void 0)||e.protocol||(e.socket?.encrypted?`https`:`http`),i=e.url||``,a=mu({url:i,host:n,protocol:r}),o=e.body||void 0,s=e.cookies;return{url:a,method:e.method,query_string:hu(i),headers:fu(t),cookies:s,data:o}}function mu({url:e,protocol:t,host:n}){if(e?.startsWith(`http`))return e;if(e&&n)return`${t}://${n}${e}`}function hu(e){if(e)try{let t=new URL(e,`http://s.io`).search.slice(1);return t.length?t:void 0}catch{return}}function gu(e,t){let n=J(),r=q();if(!n)return;let{beforeBreadcrumb:i=null,maxBreadcrumbs:a=100}=n.getOptions();if(a<=0)return;let o={timestamp:Za(),...e},s=i?Di(()=>i(o,t)):o;s!==null&&(n.emit&&n.emit(`beforeAddBreadcrumb`,s,t),r.addBreadcrumb(s,a))}let _u;const vu=new WeakMap,yu=Y((()=>({name:`FunctionToString`,setupOnce(){_u=Function.prototype.toString;try{Function.prototype.toString=function(...e){let t=wa(this),n=vu.has(J())&&t!==void 0?t:this;return _u.apply(n,e)}}catch{}},setup(e){vu.set(e,!0)}}))),bu=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,`vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)`,`Can't find variable: _AutofillCallbackHandler`,/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],xu=Y((e={})=>{let t;return{name:`EventFilters`,setup(n){t=Su(e,n.getOptions())},processEvent(n,r,i){return t||=Su(e,i.getOptions()),Cu(n,t)?null:n}}});function Su(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:bu],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function Cu(e,t){if(e.type){if(e.type===`transaction`&&Tu(e,t.ignoreTransactions))return V&&W.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${Ha(e)}`),!0}else{if(wu(e,t.ignoreErrors))return V&&W.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${Ha(e)}`),!0;if(Au(e))return V&&W.warn(`Event dropped due to not having an error message, error type or stacktrace.\nEvent: ${Ha(e)}`),!0;if(Eu(e,t.denyUrls))return V&&W.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${Ha(e)}.\nUrl: ${ku(e)}`),!0;if(!Du(e,t.allowUrls))return V&&W.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${Ha(e)}.\nUrl: ${ku(e)}`),!0}return!1}function wu(e,t){return t?.length?_l(e).some(e=>La(e,t)):!1}function Tu(e,t){if(!t?.length)return!1;let n=e.transaction;return n?La(n,t):!1}function Eu(e,t){if(!t?.length)return!1;let n=ku(e);return n?La(n,t):!1}function Du(e,t){if(!t?.length)return!0;let n=ku(e);return n?La(n,t):!0}function Ou(e=[]){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n&&n.filename!==`<anonymous>`&&n.filename!==`[native code]`)return n.filename||null}return null}function ku(e){try{let t=[...e.exception?.values??[]].reverse().find(e=>e.mechanism?.parent_id===void 0&&e.stacktrace?.frames?.length)?.stacktrace?.frames;return t?Ou(t):null}catch{return V&&W.error(`Cannot extract url for event ${Ha(e)}`),null}}function Au(e){return e.exception?.values?.length?!e.message&&!e.exception.values.some(e=>e.stacktrace||e.type&&e.type!==`Error`||e.value):!1}function ju(e,t,n,r,i,a){if(!i.exception?.values||!a||!ga(a.originalException,Error))return;let o=i.exception.values.length>0?i.exception.values[i.exception.values.length-1]:void 0;o&&(i.exception.values=Mu(e,t,r,a.originalException,n,i.exception.values,o,0))}function Mu(e,t,n,r,i,a,o,s){if(a.length>=n+1)return a;let c=[...a];if(ga(r[i],Error)){Pu(o,s,r);let a=e(t,r[i]),l=c.length;Fu(a,i,l,s),c=Mu(e,t,n,r[i],i,[a,...c],a,l)}return Nu(r)&&r.errors.forEach((a,l)=>{if(ga(a,Error)){Pu(o,s,r);let u=e(t,a),d=c.length;Fu(u,`errors[${l}]`,d,s),c=Mu(e,t,n,a,i,[u,...c],u,d)}}),c}function Nu(e){return Array.isArray(e.errors)}function Pu(e,t,n){e.mechanism={handled:!0,type:`auto.core.linked_errors`,...Nu(n)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function Fu(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:`chained`,source:t,exception_id:n,parent_id:r}}const Iu=Y(((e={})=>{let t=e.limit||5,n=e.key||`cause`;return{name:`LinkedErrors`,preprocessEvent(e,r,i){ju(Gl,i.getOptions().stackParser,n,t,e,r)}}}));function Lu(e){let t={},n=0;for(;n<e.length;){let r=e.indexOf(`=`,n);if(r===-1)break;let i=e.indexOf(`;`,n);if(i===-1)i=e.length;else if(i<r){n=e.lastIndexOf(`;`,r-1)+1;continue}let a=e.slice(n,r).trim();if(t[a]===void 0){let n=e.slice(r+1,i).trim();n.charCodeAt(0)===34&&(n=n.slice(1,-1));try{t[a]=n.indexOf(`%`)===-1?n:decodeURIComponent(n)}catch{t[a]=n}}n=i+1}return t}const Ru=[`X-Client-IP`,`X-Forwarded-For`,`Fly-Client-IP`,`CF-Connecting-IP`,`Fastly-Client-Ip`,`True-Client-Ip`,`X-Real-IP`,`X-Cluster-Client-IP`,`X-Forwarded`,`Forwarded-For`,`Forwarded`,`X-Vercel-Forwarded-For`];function zu(e){let t={};for(let n of Object.keys(e))t[n.toLowerCase()]=e[n];return Ru.map(e=>{let n=t[e.toLowerCase()],r=Array.isArray(n)?n.join(`;`):n;return e===`Forwarded`?Bu(r):r?.split(`,`).map(e=>e.trim())}).reduce((e,t)=>t?e.concat(t):e,[]).find(e=>e!==null&&Vu(e))||null}function Bu(e){if(!e)return null;for(let t of e.split(`;`))if(t.startsWith(`for=`))return t.slice(4);return null}function Vu(e){return/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-fA-F\d]{1,4}:){7}(?:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-fA-F\d]{1,4}|:)|(?:[a-fA-F\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,2}|:)|(?:[a-fA-F\d]{1,4}:){4}(?:(?::[a-fA-F\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,3}|:)|(?:[a-fA-F\d]{1,4}:){3}(?:(?::[a-fA-F\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,4}|:)|(?:[a-fA-F\d]{1,4}:){2}(?:(?::[a-fA-F\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,5}|:)|(?:[a-fA-F\d]{1,4}:){1}(?:(?::[a-fA-F\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-fA-F\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/.test(e)}const Hu={cookies:!0,data:!0,headers:!0,query_string:!0,url:!0},Uu=Y(((e={})=>{let t={...Hu,...e.include};return{name:`RequestData`,processEvent(e,n,r){let{sdkProcessingMetadata:i={}}=e,{normalizedRequest:a,ipAddress:o}=i,s={...t,ip:t.ip??r.getOptions().sendDefaultPii};return a&&Wu(e,a,{ipAddress:o},s),e}}}));function Wu(e,t,n,r){if(e.request={...e.request,...Gu(t,r)},r.ip){let r=t.headers&&zu(t.headers)||n.ipAddress;r&&(e.user={...e.user,ip_address:r})}}function Gu(e,t){let n={},r={...e.headers};return t.headers&&(n.headers=r,t.cookies||delete r.cookie,t.ip||Ru.forEach(e=>{delete r[e]})),n.method=e.method,t.url&&(n.url=e.url),t.cookies&&(n.cookies=e.cookies||(r?.cookie?Lu(r.cookie):void 0)||{}),t.query_string&&(n.query_string=e.query_string),t.data&&(n.data=e.data),n}function Ku(e){let t=`console`;Ji(t,e),Yi(t,qu)}function qu(){`console`in H&&Ti.forEach(function(e){e in H.console&&xa(H.console,e,function(t){return Ei[e]=t,function(...t){Xi(`console`,{args:t,level:e}),Ei[e]?.apply(H.console,t)}})})}function Ju(e){return e===`warn`?`warning`:[`fatal`,`error`,`warning`,`log`,`info`,`debug`].includes(e)?e:`log`}const Yu=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function Xu(e){let t=e.length>1024?`<truncated>${e.slice(-1024)}`:e,n=Yu.exec(t);return n?n.slice(1):[]}function Zu(e){let t=Xu(e),n=t[0]||``,r=t[1];return!n&&!r?`.`:(r&&=r.slice(0,r.length-1),n+r)}const Qu=Y((e={})=>{let t=new Set(e.levels||Ti);return{name:`Console`,setup(e){Ku(({args:n,level:r})=>{J()!==e||!t.has(r)||$u(r,n)})}}});function $u(e,t){let n={category:`console`,data:{arguments:t,logger:`console`},level:Ju(e),message:ed(t)};if(e===`assert`)if(t[0]===!1){let e=t.slice(1);n.message=e.length>0?`Assertion failed: ${ed(e)}`:`Assertion failed`,n.data.arguments=e}else return;gu(n,{input:t,level:e})}function ed(e){return`util`in H&&typeof H.util.format==`function`?H.util.format(...e):Fa(e,` `)}function td(e){if(e!==void 0){if(e>=400&&e<500)return`warning`;if(e>=500)return`error`}}function nd(e,t=!1){return!(t||e&&!e.startsWith(`/`)&&!e.match(/^[A-Z]:/)&&!e.startsWith(`.`)&&!e.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&e!==void 0&&!e.includes(`node_modules/`)}function rd(e){let t=/^\s*[-]{4,}$/,n=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/,r=/at (?:async )?(.+?) \(data:(.*?),/;return i=>{let a=i.match(r);if(a)return{filename:`<data:${a[2]}>`,function:a[1]};let o=i.match(n);if(o){let t,n,r,i,a;if(o[1]){r=o[1];let e=r.lastIndexOf(`.`);if(r[e-1]===`.`&&e--,e>0){t=r.slice(0,e),n=r.slice(e+1);let i=t.indexOf(`.Module`);i>0&&(r=r.slice(i+1),t=t.slice(0,i))}i=void 0}n&&(i=t,a=n),n===`<anonymous>`&&(a=void 0,r=void 0),r===void 0&&(a||=`?`,r=i?`${i}.${a}`:a);let s=Gi(o[2]),c=o[5]===`native`;!s&&o[5]&&!c&&(s=o[5]);let l=s?od(s):void 0;return{filename:l??s,module:l&&e?.(l),function:r,lineno:ad(o[3]),colno:ad(o[4]),in_app:nd(s||``,c)}}if(i.match(t))return{filename:i}}}function id(e){return[90,rd(e)]}function ad(e){return parseInt(e||``,10)||void 0}function od(e){try{return decodeURI(e)}catch{return}}var sd=class{constructor(e){this._maxSize=e,this._cache=new Map}get size(){return this._cache.size}get(e){let t=this._cache.get(e);if(t!==void 0)return this._cache.delete(e),this._cache.set(e,t),t}set(e,t){if(this._cache.size>=this._maxSize){let e=this._cache.keys().next().value;this._cache.delete(e)}this._cache.set(e,t)}remove(e){let t=this._cache.get(e);return t&&this._cache.delete(e),t}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let e=[];return this._cache.forEach(t=>e.push(t)),e}};const X=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__;var cd=class extends Ql{constructor(e){let t=e.includeServerName===!1?void 0:e.serverName||global.process.env.SENTRY_NAME||A.hostname(),n={...e,platform:`node`,runtime:{name:`node`,version:global.process.version},serverName:t};ou(n,`node-light`,[`node-core`]),W.log(`Initializing Sentry: process: ${process.pid}, thread: ${Xe?`main`:`worker-${Ze}`}.`),super(n),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{el(this)},t&&this.on(`beforeCaptureLog`,e=>{e.attributes={...e.attributes,"server.address":t}}),process.on(`beforeExit`,this._logOnExitFlushListener))}async flush(e){return this.getOptions().sendClientReports&&this._flushOutcomes(),super.flush(e)}async close(e){return this._clientReportInterval&&clearInterval(this._clientReportInterval),this._clientReportOnExitFlushListener&&process.off(`beforeExit`,this._clientReportOnExitFlushListener),this._logOnExitFlushListener&&process.off(`beforeExit`,this._logOnExitFlushListener),super.close(e)}startClientReportTracking(){let e=this.getOptions();e.sendClientReports&&(this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{X&&W.log(`Flushing client reports based on interval.`),this._flushOutcomes()},e.clientReportFlushInterval??6e4).unref(),process.on(`beforeExit`,this._clientReportOnExitFlushListener))}};const ld=Y((e={})=>({name:`ChildProcess`,setup(){Qe.channel(`child_process`).subscribe(t=>{t&&typeof t==`object`&&`process`in t&&ud(t.process,e)}),Qe.channel(`worker_threads`).subscribe(t=>{t&&typeof t==`object`&&`worker`in t&&dd(t.worker,e)})}}));function ud(e,t){let n=!1,r;e.on(`spawn`,()=>{if(e.spawnfile===`/usr/bin/sw_vers`){n=!0;return}r={spawnfile:e.spawnfile},t.includeChildProcessArgs&&(r.spawnargs=e.spawnargs)}).on(`exit`,e=>{n||(n=!0,e!==null&&e!==0&&gu({category:`child_process`,message:`Child process exited with code '${e}'`,level:e===0?`info`:`warning`,data:r}))}).on(`error`,e=>{n||(n=!0,gu({category:`child_process`,message:`Child process errored with '${e.message}'`,level:`error`,data:r}))})}function dd(e,t){let n;e.on(`online`,()=>{n=e.threadId}).on(`error`,e=>{t.captureWorkerErrors===!1?gu({category:`worker_thread`,message:`Worker thread errored with '${e.message}'`,level:`error`,data:{threadId:n}}):Mc(e,{mechanism:{type:`auto.child_process.worker_thread`,handled:!1,data:{threadId:String(n)}}})})}const fd=Ie(nt),pd=Ie(it),md=Y(((e={})=>{let t,n={app:!0,os:!0,device:!0,culture:!0,cloudResource:!0,...e};async function r(e){t===void 0&&(t=i());let n=hd(await t);return e.contexts={...e.contexts,app:{...n.app,...e.contexts?.app},os:{...n.os,...e.contexts?.os},device:{...n.device,...e.contexts?.device},culture:{...n.culture,...e.contexts?.culture},cloud_resource:{...n.cloud_resource,...e.contexts?.cloud_resource}},e}async function i(){let e={};if(n.os&&(e.os=await gd()),n.app&&(e.app=vd()),n.device&&(e.device=yd(n.device)),n.culture){let t=_d();t&&(e.culture=t)}return n.cloudResource&&(e.cloud_resource=Ed()),e}return{name:`Context`,processEvent(e){return r(e)}}}));function hd(e){if(e.app?.app_memory&&(e.app.app_memory=process.memoryUsage().rss),e.app?.free_memory&&typeof process.availableMemory==`function`){let t=process.availableMemory?.();t!=null&&(e.app.free_memory=t)}return e.device?.free_memory&&(e.device.free_memory=A.freemem()),e}async function gd(){let e=A.platform();switch(e){case`darwin`:return Cd();case`linux`:return Td();default:return{name:bd[e]||e,version:A.release()}}}function _d(){try{if(typeof process.versions.icu!=`string`)return;let e=new Date(9e8);if(new Intl.DateTimeFormat(`es`,{month:`long`}).format(e)===`enero`){let e=Intl.DateTimeFormat().resolvedOptions();return{locale:e.locale,timezone:e.timeZone}}}catch{}}function vd(){let e=process.memoryUsage().rss,t={app_start_time:new Date(Date.now()-process.uptime()*1e3).toISOString(),app_memory:e};if(typeof process.availableMemory==`function`){let e=process.availableMemory?.();e!=null&&(t.free_memory=e)}return t}function yd(e){let t={},n;try{n=A.uptime()}catch{}if(typeof n==`number`&&(t.boot_time=new Date(Date.now()-n*1e3).toISOString()),t.arch=A.arch(),(e===!0||e.memory)&&(t.memory_size=A.totalmem(),t.free_memory=A.freemem()),e===!0||e.cpu){let e=A.cpus(),n=e?.[0];n&&(t.processor_count=e.length,t.cpu_description=n.model,t.processor_frequency=n.speed)}return t}const bd={aix:`IBM AIX`,freebsd:`FreeBSD`,openbsd:`OpenBSD`,sunos:`SunOS`,win32:`Windows`,ohos:`OpenHarmony`,android:`Android`},xd=[{name:`fedora-release`,distros:[`Fedora`]},{name:`redhat-release`,distros:[`Red Hat Linux`,`Centos`]},{name:`redhat_version`,distros:[`Red Hat Linux`]},{name:`SuSE-release`,distros:[`SUSE Linux`]},{name:`lsb-release`,distros:[`Ubuntu Linux`,`Arch Linux`]},{name:`debian_version`,distros:[`Debian`]},{name:`debian_release`,distros:[`Debian`]},{name:`arch-release`,distros:[`Arch Linux`]},{name:`gentoo-release`,distros:[`Gentoo Linux`]},{name:`novell-release`,distros:[`SUSE Linux`]},{name:`alpine-release`,distros:[`Alpine Linux`]}],Sd={alpine:e=>e,arch:e=>Z(/distrib_release=(.*)/,e),centos:e=>Z(/release ([^ ]+)/,e),debian:e=>e,fedora:e=>Z(/release (..)/,e),mint:e=>Z(/distrib_release=(.*)/,e),red:e=>Z(/release ([^ ]+)/,e),suse:e=>Z(/VERSION = (.*)\n/,e),ubuntu:e=>Z(/distrib_release=(.*)/,e)};function Z(e,t){let n=e.exec(t);return n?n[1]:void 0}async function Cd(){let e={kernel_version:A.release(),name:`Mac OS X`,version:`10.${Number(A.release().split(`.`)[0])-4}`};try{let t=await new Promise((e,t)=>{Ge(`/usr/bin/sw_vers`,(n,r)=>{if(n){t(n);return}e(r)})});e.name=Z(/^ProductName:\s+(.*)$/m,t),e.version=Z(/^ProductVersion:\s+(.*)$/m,t),e.build=Z(/^BuildVersion:\s+(.*)$/m,t)}catch{}return e}function wd(e){return e.split(` `)[0].toLowerCase()}async function Td(){let e={kernel_version:A.release(),name:`Linux`};try{let t=await pd(`/etc`),n=xd.find(e=>t.includes(e.name));if(!n)return e;let r=(await fd(Ve(`/etc`,n.name),{encoding:`utf-8`})).toLowerCase(),{distros:i}=n;e.name=i.find(e=>r.indexOf(wd(e))>=0)||i[0],e.version=Sd[wd(e.name)]?.(r)}catch{}return e}function Ed(){if(process.env.VERCEL)return{"cloud.provider":`vercel`,"cloud.region":process.env.VERCEL_REGION};if(process.env.AWS_REGION)return{"cloud.provider":`aws`,"cloud.region":process.env.AWS_REGION,"cloud.platform":process.env.AWS_EXECUTION_ENV};if(process.env.GCP_PROJECT)return{"cloud.provider":`gcp`};if(process.env.ALIYUN_REGION_ID)return{"cloud.provider":`alibaba_cloud`,"cloud.region":process.env.ALIYUN_REGION_ID};if(process.env.WEBSITE_SITE_NAME&&process.env.REGION_NAME)return{"cloud.provider":`azure`,"cloud.region":process.env.REGION_NAME};if(process.env.IBM_CLOUD_REGION)return{"cloud.provider":`ibm_cloud`,"cloud.region":process.env.IBM_CLOUD_REGION};if(process.env.TENCENTCLOUD_REGION)return{"cloud.provider":`tencent_cloud`,"cloud.region":process.env.TENCENTCLOUD_REGION,"cloud.account.id":process.env.TENCENTCLOUD_APPID,"cloud.availability_zone":process.env.TENCENTCLOUD_ZONE};if(process.env.NETLIFY)return{"cloud.provider":`netlify`};if(process.env.FLY_REGION)return{"cloud.provider":`fly.io`,"cloud.region":process.env.FLY_REGION};if(process.env.DYNO)return{"cloud.provider":`heroku`}}const Dd=new sd(10),Od=new sd(20);function kd(e,t,n){let r=e.get(t);return r===void 0?(e.set(t,n),n):r}function Ad(e){return!!(e.startsWith(`node:`)||e.endsWith(`.min.js`)||e.endsWith(`.min.cjs`)||e.endsWith(`.min.mjs`)||e.startsWith(`data:`))}function jd(e){return e.lineno!==void 0&&e.lineno>1e4||e.colno!==void 0&&e.colno>1e3}function Md(e,t){let n=Dd.get(e);if(n===void 0)return!1;for(let e=t[0];e<=t[1];e++)if(n[e]===void 0)return!1;return!0}function Nd(e,t){if(!e.length)return[];let n=0,r=e[0];if(typeof r!=`number`)return[];let i=Vd(r,t),a=[];for(;;){if(n===e.length-1){a.push(i);break}let r=e[n+1];if(typeof r!=`number`)break;r<=i[1]?i[1]=r+t:(a.push(i),i=Vd(r,t)),n++}return a}function Pd(e,t,n){return new Promise((r,i)=>{let a=et(e),o=qe({input:a});function s(){a.destroy(),r()}let c=0,l=0,u=t[l];if(u===void 0){s();return}let d=u[0],f=u[1];function p(t){Od.set(e,1),X&&W.error(`Failed to read file: ${e}. Error: ${t}`),o.close(),o.removeAllListeners(),s()}a.on(`error`,p),o.on(`error`,p),o.on(`close`,s),o.on(`line`,e=>{if(c++,!(c<d)&&(n[c]=Pa(e,0),c>=f)){if(l===t.length-1){o.close(),o.removeAllListeners();return}l++;let e=t[l];if(e===void 0){o.close(),o.removeAllListeners();return}d=e[0],f=e[1]}})})}async function Fd(e,t){let n={};if(t>0&&e.exception?.values){for(let t of e.exception.values)if(t.stacktrace?.frames?.length)for(let e=t.stacktrace.frames.length-1;e>=0;e--){let r=t.stacktrace.frames[e],i=r?.filename;!r||typeof i!=`string`||typeof r.lineno!=`number`||Ad(i)||jd(r)||(n[i]||(n[i]=[]),n[i].push(r.lineno))}}let r=Object.keys(n);if(r.length==0)return e;let i=[];for(let e of r){if(Od.get(e))continue;let r=n[e];if(!r)continue;r.sort((e,t)=>e-t);let a=Nd(r,t);if(a.every(t=>Md(e,t)))continue;let o=kd(Dd,e,{});i.push(Pd(e,a,o))}if(await Promise.all(i).catch(()=>{X&&W.log(`Failed to read one or more source files and resolve context lines`)}),t>0&&e.exception?.values)for(let n of e.exception.values)n.stacktrace?.frames&&n.stacktrace.frames.length>0&&Id(n.stacktrace.frames,t,Dd);return e}function Id(e,t,n){for(let r of e)if(r.filename&&r.context_line===void 0&&typeof r.lineno==`number`){let e=n.get(r.filename);if(e===void 0)continue;Rd(r.lineno,r,t,e)}}function Ld(e){delete e.pre_context,delete e.context_line,delete e.post_context}function Rd(e,t,n,r){if(t.lineno===void 0||r===void 0){X&&W.error(`Cannot resolve context for frame with no lineno or file contents`);return}t.pre_context=[];for(let i=zd(e,n);i<e;i++){let e=r[i];if(e===void 0){Ld(t),X&&W.error(`Could not find line ${i} in file ${t.filename}`);return}t.pre_context.push(e)}if(r[e]===void 0){Ld(t),X&&W.error(`Could not find line ${e} in file ${t.filename}`);return}t.context_line=r[e];let i=Bd(e,n);t.post_context=[];for(let n=e+1;n<=i;n++){let e=r[n];if(e===void 0)break;t.post_context.push(e)}}function zd(e,t){return Math.max(1,e-t)}function Bd(e,t){return e+t}function Vd(e,t){return[zd(e,t),Bd(e,t)]}const Hd=Y(((e={})=>{let t=e.frameContextLines===void 0?7:e.frameContextLines;return{name:`ContextLines`,processEvent(e){return Fd(e,t)}}})),Ud=qa(process.versions.node),Wd=Ud.major;Ud.minor;let Gd;async function Kd(){if(Gd===void 0)try{Gd=!!(await import(`node:inspector`)).url()}catch{Gd=!1}return Gd}const qd=`__SENTRY_ERROR_LOCAL_VARIABLES__`;function Jd(e,t,n){let r=0,i=5,a=0;return setInterval(()=>{a===0?r>e&&(i*=2,n(i),i>86400&&(i=86400),a=i):(--a,a===0&&t()),r=0},1e3).unref(),()=>{r+=1}}function Yd(e){return e!==void 0&&(e.length===0||e===`?`||e===`<anonymous>`)}function Xd(e,t){return e===t||`Object.${e}`===t||e===`Object.${t}`||Yd(e)&&Yd(t)}function Zd(...e){W.log(`[LocalVariables]`,...e)}const Qd=Y(((e={})=>{function t(t,n){let r=(t.stacktrace?.frames||[]).filter(e=>e.function!==`new Promise`);for(let t=0;t<r.length;t++){let i=r.length-t-1,a=n[t],o=r[i];if(!o||!a)break;a.vars===void 0||o.in_app===!1&&e.includeOutOfAppFrames!==!0||!Xd(o.function,a.function)||(o.vars=a.vars)}}function n(e,n){if(n.originalException&&typeof n.originalException==`object`&&qd in n.originalException&&Array.isArray(n.originalException[qd])){for(let r of e.exception?.values||[])t(r,n.originalException[qd]);n.originalException[qd]=void 0}return e}async function r(){let e=await import(`node:inspector`);e.url()||e.open(0)}function i(e){let t=new at(new URL(`data:application/javascript;base64,LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQyLjAgKDA3YzkxOTApIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyBlfWZyb20ibm9kZTppbnNwZWN0b3IvcHJvbWlzZXMiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIHR9ZnJvbSJub2RlOndvcmtlcl90aHJlYWRzIjtjb25zdCBuPWdsb2JhbFRoaXMsaT17fTtjb25zdCBvPSJfX1NFTlRSWV9FUlJPUl9MT0NBTF9WQVJJQUJMRVNfXyI7Y29uc3QgYT10O2Z1bmN0aW9uIHMoLi4uZSl7YS5kZWJ1ZyYmZnVuY3Rpb24oZSl7aWYoISgiY29uc29sZSJpbiBuKSlyZXR1cm4gZSgpO2NvbnN0IHQ9bi5jb25zb2xlLG89e30sYT1PYmplY3Qua2V5cyhpKTthLmZvckVhY2goZT0+e2NvbnN0IG49aVtlXTtvW2VdPXRbZV0sdFtlXT1ufSk7dHJ5e3JldHVybiBlKCl9ZmluYWxseXthLmZvckVhY2goZT0+e3RbZV09b1tlXX0pfX0oKCk9PmNvbnNvbGUubG9nKCJbTG9jYWxWYXJpYWJsZXMgV29ya2VyXSIsLi4uZSkpfWFzeW5jIGZ1bmN0aW9uIGMoZSx0LG4saSl7Y29uc3Qgbz1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pO2lbbl09by5yZXN1bHQuZmlsdGVyKGU9PiJsZW5ndGgiIT09ZS5uYW1lJiYhaXNOYU4ocGFyc2VJbnQoZS5uYW1lLDEwKSkpLnNvcnQoKGUsdCk9PnBhcnNlSW50KGUubmFtZSwxMCktcGFyc2VJbnQodC5uYW1lLDEwKSkubWFwKGU9PmUudmFsdWU/LnZhbHVlKX1hc3luYyBmdW5jdGlvbiByKGUsdCxuLGkpe2NvbnN0IG89YXdhaXQgZS5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLHtvYmplY3RJZDp0LG93blByb3BlcnRpZXM6ITB9KTtpW25dPW8ucmVzdWx0Lm1hcChlPT5bZS5uYW1lLGUudmFsdWU/LnZhbHVlXSkucmVkdWNlKChlLFt0LG5dKT0+KGVbdF09bixlKSx7fSl9ZnVuY3Rpb24gdShlLHQpe2UudmFsdWUmJigidmFsdWUiaW4gZS52YWx1ZT92b2lkIDA9PT1lLnZhbHVlLnZhbHVlfHxudWxsPT09ZS52YWx1ZS52YWx1ZT90W2UubmFtZV09YDwke2UudmFsdWUudmFsdWV9PmA6dFtlLm5hbWVdPWUudmFsdWUudmFsdWU6ImRlc2NyaXB0aW9uImluIGUudmFsdWUmJiJmdW5jdGlvbiIhPT1lLnZhbHVlLnR5cGU/dFtlLm5hbWVdPWA8JHtlLnZhbHVlLmRlc2NyaXB0aW9ufT5gOiJ1bmRlZmluZWQiPT09ZS52YWx1ZS50eXBlJiYodFtlLm5hbWVdPSI8dW5kZWZpbmVkPiIpKX1hc3luYyBmdW5jdGlvbiBsKGUsdCl7Y29uc3Qgbj1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuZ2V0UHJvcGVydGllcyIse29iamVjdElkOnQsb3duUHJvcGVydGllczohMH0pLGk9e307Zm9yKGNvbnN0IHQgb2Ygbi5yZXN1bHQpaWYodC52YWx1ZT8ub2JqZWN0SWQmJiJBcnJheSI9PT10LnZhbHVlLmNsYXNzTmFtZSl7Y29uc3Qgbj10LnZhbHVlLm9iamVjdElkO2F3YWl0IGMoZSxuLHQubmFtZSxpKX1lbHNlIGlmKHQudmFsdWU/Lm9iamVjdElkJiYiT2JqZWN0Ij09PXQudmFsdWUuY2xhc3NOYW1lKXtjb25zdCBuPXQudmFsdWUub2JqZWN0SWQ7YXdhaXQgcihlLG4sdC5uYW1lLGkpfWVsc2UgdC52YWx1ZSYmdSh0LGkpO3JldHVybiBpfWxldCBmOyhhc3luYyBmdW5jdGlvbigpe2NvbnN0IHQ9bmV3IGU7dC5jb25uZWN0VG9NYWluVGhyZWFkKCkscygiQ29ubmVjdGVkIHRvIG1haW4gdGhyZWFkIik7bGV0IG49ITE7dC5vbigiRGVidWdnZXIucmVzdW1lZCIsKCk9PntuPSExfSksdC5vbigiRGVidWdnZXIucGF1c2VkIixlPT57bj0hMCxhc3luYyBmdW5jdGlvbihlLHtyZWFzb246dCxkYXRhOntvYmplY3RJZDpufSxjYWxsRnJhbWVzOml9KXtpZigiZXhjZXB0aW9uIiE9PXQmJiJwcm9taXNlUmVqZWN0aW9uIiE9PXQpcmV0dXJuO2lmKGY/LigpLG51bGw9PW4pcmV0dXJuO2NvbnN0IGE9W107Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0Kyspe2NvbnN0e3Njb3BlQ2hhaW46bixmdW5jdGlvbk5hbWU6byx0aGlzOnN9PWlbdF0sYz1uLmZpbmQoZT0+ImxvY2FsIj09PWUudHlwZSkscj0iZ2xvYmFsIiE9PXMuY2xhc3NOYW1lJiZzLmNsYXNzTmFtZT9gJHtzLmNsYXNzTmFtZX0uJHtvfWA6bztpZih2b2lkIDA9PT1jPy5vYmplY3Qub2JqZWN0SWQpYVt0XT17ZnVuY3Rpb246cn07ZWxzZXtjb25zdCBuPWF3YWl0IGwoZSxjLm9iamVjdC5vYmplY3RJZCk7YVt0XT17ZnVuY3Rpb246cix2YXJzOm59fX1hd2FpdCBlLnBvc3QoIlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24iLHtmdW5jdGlvbkRlY2xhcmF0aW9uOmBmdW5jdGlvbigpIHsgdGhpcy4ke299ID0gdGhpcy4ke299IHx8ICR7SlNPTi5zdHJpbmdpZnkoYSl9OyB9YCxzaWxlbnQ6ITAsb2JqZWN0SWQ6bn0pLGF3YWl0IGUucG9zdCgiUnVudGltZS5yZWxlYXNlT2JqZWN0Iix7b2JqZWN0SWQ6bn0pfSh0LGUucGFyYW1zKS50aGVuKGFzeW5jKCk9PntuJiZhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpfSxhc3luYyBlPT57biYmYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKX0pfSksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTtjb25zdCBpPSExIT09YS5jYXB0dXJlQWxsRXhjZXB0aW9ucztpZihhd2FpdCB0LnBvc3QoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIix7c3RhdGU6aT8iYWxsIjoidW5jYXVnaHQifSksaSl7Y29uc3QgZT1hLm1heEV4Y2VwdGlvbnNQZXJTZWNvbmR8fDUwO2Y9ZnVuY3Rpb24oZSx0LG4pe2xldCBpPTAsbz01LGE9MDtyZXR1cm4gc2V0SW50ZXJ2YWwoKCk9PnswPT09YT9pPmUmJihvKj0yLG4obyksbz44NjQwMCYmKG89ODY0MDApLGE9byk6KGEtPTEsMD09PWEmJnQoKSksaT0wfSwxZTMpLnVucmVmKCksKCk9PntpKz0xfX0oZSxhc3luYygpPT57cygiUmF0ZS1saW1pdCBsaWZ0ZWQuIiksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJhbGwifSl9LGFzeW5jIGU9PntzKGBSYXRlLWxpbWl0IGV4Y2VlZGVkLiBEaXNhYmxpbmcgY2FwdHVyaW5nIG9mIGNhdWdodCBleGNlcHRpb25zIGZvciAke2V9IHNlY29uZHMuYCksYXdhaXQgdC5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIse3N0YXRlOiJ1bmNhdWdodCJ9KX0pfX0pKCkuY2F0Y2goZT0+e3MoIkZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlciIsZSl9KSxzZXRJbnRlcnZhbCgoKT0+e30sMWU0KTs=`),{workerData:e,execArgv:[],env:{...process.env,NODE_OPTIONS:void 0}});process.on(`exit`,()=>{t.terminate()}),t.once(`error`,e=>{Zd(`Worker error`,e)}),t.once(`exit`,e=>{Zd(`Worker exit`,e)}),t.unref()}return{name:`LocalVariablesAsync`,async setup(t){if(!t.getOptions().includeLocalVariables)return;if(await Kd()){W.warn(`Local variables capture has been disabled because the debugger was already enabled`);return}let n={...e,debug:W.isEnabled()};r().then(()=>{try{i(n)}catch(e){W.error(`Failed to start worker`,e)}},e=>{W.error(`Failed to start inspector`,e)})},processEvent(e,t){return n(e,t)}}}));function $d(e){if(e!==void 0)return e.slice(-10).reduce((e,t)=>`${e},${t.function},${t.lineno},${t.colno}`,``)}function ef(e,t){if(t!==void 0)return $d(e(t,1))}function tf(e){let t=[],n=!1;function r(r){t=[],!n&&(n=!0,e(r))}t.push(r);function i(e){t.push(e)}function a(e){let n=t.pop()||r;try{n(e)}catch{r(e)}}return{add:i,next:a}}var nf=class e{constructor(e){this._session=e}static async create(t){return t||new e(new(await(import(`node:inspector`))).Session)}configureAndConnect(e,t){this._session.connect(),this._session.on(`Debugger.paused`,t=>{e(t,()=>{this._session.post(`Debugger.resume`)})}),this._session.post(`Debugger.enable`),this._session.post(`Debugger.setPauseOnExceptions`,{state:t?`all`:`uncaught`})}setPauseOnExceptions(e){this._session.post(`Debugger.setPauseOnExceptions`,{state:e?`all`:`uncaught`})}getLocalVariables(e,t){this._getProperties(e,e=>{let{add:n,next:r}=tf(t);for(let t of e)if(t.value?.objectId&&t.value.className===`Array`){let e=t.value.objectId;n(n=>this._unrollArray(e,t.name,n,r))}else if(t.value?.objectId&&t.value.className===`Object`){let e=t.value.objectId;n(n=>this._unrollObject(e,t.name,n,r))}else t.value&&n(e=>this._unrollOther(t,e,r));r({})})}_getProperties(e,t){this._session.post(`Runtime.getProperties`,{objectId:e,ownProperties:!0},(e,n)=>{t(e?[]:n.result)})}_unrollArray(e,t,n,r){this._getProperties(e,e=>{n[t]=e.filter(e=>e.name!==`length`&&!isNaN(parseInt(e.name,10))).sort((e,t)=>parseInt(e.name,10)-parseInt(t.name,10)).map(e=>e.value?.value),r(n)})}_unrollObject(e,t,n,r){this._getProperties(e,e=>{n[t]=e.map(e=>[e.name,e.value?.value]).reduce((e,[t,n])=>(e[t]=n,e),{}),r(n)})}_unrollOther(e,t,n){e.value&&(`value`in e.value?e.value.value===void 0||e.value.value===null?t[e.name]=`<${e.value.value}>`:t[e.name]=e.value.value:`description`in e.value&&e.value.type!==`function`?t[e.name]=`<${e.value.description}>`:e.value.type===`undefined`&&(t[e.name]=`<undefined>`)),n(t)}};const rf=Y(((e={},t)=>{let n=new sd(20),r,i=!1;function a(t){let r=$d(t.stacktrace?.frames);if(r===void 0)return;let i=n.remove(r);if(i===void 0)return;let a=(t.stacktrace?.frames||[]).filter(e=>e.function!==`new Promise`);for(let t=0;t<a.length;t++){let n=a.length-t-1,r=i[t],o=a[n];if(!o||!r)break;r.vars===void 0||o.in_app===!1&&e.includeOutOfAppFrames!==!0||!Xd(o.function,r.function)||(o.vars=r.vars)}}function o(e){for(let t of e.exception?.values||[])a(t);return e}let s;async function c(){let a=J()?.getOptions();if(a?.includeLocalVariables){if(Wd<18){W.log("The `LocalVariables` integration is only supported on Node >= v18.");return}if(await Kd()){W.warn(`Local variables capture has been disabled because the debugger was already enabled`);return}try{let o=await nf.create(t),s=(e,{params:{reason:t,data:i,callFrames:a}},s)=>{if(t!==`exception`&&t!==`promiseRejection`){s();return}r?.();let c=ef(e,i.description);if(c==null){s();return}let{add:l,next:u}=tf(e=>{n.set(c,e),s()});for(let e=0;e<Math.min(a.length,5);e++){let{scopeChain:t,functionName:n,this:r}=a[e],i=t.find(e=>e.type===`local`),s=r.className===`global`||!r.className?n:`${r.className}.${n}`;if(i?.object.objectId===void 0)l(t=>{t[e]={function:s},u(t)});else{let t=i.object.objectId;l(n=>o.getLocalVariables(t,t=>{n[e]={function:s,vars:t},u(n)}))}}u([])},c=e.captureAllExceptions!==!1;o.configureAndConnect((e,t)=>s(a.stackParser,e,t),c),c&&(r=Jd(e.maxExceptionsPerSecond||50,()=>{W.log(`Local variables rate-limit lifted.`),o.setPauseOnExceptions(!0)},e=>{W.log(`Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${e} seconds.`),o.setPauseOnExceptions(!1)})),i=!0}catch(e){W.log("The `LocalVariables` integration failed to start.",e)}}}return{name:`LocalVariables`,setupOnce(){s=c()},async processEvent(e){return await s,i?o(e):e},_getCachedFramesCount(){return n.size},_getFirstCachedFrame(){return n.values()[0]}}})),af=(e={})=>Ud.major<19?rf(e):Qd(e);function of(){try{return typeof module<`u`&&module.exports!==void 0}catch{return!1}}let sf;const cf=typeof __SENTRY_SERVER_MODULES__>`u`?{}:__SENTRY_SERVER_MODULES__,lf=(()=>({name:`Modules`,processEvent(e){return e.modules={...e.modules,...pf()},e},getModules:pf}));function uf(){try{return n.cache?Object.keys(n.cache):[]}catch{return[]}}function df(){return{...cf,...hf(),...of()?ff():{}}}function ff(){let e=n.main?.paths||[],t=uf(),r={},i=new Set;return t.forEach(t=>{let n=t,a=()=>{let t=n;if(n=Be(t),!n||t===n||i.has(t))return;if(e.indexOf(n)<0)return a();let o=Ve(t,`package.json`);if(i.add(t),!tt(o))return a();try{let e=JSON.parse(rt(o,`utf8`));r[e.name]=e.version}catch{}};a()}),r}function pf(){return sf||=df(),sf}function mf(){try{let e=Ve(process.cwd(),`package.json`);return JSON.parse(rt(e,`utf8`))}catch{return{}}}function hf(){let e=mf();return{...e.dependencies,...e.devDependencies}}function gf(e){Di(()=>{console.error(e)});let t=J();if(t===void 0){X&&W.warn(`No NodeClient was defined, we are exiting the process now.`),global.process.exit(1);return}let n=t.getOptions(),r=n?.shutdownTimeout&&n.shutdownTimeout>0?n.shutdownTimeout:2e3;t.close(r).then(e=>{e||X&&W.warn(`We reached the timeout for emptying the request buffer, still exiting now!`),global.process.exit(1)},e=>{X&&W.error(e)})}const _f=Y((e={})=>{let t={exitEvenIfOtherHandlersAreRegistered:!1,...e};return{name:`OnUncaughtException`,setup(e){Xe&&global.process.on(`uncaughtException`,vf(e,t))}}});function vf(e,t){let n=!1,r=!1,i=!1,a,o=e.getOptions();return Object.assign(s=>{let c=gf;t.onFatalError?c=t.onFatalError:o.onFatalError&&(c=o.onFatalError);let l=global.process.listeners(`uncaughtException`).filter(e=>e.name!==`domainUncaughtExceptionClear`&&e.tag!==`sentry_tracingErrorCallback`&&e._errorHandler!==!0).length===0,u=t.exitEvenIfOtherHandlersAreRegistered||l;n?u&&(i?(X&&W.warn(`uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown`),gf(s)):r||(r=!0,setTimeout(()=>{i||(i=!0,c(a,s))},2e3))):(a=s,n=!0,J()===e&&Mc(s,{originalException:s,captureContext:{level:`fatal`},mechanism:{handled:!1,type:`auto.node.onuncaughtexception`}}),!i&&u&&(i=!0,c(s)))},{_errorHandler:!0})}const yf=[{name:`AI_NoOutputGeneratedError`},{name:`AbortError`}],bf=Y(((e={})=>{let t={mode:e.mode??`warn`,ignore:[...yf,...e.ignore??[]]};return{name:`OnUnhandledRejection`,setup(e){global.process.on(`unhandledRejection`,wf(e,t))}}}));function xf(e){if(typeof e!=`object`||!e)return{name:``,message:String(e??``)};let t=e;return{name:typeof t.name==`string`?t.name:``,message:typeof t.message==`string`?t.message:String(e)}}function Sf(e,t){let n=e.name===void 0||Ia(t.name,e.name,!0),r=e.message===void 0||Ia(t.message,e.message);return n&&r}function Cf(e,t){let n=xf(t);return e.some(e=>Sf(e,n))}function wf(e,t){return function(n,r){if(J()!==e||Cf(t.ignore??[],n))return;let i=t.mode===`strict`?`fatal`:`error`,a=n&&typeof n==`object`?n._sentry_active_span:void 0;(a?e=>Qs(a,e):e=>e())(()=>{Mc(n,{originalException:r,captureContext:{extra:{unhandledPromiseRejection:!0},level:i},mechanism:{handled:!1,type:`auto.node.onunhandledrejection`}})}),Tf(n,t.mode)}}function Tf(e,t){let n=`This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:`;t===`warn`?Di(()=>{console.warn(n),console.error(e&&typeof e==`object`&&`stack`in e?e.stack:e)}):t===`strict`&&(Di(()=>{console.warn(n)}),gf(e))}const Ef=Y(()=>({name:`ProcessSession`,setupOnce(){Rc(),process.on(`beforeExit`,()=>{q().getSession()?.status!==`ok`&&zc()})}})),Df=`Spotlight`,Of=Y(((e={})=>{let t={sidecarUrl:e.sidecarUrl||`http://localhost:8969/stream`};return{name:Df,setup(e){try{process.env.NODE_ENV&&process.env.NODE_ENV!==`development`&&W.warn(`[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?`)}catch{}kf(e,t)}}}));function kf(e,t){let n=Af(t.sidecarUrl);if(!n)return;let r=0;e.on(`beforeEnvelope`,e=>{if(r>3){W.warn(`[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests`);return}let t=Bs(e);$s(()=>{let e=Je.request({method:`POST`,path:n.pathname,hostname:n.hostname,port:n.port,headers:{"Content-Type":`application/x-sentry-envelope`}},e=>{e.statusCode&&e.statusCode>=200&&e.statusCode<400&&(r=0),e.on(`data`,()=>{}),e.on(`end`,()=>{}),e.setEncoding(`utf8`)});e.on(`error`,()=>{r++,W.warn(`[Spotlight] Failed to send envelope to Spotlight Sidecar`)}),e.write(t),e.end()})})}function Af(e){try{return new URL(`${e}`)}catch{W.warn(`[Spotlight] Invalid sidecar URL: ${e}`);return}}function jf(e){return!(e instanceof Error)||!(`errno`in e)||typeof e.errno!=`number`?!1:Pe.getSystemErrorMap().has(e.errno)}const Mf=Y((e={})=>({name:`NodeSystemError`,processEvent:(t,n,r)=>{if(!jf(n.originalException))return t;let i=n.originalException,a={...i};!r.getOptions().sendDefaultPii&&e.includePaths!==!0&&(delete a.path,delete a.dest),t.contexts={...t.contexts,node_system_error:a};for(let e of t.exception?.values||[])e.value&&(i.path&&e.value.includes(i.path)&&(e.value=e.value.replace(`'${i.path}'`,``).trim()),i.dest&&e.value.includes(i.dest)&&(e.value=e.value.replace(`'${i.dest}'`,``).trim()));return t}}));function Nf(e){return e.replace(/^[A-Z]:/,``).replace(/\\/g,`/`)}function Pf(e=process.argv[1]?Zu(process.argv[1]):process.cwd(),t=Ue===`\\`){let n=t?Nf(e):e;return e=>{if(!e)return;let r=t?Nf(e):e,{dir:i,base:a,ext:o}=He.parse(r);(o===`.js`||o===`.mjs`||o===`.cjs`)&&(a=a.slice(0,o.length*-1));let s=decodeURIComponent(a);i||=`.`;let c=i.lastIndexOf(`/node_modules`);if(c>-1)return`${i.slice(c+14).replace(/\//g,`.`)}:${s}`;if(i.startsWith(n)){let e=i.slice(n.length+1).replace(/\//g,`.`);return e?`${e}:${s}`:s}return s}}function Ff(e){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(H.SENTRY_RELEASE?.id)return H.SENTRY_RELEASE.id;let t=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,n=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,r=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return t||n||r||e}const If=Ri(id(Pf())),Q=Symbol(`AgentBaseInternalState`);var Lf=class extends Je.Agent{constructor(e){super(e),this[Q]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint==`boolean`)return e.secureEndpoint;if(typeof e.protocol==`string`)return e.protocol===`https:`}let{stack:t}=Error();return typeof t==`string`?t.split(`
324
+ `).some(e=>e.indexOf(`(https.js:`)!==-1||e.indexOf(`node:https:`)!==-1):!1}createSocket(e,t,n){let r={...t,secureEndpoint:this.isSecureEndpoint(t)};Promise.resolve().then(()=>this.connect(e,r)).then(i=>{if(i instanceof Je.Agent)return i.addRequest(e,r);this[Q].currentSocket=i,super.createSocket(e,t,n)},n)}createConnection(){let e=this[Q].currentSocket;if(this[Q].currentSocket=void 0,!e)throw Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[Q].defaultPort??(this.protocol===`https:`?443:80)}set defaultPort(e){this[Q]&&(this[Q].defaultPort=e)}get protocol(){return this[Q].protocol??(this.isSecureEndpoint()?`https:`:`http:`)}set protocol(e){this[Q]&&(this[Q].protocol=e)}};function Rf(...e){W.log(`[https-proxy-agent:parse-proxy-response]`,...e)}function zf(e){return new Promise((t,n)=>{let r=0,i=[];function a(){let t=e.read();t?l(t):e.once(`readable`,a)}function o(){e.removeListener(`end`,s),e.removeListener(`error`,c),e.removeListener(`readable`,a)}function s(){o(),Rf(`onend`),n(Error(`Proxy connection ended before receiving CONNECT response`))}function c(e){o(),Rf(`onerror %o`,e),n(e)}function l(s){i.push(s),r+=s.length;let c=Buffer.concat(i,r),l=c.indexOf(`\r
188
325
  \r
189
- `);if(l===-1){Sf(`have not received end of HTTP headers yet...`),a();return}let u=c.subarray(0,l).toString(`ascii`).split(`\r
190
- `),d=u.shift();if(!d)return e.destroy(),n(Error(`No header received from proxy CONNECT response`));let f=d.split(` `),p=+(f[1]||0),m=f.slice(2).join(` `),h={};for(let t of u){if(!t)continue;let r=t.indexOf(`:`);if(r===-1)return e.destroy(),n(Error(`Invalid header from proxy CONNECT response: "${t}"`));let i=t.slice(0,r).toLowerCase(),a=t.slice(r+1).trimStart(),o=h[i];typeof o==`string`?h[i]=[o,a]:Array.isArray(o)?o.push(a):h[i]=a}Sf(`got proxy server response: %o %o`,d,h),o(),t({connect:{statusCode:p,statusText:m,headers:h},buffered:c})}e.on(`error`,c),e.on(`end`,s),a()})}function wf(...e){H.log(`[https-proxy-agent]`,...e)}var Tf=class extends xf{static __initStatic(){this.protocols=[`http`,`https`]}constructor(e,t){super(t),this.options={},this.proxy=typeof e==`string`?new URL(e):e,this.proxyHeaders=t?.headers??{},wf(`Creating new HttpsProxyAgent instance: %o`,this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,``),r=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol===`https:`?443:80;this.connectOpts={ALPNProtocols:[`http/1.1`],...t?Df(t,`headers`):null,host:n,port:r}}async connect(e,t){let{proxy:n}=this;if(!t.host)throw TypeError(`No "host" provided`);let r;if(n.protocol===`https:`){wf("Creating `tls.Socket`: %o",this.connectOpts);let e=this.connectOpts.servername||this.connectOpts.host;r=ht.connect({...this.connectOpts,servername:e&&mt.isIP(e)?void 0:e})}else wf("Creating `net.Socket`: %o",this.connectOpts),r=mt.connect(this.connectOpts);let i=typeof this.proxyHeaders==`function`?this.proxyHeaders():{...this.proxyHeaders},a=mt.isIPv6(t.host)?`[${t.host}]`:t.host,o=`CONNECT ${a}:${t.port} HTTP/1.1\r\n`;if(n.username||n.password){let e=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;i[`Proxy-Authorization`]=`Basic ${Buffer.from(e).toString(`base64`)}`}i.Host=`${a}:${t.port}`,i[`Proxy-Connection`]||=this.keepAlive?`Keep-Alive`:`close`;for(let e of Object.keys(i))o+=`${e}: ${i[e]}\r\n`;let s=Cf(r);r.write(`${o}\r\n`);let{connect:c,buffered:l}=await s;if(e.emit(`proxyConnect`,c),this.emit(`proxyConnect`,c,e),c.statusCode===200){if(e.once(`socket`,Ef),t.secureEndpoint){wf(`Upgrading socket connection to TLS`);let e=t.servername||t.host;return ht.connect({...Df(t,`host`,`path`,`port`),socket:r,servername:mt.isIP(e)?void 0:e})}return r}r.destroy();let u=new mt.Socket({writable:!1});return u.readable=!0,e.once(`socket`,e=>{wf(`Replaying proxy buffer for failed request`),e.push(l),e.push(null)}),u}};Tf.__initStatic();function Ef(e){e.resume()}function Df(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}function Of(e){return new Qe({read(){this.push(e),this.push(null)}})}function kf(e){let t;try{t=new URL(e.url)}catch{return V(()=>{console.warn(`[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.`)}),$c(e,()=>Promise.resolve({}))}let n=t.protocol===`https:`,r=Af(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?ft:et,a=e.keepAlive===void 0?!1:e.keepAlive,o=r?new Tf(r):new i.Agent({keepAlive:a,maxSockets:30,timeout:2e3});return $c(e,jf(e,e.httpModule??i,o))}function Af(e,t){let{no_proxy:n}=process.env;if(!n?.split(`,`).some(t=>e.host.endsWith(t)||e.hostname.endsWith(t)))return t}function jf(e,t,n){let{hostname:r,pathname:i,port:a,protocol:o,search:s}=new URL(e.url);return function(c){return new Promise((l,u)=>{Ls(()=>{let d=Of(c.body),f={...e.headers};c.body.length>32768&&(f[`content-encoding`]=`gzip`,d=d.pipe(pt()));let p=r.startsWith(`[`),m=t.request({method:`POST`,agent:n,headers:f,hostname:p?r.slice(1,-1):r,path:`${i}${s}`,port:a,protocol:o,ca:e.caCerts},e=>{e.on(`data`,()=>{}),e.on(`end`,()=>{}),e.setEncoding(`utf8`);let t=e.headers[`retry-after`]??null,n=e.headers[`x-sentry-rate-limits`]??null;l({statusCode:e.statusCode,headers:{"retry-after":t,"x-sentry-rate-limits":Array.isArray(n)?n[0]||null:n}})});m.on(`error`,u),d.pipe(m)})})}}function Mf(e){if(e===!1)return!1;if(typeof e==`string`)return e;let t=Bl(process.env.SENTRY_SPOTLIGHT,{strict:!0}),n=t===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return e===!0?n??!0:t??n}function Nf(){let e=new gt;function t(){return e.getStore()||{scope:Za(),isolationScope:Qa()}}function n(n){let r=t().scope.clone(),i=t().isolationScope;return e.run({scope:r,isolationScope:i},()=>n(r))}function r(n,r){let i=t().isolationScope.clone();return e.run({scope:n,isolationScope:i},()=>r(n))}function i(n){let r=t().scope.clone(),i=t().isolationScope.clone();return e.run({scope:r,isolationScope:i},()=>n(i))}function a(n,r){let i=t().scope.clone();return e.run({scope:i,isolationScope:n},()=>r(n))}function o(e){return n(t=>(t.setSDKProcessingMetadata({__SENTRY_SUPPRESS_TRACING__:!0}),e()))}ao({suppressTracing:o,withScope:n,withSetScope:r,withIsolationScope:i,withSetIsolationScope:a,getCurrentScope:()=>t().scope,getIsolationScope:()=>t().isolationScope})}function Pf(e,t,n,r){let i=0,a=[];X&&H.log(r,`Patching request.on`);let o=new WeakMap,s=n===`small`?1e3:n===`medium`?1e4:1048576;try{e.on=new Proxy(e.on,{apply:(e,t,n)=>{let[c,l,...u]=n;if(c===`data`){X&&H.log(r,`Handling request.on("data") with maximum body size of ${s}b`);let n=new Proxy(l,{apply:(e,t,n)=>{try{let e=n[0],t=Buffer.from(e);i<s?(a.push(t),i+=t.byteLength):X&&H.log(r,`Dropping request body chunk because maximum body length of ${s}b is exceeded.`)}catch{X&&H.error(r,`Encountered error while storing body chunk.`)}return Reflect.apply(e,t,n)}});return o.set(l,n),Reflect.apply(e,t,[c,n,...u])}return Reflect.apply(e,t,n)}}),e.off=new Proxy(e.off,{apply:(e,t,n)=>{let[,r]=n,i=o.get(r);if(i){o.delete(r);let a=n.slice();return a[1]=i,Reflect.apply(e,t,a)}return Reflect.apply(e,t,n)}}),e.on(`end`,()=>{try{let e=Buffer.concat(a).toString(`utf-8`);if(e){let n=Buffer.byteLength(e,`utf-8`)>s?`${Buffer.from(e).subarray(0,s-3).toString(`utf-8`)}...`:e;t.setSDKProcessingMetadata({normalizedRequest:{data:n}})}}catch(e){X&&H.error(r,`Error building captured request body`,e)}})}catch(e){X&&H.error(r,`Error patching request to capture body`,e)}}function Ff(e,t){if(!e)return t;let n=yo(e),r=yo(t);if(!r)return e;let i={...n};return Object.entries(r).forEach(([e,t])=>{i[e]||(i[e]=t)}),xo(i)}const If=`@sentry/instrumentation-http`;function Lf(e,t){let n=zf(e),r=t?.statusCode,i=zu(r);eu({category:`http`,data:{status_code:r,...n},type:`http`,level:i},{event:`response`,request:e,response:t})}function Rf(e,t){let n=Vf(e),{tracePropagationTargets:r,propagateTraceparent:i}=q()?.getOptions()||{},a=Yl(n,r,t)?Gl({propagateTraceparent:i}):void 0;if(!a)return;let{"sentry-trace":o,baggage:s,traceparent:c}=a;if(o&&!e.getHeader(`sentry-trace`))try{e.setHeader(`sentry-trace`,o),X&&H.log(If,`Added sentry-trace header to outgoing request`)}catch(e){X&&H.error(If,`Failed to add sentry-trace header to outgoing request:`,Wi(e)?e.message:`Unknown error`)}if(c&&!e.getHeader(`traceparent`))try{e.setHeader(`traceparent`,c),X&&H.log(If,`Added traceparent header to outgoing request`)}catch(e){X&&H.error(If,`Failed to add traceparent header to outgoing request:`,Wi(e)?e.message:`Unknown error`)}if(s){let t=Ff(e.getHeader(`baggage`),s);if(t)try{e.setHeader(`baggage`,t),X&&H.log(If,`Added baggage header to outgoing request`)}catch(e){X&&H.error(If,`Failed to add baggage header to outgoing request:`,Wi(e)?e.message:`Unknown error`)}}}function zf(e){try{let t=e.getHeader(`host`)||e.host,n=Vl(new URL(e.path,`${e.protocol}//${t}`).toString()),r={url:Ul(n),"http.method":e.method||`GET`};return n.search&&(r[`http.query`]=n.search),n.hash&&(r[`http.fragment`]=n.hash),r}catch{return{}}}function Bf(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function Vf(e){let t=e.getHeader(`host`)||e.host;return`${e.protocol}//${t}${e.path}`}const Hf=`Http`,Uf=new WeakSet,Wf=((e={})=>{let t={maxRequestBodySize:e.maxRequestBodySize??`medium`,ignoreRequestBody:e.ignoreRequestBody,breadcrumbs:e.breadcrumbs??!0,ignoreOutgoingRequests:e.ignoreOutgoingRequests},n=new Gu(100),r=new WeakMap;return{name:Hf,setupOnce(){at(`http.server.request.start`,(e=>{Gf(e.server,t)})),at(`http.client.request.created`,(e=>{Kf(e.request,t,n,r)})),at(`http.client.response.finish`,(e=>{let n=e;qf(n.request,n.response,t,r)})),at(`http.client.request.error`,(e=>{qf(e.request,void 0,t,r)}))}}});function Gf(e,{ignoreRequestBody:t,maxRequestBodySize:n}){let r=e.emit;if(Uf.has(r))return;let i=new Proxy(r,{apply(e,r,i){if(i[0]!==`request`||!G().getClient())return e.apply(r,i);X&&H.log(Hf,`Handling incoming request`);let a=K().clone(),o=i[1],s=Zl(o),c=o.ip||o.socket?.remoteAddress,l=o.url||`/`;n!==`none`&&!t?.(l,o)&&Pf(o,a,n,Hf),a.setSDKProcessingMetadata({normalizedRequest:s,ipAddress:c});let u=`${(o.method||`GET`).toUpperCase()} ${Hl(l)}`;return a.setTransactionName(u),lo(a,()=>{let t=s.headers?.[`sentry-trace`],n=s.headers?.baggage;return Fs({sentryTrace:Array.isArray(t)?t[0]:t,baggage:Array.isArray(n)?n[0]:n},()=>(G().getPropagationContext().propagationSpanId=Ka(),e.apply(r,i)))})}});Uf.add(i),e.emit=i}function Kf(e,t,n,r){let i=Jf(e,t);r.set(e,i),!i&&Rf(e,n)}function qf(e,t,n,r){n.breadcrumbs&&((r.get(e)??Jf(e,n))||Lf(e,t))}function Jf(e,t){if(G().getScopeData().sdkProcessingMetadata.__SENTRY_SUPPRESS_TRACING__)return!0;let{ignoreOutgoingRequests:n}=t;return n?n(`${e.protocol}//${e.getHeader(`host`)||e.host}${e.path}`,Bf(e)):!1}const Yf=`sentry-trace`,Xf=`baggage`,Zf=/baggage: (.*)\r\n/;function Qf(e,t){let n=tp(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=q()?.getOptions()||{},a=Yl(n,r,t)?Gl({propagateTraceparent:i}):void 0;if(!a)return;let{"sentry-trace":o,baggage:s,traceparent:c}=a;if(Array.isArray(e.headers)){let t=e.headers;o&&!t.includes(Yf)&&t.push(Yf,o),c&&!t.includes(`traceparent`)&&t.push(`traceparent`,c);let n=t.findIndex(e=>e===Xf);if(s&&n===-1)t.push(Xf,s);else if(s){let e=t[n+1],r=Ff(e,s);r&&(t[n+1]=r)}}else{let t=e.headers;o&&!t.includes(`${Yf}:`)&&(e.headers+=`${Yf}: ${o}\r\n`),c&&!t.includes(`traceparent:`)&&(e.headers+=`traceparent: ${c}\r\n`);let n=e.headers.match(Zf)?.[1];if(s&&!n)e.headers+=`${Xf}: ${s}\r\n`;else if(s){let t=Ff(n,s);t&&(e.headers=e.headers.replace(Zf,`baggage: ${t}\r\n`))}}}function $f(e,t){let n=ep(e),r=t.statusCode,i=zu(r);eu({category:`http`,data:{status_code:r,...n},type:`http`,level:i},{event:`response`,request:e,response:t})}function ep(e){try{let t=Vl(tp(e.origin,e.path)),n={url:Ul(t),"http.method":e.method||`GET`};return t.search&&(n[`http.query`]=t.search),t.hash&&(n[`http.fragment`]=t.hash),n}catch{return{}}}function tp(e,t=`/`){try{return new URL(t,e).toString()}catch{let n=`${e}`;return n.endsWith(`/`)&&t.startsWith(`/`)?`${n}${t.slice(1)}`:!n.endsWith(`/`)&&!t.startsWith(`/`)?`${n}/${t}`:`${n}${t}`}}const np=((e={})=>{let t={breadcrumbs:e.breadcrumbs??!0,ignoreOutgoingRequests:e.ignoreOutgoingRequests},n=new Gu(100),r=new WeakMap;return{name:`NodeFetch`,setupOnce(){at(`undici:request:create`,(e=>{rp(e.request,t,n,r)})),at(`undici:request:headers`,(e=>{let n=e;ip(n.request,n.response,t,r)}))}}});function rp(e,t,n,r){let i=ap(e,t);r.set(e,i),!i&&Qf(e,n)}function ip(e,t,n,r){n.breadcrumbs&&(r.get(e)||$f(e,t))}function ap(e,t){if(G().getScopeData().sdkProcessingMetadata.__SENTRY_SUPPRESS_TRACING__)return!0;let{ignoreOutgoingRequests:n}=t;return n?n(tp(e.origin,e.path)):!1}function op(){return[au(),ru(),bu(),Du(),gf(),Iu(),Wf(),np(),ef(),rf(),Ed(),Hd(),Qu(),qu(),uf(),Kd()]}function sp(e={}){return cp(e,op)}function cp(e={},t){let n=lp(e,t);n.debug===!0&&(X?H.enable():V(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),Nf(),G().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:e})=>e===df)&&n.integrations.push(ff({sidecarUrl:typeof n.spotlight==`string`?n.spotlight:void 0})),Wl(n,`node-light`,[`node-core`]);let r=new Ku(n);return G().setClient(r),r.init(),H.log(`SDK initialized from ${Ud()?`CommonJS`:`ESM`} (light mode)`),r.startClientReportTracking(),fp(),process.env.VERCEL&&process.on(`SIGTERM`,async()=>{await r.flush(200)}),r}function lp(e,t){let n=up(e.release),r=Mf(e.spotlight),i=dp(e.tracesSampleRate),a={...e,dsn:e.dsn??process.env.SENTRY_DSN,environment:e.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:e.sendClientReports??!0,transport:e.transport??kf,stackParser:Ti(e.stackParser||bf),release:n,tracesSampleRate:i,spotlight:r,debug:Bl(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,s=e.defaultIntegrations??t(a);return{...a,integrations:jc({defaultIntegrations:s,integrations:o})}}function up(e){if(e!==void 0)return e;let t=yf();if(t!==void 0)return t}function dp(e){if(e!==void 0)return e;let t=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!t)return;let n=parseFloat(t);return isFinite(n)?n:void 0}function fp(){if(Bl(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=Fo(e,t);G().setPropagationContext(n)}}function pp(){return ke.PRISMIC_SENTRY_ENABLED??ke.PROD}function mp(){if(ke.PRISMIC_SENTRY_ENVIRONMENT)return ke.PRISMIC_SENTRY_ENVIRONMENT;let e=me.match(/-(.+?)\./);return e?e[1]:`production`}function hp(){try{if(!pp())return;sp({dsn:ke.PRISMIC_SENTRY_DSN,release:me,environment:mp(),defaultIntegrations:!1,integrations:[],maxValueLength:2500}),_c(`Process`,{command:process.argv.join(` `),cwd:process.cwd()})}catch{}}async function gp(e){try{if(!pp())return;gc(e,e instanceof Error?{extra:{cause:e.cause,fullCommand:process.argv.join(` `)}}:{}),await bc()}catch{}}const _p=yc,vp=vc,yp=_c,bp=xe({exp:Ce(ge())});function xp(e){try{let[,t]=e.split(`.`);return t?ve(bp,JSON.parse(Buffer.from(t,`base64url`).toString())):void 0}catch{return}}const $=[`login`,`logout`,`whoami`,`sync`,`docs`],Sp=M({name:`prismic`,description:`Prismic CLI for managing repositories and configurations.`,commands:{init:{handler:gn,description:`Initialize a Prismic project`},docs:{handler:Mt,description:`Browse Prismic documentation`},gen:{handler:mn,description:`Generate files from local models`},sync:{handler:Ir,description:`Sync types and slices from Prismic`},locale:{handler:En,description:`Manage locales`},repo:{handler:Sr,description:`Manage repositories`},type:{handler:$r,description:`Manage content types`},field:{handler:dn,description:`Manage fields`},slice:{handler:Nr,description:`Manage slices`},preview:{handler:Hn,description:`Manage preview configurations`},token:{handler:Wr,description:`Manage API tokens`},webhook:{handler:si,description:`Manage webhooks`},login:{handler:Dn,description:`Log in to Prismic`},logout:{handler:kn,description:`Log out of Prismic`},whoami:{handler:ci,description:`Show the currently logged in user`}}});await Cp();async function Cp(){await Be({npmPackageName:he,statePath:Me}),Fe().catch(()=>{});let{positionals:[e],values:{version:t,help:n,repo:r=await g()}}=He({options:{version:{type:`boolean`,short:`v`},help:{type:`boolean`,short:`h`},repo:{type:`string`,short:`r`}},allowPositionals:!0,strict:!1});if(t){console.info(me);return}if(typeof r!=`string`&&(r=``),!n){hp(),await ze(),r&&(Re(r),vp(`repository`,r),yp(`Repository Data`,{name:r}));try{vp(`framework`,(await h()).id)}catch{}let t=await D();if(t){let e=await O(),n=xp(t)?.exp,r=Date.now()/1e3;(!n||n-r<=3600)&&process.on(`exit`,()=>Pe()),(!n||n>r)&&f({token:t,host:e}).then(e=>{Le({shortId:e.shortId,intercomHash:e.intercomHash}),_p({id:e.shortId})}).catch(()=>{})}e&&!$.includes(e)&&Ie(e)}try{await Sp(),e&&!$.includes(e)&&k(e)}catch(t){if(process.exitCode=1,t instanceof N){$.includes(e)||k(e),console.error(t.message);return}if(t instanceof re){$.includes(e)||k(e,{error:t}),console.error(t.message);return}if(t instanceof Ee||t instanceof De){$.includes(e)||k(e,{error:t}),console.error("Not logged in. Run `prismic login` first.");return}if(t instanceof E){$.includes(e)||k(e),console.error(t.message||`Not found. Verify the repository and any specified identifiers exist.`);return}if(t instanceof le){$.includes(e)||k(e),console.error(`${t.message} Run \`prismic init\` to re-create a config.`);return}if(t instanceof _){$.includes(e)||k(e),console.error(`${t.message} Run \`prismic init\` to create a config.`);return}if(t instanceof oe){$.includes(e)||k(e),console.error(ue`
326
+ `);if(l===-1){Rf(`have not received end of HTTP headers yet...`),a();return}let u=c.subarray(0,l).toString(`ascii`).split(`\r
327
+ `),d=u.shift();if(!d)return e.destroy(),n(Error(`No header received from proxy CONNECT response`));let f=d.split(` `),p=+(f[1]||0),m=f.slice(2).join(` `),h={};for(let t of u){if(!t)continue;let r=t.indexOf(`:`);if(r===-1)return e.destroy(),n(Error(`Invalid header from proxy CONNECT response: "${t}"`));let i=t.slice(0,r).toLowerCase(),a=t.slice(r+1).trimStart(),o=h[i];typeof o==`string`?h[i]=[o,a]:Array.isArray(o)?o.push(a):h[i]=a}Rf(`got proxy server response: %o %o`,d,h),o(),t({connect:{statusCode:p,statusText:m,headers:h},buffered:c})}e.on(`error`,c),e.on(`end`,s),a()})}function Bf(...e){W.log(`[https-proxy-agent]`,...e)}var Vf=class extends Lf{static __initStatic(){this.protocols=[`http`,`https`]}constructor(e,t){super(t),this.options={},this.proxy=typeof e==`string`?new URL(e):e,this.proxyHeaders=t?.headers??{},Bf(`Creating new HttpsProxyAgent instance: %o`,this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,``),r=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol===`https:`?443:80;this.connectOpts={ALPNProtocols:[`http/1.1`],...t?Uf(t,`headers`):null,host:n,port:r}}async connect(e,t){let{proxy:n}=this;if(!t.host)throw TypeError(`No "host" provided`);let r;if(n.protocol===`https:`){Bf("Creating `tls.Socket`: %o",this.connectOpts);let e=this.connectOpts.servername||this.connectOpts.host;r=lt.connect({...this.connectOpts,servername:e&&ct.isIP(e)?void 0:e})}else Bf("Creating `net.Socket`: %o",this.connectOpts),r=ct.connect(this.connectOpts);let i=typeof this.proxyHeaders==`function`?this.proxyHeaders():{...this.proxyHeaders},a=ct.isIPv6(t.host)?`[${t.host}]`:t.host,o=`CONNECT ${a}:${t.port} HTTP/1.1\r\n`;if(n.username||n.password){let e=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;i[`Proxy-Authorization`]=`Basic ${Buffer.from(e).toString(`base64`)}`}i.Host=`${a}:${t.port}`,i[`Proxy-Connection`]||=this.keepAlive?`Keep-Alive`:`close`;for(let e of Object.keys(i))o+=`${e}: ${i[e]}\r\n`;let s=zf(r);r.write(`${o}\r\n`);let{connect:c,buffered:l}=await s;if(e.emit(`proxyConnect`,c),this.emit(`proxyConnect`,c,e),c.statusCode===200){if(e.once(`socket`,Hf),t.secureEndpoint){Bf(`Upgrading socket connection to TLS`);let e=t.servername||t.host;return lt.connect({...Uf(t,`host`,`path`,`port`),socket:r,servername:ct.isIP(e)?void 0:e})}return r}r.destroy();let u=new ct.Socket({writable:!1});return u.readable=!0,e.once(`socket`,e=>{Bf(`Replaying proxy buffer for failed request`),e.push(l),e.push(null)}),u}};Vf.__initStatic();function Hf(e){e.resume()}function Uf(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}function Wf(e){return new Ke({read(){this.push(e),this.push(null)}})}function Gf(e){let t;try{t=new URL(e.url)}catch{return Di(()=>{console.warn(`[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.`)}),hl(e,()=>Promise.resolve({}))}let n=t.protocol===`https:`,r=Kf(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),i=n?ot:Je,a=e.keepAlive===void 0?!1:e.keepAlive,o=r?new Vf(r):new i.Agent({keepAlive:a,maxSockets:30,timeout:2e3});return hl(e,qf(e,e.httpModule??i,o))}function Kf(e,t){let{no_proxy:n}=process.env;if(!n?.split(`,`).some(t=>e.host.endsWith(t)||e.hostname.endsWith(t)))return t}function qf(e,t,n){let{hostname:r,pathname:i,port:a,protocol:o,search:s}=new URL(e.url);return function(c){return new Promise((l,u)=>{$s(()=>{let d=Wf(c.body),f={...e.headers};c.body.length>32768&&(f[`content-encoding`]=`gzip`,d=d.pipe(st()));let p=r.startsWith(`[`),m=t.request({method:`POST`,agent:n,headers:f,hostname:p?r.slice(1,-1):r,path:`${i}${s}`,port:a,protocol:o,ca:e.caCerts},e=>{e.on(`data`,()=>{}),e.on(`end`,()=>{}),e.setEncoding(`utf8`);let t=e.headers[`retry-after`]??null,n=e.headers[`x-sentry-rate-limits`]??null;l({statusCode:e.statusCode,headers:{"retry-after":t,"x-sentry-rate-limits":Array.isArray(n)?n[0]||null:n}})});m.on(`error`,u),d.pipe(m)})})}}function Jf(e){if(e===!1)return!1;if(typeof e==`string`)return e;let t=nu(process.env.SENTRY_SPOTLIGHT,{strict:!0}),n=t===null&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return e===!0?n??!0:t??n}function Yf(){let e=new ut;function t(){return e.getStore()||{scope:po(),isolationScope:mo()}}function n(n){let r=t().scope.clone(),i=t().isolationScope;return e.run({scope:r,isolationScope:i},()=>n(r))}function r(n,r){let i=t().isolationScope.clone();return e.run({scope:n,isolationScope:i},()=>r(n))}function i(n){let r=t().scope.clone(),i=t().isolationScope.clone();return e.run({scope:r,isolationScope:i},()=>n(i))}function a(n,r){let i=t().scope.clone();return e.run({scope:i,isolationScope:n},()=>r(n))}function o(e){return n(t=>(t.setSDKProcessingMetadata({__SENTRY_SUPPRESS_TRACING__:!0}),e()))}xo({suppressTracing:o,withScope:n,withSetScope:r,withIsolationScope:i,withSetIsolationScope:a,getCurrentScope:()=>t().scope,getIsolationScope:()=>t().isolationScope})}function Xf(e,t,n,r){let i=0,a=[];X&&W.log(r,`Patching request.on`);let o=new WeakMap,s=n===`small`?1e3:n===`medium`?1e4:1048576;try{e.on=new Proxy(e.on,{apply:(e,t,n)=>{let[c,l,...u]=n;if(c===`data`){X&&W.log(r,`Handling request.on("data") with maximum body size of ${s}b`);let n=new Proxy(l,{apply:(e,t,n)=>{try{let e=n[0],t=Buffer.from(e);i<s?(a.push(t),i+=t.byteLength):X&&W.log(r,`Dropping request body chunk because maximum body length of ${s}b is exceeded.`)}catch{X&&W.error(r,`Encountered error while storing body chunk.`)}return Reflect.apply(e,t,n)}});return o.set(l,n),Reflect.apply(e,t,[c,n,...u])}return Reflect.apply(e,t,n)}}),e.off=new Proxy(e.off,{apply:(e,t,n)=>{let[,r]=n,i=o.get(r);if(i){o.delete(r);let a=n.slice();return a[1]=i,Reflect.apply(e,t,a)}return Reflect.apply(e,t,n)}}),e.on(`end`,()=>{try{let e=Buffer.concat(a).toString(`utf-8`);if(e){let n=Buffer.byteLength(e,`utf-8`)>s?`${Buffer.from(e).subarray(0,s-3).toString(`utf-8`)}...`:e;t.setSDKProcessingMetadata({normalizedRequest:{data:n}})}}catch(e){X&&W.error(r,`Error building captured request body`,e)}})}catch(e){X&&W.error(r,`Error patching request to capture body`,e)}}function Zf(e,t){if(!e)return t;let n=Po(e),r=Po(t);if(!r)return e;let i={...n};return Object.entries(r).forEach(([e,t])=>{i[e]||(i[e]=t)}),Io(i)}const Qf=`@sentry/instrumentation-http`;function $f(e,t){let n=tp(e),r=t?.statusCode,i=td(r);gu({category:`http`,data:{status_code:r,...n},type:`http`,level:i},{event:`response`,request:e,response:t})}function ep(e,t){let n=rp(e),{tracePropagationTargets:r,propagateTraceparent:i}=J()?.getOptions()||{},a=du(n,r,t)?su({propagateTraceparent:i}):void 0;if(!a)return;let{"sentry-trace":o,baggage:s,traceparent:c}=a;if(o&&!e.getHeader(`sentry-trace`))try{e.setHeader(`sentry-trace`,o),X&&W.log(Qf,`Added sentry-trace header to outgoing request`)}catch(e){X&&W.error(Qf,`Failed to add sentry-trace header to outgoing request:`,ia(e)?e.message:`Unknown error`)}if(c&&!e.getHeader(`traceparent`))try{e.setHeader(`traceparent`,c),X&&W.log(Qf,`Added traceparent header to outgoing request`)}catch(e){X&&W.error(Qf,`Failed to add traceparent header to outgoing request:`,ia(e)?e.message:`Unknown error`)}if(s){let t=Zf(e.getHeader(`baggage`),s);if(t)try{e.setHeader(`baggage`,t),X&&W.log(Qf,`Added baggage header to outgoing request`)}catch(e){X&&W.error(Qf,`Failed to add baggage header to outgoing request:`,ia(e)?e.message:`Unknown error`)}}}function tp(e){try{let t=e.getHeader(`host`)||e.host,n=ru(new URL(e.path,`${e.protocol}//${t}`).toString()),r={url:au(n),"http.method":e.method||`GET`};return n.search&&(r[`http.query`]=n.search),n.hash&&(r[`http.fragment`]=n.hash),r}catch{return{}}}function np(e){return{method:e.method,protocol:e.protocol,host:e.host,hostname:e.host,path:e.path,headers:e.getHeaders()}}function rp(e){let t=e.getHeader(`host`)||e.host;return`${e.protocol}//${t}${e.path}`}const ip=`Http`,ap=new WeakSet,op=((e={})=>{let t={maxRequestBodySize:e.maxRequestBodySize??`medium`,ignoreRequestBody:e.ignoreRequestBody,breadcrumbs:e.breadcrumbs??!0,ignoreOutgoingRequests:e.ignoreOutgoingRequests},n=new sd(100),r=new WeakMap;return{name:ip,setupOnce(){$e(`http.server.request.start`,(e=>{sp(e.server,t)})),$e(`http.client.request.created`,(e=>{cp(e.request,t,n,r)})),$e(`http.client.response.finish`,(e=>{let n=e;lp(n.request,n.response,t,r)})),$e(`http.client.request.error`,(e=>{lp(e.request,void 0,t,r)}))}}});function sp(e,{ignoreRequestBody:t,maxRequestBodySize:n}){let r=e.emit;if(ap.has(r))return;let i=new Proxy(r,{apply(e,r,i){if(i[0]!==`request`||!K().getClient())return e.apply(r,i);X&&W.log(ip,`Handling incoming request`);let a=q().clone(),o=i[1],s=pu(o),c=o.ip||o.socket?.remoteAddress,l=o.url||`/`;n!==`none`&&!t?.(l,o)&&Xf(o,a,n,ip),a.setSDKProcessingMetadata({normalizedRequest:s,ipAddress:c});let u=`${(o.method||`GET`).toUpperCase()} ${iu(l)}`;return a.setTransactionName(u),To(a,()=>{let t=s.headers?.[`sentry-trace`],n=s.headers?.baggage;return Zs({sentryTrace:Array.isArray(t)?t[0]:t,baggage:Array.isArray(n)?n[0]:n},()=>(K().getPropagationContext().propagationSpanId=so(),e.apply(r,i)))})}});ap.add(i),e.emit=i}function cp(e,t,n,r){let i=up(e,t);r.set(e,i),!i&&ep(e,n)}function lp(e,t,n,r){n.breadcrumbs&&((r.get(e)??up(e,n))||$f(e,t))}function up(e,t){if(K().getScopeData().sdkProcessingMetadata.__SENTRY_SUPPRESS_TRACING__)return!0;let{ignoreOutgoingRequests:n}=t;return n?n(`${e.protocol}//${e.getHeader(`host`)||e.host}${e.path}`,np(e)):!1}const dp=`sentry-trace`,fp=`baggage`,pp=/baggage: (.*)\r\n/;function mp(e,t){let n=_p(e.origin,e.path),{tracePropagationTargets:r,propagateTraceparent:i}=J()?.getOptions()||{},a=du(n,r,t)?su({propagateTraceparent:i}):void 0;if(!a)return;let{"sentry-trace":o,baggage:s,traceparent:c}=a;if(Array.isArray(e.headers)){let t=e.headers;o&&!t.includes(dp)&&t.push(dp,o),c&&!t.includes(`traceparent`)&&t.push(`traceparent`,c);let n=t.findIndex(e=>e===fp);if(s&&n===-1)t.push(fp,s);else if(s){let e=t[n+1],r=Zf(e,s);r&&(t[n+1]=r)}}else{let t=e.headers;o&&!t.includes(`${dp}:`)&&(e.headers+=`${dp}: ${o}\r\n`),c&&!t.includes(`traceparent:`)&&(e.headers+=`traceparent: ${c}\r\n`);let n=e.headers.match(pp)?.[1];if(s&&!n)e.headers+=`${fp}: ${s}\r\n`;else if(s){let t=Zf(n,s);t&&(e.headers=e.headers.replace(pp,`baggage: ${t}\r\n`))}}}function hp(e,t){let n=gp(e),r=t.statusCode,i=td(r);gu({category:`http`,data:{status_code:r,...n},type:`http`,level:i},{event:`response`,request:e,response:t})}function gp(e){try{let t=ru(_p(e.origin,e.path)),n={url:au(t),"http.method":e.method||`GET`};return t.search&&(n[`http.query`]=t.search),t.hash&&(n[`http.fragment`]=t.hash),n}catch{return{}}}function _p(e,t=`/`){try{return new URL(t,e).toString()}catch{let n=`${e}`;return n.endsWith(`/`)&&t.startsWith(`/`)?`${n}${t.slice(1)}`:!n.endsWith(`/`)&&!t.startsWith(`/`)?`${n}/${t}`:`${n}${t}`}}const vp=((e={})=>{let t={breadcrumbs:e.breadcrumbs??!0,ignoreOutgoingRequests:e.ignoreOutgoingRequests},n=new sd(100),r=new WeakMap;return{name:`NodeFetch`,setupOnce(){$e(`undici:request:create`,(e=>{yp(e.request,t,n,r)})),$e(`undici:request:headers`,(e=>{let n=e;bp(n.request,n.response,t,r)}))}}});function yp(e,t,n,r){let i=xp(e,t);r.set(e,i),!i&&mp(e,n)}function bp(e,t,n,r){n.breadcrumbs&&(r.get(e)||hp(e,t))}function xp(e,t){if(K().getScopeData().sdkProcessingMetadata.__SENTRY_SUPPRESS_TRACING__)return!0;let{ignoreOutgoingRequests:n}=t;return n?n(_p(e.origin,e.path)):!1}function Sp(){return[xu(),yu(),Iu(),Uu(),Mf(),Qu(),op(),vp(),_f(),bf(),Hd(),af(),md(),ld(),Ef(),lf()]}function Cp(e={}){return wp(e,Sp)}function wp(e={},t){let n=Tp(e,t);n.debug===!0&&(X?W.enable():Di(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),Yf(),K().update(n.initialScope),n.spotlight&&!n.integrations.some(({name:e})=>e===Df)&&n.integrations.push(Of({sidecarUrl:typeof n.spotlight==`string`?n.spotlight:void 0})),ou(n,`node-light`,[`node-core`]);let r=new cd(n);return K().setClient(r),r.init(),W.log(`SDK initialized from ${of()?`CommonJS`:`ESM`} (light mode)`),r.startClientReportTracking(),Op(),process.env.VERCEL&&process.on(`SIGTERM`,async()=>{await r.flush(200)}),r}function Tp(e,t){let n=Ep(e.release),r=Jf(e.spotlight),i=Dp(e.tracesSampleRate),a={...e,dsn:e.dsn??process.env.SENTRY_DSN,environment:e.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:e.sendClientReports??!0,transport:e.transport??Gf,stackParser:zi(e.stackParser||If),release:n,tracesSampleRate:i,spotlight:r,debug:nu(e.debug??process.env.SENTRY_DEBUG)},o=e.integrations,s=e.defaultIntegrations??t(a);return{...a,integrations:qc({defaultIntegrations:s,integrations:o})}}function Ep(e){if(e!==void 0)return e;let t=Ff();if(t!==void 0)return t}function Dp(e){if(e!==void 0)return e;let t=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!t)return;let n=parseFloat(t);return isFinite(n)?n:void 0}function Op(){if(nu(process.env.SENTRY_USE_ENVIRONMENT)!==!1){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=Xo(e,t);K().setPropagationContext(n)}}function kp(){return Se.PRISMIC_SENTRY_ENABLED??Se.PROD}function Ap(){if(Se.PRISMIC_SENTRY_ENVIRONMENT)return Se.PRISMIC_SENTRY_ENVIRONMENT;let e=re.match(/-(.+?)\./);return e?e[1]:`production`}function jp(){try{if(!kp())return;Cp({dsn:Se.PRISMIC_SENTRY_DSN,release:re,environment:Ap(),defaultIntegrations:!1,integrations:[],maxValueLength:2500}),Nc(`Process`,{command:process.argv.join(` `),cwd:process.cwd()})}catch{}}async function Mp(e){try{if(!kp())return;Mc(e,e instanceof Error?{extra:{cause:e.cause,fullCommand:process.argv.join(` `)}}:{}),await Ic()}catch{}}const Np=Fc,Pp=Pc,Fp=Nc,$=[`login`,`logout`,`whoami`,`sync`,`docs`,`status`],Ip=M({name:`prismic`,description:`Prismic CLI for managing repositories and configurations.`,sections:{DOCUMENTATION:"\n Run `prismic docs list` to browse available documentation topics.\n Run `prismic docs view <path>` to read a topic.\n "},commands:{init:{handler:$n,description:`Initialize a Prismic project`},docs:{handler:Et,description:`Browse Prismic documentation`},gen:{handler:cn,description:`Generate files from local models`},pull:{handler:kr,description:`Pull types and slices from Prismic`},push:{handler:Ar,description:`Push types and slices to Prismic`},sync:{handler:Xr,description:`Sync types and slices from Prismic`},status:{handler:Jr,description:`Show local vs remote model differences`},locale:{handler:yr,description:`Manage locales`},repo:{handler:Ir,description:`Manage repositories`},type:{handler:ui,description:`Manage content types`},field:{handler:an,description:`Manage fields`},slice:{handler:qr,description:`Manage slices`},preview:{handler:Er,description:`Manage preview configurations`},token:{handler:ti,description:`Manage API tokens`},webhook:{handler:vi,description:`Manage webhooks`},login:{handler:br,description:`Log in to Prismic`},logout:{handler:xr,description:`Log out of Prismic`},whoami:{handler:yi,description:`Show the currently logged in user`}}});await Lp();async function Lp(){await Ne({npmPackageName:ie,statePath:Te}),Oe().catch(()=>{});let{positionals:[e],values:{version:t,help:n,repo:i=await s()}}=Fe({options:{version:{type:`boolean`,short:`v`},help:{type:`boolean`,short:`h`},repo:{type:`string`,short:`r`}},allowPositionals:!0,strict:!1});if(t){console.info(re);return}if(typeof i!=`string`&&(i=``),!n){jp(),await Me(),i&&(je(i),Pp(`repository`,i),Fp(`Repository Data`,{name:i}));try{Pp(`framework`,(await o()).id)}catch{}let t=await D();if(t){let e=await O(),n=xi(t)?.exp,i=Date.now()/1e3;(!n||n-i<=3600)&&process.on(`exit`,()=>De()),(!n||n>i)&&r({token:t,host:e}).then(e=>{Ae({shortId:e.shortId,intercomHash:e.intercomHash}),Np({id:e.shortId})}).catch(()=>{})}e&&!$.includes(e)&&ke(e)}try{await Ip(),e&&!$.includes(e)&&k(e)}catch(t){if(process.exitCode=1,t instanceof N){$.includes(e)||k(e),console.error(te(t.message));return}if(t instanceof f){$.includes(e)||k(e,{error:t}),console.error(t.message);return}if(t instanceof _e||t instanceof ve){$.includes(e)||k(e,{error:t}),console.error("Not logged in. Run `prismic login` first.");return}if(t instanceof T){$.includes(e)||k(e),console.error(t.message||`Not found. Verify the repository and any specified identifiers exist.`);return}if(t instanceof ee){$.includes(e)||k(e),console.error(`${t.message} Run \`prismic init\` to re-create a config.`);return}if(t instanceof c){$.includes(e)||k(e),console.error(`${t.message} Run \`prismic init\` to create a config.`);return}if(t instanceof p){$.includes(e)||k(e),console.error(te`
191
328
  This command requires the Type Builder in your repository.
192
329
 
193
330
  As of March 2026, the Type Builder is rolling out incrementally as Slice
@@ -195,4 +332,4 @@ import{A as e,B as t,C as n,D as r,E as i,F as a,I as o,M as s,N as c,O as l,P a
195
332
  Slice Machine until your repository can upgrade.
196
333
 
197
334
  Learn more at https://prismic.io/docs/type-builder
198
- `);return}throw $.includes(e)||k(e,{error:t}),await gp(t),t}}export{};
335
+ `);return}throw $.includes(e)||k(e,{error:t}),await Mp(t),t}}export{};