@upstart.gg/sdk 0.0.90 → 0.0.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node/cli/api.js +2 -2
- package/dist/node/cli/commands/login/cmd-login.js +1 -1
- package/dist/node/cli/commands/publish/cmd-publish.js +20 -23
- package/dist/node/cli/commands/publish/uploader.js +1 -1
- package/dist/node/cli/is-logged-in.js +1 -1
- package/dist/node/cli/program.js +25 -28
- package/dist/node/shared/config.d.ts.map +1 -1
- package/dist/node/shared/config.js +4 -7
- package/dist/node/shared/logger.js +2 -2
- package/dist/shared/bricks/manifests/all-manifests.js +1 -1
- package/dist/shared/bricks/manifests/button.manifest.js +1 -1
- package/dist/shared/bricks/manifests/card.manifest.js +1 -1
- package/dist/shared/bricks/manifests/container.manifest.js +1 -1
- package/dist/shared/bricks/manifests/header.manifest.js +1 -1
- package/dist/shared/bricks/manifests/hero.manifest.js +1 -1
- package/dist/shared/bricks/manifests/image.manifest.js +1 -1
- package/dist/shared/bricks/manifests/images-gallery.manifest.js +1 -1
- package/dist/shared/bricks/manifests/text.manifest.js +1 -1
- package/dist/shared/bricks/props/_docs-common-styles.js +1 -1
- package/dist/shared/bricks.js +1 -1
- package/dist/shared/{chunk-U5WW6K7W.js → chunk-6I4PY5WS.js} +1 -1
- package/dist/shared/{chunk-OTJI3IWM.js → chunk-CP2GSNLX.js} +1 -1
- package/dist/shared/{chunk-ERSFH7XA.js → chunk-EFJQECVB.js} +1 -1
- package/dist/shared/{chunk-4FLI7C3B.js → chunk-GDLXGNMG.js} +1 -1
- package/dist/shared/{chunk-BXEKJXEP.js → chunk-HW5TY2QW.js} +1 -1
- package/dist/shared/{chunk-QCQH5WLN.js → chunk-NFU5BF6G.js} +1 -1
- package/dist/shared/{chunk-SWGSHUTE.js → chunk-NUJO6EYU.js} +1 -1
- package/dist/shared/{chunk-V2NS45PF.js → chunk-QRBMK5UX.js} +1 -1
- package/dist/shared/{chunk-6MEWEGNA.js → chunk-TQ23UATQ.js} +1 -1
- package/dist/shared/{chunk-IKAMZM4I.js → chunk-XEQ2XZLQ.js} +1 -1
- package/dist/shared/chunk-YLAVY3GS.js +3 -0
- package/dist/shared/page.js +1 -1
- package/dist/shared/responsive.d.ts +3 -3
- package/dist/shared/responsive.d.ts.map +1 -1
- package/dist/shared/responsive.js +1 -1
- package/dist/shared/template.js +1 -1
- package/package.json +3 -5
- package/dist/shared/chunk-S64XUCWM.js +0 -3
package/dist/node/cli/api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import{createLogger as T}from"vite";var g="0.0.
|
|
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="upstart-cli";var w=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",d=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",A=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg";import E from"conf";import c from"node:path";import _ from"node:crypto";import a from"node:fs";import{fileURLToPath as L}from"node:url";import
|
|
3
|
+
import{createLogger as T}from"vite";var g="0.0.92";import i from"chalk";function h(e,t,o=!1){let s=T(e==="debug"?"info":e,{prefix:"[upstart]",allowClearScreen:t});return o&&s.info(i.hex("#7270c6").bold(`\u{1F680} Upstart v${g}
|
|
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="upstart-cli";var w=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",d=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",A=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg";import E from"conf";import c from"node:path";import _ from"node:crypto";import a from"node:fs";import{fileURLToPath as L}from"node:url";import z from"chalk";var R=L(new URL(".",import.meta.url)),x=S(),u=new E({projectName:m,encryptionKey:x,clearInvalidConfig:!0});function O(){let e=R;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 S(){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}),r}return a.readFileSync(o,"utf8")}async function J(e,t,o={}){u.get("access_token")&&(o.Authorization=`Bearer ${u.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={}){u.get("access_token")&&(t.Authorization=`Bearer ${u.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(d.endsWith("/")?d:`${d}/`);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/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import U from"chalk";import{confirm as N}from"@inquirer/prompts";import b from"open";var y="upstart-cli";var g=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",u=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",j=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg";var _="oauth/devicecode",T="oauth/token";import{createLogger as L}from"vite";var h="0.0.
|
|
3
|
+
import U from"chalk";import{confirm as N}from"@inquirer/prompts";import b from"open";var y="upstart-cli";var g=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",u=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",j=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg";var _="oauth/devicecode",T="oauth/token";import{createLogger as L}from"vite";var h="0.0.92";import i from"chalk";function x(t,e,n=!1){let s=L(t==="debug"?"info":t,{prefix:"[upstart]",allowClearScreen:e});return n&&s.info(i.hex("#7270c6").bold(`\u{1F680} Upstart v${h}
|
|
4
4
|
`)),{...s,success:(r,o)=>s.info(i.green(r),o),error:(r,o)=>s.error(i.red(r),o),warn:(r,o)=>s.warn(i.yellow(r),o),warnOnce:(r,o)=>s.warnOnce(i.yellow(r),o),debug:(r,o)=>{t==="debug"&&s.info(i.gray(r),o)}}}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 k=v(new URL(".",import.meta.url)),w=P(),p=new R({projectName:y,encryptionKey:w,clearInvalidConfig:!0});function S(){let t=k;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 P(){let t=S();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}),r}return a.readFileSync(n,"utf8")}async function l(t,e,n={}){p.get("access_token")&&(n.Authorization=`Bearer ${p.get("access_token")}`);let s=await fetch(C(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 I(s)}function C(t){let e=new URL(u.endsWith("/")?u:`${u}/`);return new URL(t,e)}async function I(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 A(t,e){for(;;){let n=new URLSearchParams({grant_type:"device_code",device_code:t,client_id:g}),s=await l(T,n),{data:r,isSuccess:o}=s;if(o)return r;if(r.error==="authorization_pending")await new Promise(f=>setTimeout(f,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:s}=await l(_,{client_id:g,scope:"profile,templates:publish"});n&&(e.error("Failed to get device code. Please try again."),e.error(`Error: ${s.error_description??s.error}`),process.exit(1));let{verification_uri:r,device_code:o}=s;await N({message:"Would you like to open the login page in your browser?",default:!0}).catch(D=>{process.exit(0)})?b(r):e.info(`
|
|
6
6
|
Please visit the following URL to login:
|
|
@@ -1,33 +1,30 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
`)),{...s,success:(o,n)=>s.info(
|
|
5
|
-
${
|
|
6
|
-
${u.trim()}`:i.name.trim(),o.set(i.name.toLowerCase().trim(),i);continue}
|
|
3
|
+
var me=Object.defineProperty;var x=(e,t)=>()=>(e&&(t=e(e=0)),t);var fe=(e,t)=>{for(var r in t)me(e,r,{get:t[r],enumerable:!0})};function D(){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 q(e){return`[${e.error}]${e.error_description?`: ${e.error_description}`:""}`}var W=x(()=>{"use strict"});var J,dt,P,gt,X,Y,K,b=x(()=>{"use strict";J="upstart-cli",dt=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",P=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",gt=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg",X=10,Y="oauth/userinfo",K="v1/templates"});import ye from"conf";import C from"node:path";import he from"node:crypto";import R from"node:fs";import{fileURLToPath as Se}from"node:url";import Ee from"chalk";function V(){let e=f.get("access_token");if(!e){let t=D();throw new Error(`Access token not found. Please run ${Ee.cyan(`${t} run enpage:login`)} to authenticate.`)}return e}function we(){let e=Te;for(;e!==C.parse(e).root;){let t=C.join(e,"node_modules");if(R.existsSync(t))return t;e=C.dirname(e)}return null}function _e(){let e=we();if(!e)throw new Error("Could not find nearest node_modules directory.");let t=C.join(e,".enpage-tmp");R.existsSync(t)||R.mkdirSync(t,{recursive:!0,mode:448});let r=C.join(t,".enpage-key");if(!R.existsSync(r)){let o=he.randomBytes(32).toString("hex");return R.writeFileSync(r,o,{mode:384}),o}return R.readFileSync(r,"utf8")}var Te,Pe,f,F=x(()=>{"use strict";b();W();Te=Se(new URL(".",import.meta.url)),Pe=_e(),f=new ye({projectName:J,encryptionKey:Pe,clearInvalidConfig:!0})});var Z,Q=x(()=>{Z="0.0.92"});import{createLogger as be}from"vite";import k from"chalk";function Re(e,t,r=!1){let s=be(e==="debug"?"info":e,{prefix:"[upstart]",allowClearScreen:t});return r&&s.info(k.hex("#7270c6").bold(`\u{1F680} Upstart v${Z}
|
|
4
|
+
`)),{...s,success:(o,n)=>s.info(k.green(o),n),error:(o,n)=>s.error(k.red(o),n),warn:(o,n)=>s.warn(k.yellow(o),n),warnOnce:(o,n)=>s.warnOnce(k.yellow(o),n),debug:(o,n)=>{e==="debug"&&s.info(k.gray(o),n)}}}var g,G=x(()=>{"use strict";Q();g=Re()});var oe={};fe(oe,{get:()=>De,post:()=>v});async function v(e,t,r={}){f.get("access_token")&&(r.Authorization=`Bearer ${f.get("access_token")}`);let s=await fetch(re(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(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(s)}async function De(e,t={}){f.get("access_token")&&(t.Authorization=`Bearer ${f.get("access_token")}`);let r=await fetch(re(e),{headers:t,method:"GET"}).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(r)}function re(e){let t=new URL(P.endsWith("/")?P:`${P}/`);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 z=x(()=>{"use strict";G();b();F()});W();F();import{resolve as y}from"node:path";import{existsSync as j,readFileSync as it,writeFileSync as at}from"node:fs";import E from"chalk";b();G();import I from"node:path";import N from"node:fs";import Fe from"node:crypto";import Ge from"fast-glob";import ie from"node:http";import Be from"node:https";import{pipeline as Me}from"node:stream";import ne from"chalk";import ze from"form-data";import*as B from"node:fs";var ke=/[<>"|?*\n\r\t\f\x00-\x1F]/,Ae=/(?:^|\/)[*]{2}($|\/)/,$e=248,Le=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Oe=e=>typeof e=="string"&&e.length<=$e&&!ke.test(e),Ue=e=>e.split(/\r\n?|\n/);var Ce=e=>Le(e)&&Array.isArray(e.patterns)&&Array.isArray(e.sections);var M=(e,t={})=>{let r=t.path;if(Ce(e))return e;Oe(e)&&B.existsSync(e)&&(r=e,e=B.readFileSync(e,"utf8"));let s=Ue(e),o=new Map,n={sections:[],patterns:[]},c={name:"default",patterns:[]},i=null;for(let a of s){let p=a.trim();if(p.startsWith("#")){let[,u]=/^#+\s*(.*)\s*$/.exec(p)||[];if(i){o.delete(i.name),i.comment=i.comment?`${i.comment}
|
|
5
|
+
${p}`:p,i.name=u?`${i.name.trim()}
|
|
6
|
+
${u.trim()}`:i.name.trim(),o.set(i.name.toLowerCase().trim(),i);continue}c={name:u?.trim()||"",comment:p,patterns:[]},o.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=ee(n,{...t,format:!1})),n.path=r,n.input=Buffer.from(e),n.format=a=>je(n,{...t,...a}),n.dedupe=a=>ee(n,{...t,...a}),n.globs=a=>Ie(n,{path:r,...t,...a}),n};var ee=(e,t)=>{let r=M(e,{...t,dedupe:!1}),s=new Map,o={sections:[],patterns:[]},n;for(let c of r.sections){let{name:i="",comment:a,patterns:p}=c,u=i.trim().toLowerCase();for(let m of p)o.patterns.includes(m)||o.patterns.push(m);i&&s.has(u)?(n=s.get(u),n.patterns=[...n.patterns,...p]):(n={name:i,comment:a,patterns:p},o.sections.push(n),s.set(u,n))}for(let c of o.sections)c.patterns=[...new Set(c.patterns)];return o},ve=e=>{if(Ae.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}`},Ie=(e,t={})=>{let r=M(e,t),s=[],o=0,n=r.patterns.concat(t.ignore||[]).concat((t.unignore||[]).map(i=>i.startsWith("!")?i:`!${i}`)),c=(i,a)=>{let p=s[s.length-1],u=i?"unignore":"ignore";p&&p.type===u?p.patterns.includes(a)||p.patterns.push(a):(s.push({type:u,path:t.path||null,patterns:[a],index:o}),o++)};for(let i of n){let a="";i.startsWith("!")&&(i=i.slice(1),a="!"),c(a,i.startsWith("/")?i.slice(1):i),c(a,ve(i))}return s},Ne=(e={name:"",patterns:[]})=>{let t=[e.comment||""];return e.patterns?.length&&(t.push(e.patterns.join(`
|
|
7
7
|
`)),t.push("")),t.join(`
|
|
8
|
-
`)},
|
|
9
|
-
`)};var
|
|
10
|
-
`))}async function
|
|
11
|
-
`),g.info("The following files would have been uploaded:"),i.forEach(
|
|
8
|
+
`)},je=(e,t={})=>{let r=M(e,t),s=t.formatSection||Ne,o=r.sections||r,n=[];for(let c of[].concat(o))n.push(s(c));return n.join(`
|
|
9
|
+
`)};var te=M;z();import We from"p-queue";import He from"ora";import{customAlphabet as qe}from"nanoid";var A=class extends Error{constructor(r,s,o){super(`${r}: ${s}`);this.error=r;this.error_description=s;this.filename=o;this.name="UploadError"}},Je={maxDataSize:12*1024*1024,retryAttempts:2,retryDelay:1e3},Xe=new ie.Agent({keepAlive:!0,maxSockets:10,keepAliveMsecs:3e3});async function Ye(e){let t=I.join(e,".gitignore"),s=N.existsSync(t)?te(N.readFileSync(t,"utf-8")).patterns:[];return Ge("**/*",{cwd:e,onlyFiles:!0,dot:!0,absolute:!0,ignore:["node_modules/**",".cache/**","**/.DS_Store",".gitignore",".env",".env.*",".git/**","dist/**",...s]})}async function Ke(e,t,r,s,o,n,c){let i=async a=>{try{return await Ve(e,t,r,s,o,n,c)}catch(p){if(a<c.retryAttempts)return g.warn(`Retrying upload for ${t} (attempt ${a+1})`),await new Promise(u=>setTimeout(u,c.retryDelay)),i(a+1);throw p}};return i(0)}async function Ve(e,t,r,s,o,n,c){return new Promise((i,a)=>{let p=N.statSync(e),u=I.basename(e),m=Date.now(),h=new ze({maxDataSize:c.maxDataSize}),$=N.createReadStream(e),L=0,w=l=>{L+=l.length};$.on("data",w),h.append("file",$,{filename:u,knownLength:p.size});let _={agent:Xe,method:"POST",headers:{authorization:`Bearer ${n}`,"x-upstart-template-file-path":t,"x-upstart-template-id":s,...h.getHeaders()}},T=(r.startsWith("https")?Be:ie).request(r,_,l=>{let S="";l.on("data",O=>{S+=O}),l.on("end",()=>{let O=Date.now(),ge={fileName:u,fileSize:p.size,uploadDuration:O-m,statusCode:l.statusCode??0,serverResponse:S};if(l.statusCode&&l.statusCode>=200&&l.statusCode<300)o.text=`Uploaded ${t}`,i(ge);else{let U;if(l.headers["content-type"]?.startsWith("application/json")){let H=JSON.parse(S);U=new A(H.error||"unknown_error",H.error_description||"Unknown error occurred",t)}else U=new A("unknown_error",S||"Unknown error occurred",t);o.fail(`Failed to upload ${t} [${U.error}] ${U.error_description}`),a(U)}})});T.on("error",l=>{a(new A("request_error",l.message,t))}),Me(h,T,l=>{l&&a(new A("pipeline_error",`Pipeline failed for ${u}: ${l.message}`,t))})})}function Qe(e,t,r){r.length>0?(g.error(ne.red(`Failed to upload ${r.length} files:`)),r.forEach(s=>{let o=s.reason;g.error(`- ${o.filename}: ${o.error_description} (${o.error})`)})):g.info(ne.green(`Uploaded ${t.length} files successfully for template ${e}.
|
|
10
|
+
`))}async function ae(e,t,r,s=!1,o={}){let n={...Je,...o},c=new We({concurrency:X}),i=await Ye(t),a=i.length,p={},u=et(),m=0;for(let d of i){let T=I.relative(t,d),l=await Ze(d);p[T]=l}s&&(g.info(`Dry run mode enabled. Skipping upload.
|
|
11
|
+
`),g.info("The following files would have been uploaded:"),i.forEach(d=>g.info(`- ${d}`)),process.exit(0));let h=He(`Uploading ${a} files...`).start(),$=i.map(d=>{let T=I.resolve(t,d),l=I.relative(t,d),S=`${P}/v1/templates/${e}/upload/${u}`;return c.add(async()=>{let O=await Ke(T,l,S,e,h,r,n);return m++,O})}),L=await Promise.allSettled($);h.stop();let w=L.filter(d=>d.status==="fulfilled"),_=L.filter(d=>d.status==="rejected");if(Qe(e,w.map(d=>d.value),_),!_.length&&w.length){let d=`${P}/v1/templates/${e}/upload/${u}/finalize`,l=await v(d,{signatures:p});if(l.isError)return g.error(`Failed to finalize upload: ${l.data.error_description} (${l.data.error})`),{filesCount:a,uploadedFiles:w.map(S=>S.value),failedFiles:[],success:!1}}return{filesCount:a,uploadedFiles:w.map(d=>d.value),failedFiles:_,success:_.length===0}}async function Ze(e){let t=await Fe.subtle.digest("SHA-1",N.readFileSync(e));return Array.from(new Uint8Array(t)).map(r=>r.toString(16).padStart(2,"0")).join("")}function et(){let e=qe("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",5),t=new Date,r=t.getUTCFullYear(),s=(t.getUTCMonth()+1).toString().padStart(2,"0"),o=t.getUTCDate().toString().padStart(2,"0"),n=t.getUTCHours().toString().padStart(2,"0"),c=t.getUTCMinutes().toString().padStart(2,"0"),i=t.getUTCSeconds().toString().padStart(2,"0");return`${r}${s}${o}${n}${c}${i}_${e()}`}z();b();import de from"node:path";G();import tt from"node:fs";import{readFile as rt}from"node:fs/promises";import st from"fast-glob";import{basename as ce,dirname as ot,extname as nt}from"node:path";async function pe(e,t=g){tt.existsSync(e)||(t.error(`\u{1F534} No enpage.config.js found!
|
|
12
12
|
Your project must have an enpage.config.js file in the root directory.
|
|
13
13
|
|
|
14
|
-
`),process.exit(1));let r=await import(e),s=
|
|
15
|
-
`)
|
|
16
|
-
|
|
17
|
-
`),process.exit(1)}return e}R();G();async function me(e=!1){let t=y.get("access_token"),r=y.get("expires_at");if(!t)return!1;if(r&&r<Date.now())return console.log("Seems like your token expired..."),!1;if(!e)return!0;let{get:s}=await Promise.resolve().then(()=>(W(),ne)),{isSuccess:o}=await s(K);return o}async function _r({options:e,args:t,logger:r}){if(!await me(!0)){let f=F();r.error(` ${E.redBright("Error")}: User token not found. Please run ${E.cyan(`${f} run enpage:login`)} to authenticate or set the ${E.cyan("ENPAGE_API_TOKEN")} environment variable.
|
|
18
|
-
`),process.exit(1)}let s=t.length?ge.isAbsolute(t[0])?t[0]:h(process.cwd(),t[0]):process.cwd();D(s)||(r.error(` Template directory not found: ${s}. Aborting.
|
|
19
|
-
`),process.exit(1));let o=t.length>1?ge.isAbsolute(t[1])?t[1]:h(process.cwd(),t[1]):h(s,"dist");D(o)||(r.error(` Dist directory not found: ${o}.
|
|
14
|
+
`),process.exit(1));let r=await import(e),s=ot(e),o={},n=await st(["README.enpage.md","README.enpage.*.md"],{cwd:s,onlyFiles:!0,absolute:!0,caseSensitiveMatch:!1});for(let c of n){let i=ce(c,".md"),a=nt(i),p=(a===".enpage"?"en":a.substring(1)).toLowerCase();t.debug(`Found template readme file (${p}): ${ce(c)}`),o[p]=await rt(c,"utf-8")}return r.manifest&&(r.manifest.readme=o),r}function le(e,t){for(let r in e.datasources)if(e.datasources[r].provider==="json"&&!e.datasources[r].sampleData)throw t.error(`\u{1F534} Error: Datasource "${r}" is missing sample data - nothing will be rendered during development! Please check your enpage.config.js file and add a "sampleData" key to your ${r} datasource.`),new Error(`Missing sample data for datasource "${r}"`);return e}b();F();async function ue(e=!1){let t=f.get("access_token"),r=f.get("expires_at");if(!t)return!1;if(r&&r<Date.now())return console.log("Seems like your token expired..."),!1;if(!e)return!0;let{get:s}=await Promise.resolve().then(()=>(z(),oe)),{isSuccess:o}=await s(Y);return o}async function hr({options:e,args:t,logger:r}){if(!await ue(!0)){let m=D();r.error(` ${E.redBright("Error")}: User token not found. Please run ${E.cyan(`${m} run enpage:login`)} to authenticate or set the ${E.cyan("ENPAGE_API_TOKEN")} environment variable.
|
|
15
|
+
`),process.exit(1)}let s=t.length?de.isAbsolute(t[0])?t[0]:y(process.cwd(),t[0]):process.cwd();j(s)||(r.error(` Template directory not found: ${s}. Aborting.
|
|
16
|
+
`),process.exit(1));let o=t.length>1?de.isAbsolute(t[1])?t[1]:y(process.cwd(),t[1]):y(s,"dist");j(o)||(r.error(` Dist directory not found: ${o}.
|
|
20
17
|
Please run 'build' before publishing. Aborting.
|
|
21
|
-
`),process.exit(1)),
|
|
22
|
-
`),process.exit(1));let n=await
|
|
23
|
-
`),process.exit(1));let a=await
|
|
24
|
-
`),process.exit(1)),!a.enpage?.id){let{data:
|
|
25
|
-
`),process.exit(1)),a.enpage??={},a.enpage.id=
|
|
26
|
-
`),process.exit(1)}}let
|
|
27
|
-
`),(await
|
|
18
|
+
`),process.exit(1)),j(y(s,"enpage.config.js"))||(r.error(` ${E.redBright("Error")}: file enpage.config.js not found in ${s}. Aborting.
|
|
19
|
+
`),process.exit(1));let n=await pe(y(s,"enpage.config.js"),r);le(n,r);let c=V(),i=ct(s);i||(r.error(` ${E.redBright("Error")}: package.json file not found in ${s}. Aborting.
|
|
20
|
+
`),process.exit(1));let a=await pt(i);if(a||(r.error(` ${E.redBright("Error")}: cannot read/parse package.json file in ${s}. Aborting.
|
|
21
|
+
`),process.exit(1)),!a.enpage?.id){let{data:m,isError:h,status:$}=await v(K,{manifest:n.manifest});h&&(r.error(` ${E.redBright("Error")}: Cannot register template: ${q(m)}
|
|
22
|
+
`),process.exit(1)),a.enpage??={},a.enpage.id=m.template.id;try{e.dryRun||at(i,JSON.stringify(a,null,2))}catch{r.error(` ${E.redBright("Error")}: Cannot update template id in package.json file located in ${s}. Aborting.
|
|
23
|
+
`),process.exit(1)}}let p=a.enpage.id;r.info(`Submitting template to Enpage...
|
|
24
|
+
`),(await ae(p,s,c,e.dryRun)).success||(r.error(`
|
|
28
25
|
Upload failed. See details above.
|
|
29
|
-
`),process.exit(1)),r.success(`Template ${
|
|
30
|
-
`)}function
|
|
26
|
+
`),process.exit(1)),r.success(`Template ${p} published.
|
|
27
|
+
`)}function ct(e){return j(y(e,"package.json"))?y(e,"package.json"):j(y(e,"template-package.json"))?y(e,"template-package.json"):!1}function pt(e){try{return JSON.parse(it(e,"utf-8"))}catch{return null}}export{hr as publish};
|
|
31
28
|
/*!
|
|
32
29
|
* parse-gitignore <https://github.com/jonschlinkert/parse-gitignore>
|
|
33
30
|
* Copyright (c) 2015-present, Jon Schlinkert.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
import L from"node:path";import b from"node:fs";import ge from"node:crypto";import me from"fast-glob";var I="upstart-cli";var Oe=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",y=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",Ae=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg",N=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.
|
|
3
|
+
import L from"node:path";import b from"node:fs";import ge from"node:crypto";import me from"fast-glob";var I="upstart-cli";var Oe=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",y=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",Ae=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg",N=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.92";import _ from"chalk";function H(e,t,n=!1){let i=q(e==="debug"?"info":e,{prefix:"[upstart]",allowClearScreen:t});return n&&i.info(_.hex("#7270c6").bold(`\u{1F680} Upstart 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/upstart-gg/upstart/blob/main/LICENSE */
|
|
2
2
|
|
|
3
|
-
var O=Object.defineProperty;var c=(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,M,g,$,f,m=c(()=>{"use strict";y="upstart-cli",M=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",g=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",$=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg",f="oauth/userinfo"});import k from"conf";import u from"node:path";import P from"node:crypto";import a from"node:fs";import{fileURLToPath as I}from"node:url";import X from"chalk";function
|
|
3
|
+
var O=Object.defineProperty;var c=(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,M,g,$,f,m=c(()=>{"use strict";y="upstart-cli",M=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",g=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",$=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg",f="oauth/userinfo"});import k from"conf";import u from"node:path";import P from"node:crypto";import a from"node:fs";import{fileURLToPath as I}from"node:url";import X from"chalk";function v(){let e=U;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 N(){let e=v();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=P.randomBytes(32).toString("hex");return a.writeFileSync(s,r,{mode:384}),r}return a.readFileSync(s,"utf8")}var U,w,i,l=c(()=>{"use strict";m();U=I(new URL(".",import.meta.url)),w=N(),i=new k({projectName:y,encryptionKey:w,clearInvalidConfig:!0})});var _,T=c(()=>{_="0.0.92"});import{createLogger as b}from"vite";import p from"chalk";function C(e,t,s=!1){let o=b(e==="debug"?"info":e,{prefix:"[upstart]",allowClearScreen:t});return s&&o.info(p.hex("#7270c6").bold(`\u{1F680} Upstart v${_}
|
|
4
4
|
`)),{...o,success:(r,n)=>o.info(p.green(r),n),error:(r,n)=>o.error(p.red(r),n),warn:(r,n)=>o.warn(p.yellow(r),n),warnOnce:(r,n)=>o.warnOnce(p.yellow(r),n),debug:(r,n)=>{e==="debug"&&o.info(p.gray(r),n)}}}var d,h=c(()=>{"use strict";T();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(E(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(E(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 E(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=c(()=>{"use strict";h();m();l()});m();l();async function pe(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{pe as isLoggedIn};
|