@stacksjs/config 0.64.5 → 0.65.0

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/index.js.map CHANGED
@@ -2,36 +2,36 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/defaults.ts", "../../../../../config/ai.ts", "../../../../../config/analytics.ts", "../../../../../config/app.ts", "../../../../../config/cache.ts", "../../../../../config/cli.ts", "../../../../../config/cloud.ts", "../../../../../config/security.ts", "../../../../../config/database.ts", "../../../../../config/dns.ts", "../../../../../config/email.ts", "../../../../../config/errors.ts", "../../../../../config/git.ts", "../../../../../config/hashing.ts", "../../../../../config/library.ts", "../../../../../config/logging.ts", "../../../../../config/notification.ts", "../../../../../config/payment.ts", "../../../../../config/ports.ts", "../../../../../config/queue.ts", "../../../../../config/search-engine.ts", "../../../../../config/services.ts", "../../../../../config/storage.ts", "../../../../../config/team.ts", "../../../../../config/ui.ts", "../src/overrides.ts", "../src/helpers.ts", "../src/config.ts"],
4
4
  "sourcesContent": [
5
- "import { commandsPath, userDatabasePath } from '@stacksjs/path'\nimport type { StacksOptions } from '@stacksjs/types'\n\n// import { userConfig as overrides } from './overrides'\n\nexport default {\n ai: {\n deploy: false,\n models: [\n 'amazon.titan-embed-text-v1',\n 'amazon.titan-text-express-v1',\n 'amazon.titan-embed-image-v1',\n 'amazon.titan-image-generator-v1',\n 'anthropic.claude-v1',\n 'anthropic.claude-v2',\n 'anthropic.claude-v2:1',\n 'anthropic.claude-instant-v1',\n 'meta.llama2-13b-chat-v1',\n 'meta.llama2-70b-chat-v1',\n ],\n },\n\n analytics: {\n driver: undefined,\n },\n\n // api: {\n // // version: 'v1',\n // prefix: 'api',\n // middleware: ['Api'],\n // routes: {\n // index: true,\n // show: true,\n // store: true,\n // update: true,\n // destroy: true,\n // },\n // },\n\n app: {\n name: 'Stacks',\n description: 'A Stacks application.',\n env: 'local',\n url: 'stacks.localhost',\n debug: true,\n key: '',\n timezone: 'UTC',\n locale: 'en',\n fallbackLocale: 'en',\n cipher: 'AES-256-CBC',\n docMode: false,\n redirectUrls: [],\n maintenanceMode: false,\n },\n\n cli: {\n name: 'My Custom CLI',\n command: 'my-custom-cli',\n description: 'Stacks is a full-stack framework for TypeScript.',\n source: commandsPath(),\n deploy: false,\n },\n\n cache: {\n driver: 'redis',\n prefix: 'stx',\n ttl: 3600,\n\n drivers: {\n redis: {\n connection: 'default',\n host: 'localhost',\n port: 6379,\n username: '',\n password: '',\n },\n },\n },\n\n cloud: {\n type: 'serverless',\n\n driver: 'aws',\n\n storage: {},\n\n environments: ['production', 'staging', 'development'],\n\n firewall: {\n enabled: true,\n countryCodes: [],\n ipAddresses: [],\n queryString: [],\n httpHeaders: [],\n // ipSets: [],\n rateLimitPerMinute: 1000,\n useIpReputationLists: true,\n useKnownBadInputsRuleSet: true,\n },\n\n cdn: {\n allowedMethods: 'GET_HEAD',\n cachedMethods: 'GET_HEAD',\n minTtl: 0,\n defaultTtl: 86400,\n maxTtl: 31536000,\n compress: true,\n priceClass: 'PriceClass_All',\n originShieldRegion: 'us-east-1',\n cookieBehavior: 'none',\n allowList: {\n cookies: [],\n headers: [],\n queryStrings: [],\n },\n realtimeLogs: {\n enabled: true,\n samplingRate: 2,\n },\n },\n\n fileSystem: false,\n },\n\n database: {\n default: 'sqlite',\n\n connections: {\n sqlite: {\n database: userDatabasePath('stacks.sqlite'),\n prefix: '',\n },\n },\n\n migrations: 'migrations',\n migrationLocks: 'migration_locks',\n },\n\n dns: {\n driver: 'aws',\n a: [],\n aaaa: [],\n cname: [],\n mx: [],\n txt: [],\n },\n\n docs: {\n lang: 'en-US',\n title: 'Stacks',\n description: 'Rapid application, cloud & library framework.',\n lastUpdated: true,\n deploy: false,\n\n themeConfig: {\n editLink: {\n pattern: 'https://github.com/stacksjs/stacks/edit/main/docs/docs/:path',\n text: 'Edit this page on GitHub',\n },\n\n footer: {\n message: 'Released under the MIT License.',\n copyright: 'Copyright © 2024-present Stacks.js, Inc.',\n },\n\n // algolia: services.algolia,\n\n // carbonAds: {\n // code: '',\n // placement: '',\n // },\n },\n },\n\n email: {\n from: {\n name: 'Stacks',\n address: 'no-reply@stacksjs.org',\n },\n\n mailboxes: [],\n\n server: {\n scan: true,\n },\n },\n\n errors: {\n messages: {\n string: 'The {{ field }} field must be a string',\n email: 'The {{ field }} field must be a valid email address',\n regex: 'The {{ field }} field format is invalid',\n url: 'The {{ field }} field must be a valid URL',\n activeUrl: 'The {{ field }} field must be a valid URL',\n alpha: 'The {{ field }} field must contain only letters',\n alphaNumeric: 'The {{ field }} field must contain only letters and numbers',\n minLength: 'The {{ field }} field must have at least {{ min }} characters',\n maxLength: 'The {{ field }} field must not be greater than {{ max }} characters',\n fixedLength: 'The {{ field }} field must be {{ size }} characters long',\n confirmed: 'The {{ field }} field and {{ otherField }} field must be the same',\n endsWith: 'The {{ field }} field must end with {{ substring }}',\n startsWith: 'The {{ field }} field must start with {{ substring }}',\n sameAs: 'The {{ field }} field and {{ otherField }} field must be the same',\n notSameAs: 'The {{ field }} field and {{ otherField }} field must be different',\n in: 'The selected {{ field }} is invalid',\n notIn: 'The selected {{ field }} is invalid',\n ipAddress: 'The {{ field }} field must be a valid IP address',\n uuid: 'The {{ field }} field must be a valid UUID',\n ascii: 'The {{ field }} field must only contain ASCII characters',\n creditCard: 'The {{ field }} field must be a valid {{ providersList }} card number',\n hexCode: 'The {{ field }} field must be a valid hex color code',\n iban: 'The {{ field }} field must be a valid IBAN number',\n jwt: 'The {{ field }} field must be a valid JWT token',\n coordinates: 'The {{ field }} field must contain latitude and longitude coordinates',\n mobile: 'The {{ field }} field must be a valid mobile phone number',\n passport: 'The {{ field }} field must be a valid passport number',\n postalCode: 'The {{ field }} field must be a valid postal code',\n\n // boolean\n boolean: 'The value must be a boolean',\n\n // number\n number: 'The {{ field }} field must be a number',\n min: 'The {{ field }} field must be at least {{ min }}',\n max: 'The {{ field }} field must not be greater than {{ max }}',\n range: 'The {{ field }} field must be between {{ min }} and {{ max }}',\n positive: 'The {{ field }} field must be positive',\n negative: 'The {{ field }} field must be negative',\n decimal: 'The {{ field }} field must have {{ digits }} decimal places',\n withoutDecimals: 'The {{ field }} field must not have decimal places',\n\n // date\n date: 'The {{ field }} field must be a datetime value',\n 'date.equals': 'The {{ field }} field must be a date equal to {{ expectedValue }}',\n 'date.after': 'The {{ field }} field must be a date after {{ expectedValue }}',\n 'date.before': 'The {{ field }} field must be a date before {{ expectedValue }}',\n 'date.afterOrEqual': 'The {{ field }} field must be a date after or equal to {{ expectedValue }}',\n 'date.beforeOrEqual': 'The {{ field }} field must be a date before or equal to {{ expectedValue }}',\n 'date.sameAs': 'The {{ field }} field and {{ otherField }} field must be the same',\n 'date.notSameAs': 'The {{ field }} field and {{ otherField }} field must be different',\n 'date.afterField': 'The {{ field }} field must be a date after {{ otherField }}',\n\n // accepted\n accepted: 'The {{ field }} field must be accepted',\n\n // enum\n enum: 'The selected {{ field }} is invalid',\n\n // literal\n literal: 'The {{ field }} field must be {{ expectedValue }}',\n\n // object\n object: 'The {{ field }} field must be an object',\n\n // record\n record: 'The {{ field }} field must be an object',\n 'record.minLength': 'The {{ field }} field must have at least {{ min }} items',\n 'record.maxLength': 'The {{ field }} field must not have more than {{ max }} items',\n 'record.fixedLength': 'The {{ field }} field must contain {{ size }} items',\n\n // array\n array: 'The {{ field }} field must be an array',\n 'array.minLength': 'The {{ field }} field must have at least {{ min }} items',\n 'array.maxLength': 'The {{ field }} field must not have more than {{ max }} items',\n 'array.fixedLength': 'The {{ field }} field must contain {{ size }} items',\n notEmpty: 'The {{ field }} field must not be empty',\n distinct: 'The {{ field }} field has duplicate values',\n\n // tuple\n tuple: 'The {{ field }} field must be an array',\n\n // union\n union: 'Invalid value provided for {{ field }} field',\n unionGroup: 'Invalid value provided for {{ field }} field',\n unionOfTypes: 'Invalid value provided for {{ field }} field',\n },\n },\n\n git: {\n hooks: {\n 'pre-commit': 'lint-staged',\n },\n\n scopes: [\n '',\n 'ci',\n 'deps',\n 'dx',\n 'release',\n 'docs',\n 'test',\n 'core',\n 'actions',\n 'arrays',\n 'auth',\n 'build',\n 'cache',\n 'cli',\n 'cloud',\n 'collections',\n 'config',\n 'database',\n 'datetime',\n 'docs',\n 'errors',\n 'git',\n 'lint',\n 'x-ray',\n 'modules',\n 'notifications',\n 'objects',\n 'path',\n 'realtime',\n 'router',\n 'buddy',\n 'security',\n 'server',\n 'storage',\n 'strings',\n 'tests',\n 'types',\n 'ui',\n 'utils',\n ],\n\n messages: {\n type: 'Select the type of change that you’re committing:',\n scope: 'Select the SCOPE of this change (optional):',\n customScope: 'Select the SCOPE of this change:',\n subject: 'Write a SHORT, IMPERATIVE tense description of the change:\\n',\n body: 'Provide a LONGER description of the change (optional). Use \"|\" to break new line:\\n',\n breaking: 'List any BREAKING CHANGES (optional). Use \"|\" to break new line:\\n',\n footerPrefixesSelect: 'Select the ISSUES type of the change list by this change (optional):',\n customFooterPrefixes: 'Input ISSUES prefix:',\n footer: 'List any ISSUES by this change. E.g.: #31, #34:\\n',\n confirmCommit: 'Are you sure you want to proceed with the commit above?',\n },\n\n types: [\n {\n value: 'feat',\n name: 'feat: ✨ A new feature',\n emoji: ':sparkles:',\n },\n { value: 'fix', name: 'fix: 🐛 A bug fix', emoji: ':bug:' },\n {\n value: 'docs',\n name: 'docs: 📝 Documentation only changes',\n emoji: ':memo:',\n },\n {\n value: 'style',\n name: 'style: 💄 Changes that do not affect the meaning of the code',\n emoji: ':lipstick:',\n },\n {\n value: 'refactor',\n name: 'refactor: ♻️ A code change that neither fixes a bug nor adds a feature',\n emoji: ':recycle:',\n },\n {\n value: 'perf',\n name: 'perf: ⚡️ A code change that improves performance',\n emoji: ':zap:',\n },\n {\n value: 'test',\n name: 'test: ✅ Adding missing tests or adjusting existing tests',\n emoji: ':white_check_mark:',\n },\n {\n value: 'build',\n name: 'build: 📦️ Changes that affect the build system or external dependencies',\n emoji: ':package:',\n },\n {\n value: 'ci',\n name: 'ci: 🎡 Changes to our CI configuration files and scripts',\n emoji: ':ferris_wheel:',\n },\n {\n value: 'chore',\n name: 'chore: 🔨 Other changes that don’t modify src or test files',\n emoji: ':hammer:',\n },\n {\n value: 'revert',\n name: 'revert: ⏪️ Reverts a previous commit',\n emoji: ':rewind:',\n },\n ],\n },\n\n hashing: {\n driver: 'argon2',\n\n bcrypt: {\n rounds: 10,\n cost: 4, // number between 4-31\n },\n\n argon2: {\n memory: 65536, // memory usage in kibibytes\n // threads: 1,\n time: 1, // the number of iterations\n },\n },\n\n library: {\n name: 'hello-world',\n owner: '@stacksjs', // you may or may not add the @ prefix here (it is added automatically)\n repository: 'stacksjs/stacks',\n license: 'MIT',\n author: 'Chris Breuer',\n contributors: ['Chris Breuer <chris@stacksjs.org>'],\n defaultLanguage: 'en',\n\n vueComponents: {\n name: 'hello-world-vue',\n description: 'Your Vue component library description',\n keywords: ['component', 'library', 'vue', 'vite', 'typescript', 'javascript'],\n tags: [\n {\n name: ['HelloWorld', 'AppHelloWorld'],\n description: 'The Hello World custom element, built via this framework.',\n attributes: [\n {\n name: 'greeting',\n description: 'The greeting.',\n },\n ],\n },\n ],\n },\n\n webComponents: {\n name: 'hello-world-elements',\n description: 'Your framework agnostic web component library description.',\n keywords: ['custom-elements', 'web-components', 'library', 'framework-agnostic', 'typescript', 'javascript'],\n tags: [\n {\n name: ['HelloWorld', 'AppHelloWorld'],\n description: 'The Hello World custom element, built via this framework.',\n attributes: [\n {\n name: 'greeting',\n description: 'The greeting.',\n },\n ],\n },\n ],\n },\n\n functions: {\n name: 'hello-world-fx',\n description: 'Your function library description.',\n keywords: ['functions', 'composables', 'library', 'typescript', 'javascript'],\n shouldGenerateSourcemap: false,\n files: ['counter', 'dark'],\n },\n },\n\n logging: {\n logsPath: 'storage/logs/stacks.log',\n deploymentsPath: 'storage/logs/deployments.log',\n },\n\n notification: {\n default: 'email',\n },\n\n payment: {\n driver: 'stripe',\n },\n\n ports: {\n frontend: 3000,\n backend: 3001,\n admin: 3002,\n library: 3003,\n desktop: 3004,\n email: 3005,\n docs: 3006,\n inspect: 3007,\n api: 3008,\n systemTray: 3009,\n database: 3010,\n // mobile: 3010,\n },\n\n queue: {\n default: 'sync',\n\n connections: {\n sync: {\n driver: 'sync',\n },\n\n database: {\n driver: 'database',\n table: 'jobs',\n queue: 'default',\n retry_after: 90,\n },\n\n redis: {\n driver: 'redis',\n connection: 'default',\n queue: 'default',\n retry_after: 90,\n },\n\n sqs: {\n driver: 'sqs',\n key: '',\n secret: '',\n prefix: '',\n suffix: '',\n queue: 'default',\n region: 'us-east-1',\n },\n },\n },\n\n searchEngine: {\n driver: 'opensearch',\n },\n\n security: {\n firewall: {\n enabled: true,\n countryCodes: [],\n ipAddresses: [],\n queryString: [],\n httpHeaders: [],\n // ipSets: [],\n rateLimitPerMinute: 1000,\n useIpReputationLists: true,\n useKnownBadInputsRuleSet: true,\n },\n },\n\n services: {\n aws: {\n accountId: '',\n appId: '',\n apiKey: '',\n region: 'us-east-1',\n },\n\n algolia: {\n appId: '',\n apiKey: '',\n },\n\n meilisearch: {\n appId: '',\n apiKey: '',\n },\n\n stripe: {\n appId: '',\n apiKey: '',\n },\n },\n\n storage: {\n driver: 's3',\n },\n\n team: {\n name: 'Stacks',\n members: {\n 'Chris Breuer': 'chris@stacksjs.org',\n },\n },\n\n ui: {\n shortcuts: [\n [\n 'btn',\n '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',\n ],\n ],\n\n safelist: 'prose prose-sm m-auto text-left',\n\n trigger: ':stx:',\n classPrefix: 'stx-',\n reset: 'tailwind',\n\n icons: ['heroicons'],\n\n fonts: {\n email: {\n title: 'Mona',\n text: 'Hubot',\n },\n\n desktop: {\n title: 'Mona',\n text: 'Hubot',\n },\n\n mobile: {\n title: 'Mona',\n text: 'Hubot',\n },\n\n web: {\n title: 'Mona',\n text: 'Hubot',\n },\n },\n },\n} satisfies StacksOptions\n",
5
+ "import type { StacksOptions } from '@stacksjs/types'\nimport { commandsPath, userDatabasePath } from '@stacksjs/path'\n\n// import { userConfig as overrides } from './overrides'\n\nconst config: StacksOptions = {\n ai: {\n deploy: false,\n models: [\n 'amazon.titan-embed-text-v1',\n 'amazon.titan-text-express-v1',\n 'amazon.titan-embed-image-v1',\n 'amazon.titan-image-generator-v1',\n 'anthropic.claude-v1',\n 'anthropic.claude-v2',\n 'anthropic.claude-v2:1',\n 'anthropic.claude-instant-v1',\n 'meta.llama2-13b-chat-v1',\n 'meta.llama2-70b-chat-v1',\n ],\n },\n\n analytics: {\n driver: undefined,\n },\n\n // api: {\n // // version: 'v1',\n // prefix: 'api',\n // middleware: ['Api'],\n // routes: {\n // index: true,\n // show: true,\n // store: true,\n // update: true,\n // destroy: true,\n // },\n // },\n\n app: {\n name: 'Stacks',\n description: 'A Stacks application.',\n env: 'local',\n url: 'stacks.localhost',\n debug: true,\n key: '',\n timezone: 'UTC',\n locale: 'en',\n fallbackLocale: 'en',\n cipher: 'AES-256-CBC',\n docMode: false,\n redirectUrls: [],\n maintenanceMode: false,\n },\n\n cli: {\n name: 'My Custom CLI',\n command: 'my-custom-cli',\n description: 'Stacks is a full-stack framework for TypeScript.',\n source: commandsPath(),\n deploy: false,\n },\n\n cache: {\n driver: 'redis',\n prefix: 'stx',\n ttl: 3600,\n\n drivers: {\n redis: {\n connection: 'default',\n host: 'localhost',\n port: 6379,\n username: '',\n password: '',\n },\n },\n },\n\n cloud: {\n type: 'serverless',\n\n driver: 'aws',\n\n storage: {},\n\n environments: ['production', 'staging', 'development'],\n\n firewall: {\n enabled: true,\n countryCodes: [],\n ipAddresses: [],\n queryString: [],\n httpHeaders: [],\n // ipSets: [],\n rateLimitPerMinute: 1000,\n useIpReputationLists: true,\n useKnownBadInputsRuleSet: true,\n },\n\n cdn: {\n allowedMethods: 'GET_HEAD',\n cachedMethods: 'GET_HEAD',\n minTtl: 0,\n defaultTtl: 86400,\n maxTtl: 31536000,\n compress: true,\n priceClass: 'PriceClass_All',\n originShieldRegion: 'us-east-1',\n cookieBehavior: 'none',\n allowList: {\n cookies: [],\n headers: [],\n queryStrings: [],\n },\n realtimeLogs: {\n enabled: true,\n samplingRate: 2,\n },\n },\n\n fileSystem: false,\n },\n\n database: {\n default: 'sqlite',\n\n connections: {\n sqlite: {\n database: userDatabasePath('stacks.sqlite'),\n prefix: '',\n },\n },\n\n migrations: 'migrations',\n migrationLocks: 'migration_locks',\n },\n\n dns: {\n driver: 'aws',\n a: [],\n aaaa: [],\n cname: [],\n mx: [],\n txt: [],\n },\n\n docs: {\n lang: 'en-US',\n title: 'Stacks',\n description: 'Rapid application, cloud & library framework.',\n lastUpdated: true,\n deploy: false,\n\n themeConfig: {\n editLink: {\n pattern: 'https://github.com/stacksjs/stacks/edit/main/docs/docs/:path',\n text: 'Edit this page on GitHub',\n },\n\n footer: {\n message: 'Released under the MIT License.',\n copyright: 'Copyright © 2024-present Stacks.js, Inc.',\n },\n\n // algolia: services.algolia,\n\n // carbonAds: {\n // code: '',\n // placement: '',\n // },\n },\n },\n\n email: {\n from: {\n name: 'Stacks',\n address: 'no-reply@stacksjs.org',\n },\n\n mailboxes: [],\n\n server: {\n scan: true,\n },\n },\n\n errors: {\n messages: {\n 'string': 'The {{ field }} field must be a string',\n 'email': 'The {{ field }} field must be a valid email address',\n 'regex': 'The {{ field }} field format is invalid',\n 'url': 'The {{ field }} field must be a valid URL',\n 'activeUrl': 'The {{ field }} field must be a valid URL',\n 'alpha': 'The {{ field }} field must contain only letters',\n 'alphaNumeric': 'The {{ field }} field must contain only letters and numbers',\n 'minLength': 'The {{ field }} field must have at least {{ min }} characters',\n 'maxLength': 'The {{ field }} field must not be greater than {{ max }} characters',\n 'fixedLength': 'The {{ field }} field must be {{ size }} characters long',\n 'confirmed': 'The {{ field }} field and {{ otherField }} field must be the same',\n 'endsWith': 'The {{ field }} field must end with {{ substring }}',\n 'startsWith': 'The {{ field }} field must start with {{ substring }}',\n 'sameAs': 'The {{ field }} field and {{ otherField }} field must be the same',\n 'notSameAs': 'The {{ field }} field and {{ otherField }} field must be different',\n 'in': 'The selected {{ field }} is invalid',\n 'notIn': 'The selected {{ field }} is invalid',\n 'ipAddress': 'The {{ field }} field must be a valid IP address',\n 'uuid': 'The {{ field }} field must be a valid UUID',\n 'ascii': 'The {{ field }} field must only contain ASCII characters',\n 'creditCard': 'The {{ field }} field must be a valid {{ providersList }} card number',\n 'hexCode': 'The {{ field }} field must be a valid hex color code',\n 'iban': 'The {{ field }} field must be a valid IBAN number',\n 'jwt': 'The {{ field }} field must be a valid JWT token',\n 'coordinates': 'The {{ field }} field must contain latitude and longitude coordinates',\n 'mobile': 'The {{ field }} field must be a valid mobile phone number',\n 'passport': 'The {{ field }} field must be a valid passport number',\n 'postalCode': 'The {{ field }} field must be a valid postal code',\n\n // boolean\n 'boolean': 'The value must be a boolean',\n\n // number\n 'number': 'The {{ field }} field must be a number',\n 'min': 'The {{ field }} field must be at least {{ min }}',\n 'max': 'The {{ field }} field must not be greater than {{ max }}',\n 'range': 'The {{ field }} field must be between {{ min }} and {{ max }}',\n 'positive': 'The {{ field }} field must be positive',\n 'negative': 'The {{ field }} field must be negative',\n 'decimal': 'The {{ field }} field must have {{ digits }} decimal places',\n 'withoutDecimals': 'The {{ field }} field must not have decimal places',\n\n // date\n 'date': 'The {{ field }} field must be a datetime value',\n 'date.equals': 'The {{ field }} field must be a date equal to {{ expectedValue }}',\n 'date.after': 'The {{ field }} field must be a date after {{ expectedValue }}',\n 'date.before': 'The {{ field }} field must be a date before {{ expectedValue }}',\n 'date.afterOrEqual': 'The {{ field }} field must be a date after or equal to {{ expectedValue }}',\n 'date.beforeOrEqual': 'The {{ field }} field must be a date before or equal to {{ expectedValue }}',\n 'date.sameAs': 'The {{ field }} field and {{ otherField }} field must be the same',\n 'date.notSameAs': 'The {{ field }} field and {{ otherField }} field must be different',\n 'date.afterField': 'The {{ field }} field must be a date after {{ otherField }}',\n\n // accepted\n 'accepted': 'The {{ field }} field must be accepted',\n\n // enum\n 'enum': 'The selected {{ field }} is invalid',\n\n // literal\n 'literal': 'The {{ field }} field must be {{ expectedValue }}',\n\n // object\n 'object': 'The {{ field }} field must be an object',\n\n // record\n 'record': 'The {{ field }} field must be an object',\n 'record.minLength': 'The {{ field }} field must have at least {{ min }} items',\n 'record.maxLength': 'The {{ field }} field must not have more than {{ max }} items',\n 'record.fixedLength': 'The {{ field }} field must contain {{ size }} items',\n\n // array\n 'array': 'The {{ field }} field must be an array',\n 'array.minLength': 'The {{ field }} field must have at least {{ min }} items',\n 'array.maxLength': 'The {{ field }} field must not have more than {{ max }} items',\n 'array.fixedLength': 'The {{ field }} field must contain {{ size }} items',\n 'notEmpty': 'The {{ field }} field must not be empty',\n 'distinct': 'The {{ field }} field has duplicate values',\n\n // tuple\n 'tuple': 'The {{ field }} field must be an array',\n\n // union\n 'union': 'Invalid value provided for {{ field }} field',\n 'unionGroup': 'Invalid value provided for {{ field }} field',\n 'unionOfTypes': 'Invalid value provided for {{ field }} field',\n },\n },\n\n git: {\n hooks: {\n 'pre-commit': 'lint-staged',\n },\n\n scopes: [\n '',\n 'ci',\n 'deps',\n 'dx',\n 'release',\n 'docs',\n 'test',\n 'core',\n 'actions',\n 'arrays',\n 'auth',\n 'build',\n 'cache',\n 'cli',\n 'cloud',\n 'collections',\n 'config',\n 'database',\n 'datetime',\n 'docs',\n 'errors',\n 'git',\n 'lint',\n 'x-ray',\n 'modules',\n 'notifications',\n 'objects',\n 'path',\n 'realtime',\n 'router',\n 'buddy',\n 'security',\n 'server',\n 'storage',\n 'strings',\n 'tests',\n 'types',\n 'ui',\n 'utils',\n ],\n\n messages: {\n type: 'Select the type of change that you’re committing:',\n scope: 'Select the SCOPE of this change (optional):',\n customScope: 'Select the SCOPE of this change:',\n subject: 'Write a SHORT, IMPERATIVE tense description of the change:\\n',\n body: 'Provide a LONGER description of the change (optional). Use \"|\" to break new line:\\n',\n breaking: 'List any BREAKING CHANGES (optional). Use \"|\" to break new line:\\n',\n footerPrefixesSelect: 'Select the ISSUES type of the change list by this change (optional):',\n customFooterPrefixes: 'Input ISSUES prefix:',\n footer: 'List any ISSUES by this change. E.g.: #31, #34:\\n',\n confirmCommit: 'Are you sure you want to proceed with the commit above?',\n },\n\n types: [\n {\n value: 'feat',\n name: 'feat: ✨ A new feature',\n emoji: ':sparkles:',\n },\n { value: 'fix', name: 'fix: 🐛 A bug fix', emoji: ':bug:' },\n {\n value: 'docs',\n name: 'docs: 📝 Documentation only changes',\n emoji: ':memo:',\n },\n {\n value: 'style',\n name: 'style: 💄 Changes that do not affect the meaning of the code',\n emoji: ':lipstick:',\n },\n {\n value: 'refactor',\n name: 'refactor: ♻️ A code change that neither fixes a bug nor adds a feature',\n emoji: ':recycle:',\n },\n {\n value: 'perf',\n name: 'perf: ⚡️ A code change that improves performance',\n emoji: ':zap:',\n },\n {\n value: 'test',\n name: 'test: ✅ Adding missing tests or adjusting existing tests',\n emoji: ':white_check_mark:',\n },\n {\n value: 'build',\n name: 'build: 📦️ Changes that affect the build system or external dependencies',\n emoji: ':package:',\n },\n {\n value: 'ci',\n name: 'ci: 🎡 Changes to our CI configuration files and scripts',\n emoji: ':ferris_wheel:',\n },\n {\n value: 'chore',\n name: 'chore: 🔨 Other changes that don’t modify src or test files',\n emoji: ':hammer:',\n },\n {\n value: 'revert',\n name: 'revert: ⏪️ Reverts a previous commit',\n emoji: ':rewind:',\n },\n ],\n },\n\n hashing: {\n driver: 'argon2',\n\n bcrypt: {\n rounds: 10,\n cost: 4, // number between 4-31\n },\n\n argon2: {\n memory: 65536, // memory usage in kibibytes\n // threads: 1,\n time: 1, // the number of iterations\n },\n },\n\n library: {\n name: 'hello-world',\n owner: '@stacksjs', // you may or may not add the @ prefix here (it is added automatically)\n repository: 'stacksjs/stacks',\n license: 'MIT',\n author: 'Chris Breuer',\n contributors: ['Chris Breuer <chris@stacksjs.org>'],\n defaultLanguage: 'en',\n\n vueComponents: {\n name: 'hello-world-vue',\n description: 'Your Vue component library description',\n keywords: ['component', 'library', 'vue', 'vite', 'typescript', 'javascript'],\n tags: [\n {\n name: ['HelloWorld', 'AppHelloWorld'],\n description: 'The Hello World custom element, built via this framework.',\n attributes: [\n {\n name: 'greeting',\n description: 'The greeting.',\n },\n ],\n },\n ],\n },\n\n webComponents: {\n name: 'hello-world-elements',\n description: 'Your framework agnostic web component library description.',\n keywords: ['custom-elements', 'web-components', 'library', 'framework-agnostic', 'typescript', 'javascript'],\n tags: [\n {\n name: ['HelloWorld', 'AppHelloWorld'],\n description: 'The Hello World custom element, built via this framework.',\n attributes: [\n {\n name: 'greeting',\n description: 'The greeting.',\n },\n ],\n },\n ],\n },\n\n functions: {\n name: 'hello-world-fx',\n description: 'Your function library description.',\n keywords: ['functions', 'composables', 'library', 'typescript', 'javascript'],\n shouldGenerateSourcemap: false,\n files: ['counter', 'dark'],\n },\n },\n\n logging: {\n logsPath: 'storage/logs/stacks.log',\n deploymentsPath: 'storage/logs/deployments.log',\n },\n\n notification: {\n default: 'email',\n },\n\n payment: {\n driver: 'stripe',\n },\n\n ports: {\n frontend: 3000,\n backend: 3001,\n admin: 3002,\n library: 3003,\n desktop: 3004,\n email: 3005,\n docs: 3006,\n inspect: 3007,\n api: 3008,\n systemTray: 3009,\n database: 3010,\n // mobile: 3010,\n },\n\n queue: {\n default: 'sync',\n\n connections: {\n sync: {\n driver: 'sync',\n },\n\n database: {\n driver: 'database',\n table: 'jobs',\n queue: 'default',\n retry_after: 90,\n },\n\n redis: {\n driver: 'redis',\n connection: 'default',\n queue: 'default',\n retry_after: 90,\n },\n\n sqs: {\n driver: 'sqs',\n key: '',\n secret: '',\n prefix: '',\n suffix: '',\n queue: 'default',\n region: 'us-east-1',\n },\n },\n },\n\n searchEngine: {\n driver: 'opensearch',\n },\n\n security: {\n firewall: {\n enabled: true,\n countryCodes: [],\n ipAddresses: [],\n queryString: [],\n httpHeaders: [],\n // ipSets: [],\n rateLimitPerMinute: 1000,\n useIpReputationLists: true,\n useKnownBadInputsRuleSet: true,\n },\n },\n\n services: {\n aws: {\n accountId: '',\n appId: '',\n apiKey: '',\n region: 'us-east-1',\n },\n\n algolia: {\n appId: '',\n apiKey: '',\n },\n\n meilisearch: {\n appId: '',\n apiKey: '',\n },\n\n stripe: {\n appId: '',\n apiKey: '',\n },\n },\n\n storage: {\n driver: 's3',\n },\n\n team: {\n name: 'Stacks',\n members: {\n 'Chris Breuer': 'chris@stacksjs.org',\n },\n },\n\n ui: {\n shortcuts: [\n [\n 'btn',\n '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',\n ],\n ],\n\n safelist: 'prose prose-sm m-auto text-left',\n\n trigger: ':stx:',\n classPrefix: 'stx-',\n reset: 'tailwind',\n\n icons: ['heroicons'],\n\n fonts: {\n email: {\n title: 'Mona',\n text: 'Hubot',\n },\n\n desktop: {\n title: 'Mona',\n text: 'Hubot',\n },\n\n mobile: {\n title: 'Mona',\n text: 'Hubot',\n },\n\n web: {\n title: 'Mona',\n text: 'Hubot',\n },\n },\n },\n}\n\nexport default config\n",
6
6
  "import type { AiConfig } from '@stacksjs/types'\n\n/**\n * **AI Configuration**\n *\n * This configuration defines all of your AI options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n default: 'meta.llama2-70b-chat-v1',\n\n models: [\n // 'amazon.titan-embed-text-v1',\n // Supported use cases – Retrieval augmented generation, open-ended text generation, brainstorming, summarizations, code generation, table creation, data formatting, paraphrasing, chain of thought, rewrite, extraction, QnA, and chat\n 'amazon.titan-text-express-v1',\n // Amazon Titan Text Lite is a light weight efficient model, ideal for fine-tuning of English-language tasks, including like summarizations and copy writing, where customers want a smaller, more cost-effective model that is also highly customizable\n 'amazon.titan-text-lite-v1',\n // 'amazon.titan-embed-image-v1',\n // 'amazon.titan-image-generator-v1',\n // 'anthropic.claude-v1',\n // 'anthropic.claude-v2',\n // 'anthropic.claude-v2:1',\n // 'anthropic.claude-instant-v1',\n // 'meta.llama2-13b-chat-v1',\n 'meta.llama2-70b-chat-v1',\n ],\n\n deploy: true, // deploys AI endpoints\n} satisfies AiConfig\n",
7
7
  "import type { AnalyticsConfig } from '@stacksjs/types'\n\n/**\n * **Analytics Configuration**\n *\n * This configuration defines all of your Analytics options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n driver: 'fathom',\n\n drivers: {\n googleAnalytics: {\n trackingId: 'UA-XXXXXXXXX-X',\n },\n\n fathom: {\n siteId: 'WOLZMJDL',\n },\n },\n} satisfies AnalyticsConfig\n",
8
- "import { env } from '@stacksjs/env'\nimport type { AppConfig } from '@stacksjs/types'\n\n/**\n * **Application Configuration**\n *\n * This configuration defines all of your application options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n name: env.APP_NAME ?? 'Stacks',\n description: 'Stacks is a full-stack framework for building modern web applications.',\n env: env.APP_ENV ?? 'local',\n url: env.APP_URL ?? 'stacks.localhost',\n redirectUrls: ['stacksjs.com'],\n debug: env.DEBUG ?? false,\n key: env.APP_KEY,\n\n maintenanceMode: env.APP_MAINTENANCE ?? false,\n // docMode: true, // instead of example.com/docs, deploys example.com as main entry point for docs\n docMode: false,\n\n timezone: 'America/Los_Angeles',\n locale: 'en',\n fallbackLocale: 'en',\n cipher: 'aes-256-cbc',\n} satisfies AppConfig\n",
9
- "import { env } from '@stacksjs/env'\nimport type { CacheConfig } from '@stacksjs/types'\n\n/**\n * **Cache Configuration**\n *\n * This configuration defines all of your cache options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n driver: 'dynamodb',\n prefix: 'stacks',\n ttl: 3600,\n\n drivers: {\n dynamodb: {\n key: env.AWS_ACCESS_KEY_ID || '',\n secret: env.AWS_SECRET_ACCESS_KEY || '',\n region: env.AWS_DEFAULT_REGION || 'us-east-1',\n table: 'cache',\n endpoint: '',\n },\n\n memcached: {\n persistent_id: '',\n sasl: ['', ''],\n options: {\n // Memcached::OPT_CONNECT_TIMEOUT => 2000,\n },\n servers: [\n {\n host: '127.0.0.1',\n port: 11211,\n weight: 100,\n },\n ],\n },\n\n redis: {\n connection: 'cache',\n host: '127.0.0.1',\n port: 6379,\n password: '',\n username: 'stacks',\n },\n },\n} satisfies CacheConfig\n",
8
+ "import type { AppConfig } from '@stacksjs/types'\nimport { env } from '@stacksjs/env'\n\n/**\n * **Application Configuration**\n *\n * This configuration defines all of your application options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n name: env.APP_NAME ?? 'Stacks',\n description: 'Stacks is a full-stack framework for building modern web applications.',\n env: env.APP_ENV ?? 'local',\n url: env.APP_URL ?? 'stacks.localhost',\n redirectUrls: ['stacksjs.com'],\n debug: env.DEBUG ?? false,\n key: env.APP_KEY,\n\n maintenanceMode: env.APP_MAINTENANCE ?? false,\n // docMode: true, // instead of example.com/docs, deploys example.com as main entry point for docs\n docMode: false,\n\n timezone: 'America/Los_Angeles',\n locale: 'en',\n fallbackLocale: 'en',\n cipher: 'aes-256-cbc',\n} satisfies AppConfig\n",
9
+ "import type { CacheConfig } from '@stacksjs/types'\nimport { env } from '@stacksjs/env'\n\n/**\n * **Cache Configuration**\n *\n * This configuration defines all of your cache options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n driver: 'dynamodb',\n prefix: 'stacks',\n ttl: 3600,\n\n drivers: {\n dynamodb: {\n key: env.AWS_ACCESS_KEY_ID || '',\n secret: env.AWS_SECRET_ACCESS_KEY || '',\n region: env.AWS_DEFAULT_REGION || 'us-east-1',\n table: 'cache',\n endpoint: '',\n },\n\n memcached: {\n persistent_id: '',\n sasl: ['', ''],\n options: {\n // Memcached::OPT_CONNECT_TIMEOUT => 2000,\n },\n servers: [\n {\n host: '127.0.0.1',\n port: 11211,\n weight: 100,\n },\n ],\n },\n\n redis: {\n connection: 'cache',\n host: '127.0.0.1',\n port: 6379,\n password: '',\n username: 'stacks',\n },\n },\n} satisfies CacheConfig\n",
10
10
  "import type { BinaryConfig } from '@stacksjs/types'\n\n/**\n * **Binary / CLI Configuration**\n *\n * This configuration defines all of your Binary/CLI options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n name: 'My Custom CLI',\n command: 'custom-cli', // enables `custom-cli <command> <options>`\n description:\n 'This is an example command to illustrate how to create your own commands. Check out `../app/commands` for more.',\n deploy: true, // deploys CLI setup endpoint (./bootstrap)\n} satisfies BinaryConfig\n",
11
- "import { env } from '@stacksjs/env'\nimport type { CloudConfig } from '@stacksjs/types'\nimport security from './security'\n\n/**\n * **Cloud**\n *\n * This configuration defines your cloud. Because Stacks is fully-typed, you may hover\n * any of the options below and the definitions will be provided. In case you have\n * any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n type: 'serverless',\n driver: 'aws',\n firewall: security.firewall,\n environments: ['production', 'staging', 'development'],\n\n storage: {},\n\n api: {\n prefix: env.API_PREFIX || 'api',\n // version: 'v1',\n description: 'My awesome Stacks API',\n deploy: true,\n memorySize: 512,\n prewarm: 10,\n timeout: 30,\n },\n\n cdn: {\n compress: true,\n\n allowedMethods: 'ALL',\n cachedMethods: 'GET_HEAD',\n originShieldRegion: 'us-east-1',\n minTtl: 0,\n defaultTtl: 86400,\n maxTtl: 31536000,\n cookieBehavior: 'none',\n\n allowList: {\n cookies: [],\n headers: [],\n queryStrings: [],\n },\n\n realtimeLogs: {\n enabled: true,\n samplingRate: 1,\n },\n },\n\n fileSystem: true, // enables file system\n\n // compute: {},\n // queues: false,\n // queue-concurrency: 50\n} satisfies CloudConfig\n",
11
+ "import type { CloudConfig } from '@stacksjs/types'\nimport { env } from '@stacksjs/env'\nimport security from './security'\n\n/**\n * **Cloud**\n *\n * This configuration defines your cloud. Because Stacks is fully-typed, you may hover\n * any of the options below and the definitions will be provided. In case you have\n * any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n type: 'serverless',\n driver: 'aws',\n firewall: security.firewall,\n environments: ['production', 'staging', 'development'],\n\n storage: {},\n\n api: {\n prefix: env.API_PREFIX || 'api',\n // version: 'v1',\n description: 'My awesome Stacks API',\n deploy: true,\n memorySize: 512,\n prewarm: 10,\n timeout: 30,\n },\n\n cdn: {\n compress: true,\n\n allowedMethods: 'ALL',\n cachedMethods: 'GET_HEAD',\n originShieldRegion: 'us-east-1',\n minTtl: 0,\n defaultTtl: 86400,\n maxTtl: 31536000,\n cookieBehavior: 'none',\n\n allowList: {\n cookies: [],\n headers: [],\n queryStrings: [],\n },\n\n realtimeLogs: {\n enabled: true,\n samplingRate: 1,\n },\n },\n\n fileSystem: true, // enables file system\n\n // compute: {},\n // queues: false,\n // queue-concurrency: 50\n} satisfies CloudConfig\n",
12
12
  "import type { SecurityConfig } from '@stacksjs/types'\n\n/**\n * **Services**\n *\n * This configuration defines all of your services. Because Stacks is fully-typed, you may\n * hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n firewall: {\n enabled: true,\n countryCodes: ['RU', 'IR'],\n ipAddresses: [],\n rateLimitPerMinute: 1000,\n useIpReputationLists: true,\n useKnownBadInputsRuleSet: true,\n queryString: [],\n httpHeaders: [],\n },\n} satisfies SecurityConfig\n",
13
- "import { env } from '@stacksjs/env'\nimport type { DatabaseConfig } from '@stacksjs/types'\n\n/**\n * **Database Configuration**\n *\n * This configuration defines all of your database options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n default: env.DB_CONNECTION || 'mysql',\n\n connections: {\n sqlite: {\n database: env.DB_DATABASE || 'stacks',\n prefix: '',\n },\n\n dynamodb: {\n key: env.AWS_ACCESS_KEY_ID || '',\n secret: env.AWS_SECRET_ACCESS_KEY || '',\n region: env.AWS_DEFAULT_REGION || 'us-east-1',\n prefix: env.DB_DATABASE || 'stacks',\n endpoint: 'http://localhost',\n port: env.DB_PORT || 8000,\n },\n\n mysql: {\n name: env.DB_DATABASE || 'stacks',\n host: env.DB_HOST || '127.0.0.1',\n port: env.DB_PORT || 3306,\n username: env.DB_USERNAME || 'root',\n password: env.DB_PASSWORD || '',\n prefix: '',\n },\n\n postgres: {\n name: env.DB_DATABASE || 'stacks',\n host: env.DB_HOST || '127.0.0.1',\n port: env.DB_PORT || 3306,\n username: env.DB_USERNAME || '',\n password: env.DB_PASSWORD || '',\n prefix: '',\n },\n },\n\n migrations: 'migrations',\n migrationLocks: 'migration_locks',\n} satisfies DatabaseConfig\n",
14
- "import { env } from '@stacksjs/env'\nimport type { DnsConfig } from '@stacksjs/types'\n\n/**\n * **DNS Options**\n *\n * This configuration defines all of your DNS options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n a: [\n {\n name: env.APP_URL || '', // Hostname (root domain)\n address: '10.0.0.1', // IPv4 address\n ttl: 300, // Time-to-live in seconds\n },\n\n {\n name: 'www',\n address: '@',\n ttl: 300,\n },\n ],\n aaaa: [],\n cname: [],\n mx: [],\n txt: [],\n\n nameservers: [],\n\n // redirects: ['stacksjs.com', 'buddy.sh'],\n} satisfies DnsConfig\n",
15
- "import { env } from '@stacksjs/env'\nimport type { EmailConfig } from '@stacksjs/types'\n\n/**\n * **Email Configuration**\n *\n * This configuration defines all of your email options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n from: {\n name: env.MAIL_FROM_NAME || 'Stacks',\n address: env.MAIL_FROM_ADDRESS || 'no-reply@stacksjs.org',\n },\n\n mailboxes: ['chris@stacksjs.org', 'blake@stacksjs.org', 'glenn@stacksjs.org'],\n\n url: env.APP_URL || 'http://localhost:3000',\n charset: 'UTF-8',\n\n server: {\n scan: true, // scans for spam and viruses\n },\n} satisfies EmailConfig\n",
16
- "import type { ErrorConfig } from '@stacksjs/types'\n\n/**\n * **Error Options**\n *\n * This configuration defines all of your DNS options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n messages: {\n string: 'The {{ field }} field must be a string',\n email: 'The {{ field }} field must be a valid email address',\n regex: 'The {{ field }} field format is invalid',\n url: 'The {{ field }} field must be a valid URL',\n activeUrl: 'The {{ field }} field must be a valid URL',\n alpha: 'The {{ field }} field must contain only letters',\n alphaNumeric: 'The {{ field }} field must contain only letters and numbers',\n minLength: 'The {{ field }} field must have at least {{ min }} characters',\n maxLength: 'The {{ field }} field must not be greater than {{ max }} characters',\n fixedLength: 'The {{ field }} field must be {{ size }} characters long',\n confirmed: 'The {{ field }} field and {{ otherField }} field must be the same',\n endsWith: 'The {{ field }} field must end with {{ substring }}',\n startsWith: 'The {{ field }} field must start with {{ substring }}',\n sameAs: 'The {{ field }} field and {{ otherField }} field must be the same',\n notSameAs: 'The {{ field }} field and {{ otherField }} field must be different',\n in: 'The selected {{ field }} is invalid',\n notIn: 'The selected {{ field }} is invalid',\n ipAddress: 'The {{ field }} field must be a valid IP address',\n uuid: 'The {{ field }} field must be a valid UUID',\n ascii: 'The {{ field }} field must only contain ASCII characters',\n creditCard: 'The {{ field }} field must be a valid {{ providersList }} card number',\n hexCode: 'The {{ field }} field must be a valid hex color code',\n iban: 'The {{ field }} field must be a valid IBAN number',\n jwt: 'The {{ field }} field must be a valid JWT token',\n coordinates: 'The {{ field }} field must contain latitude and longitude coordinates',\n mobile: 'The {{ field }} field must be a valid mobile phone number',\n passport: 'The {{ field }} field must be a valid passport number',\n postalCode: 'The {{ field }} field must be a valid postal code',\n\n // boolean\n boolean: 'The value must be a boolean',\n\n // number\n number: 'The {{ field }} field must be a number',\n min: 'The {{ field }} field must be at least {{ min }}',\n max: 'The {{ field }} field must not be greater than {{ max }}',\n range: 'The {{ field }} field must be between {{ min }} and {{ max }}',\n positive: 'The {{ field }} field must be positive',\n negative: 'The {{ field }} field must be negative',\n decimal: 'The {{ field }} field must have {{ digits }} decimal places',\n withoutDecimals: 'The {{ field }} field must not have decimal places',\n\n // date\n date: 'The {{ field }} field must be a datetime value',\n 'date.equals': 'The {{ field }} field must be a date equal to {{ expectedValue }}',\n 'date.after': 'The {{ field }} field must be a date after {{ expectedValue }}',\n 'date.before': 'The {{ field }} field must be a date before {{ expectedValue }}',\n 'date.afterOrEqual': 'The {{ field }} field must be a date after or equal to {{ expectedValue }}',\n 'date.beforeOrEqual': 'The {{ field }} field must be a date before or equal to {{ expectedValue }}',\n 'date.sameAs': 'The {{ field }} field and {{ otherField }} field must be the same',\n 'date.notSameAs': 'The {{ field }} field and {{ otherField }} field must be different',\n 'date.afterField': 'The {{ field }} field must be a date after {{ otherField }}',\n\n // accepted\n accepted: 'The {{ field }} field must be accepted',\n\n // enum\n enum: 'The selected {{ field }} is invalid',\n\n // literal\n literal: 'The {{ field }} field must be {{ expectedValue }}',\n\n // object\n object: 'The {{ field }} field must be an object',\n\n // record\n record: 'The {{ field }} field must be an object',\n 'record.minLength': 'The {{ field }} field must have at least {{ min }} items',\n 'record.maxLength': 'The {{ field }} field must not have more than {{ max }} items',\n 'record.fixedLength': 'The {{ field }} field must contain {{ size }} items',\n\n // array\n array: 'The {{ field }} field must be an array',\n 'array.minLength': 'The {{ field }} field must have at least {{ min }} items',\n 'array.maxLength': 'The {{ field }} field must not have more than {{ max }} items',\n 'array.fixedLength': 'The {{ field }} field must contain {{ size }} items',\n notEmpty: 'The {{ field }} field must not be empty',\n distinct: 'The {{ field }} field has duplicate values',\n\n // tuple\n tuple: 'The {{ field }} field must be an array',\n\n // union\n union: 'Invalid value provided for {{ field }} field',\n unionGroup: 'Invalid value provided for {{ field }} field',\n unionOfTypes: 'Invalid value provided for {{ field }} field',\n },\n} satisfies ErrorConfig\n",
13
+ "import type { DatabaseConfig } from '@stacksjs/types'\nimport { env } from '@stacksjs/env'\n\n/**\n * **Database Configuration**\n *\n * This configuration defines all of your database options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n default: env.DB_CONNECTION || 'sqlite',\n\n connections: {\n sqlite: {\n database: env.DB_DATABASE || 'database/stacks.sqlite',\n prefix: '',\n },\n\n dynamodb: {\n key: env.AWS_ACCESS_KEY_ID || '',\n secret: env.AWS_SECRET_ACCESS_KEY || '',\n region: env.AWS_DEFAULT_REGION || 'us-east-1',\n prefix: env.DB_DATABASE || 'stacks',\n endpoint: 'http://localhost',\n port: env.DB_PORT || 8000,\n },\n\n mysql: {\n name: env.DB_DATABASE || 'stacks',\n host: env.DB_HOST || '127.0.0.1',\n port: env.DB_PORT || 3306,\n username: env.DB_USERNAME || 'root',\n password: env.DB_PASSWORD || '',\n prefix: '',\n },\n\n postgres: {\n name: env.DB_DATABASE || 'stacks',\n host: env.DB_HOST || '127.0.0.1',\n port: env.DB_PORT || 3306,\n username: env.DB_USERNAME || '',\n password: env.DB_PASSWORD || '',\n prefix: '',\n },\n },\n\n migrations: 'migrations',\n migrationLocks: 'migration_locks',\n} satisfies DatabaseConfig\n",
14
+ "import type { DnsConfig } from '@stacksjs/types'\nimport { env } from '@stacksjs/env'\n\n/**\n * **DNS Options**\n *\n * This configuration defines all of your DNS options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n a: [\n {\n name: env.APP_URL || '', // Hostname (root domain)\n address: '10.0.0.1', // IPv4 address\n ttl: 300, // Time-to-live in seconds\n },\n\n {\n name: 'www',\n address: '@',\n ttl: 300,\n },\n ],\n aaaa: [],\n cname: [],\n mx: [],\n txt: [],\n\n nameservers: [],\n\n // redirects: ['stacksjs.com', 'buddy.sh'],\n} satisfies DnsConfig\n",
15
+ "import type { EmailConfig } from '@stacksjs/types'\nimport { env } from '@stacksjs/env'\n\n/**\n * **Email Configuration**\n *\n * This configuration defines all of your email options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n from: {\n name: env.MAIL_FROM_NAME || 'Stacks',\n address: env.MAIL_FROM_ADDRESS || 'no-reply@stacksjs.org',\n },\n\n mailboxes: ['chris@stacksjs.org', 'blake@stacksjs.org', 'glenn@stacksjs.org'],\n\n url: env.APP_URL || 'http://localhost:3000',\n charset: 'UTF-8',\n\n server: {\n scan: true, // scans for spam and viruses\n },\n} satisfies EmailConfig\n",
16
+ "import type { ErrorConfig } from '@stacksjs/types'\n\n/**\n * **Error Options**\n *\n * This configuration defines all of your DNS options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n messages: {\n 'string': 'The {{ field }} field must be a string',\n 'email': 'The {{ field }} field must be a valid email address',\n 'regex': 'The {{ field }} field format is invalid',\n 'url': 'The {{ field }} field must be a valid URL',\n 'activeUrl': 'The {{ field }} field must be a valid URL',\n 'alpha': 'The {{ field }} field must contain only letters',\n 'alphaNumeric': 'The {{ field }} field must contain only letters and numbers',\n 'minLength': 'The {{ field }} field must have at least {{ min }} characters',\n 'maxLength': 'The {{ field }} field must not be greater than {{ max }} characters',\n 'fixedLength': 'The {{ field }} field must be {{ size }} characters long',\n 'confirmed': 'The {{ field }} field and {{ otherField }} field must be the same',\n 'endsWith': 'The {{ field }} field must end with {{ substring }}',\n 'startsWith': 'The {{ field }} field must start with {{ substring }}',\n 'sameAs': 'The {{ field }} field and {{ otherField }} field must be the same',\n 'notSameAs': 'The {{ field }} field and {{ otherField }} field must be different',\n 'in': 'The selected {{ field }} is invalid',\n 'notIn': 'The selected {{ field }} is invalid',\n 'ipAddress': 'The {{ field }} field must be a valid IP address',\n 'uuid': 'The {{ field }} field must be a valid UUID',\n 'ascii': 'The {{ field }} field must only contain ASCII characters',\n 'creditCard': 'The {{ field }} field must be a valid {{ providersList }} card number',\n 'hexCode': 'The {{ field }} field must be a valid hex color code',\n 'iban': 'The {{ field }} field must be a valid IBAN number',\n 'jwt': 'The {{ field }} field must be a valid JWT token',\n 'coordinates': 'The {{ field }} field must contain latitude and longitude coordinates',\n 'mobile': 'The {{ field }} field must be a valid mobile phone number',\n 'passport': 'The {{ field }} field must be a valid passport number',\n 'postalCode': 'The {{ field }} field must be a valid postal code',\n\n // boolean\n 'boolean': 'The value must be a boolean',\n\n // number\n 'number': 'The {{ field }} field must be a number',\n 'min': 'The {{ field }} field must be at least {{ min }}',\n 'max': 'The {{ field }} field must not be greater than {{ max }}',\n 'range': 'The {{ field }} field must be between {{ min }} and {{ max }}',\n 'positive': 'The {{ field }} field must be positive',\n 'negative': 'The {{ field }} field must be negative',\n 'decimal': 'The {{ field }} field must have {{ digits }} decimal places',\n 'withoutDecimals': 'The {{ field }} field must not have decimal places',\n\n // date\n 'date': 'The {{ field }} field must be a datetime value',\n 'date.equals': 'The {{ field }} field must be a date equal to {{ expectedValue }}',\n 'date.after': 'The {{ field }} field must be a date after {{ expectedValue }}',\n 'date.before': 'The {{ field }} field must be a date before {{ expectedValue }}',\n 'date.afterOrEqual': 'The {{ field }} field must be a date after or equal to {{ expectedValue }}',\n 'date.beforeOrEqual': 'The {{ field }} field must be a date before or equal to {{ expectedValue }}',\n 'date.sameAs': 'The {{ field }} field and {{ otherField }} field must be the same',\n 'date.notSameAs': 'The {{ field }} field and {{ otherField }} field must be different',\n 'date.afterField': 'The {{ field }} field must be a date after {{ otherField }}',\n\n // accepted\n 'accepted': 'The {{ field }} field must be accepted',\n\n // enum\n 'enum': 'The selected {{ field }} is invalid',\n\n // literal\n 'literal': 'The {{ field }} field must be {{ expectedValue }}',\n\n // object\n 'object': 'The {{ field }} field must be an object',\n\n // record\n 'record': 'The {{ field }} field must be an object',\n 'record.minLength': 'The {{ field }} field must have at least {{ min }} items',\n 'record.maxLength': 'The {{ field }} field must not have more than {{ max }} items',\n 'record.fixedLength': 'The {{ field }} field must contain {{ size }} items',\n\n // array\n 'array': 'The {{ field }} field must be an array',\n 'array.minLength': 'The {{ field }} field must have at least {{ min }} items',\n 'array.maxLength': 'The {{ field }} field must not have more than {{ max }} items',\n 'array.fixedLength': 'The {{ field }} field must contain {{ size }} items',\n 'notEmpty': 'The {{ field }} field must not be empty',\n 'distinct': 'The {{ field }} field has duplicate values',\n\n // tuple\n 'tuple': 'The {{ field }} field must be an array',\n\n // union\n 'union': 'Invalid value provided for {{ field }} field',\n 'unionGroup': 'Invalid value provided for {{ field }} field',\n 'unionOfTypes': 'Invalid value provided for {{ field }} field',\n },\n} satisfies ErrorConfig\n",
17
17
  "import type { GitConfig } from '@stacksjs/types'\n\n/**\n * **Git Configuration**\n *\n * This configuration defines all of your git options. Because Stacks is fully-typed, you may\n * hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n hooks: {\n 'pre-commit': 'lint-staged',\n },\n\n scopes: [\n '',\n 'ci',\n 'deps',\n 'dx',\n 'release',\n 'docs',\n 'test',\n 'core',\n 'actions',\n 'arrays',\n 'auth',\n 'build',\n 'cache',\n 'cli',\n 'cloud',\n 'collections',\n 'config',\n 'database',\n 'datetime',\n 'docs',\n 'errors',\n 'git',\n 'lint',\n 'x-ray',\n 'modules',\n 'notifications',\n 'objects',\n 'path',\n 'realtime',\n 'router',\n 'buddy',\n 'security',\n 'server',\n 'storage',\n 'strings',\n 'tests',\n 'types',\n 'ui',\n 'utils',\n ],\n\n messages: {\n type: 'Select the type of change that you’re committing:',\n scope: 'Select the SCOPE of this change (optional):',\n customScope: 'Select the SCOPE of this change:',\n subject: 'Write a SHORT, IMPERATIVE tense description of the change:\\n',\n body: 'Provide a LONGER description of the change (optional). Use \"|\" to break new line:\\n',\n breaking: 'List any BREAKING CHANGES (optional). Use \"|\" to break new line:\\n',\n footerPrefixesSelect: 'Select the ISSUES type of the change list by this change (optional):',\n customFooterPrefixes: 'Input ISSUES prefix:',\n footer: 'List any ISSUES by this change. E.g.: #31, #34:\\n',\n confirmCommit: 'Are you sure you want to proceed with the commit above?',\n },\n\n types: [\n { value: 'feat', name: 'feat: ✨ A new feature', emoji: ':sparkles:' },\n { value: 'fix', name: 'fix: 🐛 A bug fix', emoji: ':bug:' },\n {\n value: 'docs',\n name: 'docs: 📝 Documentation only changes',\n emoji: ':memo:',\n },\n {\n value: 'style',\n name: 'style: 💄 Changes that do not affect the meaning of the code',\n emoji: ':lipstick:',\n },\n {\n value: 'refactor',\n name: 'refactor: ♻️ A code change that neither fixes a bug nor adds a feature',\n emoji: ':recycle:',\n },\n {\n value: 'perf',\n name: 'perf: ⚡️ A code change that improves performance',\n emoji: ':zap:',\n },\n {\n value: 'test',\n name: 'test: ✅ Adding missing tests or adjusting existing tests',\n emoji: ':white_check_mark:',\n },\n {\n value: 'build',\n name: 'build: 📦️ Changes that affect the build system or external dependencies',\n emoji: ':package:',\n },\n {\n value: 'ci',\n name: 'ci: 🎡 Changes to our CI configuration files and scripts',\n emoji: ':ferris_wheel:',\n },\n {\n value: 'chore',\n name: 'chore: 🔨 Other changes that don’t modify src or test files',\n emoji: ':hammer:',\n },\n {\n value: 'revert',\n name: 'revert: ⏪️ Reverts a previous commit',\n emoji: ':rewind:',\n },\n ],\n} satisfies GitConfig\n",
18
18
  "import type { HashingConfig } from '@stacksjs/types'\n\n/**\n * **Hashing Configuration**\n *\n * This configuration defines all of your hashing options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n driver: 'argon2',\n\n bcrypt: {\n rounds: 10,\n cost: 4, // number between 4-31\n },\n\n argon2: {\n memory: 65536, // memory usage in kibibytes\n threads: 1,\n time: 1, // the number of iterations\n },\n} satisfies HashingConfig\n",
19
19
  "import type { LibraryConfig } from '@stacksjs/types'\n\n/**\n * **Library Configuration**\n *\n * This configuration defines all of your library options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n name: 'hello-world',\n owner: '@stacksjs', // you may or may not add the @ prefix here (it is added automatically)\n repository: 'stacksjs/stacks',\n license: 'MIT',\n author: 'Chris Breuer',\n contributors: ['Chris Breuer <chris@stacksjs.org>'],\n defaultLanguage: 'en',\n releaseable: true,\n\n vueComponents: {\n name: 'hello-world-vue',\n description: 'Your Vue component library description',\n keywords: ['component', 'library', 'vue', 'vite', 'typescript', 'javascript'],\n tags: [\n {\n name: ['HelloWorld', 'AppHelloWorld'],\n description: 'The Hello World custom element, built via this framework.',\n attributes: [\n {\n name: 'greeting',\n description: 'The greeting.',\n },\n ],\n },\n ],\n },\n\n webComponents: {\n name: 'hello-world-elements',\n description: 'Your framework agnostic web component library description.',\n keywords: ['custom-elements', 'web-components', 'library', 'framework-agnostic', 'typescript', 'javascript'],\n tags: [\n {\n name: ['HelloWorld', 'AppHelloWorld'],\n description: 'The Hello World custom element, built via this framework.',\n attributes: [\n {\n name: 'greeting',\n description: 'The greeting.',\n },\n ],\n },\n ],\n },\n\n functions: {\n name: 'hello-world-fx',\n description: 'Your function library description.',\n keywords: ['functions', 'composables', 'library', 'typescript', 'javascript'],\n shouldGenerateSourcemap: false,\n files: ['counter', 'dark'],\n },\n} satisfies LibraryConfig\n",
20
- "import { storagePath } from '@stacksjs/path'\nimport type { LoggingConfig } from '@stacksjs/types'\n\n/**\n * **Logging Configuration**\n *\n * This configuration defines all of your logging options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n /**\n * **Log File Path**\n *\n * The path to the log file. This will be used to write logs to a file. If you do not want to\n * write logs to a file, you may set this to `null`.\n *\n * @default 'storage/logs/stacks.log'\n */\n logsPath: storagePath('logs/stacks.log'),\n\n /**\n * **Deployments Path**\n *\n * The path to the deployments folder. This will be used to write deployment logs to a file.\n * If you do not want to write deployment logs to a file, you may set this to `null`.\n *\n * @default 'storage/logs/deployments.log'\n */\n deploymentsPath: storagePath('logs/deployments.log'),\n} satisfies LoggingConfig\n",
20
+ "import type { LoggingConfig } from '@stacksjs/types'\nimport { storagePath } from '@stacksjs/path'\n\n/**\n * **Logging Configuration**\n *\n * This configuration defines all of your logging options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n /**\n * **Log File Path**\n *\n * The path to the log file. This will be used to write logs to a file. If you do not want to\n * write logs to a file, you may set this to `null`.\n *\n * @default 'storage/logs/stacks.log'\n */\n logsPath: storagePath('logs/stacks.log'),\n\n /**\n * **Deployments Path**\n *\n * The path to the deployments folder. This will be used to write deployment logs to a file.\n * If you do not want to write deployment logs to a file, you may set this to `null`.\n *\n * @default 'storage/logs/deployments.log'\n */\n deploymentsPath: storagePath('logs/deployments.log'),\n} satisfies LoggingConfig\n",
21
21
  "import type { NotificationConfig } from '@stacksjs/types'\n\n/**\n * **Notification Configuration**\n *\n * This configuration defines all of your notification options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n default: 'email',\n} satisfies NotificationConfig\n",
22
22
  "import type { PaymentConfig } from '@stacksjs/types'\n\n/**\n * **Payment Configuration**\n *\n * This configuration defines all of your Payment options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n driver: 'stripe',\n\n // wip\n} satisfies PaymentConfig\n",
23
- "import { env } from '@stacksjs/env'\nimport type { Ports } from '@stacksjs/types'\n\n/**\n * **Stacks Ports**\n *\n * This configuration defines all of your Stacks Ports. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n frontend: env.PORT ?? 3000,\n backend: env.PORT_BACKEND ?? 3001,\n admin: env.PORT_ADMIN ?? 3002,\n library: env.PORT_LIBRARY ?? 3003,\n desktop: env.PORT_DESKTOP ?? 3004,\n email: env.PORT_EMAIL ?? 3005,\n docs: env.PORT_DOCS ?? 3006,\n inspect: env.PORT_INSPECT ?? 3007,\n api: env.PORT_API ?? 3008,\n systemTray: env.PORT_SYSTEM_TRAY ?? 3009,\n database: 3010,\n} satisfies Ports\n",
23
+ "import type { Ports } from '@stacksjs/types'\nimport { env } from '@stacksjs/env'\n\n/**\n * **Stacks Ports**\n *\n * This configuration defines all of your Stacks Ports. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n frontend: env.PORT ?? 3000,\n backend: env.PORT_BACKEND ?? 3001,\n admin: env.PORT_ADMIN ?? 3002,\n library: env.PORT_LIBRARY ?? 3003,\n desktop: env.PORT_DESKTOP ?? 3004,\n email: env.PORT_EMAIL ?? 3005,\n docs: env.PORT_DOCS ?? 3006,\n inspect: env.PORT_INSPECT ?? 3007,\n api: env.PORT_API ?? 3008,\n systemTray: env.PORT_SYSTEM_TRAY ?? 3009,\n database: 3010,\n} satisfies Ports\n",
24
24
  "import type { QueueConfig } from '@stacksjs/types'\n\n/**\n * **Queue Options**\n *\n * This configuration defines all of your search engine options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n default: 'sync',\n\n connections: {\n sync: {\n driver: 'sync',\n },\n\n // database: {\n // driver: 'database',\n // table: 'jobs',\n // queue: 'default',\n // },\n\n // redis: {\n // driver: 'redis',\n // connection: 'default',\n // queue: 'default',\n // },\n\n sqs: {\n driver: 'sqs',\n key: '', // set this if you\n secret: '',\n prefix: '',\n suffix: '',\n queue: 'default',\n region: 'us-east-1',\n },\n },\n} satisfies QueueConfig\n",
25
25
  "import type { SearchEngineConfig } from '@stacksjs/types'\n\n/**\n * **Search Engine Options**\n *\n * This configuration defines all of your search engine options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n driver: 'opensearch',\n} satisfies SearchEngineConfig\n",
26
- "import { env } from '@stacksjs/env'\nimport type { ServicesConfig } from '@stacksjs/types'\n\n/**\n * **Services**\n *\n * This configuration defines all of your services. Because Stacks is fully-typed, you may\n * hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n aws: {\n accountId: env.AWS_ACCOUNT_ID || '',\n appId: env.AWS_ACCESS_KEY_ID || '',\n apiKey: env.AWS_SECRET_ACCESS_KEY || '',\n region: env.AWS_DEFAULT_REGION || 'us-east-1',\n },\n\n algolia: {\n appId: '',\n apiKey: '',\n },\n\n meilisearch: {\n appId: '',\n apiKey: '',\n },\n\n lemonSqueezy: {\n appId: '',\n apiKey: '',\n },\n\n stripe: {\n appId: '',\n apiKey: '',\n },\n} satisfies ServicesConfig\n",
26
+ "import type { ServicesConfig } from '@stacksjs/types'\nimport { env } from '@stacksjs/env'\n\n/**\n * **Services**\n *\n * This configuration defines all of your services. Because Stacks is fully-typed, you may\n * hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n aws: {\n accountId: env.AWS_ACCOUNT_ID || '',\n appId: env.AWS_ACCESS_KEY_ID || '',\n apiKey: env.AWS_SECRET_ACCESS_KEY || '',\n region: env.AWS_DEFAULT_REGION || 'us-east-1',\n },\n\n algolia: {\n appId: '',\n apiKey: '',\n },\n\n meilisearch: {\n appId: '',\n apiKey: '',\n },\n\n lemonSqueezy: {\n appId: '',\n apiKey: '',\n },\n\n stripe: {\n appId: '',\n apiKey: '',\n },\n} satisfies ServicesConfig\n",
27
27
  "import type { StorageConfig } from '@stacksjs/types'\n\n/**\n * **Storage Options**\n *\n * This configuration defines all of your storage options. Because Stacks is fully-typed,\n * you may hover any of the options below and the definitions will be provided. In case\n * you have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n driver: 's3',\n} satisfies StorageConfig\n",
28
28
  "import type { Team } from '@stacksjs/types'\n\n/**\n * **Team Members**\n *\n * This configuration defines all of your team members. The key is the name of the team member\n * and the value is their email address. This will automatically generate IAM permissions\n * for each team member, email them their credentials, and add them to the team.\n */\nexport default {\n name: 'Stacks',\n\n members: {\n chris: 'chris@stacksjs.org',\n blake: 'blake@stacksjs.org',\n zoltan: 'zoltan@stacksjs.org',\n freddy: 'freddy@stacksjs.org',\n glenn: 'glenn@stacksjs.org',\n dorell: 'dorell@stacksjs.org',\n avery: 'avery@stacksjs.org',\n adelino: 'adelino@stacksjs.org',\n },\n} satisfies Team\n",
29
29
  "import type { UiConfig } from '@stacksjs/types'\n\n/**\n * **UI Engine Options**\n *\n * This configuration defines all of your UI Engine options. Because Stacks is fully-typed, you\n * may hover any of the options below and the definitions will be provided. In case you\n * have any questions, feel free to reach out via Discord or GitHub Discussions.\n */\nexport default {\n shortcuts: [\n [\n 'btn',\n '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',\n ],\n ],\n\n safelist: 'prose prose-sm m-auto text-left',\n trigger: ':stx:',\n classPrefix: 'stx-',\n reset: 'tailwind',\n\n icons: ['heroicons'],\n\n fonts: {\n email: {\n title: 'Mona',\n text: 'Hubot',\n },\n\n desktop: {\n title: 'Mona',\n text: 'Hubot',\n },\n\n mobile: {\n title: 'Mona',\n text: 'Hubot',\n },\n\n web: {\n title: 'Mona',\n text: 'Hubot',\n },\n },\n\n theme: {\n // ...\n colors: {\n veryCool: '#0000ff', // class=\"text-very-cool\"\n brand: {\n primary: 'hsl(var(--hue, 217) 78% 51%)', // class=\"bg-brand-primary\"\n },\n },\n },\n} satisfies UiConfig\n",
30
- "import type { StacksConfig } from '@stacksjs/types'\nimport ai from '~/config/ai'\nimport analytics from '~/config/analytics'\nimport app from '~/config/app'\nimport cache from '~/config/cache'\nimport cli from '~/config/cli'\nimport cloud from '~/config/cloud'\nimport database from '~/config/database'\nimport dns from '~/config/dns'\nimport email from '~/config/email'\nimport errors from '~/config/errors'\nimport git from '~/config/git'\nimport hashing from '~/config/hashing'\nimport library from '~/config/library'\nimport logging from '~/config/logging'\nimport notification from '~/config/notification'\nimport payment from '~/config/payment'\nimport ports from '~/config/ports'\nimport queue from '~/config/queue'\nimport searchEngine from '~/config/search-engine'\nimport security from '~/config/security'\nimport services from '~/config/services'\nimport storage from '~/config/storage'\nimport team from '~/config/team'\nimport ui from '~/config/ui'\n// import docs from '~/docs/config'\n\n// this \"user config\" will override the default config options\nexport default {\n ai,\n analytics,\n app,\n cache,\n cli,\n cloud,\n database,\n dns,\n // docs,\n email,\n errors,\n git,\n hashing,\n library,\n logging,\n notification,\n queue,\n payment,\n ports,\n searchEngine,\n security,\n services,\n storage,\n team,\n ui,\n} satisfies StacksConfig\n",
31
- "import { createLocalTunnel } from '@stacksjs/tunnel'\nimport type {\n AppConfig,\n CacheConfig,\n CdnConfig,\n ChatConfig,\n CliConfig,\n DatabaseConfig,\n DependenciesConfig,\n DnsConfig,\n EmailConfig,\n Events,\n GitConfig,\n HashingConfig,\n JobConfig,\n LibraryConfig,\n Model,\n NotificationConfig,\n PaymentConfig,\n QueueConfig,\n SearchEngineConfig,\n SecurityConfig,\n ServicesConfig,\n StacksConfig,\n StorageConfig,\n UiConfig,\n} from '@stacksjs/types'\nimport { config } from '.'\n\nexport type LocalUrlType =\n | 'frontend'\n | 'backend'\n | 'api'\n | 'admin'\n | 'library'\n | 'email'\n | 'docs'\n | 'inspect'\n | 'desktop'\n\nexport async function localUrl({\n domain = config.app.url || 'stacks',\n type = 'frontend' as LocalUrlType,\n localhost = false,\n https = undefined as boolean | undefined,\n network = undefined as boolean | undefined,\n} = {}) {\n // Ensure url starts with http:// or https://\n // if (!url.startsWith('http://') && !url.startsWith('https://'))\n // url = 'https://' + url\n let url\n\n switch (type) {\n case 'frontend':\n if (network) return await createLocalTunnel(config.ports?.frontend || 3000)\n\n if (localhost) return `http://localhost:${config.ports?.frontend}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost')\n\n if (https) return `https://${url}`\n\n return url\n case 'backend':\n if (network) return await createLocalTunnel(config.ports?.backend || 3001)\n\n if (localhost) return `http://localhost:${config.ports?.backend}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost/api/')\n\n if (https) return `https://${url}`\n\n return url\n case 'api':\n if (network) return await createLocalTunnel(config.ports?.backend || 3001)\n\n if (localhost) return `http://localhost:${config.ports?.backend}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost/api/')\n\n if (https) return `https://${url}`\n\n return url\n case 'admin':\n if (network) return await createLocalTunnel(config.ports?.admin || 3002)\n\n if (localhost) return `http://localhost:${config.ports?.admin}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost/admin/')\n\n if (https) return `https://${url}`\n\n return url\n case 'library':\n if (network) return await createLocalTunnel(config.ports?.library || 3003)\n\n if (localhost) return `http://localhost:${config.ports?.library}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost/libs/')\n\n if (https) return `https://${url}`\n\n return url\n case 'email':\n if (network) return await createLocalTunnel(config.ports?.email || 3005)\n\n if (localhost) return `http://localhost:${config.ports?.email}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost/email/')\n\n if (https) return `https://${url}`\n\n return url\n case 'desktop':\n if (network) return await createLocalTunnel(config.ports?.desktop || 3004)\n\n if (localhost) return `http://localhost:${config.ports?.email}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost/email/')\n\n if (https) return `https://${url}`\n\n return url\n case 'docs':\n if (network) return await createLocalTunnel(config.ports?.desktop || 3006)\n\n if (localhost) return `http://localhost:${config.ports?.docs}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost/docs/')\n\n if (https) return `https://${url}`\n\n return url\n case 'inspect':\n if (network) return await createLocalTunnel(config.ports?.desktop || 3007)\n\n if (localhost) return `http://localhost:${config.ports?.inspect}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost/__inspect/')\n\n if (https) return `https://${url}`\n\n return url\n default:\n if (localhost) return `http://localhost:${config.ports?.frontend}`\n\n url = domain.replace(/\\.[^\\.]+$/, '.localhost')\n\n if (https) return `https://${url}`\n\n return url\n }\n}\n\nexport function defineStacksConfig(config: StacksConfig) {\n return config\n}\n\nexport function defineApp(config: AppConfig) {\n return config\n}\n\nexport function defineCache(config: CacheConfig) {\n return config\n}\n\nexport function defineCdn(config: CdnConfig) {\n return config\n}\n\nexport function defineChat(config: ChatConfig) {\n return config\n}\n\nexport function defineCli(config: CliConfig) {\n return config\n}\n\nexport function defineJob(config: JobConfig) {\n return config\n}\n\nexport function defineCronJob(config: JobConfig) {\n return config\n}\n\nexport function defineDatabase(config: DatabaseConfig) {\n return config\n}\n\nexport function defineDependencies(config: DependenciesConfig) {\n return config\n}\n\nexport function defineDns(config: DnsConfig) {\n return config\n}\n\nexport function defineEmailConfig(config: EmailConfig) {\n return config\n}\n\nexport function defineEmail(config: EmailConfig) {\n return config\n}\n\nexport function defineGit(config: GitConfig) {\n return config\n}\n\nexport function defineHashing(config: HashingConfig) {\n return config\n}\n\nexport function defineLibrary(config: LibraryConfig) {\n return config\n}\n\nexport function defineNotification(config: NotificationConfig) {\n return config\n}\n\nexport function definePayment(config: PaymentConfig) {\n return config\n}\n\nexport function defineQueue(config: QueueConfig) {\n return config\n}\n\nexport function defineSearchEngine(config: SearchEngineConfig) {\n return config\n}\n\nexport function defineSecurity(config: SecurityConfig) {\n return config\n}\n\nexport function defineServices(config: ServicesConfig) {\n return config\n}\n\nexport function defineSms(config: any) {\n return config\n}\n\nexport function defineStorage(config: StorageConfig) {\n return config\n}\n\nexport function defineUi(config: UiConfig) {\n return config\n}\n\nexport function defineModel(config: Model) {\n return config\n}\n\nexport function defineEvents(config: Events) {\n return config\n}\n",
32
- "import type { StacksOptions } from '@stacksjs/types'\nimport defaults from './defaults'\nimport overrides from './overrides'\n\n// merged defaults and overrides\nexport const config: StacksOptions = {\n ...defaults,\n ...overrides,\n}\n\nexport const {\n ai,\n analytics,\n app,\n cache,\n cloud,\n cli,\n database,\n dns,\n docs,\n email,\n errors,\n git,\n hashing,\n library,\n logging,\n notification,\n payment,\n ports,\n queue,\n security,\n searchEngine,\n services,\n storage,\n team,\n ui,\n}: StacksOptions = config\n\nexport { defaults, overrides }\n\nexport * from './helpers'\n\nexport const determineAppEnv = (): string => {\n if (app.env === 'local') return 'dev'\n if (app.env === 'development') return 'dev'\n if (app.env === 'staging') return 'stage'\n if (app.env === 'production') return 'prod'\n\n if (!app.env) throw new Error(\"Couldn't determine app environment\")\n\n return app.env\n}\n"
30
+ "import type { StacksConfig } from '@stacksjs/types'\nimport ai from '~/config/ai'\nimport analytics from '~/config/analytics'\nimport app from '~/config/app'\nimport cache from '~/config/cache'\nimport cli from '~/config/cli'\nimport cloud from '~/config/cloud'\nimport database from '~/config/database'\nimport dns from '~/config/dns'\nimport email from '~/config/email'\nimport errors from '~/config/errors'\nimport git from '~/config/git'\nimport hashing from '~/config/hashing'\nimport library from '~/config/library'\nimport logging from '~/config/logging'\nimport notification from '~/config/notification'\nimport payment from '~/config/payment'\nimport ports from '~/config/ports'\nimport queue from '~/config/queue'\nimport searchEngine from '~/config/search-engine'\nimport security from '~/config/security'\nimport services from '~/config/services'\nimport storage from '~/config/storage'\nimport team from '~/config/team'\nimport ui from '~/config/ui'\n// import docs from '~/docs/config'\n\nconst config: StacksConfig = {\n ai,\n analytics,\n app,\n cache,\n cli,\n cloud,\n database,\n dns,\n // docs,\n email,\n errors,\n git,\n hashing,\n library,\n logging,\n notification,\n queue,\n payment,\n ports,\n searchEngine,\n security,\n services,\n storage,\n team,\n ui,\n}\n\nexport default config\n",
31
+ "import type {\n AppConfig,\n CacheConfig,\n CdnConfig,\n ChatConfig,\n CliConfig,\n DatabaseConfig,\n DependenciesConfig,\n DnsConfig,\n EmailConfig,\n Events,\n GitConfig,\n HashingConfig,\n JobConfig,\n LibraryConfig,\n Model,\n NotificationConfig,\n PaymentConfig,\n QueueConfig,\n SearchEngineConfig,\n SecurityConfig,\n ServicesConfig,\n StacksConfig,\n StorageConfig,\n UiConfig,\n} from '@stacksjs/types'\nimport { createLocalTunnel } from '@stacksjs/tunnel'\nimport { config } from '.'\n\nexport type LocalUrlType =\n | 'frontend'\n | 'backend'\n | 'api'\n | 'admin'\n | 'library'\n | 'email'\n | 'docs'\n | 'inspect'\n | 'desktop'\n\nexport async function localUrl({\n domain = config.app.url || 'stacks',\n type = 'frontend' as LocalUrlType,\n localhost = false,\n https = undefined as boolean | undefined,\n network = undefined as boolean | undefined,\n}: {\n domain?: string\n type?: LocalUrlType\n network?: boolean\n localhost?: boolean\n https?: boolean\n} = {}): Promise<string> {\n let url = domain.replace(/\\.[^.]+$/, '.localhost')\n\n switch (type) {\n case 'frontend':\n if (network)\n return await createLocalTunnel(config.ports?.frontend || 3000)\n if (localhost)\n return `http://localhost:${config.ports?.frontend}`\n break\n case 'backend':\n if (network)\n return await createLocalTunnel(config.ports?.backend || 3001)\n if (localhost)\n return `http://localhost:${config.ports?.backend}`\n url = `api.${url}`\n break\n case 'admin':\n if (network)\n return await createLocalTunnel(config.ports?.admin || 3002)\n if (localhost)\n return `http://localhost:${config.ports?.admin}`\n url = `admin.${url}`\n break\n case 'library':\n if (network)\n return await createLocalTunnel(config.ports?.library || 3003)\n if (localhost)\n return `http://localhost:${config.ports?.library}`\n url = `libs.${url}`\n break\n case 'email':\n if (network)\n return await createLocalTunnel(config.ports?.email || 3005)\n if (localhost)\n return `http://localhost:${config.ports?.email}`\n url = `email.${url}`\n break\n case 'desktop':\n if (network)\n return await createLocalTunnel(config.ports?.desktop || 3004)\n if (localhost)\n return `http://localhost:${config.ports?.desktop}`\n url = `desktop.${url}`\n break\n case 'docs':\n if (network)\n return await createLocalTunnel(config.ports?.docs || 3006)\n if (localhost)\n return `http://localhost:${config.ports?.docs}`\n url = `docs.${url}`\n break\n case 'inspect':\n if (network)\n return await createLocalTunnel(config.ports?.inspect || 3007)\n if (localhost)\n return `http://localhost:${config.ports?.inspect}`\n url = `inspect.${url}`\n break\n default:\n if (localhost)\n return `http://localhost:${config.ports?.frontend}`\n }\n\n if (https)\n return `https://${url}`\n return `http://${url}`\n}\n\nexport function defineStacksConfig(config: StacksConfig): StacksConfig {\n return config\n}\n\nexport function defineApp(config: AppConfig): AppConfig {\n return config\n}\n\nexport function defineCache(config: CacheConfig): CacheConfig {\n return config\n}\n\nexport function defineCdn(config: CdnConfig): CdnConfig {\n return config\n}\n\nexport function defineChat(config: ChatConfig): ChatConfig {\n return config\n}\n\nexport function defineCli(config: CliConfig): CliConfig {\n return config\n}\n\nexport function defineJob(config: JobConfig): JobConfig {\n return config\n}\n\nexport function defineCronJob(config: JobConfig): JobConfig {\n return config\n}\n\nexport function defineDatabase(config: DatabaseConfig): DatabaseConfig {\n return config\n}\n\nexport function defineDependencies(config: DependenciesConfig): DependenciesConfig {\n return config\n}\n\nexport function defineDns(config: DnsConfig): DnsConfig {\n return config\n}\n\nexport function defineEmailConfig(config: EmailConfig): EmailConfig {\n return config\n}\n\nexport function defineEmail(config: EmailConfig): EmailConfig {\n return config\n}\n\nexport function defineGit(config: GitConfig): GitConfig {\n return config\n}\n\nexport function defineHashing(config: HashingConfig): HashingConfig {\n return config\n}\n\nexport function defineLibrary(config: LibraryConfig): LibraryConfig {\n return config\n}\n\nexport function defineNotification(config: NotificationConfig): NotificationConfig {\n return config\n}\n\nexport function definePayment(config: PaymentConfig): PaymentConfig {\n return config\n}\n\nexport function defineQueue(config: QueueConfig): QueueConfig {\n return config\n}\n\nexport function defineSearchEngine(config: SearchEngineConfig): SearchEngineConfig {\n return config\n}\n\nexport function defineSecurity(config: SecurityConfig): SecurityConfig {\n return config\n}\n\nexport function defineServices(config: ServicesConfig): ServicesConfig {\n return config\n}\n\nexport function defineSms(config: any): any {\n return config\n}\n\nexport function defineStorage(config: StorageConfig): StorageConfig {\n return config\n}\n\nexport function defineUi(config: UiConfig): UiConfig {\n return config\n}\n\nexport function defineModel(config: Model): Model {\n return config\n}\n\nexport function defineEvents(config: Events): Events {\n return config\n}\n",
32
+ "import type { StacksOptions } from '@stacksjs/types'\nimport defaults from './defaults'\nimport overrides from './overrides'\n\n// merged defaults and overrides\nexport const config: StacksOptions = {\n ...defaults,\n ...overrides,\n}\n\nexport const ai: StacksOptions['ai'] = config.ai\nexport const analytics: StacksOptions['analytics'] = config.analytics\nexport const app: StacksOptions['app'] = config.app\nexport const cache: StacksOptions['cache'] = config.cache\nexport const cloud: StacksOptions['cloud'] = config.cloud\nexport const cli: StacksOptions['cli'] = config.cli\nexport const database: StacksOptions['database'] = config.database\nexport const dns: StacksOptions['dns'] = config.dns\nexport const docs: StacksOptions['docs'] = config.docs\nexport const email: StacksOptions['email'] = config.email\nexport const errors: StacksOptions['errors'] = config.errors\nexport const git: StacksOptions['git'] = config.git\nexport const hashing: StacksOptions['hashing'] = config.hashing\nexport const library: StacksOptions['library'] = config.library\nexport const logging: StacksOptions['logging'] = config.logging\nexport const notification: StacksOptions['notification'] = config.notification\nexport const payment: StacksOptions['payment'] = config.payment\nexport const ports: StacksOptions['ports'] = config.ports\nexport const queue: StacksOptions['queue'] = config.queue\nexport const security: StacksOptions['security'] = config.security\nexport const searchEngine: StacksOptions['searchEngine'] = config.searchEngine\nexport const services: StacksOptions['services'] = config.services\nexport const storage: StacksOptions['storage'] = config.storage\nexport const team: StacksOptions['team'] = config.team\nexport const ui: StacksOptions['ui'] = config.ui\n\nexport { defaults, overrides }\n\nexport * from './helpers'\n\nexport function determineAppEnv(): string {\n if (app.env === 'local')\n return 'dev'\n if (app.env === 'development')\n return 'dev'\n if (app.env === 'staging')\n return 'stage'\n if (app.env === 'production')\n return 'prod'\n\n if (!app.env)\n throw new Error('Couldn\\'t determine app environment')\n\n return app.env\n}\n"
33
33
  ],
