@webiny/api-core 6.0.0 → 6.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/domain/security/ApiToken.d.ts +1 -0
  2. package/domain/security/ApiToken.js +1 -0
  3. package/domain/security/ApiToken.js.map +1 -1
  4. package/exports/api/security.d.ts +2 -0
  5. package/exports/api/security.js +2 -0
  6. package/exports/api/security.js.map +1 -1
  7. package/features/buildParams/abstractions.d.ts +2 -0
  8. package/features/buildParams/abstractions.js +2 -0
  9. package/features/buildParams/abstractions.js.map +1 -1
  10. package/features/eventPublisher/abstractions.d.ts +2 -0
  11. package/features/eventPublisher/abstractions.js +3 -0
  12. package/features/eventPublisher/abstractions.js.map +1 -1
  13. package/features/keyValueStore/abstractions.d.ts +4 -0
  14. package/features/keyValueStore/abstractions.js +4 -0
  15. package/features/keyValueStore/abstractions.js.map +1 -1
  16. package/features/logger/abstractions.d.ts +1 -0
  17. package/features/logger/abstractions.js +1 -0
  18. package/features/logger/abstractions.js.map +1 -1
  19. package/features/security/IdentityContext/abstractions.d.ts +1 -0
  20. package/features/security/IdentityContext/abstractions.js +1 -0
  21. package/features/security/IdentityContext/abstractions.js.map +1 -1
  22. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js +1 -1
  23. package/features/security/apiKeys/CreateApiKey/CreateApiKeyUseCase.js.map +1 -1
  24. package/features/security/apiKeys/CreateApiKey/abstractions.d.ts +1 -0
  25. package/features/security/apiKeys/CreateApiKey/abstractions.js +1 -0
  26. package/features/security/apiKeys/CreateApiKey/abstractions.js.map +1 -1
  27. package/features/security/apiKeys/CreateApiKey/events.d.ts +2 -0
  28. package/features/security/apiKeys/CreateApiKey/events.js +4 -0
  29. package/features/security/apiKeys/CreateApiKey/events.js.map +1 -1
  30. package/features/security/apiKeys/DeleteApiKey/abstractions.d.ts +1 -0
  31. package/features/security/apiKeys/DeleteApiKey/abstractions.js +1 -0
  32. package/features/security/apiKeys/DeleteApiKey/abstractions.js.map +1 -1
  33. package/features/security/apiKeys/DeleteApiKey/events.d.ts +2 -0
  34. package/features/security/apiKeys/DeleteApiKey/events.js +4 -0
  35. package/features/security/apiKeys/DeleteApiKey/events.js.map +1 -1
  36. package/features/security/apiKeys/GetApiKey/abstractions.d.ts +1 -0
  37. package/features/security/apiKeys/GetApiKey/abstractions.js +1 -0
  38. package/features/security/apiKeys/GetApiKey/abstractions.js.map +1 -1
  39. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.d.ts +1 -0
  40. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js +1 -0
  41. package/features/security/apiKeys/GetApiKeyBySlug/abstractions.js.map +1 -1
  42. package/features/security/apiKeys/GetApiKeyByToken/abstractions.d.ts +1 -0
  43. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js +1 -0
  44. package/features/security/apiKeys/GetApiKeyByToken/abstractions.js.map +1 -1
  45. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js +1 -1
  46. package/features/security/apiKeys/ListApiKeys/ListApiKeysUseCase.js.map +1 -1
  47. package/features/security/apiKeys/ListApiKeys/abstractions.d.ts +1 -0
  48. package/features/security/apiKeys/ListApiKeys/abstractions.js +1 -0
  49. package/features/security/apiKeys/ListApiKeys/abstractions.js.map +1 -1
  50. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js +1 -1
  51. package/features/security/apiKeys/UpdateApiKey/UpdateApiKeyUseCase.js.map +1 -1
  52. package/features/security/apiKeys/UpdateApiKey/abstractions.d.ts +1 -0
  53. package/features/security/apiKeys/UpdateApiKey/abstractions.js +1 -0
  54. package/features/security/apiKeys/UpdateApiKey/abstractions.js.map +1 -1
  55. package/features/security/apiKeys/UpdateApiKey/events.d.ts +2 -0
  56. package/features/security/apiKeys/UpdateApiKey/events.js +4 -0
  57. package/features/security/apiKeys/UpdateApiKey/events.js.map +1 -1
  58. package/features/security/apiKeys/shared/abstractions.d.ts +5 -2
  59. package/features/security/apiKeys/shared/abstractions.js +3 -0
  60. package/features/security/apiKeys/shared/abstractions.js.map +1 -1
  61. package/features/security/apiKeys/shared/schemas.d.ts +10 -71
  62. package/features/security/apiKeys/shared/schemas.js +4 -4
  63. package/features/security/apiKeys/shared/schemas.js.map +1 -1
  64. package/features/security/authentication/AuthenticationContext/abstractions.d.ts +1 -0
  65. package/features/security/authentication/AuthenticationContext/abstractions.js +1 -0
  66. package/features/security/authentication/AuthenticationContext/abstractions.js.map +1 -1
  67. package/features/security/authentication/AuthenticationContext/events.d.ts +2 -0
  68. package/features/security/authentication/AuthenticationContext/events.js +4 -0
  69. package/features/security/authentication/AuthenticationContext/events.js.map +1 -1
  70. package/features/security/authentication/Authenticator/abstractions.d.ts +1 -0
  71. package/features/security/authentication/Authenticator/abstractions.js +1 -0
  72. package/features/security/authentication/Authenticator/abstractions.js.map +1 -1
  73. package/features/security/authorization/AuthorizationContext/abstractions.d.ts +2 -0
  74. package/features/security/authorization/AuthorizationContext/abstractions.js +2 -0
  75. package/features/security/authorization/AuthorizationContext/abstractions.js.map +1 -1
  76. package/features/security/authorization/Authorizer/abstractions.d.ts +1 -0
  77. package/features/security/authorization/Authorizer/abstractions.js +1 -0
  78. package/features/security/authorization/Authorizer/abstractions.js.map +1 -1
  79. package/features/security/login/abstractions.d.ts +1 -0
  80. package/features/security/login/abstractions.js +2 -0
  81. package/features/security/login/abstractions.js.map +1 -1
  82. package/features/security/roles/CreateRole/CreateRoleUseCase.d.ts +1 -3
  83. package/features/security/roles/CreateRole/CreateRoleUseCase.js +3 -7
  84. package/features/security/roles/CreateRole/CreateRoleUseCase.js.map +1 -1
  85. package/features/security/roles/CreateRole/abstractions.d.ts +1 -0
  86. package/features/security/roles/CreateRole/abstractions.js +1 -0
  87. package/features/security/roles/CreateRole/abstractions.js.map +1 -1
  88. package/features/security/roles/CreateRole/events.d.ts +2 -0
  89. package/features/security/roles/CreateRole/events.js +4 -0
  90. package/features/security/roles/CreateRole/events.js.map +1 -1
  91. package/features/security/roles/CreateRole/schema.d.ts +2 -20
  92. package/features/security/roles/CreateRole/schema.js +2 -2
  93. package/features/security/roles/CreateRole/schema.js.map +1 -1
  94. package/features/security/roles/DeleteRole/abstractions.d.ts +1 -0
  95. package/features/security/roles/DeleteRole/abstractions.js +1 -0
  96. package/features/security/roles/DeleteRole/abstractions.js.map +1 -1
  97. package/features/security/roles/DeleteRole/events.d.ts +2 -0
  98. package/features/security/roles/DeleteRole/events.js +4 -0
  99. package/features/security/roles/DeleteRole/events.js.map +1 -1
  100. package/features/security/roles/GetRole/abstractions.d.ts +1 -0
  101. package/features/security/roles/GetRole/abstractions.js +1 -0
  102. package/features/security/roles/GetRole/abstractions.js.map +1 -1
  103. package/features/security/roles/ListRoles/abstractions.d.ts +1 -0
  104. package/features/security/roles/ListRoles/abstractions.js +1 -0
  105. package/features/security/roles/ListRoles/abstractions.js.map +1 -1
  106. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js +1 -1
  107. package/features/security/roles/UpdateRole/UpdateRoleUseCase.js.map +1 -1
  108. package/features/security/roles/UpdateRole/abstractions.d.ts +1 -0
  109. package/features/security/roles/UpdateRole/abstractions.js +1 -0
  110. package/features/security/roles/UpdateRole/abstractions.js.map +1 -1
  111. package/features/security/roles/UpdateRole/events.d.ts +2 -0
  112. package/features/security/roles/UpdateRole/events.js +4 -0
  113. package/features/security/roles/UpdateRole/events.js.map +1 -1
  114. package/features/security/roles/UpdateRole/schema.d.ts +2 -18
  115. package/features/security/roles/UpdateRole/schema.js +2 -2
  116. package/features/security/roles/UpdateRole/schema.js.map +1 -1
  117. package/features/security/roles/feature.js +2 -0
  118. package/features/security/roles/feature.js.map +1 -1
  119. package/features/security/roles/shared/RoleProvider.d.ts +13 -0
  120. package/features/security/roles/shared/RoleProvider.js +29 -0
  121. package/features/security/roles/shared/RoleProvider.js.map +1 -0
  122. package/features/security/roles/shared/RolesRepository.d.ts +3 -1
  123. package/features/security/roles/shared/RolesRepository.js +19 -18
  124. package/features/security/roles/shared/RolesRepository.js.map +1 -1
  125. package/features/security/roles/shared/abstractions.d.ts +19 -0
  126. package/features/security/roles/shared/abstractions.js +3 -0
  127. package/features/security/roles/shared/abstractions.js.map +1 -1
  128. package/features/security/shared/abstractions.d.ts +5 -14
  129. package/features/security/shared/abstractions.js +3 -16
  130. package/features/security/shared/abstractions.js.map +1 -1
  131. package/features/security/teams/CreateTeam/CreateTeamUseCase.d.ts +1 -3
  132. package/features/security/teams/CreateTeam/CreateTeamUseCase.js +3 -7
  133. package/features/security/teams/CreateTeam/CreateTeamUseCase.js.map +1 -1
  134. package/features/security/teams/CreateTeam/abstractions.d.ts +1 -0
  135. package/features/security/teams/CreateTeam/abstractions.js +1 -0
  136. package/features/security/teams/CreateTeam/abstractions.js.map +1 -1
  137. package/features/security/teams/CreateTeam/events.d.ts +2 -0
  138. package/features/security/teams/CreateTeam/events.js +4 -0
  139. package/features/security/teams/CreateTeam/events.js.map +1 -1
  140. package/features/security/teams/CreateTeam/schema.d.ts +2 -12
  141. package/features/security/teams/DeleteTeam/abstractions.d.ts +1 -0
  142. package/features/security/teams/DeleteTeam/abstractions.js +1 -0
  143. package/features/security/teams/DeleteTeam/abstractions.js.map +1 -1
  144. package/features/security/teams/DeleteTeam/events.d.ts +2 -0
  145. package/features/security/teams/DeleteTeam/events.js +4 -0
  146. package/features/security/teams/DeleteTeam/events.js.map +1 -1
  147. package/features/security/teams/GetTeam/abstractions.d.ts +1 -0
  148. package/features/security/teams/GetTeam/abstractions.js +1 -0
  149. package/features/security/teams/GetTeam/abstractions.js.map +1 -1
  150. package/features/security/teams/ListTeams/abstractions.d.ts +1 -0
  151. package/features/security/teams/ListTeams/abstractions.js +1 -0
  152. package/features/security/teams/ListTeams/abstractions.js.map +1 -1
  153. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js +1 -1
  154. package/features/security/teams/UpdateTeam/UpdateTeamUseCase.js.map +1 -1
  155. package/features/security/teams/UpdateTeam/abstractions.d.ts +1 -0
  156. package/features/security/teams/UpdateTeam/abstractions.js +1 -0
  157. package/features/security/teams/UpdateTeam/abstractions.js.map +1 -1
  158. package/features/security/teams/UpdateTeam/events.d.ts +2 -0
  159. package/features/security/teams/UpdateTeam/events.js +4 -0
  160. package/features/security/teams/UpdateTeam/events.js.map +1 -1
  161. package/features/security/teams/UpdateTeam/schema.d.ts +2 -10
  162. package/features/security/teams/feature.js +6 -0
  163. package/features/security/teams/feature.js.map +1 -1
  164. package/features/security/teams/shared/TeamProvider.d.ts +13 -0
  165. package/features/security/teams/shared/TeamProvider.js +29 -0
  166. package/features/security/teams/shared/TeamProvider.js.map +1 -0
  167. package/features/security/teams/shared/TeamsRepository.js +20 -18
  168. package/features/security/teams/shared/TeamsRepository.js.map +1 -1
  169. package/features/security/teams/shared/abstractions.d.ts +18 -0
  170. package/features/security/teams/shared/abstractions.js +3 -0
  171. package/features/security/teams/shared/abstractions.js.map +1 -1
  172. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.d.ts +17 -0
  173. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js +76 -0
  174. package/features/security/teams/shared/decorators/TeamsRepositoryCachingDecorator.js.map +1 -0
  175. package/features/security/utils/verifyJwtUsingJwk.d.ts +2 -4
  176. package/features/security/utils/verifyJwtUsingJwk.js +1 -1
  177. package/features/security/utils/verifyJwtUsingJwk.js.map +1 -1
  178. package/features/system/InstallSystem/abstractions.d.ts +2 -3
  179. package/features/system/InstallSystem/abstractions.js +2 -3
  180. package/features/system/InstallSystem/abstractions.js.map +1 -1
  181. package/features/task/TaskController/abstractions.d.ts +1 -0
  182. package/features/task/TaskController/abstractions.js +1 -0
  183. package/features/task/TaskController/abstractions.js.map +1 -1
  184. package/features/task/TaskDefinition/abstractions.d.ts +1 -0
  185. package/features/task/TaskDefinition/abstractions.js +1 -0
  186. package/features/task/TaskDefinition/abstractions.js.map +1 -1
  187. package/features/task/TaskService/abstractions.d.ts +1 -0
  188. package/features/task/TaskService/abstractions.js +1 -0
  189. package/features/task/TaskService/abstractions.js.map +1 -1
  190. package/features/tenancy/CreateTenant/abstractions.d.ts +5 -3
  191. package/features/tenancy/CreateTenant/abstractions.js +5 -3
  192. package/features/tenancy/CreateTenant/abstractions.js.map +1 -1
  193. package/features/tenancy/DeleteTenant/abstractions.d.ts +5 -0
  194. package/features/tenancy/DeleteTenant/abstractions.js +5 -0
  195. package/features/tenancy/DeleteTenant/abstractions.js.map +1 -1
  196. package/features/tenancy/GetTenantById/abstractions.d.ts +3 -0
  197. package/features/tenancy/GetTenantById/abstractions.js +3 -9
  198. package/features/tenancy/GetTenantById/abstractions.js.map +1 -1
  199. package/features/tenancy/InstallTenant/abstractions.d.ts +3 -9
  200. package/features/tenancy/InstallTenant/abstractions.js +3 -12
  201. package/features/tenancy/InstallTenant/abstractions.js.map +1 -1
  202. package/features/tenancy/TenantContext/abstractions.d.ts +1 -0
  203. package/features/tenancy/TenantContext/abstractions.js +1 -0
  204. package/features/tenancy/TenantContext/abstractions.js.map +1 -1
  205. package/features/tenancy/UpdateTenant/abstractions.d.ts +5 -0
  206. package/features/tenancy/UpdateTenant/abstractions.js +5 -0
  207. package/features/tenancy/UpdateTenant/abstractions.js.map +1 -1
  208. package/features/users/CreateUser/CreateUserUseCase.js +1 -1
  209. package/features/users/CreateUser/CreateUserUseCase.js.map +1 -1
  210. package/features/users/CreateUser/abstractions.d.ts +1 -0
  211. package/features/users/CreateUser/abstractions.js +1 -1
  212. package/features/users/CreateUser/abstractions.js.map +1 -1
  213. package/features/users/CreateUser/events.d.ts +2 -0
  214. package/features/users/CreateUser/events.js +4 -0
  215. package/features/users/CreateUser/events.js.map +1 -1
  216. package/features/users/CreateUser/schema.d.ts +4 -36
  217. package/features/users/DeleteUser/abstractions.d.ts +1 -0
  218. package/features/users/DeleteUser/abstractions.js +1 -1
  219. package/features/users/DeleteUser/abstractions.js.map +1 -1
  220. package/features/users/DeleteUser/events.d.ts +2 -0
  221. package/features/users/DeleteUser/events.js +4 -0
  222. package/features/users/DeleteUser/events.js.map +1 -1
  223. package/features/users/GetUser/abstractions.d.ts +1 -0
  224. package/features/users/GetUser/abstractions.js +1 -1
  225. package/features/users/GetUser/abstractions.js.map +1 -1
  226. package/features/users/ListUserTeams/abstractions.d.ts +1 -0
  227. package/features/users/ListUserTeams/abstractions.js +1 -1
  228. package/features/users/ListUserTeams/abstractions.js.map +1 -1
  229. package/features/users/ListUsers/abstractions.d.ts +1 -0
  230. package/features/users/ListUsers/abstractions.js +1 -1
  231. package/features/users/ListUsers/abstractions.js.map +1 -1
  232. package/features/users/UpdateUser/UpdateUserUseCase.js +1 -1
  233. package/features/users/UpdateUser/UpdateUserUseCase.js.map +1 -1
  234. package/features/users/UpdateUser/abstractions.d.ts +1 -0
  235. package/features/users/UpdateUser/abstractions.js +1 -1
  236. package/features/users/UpdateUser/abstractions.js.map +1 -1
  237. package/features/users/UpdateUser/events.d.ts +2 -0
  238. package/features/users/UpdateUser/events.js +4 -0
  239. package/features/users/UpdateUser/events.js.map +1 -1
  240. package/features/users/UpdateUser/schema.d.ts +4 -30
  241. package/features/users/shared/abstractions.d.ts +1 -0
  242. package/features/users/shared/abstractions.js +1 -1
  243. package/features/users/shared/abstractions.js.map +1 -1
  244. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js +0 -1
  245. package/features/wcp/WcpContext/decorators/WcpContextWithFeatureFlagsDecorator.js.map +1 -1
  246. package/graphql/security/NotAuthorizedResponse.d.ts +1 -0
  247. package/graphql/security/NotAuthorizedResponse.js +1 -0
  248. package/graphql/security/NotAuthorizedResponse.js.map +1 -1
  249. package/idp/abstractions.d.ts +4 -0
  250. package/idp/abstractions.js +4 -0
  251. package/idp/abstractions.js.map +1 -1
  252. package/legacy/security/createSecurityContext.js +0 -11
  253. package/legacy/security/createSecurityContext.js.map +1 -1
  254. package/models/base/BaseModel.js +2 -2
  255. package/models/base/BaseModel.js.map +1 -1
  256. package/models/base/ModelBuilder.d.ts +2 -2
  257. package/models/base/ModelBuilder.js +21 -2
  258. package/models/base/ModelBuilder.js.map +1 -1
  259. package/models/cms/FieldBuilder.d.ts +3 -2
  260. package/models/cms/FieldBuilder.js +12 -17
  261. package/models/cms/FieldBuilder.js.map +1 -1
  262. package/models/cms/FieldBuilderRegistry.d.ts +1 -1
  263. package/models/cms/FieldBuilderRegistry.js.map +1 -1
  264. package/models/cms/FieldDefinitionsBuilder.d.ts +1 -0
  265. package/models/cms/FieldDefinitionsBuilder.js +13 -15
  266. package/models/cms/FieldDefinitionsBuilder.js.map +1 -1
  267. package/models/cms/PrivateCmsModelBuilder.js.map +1 -1
  268. package/models/cms/abstractions.d.ts +1 -1
  269. package/models/cms/abstractions.js.map +1 -1
  270. package/models/cms/fieldsBuilder.md +1 -1
  271. package/models/simple/Page/abstractions.d.ts +1 -11
  272. package/package.json +20 -20
  273. package/types/security.d.ts +13 -10
  274. package/types/security.js.map +1 -1
  275. package/features/security/shared/abstractions.ts.bak +0 -52
  276. package/legacy/security/plugins/SecurityRolePlugin.d.ts +0 -16
  277. package/legacy/security/plugins/SecurityRolePlugin.js +0 -33
  278. package/legacy/security/plugins/SecurityRolePlugin.js.map +0 -1
  279. package/legacy/security/plugins/SecurityTeamPlugin.d.ts +0 -16
  280. package/legacy/security/plugins/SecurityTeamPlugin.js +0 -33
  281. package/legacy/security/plugins/SecurityTeamPlugin.js.map +0 -1
