@stacksjs/types 0.70.85 → 0.70.87
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/package.json +19 -5
- package/src/ai.ts +0 -41
- package/src/analytics.ts +0 -58
- package/src/api.ts +0 -77
- package/src/app.ts +0 -189
- package/src/attributes.ts +0 -5
- package/src/auth.ts +0 -161
- package/src/auto-imports.ts +0 -8
- package/src/binary.ts +0 -13
- package/src/cache.ts +0 -325
- package/src/cdn.ts +0 -17
- package/src/chat.ts +0 -193
- package/src/cli.ts +0 -445
- package/src/cloud.ts +0 -381
- package/src/cms.ts +0 -14
- package/src/commerce.ts +0 -18
- package/src/components.ts +0 -62
- package/src/configure.ts +0 -13
- package/src/cors.ts +0 -86
- package/src/cron-jobs.ts +0 -146
- package/src/dashboard.ts +0 -218
- package/src/database.ts +0 -117
- package/src/dependencies.ts +0 -69
- package/src/deploy.ts +0 -17
- package/src/dns.ts +0 -470
- package/src/docs.ts +0 -27
- package/src/email.ts +0 -511
- package/src/env.ts +0 -1
- package/src/errors.ts +0 -110
- package/src/events.ts +0 -37
- package/src/exit-code.ts +0 -10
- package/src/file-systems.ts +0 -70
- package/src/git.ts +0 -133
- package/src/hashing.ts +0 -127
- package/src/helpers.ts +0 -9
- package/src/i18n.ts +0 -121
- package/src/index.ts +0 -80
- package/src/library.ts +0 -911
- package/src/logging.ts +0 -62
- package/src/manifest.ts +0 -9
- package/src/marketing.ts +0 -14
- package/src/model-dashboard-augmentation.ts +0 -51
- package/src/model-names.ts +0 -1
- package/src/model.ts +0 -353
- package/src/monitoring.ts +0 -14
- package/src/native.ts +0 -0
- package/src/notifications.ts +0 -153
- package/src/oauth.ts +0 -488
- package/src/pages.ts +0 -10
- package/src/payments.ts +0 -440
- package/src/phone.ts +0 -78
- package/src/ports.ts +0 -20
- package/src/promise.ts +0 -1
- package/src/push.ts +0 -143
- package/src/queue.ts +0 -413
- package/src/reactivity.ts +0 -1
- package/src/realtime.ts +0 -584
- package/src/request.ts +0 -541
- package/src/response.ts +0 -16
- package/src/router.ts +0 -124
- package/src/saas.ts +0 -33
- package/src/scheduler.ts +0 -1
- package/src/search-engine.ts +0 -251
- package/src/security.ts +0 -23
- package/src/server.ts +0 -16
- package/src/services.ts +0 -211
- package/src/settings-config.ts +0 -10
- package/src/sms.ts +0 -265
- package/src/stack-extensions.ts +0 -184
- package/src/stacks.ts +0 -339
- package/src/storage.ts +0 -173
- package/src/table-names.ts +0 -1
- package/src/tables.ts +0 -57
- package/src/team.ts +0 -8
- package/src/ui.ts +0 -197
- package/src/utils.ts +0 -46
package/src/saas.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export interface SaasOption {
|
|
2
|
-
plans: {
|
|
3
|
-
productName: string
|
|
4
|
-
description: string
|
|
5
|
-
pricing: {
|
|
6
|
-
key: string
|
|
7
|
-
price: number
|
|
8
|
-
interval?: 'day' | 'month' | 'week' | 'year' // Optional interval
|
|
9
|
-
currency: string
|
|
10
|
-
}[]
|
|
11
|
-
metadata: {
|
|
12
|
-
createdBy: string
|
|
13
|
-
version: string
|
|
14
|
-
}
|
|
15
|
-
}[]
|
|
16
|
-
webhook: {
|
|
17
|
-
endpoint: string
|
|
18
|
-
secret: string
|
|
19
|
-
}
|
|
20
|
-
currencies: string[]
|
|
21
|
-
coupons: {
|
|
22
|
-
code: string
|
|
23
|
-
amountOff: number
|
|
24
|
-
duration: 'once' | 'repeating' | 'forever'
|
|
25
|
-
}[]
|
|
26
|
-
products: {
|
|
27
|
-
name: string
|
|
28
|
-
description: string
|
|
29
|
-
images: string[]
|
|
30
|
-
}[]
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export type SaasConfig = Partial<SaasOption>
|
package/src/scheduler.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type { Schedule } from '@stacksjs/scheduler'
|
package/src/search-engine.ts
DELETED
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
Dictionary,
|
|
3
|
-
DocumentOptions,
|
|
4
|
-
EnqueuedTask,
|
|
5
|
-
Faceting,
|
|
6
|
-
Hits,
|
|
7
|
-
Index,
|
|
8
|
-
IndexesResults,
|
|
9
|
-
IndexOptions,
|
|
10
|
-
Meilisearch,
|
|
11
|
-
Settings as MeilisearchOptions,
|
|
12
|
-
PaginationSettings,
|
|
13
|
-
DocumentOptions as RecordOptions,
|
|
14
|
-
SearchParams,
|
|
15
|
-
SearchResponse,
|
|
16
|
-
Settings,
|
|
17
|
-
Synonyms,
|
|
18
|
-
TypoTolerance,
|
|
19
|
-
} from 'meilisearch'
|
|
20
|
-
import type { MaybePromise } from '.'
|
|
21
|
-
|
|
22
|
-
// type Search = any
|
|
23
|
-
// type Page = any
|
|
24
|
-
// type Pages = Page[]
|
|
25
|
-
// type Filter = any
|
|
26
|
-
// type Filters = Filter[]
|
|
27
|
-
// type Result = any
|
|
28
|
-
// type Results = Result[]
|
|
29
|
-
// type SearchFilter = any
|
|
30
|
-
// type SearchFilters = SearchFilter[]
|
|
31
|
-
// type Sorts = any
|
|
32
|
-
// type Sort = any
|
|
33
|
-
|
|
34
|
-
export interface SearchEngineOptions {
|
|
35
|
-
/**
|
|
36
|
-
* **Search Engine Driver**
|
|
37
|
-
*
|
|
38
|
-
* The search engine to utilize.
|
|
39
|
-
*
|
|
40
|
-
* @default string 'meilisearch'
|
|
41
|
-
* @see https://stacksjs.com/docs/search-engine
|
|
42
|
-
*/
|
|
43
|
-
driver: 'meilisearch' | 'algolia' | 'opensearch' | 'typesense'
|
|
44
|
-
|
|
45
|
-
opensearch?: {
|
|
46
|
-
host: string
|
|
47
|
-
protocol: number
|
|
48
|
-
port: number
|
|
49
|
-
auth: string
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
meilisearch?: {
|
|
53
|
-
host: string
|
|
54
|
-
protocol?: number
|
|
55
|
-
port?: number
|
|
56
|
-
auth?: string
|
|
57
|
-
apiKey: string
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
algolia?: {
|
|
61
|
-
appId: string
|
|
62
|
-
apiKey: string
|
|
63
|
-
searchOnlyApiKey?: string
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
typesense?: {
|
|
67
|
-
host?: string
|
|
68
|
-
port?: number
|
|
69
|
-
protocol?: string
|
|
70
|
-
apiKey?: string
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
filters?: {
|
|
74
|
-
[key: string]: string
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* The number of hits to be returned per page.
|
|
79
|
-
*
|
|
80
|
-
* @default number 20
|
|
81
|
-
*/
|
|
82
|
-
perPage?: number
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export type SearchEngineConfig = Partial<SearchEngineOptions>
|
|
86
|
-
|
|
87
|
-
export interface SearchEngineDriver {
|
|
88
|
-
client: () => Meilisearch
|
|
89
|
-
resetClient?: () => void
|
|
90
|
-
|
|
91
|
-
search: (index: string, params: any) => Promise<SearchResponse<Record<string, any>>>
|
|
92
|
-
|
|
93
|
-
// Indexes
|
|
94
|
-
createIndex: (name: string, options?: IndexOptions) => MaybePromise<EnqueuedTask>
|
|
95
|
-
getIndex: (name: string) => Promise<Index<Record<string, any>>>
|
|
96
|
-
addDocument: (indexName: string, params: any) => Promise<EnqueuedTask>
|
|
97
|
-
updateDocuments: (indexName: string, params: DocumentOptions[]) => Promise<EnqueuedTask>
|
|
98
|
-
updateDocument: (indexName: string, params: DocumentOptions) => Promise<EnqueuedTask>
|
|
99
|
-
addDocuments: (indexName: string, params: any[]) => Promise<EnqueuedTask>
|
|
100
|
-
getDocument: (indexName: string, id: number, fields: any) => Promise<EnqueuedTask>
|
|
101
|
-
deleteDocument: (indexName: string, id: number) => Promise<EnqueuedTask>
|
|
102
|
-
deleteDocuments: (indexName: string, filters: string | string[]) => Promise<EnqueuedTask>
|
|
103
|
-
updateIndex: (name: string, options: IndexOptions) => MaybePromise<EnqueuedTask>
|
|
104
|
-
deleteIndex: (name: string) => MaybePromise<EnqueuedTask>
|
|
105
|
-
listAllIndexes: () => MaybePromise<IndexesResults<Index[]>>
|
|
106
|
-
listAllIndices: () => MaybePromise<IndexesResults<Index[]>> // alternatives plural spelling
|
|
107
|
-
|
|
108
|
-
getFilterableAttributes: (index: string) => Promise<string[]>
|
|
109
|
-
updateFilterableAttributes: (index: string, filterableAttributes: string[] | null) => Promise<EnqueuedTask>
|
|
110
|
-
resetFilterableAttributes: (index: string) => Promise<EnqueuedTask>
|
|
111
|
-
|
|
112
|
-
updateSearchableAttributes: (index: string, searchableAttributes: string[] | null) => Promise<EnqueuedTask>
|
|
113
|
-
resetSearchableAttributes: (index: string) => Promise<EnqueuedTask>
|
|
114
|
-
getSearchableAttributes: (index: string) => Promise<string[]>
|
|
115
|
-
|
|
116
|
-
updateSortableAttributes: (index: string, sortableAttributes: string[] | null) => Promise<EnqueuedTask>
|
|
117
|
-
resetSortableAttributes: (index: string) => Promise<EnqueuedTask>
|
|
118
|
-
getSortableAttributes: (index: string) => Promise<string[]>
|
|
119
|
-
|
|
120
|
-
updateDisplayedAttributes: (index: string, displayedAttributes: string[] | null) => Promise<EnqueuedTask>
|
|
121
|
-
getDisplayedAttributes: (index: string) => Promise<string[]>
|
|
122
|
-
resetDisplayedAttributes: (index: string) => Promise<EnqueuedTask>
|
|
123
|
-
|
|
124
|
-
getSettings: (index: string) => Promise<Settings>
|
|
125
|
-
updateSettings: (index: string, settings: Settings) => Promise<EnqueuedTask>
|
|
126
|
-
resetSettings: (index: string) => Promise<EnqueuedTask>
|
|
127
|
-
getPagination: (index: string) => Promise<PaginationSettings>
|
|
128
|
-
updatePagination: (index: string, pagination: PaginationSettings) => Promise<EnqueuedTask>
|
|
129
|
-
resetPagination: (index: string) => Promise<EnqueuedTask>
|
|
130
|
-
|
|
131
|
-
getSynonyms: (index: string) => Promise<any>
|
|
132
|
-
updateSynonyms: (index: string, synonyms: Synonyms) => Promise<EnqueuedTask>
|
|
133
|
-
resetSynonyms: (index: string) => Promise<EnqueuedTask>
|
|
134
|
-
|
|
135
|
-
getRankingRules: (index: string) => Promise<string[]>
|
|
136
|
-
updateRankingRules: (index: string, rankingRules: string[] | null) => Promise<EnqueuedTask>
|
|
137
|
-
resetRankingRules: (index: string) => Promise<EnqueuedTask>
|
|
138
|
-
|
|
139
|
-
getDistinctAttribute: (index: string) => Promise<string | null>
|
|
140
|
-
updateDistinctAttribute: (index: string, distinctAttribute: string | null) => Promise<EnqueuedTask>
|
|
141
|
-
resetDistinctAttribute: (index: string) => Promise<EnqueuedTask>
|
|
142
|
-
|
|
143
|
-
getFaceting: (index: string) => Promise<Faceting>
|
|
144
|
-
updateFaceting: (index: string, faceting: Faceting) => Promise<EnqueuedTask>
|
|
145
|
-
resetFaceting: (index: string) => Promise<EnqueuedTask>
|
|
146
|
-
|
|
147
|
-
getTypoTolerance: (index: string) => Promise<TypoTolerance>
|
|
148
|
-
updateTypoTolerance: (index: string, typoTolerance: TypoTolerance | null) => Promise<EnqueuedTask>
|
|
149
|
-
resetTypoTolerance: (index: string) => Promise<EnqueuedTask>
|
|
150
|
-
|
|
151
|
-
getDictionary: (index: string) => Promise<Dictionary>
|
|
152
|
-
updateDictionary: (index: string, dictionary: Dictionary | null) => Promise<EnqueuedTask>
|
|
153
|
-
resetDictionary: (index: string) => Promise<EnqueuedTask>
|
|
154
|
-
|
|
155
|
-
// Search
|
|
156
|
-
// calculatePagination: Pages
|
|
157
|
-
// currentPage: Page
|
|
158
|
-
// filterName: string
|
|
159
|
-
// filters: Filters
|
|
160
|
-
// goToNextPage: () => Page
|
|
161
|
-
// goToPage: (pageNumber: number) => Page
|
|
162
|
-
// goToPrevPage: () => Page
|
|
163
|
-
// hits: Hits
|
|
164
|
-
// index: Index
|
|
165
|
-
// lastPage: Page
|
|
166
|
-
// perPage: number
|
|
167
|
-
// query: string
|
|
168
|
-
// results: Results // SearchResponse
|
|
169
|
-
// searchFilters: SearchFilters
|
|
170
|
-
// searchParams: SearchParams
|
|
171
|
-
// setTotalHits: number
|
|
172
|
-
// sort: Sort
|
|
173
|
-
// sorts: Sorts
|
|
174
|
-
// totalPages: number
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* This interface is used to unify the persisting of data to localStorage
|
|
179
|
-
*/
|
|
180
|
-
export interface SearchEngineStorage {
|
|
181
|
-
/**
|
|
182
|
-
* The search engine index name.
|
|
183
|
-
* i.e. the type of table, like `users`, `posts`, `products`, etc.
|
|
184
|
-
*/
|
|
185
|
-
index?: string
|
|
186
|
-
/**
|
|
187
|
-
* The search engine results object.
|
|
188
|
-
*/
|
|
189
|
-
results?: SearchResponse
|
|
190
|
-
/**
|
|
191
|
-
* The search engine hits object.
|
|
192
|
-
*/
|
|
193
|
-
hits?: Hits
|
|
194
|
-
/**
|
|
195
|
-
* The number of hits to be returned per page.
|
|
196
|
-
*
|
|
197
|
-
* @default number 20
|
|
198
|
-
*/
|
|
199
|
-
perPage: number
|
|
200
|
-
/**
|
|
201
|
-
* The current page number.
|
|
202
|
-
*
|
|
203
|
-
* @default number 1
|
|
204
|
-
*/
|
|
205
|
-
currentPage: number
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export interface SearchOptions {
|
|
209
|
-
displayable: string[]
|
|
210
|
-
searchable: string[]
|
|
211
|
-
sortable: string[]
|
|
212
|
-
filterable: string[]
|
|
213
|
-
options?: SearchEngineOptions
|
|
214
|
-
/**
|
|
215
|
-
* Cross-table denormalisation for searchable fields that live on a
|
|
216
|
-
* related model (stacksjs/stacks#1918). Maps an indexed-document
|
|
217
|
-
* field name to a dot-path resolved against the model instance's
|
|
218
|
-
* `_relations`. Without this, `toSearchableObject` only reads from
|
|
219
|
-
* `_attributes` and silently emits `undefined` for any field that
|
|
220
|
-
* exists on a `belongsTo` / `hasOne` / `hasMany` relation.
|
|
221
|
-
*
|
|
222
|
-
* Example: a `Judge` belongsTo a `CourtHouse`. To make the court
|
|
223
|
-
* house's `name` searchable on the judge index:
|
|
224
|
-
*
|
|
225
|
-
* useSearch: {
|
|
226
|
-
* searchable: ['name', 'court_name'],
|
|
227
|
-
* displayable: ['id', 'name', 'court_name'],
|
|
228
|
-
* denormalize: { court_name: 'court_house.name' },
|
|
229
|
-
* }
|
|
230
|
-
*
|
|
231
|
-
* The caller is responsible for eager-loading the named relations
|
|
232
|
-
* (e.g. via `Judge.query().with('court_house').get()`) — the live
|
|
233
|
-
* observer hook and the CLI bulk-index path do this automatically
|
|
234
|
-
* for every distinct head segment in the `denormalize` map.
|
|
235
|
-
* `toSearchableObject` stays synchronous; no per-row database lookup.
|
|
236
|
-
*/
|
|
237
|
-
denormalize?: Record<string, string>
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
export type {
|
|
241
|
-
EnqueuedTask,
|
|
242
|
-
Hits,
|
|
243
|
-
Index,
|
|
244
|
-
IndexesResults,
|
|
245
|
-
IndexOptions,
|
|
246
|
-
Meilisearch,
|
|
247
|
-
MeilisearchOptions,
|
|
248
|
-
RecordOptions,
|
|
249
|
-
SearchParams,
|
|
250
|
-
SearchResponse,
|
|
251
|
-
}
|
package/src/security.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { CountryCode } from './cloud'
|
|
2
|
-
import type { DeepPartial } from './utils'
|
|
3
|
-
|
|
4
|
-
export interface FirewallOptions {
|
|
5
|
-
enabled: boolean // default: true
|
|
6
|
-
countryCodes: CountryCode[]
|
|
7
|
-
ipAddresses: string[]
|
|
8
|
-
queryString: string[]
|
|
9
|
-
httpHeaders: string[]
|
|
10
|
-
// ipSets: string[]
|
|
11
|
-
rateLimitPerMinute: number
|
|
12
|
-
useIpReputationLists: boolean
|
|
13
|
-
useKnownBadInputsRuleSet: boolean
|
|
14
|
-
}
|
|
15
|
-
export type FirewallConfig = Partial<FirewallOptions>
|
|
16
|
-
|
|
17
|
-
export interface SecurityOptions {
|
|
18
|
-
driver: 'aws'
|
|
19
|
-
|
|
20
|
-
firewall: FirewallOptions
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export type SecurityConfig = DeepPartial<SecurityOptions>
|
package/src/server.ts
DELETED
package/src/services.ts
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
export interface ServicesOptions {
|
|
2
|
-
algolia?: {
|
|
3
|
-
appId: string
|
|
4
|
-
apiKey: string
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
aws?: {
|
|
8
|
-
accountId: string
|
|
9
|
-
appId: string
|
|
10
|
-
apiKey: string
|
|
11
|
-
region: string
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
github?: {
|
|
15
|
-
clientId: string
|
|
16
|
-
clientSecret: string
|
|
17
|
-
redirectUrl: string
|
|
18
|
-
scopes?: string[]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
google?: {
|
|
22
|
-
clientId: string
|
|
23
|
-
clientSecret: string
|
|
24
|
-
redirectUrl: string
|
|
25
|
-
scopes?: string[]
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Sign in with Apple. Apple has no static client secret — the driver
|
|
30
|
-
* signs a short-lived ES256 JWT from teamId + keyId + privateKey
|
|
31
|
-
* (the .p8 file's contents) instead.
|
|
32
|
-
*/
|
|
33
|
-
apple?: {
|
|
34
|
-
/** The Services ID identifier, e.g. `org.example.web` */
|
|
35
|
-
clientId: string
|
|
36
|
-
/** Apple Developer Team ID (10 chars) */
|
|
37
|
-
teamId: string
|
|
38
|
-
/** Key ID of the "Sign in with Apple" key */
|
|
39
|
-
keyId: string
|
|
40
|
-
/** Contents of the downloaded .p8 private key */
|
|
41
|
-
privateKey: string
|
|
42
|
-
redirectUrl: string
|
|
43
|
-
scopes?: string[]
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
facebook?: {
|
|
47
|
-
clientId: string
|
|
48
|
-
clientSecret: string
|
|
49
|
-
redirectUrl: string
|
|
50
|
-
scopes?: string[]
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
twitter?: {
|
|
54
|
-
clientId: string
|
|
55
|
-
clientSecret: string
|
|
56
|
-
redirectUrl: string
|
|
57
|
-
scopes?: string[]
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
godaddy?: {
|
|
61
|
-
apiKey: string
|
|
62
|
-
apiSecret: string
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
hetzner: {
|
|
66
|
-
appId: string
|
|
67
|
-
apiKey: string
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
digitalOcean: {
|
|
71
|
-
appId: string
|
|
72
|
-
apiKey: string
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// lemonSqueezy?: {
|
|
76
|
-
// appId: string
|
|
77
|
-
// apiKey: string
|
|
78
|
-
// }
|
|
79
|
-
|
|
80
|
-
mailgun?: {
|
|
81
|
-
apiKey?: string
|
|
82
|
-
domain?: string
|
|
83
|
-
endpoint?: string
|
|
84
|
-
maxRetries?: number
|
|
85
|
-
retryTimeout?: number
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
mailtrap?: {
|
|
89
|
-
token: string
|
|
90
|
-
host: string
|
|
91
|
-
inboxId?: string | number
|
|
92
|
-
maxRetries?: number
|
|
93
|
-
retryTimeout?: number
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
meilisearch?: {
|
|
97
|
-
appId: string
|
|
98
|
-
apiKey: string
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
sendgrid?: {
|
|
102
|
-
apiKey?: string
|
|
103
|
-
maxRetries?: number
|
|
104
|
-
retryTimeout?: number
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
ses?: {
|
|
108
|
-
region: string
|
|
109
|
-
credentials: {
|
|
110
|
-
accessKeyId?: string
|
|
111
|
-
secretAccessKey?: string
|
|
112
|
-
}
|
|
113
|
-
maxRetries?: number
|
|
114
|
-
retryTimeout?: number
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* SMTP Configuration for local development
|
|
119
|
-
* Works with HELO, Mailtrap Desktop, Mailhog, etc.
|
|
120
|
-
*/
|
|
121
|
-
smtp?: {
|
|
122
|
-
host: string
|
|
123
|
-
port: number
|
|
124
|
-
username?: string
|
|
125
|
-
password?: string
|
|
126
|
-
encryption?: 'tls' | 'ssl' | null
|
|
127
|
-
maxRetries?: number
|
|
128
|
-
retryTimeout?: number
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
slack?: {
|
|
132
|
-
appId?: string
|
|
133
|
-
clientId?: string
|
|
134
|
-
secretKey?: string
|
|
135
|
-
webhookUrl?: string
|
|
136
|
-
botToken?: string
|
|
137
|
-
maxRetries?: number
|
|
138
|
-
retryTimeout?: number
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
discord?: {
|
|
142
|
-
webhookUrl?: string
|
|
143
|
-
botToken?: string
|
|
144
|
-
maxRetries?: number
|
|
145
|
-
retryTimeout?: number
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
teams?: {
|
|
149
|
-
webhookUrl?: string
|
|
150
|
-
maxRetries?: number
|
|
151
|
-
retryTimeout?: number
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// Push Notification Services
|
|
155
|
-
expo?: {
|
|
156
|
-
accessToken?: string
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
fcm?: {
|
|
160
|
-
serverKey?: string
|
|
161
|
-
projectId?: string
|
|
162
|
-
clientEmail?: string
|
|
163
|
-
privateKey?: string
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// AI Services
|
|
167
|
-
openai?: {
|
|
168
|
-
apiKey?: string
|
|
169
|
-
model?: string
|
|
170
|
-
embeddingModel?: string
|
|
171
|
-
baseUrl?: string
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
anthropic?: {
|
|
175
|
-
apiKey?: string
|
|
176
|
-
model?: string
|
|
177
|
-
maxTokens?: number
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
ollama?: {
|
|
181
|
-
host?: string
|
|
182
|
-
model?: string
|
|
183
|
-
embeddingModel?: string
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
stripe?: {
|
|
187
|
-
secretKey?: string
|
|
188
|
-
publicKey?: string
|
|
189
|
-
/**
|
|
190
|
-
* Signing secret for verifying inbound Stripe webhook requests
|
|
191
|
-
* (`whsec_...`, from the Stripe dashboard's webhook endpoint
|
|
192
|
-
* config). Required by any app receiving Stripe webhooks —
|
|
193
|
-
* without it, `stripe.webhooks.constructEvent` has nothing to
|
|
194
|
-
* verify the `stripe-signature` header against.
|
|
195
|
-
*/
|
|
196
|
-
webhookSecret?: string
|
|
197
|
-
/**
|
|
198
|
-
* Pinned Stripe API version. Defaults to whatever the bundled SDK
|
|
199
|
-
* was compiled against; override here when rolling forward without
|
|
200
|
-
* a code change. Format: 'YYYY-MM-DD' or 'YYYY-MM-DD.preview'.
|
|
201
|
-
*/
|
|
202
|
-
apiVersion?: string
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
// supabase?: {
|
|
206
|
-
// appId: string
|
|
207
|
-
// apiKey: string
|
|
208
|
-
// }
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
export type ServicesConfig = Partial<ServicesOptions>
|