@stacksjs/config 0.68.2 → 0.69.2

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/config.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ import defaults from './defaults';
2
+ import overrides from './overrides';
1
3
  import type { StacksOptions } from '@stacksjs/types';
2
4
 
3
- export { defaults, overrides }
4
5
  export declare const config: StacksOptions;
5
6
  export declare const ai: StacksOptions['ai'];
6
7
  export declare const app: StacksOptions['app'];
@@ -15,5 +16,8 @@ export declare const queue: StacksOptions['queue'];
15
16
  export declare const saas: StacksOptions['saas'];
16
17
  export declare const services: StacksOptions['services'];
17
18
  export declare const team: StacksOptions['team'];
18
- export * from './helpers'
19
- export declare function determineAppEnv(): string;
19
+ export declare function determineAppEnv(): string;
20
+
21
+ export { defaults, overrides }
22
+
23
+ export * from './helpers'
package/dist/helpers.d.ts CHANGED
@@ -8,7 +8,87 @@ export declare type LocalUrlType =
8
8
  | 'docs'
9
9
  | 'inspect'
10
10
  | 'desktop'
11
- export declare function localUrl({ domain = config.app.url || 'stacks', type = 'frontend' as LocalUrlType, localhost = false, https = undefined as boolean | undefined, network = undefined as boolean | undefined, }: { domain?: string type?: LocalUrlType network?: boolean localhost?: boolean https?: boolean } = {}): Promise<string>;
11
+
12
+ export async function localUrl({
13
+ domain = config.app.url || 'stacks',
14
+ type = 'frontend' as LocalUrlType,
15
+ localhost = false,
16
+ https = undefined as boolean | undefined,
17
+ network = undefined as boolean | undefined,
18
+ }: {
19
+ domain?: string
20
+ type?: LocalUrlType
21
+ network?: boolean
22
+ localhost?: boolean
23
+ https?: boolean
24
+ } = {}): Promise<string> {
25
+ let url = domain.replace(/\.[^.]+$/, '.localhost')
26
+
27
+ switch (type) {
28
+ case 'frontend':
29
+ if (network)
30
+ return await createLocalTunnel(config.ports?.frontend || 3000)
31
+ if (localhost)
32
+ return `http:
33
+ break
34
+ case 'backend':
35
+ if (network)
36
+ return await createLocalTunnel(config.ports?.backend || 3001)
37
+ if (localhost)
38
+ return `http:
39
+ url = `api.${url}`
40
+ break
41
+ case 'admin':
42
+ if (network)
43
+ return await createLocalTunnel(config.ports?.admin || 3002)
44
+ if (localhost)
45
+ return `http:
46
+ url = `admin.${url}`
47
+ break
48
+ case 'library':
49
+ if (network)
50
+ return await createLocalTunnel(config.ports?.library || 3003)
51
+ if (localhost)
52
+ return `http:
53
+ url = `libs.${url}`
54
+ break
55
+ case 'email':
56
+ if (network)
57
+ return await createLocalTunnel(config.ports?.email || 3005)
58
+ if (localhost)
59
+ return `http:
60
+ url = `email.${url}`
61
+ break
62
+ case 'desktop':
63
+ if (network)
64
+ return await createLocalTunnel(config.ports?.desktop || 3004)
65
+ if (localhost)
66
+ return `http:
67
+ url = `desktop.${url}`
68
+ break
69
+ case 'docs':
70
+ if (network)
71
+ return await createLocalTunnel(config.ports?.docs || 3006)
72
+ if (localhost)
73
+ return `http:
74
+ url = `docs.${url}`
75
+ break
76
+ case 'inspect':
77
+ if (network)
78
+ return await createLocalTunnel(config.ports?.inspect || 3007)
79
+ if (localhost)
80
+ return `http:
81
+ url = `inspect.${url}`
82
+ break
83
+ default:
84
+ if (localhost)
85
+ return `http:
86
+ }
87
+
88
+ if (https)
89
+ return `https:
90
+ return `http:
91
+ }
12
92
  export declare function defineStacksConfig(config: StacksConfig): StacksConfig;
13
93
  export declare function defineApp(config: AppConfig): AppConfig;
14
94
  export declare function defineCache(config: CacheConfig): CacheConfig;
package/dist/index.js CHANGED
@@ -1,2 +1,10 @@
1
1
  // @bun
2
- var n=Object.defineProperty;var l=(C,K)=>{for(var L in K)n(C,L,{get:K[L],enumerable:!0,configurable:!0,set:(V)=>K[L]=()=>V})};var $={};l($,{ui:()=>oC,team:()=>aC,storage:()=>iC,services:()=>cC,security:()=>nC,searchEngine:()=>yC,saas:()=>lC,queue:()=>tC,ports:()=>uC,payment:()=>vC,overrides:()=>Z,notification:()=>dC,logging:()=>hC,localUrl:()=>e,library:()=>fC,hashing:()=>mC,git:()=>rC,errors:()=>bC,email:()=>wC,docs:()=>gC,dns:()=>DC,determineAppEnv:()=>sC,defineUi:()=>jC,defineStorage:()=>OC,defineStacksConfig:()=>CC,defineSms:()=>PC,defineServices:()=>SC,defineSecurity:()=>_C,defineSearchEngine:()=>MC,defineQueue:()=>ZC,definePayment:()=>YC,defineNotification:()=>XC,defineModel:()=>GC,defineLibrary:()=>WC,defineJob:()=>UC,defineHashing:()=>VC,defineGit:()=>RC,defineEvents:()=>HC,defineEmailConfig:()=>KC,defineEmail:()=>NC,defineDns:()=>FC,defineDependencies:()=>AC,defineDatabase:()=>zC,defineCronJob:()=>QC,defineCli:()=>LC,defineChat:()=>JC,defineCdn:()=>EC,defineCache:()=>$C,defineApp:()=>xC,defaults:()=>W,database:()=>IC,config:()=>x,cloud:()=>qC,cli:()=>TC,cache:()=>pC,app:()=>A,analytics:()=>BC,ai:()=>kC});import{commandsPath as y,userDatabasePath as c}from"@stacksjs/path";var i={ai:{deploy:!1,models:["amazon.titan-embed-text-v1","amazon.titan-text-express-v1","amazon.titan-embed-image-v1","amazon.titan-image-generator-v1","anthropic.claude-v1","anthropic.claude-v2","anthropic.claude-v2:1","anthropic.claude-instant-v1","meta.llama2-13b-chat-v1","meta.llama2-70b-chat-v1"]},analytics:{driver:void 0},app:{name:"Stacks",description:"A Stacks application.",env:"local",url:"stacks.localhost",debug:!0,key:"",timezone:"UTC",locale:"en",fallbackLocale:"en",cipher:"AES-256-CBC",docMode:!1,redirectUrls:[],maintenanceMode:!1},cli:{name:"My Custom CLI",command:"my-custom-cli",description:"Stacks is a full-stack framework for TypeScript.",source:y(),deploy:!1},cache:{driver:"redis",prefix:"stx",ttl:3600,drivers:{redis:{connection:"default",host:"localhost",port:6379,username:"",password:""}}},cloud:{type:"serverless",driver:"aws",storage:{},environments:["production","staging","development"],firewall:{enabled:!0,countryCodes:[],ipAddresses:[],queryString:[],httpHeaders:[],rateLimitPerMinute:1000,useIpReputationLists:!0,useKnownBadInputsRuleSet:!0},cdn:{allowedMethods:"GET_HEAD",cachedMethods:"GET_HEAD",minTtl:0,defaultTtl:86400,maxTtl:31536000,compress:!0,priceClass:"PriceClass_All",originShieldRegion:"us-east-1",cookieBehavior:"none",allowList:{cookies:[],headers:[],queryStrings:[]},realtimeLogs:{enabled:!0,samplingRate:2}},fileSystem:!1},database:{default:"sqlite",connections:{sqlite:{database:c("stacks.sqlite"),prefix:""}},migrations:"migrations",migrationLocks:"migration_locks"},dns:{driver:"aws",a:[],aaaa:[],cname:[],mx:[],txt:[]},docs:{lang:"en-US",title:"Stacks",description:"Rapid application, cloud & library framework.",lastUpdated:!0,deploy:!1,themeConfig:{editLink:{pattern:"https://github.com/stacksjs/stacks/edit/main/docs/docs/:path",text:"Edit this page on GitHub"},footer:{message:"Released under the MIT License.",copyright:"Copyright \xA9 2024-present Stacks.js, Inc."}}},email:{from:{name:"Stacks",address:"no-reply@stacksjs.org"},mailboxes:[],server:{scan:!0}},errors:{messages:{string:"The {{ field }} field must be a string",email:"The {{ field }} field must be a valid email address",regex:"The {{ field }} field format is invalid",url:"The {{ field }} field must be a valid URL",activeUrl:"The {{ field }} field must be a valid URL",alpha:"The {{ field }} field must contain only letters",alphaNumeric:"The {{ field }} field must contain only letters and numbers",minLength:"The {{ field }} field must have at least {{ min }} characters",maxLength:"The {{ field }} field must not be greater than {{ max }} characters",fixedLength:"The {{ field }} field must be {{ size }} characters long",confirmed:"The {{ field }} field and {{ otherField }} field must be the same",endsWith:"The {{ field }} field must end with {{ substring }}",startsWith:"The {{ field }} field must start with {{ substring }}",sameAs:"The {{ field }} field and {{ otherField }} field must be the same",notSameAs:"The {{ field }} field and {{ otherField }} field must be different",in:"The selected {{ field }} is invalid",notIn:"The selected {{ field }} is invalid",ipAddress:"The {{ field }} field must be a valid IP address",uuid:"The {{ field }} field must be a valid UUID",ascii:"The {{ field }} field must only contain ASCII characters",creditCard:"The {{ field }} field must be a valid {{ providersList }} card number",hexCode:"The {{ field }} field must be a valid hex color code",iban:"The {{ field }} field must be a valid IBAN number",jwt:"The {{ field }} field must be a valid JWT token",coordinates:"The {{ field }} field must contain latitude and longitude coordinates",mobile:"The {{ field }} field must be a valid mobile phone number",passport:"The {{ field }} field must be a valid passport number",postalCode:"The {{ field }} field must be a valid postal code",boolean:"The value must be a boolean",number:"The {{ field }} field must be a number",min:"The {{ field }} field must be at least {{ min }}",max:"The {{ field }} field must not be greater than {{ max }}",range:"The {{ field }} field must be between {{ min }} and {{ max }}",positive:"The {{ field }} field must be positive",negative:"The {{ field }} field must be negative",decimal:"The {{ field }} field must have {{ digits }} decimal places",withoutDecimals:"The {{ field }} field must not have decimal places",date:"The {{ field }} field must be a datetime value","date.equals":"The {{ field }} field must be a date equal to {{ expectedValue }}","date.after":"The {{ field }} field must be a date after {{ expectedValue }}","date.before":"The {{ field }} field must be a date before {{ expectedValue }}","date.afterOrEqual":"The {{ field }} field must be a date after or equal to {{ expectedValue }}","date.beforeOrEqual":"The {{ field }} field must be a date before or equal to {{ expectedValue }}","date.sameAs":"The {{ field }} field and {{ otherField }} field must be the same","date.notSameAs":"The {{ field }} field and {{ otherField }} field must be different","date.afterField":"The {{ field }} field must be a date after {{ otherField }}",accepted:"The {{ field }} field must be accepted",enum:"The selected {{ field }} is invalid",literal:"The {{ field }} field must be {{ expectedValue }}",object:"The {{ field }} field must be an object",record:"The {{ field }} field must be an object","record.minLength":"The {{ field }} field must have at least {{ min }} items","record.maxLength":"The {{ field }} field must not have more than {{ max }} items","record.fixedLength":"The {{ field }} field must contain {{ size }} items",array:"The {{ field }} field must be an array","array.minLength":"The {{ field }} field must have at least {{ min }} items","array.maxLength":"The {{ field }} field must not have more than {{ max }} items","array.fixedLength":"The {{ field }} field must contain {{ size }} items",notEmpty:"The {{ field }} field must not be empty",distinct:"The {{ field }} field has duplicate values",tuple:"The {{ field }} field must be an array",union:"Invalid value provided for {{ field }} field",unionGroup:"Invalid value provided for {{ field }} field",unionOfTypes:"Invalid value provided for {{ field }} field"}},git:{hooks:{"pre-commit":"lint-staged"},scopes:["","ci","deps","dx","release","docs","test","core","actions","arrays","auth","build","cache","cli","cloud","collections","config","database","datetime","docs","errors","git","lint","x-ray","modules","notifications","objects","path","realtime","router","buddy","security","server","storage","strings","tests","types","ui","utils"],messages:{type:"Select the type of change that you\u2019re committing:",scope:"Select the SCOPE of this change (optional):",customScope:"Select the SCOPE of this change:",subject:"Write a SHORT, IMPERATIVE tense description of the change:\n",body:'Provide a LONGER description of the change (optional). Use "|" to break new line:\n',breaking:'List any BREAKING CHANGES (optional). Use "|" to break new line:\n',footerPrefixesSelect:"Select the ISSUES type of the change list by this change (optional):",customFooterPrefixes:"Input ISSUES prefix:",footer:"List any ISSUES by this change. E.g.: #31, #34:\n",confirmCommit:"Are you sure you want to proceed with the commit above?"},types:[{value:"feat",name:"feat: \u2728 A new feature",emoji:":sparkles:"},{value:"fix",name:"fix: \uD83D\uDC1B A bug fix",emoji:":bug:"},{value:"docs",name:"docs: \uD83D\uDCDD Documentation only changes",emoji:":memo:"},{value:"style",name:"style: \uD83D\uDC84 Changes that do not affect the meaning of the code",emoji:":lipstick:"},{value:"refactor",name:"refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature",emoji:":recycle:"},{value:"perf",name:"perf: \u26A1\uFE0F A code change that improves performance",emoji:":zap:"},{value:"test",name:"test: \u2705 Adding missing tests or adjusting existing tests",emoji:":white_check_mark:"},{value:"build",name:"build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies",emoji:":package:"},{value:"ci",name:"ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts",emoji:":ferris_wheel:"},{value:"chore",name:"chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files",emoji:":hammer:"},{value:"revert",name:"revert: \u23EA\uFE0F Reverts a previous commit",emoji:":rewind:"}]},hashing:{driver:"argon2",bcrypt:{rounds:10,cost:4},argon2:{memory:65536,time:1}},library:{name:"hello-world",owner:"@stacksjs",repository:"stacksjs/stacks",license:"MIT",author:"Chris Breuer",contributors:["Chris Breuer <chris@stacksjs.org>"],defaultLanguage:"en",vueComponents:{name:"hello-world-vue",description:"Your Vue component library description",keywords:["component","library","vue","vite","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},webComponents:{name:"hello-world-elements",description:"Your framework agnostic web component library description.",keywords:["custom-elements","web-components","library","framework-agnostic","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},functions:{name:"hello-world-fx",description:"Your function library description.",keywords:["functions","composables","library","typescript","javascript"],shouldGenerateSourcemap:!1,files:["counter","dark"]}},logging:{logsPath:"storage/logs/stacks.log",deploymentsPath:"storage/logs/deployments.log"},notification:{default:"email"},payment:{driver:"stripe"},ports:{frontend:3000,backend:3001,admin:3002,library:3003,desktop:3004,email:3005,docs:3006,inspect:3007,api:3008,systemTray:3009,database:3010},queue:{default:"sync",connections:{sync:{driver:"sync"},database:{driver:"database",table:"jobs",queue:"default",retry_after:90},redis:{driver:"redis",connection:"default",queue:"default",retry_after:90},sqs:{driver:"sqs",key:"",secret:"",prefix:"",suffix:"",queue:"default",region:"us-east-1"}}},saas:{plans:[{productName:"Stacks Hobby",description:"All the Stacks features.",pricing:[{key:"stacks_hobby_monthly",price:3900,interval:"month",currency:"usd"},{key:"stacks_hobby_yearly",price:37900,interval:"year",currency:"usd"}],metadata:{createdBy:"admin",version:"1.0.0"}},{productName:"Stacks Pro",description:"All the Stacks features, including being able to invite team members.",pricing:[{key:"stacks_pro_monthly",price:5900,interval:"month",currency:"usd"},{key:"stacks_pro_yearly",price:57900,interval:"year",currency:"usd"}],metadata:{createdBy:"admin",version:"1.0.0"}}],webhook:{endpoint:"/webhooks/stripe",secret:""},currencies:["usd"],coupons:[{code:"SUMMER2024",amountOff:500,duration:"once"}],products:[{name:"Stacks Pro",description:"All the Stacks features.",images:["url_to_image"]}]},searchEngine:{driver:"opensearch"},security:{firewall:{enabled:!0,countryCodes:[],ipAddresses:[],queryString:[],httpHeaders:[],rateLimitPerMinute:1000,useIpReputationLists:!0,useKnownBadInputsRuleSet:!0}},services:{aws:{accountId:"",appId:"",apiKey:"",region:"us-east-1"},algolia:{appId:"",apiKey:""},meilisearch:{appId:"",apiKey:""},stripe:{appId:"",apiKey:""}},storage:{driver:"s3"},team:{name:"Stacks",members:{"Chris Breuer":"chris@stacksjs.org"}},ui:{shortcuts:[["btn","inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"]],safelist:"prose prose-sm m-auto text-left",trigger:":stx:",classPrefix:"stx-",reset:"tailwind",icons:["heroicons"],fonts:{email:{title:"Mona",text:"Hubot"},desktop:{title:"Mona",text:"Hubot"},mobile:{title:"Mona",text:"Hubot"},web:{title:"Mona",text:"Hubot"}}}},W=i;var M={default:"meta.llama2-70b-chat-v1",models:["amazon.titan-text-express-v1","amazon.titan-text-lite-v1","meta.llama2-70b-chat-v1"],deploy:!0};var _={driver:"fathom",drivers:{googleAnalytics:{trackingId:"UA-XXXXXXXXX-X"},fathom:{siteId:"WOLZMJDL"}}};import{env as F}from"@stacksjs/env";var S={name:F.APP_NAME??"Stacks",description:"Stacks is a full-stack framework for building modern web applications.",env:F.APP_ENV??"local",url:F.APP_URL??"stacks.localhost",redirectUrls:["stacksjs.com"],debug:F.DEBUG??!1,key:F.APP_KEY,maintenanceMode:F.APP_MAINTENANCE??!1,docMode:!1,timezone:"America/Los_Angeles",locale:"en",fallbackLocale:"en",cipher:"aes-256-cbc"};import{env as X}from"@stacksjs/env";var P={driver:"dynamodb",prefix:"stacks",ttl:3600,drivers:{dynamodb:{key:X.AWS_ACCESS_KEY_ID||"",secret:X.AWS_SECRET_ACCESS_KEY||"",region:X.AWS_DEFAULT_REGION||"us-east-1",table:"cache",endpoint:""},memcached:{persistent_id:"",sasl:["",""],options:{},servers:[{host:"127.0.0.1",port:11211,weight:100}]},redis:{connection:"cache",host:"127.0.0.1",port:6379,password:"",username:"stacks"}}};var O={name:"My Custom CLI",command:"custom-cli",description:"This is an example command to illustrate how to create your own commands. Check out `../app/commands` for more.",deploy:!0};import{env as a}from"@stacksjs/env";var N={firewall:{enabled:!0,countryCodes:["RU","IR"],ipAddresses:[],rateLimitPerMinute:1000,useIpReputationLists:!0,useKnownBadInputsRuleSet:!0,queryString:[],httpHeaders:[]}};var j={sites:{root:"stacksjs.org",path:"dist",modals:{domain:"modals.stacksjs.org",path:"dist"},stepper:{domain:"stepper.stacksjs.org",path:"dist"},notification:{domain:"notification.stacksjs.org",path:"dist"},docs:{domain:"docs.stacksjs.org",path:"dist"},tlsx:{domain:"tlsx.stacksjs.org",path:"dist"},dtsx:{domain:"dtsx.stacksjs.org",path:"dist"},spreadsheet:{domain:"spreadsheet.stacksjs.org",path:"dist"}},infrastructure:{type:"serverless",driver:"aws",firewall:N.firewall,environments:["production","staging","development"],storage:{},api:{prefix:a.API_PREFIX||"api",description:"My awesome Stacks API",deploy:!0,memorySize:512,prewarm:10,timeout:30},cdn:{compress:!0,allowedMethods:"ALL",cachedMethods:"GET_HEAD",originShieldRegion:"us-east-1",minTtl:0,defaultTtl:86400,maxTtl:31536000,cookieBehavior:"none",allowList:{cookies:[],headers:[],queryStrings:[]},realtimeLogs:{enabled:!0,samplingRate:1}},fileSystem:!0}};import{env as E}from"@stacksjs/env";var G={default:E.DB_CONNECTION||"sqlite",connections:{sqlite:{database:E.DB_DATABASE||"database/stacks.sqlite",prefix:""},dynamodb:{key:E.AWS_ACCESS_KEY_ID||"",secret:E.AWS_SECRET_ACCESS_KEY||"",region:E.AWS_DEFAULT_REGION||"us-east-1",prefix:E.DB_DATABASE||"stacks",endpoint:"http://localhost",port:E.DB_PORT||8000},mysql:{name:E.DB_DATABASE||"stacks",host:E.DB_HOST||"127.0.0.1",port:E.DB_PORT||3306,username:E.DB_USERNAME||"root",password:E.DB_PASSWORD||"",prefix:""},postgres:{name:E.DB_DATABASE||"stacks",host:E.DB_HOST||"127.0.0.1",port:E.DB_PORT||3306,username:E.DB_USERNAME||"",password:E.DB_PASSWORD||"",prefix:""}},migrations:"migrations",migrationLocks:"migration_locks"};import{env as o}from"@stacksjs/env";var H={a:[{name:o.APP_URL||"",address:"10.0.0.1",ttl:300},{name:"www",address:"@",ttl:300}],aaaa:[],cname:[],mx:[],txt:[],nameservers:[]};import{env as Y}from"@stacksjs/env";var k={from:{name:Y.MAIL_FROM_NAME||"Stacks",address:Y.MAIL_FROM_ADDRESS||"no-reply@stacksjs.org"},mailboxes:["chris@stacksjs.org","blake@stacksjs.org","glenn@stacksjs.org"],url:Y.APP_URL||"http://localhost:3000",charset:"UTF-8",server:{scan:!0}};var B={messages:{string:"The {{ field }} field must be a string",email:"The {{ field }} field must be a valid email address",regex:"The {{ field }} field format is invalid",url:"The {{ field }} field must be a valid URL",activeUrl:"The {{ field }} field must be a valid URL",alpha:"The {{ field }} field must contain only letters",alphaNumeric:"The {{ field }} field must contain only letters and numbers",minLength:"The {{ field }} field must have at least {{ min }} characters",maxLength:"The {{ field }} field must not be greater than {{ max }} characters",fixedLength:"The {{ field }} field must be {{ size }} characters long",confirmed:"The {{ field }} field and {{ otherField }} field must be the same",endsWith:"The {{ field }} field must end with {{ substring }}",startsWith:"The {{ field }} field must start with {{ substring }}",sameAs:"The {{ field }} field and {{ otherField }} field must be the same",notSameAs:"The {{ field }} field and {{ otherField }} field must be different",in:"The selected {{ field }} is invalid",notIn:"The selected {{ field }} is invalid",ipAddress:"The {{ field }} field must be a valid IP address",uuid:"The {{ field }} field must be a valid UUID",ascii:"The {{ field }} field must only contain ASCII characters",creditCard:"The {{ field }} field must be a valid {{ providersList }} card number",hexCode:"The {{ field }} field must be a valid hex color code",iban:"The {{ field }} field must be a valid IBAN number",jwt:"The {{ field }} field must be a valid JWT token",coordinates:"The {{ field }} field must contain latitude and longitude coordinates",mobile:"The {{ field }} field must be a valid mobile phone number",passport:"The {{ field }} field must be a valid passport number",postalCode:"The {{ field }} field must be a valid postal code",boolean:"The value must be a boolean",number:"The {{ field }} field must be a number",min:"The {{ field }} field must be at least {{ min }}",max:"The {{ field }} field must not be greater than {{ max }}",range:"The {{ field }} field must be between {{ min }} and {{ max }}",positive:"The {{ field }} field must be positive",negative:"The {{ field }} field must be negative",decimal:"The {{ field }} field must have {{ digits }} decimal places",withoutDecimals:"The {{ field }} field must not have decimal places",date:"The {{ field }} field must be a datetime value","date.equals":"The {{ field }} field must be a date equal to {{ expectedValue }}","date.after":"The {{ field }} field must be a date after {{ expectedValue }}","date.before":"The {{ field }} field must be a date before {{ expectedValue }}","date.afterOrEqual":"The {{ field }} field must be a date after or equal to {{ expectedValue }}","date.beforeOrEqual":"The {{ field }} field must be a date before or equal to {{ expectedValue }}","date.sameAs":"The {{ field }} field and {{ otherField }} field must be the same","date.notSameAs":"The {{ field }} field and {{ otherField }} field must be different","date.afterField":"The {{ field }} field must be a date after {{ otherField }}",accepted:"The {{ field }} field must be accepted",enum:"The selected {{ field }} is invalid",literal:"The {{ field }} field must be {{ expectedValue }}",object:"The {{ field }} field must be an object",record:"The {{ field }} field must be an object","record.minLength":"The {{ field }} field must have at least {{ min }} items","record.maxLength":"The {{ field }} field must not have more than {{ max }} items","record.fixedLength":"The {{ field }} field must contain {{ size }} items",array:"The {{ field }} field must be an array","array.minLength":"The {{ field }} field must have at least {{ min }} items","array.maxLength":"The {{ field }} field must not have more than {{ max }} items","array.fixedLength":"The {{ field }} field must contain {{ size }} items",notEmpty:"The {{ field }} field must not be empty",distinct:"The {{ field }} field has duplicate values",tuple:"The {{ field }} field must be an array",union:"Invalid value provided for {{ field }} field",unionGroup:"Invalid value provided for {{ field }} field",unionOfTypes:"Invalid value provided for {{ field }} field"}};var p={hooks:{"pre-commit":"lint-staged"},scopes:["","ci","deps","dx","release","docs","test","core","actions","arrays","auth","build","cache","cli","cloud","collections","config","database","datetime","docs","errors","git","lint","x-ray","modules","notifications","objects","path","realtime","router","buddy","security","server","storage","strings","tests","types","ui","utils"],messages:{type:"Select the type of change that you\u2019re committing:",scope:"Select the SCOPE of this change (optional):",customScope:"Select the SCOPE of this change:",subject:"Write a SHORT, IMPERATIVE tense description of the change:\n",body:'Provide a LONGER description of the change (optional). Use "|" to break new line:\n',breaking:'List any BREAKING CHANGES (optional). Use "|" to break new line:\n',footerPrefixesSelect:"Select the ISSUES type of the change list by this change (optional):",customFooterPrefixes:"Input ISSUES prefix:",footer:"List any ISSUES by this change. E.g.: #31, #34:\n",confirmCommit:"Are you sure you want to proceed with the commit above?"},types:[{value:"feat",name:"feat: \u2728 A new feature",emoji:":sparkles:"},{value:"fix",name:"fix: \uD83D\uDC1B A bug fix",emoji:":bug:"},{value:"docs",name:"docs: \uD83D\uDCDD Documentation only changes",emoji:":memo:"},{value:"style",name:"style: \uD83D\uDC84 Changes that do not affect the meaning of the code",emoji:":lipstick:"},{value:"refactor",name:"refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature",emoji:":recycle:"},{value:"perf",name:"perf: \u26A1\uFE0F A code change that improves performance",emoji:":zap:"},{value:"test",name:"test: \u2705 Adding missing tests or adjusting existing tests",emoji:":white_check_mark:"},{value:"build",name:"build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies",emoji:":package:"},{value:"ci",name:"ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts",emoji:":ferris_wheel:"},{value:"chore",name:"chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files",emoji:":hammer:"},{value:"revert",name:"revert: \u23EA\uFE0F Reverts a previous commit",emoji:":rewind:"}]};var q={driver:"argon2",bcrypt:{rounds:10,cost:4},argon2:{memory:65536,threads:1,time:1}};var T={name:"hello-world",owner:"@stacksjs",repository:"stacksjs/stacks",license:"MIT",author:"Chris Breuer",contributors:["Chris Breuer <chris@stacksjs.org>"],defaultLanguage:"en",releaseable:!0,vueComponents:{name:"hello-world-vue",description:"Your Vue component library description",keywords:["component","library","vue","vite","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},webComponents:{name:"hello-world-elements",description:"Your framework agnostic web component library description.",keywords:["custom-elements","web-components","library","framework-agnostic","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},functions:{name:"hello-world-fx",description:"Your function library description.",keywords:["functions","composables","library","typescript","javascript"],shouldGenerateSourcemap:!1,files:["counter","dark"]}};import{storagePath as I}from"@stacksjs/path";var D={logsPath:I("logs/stacks.log"),deploymentsPath:I("logs/deployments.log")};var g={default:"email"};import{env as w}from"@stacksjs/env";var b={driver:"stripe",stripe:{publishableKey:w.STRIPE_PUBLISHABLE_KEY||"",secretKey:w.STRIPE_SECRET_KEY||""}};import{env as U}from"@stacksjs/env";var r={frontend:U.PORT??3000,backend:U.PORT_BACKEND??3001,admin:U.PORT_ADMIN??3002,library:U.PORT_LIBRARY??3003,desktop:U.PORT_DESKTOP??3004,email:U.PORT_EMAIL??3005,docs:U.PORT_DOCS??3006,inspect:U.PORT_INSPECT??3007,api:U.PORT_API??3008,systemTray:U.PORT_SYSTEM_TRAY??3009,database:3010};var m={default:"sync",connections:{sync:{driver:"sync"},sqs:{driver:"sqs",key:"",secret:"",prefix:"",suffix:"",queue:"default",region:"us-east-1"}}};var f={plans:[{productName:"Stacks Hobby",description:"All the Stacks features.",pricing:[{key:"stacks_hobby_monthly",price:3900,interval:"month",currency:"usd"},{key:"stacks_hobby_yearly",price:37900,interval:"year",currency:"usd"}],metadata:{createdBy:"admin",version:"1.0.0"}},{productName:"Stacks Pro",description:"All the Stacks features, including being able to invite team members.",pricing:[{key:"stacks_pro_monthly",price:5900,interval:"month",currency:"usd"},{key:"stacks_pro_yearly",price:57900,interval:"year",currency:"usd"}],metadata:{createdBy:"admin",version:"1.0.0"}}],webhook:{endpoint:"/webhooks/stripe",secret:""},currencies:["usd"],coupons:[{code:"SUMMER2024",amountOff:500,duration:"once"}],products:[{name:"Stacks Pro",description:"All the Stacks features.",images:["url_to_image"]}]};var h={driver:"opensearch"};import{env as R}from"@stacksjs/env";var d={aws:{accountId:R.AWS_ACCOUNT_ID||"",appId:R.AWS_ACCESS_KEY_ID||"",apiKey:R.AWS_SECRET_ACCESS_KEY||"",region:R.AWS_DEFAULT_REGION||"us-east-1"},algolia:{appId:"",apiKey:""},meilisearch:{appId:"",apiKey:""},lemonSqueezy:{appId:"",apiKey:""},stripe:{appId:"",apiKey:""}};var v={driver:"s3"};var u={name:"Stacks",members:{chris:"chris@stacksjs.org",blake:"blake@stacksjs.org",zoltan:"zoltan@stacksjs.org",freddy:"freddy@stacksjs.org",glenn:"glenn@stacksjs.org",dorell:"dorell@stacksjs.org",avery:"avery@stacksjs.org",adelino:"adelino@stacksjs.org"}};var t={shortcuts:[["btn","inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"]],safelist:"prose prose-sm m-auto text-left",trigger:":stx:",classPrefix:"stx-",reset:"tailwind",icons:["heroicons"],fonts:{email:{title:"Mona",text:"Hubot"},desktop:{title:"Mona",text:"Hubot"},mobile:{title:"Mona",text:"Hubot"},web:{title:"Mona",text:"Hubot"}},theme:{colors:{veryCool:"#0000ff",brand:{primary:"hsl(var(--hue, 217) 78% 51%)"}}}};var s={ai:M,analytics:_,app:S,cache:P,cli:O,cloud:j,database:G,dns:H,email:k,errors:B,git:p,hashing:q,library:T,logging:D,notification:g,queue:m,payment:b,ports:r,saas:f,searchEngine:h,security:N,services:d,storage:v,team:u,ui:t},Z=s;import{createLocalTunnel as z}from"@stacksjs/tunnel";async function e({domain:C=$.app.url||"stacks",type:K="frontend",localhost:L=!1,https:V=void 0,network:Q=void 0}={}){let J=C.replace(/\.[^.]+$/,".localhost");switch(K){case"frontend":if(Q)return await z($.ports?.frontend||3000);if(L)return`http://localhost:${$.ports?.frontend}`;break;case"backend":if(Q)return await z($.ports?.backend||3001);if(L)return`http://localhost:${$.ports?.backend}`;J=`api.${J}`;break;case"admin":if(Q)return await z($.ports?.admin||3002);if(L)return`http://localhost:${$.ports?.admin}`;J=`admin.${J}`;break;case"library":if(Q)return await z($.ports?.library||3003);if(L)return`http://localhost:${$.ports?.library}`;J=`libs.${J}`;break;case"email":if(Q)return await z($.ports?.email||3005);if(L)return`http://localhost:${$.ports?.email}`;J=`email.${J}`;break;case"desktop":if(Q)return await z($.ports?.desktop||3004);if(L)return`http://localhost:${$.ports?.desktop}`;J=`desktop.${J}`;break;case"docs":if(Q)return await z($.ports?.docs||3006);if(L)return`http://localhost:${$.ports?.docs}`;J=`docs.${J}`;break;case"inspect":if(Q)return await z($.ports?.inspect||3007);if(L)return`http://localhost:${$.ports?.inspect}`;J=`inspect.${J}`;break;default:if(L)return`http://localhost:${$.ports?.frontend}`}if(V)return`https://${J}`;return`http://${J}`}function CC(C){return C}function xC(C){return C}function $C(C){return C}function EC(C){return C}function JC(C){return C}function LC(C){return C}function UC(C){return C}function QC(C){return C}function zC(C){return C}function AC(C){return C}function FC(C){return C}function KC(C){return C}function NC(C){return C}function RC(C){return C}function VC(C){return C}function WC(C){return C}function XC(C){return C}function YC(C){return C}function ZC(C){return C}function MC(C){return C}function _C(C){return C}function SC(C){return C}function PC(C){return C}function OC(C){return C}function jC(C){return C}function GC(C){return C}function HC(C){return C}var x={...W,...Z},kC=x.ai,BC=x.analytics,A=x.app,pC=x.cache,qC=x.cloud,TC=x.cli,IC=x.database,DC=x.dns,gC=x.docs,wC=x.email,bC=x.errors,rC=x.git,mC=x.hashing,fC=x.library,hC=x.logging,dC=x.notification,vC=x.payment,uC=x.ports,tC=x.queue,nC=x.security,lC=x.saas,yC=x.searchEngine,cC=x.services,iC=x.storage,aC=x.team,oC=x.ui;function sC(){if(A.env==="local")return"dev";if(A.env==="development")return"dev";if(A.env==="staging")return"stage";if(A.env==="production")return"prod";if(!A.env)throw new Error("Couldn\'t determine app environment");return A.env}export{oC as ui,aC as team,iC as storage,cC as services,nC as security,yC as searchEngine,lC as saas,tC as queue,uC as ports,vC as payment,Z as overrides,dC as notification,hC as logging,e as localUrl,fC as library,mC as hashing,rC as git,bC as errors,wC as email,gC as docs,DC as dns,sC as determineAppEnv,jC as defineUi,OC as defineStorage,CC as defineStacksConfig,PC as defineSms,SC as defineServices,_C as defineSecurity,MC as defineSearchEngine,ZC as defineQueue,YC as definePayment,XC as defineNotification,GC as defineModel,WC as defineLibrary,UC as defineJob,VC as defineHashing,RC as defineGit,HC as defineEvents,KC as defineEmailConfig,NC as defineEmail,FC as defineDns,AC as defineDependencies,zC as defineDatabase,QC as defineCronJob,LC as defineCli,JC as defineChat,EC as defineCdn,$C as defineCache,xC as defineApp,W as defaults,IC as database,$ as config,qC as cloud,TC as cli,pC as cache,A as app,BC as analytics,kC as ai};
2
+ var u=Object.defineProperty;var l=(C,F)=>{for(var E in F)u(C,E,{get:F[E],enumerable:!0,configurable:!0,set:(R)=>F[E]=()=>R})};var $={};l($,{ui:()=>oC,team:()=>aC,storage:()=>iC,services:()=>cC,security:()=>uC,searchEngine:()=>yC,saas:()=>lC,queue:()=>vC,ports:()=>nC,payment:()=>tC,overrides:()=>Y,notification:()=>dC,logging:()=>hC,localUrl:()=>s,library:()=>fC,hashing:()=>bC,git:()=>wC,errors:()=>rC,email:()=>mC,docs:()=>gC,dns:()=>DC,determineAppEnv:()=>eC,defineUi:()=>jC,defineStorage:()=>OC,defineStacksConfig:()=>CC,defineSms:()=>PC,defineServices:()=>SC,defineSecurity:()=>_C,defineSearchEngine:()=>ZC,defineQueue:()=>YC,definePayment:()=>XC,defineNotification:()=>WC,defineModel:()=>GC,defineLibrary:()=>VC,defineJob:()=>UC,defineHashing:()=>RC,defineGit:()=>NC,defineEvents:()=>HC,defineEmailConfig:()=>FC,defineEmail:()=>KC,defineDns:()=>zC,defineDependencies:()=>MC,defineDatabase:()=>AC,defineCronJob:()=>QC,defineCli:()=>EC,defineChat:()=>LC,defineCdn:()=>JC,defineCache:()=>$C,defineApp:()=>xC,defaults:()=>V,database:()=>IC,config:()=>x,cloud:()=>pC,cli:()=>qC,cache:()=>TC,app:()=>M,analytics:()=>BC,ai:()=>kC});import{commandsPath as y,userDatabasePath as c}from"@stacksjs/path";var i={ai:{deploy:!1,models:["amazon.titan-embed-text-v1","amazon.titan-text-express-v1","amazon.titan-embed-image-v1","amazon.titan-image-generator-v1","anthropic.claude-v1","anthropic.claude-v2","anthropic.claude-v2:1","anthropic.claude-instant-v1","meta.llama2-13b-chat-v1","meta.llama2-70b-chat-v1"]},analytics:{driver:void 0},app:{name:"Stacks",description:"A Stacks application.",env:"local",url:"stacks.localhost",debug:!0,key:"",timezone:"UTC",locale:"en",fallbackLocale:"en",cipher:"AES-256-CBC",docMode:!1,redirectUrls:[],maintenanceMode:!1},cli:{name:"My Custom CLI",command:"my-custom-cli",description:"Stacks is a full-stack framework for TypeScript.",source:y(),deploy:!1},cache:{driver:"redis",prefix:"stx",ttl:3600,drivers:{redis:{connection:"default",host:"localhost",port:6379,username:"",password:""}}},cloud:{type:"serverless",driver:"aws",storage:{},environments:["production","staging","development"],firewall:{enabled:!0,countryCodes:[],ipAddresses:[],queryString:[],httpHeaders:[],rateLimitPerMinute:1000,useIpReputationLists:!0,useKnownBadInputsRuleSet:!0},cdn:{allowedMethods:"GET_HEAD",cachedMethods:"GET_HEAD",minTtl:0,defaultTtl:86400,maxTtl:31536000,compress:!0,priceClass:"PriceClass_All",originShieldRegion:"us-east-1",cookieBehavior:"none",allowList:{cookies:[],headers:[],queryStrings:[]},realtimeLogs:{enabled:!0,samplingRate:2}},fileSystem:!1},database:{default:"sqlite",connections:{sqlite:{database:c("stacks.sqlite"),prefix:""}},migrations:"migrations",migrationLocks:"migration_locks"},dns:{driver:"aws",a:[],aaaa:[],cname:[],mx:[],txt:[]},docs:{lang:"en-US",title:"Stacks",description:"Rapid application, cloud & library framework.",lastUpdated:!0,deploy:!1,themeConfig:{editLink:{pattern:"https://github.com/stacksjs/stacks/edit/main/docs/docs/:path",text:"Edit this page on GitHub"},footer:{message:"Released under the MIT License.",copyright:"Copyright \xA9 2024-present Stacks.js, Inc."}}},email:{from:{name:"Stacks",address:"no-reply@stacksjs.org"},mailboxes:[],server:{scan:!0}},errors:{messages:{string:"The {{ field }} field must be a string",email:"The {{ field }} field must be a valid email address",regex:"The {{ field }} field format is invalid",url:"The {{ field }} field must be a valid URL",activeUrl:"The {{ field }} field must be a valid URL",alpha:"The {{ field }} field must contain only letters",alphaNumeric:"The {{ field }} field must contain only letters and numbers",minLength:"The {{ field }} field must have at least {{ min }} characters",maxLength:"The {{ field }} field must not be greater than {{ max }} characters",fixedLength:"The {{ field }} field must be {{ size }} characters long",confirmed:"The {{ field }} field and {{ otherField }} field must be the same",endsWith:"The {{ field }} field must end with {{ substring }}",startsWith:"The {{ field }} field must start with {{ substring }}",sameAs:"The {{ field }} field and {{ otherField }} field must be the same",notSameAs:"The {{ field }} field and {{ otherField }} field must be different",in:"The selected {{ field }} is invalid",notIn:"The selected {{ field }} is invalid",ipAddress:"The {{ field }} field must be a valid IP address",uuid:"The {{ field }} field must be a valid UUID",ascii:"The {{ field }} field must only contain ASCII characters",creditCard:"The {{ field }} field must be a valid {{ providersList }} card number",hexCode:"The {{ field }} field must be a valid hex color code",iban:"The {{ field }} field must be a valid IBAN number",jwt:"The {{ field }} field must be a valid JWT token",coordinates:"The {{ field }} field must contain latitude and longitude coordinates",mobile:"The {{ field }} field must be a valid mobile phone number",passport:"The {{ field }} field must be a valid passport number",postalCode:"The {{ field }} field must be a valid postal code",boolean:"The value must be a boolean",number:"The {{ field }} field must be a number",min:"The {{ field }} field must be at least {{ min }}",max:"The {{ field }} field must not be greater than {{ max }}",range:"The {{ field }} field must be between {{ min }} and {{ max }}",positive:"The {{ field }} field must be positive",negative:"The {{ field }} field must be negative",decimal:"The {{ field }} field must have {{ digits }} decimal places",withoutDecimals:"The {{ field }} field must not have decimal places",date:"The {{ field }} field must be a datetime value","date.equals":"The {{ field }} field must be a date equal to {{ expectedValue }}","date.after":"The {{ field }} field must be a date after {{ expectedValue }}","date.before":"The {{ field }} field must be a date before {{ expectedValue }}","date.afterOrEqual":"The {{ field }} field must be a date after or equal to {{ expectedValue }}","date.beforeOrEqual":"The {{ field }} field must be a date before or equal to {{ expectedValue }}","date.sameAs":"The {{ field }} field and {{ otherField }} field must be the same","date.notSameAs":"The {{ field }} field and {{ otherField }} field must be different","date.afterField":"The {{ field }} field must be a date after {{ otherField }}",accepted:"The {{ field }} field must be accepted",enum:"The selected {{ field }} is invalid",literal:"The {{ field }} field must be {{ expectedValue }}",object:"The {{ field }} field must be an object",record:"The {{ field }} field must be an object","record.minLength":"The {{ field }} field must have at least {{ min }} items","record.maxLength":"The {{ field }} field must not have more than {{ max }} items","record.fixedLength":"The {{ field }} field must contain {{ size }} items",array:"The {{ field }} field must be an array","array.minLength":"The {{ field }} field must have at least {{ min }} items","array.maxLength":"The {{ field }} field must not have more than {{ max }} items","array.fixedLength":"The {{ field }} field must contain {{ size }} items",notEmpty:"The {{ field }} field must not be empty",distinct:"The {{ field }} field has duplicate values",tuple:"The {{ field }} field must be an array",union:"Invalid value provided for {{ field }} field",unionGroup:"Invalid value provided for {{ field }} field",unionOfTypes:"Invalid value provided for {{ field }} field"}},git:{hooks:{"pre-commit":"lint-staged"},scopes:["","ci","deps","dx","release","docs","test","core","actions","arrays","auth","build","cache","cli","cloud","collections","config","database","datetime","docs","errors","git","lint","x-ray","modules","notifications","objects","path","realtime","router","buddy","security","server","storage","strings","tests","types","ui","utils"],messages:{type:"Select the type of change that you\u2019re committing:",scope:"Select the SCOPE of this change (optional):",customScope:"Select the SCOPE of this change:",subject:`Write a SHORT, IMPERATIVE tense description of the change:
3
+ `,body:`Provide a LONGER description of the change (optional). Use "|" to break new line:
4
+ `,breaking:`List any BREAKING CHANGES (optional). Use "|" to break new line:
5
+ `,footerPrefixesSelect:"Select the ISSUES type of the change list by this change (optional):",customFooterPrefixes:"Input ISSUES prefix:",footer:`List any ISSUES by this change. E.g.: #31, #34:
6
+ `,confirmCommit:"Are you sure you want to proceed with the commit above?"},types:[{value:"feat",name:"feat: \u2728 A new feature",emoji:":sparkles:"},{value:"fix",name:"fix: \uD83D\uDC1B A bug fix",emoji:":bug:"},{value:"docs",name:"docs: \uD83D\uDCDD Documentation only changes",emoji:":memo:"},{value:"style",name:"style: \uD83D\uDC84 Changes that do not affect the meaning of the code",emoji:":lipstick:"},{value:"refactor",name:"refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature",emoji:":recycle:"},{value:"perf",name:"perf: \u26A1\uFE0F A code change that improves performance",emoji:":zap:"},{value:"test",name:"test: \u2705 Adding missing tests or adjusting existing tests",emoji:":white_check_mark:"},{value:"build",name:"build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies",emoji:":package:"},{value:"ci",name:"ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts",emoji:":ferris_wheel:"},{value:"chore",name:"chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files",emoji:":hammer:"},{value:"revert",name:"revert: \u23EA\uFE0F Reverts a previous commit",emoji:":rewind:"}]},hashing:{driver:"argon2",bcrypt:{rounds:10,cost:4},argon2:{memory:65536,time:1}},library:{name:"hello-world",owner:"@stacksjs",repository:"stacksjs/stacks",license:"MIT",author:"Chris Breuer",contributors:["Chris Breuer <chris@stacksjs.org>"],defaultLanguage:"en",vueComponents:{name:"hello-world-vue",description:"Your Vue component library description",keywords:["component","library","vue","vite","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},webComponents:{name:"hello-world-elements",description:"Your framework agnostic web component library description.",keywords:["custom-elements","web-components","library","framework-agnostic","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},functions:{name:"hello-world-fx",description:"Your function library description.",keywords:["functions","composables","library","typescript","javascript"],shouldGenerateSourcemap:!1,files:["counter","dark"]}},logging:{logsPath:"storage/logs/stacks.log",deploymentsPath:"storage/logs/deployments.log"},notification:{default:"email"},payment:{driver:"stripe"},ports:{frontend:3000,backend:3001,admin:3002,library:3003,desktop:3004,email:3005,docs:3006,inspect:3007,api:3008,systemTray:3009,database:3010},queue:{default:"sync",connections:{sync:{driver:"sync"},database:{driver:"database",table:"jobs",queue:"default",retry_after:90},redis:{driver:"redis",connection:"default",queue:"default",retry_after:90},sqs:{driver:"sqs",key:"",secret:"",prefix:"",suffix:"",queue:"default",region:"us-east-1"}}},saas:{plans:[{productName:"Stacks Hobby",description:"All the Stacks features.",pricing:[{key:"stacks_hobby_monthly",price:3900,interval:"month",currency:"usd"},{key:"stacks_hobby_yearly",price:37900,interval:"year",currency:"usd"}],metadata:{createdBy:"admin",version:"1.0.0"}},{productName:"Stacks Pro",description:"All the Stacks features, including being able to invite team members.",pricing:[{key:"stacks_pro_monthly",price:5900,interval:"month",currency:"usd"},{key:"stacks_pro_yearly",price:57900,interval:"year",currency:"usd"}],metadata:{createdBy:"admin",version:"1.0.0"}}],webhook:{endpoint:"/webhooks/stripe",secret:""},currencies:["usd"],coupons:[{code:"SUMMER2024",amountOff:500,duration:"once"}],products:[{name:"Stacks Pro",description:"All the Stacks features.",images:["url_to_image"]}]},searchEngine:{driver:"opensearch"},security:{firewall:{enabled:!0,countryCodes:[],ipAddresses:[],queryString:[],httpHeaders:[],rateLimitPerMinute:1000,useIpReputationLists:!0,useKnownBadInputsRuleSet:!0}},services:{aws:{accountId:"",appId:"",apiKey:"",region:"us-east-1"},algolia:{appId:"",apiKey:""},meilisearch:{appId:"",apiKey:""},stripe:{appId:"",apiKey:""}},storage:{driver:"s3"},team:{name:"Stacks",members:{"Chris Breuer":"chris@stacksjs.org"}},ui:{shortcuts:[["btn","inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"]],safelist:"prose prose-sm m-auto text-left",trigger:":stx:",classPrefix:"stx-",reset:"tailwind",icons:["hugeicons"],fonts:{email:{title:"Mona",text:"Hubot"},desktop:{title:"Mona",text:"Hubot"},mobile:{title:"Mona",text:"Hubot"},web:{title:"Mona",text:"Hubot"}}}},V=i;var Z={default:"meta.llama2-70b-chat-v1",models:["amazon.titan-text-express-v1","amazon.titan-text-lite-v1","meta.llama2-70b-chat-v1"],deploy:!0};var _={driver:"fathom",drivers:{googleAnalytics:{trackingId:"UA-XXXXXXXXX-X"},fathom:{siteId:"WOLZMJDL"}}};import{env as z}from"@stacksjs/env";var S={name:z.APP_NAME??"Stacks",description:"Stacks is a full-stack framework for building modern web applications.",env:z.APP_ENV??"local",url:z.APP_URL??"stacks.localhost",redirectUrls:["stacksjs.com"],debug:z.DEBUG??!1,key:z.APP_KEY,maintenanceMode:z.APP_MAINTENANCE??!1,docMode:!1,timezone:"America/Los_Angeles",locale:"en",fallbackLocale:"en",cipher:"aes-256-cbc"};import{env as W}from"@stacksjs/env";var P={driver:"dynamodb",prefix:"stacks",ttl:3600,drivers:{dynamodb:{key:W.AWS_ACCESS_KEY_ID||"",secret:W.AWS_SECRET_ACCESS_KEY||"",region:W.AWS_DEFAULT_REGION||"us-east-1",table:"cache",endpoint:""},memcached:{persistent_id:"",sasl:["",""],options:{},servers:[{host:"127.0.0.1",port:11211,weight:100}]},redis:{connection:"cache",host:"127.0.0.1",port:6379,password:"",username:"stacks"}}};var O={name:"My Custom CLI",command:"custom-cli",description:"This is an example command to illustrate how to create your own commands. Check out `../app/commands` for more.",deploy:!0};import{env as a}from"@stacksjs/env";var K={firewall:{enabled:!0,countryCodes:["RU","IR"],ipAddresses:[],rateLimitPerMinute:1000,useIpReputationLists:!0,useKnownBadInputsRuleSet:!0,queryString:[],httpHeaders:[]}};var j={sites:{root:"stacksjs.org",path:"dist",modals:{domain:"modals.stacksjs.org",path:"dist"},stepper:{domain:"stepper.stacksjs.org",path:"dist"},notification:{domain:"notification.stacksjs.org",path:"dist"},docs:{domain:"docs.stacksjs.org",path:"dist"},tlsx:{domain:"tlsx.stacksjs.org",path:"dist"},dtsx:{domain:"dtsx.stacksjs.org",path:"dist"},spreadsheet:{domain:"spreadsheet.stacksjs.org",path:"dist"}},infrastructure:{type:"serverless",driver:"aws",firewall:K.firewall,environments:["production","staging","development"],storage:{},api:{prefix:a.API_PREFIX||"api",description:"My awesome Stacks API",deploy:!0,memorySize:512,prewarm:10,timeout:30},cdn:{compress:!0,allowedMethods:"ALL",cachedMethods:"GET_HEAD",originShieldRegion:"us-east-1",minTtl:0,defaultTtl:86400,maxTtl:31536000,cookieBehavior:"none",allowList:{cookies:[],headers:[],queryStrings:[]},realtimeLogs:{enabled:!0,samplingRate:1}},fileSystem:!0}};import{env as J}from"@stacksjs/env";var G={default:J.DB_CONNECTION||"sqlite",connections:{sqlite:{database:J.DB_DATABASE||"database/stacks.sqlite",prefix:""},dynamodb:{key:J.AWS_ACCESS_KEY_ID||"",secret:J.AWS_SECRET_ACCESS_KEY||"",region:J.AWS_DEFAULT_REGION||"us-east-1",prefix:J.DB_DATABASE||"stacks",endpoint:"http://localhost",port:J.DB_PORT||8000},mysql:{name:J.DB_DATABASE||"stacks",host:J.DB_HOST||"127.0.0.1",port:J.DB_PORT||3306,username:J.DB_USERNAME||"root",password:J.DB_PASSWORD||"",prefix:""},postgres:{name:J.DB_DATABASE||"stacks",host:J.DB_HOST||"127.0.0.1",port:J.DB_PORT||3306,username:J.DB_USERNAME||"",password:J.DB_PASSWORD||"",prefix:""}},migrations:"migrations",migrationLocks:"migration_locks"};import{env as o}from"@stacksjs/env";var H={a:[{name:o.APP_URL||"",address:"10.0.0.1",ttl:300},{name:"www",address:"@",ttl:300}],aaaa:[],cname:[],mx:[],txt:[],nameservers:[]};import{env as X}from"@stacksjs/env";var k={from:{name:X.MAIL_FROM_NAME||"Stacks",address:X.MAIL_FROM_ADDRESS||"no-reply@stacksjs.org"},mailboxes:["chris@stacksjs.org","blake@stacksjs.org","glenn@stacksjs.org"],url:X.APP_URL||"http://localhost:3000",charset:"UTF-8",server:{scan:!0}};var B={messages:{string:"The {{ field }} field must be a string",email:"The {{ field }} field must be a valid email address",regex:"The {{ field }} field format is invalid",url:"The {{ field }} field must be a valid URL",activeUrl:"The {{ field }} field must be a valid URL",alpha:"The {{ field }} field must contain only letters",alphaNumeric:"The {{ field }} field must contain only letters and numbers",minLength:"The {{ field }} field must have at least {{ min }} characters",maxLength:"The {{ field }} field must not be greater than {{ max }} characters",fixedLength:"The {{ field }} field must be {{ size }} characters long",confirmed:"The {{ field }} field and {{ otherField }} field must be the same",endsWith:"The {{ field }} field must end with {{ substring }}",startsWith:"The {{ field }} field must start with {{ substring }}",sameAs:"The {{ field }} field and {{ otherField }} field must be the same",notSameAs:"The {{ field }} field and {{ otherField }} field must be different",in:"The selected {{ field }} is invalid",notIn:"The selected {{ field }} is invalid",ipAddress:"The {{ field }} field must be a valid IP address",uuid:"The {{ field }} field must be a valid UUID",ascii:"The {{ field }} field must only contain ASCII characters",creditCard:"The {{ field }} field must be a valid {{ providersList }} card number",hexCode:"The {{ field }} field must be a valid hex color code",iban:"The {{ field }} field must be a valid IBAN number",jwt:"The {{ field }} field must be a valid JWT token",coordinates:"The {{ field }} field must contain latitude and longitude coordinates",mobile:"The {{ field }} field must be a valid mobile phone number",passport:"The {{ field }} field must be a valid passport number",postalCode:"The {{ field }} field must be a valid postal code",boolean:"The value must be a boolean",number:"The {{ field }} field must be a number",min:"The {{ field }} field must be at least {{ min }}",max:"The {{ field }} field must not be greater than {{ max }}",range:"The {{ field }} field must be between {{ min }} and {{ max }}",positive:"The {{ field }} field must be positive",negative:"The {{ field }} field must be negative",decimal:"The {{ field }} field must have {{ digits }} decimal places",withoutDecimals:"The {{ field }} field must not have decimal places",date:"The {{ field }} field must be a datetime value","date.equals":"The {{ field }} field must be a date equal to {{ expectedValue }}","date.after":"The {{ field }} field must be a date after {{ expectedValue }}","date.before":"The {{ field }} field must be a date before {{ expectedValue }}","date.afterOrEqual":"The {{ field }} field must be a date after or equal to {{ expectedValue }}","date.beforeOrEqual":"The {{ field }} field must be a date before or equal to {{ expectedValue }}","date.sameAs":"The {{ field }} field and {{ otherField }} field must be the same","date.notSameAs":"The {{ field }} field and {{ otherField }} field must be different","date.afterField":"The {{ field }} field must be a date after {{ otherField }}",accepted:"The {{ field }} field must be accepted",enum:"The selected {{ field }} is invalid",literal:"The {{ field }} field must be {{ expectedValue }}",object:"The {{ field }} field must be an object",record:"The {{ field }} field must be an object","record.minLength":"The {{ field }} field must have at least {{ min }} items","record.maxLength":"The {{ field }} field must not have more than {{ max }} items","record.fixedLength":"The {{ field }} field must contain {{ size }} items",array:"The {{ field }} field must be an array","array.minLength":"The {{ field }} field must have at least {{ min }} items","array.maxLength":"The {{ field }} field must not have more than {{ max }} items","array.fixedLength":"The {{ field }} field must contain {{ size }} items",notEmpty:"The {{ field }} field must not be empty",distinct:"The {{ field }} field has duplicate values",tuple:"The {{ field }} field must be an array",union:"Invalid value provided for {{ field }} field",unionGroup:"Invalid value provided for {{ field }} field",unionOfTypes:"Invalid value provided for {{ field }} field"}};var T={hooks:{"pre-commit":"lint-staged"},scopes:["","ci","deps","dx","release","docs","test","core","actions","arrays","auth","build","cache","cli","cloud","collections","config","database","datetime","docs","errors","git","lint","x-ray","modules","notifications","objects","path","realtime","router","buddy","security","server","storage","strings","tests","types","ui","utils"],messages:{type:"Select the type of change that you\u2019re committing:",scope:"Select the SCOPE of this change (optional):",customScope:"Select the SCOPE of this change:",subject:`Write a SHORT, IMPERATIVE tense description of the change:
7
+ `,body:`Provide a LONGER description of the change (optional). Use "|" to break new line:
8
+ `,breaking:`List any BREAKING CHANGES (optional). Use "|" to break new line:
9
+ `,footerPrefixesSelect:"Select the ISSUES type of the change list by this change (optional):",customFooterPrefixes:"Input ISSUES prefix:",footer:`List any ISSUES by this change. E.g.: #31, #34:
10
+ `,confirmCommit:"Are you sure you want to proceed with the commit above?"},types:[{value:"feat",name:"feat: \u2728 A new feature",emoji:":sparkles:"},{value:"fix",name:"fix: \uD83D\uDC1B A bug fix",emoji:":bug:"},{value:"docs",name:"docs: \uD83D\uDCDD Documentation only changes",emoji:":memo:"},{value:"style",name:"style: \uD83D\uDC84 Changes that do not affect the meaning of the code",emoji:":lipstick:"},{value:"refactor",name:"refactor: \u267B\uFE0F A code change that neither fixes a bug nor adds a feature",emoji:":recycle:"},{value:"perf",name:"perf: \u26A1\uFE0F A code change that improves performance",emoji:":zap:"},{value:"test",name:"test: \u2705 Adding missing tests or adjusting existing tests",emoji:":white_check_mark:"},{value:"build",name:"build: \uD83D\uDCE6\uFE0F Changes that affect the build system or external dependencies",emoji:":package:"},{value:"ci",name:"ci: \uD83C\uDFA1 Changes to our CI configuration files and scripts",emoji:":ferris_wheel:"},{value:"chore",name:"chore: \uD83D\uDD28 Other changes that don\u2019t modify src or test files",emoji:":hammer:"},{value:"revert",name:"revert: \u23EA\uFE0F Reverts a previous commit",emoji:":rewind:"}]};var p={driver:"argon2",bcrypt:{rounds:10,cost:4},argon2:{memory:65536,threads:1,time:1}};var q={name:"hello-world",owner:"@stacksjs",repository:"stacksjs/stacks",license:"MIT",author:"Chris Breuer",contributors:["Chris Breuer <chris@stacksjs.org>"],defaultLanguage:"en",releaseable:!0,vueComponents:{name:"hello-world-vue",description:"Your Vue component library description",keywords:["component","library","vue","vite","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},webComponents:{name:"hello-world-elements",description:"Your framework agnostic web component library description.",keywords:["custom-elements","web-components","library","framework-agnostic","typescript","javascript"],tags:[{name:["HelloWorld","AppHelloWorld"],description:"The Hello World custom element, built via this framework.",attributes:[{name:"greeting",description:"The greeting."}]}]},functions:{name:"hello-world-fx",description:"Your function library description.",keywords:["functions","composables","library","typescript","javascript"],shouldGenerateSourcemap:!1,files:["counter","dark"]}};import{storagePath as I}from"@stacksjs/path";var D={logsPath:I("logs/stacks.log"),deploymentsPath:I("logs/deployments.log")};var g={default:"email"};import{env as m}from"@stacksjs/env";var r={driver:"stripe",stripe:{publishableKey:m.STRIPE_PUBLISHABLE_KEY||"",secretKey:m.STRIPE_SECRET_KEY||""}};import{env as U}from"@stacksjs/env";var w={frontend:U.PORT??3000,backend:U.PORT_BACKEND??3001,admin:U.PORT_ADMIN??3002,library:U.PORT_LIBRARY??3003,desktop:U.PORT_DESKTOP??3004,email:U.PORT_EMAIL??3005,docs:U.PORT_DOCS??3006,inspect:U.PORT_INSPECT??3007,api:U.PORT_API??3008,systemTray:U.PORT_SYSTEM_TRAY??3009,database:3010};var b={default:"sync",connections:{sync:{driver:"sync"},sqs:{driver:"sqs",key:"",secret:"",prefix:"",suffix:"",queue:"default",region:"us-east-1"}}};var f={plans:[{productName:"Stacks Hobby",description:"All the Stacks features.",pricing:[{key:"stacks_hobby_early_monthly",price:1900,interval:"month",currency:"usd"},{key:"stacks_hobby_launch_monthly",price:2900,interval:"month",currency:"usd"},{key:"stacks_hobby_monthly",price:3900,interval:"month",currency:"usd"},{key:"stacks_hobby_yearly",price:37900,interval:"year",currency:"usd"}],metadata:{createdBy:"admin",version:"1.0.0"}},{productName:"Stacks Pro",description:"All the Stacks features, including being able to invite team members.",pricing:[{key:"stacks_pro_early_monthly",price:3900,interval:"month",currency:"usd"},{key:"stacks_pro_monthly",price:5900,interval:"month",currency:"usd"},{key:"stacks_pro_yearly",price:57900,interval:"year",currency:"usd"},{key:"stacks_pro_early_yearly",price:39000,interval:"year",currency:"usd"}],metadata:{createdBy:"admin",version:"1.0.0"}},{productName:"Stacks Lifetime",description:"One-time lifetime access to all Stacks features.",pricing:[{key:"stacks_hobby_early_lifetime",price:17900,currency:"usd"},{key:"stacks_hobby_launch_lifetime",price:27900,currency:"usd"},{key:"stacks_hobby_lifetime",price:47900,currency:"usd"},{key:"stacks_pro_early_lifetime",price:27900,currency:"usd"},{key:"stacks_pro_launch_lifetime",price:37900,currency:"usd"},{key:"stacks_pro_lifetime",price:74900,currency:"usd"}],metadata:{createdBy:"admin",version:"1.0.0"}}],webhook:{endpoint:"your-webhook-endpoint",secret:"your-webhook-secret"},currencies:["usd"],coupons:[],products:[{name:"Stacks Hobby",description:"All the Stacks features.",images:["image-url"]},{name:"Stacks Pro",description:"All the Stacks features, including team invites.",images:["image-url"]},{name:"Stacks Lifetime",description:"Lifetime access to Stacks features.",images:["image-url"]}]};var h={driver:"opensearch"};import{env as N}from"@stacksjs/env";var d={aws:{accountId:N.AWS_ACCOUNT_ID||"",appId:N.AWS_ACCESS_KEY_ID||"",apiKey:N.AWS_SECRET_ACCESS_KEY||"",region:N.AWS_DEFAULT_REGION||"us-east-1"},hetzner:{appId:"",apiKey:""},digitalOcean:{appId:"",apiKey:""},algolia:{appId:"",apiKey:""},meilisearch:{appId:"",apiKey:""},lemonSqueezy:{appId:"",apiKey:""},stripe:{appId:"",apiKey:""}};var t={driver:"s3"};var n={name:"Stacks",members:{chris:"chris@stacksjs.org",blake:"blake@stacksjs.org",zoltan:"zoltan@stacksjs.org",freddy:"freddy@stacksjs.org",glenn:"glenn@stacksjs.org",dorell:"dorell@stacksjs.org",avery:"avery@stacksjs.org",adelino:"adelino@stacksjs.org",germaine:"germaine@stacksjs.org",harley:"harley@stacksjs.org",michael:"michael@stacksjs.org"}};var v={shortcuts:[["btn","inline-flex items-center px-4 py-2 ml-2 border border-transparent shadow-sm text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 cursor-pointer"]],safelist:"prose prose-sm m-auto text-left",trigger:":stx:",classPrefix:"stx-",reset:"tailwind",icons:["heroicons"],fonts:{email:{title:"Mona",text:"Hubot"},desktop:{title:"Mona",text:"Hubot"},mobile:{title:"Mona",text:"Hubot"},web:{title:"Mona",text:"Hubot"}},theme:{colors:{veryCool:"#0000ff",brand:{primary:"hsl(var(--hue, 217) 78% 51%)"}}}};var e={ai:Z,analytics:_,app:S,cache:P,cli:O,cloud:j,database:G,dns:H,email:k,errors:B,git:T,hashing:p,library:q,logging:D,notification:g,queue:b,payment:r,ports:w,saas:f,searchEngine:h,security:K,services:d,storage:t,team:n,ui:v},Y=e;import{createLocalTunnel as A}from"@stacksjs/tunnel";async function s({domain:C=$.app.url||"stacks",type:F="frontend",localhost:E=!1,https:R=void 0,network:Q=void 0}={}){let L=C.replace(/\.[^.]+$/,".localhost");switch(F){case"frontend":if(Q)return await A($.ports?.frontend||3000);if(E)return`http://localhost:${$.ports?.frontend}`;break;case"backend":if(Q)return await A($.ports?.backend||3001);if(E)return`http://localhost:${$.ports?.backend}`;L=`api.${L}`;break;case"admin":if(Q)return await A($.ports?.admin||3002);if(E)return`http://localhost:${$.ports?.admin}`;L=`admin.${L}`;break;case"library":if(Q)return await A($.ports?.library||3003);if(E)return`http://localhost:${$.ports?.library}`;L=`libs.${L}`;break;case"email":if(Q)return await A($.ports?.email||3005);if(E)return`http://localhost:${$.ports?.email}`;L=`email.${L}`;break;case"desktop":if(Q)return await A($.ports?.desktop||3004);if(E)return`http://localhost:${$.ports?.desktop}`;L=`desktop.${L}`;break;case"docs":if(Q)return await A($.ports?.docs||3006);if(E)return`http://localhost:${$.ports?.docs}`;L=`docs.${L}`;break;case"inspect":if(Q)return await A($.ports?.inspect||3007);if(E)return`http://localhost:${$.ports?.inspect}`;L=`inspect.${L}`;break;default:if(E)return`http://localhost:${$.ports?.frontend}`}if(R)return`https://${L}`;return`http://${L}`}function CC(C){return C}function xC(C){return C}function $C(C){return C}function JC(C){return C}function LC(C){return C}function EC(C){return C}function UC(C){return C}function QC(C){return C}function AC(C){return C}function MC(C){return C}function zC(C){return C}function FC(C){return C}function KC(C){return C}function NC(C){return C}function RC(C){return C}function VC(C){return C}function WC(C){return C}function XC(C){return C}function YC(C){return C}function ZC(C){return C}function _C(C){return C}function SC(C){return C}function PC(C){return C}function OC(C){return C}function jC(C){return C}function GC(C){return C}function HC(C){return C}var x={...V,...Y},kC=x.ai,BC=x.analytics,M=x.app,TC=x.cache,pC=x.cloud,qC=x.cli,IC=x.database,DC=x.dns,gC=x.docs,mC=x.email,rC=x.errors,wC=x.git,bC=x.hashing,fC=x.library,hC=x.logging,dC=x.notification,tC=x.payment,nC=x.ports,vC=x.queue,uC=x.security,lC=x.saas,yC=x.searchEngine,cC=x.services,iC=x.storage,aC=x.team,oC=x.ui;function eC(){if(M.env==="local")return"dev";if(M.env==="development")return"dev";if(M.env==="staging")return"stage";if(M.env==="production")return"prod";if(!M.env)throw new Error("Couldn't determine app environment");return M.env}export{oC as ui,aC as team,iC as storage,cC as services,uC as security,yC as searchEngine,lC as saas,vC as queue,nC as ports,tC as payment,Y as overrides,dC as notification,hC as logging,s as localUrl,fC as library,bC as hashing,wC as git,rC as errors,mC as email,gC as docs,DC as dns,eC as determineAppEnv,jC as defineUi,OC as defineStorage,CC as defineStacksConfig,PC as defineSms,SC as defineServices,_C as defineSecurity,ZC as defineSearchEngine,YC as defineQueue,XC as definePayment,WC as defineNotification,GC as defineModel,VC as defineLibrary,UC as defineJob,RC as defineHashing,NC as defineGit,HC as defineEvents,FC as defineEmailConfig,KC as defineEmail,zC as defineDns,MC as defineDependencies,AC as defineDatabase,QC as defineCronJob,EC as defineCli,LC as defineChat,JC as defineCdn,$C as defineCache,xC as defineApp,V as defaults,IC as database,$ as config,pC as cloud,qC as cli,TC as cache,M as app,BC as analytics,kC as ai};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/config",
3
3
  "type": "module",
4
- "version": "0.68.2",
4
+ "version": "0.69.2",
5
5
  "description": "The Stacks config helper methods.",
6
6
  "author": "Chris Breuer",
7
7
  "contributors": ["Chris Breuer <chris@stacksjs.org>"],
@@ -32,8 +32,8 @@
32
32
  "prepublishOnly": "bun run build"
33
33
  },
34
34
  "devDependencies": {
35
- "@stacksjs/alias": "0.68.1",
36
- "@stacksjs/development": "0.68.1",
37
- "@stacksjs/types": "0.68.1"
35
+ "@stacksjs/alias": "0.69.2",
36
+ "@stacksjs/development": "0.69.2",
37
+ "@stacksjs/types": "0.69.2"
38
38
  }
39
39
  }