@dofe/infra-contracts 0.1.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.
@@ -0,0 +1,368 @@
1
+ "use strict";
2
+ /**
3
+ * Unified Error Codes for @dofe/infra-contracts
4
+ * Extracted from @repo/contracts — zero dependencies.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AllErrorHttpStatus = exports.CommonErrorHttpStatus = exports.UserErrorHttpStatus = exports.AllErrorTypes = exports.CommonErrorTypes = exports.UserErrorTypes = exports.ApiErrorCode = exports.UserErrorCode = exports.CommonErrorCode = void 0;
8
+ exports.getErrorType = getErrorType;
9
+ exports.getHttpStatus = getHttpStatus;
10
+ exports.getErrorMessage = getErrorMessage;
11
+ // ============================================================================
12
+ // Common Error Codes (9xx prefix)
13
+ // ============================================================================
14
+ exports.CommonErrorCode = {
15
+ IdMustUUID: '911500',
16
+ InnerError: '900500',
17
+ InternalServerError: '900503',
18
+ BadRequest: '900400',
19
+ Unknown: '900501',
20
+ GetStorageNull: '900404',
21
+ DbCreateError: '900502',
22
+ DbUpdateError: '901502',
23
+ DbDeleteError: '902502',
24
+ DbQueryError: '903502',
25
+ TemplateNotFound: '904404',
26
+ InvalidParameters: '901400',
27
+ SignatureError: '902401',
28
+ TooManyFolders: '903402',
29
+ TooManyFiles: '904403',
30
+ NotFound: '905404',
31
+ PlanIsNotExist: '906404',
32
+ PlanIsDeleted: '906405',
33
+ RecommendPlanNotFound: '200',
34
+ CreateOrderFail: '907406',
35
+ OrderIsNotExist: '908407',
36
+ SystemUnHealthy: '910500',
37
+ ParameterError: '911400',
38
+ GetProviderUserInfoError: '911408',
39
+ RabbitmqQueueIsNotExist: '912409',
40
+ StorageResponseFailed: '913510',
41
+ BatchDeleteFolderFail: '914511',
42
+ InitiateMultipartUploadError: '915412',
43
+ QrcodeGenerateError: '916513',
44
+ FileServiceUnsupportedVendor: '917414',
45
+ QiniuZipDownloadError: '918515',
46
+ QiniuQueryFopStatusError: '919516',
47
+ QiniuUploaderError: '920517',
48
+ S3NoSuchKey: '921518',
49
+ S3NoSuchBucket: '922519',
50
+ UnAuthorized: '923402',
51
+ UnauthorizedByKey: '924403',
52
+ TooFrequent: '925429',
53
+ InvalidToken: '926404',
54
+ InvalidEnv: '927505',
55
+ InvalidRedis: '928506',
56
+ TextCensorValidFailed: '928508',
57
+ SessionExpired: '929410',
58
+ FeatureAlreadyExists: '900403',
59
+ FeatureNotFound: '901404',
60
+ FeatureHasPermissions: '902404',
61
+ SomeFeaturesHavePermissions: '903404',
62
+ WechatAccessTokenError: '990404',
63
+ WechatMiniProgramQRCodeError: '990405',
64
+ LLMJinaAiEmbeddingError: '999001',
65
+ LLMJinaAiRerankError: '999002',
66
+ LLMJinaAiReadError: '999003',
67
+ LLMJinaAiSearchError: '999004',
68
+ LLMJinaAiClassifyError: '999005',
69
+ LLMJinaAiSegmentError: '999006',
70
+ LLMJinaAiGRelatedError: '999007',
71
+ LLMJinaAiDeepsearchError: '999008',
72
+ S3ClientInitializationError: '999010',
73
+ InvalidVideoUri: '999011',
74
+ InvalidTaskId: '999012',
75
+ MissingVendor: '999013',
76
+ };
77
+ // ============================================================================
78
+ // User Error Codes (2xx prefix)
79
+ // ============================================================================
80
+ exports.UserErrorCode = {
81
+ OauthAccountAlreadyExist: '200409',
82
+ UserNotFound: '200401',
83
+ UserAlreadyExists: '200402',
84
+ InvalidPassword: '200403',
85
+ InvalidVerifyCode: '200400',
86
+ WriteAccessTokenFail: '200500',
87
+ SsoHostNameError: '200501',
88
+ OauthTokenInvalid: '206407',
89
+ NicknameIsTooLong: '207400',
90
+ NicknameIsTooShort: '208400',
91
+ EmailIsInvalid: '209400',
92
+ };
93
+ // ============================================================================
94
+ // Unified API Error Code
95
+ // ============================================================================
96
+ exports.ApiErrorCode = {
97
+ ...exports.UserErrorCode,
98
+ ...exports.CommonErrorCode,
99
+ };
100
+ // ============================================================================
101
+ // Error Type Keys (for i18n)
102
+ // ============================================================================
103
+ exports.UserErrorTypes = {
104
+ [exports.UserErrorCode.OauthAccountAlreadyExist]: 'oauthAccountAlreadyExist',
105
+ [exports.UserErrorCode.UserNotFound]: 'userNotFound',
106
+ [exports.UserErrorCode.UserAlreadyExists]: 'userAlreadyExists',
107
+ [exports.UserErrorCode.InvalidPassword]: 'invalidPassword',
108
+ [exports.UserErrorCode.InvalidVerifyCode]: 'invalidVerifyCode',
109
+ [exports.UserErrorCode.WriteAccessTokenFail]: 'writeAccessTokenFail',
110
+ [exports.UserErrorCode.SsoHostNameError]: 'ssoHostNameError',
111
+ [exports.UserErrorCode.OauthTokenInvalid]: 'oauthTokenInvalid',
112
+ [exports.UserErrorCode.NicknameIsTooLong]: 'nicknameIsTooLong',
113
+ [exports.UserErrorCode.NicknameIsTooShort]: 'nicknameIsTooShort',
114
+ [exports.UserErrorCode.EmailIsInvalid]: 'emailIsInvalid',
115
+ };
116
+ exports.CommonErrorTypes = {
117
+ [exports.CommonErrorCode.IdMustUUID]: 'idMustUUID',
118
+ [exports.CommonErrorCode.InnerError]: 'innerError',
119
+ [exports.CommonErrorCode.InternalServerError]: 'internalServerError',
120
+ [exports.CommonErrorCode.BadRequest]: 'badRequest',
121
+ [exports.CommonErrorCode.Unknown]: 'unknown',
122
+ [exports.CommonErrorCode.GetStorageNull]: 'getStorageNull',
123
+ [exports.CommonErrorCode.DbCreateError]: 'dbCreateError',
124
+ [exports.CommonErrorCode.DbUpdateError]: 'dbUpdateError',
125
+ [exports.CommonErrorCode.DbDeleteError]: 'dbDeleteError',
126
+ [exports.CommonErrorCode.DbQueryError]: 'dbQueryError',
127
+ [exports.CommonErrorCode.TemplateNotFound]: 'templateNotFound',
128
+ [exports.CommonErrorCode.InvalidParameters]: 'invalidParameters',
129
+ [exports.CommonErrorCode.SignatureError]: 'signatureError',
130
+ [exports.CommonErrorCode.TooManyFolders]: 'tooManyFolders',
131
+ [exports.CommonErrorCode.TooManyFiles]: 'tooManyFiles',
132
+ [exports.CommonErrorCode.NotFound]: 'notFound',
133
+ [exports.CommonErrorCode.PlanIsNotExist]: 'planIsNotExist',
134
+ [exports.CommonErrorCode.PlanIsDeleted]: 'planIsDeleted',
135
+ [exports.CommonErrorCode.RecommendPlanNotFound]: 'recommendPlanNotFound',
136
+ [exports.CommonErrorCode.CreateOrderFail]: 'createOrderFail',
137
+ [exports.CommonErrorCode.OrderIsNotExist]: 'orderIsNotExist',
138
+ [exports.CommonErrorCode.SystemUnHealthy]: 'systemUnHealthy',
139
+ [exports.CommonErrorCode.ParameterError]: 'parameterError',
140
+ [exports.CommonErrorCode.GetProviderUserInfoError]: 'getProviderUserInfoError',
141
+ [exports.CommonErrorCode.RabbitmqQueueIsNotExist]: 'rabbitmqQueueIsNotExist',
142
+ [exports.CommonErrorCode.StorageResponseFailed]: 'storageResponseFailed',
143
+ [exports.CommonErrorCode.BatchDeleteFolderFail]: 'batchDeleteFolderFail',
144
+ [exports.CommonErrorCode.InitiateMultipartUploadError]: 'initiateMultipartUploadError',
145
+ [exports.CommonErrorCode.QrcodeGenerateError]: 'qrcodeGenerateError',
146
+ [exports.CommonErrorCode.FileServiceUnsupportedVendor]: 'fileServiceUnsupportedVendor',
147
+ [exports.CommonErrorCode.QiniuZipDownloadError]: 'qiniuZipDownloadError',
148
+ [exports.CommonErrorCode.QiniuQueryFopStatusError]: 'qiniuQueryFopStatusError',
149
+ [exports.CommonErrorCode.QiniuUploaderError]: 'qiniuUploaderError',
150
+ [exports.CommonErrorCode.S3NoSuchKey]: 's3NoSuchKey',
151
+ [exports.CommonErrorCode.S3NoSuchBucket]: 's3NoSuchBucket',
152
+ [exports.CommonErrorCode.UnAuthorized]: 'unAuthorized',
153
+ [exports.CommonErrorCode.UnauthorizedByKey]: 'unauthorizedByKey',
154
+ [exports.CommonErrorCode.TooFrequent]: 'tooFrequent',
155
+ [exports.CommonErrorCode.InvalidToken]: 'invalidToken',
156
+ [exports.CommonErrorCode.InvalidEnv]: 'invalidEnv',
157
+ [exports.CommonErrorCode.InvalidRedis]: 'invalidRedis',
158
+ [exports.CommonErrorCode.TextCensorValidFailed]: 'textCensorValidFailed',
159
+ [exports.CommonErrorCode.SessionExpired]: 'sessionExpired',
160
+ [exports.CommonErrorCode.FeatureAlreadyExists]: 'featureAlreadyExists',
161
+ [exports.CommonErrorCode.FeatureNotFound]: 'featureNotFound',
162
+ [exports.CommonErrorCode.FeatureHasPermissions]: 'featureHasPermissions',
163
+ [exports.CommonErrorCode.SomeFeaturesHavePermissions]: 'someFeaturesHavePermissions',
164
+ [exports.CommonErrorCode.WechatAccessTokenError]: 'wechatAccessTokenError',
165
+ [exports.CommonErrorCode.WechatMiniProgramQRCodeError]: 'wechatMiniProgramQRCodeError',
166
+ [exports.CommonErrorCode.LLMJinaAiEmbeddingError]: 'llmJinaAiEmbeddingError',
167
+ [exports.CommonErrorCode.LLMJinaAiRerankError]: 'llmJinaAiRerankError',
168
+ [exports.CommonErrorCode.LLMJinaAiReadError]: 'llmJinaAiReadError',
169
+ [exports.CommonErrorCode.LLMJinaAiSearchError]: 'llmJinaAiSearchError',
170
+ [exports.CommonErrorCode.LLMJinaAiClassifyError]: 'llmJinaAiClassifyError',
171
+ [exports.CommonErrorCode.LLMJinaAiSegmentError]: 'llmJinaAiSegmentError',
172
+ [exports.CommonErrorCode.LLMJinaAiGRelatedError]: 'llmJinaAiGRelatedError',
173
+ [exports.CommonErrorCode.LLMJinaAiDeepsearchError]: 'llmJinaAiDeepsearchError',
174
+ [exports.CommonErrorCode.S3ClientInitializationError]: 's3ClientInitializationError',
175
+ [exports.CommonErrorCode.InvalidVideoUri]: 'invalidVideoUri',
176
+ [exports.CommonErrorCode.InvalidTaskId]: 'invalidTaskId',
177
+ [exports.CommonErrorCode.MissingVendor]: 'missingVendor',
178
+ };
179
+ // Unified
180
+ exports.AllErrorTypes = {
181
+ ...exports.UserErrorTypes,
182
+ ...exports.CommonErrorTypes,
183
+ };
184
+ // ============================================================================
185
+ // HTTP Status mappings
186
+ // ============================================================================
187
+ exports.UserErrorHttpStatus = {
188
+ [exports.UserErrorCode.OauthAccountAlreadyExist]: 422,
189
+ [exports.UserErrorCode.UserNotFound]: 401,
190
+ [exports.UserErrorCode.UserAlreadyExists]: 200,
191
+ [exports.UserErrorCode.InvalidPassword]: 401,
192
+ [exports.UserErrorCode.InvalidVerifyCode]: 200,
193
+ [exports.UserErrorCode.WriteAccessTokenFail]: 200,
194
+ [exports.UserErrorCode.SsoHostNameError]: 200,
195
+ [exports.UserErrorCode.OauthTokenInvalid]: 401,
196
+ [exports.UserErrorCode.NicknameIsTooLong]: 200,
197
+ [exports.UserErrorCode.NicknameIsTooShort]: 200,
198
+ [exports.UserErrorCode.EmailIsInvalid]: 200,
199
+ };
200
+ exports.CommonErrorHttpStatus = {
201
+ [exports.CommonErrorCode.IdMustUUID]: 400,
202
+ [exports.CommonErrorCode.InnerError]: 500,
203
+ [exports.CommonErrorCode.InternalServerError]: 500,
204
+ [exports.CommonErrorCode.BadRequest]: 200,
205
+ [exports.CommonErrorCode.Unknown]: 500,
206
+ [exports.CommonErrorCode.GetStorageNull]: 200,
207
+ [exports.CommonErrorCode.DbCreateError]: 200,
208
+ [exports.CommonErrorCode.DbUpdateError]: 500,
209
+ [exports.CommonErrorCode.DbDeleteError]: 500,
210
+ [exports.CommonErrorCode.DbQueryError]: 500,
211
+ [exports.CommonErrorCode.TemplateNotFound]: 200,
212
+ [exports.CommonErrorCode.InvalidParameters]: 200,
213
+ [exports.CommonErrorCode.SignatureError]: 200,
214
+ [exports.CommonErrorCode.TooManyFolders]: 200,
215
+ [exports.CommonErrorCode.TooManyFiles]: 200,
216
+ [exports.CommonErrorCode.NotFound]: 200,
217
+ [exports.CommonErrorCode.PlanIsNotExist]: 200,
218
+ [exports.CommonErrorCode.PlanIsDeleted]: 200,
219
+ [exports.CommonErrorCode.RecommendPlanNotFound]: 200,
220
+ [exports.CommonErrorCode.CreateOrderFail]: 200,
221
+ [exports.CommonErrorCode.OrderIsNotExist]: 200,
222
+ [exports.CommonErrorCode.SystemUnHealthy]: 200,
223
+ [exports.CommonErrorCode.ParameterError]: 400,
224
+ [exports.CommonErrorCode.GetProviderUserInfoError]: 200,
225
+ [exports.CommonErrorCode.RabbitmqQueueIsNotExist]: 200,
226
+ [exports.CommonErrorCode.StorageResponseFailed]: 200,
227
+ [exports.CommonErrorCode.BatchDeleteFolderFail]: 200,
228
+ [exports.CommonErrorCode.InitiateMultipartUploadError]: 200,
229
+ [exports.CommonErrorCode.QrcodeGenerateError]: 200,
230
+ [exports.CommonErrorCode.FileServiceUnsupportedVendor]: 200,
231
+ [exports.CommonErrorCode.QiniuZipDownloadError]: 200,
232
+ [exports.CommonErrorCode.QiniuQueryFopStatusError]: 200,
233
+ [exports.CommonErrorCode.QiniuUploaderError]: 200,
234
+ [exports.CommonErrorCode.S3NoSuchKey]: 200,
235
+ [exports.CommonErrorCode.S3NoSuchBucket]: 200,
236
+ [exports.CommonErrorCode.UnAuthorized]: 401,
237
+ [exports.CommonErrorCode.UnauthorizedByKey]: 401,
238
+ [exports.CommonErrorCode.TooFrequent]: 200,
239
+ [exports.CommonErrorCode.InvalidToken]: 401,
240
+ [exports.CommonErrorCode.InvalidEnv]: 200,
241
+ [exports.CommonErrorCode.InvalidRedis]: 200,
242
+ [exports.CommonErrorCode.TextCensorValidFailed]: 200,
243
+ [exports.CommonErrorCode.SessionExpired]: 410,
244
+ [exports.CommonErrorCode.FeatureAlreadyExists]: 409,
245
+ [exports.CommonErrorCode.FeatureNotFound]: 404,
246
+ [exports.CommonErrorCode.FeatureHasPermissions]: 403,
247
+ [exports.CommonErrorCode.SomeFeaturesHavePermissions]: 405,
248
+ [exports.CommonErrorCode.WechatAccessTokenError]: 200,
249
+ [exports.CommonErrorCode.WechatMiniProgramQRCodeError]: 200,
250
+ [exports.CommonErrorCode.LLMJinaAiEmbeddingError]: 500,
251
+ [exports.CommonErrorCode.LLMJinaAiRerankError]: 500,
252
+ [exports.CommonErrorCode.LLMJinaAiReadError]: 500,
253
+ [exports.CommonErrorCode.LLMJinaAiSearchError]: 500,
254
+ [exports.CommonErrorCode.LLMJinaAiClassifyError]: 500,
255
+ [exports.CommonErrorCode.LLMJinaAiSegmentError]: 500,
256
+ [exports.CommonErrorCode.LLMJinaAiGRelatedError]: 500,
257
+ [exports.CommonErrorCode.LLMJinaAiDeepsearchError]: 500,
258
+ [exports.CommonErrorCode.S3ClientInitializationError]: 500,
259
+ [exports.CommonErrorCode.InvalidVideoUri]: 400,
260
+ [exports.CommonErrorCode.InvalidTaskId]: 400,
261
+ [exports.CommonErrorCode.MissingVendor]: 400,
262
+ };
263
+ exports.AllErrorHttpStatus = {
264
+ ...exports.UserErrorHttpStatus,
265
+ ...exports.CommonErrorHttpStatus,
266
+ };
267
+ // ============================================================================
268
+ // Helper functions
269
+ // ============================================================================
270
+ function getErrorType(errorCode) {
271
+ return exports.AllErrorTypes[errorCode];
272
+ }
273
+ function getHttpStatus(errorCode) {
274
+ if (errorCode in exports.AllErrorHttpStatus) {
275
+ return exports.AllErrorHttpStatus[errorCode] ?? 500;
276
+ }
277
+ return 500;
278
+ }
279
+ // ============================================================================
280
+ // Default English error messages (fallback when i18n is not available)
281
+ // ============================================================================
282
+ const ErrorMessages = {
283
+ user: {
284
+ oauthAccountAlreadyExist: 'OAuth Account Already Exists',
285
+ userNotFound: 'User Not Found',
286
+ userAlreadyExists: 'User Already Exists',
287
+ invalidPassword: 'Invalid Password',
288
+ invalidVerifyCode: 'Invalid Verification Code',
289
+ writeAccessTokenFail: 'Failed to write access token',
290
+ ssoHostNameError: 'Invalid SSO hostname error',
291
+ oauthTokenInvalid: 'OAuth Token Invalid',
292
+ nicknameIsTooLong: 'Nickname is too long',
293
+ nicknameIsTooShort: 'Nickname is too short',
294
+ emailIsInvalid: 'Email is invalid',
295
+ },
296
+ common: {
297
+ idMustUUID: 'ID must be a valid UUID',
298
+ innerError: 'Internal Error',
299
+ internalServerError: 'Internal Server Error',
300
+ badRequest: 'Bad Request',
301
+ unknown: 'Unknown Error',
302
+ getStorageNull: 'Storage Object Not Found',
303
+ dbCreateError: 'Database Create Error',
304
+ dbUpdateError: 'Database Update Error',
305
+ dbDeleteError: 'Database Delete Error',
306
+ dbQueryError: 'Database Query Error',
307
+ templateNotFound: 'Template Not Found',
308
+ invalidParameters: 'Invalid Parameters',
309
+ signatureError: 'Signature Error',
310
+ tooManyFolders: 'Too Many Folders',
311
+ tooManyFiles: 'Too Many Files',
312
+ notFound: 'Not Found',
313
+ planIsNotExist: 'Plan Does Not Exist',
314
+ planIsDeleted: 'Plan Is Deleted',
315
+ createOrderFail: 'Failed to Create Order',
316
+ orderIsNotExist: 'Order Does Not Exist',
317
+ systemUnHealthy: 'System Unhealthy',
318
+ parameterError: 'Parameter Error',
319
+ getProviderUserInfoError: 'Failed to Get Provider User Info',
320
+ rabbitmqQueueIsNotExist: 'RabbitMQ Queue Does Not Exist',
321
+ storageResponseFailed: 'Storage Response Failed',
322
+ batchDeleteFolderFail: 'Failed to Batch Delete Folder',
323
+ initiateMultipartUploadError: 'Failed to Initiate Multipart Upload',
324
+ qrcodeGenerateError: 'QR Code Generation Failed',
325
+ fileServiceUnsupportedVendor: 'Unsupported File Service Vendor',
326
+ qiniuZipDownloadError: 'Qiniu Zip Download Failed',
327
+ qiniuQueryFopStatusError: 'Qiniu Fop Status Query Failed',
328
+ qiniuUploaderError: 'Qiniu Upload Failed',
329
+ s3NoSuchKey: 'S3 Key Not Found',
330
+ s3NoSuchBucket: 'S3 Bucket Not Found',
331
+ unAuthorized: 'Unauthorized',
332
+ unauthorizedByKey: 'Unauthorized by Key',
333
+ tooFrequent: 'Too Frequent',
334
+ invalidToken: 'Invalid Token',
335
+ invalidEnv: 'Invalid Environment',
336
+ invalidRedis: 'Invalid Redis Configuration',
337
+ textCensorValidFailed: 'Text Censor Validation Failed',
338
+ sessionExpired: 'Session Expired',
339
+ featureAlreadyExists: 'Feature Already Exists',
340
+ featureNotFound: 'Feature Not Found',
341
+ featureHasPermissions: 'Feature Has Permissions',
342
+ someFeaturesHavePermissions: 'Some Features Have Permissions',
343
+ wechatAccessTokenError: 'WeChat Access Token Error',
344
+ wechatMiniProgramQRCodeError: 'WeChat Mini Program QR Code Error',
345
+ llmJinaAiEmbeddingError: 'Jina AI Embedding API Failed',
346
+ llmJinaAiRerankError: 'Jina AI Rerank API Failed',
347
+ llmJinaAiReadError: 'Jina AI Read API Failed',
348
+ llmJinaAiSearchError: 'Jina AI Search API Failed',
349
+ llmJinaAiClassifyError: 'Jina AI Classify API Failed',
350
+ llmJinaAiSegmentError: 'Jina AI Segment API Failed',
351
+ llmJinaAiGRelatedError: 'Jina AI Related Content API Failed',
352
+ llmJinaAiDeepsearchError: 'Jina AI Deep Search API Failed',
353
+ s3ClientInitializationError: 'S3 Client Initialization Failed',
354
+ invalidVideoUri: 'Invalid video URI format',
355
+ invalidTaskId: 'Task ID cannot be empty',
356
+ missingVendor: 'Vendor must be provided',
357
+ },
358
+ };
359
+ const AllErrorMessages = Object.entries(ErrorMessages).reduce((acc, [, messages]) => {
360
+ Object.entries(messages).forEach(([errorType, message]) => {
361
+ acc[errorType] = message;
362
+ });
363
+ return acc;
364
+ }, {});
365
+ function getErrorMessage(errorType) {
366
+ return AllErrorMessages[errorType] || errorType;
367
+ }
368
+ //# sourceMappingURL=error-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../src/error-codes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @dofe/infra-contracts
3
+ * Zero-dependency foundation package for infra.dofe.ai.
4
+ *
5
+ * Contains error codes, constants, and shared types that were previously
6
+ * coupled to @repo/contracts, @repo/constants, and @repo/types.
7
+ */
8
+ export * from './error-codes';
9
+ export * from './constants';
10
+ export * from './types';
11
+ export * from './providers';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * @dofe/infra-contracts
4
+ * Zero-dependency foundation package for infra.dofe.ai.
5
+ *
6
+ * Contains error codes, constants, and shared types that were previously
7
+ * coupled to @repo/contracts, @repo/constants, and @repo/types.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ // Error codes
25
+ __exportStar(require("./error-codes"), exports);
26
+ // Shared constants
27
+ __exportStar(require("./constants"), exports);
28
+ // Core types
29
+ __exportStar(require("./types"), exports);
30
+ // Provider types, configs, and helpers
31
+ __exportStar(require("./providers"), exports);
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,cAAc;AACd,gDAA8B;AAE9B,mBAAmB;AACnB,8CAA4B;AAE5B,aAAa;AACb,0CAAwB;AAExB,uCAAuC;AACvC,8CAA4B"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Provider types, configs, and helpers.
3
+ * Extracted from @repo/contracts/schemas/provider.schema.ts — zero dependencies.
4
+ */
5
+ export type ProviderVendor = 'openai' | 'anthropic' | 'google' | 'azure-openai' | 'aws-bedrock' | 'vertexai' | 'mistral' | 'groq' | 'together' | 'fireworks' | 'perplexity' | 'grok' | 'nvidia' | 'hyperbolic' | 'cerebras' | 'huggingface' | 'github' | 'copilot' | 'cohere' | 'ai21' | 'replicate' | 'deepseek' | 'zhipu' | 'moonshot' | 'baichuan' | 'dashscope' | 'stepfun' | 'doubao' | 'minimax' | 'yi' | 'hunyuan' | 'tencent-cloud-ti' | 'baidu-cloud' | 'infini' | 'modelscope' | 'xirang' | 'mimo' | 'openrouter' | 'silicon' | 'aihubmix' | '302ai' | 'tokenflux' | 'poe' | 'venice' | 'ocoolai' | 'dmxapi' | 'burncloud' | 'cephalon' | 'lanyun' | 'ph8' | 'qiniu' | 'ppio' | 'alayanew' | 'aionly' | 'longcat' | 'sophnet' | 'gateway' | 'ollama' | 'lmstudio' | 'gpustack' | 'ovms' | 'new-api' | 'custom';
6
+ export type ProviderApiType = 'openai' | 'openai-response' | 'anthropic' | 'gemini' | 'azure-openai' | 'aws-bedrock' | 'vertexai' | 'ollama' | 'new-api' | 'gateway';
7
+ export type ProviderCategory = 'international' | 'domestic' | 'aggregator' | 'local' | 'custom';
8
+ export type CredentialFieldType = 'secret-input' | 'text-input' | 'select';
9
+ export interface CredentialFieldSchema {
10
+ variable: string;
11
+ label: string;
12
+ type: CredentialFieldType;
13
+ required: boolean;
14
+ placeholder?: string;
15
+ default?: string;
16
+ options?: Array<{
17
+ value: string;
18
+ label: string;
19
+ }>;
20
+ }
21
+ export interface ProviderConfig {
22
+ id: ProviderVendor;
23
+ name: string;
24
+ apiType: ProviderApiType;
25
+ category: ProviderCategory;
26
+ apiHost: string;
27
+ logo?: string;
28
+ websites?: {
29
+ official?: string;
30
+ apiKey?: string;
31
+ docs?: string;
32
+ models?: string;
33
+ };
34
+ requiresExtraConfig?: boolean;
35
+ isLocal?: boolean;
36
+ supportedModelTypes?: string[];
37
+ credentialFormSchemas?: CredentialFieldSchema[];
38
+ description?: string;
39
+ }
40
+ export declare const PROVIDER_CONFIGS: Record<string, ProviderConfig>;
41
+ export declare const PROVIDER_VENDORS: ProviderVendor[];
42
+ export declare function getProviderDefaultApiHost(vendor: ProviderVendor): string;
43
+ export declare function getEffectiveApiHost(vendor: ProviderVendor, customApiHost?: string | null): string;
44
+ export declare function isProviderVendor(value: unknown): value is ProviderVendor;
45
+ export declare function isProviderApiType(value: unknown): value is ProviderApiType;
46
+ export declare function getProviderConfig(vendor: ProviderVendor): ProviderConfig | undefined;
47
+ export declare function getProvidersByCategory(category: ProviderCategory): ProviderConfig[];
48
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}