@upstart.gg/sdk 0.0.92 → 0.0.93

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 (76) hide show
  1. package/dist/node/cli/api.js +2 -1
  2. package/dist/node/cli/api.js.map +1 -0
  3. package/dist/node/cli/commands/build/cmd-build.js +1 -0
  4. package/dist/node/cli/commands/build/cmd-build.js.map +1 -0
  5. package/dist/node/cli/commands/login/cmd-login.js +2 -1
  6. package/dist/node/cli/commands/login/cmd-login.js.map +1 -0
  7. package/dist/node/cli/commands/logout/cmd-logout.js +1 -0
  8. package/dist/node/cli/commands/logout/cmd-logout.js.map +1 -0
  9. package/dist/node/cli/commands/publish/cmd-publish.js +12 -11
  10. package/dist/node/cli/commands/publish/cmd-publish.js.map +1 -0
  11. package/dist/node/cli/commands/publish/parse-gitignore.js +1 -0
  12. package/dist/node/cli/commands/publish/parse-gitignore.js.map +1 -0
  13. package/dist/node/cli/commands/publish/uploader.js +2 -1
  14. package/dist/node/cli/commands/publish/uploader.js.map +1 -0
  15. package/dist/node/cli/constants.js +1 -0
  16. package/dist/node/cli/constants.js.map +1 -0
  17. package/dist/node/cli/is-logged-in.js +2 -1
  18. package/dist/node/cli/is-logged-in.js.map +1 -0
  19. package/dist/node/cli/program.js +3 -2
  20. package/dist/node/cli/program.js.map +1 -0
  21. package/dist/node/cli/store.js +1 -0
  22. package/dist/node/cli/store.js.map +1 -0
  23. package/dist/node/cli/types.js +1 -0
  24. package/dist/node/cli/types.js.map +1 -0
  25. package/dist/node/cli/utils.js +1 -0
  26. package/dist/node/cli/utils.js.map +1 -0
  27. package/dist/node/shared/config.d.ts.map +1 -1
  28. package/dist/node/shared/config.js +5 -4
  29. package/dist/node/shared/config.js.map +1 -0
  30. package/dist/node/shared/logger.js +2 -1
  31. package/dist/node/shared/logger.js.map +1 -0
  32. package/dist/shared/bricks/manifests/all-manifests.js +1 -1
  33. package/dist/shared/bricks/manifests/button.manifest.js +1 -1
  34. package/dist/shared/bricks/manifests/card.manifest.js +1 -1
  35. package/dist/shared/bricks/manifests/container.manifest.js +1 -1
  36. package/dist/shared/bricks/manifests/header.manifest.js +1 -1
  37. package/dist/shared/bricks/manifests/hero.manifest.js +1 -1
  38. package/dist/shared/bricks/manifests/image.manifest.js +1 -1
  39. package/dist/shared/bricks/manifests/images-gallery.manifest.js +1 -1
  40. package/dist/shared/bricks/manifests/text.manifest.js +1 -1
  41. package/dist/shared/bricks/props/_docs-common-styles.js +1 -1
  42. package/dist/shared/bricks.js +1 -1
  43. package/dist/shared/{chunk-GDLXGNMG.js → chunk-4FLI7C3B.js} +1 -1
  44. package/dist/shared/chunk-6LDLGZUM.js +3 -0
  45. package/dist/shared/{chunk-TQ23UATQ.js → chunk-6MEWEGNA.js} +1 -1
  46. package/dist/shared/{chunk-HW5TY2QW.js → chunk-BXEKJXEP.js} +1 -1
  47. package/dist/shared/{chunk-EFJQECVB.js → chunk-ERSFH7XA.js} +1 -1
  48. package/dist/shared/{chunk-XEQ2XZLQ.js → chunk-IKAMZM4I.js} +1 -1
  49. package/dist/shared/{chunk-NFU5BF6G.js → chunk-QCQH5WLN.js} +1 -1
  50. package/dist/shared/{chunk-CP2GSNLX.js → chunk-RHRJYPU3.js} +1 -1
  51. package/dist/shared/chunk-S64XUCWM.js +3 -0
  52. package/dist/shared/{chunk-NUJO6EYU.js → chunk-SWGSHUTE.js} +1 -1
  53. package/dist/shared/{chunk-6I4PY5WS.js → chunk-U5WW6K7W.js} +1 -1
  54. package/dist/shared/{chunk-QRBMK5UX.js → chunk-V2NS45PF.js} +1 -1
  55. package/dist/shared/chunk-YY6DANZF.js +3 -0
  56. package/dist/shared/datasources/external/json/schema.d.ts +6 -0
  57. package/dist/shared/datasources/external/json/schema.d.ts.map +1 -0
  58. package/dist/shared/datasources/schemas.d.ts +640 -16
  59. package/dist/shared/datasources/schemas.d.ts.map +1 -1
  60. package/dist/shared/datasources/schemas.js +1 -1
  61. package/dist/shared/datasources/types.d.ts +1316 -40
  62. package/dist/shared/datasources/types.d.ts.map +1 -1
  63. package/dist/shared/datasources/types.js +1 -1
  64. package/dist/shared/datasources.d.ts +1 -53
  65. package/dist/shared/datasources.d.ts.map +1 -1
  66. package/dist/shared/datasources.js +1 -1
  67. package/dist/shared/page.d.ts +1914 -12
  68. package/dist/shared/page.d.ts.map +1 -1
  69. package/dist/shared/page.js +1 -1
  70. package/dist/shared/template.d.ts +637 -4
  71. package/dist/shared/template.d.ts.map +1 -1
  72. package/dist/shared/template.js +1 -1
  73. package/package.json +3 -3
  74. package/dist/shared/chunk-7XRTVY2Z.js +0 -3
  75. package/dist/shared/chunk-HC4I5B3L.js +0 -3
  76. package/dist/shared/chunk-YLAVY3GS.js +0 -3
