@tstdl/base 0.92.18 → 0.92.20
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/ai/ai.service.d.ts +2 -2
- package/ai/ai.service.js +6 -1
- package/ai/index.d.ts +1 -0
- package/ai/index.js +1 -0
- package/ai/module.d.ts +3 -0
- package/ai/module.js +5 -0
- package/package.json +1 -1
- package/types.d.ts +1 -1
- package/utils/enum.d.ts +4 -1
- package/utils/enum.js +6 -3
package/ai/ai.service.d.ts
CHANGED
|
@@ -7,10 +7,10 @@ export type SpecializedGenerationResult<T> = {
|
|
|
7
7
|
result: T;
|
|
8
8
|
raw: GenerationResult;
|
|
9
9
|
};
|
|
10
|
-
export
|
|
10
|
+
export declare class AiServiceOptions {
|
|
11
11
|
apiKey: string;
|
|
12
12
|
defaultModel?: AiModel;
|
|
13
|
-
}
|
|
13
|
+
}
|
|
14
14
|
export type AiServiceArgument = AiServiceOptions;
|
|
15
15
|
export type ClassificationResult<T extends EnumerationType> = {
|
|
16
16
|
types: {
|
package/ai/ai.service.js
CHANGED
|
@@ -16,13 +16,18 @@ import { assertDefinedPass, assertNotNullPass, isDefined } from '../utils/type-g
|
|
|
16
16
|
import { AiFileService } from './ai-file.service.js';
|
|
17
17
|
import { AiSession } from './ai-session.js';
|
|
18
18
|
import { isSchemaFunctionDeclarationWithHandler } from './types.js';
|
|
19
|
+
export class AiServiceOptions {
|
|
20
|
+
apiKey;
|
|
21
|
+
defaultModel;
|
|
22
|
+
}
|
|
23
|
+
;
|
|
19
24
|
const functionCallingModeMap = {
|
|
20
25
|
auto: GoogleFunctionCallingMode.AUTO,
|
|
21
26
|
force: GoogleFunctionCallingMode.ANY,
|
|
22
27
|
none: GoogleFunctionCallingMode.NONE
|
|
23
28
|
};
|
|
24
29
|
let AiService = class AiService {
|
|
25
|
-
#options = injectArgument(this);
|
|
30
|
+
#options = injectArgument(this, { optional: true }) ?? inject(AiServiceOptions);
|
|
26
31
|
#fileService = inject(AiFileService, this.#options);
|
|
27
32
|
#genAI = new GoogleGenerativeAI(this.#options.apiKey);
|
|
28
33
|
defaultModel = this.#options.defaultModel ?? 'gemini-2.0-flash-exp';
|
package/ai/index.d.ts
CHANGED
package/ai/index.js
CHANGED
package/ai/module.d.ts
ADDED
package/ai/module.js
ADDED
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -46,7 +46,7 @@ export type UndefinableJsonArray = UndefinableJsonInnerNode[] | readonly Undefin
|
|
|
46
46
|
export type ArrayItem<T extends readonly any[]> = T extends readonly (infer U)[] ? U : never;
|
|
47
47
|
export type Enumeration = EnumerationArray | EnumerationObject;
|
|
48
48
|
export type EnumerationArray = readonly [string | number, ...(string | number)[]];
|
|
49
|
-
export type EnumerationObject
|
|
49
|
+
export type EnumerationObject<V extends string | number = string | number> = Record<string, V>;
|
|
50
50
|
export type EnumerationKey<T extends EnumerationObject = EnumerationObject> = Extract<keyof T, string>;
|
|
51
51
|
export type EnumerationMap<T extends EnumerationObject = EnumerationObject> = SimplifyObject<{
|
|
52
52
|
[P in EnumerationKey<T>]: (T[P] extends number ? (`${T[P]}` extends `${infer U extends number}` ? U : never) : `${T[P]}`) | T[P];
|
package/utils/enum.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { EnumerationEntries, EnumerationKey, EnumerationObject, EnumerationValue } from '../types.js';
|
|
2
|
-
export declare function enumValueName<T extends EnumerationObject>(enumeration: T, value: T[keyof T]):
|
|
2
|
+
export declare function enumValueName<T extends EnumerationObject>(enumeration: T, value: T[keyof T]): EnumerationKey<T>;
|
|
3
3
|
export declare function enumEntries<T extends EnumerationObject>(enumeration: T): EnumerationEntries<T>;
|
|
4
4
|
export declare function enumKeys<T extends EnumerationObject>(enumeration: T): EnumerationKey<T>[];
|
|
5
5
|
export declare function enumValues<T extends EnumerationObject>(enumeration: T): EnumerationValue<T>[];
|
|
6
6
|
export declare function randomEnumValue<T extends EnumerationObject>(enumeration: T): EnumerationValue<T>;
|
|
7
|
+
export declare function reversedEnum<T extends EnumerationObject>(enumeration: T): {
|
|
8
|
+
[P in keyof T as T[P]]: P;
|
|
9
|
+
};
|
package/utils/enum.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { randomItem } from './array/array.js';
|
|
2
2
|
import { memoizeSingle } from './function/memoize.js';
|
|
3
|
-
import { objectEntries } from './object/object.js';
|
|
4
|
-
import { isNumber } from './type-guards.js';
|
|
3
|
+
import { mapObject, objectEntries } from './object/object.js';
|
|
5
4
|
const memoizedEnumEntries = memoizeSingle((enumeration) => objectEntries(enumeration).filter((entry) => Number.isNaN(Number(entry[0]))), { weak: true });
|
|
6
5
|
const memoizedEnumKeys = memoizeSingle((enumeration) => {
|
|
7
6
|
const entries = enumEntries(enumeration);
|
|
@@ -11,8 +10,9 @@ const memoizedEnumValues = memoizeSingle((enumeration) => {
|
|
|
11
10
|
const entries = enumEntries(enumeration);
|
|
12
11
|
return entries.map((entry) => entry[1]);
|
|
13
12
|
}, { weak: true });
|
|
13
|
+
const memoizedReversedEnum = memoizeSingle((enumeration) => mapObject(enumeration, (value, key) => [value, key]), { weak: true });
|
|
14
14
|
export function enumValueName(enumeration, value) {
|
|
15
|
-
return
|
|
15
|
+
return reversedEnum(enumeration)[value];
|
|
16
16
|
}
|
|
17
17
|
export function enumEntries(enumeration) {
|
|
18
18
|
return memoizedEnumEntries(enumeration);
|
|
@@ -26,3 +26,6 @@ export function enumValues(enumeration) {
|
|
|
26
26
|
export function randomEnumValue(enumeration) {
|
|
27
27
|
return randomItem(enumValues(enumeration));
|
|
28
28
|
}
|
|
29
|
+
export function reversedEnum(enumeration) {
|
|
30
|
+
return memoizedReversedEnum(enumeration);
|
|
31
|
+
}
|