@webiny/languages 6.3.0-beta.4 → 6.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/Languages.js +8 -9
  2. package/Languages.js.map +1 -1
  3. package/admin/Extension.js +21 -25
  4. package/admin/Extension.js.map +1 -1
  5. package/admin/GenericCell.js +7 -12
  6. package/admin/GenericCell.js.map +1 -1
  7. package/admin/LanguageEntryList.js +31 -30
  8. package/admin/LanguageEntryList.js.map +1 -1
  9. package/admin/PermissionsSchema.js +5 -4
  10. package/admin/PermissionsSchema.js.map +1 -1
  11. package/admin/SecurityPermission.js +11 -14
  12. package/admin/SecurityPermission.js.map +1 -1
  13. package/admin/features/listLanguages/LanguageEntryAfterCreateHandler.js +14 -11
  14. package/admin/features/listLanguages/LanguageEntryAfterCreateHandler.js.map +1 -1
  15. package/admin/features/listLanguages/LanguageEntryAfterDeleteHandler.js +12 -11
  16. package/admin/features/listLanguages/LanguageEntryAfterDeleteHandler.js.map +1 -1
  17. package/admin/features/listLanguages/LanguageEntryAfterUpdateHandler.js +16 -17
  18. package/admin/features/listLanguages/LanguageEntryAfterUpdateHandler.js.map +1 -1
  19. package/admin/features/listLanguages/ListLanguagesGateway.js +18 -17
  20. package/admin/features/listLanguages/ListLanguagesGateway.js.map +1 -1
  21. package/admin/features/listLanguages/ListLanguagesRepository.js +23 -23
  22. package/admin/features/listLanguages/ListLanguagesRepository.js.map +1 -1
  23. package/admin/features/listLanguages/ListLanguagesUseCase.js +13 -10
  24. package/admin/features/listLanguages/ListLanguagesUseCase.js.map +1 -1
  25. package/admin/features/listLanguages/abstractions.js +5 -27
  26. package/admin/features/listLanguages/abstractions.js.map +1 -1
  27. package/admin/features/listLanguages/feature.js +22 -21
  28. package/admin/features/listLanguages/feature.js.map +1 -1
  29. package/admin/features/listLanguages/index.js +0 -2
  30. package/admin/features/listLanguages/toLanguageDto.js +10 -9
  31. package/admin/features/listLanguages/toLanguageDto.js.map +1 -1
  32. package/admin/presentation/hooks/useLanguages.js +20 -19
  33. package/admin/presentation/hooks/useLanguages.js.map +1 -1
  34. package/api/Extension.js +12 -15
  35. package/api/Extension.js.map +1 -1
  36. package/api/domain/Language.js +0 -3
  37. package/api/domain/LanguageModel.js +49 -24
  38. package/api/domain/LanguageModel.js.map +1 -1
  39. package/api/domain/errors.js +16 -17
  40. package/api/domain/errors.js.map +1 -1
  41. package/api/domain/permissionsSchema.js +5 -4
  42. package/api/domain/permissionsSchema.js.map +1 -1
  43. package/api/features/AddCmsPermissions/AddCmsPermissions.js +41 -32
  44. package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -1
  45. package/api/features/AddCmsPermissions/feature.js +6 -5
  46. package/api/features/AddCmsPermissions/feature.js.map +1 -1
  47. package/api/features/EnsureSingleDefaultLanguage/UnsetDefaultLanguagesHandler.js +36 -46
  48. package/api/features/EnsureSingleDefaultLanguage/UnsetDefaultLanguagesHandler.js.map +1 -1
  49. package/api/features/EnsureSingleDefaultLanguage/feature.js +6 -5
  50. package/api/features/EnsureSingleDefaultLanguage/feature.js.map +1 -1
  51. package/api/features/GetLanguageByCode/GetLanguageByCodeRepository.js +36 -40
  52. package/api/features/GetLanguageByCode/GetLanguageByCodeRepository.js.map +1 -1
  53. package/api/features/GetLanguageByCode/GetLanguageByCodeUseCase.js +14 -11
  54. package/api/features/GetLanguageByCode/GetLanguageByCodeUseCase.js.map +1 -1
  55. package/api/features/GetLanguageByCode/abstractions.js +3 -13
  56. package/api/features/GetLanguageByCode/abstractions.js.map +1 -1
  57. package/api/features/GetLanguageByCode/feature.js +7 -6
  58. package/api/features/GetLanguageByCode/feature.js.map +1 -1
  59. package/api/features/GetLanguageByCode/index.js +0 -2
  60. package/api/features/ListLanguages/ListLanguagesRepository.js +36 -34
  61. package/api/features/ListLanguages/ListLanguagesRepository.js.map +1 -1
  62. package/api/features/ListLanguages/ListLanguagesUseCase.js +14 -11
  63. package/api/features/ListLanguages/ListLanguagesUseCase.js.map +1 -1
  64. package/api/features/ListLanguages/abstractions.js +3 -13
  65. package/api/features/ListLanguages/abstractions.js.map +1 -1
  66. package/api/features/ListLanguages/feature.js +7 -6
  67. package/api/features/ListLanguages/feature.js.map +1 -1
  68. package/api/features/ListLanguages/index.js +0 -2
  69. package/api/features/Permissions/abstractions.js +2 -1
  70. package/api/features/Permissions/abstractions.js.map +1 -1
  71. package/api/features/Permissions/feature.js +2 -1
  72. package/api/features/Permissions/feature.js.map +1 -1
  73. package/api/graphql/LanguagesGraphQLSchema.js +24 -31
  74. package/api/graphql/LanguagesGraphQLSchema.js.map +1 -1
  75. package/exports/admin/languages.js +0 -2
  76. package/exports/api/languages.js +0 -2
  77. package/index.js +0 -2
  78. package/package.json +21 -21
  79. package/shared/constants.js +2 -1
  80. package/shared/constants.js.map +1 -1
  81. package/admin/features/listLanguages/index.js.map +0 -1
  82. package/api/domain/Language.js.map +0 -1
  83. package/api/features/GetLanguageByCode/index.js.map +0 -1
  84. package/api/features/ListLanguages/index.js.map +0 -1
  85. package/exports/admin/languages.js.map +0 -1
  86. package/exports/api/languages.js.map +0 -1
  87. package/index.js.map +0 -1
@@ -1,15 +1,18 @@
1
- import { ListLanguagesUseCase as UseCaseAbstraction, ListLanguagesRepository } from "./abstractions.js";
1
+ import { ListLanguagesRepository, ListLanguagesUseCase } from "./abstractions.js";
2
2
  class ListLanguagesUseCaseImpl {
3
- constructor(repository) {
4
- this.repository = repository;
5
- }
6
- async execute() {
7
- return await this.repository.execute();
8
- }
3
+ constructor(repository){
4
+ this.repository = repository;
5
+ }
6
+ async execute() {
7
+ return await this.repository.execute();
8
+ }
9
9
  }
