@webiny/languages 0.0.0-unstable.0d717d18dd
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/LICENSE +36 -0
- package/Languages.d.ts +2 -0
- package/Languages.js +11 -0
- package/Languages.js.map +1 -0
- package/README.md +11 -0
- package/admin/Extension.d.ts +2 -0
- package/admin/Extension.js +29 -0
- package/admin/Extension.js.map +1 -0
- package/admin/GenericCell.d.ts +6 -0
- package/admin/GenericCell.js +11 -0
- package/admin/GenericCell.js.map +1 -0
- package/admin/LanguageEntryList.d.ts +2 -0
- package/admin/LanguageEntryList.js +37 -0
- package/admin/LanguageEntryList.js.map +1 -0
- package/admin/PermissionsSchema.d.ts +5 -0
- package/admin/PermissionsSchema.js +9 -0
- package/admin/PermissionsSchema.js.map +1 -0
- package/admin/SecurityPermission.d.ts +2 -0
- package/admin/SecurityPermission.js +15 -0
- package/admin/SecurityPermission.js.map +1 -0
- package/admin/features/listLanguages/LanguageEntryAfterCreateHandler.d.ts +11 -0
- package/admin/features/listLanguages/LanguageEntryAfterCreateHandler.js +24 -0
- package/admin/features/listLanguages/LanguageEntryAfterCreateHandler.js.map +1 -0
- package/admin/features/listLanguages/LanguageEntryAfterDeleteHandler.d.ts +11 -0
- package/admin/features/listLanguages/LanguageEntryAfterDeleteHandler.js +21 -0
- package/admin/features/listLanguages/LanguageEntryAfterDeleteHandler.js.map +1 -0
- package/admin/features/listLanguages/LanguageEntryAfterUpdateHandler.d.ts +11 -0
- package/admin/features/listLanguages/LanguageEntryAfterUpdateHandler.js +26 -0
- package/admin/features/listLanguages/LanguageEntryAfterUpdateHandler.js.map +1 -0
- package/admin/features/listLanguages/ListLanguagesGateway.d.ts +11 -0
- package/admin/features/listLanguages/ListLanguagesGateway.js +44 -0
- package/admin/features/listLanguages/ListLanguagesGateway.js.map +1 -0
- package/admin/features/listLanguages/ListLanguagesRepository.d.ts +13 -0
- package/admin/features/listLanguages/ListLanguagesRepository.js +30 -0
- package/admin/features/listLanguages/ListLanguagesRepository.js.map +1 -0
- package/admin/features/listLanguages/ListLanguagesUseCase.d.ts +10 -0
- package/admin/features/listLanguages/ListLanguagesUseCase.js +18 -0
- package/admin/features/listLanguages/ListLanguagesUseCase.js.map +1 -0
- package/admin/features/listLanguages/abstractions.d.ts +35 -0
- package/admin/features/listLanguages/abstractions.js +8 -0
- package/admin/features/listLanguages/abstractions.js.map +1 -0
- package/admin/features/listLanguages/feature.d.ts +6 -0
- package/admin/features/listLanguages/feature.js +31 -0
- package/admin/features/listLanguages/feature.js.map +1 -0
- package/admin/features/listLanguages/index.d.ts +2 -0
- package/admin/features/listLanguages/index.js +1 -0
- package/admin/features/listLanguages/toLanguageDto.d.ts +3 -0
- package/admin/features/listLanguages/toLanguageDto.js +13 -0
- package/admin/features/listLanguages/toLanguageDto.js.map +1 -0
- package/admin/presentation/hooks/useLanguages.d.ts +5 -0
- package/admin/presentation/hooks/useLanguages.js +27 -0
- package/admin/presentation/hooks/useLanguages.js.map +1 -0
- package/api/Extension.d.ts +4 -0
- package/api/Extension.js +25 -0
- package/api/Extension.js.map +1 -0
- package/api/domain/Language.d.ts +8 -0
- package/api/domain/Language.js +0 -0
- package/api/domain/LanguageModel.d.ts +8 -0
- package/api/domain/LanguageModel.js +56 -0
- package/api/domain/LanguageModel.js.map +1 -0
- package/api/domain/errors.d.ts +15 -0
- package/api/domain/errors.js +28 -0
- package/api/domain/errors.js.map +1 -0
- package/api/domain/permissionsSchema.d.ts +5 -0
- package/api/domain/permissionsSchema.js +9 -0
- package/api/domain/permissionsSchema.js.map +1 -0
- package/api/features/AddCmsPermissions/AddCmsPermissions.d.ts +8 -0
- package/api/features/AddCmsPermissions/AddCmsPermissions.js +49 -0
- package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -0
- package/api/features/AddCmsPermissions/feature.d.ts +4 -0
- package/api/features/AddCmsPermissions/feature.js +11 -0
- package/api/features/AddCmsPermissions/feature.js.map +1 -0
- package/api/features/EnsureSingleDefaultLanguage/UnsetDefaultLanguagesHandler.d.ts +15 -0
- package/api/features/EnsureSingleDefaultLanguage/UnsetDefaultLanguagesHandler.js +48 -0
- package/api/features/EnsureSingleDefaultLanguage/UnsetDefaultLanguagesHandler.js.map +1 -0
- package/api/features/EnsureSingleDefaultLanguage/feature.d.ts +4 -0
- package/api/features/EnsureSingleDefaultLanguage/feature.js +11 -0
- package/api/features/EnsureSingleDefaultLanguage/feature.js.map +1 -0
- package/api/features/GetDefaultLanguage/GetDefaultLanguageRepository.d.ts +13 -0
- package/api/features/GetDefaultLanguage/GetDefaultLanguageRepository.js +48 -0
- package/api/features/GetDefaultLanguage/GetDefaultLanguageRepository.js.map +1 -0
- package/api/features/GetDefaultLanguage/GetDefaultLanguageUseCase.d.ts +8 -0
- package/api/features/GetDefaultLanguage/GetDefaultLanguageUseCase.js +20 -0
- package/api/features/GetDefaultLanguage/GetDefaultLanguageUseCase.js.map +1 -0
- package/api/features/GetDefaultLanguage/abstractions.d.ts +33 -0
- package/api/features/GetDefaultLanguage/abstractions.js +6 -0
- package/api/features/GetDefaultLanguage/abstractions.js.map +1 -0
- package/api/features/GetDefaultLanguage/feature.d.ts +4 -0
- package/api/features/GetDefaultLanguage/feature.js +13 -0
- package/api/features/GetDefaultLanguage/feature.js.map +1 -0
- package/api/features/GetDefaultLanguage/index.d.ts +1 -0
- package/api/features/GetDefaultLanguage/index.js +1 -0
- package/api/features/GetLanguageByCode/GetLanguageByCodeRepository.d.ts +13 -0
- package/api/features/GetLanguageByCode/GetLanguageByCodeRepository.js +48 -0
- package/api/features/GetLanguageByCode/GetLanguageByCodeRepository.js.map +1 -0
- package/api/features/GetLanguageByCode/GetLanguageByCodeUseCase.d.ts +8 -0
- package/api/features/GetLanguageByCode/GetLanguageByCodeUseCase.js +20 -0
- package/api/features/GetLanguageByCode/GetLanguageByCodeUseCase.js.map +1 -0
- package/api/features/GetLanguageByCode/abstractions.d.ts +33 -0
- package/api/features/GetLanguageByCode/abstractions.js +6 -0
- package/api/features/GetLanguageByCode/abstractions.js.map +1 -0
- package/api/features/GetLanguageByCode/feature.d.ts +4 -0
- package/api/features/GetLanguageByCode/feature.js +13 -0
- package/api/features/GetLanguageByCode/feature.js.map +1 -0
- package/api/features/GetLanguageByCode/index.d.ts +1 -0
- package/api/features/GetLanguageByCode/index.js +1 -0
- package/api/features/ListLanguages/ListLanguagesRepository.d.ts +13 -0
- package/api/features/ListLanguages/ListLanguagesRepository.js +48 -0
- package/api/features/ListLanguages/ListLanguagesRepository.js.map +1 -0
- package/api/features/ListLanguages/ListLanguagesUseCase.d.ts +8 -0
- package/api/features/ListLanguages/ListLanguagesUseCase.js +20 -0
- package/api/features/ListLanguages/ListLanguagesUseCase.js.map +1 -0
- package/api/features/ListLanguages/abstractions.d.ts +31 -0
- package/api/features/ListLanguages/abstractions.js +6 -0
- package/api/features/ListLanguages/abstractions.js.map +1 -0
- package/api/features/ListLanguages/feature.d.ts +4 -0
- package/api/features/ListLanguages/feature.js +13 -0
- package/api/features/ListLanguages/feature.js.map +1 -0
- package/api/features/ListLanguages/index.d.ts +1 -0
- package/api/features/ListLanguages/index.js +1 -0
- package/api/features/Permissions/abstractions.d.ts +10 -0
- package/api/features/Permissions/abstractions.js +6 -0
- package/api/features/Permissions/abstractions.js.map +1 -0
- package/api/features/Permissions/feature.d.ts +4 -0
- package/api/features/Permissions/feature.js +7 -0
- package/api/features/Permissions/feature.js.map +1 -0
- package/api/graphql/LanguagesGraphQLSchema.d.ts +8 -0
- package/api/graphql/LanguagesGraphQLSchema.js +59 -0
- package/api/graphql/LanguagesGraphQLSchema.js.map +1 -0
- package/exports/admin/languages.d.ts +2 -0
- package/exports/admin/languages.js +1 -0
- package/exports/api/languages.d.ts +3 -0
- package/exports/api/languages.js +3 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +53 -0
- package/shared/constants.d.ts +1 -0
- package/shared/constants.js +4 -0
- package/shared/constants.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/GetDefaultLanguage/GetDefaultLanguageUseCase.js","sources":["../../../../src/api/features/GetDefaultLanguage/GetDefaultLanguageUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport {\n GetDefaultLanguageUseCase as UseCaseAbstraction,\n GetDefaultLanguageRepository\n} from \"./abstractions.js\";\n\nclass GetDefaultLanguageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetDefaultLanguageRepository.Interface) {}\n\n async execute(): UseCaseAbstraction.Return {\n return this.repository.execute();\n }\n}\n\nexport const GetDefaultLanguageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetDefaultLanguageUseCaseImpl,\n dependencies: [GetDefaultLanguageRepository]\n});\n"],"names":["GetDefaultLanguageUseCaseImpl","repository","GetDefaultLanguageUseCase","createImplementation","UseCaseAbstraction","GetDefaultLanguageRepository"],"mappings":";;AAMA,MAAMA;IACF,YAAoBC,UAAkD,CAAE;aAApDA,UAAU,GAAVA;IAAqD;IAEzE,MAAM,UAAqC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO;IAClC;AACJ;AAEO,MAAMC,sDAA4BC,qBAAqB;IAC1D,aAAaC;IACb,gBAAgBJ;IAChB,cAAc;QAACK;KAA6B;AAChD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { Language } from "../../../api/domain/Language.js";
|
|
3
|
+
import type { DefaultLanguageNotFoundError, LanguagePersistenceError } from "../../../api/domain/errors.js";
|
|
4
|
+
export interface IGetDefaultLanguageRepository {
|
|
5
|
+
execute(): Promise<Result<Language, RepositoryError>>;
|
|
6
|
+
}
|
|
7
|
+
export interface IGetDefaultLanguageRepositoryErrors {
|
|
8
|
+
notFound: DefaultLanguageNotFoundError;
|
|
9
|
+
persistence: LanguagePersistenceError;
|
|
10
|
+
}
|
|
11
|
+
type RepositoryError = IGetDefaultLanguageRepositoryErrors[keyof IGetDefaultLanguageRepositoryErrors];
|
|
12
|
+
export declare const GetDefaultLanguageRepository: import("@webiny/di").Abstraction<IGetDefaultLanguageRepository>;
|
|
13
|
+
export declare namespace GetDefaultLanguageRepository {
|
|
14
|
+
type Interface = IGetDefaultLanguageRepository;
|
|
15
|
+
type Return = Promise<Result<Language, RepositoryError>>;
|
|
16
|
+
type Error = RepositoryError;
|
|
17
|
+
}
|
|
18
|
+
export interface IGetDefaultLanguageUseCase {
|
|
19
|
+
execute(): Promise<Result<Language, UseCaseError>>;
|
|
20
|
+
}
|
|
21
|
+
export interface IGetDefaultLanguageUseCaseErrors {
|
|
22
|
+
notFound: DefaultLanguageNotFoundError;
|
|
23
|
+
persistence: LanguagePersistenceError;
|
|
24
|
+
}
|
|
25
|
+
type UseCaseError = IGetDefaultLanguageUseCaseErrors[keyof IGetDefaultLanguageUseCaseErrors];
|
|
26
|
+
/** Get the default language. */
|
|
27
|
+
export declare const GetDefaultLanguageUseCase: import("@webiny/di").Abstraction<IGetDefaultLanguageUseCase>;
|
|
28
|
+
export declare namespace GetDefaultLanguageUseCase {
|
|
29
|
+
type Interface = IGetDefaultLanguageUseCase;
|
|
30
|
+
type Return = Promise<Result<Language, UseCaseError>>;
|
|
31
|
+
type Error = UseCaseError;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const GetDefaultLanguageRepository = createAbstraction("Languages/GetDefaultLanguageRepository");
|
|
3
|
+
const GetDefaultLanguageUseCase = createAbstraction("Languages/GetDefaultLanguageUseCase");
|
|
4
|
+
export { GetDefaultLanguageRepository, GetDefaultLanguageUseCase };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/GetDefaultLanguage/abstractions.js","sources":["../../../../src/api/features/GetDefaultLanguage/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { Language } from \"~/api/domain/Language.js\";\nimport type {\n DefaultLanguageNotFoundError,\n LanguagePersistenceError\n} from \"~/api/domain/errors.js\";\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IGetDefaultLanguageRepository {\n execute(): Promise<Result<Language, RepositoryError>>;\n}\n\nexport interface IGetDefaultLanguageRepositoryErrors {\n notFound: DefaultLanguageNotFoundError;\n persistence: LanguagePersistenceError;\n}\n\ntype RepositoryError =\n IGetDefaultLanguageRepositoryErrors[keyof IGetDefaultLanguageRepositoryErrors];\n\nexport const GetDefaultLanguageRepository = createAbstraction<IGetDefaultLanguageRepository>(\n \"Languages/GetDefaultLanguageRepository\"\n);\n\nexport namespace GetDefaultLanguageRepository {\n export type Interface = IGetDefaultLanguageRepository;\n export type Return = Promise<Result<Language, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IGetDefaultLanguageUseCase {\n execute(): Promise<Result<Language, UseCaseError>>;\n}\n\nexport interface IGetDefaultLanguageUseCaseErrors {\n notFound: DefaultLanguageNotFoundError;\n persistence: LanguagePersistenceError;\n}\n\ntype UseCaseError = IGetDefaultLanguageUseCaseErrors[keyof IGetDefaultLanguageUseCaseErrors];\n\n/** Get the default language. */\nexport const GetDefaultLanguageUseCase = createAbstraction<IGetDefaultLanguageUseCase>(\n \"Languages/GetDefaultLanguageUseCase\"\n);\n\nexport namespace GetDefaultLanguageUseCase {\n export type Interface = IGetDefaultLanguageUseCase;\n export type Return = Promise<Result<Language, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"names":["GetDefaultLanguageRepository","createAbstraction","GetDefaultLanguageUseCase"],"mappings":";AAuBO,MAAMA,+BAA+BC,kBACxC;AAyBG,MAAMC,4BAA4BD,kBACrC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { GetDefaultLanguageRepository } from "./GetDefaultLanguageRepository.js";
|
|
3
|
+
import { GetDefaultLanguageUseCase } from "./GetDefaultLanguageUseCase.js";
|
|
4
|
+
const GetDefaultLanguageFeature = createFeature({
|
|
5
|
+
name: "Languages/GetDefaultLanguage",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(GetDefaultLanguageRepository).inSingletonScope();
|
|
8
|
+
container.register(GetDefaultLanguageUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { GetDefaultLanguageFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/GetDefaultLanguage/feature.js","sources":["../../../../src/api/features/GetDefaultLanguage/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { GetDefaultLanguageRepository } from \"./GetDefaultLanguageRepository.js\";\nimport { GetDefaultLanguageUseCase } from \"./GetDefaultLanguageUseCase.js\";\n\nexport const GetDefaultLanguageFeature = createFeature({\n name: \"Languages/GetDefaultLanguage\",\n register(container) {\n container.register(GetDefaultLanguageRepository).inSingletonScope();\n container.register(GetDefaultLanguageUseCase);\n }\n});\n"],"names":["GetDefaultLanguageFeature","createFeature","container","GetDefaultLanguageRepository","GetDefaultLanguageUseCase"],"mappings":";;;AAIO,MAAMA,4BAA4BC,cAAc;IACnD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,8BAA8B,gBAAgB;QACjED,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GetDefaultLanguageUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GetDefaultLanguageUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/abstractions.js";
|
|
2
|
+
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
|
|
3
|
+
import { GetLanguageByCodeRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
4
|
+
declare class GetLanguageByCodeRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
5
|
+
private getModel;
|
|
6
|
+
private listLatestEntries;
|
|
7
|
+
constructor(getModel: GetModelUseCase.Interface, listLatestEntries: ListLatestEntriesUseCase.Interface);
|
|
8
|
+
execute(code: string): RepositoryAbstraction.Return;
|
|
9
|
+
}
|
|
10
|
+
export declare const GetLanguageByCodeRepository: typeof GetLanguageByCodeRepositoryImpl & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetLanguageByCodeRepository>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/abstractions.js";
|
|
3
|
+
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
|
|
4
|
+
import { GetLanguageByCodeRepository } from "./abstractions.js";
|
|
5
|
+
import { LANGUAGE_MODEL_ID } from "../../../shared/constants.js";
|
|
6
|
+
import { LanguageNotFoundError, LanguagePersistenceError } from "../../domain/errors.js";
|
|
7
|
+
class GetLanguageByCodeRepositoryImpl {
|
|
8
|
+
constructor(getModel, listLatestEntries){
|
|
9
|
+
this.getModel = getModel;
|
|
10
|
+
this.listLatestEntries = listLatestEntries;
|
|
11
|
+
}
|
|
12
|
+
async execute(code) {
|
|
13
|
+
const modelResult = await this.getModel.execute(LANGUAGE_MODEL_ID);
|
|
14
|
+
if (modelResult.isFail()) return Result.fail(new LanguagePersistenceError(modelResult.error));
|
|
15
|
+
const model = modelResult.value;
|
|
16
|
+
const listResult = await this.listLatestEntries.execute(model, {
|
|
17
|
+
where: {
|
|
18
|
+
values: {
|
|
19
|
+
code
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
limit: 1
|
|
23
|
+
});
|
|
24
|
+
if (listResult.isFail()) return Result.fail(new LanguagePersistenceError(listResult.error));
|
|
25
|
+
const { entries } = listResult.value;
|
|
26
|
+
if (0 === entries.length) return Result.fail(new LanguageNotFoundError(code));
|
|
27
|
+
const entry = entries[0];
|
|
28
|
+
const language = {
|
|
29
|
+
id: entry.entryId,
|
|
30
|
+
name: entry.values.name,
|
|
31
|
+
code: entry.values.code,
|
|
32
|
+
direction: entry.values.direction,
|
|
33
|
+
isDefault: entry.values.isDefault,
|
|
34
|
+
enabled: entry.values.enabled
|
|
35
|
+
};
|
|
36
|
+
return Result.ok(language);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const GetLanguageByCodeRepository_GetLanguageByCodeRepository = GetLanguageByCodeRepository.createImplementation({
|
|
40
|
+
implementation: GetLanguageByCodeRepositoryImpl,
|
|
41
|
+
dependencies: [
|
|
42
|
+
GetModelUseCase,
|
|
43
|
+
ListLatestEntriesUseCase
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
export { GetLanguageByCodeRepository_GetLanguageByCodeRepository as GetLanguageByCodeRepository };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=GetLanguageByCodeRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/GetLanguageByCode/GetLanguageByCodeRepository.js","sources":["../../../../src/api/features/GetLanguageByCode/GetLanguageByCodeRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport { GetLanguageByCodeRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\nimport { LanguageNotFoundError, LanguagePersistenceError } from \"~/api/domain/errors.js\";\nimport type { Language } from \"~/api/domain/Language.js\";\n\nclass GetLanguageByCodeRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private getModel: GetModelUseCase.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface\n ) {}\n\n async execute(code: string): RepositoryAbstraction.Return {\n const modelResult = await this.getModel.execute(LANGUAGE_MODEL_ID);\n if (modelResult.isFail()) {\n return Result.fail(new LanguagePersistenceError(modelResult.error));\n }\n\n const model = modelResult.value;\n\n const listResult = await this.listLatestEntries.execute(model, {\n where: {\n values: {\n code\n }\n },\n limit: 1\n });\n\n if (listResult.isFail()) {\n return Result.fail(new LanguagePersistenceError(listResult.error));\n }\n\n const { entries } = listResult.value;\n\n if (entries.length === 0) {\n return Result.fail(new LanguageNotFoundError(code));\n }\n\n const entry = entries[0];\n\n const language: Language = {\n id: entry.entryId,\n name: entry.values.name,\n code: entry.values.code,\n direction: entry.values.direction,\n isDefault: entry.values.isDefault,\n enabled: entry.values.enabled\n };\n\n return Result.ok(language);\n }\n}\n\nexport const GetLanguageByCodeRepository = RepositoryAbstraction.createImplementation({\n implementation: GetLanguageByCodeRepositoryImpl,\n dependencies: [GetModelUseCase, ListLatestEntriesUseCase]\n});\n"],"names":["GetLanguageByCodeRepositoryImpl","getModel","listLatestEntries","code","modelResult","LANGUAGE_MODEL_ID","Result","LanguagePersistenceError","model","listResult","entries","LanguageNotFoundError","entry","language","GetLanguageByCodeRepository","RepositoryAbstraction","GetModelUseCase","ListLatestEntriesUseCase"],"mappings":";;;;;;AAQA,MAAMA;IACF,YACYC,QAAmC,EACnCC,iBAAqD,CAC/D;aAFUD,QAAQ,GAARA;aACAC,iBAAiB,GAAjBA;IACT;IAEH,MAAM,QAAQC,IAAY,EAAgC;QACtD,MAAMC,cAAc,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAACC;QAChD,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CAAC,IAAIC,yBAAyBH,YAAY,KAAK;QAGrE,MAAMI,QAAQJ,YAAY,KAAK;QAE/B,MAAMK,aAAa,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACD,OAAO;YAC3D,OAAO;gBACH,QAAQ;oBACJL;gBACJ;YACJ;YACA,OAAO;QACX;QAEA,IAAIM,WAAW,MAAM,IACjB,OAAOH,OAAO,IAAI,CAAC,IAAIC,yBAAyBE,WAAW,KAAK;QAGpE,MAAM,EAAEC,OAAO,EAAE,GAAGD,WAAW,KAAK;QAEpC,IAAIC,AAAmB,MAAnBA,QAAQ,MAAM,EACd,OAAOJ,OAAO,IAAI,CAAC,IAAIK,sBAAsBR;QAGjD,MAAMS,QAAQF,OAAO,CAAC,EAAE;QAExB,MAAMG,WAAqB;YACvB,IAAID,MAAM,OAAO;YACjB,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,WAAWA,MAAM,MAAM,CAAC,SAAS;YACjC,WAAWA,MAAM,MAAM,CAAC,SAAS;YACjC,SAASA,MAAM,MAAM,CAAC,OAAO;QACjC;QAEA,OAAON,OAAO,EAAE,CAACO;IACrB;AACJ;AAEO,MAAMC,0DAA8BC,4BAAAA,oBAA0C,CAAC;IAClF,gBAAgBf;IAChB,cAAc;QAACgB;QAAiBC;KAAyB;AAC7D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GetLanguageByCodeUseCase as UseCaseAbstraction, GetLanguageByCodeRepository } from "./abstractions.js";
|
|
2
|
+
declare class GetLanguageByCodeUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
3
|
+
private repository;
|
|
4
|
+
constructor(repository: GetLanguageByCodeRepository.Interface);
|
|
5
|
+
execute(code: string): UseCaseAbstraction.Return;
|
|
6
|
+
}
|
|
7
|
+
export declare const GetLanguageByCodeUseCase: import("@webiny/di").Implementation<typeof GetLanguageByCodeUseCaseImpl>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createImplementation } from "@webiny/feature/api";
|
|
2
|
+
import { GetLanguageByCodeRepository, GetLanguageByCodeUseCase } from "./abstractions.js";
|
|
3
|
+
class GetLanguageByCodeUseCaseImpl {
|
|
4
|
+
constructor(repository){
|
|
5
|
+
this.repository = repository;
|
|
6
|
+
}
|
|
7
|
+
async execute(code) {
|
|
8
|
+
return this.repository.execute(code);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
const GetLanguageByCodeUseCase_GetLanguageByCodeUseCase = createImplementation({
|
|
12
|
+
abstraction: GetLanguageByCodeUseCase,
|
|
13
|
+
implementation: GetLanguageByCodeUseCaseImpl,
|
|
14
|
+
dependencies: [
|
|
15
|
+
GetLanguageByCodeRepository
|
|
16
|
+
]
|
|
17
|
+
});
|
|
18
|
+
export { GetLanguageByCodeUseCase_GetLanguageByCodeUseCase as GetLanguageByCodeUseCase };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=GetLanguageByCodeUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/GetLanguageByCode/GetLanguageByCodeUseCase.js","sources":["../../../../src/api/features/GetLanguageByCode/GetLanguageByCodeUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport {\n GetLanguageByCodeUseCase as UseCaseAbstraction,\n GetLanguageByCodeRepository\n} from \"./abstractions.js\";\n\nclass GetLanguageByCodeUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: GetLanguageByCodeRepository.Interface) {}\n\n async execute(code: string): UseCaseAbstraction.Return {\n return this.repository.execute(code);\n }\n}\n\nexport const GetLanguageByCodeUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: GetLanguageByCodeUseCaseImpl,\n dependencies: [GetLanguageByCodeRepository]\n});\n"],"names":["GetLanguageByCodeUseCaseImpl","repository","code","GetLanguageByCodeUseCase","createImplementation","UseCaseAbstraction","GetLanguageByCodeRepository"],"mappings":";;AAMA,MAAMA;IACF,YAAoBC,UAAiD,CAAE;aAAnDA,UAAU,GAAVA;IAAoD;IAExE,MAAM,QAAQC,IAAY,EAA6B;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA;IACnC;AACJ;AAEO,MAAMC,oDAA2BC,qBAAqB;IACzD,aAAaC;IACb,gBAAgBL;IAChB,cAAc;QAACM;KAA4B;AAC/C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { Language } from "../../../api/domain/Language.js";
|
|
3
|
+
import type { LanguageNotFoundError, LanguagePersistenceError } from "../../../api/domain/errors.js";
|
|
4
|
+
export interface IGetLanguageByCodeRepository {
|
|
5
|
+
execute(code: string): Promise<Result<Language, RepositoryError>>;
|
|
6
|
+
}
|
|
7
|
+
export interface IGetLanguageByCodeRepositoryErrors {
|
|
8
|
+
notFound: LanguageNotFoundError;
|
|
9
|
+
persistence: LanguagePersistenceError;
|
|
10
|
+
}
|
|
11
|
+
type RepositoryError = IGetLanguageByCodeRepositoryErrors[keyof IGetLanguageByCodeRepositoryErrors];
|
|
12
|
+
export declare const GetLanguageByCodeRepository: import("@webiny/di").Abstraction<IGetLanguageByCodeRepository>;
|
|
13
|
+
export declare namespace GetLanguageByCodeRepository {
|
|
14
|
+
type Interface = IGetLanguageByCodeRepository;
|
|
15
|
+
type Return = Promise<Result<Language, RepositoryError>>;
|
|
16
|
+
type Error = RepositoryError;
|
|
17
|
+
}
|
|
18
|
+
export interface IGetLanguageByCodeUseCase {
|
|
19
|
+
execute(code: string): Promise<Result<Language, UseCaseError>>;
|
|
20
|
+
}
|
|
21
|
+
export interface IGetLanguageByCodeUseCaseErrors {
|
|
22
|
+
notFound: LanguageNotFoundError;
|
|
23
|
+
persistence: LanguagePersistenceError;
|
|
24
|
+
}
|
|
25
|
+
type UseCaseError = IGetLanguageByCodeUseCaseErrors[keyof IGetLanguageByCodeUseCaseErrors];
|
|
26
|
+
/** Get a language entry by its code. */
|
|
27
|
+
export declare const GetLanguageByCodeUseCase: import("@webiny/di").Abstraction<IGetLanguageByCodeUseCase>;
|
|
28
|
+
export declare namespace GetLanguageByCodeUseCase {
|
|
29
|
+
type Interface = IGetLanguageByCodeUseCase;
|
|
30
|
+
type Return = Promise<Result<Language, UseCaseError>>;
|
|
31
|
+
type Error = UseCaseError;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const GetLanguageByCodeRepository = createAbstraction("Languages/GetLanguageByCodeRepository");
|
|
3
|
+
const GetLanguageByCodeUseCase = createAbstraction("Languages/GetLanguageByCodeUseCase");
|
|
4
|
+
export { GetLanguageByCodeRepository, GetLanguageByCodeUseCase };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/GetLanguageByCode/abstractions.js","sources":["../../../../src/api/features/GetLanguageByCode/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { Language } from \"~/api/domain/Language.js\";\nimport type { LanguageNotFoundError, LanguagePersistenceError } from \"~/api/domain/errors.js\";\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IGetLanguageByCodeRepository {\n execute(code: string): Promise<Result<Language, RepositoryError>>;\n}\n\nexport interface IGetLanguageByCodeRepositoryErrors {\n notFound: LanguageNotFoundError;\n persistence: LanguagePersistenceError;\n}\n\ntype RepositoryError = IGetLanguageByCodeRepositoryErrors[keyof IGetLanguageByCodeRepositoryErrors];\n\nexport const GetLanguageByCodeRepository = createAbstraction<IGetLanguageByCodeRepository>(\n \"Languages/GetLanguageByCodeRepository\"\n);\n\nexport namespace GetLanguageByCodeRepository {\n export type Interface = IGetLanguageByCodeRepository;\n export type Return = Promise<Result<Language, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IGetLanguageByCodeUseCase {\n execute(code: string): Promise<Result<Language, UseCaseError>>;\n}\n\nexport interface IGetLanguageByCodeUseCaseErrors {\n notFound: LanguageNotFoundError;\n persistence: LanguagePersistenceError;\n}\n\ntype UseCaseError = IGetLanguageByCodeUseCaseErrors[keyof IGetLanguageByCodeUseCaseErrors];\n\n/** Get a language entry by its code. */\nexport const GetLanguageByCodeUseCase = createAbstraction<IGetLanguageByCodeUseCase>(\n \"Languages/GetLanguageByCodeUseCase\"\n);\n\nexport namespace GetLanguageByCodeUseCase {\n export type Interface = IGetLanguageByCodeUseCase;\n export type Return = Promise<Result<Language, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"names":["GetLanguageByCodeRepository","createAbstraction","GetLanguageByCodeUseCase"],"mappings":";AAmBO,MAAMA,8BAA8BC,kBACvC;AAyBG,MAAMC,2BAA2BD,kBACpC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { GetLanguageByCodeRepository } from "./GetLanguageByCodeRepository.js";
|
|
3
|
+
import { GetLanguageByCodeUseCase } from "./GetLanguageByCodeUseCase.js";
|
|
4
|
+
const GetLanguageByCodeFeature = createFeature({
|
|
5
|
+
name: "Languages/GetLanguageByCode",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(GetLanguageByCodeRepository).inSingletonScope();
|
|
8
|
+
container.register(GetLanguageByCodeUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { GetLanguageByCodeFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/GetLanguageByCode/feature.js","sources":["../../../../src/api/features/GetLanguageByCode/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { GetLanguageByCodeRepository } from \"./GetLanguageByCodeRepository.js\";\nimport { GetLanguageByCodeUseCase } from \"./GetLanguageByCodeUseCase.js\";\n\nexport const GetLanguageByCodeFeature = createFeature({\n name: \"Languages/GetLanguageByCode\",\n register(container) {\n container.register(GetLanguageByCodeRepository).inSingletonScope();\n container.register(GetLanguageByCodeUseCase);\n }\n});\n"],"names":["GetLanguageByCodeFeature","createFeature","container","GetLanguageByCodeRepository","GetLanguageByCodeUseCase"],"mappings":";;;AAIO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,6BAA6B,gBAAgB;QAChED,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GetLanguageByCodeUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GetLanguageByCodeUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/abstractions.js";
|
|
2
|
+
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
|
|
3
|
+
import { ListLanguagesRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
4
|
+
declare class ListLanguagesRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
5
|
+
private getModel;
|
|
6
|
+
private listLatestEntries;
|
|
7
|
+
constructor(getModel: GetModelUseCase.Interface, listLatestEntries: ListLatestEntriesUseCase.Interface);
|
|
8
|
+
execute(): RepositoryAbstraction.Return;
|
|
9
|
+
}
|
|
10
|
+
export declare const ListLanguagesRepository: typeof ListLanguagesRepositoryImpl & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListLanguagesRepository>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel/abstractions.js";
|
|
3
|
+
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js";
|
|
4
|
+
import { ListLanguagesRepository } from "./abstractions.js";
|
|
5
|
+
import { LANGUAGE_MODEL_ID } from "../../../shared/constants.js";
|
|
6
|
+
import { LanguagePersistenceError } from "../../domain/errors.js";
|
|
7
|
+
class ListLanguagesRepositoryImpl {
|
|
8
|
+
constructor(getModel, listLatestEntries){
|
|
9
|
+
this.getModel = getModel;
|
|
10
|
+
this.listLatestEntries = listLatestEntries;
|
|
11
|
+
}
|
|
12
|
+
async execute() {
|
|
13
|
+
const modelResult = await this.getModel.execute(LANGUAGE_MODEL_ID);
|
|
14
|
+
if (modelResult.isFail()) return Result.fail(new LanguagePersistenceError(modelResult.error));
|
|
15
|
+
const model = modelResult.value;
|
|
16
|
+
const listResult = await this.listLatestEntries.execute(model, {
|
|
17
|
+
limit: 1000,
|
|
18
|
+
where: {
|
|
19
|
+
values: {
|
|
20
|
+
enabled: true
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
sort: [
|
|
24
|
+
"values_name_ASC"
|
|
25
|
+
]
|
|
26
|
+
});
|
|
27
|
+
if (listResult.isFail()) return Result.fail(new LanguagePersistenceError(listResult.error));
|
|
28
|
+
const languages = listResult.value.entries.map((entry)=>({
|
|
29
|
+
id: entry.entryId,
|
|
30
|
+
name: entry.values.name,
|
|
31
|
+
code: entry.values.code,
|
|
32
|
+
direction: entry.values.direction,
|
|
33
|
+
isDefault: entry.values.isDefault,
|
|
34
|
+
enabled: entry.values.enabled
|
|
35
|
+
}));
|
|
36
|
+
return Result.ok(languages);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const ListLanguagesRepository_ListLanguagesRepository = ListLanguagesRepository.createImplementation({
|
|
40
|
+
implementation: ListLanguagesRepositoryImpl,
|
|
41
|
+
dependencies: [
|
|
42
|
+
GetModelUseCase,
|
|
43
|
+
ListLatestEntriesUseCase
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
export { ListLanguagesRepository_ListLanguagesRepository as ListLanguagesRepository };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=ListLanguagesRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/ListLanguages/ListLanguagesRepository.js","sources":["../../../../src/api/features/ListLanguages/ListLanguagesRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel/abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/abstractions.js\";\nimport { ListLanguagesRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\nimport { LanguagePersistenceError } from \"~/api/domain/errors.js\";\nimport type { Language } from \"~/api/domain/Language.js\";\n\nclass ListLanguagesRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private getModel: GetModelUseCase.Interface,\n private listLatestEntries: ListLatestEntriesUseCase.Interface\n ) {}\n\n async execute(): RepositoryAbstraction.Return {\n const modelResult = await this.getModel.execute(LANGUAGE_MODEL_ID);\n if (modelResult.isFail()) {\n return Result.fail(new LanguagePersistenceError(modelResult.error));\n }\n\n const model = modelResult.value;\n\n const listResult = await this.listLatestEntries.execute(model, {\n limit: 1000,\n where: {\n values: {\n enabled: true\n }\n },\n sort: [\"values_name_ASC\"]\n });\n\n if (listResult.isFail()) {\n return Result.fail(new LanguagePersistenceError(listResult.error));\n }\n\n const languages: Language[] = listResult.value.entries.map(entry => ({\n id: entry.entryId,\n name: entry.values.name,\n code: entry.values.code,\n direction: entry.values.direction,\n isDefault: entry.values.isDefault,\n enabled: entry.values.enabled\n }));\n\n return Result.ok(languages);\n }\n}\n\nexport const ListLanguagesRepository = RepositoryAbstraction.createImplementation({\n implementation: ListLanguagesRepositoryImpl,\n dependencies: [GetModelUseCase, ListLatestEntriesUseCase]\n});\n"],"names":["ListLanguagesRepositoryImpl","getModel","listLatestEntries","modelResult","LANGUAGE_MODEL_ID","Result","LanguagePersistenceError","model","listResult","languages","entry","ListLanguagesRepository","RepositoryAbstraction","GetModelUseCase","ListLatestEntriesUseCase"],"mappings":";;;;;;AAQA,MAAMA;IACF,YACYC,QAAmC,EACnCC,iBAAqD,CAC/D;aAFUD,QAAQ,GAARA;aACAC,iBAAiB,GAAjBA;IACT;IAEH,MAAM,UAAwC;QAC1C,MAAMC,cAAc,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAACC;QAChD,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CAAC,IAAIC,yBAAyBH,YAAY,KAAK;QAGrE,MAAMI,QAAQJ,YAAY,KAAK;QAE/B,MAAMK,aAAa,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACD,OAAO;YAC3D,OAAO;YACP,OAAO;gBACH,QAAQ;oBACJ,SAAS;gBACb;YACJ;YACA,MAAM;gBAAC;aAAkB;QAC7B;QAEA,IAAIC,WAAW,MAAM,IACjB,OAAOH,OAAO,IAAI,CAAC,IAAIC,yBAAyBE,WAAW,KAAK;QAGpE,MAAMC,YAAwBD,WAAW,KAAK,CAAC,OAAO,CAAC,GAAG,CAACE,CAAAA,QAAU;gBACjE,IAAIA,MAAM,OAAO;gBACjB,MAAMA,MAAM,MAAM,CAAC,IAAI;gBACvB,MAAMA,MAAM,MAAM,CAAC,IAAI;gBACvB,WAAWA,MAAM,MAAM,CAAC,SAAS;gBACjC,WAAWA,MAAM,MAAM,CAAC,SAAS;gBACjC,SAASA,MAAM,MAAM,CAAC,OAAO;YACjC;QAEA,OAAOL,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAME,kDAA0BC,wBAAAA,oBAA0C,CAAC;IAC9E,gBAAgBZ;IAChB,cAAc;QAACa;QAAiBC;KAAyB;AAC7D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ListLanguagesUseCase as UseCaseAbstraction, ListLanguagesRepository } from "./abstractions.js";
|
|
2
|
+
declare class ListLanguagesUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
3
|
+
private repository;
|
|
4
|
+
constructor(repository: ListLanguagesRepository.Interface);
|
|
5
|
+
execute(): UseCaseAbstraction.Return;
|
|
6
|
+
}
|
|
7
|
+
export declare const ListLanguagesUseCase: import("@webiny/di").Implementation<typeof ListLanguagesUseCaseImpl>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createImplementation } from "@webiny/feature/api";
|
|
2
|
+
import { ListLanguagesRepository, ListLanguagesUseCase } from "./abstractions.js";
|
|
3
|
+
class ListLanguagesUseCaseImpl {
|
|
4
|
+
constructor(repository){
|
|
5
|
+
this.repository = repository;
|
|
6
|
+
}
|
|
7
|
+
async execute() {
|
|
8
|
+
return this.repository.execute();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
const ListLanguagesUseCase_ListLanguagesUseCase = createImplementation({
|
|
12
|
+
abstraction: ListLanguagesUseCase,
|
|
13
|
+
implementation: ListLanguagesUseCaseImpl,
|
|
14
|
+
dependencies: [
|
|
15
|
+
ListLanguagesRepository
|
|
16
|
+
]
|
|
17
|
+
});
|
|
18
|
+
export { ListLanguagesUseCase_ListLanguagesUseCase as ListLanguagesUseCase };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=ListLanguagesUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/ListLanguages/ListLanguagesUseCase.js","sources":["../../../../src/api/features/ListLanguages/ListLanguagesUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport {\n ListLanguagesUseCase as UseCaseAbstraction,\n ListLanguagesRepository\n} from \"./abstractions.js\";\n\nclass ListLanguagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListLanguagesRepository.Interface) {}\n\n async execute(): UseCaseAbstraction.Return {\n return this.repository.execute();\n }\n}\n\nexport const ListLanguagesUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: ListLanguagesUseCaseImpl,\n dependencies: [ListLanguagesRepository]\n});\n"],"names":["ListLanguagesUseCaseImpl","repository","ListLanguagesUseCase","createImplementation","UseCaseAbstraction","ListLanguagesRepository"],"mappings":";;AAMA,MAAMA;IACF,YAAoBC,UAA6C,CAAE;aAA/CA,UAAU,GAAVA;IAAgD;IAEpE,MAAM,UAAqC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO;IAClC;AACJ;AAEO,MAAMC,4CAAuBC,qBAAqB;IACrD,aAAaC;IACb,gBAAgBJ;IAChB,cAAc;QAACK;KAAwB;AAC3C"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { Language } from "../../../api/domain/Language.js";
|
|
3
|
+
import type { LanguagePersistenceError } from "../../../api/domain/errors.js";
|
|
4
|
+
export interface IListLanguagesRepository {
|
|
5
|
+
execute(): Promise<Result<Language[], RepositoryError>>;
|
|
6
|
+
}
|
|
7
|
+
export interface IListLanguagesRepositoryErrors {
|
|
8
|
+
persistence: LanguagePersistenceError;
|
|
9
|
+
}
|
|
10
|
+
type RepositoryError = IListLanguagesRepositoryErrors[keyof IListLanguagesRepositoryErrors];
|
|
11
|
+
export declare const ListLanguagesRepository: import("@webiny/di").Abstraction<IListLanguagesRepository>;
|
|
12
|
+
export declare namespace ListLanguagesRepository {
|
|
13
|
+
type Interface = IListLanguagesRepository;
|
|
14
|
+
type Return = Promise<Result<Language[], RepositoryError>>;
|
|
15
|
+
type Error = RepositoryError;
|
|
16
|
+
}
|
|
17
|
+
export interface IListLanguagesUseCase {
|
|
18
|
+
execute(): Promise<Result<Language[], UseCaseError>>;
|
|
19
|
+
}
|
|
20
|
+
export interface IListLanguagesUseCaseErrors {
|
|
21
|
+
persistence: LanguagePersistenceError;
|
|
22
|
+
}
|
|
23
|
+
type UseCaseError = IListLanguagesUseCaseErrors[keyof IListLanguagesUseCaseErrors];
|
|
24
|
+
/** List all language entries. */
|
|
25
|
+
export declare const ListLanguagesUseCase: import("@webiny/di").Abstraction<IListLanguagesUseCase>;
|
|
26
|
+
export declare namespace ListLanguagesUseCase {
|
|
27
|
+
type Interface = IListLanguagesUseCase;
|
|
28
|
+
type Return = Promise<Result<Language[], UseCaseError>>;
|
|
29
|
+
type Error = UseCaseError;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const ListLanguagesRepository = createAbstraction("Languages/ListLanguagesRepository");
|
|
3
|
+
const ListLanguagesUseCase = createAbstraction("Languages/ListLanguagesUseCase");
|
|
4
|
+
export { ListLanguagesRepository, ListLanguagesUseCase };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/ListLanguages/abstractions.js","sources":["../../../../src/api/features/ListLanguages/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { Language } from \"~/api/domain/Language.js\";\nimport type { LanguagePersistenceError } from \"~/api/domain/errors.js\";\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IListLanguagesRepository {\n execute(): Promise<Result<Language[], RepositoryError>>;\n}\n\nexport interface IListLanguagesRepositoryErrors {\n persistence: LanguagePersistenceError;\n}\n\ntype RepositoryError = IListLanguagesRepositoryErrors[keyof IListLanguagesRepositoryErrors];\n\nexport const ListLanguagesRepository = createAbstraction<IListLanguagesRepository>(\n \"Languages/ListLanguagesRepository\"\n);\n\nexport namespace ListLanguagesRepository {\n export type Interface = IListLanguagesRepository;\n export type Return = Promise<Result<Language[], RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IListLanguagesUseCase {\n execute(): Promise<Result<Language[], UseCaseError>>;\n}\n\nexport interface IListLanguagesUseCaseErrors {\n persistence: LanguagePersistenceError;\n}\n\ntype UseCaseError = IListLanguagesUseCaseErrors[keyof IListLanguagesUseCaseErrors];\n\n/** List all language entries. */\nexport const ListLanguagesUseCase = createAbstraction<IListLanguagesUseCase>(\n \"Languages/ListLanguagesUseCase\"\n);\n\nexport namespace ListLanguagesUseCase {\n export type Interface = IListLanguagesUseCase;\n export type Return = Promise<Result<Language[], UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"names":["ListLanguagesRepository","createAbstraction","ListLanguagesUseCase"],"mappings":";AAkBO,MAAMA,0BAA0BC,kBACnC;AAwBG,MAAMC,uBAAuBD,kBAChC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { ListLanguagesRepository } from "./ListLanguagesRepository.js";
|
|
3
|
+
import { ListLanguagesUseCase } from "./ListLanguagesUseCase.js";
|
|
4
|
+
const ListLanguagesFeature = createFeature({
|
|
5
|
+
name: "Languages/ListLanguages",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(ListLanguagesRepository).inSingletonScope();
|
|
8
|
+
container.register(ListLanguagesUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { ListLanguagesFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/ListLanguages/feature.js","sources":["../../../../src/api/features/ListLanguages/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListLanguagesRepository } from \"./ListLanguagesRepository.js\";\nimport { ListLanguagesUseCase } from \"./ListLanguagesUseCase.js\";\n\nexport const ListLanguagesFeature = createFeature({\n name: \"Languages/ListLanguages\",\n register(container) {\n container.register(ListLanguagesRepository).inSingletonScope();\n container.register(ListLanguagesUseCase);\n }\n});\n"],"names":["ListLanguagesFeature","createFeature","container","ListLanguagesRepository","ListLanguagesUseCase"],"mappings":";;;AAIO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,yBAAyB,gBAAgB;QAC5DD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ListLanguagesUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ListLanguagesUseCase } from "./abstractions.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Permissions } from "@webiny/api-core/features/security/permissions/index.js";
|
|
2
|
+
import { LANGUAGES_PERMISSIONS_SCHEMA } from "../../../api/domain/permissionsSchema.js";
|
|
3
|
+
export declare const LanguagesPermissions: import("@webiny/di").Abstraction<import("@webiny/api-core/features/security/permissions/types").PermissionsTyped<{
|
|
4
|
+
readonly prefix: "languages";
|
|
5
|
+
readonly fullAccess: true;
|
|
6
|
+
readonly readOnlyAccess: true;
|
|
7
|
+
}>>;
|
|
8
|
+
export declare namespace LanguagesPermissions {
|
|
9
|
+
type Interface = Permissions<typeof LANGUAGES_PERMISSIONS_SCHEMA>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createPermissionsAbstraction } from "@webiny/api-core/features/security/permissions/index.js";
|
|
2
|
+
import { LANGUAGES_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
|
+
const LanguagesPermissions = createPermissionsAbstraction(LANGUAGES_PERMISSIONS_SCHEMA);
|
|
4
|
+
export { LanguagesPermissions };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/Permissions/abstractions.js","sources":["../../../../src/api/features/Permissions/abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport type { Permissions } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport { LANGUAGES_PERMISSIONS_SCHEMA } from \"~/api/domain/permissionsSchema.js\";\n\nexport const LanguagesPermissions = createPermissionsAbstraction(LANGUAGES_PERMISSIONS_SCHEMA);\n\nexport namespace LanguagesPermissions {\n export type Interface = Permissions<typeof LANGUAGES_PERMISSIONS_SCHEMA>;\n}\n"],"names":["LanguagesPermissions","createPermissionsAbstraction","LANGUAGES_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,uBAAuBC,6BAA6BC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createPermissionsFeature } from "@webiny/api-core/features/security/permissions/index.js";
|
|
2
|
+
import { LANGUAGES_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
|
|
3
|
+
import { LanguagesPermissions } from "./abstractions.js";
|
|
4
|
+
const LanguagesPermissionsFeature = createPermissionsFeature(LANGUAGES_PERMISSIONS_SCHEMA, LanguagesPermissions);
|
|
5
|
+
export { LanguagesPermissionsFeature };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/Permissions/feature.js","sources":["../../../../src/api/features/Permissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport { LANGUAGES_PERMISSIONS_SCHEMA } from \"~/api/domain/permissionsSchema.js\";\nimport { LanguagesPermissions } from \"~/api/features/Permissions/abstractions.js\";\n\nexport const LanguagesPermissionsFeature = createPermissionsFeature(\n LANGUAGES_PERMISSIONS_SCHEMA,\n LanguagesPermissions\n);\n"],"names":["LanguagesPermissionsFeature","createPermissionsFeature","LANGUAGES_PERMISSIONS_SCHEMA","LanguagesPermissions"],"mappings":";;;AAIO,MAAMA,8BAA8BC,yBACvCC,8BACAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CoreGraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.core.js";
|
|
2
|
+
declare class LanguagesGraphQLSchemaImpl implements CoreGraphQLSchemaFactory.Interface {
|
|
3
|
+
execute(builder: CoreGraphQLSchemaFactory.SchemaBuilder): Promise<CoreGraphQLSchemaFactory.SchemaBuilder>;
|
|
4
|
+
}
|
|
5
|
+
export declare const LanguagesGraphQLSchema: typeof LanguagesGraphQLSchemaImpl & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.core.js").ICoreGraphQLSchemaFactory>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ErrorResponse, Response } from "@webiny/api-graphql";
|
|
2
|
+
import { ListLanguagesUseCase } from "../features/ListLanguages/index.js";
|
|
3
|
+
import { CoreGraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.core.js";
|
|
4
|
+
class LanguagesGraphQLSchemaImpl {
|
|
5
|
+
async execute(builder) {
|
|
6
|
+
builder.addTypeDefs(`
|
|
7
|
+
type LanguagesQuery {
|
|
8
|
+
listLanguages: LanguagesListResponse!
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
type Language {
|
|
12
|
+
id: ID!
|
|
13
|
+
code: String!
|
|
14
|
+
name: String!
|
|
15
|
+
direction: String
|
|
16
|
+
isDefault: Boolean
|
|
17
|
+
enabled: Boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
type LanguagesListResponse {
|
|
21
|
+
data: [Language!]
|
|
22
|
+
error: LanguagesError
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
type LanguagesError {
|
|
26
|
+
code: String!
|
|
27
|
+
message: String!
|
|
28
|
+
data: JSON
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
extend type Query {
|
|
32
|
+
languages: LanguagesQuery
|
|
33
|
+
}
|
|
34
|
+
`);
|
|
35
|
+
builder.addResolver({
|
|
36
|
+
path: "Query.languages",
|
|
37
|
+
resolver: ()=>()=>({})
|
|
38
|
+
});
|
|
39
|
+
builder.addResolver({
|
|
40
|
+
path: "LanguagesQuery.listLanguages",
|
|
41
|
+
dependencies: [
|
|
42
|
+
ListLanguagesUseCase
|
|
43
|
+
],
|
|
44
|
+
resolver: (listLanguages)=>async ()=>{
|
|
45
|
+
const result = await listLanguages.execute();
|
|
46
|
+
if (result.isFail()) return new ErrorResponse(result.error);
|
|
47
|
+
return new Response(result.value);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return builder;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const LanguagesGraphQLSchema = CoreGraphQLSchemaFactory.createImplementation({
|
|
54
|
+
implementation: LanguagesGraphQLSchemaImpl,
|
|
55
|
+
dependencies: []
|
|
56
|
+
});
|
|
57
|
+
export { LanguagesGraphQLSchema };
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=LanguagesGraphQLSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/graphql/LanguagesGraphQLSchema.js","sources":["../../../src/api/graphql/LanguagesGraphQLSchema.ts"],"sourcesContent":["import { Response, ErrorResponse } from \"@webiny/api-graphql\";\nimport { ListLanguagesUseCase } from \"~/api/features/ListLanguages/index.js\";\nimport { CoreGraphQLSchemaFactory } from \"@webiny/api-graphql/graphql/abstractions.core.js\";\n\nclass LanguagesGraphQLSchemaImpl implements CoreGraphQLSchemaFactory.Interface {\n async execute(\n builder: CoreGraphQLSchemaFactory.SchemaBuilder\n ): Promise<CoreGraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n type LanguagesQuery {\n listLanguages: LanguagesListResponse!\n }\n\n type Language {\n id: ID!\n code: String!\n name: String!\n direction: String\n isDefault: Boolean\n enabled: Boolean\n }\n\n type LanguagesListResponse {\n data: [Language!]\n error: LanguagesError\n }\n\n type LanguagesError {\n code: String!\n message: String!\n data: JSON\n }\n\n extend type Query {\n languages: LanguagesQuery\n }\n `);\n\n // Namespace resolver\n builder.addResolver({\n path: \"Query.languages\",\n resolver: () => {\n return () => ({});\n }\n });\n\n // List languages resolver\n builder.addResolver({\n path: \"LanguagesQuery.listLanguages\",\n dependencies: [ListLanguagesUseCase],\n resolver: (listLanguages: ListLanguagesUseCase.Interface) => {\n return async () => {\n const result = await listLanguages.execute();\n\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n\n return new Response(result.value);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport const LanguagesGraphQLSchema = CoreGraphQLSchemaFactory.createImplementation({\n implementation: LanguagesGraphQLSchemaImpl,\n dependencies: []\n});\n"],"names":["LanguagesGraphQLSchemaImpl","builder","ListLanguagesUseCase","listLanguages","result","ErrorResponse","Response","LanguagesGraphQLSchema","CoreGraphQLSchemaFactory"],"mappings":";;;AAIA,MAAMA;IACF,MAAM,QACFC,OAA+C,EACA;QAC/CA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4BnC,CAAC;QAGDA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,UAAU,IACC,IAAO,EAAC;QAEvB;QAGAA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,cAAc;gBAACC;aAAqB;YACpC,UAAU,CAACC,gBACA;oBACH,MAAMC,SAAS,MAAMD,cAAc,OAAO;oBAE1C,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAGzC,OAAO,IAAIE,SAASF,OAAO,KAAK;gBACpC;QAER;QAEA,OAAOH;IACX;AACJ;AAEO,MAAMM,yBAAyBC,yBAAyB,oBAAoB,CAAC;IAChF,gBAAgBR;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useLanguages } from "../../admin/presentation/hooks/useLanguages.js";
|