@webiny/ai-powerups 6.3.0-beta.0 → 6.3.0-beta.1
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/admin/features/settings/getSettings/GetSettingsGateway.d.ts +2 -1
- package/admin/features/settings/getSettings/GetSettingsGateway.js.map +1 -1
- package/admin/features/settings/getSettings/GetSettingsRepository.d.ts +3 -1
- package/admin/features/settings/getSettings/GetSettingsRepository.js +11 -3
- package/admin/features/settings/getSettings/GetSettingsRepository.js.map +1 -1
- package/admin/features/settings/getSettings/GetSettingsUseCase.d.ts +2 -1
- package/admin/features/settings/getSettings/GetSettingsUseCase.js.map +1 -1
- package/admin/features/settings/getSettings/abstractions.d.ts +4 -4
- package/admin/features/settings/getSettings/abstractions.js.map +1 -1
- package/admin/features/settings/shared/SettingsCache.d.ts +5 -4
- package/admin/features/settings/shared/SettingsCache.js.map +1 -1
- package/admin/features/settings/shared/abstractions.d.ts +15 -6
- package/admin/features/settings/shared/abstractions.js.map +1 -1
- package/admin/features/settings/shared/feature.d.ts +3 -1
- package/admin/features/settings/shared/feature.js +4 -2
- package/admin/features/settings/shared/feature.js.map +1 -1
- package/admin/features/settings/updateSettings/UpdateSettingsGateway.d.ts +2 -2
- package/admin/features/settings/updateSettings/UpdateSettingsGateway.js.map +1 -1
- package/admin/features/settings/updateSettings/UpdateSettingsRepository.d.ts +2 -2
- package/admin/features/settings/updateSettings/UpdateSettingsRepository.js.map +1 -1
- package/admin/features/settings/updateSettings/UpdateSettingsUseCase.d.ts +2 -2
- package/admin/features/settings/updateSettings/UpdateSettingsUseCase.js.map +1 -1
- package/admin/features/settings/updateSettings/abstractions.d.ts +4 -4
- package/admin/features/settings/updateSettings/abstractions.js.map +1 -1
- package/admin/presentation/AiPowerUpsSettings/AiPowerUpsSettingsPresenter.js.map +1 -1
- package/admin/presentation/AiPowerUpsSettings/index.d.ts +1 -0
- package/admin/presentation/AiPowerUpsSettings/index.js +1 -0
- package/admin/presentation/AiPowerUpsSettings/index.js.map +1 -1
- package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.d.ts +4 -0
- package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js +28 -0
- package/admin/presentation/AiPowerUpsSettings/useAiPowerUpsSettings.js.map +1 -0
- package/admin/presentation/WbContentGeneration/GenerateContentButton.d.ts +1 -1
- package/admin/presentation/WbContentGeneration/GenerateContentButton.js +7 -0
- package/admin/presentation/WbContentGeneration/GenerateContentButton.js.map +1 -1
- package/api/features/GetSettings/GetSettingsRepository.js +0 -6
- package/api/features/GetSettings/GetSettingsRepository.js.map +1 -1
- package/api/features/UpdateSettings/UpdateSettingsRepository.js +0 -6
- package/api/features/UpdateSettings/UpdateSettingsRepository.js.map +1 -1
- package/api/features/UpdateSettings/abstractions.d.ts +1 -4
- package/api/features/UpdateSettings/abstractions.js.map +1 -1
- package/api/features/UpdateSettings/validation.d.ts +2 -8
- package/api/features/UpdateSettings/validation.js +2 -7
- package/api/features/UpdateSettings/validation.js.map +1 -1
- package/api/types.d.ts +0 -7
- package/api/types.js.map +1 -1
- package/package.json +20 -20
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { GetSettingsGateway as GatewayAbstraction } from "./abstractions.js";
|
|
2
2
|
import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient";
|
|
3
|
+
import type { IAiPowerUpsSettings } from "../../../../admin/features/settings/shared/abstractions.js";
|
|
3
4
|
declare class GetSettingsGatewayImpl implements GatewayAbstraction.Interface {
|
|
4
5
|
private client;
|
|
5
6
|
constructor(client: MainGraphQLClient.Interface);
|
|
6
|
-
execute(): Promise<
|
|
7
|
+
execute(): Promise<IAiPowerUpsSettings>;
|
|
7
8
|
}
|
|
8
9
|
export declare const GetSettingsGateway: typeof GetSettingsGatewayImpl & {
|
|
9
10
|
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetSettingsGateway>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GetSettingsGateway","GatewayAbstraction","MainGraphQLClient","GET_SETTINGS","GetSettingsGatewayImpl","constructor","client","execute","response","query","aiPowerUps","getSettings","createImplementation","implementation","dependencies"],"sources":["GetSettingsGateway.ts"],"sourcesContent":["import { GetSettingsGateway as GatewayAbstraction } from \"./abstractions.js\";\nimport { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient\";\nimport type {
|
|
1
|
+
{"version":3,"names":["GetSettingsGateway","GatewayAbstraction","MainGraphQLClient","GET_SETTINGS","GetSettingsGatewayImpl","constructor","client","execute","response","query","aiPowerUps","getSettings","createImplementation","implementation","dependencies"],"sources":["GetSettingsGateway.ts"],"sourcesContent":["import { GetSettingsGateway as GatewayAbstraction } from \"./abstractions.js\";\nimport { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient\";\nimport type { IAiPowerUpsSettings } from \"~/admin/features/settings/shared/abstractions.js\";\n\nconst GET_SETTINGS = /* GraphQL */ `\n query GetAiPowerUpsSettings {\n aiPowerUps {\n getSettings\n }\n }\n`;\n\ntype GetSettingsResponse = {\n aiPowerUps: {\n getSettings: IAiPowerUpsSettings;\n };\n};\n\nclass GetSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private client: MainGraphQLClient.Interface) {}\n\n async execute(): Promise<IAiPowerUpsSettings> {\n const response = await this.client.execute<GetSettingsResponse>({\n query: GET_SETTINGS\n });\n\n return response.aiPowerUps.getSettings ?? {};\n }\n}\n\nexport const GetSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: GetSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"mappings":"AAAA,SAASA,kBAAkB,IAAIC,kBAAkB;AACjD,SAASC,iBAAiB,QAAQ,wCAAwC;AAG1E,MAAMC,YAAY,GAAG,aAAc;AACnC;AACA;AACA;AACA;AACA;AACA,CAAC;AAQD,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CAASC,MAAmC,EAAE;IAAA,KAArCA,MAAmC,GAAnCA,MAAmC;EAAG;EAE1D,MAAMC,OAAOA,CAAA,EAAiC;IAC1C,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACF,MAAM,CAACC,OAAO,CAAsB;MAC5DE,KAAK,EAAEN;IACX,CAAC,CAAC;IAEF,OAAOK,QAAQ,CAACE,UAAU,CAACC,WAAW,IAAI,CAAC,CAAC;EAChD;AACJ;AAEA,OAAO,MAAMX,kBAAkB,GAAGC,kBAAkB,CAACW,oBAAoB,CAAC;EACtEC,cAAc,EAAET,sBAAsB;EACtCU,YAAY,EAAE,CAACZ,iBAAiB;AACpC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { GetSettingsRepository as RepositoryAbstraction, GetSettingsGateway } from "./abstractions.js";
|
|
2
2
|
import { SettingsCache } from "../shared/abstractions.js";
|
|
3
|
+
import type { IAiPowerUpsSettings } from "../shared/abstractions.js";
|
|
3
4
|
declare class GetSettingsRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
4
5
|
private cache;
|
|
5
6
|
private gateway;
|
|
7
|
+
private pending;
|
|
6
8
|
constructor(cache: SettingsCache.Interface, gateway: GetSettingsGateway.Interface);
|
|
7
|
-
execute(): Promise<
|
|
9
|
+
execute(): Promise<IAiPowerUpsSettings>;
|
|
8
10
|
}
|
|
9
11
|
export declare const GetSettingsRepository: typeof GetSettingsRepositoryImpl & {
|
|
10
12
|
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetSettingsRepository>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { GetSettingsRepository as RepositoryAbstraction, GetSettingsGateway } from "./abstractions.js";
|
|
2
2
|
import { SettingsCache } from "../shared/abstractions.js";
|
|
3
3
|
class GetSettingsRepositoryImpl {
|
|
4
|
+
pending = null;
|
|
4
5
|
constructor(cache, gateway) {
|
|
5
6
|
this.cache = cache;
|
|
6
7
|
this.gateway = gateway;
|
|
@@ -10,9 +11,16 @@ class GetSettingsRepositoryImpl {
|
|
|
10
11
|
if (cached) {
|
|
11
12
|
return cached;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
if (this.pending) {
|
|
15
|
+
return this.pending;
|
|
16
|
+
}
|
|
17
|
+
this.pending = this.gateway.execute().then(data => {
|
|
18
|
+
this.cache.set(data);
|
|
19
|
+
return data;
|
|
20
|
+
}).finally(() => {
|
|
21
|
+
this.pending = null;
|
|
22
|
+
});
|
|
23
|
+
return this.pending;
|
|
16
24
|
}
|
|
17
25
|
}
|
|
18
26
|
export const GetSettingsRepository = RepositoryAbstraction.createImplementation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GetSettingsRepository","RepositoryAbstraction","GetSettingsGateway","SettingsCache","GetSettingsRepositoryImpl","constructor","cache","gateway","execute","cached","get","data","set","createImplementation","implementation","dependencies"],"sources":["GetSettingsRepository.ts"],"sourcesContent":["import {\n GetSettingsRepository as RepositoryAbstraction,\n GetSettingsGateway\n} from \"./abstractions.js\";\nimport { SettingsCache } from \"../shared/abstractions.js\";\n\nclass GetSettingsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private cache: SettingsCache.Interface,\n private gateway: GetSettingsGateway.Interface\n ) {}\n\n async execute(): Promise<
|
|
1
|
+
{"version":3,"names":["GetSettingsRepository","RepositoryAbstraction","GetSettingsGateway","SettingsCache","GetSettingsRepositoryImpl","pending","constructor","cache","gateway","execute","cached","get","then","data","set","finally","createImplementation","implementation","dependencies"],"sources":["GetSettingsRepository.ts"],"sourcesContent":["import {\n GetSettingsRepository as RepositoryAbstraction,\n GetSettingsGateway\n} from \"./abstractions.js\";\nimport { SettingsCache } from \"../shared/abstractions.js\";\nimport type { IAiPowerUpsSettings } from \"../shared/abstractions.js\";\n\nclass GetSettingsRepositoryImpl implements RepositoryAbstraction.Interface {\n private pending: Promise<IAiPowerUpsSettings> | null = null;\n\n constructor(\n private cache: SettingsCache.Interface,\n private gateway: GetSettingsGateway.Interface\n ) {}\n\n async execute(): Promise<IAiPowerUpsSettings> {\n const cached = this.cache.get();\n if (cached) {\n return cached;\n }\n\n if (this.pending) {\n return this.pending;\n }\n\n this.pending = this.gateway\n .execute()\n .then(data => {\n this.cache.set(data);\n return data;\n })\n .finally(() => {\n this.pending = null;\n });\n\n return this.pending;\n }\n}\n\nexport const GetSettingsRepository = RepositoryAbstraction.createImplementation({\n implementation: GetSettingsRepositoryImpl,\n dependencies: [SettingsCache, GetSettingsGateway]\n});\n"],"mappings":"AAAA,SACIA,qBAAqB,IAAIC,qBAAqB,EAC9CC,kBAAkB;AAEtB,SAASC,aAAa;AAGtB,MAAMC,yBAAyB,CAA4C;EAC/DC,OAAO,GAAwC,IAAI;EAE3DC,WAAWA,CACCC,KAA8B,EAC9BC,OAAqC,EAC/C;IAAA,KAFUD,KAA8B,GAA9BA,KAA8B;IAAA,KAC9BC,OAAqC,GAArCA,OAAqC;EAC9C;EAEH,MAAMC,OAAOA,CAAA,EAAiC;IAC1C,MAAMC,MAAM,GAAG,IAAI,CAACH,KAAK,CAACI,GAAG,CAAC,CAAC;IAC/B,IAAID,MAAM,EAAE;MACR,OAAOA,MAAM;IACjB;IAEA,IAAI,IAAI,CAACL,OAAO,EAAE;MACd,OAAO,IAAI,CAACA,OAAO;IACvB;IAEA,IAAI,CAACA,OAAO,GAAG,IAAI,CAACG,OAAO,CACtBC,OAAO,CAAC,CAAC,CACTG,IAAI,CAACC,IAAI,IAAI;MACV,IAAI,CAACN,KAAK,CAACO,GAAG,CAACD,IAAI,CAAC;MACpB,OAAOA,IAAI;IACf,CAAC,CAAC,CACDE,OAAO,CAAC,MAAM;MACX,IAAI,CAACV,OAAO,GAAG,IAAI;IACvB,CAAC,CAAC;IAEN,OAAO,IAAI,CAACA,OAAO;EACvB;AACJ;AAEA,OAAO,MAAML,qBAAqB,GAAGC,qBAAqB,CAACe,oBAAoB,CAAC;EAC5EC,cAAc,EAAEb,yBAAyB;EACzCc,YAAY,EAAE,CAACf,aAAa,EAAED,kBAAkB;AACpD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { GetSettingsUseCase as UseCaseAbstraction, GetSettingsRepository } from "./abstractions.js";
|
|
2
|
+
import type { IAiPowerUpsSettings } from "../../../../admin/features/settings/shared/abstractions.js";
|
|
2
3
|
declare class GetSettingsUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
3
4
|
private repository;
|
|
4
5
|
constructor(repository: GetSettingsRepository.Interface);
|
|
5
|
-
execute(): Promise<
|
|
6
|
+
execute(): Promise<IAiPowerUpsSettings>;
|
|
6
7
|
}
|
|
7
8
|
export declare const GetSettingsUseCase: typeof GetSettingsUseCaseImpl & {
|
|
8
9
|
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetSettingsUseCase>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GetSettingsUseCase","UseCaseAbstraction","GetSettingsRepository","GetSettingsUseCaseImpl","constructor","repository","execute","createImplementation","implementation","dependencies"],"sources":["GetSettingsUseCase.ts"],"sourcesContent":["import { GetSettingsUseCase as UseCaseAbstraction, GetSettingsRepository } from \"./abstractions.js\";\n\nclass GetSettingsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetSettingsRepository.Interface) {}\n\n async execute(): Promise<
|
|
1
|
+
{"version":3,"names":["GetSettingsUseCase","UseCaseAbstraction","GetSettingsRepository","GetSettingsUseCaseImpl","constructor","repository","execute","createImplementation","implementation","dependencies"],"sources":["GetSettingsUseCase.ts"],"sourcesContent":["import { GetSettingsUseCase as UseCaseAbstraction, GetSettingsRepository } from \"./abstractions.js\";\nimport type { IAiPowerUpsSettings } from \"~/admin/features/settings/shared/abstractions.js\";\n\nclass GetSettingsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetSettingsRepository.Interface) {}\n\n async execute(): Promise<IAiPowerUpsSettings> {\n return this.repository.execute();\n }\n}\n\nexport const GetSettingsUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetSettingsUseCaseImpl,\n dependencies: [GetSettingsRepository]\n});\n"],"mappings":"AAAA,SAASA,kBAAkB,IAAIC,kBAAkB,EAAEC,qBAAqB;AAGxE,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CAASC,UAA2C,EAAE;IAAA,KAA7CA,UAA2C,GAA3CA,UAA2C;EAAG;EAElE,MAAMC,OAAOA,CAAA,EAAiC;IAC1C,OAAO,IAAI,CAACD,UAAU,CAACC,OAAO,CAAC,CAAC;EACpC;AACJ;AAEA,OAAO,MAAMN,kBAAkB,GAAGC,kBAAkB,CAACM,oBAAoB,CAAC;EACtEC,cAAc,EAAEL,sBAAsB;EACtCM,YAAY,EAAE,CAACP,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IAiPowerUpsSettings } from "../../../../admin/features/settings/shared/abstractions.js";
|
|
2
2
|
export interface IGetSettingsUseCase {
|
|
3
|
-
execute(): Promise<
|
|
3
|
+
execute(): Promise<IAiPowerUpsSettings>;
|
|
4
4
|
}
|
|
5
5
|
export declare const GetSettingsUseCase: import("@webiny/di").Abstraction<IGetSettingsUseCase>;
|
|
6
6
|
export declare namespace GetSettingsUseCase {
|
|
7
7
|
type Interface = IGetSettingsUseCase;
|
|
8
8
|
}
|
|
9
9
|
export interface IGetSettingsRepository {
|
|
10
|
-
execute(): Promise<
|
|
10
|
+
execute(): Promise<IAiPowerUpsSettings>;
|
|
11
11
|
}
|
|
12
12
|
export declare const GetSettingsRepository: import("@webiny/di").Abstraction<IGetSettingsRepository>;
|
|
13
13
|
export declare namespace GetSettingsRepository {
|
|
14
14
|
type Interface = IGetSettingsRepository;
|
|
15
15
|
}
|
|
16
16
|
export interface IGetSettingsGateway {
|
|
17
|
-
execute(): Promise<
|
|
17
|
+
execute(): Promise<IAiPowerUpsSettings>;
|
|
18
18
|
}
|
|
19
19
|
export declare const GetSettingsGateway: import("@webiny/di").Abstraction<IGetSettingsGateway>;
|
|
20
20
|
export declare namespace GetSettingsGateway {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","GetSettingsUseCase","GetSettingsRepository","GetSettingsGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type {
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetSettingsUseCase","GetSettingsRepository","GetSettingsGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IAiPowerUpsSettings } from \"~/admin/features/settings/shared/abstractions.js\";\n\nexport interface IGetSettingsUseCase {\n execute(): Promise<IAiPowerUpsSettings>;\n}\n\nexport const GetSettingsUseCase = createAbstraction<IGetSettingsUseCase>(\n \"AiPowerUps/GetSettingsUseCase\"\n);\nexport namespace GetSettingsUseCase {\n export type Interface = IGetSettingsUseCase;\n}\n\nexport interface IGetSettingsRepository {\n execute(): Promise<IAiPowerUpsSettings>;\n}\n\nexport const GetSettingsRepository = createAbstraction<IGetSettingsRepository>(\n \"AiPowerUps/GetSettingsRepository\"\n);\nexport namespace GetSettingsRepository {\n export type Interface = IGetSettingsRepository;\n}\n\nexport interface IGetSettingsGateway {\n execute(): Promise<IAiPowerUpsSettings>;\n}\n\nexport const GetSettingsGateway = createAbstraction<IGetSettingsGateway>(\n \"AiPowerUps/GetSettingsGateway\"\n);\nexport namespace GetSettingsGateway {\n export type Interface = IGetSettingsGateway;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;AAOzD,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAC/C,+BACJ,CAAC;AASD,OAAO,MAAME,qBAAqB,GAAGF,iBAAiB,CAClD,kCACJ,CAAC;AASD,OAAO,MAAMG,kBAAkB,GAAGH,iBAAiB,CAC/C,+BACJ,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { IAiPowerUpsSettingsCache } from "./abstractions.js";
|
|
2
|
+
import type { IAiPowerUpsSettings } from "./abstractions.js";
|
|
3
|
+
declare class SettingsCacheImpl implements IAiPowerUpsSettingsCache {
|
|
3
4
|
private data;
|
|
4
5
|
constructor();
|
|
5
|
-
get():
|
|
6
|
-
set(data:
|
|
6
|
+
get(): IAiPowerUpsSettings | null;
|
|
7
|
+
set(data: IAiPowerUpsSettings): void;
|
|
7
8
|
}
|
|
8
9
|
export declare const settingsCache: SettingsCacheImpl;
|
|
9
10
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["makeAutoObservable","runInAction","SettingsCacheImpl","data","constructor","get","set","settingsCache"],"sources":["SettingsCache.ts"],"sourcesContent":["import { makeAutoObservable, runInAction } from \"mobx\";\nimport type {
|
|
1
|
+
{"version":3,"names":["makeAutoObservable","runInAction","SettingsCacheImpl","data","constructor","get","set","settingsCache"],"sources":["SettingsCache.ts"],"sourcesContent":["import { makeAutoObservable, runInAction } from \"mobx\";\nimport type { IAiPowerUpsSettingsCache } from \"./abstractions.js\";\nimport type { IAiPowerUpsSettings } from \"./abstractions.js\";\n\nclass SettingsCacheImpl implements IAiPowerUpsSettingsCache {\n private data: IAiPowerUpsSettings | null = null;\n\n constructor() {\n makeAutoObservable(this);\n }\n\n get(): IAiPowerUpsSettings | null {\n return this.data;\n }\n\n set(data: IAiPowerUpsSettings): void {\n runInAction(() => {\n this.data = data;\n });\n }\n}\n\nexport const settingsCache = new SettingsCacheImpl();\n"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,WAAW,QAAQ,MAAM;AAItD,MAAMC,iBAAiB,CAAqC;EAChDC,IAAI,GAA+B,IAAI;EAE/CC,WAAWA,CAAA,EAAG;IACVJ,kBAAkB,CAAC,IAAI,CAAC;EAC5B;EAEAK,GAAGA,CAAA,EAA+B;IAC9B,OAAO,IAAI,CAACF,IAAI;EACpB;EAEAG,GAAGA,CAACH,IAAyB,EAAQ;IACjCF,WAAW,CAAC,MAAM;MACd,IAAI,CAACE,IAAI,GAAGA,IAAI;IACpB,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMI,aAAa,GAAG,IAAIL,iBAAiB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
export interface
|
|
2
|
-
get():
|
|
3
|
-
set(data:
|
|
1
|
+
export interface IAiPowerUpsSettingsCache {
|
|
2
|
+
get(): IAiPowerUpsSettings | null;
|
|
3
|
+
set(data: IAiPowerUpsSettings): void;
|
|
4
4
|
}
|
|
5
|
-
export declare const SettingsCache: import("@webiny/di").Abstraction<
|
|
5
|
+
export declare const SettingsCache: import("@webiny/di").Abstraction<IAiPowerUpsSettingsCache>;
|
|
6
6
|
export declare namespace SettingsCache {
|
|
7
|
-
type Interface =
|
|
7
|
+
type Interface = IAiPowerUpsSettingsCache;
|
|
8
|
+
}
|
|
9
|
+
export interface IAiPowerUpsSettings {
|
|
10
|
+
providers: {
|
|
11
|
+
presets: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
model: string;
|
|
15
|
+
apiKey: string;
|
|
16
|
+
}[];
|
|
17
|
+
};
|
|
8
18
|
}
|
|
9
|
-
export type ISettings = Record<string, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","SettingsCache"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\n\nexport interface
|
|
1
|
+
{"version":3,"names":["createAbstraction","SettingsCache"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\n\nexport interface IAiPowerUpsSettingsCache {\n get(): IAiPowerUpsSettings | null;\n set(data: IAiPowerUpsSettings): void;\n}\n\nexport const SettingsCache = createAbstraction<IAiPowerUpsSettingsCache>(\n \"AiPowerUps/SettingsCache\"\n);\nexport namespace SettingsCache {\n export type Interface = IAiPowerUpsSettingsCache;\n}\n\n// export interface ISettings {\n// providers: {\n// presets: {\n// name: string;\n// description: string;\n// model: string;\n// apiKey: string;\n// }[];\n// };\n// personas: {\n// presets: {\n// name: string;\n// description: string;\n// };\n// };\n// };\n\nexport interface IAiPowerUpsSettings {\n providers: {\n presets: {\n name: string;\n description: string;\n model: string;\n apiKey: string;\n }[];\n };\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;AAOzD,OAAO,MAAMC,aAAa,GAAGD,iBAAiB,CAC1C,0BACJ,CAAC;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
export declare const SharedSettingsFeature: import("@webiny/feature/admin").FeatureDefinition<{
|
|
1
|
+
export declare const SharedSettingsFeature: import("@webiny/feature/admin").FeatureDefinition<{
|
|
2
|
+
settingsCache: import("./abstractions.js").IAiPowerUpsSettingsCache;
|
|
3
|
+
}, []>;
|
|
@@ -6,8 +6,10 @@ export const SharedSettingsFeature = createFeature({
|
|
|
6
6
|
register(container) {
|
|
7
7
|
container.registerInstance(SettingsCache, settingsCache);
|
|
8
8
|
},
|
|
9
|
-
resolve() {
|
|
10
|
-
return {
|
|
9
|
+
resolve(container) {
|
|
10
|
+
return {
|
|
11
|
+
settingsCache: container.resolve(SettingsCache)
|
|
12
|
+
};
|
|
11
13
|
}
|
|
12
14
|
});
|
|
13
15
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createFeature","SettingsCache","settingsCache","SharedSettingsFeature","name","register","container","registerInstance","resolve"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { SettingsCache } from \"./abstractions.js\";\nimport { settingsCache } from \"./SettingsCache.js\";\n\nexport const SharedSettingsFeature = createFeature({\n name: \"AiPowerUps/SharedSettings\",\n register(container) {\n container.registerInstance(SettingsCache, settingsCache);\n },\n resolve() {\n return {};\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,aAAa;AACtB,SAASC,aAAa;AAEtB,OAAO,MAAMC,qBAAqB,GAAGH,aAAa,CAAC;EAC/CI,IAAI,EAAE,2BAA2B;EACjCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACC,gBAAgB,CAACN,aAAa,EAAEC,aAAa,CAAC;EAC5D,CAAC;EACDM,OAAOA,
|
|
1
|
+
{"version":3,"names":["createFeature","SettingsCache","settingsCache","SharedSettingsFeature","name","register","container","registerInstance","resolve"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { SettingsCache } from \"./abstractions.js\";\nimport { settingsCache } from \"./SettingsCache.js\";\n\nexport const SharedSettingsFeature = createFeature({\n name: \"AiPowerUps/SharedSettings\",\n register(container) {\n container.registerInstance(SettingsCache, settingsCache);\n },\n resolve(container) {\n return {\n settingsCache: container.resolve(SettingsCache)\n };\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,aAAa;AACtB,SAASC,aAAa;AAEtB,OAAO,MAAMC,qBAAqB,GAAGH,aAAa,CAAC;EAC/CI,IAAI,EAAE,2BAA2B;EACjCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACC,gBAAgB,CAACN,aAAa,EAAEC,aAAa,CAAC;EAC5D,CAAC;EACDM,OAAOA,CAACF,SAAS,EAAE;IACf,OAAO;MACHJ,aAAa,EAAEI,SAAS,CAACE,OAAO,CAACP,aAAa;IAClD,CAAC;EACL;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { UpdateSettingsGateway as GatewayAbstraction } from "./abstractions.js";
|
|
2
2
|
import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient";
|
|
3
|
-
import type {
|
|
3
|
+
import type { IAiPowerUpsSettings } from "../../../../admin/features/settings/shared/abstractions.js";
|
|
4
4
|
declare class UpdateSettingsGatewayImpl implements GatewayAbstraction.Interface {
|
|
5
5
|
private client;
|
|
6
6
|
constructor(client: MainGraphQLClient.Interface);
|
|
7
|
-
execute(data:
|
|
7
|
+
execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;
|
|
8
8
|
}
|
|
9
9
|
export declare const UpdateSettingsGateway: typeof UpdateSettingsGatewayImpl & {
|
|
10
10
|
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateSettingsGateway>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UpdateSettingsGateway","GatewayAbstraction","MainGraphQLClient","UPDATE_SETTINGS","UpdateSettingsGatewayImpl","constructor","client","execute","data","response","query","variables","input","aiPowerUps","updateSettings","createImplementation","implementation","dependencies"],"sources":["UpdateSettingsGateway.ts"],"sourcesContent":["import { UpdateSettingsGateway as GatewayAbstraction } from \"./abstractions.js\";\nimport { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient\";\nimport type {
|
|
1
|
+
{"version":3,"names":["UpdateSettingsGateway","GatewayAbstraction","MainGraphQLClient","UPDATE_SETTINGS","UpdateSettingsGatewayImpl","constructor","client","execute","data","response","query","variables","input","aiPowerUps","updateSettings","createImplementation","implementation","dependencies"],"sources":["UpdateSettingsGateway.ts"],"sourcesContent":["import { UpdateSettingsGateway as GatewayAbstraction } from \"./abstractions.js\";\nimport { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient\";\nimport type { IAiPowerUpsSettings } from \"~/admin/features/settings/shared/abstractions.js\";\n\nconst UPDATE_SETTINGS = /* GraphQL */ `\n mutation UpdateAiPowerUpsSettings($input: JSON!) {\n aiPowerUps {\n updateSettings(input: $input)\n }\n }\n`;\n\ntype UpdateSettingsResponse = {\n aiPowerUps: {\n updateSettings: IAiPowerUpsSettings;\n };\n};\n\nclass UpdateSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private client: MainGraphQLClient.Interface) {}\n\n async execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings> {\n const response = await this.client.execute<UpdateSettingsResponse>({\n query: UPDATE_SETTINGS,\n variables: { input: data }\n });\n\n return response.aiPowerUps.updateSettings ?? {};\n }\n}\n\nexport const UpdateSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: UpdateSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"mappings":"AAAA,SAASA,qBAAqB,IAAIC,kBAAkB;AACpD,SAASC,iBAAiB,QAAQ,wCAAwC;AAG1E,MAAMC,eAAe,GAAG,aAAc;AACtC;AACA;AACA;AACA;AACA;AACA,CAAC;AAQD,MAAMC,yBAAyB,CAAyC;EACpEC,WAAWA,CAASC,MAAmC,EAAE;IAAA,KAArCA,MAAmC,GAAnCA,MAAmC;EAAG;EAE1D,MAAMC,OAAOA,CAACC,IAAyB,EAAgC;IACnE,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACH,MAAM,CAACC,OAAO,CAAyB;MAC/DG,KAAK,EAAEP,eAAe;MACtBQ,SAAS,EAAE;QAAEC,KAAK,EAAEJ;MAAK;IAC7B,CAAC,CAAC;IAEF,OAAOC,QAAQ,CAACI,UAAU,CAACC,cAAc,IAAI,CAAC,CAAC;EACnD;AACJ;AAEA,OAAO,MAAMd,qBAAqB,GAAGC,kBAAkB,CAACc,oBAAoB,CAAC;EACzEC,cAAc,EAAEZ,yBAAyB;EACzCa,YAAY,EAAE,CAACf,iBAAiB;AACpC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { UpdateSettingsRepository as RepositoryAbstraction, UpdateSettingsGateway } from "./abstractions.js";
|
|
2
2
|
import { SettingsCache } from "../shared/abstractions.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { IAiPowerUpsSettings } from "../shared/abstractions.js";
|
|
4
4
|
declare class UpdateSettingsRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
5
5
|
private cache;
|
|
6
6
|
private gateway;
|
|
7
7
|
constructor(cache: SettingsCache.Interface, gateway: UpdateSettingsGateway.Interface);
|
|
8
|
-
execute(data:
|
|
8
|
+
execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;
|
|
9
9
|
}
|
|
10
10
|
export declare const UpdateSettingsRepository: typeof UpdateSettingsRepositoryImpl & {
|
|
11
11
|
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateSettingsRepository>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UpdateSettingsRepository","RepositoryAbstraction","UpdateSettingsGateway","SettingsCache","UpdateSettingsRepositoryImpl","constructor","cache","gateway","execute","data","result","set","createImplementation","implementation","dependencies"],"sources":["UpdateSettingsRepository.ts"],"sourcesContent":["import {\n UpdateSettingsRepository as RepositoryAbstraction,\n UpdateSettingsGateway\n} from \"./abstractions.js\";\nimport { SettingsCache } from \"../shared/abstractions.js\";\nimport type {
|
|
1
|
+
{"version":3,"names":["UpdateSettingsRepository","RepositoryAbstraction","UpdateSettingsGateway","SettingsCache","UpdateSettingsRepositoryImpl","constructor","cache","gateway","execute","data","result","set","createImplementation","implementation","dependencies"],"sources":["UpdateSettingsRepository.ts"],"sourcesContent":["import {\n UpdateSettingsRepository as RepositoryAbstraction,\n UpdateSettingsGateway\n} from \"./abstractions.js\";\nimport { SettingsCache } from \"../shared/abstractions.js\";\nimport type { IAiPowerUpsSettings } from \"../shared/abstractions.js\";\n\nclass UpdateSettingsRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private cache: SettingsCache.Interface,\n private gateway: UpdateSettingsGateway.Interface\n ) {}\n\n async execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings> {\n const result = await this.gateway.execute(data);\n this.cache.set(result);\n return result;\n }\n}\n\nexport const UpdateSettingsRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdateSettingsRepositoryImpl,\n dependencies: [SettingsCache, UpdateSettingsGateway]\n});\n"],"mappings":"AAAA,SACIA,wBAAwB,IAAIC,qBAAqB,EACjDC,qBAAqB;AAEzB,SAASC,aAAa;AAGtB,MAAMC,4BAA4B,CAA4C;EAC1EC,WAAWA,CACCC,KAA8B,EAC9BC,OAAwC,EAClD;IAAA,KAFUD,KAA8B,GAA9BA,KAA8B;IAAA,KAC9BC,OAAwC,GAAxCA,OAAwC;EACjD;EAEH,MAAMC,OAAOA,CAACC,IAAyB,EAAgC;IACnE,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,OAAO,CAACC,OAAO,CAACC,IAAI,CAAC;IAC/C,IAAI,CAACH,KAAK,CAACK,GAAG,CAACD,MAAM,CAAC;IACtB,OAAOA,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMV,wBAAwB,GAAGC,qBAAqB,CAACW,oBAAoB,CAAC;EAC/EC,cAAc,EAAET,4BAA4B;EAC5CU,YAAY,EAAE,CAACX,aAAa,EAAED,qBAAqB;AACvD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { UpdateSettingsUseCase as UseCaseAbstraction, UpdateSettingsRepository } from "./abstractions.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { IAiPowerUpsSettings } from "../../../../admin/features/settings/shared/abstractions.js";
|
|
3
3
|
declare class UpdateSettingsUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
4
4
|
private repository;
|
|
5
5
|
constructor(repository: UpdateSettingsRepository.Interface);
|
|
6
|
-
execute(data:
|
|
6
|
+
execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;
|
|
7
7
|
}
|
|
8
8
|
export declare const UpdateSettingsUseCase: typeof UpdateSettingsUseCaseImpl & {
|
|
9
9
|
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateSettingsUseCase>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UpdateSettingsUseCase","UseCaseAbstraction","UpdateSettingsRepository","UpdateSettingsUseCaseImpl","constructor","repository","execute","data","createImplementation","implementation","dependencies"],"sources":["UpdateSettingsUseCase.ts"],"sourcesContent":["import {\n UpdateSettingsUseCase as UseCaseAbstraction,\n UpdateSettingsRepository\n} from \"./abstractions.js\";\nimport type {
|
|
1
|
+
{"version":3,"names":["UpdateSettingsUseCase","UseCaseAbstraction","UpdateSettingsRepository","UpdateSettingsUseCaseImpl","constructor","repository","execute","data","createImplementation","implementation","dependencies"],"sources":["UpdateSettingsUseCase.ts"],"sourcesContent":["import {\n UpdateSettingsUseCase as UseCaseAbstraction,\n UpdateSettingsRepository\n} from \"./abstractions.js\";\nimport type { IAiPowerUpsSettings } from \"~/admin/features/settings/shared/abstractions.js\";\n\nclass UpdateSettingsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: UpdateSettingsRepository.Interface) {}\n\n async execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings> {\n return this.repository.execute(data);\n }\n}\n\nexport const UpdateSettingsUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateSettingsUseCaseImpl,\n dependencies: [UpdateSettingsRepository]\n});\n"],"mappings":"AAAA,SACIA,qBAAqB,IAAIC,kBAAkB,EAC3CC,wBAAwB;AAI5B,MAAMC,yBAAyB,CAAyC;EACpEC,WAAWA,CAASC,UAA8C,EAAE;IAAA,KAAhDA,UAA8C,GAA9CA,UAA8C;EAAG;EAErE,MAAMC,OAAOA,CAACC,IAAyB,EAAgC;IACnE,OAAO,IAAI,CAACF,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC;EACxC;AACJ;AAEA,OAAO,MAAMP,qBAAqB,GAAGC,kBAAkB,CAACO,oBAAoB,CAAC;EACzEC,cAAc,EAAEN,yBAAyB;EACzCO,YAAY,EAAE,CAACR,wBAAwB;AAC3C,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IAiPowerUpsSettings } from "../../../../admin/features/settings/shared/abstractions.js";
|
|
2
2
|
export interface IUpdateSettingsUseCase {
|
|
3
|
-
execute(data:
|
|
3
|
+
execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;
|
|
4
4
|
}
|
|
5
5
|
export declare const UpdateSettingsUseCase: import("@webiny/di").Abstraction<IUpdateSettingsUseCase>;
|
|
6
6
|
export declare namespace UpdateSettingsUseCase {
|
|
7
7
|
type Interface = IUpdateSettingsUseCase;
|
|
8
8
|
}
|
|
9
9
|
export interface IUpdateSettingsRepository {
|
|
10
|
-
execute(data:
|
|
10
|
+
execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;
|
|
11
11
|
}
|
|
12
12
|
export declare const UpdateSettingsRepository: import("@webiny/di").Abstraction<IUpdateSettingsRepository>;
|
|
13
13
|
export declare namespace UpdateSettingsRepository {
|
|
14
14
|
type Interface = IUpdateSettingsRepository;
|
|
15
15
|
}
|
|
16
16
|
export interface IUpdateSettingsGateway {
|
|
17
|
-
execute(data:
|
|
17
|
+
execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;
|
|
18
18
|
}
|
|
19
19
|
export declare const UpdateSettingsGateway: import("@webiny/di").Abstraction<IUpdateSettingsGateway>;
|
|
20
20
|
export declare namespace UpdateSettingsGateway {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","UpdateSettingsUseCase","UpdateSettingsRepository","UpdateSettingsGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type {
|
|
1
|
+
{"version":3,"names":["createAbstraction","UpdateSettingsUseCase","UpdateSettingsRepository","UpdateSettingsGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IAiPowerUpsSettings } from \"~/admin/features/settings/shared/abstractions.js\";\n\nexport interface IUpdateSettingsUseCase {\n execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;\n}\n\nexport const UpdateSettingsUseCase = createAbstraction<IUpdateSettingsUseCase>(\n \"AiPowerUps/UpdateSettingsUseCase\"\n);\nexport namespace UpdateSettingsUseCase {\n export type Interface = IUpdateSettingsUseCase;\n}\n\nexport interface IUpdateSettingsRepository {\n execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;\n}\n\nexport const UpdateSettingsRepository = createAbstraction<IUpdateSettingsRepository>(\n \"AiPowerUps/UpdateSettingsRepository\"\n);\nexport namespace UpdateSettingsRepository {\n export type Interface = IUpdateSettingsRepository;\n}\n\nexport interface IUpdateSettingsGateway {\n execute(data: IAiPowerUpsSettings): Promise<IAiPowerUpsSettings>;\n}\n\nexport const UpdateSettingsGateway = createAbstraction<IUpdateSettingsGateway>(\n \"AiPowerUps/UpdateSettingsGateway\"\n);\nexport namespace UpdateSettingsGateway {\n export type Interface = IUpdateSettingsGateway;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;AAOzD,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,kCACJ,CAAC;AASD,OAAO,MAAME,wBAAwB,GAAGF,iBAAiB,CACrD,qCACJ,CAAC;AASD,OAAO,MAAMG,qBAAqB,GAAGH,iBAAiB,CAClD,kCACJ,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["makeAutoObservable","computed","runInAction","FormModelFactory","GetSettingsUseCase","UpdateSettingsUseCase","AiPowerUpsSettingsPresenter","PresenterAbstraction","AiPowerUpsSettingsGroup","AiPowerUpsSettingsPresenterImpl","loading","saving","form","error","constructor","factory","groups","getSettings","updateSettings","vm","autoBind","init","data","execute","buildForm","setData","err","Error","message","save","submit","console","log","collectGroups","map","group","collected","fieldsFn","layoutFn","builder","fields","fn","layout","create","result","name","object","label","renderer","length","tabs","id","description","icon","row","createImplementation","implementation","dependencies","multiple"],"sources":["AiPowerUpsSettingsPresenter.ts"],"sourcesContent":["import { makeAutoObservable, computed, runInAction } from \"mobx\";\nimport { FormModelFactory, FormModel } from \"@webiny/app-admin\";\nimport type { LayoutNode } from \"@webiny/app-admin/features/formModel/abstractions.js\";\nimport { GetSettingsUseCase } from \"../../features/settings/getSettings/abstractions.js\";\nimport { UpdateSettingsUseCase } from \"../../features/settings/updateSettings/abstractions.js\";\nimport { AiPowerUpsSettingsPresenter as PresenterAbstraction } from \"./abstractions.js\";\nimport { AiPowerUpsSettingsGroup } from \"./settingsGroup.js\";\nimport type { ISettings } from \"~/admin/features/settings/shared/abstractions.js\";\n\ntype FieldsFactory = (\n fields: FormModelFactory.FieldBuilderRegistry\n) => Record<string, FormModelFactory.FieldBuilder>;\n\ntype LayoutFactory = (layout: FormModelFactory.LayoutBuilder) => LayoutNode[];\n\ninterface CollectedGroup {\n group: AiPowerUpsSettingsGroup.Interface;\n fieldsFn: FieldsFactory | null;\n layoutFn: LayoutFactory | null;\n}\n\nclass AiPowerUpsSettingsPresenterImpl implements PresenterAbstraction.Interface {\n private loading = false;\n private saving = false;\n private form: FormModel.Interface<ISettings> | null = null;\n private error: string | null = null;\n\n constructor(\n private factory: FormModelFactory.Interface,\n private groups: AiPowerUpsSettingsGroup.Interface[],\n private getSettings: GetSettingsUseCase.Interface,\n private updateSettings: UpdateSettingsUseCase.Interface\n ) {\n makeAutoObservable(this, { vm: computed }, { autoBind: true });\n }\n\n get vm(): PresenterAbstraction.ViewModel {\n return {\n loading: this.loading,\n saving: this.saving,\n form: this.form ? this.form.vm : null,\n error: this.error\n };\n }\n\n async init(): Promise<void> {\n this.loading = true;\n this.error = null;\n\n try {\n const data = await this.getSettings.execute();\n runInAction(() => {\n this.form = this.buildForm();\n this.form.setData(data);\n });\n } catch (err) {\n runInAction(() => {\n this.error = err instanceof Error ? err.message : \"Failed to load settings.\";\n });\n } finally {\n runInAction(() => {\n this.loading = false;\n });\n }\n }\n\n async save(): Promise<boolean> {\n if (!this.form) {\n return false;\n }\n\n const data = await this.form.submit<ISettings>();\n if (!data) {\n return false;\n }\n\n runInAction(() => {\n this.saving = true;\n this.error = null;\n });\n\n try {\n await this.updateSettings.execute(data);\n return true;\n } catch (err) {\n console.log(err);\n runInAction(() => {\n this.error = err instanceof Error ? err.message : \"Failed to save settings.\";\n });\n return false;\n } finally {\n runInAction(() => {\n this.saving = false;\n });\n }\n }\n\n private collectGroups(): CollectedGroup[] {\n return this.groups.map(group => {\n const collected: CollectedGroup = {\n group,\n fieldsFn: null,\n layoutFn: null\n };\n\n const builder: AiPowerUpsSettingsGroup.FormBuilder = {\n fields(fn: FieldsFactory) {\n collected.fieldsFn = fn;\n },\n layout(fn: LayoutFactory) {\n collected.layoutFn = fn;\n }\n };\n\n group.buildForm(builder);\n\n return collected;\n });\n }\n\n private buildForm() {\n const collected = this.collectGroups();\n\n return this.factory.create<ISettings>({\n fields: fields => {\n const result: Record<string, FormModelFactory.FieldBuilder> = {};\n for (const { group, fieldsFn } of collected) {\n if (!fieldsFn) {\n continue;\n }\n result[group.name] = fields\n .object()\n .label(group.label)\n .renderer(\"passthrough\")\n .fields(fieldsFn);\n }\n return result;\n },\n layout: layout => {\n if (collected.length === 0) {\n return [];\n }\n\n return [\n layout.tabs({\n id: \"settings-tabs\",\n renderer: \"tabs-vertical\",\n tabs: collected.map(({ group }) => ({\n id: group.name,\n label: group.label,\n description: group.description,\n icon: group.icon,\n layout: [layout.row(group.name)]\n }))\n })\n ];\n }\n });\n }\n}\n\nexport const AiPowerUpsSettingsPresenter = PresenterAbstraction.createImplementation({\n implementation: AiPowerUpsSettingsPresenterImpl,\n dependencies: [\n FormModelFactory,\n [AiPowerUpsSettingsGroup, { multiple: true }],\n GetSettingsUseCase,\n UpdateSettingsUseCase\n ]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["makeAutoObservable","computed","runInAction","FormModelFactory","GetSettingsUseCase","UpdateSettingsUseCase","AiPowerUpsSettingsPresenter","PresenterAbstraction","AiPowerUpsSettingsGroup","AiPowerUpsSettingsPresenterImpl","loading","saving","form","error","constructor","factory","groups","getSettings","updateSettings","vm","autoBind","init","data","execute","buildForm","setData","err","Error","message","save","submit","console","log","collectGroups","map","group","collected","fieldsFn","layoutFn","builder","fields","fn","layout","create","result","name","object","label","renderer","length","tabs","id","description","icon","row","createImplementation","implementation","dependencies","multiple"],"sources":["AiPowerUpsSettingsPresenter.ts"],"sourcesContent":["import { makeAutoObservable, computed, runInAction } from \"mobx\";\nimport { FormModelFactory, FormModel } from \"@webiny/app-admin\";\nimport type { LayoutNode } from \"@webiny/app-admin/features/formModel/abstractions.js\";\nimport { GetSettingsUseCase } from \"../../features/settings/getSettings/abstractions.js\";\nimport { UpdateSettingsUseCase } from \"../../features/settings/updateSettings/abstractions.js\";\nimport { AiPowerUpsSettingsPresenter as PresenterAbstraction } from \"./abstractions.js\";\nimport { AiPowerUpsSettingsGroup } from \"./settingsGroup.js\";\nimport type { IAiPowerUpsSettings } from \"~/admin/features/settings/shared/abstractions.js\";\n\ntype FieldsFactory = (\n fields: FormModelFactory.FieldBuilderRegistry\n) => Record<string, FormModelFactory.FieldBuilder>;\n\ntype LayoutFactory = (layout: FormModelFactory.LayoutBuilder) => LayoutNode[];\n\ninterface CollectedGroup {\n group: AiPowerUpsSettingsGroup.Interface;\n fieldsFn: FieldsFactory | null;\n layoutFn: LayoutFactory | null;\n}\n\nclass AiPowerUpsSettingsPresenterImpl implements PresenterAbstraction.Interface {\n private loading = false;\n private saving = false;\n private form: FormModel.Interface<IAiPowerUpsSettings> | null = null;\n private error: string | null = null;\n\n constructor(\n private factory: FormModelFactory.Interface,\n private groups: AiPowerUpsSettingsGroup.Interface[],\n private getSettings: GetSettingsUseCase.Interface,\n private updateSettings: UpdateSettingsUseCase.Interface\n ) {\n makeAutoObservable(this, { vm: computed }, { autoBind: true });\n }\n\n get vm(): PresenterAbstraction.ViewModel {\n return {\n loading: this.loading,\n saving: this.saving,\n form: this.form ? this.form.vm : null,\n error: this.error\n };\n }\n\n async init(): Promise<void> {\n this.loading = true;\n this.error = null;\n\n try {\n const data = await this.getSettings.execute();\n runInAction(() => {\n this.form = this.buildForm();\n this.form.setData(data);\n });\n } catch (err) {\n runInAction(() => {\n this.error = err instanceof Error ? err.message : \"Failed to load settings.\";\n });\n } finally {\n runInAction(() => {\n this.loading = false;\n });\n }\n }\n\n async save(): Promise<boolean> {\n if (!this.form) {\n return false;\n }\n\n const data = await this.form.submit<IAiPowerUpsSettings>();\n if (!data) {\n return false;\n }\n\n runInAction(() => {\n this.saving = true;\n this.error = null;\n });\n\n try {\n await this.updateSettings.execute(data);\n return true;\n } catch (err) {\n console.log(err);\n runInAction(() => {\n this.error = err instanceof Error ? err.message : \"Failed to save settings.\";\n });\n return false;\n } finally {\n runInAction(() => {\n this.saving = false;\n });\n }\n }\n\n private collectGroups(): CollectedGroup[] {\n return this.groups.map(group => {\n const collected: CollectedGroup = {\n group,\n fieldsFn: null,\n layoutFn: null\n };\n\n const builder: AiPowerUpsSettingsGroup.FormBuilder = {\n fields(fn: FieldsFactory) {\n collected.fieldsFn = fn;\n },\n layout(fn: LayoutFactory) {\n collected.layoutFn = fn;\n }\n };\n\n group.buildForm(builder);\n\n return collected;\n });\n }\n\n private buildForm() {\n const collected = this.collectGroups();\n\n return this.factory.create<IAiPowerUpsSettings>({\n fields: fields => {\n const result: Record<string, FormModelFactory.FieldBuilder> = {};\n for (const { group, fieldsFn } of collected) {\n if (!fieldsFn) {\n continue;\n }\n result[group.name] = fields\n .object()\n .label(group.label)\n .renderer(\"passthrough\")\n .fields(fieldsFn);\n }\n return result;\n },\n layout: layout => {\n if (collected.length === 0) {\n return [];\n }\n\n return [\n layout.tabs({\n id: \"settings-tabs\",\n renderer: \"tabs-vertical\",\n tabs: collected.map(({ group }) => ({\n id: group.name,\n label: group.label,\n description: group.description,\n icon: group.icon,\n layout: [layout.row(group.name)]\n }))\n })\n ];\n }\n });\n }\n}\n\nexport const AiPowerUpsSettingsPresenter = PresenterAbstraction.createImplementation({\n implementation: AiPowerUpsSettingsPresenterImpl,\n dependencies: [\n FormModelFactory,\n [AiPowerUpsSettingsGroup, { multiple: true }],\n GetSettingsUseCase,\n UpdateSettingsUseCase\n ]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { AiPowerUpsSettingsFeature } from "./feature.js";
|
|
2
2
|
export { AiPowerUpsSettingsConfig } from "./AiPowerUpsSettingsConfig.js";
|
|
3
3
|
export { useAiPowerUpsSettingsDialog } from "./useAiPowerUpsSettingsDialog.js";
|
|
4
|
+
export { useAiPowerUpsSettings } from "./useAiPowerUpsSettings.js";
|
|
4
5
|
export { AI_POWER_UPS_SETTINGS_DIALOG } from "./AiPowerUpsSettingsDialog.js";
|
|
5
6
|
export { AiPowerUpsSettingsGroup } from "./settingsGroup.js";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { AiPowerUpsSettingsFeature } from "./feature.js";
|
|
2
2
|
export { AiPowerUpsSettingsConfig } from "./AiPowerUpsSettingsConfig.js";
|
|
3
3
|
export { useAiPowerUpsSettingsDialog } from "./useAiPowerUpsSettingsDialog.js";
|
|
4
|
+
export { useAiPowerUpsSettings } from "./useAiPowerUpsSettings.js";
|
|
4
5
|
export { AI_POWER_UPS_SETTINGS_DIALOG } from "./AiPowerUpsSettingsDialog.js";
|
|
5
6
|
export { AiPowerUpsSettingsGroup } from "./settingsGroup.js";
|
|
6
7
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AiPowerUpsSettingsFeature","AiPowerUpsSettingsConfig","useAiPowerUpsSettingsDialog","AI_POWER_UPS_SETTINGS_DIALOG","AiPowerUpsSettingsGroup"],"sources":["index.ts"],"sourcesContent":["export { AiPowerUpsSettingsFeature } from \"./feature.js\";\nexport { AiPowerUpsSettingsConfig } from \"./AiPowerUpsSettingsConfig.js\";\nexport { useAiPowerUpsSettingsDialog } from \"./useAiPowerUpsSettingsDialog.js\";\nexport { AI_POWER_UPS_SETTINGS_DIALOG } from \"./AiPowerUpsSettingsDialog.js\";\nexport { AiPowerUpsSettingsGroup } from \"./settingsGroup.js\";\n"],"mappings":"AAAA,SAASA,yBAAyB;AAClC,SAASC,wBAAwB;AACjC,SAASC,2BAA2B;AACpC,SAASC,4BAA4B;AACrC,SAASC,uBAAuB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AiPowerUpsSettingsFeature","AiPowerUpsSettingsConfig","useAiPowerUpsSettingsDialog","useAiPowerUpsSettings","AI_POWER_UPS_SETTINGS_DIALOG","AiPowerUpsSettingsGroup"],"sources":["index.ts"],"sourcesContent":["export { AiPowerUpsSettingsFeature } from \"./feature.js\";\nexport { AiPowerUpsSettingsConfig } from \"./AiPowerUpsSettingsConfig.js\";\nexport { useAiPowerUpsSettingsDialog } from \"./useAiPowerUpsSettingsDialog.js\";\nexport { useAiPowerUpsSettings } from \"./useAiPowerUpsSettings.js\";\nexport { AI_POWER_UPS_SETTINGS_DIALOG } from \"./AiPowerUpsSettingsDialog.js\";\nexport { AiPowerUpsSettingsGroup } from \"./settingsGroup.js\";\n"],"mappings":"AAAA,SAASA,yBAAyB;AAClC,SAASC,wBAAwB;AACjC,SAASC,2BAA2B;AACpC,SAASC,qBAAqB;AAC9B,SAASC,4BAA4B;AACrC,SAASC,uBAAuB","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
import { autorun } from "mobx";
|
|
3
|
+
import { useFeature } from "@webiny/app";
|
|
4
|
+
import { GetSettingsFeature } from "../../features/settings/getSettings/feature.js";
|
|
5
|
+
import { SharedSettingsFeature } from "../../features/settings/shared/feature.js";
|
|
6
|
+
export function useAiPowerUpsSettings() {
|
|
7
|
+
const {
|
|
8
|
+
useCase
|
|
9
|
+
} = useFeature(GetSettingsFeature);
|
|
10
|
+
const {
|
|
11
|
+
settingsCache
|
|
12
|
+
} = useFeature(SharedSettingsFeature);
|
|
13
|
+
const [settings, setSettings] = useState(() => settingsCache.get());
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
void useCase.execute();
|
|
16
|
+
}, [useCase]);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
return autorun(() => {
|
|
19
|
+
const data = settingsCache.get();
|
|
20
|
+
setSettings(data);
|
|
21
|
+
});
|
|
22
|
+
}, [settingsCache]);
|
|
23
|
+
return {
|
|
24
|
+
settings
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=useAiPowerUpsSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","autorun","useFeature","GetSettingsFeature","SharedSettingsFeature","useAiPowerUpsSettings","useCase","settingsCache","settings","setSettings","get","execute","data"],"sources":["useAiPowerUpsSettings.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport { useFeature } from \"@webiny/app\";\nimport { GetSettingsFeature } from \"~/admin/features/settings/getSettings/feature.js\";\nimport { SharedSettingsFeature } from \"~/admin/features/settings/shared/feature.js\";\nimport type { IAiPowerUpsSettings } from \"~/admin/features/settings/shared/abstractions.js\";\n\nexport function useAiPowerUpsSettings() {\n const { useCase } = useFeature(GetSettingsFeature);\n const { settingsCache } = useFeature(SharedSettingsFeature);\n\n const [settings, setSettings] = useState<IAiPowerUpsSettings | null>(() => settingsCache.get());\n\n useEffect(() => {\n void useCase.execute();\n }, [useCase]);\n\n useEffect(() => {\n return autorun(() => {\n const data = settingsCache.get();\n setSettings(data);\n });\n }, [settingsCache]);\n\n return { settings };\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,OAAO,QAAQ,MAAM;AAC9B,SAASC,UAAU,QAAQ,aAAa;AACxC,SAASC,kBAAkB;AAC3B,SAASC,qBAAqB;AAG9B,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACpC,MAAM;IAAEC;EAAQ,CAAC,GAAGJ,UAAU,CAACC,kBAAkB,CAAC;EAClD,MAAM;IAAEI;EAAc,CAAC,GAAGL,UAAU,CAACE,qBAAqB,CAAC;EAE3D,MAAM,CAACI,QAAQ,EAAEC,WAAW,CAAC,GAAGT,QAAQ,CAA6B,MAAMO,aAAa,CAACG,GAAG,CAAC,CAAC,CAAC;EAE/FX,SAAS,CAAC,MAAM;IACZ,KAAKO,OAAO,CAACK,OAAO,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACL,OAAO,CAAC,CAAC;EAEbP,SAAS,CAAC,MAAM;IACZ,OAAOE,OAAO,CAAC,MAAM;MACjB,MAAMW,IAAI,GAAGL,aAAa,CAACG,GAAG,CAAC,CAAC;MAChCD,WAAW,CAACG,IAAI,CAAC;IACrB,CAAC,CAAC;EACN,CAAC,EAAE,CAACL,aAAa,CAAC,CAAC;EAEnB,OAAO;IAAEC;EAAS,CAAC;AACvB","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const GenerateContentButton: () => React.JSX.Element;
|
|
2
|
+
export declare const GenerateContentButton: () => React.JSX.Element | null;
|
|
@@ -3,10 +3,17 @@ import { IconButton } from "@webiny/admin-ui";
|
|
|
3
3
|
import { ReactComponent as ChatIcon } from "@webiny/icons/auto_fix_high.svg";
|
|
4
4
|
import { useOpenDialog } from "@webiny/app-admin";
|
|
5
5
|
import { GENERATE_CONTENT_DIALOG } from "./GenerateContentDialog.js";
|
|
6
|
+
import { useAiPowerUpsSettings } from "../AiPowerUpsSettings/index.js";
|
|
6
7
|
export const GenerateContentButton = () => {
|
|
7
8
|
const {
|
|
8
9
|
openDialog
|
|
9
10
|
} = useOpenDialog();
|
|
11
|
+
const {
|
|
12
|
+
settings
|
|
13
|
+
} = useAiPowerUpsSettings();
|
|
14
|
+
if (!settings || settings.providers.presets.length === 0) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
10
17
|
return /*#__PURE__*/React.createElement(IconButton, {
|
|
11
18
|
variant: "ghost",
|
|
12
19
|
icon: /*#__PURE__*/React.createElement(ChatIcon, null),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","IconButton","ReactComponent","ChatIcon","useOpenDialog","GENERATE_CONTENT_DIALOG","GenerateContentButton","openDialog","createElement","variant","icon","onClick"],"sources":["GenerateContentButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { IconButton } from \"@webiny/admin-ui\";\nimport { ReactComponent as ChatIcon } from \"@webiny/icons/auto_fix_high.svg\";\nimport { useOpenDialog } from \"@webiny/app-admin\";\nimport { GENERATE_CONTENT_DIALOG } from \"./GenerateContentDialog.js\";\n\nexport const GenerateContentButton = () => {\n const { openDialog } = useOpenDialog();\n\n return (\n <IconButton\n variant=\"ghost\"\n icon={<ChatIcon />}\n onClick={() => openDialog(GENERATE_CONTENT_DIALOG, {})}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,cAAc,IAAIC,QAAQ,QAAQ,iCAAiC;AAC5E,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,uBAAuB;
|
|
1
|
+
{"version":3,"names":["React","IconButton","ReactComponent","ChatIcon","useOpenDialog","GENERATE_CONTENT_DIALOG","useAiPowerUpsSettings","GenerateContentButton","openDialog","settings","providers","presets","length","createElement","variant","icon","onClick"],"sources":["GenerateContentButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { IconButton } from \"@webiny/admin-ui\";\nimport { ReactComponent as ChatIcon } from \"@webiny/icons/auto_fix_high.svg\";\nimport { useOpenDialog } from \"@webiny/app-admin\";\nimport { GENERATE_CONTENT_DIALOG } from \"./GenerateContentDialog.js\";\nimport { useAiPowerUpsSettings } from \"~/admin/presentation/AiPowerUpsSettings/index.js\";\n\nexport const GenerateContentButton = () => {\n const { openDialog } = useOpenDialog();\n const { settings } = useAiPowerUpsSettings();\n\n if (!settings || settings.providers.presets.length === 0) {\n return null;\n }\n\n return (\n <IconButton\n variant=\"ghost\"\n icon={<ChatIcon />}\n onClick={() => openDialog(GENERATE_CONTENT_DIALOG, {})}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,cAAc,IAAIC,QAAQ,QAAQ,iCAAiC;AAC5E,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,uBAAuB;AAChC,SAASC,qBAAqB;AAE9B,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACvC,MAAM;IAAEC;EAAW,CAAC,GAAGJ,aAAa,CAAC,CAAC;EACtC,MAAM;IAAEK;EAAS,CAAC,GAAGH,qBAAqB,CAAC,CAAC;EAE5C,IAAI,CAACG,QAAQ,IAAIA,QAAQ,CAACC,SAAS,CAACC,OAAO,CAACC,MAAM,KAAK,CAAC,EAAE;IACtD,OAAO,IAAI;EACf;EAEA,oBACIZ,KAAA,CAAAa,aAAA,CAACZ,UAAU;IACPa,OAAO,EAAC,OAAO;IACfC,IAAI,eAAEf,KAAA,CAAAa,aAAA,CAACV,QAAQ,MAAE,CAAE;IACnBa,OAAO,EAAEA,CAAA,KAAMR,UAAU,CAACH,uBAAuB,EAAE,CAAC,CAAC;EAAE,CAC1D,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -14,9 +14,6 @@ class GetSettingsRepositoryImpl {
|
|
|
14
14
|
return Result.ok({
|
|
15
15
|
providers: {
|
|
16
16
|
presets: []
|
|
17
|
-
},
|
|
18
|
-
personas: {
|
|
19
|
-
presets: []
|
|
20
17
|
}
|
|
21
18
|
});
|
|
22
19
|
}
|
|
@@ -30,9 +27,6 @@ class GetSettingsRepositoryImpl {
|
|
|
30
27
|
return Result.ok({
|
|
31
28
|
providers: {
|
|
32
29
|
presets: providerPresets
|
|
33
|
-
},
|
|
34
|
-
personas: {
|
|
35
|
-
presets: settings.personas?.presets ?? []
|
|
36
30
|
}
|
|
37
31
|
});
|
|
38
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","KeyValueStore","Encryption","GetSettingsRepository","AI_POWER_UPS_SETTINGS","GetSettingsRepositoryImpl","constructor","keyValueStore","encryption","get","result","isFail","value","ok","providers","presets","
|
|
1
|
+
{"version":3,"names":["Result","KeyValueStore","Encryption","GetSettingsRepository","AI_POWER_UPS_SETTINGS","GetSettingsRepositoryImpl","constructor","keyValueStore","encryption","get","result","isFail","value","ok","providers","presets","settings","providerPresets","Promise","all","map","provider","apiKey","decrypt","GetSettingsRepositoryImplementation","createImplementation","implementation","dependencies"],"sources":["GetSettingsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { KeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\nimport { Encryption } from \"@webiny/api-core/features/encryption/index.js\";\nimport { GetSettingsRepository } from \"./abstractions.js\";\nimport type { AiProvider, AiPowerUpsSettings } from \"~/api/types.js\";\nimport { AI_POWER_UPS_SETTINGS } from \"~/api/constants.js\";\n\nclass GetSettingsRepositoryImpl implements GetSettingsRepository.Interface {\n constructor(\n private keyValueStore: KeyValueStore.Interface,\n private encryption: Encryption.Interface\n ) {}\n\n async get(): Promise<Result<AiPowerUpsSettings>> {\n const result = await this.keyValueStore.get<AiPowerUpsSettings>(AI_POWER_UPS_SETTINGS);\n\n if (result.isFail() || !result.value) {\n return Result.ok({\n providers: { presets: [] }\n });\n }\n\n const settings = result.value;\n\n const providerPresets = await Promise.all(\n (settings.providers?.presets ?? []).map(async (provider: AiProvider) => {\n return {\n ...provider,\n apiKey: await this.encryption.decrypt(provider.apiKey)\n };\n })\n );\n\n return Result.ok({\n providers: { presets: providerPresets }\n });\n }\n}\n\nexport const GetSettingsRepositoryImplementation = GetSettingsRepository.createImplementation({\n implementation: GetSettingsRepositoryImpl,\n dependencies: [KeyValueStore, Encryption]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,aAAa,QAAQ,kDAAkD;AAChF,SAASC,UAAU,QAAQ,+CAA+C;AAC1E,SAASC,qBAAqB;AAE9B,SAASC,qBAAqB;AAE9B,MAAMC,yBAAyB,CAA4C;EACvEC,WAAWA,CACCC,aAAsC,EACtCC,UAAgC,EAC1C;IAAA,KAFUD,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,UAAgC,GAAhCA,UAAgC;EACzC;EAEH,MAAMC,GAAGA,CAAA,EAAwC;IAC7C,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,aAAa,CAACE,GAAG,CAAqBL,qBAAqB,CAAC;IAEtF,IAAIM,MAAM,CAACC,MAAM,CAAC,CAAC,IAAI,CAACD,MAAM,CAACE,KAAK,EAAE;MAClC,OAAOZ,MAAM,CAACa,EAAE,CAAC;QACbC,SAAS,EAAE;UAAEC,OAAO,EAAE;QAAG;MAC7B,CAAC,CAAC;IACN;IAEA,MAAMC,QAAQ,GAAGN,MAAM,CAACE,KAAK;IAE7B,MAAMK,eAAe,GAAG,MAAMC,OAAO,CAACC,GAAG,CACrC,CAACH,QAAQ,CAACF,SAAS,EAAEC,OAAO,IAAI,EAAE,EAAEK,GAAG,CAAC,MAAOC,QAAoB,IAAK;MACpE,OAAO;QACH,GAAGA,QAAQ;QACXC,MAAM,EAAE,MAAM,IAAI,CAACd,UAAU,CAACe,OAAO,CAACF,QAAQ,CAACC,MAAM;MACzD,CAAC;IACL,CAAC,CACL,CAAC;IAED,OAAOtB,MAAM,CAACa,EAAE,CAAC;MACbC,SAAS,EAAE;QAAEC,OAAO,EAAEE;MAAgB;IAC1C,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMO,mCAAmC,GAAGrB,qBAAqB,CAACsB,oBAAoB,CAAC;EAC1FC,cAAc,EAAErB,yBAAyB;EACzCsB,YAAY,EAAE,CAAC1B,aAAa,EAAEC,UAAU;AAC5C,CAAC,CAAC","ignoreList":[]}
|
|
@@ -16,9 +16,6 @@ class UpdateSettingsRepositoryImpl {
|
|
|
16
16
|
const result = await this.keyValueStore.set(AI_POWER_UPS_SETTINGS, {
|
|
17
17
|
providers: {
|
|
18
18
|
presets: providerPresets
|
|
19
|
-
},
|
|
20
|
-
personas: {
|
|
21
|
-
presets: input.personas.presets
|
|
22
19
|
}
|
|
23
20
|
});
|
|
24
21
|
if (result.isFail()) {
|
|
@@ -27,9 +24,6 @@ class UpdateSettingsRepositoryImpl {
|
|
|
27
24
|
return Result.ok({
|
|
28
25
|
providers: {
|
|
29
26
|
presets: input.providers.presets
|
|
30
|
-
},
|
|
31
|
-
personas: {
|
|
32
|
-
presets: input.personas.presets
|
|
33
27
|
}
|
|
34
28
|
});
|
|
35
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Result","KeyValueStore","Encryption","UpdateSettingsRepository","AI_POWER_UPS_SETTINGS","UpdateSettingsRepositoryImpl","constructor","keyValueStore","encryption","execute","input","providerPresets","Promise","all","providers","presets","map","provider","apiKey","encrypt","result","set","
|
|
1
|
+
{"version":3,"names":["Result","KeyValueStore","Encryption","UpdateSettingsRepository","AI_POWER_UPS_SETTINGS","UpdateSettingsRepositoryImpl","constructor","keyValueStore","encryption","execute","input","providerPresets","Promise","all","providers","presets","map","provider","apiKey","encrypt","result","set","isFail","fail","Error","String","error","ok","UpdateSettingsRepositoryImplementation","createImplementation","implementation","dependencies"],"sources":["UpdateSettingsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { KeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\nimport { Encryption } from \"@webiny/api-core/features/encryption/index.js\";\nimport { UpdateSettingsRepository, type UpdateSettingsInput } from \"./abstractions.js\";\nimport type { AiPowerUpsSettings } from \"~/api/types.js\";\nimport { AI_POWER_UPS_SETTINGS } from \"~/api/constants.js\";\n\nclass UpdateSettingsRepositoryImpl implements UpdateSettingsRepository.Interface {\n constructor(\n private keyValueStore: KeyValueStore.Interface,\n private encryption: Encryption.Interface\n ) {}\n\n async execute(input: UpdateSettingsInput): Promise<Result<AiPowerUpsSettings, Error>> {\n const providerPresets = await Promise.all(\n input.providers.presets.map(async provider => ({\n ...provider,\n apiKey: await this.encryption.encrypt(provider.apiKey)\n }))\n );\n\n const result = await this.keyValueStore.set(AI_POWER_UPS_SETTINGS, {\n providers: { presets: providerPresets }\n });\n\n if (result.isFail()) {\n return Result.fail(new Error(String(result.error)));\n }\n\n return Result.ok({\n providers: { presets: input.providers.presets }\n });\n }\n}\n\nexport const UpdateSettingsRepositoryImplementation = UpdateSettingsRepository.createImplementation(\n {\n implementation: UpdateSettingsRepositoryImpl,\n dependencies: [KeyValueStore, Encryption]\n }\n);\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,aAAa,QAAQ,kDAAkD;AAChF,SAASC,UAAU,QAAQ,+CAA+C;AAC1E,SAASC,wBAAwB;AAEjC,SAASC,qBAAqB;AAE9B,MAAMC,4BAA4B,CAA+C;EAC7EC,WAAWA,CACCC,aAAsC,EACtCC,UAAgC,EAC1C;IAAA,KAFUD,aAAsC,GAAtCA,aAAsC;IAAA,KACtCC,UAAgC,GAAhCA,UAAgC;EACzC;EAEH,MAAMC,OAAOA,CAACC,KAA0B,EAA8C;IAClF,MAAMC,eAAe,GAAG,MAAMC,OAAO,CAACC,GAAG,CACrCH,KAAK,CAACI,SAAS,CAACC,OAAO,CAACC,GAAG,CAAC,MAAMC,QAAQ,KAAK;MAC3C,GAAGA,QAAQ;MACXC,MAAM,EAAE,MAAM,IAAI,CAACV,UAAU,CAACW,OAAO,CAACF,QAAQ,CAACC,MAAM;IACzD,CAAC,CAAC,CACN,CAAC;IAED,MAAME,MAAM,GAAG,MAAM,IAAI,CAACb,aAAa,CAACc,GAAG,CAACjB,qBAAqB,EAAE;MAC/DU,SAAS,EAAE;QAAEC,OAAO,EAAEJ;MAAgB;IAC1C,CAAC,CAAC;IAEF,IAAIS,MAAM,CAACE,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOtB,MAAM,CAACuB,IAAI,CAAC,IAAIC,KAAK,CAACC,MAAM,CAACL,MAAM,CAACM,KAAK,CAAC,CAAC,CAAC;IACvD;IAEA,OAAO1B,MAAM,CAAC2B,EAAE,CAAC;MACbb,SAAS,EAAE;QAAEC,OAAO,EAAEL,KAAK,CAACI,SAAS,CAACC;MAAQ;IAClD,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMa,sCAAsC,GAAGzB,wBAAwB,CAAC0B,oBAAoB,CAC/F;EACIC,cAAc,EAAEzB,4BAA4B;EAC5C0B,YAAY,EAAE,CAAC9B,aAAa,EAAEC,UAAU;AAC5C,CACJ,CAAC","ignoreList":[]}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import type { DomainEvent, IEventHandler } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
-
import type { AiProvider,
|
|
3
|
+
import type { AiProvider, AiPowerUpsSettings } from "../../../api/types.js";
|
|
4
4
|
export interface UpdateSettingsInput {
|
|
5
5
|
providers: {
|
|
6
6
|
presets: Array<Pick<AiProvider, "name" | "model" | "apiKey"> & {
|
|
7
7
|
description?: string;
|
|
8
8
|
}>;
|
|
9
9
|
};
|
|
10
|
-
personas: {
|
|
11
|
-
presets: Array<Pick<AiPersona, "name" | "description">>;
|
|
12
|
-
};
|
|
13
10
|
}
|
|
14
11
|
export interface IUpdateSettingsRepository {
|
|
15
12
|
execute(input: UpdateSettingsInput): Promise<Result<AiPowerUpsSettings, Error>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","UpdateSettingsRepository","UpdateSettingsUseCase","AiPowerUpsSettingsBeforeUpdateEventHandler","AiPowerUpsSettingsAfterUpdateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { AiProvider,
|
|
1
|
+
{"version":3,"names":["createAbstraction","UpdateSettingsRepository","UpdateSettingsUseCase","AiPowerUpsSettingsBeforeUpdateEventHandler","AiPowerUpsSettingsAfterUpdateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type { DomainEvent, IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { AiProvider, AiPowerUpsSettings } from \"~/api/types.js\";\n\nexport interface UpdateSettingsInput {\n providers: {\n presets: Array<Pick<AiProvider, \"name\" | \"model\" | \"apiKey\"> & { description?: string }>;\n };\n}\n\nexport interface IUpdateSettingsRepository {\n execute(input: UpdateSettingsInput): Promise<Result<AiPowerUpsSettings, Error>>;\n}\n\nexport const UpdateSettingsRepository = createAbstraction<IUpdateSettingsRepository>(\n \"AiPowerUpsUpdateSettingsRepository\"\n);\n\nexport namespace UpdateSettingsRepository {\n export type Interface = IUpdateSettingsRepository;\n export type Return = Promise<Result<AiPowerUpsSettings, Error>>;\n}\n\nexport interface IUpdateSettingsUseCase {\n execute(input: UpdateSettingsInput): Promise<Result<AiPowerUpsSettings, Error>>;\n}\n\nexport const UpdateSettingsUseCase = createAbstraction<IUpdateSettingsUseCase>(\n \"AiPowerUpsUpdateSettingsUseCase\"\n);\n\nexport namespace UpdateSettingsUseCase {\n export type Interface = IUpdateSettingsUseCase;\n export type Return = Promise<Result<AiPowerUpsSettings, Error>>;\n export type Params = UpdateSettingsInput;\n}\n\n// Domain events\nexport interface AiPowerUpsSettingsBeforeUpdatePayload {\n input: UpdateSettingsInput;\n}\n\nexport interface AiPowerUpsSettingsAfterUpdatePayload {\n settings: AiPowerUpsSettings;\n}\n\nexport const AiPowerUpsSettingsBeforeUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<AiPowerUpsSettingsBeforeUpdatePayload>>\n>(\"AiPowerUpsSettingsBeforeUpdateEventHandler\");\n\nexport namespace AiPowerUpsSettingsBeforeUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<AiPowerUpsSettingsBeforeUpdatePayload>>;\n export type Event = DomainEvent<AiPowerUpsSettingsBeforeUpdatePayload>;\n}\n\nexport const AiPowerUpsSettingsAfterUpdateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<AiPowerUpsSettingsAfterUpdatePayload>>\n>(\"AiPowerUpsSettingsAfterUpdateEventHandler\");\n\nexport namespace AiPowerUpsSettingsAfterUpdateEventHandler {\n export type Interface = IEventHandler<DomainEvent<AiPowerUpsSettingsAfterUpdatePayload>>;\n export type Event = DomainEvent<AiPowerUpsSettingsAfterUpdatePayload>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;AAc/D,OAAO,MAAMC,wBAAwB,GAAGD,iBAAiB,CACrD,oCACJ,CAAC;AAWD,OAAO,MAAME,qBAAqB,GAAGF,iBAAiB,CAClD,iCACJ,CAAC;;AAQD;;AASA,OAAO,MAAMG,0CAA0C,GAAGH,iBAAiB,CAEzE,4CAA4C,CAAC;AAO/C,OAAO,MAAMI,yCAAyC,GAAGJ,iBAAiB,CAExE,2CAA2C,CAAC","ignoreList":[]}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const updateValidation: z.ZodObject<{
|
|
3
|
-
providers: z.ZodObject<{
|
|
3
|
+
providers: z.ZodDefault<z.ZodObject<{
|
|
4
4
|
presets: z.ZodArray<z.ZodObject<{
|
|
5
5
|
name: z.ZodString;
|
|
6
6
|
description: z.ZodOptional<z.ZodString>;
|
|
7
7
|
model: z.ZodString;
|
|
8
8
|
apiKey: z.ZodString;
|
|
9
9
|
}, z.core.$strip>>;
|
|
10
|
-
}, z.core.$strip
|
|
11
|
-
personas: z.ZodObject<{
|
|
12
|
-
presets: z.ZodArray<z.ZodObject<{
|
|
13
|
-
name: z.ZodString;
|
|
14
|
-
description: z.ZodString;
|
|
15
|
-
}, z.core.$strip>>;
|
|
16
|
-
}, z.core.$strip>;
|
|
10
|
+
}, z.core.$strip>>;
|
|
17
11
|
}, z.core.$strip>;
|
|
@@ -5,16 +5,11 @@ const provider = z.object({
|
|
|
5
5
|
model: z.string().min(1).describe("Model ID"),
|
|
6
6
|
apiKey: z.string().min(1).describe("API key")
|
|
7
7
|
});
|
|
8
|
-
const persona = z.object({
|
|
9
|
-
name: z.string().min(1).describe("Persona name"),
|
|
10
|
-
description: z.string().min(1).describe("Persona description, used as the AI system prompt")
|
|
11
|
-
});
|
|
12
8
|
export const updateValidation = z.object({
|
|
13
9
|
providers: z.object({
|
|
14
10
|
presets: z.array(provider)
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
presets: z.array(persona)
|
|
11
|
+
}).default({
|
|
12
|
+
presets: []
|
|
18
13
|
})
|
|
19
14
|
});
|
|
20
15
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","provider","object","name","string","min","describe","description","optional","model","apiKey","
|
|
1
|
+
{"version":3,"names":["z","provider","object","name","string","min","describe","description","optional","model","apiKey","updateValidation","providers","presets","array","default"],"sources":["validation.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst provider = z.object({\n name: z.string().min(1).describe(\"Provider name\"),\n description: z.string().optional().describe(\"Provider description\"),\n model: z.string().min(1).describe(\"Model ID\"),\n apiKey: z.string().min(1).describe(\"API key\")\n});\n\nexport const updateValidation = z.object({\n providers: z\n .object({\n presets: z.array(provider)\n })\n .default({ presets: [] })\n});\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AAEvB,MAAMC,QAAQ,GAAGD,CAAC,CAACE,MAAM,CAAC;EACtBC,IAAI,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,eAAe,CAAC;EACjDC,WAAW,EAAEP,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC,CAACF,QAAQ,CAAC,sBAAsB,CAAC;EACnEG,KAAK,EAAET,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,UAAU,CAAC;EAC7CI,MAAM,EAAEV,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,SAAS;AAChD,CAAC,CAAC;AAEF,OAAO,MAAMK,gBAAgB,GAAGX,CAAC,CAACE,MAAM,CAAC;EACrCU,SAAS,EAAEZ,CAAC,CACPE,MAAM,CAAC;IACJW,OAAO,EAAEb,CAAC,CAACc,KAAK,CAACb,QAAQ;EAC7B,CAAC,CAAC,CACDc,OAAO,CAAC;IAAEF,OAAO,EAAE;EAAG,CAAC;AAChC,CAAC,CAAC","ignoreList":[]}
|
package/api/types.d.ts
CHANGED
|
@@ -5,15 +5,8 @@ export interface AiProvider {
|
|
|
5
5
|
model: string;
|
|
6
6
|
apiKey: string;
|
|
7
7
|
}
|
|
8
|
-
export interface AiPersona {
|
|
9
|
-
name: string;
|
|
10
|
-
description: string;
|
|
11
|
-
}
|
|
12
8
|
export interface AiPowerUpsSettings {
|
|
13
9
|
providers: {
|
|
14
10
|
presets: AiProvider[];
|
|
15
11
|
};
|
|
16
|
-
personas: {
|
|
17
|
-
presets: AiPersona[];
|
|
18
|
-
};
|
|
19
12
|
}
|
package/api/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import \"@webiny/tasks/features/TaskController/augmentation.js\";\n\nexport interface AiProvider {\n name: string;\n description?: string;\n model: string;\n apiKey: string;\n}\n\nexport interface
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import \"@webiny/tasks/features/TaskController/augmentation.js\";\n\nexport interface AiProvider {\n name: string;\n description?: string;\n model: string;\n apiKey: string;\n}\n\nexport interface AiPowerUpsSettings {\n providers: {\n presets: AiProvider[];\n };\n}\n"],"mappings":"AAAA,OAAO,uDAAuD","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/ai-powerups",
|
|
3
|
-
"version": "6.3.0-beta.
|
|
3
|
+
"version": "6.3.0-beta.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "index.js",
|
|
@@ -15,19 +15,19 @@
|
|
|
15
15
|
"author": "Webiny Ltd.",
|
|
16
16
|
"license": "Webiny Enterprise",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@webiny/admin-ui": "6.3.0-beta.
|
|
19
|
-
"@webiny/api-core": "6.3.0-beta.
|
|
20
|
-
"@webiny/api-websockets": "6.3.0-beta.
|
|
21
|
-
"@webiny/app": "6.3.0-beta.
|
|
22
|
-
"@webiny/app-admin": "6.3.0-beta.
|
|
23
|
-
"@webiny/app-website-builder": "6.3.0-beta.
|
|
24
|
-
"@webiny/app-websockets": "6.3.0-beta.
|
|
25
|
-
"@webiny/feature": "6.3.0-beta.
|
|
26
|
-
"@webiny/icons": "6.3.0-beta.
|
|
27
|
-
"@webiny/project": "6.3.0-beta.
|
|
28
|
-
"@webiny/project-aws": "6.3.0-beta.
|
|
29
|
-
"@webiny/tasks": "6.3.0-beta.
|
|
30
|
-
"@webiny/utils": "6.3.0-beta.
|
|
18
|
+
"@webiny/admin-ui": "6.3.0-beta.1",
|
|
19
|
+
"@webiny/api-core": "6.3.0-beta.1",
|
|
20
|
+
"@webiny/api-websockets": "6.3.0-beta.1",
|
|
21
|
+
"@webiny/app": "6.3.0-beta.1",
|
|
22
|
+
"@webiny/app-admin": "6.3.0-beta.1",
|
|
23
|
+
"@webiny/app-website-builder": "6.3.0-beta.1",
|
|
24
|
+
"@webiny/app-websockets": "6.3.0-beta.1",
|
|
25
|
+
"@webiny/feature": "6.3.0-beta.1",
|
|
26
|
+
"@webiny/icons": "6.3.0-beta.1",
|
|
27
|
+
"@webiny/project": "6.3.0-beta.1",
|
|
28
|
+
"@webiny/project-aws": "6.3.0-beta.1",
|
|
29
|
+
"@webiny/tasks": "6.3.0-beta.1",
|
|
30
|
+
"@webiny/utils": "6.3.0-beta.1",
|
|
31
31
|
"ai": "6.0.168",
|
|
32
32
|
"lodash": "4.18.1",
|
|
33
33
|
"mobx": "6.15.0",
|
|
@@ -37,11 +37,11 @@
|
|
|
37
37
|
"zod": "4.3.6"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@webiny/build-tools": "6.3.0-beta.
|
|
41
|
-
"@webiny/handler-aws": "6.3.0-beta.
|
|
42
|
-
"@webiny/handler-graphql": "6.3.0-beta.
|
|
43
|
-
"@webiny/project-utils": "6.3.0-beta.
|
|
44
|
-
"@webiny/wcp": "6.3.0-beta.
|
|
40
|
+
"@webiny/build-tools": "6.3.0-beta.1",
|
|
41
|
+
"@webiny/handler-aws": "6.3.0-beta.1",
|
|
42
|
+
"@webiny/handler-graphql": "6.3.0-beta.1",
|
|
43
|
+
"@webiny/project-utils": "6.3.0-beta.1",
|
|
44
|
+
"@webiny/wcp": "6.3.0-beta.1",
|
|
45
45
|
"rimraf": "6.1.3",
|
|
46
46
|
"typescript": "6.0.3",
|
|
47
47
|
"vitest": "4.1.4"
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"access": "public",
|
|
51
51
|
"directory": "dist"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "664b273a9f0a971f9ca7e6ffe920db77fefdced1"
|
|
54
54
|
}
|