@@ -1,4 +1,5 @@
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 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${_}
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.93"});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};
5
+ //# sourceMappingURL=is-logged-in.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/node/cli/constants.ts","../../../src/node/cli/store.ts","../../../package.json","../../../src/node/shared/logger.ts","../../../src/node/cli/api.ts","../../../src/node/cli/is-logged-in.ts"],"sourcesContent":["export const CLI_PROJECT_NAME = \"upstart-cli\";\nexport const CLI_LOGIN_POLL_INTERVAL = 5000; // seconds\nexport const CLI_LOGIN_CLIENT_ID =\n process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID ?? \"50000000-0000-0000-0000-000000000001\";\n\nexport const API_BASE_URL = process.env.PUBLIC_UPSTART_API_BASE_URL ?? \"https://api.upstart.gg\";\nexport const EDITOR_BASE_URL = process.env.PUBLIC_UPSTART_EDITOR_BASE_URL ?? \"https://upstart.gg\";\nexport const DEFAULT_UPLOAD_MAX_CONCURRENCY = 10;\n\nexport const OAUTH_ENDPOINT_DEVICE_CODE = \"oauth/devicecode\";\nexport const OAUTH_ENDPOINT_TOKEN = \"oauth/token\";\nexport const OAUTH_ENDPOINT_USER_INFO = \"oauth/userinfo\";\n\nexport const API_ENDPOINT_REGISTER_TEMPLATE = \"v1/templates\";\n","import type { CredentialsStore } from \"./types\";\nimport { CLI_PROJECT_NAME, OAUTH_ENDPOINT_USER_INFO } from \"./constants\";\nimport Conf from \"conf\";\nimport path from \"node:path\";\nimport crypto from \"node:crypto\";\nimport fs from \"node:fs\";\nimport { fileURLToPath } from \"node:url\";\nimport { getPackageManager } from \"./utils\";\nimport chalk from \"chalk\";\n\nconst __dirname = fileURLToPath(new URL(\".\", import.meta.url));\nconst key = getKey();\nconst accessStore = new Conf<CredentialsStore>({\n projectName: CLI_PROJECT_NAME,\n encryptionKey: key,\n clearInvalidConfig: true,\n});\n\n/**\n * Get access token or throw error if not found\n */\nexport function getTokenOrThrow() {\n const token = accessStore.get(\"access_token\");\n if (!token) {\n const pkgCmd = getPackageManager();\n throw new Error(\n `Access token not found. Please run ${chalk.cyan(`${pkgCmd} run enpage:login`)} to authenticate.`,\n );\n }\n return token;\n}\n\nfunction findNearestNodeModules(): string | null {\n let currentDir = __dirname;\n while (currentDir !== path.parse(currentDir).root) {\n const nodeModulesPath = path.join(currentDir, \"node_modules\");\n if (fs.existsSync(nodeModulesPath)) {\n return nodeModulesPath;\n }\n currentDir = path.dirname(currentDir);\n }\n return null;\n}\n\nfunction getKey() {\n const nodeModulesPath = findNearestNodeModules();\n if (!nodeModulesPath) {\n throw new Error(\"Could not find nearest node_modules directory.\");\n }\n const tmpSecureStoreDir = path.join(nodeModulesPath, \".enpage-tmp\");\n if (!fs.existsSync(tmpSecureStoreDir)) {\n fs.mkdirSync(tmpSecureStoreDir, { recursive: true, mode: 0o700 });\n }\n const keyPath = path.join(tmpSecureStoreDir, \".enpage-key\");\n if (!fs.existsSync(keyPath)) {\n const key = crypto.randomBytes(32).toString(\"hex\");\n fs.writeFileSync(keyPath, key, { mode: 0o600 });\n return key;\n }\n const key = fs.readFileSync(keyPath, \"utf8\");\n return key;\n}\n\nexport { accessStore };\n","{\n \"name\": \"@upstart.gg/sdk\",\n \"version\": \"0.0.93\",\n \"type\": \"module\",\n \"files\": [\n \"dist\",\n \"env.d.ts\"\n ],\n \"sideEffects\": false,\n \"exports\": {\n \".\": {\n \"import\": \"./dist/shared/index.js\",\n \"types\": \"./dist/shared/index.d.ts\"\n },\n \"./shared/*\": {\n \"types\": \"./dist/shared/*.d.ts\",\n \"import\": \"./dist/shared/*.js\"\n },\n \"./builder/*\": {\n \"import\": \"./dist/node/builder/*.js\"\n },\n \"./cli/*\": {\n \"import\": \"./dist/node/cli/*.js\"\n },\n \"./env.d.ts\": {\n \"types\": \"./env.d.ts\",\n \"require\": \"./env.d.ts\",\n \"import\": \"./env.d.ts\"\n },\n \"./*\": {\n \"types\": \"./dist/shared/*.d.ts\",\n \"import\": \"./dist/shared/*.js\"\n }\n },\n \"bin\": {\n \"enpage\": \"dist/node/cli/program.js\"\n },\n \"dependencies\": {\n \"@date-fns/utc\": \"1.2.0\",\n \"@headlessui/react\": \"2.1.2\",\n \"@inquirer/prompts\": \"5.3.8\",\n \"@radix-ui/react-context-menu\": \"2.2.2\",\n \"@radix-ui/react-toggle-group\": \"1.1.0\",\n \"@radix-ui/themes\": \"3.1.4\",\n \"@sinclair/typebox\": \"0.33.7\",\n \"@upstart.gg/style-system\": \"workspace:*\",\n \"ajv\": \"8.17.1\",\n \"ajv-formats\": \"3.0.1\",\n \"chalk\": \"5.3.0\",\n \"chroma-js\": \"3.1.2\",\n \"commander\": \"12.1.0\",\n \"conf\": \"13.0.1\",\n \"date-fns\": \"3.6.0\",\n \"debug\": \"4.3.6\",\n \"fast-glob\": \"3.3.2\",\n \"form-data\": \"4.0.0\",\n \"get-port\": \"7.1.0\",\n \"htmlparser2\": \"9.1.0\",\n \"http-errors-enhanced\": \"2.0.8\",\n \"immer\": \"10.1.1\",\n \"import-meta-resolve\": \"4.1.0\",\n \"lodash-es\": \"4.17.21\",\n \"nanoid\": \"5.0.7\",\n \"open\": \"10.1.0\",\n \"ora\": \"8.1.0\",\n \"p-queue\": \"8.0.1\",\n \"react-hotkeys-hook\": \"4.5.1\",\n \"react-icons\": \"5.3.0\",\n \"react-selecto\": \"1.26.3\",\n \"rollup-plugin-strip-banner\": \"3.1.0\",\n \"usehooks-ts\": \"3.1.0\",\n \"zundo\": \"2.3.0\",\n \"zustand\": \"4.5.5\"\n },\n \"peerDependencies\": {\n \"@upstart.gg/style-system\": \"workspace:*\",\n \"react\": \"18.3.0-canary-3d9b20132-20240124\",\n \"react-dom\": \"18.3.0-canary-3d9b20132-20240124\"\n },\n \"devDependencies\": {\n \"@cloudflare/workers-types\": \"4.20240806.0\",\n \"@types/chroma-js\": \"2.4.4\",\n \"@types/cli-progress\": \"3.11.6\",\n \"@types/debug\": \"4.1.12\",\n \"@types/express\": \"^4.17.21\",\n \"@types/lodash-es\": \"4.17.12\",\n \"@types/node\": \"^20.14.10\",\n \"@types/react\": \"18.3.3\",\n \"@types/react-dom\": \"^18.3.0\",\n \"@types/sortablejs\": \"1.15.8\",\n \"@vitejs/plugin-react\": \"^4.3.4\",\n \"concurrently\": \"8.2.2\",\n \"express\": \"^4.21.2\",\n \"rimraf\": \"6.0.1\",\n \"tsup\": \"8.2.4\",\n \"vite\": \"5.4.6\",\n \"vite-plugin-dts\": \"4.2.1\",\n \"vite-plugin-image-optimizer\": \"1.1.8\",\n \"vite-plugin-inspect\": \"0.8.7\",\n \"vite-plugin-virtual\": \"0.3.0\",\n \"vite-tsconfig-paths\": \"5.0.1\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"build:types\": \"tsc --emitDeclarationOnly --declaration --declarationMap\",\n \"dev\": \"NODE_OPTIONS='--max-old-space-size=12384' tsup --watch\",\n \"sizetest\": \"pnpm build && du -sh dist\",\n \"lint\": \"biome check --write . && tsc --noEmit\",\n \"ci:lint\": \"tsc --noEmit\",\n \"test\": \"vitest\",\n \"prepare\": \"node ./scripts/prepare.cjs\",\n \"gen-ia-docs\": \"tsx scripts/generate-ia-docs.ts\"\n },\n \"author\": \"Matthias Etienne\",\n \"publishConfig\": {\n \"access\": \"public\"\n }\n}\n","import {\n createLogger as createLoggerBase,\n type LogLevel,\n type LogOptions,\n type Logger as BaseLogger,\n} from \"vite\";\nimport { version } from \"../../../package.json\";\nimport chalk from \"chalk\";\n\ntype UpstartLoggerLevel = LogLevel | \"debug\";\n\nexport function createLogger(level?: UpstartLoggerLevel, allowClearScreen?: boolean, showVersion = false) {\n // vite logger does not support \"debug\" level\n const logger = createLoggerBase(level === \"debug\" ? \"info\" : level, {\n prefix: \"[upstart]\",\n allowClearScreen,\n });\n\n if (showVersion) {\n logger.info(chalk.hex(\"#7270c6\").bold(`🚀 Upstart v${version}\\n`));\n }\n\n return {\n ...logger,\n success: (message: string, options?: LogOptions) => logger.info(chalk.green(message), options),\n error: (message: string, options?: LogOptions) => logger.error(chalk.red(message), options),\n warn: (message: string, options?: LogOptions) => logger.warn(chalk.yellow(message), options),\n warnOnce: (message: string, options?: LogOptions) => logger.warnOnce(chalk.yellow(message), options),\n debug: (message: string, options?: LogOptions) => {\n if (level === \"debug\") {\n logger.info(chalk.gray(message), options);\n }\n },\n };\n}\n\nexport const logger = createLogger();\n\nexport type Logger = BaseLogger & {\n success: (message: string, options?: LogOptions) => void;\n debug: (message: string, options?: LogOptions) => void;\n};\n","import { logger } from \"../shared/logger\";\nimport { API_BASE_URL } from \"./constants\";\nimport { accessStore } from \"./store\";\n\ntype SuccessResponseWrapper<T> = {\n isSuccess: true;\n isError: false;\n status: number;\n statusText: string;\n data: T;\n};\n\ntype ErrorResponseWrapper<E> = {\n isSuccess: false;\n isError: true;\n status: number;\n statusText: string;\n data: E;\n};\n\ntype ResponseWrapper<T, E> = SuccessResponseWrapper<T> | ErrorResponseWrapper<E>;\n\ntype CommonResponseType = {\n success: boolean;\n};\n\n/**\n *\n * @param pathOrUrl\n * @param data\n * @returns\n */\nexport async function post<\n ResponseType extends CommonResponseType = CommonResponseType,\n ErrorType = { error: string; error_description?: string },\n>(path: string, data: Record<string, unknown> | URLSearchParams, headers: Record<string, string> = {}) {\n if (accessStore.get(\"access_token\")) {\n headers.Authorization = `Bearer ${accessStore.get(\"access_token\")}`;\n }\n const response = await fetch(toURL(path), {\n method: \"POST\",\n headers: {\n \"Content-Type\":\n data instanceof URLSearchParams ? \"application/x-www-form-urlencoded\" : \"application/json\",\n ...headers,\n },\n body: data instanceof URLSearchParams ? data : JSON.stringify(data),\n }).catch((error) => {\n logger.error(`Fatal Error requesting API: ${error.message} (${error.cause.code})`);\n logger.error(`Please check your internet connection and try again, or retry later.`);\n process.exit(1);\n });\n\n return formatResponse<ResponseType, ErrorType>(response);\n}\n\nexport async function get<ResponseType = unknown, ErrorType = { error: string; error_description?: string }>(\n path: string,\n headers: Record<string, string> = {},\n) {\n if (accessStore.get(\"access_token\")) {\n headers.Authorization = `Bearer ${accessStore.get(\"access_token\")}`;\n }\n const response = await fetch(toURL(path), { headers, method: \"GET\" }).catch((error) => {\n logger.error(`Fatal Error requesting API: ${error.message} (${error.cause.code})`);\n logger.error(`Please check your internet connection and try again, or retry later.`);\n process.exit(1);\n });\n return formatResponse<ResponseType, ErrorType>(response);\n}\n\nfunction toURL(path: string) {\n const apiBaseURL = new URL(API_BASE_URL.endsWith(\"/\") ? API_BASE_URL : `${API_BASE_URL}/`);\n return new URL(path, apiBaseURL);\n}\n\nasync function formatResponse<SuccessType, ErrorType>(\n response: Response,\n): Promise<ResponseWrapper<SuccessType, ErrorType>> {\n const data = response.headers.get(\"content-type\")?.startsWith(\"application/json\")\n ? ((await response.json()) as ResponseType)\n : ((await response.text()) as ResponseType);\n\n if (response.ok) {\n return {\n isSuccess: true,\n isError: false,\n status: response.status,\n statusText: response.statusText,\n data: data as SuccessType,\n };\n } else {\n return {\n isSuccess: false,\n isError: true,\n status: response.status,\n statusText: response.statusText,\n data: data as ErrorType,\n };\n }\n}\n","import { OAUTH_ENDPOINT_USER_INFO } from \"./constants\";\nimport { accessStore } from \"./store\";\n\nexport async function isLoggedIn(checkRemote = false): Promise<boolean> {\n const token = accessStore.get(\"access_token\");\n const expiration = accessStore.get(\"expires_at\");\n\n if (!token) {\n return false;\n }\n\n if (expiration && expiration < Date.now()) {\n console.log(\"Seems like your token expired...\");\n return false;\n }\n\n if (!checkRemote) {\n return true;\n }\n\n // Check if token is valid\n\n // import dynamically \"./api\" to avoid circular dependency\n const { get } = await import(\"./api\");\n const { isSuccess } = await get(OAUTH_ENDPOINT_USER_INFO);\n\n return isSuccess;\n}\n"],"mappings":"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","names":["CLI_PROJECT_NAME","CLI_LOGIN_CLIENT_ID","API_BASE_URL","EDITOR_BASE_URL","OAUTH_ENDPOINT_USER_INFO","init_constants","__esmMin","Conf","path","crypto","fs","fileURLToPath","chalk","findNearestNodeModules","currentDir","__dirname","nodeModulesPath","getKey","tmpSecureStoreDir","keyPath","key","accessStore","init_store","__esmMin","init_constants","CLI_PROJECT_NAME","version","init_package","__esmMin","createLoggerBase","chalk","createLogger","level","allowClearScreen","showVersion","logger","version","message","options","init_logger","__esmMin","init_package","api_exports","__export","get","post","path","data","headers","accessStore","response","toURL","error","logger","formatResponse","apiBaseURL","API_BASE_URL","init_api","__esmMin","init_logger","init_constants","init_store","init_constants","init_store","isLoggedIn","checkRemote","token","accessStore","expiration","get","isSuccess","OAUTH_ENDPOINT_USER_INFO"]}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
3
3
 