34
- "mappings": "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",
35
- "debugId": "34B60CFAFFF8BA8164756E2164756E21",
34
+ "mappings": "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",
35
+ "debugId": "4028E413730B054364756E2164756E21",
36
36
  "names": []
37
37
  }
@@ -0,0 +1,3 @@
1
+ import type { StacksConfig } from "@stacksjs/types";
2
+ declare const config: StacksConfig;
3
+ export default config;
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@stacksjs/config",
3
3
  "type": "module",
4
- "version": "0.64.5",
4
+ "version": "0.65.0",
5
5
  "description": "The Stacks config helper methods.",
6
6
  "author": "Chris Breuer",
7
+ "contributors": ["Chris Breuer <chris@stacksjs.org>"],
7
8
  "license": "MIT",
8
9
  "funding": "https://github.com/sponsors/chrisbbreuer",
9
10
  "homepage": "https://github.com/stacksjs/stacks/tree/main/storage/framework/core/config#readme",
@@ -15,15 +16,7 @@
15
16
  "bugs": {
16
17
  "url": "https://github.com/stacksjs/stacks/issues"
17
18
  },
18
- "keywords": [
19
- "config",
20
- "utilities",
21
- "functions",
22
- "stacks"
23
- ],
24
- "contributors": [
25
- "Chris Breuer <chris@stacksjs.org>"
26
- ],
19
+ "keywords": ["config", "utilities", "functions", "stacks"],
27
20
  "exports": {
28
21
  ".": {
29
22
  "import": "./dist/index.js"
@@ -32,19 +25,15 @@
32
25
  "bun": "./*"
33
26
  }
34
27
  },
