@zuplo/core 6.2.1 → 6.2.3
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/create.index.minified.js +1 -1
- package/customer.cli.minified.js +267 -263
- package/index.minified.js +249 -245
- package/package.json +4 -4
package/create.index.minified.js
CHANGED
|
@@ -30,5 +30,5 @@ const require = topLevelCreateRequire(import.meta.url);
|
|
|
30
30
|
const __filename = fileURLToPath(import.meta.url);
|
|
31
31
|
const __dirname = dirname(__filename);
|
|
32
32
|
|
|
33
|
-
var Fe=Object.create;var N=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var Me=Object.getOwnPropertyNames;var we=Object.getPrototypeOf,ye=Object.prototype.hasOwnProperty;var n=(e,r)=>N(e,"name",{value:r,configurable:!0});var S=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Se=(e,r)=>{for(var o in r)N(e,o,{get:r[o],enumerable:!0})},ve=(e,r,o,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Me(r))!ye.call(e,i)&&i!==o&&N(e,i,{get:()=>r[i],enumerable:!(t=he(r,i))||t.enumerable});return e};var Ge=(e,r,o)=>(o=e!=null?Fe(we(e)):{},ve(r||!e||!e.__esModule?N(o,"default",{value:e,enumerable:!0}):o,e));var Y=S((po,B)=>{"use strict";function Ce(e){return e>=55296&&e<=56319}n(Ce,"isHighSurrogate");function Ke(e){return e>=56320&&e<=57343}n(Ke,"isLowSurrogate");B.exports=n(function(r,o,t){if(typeof o!="string")throw new Error("Input must be string");for(var i=o.length,c=0,E,_,a=0;a<i;a+=1){if(E=o.charCodeAt(a),_=o[a],Ce(E)&&Ke(o.charCodeAt(a+1))&&(a+=1,_+=o[a]),c+=r(_),c===t)return o.slice(0,a+1);if(c>t)return o.slice(0,a-_.length+1)}return o},"truncate")});var z=S((fo,b)=>{"use strict";var Xe=Y(),Ze=Buffer.byteLength.bind(Buffer);b.exports=Xe.bind(null,Ze)});var R;(function(e){e[e.CONTINUE=100]="CONTINUE",e[e.SWITCHING_PROTOCOLS=101]="SWITCHING_PROTOCOLS",e[e.PROCESSING=102]="PROCESSING",e[e.OK=200]="OK",e[e.CREATED=201]="CREATED",e[e.ACCEPTED=202]="ACCEPTED",e[e.NON_AUTHORITATIVE_INFORMATION=203]="NON_AUTHORITATIVE_INFORMATION",e[e.NO_CONTENT=204]="NO_CONTENT",e[e.RESET_CONTENT=205]="RESET_CONTENT",e[e.PARTIAL_CONTENT=206]="PARTIAL_CONTENT",e[e.MULTI_STATUS=207]="MULTI_STATUS",e[e.ALREADY_REPORTED=208]="ALREADY_REPORTED",e[e.IM_USED=226]="IM_USED",e[e.MULTIPLE_CHOICES=300]="MULTIPLE_CHOICES",e[e.MOVED_PERMANENTLY=301]="MOVED_PERMANENTLY",e[e.FOUND=302]="FOUND",e[e.SEE_OTHER=303]="SEE_OTHER",e[e.NOT_MODIFIED=304]="NOT_MODIFIED",e[e.USE_PROXY=305]="USE_PROXY",e[e.SWITCH_PROXY=306]="SWITCH_PROXY",e[e.TEMPORARY_REDIRECT=307]="TEMPORARY_REDIRECT",e[e.PERMANENT_REDIRECT=308]="PERMANENT_REDIRECT",e[e.BAD_REQUEST=400]="BAD_REQUEST",e[e.UNAUTHORIZED=401]="UNAUTHORIZED",e[e.PAYMENT_REQUIRED=402]="PAYMENT_REQUIRED",e[e.FORBIDDEN=403]="FORBIDDEN",e[e.NOT_FOUND=404]="NOT_FOUND",e[e.METHOD_NOT_ALLOWED=405]="METHOD_NOT_ALLOWED",e[e.NOT_ACCEPTABLE=406]="NOT_ACCEPTABLE",e[e.PROXY_AUTHENTICATION_REQUIRED=407]="PROXY_AUTHENTICATION_REQUIRED",e[e.REQUEST_TIMEOUT=408]="REQUEST_TIMEOUT",e[e.CONFLICT=409]="CONFLICT",e[e.GONE=410]="GONE",e[e.LENGTH_REQUIRED=411]="LENGTH_REQUIRED",e[e.PRECONDITION_FAILED=412]="PRECONDITION_FAILED",e[e.PAYLOAD_TOO_LARGE=413]="PAYLOAD_TOO_LARGE",e[e.URI_TOO_LONG=414]="URI_TOO_LONG",e[e.UNSUPPORTED_MEDIA_TYPE=415]="UNSUPPORTED_MEDIA_TYPE",e[e.RANGE_NOT_SATISFIABLE=416]="RANGE_NOT_SATISFIABLE",e[e.EXPECTATION_FAILED=417]="EXPECTATION_FAILED",e[e.I_AM_A_TEAPOT=418]="I_AM_A_TEAPOT",e[e.MISDIRECTED_REQUEST=421]="MISDIRECTED_REQUEST",e[e.UNPROCESSABLE_ENTITY=422]="UNPROCESSABLE_ENTITY",e[e.LOCKED=423]="LOCKED",e[e.FAILED_DEPENDENCY=424]="FAILED_DEPENDENCY",e[e.UPGRADE_REQUIRED=426]="UPGRADE_REQUIRED",e[e.PRECONDITION_REQUIRED=428]="PRECONDITION_REQUIRED",e[e.TOO_MANY_REQUESTS=429]="TOO_MANY_REQUESTS",e[e.REQUEST_HEADER_FIELDS_TOO_LARGE=431]="REQUEST_HEADER_FIELDS_TOO_LARGE",e[e.UNAVAILABLE_FOR_LEGAL_REASONS=451]="UNAVAILABLE_FOR_LEGAL_REASONS",e[e.INTERNAL_SERVER_ERROR=500]="INTERNAL_SERVER_ERROR",e[e.NOT_IMPLEMENTED=501]="NOT_IMPLEMENTED",e[e.BAD_GATEWAY=502]="BAD_GATEWAY",e[e.SERVICE_UNAVAILABLE=503]="SERVICE_UNAVAILABLE",e[e.GATEWAY_TIMEOUT=504]="GATEWAY_TIMEOUT",e[e.HTTP_VERSION_NOT_SUPPORTED=505]="HTTP_VERSION_NOT_SUPPORTED",e[e.VARIANT_ALSO_NEGOTIATES=506]="VARIANT_ALSO_NEGOTIATES",e[e.INSUFFICIENT_STORAGE=507]="INSUFFICIENT_STORAGE",e[e.LOOP_DETECTED=508]="LOOP_DETECTED",e[e.NOT_EXTENDED=510]="NOT_EXTENDED",e[e.NETWORK_AUTHENTICATION_REQUIRED=511]="NETWORK_AUTHENTICATION_REQUIRED"})(R||(R={}));var A=class extends Error{static{n(this,"ApiError")}type;status;detail;instance;constructor(r){if(super(r.title),!r.type.startsWith("https://zup.fail/"))throw new Error(`Invalid 'type' specified on ApiError, must be a URI starting with 'https://zup.fail/'. Type was set to ${r.type}`);this.name="ApiProblemError",this.type=r.type,this.status=r.status,this.detail=r.detail,this.instance=r.instance}};var P={};Se(P,{UnsafePathError:()=>D,deleteFile:()=>de,deleteFolder:()=>We,dirExists:()=>u,ensureDirectoryExists:()=>Ye,fileExists:()=>je,getParentDirFilename:()=>ze,isNotFileOrDirectory:()=>Ve,listFolderContents:()=>j,listFolders:()=>Be,mkdirForFilePathIfNotExits:()=>V,mkdirIfNotExists:()=>d,safePath:()=>be,tarFolderContent:()=>Je,untar:()=>$e});import v from"child_process";import l from"fs/promises";import T from"path";var G=[".git","node_modules",".yarn",".DS_Store"];async function je(e){try{return(await l.stat(e)).isFile()}catch{return!1}}n(je,"fileExists");async function de(e,r){return await l.rm(e,r)}n(de,"deleteFile");async function u(e){try{return(await l.stat(e)).isDirectory()}catch{return!1}}n(u,"dirExists");async function Ve(e){try{return await l.stat(e),!1}catch{return!0}}n(Ve,"isNotFileOrDirectory");function ke(e,r){let o=new RegExp(`(.*)(\\/${r})$|(.*)(${r}\\/)`),t=e.match(o);if(!t)return"";let i=e.split(t[0]);return i[1]===""?"":`/${i[1]}`}n(ke,"getParentDirectory");async function Be(e){if(!await u(e))return[];let r=await l.readdir(e,{withFileTypes:!0}),o=[];for await(let t of r)G.includes(t.name)||t.isDirectory()&&o.push(t.name);return o}n(Be,"listFolders");async function j(e,r,o=!0){let t=ke(e,r),i=await l.readdir(e,{withFileTypes:!0}),c=[];for await(let E of i)if(!G.includes(E.name)||!o)if(E.isDirectory()){let _=await j(T.join(e,E.name),r,o);c.push(..._)}else c.push(T.join(t,E.name));return c}n(j,"listFolderContents");var d=n(async e=>{if(await u(e))return!0;await l.mkdir(e,{recursive:!0})},"mkdirIfNotExists"),V=n(async e=>{let r=T.dirname(e);return d(r)},"mkdirForFilePathIfNotExits"),Ye=V,D=class extends Error{static{n(this,"UnsafePathError")}constructor(r){super(r)}};function be(e){let r=n(o=>{if(!o.startsWith(e))throw new D("Resolved path is not part of the project.");return o},"ensureSafePath");return{resolve:n((...o)=>r(T.resolve(...o)),"resolve")}}n(be,"safePath");function ze(e){return`${T.basename(T.dirname(e))}/${T.basename(e)}`}n(ze,"getParentDirFilename");function Je(e,r,o,t){let i=T.join(t,o);return v.execSync(`tar --exclude='.git/' --exclude='dist/' -czf ${i} ${r}`,{cwd:e}),i}n(Je,"tarFolderContent");function $e(e,r,o,t=!1){v.execSync(`tar -xf ${r} ${t?"--strip-components=1 ":""}-C ${o}`,{cwd:e})}n($e,"untar");async function We(e){if(await u(e))return await l.rm(e,{recursive:!0})}n(We,"deleteFolder");var L=P;import{rm as Ur}from"fs/promises";import Fr from"path";var I=class extends Error{static{n(this,"BuildIssueError")}issue;pluginName;constructor(r,o){super(r.message),this.issue=r,this.pluginName=o}};var U="2024-09-02",Qe=Object.freeze({none:{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1},"2023-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1},"2024-01-15":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1},"2024-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1},"2024-09-02":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0}});var m=class{static{n(this,"PluginResult")}errors=[];warnings=[];constructor(r){r&&this.errors.push(r)}};async function k(e,r){let o=[],t=[],i=new Map;for await(let c of e)try{let E=await c(r,i);if(t.push(...E.errors.map(_=>(_.pluginName===""&&(_.pluginName=c.name),_))),o.push(...E.warnings),E.errors.length>0)break}catch(E){E instanceof I?t.push({...E.issue,pluginName:E.pluginName??"unknown"}):t.push(E);break}return{errors:t,warnings:o,data:i}}n(k,"runPlugins");var J=Ge(z(),1);var qe=/[/?<>\\:*|"]/g,He=/[\x00-\x1f\x80-\x9f]/g,er=/^\.+$/,rr=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,or=/[. ]+$/;function F(e,r=""){if(typeof e!="string")throw new Error("Input must be string");let o=e.replace(qe,r).replace(He,r).replace(er,r).replace(rr,r).replace(or,r);return(0,J.default)(o,255)}n(F,"sanitize");import re from"fs/promises";import nr from"path";var g="modules",$="tests",p="config",W="schemas";var O="docs";var Q="routes.oas.json",C="policies.json",K="dev-portal.json";var X="hello-world.ts",Z="zuplo.jsonc";var q="sidebar.json",H="theme.css";var ee="index.md";var oe=n(async function({sourceDirectory:e,logger:r}){r.debug("Creating project directories");let o=[g,p,$,W,O,".vscode"];try{await re.mkdir(e);for(let t of o)await re.mkdir(nr.join(e,t),{recursive:!0})}catch(t){return r.error(t),new m({message:`Cannot create project directory tree at ${e}`,pluginName:"create-project-dirs",severity:"error"})}return new m},"createProjectDirs");import mr from"path";import cr from"fs/promises";import ar from"path";import{performance as x,PerformanceObserver as tr}from"perf_hooks";var h=[];async function ir(e,r){let o=x.timerify(r),t=new tr(i=>{let c=i.getEntries()[0];h.push({name:e,duration:c.duration}),t.disconnect()});return t.observe({entryTypes:["function"]}),o()}n(ir,"timeFn");var sr={mark:n(e=>{x.mark(e)},"mark"),measure:n((e,r,o)=>{x.measure(e,r,o)},"measure"),timeFn:ir,report:n(()=>{h.length>0&&console.table(h)},"report"),getDuration:n(e=>{let r=x.getEntriesByName(e);return r.length===0?0:r[0].duration},"getDuration")},ne=sr;import{existsSync as Er}from"fs";import te from"fs/promises";import ie from"path";import{dirname as se}from"path";import{fileURLToPath as Ee}from"url";async function ce(e){let r=ie.resolve(se(Ee(import.meta.url)),"..","templates",e);if(Er(r))return await te.readFile(r,"utf-8");{let o=ie.resolve(se(Ee(import.meta.url)),"templates",e);return await te.readFile(o,"utf-8")}}n(ce,"generateFromTemplate");var s=n(function(e,r){return async({sourceDirectory:o,logger:t})=>ne.timeFn(`Generating ${e}`,async()=>{t.debug(`Generating ${e}`);let i=ar.join(o,e);return await L.fileExists(i)?(t.debug({sourceDirectory:o},`${e} already exists, skipping`),{warnings:[],errors:[]}):_r(i,r,t)})},"generateFileFromTemplate");async function _r(e,r,o){let t=await ce(r);try{await cr.writeFile(e,t,"utf-8"),o.debug(`File written to ${e}`)}catch(i){o.error(i);let c={message:`Error creating file at ${e}`,pluginName:"generate-file",severity:"error"};return{warnings:[],errors:[c]}}return{warnings:[],errors:[]}}n(_r,"writeTemplate");var ae=s(mr.join(O,ee),"markdown.template.md");import Tr from"path";var _e=s(Tr.join(O,q),"sidebar.template.json");import lr from"path";var me=s(lr.join(O,H),"dev-portal.theme.template.css");import pr from"path";var Te=s(pr.join(g,X),"hello-world.template.ts");import Or from"path";var le=s(Or.join(p,K),"dev-portal.template.json");var pe=s(".env","env.template");var Oe=s(".eslintrc.js","eslintrc.template.js");var fe=s(".gitignore","gitignore.template.ignore");import fr from"path";var Re=s(fr.join(".vscode","launch.json"),"launch.template.jsonc");import Rr from"path";var Ie=s(Rr.join(p,Q),"routes.oas.template.json");import Nr from"fs/promises";import Ae from"path";var M=class{static{n(this,"Environment")}get DEV_SERVER_PORT(){return process.env.DEV_SERVER_PORT?parseInt(process.env.DEV_SERVER_PORT):3e3}get DEBUG_BUILD_MODE(){return!!process.env.DEBUG_BUILD_MODE}get USE_MONOREPO_PACKAGES(){return process.env.USE_MONOREPO_PACKAGES==="true"}get EXPERIMENTAL_CODEGEN(){return!!process.env.EXPERIMENTAL_CODEGEN}get NODE_ENV(){return process.env.NODE_ENV}isProduction(){return this.NODE_ENV==="production"}isLocalDevelopment(){return process.env.ZUPLO_IS_LOCAL_DEVELOPMENT==="true"}},Ir=new M,Ne=Ir;import{dirname as Ar}from"path";import{fileURLToPath as Dr}from"url";async function De(e,r=Ne.USE_MONOREPO_PACKAGES){let o={name:e,version:"1.0.0",author:"",copyright:"",scripts:{dev:"zup dev",test:"zup test"},dependencies:{zuplo:"latest"}};if(r){let t=ur();o.overrides=t,o.dependencies["@zuplo/runtime"]=t["@zuplo/runtime"],o.devDependencies&&"@zuplo/core"in o.devDependencies&&(o.devDependencies["@zuplo/core"]=t["@zuplo/core"]),"@zuplo/core"in o.dependencies&&(o.dependencies["@zuplo/core"]=t["@zuplo/core"])}return o}n(De,"generateDefaultPackageJson");function ur(){let e=Ae.resolve(Ar(Dr(import.meta.url)),"..","..");return{"@zuplo/core":`file:${e}/core`,"@zuplo/runtime":`file:${e}/runtime`,"@zuplo/debug":`file:${e}/debug`,"@zuplo/errors":`file:${e}/errors`}}n(ur,"getPackageOverrides");async function ue(e,r){let o=Ae.join(e,"package.json"),t=JSON.stringify(r,void 0,2);await Nr.writeFile(o,t,"utf-8")}n(ue,"updateProjectPackageJson");var Le=n(async function({sourceDirectory:e,name:r,logger:o}){let t=await De(r);try{await ue(e,t)}catch(i){return o.error(i),new m({message:"Error creating package.json",pluginName:"generate-package-json",severity:"error"})}return new m},"generatePackageJson");import Lr from"path";var ge=s(Lr.join(p,C),"policies.template.json");import gr from"path";var xe=s(gr.join(".vscode","settings.json"),"settings.template.jsonc");var Pe=s("tsconfig.json","tsconfig.template.json");import{writeFile as xr}from"fs/promises";import Pr from"path";var Ue=n(async function({name:e,sourceDirectory:r,logger:o}){let t={version:1,project:e,compatibilityDate:U},i=Pr.join(r,Z),c=JSON.stringify(t,null,2);try{await xr(i,c,"utf-8")}catch(E){return o.error(E),new m({message:"Error creating zuplo.jsonc",pluginName:"generate-zuplo-json",severity:"error"})}return new m},"generateZuploJson");async function hr({name:e,accountName:r="",rootDirectory:o,logger:t}){let i=F(e),c=F(r),E=Fr.join(o,c,i),_={name:e,sourceDirectory:E,logger:t},a=[];if(await L.dirExists(E))throw new A({type:"https://zup.fail/project-already-exists-at-directory",title:"The project already exists in the specified directory",status:R.BAD_REQUEST,detail:`Project already exists at ${E}`});a.push(oe,Ie,Ue,le,Te,_e,ae,me,ge),a.push(Pe,fe,Le,pe,Oe,Re,xe);let{errors:w,warnings:y}=await k(a,_);if(y.length>0&&y.forEach(f=>{t.warn(f)}),w.length>0){await Ur(E,{recursive:!0,force:!0});let f=w[0];throw f instanceof Error?f:new Error(f.message)}return{sourceDirectory:E,projectName:e}}n(hr,"create");export{hr as create};
|
|
33
|
+
var Fe=Object.create;var N=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var Me=Object.getOwnPropertyNames;var we=Object.getPrototypeOf,ye=Object.prototype.hasOwnProperty;var n=(e,r)=>N(e,"name",{value:r,configurable:!0});var S=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Se=(e,r)=>{for(var o in r)N(e,o,{get:r[o],enumerable:!0})},ve=(e,r,o,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Me(r))!ye.call(e,i)&&i!==o&&N(e,i,{get:()=>r[i],enumerable:!(t=he(r,i))||t.enumerable});return e};var Ge=(e,r,o)=>(o=e!=null?Fe(we(e)):{},ve(r||!e||!e.__esModule?N(o,"default",{value:e,enumerable:!0}):o,e));var Y=S((po,B)=>{"use strict";function Ce(e){return e>=55296&&e<=56319}n(Ce,"isHighSurrogate");function Ke(e){return e>=56320&&e<=57343}n(Ke,"isLowSurrogate");B.exports=n(function(r,o,t){if(typeof o!="string")throw new Error("Input must be string");for(var i=o.length,c=0,E,_,a=0;a<i;a+=1){if(E=o.charCodeAt(a),_=o[a],Ce(E)&&Ke(o.charCodeAt(a+1))&&(a+=1,_+=o[a]),c+=r(_),c===t)return o.slice(0,a+1);if(c>t)return o.slice(0,a-_.length+1)}return o},"truncate")});var z=S((fo,b)=>{"use strict";var Xe=Y(),Ze=Buffer.byteLength.bind(Buffer);b.exports=Xe.bind(null,Ze)});var R;(function(e){e[e.CONTINUE=100]="CONTINUE",e[e.SWITCHING_PROTOCOLS=101]="SWITCHING_PROTOCOLS",e[e.PROCESSING=102]="PROCESSING",e[e.OK=200]="OK",e[e.CREATED=201]="CREATED",e[e.ACCEPTED=202]="ACCEPTED",e[e.NON_AUTHORITATIVE_INFORMATION=203]="NON_AUTHORITATIVE_INFORMATION",e[e.NO_CONTENT=204]="NO_CONTENT",e[e.RESET_CONTENT=205]="RESET_CONTENT",e[e.PARTIAL_CONTENT=206]="PARTIAL_CONTENT",e[e.MULTI_STATUS=207]="MULTI_STATUS",e[e.ALREADY_REPORTED=208]="ALREADY_REPORTED",e[e.IM_USED=226]="IM_USED",e[e.MULTIPLE_CHOICES=300]="MULTIPLE_CHOICES",e[e.MOVED_PERMANENTLY=301]="MOVED_PERMANENTLY",e[e.FOUND=302]="FOUND",e[e.SEE_OTHER=303]="SEE_OTHER",e[e.NOT_MODIFIED=304]="NOT_MODIFIED",e[e.USE_PROXY=305]="USE_PROXY",e[e.SWITCH_PROXY=306]="SWITCH_PROXY",e[e.TEMPORARY_REDIRECT=307]="TEMPORARY_REDIRECT",e[e.PERMANENT_REDIRECT=308]="PERMANENT_REDIRECT",e[e.BAD_REQUEST=400]="BAD_REQUEST",e[e.UNAUTHORIZED=401]="UNAUTHORIZED",e[e.PAYMENT_REQUIRED=402]="PAYMENT_REQUIRED",e[e.FORBIDDEN=403]="FORBIDDEN",e[e.NOT_FOUND=404]="NOT_FOUND",e[e.METHOD_NOT_ALLOWED=405]="METHOD_NOT_ALLOWED",e[e.NOT_ACCEPTABLE=406]="NOT_ACCEPTABLE",e[e.PROXY_AUTHENTICATION_REQUIRED=407]="PROXY_AUTHENTICATION_REQUIRED",e[e.REQUEST_TIMEOUT=408]="REQUEST_TIMEOUT",e[e.CONFLICT=409]="CONFLICT",e[e.GONE=410]="GONE",e[e.LENGTH_REQUIRED=411]="LENGTH_REQUIRED",e[e.PRECONDITION_FAILED=412]="PRECONDITION_FAILED",e[e.PAYLOAD_TOO_LARGE=413]="PAYLOAD_TOO_LARGE",e[e.URI_TOO_LONG=414]="URI_TOO_LONG",e[e.UNSUPPORTED_MEDIA_TYPE=415]="UNSUPPORTED_MEDIA_TYPE",e[e.RANGE_NOT_SATISFIABLE=416]="RANGE_NOT_SATISFIABLE",e[e.EXPECTATION_FAILED=417]="EXPECTATION_FAILED",e[e.I_AM_A_TEAPOT=418]="I_AM_A_TEAPOT",e[e.MISDIRECTED_REQUEST=421]="MISDIRECTED_REQUEST",e[e.UNPROCESSABLE_ENTITY=422]="UNPROCESSABLE_ENTITY",e[e.LOCKED=423]="LOCKED",e[e.FAILED_DEPENDENCY=424]="FAILED_DEPENDENCY",e[e.UPGRADE_REQUIRED=426]="UPGRADE_REQUIRED",e[e.PRECONDITION_REQUIRED=428]="PRECONDITION_REQUIRED",e[e.TOO_MANY_REQUESTS=429]="TOO_MANY_REQUESTS",e[e.REQUEST_HEADER_FIELDS_TOO_LARGE=431]="REQUEST_HEADER_FIELDS_TOO_LARGE",e[e.UNAVAILABLE_FOR_LEGAL_REASONS=451]="UNAVAILABLE_FOR_LEGAL_REASONS",e[e.INTERNAL_SERVER_ERROR=500]="INTERNAL_SERVER_ERROR",e[e.NOT_IMPLEMENTED=501]="NOT_IMPLEMENTED",e[e.BAD_GATEWAY=502]="BAD_GATEWAY",e[e.SERVICE_UNAVAILABLE=503]="SERVICE_UNAVAILABLE",e[e.GATEWAY_TIMEOUT=504]="GATEWAY_TIMEOUT",e[e.HTTP_VERSION_NOT_SUPPORTED=505]="HTTP_VERSION_NOT_SUPPORTED",e[e.VARIANT_ALSO_NEGOTIATES=506]="VARIANT_ALSO_NEGOTIATES",e[e.INSUFFICIENT_STORAGE=507]="INSUFFICIENT_STORAGE",e[e.LOOP_DETECTED=508]="LOOP_DETECTED",e[e.NOT_EXTENDED=510]="NOT_EXTENDED",e[e.NETWORK_AUTHENTICATION_REQUIRED=511]="NETWORK_AUTHENTICATION_REQUIRED"})(R||(R={}));var A=class extends Error{static{n(this,"ApiError")}type;status;detail;instance;constructor(r,o){if(super(r.title,o),!r.type.startsWith("https://zup.fail/"))throw new Error(`Invalid 'type' specified on ApiError, must be a URI starting with 'https://zup.fail/'. Type was set to ${r.type}`);this.name="ApiProblemError",this.type=r.type,this.status=r.status,this.detail=r.detail,this.instance=r.instance}};var P={};Se(P,{UnsafePathError:()=>D,deleteFile:()=>de,deleteFolder:()=>We,dirExists:()=>u,ensureDirectoryExists:()=>Ye,fileExists:()=>je,getParentDirFilename:()=>ze,isNotFileOrDirectory:()=>Ve,listFolderContents:()=>j,listFolders:()=>Be,mkdirForFilePathIfNotExits:()=>V,mkdirIfNotExists:()=>d,safePath:()=>be,tarFolderContent:()=>Je,untar:()=>$e});import v from"child_process";import l from"fs/promises";import T from"path";var G=[".git","node_modules",".yarn",".DS_Store"];async function je(e){try{return(await l.stat(e)).isFile()}catch{return!1}}n(je,"fileExists");async function de(e,r){return await l.rm(e,r)}n(de,"deleteFile");async function u(e){try{return(await l.stat(e)).isDirectory()}catch{return!1}}n(u,"dirExists");async function Ve(e){try{return await l.stat(e),!1}catch{return!0}}n(Ve,"isNotFileOrDirectory");function ke(e,r){let o=new RegExp(`(.*)(\\/${r})$|(.*)(${r}\\/)`),t=e.match(o);if(!t)return"";let i=e.split(t[0]);return i[1]===""?"":`/${i[1]}`}n(ke,"getParentDirectory");async function Be(e){if(!await u(e))return[];let r=await l.readdir(e,{withFileTypes:!0}),o=[];for await(let t of r)G.includes(t.name)||t.isDirectory()&&o.push(t.name);return o}n(Be,"listFolders");async function j(e,r,o=!0){let t=ke(e,r),i=await l.readdir(e,{withFileTypes:!0}),c=[];for await(let E of i)if(!G.includes(E.name)||!o)if(E.isDirectory()){let _=await j(T.join(e,E.name),r,o);c.push(..._)}else c.push(T.join(t,E.name));return c}n(j,"listFolderContents");var d=n(async e=>{if(await u(e))return!0;await l.mkdir(e,{recursive:!0})},"mkdirIfNotExists"),V=n(async e=>{let r=T.dirname(e);return d(r)},"mkdirForFilePathIfNotExits"),Ye=V,D=class extends Error{static{n(this,"UnsafePathError")}constructor(r){super(r)}};function be(e){let r=n(o=>{if(!o.startsWith(e))throw new D("Resolved path is not part of the project.");return o},"ensureSafePath");return{resolve:n((...o)=>r(T.resolve(...o)),"resolve")}}n(be,"safePath");function ze(e){return`${T.basename(T.dirname(e))}/${T.basename(e)}`}n(ze,"getParentDirFilename");function Je(e,r,o,t){let i=T.join(t,o);return v.execSync(`tar --exclude='.git/' --exclude='dist/' -czf ${i} ${r}`,{cwd:e}),i}n(Je,"tarFolderContent");function $e(e,r,o,t=!1){v.execSync(`tar -xf ${r} ${t?"--strip-components=1 ":""}-C ${o}`,{cwd:e})}n($e,"untar");async function We(e){if(await u(e))return await l.rm(e,{recursive:!0})}n(We,"deleteFolder");var L=P;import{rm as Ur}from"fs/promises";import Fr from"path";var I=class extends Error{static{n(this,"BuildIssueError")}issue;pluginName;constructor(r,o){super(r.message),this.issue=r,this.pluginName=o}};var U="2024-09-02",Qe=Object.freeze({none:{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1},"2023-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!1,doNotRunHooksOnSystemRoutes:!1,removeAllVendorHeadersExceptListed:!1,allowCustomPorts:!1},"2024-01-15":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1},"2024-03-14":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!1},"2024-09-02":{runOutboundPoliciesOnHandlerOnAllStatuses:!0,doNotRunHooksOnSystemRoutes:!0,removeAllVendorHeadersExceptListed:!0,allowCustomPorts:!0}});var m=class{static{n(this,"PluginResult")}errors=[];warnings=[];constructor(r){r&&this.errors.push(r)}};async function k(e,r){let o=[],t=[],i=new Map;for await(let c of e)try{let E=await c(r,i);if(t.push(...E.errors.map(_=>(_.pluginName===""&&(_.pluginName=c.name),_))),o.push(...E.warnings),E.errors.length>0)break}catch(E){E instanceof I?t.push({...E.issue,pluginName:E.pluginName??"unknown"}):t.push(E);break}return{errors:t,warnings:o,data:i}}n(k,"runPlugins");var J=Ge(z(),1);var qe=/[/?<>\\:*|"]/g,He=/[\x00-\x1f\x80-\x9f]/g,er=/^\.+$/,rr=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,or=/[. ]+$/;function F(e,r=""){if(typeof e!="string")throw new Error("Input must be string");let o=e.replace(qe,r).replace(He,r).replace(er,r).replace(rr,r).replace(or,r);return(0,J.default)(o,255)}n(F,"sanitize");import re from"fs/promises";import nr from"path";var g="modules",$="tests",p="config",W="schemas";var O="docs";var Q="routes.oas.json",C="policies.json",K="dev-portal.json";var X="hello-world.ts",Z="zuplo.jsonc";var q="sidebar.json",H="theme.css";var ee="index.md";var oe=n(async function({sourceDirectory:e,logger:r}){r.debug("Creating project directories");let o=[g,p,$,W,O,".vscode"];try{await re.mkdir(e);for(let t of o)await re.mkdir(nr.join(e,t),{recursive:!0})}catch(t){return r.error(t),new m({message:`Cannot create project directory tree at ${e}`,pluginName:"create-project-dirs",severity:"error"})}return new m},"createProjectDirs");import mr from"path";import cr from"fs/promises";import ar from"path";import{performance as x,PerformanceObserver as tr}from"perf_hooks";var h=[];async function ir(e,r){let o=x.timerify(r),t=new tr(i=>{let c=i.getEntries()[0];h.push({name:e,duration:c.duration}),t.disconnect()});return t.observe({entryTypes:["function"]}),o()}n(ir,"timeFn");var sr={mark:n(e=>{x.mark(e)},"mark"),measure:n((e,r,o)=>{x.measure(e,r,o)},"measure"),timeFn:ir,report:n(()=>{h.length>0&&console.table(h)},"report"),getDuration:n(e=>{let r=x.getEntriesByName(e);return r.length===0?0:r[0].duration},"getDuration")},ne=sr;import{existsSync as Er}from"fs";import te from"fs/promises";import ie from"path";import{dirname as se}from"path";import{fileURLToPath as Ee}from"url";async function ce(e){let r=ie.resolve(se(Ee(import.meta.url)),"..","templates",e);if(Er(r))return await te.readFile(r,"utf-8");{let o=ie.resolve(se(Ee(import.meta.url)),"templates",e);return await te.readFile(o,"utf-8")}}n(ce,"generateFromTemplate");var s=n(function(e,r){return async({sourceDirectory:o,logger:t})=>ne.timeFn(`Generating ${e}`,async()=>{t.debug(`Generating ${e}`);let i=ar.join(o,e);return await L.fileExists(i)?(t.debug({sourceDirectory:o},`${e} already exists, skipping`),{warnings:[],errors:[]}):_r(i,r,t)})},"generateFileFromTemplate");async function _r(e,r,o){let t=await ce(r);try{await cr.writeFile(e,t,"utf-8"),o.debug(`File written to ${e}`)}catch(i){o.error(i);let c={message:`Error creating file at ${e}`,pluginName:"generate-file",severity:"error"};return{warnings:[],errors:[c]}}return{warnings:[],errors:[]}}n(_r,"writeTemplate");var ae=s(mr.join(O,ee),"markdown.template.md");import Tr from"path";var _e=s(Tr.join(O,q),"sidebar.template.json");import lr from"path";var me=s(lr.join(O,H),"dev-portal.theme.template.css");import pr from"path";var Te=s(pr.join(g,X),"hello-world.template.ts");import Or from"path";var le=s(Or.join(p,K),"dev-portal.template.json");var pe=s(".env","env.template");var Oe=s(".eslintrc.js","eslintrc.template.js");var fe=s(".gitignore","gitignore.template.ignore");import fr from"path";var Re=s(fr.join(".vscode","launch.json"),"launch.template.jsonc");import Rr from"path";var Ie=s(Rr.join(p,Q),"routes.oas.template.json");import Nr from"fs/promises";import Ae from"path";var M=class{static{n(this,"Environment")}get DEV_SERVER_PORT(){return process.env.DEV_SERVER_PORT?parseInt(process.env.DEV_SERVER_PORT):3e3}get DEBUG_BUILD_MODE(){return!!process.env.DEBUG_BUILD_MODE}get USE_MONOREPO_PACKAGES(){return process.env.USE_MONOREPO_PACKAGES==="true"}get EXPERIMENTAL_CODEGEN(){return!!process.env.EXPERIMENTAL_CODEGEN}get NODE_ENV(){return process.env.NODE_ENV}isProduction(){return this.NODE_ENV==="production"}isLocalDevelopment(){return process.env.ZUPLO_IS_LOCAL_DEVELOPMENT==="true"}},Ir=new M,Ne=Ir;import{dirname as Ar}from"path";import{fileURLToPath as Dr}from"url";async function De(e,r=Ne.USE_MONOREPO_PACKAGES){let o={name:e,version:"1.0.0",author:"",copyright:"",scripts:{dev:"zup dev",test:"zup test"},dependencies:{zuplo:"latest"}};if(r){let t=ur();o.overrides=t,o.dependencies["@zuplo/runtime"]=t["@zuplo/runtime"],o.devDependencies&&"@zuplo/core"in o.devDependencies&&(o.devDependencies["@zuplo/core"]=t["@zuplo/core"]),"@zuplo/core"in o.dependencies&&(o.dependencies["@zuplo/core"]=t["@zuplo/core"])}return o}n(De,"generateDefaultPackageJson");function ur(){let e=Ae.resolve(Ar(Dr(import.meta.url)),"..","..");return{"@zuplo/core":`file:${e}/core`,"@zuplo/runtime":`file:${e}/runtime`,"@zuplo/debug":`file:${e}/debug`,"@zuplo/errors":`file:${e}/errors`}}n(ur,"getPackageOverrides");async function ue(e,r){let o=Ae.join(e,"package.json"),t=JSON.stringify(r,void 0,2);await Nr.writeFile(o,t,"utf-8")}n(ue,"updateProjectPackageJson");var Le=n(async function({sourceDirectory:e,name:r,logger:o}){let t=await De(r);try{await ue(e,t)}catch(i){return o.error(i),new m({message:"Error creating package.json",pluginName:"generate-package-json",severity:"error"})}return new m},"generatePackageJson");import Lr from"path";var ge=s(Lr.join(p,C),"policies.template.json");import gr from"path";var xe=s(gr.join(".vscode","settings.json"),"settings.template.jsonc");var Pe=s("tsconfig.json","tsconfig.template.json");import{writeFile as xr}from"fs/promises";import Pr from"path";var Ue=n(async function({name:e,sourceDirectory:r,logger:o}){let t={version:1,project:e,compatibilityDate:U},i=Pr.join(r,Z),c=JSON.stringify(t,null,2);try{await xr(i,c,"utf-8")}catch(E){return o.error(E),new m({message:"Error creating zuplo.jsonc",pluginName:"generate-zuplo-json",severity:"error"})}return new m},"generateZuploJson");async function hr({name:e,accountName:r="",rootDirectory:o,logger:t}){let i=F(e),c=F(r),E=Fr.join(o,c,i),_={name:e,sourceDirectory:E,logger:t},a=[];if(await L.dirExists(E))throw new A({type:"https://zup.fail/project-already-exists-at-directory",title:"The project already exists in the specified directory",status:R.BAD_REQUEST,detail:`Project already exists at ${E}`});a.push(oe,Ie,Ue,le,Te,_e,ae,me,ge),a.push(Pe,fe,Le,pe,Oe,Re,xe);let{errors:w,warnings:y}=await k(a,_);if(y.length>0&&y.forEach(f=>{t.warn(f)}),w.length>0){await Ur(E,{recursive:!0,force:!0});let f=w[0];throw f instanceof Error?f:new Error(f.message)}return{sourceDirectory:E,projectName:e}}n(hr,"create");export{hr as create};
|
|
34
34
|
/*! For license information please see create.index.minified.js.LEGAL.txt */
|