@upstart.gg/sdk 0.0.71 → 0.0.73

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.
Files changed (57) hide show
  1. package/dist/node/cli/api.js +1 -1
  2. package/dist/node/cli/commands/login/cmd-login.js +1 -1
  3. package/dist/node/cli/commands/publish/cmd-publish.js +1 -1
  4. package/dist/node/cli/commands/publish/uploader.js +1 -1
  5. package/dist/node/cli/is-logged-in.js +1 -1
  6. package/dist/node/cli/program.js +1 -1
  7. package/dist/node/shared/config.js +1 -1
  8. package/dist/node/shared/logger.js +1 -1
  9. package/dist/shared/attributes.d.ts +8 -21
  10. package/dist/shared/attributes.d.ts.map +1 -1
  11. package/dist/shared/attributes.js +1 -1
  12. package/dist/shared/chunk-KBZEUEEY.js +3 -0
  13. package/dist/shared/{chunk-EK4FWGFA.js → chunk-YTITIU5G.js} +1 -1
  14. package/dist/shared/datarecords/external/airtable/options.d.ts +9 -0
  15. package/dist/shared/datarecords/external/airtable/options.d.ts.map +1 -0
  16. package/dist/shared/datarecords/external/generic-webhook/options.d.ts +7 -0
  17. package/dist/shared/datarecords/external/generic-webhook/options.d.ts.map +1 -0
  18. package/dist/shared/datarecords/external/google/oauth/config.d.ts +27 -0
  19. package/dist/shared/datarecords/external/google/oauth/config.d.ts.map +1 -0
  20. package/dist/shared/datarecords/external/google/oauth/config.js +3 -0
  21. package/dist/shared/datarecords/external/google/sheets/options.d.ts +7 -0
  22. package/dist/shared/datarecords/external/google/sheets/options.d.ts.map +1 -0
  23. package/dist/shared/datarecords/types.d.ts +44 -0
  24. package/dist/shared/datarecords/types.d.ts.map +1 -0
  25. package/dist/shared/datarecords/types.js +3 -0
  26. package/dist/shared/datarecords.d.ts +3 -0
  27. package/dist/shared/datarecords.d.ts.map +1 -0
  28. package/dist/shared/datarecords.js +3 -0
  29. package/dist/shared/datasources/external/json/fetcher.d.ts.map +1 -1
  30. package/dist/shared/datasources/external/rss/fetcher.d.ts.map +1 -1
  31. package/dist/shared/datasources/fetcher.d.ts +2 -2
  32. package/dist/shared/datasources/fetcher.d.ts.map +1 -1
  33. package/dist/shared/datasources/internal/blog/schema.d.ts +20 -0
  34. package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -0
  35. package/dist/shared/datasources/internal/changelog/schema.d.ts +12 -0
  36. package/dist/shared/datasources/internal/changelog/schema.d.ts.map +1 -0
  37. package/dist/shared/datasources/internal/contact-info/schema.d.ts +8 -4
  38. package/dist/shared/datasources/internal/contact-info/schema.d.ts.map +1 -1
  39. package/dist/shared/datasources/internal/faq/schema.d.ts +3 -2
  40. package/dist/shared/datasources/internal/faq/schema.d.ts.map +1 -1
  41. package/dist/shared/datasources/internal/links/schema.d.ts +2 -2
  42. package/dist/shared/datasources/internal/links/schema.d.ts.map +1 -1
  43. package/dist/shared/datasources/internal/recipes/schema.d.ts +16 -0
  44. package/dist/shared/datasources/internal/recipes/schema.d.ts.map +1 -0
  45. package/dist/shared/datasources/types.d.ts +37 -41
  46. package/dist/shared/datasources/types.d.ts.map +1 -1
  47. package/dist/shared/datasources/types.js +3 -0
  48. package/dist/shared/datasources/utils.d.ts +2 -0
  49. package/dist/shared/datasources/utils.d.ts.map +1 -1
  50. package/dist/shared/datasources.d.ts +0 -1
  51. package/dist/shared/datasources.d.ts.map +1 -1
  52. package/dist/shared/datasources.js +1 -1
  53. package/dist/shared/page.d.ts +49 -55
  54. package/dist/shared/page.d.ts.map +1 -1
  55. package/dist/shared/page.js +1 -1
  56. package/dist/shared/tests/test-config.d.ts.map +1 -1
  57. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- import{createLogger as E}from"vite";var g="0.0.71";import i from"chalk";function h(e,t,o=!1){let s=E(e==="debug"?"info":e,{prefix:"[enpage]",allowClearScreen:t});return o&&s.info(i.hex("#7270c6").bold(`\u{1F680} Enpage v${g}
3
+ import{createLogger as E}from"vite";var g="0.0.73";import i from"chalk";function h(e,t,o=!1){let s=E(e==="debug"?"info":e,{prefix:"[enpage]",allowClearScreen:t});return o&&s.info(i.hex("#7270c6").bold(`\u{1F680} Enpage v${g}
4
4
  `)),{...s,success:(r,n)=>s.info(i.green(r),n),error:(r,n)=>s.error(i.red(r),n),warn:(r,n)=>s.warn(i.yellow(r),n),warnOnce:(r,n)=>s.warnOnce(i.yellow(r),n),debug:(r,n)=>{e==="debug"&&s.info(i.gray(r),n)}}}var p=h();var m="enpage-cli";var I=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",u=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",b=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co";import T from"conf";import c from"node:path";import _ from"node:crypto";import a from"node:fs";import{fileURLToPath as L}from"node:url";import F from"chalk";var x=L(new URL(".",import.meta.url)),R=P(),d=new T({projectName:m,encryptionKey:R,clearInvalidConfig:!0});function O(){let e=x;for(;e!==c.parse(e).root;){let t=c.join(e,"node_modules");if(a.existsSync(t))return t;e=c.dirname(e)}return null}function P(){let e=O();if(!e)throw new Error("Could not find nearest node_modules directory.");let t=c.join(e,".enpage-tmp");a.existsSync(t)||a.mkdirSync(t,{recursive:!0,mode:448});let o=c.join(t,".enpage-key");if(!a.existsSync(o)){let r=_.randomBytes(32).toString("hex");return a.writeFileSync(o,r,{mode:384,flush:!0}),r}return a.readFileSync(o,"utf8")}async function J(e,t,o={}){d.get("access_token")&&(o.Authorization=`Bearer ${d.get("access_token")}`);let s=await fetch(l(e),{method:"POST",headers:{"Content-Type":t instanceof URLSearchParams?"application/x-www-form-urlencoded":"application/json",...o},body:t instanceof URLSearchParams?t:JSON.stringify(t)}).catch(r=>{p.error(`Fatal Error requesting API: ${r.message} (${r.cause.code})`),p.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return y(s)}async function K(e,t={}){d.get("access_token")&&(t.Authorization=`Bearer ${d.get("access_token")}`);let o=await fetch(l(e),{headers:t,method:"GET"}).catch(s=>{p.error(`Fatal Error requesting API: ${s.message} (${s.cause.code})`),p.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return y(o)}function l(e){let t=new URL(u.endsWith("/")?u:`${u}/`);return new URL(e,t)}async function y(e){let t=e.headers.get("content-type")?.startsWith("application/json")?await e.json():await e.text();return e.ok?{isSuccess:!0,isError:!1,status:e.status,statusText:e.statusText,data:t}:{isSuccess:!1,isError:!0,status:e.status,statusText:e.statusText,data:t}}export{K as get,J as post};
@@ -1,6 +1,6 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- import I from"chalk";import{confirm as b}from"@inquirer/prompts";import A from"open";var f="enpage-cli";var g=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",u=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",j=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co";var _="oauth/devicecode",E="oauth/token";import{createLogger as L}from"vite";var h="0.0.71";import i from"chalk";function x(t,e,n=!1){let o=L(t==="debug"?"info":t,{prefix:"[enpage]",allowClearScreen:e});return n&&o.info(i.hex("#7270c6").bold(`\u{1F680} Enpage v${h}
3
+ import I from"chalk";import{confirm as b}from"@inquirer/prompts";import A from"open";var f="enpage-cli";var g=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",u=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",j=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co";var _="oauth/devicecode",E="oauth/token";import{createLogger as L}from"vite";var h="0.0.73";import i from"chalk";function x(t,e,n=!1){let o=L(t==="debug"?"info":t,{prefix:"[enpage]",allowClearScreen:e});return n&&o.info(i.hex("#7270c6").bold(`\u{1F680} Enpage v${h}
4
4
  `)),{...o,success:(r,s)=>o.info(i.green(r),s),error:(r,s)=>o.error(i.red(r),s),warn:(r,s)=>o.warn(i.yellow(r),s),warnOnce:(r,s)=>o.warnOnce(i.yellow(r),s),debug:(r,s)=>{t==="debug"&&o.info(i.gray(r),s)}}}var m=x();import R from"conf";import c from"node:path";import O from"node:crypto";import a from"node:fs";import{fileURLToPath as v}from"node:url";import Q from"chalk";var w=v(new URL(".",import.meta.url)),k=C(),p=new R({projectName:f,encryptionKey:k,clearInvalidConfig:!0});function P(){let t=w;for(;t!==c.parse(t).root;){let e=c.join(t,"node_modules");if(a.existsSync(e))return e;t=c.dirname(t)}return null}function C(){let t=P();if(!t)throw new Error("Could not find nearest node_modules directory.");let e=c.join(t,".enpage-tmp");a.existsSync(e)||a.mkdirSync(e,{recursive:!0,mode:448});let n=c.join(e,".enpage-key");if(!a.existsSync(n)){let r=O.randomBytes(32).toString("hex");return a.writeFileSync(n,r,{mode:384,flush:!0}),r}return a.readFileSync(n,"utf8")}async function l(t,e,n={}){p.get("access_token")&&(n.Authorization=`Bearer ${p.get("access_token")}`);let o=await fetch(N(t),{method:"POST",headers:{"Content-Type":e instanceof URLSearchParams?"application/x-www-form-urlencoded":"application/json",...n},body:e instanceof URLSearchParams?e:JSON.stringify(e)}).catch(r=>{m.error(`Fatal Error requesting API: ${r.message} (${r.cause.code})`),m.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return S(o)}function N(t){let e=new URL(u.endsWith("/")?u:`${u}/`);return new URL(t,e)}async function S(t){let e=t.headers.get("content-type")?.startsWith("application/json")?await t.json():await t.text();return t.ok?{isSuccess:!0,isError:!1,status:t.status,statusText:t.statusText,data:e}:{isSuccess:!1,isError:!0,status:t.status,statusText:t.statusText,data:e}}async function D(t,e){for(;;){let n=new URLSearchParams({grant_type:"device_code",device_code:t,client_id:g}),o=await l(E,n),{data:r,isSuccess:s}=o;if(s)return r;if(r.error==="authorization_pending")await new Promise(y=>setTimeout(y,5e3));else return e.error(`Error while polling for login: ${r.error_description??r.error}`),!1}}async function de({options:t,logger:e}){e.info(`Logging in to Enpage...
5
5
  `);let{isError:n,data:o}=await l(_,{client_id:g,scope:"profile,templates:publish"});n&&(e.error("Failed to get device code. Please try again."),e.error(`Error: ${o.error_description??o.error}`),process.exit(1));let{verification_uri:r,device_code:s}=o;await b({message:"Would you like to open the login page in your browser?",default:!0}).catch(U=>{process.exit(0)})?A(r):e.info(`
6
6
  Please visit the following URL to login:
@@ -1,6 +1,6 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- var ye=Object.defineProperty;var b=(e,t)=>()=>(e&&(t=e(e=0)),t);var he=(e,t)=>{for(var r in t)ye(e,r,{get:t[r],enumerable:!0})};function F(){let e;if(process.env.npm_config_user_agent){let t=process.env.npm_config_user_agent.split(" ")[0];e=t.slice(0,t.lastIndexOf("/"))}return e||(console.log("Warning: could not detect package manager"),e="npm"),e}function J(e){return`[${e.error}]${e.error_description?`: ${e.error_description}`:""}`}var q=b(()=>{"use strict"});var X,ft,x,yt,Y,K,V,R=b(()=>{"use strict";X="enpage-cli",ft=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",x=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",yt=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co",Y=10,K="oauth/userinfo",V="v1/templates"});import Se from"conf";import v from"node:path";import Ee from"node:crypto";import A from"node:fs";import{fileURLToPath as Te}from"node:url";import Pe from"chalk";function Q(){let e=y.get("access_token");if(!e){let t=F();throw new Error(`Access token not found. Please run ${Pe.cyan(`${t} run enpage:login`)} to authenticate.`)}return e}function _e(){let e=xe;for(;e!==v.parse(e).root;){let t=v.join(e,"node_modules");if(A.existsSync(t))return t;e=v.dirname(e)}return null}function be(){let e=_e();if(!e)throw new Error("Could not find nearest node_modules directory.");let t=v.join(e,".enpage-tmp");A.existsSync(t)||A.mkdirSync(t,{recursive:!0,mode:448});let r=v.join(t,".enpage-key");if(!A.existsSync(r)){let s=Ee.randomBytes(32).toString("hex");return A.writeFileSync(r,s,{mode:384,flush:!0}),s}return A.readFileSync(r,"utf8")}var xe,we,y,G=b(()=>{"use strict";R();q();xe=Te(new URL(".",import.meta.url)),we=be(),y=new Se({projectName:X,encryptionKey:we,clearInvalidConfig:!0})});var ee,Z=b(()=>{ee="0.0.71"});import{createLogger as Ae}from"vite";import O from"chalk";function Oe(e,t,r=!1){let o=Ae(e==="debug"?"info":e,{prefix:"[enpage]",allowClearScreen:t});return r&&o.info(O.hex("#7270c6").bold(`\u{1F680} Enpage v${ee}
3
+ var ye=Object.defineProperty;var b=(e,t)=>()=>(e&&(t=e(e=0)),t);var he=(e,t)=>{for(var r in t)ye(e,r,{get:t[r],enumerable:!0})};function F(){let e;if(process.env.npm_config_user_agent){let t=process.env.npm_config_user_agent.split(" ")[0];e=t.slice(0,t.lastIndexOf("/"))}return e||(console.log("Warning: could not detect package manager"),e="npm"),e}function J(e){return`[${e.error}]${e.error_description?`: ${e.error_description}`:""}`}var q=b(()=>{"use strict"});var X,ft,x,yt,Y,K,V,R=b(()=>{"use strict";X="enpage-cli",ft=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",x=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",yt=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co",Y=10,K="oauth/userinfo",V="v1/templates"});import Se from"conf";import v from"node:path";import Ee from"node:crypto";import A from"node:fs";import{fileURLToPath as Te}from"node:url";import Pe from"chalk";function Q(){let e=y.get("access_token");if(!e){let t=F();throw new Error(`Access token not found. Please run ${Pe.cyan(`${t} run enpage:login`)} to authenticate.`)}return e}function _e(){let e=xe;for(;e!==v.parse(e).root;){let t=v.join(e,"node_modules");if(A.existsSync(t))return t;e=v.dirname(e)}return null}function be(){let e=_e();if(!e)throw new Error("Could not find nearest node_modules directory.");let t=v.join(e,".enpage-tmp");A.existsSync(t)||A.mkdirSync(t,{recursive:!0,mode:448});let r=v.join(t,".enpage-key");if(!A.existsSync(r)){let s=Ee.randomBytes(32).toString("hex");return A.writeFileSync(r,s,{mode:384,flush:!0}),s}return A.readFileSync(r,"utf8")}var xe,we,y,G=b(()=>{"use strict";R();q();xe=Te(new URL(".",import.meta.url)),we=be(),y=new Se({projectName:X,encryptionKey:we,clearInvalidConfig:!0})});var ee,Z=b(()=>{ee="0.0.73"});import{createLogger as Ae}from"vite";import O from"chalk";function Oe(e,t,r=!1){let o=Ae(e==="debug"?"info":e,{prefix:"[enpage]",allowClearScreen:t});return r&&o.info(O.hex("#7270c6").bold(`\u{1F680} Enpage v${ee}
4
4
  `)),{...o,success:(s,n)=>o.info(O.green(s),n),error:(s,n)=>o.error(O.red(s),n),warn:(s,n)=>o.warn(O.yellow(s),n),warnOnce:(s,n)=>o.warnOnce(O.yellow(s),n),debug:(s,n)=>{e==="debug"&&o.info(O.gray(s),n)}}}var g,M=b(()=>{"use strict";Z();g=Oe()});var ne={};he(ne,{get:()=>Ge,post:()=>N});async function N(e,t,r={}){y.get("access_token")&&(r.Authorization=`Bearer ${y.get("access_token")}`);let o=await fetch(oe(e),{method:"POST",headers:{"Content-Type":t instanceof URLSearchParams?"application/x-www-form-urlencoded":"application/json",...r},body:t instanceof URLSearchParams?t:JSON.stringify(t)}).catch(s=>{g.error(`Fatal Error requesting API: ${s.message} (${s.cause.code})`),g.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return se(o)}async function Ge(e,t={}){y.get("access_token")&&(t.Authorization=`Bearer ${y.get("access_token")}`);let r=await fetch(oe(e),{headers:t,method:"GET"}).catch(o=>{g.error(`Fatal Error requesting API: ${o.message} (${o.cause.code})`),g.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return se(r)}function oe(e){let t=new URL(x.endsWith("/")?x:`${x}/`);return new URL(e,t)}async function se(e){let t=e.headers.get("content-type")?.startsWith("application/json")?await e.json():await e.text();return e.ok?{isSuccess:!0,isError:!1,status:e.status,statusText:e.statusText,data:t}:{isSuccess:!1,isError:!0,status:e.status,statusText:e.statusText,data:t}}var W=b(()=>{"use strict";M();R();G()});q();G();import{resolve as h}from"node:path";import{existsSync as D,readFileSync as pt,writeFileSync as lt}from"node:fs";import T from"chalk";R();M();import I from"node:path";import j from"node:fs";import Me from"node:crypto";import Be from"fast-glob";import ae from"node:http";import ze from"node:https";import{pipeline as We}from"node:stream";import ie from"chalk";import qe from"form-data";import*as B from"node:fs";var ke=/[<>"|?*\n\r\t\f\x00-\x1F]/,$e=/(?:^|\/)[*]{2}($|\/)/,Le=248,Ce=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Ue=e=>typeof e=="string"&&e.length<=Le&&!ke.test(e),ve=e=>e.split(/\r\n?|\n/);var Ne=e=>Ce(e)&&Array.isArray(e.patterns)&&Array.isArray(e.sections);var z=(e,t={})=>{let r=t.path;if(Ne(e))return e;Ue(e)&&B.existsSync(e)&&(r=e,e=B.readFileSync(e,"utf8"));let o=ve(e),s=new Map,n={sections:[],patterns:[]},c={name:"default",patterns:[]},i=null;for(let a of o){let p=a.trim();if(p.startsWith("#")){let[,d]=/^#+\s*(.*)\s*$/.exec(p)||[];if(i){s.delete(i.name),i.comment=i.comment?`${i.comment}
5
5
  ${p}`:p,i.name=d?`${i.name.trim()}
6
6
  ${d.trim()}`:i.name.trim(),s.set(i.name.toLowerCase().trim(),i);continue}c={name:d?.trim()||"",comment:p,patterns:[]},s.set(c.name.toLowerCase(),c),n.sections.push(c),i=c;continue}p!==""&&(c.patterns.push(p),n.patterns.push(p)),i=null}return(t.dedupe===!0||t.unique===!0)&&(n=te(n,{...t,format:!1})),n.path=r,n.input=Buffer.from(e),n.format=a=>Fe(n,{...t,...a}),n.dedupe=a=>te(n,{...t,...a}),n.globs=a=>je(n,{path:r,...t,...a}),n};var te=(e,t)=>{let r=z(e,{...t,dedupe:!1}),o=new Map,s={sections:[],patterns:[]},n;for(let c of r.sections){let{name:i="",comment:a,patterns:p}=c,d=i.trim().toLowerCase();for(let f of p)s.patterns.includes(f)||s.patterns.push(f);i&&o.has(d)?(n=o.get(d),n.patterns=[...n.patterns,...p]):(n={name:i,comment:a,patterns:p},s.sections.push(n),o.set(d,n))}for(let c of s.sections)c.patterns=[...new Set(c.patterns)];return s},Ie=e=>{if($e.test(e))return e;let t=!1;return e.startsWith("/")?(e=e.slice(1),t=!0):e.slice(1,e.length-1).includes("/")&&(t=!0),e+=e.endsWith("/")?"**/":"/**",t?e:`**/${e}`},je=(e,t={})=>{let r=z(e,t),o=[],s=0,n=r.patterns.concat(t.ignore||[]).concat((t.unignore||[]).map(i=>i.startsWith("!")?i:`!${i}`)),c=(i,a)=>{let p=o[o.length-1],d=i?"unignore":"ignore";p&&p.type===d?p.patterns.includes(a)||p.patterns.push(a):(o.push({type:d,path:t.path||null,patterns:[a],index:s}),s++)};for(let i of n){let a="";i.startsWith("!")&&(i=i.slice(1),a="!"),c(a,i.startsWith("/")?i.slice(1):i),c(a,Ie(i))}return o},De=(e={name:"",patterns:[]})=>{let t=[e.comment||""];return e.patterns?.length&&(t.push(e.patterns.join(`
@@ -1,6 +1,6 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- import L from"node:path";import U from"node:fs";import ge from"node:crypto";import me from"fast-glob";var N="enpage-cli";var Oe=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",y=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",Ae=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co",I=10;import B from"node:http";import fe from"node:https";import{pipeline as ye}from"node:stream";import{createLogger as q}from"vite";var D="0.0.71";import _ from"chalk";function H(e,t,n=!1){let i=q(e==="debug"?"info":e,{prefix:"[enpage]",allowClearScreen:t});return n&&i.info(_.hex("#7270c6").bold(`\u{1F680} Enpage v${D}
3
+ import L from"node:path";import U from"node:fs";import ge from"node:crypto";import me from"fast-glob";var N="enpage-cli";var Oe=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",y=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",Ae=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co",I=10;import B from"node:http";import fe from"node:https";import{pipeline as ye}from"node:stream";import{createLogger as q}from"vite";var D="0.0.73";import _ from"chalk";function H(e,t,n=!1){let i=q(e==="debug"?"info":e,{prefix:"[enpage]",allowClearScreen:t});return n&&i.info(_.hex("#7270c6").bold(`\u{1F680} Enpage v${D}
4
4
  `)),{...i,success:(r,s)=>i.info(_.green(r),s),error:(r,s)=>i.error(_.red(r),s),warn:(r,s)=>i.warn(_.yellow(r),s),warnOnce:(r,s)=>i.warnOnce(_.yellow(r),s),debug:(r,s)=>{e==="debug"&&i.info(_.gray(r),s)}}}var g=H();import z from"chalk";import he from"form-data";import*as C from"node:fs";var X=/[<>"|?*\n\r\t\f\x00-\x1F]/,J=/(?:^|\/)[*]{2}($|\/)/,V=248,K=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Y=e=>typeof e=="string"&&e.length<=V&&!X.test(e),Q=e=>e.split(/\r\n?|\n/);var Z=e=>K(e)&&Array.isArray(e.patterns)&&Array.isArray(e.sections);var k=(e,t={})=>{let n=t.path;if(Z(e))return e;Y(e)&&C.existsSync(e)&&(n=e,e=C.readFileSync(e,"utf8"));let i=Q(e),r=new Map,s={sections:[],patterns:[]},c={name:"default",patterns:[]},o=null;for(let a of i){let p=a.trim();if(p.startsWith("#")){let[,u]=/^#+\s*(.*)\s*$/.exec(p)||[];if(o){r.delete(o.name),o.comment=o.comment?`${o.comment}
5
5
  ${p}`:p,o.name=u?`${o.name.trim()}
6
6
  ${u.trim()}`:o.name.trim(),r.set(o.name.toLowerCase().trim(),o);continue}c={name:u?.trim()||"",comment:p,patterns:[]},r.set(c.name.toLowerCase(),c),s.sections.push(c),o=c;continue}p!==""&&(c.patterns.push(p),s.patterns.push(p)),o=null}return(t.dedupe===!0||t.unique===!0)&&(s=G(s,{...t,format:!1})),s.path=n,s.input=Buffer.from(e),s.format=a=>se(s,{...t,...a}),s.dedupe=a=>G(s,{...t,...a}),s.globs=a=>te(s,{path:n,...t,...a}),s};var G=(e,t)=>{let n=k(e,{...t,dedupe:!1}),i=new Map,r={sections:[],patterns:[]},s;for(let c of n.sections){let{name:o="",comment:a,patterns:p}=c,u=o.trim().toLowerCase();for(let h of p)r.patterns.includes(h)||r.patterns.push(h);o&&i.has(u)?(s=i.get(u),s.patterns=[...s.patterns,...p]):(s={name:o,comment:a,patterns:p},r.sections.push(s),i.set(u,s))}for(let c of r.sections)c.patterns=[...new Set(c.patterns)];return r},ee=e=>{if(J.test(e))return e;let t=!1;return e.startsWith("/")?(e=e.slice(1),t=!0):e.slice(1,e.length-1).includes("/")&&(t=!0),e+=e.endsWith("/")?"**/":"/**",t?e:`**/${e}`},te=(e,t={})=>{let n=k(e,t),i=[],r=0,s=n.patterns.concat(t.ignore||[]).concat((t.unignore||[]).map(o=>o.startsWith("!")?o:`!${o}`)),c=(o,a)=>{let p=i[i.length-1],u=o?"unignore":"ignore";p&&p.type===u?p.patterns.includes(a)||p.patterns.push(a):(i.push({type:u,path:t.path||null,patterns:[a],index:r}),r++)};for(let o of s){let a="";o.startsWith("!")&&(o=o.slice(1),a="!"),c(a,o.startsWith("/")?o.slice(1):o),c(a,ee(o))}return i},re=(e={name:"",patterns:[]})=>{let t=[e.comment||""];return e.patterns?.length&&(t.push(e.patterns.join(`
@@ -1,4 +1,4 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- var O=Object.defineProperty;var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var S=(e,t)=>{for(var s in t)O(e,s,{get:t[s],enumerable:!0})};var y,F,g,M,f,m=p(()=>{"use strict";y="enpage-cli",F=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",g=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",M=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co",f="oauth/userinfo"});import k from"conf";import u from"node:path";import N from"node:crypto";import a from"node:fs";import{fileURLToPath as P}from"node:url";import X from"chalk";function I(){let e=w;for(;e!==u.parse(e).root;){let t=u.join(e,"node_modules");if(a.existsSync(t))return t;e=u.dirname(e)}return null}function b(){let e=I();if(!e)throw new Error("Could not find nearest node_modules directory.");let t=u.join(e,".enpage-tmp");a.existsSync(t)||a.mkdirSync(t,{recursive:!0,mode:448});let s=u.join(t,".enpage-key");if(!a.existsSync(s)){let r=N.randomBytes(32).toString("hex");return a.writeFileSync(s,r,{mode:384,flush:!0}),r}return a.readFileSync(s,"utf8")}var w,v,i,l=p(()=>{"use strict";m();w=P(new URL(".",import.meta.url)),v=b(),i=new k({projectName:y,encryptionKey:v,clearInvalidConfig:!0})});var h,E=p(()=>{h="0.0.71"});import{createLogger as U}from"vite";import c from"chalk";function C(e,t,s=!1){let o=U(e==="debug"?"info":e,{prefix:"[enpage]",allowClearScreen:t});return s&&o.info(c.hex("#7270c6").bold(`\u{1F680} Enpage v${h}
3
+ var O=Object.defineProperty;var p=(e,t)=>()=>(e&&(t=e(e=0)),t);var S=(e,t)=>{for(var s in t)O(e,s,{get:t[s],enumerable:!0})};var y,F,g,M,f,m=p(()=>{"use strict";y="enpage-cli",F=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",g=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",M=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co",f="oauth/userinfo"});import k from"conf";import u from"node:path";import N from"node:crypto";import a from"node:fs";import{fileURLToPath as P}from"node:url";import X from"chalk";function I(){let e=w;for(;e!==u.parse(e).root;){let t=u.join(e,"node_modules");if(a.existsSync(t))return t;e=u.dirname(e)}return null}function b(){let e=I();if(!e)throw new Error("Could not find nearest node_modules directory.");let t=u.join(e,".enpage-tmp");a.existsSync(t)||a.mkdirSync(t,{recursive:!0,mode:448});let s=u.join(t,".enpage-key");if(!a.existsSync(s)){let r=N.randomBytes(32).toString("hex");return a.writeFileSync(s,r,{mode:384,flush:!0}),r}return a.readFileSync(s,"utf8")}var w,v,i,l=p(()=>{"use strict";m();w=P(new URL(".",import.meta.url)),v=b(),i=new k({projectName:y,encryptionKey:v,clearInvalidConfig:!0})});var h,E=p(()=>{h="0.0.73"});import{createLogger as U}from"vite";import c from"chalk";function C(e,t,s=!1){let o=U(e==="debug"?"info":e,{prefix:"[enpage]",allowClearScreen:t});return s&&o.info(c.hex("#7270c6").bold(`\u{1F680} Enpage v${h}
4
4
  `)),{...o,success:(r,n)=>o.info(c.green(r),n),error:(r,n)=>o.error(c.red(r),n),warn:(r,n)=>o.warn(c.yellow(r),n),warnOnce:(r,n)=>o.warnOnce(c.yellow(r),n),debug:(r,n)=>{e==="debug"&&o.info(c.gray(r),n)}}}var d,_=p(()=>{"use strict";E();d=C()});var x={};S(x,{get:()=>j,post:()=>D});async function D(e,t,s={}){i.get("access_token")&&(s.Authorization=`Bearer ${i.get("access_token")}`);let o=await fetch(T(e),{method:"POST",headers:{"Content-Type":t instanceof URLSearchParams?"application/x-www-form-urlencoded":"application/json",...s},body:t instanceof URLSearchParams?t:JSON.stringify(t)}).catch(r=>{d.error(`Fatal Error requesting API: ${r.message} (${r.cause.code})`),d.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return L(o)}async function j(e,t={}){i.get("access_token")&&(t.Authorization=`Bearer ${i.get("access_token")}`);let s=await fetch(T(e),{headers:t,method:"GET"}).catch(o=>{d.error(`Fatal Error requesting API: ${o.message} (${o.cause.code})`),d.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return L(s)}function T(e){let t=new URL(g.endsWith("/")?g:`${g}/`);return new URL(e,t)}async function L(e){let t=e.headers.get("content-type")?.startsWith("application/json")?await e.json():await e.text();return e.ok?{isSuccess:!0,isError:!1,status:e.status,statusText:e.statusText,data:t}:{isSuccess:!1,isError:!0,status:e.status,statusText:e.statusText,data:t}}var R=p(()=>{"use strict";_();m();l()});m();l();async function ce(e=!1){let t=i.get("access_token"),s=i.get("expires_at");if(!t)return!1;if(s&&s<Date.now())return console.log("Seems like your token expired..."),!1;if(!e)return!0;let{get:o}=await Promise.resolve().then(()=>(R(),x)),{isSuccess:r}=await o(f);return r}export{ce as isLoggedIn};
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
3
3
 
4
- var Ur=Object.create;var ze=Object.defineProperty;var $r=Object.getOwnPropertyDescriptor;var Wr=Object.getOwnPropertyNames;var Br=Object.getPrototypeOf,zr=Object.prototype.hasOwnProperty;var pt=(i,t)=>()=>(i&&(t=i(i=0)),t);var _s=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Gr=(i,t)=>{for(var e in t)ze(i,e,{get:t[e],enumerable:!0})},Hr=(i,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Wr(t))!zr.call(i,r)&&r!==e&&ze(i,r,{get:()=>t[r],enumerable:!(s=$r(t,r))||s.enumerable});return i};var qr=(i,t,e)=>(e=i!=null?Ur(Br(i)):{},Hr(t||!i||!i.__esModule?ze(e,"default",{value:i,enumerable:!0}):e,i));function ae(){let i;if(process.env.npm_config_user_agent){let t=process.env.npm_config_user_agent.split(" ")[0];i=t.slice(0,t.lastIndexOf("/"))}return i||(console.log("Warning: could not detect package manager"),i="npm"),i}function ks(i){return`[${i.error}]${i.error_description?`: ${i.error_description}`:""}`}var Ge=pt(()=>{"use strict"});var Ns,He,lt,Ec,Ds,Ps,Ls,Fs,Ms,ft=pt(()=>{"use strict";Ns="enpage-cli",He=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",lt=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",Ec=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co",Ds=10,Ps="oauth/devicecode",Ls="oauth/token",Fs="oauth/userinfo",Ms="v1/templates"});import Vr from"conf";import It from"node:path";import Kr from"node:crypto";import mt from"node:fs";import{fileURLToPath as Yr}from"node:url";import Jr from"chalk";function Is(){let i=M.get("access_token");if(!i){let t=ae();throw new Error(`Access token not found. Please run ${Jr.cyan(`${t} run enpage:login`)} to authenticate.`)}return i}function Qr(){let i=Xr;for(;i!==It.parse(i).root;){let t=It.join(i,"node_modules");if(mt.existsSync(t))return t;i=It.dirname(i)}return null}function tn(){let i=Qr();if(!i)throw new Error("Could not find nearest node_modules directory.");let t=It.join(i,".enpage-tmp");mt.existsSync(t)||mt.mkdirSync(t,{recursive:!0,mode:448});let e=It.join(t,".enpage-key");if(!mt.existsSync(e)){let r=Kr.randomBytes(32).toString("hex");return mt.writeFileSync(e,r,{mode:384,flush:!0}),r}return mt.readFileSync(e,"utf8")}var Xr,Zr,M,gt=pt(()=>{"use strict";ft();Ge();Xr=Yr(new URL(".",import.meta.url)),Zr=tn(),M=new Vr({projectName:Ns,encryptionKey:Zr,clearInvalidConfig:!0})});var Us,js=pt(()=>{Us="0.0.71"});import{createLogger as sn}from"vite";import wt from"chalk";function qe(i,t,e=!1){let s=sn(i==="debug"?"info":i,{prefix:"[enpage]",allowClearScreen:t});return e&&s.info(wt.hex("#7270c6").bold(`\u{1F680} Enpage v${Us}
4
+ var Ur=Object.create;var ze=Object.defineProperty;var $r=Object.getOwnPropertyDescriptor;var Wr=Object.getOwnPropertyNames;var Br=Object.getPrototypeOf,zr=Object.prototype.hasOwnProperty;var pt=(i,t)=>()=>(i&&(t=i(i=0)),t);var _s=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Gr=(i,t)=>{for(var e in t)ze(i,e,{get:t[e],enumerable:!0})},Hr=(i,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Wr(t))!zr.call(i,r)&&r!==e&&ze(i,r,{get:()=>t[r],enumerable:!(s=$r(t,r))||s.enumerable});return i};var qr=(i,t,e)=>(e=i!=null?Ur(Br(i)):{},Hr(t||!i||!i.__esModule?ze(e,"default",{value:i,enumerable:!0}):e,i));function ae(){let i;if(process.env.npm_config_user_agent){let t=process.env.npm_config_user_agent.split(" ")[0];i=t.slice(0,t.lastIndexOf("/"))}return i||(console.log("Warning: could not detect package manager"),i="npm"),i}function ks(i){return`[${i.error}]${i.error_description?`: ${i.error_description}`:""}`}var Ge=pt(()=>{"use strict"});var Ns,He,lt,Ec,Ds,Ps,Ls,Fs,Ms,ft=pt(()=>{"use strict";Ns="enpage-cli",He=process.env.PUBLIC_ENPAGE_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",lt=process.env.PUBLIC_ENPAGE_API_BASE_URL??"https://api.enpage.co",Ec=process.env.PUBLIC_ENPAGE_FRONTEND_BASE_URL??"https://enpage.co",Ds=10,Ps="oauth/devicecode",Ls="oauth/token",Fs="oauth/userinfo",Ms="v1/templates"});import Vr from"conf";import It from"node:path";import Kr from"node:crypto";import mt from"node:fs";import{fileURLToPath as Yr}from"node:url";import Jr from"chalk";function Is(){let i=M.get("access_token");if(!i){let t=ae();throw new Error(`Access token not found. Please run ${Jr.cyan(`${t} run enpage:login`)} to authenticate.`)}return i}function Qr(){let i=Xr;for(;i!==It.parse(i).root;){let t=It.join(i,"node_modules");if(mt.existsSync(t))return t;i=It.dirname(i)}return null}function tn(){let i=Qr();if(!i)throw new Error("Could not find nearest node_modules directory.");let t=It.join(i,".enpage-tmp");mt.existsSync(t)||mt.mkdirSync(t,{recursive:!0,mode:448});let e=It.join(t,".enpage-key");if(!mt.existsSync(e)){let r=Kr.randomBytes(32).toString("hex");return mt.writeFileSync(e,r,{mode:384,flush:!0}),r}return mt.readFileSync(e,"utf8")}var Xr,Zr,M,gt=pt(()=>{"use strict";ft();Ge();Xr=Yr(new URL(".",import.meta.url)),Zr=tn(),M=new Vr({projectName:Ns,encryptionKey:Zr,clearInvalidConfig:!0})});var Us,js=pt(()=>{Us="0.0.73"});import{createLogger as sn}from"vite";import wt from"chalk";function qe(i,t,e=!1){let s=sn(i==="debug"?"info":i,{prefix:"[enpage]",allowClearScreen:t});return e&&s.info(wt.hex("#7270c6").bold(`\u{1F680} Enpage v${Us}
5
5
  `)),{...s,success:(r,n)=>s.info(wt.green(r),n),error:(r,n)=>s.error(wt.red(r),n),warn:(r,n)=>s.warn(wt.yellow(r),n),warnOnce:(r,n)=>s.warnOnce(wt.yellow(r),n),debug:(r,n)=>{i==="debug"&&s.info(wt.gray(r),n)}}}var k,jt=pt(()=>{"use strict";js();k=qe()});var Gs={};Gr(Gs,{get:()=>mn,post:()=>it});async function it(i,t,e={}){M.get("access_token")&&(e.Authorization=`Bearer ${M.get("access_token")}`);let s=await fetch(Bs(i),{method:"POST",headers:{"Content-Type":t instanceof URLSearchParams?"application/x-www-form-urlencoded":"application/json",...e},body:t instanceof URLSearchParams?t:JSON.stringify(t)}).catch(r=>{k.error(`Fatal Error requesting API: ${r.message} (${r.cause.code})`),k.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return zs(s)}async function mn(i,t={}){M.get("access_token")&&(t.Authorization=`Bearer ${M.get("access_token")}`);let e=await fetch(Bs(i),{headers:t,method:"GET"}).catch(s=>{k.error(`Fatal Error requesting API: ${s.message} (${s.cause.code})`),k.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return zs(e)}function Bs(i){let t=new URL(lt.endsWith("/")?lt:`${lt}/`);return new URL(i,t)}async function zs(i){let t=i.headers.get("content-type")?.startsWith("application/json")?await i.json():await i.text();return i.ok?{isSuccess:!0,isError:!1,status:i.status,statusText:i.statusText,data:t}:{isSuccess:!1,isError:!0,status:i.status,statusText:i.statusText,data:t}}var Ut=pt(()=>{"use strict";jt();ft();gt()});var oi=_s((Ih,ni)=>{"use strict";ni.exports=ii;function ii(i,t,e){i instanceof RegExp&&(i=si(i,e)),t instanceof RegExp&&(t=si(t,e));var s=ri(i,t,e);return s&&{start:s[0],end:s[1],pre:e.slice(0,s[0]),body:e.slice(s[0]+i.length,s[1]),post:e.slice(s[1]+t.length)}}function si(i,t){var e=t.match(i);return e?e[0]:null}ii.range=ri;function ri(i,t,e){var s,r,n,o,a,c=e.indexOf(i),h=e.indexOf(t,c+1),l=c;if(c>=0&&h>0){if(i===t)return[c,h];for(s=[],n=e.length;l>=0&&!a;)l==c?(s.push(l),c=e.indexOf(i,l+1)):s.length==1?a=[s.pop(),h]:(r=s.pop(),r<n&&(n=r,o=h),h=e.indexOf(t,l+1)),l=c<h&&c>=0?c:h;s.length&&(a=[n,o])}return a}});var pi=_s((jh,di)=>{"use strict";var ai=oi();di.exports=Kn;var ci="\0SLASH"+Math.random()+"\0",hi="\0OPEN"+Math.random()+"\0",Ke="\0CLOSE"+Math.random()+"\0",li="\0COMMA"+Math.random()+"\0",fi="\0PERIOD"+Math.random()+"\0";function Ve(i){return parseInt(i,10)==i?parseInt(i,10):i.charCodeAt(0)}function qn(i){return i.split("\\\\").join(ci).split("\\{").join(hi).split("\\}").join(Ke).split("\\,").join(li).split("\\.").join(fi)}function Vn(i){return i.split(ci).join("\\").split(hi).join("{").split(Ke).join("}").split(li).join(",").split(fi).join(".")}function ui(i){if(!i)return[""];var t=[],e=ai("{","}",i);if(!e)return i.split(",");var s=e.pre,r=e.body,n=e.post,o=s.split(",");o[o.length-1]+="{"+r+"}";var a=ui(n);return n.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function Kn(i){return i?(i.substr(0,2)==="{}"&&(i="\\{\\}"+i.substr(2)),zt(qn(i),!0).map(Vn)):[]}function Yn(i){return"{"+i+"}"}function Jn(i){return/^-?0\d/.test(i)}function Xn(i,t){return i<=t}function Zn(i,t){return i>=t}function zt(i,t){var e=[],s=ai("{","}",i);if(!s)return[i];var r=s.pre,n=s.post.length?zt(s.post,!1):[""];if(/\$$/.test(s.pre))for(var o=0;o<n.length;o++){var a=r+"{"+s.body+"}"+n[o];e.push(a)}else{var c=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(s.body),h=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(s.body),l=c||h,f=s.body.indexOf(",")>=0;if(!l&&!f)return s.post.match(/,.*\}/)?(i=s.pre+"{"+s.body+Ke+s.post,zt(i)):[i];var u;if(l)u=s.body.split(/\.\./);else if(u=ui(s.body),u.length===1&&(u=zt(u[0],!1).map(Yn),u.length===1))return n.map(function(oe){return s.pre+u[0]+oe});var d;if(l){var g=Ve(u[0]),p=Ve(u[1]),y=Math.max(u[0].length,u[1].length),m=u.length==3?Math.abs(Ve(u[2])):1,b=Xn,w=p<g;w&&(m*=-1,b=Zn);var S=u.some(Jn);d=[];for(var E=g;b(E,p);E+=m){var v;if(h)v=String.fromCharCode(E),v==="\\"&&(v="");else if(v=String(E),S){var C=y-v.length;if(C>0){var K=new Array(C+1).join("0");E<0?v="-"+K+v.slice(1):v=K+v}}d.push(v)}}else{d=[];for(var B=0;B<u.length;B++)d.push.apply(d,zt(u[B],!1))}for(var B=0;B<d.length;B++)for(var o=0;o<n.length;o++){var a=r+d[B]+n[o];(!t||l||a)&&e.push(a)}}return e}});import{program as Mt}from"commander";Ge();gt();import{resolve as X}from"node:path";import{existsSync as Bt,readFileSync as jn,writeFileSync as Un}from"node:fs";import rt from"chalk";ft();jt();import $t from"node:path";import Wt from"node:fs";import gn from"node:crypto";import wn from"fast-glob";import qs from"node:http";import yn from"node:https";import{pipeline as Sn}from"node:stream";import Hs from"chalk";import bn from"form-data";import*as ce from"node:fs";var rn=/[<>"|?*\n\r\t\f\x00-\x1F]/,nn=/(?:^|\/)[*]{2}($|\/)/,on=248,an=i=>i!==null&&typeof i=="object"&&!Array.isArray(i),cn=i=>typeof i=="string"&&i.length<=on&&!rn.test(i),hn=i=>i.split(/\r\n?|\n/);var ln=i=>an(i)&&Array.isArray(i.patterns)&&Array.isArray(i.sections);var he=(i,t={})=>{let e=t.path;if(ln(i))return i;cn(i)&&ce.existsSync(i)&&(e=i,i=ce.readFileSync(i,"utf8"));let s=hn(i),r=new Map,n={sections:[],patterns:[]},o={name:"default",patterns:[]},a=null;for(let c of s){let h=c.trim();if(h.startsWith("#")){let[,l]=/^#+\s*(.*)\s*$/.exec(h)||[];if(a){r.delete(a.name),a.comment=a.comment?`${a.comment}
6
6
  ${h}`:h,a.name=l?`${a.name.trim()}
7
7
  ${l.trim()}`:a.name.trim(),r.set(a.name.toLowerCase().trim(),a);continue}o={name:l?.trim()||"",comment:h,patterns:[]},r.set(o.name.toLowerCase(),o),n.sections.push(o),a=o;continue}h!==""&&(o.patterns.push(h),n.patterns.push(h)),a=null}return(t.dedupe===!0||t.unique===!0)&&(n=$s(n,{...t,format:!1})),n.path=e,n.input=Buffer.from(i),n.format=c=>pn(n,{...t,...c}),n.dedupe=c=>$s(n,{...t,...c}),n.globs=c=>un(n,{path:e,...t,...c}),n};var $s=(i,t)=>{let e=he(i,{...t,dedupe:!1}),s=new Map,r={sections:[],patterns:[]},n;for(let o of e.sections){let{name:a="",comment:c,patterns:h}=o,l=a.trim().toLowerCase();for(let f of h)r.patterns.includes(f)||r.patterns.push(f);a&&s.has(l)?(n=s.get(l),n.patterns=[...n.patterns,...h]):(n={name:a,comment:c,patterns:h},r.sections.push(n),s.set(l,n))}for(let o of r.sections)o.patterns=[...new Set(o.patterns)];return r},fn=i=>{if(nn.test(i))return i;let t=!1;return i.startsWith("/")?(i=i.slice(1),t=!0):i.slice(1,i.length-1).includes("/")&&(t=!0),i+=i.endsWith("/")?"**/":"/**",t?i:`**/${i}`},un=(i,t={})=>{let e=he(i,t),s=[],r=0,n=e.patterns.concat(t.ignore||[]).concat((t.unignore||[]).map(a=>a.startsWith("!")?a:`!${a}`)),o=(a,c)=>{let h=s[s.length-1],l=a?"unignore":"ignore";h&&h.type===l?h.patterns.includes(c)||h.patterns.push(c):(s.push({type:l,path:t.path||null,patterns:[c],index:r}),r++)};for(let a of n){let c="";a.startsWith("!")&&(a=a.slice(1),c="!"),o(c,a.startsWith("/")?a.slice(1):a),o(c,fn(a))}return s},dn=(i={name:"",patterns:[]})=>{let t=[i.comment||""];return i.patterns?.length&&(t.push(i.patterns.join(`
@@ -1,6 +1,6 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- import{Type as e}from"@sinclair/typebox";var m=e.Object({id:e.Optional(e.String({title:"Template ID",description:"A unique identifier for the template. Can be any string, but should be unique."})),name:e.String({title:"Template Name"}),description:e.Optional(e.String({title:"Show template description"})),readme:e.Optional(e.Record(e.RegExp(/^[a-z]{2}$/),e.String(),{title:"Readme texts.",description:"A dictionary of readme files for different languages (iso 2 letters code). Currently on supported for 'en' and 'fr'."})),tags:e.Optional(e.Array(e.String(),{title:"Tags"})),author:e.Optional(e.String({title:"Author name"})),thumbnail:e.Optional(e.String({title:"Thumbnail",description:"A URL to the thumbnail image for the template."})),homepage:e.Optional(e.String({title:"Homepage",description:"A URL to the homepage of the template."}))});import d from"node:fs";import{readFile as x}from"node:fs/promises";import L from"fast-glob";import{createLogger as b}from"vite";var g="0.0.71";import n from"chalk";function v(r,i,a=!1){let t=b(r==="debug"?"info":r,{prefix:"[enpage]",allowClearScreen:i});return a&&t.info(n.hex("#7270c6").bold(`\u{1F680} Enpage v${g}
3
+ import{Type as e}from"@sinclair/typebox";var m=e.Object({id:e.Optional(e.String({title:"Template ID",description:"A unique identifier for the template. Can be any string, but should be unique."})),name:e.String({title:"Template Name"}),description:e.Optional(e.String({title:"Show template description"})),readme:e.Optional(e.Record(e.RegExp(/^[a-z]{2}$/),e.String(),{title:"Readme texts.",description:"A dictionary of readme files for different languages (iso 2 letters code). Currently on supported for 'en' and 'fr'."})),tags:e.Optional(e.Array(e.String(),{title:"Tags"})),author:e.Optional(e.String({title:"Author name"})),thumbnail:e.Optional(e.String({title:"Thumbnail",description:"A URL to the thumbnail image for the template."})),homepage:e.Optional(e.String({title:"Homepage",description:"A URL to the homepage of the template."}))});import d from"node:fs";import{readFile as x}from"node:fs/promises";import L from"fast-glob";import{createLogger as b}from"vite";var g="0.0.73";import n from"chalk";function v(r,i,a=!1){let t=b(r==="debug"?"info":r,{prefix:"[enpage]",allowClearScreen:i});return a&&t.info(n.hex("#7270c6").bold(`\u{1F680} Enpage v${g}
4
4
  `)),{...t,success:(s,o)=>t.info(n.green(s),o),error:(s,o)=>t.error(n.red(s),o),warn:(s,o)=>t.warn(n.yellow(s),o),warnOnce:(s,o)=>t.warnOnce(n.yellow(s),o),debug:(s,o)=>{r==="debug"&&t.info(n.gray(s),o)}}}var u=v();import{fromError as O}from"zod-validation-error";import{basename as f,dirname as w,extname as S}from"node:path";async function P(r,i=u){d.existsSync(r)||(i.error(`\u{1F534} No enpage.config.js found!
5
5
  Your project must have an enpage.config.js file in the root directory.
6
6
 
@@ -1,4 +1,4 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- import{createLogger as d}from"vite";var i="0.0.71";import r from"chalk";function g(o,a,n=!1){let s=d(o==="debug"?"info":o,{prefix:"[enpage]",allowClearScreen:a});return n&&s.info(r.hex("#7270c6").bold(`\u{1F680} Enpage v${i}
3
+ import{createLogger as d}from"vite";var i="0.0.73";import r from"chalk";function g(o,a,n=!1){let s=d(o==="debug"?"info":o,{prefix:"[enpage]",allowClearScreen:a});return n&&s.info(r.hex("#7270c6").bold(`\u{1F680} Enpage v${i}
4
4
  `)),{...s,success:(e,t)=>s.info(r.green(e),t),error:(e,t)=>s.error(r.red(e),t),warn:(e,t)=>s.warn(r.yellow(e),t),warnOnce:(e,t)=>s.warnOnce(r.yellow(e),t),debug:(e,t)=>{o==="debug"&&s.info(r.gray(e),t)}}}var y=g();export{g as createLogger,y as logger};
@@ -1,4 +1,4 @@
1
- import { type StringOptions, type NumberOptions, type SchemaOptions, type ObjectOptions, type TProperties, type TObject, type Static } from "@sinclair/typebox";
1
+ import { type StringOptions, type NumberOptions, type SchemaOptions, type ObjectOptions, type TProperties, type Static } from "@sinclair/typebox";
2
2
  import type { ElementColor } from "./themes/color-system";
3
3
  import type { JSONSchemaType } from "ajv";
4
4
  type EnumOption = {
@@ -19,20 +19,9 @@ type GeoPoint = {
19
19
  lng: number;
20
20
  name?: string;
21
21
  };
22
- export declare function defineAttributes(attrs: TProperties): JSONSchemaType<{
23
- $pageLanguage: string;
24
- $pagePath: string;
25
- $pageTitle: string;
26
- $pageDescription: string;
27
- $pageKeywords: string;
28
- $pageLastUpdated: string;
29
- $pageWidth: string;
30
- $pagePaddingVertical: string;
31
- $pagePaddingHorizontal: string;
32
- $backgroundColor: string;
33
- $textColor: string;
34
- }>;
35
- export type AttributesSchema = ReturnType<typeof defineAttributes>;
22
+ export declare function defineAttributes(attrs: TProperties): JSONSchemaType<Attributes>;
23
+ export type { JSONSchemaType };
24
+ export type AttributesSchema = JSONSchemaType<Attributes>;
36
25
  export declare const attr: {
37
26
  /**
38
27
  * Define a text
@@ -76,13 +65,13 @@ export declare const attr: {
76
65
  /**
77
66
  * Define a geolocation
78
67
  */
79
- geolocation(name: string, defaultValue: GeoPoint, opts?: AttributeOptions<Omit<ObjectOptions, "title" | "default">>): TObject<{
68
+ geolocation(name: string, defaultValue: GeoPoint, opts?: AttributeOptions<Omit<ObjectOptions, "title" | "default">>): import("@sinclair/typebox").TObject<{
80
69
  lat: import("@sinclair/typebox").TNumber;
81
70
  lng: import("@sinclair/typebox").TNumber;
82
71
  name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
83
72
  }>;
84
73
  };
85
- export declare const defaultAttributesSchema: TObject<{
74
+ export declare const defaultAttributesSchema: import("@sinclair/typebox").TObject<{
86
75
  $pageLanguage: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<string>[]>;
87
76
  $pagePath: import("@sinclair/typebox").TString;
88
77
  $pageTitle: import("@sinclair/typebox").TString;
@@ -95,8 +84,6 @@ export declare const defaultAttributesSchema: TObject<{
95
84
  $backgroundColor: import("@sinclair/typebox").TString;
96
85
  $textColor: import("@sinclair/typebox").TString;
97
86
  }>;
98
- export type Attributes = Static<typeof defaultAttributesSchema>;
99
- export declare function resolveAttributes(attributesSchema: JSONSchemaType<Attributes>, initialData?: Record<string, unknown>): AttributesResolved;
100
- export type AttributesResolved = Record<string, unknown>;
101
- export {};
87
+ export type Attributes = Static<typeof defaultAttributesSchema> & Record<string, unknown>;
88
+ export declare function resolveAttributes(attributesSchema: JSONSchemaType<Attributes>, initialData?: Record<string, unknown>): Attributes;
102
89
  //# sourceMappingURL=attributes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/shared/attributes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/shared/attributes.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- import{a,b,c,d}from"./chunk-EK4FWGFA.js";import"./chunk-6PCNIIO5.js";export{b as attr,c as defaultAttributesSchema,a as defineAttributes,d as resolveAttributes};
3
+ import{a,b,c,d}from"./chunk-YTITIU5G.js";import"./chunk-6PCNIIO5.js";export{b as attr,c as defaultAttributesSchema,a as defineAttributes,d as resolveAttributes};
@@ -0,0 +1,3 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+
3
+ import{Type as t}from"@sinclair/typebox";import{Type as n}from"@sinclair/typebox";import{Type as S}from"@sinclair/typebox";var a=S.Object({refreshInterval:S.Optional(S.Number())});var y=n.Composite([a,n.Object({channelId:n.String(),order:n.Optional(n.String()),maxResults:n.Optional(n.Number()),regionCode:n.Optional(n.String()),relevanceLanguage:n.Optional(n.String())})]);import{Type as l}from"@sinclair/typebox";var d=l.Composite([a,l.Object({limit:l.Optional(l.Number())})]);import{Type as f}from"@sinclair/typebox";var g=f.Composite([a,f.Object({username:f.String()})]);import{Type as c}from"@sinclair/typebox";var h=c.Composite([a,c.Object({url:c.String({format:"uri"}),headers:c.Optional(c.Record(c.String(),c.String()))})]);import{Type as u}from"@sinclair/typebox";var b=u.Composite([a,u.Object({url:u.String({format:"uri"})})]);import{Type as m}from"@sinclair/typebox";var v=m.Composite([a,m.Object({maxCount:m.Optional(m.Number()),refreshInterval:m.Optional(m.Number())})]);import{Type as p}from"@sinclair/typebox";var j=p.Array(p.Object({question:p.String({description:"Question"}),answer:p.String({description:"Answer"}),category:p.Optional(p.String({description:"Category"})),tags:p.Optional(p.Array(p.String(),{description:"Tags"})),order:p.Optional(p.Number({description:"Order number in the list"}))}),{description:"Schema representing a collection of frequently asked questions (FAQ)"});import{Type as s}from"@sinclair/typebox";var O=s.Array(s.Object({url:s.String({format:"uri",description:"URL"}),title:s.String({description:"Title"}),description:s.Optional(s.String({description:"Description"})),icon:s.Optional(s.String({description:"Icon"}))}),{description:"Schema representing a collection of links"});import{Type as o}from"@sinclair/typebox";var L=o.Object({email:o.String({format:"email"}),phone:o.Optional(o.String()),companyName:o.Optional(o.String()),firstName:o.Optional(o.String()),lastName:o.Optional(o.String()),url:o.Optional(o.String({format:"uri"})),address:o.Optional(o.String()),socialLinks:O},{description:"A generic schema representing a person or company contact information"});import{Type as e}from"@sinclair/typebox";var x=e.Array(e.Object({title:e.String({description:"Blog post title"}),content:e.String({description:"Blog post content"}),author:e.Object({name:e.String({description:"Author's name"})}),publishedAt:e.String({description:"Publication date in ISO format"}),updatedAt:e.Optional(e.String({description:"Last update date in ISO format"})),slug:e.String({description:"URL-friendly version of the title"}),status:e.Union([e.Literal("draft"),e.Literal("published"),e.Literal("archived")],{description:"Publication status of the blog post"}),categories:e.Optional(e.Array(e.String({description:"Blog post categories"}))),tags:e.Optional(e.Array(e.String({description:"Blog post tags"}))),metadata:e.Optional(e.Object({description:e.Optional(e.String()),featuredImage:e.Optional(e.String())},{description:"Additional metadata for the blog post"}))}));import{Type as i}from"@sinclair/typebox";var T=i.Array(i.Object({title:i.String({description:"Title of the release"}),version:i.Optional(i.String({description:"Version number"})),date:i.String({format:"date",description:"Release date in ISO format"}),changes:i.Array(i.Object({type:i.Union([i.Literal("added"),i.Literal("changed"),i.Literal("fixed"),i.Literal("improved"),i.Literal("deprecated"),i.Literal("removed")],{description:"Type of change"}),description:i.String({description:"Description of the change"})}))}));import{Type as r}from"@sinclair/typebox";var k=r.Array(r.Object({title:r.String({description:"Title of the recipe"}),description:r.String({description:"Description of the recipe"}),time:r.String({description:"Time to prepare the recipe"}),ingredients:r.Array(r.Object({name:r.String({description:"Name of the ingredient"}),quantity:r.String({description:"Quantity of the ingredient"})})),steps:r.Array(r.Object({title:r.String({description:"Step title"}),description:r.String({description:"Step description"})}))}),{description:"Schema representing a collection of recipes"});var jt=t.Union([t.Literal("facebook-posts"),t.Literal("instagram-feed"),t.Literal("mastodon-status"),t.Literal("rss"),t.Literal("threads-media"),t.Literal("tiktok-video"),t.Literal("youtube-list"),t.Literal("json")]),A=t.Union([t.Object({provider:t.Literal("youtube-list"),options:y}),t.Object({provider:t.Literal("facebook-posts"),options:d}),t.Object({provider:t.Literal("instragram-feed"),options:d}),t.Object({provider:t.Literal("threads-media"),options:d}),t.Object({provider:t.Literal("mastodon-status"),options:g}),t.Object({provider:t.Literal("rss"),options:b}),t.Object({provider:t.Literal("tiktok-video"),options:v}),t.Object({provider:t.Literal("json"),options:h,schema:t.Union([t.Array(t.Object({},{additionalProperties:!0})),t.Object({},{additionalProperties:!0})])}),t.Object({provider:t.Literal("internal-blog"),options:t.Optional(t.Object({},{additionalProperties:!0})),schema:x}),t.Object({provider:t.Literal("internal-changelog"),options:t.Optional(t.Object({},{additionalProperties:!0})),schema:T}),t.Object({provider:t.Literal("internal-contact-info"),options:t.Optional(t.Object({},{additionalProperties:!0})),schema:L}),t.Object({provider:t.Literal("internal-faq"),options:t.Optional(t.Object({},{additionalProperties:!0})),schema:j}),t.Object({provider:t.Literal("internal-links"),options:t.Optional(t.Object({},{additionalProperties:!0})),schema:O}),t.Object({provider:t.Literal("internal-recipes"),options:t.Optional(t.Object({},{additionalProperties:!0})),schema:k})]),C=t.Composite([A,t.Object({name:t.String({title:"Name of the datasource",comment:"For example, 'My data'"}),description:t.Optional(t.String({title:"Description of the datasource"})),sampleData:t.Optional(t.Any()),ttlMinutes:t.Optional(t.Number({title:"Time to live",description:"Time to live in minutes. If set to -1, it never expires and has to be manually refreshed. If set to 0, the datasource is always fetched live. If > 0, then the datasource is feteched every N minutes."})),refresh:t.Optional(t.Object({method:t.Union([t.Literal("interval"),t.Literal("manual"),t.Literal("live")]),interval:t.Optional(t.Number())},{title:"Refresh options",description:"Options to refresh the datasource"}))})]),P=t.Object({provider:t.Literal("custom",{title:"Custom",description:"Custom datasource saved locally in Upstart."}),options:t.Optional(t.Object({},{additionalProperties:!0})),schema:t.Union([t.Array(t.Object({},{additionalProperties:!0})),t.Object({},{additionalProperties:!0})]),name:t.String({title:"Name of the datasource",comment:"For example, 'My data'"}),description:t.Optional(t.String({title:"Description of the datasource"})),sampleData:t.Optional(t.Any({title:"Sample data",description:"Sample data for the datasource. Should match the declared schema."}))}),Lt=t.Record(t.String(),t.Union([P,C]),{title:"Datasources map",description:"The map of datasources available in the system"});export{jt as a,Lt as b};
@@ -1,3 +1,3 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- import{a as l}from"./chunk-6PCNIIO5.js";import{Type as r}from"@sinclair/typebox";function s(t){return JSON.parse(JSON.stringify(t))}function y(t){for(let e in t)if(e.startsWith("$"))throw new Error(`Attribute names starting with '$' (like "${e}") are reserved for internal use. Please rename it.`);return s(r.Object({...p,...t}))}var o={string(t,e="",i){return r.String({title:t,default:e,...i})},number(t,e=0,i){return r.Number({title:t,default:e,...i})},boolean(t,e=!1,i){let a={"ui:field":"switch"};return r.Boolean({title:t,default:e,...a,...i})},enum(t,e,i){let a={"ui:field":"enum","ui:display":i.displayAs||"select"},{options:u,displayAs:m,...g}=i;return r.Union(u.map(n=>r.Literal(typeof n=="string"?n:n.value,{title:typeof n=="string"?n:n.title,"ui:icon":typeof n=="string"?void 0:n.icon})),{title:t,default:e,...a,...g})},file(t,e="",i={}){return r.String({title:t,default:e,...i,format:"data-url"})},url(t,e="",i={}){return r.String({title:t,default:e,...i,format:"uri"})},color(t,e="",i){let a={"ui:field":"color"};return r.String({title:t,default:e,...a,...i})},date(t,e=new Date,i={}){return r.String({title:t,default:e.toISOString(),...i,format:"date"})},datetime(t,e=new Date,i={}){return r.String({title:t,default:e.toISOString(),...i,format:"date-time"})},geolocation(t,e,i={}){return r.Object({lat:r.Number({minimum:-90,maximum:90}),lng:r.Number({minimum:-180,maximum:180}),name:r.Optional(r.String({title:"Name"}))},{title:t,default:e,...i})}},p={$pageLanguage:o.enum("Page language","en",{options:[{value:"ar",title:"Arabic"},{value:"zh",title:"Chinese"},{value:"cs",title:"Czech"},{value:"nl",title:"Dutch"},{value:"en",title:"English"},{value:"fr",title:"French"},{value:"de",title:"German"},{value:"he",title:"Hebrew"},{value:"hi",title:"Hindi"},{value:"it",title:"Italian"},{value:"ja",title:"Japanese"},{value:"ko",title:"Korean"},{value:"fa",title:"Persian"},{value:"pl",title:"Polish"},{value:"pt",title:"Portuguese"},{value:"ru",title:"Russian"},{value:"es",title:"Spanish"},{value:"tr",title:"Turkish"},{value:"vi",title:"Vietnamese"}],"ui:group":"meta","ui:group:title":"Meta tags / SEO"}),$pagePath:o.string("Page path","/",{description:"The URL path of the page","ui:group":"location","ui:group:title":"Location","ui:group:order":1,"ui:field":"path"}),$pageTitle:o.string("Page title","Untitled",{"ui:group":"meta","ui:group:title":"Meta tags / SEO"}),$pageDescription:o.string("Page description","",{"ui:widget":"textarea","ui:options":{rows:3,widget:"textarea"},"ui:group":"meta","ui:group:title":"Meta tags / SEO"}),$pageKeywords:o.string("Page keywords","",{"ui:group":"meta","ui:group:title":"Meta tags / SEO"}),$pageLastUpdated:o.datetime("Last updated",void 0,{"ui:hidden":!0}),$pageWidth:o.enum("Page width","max-w-screen-2xl",{options:[{value:"max-w-screen-lg",title:"M",description:"Common for text-heavy content/blog posts"},{value:"max-w-screen-xl",title:"L",description:"Usefull or some landing pages"},{value:"max-w-screen-2xl",title:"XL",description:"Common width"},{value:"max-w-full",title:"Full",description:"Takes the entire space"}],description:"The maximum width of the page. Desktop only.",displayAs:"button-group","ui:group":"layout","ui:group:title":"Page Layout & Design"}),$pagePaddingVertical:o.enum("Page vertical spacing","20",{options:[{value:"0",title:"None"},{value:"10",title:"S"},{value:"20",title:"M"},{value:"30",title:"L"},{value:"50",title:"XL"}],description:"Vertical spacing. Desktop only.",displayAs:"button-group","ui:group":"layout","ui:group:title":"Page Layout & Design"}),$pagePaddingHorizontal:o.enum("Page horizontal spacing","20",{options:[{value:"0",title:"None"},{value:"10",title:"S"},{value:"20",title:"M"},{value:"30",title:"L"},{value:"50",title:"XL"}],description:"Horizontal spacing. Desktop only.",displayAs:"button-group","ui:group":"layout","ui:group:title":"Page Layout & Design"}),$backgroundColor:o.color("Page background color","#ffffff",{"ui:field":"color","ui:group":"layout","ui:group:title":"Page Layout & Design"}),$textColor:o.color("Default text color","#222222",{"ui:field":"color","ui:group":"layout","ui:group:title":"Page Layout & Design","ui:color-type":"page-text"})},b=r.Object(p);function h(t,e={}){let i=l.compile(t),a={...e};if(!i(a))throw new Error(`Invalid attributes: ${i.errors}`);return a}export{y as a,o as b,b as c,h as d};
3
+ import{a as l}from"./chunk-6PCNIIO5.js";import{Type as r}from"@sinclair/typebox";function s(t){return JSON.parse(JSON.stringify(t))}function y(t){for(let e in t)if(e.startsWith("$"))throw new Error(`Attribute names starting with '$' (like "${e}") are reserved for internal use. Please rename it.`);return s(r.Object({...p,...t}))}var a={string(t,e="",i){return r.String({title:t,default:e,...i})},number(t,e=0,i){return r.Number({title:t,default:e,...i})},boolean(t,e=!1,i){let o={"ui:field":"switch"};return r.Boolean({title:t,default:e,...o,...i})},enum(t,e,i){let o={"ui:field":"enum","ui:display":i.displayAs||"select"},{options:u,displayAs:m,...g}=i;return r.Union(u.map(n=>r.Literal(typeof n=="string"?n:n.value,{title:typeof n=="string"?n:n.title,"ui:icon":typeof n=="string"?void 0:n.icon})),{title:t,default:e,...o,...g})},file(t,e="",i={}){return r.String({title:t,default:e,...i,format:"data-url"})},url(t,e="",i={}){return r.String({title:t,default:e,...i,format:"uri"})},color(t,e="",i){let o={"ui:field":"color"};return r.String({title:t,default:e,...o,...i})},date(t,e=new Date,i={}){return r.String({title:t,default:e.toISOString(),...i,format:"date"})},datetime(t,e=new Date,i={}){return r.String({title:t,default:e.toISOString(),...i,format:"date-time"})},geolocation(t,e,i={}){return r.Object({lat:r.Number({minimum:-90,maximum:90}),lng:r.Number({minimum:-180,maximum:180}),name:r.Optional(r.String({title:"Name"}))},{title:t,default:e,...i})}},p={$pageLanguage:a.enum("Page language","en",{options:[{value:"ar",title:"Arabic"},{value:"zh",title:"Chinese"},{value:"cs",title:"Czech"},{value:"nl",title:"Dutch"},{value:"en",title:"English"},{value:"fr",title:"French"},{value:"de",title:"German"},{value:"he",title:"Hebrew"},{value:"hi",title:"Hindi"},{value:"it",title:"Italian"},{value:"ja",title:"Japanese"},{value:"ko",title:"Korean"},{value:"fa",title:"Persian"},{value:"pl",title:"Polish"},{value:"pt",title:"Portuguese"},{value:"ru",title:"Russian"},{value:"es",title:"Spanish"},{value:"tr",title:"Turkish"},{value:"vi",title:"Vietnamese"}],"ui:group":"meta","ui:group:title":"Meta tags / SEO"}),$pagePath:a.string("Page path","/",{description:"The URL path of the page","ui:group":"location","ui:group:title":"Location","ui:group:order":1,"ui:field":"path"}),$pageTitle:a.string("Page title","Untitled",{"ui:group":"meta","ui:group:title":"Meta tags / SEO"}),$pageDescription:a.string("Page description","",{"ui:widget":"textarea","ui:options":{rows:3,widget:"textarea"},"ui:group":"meta","ui:group:title":"Meta tags / SEO"}),$pageKeywords:a.string("Page keywords","",{"ui:group":"meta","ui:group:title":"Meta tags / SEO"}),$pageLastUpdated:a.datetime("Last updated",void 0,{"ui:hidden":!0}),$pageWidth:a.enum("Page width","max-w-screen-2xl",{options:[{value:"max-w-screen-lg",title:"M",description:"Common for text-heavy content/blog posts"},{value:"max-w-screen-xl",title:"L",description:"Usefull or some landing pages"},{value:"max-w-screen-2xl",title:"XL",description:"Common width"},{value:"max-w-full",title:"Full",description:"Takes the entire space"}],description:"The maximum width of the page. Desktop only.",displayAs:"button-group","ui:group":"layout","ui:group:title":"Page Layout & Design"}),$pagePaddingVertical:a.enum("Page vertical spacing","20",{options:[{value:"0",title:"None"},{value:"10",title:"S"},{value:"20",title:"M"},{value:"30",title:"L"},{value:"50",title:"XL"}],description:"Vertical spacing. Desktop only.",displayAs:"button-group","ui:group":"layout","ui:group:title":"Page Layout & Design"}),$pagePaddingHorizontal:a.enum("Page horizontal spacing","20",{options:[{value:"0",title:"None"},{value:"10",title:"S"},{value:"20",title:"M"},{value:"30",title:"L"},{value:"50",title:"XL"}],description:"Horizontal spacing. Desktop only.",displayAs:"button-group","ui:group":"layout","ui:group:title":"Page Layout & Design"}),$backgroundColor:a.color("Page background color","#ffffff",{"ui:field":"color","ui:group":"layout","ui:group:title":"Page Layout & Design"}),$textColor:a.color("Default text color","#222222",{"ui:field":"color","ui:group":"layout","ui:group:title":"Page Layout & Design","ui:color-type":"page-text"})},b=r.Object(p);function h(t,e={}){let i=l.compile(t),o={...e};if(!i(o))throw new Error(`Invalid attributes: ${i.errors}`);return o}export{y as a,a as b,b as c,h as d};
@@ -0,0 +1,9 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const airtableOptions: import("@sinclair/typebox").TObject<{
3
+ apiKey: import("@sinclair/typebox").TString;
4
+ baseId: import("@sinclair/typebox").TString;
5
+ tableIdOrName: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TString]>;
6
+ view: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
+ }>;
8
+ export type AirtableOptions = Static<typeof airtableOptions>;
9
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datarecords/external/airtable/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,eAAe;;;;;EAuB1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const genericWebhookOptions: import("@sinclair/typebox").TObject<{
3
+ url: import("@sinclair/typebox").TString;
4
+ headers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
5
+ }>;
6
+ export type GenericWebhookOptions = Static<typeof genericWebhookOptions>;
7
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datarecords/external/generic-webhook/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,qBAAqB;;;EAGhC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ declare const googleOAuthTokenSchema: import("@sinclair/typebox").TObject<{
3
+ access_token: import("@sinclair/typebox").TString;
4
+ token_type: import("@sinclair/typebox").TString;
5
+ expires_in: import("@sinclair/typebox").TNumber;
6
+ refresh_token: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
+ scope: import("@sinclair/typebox").TString;
8
+ id_token: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
9
+ }>;
10
+ export type GoogleOAuthToken = Static<typeof googleOAuthTokenSchema>;
11
+ declare const googleIdTokenSchema: import("@sinclair/typebox").TObject<{
12
+ iss: import("@sinclair/typebox").TString;
13
+ sub: import("@sinclair/typebox").TString;
14
+ aud: import("@sinclair/typebox").TString;
15
+ iat: import("@sinclair/typebox").TNumber;
16
+ exp: import("@sinclair/typebox").TNumber;
17
+ email: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
18
+ email_verified: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
19
+ name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
20
+ picture: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
21
+ given_name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
22
+ family_name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
23
+ locale: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
24
+ }>;
25
+ export type GoogleIdToken = Static<typeof googleIdTokenSchema>;
26
+ export {};
27
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/datarecords/external/google/oauth/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,QAAA,MAAM,sBAAsB;;;;;;;EAO1B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGrE,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;EAavB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+
3
+ import{Type as e}from"@sinclair/typebox";var o=e.Object({access_token:e.String(),token_type:e.String(),expires_in:e.Number(),refresh_token:e.Optional(e.String()),scope:e.String(),id_token:e.Optional(e.String())}),n=e.Object({iss:e.String(),sub:e.String(),aud:e.String(),iat:e.Number(),exp:e.Number(),email:e.Optional(e.String()),email_verified:e.Optional(e.Boolean()),name:e.Optional(e.String()),picture:e.Optional(e.String()),given_name:e.Optional(e.String()),family_name:e.Optional(e.String()),locale:e.Optional(e.String())});
@@ -0,0 +1,7 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const googleSheetsOptions: import("@sinclair/typebox").TObject<{
3
+ spreadsheetId: import("@sinclair/typebox").TString;
4
+ sheetName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
5
+ }>;
6
+ export type GoogleSheetsOptions = Static<typeof googleSheetsOptions>;
7
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/datarecords/external/google/sheets/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,mBAAmB;;;EAI9B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const connectorSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"airtable">, import("@sinclair/typebox").TLiteral<"google-sheets">, import("@sinclair/typebox").TLiteral<"generic-webhook">, import("@sinclair/typebox").TLiteral<"internal">]>;
3
+ export type DatarecordConnector = Static<typeof connectorSchema>;
4
+ declare const datarecordManifest: import("@sinclair/typebox").TObject<{
5
+ options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TAny, import("@sinclair/typebox").TObject<{
6
+ url: import("@sinclair/typebox").TString;
7
+ headers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
8
+ }>, import("@sinclair/typebox").TObject<{
9
+ spreadsheetId: import("@sinclair/typebox").TString;
10
+ sheetName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
+ }>, import("@sinclair/typebox").TObject<{
12
+ apiKey: import("@sinclair/typebox").TString;
13
+ baseId: import("@sinclair/typebox").TString;
14
+ tableIdOrName: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TString]>;
15
+ view: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
16
+ }>]>;
17
+ provider: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"generic-webhook">, import("@sinclair/typebox").TLiteral<"google-sheets">, import("@sinclair/typebox").TLiteral<"airtable">]>;
18
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
19
+ name: import("@sinclair/typebox").TString;
20
+ }>;
21
+ export type DatarecordManifest = Static<typeof datarecordManifest>;
22
+ export declare const datarecordsMap: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
23
+ options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TAny, import("@sinclair/typebox").TObject<{
24
+ url: import("@sinclair/typebox").TString;
25
+ headers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
26
+ }>, import("@sinclair/typebox").TObject<{
27
+ spreadsheetId: import("@sinclair/typebox").TString;
28
+ sheetName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
29
+ }>, import("@sinclair/typebox").TObject<{
30
+ apiKey: import("@sinclair/typebox").TString;
31
+ baseId: import("@sinclair/typebox").TString;
32
+ tableIdOrName: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TString]>;
33
+ view: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
34
+ }>]>;
35
+ provider: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"generic-webhook">, import("@sinclair/typebox").TLiteral<"google-sheets">, import("@sinclair/typebox").TLiteral<"airtable">]>;
36
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
37
+ name: import("@sinclair/typebox").TString;
38
+ }>>;
39
+ export type DatarecordsMap = Static<typeof datarecordsMap>;
40
+ export type DatarecordResolved<T extends DatarecordsMap> = {
41
+ [K in keyof T]: unknown;
42
+ };
43
+ export {};
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/datarecords/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKtD,eAAO,MAAM,eAAe,0PAO1B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAyBjE,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;EAStB,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;GAGzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,cAAc,IAAI;KACxD,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+
3
+ import{Type as t}from"@sinclair/typebox";import{Type as e}from"@sinclair/typebox";var i=e.Object({apiKey:e.String({pattern:"^pat[A-Za-z0-9]+$",description:'Airtable Personal Access Token starting with "pat"'}),baseId:e.String({pattern:"^app[A-Za-z0-9]+$",description:'Airtable Base ID starting with "app"'}),tableIdOrName:e.Union([e.String({pattern:"^tbl[A-Za-z0-9]+$",description:'Airtable Table ID starting with "tbl"'}),e.String({description:"Table name as shown in Airtable interface"})]),view:e.Optional(e.String({description:"Optional view name or ID"}))});import{Type as r}from"@sinclair/typebox";var a=r.Object({spreadsheetId:r.String(),sheetName:r.Optional(r.String())});import{Type as o}from"@sinclair/typebox";var n=o.Object({url:o.String({format:"uri"}),headers:o.Optional(o.Record(o.String(),o.String()))});var f=t.Union([t.Literal("airtable"),t.Literal("google-sheets"),t.Literal("generic-webhook"),t.Literal("internal")]),p=t.Union([t.Object({provider:t.Literal("airtable"),options:i}),t.Object({provider:t.Literal("google-sheets"),options:a}),t.Object({provider:t.Literal("generic-webhook"),options:n}),t.Object({provider:t.Literal("internal"),options:t.Any(),schema:t.Union([t.Array(t.Object({},{additionalProperties:!0})),t.Object({},{additionalProperties:!0})])})]),s=t.Composite([p,t.Object({name:t.String({title:"Name of the datarecord",comment:"For example, 'Newsletter Subscriptions'"}),description:t.Optional(t.String({title:"Description of the datarecord"}))})]),x=t.Record(t.String(),s,{title:"Datarecords map",description:"The map of Datarecords available"});export{f as connectorSchema,x as datarecordsMap};
@@ -0,0 +1,3 @@
1
+ import type { DatarecordsMap } from "./datarecords/types";
2
+ export declare function defineDataRecords<T extends DatarecordsMap>(datarecords: T): T;
3
+ //# sourceMappingURL=datarecords.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datarecords.d.ts","sourceRoot":"","sources":["../../src/shared/datarecords.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,WAAW,EAAE,CAAC,KAEzE"}
@@ -0,0 +1,3 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+
3
+ function r(e){return e}export{r as defineDataRecords};
@@ -1 +1 @@
1
- {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/external/json/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD;;GAEG;AACH,QAAA,MAAM,aAAa,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,CAmBpE,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/external/json/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD;;GAEG;AACH,QAAA,MAAM,aAAa,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,CAkBpE,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/external/rss/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,UAAU,CAAC;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,QAAA,MAAM,QAAQ,EAAE,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAyB5D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/external/rss/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,UAAU,CAAC;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,QAAA,MAAM,QAAQ,EAAE,iBAAiB,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CA0B5D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,8 +1,8 @@
1
- import type { GenericPageContext } from "../page";
1
+ import type { Attributes } from "../attributes";
2
2
  import type { ProviderOptions } from "./provider-options";
3
3
  export type DatasourceFetcherParams<OAuthProps = unknown, Opts extends Record<string, unknown> = ProviderOptions> = {
4
4
  options: Opts;
5
- pageConfig: GenericPageContext;
5
+ attr: Attributes;
6
6
  oauth: OAuthProps;
7
7
  };
8
8
  export type DatasourceFetcher<T = unknown, OAuthOpts = unknown, Opts extends Record<string, unknown> = ProviderOptions> = (params: DatasourceFetcherParams<OAuthOpts, Opts>) => Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../src/shared/datasources/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,MAAM,uBAAuB,CACjC,UAAU,GAAG,OAAO,EACpB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,IACpD;IACF,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAC3B,CAAC,GAAG,OAAO,EACX,SAAS,GAAG,OAAO,EACnB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,IACpD,CAAC,MAAM,EAAE,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../src/shared/datasources/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,MAAM,uBAAuB,CACjC,UAAU,GAAG,OAAO,EACpB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,IACpD;IACF,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAC3B,CAAC,GAAG,OAAO,EACX,SAAS,GAAG,OAAO,EACnB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,IACpD,CAAC,MAAM,EAAE,uBAAuB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const blogSchema: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
3
+ title: import("@sinclair/typebox").TString;
4
+ content: import("@sinclair/typebox").TString;
5
+ author: import("@sinclair/typebox").TObject<{
6
+ name: import("@sinclair/typebox").TString;
7
+ }>;
8
+ publishedAt: import("@sinclair/typebox").TString;
9
+ updatedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
10
+ slug: import("@sinclair/typebox").TString;
11
+ status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"draft">, import("@sinclair/typebox").TLiteral<"published">, import("@sinclair/typebox").TLiteral<"archived">]>;
12
+ categories: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
13
+ tags: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
14
+ metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
15
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
16
+ featuredImage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
17
+ }>>;
18
+ }>>;
19
+ export type BlogSchema = Static<typeof blogSchema>;
20
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/internal/blog/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;GAqDtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const changelogSchema: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
3
+ title: import("@sinclair/typebox").TString;
4
+ version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
5
+ date: import("@sinclair/typebox").TString;
6
+ changes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
7
+ type: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"added">, import("@sinclair/typebox").TLiteral<"changed">, import("@sinclair/typebox").TLiteral<"fixed">, import("@sinclair/typebox").TLiteral<"improved">, import("@sinclair/typebox").TLiteral<"deprecated">, import("@sinclair/typebox").TLiteral<"removed">]>;
8
+ description: import("@sinclair/typebox").TString;
9
+ }>>;
10
+ }>>;
11
+ export type ChangelogSchema = Static<typeof changelogSchema>;
12
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/internal/changelog/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,eAAe;;;;;;;;GAmC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -1,8 +1,12 @@
1
1
  import { type Static } from "@sinclair/typebox";
2
- export declare const contactInfo: import("@sinclair/typebox").TObject<{
2
+ export declare const contactInfoSchema: import("@sinclair/typebox").TObject<{
3
3
  email: import("@sinclair/typebox").TString;
4
- phone: import("@sinclair/typebox").TString;
5
- address: import("@sinclair/typebox").TString;
4
+ phone: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
5
+ companyName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
+ firstName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
+ lastName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
+ url: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
9
+ address: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
10
  socialLinks: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
7
11
  url: import("@sinclair/typebox").TString;
8
12
  title: import("@sinclair/typebox").TString;
@@ -10,5 +14,5 @@ export declare const contactInfo: import("@sinclair/typebox").TObject<{
10
14
  icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
15
  }>>;
12
16
  }>;
13
- export type ContactInfo = Static<typeof contactInfo>;
17
+ export type ContactInfo = Static<typeof contactInfoSchema>;
14
18
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/internal/contact-info/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGtD,eAAO,MAAM,WAAW;;;;;;;;;;EAKtB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/internal/contact-info/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGtD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;EAc7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { type Static } from "@sinclair/typebox";
2
- export declare const faq: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
2
+ export declare const faqSchema: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
3
3
  question: import("@sinclair/typebox").TString;
4
4
  answer: import("@sinclair/typebox").TString;
5
5
  category: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
6
  tags: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
7
+ order: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
7
8
  }>>;
8
- export type Faq = Static<typeof faq>;
9
+ export type FaqSchema = Static<typeof faqSchema>;
9
10
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/internal/faq/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,GAAG;;;;;GAef,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/internal/faq/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,SAAS;;;;;;GAmBrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { type Static } from "@sinclair/typebox";
2
- export declare const links: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
2
+ export declare const linksSchema: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
3
3
  url: import("@sinclair/typebox").TString;
4
4
  title: import("@sinclair/typebox").TString;
5
5
  description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
6
  icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
7
  }>>;
8
- export type Links = Static<typeof links>;
8
+ export type LinksSchema = Static<typeof linksSchema>;
9
9
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/internal/links/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,KAAK;;;;;GASjB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/internal/links/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,WAAW;;;;;GAUvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const recipesSchema: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
3
+ title: import("@sinclair/typebox").TString;
4
+ description: import("@sinclair/typebox").TString;
5
+ time: import("@sinclair/typebox").TString;
6
+ ingredients: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
7
+ name: import("@sinclair/typebox").TString;
8
+ quantity: import("@sinclair/typebox").TString;
9
+ }>>;
10
+ steps: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
11
+ title: import("@sinclair/typebox").TString;
12
+ description: import("@sinclair/typebox").TString;
13
+ }>>;
14
+ }>>;
15
+ export type RecipesSchema = Static<typeof recipesSchema>;
16
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datasources/internal/recipes/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,aAAa;;;;;;;;;;;;GAmCzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -1,111 +1,107 @@
1
- import { type Static, type TObject } from "@sinclair/typebox";
1
+ import { type Static } from "@sinclair/typebox";
2
2
  export declare const providersSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"facebook-posts">, import("@sinclair/typebox").TLiteral<"instagram-feed">, import("@sinclair/typebox").TLiteral<"mastodon-status">, import("@sinclair/typebox").TLiteral<"rss">, import("@sinclair/typebox").TLiteral<"threads-media">, import("@sinclair/typebox").TLiteral<"tiktok-video">, import("@sinclair/typebox").TLiteral<"youtube-list">, import("@sinclair/typebox").TLiteral<"json">]>;
3
3
  export type DatasourceProvider = Static<typeof providersSchema>;
4
- declare const datasourceProviderManifest: TObject<{
5
- options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TAny, TObject<{
4
+ declare const datasourceProviderManifest: import("@sinclair/typebox").TObject<{
5
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{
6
6
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
7
7
  headers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
8
8
  url: import("@sinclair/typebox").TString;
9
- }>, TObject<{
9
+ }>, import("@sinclair/typebox").TObject<{
10
10
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber]>>;
11
11
  maxCount: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
12
- }>, TObject<{
12
+ }>, import("@sinclair/typebox").TObject<{
13
13
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
14
14
  url: import("@sinclair/typebox").TString;
15
- }>, TObject<{
15
+ }>, import("@sinclair/typebox").TObject<{
16
16
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
17
17
  username: import("@sinclair/typebox").TString;
18
- }>, TObject<{
18
+ }>, import("@sinclair/typebox").TObject<{
19
19
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
20
20
  limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
21
- }>, TObject<{
21
+ }>, import("@sinclair/typebox").TObject<{
22
22
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
23
23
  limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
24
- }>, TObject<{
24
+ }>, import("@sinclair/typebox").TObject<{
25
25
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
26
26
  limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
27
- }>, TObject<{
27
+ }>, import("@sinclair/typebox").TObject<{
28
28
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
29
29
  order: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
30
30
  channelId: import("@sinclair/typebox").TString;
31
31
  maxResults: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
32
32
  regionCode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
33
33
  relevanceLanguage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
34
- }>]>;
35
- provider: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"generic">, import("@sinclair/typebox").TLiteral<"json">, import("@sinclair/typebox").TLiteral<"tiktok-video">, import("@sinclair/typebox").TLiteral<"rss">, import("@sinclair/typebox").TLiteral<"mastodon-status">, import("@sinclair/typebox").TLiteral<"threads-media">, import("@sinclair/typebox").TLiteral<"instragram-feed">, import("@sinclair/typebox").TLiteral<"facebook-posts">, import("@sinclair/typebox").TLiteral<"youtube-list">]>;
34
+ }>]>>;
35
+ provider: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"internal-recipes">, import("@sinclair/typebox").TLiteral<"internal-links">, import("@sinclair/typebox").TLiteral<"internal-faq">, import("@sinclair/typebox").TLiteral<"internal-contact-info">, import("@sinclair/typebox").TLiteral<"internal-changelog">, import("@sinclair/typebox").TLiteral<"internal-blog">, import("@sinclair/typebox").TLiteral<"json">, import("@sinclair/typebox").TLiteral<"tiktok-video">, import("@sinclair/typebox").TLiteral<"rss">, import("@sinclair/typebox").TLiteral<"mastodon-status">, import("@sinclair/typebox").TLiteral<"threads-media">, import("@sinclair/typebox").TLiteral<"instragram-feed">, import("@sinclair/typebox").TLiteral<"facebook-posts">, import("@sinclair/typebox").TLiteral<"youtube-list">]>;
36
36
  description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
37
37
  name: import("@sinclair/typebox").TString;
38
38
  sampleData: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
39
- refresh: import("@sinclair/typebox").TOptional<TObject<{
39
+ ttlMinutes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
40
+ refresh: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
40
41
  method: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"interval">, import("@sinclair/typebox").TLiteral<"manual">, import("@sinclair/typebox").TLiteral<"live">]>;
41
42
  interval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
42
43
  }>>;
43
44
  }>;
44
45
  export type DatasourceProviderManifest = Static<typeof datasourceProviderManifest>;
45
- declare const datasourceGenericManifest: TObject<{
46
- provider: import("@sinclair/typebox").TLiteral<"generic">;
46
+ declare const datasourceCustomManifest: import("@sinclair/typebox").TObject<{
47
+ provider: import("@sinclair/typebox").TLiteral<"custom">;
48
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
49
+ schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{}>>, import("@sinclair/typebox").TObject<{}>]>;
47
50
  name: import("@sinclair/typebox").TString;
48
51
  description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
49
- schema: import("@sinclair/typebox").TAny;
50
- refresh: import("@sinclair/typebox").TOptional<TObject<{
51
- method: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"interval">, import("@sinclair/typebox").TLiteral<"manual">]>;
52
- interval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
53
- }>>;
54
52
  sampleData: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
55
53
  }>;
56
- export type DatasourceGenericManifest = Static<typeof datasourceGenericManifest>;
57
- export declare const datasourcesMap: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnion<[TObject<{
58
- provider: import("@sinclair/typebox").TLiteral<"generic">;
54
+ export type DatasourceCustomManifest = Static<typeof datasourceCustomManifest>;
55
+ export declare const datasourcesMap: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
56
+ provider: import("@sinclair/typebox").TLiteral<"custom">;
57
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
58
+ schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{}>>, import("@sinclair/typebox").TObject<{}>]>;
59
59
  name: import("@sinclair/typebox").TString;
60
60
  description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
61
- schema: import("@sinclair/typebox").TAny;
62
- refresh: import("@sinclair/typebox").TOptional<TObject<{
63
- method: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"interval">, import("@sinclair/typebox").TLiteral<"manual">]>;
64
- interval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
65
- }>>;
66
61
  sampleData: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
67
- }>, TObject<{
68
- options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TAny, TObject<{
62
+ }>, import("@sinclair/typebox").TObject<{
63
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{
69
64
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
70
65
  headers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
71
66
  url: import("@sinclair/typebox").TString;
72
- }>, TObject<{
67
+ }>, import("@sinclair/typebox").TObject<{
73
68
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber]>>;
74
69
  maxCount: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
75
- }>, TObject<{
70
+ }>, import("@sinclair/typebox").TObject<{
76
71
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
77
72
  url: import("@sinclair/typebox").TString;
78
- }>, TObject<{
73
+ }>, import("@sinclair/typebox").TObject<{
79
74
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
80
75
  username: import("@sinclair/typebox").TString;
81
- }>, TObject<{
76
+ }>, import("@sinclair/typebox").TObject<{
82
77
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
83
78
  limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
84
- }>, TObject<{
79
+ }>, import("@sinclair/typebox").TObject<{
85
80
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
86
81
  limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
87
- }>, TObject<{
82
+ }>, import("@sinclair/typebox").TObject<{
88
83
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
89
84
  limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
90
- }>, TObject<{
85
+ }>, import("@sinclair/typebox").TObject<{
91
86
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
92
87
  order: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
93
88
  channelId: import("@sinclair/typebox").TString;
94
89
  maxResults: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
95
90
  regionCode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
96
91
  relevanceLanguage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
97
- }>]>;
98
- provider: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"generic">, import("@sinclair/typebox").TLiteral<"json">, import("@sinclair/typebox").TLiteral<"tiktok-video">, import("@sinclair/typebox").TLiteral<"rss">, import("@sinclair/typebox").TLiteral<"mastodon-status">, import("@sinclair/typebox").TLiteral<"threads-media">, import("@sinclair/typebox").TLiteral<"instragram-feed">, import("@sinclair/typebox").TLiteral<"facebook-posts">, import("@sinclair/typebox").TLiteral<"youtube-list">]>;
92
+ }>]>>;
93
+ provider: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"internal-recipes">, import("@sinclair/typebox").TLiteral<"internal-links">, import("@sinclair/typebox").TLiteral<"internal-faq">, import("@sinclair/typebox").TLiteral<"internal-contact-info">, import("@sinclair/typebox").TLiteral<"internal-changelog">, import("@sinclair/typebox").TLiteral<"internal-blog">, import("@sinclair/typebox").TLiteral<"json">, import("@sinclair/typebox").TLiteral<"tiktok-video">, import("@sinclair/typebox").TLiteral<"rss">, import("@sinclair/typebox").TLiteral<"mastodon-status">, import("@sinclair/typebox").TLiteral<"threads-media">, import("@sinclair/typebox").TLiteral<"instragram-feed">, import("@sinclair/typebox").TLiteral<"facebook-posts">, import("@sinclair/typebox").TLiteral<"youtube-list">]>;
99
94
  description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
100
95
  name: import("@sinclair/typebox").TString;
101
96
  sampleData: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
102
- refresh: import("@sinclair/typebox").TOptional<TObject<{
97
+ ttlMinutes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
98
+ refresh: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
103
99
  method: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"interval">, import("@sinclair/typebox").TLiteral<"manual">, import("@sinclair/typebox").TLiteral<"live">]>;
104
100
  interval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
105
101
  }>>;
106
102
  }>]>>;
107
103
  export type DatasourcesMap = Static<typeof datasourcesMap>;
108
- export type DatasourcesResolved<T extends DatasourcesMap> = {
104
+ export type DatasourcesResolved<T extends DatasourcesMap = DatasourcesMap> = {
109
105
  [K in keyof T]: unknown;
110
106
  };
111
107
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/datasources/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,KAAK,OAAO,EAAgB,MAAM,mBAAmB,CAAC;AAelF,eAAO,MAAM,eAAe,6cAS1B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAwDhE,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB9B,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEnF,QAAA,MAAM,yBAAyB;;;;;;;;;;EA0B7B,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAI1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,cAAc,IAAI;KACzD,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CACxB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/datasources/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AActD,eAAO,MAAM,eAAe,6cAS1B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAuEhE,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B9B,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEnF,QAAA,MAAM,wBAAwB;;;;;;;EAkB5B,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAI1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI;KAC1E,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
+
3
+ import{a,b}from"../chunk-KBZEUEEY.js";export{b as datasourcesMap,a as providersSchema};
@@ -1,2 +1,4 @@
1
1
  export declare function stringifyObjectValues(obj: Record<string, string | number | Date | boolean>): Record<string, string>;
2
+ export declare function createPlaceholderReplacer(attr: Record<string, unknown>): (_: unknown, p1: string) => string;
3
+ export declare const placeholderRx: RegExp;
2
4
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/shared/datasources/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GACpD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/shared/datasources/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GACpD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAC9B,OAAO,MAAM,MAAM,YAI3D;AAED,eAAO,MAAM,aAAa,QAAe,CAAC"}
@@ -1,4 +1,3 @@
1
1
  import type { DatasourcesMap } from "./datasources/types";
2
- export { Type as ds, type TSchema } from "@sinclair/typebox";
3
2
  export declare function defineDataSources<T extends DatasourcesMap>(datasources: T): T;
4
3
  //# sourceMappingURL=datasources.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"datasources.d.ts","sourceRoot":"","sources":["../../src/shared/datasources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE7D,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,WAAW,EAAE,CAAC,KAEzE"}
1
+ {"version":3,"file":"datasources.d.ts","sourceRoot":"","sources":["../../src/shared/datasources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,WAAW,EAAE,CAAC,KAEzE"}
@@ -1,3 +1,3 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- import{Type as s}from"@sinclair/typebox";function t(e){return e}export{t as defineDataSources,s as ds};
3
+ function t(e){return e}export{t as defineDataSources};
@@ -1,4 +1,4 @@
1
- import { type Attributes, type AttributesResolved } from "./attributes";
1
+ import { type Attributes } from "./attributes";
2
2
  import { type Brick } from "./bricks";
3
3
  import { type Theme } from "./theme";
4
4
  import { type Static } from "@sinclair/typebox";
@@ -48,26 +48,10 @@ export type PageInfo = {
48
48
  */
49
49
  label: string;
50
50
  };
51
- export type SiteInfo = {
52
- siteId: string;
53
- /**
54
- * Map of all pages in the site.
55
- */
56
- pagesMap: PagesMapEntry[];
57
- /**
58
- * Hostname of the site
59
- */
60
- hostname: string;
61
- /**
62
- * Label of the site
63
- */
64
- siteLabel: string;
65
- siteAttributes: JSONSchemaType<Attributes>;
66
- };
67
51
  /**
68
52
  * The Page config represents the page configuration (datasources, attributes, etc)
69
53
  */
70
- export type PageConfig<D extends DatasourcesMap, A extends TemplateConfig["attributes"], B extends Brick[]> = PageInfo & {
54
+ export type PageConfig<D extends DatasourcesMap, B extends Brick[]> = PageInfo & {
71
55
  /**
72
56
  * Data sources manifests for the page. Undefined if no data sources are defined.
73
57
  */
@@ -78,17 +62,17 @@ export type PageConfig<D extends DatasourcesMap, A extends TemplateConfig["attri
78
62
  */
79
63
  data?: D extends DatasourcesMap ? DatasourcesResolved<D> : undefined;
80
64
  /**
81
- * Site+Page attributes.
65
+ * Page attributes. (can ovveride site attributes)
82
66
  */
83
- attributes: A;
67
+ attributes: JSONSchemaType<Attributes>;
84
68
  /**
85
69
  * Resolved attributes for the page.
86
70
  */
87
- attr: AttributesResolved;
71
+ attr: Attributes;
88
72
  bricks: B;
89
73
  tags: string[];
90
74
  };
91
- export type GenericPageConfig = PageConfig<DatasourcesMap, TemplateConfig["attributes"], Brick[]>;
75
+ export type GenericPageConfig = PageConfig<DatasourcesMap, Brick[]>;
92
76
  export declare function getNewPageConfig(templateConfig: TemplateConfig, path?: string): GenericPageConfig;
93
77
  export type SiteConfig = {
94
78
  id: string;
@@ -102,7 +86,6 @@ export type SiteConfig = {
102
86
  };
103
87
  export type GenericPageContext = Omit<GenericPageConfig, "attributes"> & {
104
88
  siteId: SiteConfig["id"];
105
- siteLabel: SiteConfig["label"];
106
89
  hostname: SiteConfig["hostname"];
107
90
  theme: SiteConfig["theme"];
108
91
  pagesMap: SiteConfig["pagesMap"];
@@ -119,40 +102,51 @@ export declare function getNewSiteConfig(templateConfig: TemplateConfig, options
119
102
  id: `${string}-${string}-${string}-${string}-${string}`;
120
103
  label: string;
121
104
  hostname: string;
122
- attributes: JSONSchemaType<{
123
- $pageLanguage: string;
124
- $pagePath: string;
125
- $pageTitle: string;
126
- $pageDescription: string;
127
- $pageKeywords: string;
128
- $pageLastUpdated: string;
129
- $pageWidth: string;
130
- $pagePaddingVertical: string;
131
- $pagePaddingHorizontal: string;
132
- $backgroundColor: string;
133
- $textColor: string;
134
- }>;
105
+ attributes: JSONSchemaType<Attributes>;
135
106
  datasources: {
136
107
  [x: string]: {
137
108
  description?: string | undefined;
109
+ options?: {
110
+ order?: string | undefined;
111
+ refreshInterval?: number | undefined;
112
+ maxResults?: number | undefined;
113
+ regionCode?: string | undefined;
114
+ relevanceLanguage?: string | undefined;
115
+ channelId: string;
116
+ } | {
117
+ refreshInterval?: number | undefined;
118
+ limit?: number | undefined;
119
+ } | {
120
+ refreshInterval?: number | undefined;
121
+ username: string;
122
+ } | {
123
+ headers?: {
124
+ [x: string]: string;
125
+ } | undefined;
126
+ refreshInterval?: number | undefined;
127
+ url: string;
128
+ } | {
129
+ refreshInterval?: number | undefined;
130
+ url: string;
131
+ } | {
132
+ refreshInterval?: number | undefined;
133
+ maxCount?: number | undefined;
134
+ } | {} | {} | {} | {} | {} | {} | undefined;
138
135
  sampleData?: any;
136
+ ttlMinutes?: number | undefined;
139
137
  refresh?: {
140
138
  interval?: number | undefined;
141
139
  method: "manual" | "interval" | "live";
142
140
  } | undefined;
143
141
  name: string;
144
- options: any;
145
- provider: "facebook-posts" | "mastodon-status" | "rss" | "threads-media" | "tiktok-video" | "youtube-list" | "json" | "instragram-feed" | "generic";
142
+ provider: "facebook-posts" | "mastodon-status" | "rss" | "threads-media" | "tiktok-video" | "youtube-list" | "json" | "instragram-feed" | "internal-blog" | "internal-changelog" | "internal-contact-info" | "internal-faq" | "internal-links" | "internal-recipes";
146
143
  } | {
147
144
  description?: string | undefined;
145
+ options?: {} | undefined;
148
146
  sampleData?: any;
149
- refresh?: {
150
- interval?: number | undefined;
151
- method: "manual" | "interval";
152
- } | undefined;
153
- schema: any;
147
+ schema: {}[] | {};
154
148
  name: string;
155
- provider: "generic";
149
+ provider: "custom";
156
150
  };
157
151
  } | undefined;
158
152
  themes: {
@@ -206,7 +200,7 @@ export declare function getNewSiteConfig(templateConfig: TemplateConfig, options
206
200
  };
207
201
  };
208
202
  pagesMap: {
209
- id: `${string}-${string}-${string}-${string}-${string}`;
203
+ id: string;
210
204
  label: string;
211
205
  path: string;
212
206
  tags: string[];
@@ -457,7 +451,9 @@ export declare const templatePageSchema: import("@sinclair/typebox").TObject<{
457
451
  }>>;
458
452
  tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
459
453
  }>;
460
- export type TemplatePage = Static<typeof templatePageSchema>;
454
+ export type TemplatePage = Static<typeof templatePageSchema> & {
455
+ attributes?: JSONSchemaType<Attributes>;
456
+ };
461
457
  export declare const definedTemplatePage: import("@sinclair/typebox").TObject<{
462
458
  path: import("@sinclair/typebox").TString;
463
459
  label: import("@sinclair/typebox").TString;
@@ -738,17 +734,14 @@ export declare const templateSchema: import("@sinclair/typebox").TObject<{
738
734
  }>>>;
739
735
  }>>;
740
736
  datasources: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
741
- provider: import("@sinclair/typebox").TLiteral<"generic">;
737
+ provider: import("@sinclair/typebox").TLiteral<"custom">;
738
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
739
+ schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{}>>, import("@sinclair/typebox").TObject<{}>]>;
742
740
  name: import("@sinclair/typebox").TString;
743
741
  description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
744
- schema: import("@sinclair/typebox").TAny;
745
- refresh: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
746
- method: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"interval">, import("@sinclair/typebox").TLiteral<"manual">]>;
747
- interval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
748
- }>>;
749
742
  sampleData: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
750
743
  }>, import("@sinclair/typebox").TObject<{
751
- options: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TAny, import("@sinclair/typebox").TObject<{
744
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{
752
745
  refreshInterval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
753
746
  headers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
754
747
  url: import("@sinclair/typebox").TString;
@@ -777,11 +770,12 @@ export declare const templateSchema: import("@sinclair/typebox").TObject<{
777
770
  maxResults: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
778
771
  regionCode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
779
772
  relevanceLanguage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
780
- }>]>;
781
- provider: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"generic">, import("@sinclair/typebox").TLiteral<"json">, import("@sinclair/typebox").TLiteral<"tiktok-video">, import("@sinclair/typebox").TLiteral<"rss">, import("@sinclair/typebox").TLiteral<"mastodon-status">, import("@sinclair/typebox").TLiteral<"threads-media">, import("@sinclair/typebox").TLiteral<"instragram-feed">, import("@sinclair/typebox").TLiteral<"facebook-posts">, import("@sinclair/typebox").TLiteral<"youtube-list">]>;
773
+ }>]>>;
774
+ provider: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"internal-recipes">, import("@sinclair/typebox").TLiteral<"internal-links">, import("@sinclair/typebox").TLiteral<"internal-faq">, import("@sinclair/typebox").TLiteral<"internal-contact-info">, import("@sinclair/typebox").TLiteral<"internal-changelog">, import("@sinclair/typebox").TLiteral<"internal-blog">, import("@sinclair/typebox").TLiteral<"json">, import("@sinclair/typebox").TLiteral<"tiktok-video">, import("@sinclair/typebox").TLiteral<"rss">, import("@sinclair/typebox").TLiteral<"mastodon-status">, import("@sinclair/typebox").TLiteral<"threads-media">, import("@sinclair/typebox").TLiteral<"instragram-feed">, import("@sinclair/typebox").TLiteral<"facebook-posts">, import("@sinclair/typebox").TLiteral<"youtube-list">]>;
782
775
  description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
783
776
  name: import("@sinclair/typebox").TString;
784
777
  sampleData: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
778
+ ttlMinutes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
785
779
  refresh: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
786
780
  method: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"interval">, import("@sinclair/typebox").TLiteral<"manual">, import("@sinclair/typebox").TLiteral<"live">]>;
787
781
  interval: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/shared/page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/shared/page.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/enpage/enpage/blob/main/LICENSE */
2
2
 
3
- import{a as T}from"./chunk-XGI243DO.js";import{a as v}from"./chunk-V4SJKXET.js";import{b as x}from"./chunk-W4DP2HKI.js";import{c as O,d as S}from"./chunk-EK4FWGFA.js";import"./chunk-6PCNIIO5.js";import"./chunk-WF7I53QW.js";import"./chunk-EU3VNNEO.js";import"./chunk-SL7GGSYB.js";import"./chunk-2OS3QYKE.js";import"./chunk-Z4S5CCLQ.js";import"./chunk-TVKRK6P4.js";import"./chunk-J6I3OMQO.js";import"./chunk-FNY3QNEQ.js";import"./chunk-VEXGLSUP.js";import"./chunk-BND2TMDC.js";import"./chunk-2MYSBGXT.js";import"./chunk-NCF46HSZ.js";import"./chunk-XBV2Q4OR.js";import"./chunk-QXB632SL.js";import"./chunk-KGJQ6Z5A.js";import"./chunk-XL6LPHCI.js";import"./chunk-W6X5NC5M.js";import"./chunk-QOPZIE3U.js";import"./chunk-PXAK7ZJ3.js";import{Type as i}from"@sinclair/typebox";import{Type as t}from"@sinclair/typebox";import{Type as r}from"@sinclair/typebox";import{Type as g}from"@sinclair/typebox";var a=g.Object({refreshInterval:g.Optional(g.Number())});var C=r.Composite([a,r.Object({channelId:r.String(),order:r.Optional(r.String()),maxResults:r.Optional(r.Number()),regionCode:r.Optional(r.String()),relevanceLanguage:r.Optional(r.String())})]);import{Type as d}from"@sinclair/typebox";var f=d.Composite([a,d.Object({limit:d.Optional(d.Number())})]);import{Type as y}from"@sinclair/typebox";var M=y.Composite([a,y.Object({username:y.String()})]);import{Type as p}from"@sinclair/typebox";var P=p.Composite([a,p.Object({url:p.String(),headers:p.Optional(p.Record(p.String(),p.String()))})]);import{Type as h}from"@sinclair/typebox";var j=h.Composite([a,h.Object({url:h.String({format:"uri"})})]);import{Type as m}from"@sinclair/typebox";var L=m.Composite([a,m.Object({maxCount:m.Optional(m.Number()),refreshInterval:m.Optional(m.Number())})]);var dt=t.Union([t.Literal("facebook-posts"),t.Literal("instagram-feed"),t.Literal("mastodon-status"),t.Literal("rss"),t.Literal("threads-media"),t.Literal("tiktok-video"),t.Literal("youtube-list"),t.Literal("json")]),D=t.Union([t.Object({provider:t.Literal("youtube-list"),options:C}),t.Object({provider:t.Literal("facebook-posts"),options:f}),t.Object({provider:t.Literal("instragram-feed"),options:f}),t.Object({provider:t.Literal("threads-media"),options:f}),t.Object({provider:t.Literal("mastodon-status"),options:M}),t.Object({provider:t.Literal("rss"),options:j}),t.Object({provider:t.Literal("tiktok-video"),options:L}),t.Object({provider:t.Literal("json"),options:P,schema:t.Union([t.Array(t.Object({},{additionalProperties:!0})),t.Object({},{additionalProperties:!0})])}),t.Object({provider:t.Literal("generic"),options:t.Any(),schema:t.Union([t.Array(t.Object({},{additionalProperties:!0})),t.Object({},{additionalProperties:!0})])})]),N=t.Composite([D,t.Object({name:t.String({title:"Name of the datasource",comment:"For example, 'My data'"}),description:t.Optional(t.String({title:"Description of the datasource"})),sampleData:t.Optional(t.Any()),refresh:t.Optional(t.Object({method:t.Union([t.Literal("interval"),t.Literal("manual"),t.Literal("live")]),interval:t.Optional(t.Number())},{title:"Refresh options",description:"Options to refresh the datasource"}))})]),R=t.Object({provider:t.Literal("generic",{title:"Generic",description:"Generic datasource is saved locally in Upstart."}),name:t.String({title:"Name of the datasource",comment:"For example, 'My data'"}),description:t.Optional(t.String({title:"Description of the datasource"})),schema:t.Any({}),refresh:t.Optional(t.Object({method:t.Union([t.Literal("interval"),t.Literal("manual")]),interval:t.Optional(t.Number())},{title:"Refresh options",description:"Options to refresh the datasource"})),sampleData:t.Optional(t.Any({title:"Sample data",description:"Sample data for the datasource. Should match the declared schema."}))}),A=t.Record(t.String(),t.Union([R,N]),{title:"Datasources map",description:"The map of datasources available in the system"});import{Type as e}from"@sinclair/typebox";var k=e.Object({id:e.Optional(e.String({title:"Template ID",description:"A unique identifier for the template. Can be any string, but should be unique."})),name:e.String({title:"Template Name"}),description:e.Optional(e.String({title:"Show template description"})),readme:e.Optional(e.Record(e.RegExp(/^[a-z]{2}$/),e.String(),{title:"Readme texts.",description:"A dictionary of readme files for different languages (iso 2 letters code). Currently on supported for 'en' and 'fr'."})),tags:e.Optional(e.Array(e.String(),{title:"Tags"})),author:e.Optional(e.String({title:"Author name"})),thumbnail:e.Optional(e.String({title:"Thumbnail",description:"A URL to the thumbnail image for the template."})),homepage:e.Optional(e.String({title:"Homepage",description:"A URL to the homepage of the template."}))});import{customAlphabet as U}from"nanoid";var I=U("1234567890abcdefghijklmnopqrstuvwxyz",7);function Ct(o){return{attributes:o.attributes,manifest:o.manifest,pages:o.pages.map(s=>({...s,tags:s.tags??[]})),themes:o.themes,...o.datasources?{datasources:o.datasources}:{}}}function G(o,s="/"){let n=o.pages.find(b=>b.path===s);T(n,`createPageConfigFromTemplateConfig: No page config found for path ${s}`);let u=n.bricks,l=S(o.attributes);return{id:crypto.randomUUID(),label:n.label,tags:n.tags,path:s,attr:l,bricks:u,attributes:o.attributes}}function Mt(o,s={label:"New site"}){let n=crypto.randomUUID(),u=`${I()}.upstart.gg`,l=o.pages.map(c=>G(o,c.path));return{site:{id:n,label:s.label,hostname:u,attributes:o.attributes,datasources:o.datasources,themes:o.themes,theme:o.themes[0],pagesMap:l.map(c=>({id:crypto.randomUUID(),label:c.label,path:c.path,tags:c.tags}))},pages:l}}var J=i.Object({label:i.String(),path:i.String(),bricks:i.Array(x),tags:i.Array(i.String())}),w=i.Composite([i.Omit(J,["tags"]),i.Object({tags:i.Optional(i.Array(i.String()))})]),Pt=i.Object({manifest:k,themes:i.Array(v),datasources:i.Optional(A),attributes:i.Optional(O),pages:i.Array(w)},{title:"Template schema",description:"The template configuration schema"});export{Ct as defineConfig,w as definedTemplatePage,G as getNewPageConfig,Mt as getNewSiteConfig,J as templatePageSchema,Pt as templateSchema};
3
+ import{a as f}from"./chunk-V4SJKXET.js";import{b as u}from"./chunk-KBZEUEEY.js";import{a as l}from"./chunk-XGI243DO.js";import{b as c}from"./chunk-W4DP2HKI.js";import{c as m,d as g}from"./chunk-YTITIU5G.js";import"./chunk-6PCNIIO5.js";import"./chunk-WF7I53QW.js";import"./chunk-EU3VNNEO.js";import"./chunk-SL7GGSYB.js";import"./chunk-2OS3QYKE.js";import"./chunk-Z4S5CCLQ.js";import"./chunk-TVKRK6P4.js";import"./chunk-J6I3OMQO.js";import"./chunk-FNY3QNEQ.js";import"./chunk-VEXGLSUP.js";import"./chunk-BND2TMDC.js";import"./chunk-2MYSBGXT.js";import"./chunk-NCF46HSZ.js";import"./chunk-XBV2Q4OR.js";import"./chunk-QXB632SL.js";import"./chunk-KGJQ6Z5A.js";import"./chunk-XL6LPHCI.js";import"./chunk-W6X5NC5M.js";import"./chunk-QOPZIE3U.js";import"./chunk-PXAK7ZJ3.js";import{Type as a}from"@sinclair/typebox";import{Type as e}from"@sinclair/typebox";var d=e.Object({id:e.Optional(e.String({title:"Template ID",description:"A unique identifier for the template. Can be any string, but should be unique."})),name:e.String({title:"Template Name"}),description:e.Optional(e.String({title:"Show template description"})),readme:e.Optional(e.Record(e.RegExp(/^[a-z]{2}$/),e.String(),{title:"Readme texts.",description:"A dictionary of readme files for different languages (iso 2 letters code). Currently on supported for 'en' and 'fr'."})),tags:e.Optional(e.Array(e.String(),{title:"Tags"})),author:e.Optional(e.String({title:"Author name"})),thumbnail:e.Optional(e.String({title:"Thumbnail",description:"A URL to the thumbnail image for the template."})),homepage:e.Optional(e.String({title:"Homepage",description:"A URL to the homepage of the template."}))});import{customAlphabet as h}from"nanoid";var b=h("1234567890abcdefghijklmnopqrstuvwxyz",7);function j(t){return{attributes:t.attributes,manifest:t.manifest,pages:t.pages,themes:t.themes,...t.datasources?{datasources:t.datasources}:{}}}function y(t,s="/"){let i=t.pages.find(n=>n.path===s);l(i,`createPageConfigFromTemplateConfig: No page config found for path ${s}`);let p=i.bricks,o=g(i.attributes??t.attributes);return{id:crypto.randomUUID(),label:i.label,tags:i.tags,path:s,attr:o,bricks:p,attributes:i.attributes??t.attributes}}function v(t,s={label:"New site"}){let i=crypto.randomUUID(),p=`${b()}.upstart.gg`,o=t.pages.map(r=>y(t,r.path));return{site:{id:i,label:s.label,hostname:p,attributes:t.attributes,datasources:t.datasources,themes:t.themes,theme:t.themes[0],pagesMap:o.map(r=>({id:r.id,label:r.label,path:r.path,tags:r.tags}))},pages:o}}var S=a.Object({label:a.String(),path:a.String(),bricks:a.Array(c),tags:a.Array(a.String())}),T=a.Composite([a.Omit(S,["tags"]),a.Object({tags:a.Optional(a.Array(a.String()))})]),w=a.Object({manifest:d,themes:a.Array(f),datasources:a.Optional(u),attributes:a.Optional(m),pages:a.Array(T)},{title:"Template schema",description:"The template configuration schema"});export{j as defineConfig,T as definedTemplatePage,y as getNewPageConfig,v as getNewSiteConfig,S as templatePageSchema,w as templateSchema};
@@ -1 +1 @@
1
- {"version":3,"file":"test-config.d.ts","sourceRoot":"","sources":["../../../src/shared/tests/test-config.ts"],"names":[],"mappings":";AAuMA,wBAkBG"}
1
+ {"version":3,"file":"test-config.d.ts","sourceRoot":"","sources":["../../../src/shared/tests/test-config.ts"],"names":[],"mappings":";AAwMA,wBAkBG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@upstart.gg/sdk",
3
- "version": "0.0.71",
3
+ "version": "0.0.73",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",