4
- var Ir=Object.create;var Be=Object.defineProperty;var jr=Object.getOwnPropertyDescriptor;var Ur=Object.getOwnPropertyNames;var $r=Object.getPrototypeOf,Wr=Object.prototype.hasOwnProperty;var dt=(i,t)=>()=>(i&&(t=i(i=0)),t);var Cs=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Br=(i,t)=>{for(var e in t)Be(i,e,{get:t[e],enumerable:!0})},zr=(i,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ur(t))!Wr.call(i,r)&&r!==e&&Be(i,r,{get:()=>t[r],enumerable:!(s=jr(t,r))||s.enumerable});return i};var Gr=(i,t,e)=>(e=i!=null?Ir($r(i)):{},zr(t||!i||!i.__esModule?Be(e,"default",{value:i,enumerable:!0}):e,i));function oe(){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 _s(i){return`[${i.error}]${i.error_description?`: ${i.error_description}`:""}`}var ze=dt(()=>{"use strict"});var ks,Ge,ct,yh,Ns,Ds,Ps,Ls,Fs,lt=dt(()=>{"use strict";ks="upstart-cli",Ge=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",ct=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",yh=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg",Ns=10,Ds="oauth/devicecode",Ps="oauth/token",Ls="oauth/userinfo",Fs="v1/templates"});import Hr from"conf";import It from"node:path";import qr from"node:crypto";import pt from"node:fs";import{fileURLToPath as Vr}from"node:url";import Kr from"chalk";function Ms(){let i=M.get("access_token");if(!i){let t=oe();throw new Error(`Access token not found. Please run ${Kr.cyan(`${t} run enpage:login`)} to authenticate.`)}return i}function Xr(){let i=Yr;for(;i!==It.parse(i).root;){let t=It.join(i,"node_modules");if(pt.existsSync(t))return t;i=It.dirname(i)}return null}function Zr(){let i=Xr();if(!i)throw new Error("Could not find nearest node_modules directory.");let t=It.join(i,".enpage-tmp");pt.existsSync(t)||pt.mkdirSync(t,{recursive:!0,mode:448});let e=It.join(t,".enpage-key");if(!pt.existsSync(e)){let r=qr.randomBytes(32).toString("hex");return pt.writeFileSync(e,r,{mode:384}),r}return pt.readFileSync(e,"utf8")}var Yr,Jr,M,mt=dt(()=>{"use strict";lt();ze();Yr=Vr(new URL(".",import.meta.url)),Jr=Zr(),M=new Hr({projectName:ks,encryptionKey:Jr,clearInvalidConfig:!0})});var js,Is=dt(()=>{js="0.0.92"});import{createLogger as tn}from"vite";import gt from"chalk";function He(i,t,e=!1){let s=tn(i==="debug"?"info":i,{prefix:"[upstart]",allowClearScreen:t});return e&&s.info(gt.hex("#7270c6").bold(`\u{1F680} Upstart v${js}
4
+ var Ir=Object.create;var Be=Object.defineProperty;var jr=Object.getOwnPropertyDescriptor;var Ur=Object.getOwnPropertyNames;var $r=Object.getPrototypeOf,Wr=Object.prototype.hasOwnProperty;var dt=(i,t)=>()=>(i&&(t=i(i=0)),t);var Cs=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Br=(i,t)=>{for(var e in t)Be(i,e,{get:t[e],enumerable:!0})},zr=(i,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ur(t))!Wr.call(i,r)&&r!==e&&Be(i,r,{get:()=>t[r],enumerable:!(s=jr(t,r))||s.enumerable});return i};var Gr=(i,t,e)=>(e=i!=null?Ir($r(i)):{},zr(t||!i||!i.__esModule?Be(e,"default",{value:i,enumerable:!0}):e,i));function oe(){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 _s(i){return`[${i.error}]${i.error_description?`: ${i.error_description}`:""}`}var ze=dt(()=>{"use strict"});var ks,Ge,ct,yh,Ns,Ds,Ps,Ls,Fs,lt=dt(()=>{"use strict";ks="upstart-cli",Ge=process.env.PUBLIC_UPSTART_OAUTH_CLIENT_ID??"50000000-0000-0000-0000-000000000001",ct=process.env.PUBLIC_UPSTART_API_BASE_URL??"https://api.upstart.gg",yh=process.env.PUBLIC_UPSTART_EDITOR_BASE_URL??"https://upstart.gg",Ns=10,Ds="oauth/devicecode",Ps="oauth/token",Ls="oauth/userinfo",Fs="v1/templates"});import Hr from"conf";import It from"node:path";import qr from"node:crypto";import pt from"node:fs";import{fileURLToPath as Vr}from"node:url";import Kr from"chalk";function Ms(){let i=M.get("access_token");if(!i){let t=oe();throw new Error(`Access token not found. Please run ${Kr.cyan(`${t} run enpage:login`)} to authenticate.`)}return i}function Xr(){let i=Yr;for(;i!==It.parse(i).root;){let t=It.join(i,"node_modules");if(pt.existsSync(t))return t;i=It.dirname(i)}return null}function Zr(){let i=Xr();if(!i)throw new Error("Could not find nearest node_modules directory.");let t=It.join(i,".enpage-tmp");pt.existsSync(t)||pt.mkdirSync(t,{recursive:!0,mode:448});let e=It.join(t,".enpage-key");if(!pt.existsSync(e)){let r=qr.randomBytes(32).toString("hex");return pt.writeFileSync(e,r,{mode:384}),r}return pt.readFileSync(e,"utf8")}var Yr,Jr,M,mt=dt(()=>{"use strict";lt();ze();Yr=Vr(new URL(".",import.meta.url)),Jr=Zr(),M=new Hr({projectName:ks,encryptionKey:Jr,clearInvalidConfig:!0})});var js,Is=dt(()=>{js="0.0.93"});import{createLogger as tn}from"vite";import gt from"chalk";function He(i,t,e=!1){let s=tn(i==="debug"?"info":i,{prefix:"[upstart]",allowClearScreen:t});return e&&s.info(gt.hex("#7270c6").bold(`\u{1F680} Upstart v${js}
5
5
  `)),{...s,success:(r,n)=>s.info(gt.green(r),n),error:(r,n)=>s.error(gt.red(r),n),warn:(r,n)=>s.warn(gt.yellow(r),n),warnOnce:(r,n)=>s.warnOnce(gt.yellow(r),n),debug:(r,n)=>{i==="debug"&&s.info(gt.gray(r),n)}}}var C,jt=dt(()=>{"use strict";Is();C=He()});var zs={};Br(zs,{get:()=>dn,post:()=>st});async function st(i,t,e={}){M.get("access_token")&&(e.Authorization=`Bearer ${M.get("access_token")}`);let s=await fetch(Ws(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=>{C.error(`Fatal Error requesting API: ${r.message} (${r.cause.code})`),C.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return Bs(s)}async function dn(i,t={}){M.get("access_token")&&(t.Authorization=`Bearer ${M.get("access_token")}`);let e=await fetch(Ws(i),{headers:t,method:"GET"}).catch(s=>{C.error(`Fatal Error requesting API: ${s.message} (${s.cause.code})`),C.error("Please check your internet connection and try again, or retry later."),process.exit(1)});return Bs(e)}function Ws(i){let t=new URL(ct.endsWith("/")?ct:`${ct}/`);return new URL(i,t)}async function Bs(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=dt(()=>{"use strict";jt();lt();mt()});var ri=Cs((kc,ii)=>{"use strict";ii.exports=ei;function ei(i,t,e){i instanceof RegExp&&(i=ti(i,e)),t instanceof RegExp&&(t=ti(t,e));var s=si(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 ti(i,t){var e=t.match(i);return e?e[0]:null}ei.range=si;function si(i,t,e){var s,r,n,o,a,h=e.indexOf(i),c=e.indexOf(t,h+1),l=h;if(h>=0&&c>0){if(i===t)return[h,c];for(s=[],n=e.length;l>=0&&!a;)l==h?(s.push(l),h=e.indexOf(i,l+1)):s.length==1?a=[s.pop(),c]:(r=s.pop(),r<n&&(n=r,o=c),c=e.indexOf(t,l+1)),l=h<c&&h>=0?h:c;s.length&&(a=[n,o])}return a}});var ui=Cs((Nc,fi)=>{"use strict";var ni=ri();fi.exports=Hn;var oi="\0SLASH"+Math.random()+"\0",ai="\0OPEN"+Math.random()+"\0",Ve="\0CLOSE"+Math.random()+"\0",hi="\0COMMA"+Math.random()+"\0",ci="\0PERIOD"+Math.random()+"\0";function qe(i){return parseInt(i,10)==i?parseInt(i,10):i.charCodeAt(0)}function zn(i){return i.split("\\\\").join(oi).split("\\{").join(ai).split("\\}").join(Ve).split("\\,").join(hi).split("\\.").join(ci)}function Gn(i){return i.split(oi).join("\\").split(ai).join("{").split(Ve).join("}").split(hi).join(",").split(ci).join(".")}function li(i){if(!i)return[""];var t=[],e=ni("{","}",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=li(n);return n.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function Hn(i){return i?(i.substr(0,2)==="{}"&&(i="\\{\\}"+i.substr(2)),zt(zn(i),!0).map(Gn)):[]}function qn(i){return"{"+i+"}"}function Vn(i){return/^-?0\d/.test(i)}function Kn(i,t){return i<=t}function Yn(i,t){return i>=t}function zt(i,t){var e=[],s=ni("{","}",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 h=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(s.body),c=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(s.body),l=h||c,f=s.body.indexOf(",")>=0;if(!l&&!f)return s.post.match(/,.*\}/)?(i=s.pre+"{"+s.body+Ve+s.post,zt(i)):[i];var u;if(l)u=s.body.split(/\.\./);else if(u=li(s.body),u.length===1&&(u=zt(u[0],!1).map(qn),u.length===1))return n.map(function(Mt){return s.pre+u[0]+Mt});var d;if(l){var g=qe(u[0]),p=qe(u[1]),y=Math.max(u[0].length,u[1].length),m=u.length==3?Math.abs(qe(u[2])):1,b=Kn,w=p<g;w&&(m*=-1,b=Yn);var S=u.some(Vn);d=[];for(var E=g;b(E,p);E+=m){var v;if(c)v=String.fromCharCode(E),v==="\\"&&(v="");else if(v=String(E),S){var N=y-v.length;if(N>0){var V=new Array(N+1).join("0");E<0?v="-"+V+v.slice(1):v=V+v}}d.push(v)}}else{d=[];for(var L=0;L<u.length;L++)d.push.apply(d,zt(u[L],!1))}for(var L=0;L<d.length;L++)for(var o=0;o<n.length;o++){var a=r+d[L]+n[o];(!t||l||a)&&e.push(a)}}return e}});import{program as Ft}from"commander";ze();mt();import{resolve as J}from"node:path";import{existsSync as Bt,readFileSync as Fn,writeFileSync as Mn}from"node:fs";import it from"chalk";lt();jt();import $t from"node:path";import Wt from"node:fs";import pn from"node:crypto";import mn from"fast-glob";import Hs from"node:http";import gn from"node:https";import{pipeline as wn}from"node:stream";import Gs from"chalk";import yn from"form-data";import*as ae from"node:fs";var en=/[<>"|?*\n\r\t\f\x00-\x1F]/,sn=/(?:^|\/)[*]{2}($|\/)/,rn=248,nn=i=>i!==null&&typeof i=="object"&&!Array.isArray(i),on=i=>typeof i=="string"&&i.length<=rn&&!en.test(i),an=i=>i.split(/\r\n?|\n/);var hn=i=>nn(i)&&Array.isArray(i.patterns)&&Array.isArray(i.sections);var he=(i,t={})=>{let e=t.path;if(hn(i))return i;on(i)&&ae.existsSync(i)&&(e=i,i=ae.readFileSync(i,"utf8"));let s=an(i),r=new Map,n={sections:[],patterns:[]},o={name:"default",patterns:[]},a=null;for(let h of s){let c=h.trim();if(c.startsWith("#")){let[,l]=/^#+\s*(.*)\s*$/.exec(c)||[];if(a){r.delete(a.name),a.comment=a.comment?`${a.comment}
6
6
  ${c}`:c,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:c,patterns:[]},r.set(o.name.toLowerCase(),o),n.sections.push(o),a=o;continue}c!==""&&(o.patterns.push(c),n.patterns.push(c)),a=null}return(t.dedupe===!0||t.unique===!0)&&(n=Us(n,{...t,format:!1})),n.path=e,n.input=Buffer.from(i),n.format=h=>un(n,{...t,...h}),n.dedupe=h=>Us(n,{...t,...h}),n.globs=h=>ln(n,{path:e,...t,...h}),n};var Us=(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:h,patterns:c}=o,l=a.trim().toLowerCase();for(let f of c)r.patterns.includes(f)||r.patterns.push(f);a&&s.has(l)?(n=s.get(l),n.patterns=[...n.patterns,...c]):(n={name:a,comment:h,patterns:c},r.sections.push(n),s.set(l,n))}for(let o of r.sections)o.patterns=[...new Set(o.patterns)];return r},cn=i=>{if(sn.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}`},ln=(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,h)=>{let c=s[s.length-1],l=a?"unignore":"ignore";c&&c.type===l?c.patterns.includes(h)||c.patterns.push(h):(s.push({type:l,path:t.path||null,patterns:[h],index:r}),r++)};for(let a of n){let h="";a.startsWith("!")&&(a=a.slice(1),h="!"),o(h,a.startsWith("/")?a.slice(1):a),o(h,cn(a))}return s},fn=(i={name:"",patterns:[]})=>{let t=[i.comment||""];return i.patterns?.length&&(t.push(i.patterns.join(`
@@ -12,7 +12,7 @@ ${l.trim()}`:a.name.trim(),r.set(a.name.toLowerCase().trim(),a);continue}o={name
12
12
  `),C.info("The following files would have been uploaded:"),a.forEach(m=>C.info(`- ${m}`)),process.exit(0));let u=bn(`Uploading ${h} files...`).start(),d=a.map(m=>{let b=$t.resolve(t,m),w=$t.relative(t,m),S=`${ct}/v1/templates/${i}/upload/${l}`;return o.add(async()=>{let E=await Rn(b,w,S,i,u,e,n);return f++,E})}),g=await Promise.allSettled(d);u.stop();let p=g.filter(m=>m.status==="fulfilled"),y=g.filter(m=>m.status==="rejected");if(An(i,p.map(m=>m.value),y),!y.length&&p.length){let m=`${ct}/v1/templates/${i}/upload/${l}/finalize`,w=await st(m,{signatures:c});if(w.isError)return C.error(`Failed to finalize upload: ${w.data.error_description} (${w.data.error})`),{filesCount:h,uploadedFiles:p.map(S=>S.value),failedFiles:[],success:!1}}return{filesCount:h,uploadedFiles:p.map(m=>m.value),failedFiles:y,success:y.length===0}}async function Cn(i){let t=await pn.subtle.digest("SHA-1",Wt.readFileSync(i));return Array.from(new Uint8Array(t)).map(e=>e.toString(16).padStart(2,"0")).join("")}function _n(){let i=En("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",5),t=new Date,e=t.getUTCFullYear(),s=(t.getUTCMonth()+1).toString().padStart(2,"0"),r=t.getUTCDate().toString().padStart(2,"0"),n=t.getUTCHours().toString().padStart(2,"0"),o=t.getUTCMinutes().toString().padStart(2,"0"),a=t.getUTCSeconds().toString().padStart(2,"0");return`${e}${s}${r}${n}${o}${a}_${i()}`}Ut();lt();import Xs from"node:path";jt();import kn from"node:fs";import{readFile as Nn}from"node:fs/promises";import Dn from"fast-glob";import{basename as Vs,dirname as Pn,extname as Ln}from"node:path";async function Ks(i,t=C){kn.existsSync(i)||(t.error(`\u{1F534} No enpage.config.js found!
13
13
  Your project must have an enpage.config.js file in the root directory.
14
14
 
15
- `),process.exit(1));let e=await import(i),s=Pn(i),r={},n=await Dn(["README.enpage.md","README.enpage.*.md"],{cwd:s,onlyFiles:!0,absolute:!0,caseSensitiveMatch:!1});for(let o of n){let a=Vs(o,".md"),h=Ln(a),c=(h===".enpage"?"en":h.substring(1)).toLowerCase();t.debug(`Found template readme file (${c}): ${Vs(o)}`),r[c]=await Nn(o,"utf-8")}return e.manifest&&(e.manifest.readme=r),e}function Ys(i,t){for(let e in i.datasources)if(i.datasources[e].provider==="json"&&!i.datasources[e].sampleData)throw t.error(`\u{1F534} Error: Datasource "${e}" is missing sample data - nothing will be rendered during development! Please check your enpage.config.js file and add a "sampleData" key to your ${e} datasource.`),new Error(`Missing sample data for datasource "${e}"`);return i}lt();mt();async function Js(i=!1){let t=M.get("access_token"),e=M.get("expires_at");if(!t)return!1;if(e&&e<Date.now())return console.log("Seems like your token expired..."),!1;if(!i)return!0;let{get:s}=await Promise.resolve().then(()=>(Ut(),zs)),{isSuccess:r}=await s(Ls);return r}async function Zs({options:i,args:t,logger:e}){if(!await Js(!0)){let f=oe();e.error(` ${it.redBright("Error")}: User token not found. Please run ${it.cyan(`${f} run enpage:login`)} to authenticate or set the ${it.cyan("ENPAGE_API_TOKEN")} environment variable.
15
+ `),process.exit(1));let e=await import(i),s=Pn(i),r={},n=await Dn(["README.enpage.md","README.enpage.*.md"],{cwd:s,onlyFiles:!0,absolute:!0,caseSensitiveMatch:!1});for(let o of n){let a=Vs(o,".md"),h=Ln(a),c=(h===".enpage"?"en":h.substring(1)).toLowerCase();t.debug(`Found template readme file (${c}): ${Vs(o)}`),r[c]=await Nn(o,"utf-8")}return e.manifest&&(e.manifest.readme=r),e}function Ys(i,t){for(let e in i.datasources)if((i.datasources[e].provider==="json-object"||i.datasources[e].provider==="json-array")&&!i.datasources[e].sampleData)throw t.error(`\u{1F534} Error: Datasource "${e}" is missing sample data - nothing will be rendered during development! Please check your enpage.config.js file and add a "sampleData" key to your ${e} datasource.`),new Error(`Missing sample data for datasource "${e}"`);return i}lt();mt();async function Js(i=!1){let t=M.get("access_token"),e=M.get("expires_at");if(!t)return!1;if(e&&e<Date.now())return console.log("Seems like your token expired..."),!1;if(!i)return!0;let{get:s}=await Promise.resolve().then(()=>(Ut(),zs)),{isSuccess:r}=await s(Ls);return r}async function Zs({options:i,args:t,logger:e}){if(!await Js(!0)){let f=oe();e.error(` ${it.redBright("Error")}: User token not found. Please run ${it.cyan(`${f} run enpage:login`)} to authenticate or set the ${it.cyan("ENPAGE_API_TOKEN")} environment variable.
16
16
  `),process.exit(1)}let s=t.length?Xs.isAbsolute(t[0])?t[0]:J(process.cwd(),t[0]):process.cwd();Bt(s)||(e.error(` Template directory not found: ${s}. Aborting.
17
17
  `),process.exit(1));let r=t.length>1?Xs.isAbsolute(t[1])?t[1]:J(process.cwd(),t[1]):J(s,"dist");Bt(r)||(e.error(` Dist directory not found: ${r}.
18
18
  Please run 'build' before publishing. Aborting.
@@ -46,3 +46,4 @@ Pass --ssr=local to generate a SSR-enabled build that can be tested locally.`,Bo
46
46
  *
47
47
  * Converted to typescript by Matthias E. <matthias@upstart.gg>
48
48
  */
49
+ //# sourceMappingURL=program.js.map