35
- "files": [
36
- "README.md",
37
- "dist",
38
- "src"
39
- ],
28
+ "files": ["README.md", "dist", "src"],
40
29
  "scripts": {
41
- "build": "bun --bun build.ts",
42
- "typecheck": "bun --bun tsc --noEmit",
30
+ "build": "bun build.ts",
31
+ "typecheck": "bun tsc --noEmit",
43
32
  "prepublishOnly": "bun run build"
44
33
  },
45
34
  "devDependencies": {
46
- "@stacksjs/alias": "latest",
47
- "@stacksjs/development": "latest",
48
- "@stacksjs/types": "latest"
35
+ "@stacksjs/alias": "0.64.6",
36
+ "@stacksjs/development": "0.64.6",
37
+ "@stacksjs/types": "0.64.6"
49
38
  }
50
39
  }
package/src/config.ts CHANGED
@@ -8,45 +8,48 @@ export const config: StacksOptions = {
8
8
  ...overrides,
9
9
  }
10
10
 
11
- export const {
12
- ai,
13
- analytics,
14
- app,
15
- cache,
16
- cloud,
17
- cli,
18
- database,
19
- dns,
20
- docs,
21
- email,
22
- errors,
23
- git,
24
- hashing,
25
- library,
26
- logging,
27
- notification,
28
- payment,
29
- ports,
30
- queue,
31
- security,
32
- searchEngine,
33
- services,
34
- storage,
35
- team,
36
- ui,
37
- }: StacksOptions = config
11
+ export const ai: StacksOptions['ai'] = config.ai
12
+ export const analytics: StacksOptions['analytics'] = config.analytics
13
+ export const app: StacksOptions['app'] = config.app
14
+ export const cache: StacksOptions['cache'] = config.cache
15
+ export const cloud: StacksOptions['cloud'] = config.cloud
16
+ export const cli: StacksOptions['cli'] = config.cli
17
+ export const database: StacksOptions['database'] = config.database
18
+ export const dns: StacksOptions['dns'] = config.dns
19
+ export const docs: StacksOptions['docs'] = config.docs
20
+ export const email: StacksOptions['email'] = config.email
21
+ export const errors: StacksOptions['errors'] = config.errors
22
+ export const git: StacksOptions['git'] = config.git
23
+ export const hashing: StacksOptions['hashing'] = config.hashing
24
+ export const library: StacksOptions['library'] = config.library
25
+ export const logging: StacksOptions['logging'] = config.logging
26
+ export const notification: StacksOptions['notification'] = config.notification
27
+ export const payment: StacksOptions['payment'] = config.payment
28
+ export const ports: StacksOptions['ports'] = config.ports
29
+ export const queue: StacksOptions['queue'] = config.queue
30
+ export const security: StacksOptions['security'] = config.security
31
+ export const searchEngine: StacksOptions['searchEngine'] = config.searchEngine
32
+ export const services: StacksOptions['services'] = config.services
33
+ export const storage: StacksOptions['storage'] = config.storage
34
+ export const team: StacksOptions['team'] = config.team
35
+ export const ui: StacksOptions['ui'] = config.ui
38
36
 
39
37
  export { defaults, overrides }
40
38
 
41
39
  export * from './helpers'
42
40
 
43
- export const determineAppEnv = (): string => {
44
- if (app.env === 'local') return 'dev'
45
- if (app.env === 'development') return 'dev'
46
- if (app.env === 'staging') return 'stage'
47
- if (app.env === 'production') return 'prod'
41
+ export function determineAppEnv(): string {
42
+ if (app.env === 'local')
43
+ return 'dev'
44
+ if (app.env === 'development')
45
+ return 'dev'
46
+ if (app.env === 'staging')
47
+ return 'stage'
48
+ if (app.env === 'production')
49
+ return 'prod'
48
50
 
49
- if (!app.env) throw new Error("Couldn't determine app environment")
51
+ if (!app.env)
52
+ throw new Error('Couldn\'t determine app environment')
50
53
 
51
54
  return app.env
52
55
  }