Skip to content

Commit e59cd7d

Browse files
authored
fix!(ai): convert TS enums exports in Firebase AI into const variables (#9137)
1 parent ec5f374 commit e59cd7d

File tree

14 files changed

+694
-433
lines changed

14 files changed

+694
-433
lines changed

.changeset/shy-yaks-hammer.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@firebase/ai': major
3+
'firebase': major
4+
---
5+
6+
Convert TS enums exports in Firebase AI into const variables.

common/api-review/ai.api.md

Lines changed: 144 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,24 @@ export class AIError extends FirebaseError {
2727
}
2828

2929
// @public
30-
export const enum AIErrorCode {
31-
API_NOT_ENABLED = "api-not-enabled",
32-
ERROR = "error",
33-
FETCH_ERROR = "fetch-error",
34-
INVALID_CONTENT = "invalid-content",
35-
INVALID_SCHEMA = "invalid-schema",
36-
NO_API_KEY = "no-api-key",
37-
NO_APP_ID = "no-app-id",
38-
NO_MODEL = "no-model",
39-
NO_PROJECT_ID = "no-project-id",
40-
PARSE_FAILED = "parse-failed",
41-
REQUEST_ERROR = "request-error",
42-
RESPONSE_ERROR = "response-error",
43-
UNSUPPORTED = "unsupported"
44-
}
30+
export const AIErrorCode: {
31+
readonly ERROR: "error";
32+
readonly REQUEST_ERROR: "request-error";
33+
readonly RESPONSE_ERROR: "response-error";
34+
readonly FETCH_ERROR: "fetch-error";
35+
readonly INVALID_CONTENT: "invalid-content";
36+
readonly API_NOT_ENABLED: "api-not-enabled";
37+
readonly INVALID_SCHEMA: "invalid-schema";
38+
readonly NO_API_KEY: "no-api-key";
39+
readonly NO_APP_ID: "no-app-id";
40+
readonly NO_MODEL: "no-model";
41+
readonly NO_PROJECT_ID: "no-project-id";
42+
readonly PARSE_FAILED: "parse-failed";
43+
readonly UNSUPPORTED: "unsupported";
44+
};
45+
46+
// @public
47+
export type AIErrorCode = (typeof AIErrorCode)[keyof typeof AIErrorCode];
4548

4649
// @public
4750
export abstract class AIModel {
@@ -94,12 +97,15 @@ export interface BaseParams {
9497
}
9598

9699
// @public
97-
export enum BlockReason {
98-
BLOCKLIST = "BLOCKLIST",
99-
OTHER = "OTHER",
100-
PROHIBITED_CONTENT = "PROHIBITED_CONTENT",
101-
SAFETY = "SAFETY"
102-
}
100+
export const BlockReason: {
101+
readonly SAFETY: "SAFETY";
102+
readonly OTHER: "OTHER";
103+
readonly BLOCKLIST: "BLOCKLIST";
104+
readonly PROHIBITED_CONTENT: "PROHIBITED_CONTENT";
105+
};
106+
107+
// @public
108+
export type BlockReason = (typeof BlockReason)[keyof typeof BlockReason];
103109

104110
// @public
105111
export class BooleanSchema extends Schema {
@@ -226,17 +232,20 @@ export interface FileDataPart {
226232
}
227233

228234
// @public
229-
export enum FinishReason {
230-
BLOCKLIST = "BLOCKLIST",
231-
MALFORMED_FUNCTION_CALL = "MALFORMED_FUNCTION_CALL",
232-
MAX_TOKENS = "MAX_TOKENS",
233-
OTHER = "OTHER",
234-
PROHIBITED_CONTENT = "PROHIBITED_CONTENT",
235-
RECITATION = "RECITATION",
236-
SAFETY = "SAFETY",
237-
SPII = "SPII",
238-
STOP = "STOP"
239-
}
235+
export const FinishReason: {
236+
readonly STOP: "STOP";
237+
readonly MAX_TOKENS: "MAX_TOKENS";
238+
readonly SAFETY: "SAFETY";
239+
readonly RECITATION: "RECITATION";
240+
readonly OTHER: "OTHER";
241+
readonly BLOCKLIST: "BLOCKLIST";
242+
readonly PROHIBITED_CONTENT: "PROHIBITED_CONTENT";
243+
readonly SPII: "SPII";
244+
readonly MALFORMED_FUNCTION_CALL: "MALFORMED_FUNCTION_CALL";
245+
};
246+
247+
// @public
248+
export type FinishReason = (typeof FinishReason)[keyof typeof FinishReason];
240249

241250
// @public
242251
export interface FunctionCall {
@@ -255,11 +264,14 @@ export interface FunctionCallingConfig {
255264
}
256265

257266
// @public (undocumented)
258-
export enum FunctionCallingMode {
259-
ANY = "ANY",
260-
AUTO = "AUTO",
261-
NONE = "NONE"
262-
}
267+
export const FunctionCallingMode: {
268+
readonly AUTO: "AUTO";
269+
readonly ANY: "ANY";
270+
readonly NONE: "NONE";
271+
};
272+
273+
// @public (undocumented)
274+
export type FunctionCallingMode = (typeof FunctionCallingMode)[keyof typeof FunctionCallingMode];
263275

264276
// @public
265277
export interface FunctionCallPart {
@@ -525,57 +537,71 @@ export interface GroundingSupport {
525537
}
526538

527539
// @public
528-
export enum HarmBlockMethod {
529-
PROBABILITY = "PROBABILITY",
530-
SEVERITY = "SEVERITY"
531-
}
540+
export const HarmBlockMethod: {
541+
readonly SEVERITY: "SEVERITY";
542+
readonly PROBABILITY: "PROBABILITY";
543+
};
532544

533545
// @public
534-
export enum HarmBlockThreshold {
535-
BLOCK_LOW_AND_ABOVE = "BLOCK_LOW_AND_ABOVE",
536-
BLOCK_MEDIUM_AND_ABOVE = "BLOCK_MEDIUM_AND_ABOVE",
537-
BLOCK_NONE = "BLOCK_NONE",
538-
BLOCK_ONLY_HIGH = "BLOCK_ONLY_HIGH",
539-
OFF = "OFF"
540-
}
546+
export type HarmBlockMethod = (typeof HarmBlockMethod)[keyof typeof HarmBlockMethod];
541547

542548
// @public
543-
export enum HarmCategory {
544-
// (undocumented)
545-
HARM_CATEGORY_DANGEROUS_CONTENT = "HARM_CATEGORY_DANGEROUS_CONTENT",
546-
// (undocumented)
547-
HARM_CATEGORY_HARASSMENT = "HARM_CATEGORY_HARASSMENT",
548-
// (undocumented)
549-
HARM_CATEGORY_HATE_SPEECH = "HARM_CATEGORY_HATE_SPEECH",
550-
// (undocumented)
551-
HARM_CATEGORY_SEXUALLY_EXPLICIT = "HARM_CATEGORY_SEXUALLY_EXPLICIT"
552-
}
549+
export const HarmBlockThreshold: {
550+
readonly BLOCK_LOW_AND_ABOVE: "BLOCK_LOW_AND_ABOVE";
551+
readonly BLOCK_MEDIUM_AND_ABOVE: "BLOCK_MEDIUM_AND_ABOVE";
552+
readonly BLOCK_ONLY_HIGH: "BLOCK_ONLY_HIGH";
553+
readonly BLOCK_NONE: "BLOCK_NONE";
554+
readonly OFF: "OFF";
555+
};
553556

554557
// @public
555-
export enum HarmProbability {
556-
HIGH = "HIGH",
557-
LOW = "LOW",
558-
MEDIUM = "MEDIUM",
559-
NEGLIGIBLE = "NEGLIGIBLE"
560-
}
558+
export type HarmBlockThreshold = (typeof HarmBlockThreshold)[keyof typeof HarmBlockThreshold];
561559

562560
// @public
563-
export enum HarmSeverity {
564-
HARM_SEVERITY_HIGH = "HARM_SEVERITY_HIGH",
565-
HARM_SEVERITY_LOW = "HARM_SEVERITY_LOW",
566-
HARM_SEVERITY_MEDIUM = "HARM_SEVERITY_MEDIUM",
567-
HARM_SEVERITY_NEGLIGIBLE = "HARM_SEVERITY_NEGLIGIBLE",
568-
HARM_SEVERITY_UNSUPPORTED = "HARM_SEVERITY_UNSUPPORTED"
569-
}
561+
export const HarmCategory: {
562+
readonly HARM_CATEGORY_HATE_SPEECH: "HARM_CATEGORY_HATE_SPEECH";
563+
readonly HARM_CATEGORY_SEXUALLY_EXPLICIT: "HARM_CATEGORY_SEXUALLY_EXPLICIT";
564+
readonly HARM_CATEGORY_HARASSMENT: "HARM_CATEGORY_HARASSMENT";
565+
readonly HARM_CATEGORY_DANGEROUS_CONTENT: "HARM_CATEGORY_DANGEROUS_CONTENT";
566+
};
567+
568+
// @public
569+
export type HarmCategory = (typeof HarmCategory)[keyof typeof HarmCategory];
570+
571+
// @public
572+
export const HarmProbability: {
573+
readonly NEGLIGIBLE: "NEGLIGIBLE";
574+
readonly LOW: "LOW";
575+
readonly MEDIUM: "MEDIUM";
576+
readonly HIGH: "HIGH";
577+
};
578+
579+
// @public
580+
export type HarmProbability = (typeof HarmProbability)[keyof typeof HarmProbability];
581+
582+
// @public
583+
export const HarmSeverity: {
584+
readonly HARM_SEVERITY_NEGLIGIBLE: "HARM_SEVERITY_NEGLIGIBLE";
585+
readonly HARM_SEVERITY_LOW: "HARM_SEVERITY_LOW";
586+
readonly HARM_SEVERITY_MEDIUM: "HARM_SEVERITY_MEDIUM";
587+
readonly HARM_SEVERITY_HIGH: "HARM_SEVERITY_HIGH";
588+
readonly HARM_SEVERITY_UNSUPPORTED: "HARM_SEVERITY_UNSUPPORTED";
589+
};
590+
591+
// @public
592+
export type HarmSeverity = (typeof HarmSeverity)[keyof typeof HarmSeverity];
570593

571594
// @beta
572-
export enum ImagenAspectRatio {
573-
LANDSCAPE_16x9 = "16:9",
574-
LANDSCAPE_3x4 = "3:4",
575-
PORTRAIT_4x3 = "4:3",
576-
PORTRAIT_9x16 = "9:16",
577-
SQUARE = "1:1"
578-
}
595+
export const ImagenAspectRatio: {
596+
readonly SQUARE: "1:1";
597+
readonly LANDSCAPE_3x4: "3:4";
598+
readonly PORTRAIT_4x3: "4:3";
599+
readonly LANDSCAPE_16x9: "16:9";
600+
readonly PORTRAIT_9x16: "9:16";
601+
};
602+
603+
// @beta
604+
export type ImagenAspectRatio = (typeof ImagenAspectRatio)[keyof typeof ImagenAspectRatio];
579605

580606
// @public
581607
export interface ImagenGCSImage {
@@ -632,19 +658,25 @@ export interface ImagenModelParams {
632658
}
633659

634660
// @beta
635-
export enum ImagenPersonFilterLevel {
636-
ALLOW_ADULT = "allow_adult",
637-
ALLOW_ALL = "allow_all",
638-
BLOCK_ALL = "dont_allow"
639-
}
661+
export const ImagenPersonFilterLevel: {
662+
readonly BLOCK_ALL: "dont_allow";
663+
readonly ALLOW_ADULT: "allow_adult";
664+
readonly ALLOW_ALL: "allow_all";
665+
};
640666

641667
// @beta
642-
export enum ImagenSafetyFilterLevel {
643-
BLOCK_LOW_AND_ABOVE = "block_low_and_above",
644-
BLOCK_MEDIUM_AND_ABOVE = "block_medium_and_above",
645-
BLOCK_NONE = "block_none",
646-
BLOCK_ONLY_HIGH = "block_only_high"
647-
}
668+
export type ImagenPersonFilterLevel = (typeof ImagenPersonFilterLevel)[keyof typeof ImagenPersonFilterLevel];
669+
670+
// @beta
671+
export const ImagenSafetyFilterLevel: {
672+
readonly BLOCK_LOW_AND_ABOVE: "block_low_and_above";
673+
readonly BLOCK_MEDIUM_AND_ABOVE: "block_medium_and_above";
674+
readonly BLOCK_ONLY_HIGH: "block_only_high";
675+
readonly BLOCK_NONE: "block_none";
676+
};
677+
678+
// @beta
679+
export type ImagenSafetyFilterLevel = (typeof ImagenSafetyFilterLevel)[keyof typeof ImagenSafetyFilterLevel];
648680

649681
// @beta
650682
export interface ImagenSafetySettings {
@@ -671,14 +703,17 @@ export class IntegerSchema extends Schema {
671703
}
672704

673705
// @public
674-
export enum Modality {
675-
AUDIO = "AUDIO",
676-
DOCUMENT = "DOCUMENT",
677-
IMAGE = "IMAGE",
678-
MODALITY_UNSPECIFIED = "MODALITY_UNSPECIFIED",
679-
TEXT = "TEXT",
680-
VIDEO = "VIDEO"
681-
}
706+
export const Modality: {
707+
readonly MODALITY_UNSPECIFIED: "MODALITY_UNSPECIFIED";
708+
readonly TEXT: "TEXT";
709+
readonly IMAGE: "IMAGE";
710+
readonly VIDEO: "VIDEO";
711+
readonly AUDIO: "AUDIO";
712+
readonly DOCUMENT: "DOCUMENT";
713+
};
714+
715+
// @public
716+
export type Modality = (typeof Modality)[keyof typeof Modality];
682717

683718
// @public
684719
export interface ModalityTokenCount {
@@ -722,7 +757,7 @@ export class ObjectSchema extends Schema {
722757
export interface ObjectSchemaRequest extends SchemaRequest {
723758
optionalProperties?: never;
724759
// (undocumented)
725-
type: SchemaType.OBJECT;
760+
type: 'object';
726761
}
727762

728763
// @public
@@ -864,14 +899,17 @@ export interface SchemaShared<T> {
864899
}
865900

866901
// @public
867-
export enum SchemaType {
868-
ARRAY = "array",
869-
BOOLEAN = "boolean",
870-
INTEGER = "integer",
871-
NUMBER = "number",
872-
OBJECT = "object",
873-
STRING = "string"
874-
}
902+
export const SchemaType: {
903+
readonly STRING: "string";
904+
readonly NUMBER: "number";
905+
readonly INTEGER: "integer";
906+
readonly BOOLEAN: "boolean";
907+
readonly ARRAY: "array";
908+
readonly OBJECT: "object";
909+
};
910+
911+
// @public
912+
export type SchemaType = (typeof SchemaType)[keyof typeof SchemaType];
875913

876914
// @public
877915
export interface SearchEntrypoint {

0 commit comments

Comments
 (0)