10
- export const ListLanguagesUseCase = UseCaseAbstraction.createImplementation({
11
- implementation: ListLanguagesUseCaseImpl,
12
- dependencies: [ListLanguagesRepository]
10
+ const ListLanguagesUseCase_ListLanguagesUseCase = ListLanguagesUseCase.createImplementation({
11
+ implementation: ListLanguagesUseCaseImpl,
12
+ dependencies: [
13
+ ListLanguagesRepository
14
+ ]
13
15
  });
16
+ export { ListLanguagesUseCase_ListLanguagesUseCase as ListLanguagesUseCase };
14
17
 
15
18
  //# sourceMappingURL=ListLanguagesUseCase.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ListLanguagesUseCase","UseCaseAbstraction","ListLanguagesRepository","ListLanguagesUseCaseImpl","constructor","repository","execute","createImplementation","implementation","dependencies"],"sources":["ListLanguagesUseCase.ts"],"sourcesContent":["import {\n ListLanguagesUseCase as UseCaseAbstraction,\n ListLanguagesRepository,\n LanguageDto\n} from \"./abstractions.js\";\n\nclass ListLanguagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListLanguagesRepository.Interface) {}\n\n async execute(): Promise<LanguageDto[]> {\n return await this.repository.execute();\n }\n}\n\nexport const ListLanguagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListLanguagesUseCaseImpl,\n dependencies: [ListLanguagesRepository]\n});\n"],"mappings":"AAAA,SACIA,oBAAoB,IAAIC,kBAAkB,EAC1CC,uBAAuB;AAI3B,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CAASC,UAA6C,EAAE;IAAA,KAA/CA,UAA6C,GAA7CA,UAA6C;EAAG;EAEpE,MAAMC,OAAOA,CAAA,EAA2B;IACpC,OAAO,MAAM,IAAI,CAACD,UAAU,CAACC,OAAO,CAAC,CAAC;EAC1C;AACJ;AAEA,OAAO,MAAMN,oBAAoB,GAAGC,kBAAkB,CAACM,oBAAoB,CAAC;EACxEC,cAAc,EAAEL,wBAAwB;EACxCM,YAAY,EAAE,CAACP,uBAAuB;AAC1C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"admin/features/listLanguages/ListLanguagesUseCase.js","sources":["../../../../src/admin/features/listLanguages/ListLanguagesUseCase.ts"],"sourcesContent":["import {\n ListLanguagesUseCase as UseCaseAbstraction,\n ListLanguagesRepository,\n LanguageDto\n} from \"./abstractions.js\";\n\nclass ListLanguagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListLanguagesRepository.Interface) {}\n\n async execute(): Promise<LanguageDto[]> {\n return await this.repository.execute();\n }\n}\n\nexport const ListLanguagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListLanguagesUseCaseImpl,\n dependencies: [ListLanguagesRepository]\n});\n"],"names":["ListLanguagesUseCaseImpl","repository","ListLanguagesUseCase","UseCaseAbstraction","ListLanguagesRepository"],"mappings":";AAMA,MAAMA;IACF,YAAoBC,UAA6C,CAAE;aAA/CA,UAAU,GAAVA;IAAgD;IAEpE,MAAM,UAAkC;QACpC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO;IACxC;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBH;IAChB,cAAc;QAACI;KAAwB;AAC3C"}
@@ -1,30 +1,8 @@
1
1
  import { createAbstraction } from "@webiny/feature/admin";
2
-
3
- //
4
- // DTO
5
- //
6
-
7
- //
8
- // Cache
9
- //
10
- export const LanguagesCache = createAbstraction("Languages/LanguagesCache");
11
-
12
- //
13
- // UseCase
14
- //
15
-
16
- export const ListLanguagesUseCase = createAbstraction("Languages/ListLanguagesUseCase");
17
-
18
- //
19
- // Repository
20
- //
21
-
22
- export const ListLanguagesRepository = createAbstraction("Languages/ListLanguagesRepository");
23
-
24
- //
25
- // Gateway
26
- //
27
-
28
- export const ListLanguagesGateway = createAbstraction("Languages/ListLanguagesGateway");
2
+ const LanguagesCache = createAbstraction("Languages/LanguagesCache");
3
+ const ListLanguagesUseCase = createAbstraction("Languages/ListLanguagesUseCase");
4
+ const ListLanguagesRepository = createAbstraction("Languages/ListLanguagesRepository");
5
+ const ListLanguagesGateway = createAbstraction("Languages/ListLanguagesGateway");
6
+ export { LanguagesCache, ListLanguagesGateway, ListLanguagesRepository, ListLanguagesUseCase };
29
7
 
30
8
  //# sourceMappingURL=abstractions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","LanguagesCache","ListLanguagesUseCase","ListLanguagesRepository","ListLanguagesGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IListCache } from \"@webiny/app-headless-cms/features/ListCache.js\";\n\n//\n// DTO\n//\nexport interface LanguageDto {\n id: string;\n code: string;\n name: string;\n direction?: \"ltr\" | \"rtl\";\n isDefault?: boolean;\n enabled?: boolean;\n}\n\n//\n// Cache\n//\nexport const LanguagesCache = createAbstraction<IListCache<LanguageDto>>(\n \"Languages/LanguagesCache\"\n);\n\nexport namespace LanguagesCache {\n export type Interface = IListCache<LanguageDto>;\n}\n\n//\n// UseCase\n//\nexport interface IListLanguagesUseCase {\n execute(): Promise<LanguageDto[]>;\n}\n\nexport const ListLanguagesUseCase = createAbstraction<IListLanguagesUseCase>(\n \"Languages/ListLanguagesUseCase\"\n);\n\nexport namespace ListLanguagesUseCase {\n export type Interface = IListLanguagesUseCase;\n}\n\n//\n// Repository\n//\nexport interface IListLanguagesRepository {\n execute(): Promise<LanguageDto[]>;\n getLanguages(): LanguageDto[];\n}\n\nexport const ListLanguagesRepository = createAbstraction<IListLanguagesRepository>(\n \"Languages/ListLanguagesRepository\"\n);\n\nexport namespace ListLanguagesRepository {\n export type Interface = IListLanguagesRepository;\n}\n\n//\n// Gateway\n//\nexport interface IListLanguagesGateway {\n execute(): Promise<LanguageDto[]>;\n}\n\nexport const ListLanguagesGateway = createAbstraction<IListLanguagesGateway>(\n \"Languages/ListLanguagesGateway\"\n);\n\nexport namespace ListLanguagesGateway {\n export type Interface = IListLanguagesGateway;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;;AAGzD;AACA;AACA;;AAUA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAGD,iBAAiB,CAC3C,0BACJ,CAAC;;AAMD;AACA;AACA;;AAKA,OAAO,MAAME,oBAAoB,GAAGF,iBAAiB,CACjD,gCACJ,CAAC;;AAMD;AACA;AACA;;AAMA,OAAO,MAAMG,uBAAuB,GAAGH,iBAAiB,CACpD,mCACJ,CAAC;;AAMD;AACA;AACA;;AAKA,OAAO,MAAMI,oBAAoB,GAAGJ,iBAAiB,CACjD,gCACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"admin/features/listLanguages/abstractions.js","sources":["../../../../src/admin/features/listLanguages/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IListCache } from \"@webiny/app-headless-cms/features/ListCache.js\";\n\n//\n// DTO\n//\nexport interface LanguageDto {\n id: string;\n code: string;\n name: string;\n direction?: \"ltr\" | \"rtl\";\n isDefault?: boolean;\n enabled?: boolean;\n}\n\n//\n// Cache\n//\nexport const LanguagesCache = createAbstraction<IListCache<LanguageDto>>(\n \"Languages/LanguagesCache\"\n);\n\nexport namespace LanguagesCache {\n export type Interface = IListCache<LanguageDto>;\n}\n\n//\n// UseCase\n//\nexport interface IListLanguagesUseCase {\n execute(): Promise<LanguageDto[]>;\n}\n\nexport const ListLanguagesUseCase = createAbstraction<IListLanguagesUseCase>(\n \"Languages/ListLanguagesUseCase\"\n);\n\nexport namespace ListLanguagesUseCase {\n export type Interface = IListLanguagesUseCase;\n}\n\n//\n// Repository\n//\nexport interface IListLanguagesRepository {\n execute(): Promise<LanguageDto[]>;\n getLanguages(): LanguageDto[];\n}\n\nexport const ListLanguagesRepository = createAbstraction<IListLanguagesRepository>(\n \"Languages/ListLanguagesRepository\"\n);\n\nexport namespace ListLanguagesRepository {\n export type Interface = IListLanguagesRepository;\n}\n\n//\n// Gateway\n//\nexport interface IListLanguagesGateway {\n execute(): Promise<LanguageDto[]>;\n}\n\nexport const ListLanguagesGateway = createAbstraction<IListLanguagesGateway>(\n \"Languages/ListLanguagesGateway\"\n);\n\nexport namespace ListLanguagesGateway {\n export type Interface = IListLanguagesGateway;\n}\n"],"names":["LanguagesCache","createAbstraction","ListLanguagesUseCase","ListLanguagesRepository","ListLanguagesGateway"],"mappings":";AAkBO,MAAMA,iBAAiBC,kBAC1B;AAcG,MAAMC,uBAAuBD,kBAChC;AAeG,MAAME,0BAA0BF,kBACnC;AAcG,MAAMG,uBAAuBH,kBAChC"}
@@ -1,30 +1,31 @@
1
1
  import { createFeature } from "@webiny/feature/admin";
2
- import { ListLanguagesUseCase as UseCaseAbstraction, ListLanguagesRepository as RepositoryAbstraction, LanguagesCache } from "./abstractions.js";
3
- import { ListLanguagesUseCase } from "./ListLanguagesUseCase.js";
4
- import { ListLanguagesRepository } from "./ListLanguagesRepository.js";
2
+ import { LanguagesCache, ListLanguagesRepository, ListLanguagesUseCase } from "./abstractions.js";
3
+ import { ListLanguagesUseCase as external_ListLanguagesUseCase_js_ListLanguagesUseCase } from "./ListLanguagesUseCase.js";
4
+ import { ListLanguagesRepository as external_ListLanguagesRepository_js_ListLanguagesRepository } from "./ListLanguagesRepository.js";
5
5
  import { ListLanguagesGateway } from "./ListLanguagesGateway.js";
6
6
  import { LanguageEntryAfterCreateHandler } from "./LanguageEntryAfterCreateHandler.js";
7
7
  import { LanguageEntryAfterUpdateHandler } from "./LanguageEntryAfterUpdateHandler.js";
8
8
  import { LanguageEntryAfterDeleteHandler } from "./LanguageEntryAfterDeleteHandler.js";
9
9
  import { ListCache } from "@webiny/app-headless-cms/features/ListCache.js";
10
- export const ListLanguagesFeature = createFeature({
11
- name: "Languages/ListLanguages",
12
- register(container) {
13
- container.registerInstance(LanguagesCache, new ListCache());
14
- container.register(ListLanguagesUseCase);
15
- container.register(ListLanguagesRepository).inSingletonScope();
16
- container.register(ListLanguagesGateway).inSingletonScope();
17
- container.register(LanguageEntryAfterCreateHandler);
18
- container.register(LanguageEntryAfterUpdateHandler);
19
- container.register(LanguageEntryAfterDeleteHandler);
20
- },
21
- resolve(container) {
22
- return {
23
- useCase: container.resolve(UseCaseAbstraction),
24
- repository: container.resolve(RepositoryAbstraction),
25
- cache: container.resolve(LanguagesCache)
26
- };
27
- }
10
+ const ListLanguagesFeature = createFeature({
11
+ name: "Languages/ListLanguages",
12
+ register (container) {
13
+ container.registerInstance(LanguagesCache, new ListCache());
14
+ container.register(external_ListLanguagesUseCase_js_ListLanguagesUseCase);
15
+ container.register(external_ListLanguagesRepository_js_ListLanguagesRepository).inSingletonScope();
16
+ container.register(ListLanguagesGateway).inSingletonScope();
17
+ container.register(LanguageEntryAfterCreateHandler);
18
+ container.register(LanguageEntryAfterUpdateHandler);
19
+ container.register(LanguageEntryAfterDeleteHandler);
20
+ },
21
+ resolve (container) {
22
+ return {
23
+ useCase: container.resolve(ListLanguagesUseCase),
24
+ repository: container.resolve(ListLanguagesRepository),
25
+ cache: container.resolve(LanguagesCache)
26
+ };
27
+ }
28
28
  });
29
+ export { ListLanguagesFeature };
29
30
 
30
31
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","ListLanguagesUseCase","UseCaseAbstraction","ListLanguagesRepository","RepositoryAbstraction","LanguagesCache","ListLanguagesGateway","LanguageEntryAfterCreateHandler","LanguageEntryAfterUpdateHandler","LanguageEntryAfterDeleteHandler","ListCache","ListLanguagesFeature","name","register","container","registerInstance","inSingletonScope","resolve","useCase","repository","cache"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport {\n ListLanguagesUseCase as UseCaseAbstraction,\n ListLanguagesRepository as RepositoryAbstraction,\n LanguagesCache\n} from \"./abstractions.js\";\nimport type { LanguageDto } from \"./abstractions.js\";\nimport { ListLanguagesUseCase } from \"./ListLanguagesUseCase.js\";\nimport { ListLanguagesRepository } from \"./ListLanguagesRepository.js\";\nimport { ListLanguagesGateway } from \"./ListLanguagesGateway.js\";\nimport { LanguageEntryAfterCreateHandler } from \"./LanguageEntryAfterCreateHandler.js\";\nimport { LanguageEntryAfterUpdateHandler } from \"./LanguageEntryAfterUpdateHandler.js\";\nimport { LanguageEntryAfterDeleteHandler } from \"./LanguageEntryAfterDeleteHandler.js\";\nimport { ListCache } from \"@webiny/app-headless-cms/features/ListCache.js\";\n\nexport const ListLanguagesFeature = createFeature({\n name: \"Languages/ListLanguages\",\n register(container) {\n container.registerInstance(LanguagesCache, new ListCache<LanguageDto>());\n container.register(ListLanguagesUseCase);\n container.register(ListLanguagesRepository).inSingletonScope();\n container.register(ListLanguagesGateway).inSingletonScope();\n container.register(LanguageEntryAfterCreateHandler);\n container.register(LanguageEntryAfterUpdateHandler);\n container.register(LanguageEntryAfterDeleteHandler);\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction),\n repository: container.resolve(RepositoryAbstraction),\n cache: container.resolve(LanguagesCache)\n };\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SACIC,oBAAoB,IAAIC,kBAAkB,EAC1CC,uBAAuB,IAAIC,qBAAqB,EAChDC,cAAc;AAGlB,SAASJ,oBAAoB;AAC7B,SAASE,uBAAuB;AAChC,SAASG,oBAAoB;AAC7B,SAASC,+BAA+B;AACxC,SAASC,+BAA+B;AACxC,SAASC,+BAA+B;AACxC,SAASC,SAAS,QAAQ,gDAAgD;AAE1E,OAAO,MAAMC,oBAAoB,GAAGX,aAAa,CAAC;EAC9CY,IAAI,EAAE,yBAAyB;EAC/BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACC,gBAAgB,CAACV,cAAc,EAAE,IAAIK,SAAS,CAAc,CAAC,CAAC;IACxEI,SAAS,CAACD,QAAQ,CAACZ,oBAAoB,CAAC;IACxCa,SAAS,CAACD,QAAQ,CAACV,uBAAuB,CAAC,CAACa,gBAAgB,CAAC,CAAC;IAC9DF,SAAS,CAACD,QAAQ,CAACP,oBAAoB,CAAC,CAACU,gBAAgB,CAAC,CAAC;IAC3DF,SAAS,CAACD,QAAQ,CAACN,+BAA+B,CAAC;IACnDO,SAAS,CAACD,QAAQ,CAACL,+BAA+B,CAAC;IACnDM,SAAS,CAACD,QAAQ,CAACJ,+BAA+B,CAAC;EACvD,CAAC;EACDQ,OAAOA,CAACH,SAAS,EAAE;IACf,OAAO;MACHI,OAAO,EAAEJ,SAAS,CAACG,OAAO,CAACf,kBAAkB,CAAC;MAC9CiB,UAAU,EAAEL,SAAS,CAACG,OAAO,CAACb,qBAAqB,CAAC;MACpDgB,KAAK,EAAEN,SAAS,CAACG,OAAO,CAACZ,cAAc;IAC3C,CAAC;EACL;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"admin/features/listLanguages/feature.js","sources":["../../../../src/admin/features/listLanguages/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport {\n ListLanguagesUseCase as UseCaseAbstraction,\n ListLanguagesRepository as RepositoryAbstraction,\n LanguagesCache\n} from \"./abstractions.js\";\nimport type { LanguageDto } from \"./abstractions.js\";\nimport { ListLanguagesUseCase } from \"./ListLanguagesUseCase.js\";\nimport { ListLanguagesRepository } from \"./ListLanguagesRepository.js\";\nimport { ListLanguagesGateway } from \"./ListLanguagesGateway.js\";\nimport { LanguageEntryAfterCreateHandler } from \"./LanguageEntryAfterCreateHandler.js\";\nimport { LanguageEntryAfterUpdateHandler } from \"./LanguageEntryAfterUpdateHandler.js\";\nimport { LanguageEntryAfterDeleteHandler } from \"./LanguageEntryAfterDeleteHandler.js\";\nimport { ListCache } from \"@webiny/app-headless-cms/features/ListCache.js\";\n\nexport const ListLanguagesFeature = createFeature({\n name: \"Languages/ListLanguages\",\n register(container) {\n container.registerInstance(LanguagesCache, new ListCache<LanguageDto>());\n container.register(ListLanguagesUseCase);\n container.register(ListLanguagesRepository).inSingletonScope();\n container.register(ListLanguagesGateway).inSingletonScope();\n container.register(LanguageEntryAfterCreateHandler);\n container.register(LanguageEntryAfterUpdateHandler);\n container.register(LanguageEntryAfterDeleteHandler);\n },\n resolve(container) {\n return {\n useCase: container.resolve(UseCaseAbstraction),\n repository: container.resolve(RepositoryAbstraction),\n cache: container.resolve(LanguagesCache)\n };\n }\n});\n"],"names":["ListLanguagesFeature","createFeature","container","LanguagesCache","ListCache","ListLanguagesUseCase","ListLanguagesRepository","ListLanguagesGateway","LanguageEntryAfterCreateHandler","LanguageEntryAfterUpdateHandler","LanguageEntryAfterDeleteHandler","UseCaseAbstraction","RepositoryAbstraction"],"mappings":";;;;;;;;;AAeO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,gBAAgB,CAACC,gBAAgB,IAAIC;QAC/CF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI,6DAAyB,gBAAgB;QAC5DJ,UAAU,QAAQ,CAACK,sBAAsB,gBAAgB;QACzDL,UAAU,QAAQ,CAACM;QACnBN,UAAU,QAAQ,CAACO;QACnBP,UAAU,QAAQ,CAACQ;IACvB;IACA,SAAQR,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACS;YAC3B,YAAYT,UAAU,OAAO,CAACU;YAC9B,OAAOV,UAAU,OAAO,CAACC;QAC7B;IACJ;AACJ"}
@@ -1,3 +1 @@
1
1
  export { ListLanguagesFeature } from "./feature.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,12 +1,13 @@
1
- export function toLanguageDto(entry) {
2
- return {
3
- id: entry.entryId,
4
- code: entry.values.code,
5
- name: entry.values.name,
6
- direction: entry.values.direction,
7
- isDefault: entry.values.isDefault,
8
- enabled: entry.values.enabled
9
- };
1
+ function toLanguageDto(entry) {
2
+ return {
3
+ id: entry.entryId,
4
+ code: entry.values.code,
5
+ name: entry.values.name,
6
+ direction: entry.values.direction,
7
+ isDefault: entry.values.isDefault,
8
+ enabled: entry.values.enabled
9
+ };
10
10
  }
11
+ export { toLanguageDto };
11
12
 
12
13
  //# sourceMappingURL=toLanguageDto.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["toLanguageDto","entry","id","entryId","code","values","name","direction","isDefault","enabled"],"sources":["toLanguageDto.ts"],"sourcesContent":["import type { LanguageDto } from \"./abstractions.js\";\nimport type { CmsContentEntry } from \"@webiny/app-headless-cms/types.js\";\n\nexport function toLanguageDto(entry: CmsContentEntry): LanguageDto {\n return {\n id: entry.entryId,\n code: entry.values.code,\n name: entry.values.name,\n direction: entry.values.direction,\n isDefault: entry.values.isDefault,\n enabled: entry.values.enabled\n };\n}\n"],"mappings":"AAGA,OAAO,SAASA,aAAaA,CAACC,KAAsB,EAAe;EAC/D,OAAO;IACHC,EAAE,EAAED,KAAK,CAACE,OAAO;IACjBC,IAAI,EAAEH,KAAK,CAACI,MAAM,CAACD,IAAI;IACvBE,IAAI,EAAEL,KAAK,CAACI,MAAM,CAACC,IAAI;IACvBC,SAAS,EAAEN,KAAK,CAACI,MAAM,CAACE,SAAS;IACjCC,SAAS,EAAEP,KAAK,CAACI,MAAM,CAACG,SAAS;IACjCC,OAAO,EAAER,KAAK,CAACI,MAAM,CAACI;EAC1B,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"file":"admin/features/listLanguages/toLanguageDto.js","sources":["../../../../src/admin/features/listLanguages/toLanguageDto.ts"],"sourcesContent":["import type { LanguageDto } from \"./abstractions.js\";\nimport type { CmsContentEntry } from \"@webiny/app-headless-cms/types.js\";\n\nexport function toLanguageDto(entry: CmsContentEntry): LanguageDto {\n return {\n id: entry.entryId,\n code: entry.values.code,\n name: entry.values.name,\n direction: entry.values.direction,\n isDefault: entry.values.isDefault,\n enabled: entry.values.enabled\n };\n}\n"],"names":["toLanguageDto","entry"],"mappings":"AAGO,SAASA,cAAcC,KAAsB;IAChD,OAAO;QACH,IAAIA,MAAM,OAAO;QACjB,MAAMA,MAAM,MAAM,CAAC,IAAI;QACvB,MAAMA,MAAM,MAAM,CAAC,IAAI;QACvB,WAAWA,MAAM,MAAM,CAAC,SAAS;QACjC,WAAWA,MAAM,MAAM,CAAC,SAAS;QACjC,SAASA,MAAM,MAAM,CAAC,OAAO;IACjC;AACJ"}
@@ -2,25 +2,26 @@ import { useEffect, useState } from "react";
2
2
  import { autorun } from "mobx";
3
3
  import { useFeature } from "@webiny/app";
4
4
  import { ListLanguagesFeature } from "../../features/listLanguages/index.js";
5
- export const useLanguages = () => {
6
- const {
7
- useCase,
8
- cache
9
- } = useFeature(ListLanguagesFeature);
10
- const [languages, setLanguages] = useState([]);
11
- const [loading, setLoading] = useState(true);
12
- useEffect(() => {
13
- useCase.execute().then(() => {
14
- setLoading(false);
15
- });
16
- return autorun(() => {
17
- setLanguages(cache.getItems());
18
- });
19
- }, [useCase, cache]);
20
- return {
21
- loading,
22
- languages
23
- };
5
+ const useLanguages = ()=>{
6
+ const { useCase, cache } = useFeature(ListLanguagesFeature);
7
+ const [languages, setLanguages] = useState([]);
8
+ const [loading, setLoading] = useState(true);
9
+ useEffect(()=>{
10
+ useCase.execute().then(()=>{
11
+ setLoading(false);
12
+ });
13
+ return autorun(()=>{
14
+ setLanguages(cache.getItems());
15
+ });
16
+ }, [
17
+ useCase,
18
+ cache
19
+ ]);
20
+ return {
21
+ loading,
22
+ languages
23
+ };
24
24
  };
25
+ export { useLanguages };
25
26
 
26
27
  //# sourceMappingURL=useLanguages.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","autorun","useFeature","ListLanguagesFeature","useLanguages","useCase","cache","languages","setLanguages","loading","setLoading","execute","then","getItems"],"sources":["useLanguages.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport { useFeature } from \"@webiny/app\";\nimport { ListLanguagesFeature } from \"~/admin/features/listLanguages/index.js\";\nimport type { LanguageDto } from \"~/admin/features/listLanguages/index.js\";\n\nexport const useLanguages = () => {\n const { useCase, cache } = useFeature(ListLanguagesFeature);\n const [languages, setLanguages] = useState<LanguageDto[]>([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n useCase.execute().then(() => {\n setLoading(false);\n });\n\n return autorun(() => {\n setLanguages(cache.getItems());\n });\n }, [useCase, cache]);\n\n return { loading, languages };\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,OAAO,QAAQ,MAAM;AAC9B,SAASC,UAAU,QAAQ,aAAa;AACxC,SAASC,oBAAoB;AAG7B,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAC9B,MAAM;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGJ,UAAU,CAACC,oBAAoB,CAAC;EAC3D,MAAM,CAACI,SAAS,EAAEC,YAAY,CAAC,GAAGR,QAAQ,CAAgB,EAAE,CAAC;EAC7D,MAAM,CAACS,OAAO,EAAEC,UAAU,CAAC,GAAGV,QAAQ,CAAC,IAAI,CAAC;EAE5CD,SAAS,CAAC,MAAM;IACZM,OAAO,CAACM,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC,MAAM;MACzBF,UAAU,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC;IAEF,OAAOT,OAAO,CAAC,MAAM;MACjBO,YAAY,CAACF,KAAK,CAACO,QAAQ,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC;EACN,CAAC,EAAE,CAACR,OAAO,EAAEC,KAAK,CAAC,CAAC;EAEpB,OAAO;IAAEG,OAAO;IAAEF;EAAU,CAAC;AACjC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"admin/presentation/hooks/useLanguages.js","sources":["../../../../src/admin/presentation/hooks/useLanguages.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { autorun } from \"mobx\";\nimport { useFeature } from \"@webiny/app\";\nimport { ListLanguagesFeature } from \"~/admin/features/listLanguages/index.js\";\nimport type { LanguageDto } from \"~/admin/features/listLanguages/index.js\";\n\nexport const useLanguages = () => {\n const { useCase, cache } = useFeature(ListLanguagesFeature);\n const [languages, setLanguages] = useState<LanguageDto[]>([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n useCase.execute().then(() => {\n setLoading(false);\n });\n\n return autorun(() => {\n setLanguages(cache.getItems());\n });\n }, [useCase, cache]);\n\n return { loading, languages };\n};\n"],"names":["useLanguages","useCase","cache","useFeature","ListLanguagesFeature","languages","setLanguages","useState","loading","setLoading","useEffect","autorun"],"mappings":";;;;AAMO,MAAMA,eAAe;IACxB,MAAM,EAAEC,OAAO,EAAEC,KAAK,EAAE,GAAGC,WAAWC;IACtC,MAAM,CAACC,WAAWC,aAAa,GAAGC,SAAwB,EAAE;IAC5D,MAAM,CAACC,SAASC,WAAW,GAAGF,SAAS;IAEvCG,UAAU;QACNT,QAAQ,OAAO,GAAG,IAAI,CAAC;YACnBQ,WAAW;QACf;QAEA,OAAOE,QAAQ;YACXL,aAAaJ,MAAM,QAAQ;QAC/B;IACJ,GAAG;QAACD;QAASC;KAAM;IAEnB,OAAO;QAAEM;QAASH;IAAU;AAChC"}
package/api/Extension.js CHANGED
@@ -6,21 +6,18 @@ import { ListLanguagesFeature } from "./features/ListLanguages/feature.js";
6
6
  import { LanguagesGraphQLSchema } from "./graphql/LanguagesGraphQLSchema.js";
7
7
  import { AddCmsPermissionsFeature } from "./features/AddCmsPermissions/feature.js";
8
8
  import { LanguagesPermissionsFeature } from "./features/Permissions/feature.js";
9
- export const Extension = createFeature({
10
- name: "Languages",
11
- register(container) {
12
- container.register(LanguageModel);
13
-
14
- // Features
15
- EnsureSingleDefaultLanguageFeature.register(container);
16
- GetLanguageByCodeFeature.register(container);
17
- ListLanguagesFeature.register(container);
18
- AddCmsPermissionsFeature.register(container);
19
- LanguagesPermissionsFeature.register(container);
20
-
21
- // GraphQL
22
- container.register(LanguagesGraphQLSchema);
23
- }
9
+ const Extension = createFeature({
10
+ name: "Languages",
11
+ register (container) {
12
+ container.register(LanguageModel);
13
+ EnsureSingleDefaultLanguageFeature.register(container);
14
+ GetLanguageByCodeFeature.register(container);
15
+ ListLanguagesFeature.register(container);
16
+ AddCmsPermissionsFeature.register(container);
17
+ LanguagesPermissionsFeature.register(container);
18
+ container.register(LanguagesGraphQLSchema);
19
+ }
24
20
  });
21
+ export { Extension };
25
22
 
26
23
  //# sourceMappingURL=Extension.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","LanguageModel","EnsureSingleDefaultLanguageFeature","GetLanguageByCodeFeature","ListLanguagesFeature","LanguagesGraphQLSchema","AddCmsPermissionsFeature","LanguagesPermissionsFeature","Extension","name","register","container"],"sources":["Extension.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport LanguageModel from \"./domain/LanguageModel.js\";\nimport { EnsureSingleDefaultLanguageFeature } from \"./features/EnsureSingleDefaultLanguage/feature.js\";\nimport { GetLanguageByCodeFeature } from \"./features/GetLanguageByCode/feature.js\";\nimport { ListLanguagesFeature } from \"./features/ListLanguages/feature.js\";\nimport { LanguagesGraphQLSchema } from \"./graphql/LanguagesGraphQLSchema.js\";\nimport { AddCmsPermissionsFeature } from \"~/api/features/AddCmsPermissions/feature.js\";\nimport { LanguagesPermissionsFeature } from \"~/api/features/Permissions/feature.js\";\n\nexport const Extension = createFeature({\n name: \"Languages\",\n register(container) {\n container.register(LanguageModel);\n\n // Features\n EnsureSingleDefaultLanguageFeature.register(container);\n GetLanguageByCodeFeature.register(container);\n ListLanguagesFeature.register(container);\n AddCmsPermissionsFeature.register(container);\n LanguagesPermissionsFeature.register(container);\n\n // GraphQL\n container.register(LanguagesGraphQLSchema);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,OAAOC,aAAa;AACpB,SAASC,kCAAkC;AAC3C,SAASC,wBAAwB;AACjC,SAASC,oBAAoB;AAC7B,SAASC,sBAAsB;AAC/B,SAASC,wBAAwB;AACjC,SAASC,2BAA2B;AAEpC,OAAO,MAAMC,SAAS,GAAGR,aAAa,CAAC;EACnCS,IAAI,EAAE,WAAW;EACjBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACT,aAAa,CAAC;;IAEjC;IACAC,kCAAkC,CAACQ,QAAQ,CAACC,SAAS,CAAC;IACtDR,wBAAwB,CAACO,QAAQ,CAACC,SAAS,CAAC;IAC5CP,oBAAoB,CAACM,QAAQ,CAACC,SAAS,CAAC;IACxCL,wBAAwB,CAACI,QAAQ,CAACC,SAAS,CAAC;IAC5CJ,2BAA2B,CAACG,QAAQ,CAACC,SAAS,CAAC;;IAE/C;IACAA,SAAS,CAACD,QAAQ,CAACL,sBAAsB,CAAC;EAC9C;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"api/Extension.js","sources":["../../src/api/Extension.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport LanguageModel from \"./domain/LanguageModel.js\";\nimport { EnsureSingleDefaultLanguageFeature } from \"./features/EnsureSingleDefaultLanguage/feature.js\";\nimport { GetLanguageByCodeFeature } from \"./features/GetLanguageByCode/feature.js\";\nimport { ListLanguagesFeature } from \"./features/ListLanguages/feature.js\";\nimport { LanguagesGraphQLSchema } from \"./graphql/LanguagesGraphQLSchema.js\";\nimport { AddCmsPermissionsFeature } from \"~/api/features/AddCmsPermissions/feature.js\";\nimport { LanguagesPermissionsFeature } from \"~/api/features/Permissions/feature.js\";\n\nexport const Extension = createFeature({\n name: \"Languages\",\n register(container) {\n container.register(LanguageModel);\n\n // Features\n EnsureSingleDefaultLanguageFeature.register(container);\n GetLanguageByCodeFeature.register(container);\n ListLanguagesFeature.register(container);\n AddCmsPermissionsFeature.register(container);\n LanguagesPermissionsFeature.register(container);\n\n // GraphQL\n container.register(LanguagesGraphQLSchema);\n }\n});\n"],"names":["Extension","createFeature","container","LanguageModel","EnsureSingleDefaultLanguageFeature","GetLanguageByCodeFeature","ListLanguagesFeature","AddCmsPermissionsFeature","LanguagesPermissionsFeature","LanguagesGraphQLSchema"],"mappings":";;;;;;;;AASO,MAAMA,YAAYC,cAAc;IACnC,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QAGnBC,mCAAmC,QAAQ,CAACF;QAC5CG,yBAAyB,QAAQ,CAACH;QAClCI,qBAAqB,QAAQ,CAACJ;QAC9BK,yBAAyB,QAAQ,CAACL;QAClCM,4BAA4B,QAAQ,CAACN;QAGrCA,UAAU,QAAQ,CAACO;IACvB;AACJ"}
@@ -1,3 +0,0 @@
1
- export {};
2
-
3
- //# sourceMappingURL=Language.js.map
@@ -1,31 +1,56 @@
1
1
  import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
2
2
  import { LANGUAGE_MODEL_ID } from "../../shared/constants.js";
3
3
  class LanguageModelFactory {
4
- async execute(builder) {
5
- const model = builder.public({
6
- modelId: LANGUAGE_MODEL_ID,
7
- name: "Language",
8
- group: "hidden"
9
- }).description("Manage system languages.").titleFieldId("name").icon("fas/language").singularApiName("Language").pluralApiName("Languages").tags(["$publishing:false", "$hidden:true"]);
10
- model.fields(fields => ({
11
- name: fields.text().label("Name").description("The display name for this language (e.g., German, English, Arabic).").required().renderer("textInput"),
12
- code: fields.text().label("Code").description("A unique language or locale code used for URL routing and identifying content (e.g., en, de, pt-BR).").required().renderer("textInput"),
13
- direction: fields.text().label("Direction").description("Controls the text direction. Most languages read left-to-right, but some (like Arabic and Hebrew) read right-to-left.").defaultValue("ltr").renderer("dropdown").required().predefinedValues([{
14
- value: "ltr",
15
- label: "LTR"
16
- }, {
17
- value: "rtl",
18
- label: "RTL"
19
- }]),
20
- isDefault: fields.boolean().label("Is default?").description("Make this the primary language. Default language content is shown when no specific language is requested.").defaultValue(false).renderer("switch"),
21
- enabled: fields.boolean().label("Is enabled?").description("Disabled languages are hidden from the public site but can still be configured and translated in the admin.").defaultValue(false).renderer("switch")
22
- })).layout([["name"], ["code"], ["direction"], ["isDefault"], ["enabled"]]);
23
- return [model];
24
- }
4
+ async execute(builder) {
5
+ const model = builder.public({
6
+ modelId: LANGUAGE_MODEL_ID,
7
+ name: "Language",
8
+ group: "hidden"
9
+ }).description("Manage system languages.").titleFieldId("name").icon("fas/language").singularApiName("Language").pluralApiName("Languages").tags([
10
+ "$publishing:false",
11
+ "$hidden:true"
12
+ ]);
13
+ model.fields((fields)=>({
14
+ name: fields.text().label("Name").description("The display name for this language (e.g., German, English, Arabic).").required().renderer("textInput"),
15
+ code: fields.text().label("Code").description("A unique language or locale code used for URL routing and identifying content (e.g., en, de, pt-BR).").required().renderer("textInput"),
16
+ direction: fields.text().label("Direction").description("Controls the text direction. Most languages read left-to-right, but some (like Arabic and Hebrew) read right-to-left.").defaultValue("ltr").renderer("dropdown").required().predefinedValues([
17
+ {
18
+ value: "ltr",
19
+ label: "LTR"
20
+ },
21
+ {
22
+ value: "rtl",
23
+ label: "RTL"
24
+ }
25
+ ]),
26
+ isDefault: fields.boolean().label("Is default?").description("Make this the primary language. Default language content is shown when no specific language is requested.").defaultValue(false).renderer("switch"),
27
+ enabled: fields.boolean().label("Is enabled?").description("Disabled languages are hidden from the public site but can still be configured and translated in the admin.").defaultValue(false).renderer("switch")
28
+ })).layout([
29
+ [
30
+ "name"
31
+ ],
32
+ [
33
+ "code"
34
+ ],
35
+ [
36
+ "direction"
37
+ ],
38
+ [
39
+ "isDefault"
40
+ ],
41
+ [
42
+ "enabled"
43
+ ]
44
+ ]);
45
+ return [
46
+ model
47
+ ];
48
+ }
25
49
  }
26
- export default ModelFactory.createImplementation({
27
- implementation: LanguageModelFactory,
28
- dependencies: []
50
+ const LanguageModel = ModelFactory.createImplementation({
51
+ implementation: LanguageModelFactory,
52
+ dependencies: []
29
53
  });
54
+ export default LanguageModel;
30
55
 
31
56
  //# sourceMappingURL=LanguageModel.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ModelFactory","LANGUAGE_MODEL_ID","LanguageModelFactory","execute","builder","model","public","modelId","name","group","description","titleFieldId","icon","singularApiName","pluralApiName","tags","fields","text","label","required","renderer","code","direction","defaultValue","predefinedValues","value","isDefault","boolean","enabled","layout","createImplementation","implementation","dependencies"],"sources":["LanguageModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\n\nclass LanguageModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: LANGUAGE_MODEL_ID,\n name: \"Language\",\n group: \"hidden\"\n })\n .description(\"Manage system languages.\")\n .titleFieldId(\"name\")\n .icon(\"fas/language\")\n .singularApiName(\"Language\")\n .pluralApiName(\"Languages\")\n .tags([\"$publishing:false\", \"$hidden:true\"]);\n\n model\n .fields(fields => ({\n name: fields\n .text()\n .label(\"Name\")\n .description(\n \"The display name for this language (e.g., German, English, Arabic).\"\n )\n .required()\n .renderer(\"textInput\"),\n code: fields\n .text()\n .label(\"Code\")\n .description(\n \"A unique language or locale code used for URL routing and identifying content (e.g., en, de, pt-BR).\"\n )\n .required()\n .renderer(\"textInput\"),\n direction: fields\n .text()\n .label(\"Direction\")\n .description(\n \"Controls the text direction. Most languages read left-to-right, but some (like Arabic and Hebrew) read right-to-left.\"\n )\n .defaultValue(\"ltr\")\n .renderer(\"dropdown\")\n .required()\n .predefinedValues([\n {\n value: \"ltr\",\n label: \"LTR\"\n },\n {\n value: \"rtl\",\n label: \"RTL\"\n }\n ]),\n isDefault: fields\n .boolean()\n .label(\"Is default?\")\n .description(\n \"Make this the primary language. Default language content is shown when no specific language is requested.\"\n )\n .defaultValue(false)\n .renderer(\"switch\"),\n enabled: fields\n .boolean()\n .label(\"Is enabled?\")\n .description(\n \"Disabled languages are hidden from the public site but can still be configured and translated in the admin.\"\n )\n .defaultValue(false)\n .renderer(\"switch\")\n }))\n .layout([[\"name\"], [\"code\"], [\"direction\"], [\"isDefault\"], [\"enabled\"]]);\n\n return [model];\n }\n}\n\nexport default ModelFactory.createImplementation({\n implementation: LanguageModelFactory,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yDAAyD;AACtF,SAASC,iBAAiB;AAE1B,MAAMC,oBAAoB,CAAmC;EACzD,MAAMC,OAAOA,CAACC,OAA6B,EAAE;IACzC,MAAMC,KAAK,GAAGD,OAAO,CAChBE,MAAM,CAAC;MACJC,OAAO,EAAEN,iBAAiB;MAC1BO,IAAI,EAAE,UAAU;MAChBC,KAAK,EAAE;IACX,CAAC,CAAC,CACDC,WAAW,CAAC,0BAA0B,CAAC,CACvCC,YAAY,CAAC,MAAM,CAAC,CACpBC,IAAI,CAAC,cAAc,CAAC,CACpBC,eAAe,CAAC,UAAU,CAAC,CAC3BC,aAAa,CAAC,WAAW,CAAC,CAC1BC,IAAI,CAAC,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAEhDV,KAAK,CACAW,MAAM,CAACA,MAAM,KAAK;MACfR,IAAI,EAAEQ,MAAM,CACPC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,MAAM,CAAC,CACbR,WAAW,CACR,qEACJ,CAAC,CACAS,QAAQ,CAAC,CAAC,CACVC,QAAQ,CAAC,WAAW,CAAC;MAC1BC,IAAI,EAAEL,MAAM,CACPC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,MAAM,CAAC,CACbR,WAAW,CACR,sGACJ,CAAC,CACAS,QAAQ,CAAC,CAAC,CACVC,QAAQ,CAAC,WAAW,CAAC;MAC1BE,SAAS,EAAEN,MAAM,CACZC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,WAAW,CAAC,CAClBR,WAAW,CACR,uHACJ,CAAC,CACAa,YAAY,CAAC,KAAK,CAAC,CACnBH,QAAQ,CAAC,UAAU,CAAC,CACpBD,QAAQ,CAAC,CAAC,CACVK,gBAAgB,CAAC,CACd;QACIC,KAAK,EAAE,KAAK;QACZP,KAAK,EAAE;MACX,CAAC,EACD;QACIO,KAAK,EAAE,KAAK;QACZP,KAAK,EAAE;MACX,CAAC,CACJ,CAAC;MACNQ,SAAS,EAAEV,MAAM,CACZW,OAAO,CAAC,CAAC,CACTT,KAAK,CAAC,aAAa,CAAC,CACpBR,WAAW,CACR,2GACJ,CAAC,CACAa,YAAY,CAAC,KAAK,CAAC,CACnBH,QAAQ,CAAC,QAAQ,CAAC;MACvBQ,OAAO,EAAEZ,MAAM,CACVW,OAAO,CAAC,CAAC,CACTT,KAAK,CAAC,aAAa,CAAC,CACpBR,WAAW,CACR,6GACJ,CAAC,CACAa,YAAY,CAAC,KAAK,CAAC,CACnBH,QAAQ,CAAC,QAAQ;IAC1B,CAAC,CAAC,CAAC,CACFS,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5E,OAAO,CAACxB,KAAK,CAAC;EAClB;AACJ;AAEA,eAAeL,YAAY,CAAC8B,oBAAoB,CAAC;EAC7CC,cAAc,EAAE7B,oBAAoB;EACpC8B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"api/domain/LanguageModel.js","sources":["../../../src/api/domain/LanguageModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\n\nclass LanguageModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: LANGUAGE_MODEL_ID,\n name: \"Language\",\n group: \"hidden\"\n })\n .description(\"Manage system languages.\")\n .titleFieldId(\"name\")\n .icon(\"fas/language\")\n .singularApiName(\"Language\")\n .pluralApiName(\"Languages\")\n .tags([\"$publishing:false\", \"$hidden:true\"]);\n\n model\n .fields(fields => ({\n name: fields\n .text()\n .label(\"Name\")\n .description(\n \"The display name for this language (e.g., German, English, Arabic).\"\n )\n .required()\n .renderer(\"textInput\"),\n code: fields\n .text()\n .label(\"Code\")\n .description(\n \"A unique language or locale code used for URL routing and identifying content (e.g., en, de, pt-BR).\"\n )\n .required()\n .renderer(\"textInput\"),\n direction: fields\n .text()\n .label(\"Direction\")\n .description(\n \"Controls the text direction. Most languages read left-to-right, but some (like Arabic and Hebrew) read right-to-left.\"\n )\n .defaultValue(\"ltr\")\n .renderer(\"dropdown\")\n .required()\n .predefinedValues([\n {\n value: \"ltr\",\n label: \"LTR\"\n },\n {\n value: \"rtl\",\n label: \"RTL\"\n }\n ]),\n isDefault: fields\n .boolean()\n .label(\"Is default?\")\n .description(\n \"Make this the primary language. Default language content is shown when no specific language is requested.\"\n )\n .defaultValue(false)\n .renderer(\"switch\"),\n enabled: fields\n .boolean()\n .label(\"Is enabled?\")\n .description(\n \"Disabled languages are hidden from the public site but can still be configured and translated in the admin.\"\n )\n .defaultValue(false)\n .renderer(\"switch\")\n }))\n .layout([[\"name\"], [\"code\"], [\"direction\"], [\"isDefault\"], [\"enabled\"]]);\n\n return [model];\n }\n}\n\nexport default ModelFactory.createImplementation({\n implementation: LanguageModelFactory,\n dependencies: []\n});\n"],"names":["LanguageModelFactory","builder","model","LANGUAGE_MODEL_ID","fields","ModelFactory"],"mappings":";;AAGA,MAAMA;IACF,MAAM,QAAQC,OAA6B,EAAE;QACzC,MAAMC,QAAQD,QACT,MAAM,CAAC;YACJ,SAASE;YACT,MAAM;YACN,OAAO;QACX,GACC,WAAW,CAAC,4BACZ,YAAY,CAAC,QACb,IAAI,CAAC,gBACL,eAAe,CAAC,YAChB,aAAa,CAAC,aACd,IAAI,CAAC;YAAC;YAAqB;SAAe;QAE/CD,MACK,MAAM,CAACE,CAAAA,SAAW;gBACf,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,WAAW,CACR,uEAEH,QAAQ,GACR,QAAQ,CAAC;gBACd,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,WAAW,CACR,wGAEH,QAAQ,GACR,QAAQ,CAAC;gBACd,WAAWA,OACN,IAAI,GACJ,KAAK,CAAC,aACN,WAAW,CACR,yHAEH,YAAY,CAAC,OACb,QAAQ,CAAC,YACT,QAAQ,GACR,gBAAgB,CAAC;oBACd;wBACI,OAAO;wBACP,OAAO;oBACX;oBACA;wBACI,OAAO;wBACP,OAAO;oBACX;iBACH;gBACL,WAAWA,OACN,OAAO,GACP,KAAK,CAAC,eACN,WAAW,CACR,6GAEH,YAAY,CAAC,OACb,QAAQ,CAAC;gBACd,SAASA,OACJ,OAAO,GACP,KAAK,CAAC,eACN,WAAW,CACR,+GAEH,YAAY,CAAC,OACb,QAAQ,CAAC;YAClB,IACC,MAAM,CAAC;YAAC;gBAAC;aAAO;YAAE;gBAAC;aAAO;YAAE;gBAAC;aAAY;YAAE;gBAAC;aAAY;YAAE;gBAAC;aAAU;SAAC;QAE3E,OAAO;YAACF;SAAM;IAClB;AACJ;AAEA,sBAAeG,aAAa,oBAAoB,CAAC;IAC7C,gBAAgBL;IAChB,cAAc,EAAE;AACpB"}
@@ -1,22 +1,21 @@
1
1
  import { BaseError } from "@webiny/feature/api";
2
- export class LanguageNotFoundError extends BaseError {
3
- code = "Languages/NotFound";
4
- constructor(languageCode) {
5
- super({
6
- message: `Language not found: "${languageCode}".`,
7
- data: {
8
- code: languageCode
9
- }
10
- });
11
- }
2
+ class LanguageNotFoundError extends BaseError {
3
+ constructor(languageCode){
4
+ super({
5
+ message: `Language not found: "${languageCode}".`,
6
+ data: {
7
+ code: languageCode
8
+ }
9
+ }), this.code = "Languages/NotFound";
10
+ }
12
11
  }
13
- export class LanguagePersistenceError extends BaseError {
14
- code = "Languages/PersistenceError";
15
- constructor(error) {
16
- super({
17
- message: error.message
18
- });
19
- }
12
+ class LanguagePersistenceError extends BaseError {
13
+ constructor(error){
14
+ super({
15
+ message: error.message
16
+ }), this.code = "Languages/PersistenceError";
17
+ }
20
18
  }
19
+ export { LanguageNotFoundError, LanguagePersistenceError };
21
20
 
22
21
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseError","LanguageNotFoundError","code","constructor","languageCode","message","data","LanguagePersistenceError","error"],"sources":["errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class LanguageNotFoundError extends BaseError<{ code: string }> {\n override readonly code = \"Languages/NotFound\" as const;\n\n constructor(languageCode: string) {\n super({\n message: `Language not found: \"${languageCode}\".`,\n data: {\n code: languageCode\n }\n });\n }\n}\n\nexport class LanguagePersistenceError extends BaseError {\n override readonly code = \"Languages/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({ message: error.message });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,qBAAqB,SAASD,SAAS,CAAmB;EACjDE,IAAI,GAAG,oBAAoB;EAE7CC,WAAWA,CAACC,YAAoB,EAAE;IAC9B,KAAK,CAAC;MACFC,OAAO,EAAE,wBAAwBD,YAAY,IAAI;MACjDE,IAAI,EAAE;QACFJ,IAAI,EAAEE;MACV;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMG,wBAAwB,SAASP,SAAS,CAAC;EAClCE,IAAI,GAAG,4BAA4B;EAErDC,WAAWA,CAACK,KAAY,EAAE;IACtB,KAAK,CAAC;MAAEH,OAAO,EAAEG,KAAK,CAACH;IAAQ,CAAC,CAAC;EACrC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"api/domain/errors.js","sources":["../../../src/api/domain/errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class LanguageNotFoundError extends BaseError<{ code: string }> {\n override readonly code = \"Languages/NotFound\" as const;\n\n constructor(languageCode: string) {\n super({\n message: `Language not found: \"${languageCode}\".`,\n data: {\n code: languageCode\n }\n });\n }\n}\n\nexport class LanguagePersistenceError extends BaseError {\n override readonly code = \"Languages/PersistenceError\" as const;\n\n constructor(error: Error) {\n super({ message: error.message });\n }\n}\n"],"names":["LanguageNotFoundError","BaseError","languageCode","LanguagePersistenceError","error"],"mappings":";AAEO,MAAMA,8BAA8BC;IAGvC,YAAYC,YAAoB,CAAE;QAC9B,KAAK,CAAC;YACF,SAAS,CAAC,qBAAqB,EAAEA,aAAa,EAAE,CAAC;YACjD,MAAM;gBACF,MAAMA;YACV;QACJ,SARc,IAAI,GAAG;IASzB;AACJ;AAEO,MAAMC,iCAAiCF;IAG1C,YAAYG,KAAY,CAAE;QACtB,KAAK,CAAC;YAAE,SAASA,MAAM,OAAO;QAAC,SAHjB,IAAI,GAAG;IAIzB;AACJ"}
@@ -1,8 +1,9 @@
1
1
  import { createPermissionSchema } from "@webiny/api-core/exports/api/security.js";
2
- export const LANGUAGES_PERMISSIONS_SCHEMA = createPermissionSchema({
3
- prefix: "languages",
4
- fullAccess: true,
5
- readOnlyAccess: true
2
+ const LANGUAGES_PERMISSIONS_SCHEMA = createPermissionSchema({
3
+ prefix: "languages",
4
+ fullAccess: true,
5
+ readOnlyAccess: true
6
6
  });
7
+ export { LANGUAGES_PERMISSIONS_SCHEMA };
7
8
 
8
9
  //# sourceMappingURL=permissionsSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createPermissionSchema","LANGUAGES_PERMISSIONS_SCHEMA","prefix","fullAccess","readOnlyAccess"],"sources":["permissionsSchema.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/api-core/exports/api/security.js\";\n\nexport const LANGUAGES_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"languages\",\n fullAccess: true,\n readOnlyAccess: true\n});\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,0CAA0C;AAEjF,OAAO,MAAMC,4BAA4B,GAAGD,sBAAsB,CAAC;EAC/DE,MAAM,EAAE,WAAW;EACnBC,UAAU,EAAE,IAAI;EAChBC,cAAc,EAAE;AACpB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"api/domain/permissionsSchema.js","sources":["../../../src/api/domain/permissionsSchema.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/api-core/exports/api/security.js\";\n\nexport const LANGUAGES_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"languages\",\n fullAccess: true,\n readOnlyAccess: true\n});\n"],"names":["LANGUAGES_PERMISSIONS_SCHEMA","createPermissionSchema"],"mappings":";AAEO,MAAMA,+BAA+BC,uBAAuB;IAC/D,QAAQ;IACR,YAAY;IACZ,gBAAgB;AACpB"}
@@ -1,40 +1,49 @@
1
1
  import { PermissionTransformer } from "@webiny/api-core/features/security/authorization/AuthorizationContext/abstractions.js";
2
2
  import { LANGUAGE_MODEL_ID } from "../../../shared/constants.js";
3
3
  class AddCmsPermissions {
4
- execute(permission) {
5
- if (!permission.name.startsWith("languages.")) {
6
- return permission;
4
+ execute(permission) {
5
+ if (!permission.name.startsWith("languages.")) return permission;
6
+ const isReadOnly = "languages.*" === permission.name && "r" === permission.rwd;
7
+ return [
8
+ permission,
9
+ {
10
+ name: "cms.endpoint.manage",
11
+ _src: "languages"
12
+ },
13
+ {
14
+ name: "cms.contentModel",
15
+ own: false,
16
+ rwd: "r",
17
+ pw: "",
18
+ models: [
19
+ LANGUAGE_MODEL_ID
20
+ ],
21
+ _src: "languages"
22
+ },
23
+ {
24
+ name: "cms.contentModelGroup",
25
+ own: false,
26
+ rwd: "r",
27
+ pw: "",
28
+ groups: [
29
+ "hidden"
30
+ ],
31
+ _src: "languages"
32
+ },
33
+ {
34
+ name: "cms.contentEntry",
35
+ own: false,
36
+ rwd: isReadOnly ? "r" : "rwd",
37
+ pw: "",
38
+ _src: "languages"
39
+ }
40
+ ];
7
41
  }
8
- const isReadOnly = permission.name === "languages.*" && permission.rwd === "r";
9
- return [permission, {
10
- name: "cms.endpoint.manage",
11
- _src: "languages"
12
- }, {
13
- name: "cms.contentModel",
14
- own: false,
15
- rwd: "r",
16
- pw: "",
17
- models: [LANGUAGE_MODEL_ID],
18
- _src: "languages"
19
- }, {
20
- name: "cms.contentModelGroup",
21
- own: false,
22
- rwd: "r",
23
- pw: "",
24
- groups: ["hidden"],
25
- _src: "languages"
26
- }, {
27
- name: "cms.contentEntry",
28
- own: false,
29
- rwd: isReadOnly ? "r" : "rwd",
30
- pw: "",
31
- _src: "languages"
32
- }];
33
- }
34
42
  }
35
- export default PermissionTransformer.createImplementation({
36
- implementation: AddCmsPermissions,
37
- dependencies: []
43
+ const AddCmsPermissions_AddCmsPermissions = PermissionTransformer.createImplementation({
44
+ implementation: AddCmsPermissions,
45
+ dependencies: []
38
46
  });
47
+ export default AddCmsPermissions_AddCmsPermissions;
39
48
 
40
49
  //# sourceMappingURL=AddCmsPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PermissionTransformer","LANGUAGE_MODEL_ID","AddCmsPermissions","execute","permission","name","startsWith","isReadOnly","rwd","_src","own","pw","models","groups","createImplementation","implementation","dependencies"],"sources":["AddCmsPermissions.ts"],"sourcesContent":["import { PermissionTransformer } from \"@webiny/api-core/features/security/authorization/AuthorizationContext/abstractions.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\n\nclass AddCmsPermissions implements PermissionTransformer.Interface {\n execute(permission: PermissionTransformer.Permission) {\n if (!permission.name.startsWith(\"languages.\")) {\n return permission;\n }\n\n const isReadOnly = permission.name === \"languages.*\" && permission.rwd === \"r\";\n\n return [\n permission,\n {\n name: \"cms.endpoint.manage\",\n _src: \"languages\"\n },\n {\n name: \"cms.contentModel\",\n own: false,\n rwd: \"r\",\n pw: \"\",\n models: [LANGUAGE_MODEL_ID],\n _src: \"languages\"\n },\n {\n name: \"cms.contentModelGroup\",\n own: false,\n rwd: \"r\",\n pw: \"\",\n groups: [\"hidden\"],\n _src: \"languages\"\n },\n {\n name: \"cms.contentEntry\",\n own: false,\n rwd: isReadOnly ? \"r\" : \"rwd\",\n pw: \"\",\n _src: \"languages\"\n }\n ];\n }\n}\n\nexport default PermissionTransformer.createImplementation({\n implementation: AddCmsPermissions,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,uFAAuF;AAC7H,SAASC,iBAAiB;AAE1B,MAAMC,iBAAiB,CAA4C;EAC/DC,OAAOA,CAACC,UAA4C,EAAE;IAClD,IAAI,CAACA,UAAU,CAACC,IAAI,CAACC,UAAU,CAAC,YAAY,CAAC,EAAE;MAC3C,OAAOF,UAAU;IACrB;IAEA,MAAMG,UAAU,GAAGH,UAAU,CAACC,IAAI,KAAK,aAAa,IAAID,UAAU,CAACI,GAAG,KAAK,GAAG;IAE9E,OAAO,CACHJ,UAAU,EACV;MACIC,IAAI,EAAE,qBAAqB;MAC3BI,IAAI,EAAE;IACV,CAAC,EACD;MACIJ,IAAI,EAAE,kBAAkB;MACxBK,GAAG,EAAE,KAAK;MACVF,GAAG,EAAE,GAAG;MACRG,EAAE,EAAE,EAAE;MACNC,MAAM,EAAE,CAACX,iBAAiB,CAAC;MAC3BQ,IAAI,EAAE;IACV,CAAC,EACD;MACIJ,IAAI,EAAE,uBAAuB;MAC7BK,GAAG,EAAE,KAAK;MACVF,GAAG,EAAE,GAAG;MACRG,EAAE,EAAE,EAAE;MACNE,MAAM,EAAE,CAAC,QAAQ,CAAC;MAClBJ,IAAI,EAAE;IACV,CAAC,EACD;MACIJ,IAAI,EAAE,kBAAkB;MACxBK,GAAG,EAAE,KAAK;MACVF,GAAG,EAAED,UAAU,GAAG,GAAG,GAAG,KAAK;MAC7BI,EAAE,EAAE,EAAE;MACNF,IAAI,EAAE;IACV,CAAC,CACJ;EACL;AACJ;AAEA,eAAeT,qBAAqB,CAACc,oBAAoB,CAAC;EACtDC,cAAc,EAAEb,iBAAiB;EACjCc,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"api/features/AddCmsPermissions/AddCmsPermissions.js","sources":["../../../../src/api/features/AddCmsPermissions/AddCmsPermissions.ts"],"sourcesContent":["import { PermissionTransformer } from \"@webiny/api-core/features/security/authorization/AuthorizationContext/abstractions.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\n\nclass AddCmsPermissions implements PermissionTransformer.Interface {\n execute(permission: PermissionTransformer.Permission) {\n if (!permission.name.startsWith(\"languages.\")) {\n return permission;\n }\n\n const isReadOnly = permission.name === \"languages.*\" && permission.rwd === \"r\";\n\n return [\n permission,\n {\n name: \"cms.endpoint.manage\",\n _src: \"languages\"\n },\n {\n name: \"cms.contentModel\",\n own: false,\n rwd: \"r\",\n pw: \"\",\n models: [LANGUAGE_MODEL_ID],\n _src: \"languages\"\n },\n {\n name: \"cms.contentModelGroup\",\n own: false,\n rwd: \"r\",\n pw: \"\",\n groups: [\"hidden\"],\n _src: \"languages\"\n },\n {\n name: \"cms.contentEntry\",\n own: false,\n rwd: isReadOnly ? \"r\" : \"rwd\",\n pw: \"\",\n _src: \"languages\"\n }\n ];\n }\n}\n\nexport default PermissionTransformer.createImplementation({\n implementation: AddCmsPermissions,\n dependencies: []\n});\n"],"names":["AddCmsPermissions","permission","isReadOnly","LANGUAGE_MODEL_ID","PermissionTransformer"],"mappings":";;AAGA,MAAMA;IACF,QAAQC,UAA4C,EAAE;QAClD,IAAI,CAACA,WAAW,IAAI,CAAC,UAAU,CAAC,eAC5B,OAAOA;QAGX,MAAMC,aAAaD,AAAoB,kBAApBA,WAAW,IAAI,IAAsBA,AAAmB,QAAnBA,WAAW,GAAG;QAEtE,OAAO;YACHA;YACA;gBACI,MAAM;gBACN,MAAM;YACV;YACA;gBACI,MAAM;gBACN,KAAK;gBACL,KAAK;gBACL,IAAI;gBACJ,QAAQ;oBAACE;iBAAkB;gBAC3B,MAAM;YACV;YACA;gBACI,MAAM;gBACN,KAAK;gBACL,KAAK;gBACL,IAAI;gBACJ,QAAQ;oBAAC;iBAAS;gBAClB,MAAM;YACV;YACA;gBACI,MAAM;gBACN,KAAK;gBACL,KAAKD,aAAa,MAAM;gBACxB,IAAI;gBACJ,MAAM;YACV;SACH;IACL;AACJ;AAEA,4CAAeE,sBAAsB,oBAAoB,CAAC;IACtD,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}