@stacksjs/types 0.70.161 → 0.70.163

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/ai.d.ts CHANGED
@@ -6,9 +6,29 @@
6
6
  * have any questions, feel free to reach out via Discord or GitHub Discussions.
7
7
  */
8
8
  export declare interface AiOptions {
9
- default: AiModel
9
+ default: 'anthropic' | 'openai' | 'ollama' | AiModel
10
10
  models: AiModel[]
11
11
  deploy: boolean
12
+ drivers?: {
13
+ anthropic?: {
14
+ apiKey?: string
15
+ model?: string
16
+ maxTokens?: number
17
+ anthropicVersion?: string
18
+ }
19
+ openai?: {
20
+ apiKey?: string
21
+ model?: string
22
+ maxTokens?: number
23
+ baseUrl?: string
24
+ embeddingModel?: string
25
+ }
26
+ ollama?: {
27
+ host?: string
28
+ model?: string
29
+ embeddingModel?: string
30
+ }
31
+ }
12
32
  }
13
33
  declare type AiModel = | 'amazon.titan-embed-text-v1'
14
34
  | 'amazon.titan-embed-text-v2:0'
package/dist/i18n.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Internationalization plugin options for STX
3
3
  */
4
- declare interface VitePluginVueI18nOptions {
4
+ export declare interface StxI18nPluginOptions {
5
5
  forceStringify?: boolean
6
6
  runtimeOnly?: boolean
7
7
  compositionOnly?: boolean
@@ -9,7 +9,6 @@ declare interface VitePluginVueI18nOptions {
9
9
  include?: string | string[]
10
10
  defaultSFCLang?: 'json' | 'json5' | 'yml' | 'yaml'
11
11
  globalSFCScope?: boolean
12
- useVueI18nImportName?: boolean
13
12
  }
14
13
  /**
15
14
  * **Internationalization Options**
@@ -27,7 +26,7 @@ export declare interface I18nOptions {
27
26
  pluralSeparator?: string
28
27
  dateTimeFormats?: DateTimeFormats
29
28
  numberFormats?: NumberFormats
30
- vite?: VitePluginVueI18nOptions
29
+ stx?: StxI18nPluginOptions
31
30
  }
32
31
  /**
33
32
  * Translation messages - can be nested objects or strings
@@ -58,8 +57,3 @@ export type NumberFormats = {
58
57
  }
59
58
  }
60
59
  export type I18nConfig = Partial<I18nOptions>;
61
- /**
62
- * Legacy alias
63
- * @deprecated Use I18nOptions instead
64
- */
65
- export type i18nOptions = VitePluginVueI18nOptions;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- function x(p){return typeof p==="object"&&p!==null&&"id"in p&&"userId"in p&&"clientId"in p&&"scopes"in p}function H(p){return x(p)&&"abilities"in p}function N(p){return typeof p==="object"&&p!==null&&"id"in p&&"name"in p&&"secret"in p&&"redirect"in p}var F;((D)=>{D.Second="* * * * * *";D.FiveSeconds="*/5 * * * * *";D.TenSeconds="*/10 * * * * *";D.ThirtySeconds="*/30 * * * * *";D.Minute="* * * * *";D.TwoMinutes="*/2 * * * *";D.FiveMinutes="*/5 * * * *";D.TenMinutes="*/10 * * * *";D.FifteenMinutes="*/15 * * * *";D.ThirtyMinutes="*/30 * * * *";D.Hour="0 * * * *";D.HalfHour="0,30 * * * *";D.Day="0 0 * * *";D.Week="0 0 * * 0";D.Weekday="0 0 * * 1-5";D.Weekend="0 0 * * 0,6";D.Month="0 0 1 * *";D.Year="0 0 1 1 *"})(F||={});var U;((B)=>{B.Bluesky="bluesky";B.Discord="discord";B.Facebook="facebook";B.GitHub="github";B.Instagram="instagram";B.LinkedIn="linkedin";B.Mastodon="mastodon";B.Slack="slack";B.Twitter="twitter";B.YouTube="youtube"})(U||={});var _;((O)=>{O[O.Success=0]="Success";O[O.FatalError=1]="FatalError";O[O.InvalidArgument=9]="InvalidArgument"})(_||={});import{toString as G}from"@stacksjs/strings";function K(p){if(p===null)return"null";let P=G(p).slice(8,-1).toLowerCase();return typeof p==="object"||typeof p==="function"?P:typeof p}function Q(p){return p}function R(p){return p}var W={development:{default:"sync",connections:{sync:{driver:"sync"}},failed:{driver:"database",table:"failed_jobs"}},production:{default:"redis",connections:{redis:{driver:"redis",prefix:"stacks:queue",concurrency:5,distributedLock:!0,metrics:{enabled:!0},defaultDeadLetterOptions:{enabled:!0,maxRetries:3}}},failed:{driver:"redis",prefix:"stacks:failed"},worker:{concurrency:5,shutdownTimeout:30000}},highPerformance:{default:"redis",connections:{redis:{driver:"redis",prefix:"stacks:queue",concurrency:20,distributedLock:!0,metrics:{enabled:!0,collectInterval:5000},horizontalScaling:{enabled:!0,maxWorkersPerInstance:20,jobsPerWorker:50},defaultDeadLetterOptions:{enabled:!0,maxRetries:5}}},failed:{driver:"redis",prefix:"stacks:failed"},worker:{concurrency:20,shutdownTimeout:60000}},database:{default:"database",connections:{database:{driver:"database",table:"jobs",queue:"default",retryAfter:90}},failed:{driver:"database",table:"failed_jobs"}}};var Z={server:{development:{enabled:!0,mode:"server",debug:!0,server:{host:"localhost",port:6001,scheme:"ws",driver:"bun",rateLimit:{enabled:!1},healthCheck:{enabled:!0,path:"/health"}},channels:{public:!0,private:!0,presence:!0}},production:{enabled:!0,mode:"server",debug:!1,server:{host:"0.0.0.0",port:6001,scheme:"wss",driver:"bun",redis:{enabled:!0,prefix:"stacks:realtime:"},rateLimit:{enabled:!0,maxConnectionsPerIp:100,maxMessagesPerSecond:50,maxPayloadSize:65536},loadManagement:{maxConnections:1e4,backpressureThreshold:1000,messageQueueSize:1e4,gracefulShutdownTimeout:30000},autoScaling:{min:2,max:10,targetCPU:70},healthCheck:{enabled:!0,path:"/health",interval:30},metrics:{enabled:!0,port:9090,path:"/metrics"}},channels:{public:!0,private:!0,presence:!0}},highPerformance:{enabled:!0,mode:"server",server:{driver:"bun",redis:{enabled:!0,cluster:!0},rateLimit:{enabled:!0,maxConnectionsPerIp:500,maxMessagesPerSecond:200,maxPayloadSize:131072},loadManagement:{maxConnections:1e5,backpressureThreshold:5000,messageQueueSize:50000,gracefulShutdownTimeout:60000},autoScaling:{min:4,max:50,targetCPU:60}}},chat:{enabled:!0,mode:"server",server:{driver:"bun",redis:{enabled:!0},rateLimit:{enabled:!0,maxConnectionsPerIp:10,maxMessagesPerSecond:20},loadManagement:{maxConnections:50000}},channels:{public:!0,private:!0,presence:{enabled:!0,maxMembersPerChannel:500,memberInfoTtl:60}}},gaming:{enabled:!0,mode:"server",server:{driver:"bun",redis:{enabled:!0,cluster:!0},rateLimit:{enabled:!0,maxConnectionsPerIp:50,maxMessagesPerSecond:100},loadManagement:{maxConnections:50000,backpressureThreshold:2000,messageQueueSize:20000},autoScaling:{min:2,max:20,targetCPU:50}},channels:{public:!0,private:!0,presence:!0}}},serverless:{development:{enabled:!0,mode:"serverless",debug:!0,serverless:{connectionTimeout:3600,idleTimeout:600,stageName:"dev",memorySize:256,timeout:30},channels:{public:!0,private:!0,presence:!0}},production:{enabled:!0,mode:"serverless",debug:!1,serverless:{connectionTimeout:3600,idleTimeout:600,stageName:"production",memorySize:512,timeout:30,provisionedConcurrency:2},channels:{public:!0,private:!0,presence:!0}},notifications:{enabled:!0,mode:"serverless",serverless:{connectionTimeout:7200,idleTimeout:1800,memorySize:256,timeout:15},channels:{public:!0,private:!0,presence:!1}}}};var f={};export{f as stackExtensionRegistry,H as isPersonalAccessToken,N as isOAuthClient,x as isAccessToken,K as getTypeName,R as defineModels,Q as defineModel,U as SocialLinkIcon,Z as RealtimePresets,W as QueuePresets,_ as ExitCode,F as Every};
2
+ function x(p){return typeof p==="object"&&p!==null&&"id"in p&&"userId"in p&&"clientId"in p&&"scopes"in p}function H(p){return x(p)&&"abilities"in p}function N(p){return typeof p==="object"&&p!==null&&"id"in p&&"name"in p&&"secret"in p&&"redirect"in p}var F;((D)=>{D.Second="* * * * * *";D.FiveSeconds="*/5 * * * * *";D.TenSeconds="*/10 * * * * *";D.ThirtySeconds="*/30 * * * * *";D.Minute="* * * * *";D.TwoMinutes="*/2 * * * *";D.FiveMinutes="*/5 * * * *";D.TenMinutes="*/10 * * * *";D.FifteenMinutes="*/15 * * * *";D.ThirtyMinutes="*/30 * * * *";D.Hour="0 * * * *";D.HalfHour="0,30 * * * *";D.Day="0 0 * * *";D.Week="0 0 * * 0";D.Weekday="0 0 * * 1-5";D.Weekend="0 0 * * 0,6";D.Month="0 0 1 * *";D.Year="0 0 1 1 *"})(F||={});var U;((B)=>{B.Bluesky="bluesky";B.Discord="discord";B.Facebook="facebook";B.GitHub="github";B.Instagram="instagram";B.LinkedIn="linkedin";B.Mastodon="mastodon";B.Slack="slack";B.Twitter="twitter";B.YouTube="youtube"})(U||={});var _;((O)=>{O[O.Success=0]="Success";O[O.FatalError=1]="FatalError";O[O.InvalidArgument=9]="InvalidArgument"})(_||={});import{toString as G}from"@stacksjs/strings";function K(p){if(p===null)return"null";let P=G(p).slice(8,-1).toLowerCase();return typeof p==="object"||typeof p==="function"?P:typeof p}function Q(p){return p}function R(p){return p}var W={development:{default:"sync",connections:{sync:{driver:"sync"}},failed:{driver:"database",table:"failed_jobs"}},production:{default:"redis",connections:{redis:{driver:"redis",prefix:"stacks:queue",concurrency:5,distributedLock:!0,metrics:{enabled:!0},defaultDeadLetterOptions:{enabled:!0,maxRetries:3}}},failed:{driver:"redis",prefix:"stacks:failed"},worker:{concurrency:5,shutdownTimeout:30000}},highPerformance:{default:"redis",connections:{redis:{driver:"redis",prefix:"stacks:queue",concurrency:20,distributedLock:!0,metrics:{enabled:!0,collectInterval:5000},horizontalScaling:{enabled:!0,maxWorkersPerInstance:20,jobsPerWorker:50},defaultDeadLetterOptions:{enabled:!0,maxRetries:5}}},failed:{driver:"redis",prefix:"stacks:failed"},worker:{concurrency:20,shutdownTimeout:60000}},database:{default:"database",connections:{database:{driver:"database",table:"jobs",queue:"default",retryAfter:90}},failed:{driver:"database",table:"failed_jobs"}}};var Z={server:{development:{enabled:!0,mode:"server",debug:!0,server:{host:"localhost",port:6001,scheme:"ws",driver:"bun",rateLimit:{enabled:!1},healthCheck:{enabled:!0,path:"/health"}},channels:{public:!0,private:!0,presence:!0}},production:{enabled:!0,mode:"server",debug:!1,server:{host:"0.0.0.0",port:6001,scheme:"wss",driver:"bun",redis:{enabled:!0,prefix:"stacks:realtime:"},rateLimit:{enabled:!0,maxConnectionsPerIp:100,maxMessagesPerSecond:50,maxPayloadSize:65536},loadManagement:{maxConnections:1e4,backpressureThreshold:1000,messageQueueSize:1e4,gracefulShutdownTimeout:30000},autoScaling:{min:2,max:10,targetCPU:70},healthCheck:{enabled:!0,path:"/health",interval:30},metrics:{enabled:!0,port:9090,path:"/metrics"}},channels:{public:!0,private:!0,presence:!0}},highPerformance:{enabled:!0,mode:"server",server:{driver:"bun",redis:{enabled:!0,cluster:!0},rateLimit:{enabled:!0,maxConnectionsPerIp:500,maxMessagesPerSecond:200,maxPayloadSize:131072},loadManagement:{maxConnections:1e5,backpressureThreshold:5000,messageQueueSize:50000,gracefulShutdownTimeout:60000},autoScaling:{min:4,max:50,targetCPU:60}}},chat:{enabled:!0,mode:"server",server:{driver:"bun",redis:{enabled:!0},rateLimit:{enabled:!0,maxConnectionsPerIp:10,maxMessagesPerSecond:20},loadManagement:{maxConnections:50000}},channels:{public:!0,private:!0,presence:{enabled:!0,maxMembersPerChannel:500,memberInfoTtl:60}}},gaming:{enabled:!0,mode:"server",server:{driver:"bun",redis:{enabled:!0,cluster:!0},rateLimit:{enabled:!0,maxConnectionsPerIp:50,maxMessagesPerSecond:100},loadManagement:{maxConnections:50000,backpressureThreshold:2000,messageQueueSize:20000},autoScaling:{min:2,max:20,targetCPU:50}},channels:{public:!0,private:!0,presence:!0}}},serverless:{development:{enabled:!0,mode:"serverless",debug:!0,serverless:{connectionTimeout:3600,idleTimeout:600,stageName:"dev",memorySize:256,timeout:30},channels:{public:!0,private:!0,presence:!0}},production:{enabled:!0,mode:"serverless",debug:!1,serverless:{connectionTimeout:3600,idleTimeout:600,stageName:"production",memorySize:512,timeout:30,provisionedConcurrency:2},channels:{public:!0,private:!0,presence:!0}},notifications:{enabled:!0,mode:"serverless",serverless:{connectionTimeout:7200,idleTimeout:1800,memorySize:256,timeout:15},channels:{public:!0,private:!0,presence:!1}}}};var f={calendar:{github:"stacksjs/calendar",package:"@stacksjs/calendar",description:"Calendar links, ICS generation, and an STX calendar component"},table:{github:"stacksjs/table",package:"@stacksjs/table",description:"Typed table drivers and an STX data table component"}};export{f as stackExtensionRegistry,H as isPersonalAccessToken,N as isOAuthClient,x as isAccessToken,K as getTypeName,R as defineModels,Q as defineModel,U as SocialLinkIcon,Z as RealtimePresets,W as QueuePresets,_ as ExitCode,F as Every};
package/dist/request.d.ts CHANGED
@@ -59,12 +59,12 @@ export declare interface Collection<T> {
59
59
  * Safe validated data wrapper (Laravel-style)
60
60
  */
61
61
  export declare interface SafeData<T extends Record<string, any> = Record<string, any>> {
62
- only: <K extends keyof T>(keys: K[]) => Pick<T, K>
63
- except: <K extends keyof T>(keys: K[]) => Omit<T, K>
64
- merge: <U extends Record<string, unknown>>(data: U) => T & U
65
- all: () => T
66
- has: (key: keyof T) => boolean
67
- get: <K extends keyof T>(key: K) => T[K]
62
+ only<K extends keyof T>(keys: K[]): Pick<T, K>
63
+ except<K extends keyof T>(keys: K[]): Omit<T, K>
64
+ merge<U extends Record<string, unknown>>(data: U): T & U
65
+ all(): T
66
+ has(key: keyof T): boolean
67
+ get<K extends keyof T>(key: K): T[K]
68
68
  }
69
69
  export declare interface RequestInstance<TFields extends Record<string, any> = Record<string, any>, TParams extends Record<string, string> = Record<string, string>,> {
70
70
  url: string
@@ -81,28 +81,28 @@ export declare interface RequestInstance<TFields extends Record<string, any> = R
81
81
  input<K extends keyof TFields & string>(key: K, defaultValue?: TFields[K]): TFields[K]
82
82
  input<T = any>(key: string, defaultValue?: T): T
83
83
  all: () => TFields
84
- only: <K extends keyof TFields & string>(keys: K[]) => Pick<TFields, K>
85
- except: <K extends keyof TFields & string>(keys: K[]) => Omit<TFields, K>
84
+ only<K extends keyof TFields & string>(keys: K[]): Pick<TFields, K>
85
+ except<K extends keyof TFields & string>(keys: K[]): Omit<TFields, K>
86
86
  has: (key: string | string[]) => boolean
87
87
  hasAny: (keys: string[]) => boolean
88
88
  filled: (key: string | string[]) => boolean
89
89
  missing: (key: string | string[]) => boolean
90
- merge: (data: Partial<TFields>) => void
90
+ merge(data: Partial<TFields>): void
91
91
  keys: () => (keyof TFields & string)[]
92
- string: (key: keyof TFields & string, defaultValue?: string) => string
93
- integer: (key: keyof TFields & string, defaultValue?: number) => number
94
- float: (key: keyof TFields & string, defaultValue?: number) => number
95
- boolean: (key: keyof TFields & string, defaultValue?: boolean) => boolean
96
- array: <T = unknown>(key: keyof TFields & string) => T[]
97
- date: (key: keyof TFields & string, format?: string) => Date | null
98
- enum: <T extends Record<string, string | number>>(key: keyof TFields & string, enumType: T) => T[keyof T] | null
99
- collect: <T = unknown>(key: keyof TFields & string) => Collection<T>
92
+ string(key: keyof TFields & string, defaultValue?: string): string
93
+ integer(key: keyof TFields & string, defaultValue?: number): number
94
+ float(key: keyof TFields & string, defaultValue?: number): number
95
+ boolean(key: keyof TFields & string, defaultValue?: boolean): boolean
96
+ array<T = unknown>(key: keyof TFields & string): T[]
97
+ date(key: keyof TFields & string, format?: string): Date | null
98
+ enum<T extends Record<string, string | number>>(key: keyof TFields & string, enumType: T): T[keyof T] | null
99
+ collect<T = unknown>(key: keyof TFields & string): Collection<T>
100
100
  validate: (rules?: RequestValidationRules, messages?: Record<string, string>) => Promise<TFields>
101
101
  getValidated: () => TFields
102
102
  safe: () => SafeData<TFields>
103
- whenHas: <T>(key: keyof TFields & string, callback: (value: T) => void, defaultCallback?: () => void) => void
104
- whenFilled: <T>(key: keyof TFields & string, callback: (value: T) => void, defaultCallback?: () => void) => void
105
- isValue: (key: keyof TFields & string, value: unknown) => boolean
103
+ whenHas<T>(key: keyof TFields & string, callback: (value: T) => void, defaultCallback?: () => void): void
104
+ whenFilled<T>(key: keyof TFields & string, callback: (value: T) => void, defaultCallback?: () => void): void
105
+ isValue(key: keyof TFields & string, value: unknown): boolean
106
106
  file: (key: string) => UploadedFile | null
107
107
  getFiles: (key: string) => UploadedFile[]
108
108
  hasFile: (key: string) => boolean
@@ -117,10 +117,10 @@ export declare interface RequestInstance<TFields extends Record<string, any> = R
117
117
  route: (key: string) => number | string | null
118
118
  getParams: () => TParams
119
119
  getParamAsInt: (key: string) => number | null
120
- old: <T = unknown>(key: keyof TFields & string, defaultValue?: T) => T
121
- flashInput: (keys?: (keyof TFields & string)[]) => void
122
- flashInputOnly: (keys: (keyof TFields & string)[]) => void
123
- flashInputExcept: (keys: (keyof TFields & string)[]) => void
120
+ old<T = unknown>(key: keyof TFields & string, defaultValue?: T): T
121
+ flashInput(keys?: (keyof TFields & string)[]): void
122
+ flashInputOnly(keys: (keyof TFields & string)[]): void
123
+ flashInputExcept(keys: (keyof TFields & string)[]): void
124
124
  json: <T = any>() => Promise<T>
125
125
  isEmpty: () => boolean
126
126
  browser: () => string | null
@@ -12,17 +12,17 @@ export declare const stackExtensionRegistry: Record<string, StackRegistryEntry>;
12
12
  // autocomplete and type safety for the new stack name.
13
13
  //
14
14
  // To add your stack, add a new entry below following the pattern:
15
- // 'your-stack-name': { package: '@your-org/your-stack', description: '...' },
15
+ // 'your-stack-name': { github: 'your-org/your-stack', description: '...' },
16
16
  //
17
17
  // Requirements for PRs:
18
- // - The package must be published to npm
19
- // - The package.json must contain a valid `stacks` field with a `name`
18
+ // - The source repository must use the Stacks project directory structure
19
+ // - The package.json must contain a valid `stacks` field with a matching `name`
20
20
  // - The description should be concise (under 80 chars)
21
21
  // ─────────────────────────────────────────────────────────────────────────────
22
- declare interface StackRegistryEntry {
23
- package: string
22
+ export declare interface StackRegistryEntry {
23
+ github: string
24
+ package?: string
24
25
  description: string
25
- github?: string
26
26
  }
27
27
  /**
28
28
  * Metadata for a stack extension, defined in the `stacks` field of a stack's package.json.
@@ -58,6 +58,8 @@ export declare interface StackManifestEntry {
58
58
  version: string
59
59
  installedAt: string
60
60
  files: string[]
61
+ checksums: Record<string, string>
62
+ source: string
61
63
  skipped: string[]
62
64
  conflictStrategy: ConflictStrategy
63
65
  }
@@ -73,11 +75,13 @@ export declare interface StackInstallOptions {
73
75
  force?: boolean
74
76
  dryRun?: boolean
75
77
  verbose?: boolean
78
+ project?: string
76
79
  }
77
80
  export declare interface StackUninstallOptions {
78
81
  name: KnownStackName
79
82
  force?: boolean
80
83
  verbose?: boolean
84
+ project?: string
81
85
  }
82
86
  /** Display format for the `stack:list` command */
83
87
  export declare interface StackListEntry {
@@ -110,6 +114,7 @@ export declare interface StackExtensionEntry {
110
114
  url?: string
111
115
  github?: string
112
116
  package?: string
117
+ description?: string
113
118
  }
114
119
  /**
115
120
  * Known top-level directories in a Stacks project that a stack extension can provide.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/types",
3
3
  "type": "module",
4
- "version": "0.70.161",
4
+ "version": "0.70.163",
5
5
  "description": "The Stacks framework types.",
6
6
  "author": "Chris Breuer",
7
7
  "contributors": [
@@ -66,7 +66,7 @@
66
66
  }
67
67
  },
68
68
  "devDependencies": {
69
- "@stacksjs/validation": "0.70.161",
69
+ "@stacksjs/validation": "0.70.163",
70
70
  "@types/bun": "^1.3.11",
71
71
  "meilisearch": "^0.59.0",
72
72
  "typescript": "^7.0.2"