@@ -3,7 +3,6 @@ import type { LegacyContext } from "../legacy/security/LegacyContext.js";
3
3
  import { Identity } from "../features/security/IdentityContext/index.js";
4
4
  export type { Jwk, Jwt } from "../features/security/utils/verifyJwtUsingJwk.js";
5
5
  export type SecurityIdentity = Identity;
6
- export type GetPermissions = <T extends SecurityPermission = SecurityPermission>(name: string) => Promise<T[]>;
7
6
  export interface GetGroupWhere {
8
7
  id?: string;
9
8
  slug?: string;
@@ -49,7 +48,6 @@ export interface CreatedBy {
49
48
  type: string;
50
49
  }
51
50
  export interface Role {
52
- tenant: string | null;
53
51
  createdOn: string | null;
54
52
  createdBy: CreatedBy | null;
55
53
  id: string;
@@ -72,17 +70,19 @@ export interface ListRolesParams {
72
70
  };
73
71
  sort?: string[];
74
72
  }
73
+ export type StorageRole = Role & {
74
+ tenant: string;
75
+ };
75
76
  export interface CreateRoleParams {
76
- role: Role;
77
+ role: StorageRole;
77
78
  }
78
79
  export interface UpdateRoleParams {
79
- role: Role;
80
+ role: StorageRole;
80
81
  }
81
82
  export interface DeleteRoleParams {
82
- role: Role;
83
+ role: StorageRole;
83
84
  }
84
85
  export interface Team {
85
- tenant: string | null;
86
86
  createdOn: string | null;
87
87
  createdBy: CreatedBy | null;
88
88
  id: string;
@@ -106,15 +106,18 @@ export interface ListTeamsParams {
106
106
  };
107
107
  sort?: string[];
108
108
  }
109
+ export type StorageTeam = Team & {
110
+ tenant: string;
111
+ };
109
112
  export interface CreateTeamParams {
110
- team: Team;
113
+ team: StorageTeam;
111
114
  }
112
115
  export interface UpdateTeamParams {
113
- original: Team;
114
- team: Team;
116
+ original: StorageTeam;
117
+ team: StorageTeam;
115
118
  }
116
119
  export interface DeleteTeamParams {
117
- team: Team;
120
+ team: StorageTeam;
118
121
  }
119
122
  export interface ApiKey {
120
123
  id: string;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["security.ts"],"sourcesContent":["import type { TenancyContext } from \"~/types/tenancy.js\";\nimport type { LegacyContext } from \"~/legacy/security/LegacyContext.js\";\nimport { Identity } from \"~/features/security/IdentityContext/index.js\";\n\nexport type { Jwk, Jwt } from \"~/features/security/utils/verifyJwtUsingJwk.js\";\n\nexport type SecurityIdentity = Identity;\n\nexport type GetPermissions = <T extends SecurityPermission = SecurityPermission>(\n name: string\n) => Promise<T[]>;\n\nexport interface GetGroupWhere {\n id?: string;\n slug?: string;\n tenant?: string;\n}\n\nexport interface GetTeamWhere {\n id?: string;\n slug?: string;\n tenant?: string;\n}\n\nexport type Security = LegacyContext;\n\nexport interface SecurityStorageOperations {\n getRole(params: StorageOperationsGetRoleParams): Promise<Role | null>;\n\n listRoles(params: StorageOperationsListRolesParams): Promise<Role[]>;\n\n createRole(params: StorageOperationsCreateRoleParams): Promise<void>;\n\n updateRole(params: StorageOperationsUpdateRoleParams): Promise<void>;\n\n deleteRole(params: StorageOperationsDeleteRoleParams): Promise<void>;\n\n getTeam(params: StorageOperationsGetTeamParams): Promise<Team | null>;\n\n listTeams(params: StorageOperationsListTeamsParams): Promise<Team[]>;\n\n createTeam(params: StorageOperationsCreateTeamParams): Promise<void>;\n\n updateTeam(params: StorageOperationsUpdateTeamParams): Promise<void>;\n\n deleteTeam(params: StorageOperationsDeleteTeamParams): Promise<void>;\n\n getApiKey(params: StorageOperationsGetApiKeyParams): Promise<StorageApiKey | null>;\n\n getApiKeyByToken(\n params: StorageOperationsGetApiKeyByTokenParams\n ): Promise<StorageApiKey | null>;\n\n getApiKeyBySlug(params: StorageOperationsGetApiKeyBySlugParams): Promise<StorageApiKey | null>;\n\n listApiKeys(params: StorageOperationsListApiKeysParams): Promise<StorageApiKey[]>;\n\n createApiKey(params: StorageOperationsCreateApiKeyParams): Promise<void>;\n\n updateApiKey(params: StorageOperationsUpdateApiKeyParams): Promise<void>;\n\n deleteApiKey(params: StorageOperationsDeleteApiKeyParams): Promise<void>;\n}\n\nexport type SecurityPermission<T = Record<string, any>> = T & {\n name: string;\n};\n\nexport interface SecurityContext extends TenancyContext {\n security: Security;\n}\n\nexport interface FullAccessPermission {\n name: \"*\";\n}\n\nexport interface CreatedBy {\n id: string;\n displayName: string | null;\n type: string;\n}\n\nexport interface Role {\n // Roles defined via plugins might not have `tenant` specified (meaning they are global).\n tenant: string | null;\n\n // Roles defined via plugins don't have `createdOn` and `createdBy` specified.\n createdOn: string | null;\n createdBy: CreatedBy | null;\n\n id: string;\n name: string;\n slug: string;\n description: string;\n system: boolean;\n permissions: SecurityPermission[];\n\n // Set to `true` when a role is defined via a plugin.\n plugin?: boolean;\n}\n\nexport type SecurityRole = Role;\nexport type SecurityTeam = Team;\n\nexport interface GetRoleParams {\n where: GetGroupWhere;\n}\n\nexport interface ListRolesParams {\n where?: {\n id_in?: string[];\n slug_in?: string[];\n };\n sort?: string[];\n}\n\nexport interface CreateRoleParams {\n role: Role;\n}\n\nexport interface UpdateRoleParams {\n role: Role;\n}\n\nexport interface DeleteRoleParams {\n role: Role;\n}\n\nexport interface Team {\n // Teams defined via plugins might not have `tenant` specified (meaning they are global).\n tenant: string | null;\n\n // Teams defined via plugins don't have `createdOn` and `createdBy` specified.\n createdOn: string | null;\n createdBy: CreatedBy | null;\n\n id: string;\n name: string;\n slug: string;\n description: string;\n system: boolean;\n roles: string[];\n\n // Set to `true` when a role is defined via a plugin.\n plugin?: boolean;\n}\n\nexport type TeamInput = Pick<Team, \"name\" | \"slug\" | \"description\" | \"roles\"> & {\n system?: boolean;\n};\n\nexport interface GetTeamParams {\n where: GetTeamWhere;\n}\n\nexport interface ListTeamsParams {\n where?: {\n id_in?: string[];\n slug_in?: string[];\n };\n sort?: string[];\n}\n\nexport interface CreateTeamParams {\n team: Team;\n}\n\nexport interface UpdateTeamParams {\n original: Team;\n team: Team;\n}\n\nexport interface DeleteTeamParams {\n team: Team;\n}\n\nexport interface ApiKey {\n id: string;\n name: string;\n slug: string;\n description: string;\n token: string;\n permissions: SecurityPermission[];\n createdBy: CreatedBy;\n createdOn: string;\n}\n\nexport interface StorageApiKey {\n id: string;\n tenant: string;\n name: string;\n slug: string;\n description: string;\n token: string;\n permissions: SecurityPermission[];\n createdBy: CreatedBy;\n createdOn: string;\n}\n\nexport interface ApiKeyPermission extends SecurityPermission {\n name: \"security.apiKey\";\n}\n\nexport interface GetApiKeyParams {\n tenant: string;\n id: string;\n}\n\nexport interface ListApiKeysParams {\n sort?: string[];\n}\n\nexport interface GetApiKeyByTokenParams {\n tenant: string;\n token: string;\n}\n\nexport interface GetApiKeyBySlugParams {\n tenant: string;\n slug: string;\n}\n\nexport interface CreateApiKeyParams {\n apiKey: StorageApiKey;\n}\n\nexport interface UpdateApiKeyParams {\n apiKey: StorageApiKey;\n}\n\nexport interface DeleteApiKeyParams {\n apiKey: StorageApiKey;\n}\n\nexport interface StorageOperationsListApiKeysParams extends ListApiKeysParams {\n where: {\n tenant: string;\n };\n}\n\nexport interface StorageOperationsGetRoleParams extends GetRoleParams {\n where: GetRoleParams[\"where\"] & {\n tenant: string;\n };\n}\n\nexport interface StorageOperationsListRolesParams extends ListRolesParams {\n where: ListRolesParams[\"where\"] & {\n tenant: string;\n };\n}\n\nexport type StorageOperationsCreateRoleParams = CreateRoleParams;\nexport type StorageOperationsUpdateRoleParams = UpdateRoleParams;\nexport type StorageOperationsDeleteRoleParams = DeleteRoleParams;\n\nexport interface StorageOperationsGetTeamParams extends GetTeamParams {\n where: GetTeamParams[\"where\"] & {\n tenant: string;\n };\n}\n\nexport interface StorageOperationsListTeamsParams extends ListTeamsParams {\n where: ListTeamsParams[\"where\"] & {\n tenant: string;\n };\n}\n\nexport type StorageOperationsCreateTeamParams = CreateTeamParams;\nexport type StorageOperationsUpdateTeamParams = UpdateTeamParams;\nexport type StorageOperationsDeleteTeamParams = DeleteTeamParams;\nexport type StorageOperationsGetApiKeyParams = GetApiKeyParams;\nexport type StorageOperationsGetApiKeyByTokenParams = GetApiKeyByTokenParams;\nexport type StorageOperationsGetApiKeyBySlugParams = GetApiKeyBySlugParams;\nexport type StorageOperationsCreateApiKeyParams = CreateApiKeyParams;\nexport type StorageOperationsUpdateApiKeyParams = UpdateApiKeyParams;\nexport type StorageOperationsDeleteApiKeyParams = DeleteApiKeyParams;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["security.ts"],"sourcesContent":["import type { TenancyContext } from \"~/types/tenancy.js\";\nimport type { LegacyContext } from \"~/legacy/security/LegacyContext.js\";\nimport { Identity } from \"~/features/security/IdentityContext/index.js\";\n\nexport type { Jwk, Jwt } from \"~/features/security/utils/verifyJwtUsingJwk.js\";\n\nexport type SecurityIdentity = Identity;\n\nexport interface GetGroupWhere {\n id?: string;\n slug?: string;\n tenant?: string;\n}\n\nexport interface GetTeamWhere {\n id?: string;\n slug?: string;\n tenant?: string;\n}\n\nexport type Security = LegacyContext;\n\nexport interface SecurityStorageOperations {\n getRole(params: StorageOperationsGetRoleParams): Promise<Role | null>;\n\n listRoles(params: StorageOperationsListRolesParams): Promise<Role[]>;\n\n createRole(params: StorageOperationsCreateRoleParams): Promise<void>;\n\n updateRole(params: StorageOperationsUpdateRoleParams): Promise<void>;\n\n deleteRole(params: StorageOperationsDeleteRoleParams): Promise<void>;\n\n getTeam(params: StorageOperationsGetTeamParams): Promise<Team | null>;\n\n listTeams(params: StorageOperationsListTeamsParams): Promise<Team[]>;\n\n createTeam(params: StorageOperationsCreateTeamParams): Promise<void>;\n\n updateTeam(params: StorageOperationsUpdateTeamParams): Promise<void>;\n\n deleteTeam(params: StorageOperationsDeleteTeamParams): Promise<void>;\n\n getApiKey(params: StorageOperationsGetApiKeyParams): Promise<StorageApiKey | null>;\n\n getApiKeyByToken(\n params: StorageOperationsGetApiKeyByTokenParams\n ): Promise<StorageApiKey | null>;\n\n getApiKeyBySlug(params: StorageOperationsGetApiKeyBySlugParams): Promise<StorageApiKey | null>;\n\n listApiKeys(params: StorageOperationsListApiKeysParams): Promise<StorageApiKey[]>;\n\n createApiKey(params: StorageOperationsCreateApiKeyParams): Promise<void>;\n\n updateApiKey(params: StorageOperationsUpdateApiKeyParams): Promise<void>;\n\n deleteApiKey(params: StorageOperationsDeleteApiKeyParams): Promise<void>;\n}\n\nexport type SecurityPermission<T = Record<string, any>> = T & {\n name: string;\n};\n\nexport interface SecurityContext extends TenancyContext {\n security: Security;\n}\n\nexport interface FullAccessPermission {\n name: \"*\";\n}\n\nexport interface CreatedBy {\n id: string;\n displayName: string | null;\n type: string;\n}\n\nexport interface Role {\n // Roles defined via plugins don't have `createdOn` and `createdBy` specified.\n createdOn: string | null;\n createdBy: CreatedBy | null;\n\n id: string;\n name: string;\n slug: string;\n description: string;\n system: boolean;\n permissions: SecurityPermission[];\n\n // Set to `true` when a role is defined via a plugin.\n plugin?: boolean;\n}\n\nexport type SecurityRole = Role;\nexport type SecurityTeam = Team;\n\nexport interface GetRoleParams {\n where: GetGroupWhere;\n}\n\nexport interface ListRolesParams {\n where?: {\n id_in?: string[];\n slug_in?: string[];\n };\n sort?: string[];\n}\n\nexport type StorageRole = Role & { tenant: string };\n\nexport interface CreateRoleParams {\n role: StorageRole;\n}\n\nexport interface UpdateRoleParams {\n role: StorageRole;\n}\n\nexport interface DeleteRoleParams {\n role: StorageRole;\n}\n\nexport interface Team {\n // Teams defined via plugins don't have `createdOn` and `createdBy` specified.\n createdOn: string | null;\n createdBy: CreatedBy | null;\n\n id: string;\n name: string;\n slug: string;\n description: string;\n system: boolean;\n roles: string[];\n\n // Set to `true` when a role is defined via a plugin.\n plugin?: boolean;\n}\n\nexport type TeamInput = Pick<Team, \"name\" | \"slug\" | \"description\" | \"roles\"> & {\n system?: boolean;\n};\n\nexport interface GetTeamParams {\n where: GetTeamWhere;\n}\n\nexport interface ListTeamsParams {\n where?: {\n id_in?: string[];\n slug_in?: string[];\n };\n sort?: string[];\n}\n\nexport type StorageTeam = Team & { tenant: string };\n\nexport interface CreateTeamParams {\n team: StorageTeam;\n}\n\nexport interface UpdateTeamParams {\n original: StorageTeam;\n team: StorageTeam;\n}\n\nexport interface DeleteTeamParams {\n team: StorageTeam;\n}\n\nexport interface ApiKey {\n id: string;\n name: string;\n slug: string;\n description: string;\n token: string;\n permissions: SecurityPermission[];\n createdBy: CreatedBy;\n createdOn: string;\n}\n\nexport interface StorageApiKey {\n id: string;\n tenant: string;\n name: string;\n slug: string;\n description: string;\n token: string;\n permissions: SecurityPermission[];\n createdBy: CreatedBy;\n createdOn: string;\n}\n\nexport interface ApiKeyPermission extends SecurityPermission {\n name: \"security.apiKey\";\n}\n\nexport interface GetApiKeyParams {\n tenant: string;\n id: string;\n}\n\nexport interface ListApiKeysParams {\n sort?: string[];\n}\n\nexport interface GetApiKeyByTokenParams {\n tenant: string;\n token: string;\n}\n\nexport interface GetApiKeyBySlugParams {\n tenant: string;\n slug: string;\n}\n\nexport interface CreateApiKeyParams {\n apiKey: StorageApiKey;\n}\n\nexport interface UpdateApiKeyParams {\n apiKey: StorageApiKey;\n}\n\nexport interface DeleteApiKeyParams {\n apiKey: StorageApiKey;\n}\n\nexport interface StorageOperationsListApiKeysParams extends ListApiKeysParams {\n where: {\n tenant: string;\n };\n}\n\nexport interface StorageOperationsGetRoleParams extends GetRoleParams {\n where: GetRoleParams[\"where\"] & {\n tenant: string;\n };\n}\n\nexport interface StorageOperationsListRolesParams extends ListRolesParams {\n where: ListRolesParams[\"where\"] & {\n tenant: string;\n };\n}\n\nexport type StorageOperationsCreateRoleParams = CreateRoleParams;\nexport type StorageOperationsUpdateRoleParams = UpdateRoleParams;\nexport type StorageOperationsDeleteRoleParams = DeleteRoleParams;\n\nexport interface StorageOperationsGetTeamParams extends GetTeamParams {\n where: GetTeamParams[\"where\"] & {\n tenant: string;\n };\n}\n\nexport interface StorageOperationsListTeamsParams extends ListTeamsParams {\n where: ListTeamsParams[\"where\"] & {\n tenant: string;\n };\n}\n\nexport type StorageOperationsCreateTeamParams = CreateTeamParams;\nexport type StorageOperationsUpdateTeamParams = UpdateTeamParams;\nexport type StorageOperationsDeleteTeamParams = DeleteTeamParams;\nexport type StorageOperationsGetApiKeyParams = GetApiKeyParams;\nexport type StorageOperationsGetApiKeyByTokenParams = GetApiKeyByTokenParams;\nexport type StorageOperationsGetApiKeyBySlugParams = GetApiKeyBySlugParams;\nexport type StorageOperationsCreateApiKeyParams = CreateApiKeyParams;\nexport type StorageOperationsUpdateApiKeyParams = UpdateApiKeyParams;\nexport type StorageOperationsDeleteApiKeyParams = DeleteApiKeyParams;\n"],"mappings":"","ignoreList":[]}
@@ -1,52 +0,0 @@
1
- import { createAbstraction } from "@webiny/feature/api";
2
- import type {
3
- SecurityStorageOperations as ISecurityStorageOperations,
4
- Role,
5
- Team
6
- } from "~/types/security.js";
7
-
8
- /**
9
- * SecurityStorageOperations abstraction
10
- * Provides access to all storage operations for security entities
11
- */
12
- export const SecurityStorageOperations = createAbstraction<ISecurityStorageOperations>(
13
- "SecurityStorageOperations"
14
- );
15
-
16
- export namespace SecurityStorageOperations {
17
- export type Interface = ISecurityStorageOperations;
18
- }
19
-
20
- /**
21
- * RolesProvider abstraction
22
- * Provides roles defined via plugins
23
- */
24
- export interface IRolesProvider {
25
- (): Promise<Role[]>;
26
- }
27
-
28
- export const RolesProvider = createAbstraction<IRolesProvider>("RolesProvider");
29
-
30
- export namespace RolesProvider {
31
- export type Interface = IRolesProvider;
32
- }
33
-
34
- // Legacy alias for backwards compatibility
35
- export const GroupsProvider = RolesProvider;
36
- export namespace GroupsProvider {
37
- export type Interface = IRolesProvider;
38
- }
39
-
40
- /**
41
- * TeamsProvider abstraction
42
- * Provides teams defined via plugins
43
- */
44
- export interface ITeamsProvider {
45
- (): Promise<Team[]>;
46
- }
47
-
48
- export const TeamsProvider = createAbstraction<ITeamsProvider>("TeamsProvider");
49
-
50
- export namespace TeamsProvider {
51
- export type Interface = ITeamsProvider;
52
- }
@@ -1,16 +0,0 @@
1
- import { Plugin } from "@webiny/plugins";
2
- import type { SecurityPermission, SecurityRole } from "../../../types/security.js";
3
- export interface SecurityRolePluginParams {
4
- id: string;
5
- name: string;
6
- slug?: string;
7
- description?: string;
8
- permissions?: SecurityPermission[];
9
- tenant?: string;
10
- }
11
- export declare class SecurityRolePlugin extends Plugin {
12
- static readonly type: string;
13
- readonly securityRole: SecurityRole;
14
- constructor(params: SecurityRolePluginParams);
15
- }
16
- export declare const createSecurityRolePlugin: (securityRole: SecurityRolePluginParams) => SecurityRolePlugin;
@@ -1,33 +0,0 @@
1
- import { Plugin } from "@webiny/plugins";
2
- export class SecurityRolePlugin extends Plugin {
3
- static type = "security-role";
4
- constructor(params) {
5
- super();
6
- const {
7
- id,
8
- name,
9
- slug = id,
10
- description = "",
11
- permissions = [],
12
- tenant = null
13
- } = params;
14
- this.securityRole = {
15
- id,
16
- name,
17
- slug,
18
- description,
19
- permissions,
20
- tenant,
21
- // Internal properties.
22
- system: false,
23
- plugin: true,
24
- createdBy: null,
25
- createdOn: null
26
- };
27
- }
28
- }
29
- export const createSecurityRolePlugin = securityRole => {
30
- return new SecurityRolePlugin(securityRole);
31
- };
32
-
33
- //# sourceMappingURL=SecurityRolePlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Plugin","SecurityRolePlugin","type","constructor","params","id","name","slug","description","permissions","tenant","securityRole","system","plugin","createdBy","createdOn","createSecurityRolePlugin"],"sources":["SecurityRolePlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { SecurityPermission, SecurityRole } from \"~/types/security.js\";\n\nexport interface SecurityRolePluginParams {\n id: string;\n name: string;\n slug?: string;\n description?: string;\n permissions?: SecurityPermission[];\n tenant?: string;\n}\n\nexport class SecurityRolePlugin extends Plugin {\n public static override readonly type: string = \"security-role\";\n public readonly securityRole: SecurityRole;\n\n constructor(params: SecurityRolePluginParams) {\n super();\n\n const { id, name, slug = id, description = \"\", permissions = [], tenant = null } = params;\n\n this.securityRole = {\n id,\n name,\n slug,\n description,\n permissions,\n tenant,\n\n // Internal properties.\n system: false,\n plugin: true,\n createdBy: null,\n createdOn: null\n };\n }\n}\n\nexport const createSecurityRolePlugin = (\n securityRole: SecurityRolePluginParams\n): SecurityRolePlugin => {\n return new SecurityRolePlugin(securityRole);\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AAYxC,OAAO,MAAMC,kBAAkB,SAASD,MAAM,CAAC;EAC3C,OAAgCE,IAAI,GAAW,eAAe;EAG9DC,WAAWA,CAACC,MAAgC,EAAE;IAC1C,KAAK,CAAC,CAAC;IAEP,MAAM;MAAEC,EAAE;MAAEC,IAAI;MAAEC,IAAI,GAAGF,EAAE;MAAEG,WAAW,GAAG,EAAE;MAAEC,WAAW,GAAG,EAAE;MAAEC,MAAM,GAAG;IAAK,CAAC,GAAGN,MAAM;IAEzF,IAAI,CAACO,YAAY,GAAG;MAChBN,EAAE;MACFC,IAAI;MACJC,IAAI;MACJC,WAAW;MACXC,WAAW;MACXC,MAAM;MAEN;MACAE,MAAM,EAAE,KAAK;MACbC,MAAM,EAAE,IAAI;MACZC,SAAS,EAAE,IAAI;MACfC,SAAS,EAAE;IACf,CAAC;EACL;AACJ;AAEA,OAAO,MAAMC,wBAAwB,GACjCL,YAAsC,IACjB;EACrB,OAAO,IAAIV,kBAAkB,CAACU,YAAY,CAAC;AAC/C,CAAC","ignoreList":[]}
@@ -1,16 +0,0 @@
1
- import { Plugin } from "@webiny/plugins";
2
- import type { SecurityTeam } from "../../../types/security.js";
3
- export interface SecurityTeamPluginParams {
4
- id: string;
5
- name: string;
6
- slug?: string;
7
- description?: string;
8
- roles?: string[];
9
- tenant?: string;
10
- }
11
- export declare class SecurityTeamPlugin extends Plugin {
12
- static readonly type: string;
13
- readonly securityTeam: SecurityTeam;
14
- constructor(params: SecurityTeamPluginParams);
15
- }
16
- export declare const createSecurityTeamPlugin: (securityTeam: SecurityTeamPluginParams) => SecurityTeamPlugin;
@@ -1,33 +0,0 @@
1
- import { Plugin } from "@webiny/plugins";
2
- export class SecurityTeamPlugin extends Plugin {
3
- static type = "security-team";
4
- constructor(params) {
5
- super();
6
- const {
7
- id,
8
- name,
9
- slug = id,
10
- description = "",
11
- roles = [],
12
- tenant = null
13
- } = params;
14
- this.securityTeam = {
15
- id,
16
- name,
17
- slug,
18
- description,
19
- roles: roles,
20
- tenant,
21
- // Internal properties.
22
- system: false,
23
- plugin: true,
24
- createdBy: null,
25
- createdOn: null
26
- };
27
- }
28
- }
29
- export const createSecurityTeamPlugin = securityTeam => {
30
- return new SecurityTeamPlugin(securityTeam);
31
- };
32
-
33
- //# sourceMappingURL=SecurityTeamPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Plugin","SecurityTeamPlugin","type","constructor","params","id","name","slug","description","roles","tenant","securityTeam","system","plugin","createdBy","createdOn","createSecurityTeamPlugin"],"sources":["SecurityTeamPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport type { SecurityTeam } from \"~/types/security.js\";\n\nexport interface SecurityTeamPluginParams {\n id: string;\n name: string;\n slug?: string;\n description?: string;\n roles?: string[];\n tenant?: string;\n}\n\nexport class SecurityTeamPlugin extends Plugin {\n public static override readonly type: string = \"security-team\";\n public readonly securityTeam: SecurityTeam;\n\n constructor(params: SecurityTeamPluginParams) {\n super();\n\n const { id, name, slug = id, description = \"\", roles = [], tenant = null } = params;\n\n this.securityTeam = {\n id,\n name,\n slug,\n description,\n roles: roles,\n tenant,\n\n // Internal properties.\n system: false,\n plugin: true,\n createdBy: null,\n createdOn: null\n };\n }\n}\n\nexport const createSecurityTeamPlugin = (\n securityTeam: SecurityTeamPluginParams\n): SecurityTeamPlugin => {\n return new SecurityTeamPlugin(securityTeam);\n};\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AAYxC,OAAO,MAAMC,kBAAkB,SAASD,MAAM,CAAC;EAC3C,OAAgCE,IAAI,GAAW,eAAe;EAG9DC,WAAWA,CAACC,MAAgC,EAAE;IAC1C,KAAK,CAAC,CAAC;IAEP,MAAM;MAAEC,EAAE;MAAEC,IAAI;MAAEC,IAAI,GAAGF,EAAE;MAAEG,WAAW,GAAG,EAAE;MAAEC,KAAK,GAAG,EAAE;MAAEC,MAAM,GAAG;IAAK,CAAC,GAAGN,MAAM;IAEnF,IAAI,CAACO,YAAY,GAAG;MAChBN,EAAE;MACFC,IAAI;MACJC,IAAI;MACJC,WAAW;MACXC,KAAK,EAAEA,KAAK;MACZC,MAAM;MAEN;MACAE,MAAM,EAAE,KAAK;MACbC,MAAM,EAAE,IAAI;MACZC,SAAS,EAAE,IAAI;MACfC,SAAS,EAAE;IACf,CAAC;EACL;AACJ;AAEA,OAAO,MAAMC,wBAAwB,GACjCL,YAAsC,IACjB;EACrB,OAAO,IAAIV,kBAAkB,CAACU,YAAY,CAAC;AAC/C,CAAC","ignoreList":[]}