@appsemble/utils 0.29.10 → 0.30.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 (493) hide show
  1. package/README.md +3 -3
  2. package/api/components/parameters/$own.d.ts +2 -0
  3. package/api/components/parameters/$own.js +7 -0
  4. package/api/components/parameters/appMemberId.d.ts +2 -0
  5. package/api/components/parameters/appMemberId.js +8 -0
  6. package/api/components/parameters/groupId.d.ts +2 -0
  7. package/api/components/parameters/groupId.js +8 -0
  8. package/api/components/parameters/groupMemberId.d.ts +2 -0
  9. package/api/components/parameters/groupMemberId.js +8 -0
  10. package/api/components/parameters/index.d.ts +17 -13
  11. package/api/components/parameters/index.js +17 -13
  12. package/api/components/parameters/organizationId.d.ts +9 -2
  13. package/api/components/parameters/organizationId.js +1 -1
  14. package/api/components/parameters/roles.js +12 -6
  15. package/api/components/parameters/seed.d.ts +2 -0
  16. package/api/components/parameters/seed.js +9 -0
  17. package/api/components/parameters/selectedGroupId.d.ts +2 -0
  18. package/api/components/parameters/selectedGroupId.js +7 -0
  19. package/api/components/parameters/serviceSecretId.d.ts +2 -0
  20. package/api/components/parameters/{appServiceId.js → serviceSecretId.js} +3 -3
  21. package/api/components/requestBodies/oauth2Consent.js +1 -5
  22. package/api/components/requestBodies/user.js +1 -1
  23. package/api/components/schemas/ActionDefinition.js +14 -11
  24. package/api/components/schemas/AppAccount.js +7 -24
  25. package/api/components/schemas/AppDefinition.js +3 -15
  26. package/api/components/schemas/AppMember.d.ts +2 -0
  27. package/api/components/schemas/AppMember.js +26 -0
  28. package/api/components/schemas/AppMemberCurrentPatchActionDefinition.d.ts +1 -0
  29. package/api/components/schemas/AppMemberCurrentPatchActionDefinition.js +30 -0
  30. package/api/components/schemas/AppMemberDeleteActionDefinition.d.ts +1 -0
  31. package/api/components/schemas/AppMemberDeleteActionDefinition.js +20 -0
  32. package/api/components/schemas/AppMemberInfo.d.ts +2 -0
  33. package/api/components/schemas/AppMemberInfo.js +48 -0
  34. package/api/components/schemas/AppMemberInviteActionDefinition.d.ts +1 -0
  35. package/api/components/schemas/AppMemberInviteActionDefinition.js +24 -0
  36. package/api/components/schemas/AppMemberLoginActionDefinition.d.ts +1 -0
  37. package/api/components/schemas/AppMemberLoginActionDefinition.js +24 -0
  38. package/api/components/schemas/AppMemberLogoutActionDefinition.d.ts +1 -0
  39. package/api/components/schemas/AppMemberLogoutActionDefinition.js +14 -0
  40. package/api/components/schemas/AppMemberPropertiesPatchActionDefinition.d.ts +1 -0
  41. package/api/components/schemas/AppMemberPropertiesPatchActionDefinition.js +26 -0
  42. package/api/components/schemas/AppMemberPropertyDefinition.d.ts +2 -0
  43. package/api/components/schemas/{UserPropertyDefinition.js → AppMemberPropertyDefinition.js} +5 -5
  44. package/api/components/schemas/AppMemberQueryActionDefinition.d.ts +1 -0
  45. package/api/components/schemas/AppMemberQueryActionDefinition.js +20 -0
  46. package/api/components/schemas/AppMemberRegisterActionDefinition.d.ts +1 -0
  47. package/api/components/schemas/AppMemberRegisterActionDefinition.js +43 -0
  48. package/api/components/schemas/AppMemberRoleUpdateActionDefinition.d.ts +1 -0
  49. package/api/components/schemas/AppMemberRoleUpdateActionDefinition.js +27 -0
  50. package/api/components/schemas/AppMembersDefinition.d.ts +2 -0
  51. package/api/components/schemas/AppMembersDefinition.js +17 -0
  52. package/api/components/schemas/GroupMember.d.ts +2 -0
  53. package/api/components/schemas/GroupMember.js +19 -0
  54. package/api/components/schemas/GroupMemberDeleteActionDefinition.d.ts +1 -0
  55. package/api/components/schemas/{TeamMembersActionDefinition.js → GroupMemberDeleteActionDefinition.js} +5 -5
  56. package/api/components/schemas/GroupMemberInviteActionDefinition.d.ts +1 -0
  57. package/api/components/schemas/{TeamInviteActionDefinition.js → GroupMemberInviteActionDefinition.js} +5 -6
  58. package/api/components/schemas/GroupMemberQueryActionDefinition.d.ts +1 -0
  59. package/api/components/schemas/GroupMemberQueryActionDefinition.js +18 -0
  60. package/api/components/schemas/GroupMemberRoleUpdateActionDefinition.d.ts +1 -0
  61. package/api/components/schemas/GroupMemberRoleUpdateActionDefinition.js +22 -0
  62. package/api/components/schemas/GroupQueryActionDefinition.d.ts +1 -0
  63. package/api/components/schemas/{UserLogoutActionDefinition.js → GroupQueryActionDefinition.js} +4 -4
  64. package/api/components/schemas/OrganizationMember.js +2 -2
  65. package/api/components/schemas/ResourceCountActionDefinition.js +4 -0
  66. package/api/components/schemas/ResourceCreateActionDefinition.js +1 -1
  67. package/api/components/schemas/ResourceDefinition.js +0 -22
  68. package/api/components/schemas/ResourceQueryActionDefinition.js +4 -0
  69. package/api/components/schemas/SecurityDefaultDefinition.js +1 -1
  70. package/api/components/schemas/SecurityDefinition.js +2 -6
  71. package/api/components/schemas/SecurityGuestDefinition.d.ts +2 -0
  72. package/api/components/schemas/SecurityGuestDefinition.js +26 -0
  73. package/api/components/schemas/SecurityRoleDefinition.js +7 -0
  74. package/api/components/schemas/User.js +2 -22
  75. package/api/components/schemas/UserInfo.d.ts +2 -0
  76. package/api/components/schemas/UserInfo.js +42 -0
  77. package/api/components/schemas/index.d.ts +22 -15
  78. package/api/components/schemas/index.js +22 -15
  79. package/api/components/securitySchemes/app.js +6 -6
  80. package/api/components/securitySchemes/cli.js +3 -3
  81. package/api/paths/app-collections/appCollectionId/apps/appId/pinned.d.ts +2 -0
  82. package/api/paths/app-collections/appCollectionId/apps/appId/pinned.js +70 -0
  83. package/api/paths/app-collections/appCollectionId/apps/appId.d.ts +2 -0
  84. package/api/paths/app-collections/appCollectionId/apps/appId.js +34 -0
  85. package/api/paths/app-collections/appCollectionId/apps.d.ts +2 -0
  86. package/api/paths/app-collections/appCollectionId/apps.js +93 -0
  87. package/api/paths/app-collections/appCollectionId/expert/profileImage.d.ts +2 -0
  88. package/api/paths/app-collections/appCollectionId/expert/profileImage.js +31 -0
  89. package/api/paths/app-collections/appCollectionId/headerImage.d.ts +2 -0
  90. package/api/paths/app-collections/appCollectionId/headerImage.js +31 -0
  91. package/api/paths/app-collections/appCollectionId.d.ts +2 -0
  92. package/api/paths/app-collections/appCollectionId.js +102 -0
  93. package/api/paths/app-invites/token/respond.d.ts +2 -0
  94. package/api/paths/app-invites/token/respond.js +51 -0
  95. package/api/paths/app-invites/token.d.ts +2 -0
  96. package/api/paths/app-invites/token.js +23 -0
  97. package/api/paths/app-members/appMemberId/picture.d.ts +2 -0
  98. package/api/paths/app-members/appMemberId/picture.js +30 -0
  99. package/api/paths/app-members/appMemberId/properties.d.ts +2 -0
  100. package/api/paths/app-members/appMemberId/properties.js +48 -0
  101. package/api/paths/app-members/appMemberId/role.d.ts +2 -0
  102. package/api/paths/app-members/appMemberId/role.js +46 -0
  103. package/api/paths/app-members/appMemberId.d.ts +2 -0
  104. package/api/paths/app-members/appMemberId.js +24 -0
  105. package/api/paths/appCollections.d.ts +1 -1
  106. package/api/paths/appCollections.js +12 -454
  107. package/api/paths/appTemplates.d.ts +2 -0
  108. package/api/paths/appTemplates.js +94 -0
  109. package/api/paths/apps/appId/actions/path.d.ts +2 -0
  110. package/api/paths/{action.js → apps/appId/actions/path.js} +18 -20
  111. package/api/paths/apps/appId/assets/assetId.d.ts +2 -0
  112. package/api/paths/apps/appId/assets/assetId.js +38 -0
  113. package/api/paths/apps/appId/assets/count.d.ts +2 -0
  114. package/api/paths/apps/appId/assets/count.js +22 -0
  115. package/api/paths/apps/appId/assets.d.ts +2 -0
  116. package/api/paths/apps/appId/assets.js +96 -0
  117. package/api/paths/apps/appId/auth/email/login.d.ts +2 -0
  118. package/api/paths/apps/appId/auth/email/login.js +10 -0
  119. package/api/paths/apps/appId/auth/email/register.d.ts +2 -0
  120. package/api/paths/apps/appId/auth/email/register.js +52 -0
  121. package/api/paths/apps/appId/auth/email/requestResetPassword.d.ts +2 -0
  122. package/api/paths/apps/appId/auth/email/requestResetPassword.js +31 -0
  123. package/api/paths/apps/appId/auth/email/resendVerification.d.ts +2 -0
  124. package/api/paths/apps/appId/auth/email/resendVerification.js +32 -0
  125. package/api/paths/apps/appId/auth/email/resetPassword.d.ts +2 -0
  126. package/api/paths/apps/appId/auth/email/resetPassword.js +34 -0
  127. package/api/paths/apps/appId/auth/email/verify.d.ts +2 -0
  128. package/api/paths/apps/appId/auth/email/verify.js +31 -0
  129. package/api/paths/apps/appId/broadcast.d.ts +2 -0
  130. package/api/paths/apps/appId/broadcast.js +36 -0
  131. package/api/paths/apps/appId/demo-groups.d.ts +2 -0
  132. package/api/paths/apps/appId/demo-groups.js +29 -0
  133. package/api/paths/apps/appId/demo-members.d.ts +2 -0
  134. package/api/paths/apps/appId/demo-members.js +27 -0
  135. package/api/paths/apps/appId/email.d.ts +2 -0
  136. package/api/paths/apps/appId/email.js +48 -0
  137. package/api/paths/apps/appId/export.d.ts +2 -0
  138. package/api/paths/apps/appId/export.js +41 -0
  139. package/api/paths/apps/appId/groups.d.ts +2 -0
  140. package/api/paths/apps/appId/groups.js +79 -0
  141. package/api/paths/apps/appId/icon.d.ts +2 -0
  142. package/api/paths/apps/appId/icon.js +31 -0
  143. package/api/paths/apps/appId/invites.d.ts +2 -0
  144. package/api/paths/apps/appId/invites.js +79 -0
  145. package/api/paths/apps/appId/lock.d.ts +2 -0
  146. package/api/paths/apps/appId/lock.js +35 -0
  147. package/api/paths/apps/appId/maskableIcon.d.ts +2 -0
  148. package/api/paths/apps/appId/maskableIcon.js +15 -0
  149. package/api/paths/apps/appId/members/current/groups.d.ts +2 -0
  150. package/api/paths/apps/appId/members/current/groups.js +30 -0
  151. package/api/paths/apps/appId/members/current/link.d.ts +2 -0
  152. package/api/paths/apps/appId/members/current/link.js +41 -0
  153. package/api/paths/apps/appId/members/current.d.ts +2 -0
  154. package/api/paths/apps/appId/members/current.js +111 -0
  155. package/api/paths/apps/appId/members.d.ts +2 -0
  156. package/api/paths/apps/appId/members.js +29 -0
  157. package/api/paths/apps/appId/messages/language.d.ts +2 -0
  158. package/api/paths/apps/appId/messages/language.js +47 -0
  159. package/api/paths/apps/appId/messages.d.ts +2 -0
  160. package/api/paths/apps/appId/messages.js +72 -0
  161. package/api/paths/apps/appId/quotas/emails.d.ts +2 -0
  162. package/api/paths/apps/appId/quotas/emails.js +36 -0
  163. package/api/paths/apps/appId/ratings.d.ts +2 -0
  164. package/api/paths/apps/appId/ratings.js +58 -0
  165. package/api/paths/apps/appId/readmes/readmeId.d.ts +2 -0
  166. package/api/paths/apps/appId/readmes/readmeId.js +17 -0
  167. package/api/paths/apps/appId/reseed.d.ts +2 -0
  168. package/api/paths/apps/appId/reseed.js +12 -0
  169. package/api/paths/apps/appId/resources/resourceType/count.d.ts +2 -0
  170. package/api/paths/apps/appId/resources/resourceType/count.js +30 -0
  171. package/api/paths/apps/appId/resources/resourceType/resourceId/subscriptions.d.ts +2 -0
  172. package/api/paths/apps/appId/resources/resourceType/resourceId/subscriptions.js +31 -0
  173. package/api/paths/apps/appId/resources/resourceType/resourceId.d.ts +2 -0
  174. package/api/paths/apps/appId/resources/resourceType/resourceId.js +74 -0
  175. package/api/paths/apps/appId/resources/resourceType/subscriptions.d.ts +2 -0
  176. package/api/paths/apps/appId/resources/resourceType/subscriptions.js +26 -0
  177. package/api/paths/apps/appId/resources/resourceType.d.ts +2 -0
  178. package/api/paths/apps/appId/resources/resourceType.js +171 -0
  179. package/api/paths/apps/appId/resources/versions.d.ts +2 -0
  180. package/api/paths/apps/appId/resources/versions.js +29 -0
  181. package/api/paths/apps/appId/resources.d.ts +2 -0
  182. package/api/paths/apps/appId/resources.js +15 -0
  183. package/api/paths/apps/appId/saml/secretId/acs.d.ts +2 -0
  184. package/api/paths/apps/appId/saml/secretId/acs.js +35 -0
  185. package/api/paths/apps/appId/saml/secretId/authn.d.ts +2 -0
  186. package/api/paths/apps/appId/saml/secretId/authn.js +37 -0
  187. package/api/paths/apps/appId/saml/secretId/metadata.d.ts +2 -0
  188. package/api/paths/apps/appId/saml/secretId/metadata.js +21 -0
  189. package/api/paths/apps/appId/scim/resource-types/resourceTypeId.d.ts +2 -0
  190. package/api/paths/apps/appId/scim/resource-types/resourceTypeId.js +25 -0
  191. package/api/paths/apps/appId/scim/resource-types.d.ts +2 -0
  192. package/api/paths/apps/appId/scim/resource-types.js +22 -0
  193. package/api/paths/apps/appId/scim/schemas/schemaId.d.ts +2 -0
  194. package/api/paths/apps/appId/scim/schemas/schemaId.js +24 -0
  195. package/api/paths/apps/appId/scim/schemas.d.ts +2 -0
  196. package/api/paths/apps/appId/scim/schemas.js +21 -0
  197. package/api/paths/apps/appId/scim/service-provider-config.d.ts +2 -0
  198. package/api/paths/apps/appId/scim/service-provider-config.js +22 -0
  199. package/api/paths/apps/appId/scim/users/userId.d.ts +2 -0
  200. package/api/paths/apps/appId/scim/users/userId.js +92 -0
  201. package/api/paths/apps/appId/scim/users.d.ts +2 -0
  202. package/api/paths/apps/appId/scim/users.js +58 -0
  203. package/api/paths/apps/appId/screenshots/screenshotId.d.ts +2 -0
  204. package/api/paths/apps/appId/screenshots/screenshotId.js +28 -0
  205. package/api/paths/apps/appId/screenshots.d.ts +2 -0
  206. package/api/paths/apps/appId/screenshots.js +55 -0
  207. package/api/paths/apps/appId/secrets/oauth2/secretId/verify.d.ts +2 -0
  208. package/api/paths/apps/appId/secrets/oauth2/secretId/verify.js +47 -0
  209. package/api/paths/apps/appId/secrets/oauth2/secretId.d.ts +2 -0
  210. package/api/paths/apps/appId/secrets/oauth2/secretId.js +60 -0
  211. package/api/paths/apps/appId/secrets/oauth2.d.ts +2 -0
  212. package/api/paths/apps/appId/secrets/oauth2.js +54 -0
  213. package/api/paths/apps/appId/secrets/saml/secretId.d.ts +2 -0
  214. package/api/paths/apps/appId/secrets/saml/secretId.js +39 -0
  215. package/api/paths/apps/appId/secrets/saml.d.ts +2 -0
  216. package/api/paths/apps/appId/secrets/saml.js +54 -0
  217. package/api/paths/apps/appId/secrets/scim.d.ts +2 -0
  218. package/api/paths/apps/appId/secrets/scim.js +43 -0
  219. package/api/paths/apps/appId/secrets/service/secretId.d.ts +2 -0
  220. package/api/paths/apps/appId/secrets/service/secretId.js +39 -0
  221. package/api/paths/apps/appId/secrets/service.d.ts +2 -0
  222. package/api/paths/apps/appId/secrets/service.js +54 -0
  223. package/api/paths/apps/appId/secrets/ssl.d.ts +2 -0
  224. package/api/paths/apps/appId/secrets/ssl.js +37 -0
  225. package/api/paths/apps/appId/snapshots/snapshotId.d.ts +2 -0
  226. package/api/paths/apps/appId/snapshots/snapshotId.js +47 -0
  227. package/api/paths/apps/appId/snapshots.d.ts +2 -0
  228. package/api/paths/apps/appId/snapshots.js +40 -0
  229. package/api/paths/apps/appId/style/block/organizationId/blockId.d.ts +2 -0
  230. package/api/paths/apps/appId/style/block/organizationId/blockId.js +53 -0
  231. package/api/paths/apps/appId/style/core.d.ts +2 -0
  232. package/api/paths/apps/appId/style/core.js +17 -0
  233. package/api/paths/apps/appId/style/shared.d.ts +2 -0
  234. package/api/paths/apps/appId/style/shared.js +17 -0
  235. package/api/paths/apps/appId/subscriptions.d.ts +2 -0
  236. package/api/paths/apps/appId/subscriptions.js +91 -0
  237. package/api/paths/apps/appId/variables/variableId.d.ts +2 -0
  238. package/api/paths/apps/appId/variables/variableId.js +39 -0
  239. package/api/paths/apps/appId/variables.d.ts +2 -0
  240. package/api/paths/apps/appId/variables.js +53 -0
  241. package/api/paths/apps/appId.d.ts +2 -0
  242. package/api/paths/apps/appId.js +175 -0
  243. package/api/paths/apps.d.ts +1 -1
  244. package/api/paths/apps.js +95 -1518
  245. package/api/paths/auth/email/login.d.ts +2 -0
  246. package/api/paths/auth/email/login.js +10 -0
  247. package/api/paths/auth/email/register.d.ts +2 -0
  248. package/api/paths/auth/email/register.js +45 -0
  249. package/api/paths/auth/email/requestResetPassword.d.ts +2 -0
  250. package/api/paths/auth/email/requestResetPassword.js +30 -0
  251. package/api/paths/auth/email/resendVerification.d.ts +2 -0
  252. package/api/paths/auth/email/resendVerification.js +31 -0
  253. package/api/paths/auth/email/resetPassword.d.ts +2 -0
  254. package/api/paths/auth/email/resetPassword.js +33 -0
  255. package/api/paths/auth/email/verify.d.ts +2 -0
  256. package/api/paths/auth/email/verify.js +30 -0
  257. package/api/paths/auth/oauth2/authorizations/connect.d.ts +2 -0
  258. package/api/paths/auth/oauth2/authorizations/connect.js +45 -0
  259. package/api/paths/auth/oauth2/authorizations/register.d.ts +2 -0
  260. package/api/paths/auth/oauth2/authorizations/register.js +32 -0
  261. package/api/paths/auth/refreshToken.d.ts +2 -0
  262. package/api/paths/auth/refreshToken.js +26 -0
  263. package/api/paths/blocks/organizationId/blockId/versions/list.d.ts +2 -0
  264. package/api/paths/blocks/organizationId/blockId/versions/list.js +27 -0
  265. package/api/paths/blocks/organizationId/blockId/versions/version/asset.d.ts +2 -0
  266. package/api/paths/blocks/organizationId/blockId/versions/version/asset.js +24 -0
  267. package/api/paths/blocks/organizationId/blockId/versions/version/icon.d.ts +2 -0
  268. package/api/paths/blocks/organizationId/blockId/versions/version/icon.js +18 -0
  269. package/api/paths/blocks/organizationId/blockId/versions/version/messages/language.d.ts +2 -0
  270. package/api/paths/blocks/organizationId/blockId/versions/version/messages/language.js +37 -0
  271. package/api/paths/blocks/organizationId/blockId/versions/version.d.ts +2 -0
  272. package/api/paths/blocks/organizationId/blockId/versions/version.js +29 -0
  273. package/api/paths/blocks/organizationId/blockId/versions.d.ts +2 -0
  274. package/api/paths/blocks/organizationId/blockId/versions.js +27 -0
  275. package/api/paths/blocks/organizationId/blockId.d.ts +2 -0
  276. package/api/paths/blocks/organizationId/blockId.js +18 -0
  277. package/api/paths/blocks/versions/blockVersion.js +21 -0
  278. package/api/paths/blocks.d.ts +1 -1
  279. package/api/paths/blocks.js +29 -204
  280. package/api/paths/containerLogs.d.ts +1 -1
  281. package/api/paths/containerLogs.js +28 -30
  282. package/api/paths/group-invites/token/respond.d.ts +2 -0
  283. package/api/paths/group-invites/token/respond.js +42 -0
  284. package/api/paths/group-invites/token.d.ts +2 -0
  285. package/api/paths/group-invites/token.js +23 -0
  286. package/api/paths/group-members/groupMemberId/role.d.ts +2 -0
  287. package/api/paths/group-members/groupMemberId/role.js +40 -0
  288. package/api/paths/group-members/groupMemberId.d.ts +2 -0
  289. package/api/paths/group-members/groupMemberId.js +34 -0
  290. package/api/paths/groups/groupId/invites.d.ts +2 -0
  291. package/api/paths/groups/groupId/invites.js +87 -0
  292. package/api/paths/groups/groupId/members.d.ts +2 -0
  293. package/api/paths/groups/groupId/members.js +34 -0
  294. package/api/paths/groups/groupId.d.ts +2 -0
  295. package/api/paths/groups/groupId.js +86 -0
  296. package/api/paths/health.d.ts +1 -1
  297. package/api/paths/health.js +12 -66
  298. package/api/paths/index.d.ts +145 -136
  299. package/api/paths/index.js +294 -58
  300. package/api/paths/messages/language.d.ts +2 -0
  301. package/api/paths/messages/language.js +21 -0
  302. package/api/paths/messages.d.ts +2 -0
  303. package/api/paths/messages.js +26 -0
  304. package/api/paths/organization-invites/token/respond.d.ts +2 -0
  305. package/api/paths/organization-invites/token/respond.js +42 -0
  306. package/api/paths/organization-invites/token.d.ts +2 -0
  307. package/api/paths/organization-invites/token.js +23 -0
  308. package/api/paths/organizations/organizationId/appCollections.d.ts +2 -0
  309. package/api/paths/organizations/organizationId/appCollections.js +76 -0
  310. package/api/paths/organizations/organizationId/apps/import.d.ts +2 -0
  311. package/api/paths/organizations/organizationId/apps/import.js +26 -0
  312. package/api/paths/organizations/organizationId/apps.d.ts +2 -0
  313. package/api/paths/organizations/organizationId/apps.js +33 -0
  314. package/api/paths/organizations/organizationId/blocks.d.ts +2 -0
  315. package/api/paths/organizations/organizationId/blocks.js +25 -0
  316. package/api/paths/organizations/organizationId/icon.d.ts +2 -0
  317. package/api/paths/organizations/organizationId/icon.js +14 -0
  318. package/api/paths/organizations/organizationId/invites/resend.d.ts +2 -0
  319. package/api/paths/organizations/organizationId/invites/resend.js +32 -0
  320. package/api/paths/organizations/organizationId/invites.d.ts +2 -0
  321. package/api/paths/organizations/organizationId/invites.js +108 -0
  322. package/api/paths/organizations/organizationId/members/memberId/role.d.ts +2 -0
  323. package/api/paths/organizations/organizationId/members/memberId/role.js +50 -0
  324. package/api/paths/organizations/organizationId/members/memberId.d.ts +2 -0
  325. package/api/paths/organizations/organizationId/members/memberId.js +25 -0
  326. package/api/paths/organizations/organizationId/members.d.ts +2 -0
  327. package/api/paths/organizations/organizationId/members.js +25 -0
  328. package/api/paths/organizations/organizationId.d.ts +2 -0
  329. package/api/paths/organizations/organizationId.js +67 -0
  330. package/api/paths/organizations.d.ts +1 -1
  331. package/api/paths/organizations.js +46 -452
  332. package/api/paths/ssl.d.ts +2 -0
  333. package/api/paths/ssl.js +31 -0
  334. package/api/paths/timezones.d.ts +2 -0
  335. package/api/paths/timezones.js +23 -0
  336. package/api/paths/trainingBlocks/trainingBlockId.d.ts +2 -0
  337. package/api/paths/trainingBlocks/trainingBlockId.js +41 -0
  338. package/api/paths/trainings/trainingId/blocks.d.ts +2 -0
  339. package/api/paths/trainings/trainingId/blocks.js +51 -0
  340. package/api/paths/trainings/trainingId/users/current.d.ts +2 -0
  341. package/api/paths/trainings/trainingId/users/current.js +62 -0
  342. package/api/paths/trainings/trainingId/users.d.ts +2 -0
  343. package/api/paths/trainings/trainingId/users.js +25 -0
  344. package/api/paths/trainings/trainingId.d.ts +2 -0
  345. package/api/paths/trainings/trainingId.js +85 -0
  346. package/api/paths/trainings.d.ts +1 -1
  347. package/api/paths/trainings.js +26 -287
  348. package/api/paths/users/current/apps/accounts.d.ts +2 -0
  349. package/api/paths/users/current/apps/accounts.js +24 -0
  350. package/api/paths/users/current/apps/appId/account.d.ts +2 -0
  351. package/api/paths/users/current/apps/appId/account.js +65 -0
  352. package/api/paths/users/current/apps.d.ts +2 -0
  353. package/api/paths/users/current/apps.js +32 -0
  354. package/api/paths/users/current/auth/oauth2/apps/appId/consent/agree.d.ts +2 -0
  355. package/api/paths/users/current/auth/oauth2/apps/appId/consent/agree.js +12 -0
  356. package/api/paths/users/current/auth/oauth2/apps/appId/consent/verify.d.ts +2 -0
  357. package/api/paths/users/current/auth/oauth2/apps/appId/consent/verify.js +12 -0
  358. package/api/paths/users/current/auth/oauth2/authorizations.d.ts +2 -0
  359. package/api/paths/users/current/auth/oauth2/authorizations.js +43 -0
  360. package/api/paths/users/current/auth/oauth2/clientCredentials/clientId.d.ts +2 -0
  361. package/api/paths/users/current/auth/oauth2/clientCredentials/clientId.js +23 -0
  362. package/api/paths/users/current/auth/oauth2/clientCredentials.d.ts +2 -0
  363. package/api/paths/users/current/auth/oauth2/clientCredentials.js +53 -0
  364. package/api/paths/users/current/emails.d.ts +2 -0
  365. package/api/paths/users/current/emails.js +73 -0
  366. package/api/paths/users/current/organizations.d.ts +2 -0
  367. package/api/paths/users/current/organizations.js +29 -0
  368. package/api/paths/users/current/unsubscribe.d.ts +2 -0
  369. package/api/paths/users/current/unsubscribe.js +29 -0
  370. package/api/paths/users/current.d.ts +2 -0
  371. package/api/paths/users/current.js +43 -0
  372. package/api/paths/users/subscribed.d.ts +2 -0
  373. package/api/paths/users/subscribed.js +12 -0
  374. package/api/tags/index.d.ts +2 -1
  375. package/api/tags/index.js +170 -8
  376. package/appMembers.d.ts +1 -0
  377. package/appMembers.js +9 -0
  378. package/authorization.d.ts +12 -0
  379. package/authorization.js +171 -0
  380. package/constants/index.d.ts +0 -2
  381. package/constants/index.js +0 -2
  382. package/constants/scopes.d.ts +1 -1
  383. package/constants/scopes.js +2 -2
  384. package/examples.js +13 -14
  385. package/index.d.ts +2 -2
  386. package/index.js +2 -2
  387. package/package.json +2 -2
  388. package/reference-schemas/remappers/data.js +23 -38
  389. package/remap.d.ts +3 -7
  390. package/remap.js +1 -2
  391. package/remap.test.js +8 -9
  392. package/validation.js +396 -83
  393. package/validation.test.js +1039 -230
  394. package/api/components/parameters/$team.d.ts +0 -2
  395. package/api/components/parameters/$team.js +0 -8
  396. package/api/components/parameters/appServiceId.d.ts +0 -2
  397. package/api/components/parameters/memberEmail.d.ts +0 -2
  398. package/api/components/parameters/memberEmail.js +0 -8
  399. package/api/components/schemas/TeamInviteActionDefinition.d.ts +0 -1
  400. package/api/components/schemas/TeamJoinActionDefinition.d.ts +0 -1
  401. package/api/components/schemas/TeamJoinActionDefinition.js +0 -14
  402. package/api/components/schemas/TeamListActionDefinition.d.ts +0 -1
  403. package/api/components/schemas/TeamListActionDefinition.js +0 -14
  404. package/api/components/schemas/TeamMembersActionDefinition.d.ts +0 -1
  405. package/api/components/schemas/TeamsDefinition.d.ts +0 -2
  406. package/api/components/schemas/TeamsDefinition.js +0 -28
  407. package/api/components/schemas/UserCreateActionDefinition.d.ts +0 -1
  408. package/api/components/schemas/UserCreateActionDefinition.js +0 -33
  409. package/api/components/schemas/UserLoginActionDefinition.d.ts +0 -1
  410. package/api/components/schemas/UserLoginActionDefinition.js +0 -22
  411. package/api/components/schemas/UserLogoutActionDefinition.d.ts +0 -1
  412. package/api/components/schemas/UserPropertyDefinition.d.ts +0 -2
  413. package/api/components/schemas/UserQueryActionDefinition.d.ts +0 -1
  414. package/api/components/schemas/UserQueryActionDefinition.js +0 -20
  415. package/api/components/schemas/UserRegisterActionDefinition.d.ts +0 -1
  416. package/api/components/schemas/UserRegisterActionDefinition.js +0 -37
  417. package/api/components/schemas/UserRemoveActionDefinition.d.ts +0 -1
  418. package/api/components/schemas/UserRemoveActionDefinition.js +0 -20
  419. package/api/components/schemas/UserUpdateActionDefinition.d.ts +0 -1
  420. package/api/components/schemas/UserUpdateActionDefinition.js +0 -36
  421. package/api/components/schemas/UsersDefinition.d.ts +0 -2
  422. package/api/components/schemas/UsersDefinition.js +0 -17
  423. package/api/paths/appMessages.d.ts +0 -2
  424. package/api/paths/appMessages.js +0 -120
  425. package/api/paths/appOAuth2Secrets.d.ts +0 -2
  426. package/api/paths/appOAuth2Secrets.js +0 -161
  427. package/api/paths/appQuotas.d.ts +0 -2
  428. package/api/paths/appQuotas.js +0 -38
  429. package/api/paths/appSSLSecrets.d.ts +0 -2
  430. package/api/paths/appSSLSecrets.js +0 -39
  431. package/api/paths/appSamlSecrets.d.ts +0 -2
  432. package/api/paths/appSamlSecrets.js +0 -94
  433. package/api/paths/appScimEndpoints.d.ts +0 -2
  434. package/api/paths/appScimEndpoints.js +0 -260
  435. package/api/paths/appScimSecrets.d.ts +0 -2
  436. package/api/paths/appScimSecrets.js +0 -45
  437. package/api/paths/appServiceSecrets.d.ts +0 -2
  438. package/api/paths/appServiceSecrets.js +0 -94
  439. package/api/paths/appVariables.d.ts +0 -2
  440. package/api/paths/appVariables.js +0 -93
  441. package/api/paths/appsembleMessages.d.ts +0 -2
  442. package/api/paths/appsembleMessages.js +0 -48
  443. package/api/paths/assets.d.ts +0 -2
  444. package/api/paths/assets.js +0 -213
  445. package/api/paths/emails.d.ts +0 -2
  446. package/api/paths/emails.js +0 -167
  447. package/api/paths/invite.d.ts +0 -2
  448. package/api/paths/invite.js +0 -25
  449. package/api/paths/oauth2ClientCredentials.d.ts +0 -2
  450. package/api/paths/oauth2ClientCredentials.js +0 -77
  451. package/api/paths/oauth2Login.d.ts +0 -2
  452. package/api/paths/oauth2Login.js +0 -119
  453. package/api/paths/oauth2Provider.d.ts +0 -2
  454. package/api/paths/oauth2Provider.js +0 -75
  455. package/api/paths/resourceHistory.d.ts +0 -2
  456. package/api/paths/resourceHistory.js +0 -31
  457. package/api/paths/resources.d.ts +0 -2
  458. package/api/paths/resources.js +0 -395
  459. package/api/paths/saml.d.ts +0 -2
  460. package/api/paths/saml.js +0 -126
  461. package/api/paths/templates.d.ts +0 -2
  462. package/api/paths/templates.js +0 -96
  463. package/api/paths/user.d.ts +0 -2
  464. package/api/paths/user.js +0 -649
  465. package/api/tags/app.d.ts +0 -2
  466. package/api/tags/app.js +0 -5
  467. package/api/tags/appMember.d.ts +0 -2
  468. package/api/tags/appMember.js +0 -5
  469. package/api/tags/asset.d.ts +0 -2
  470. package/api/tags/asset.js +0 -5
  471. package/api/tags/auth.d.ts +0 -2
  472. package/api/tags/auth.js +0 -5
  473. package/api/tags/language.d.ts +0 -2
  474. package/api/tags/language.js +0 -5
  475. package/api/tags/organization.d.ts +0 -2
  476. package/api/tags/organization.js +0 -5
  477. package/api/tags/resource.d.ts +0 -2
  478. package/api/tags/resource.js +0 -5
  479. package/api/tags/template.d.ts +0 -2
  480. package/api/tags/template.js +0 -5
  481. package/api/tags/user.d.ts +0 -2
  482. package/api/tags/user.js +0 -5
  483. package/appSecurity.d.ts +0 -9
  484. package/appSecurity.js +0 -41
  485. package/appSecurity.test.d.ts +0 -1
  486. package/appSecurity.test.js +0 -114
  487. package/checkAppRole.d.ts +0 -11
  488. package/checkAppRole.js +0 -34
  489. package/constants/Permission.d.ts +0 -114
  490. package/constants/Permission.js +0 -116
  491. package/constants/roles.d.ts +0 -16
  492. package/constants/roles.js +0 -58
  493. /package/api/paths/{action.d.ts → blocks/versions/blockVersion.d.ts} +0 -0
@@ -0,0 +1,171 @@
1
+ import { appOrganizationPermissionMapping, AppPermission, PredefinedAppRole, predefinedAppRolePermissions, predefinedOrganizationRolePermissions, } from '@appsemble/types';
2
+ function checkAppPermissions(acquiredPermissions, requiredPermissions) {
3
+ const customAppResourcePermissionPattern = /^\$resource:[^:]+:(get|query|create|delete|patch|update)$/;
4
+ const customAppOwnResourcePermissionPattern = /^\$resource:[^:]+:own:(get|query|delete|patch|update)$/;
5
+ const customAppResourceViewPermissionPattern = /^\$resource:[^:]+:(get|query):[^:]+$/;
6
+ return requiredPermissions.every((p) => {
7
+ if (acquiredPermissions.includes(p)) {
8
+ return true;
9
+ }
10
+ if (customAppResourcePermissionPattern.test(p)) {
11
+ const [, , resourceAction] = p.split(':');
12
+ return acquiredPermissions.includes(`$resource:all:${resourceAction}`);
13
+ }
14
+ if (customAppOwnResourcePermissionPattern.test(p)) {
15
+ const [, resourceName, , resourceAction] = p.split(':');
16
+ return (acquiredPermissions.includes(`$resource:all:${resourceAction}`) ||
17
+ acquiredPermissions.includes(`$resource:all:own:${resourceAction}`) ||
18
+ acquiredPermissions.includes(`$resource:${resourceName}:${resourceAction}`));
19
+ }
20
+ if (customAppResourceViewPermissionPattern.test(p)) {
21
+ const [, resourceName, resourceAction, view] = p.split(':');
22
+ return (acquiredPermissions.includes(`$resource:${resourceName}:${resourceAction}`) ||
23
+ acquiredPermissions.includes(`$resource:all:${resourceAction}`) ||
24
+ acquiredPermissions.includes(`$resource:all:${resourceAction}:${view}`));
25
+ }
26
+ });
27
+ }
28
+ export function getAppInheritedRoles(appSecurityDefinition, roles, accumulatedRoles = []) {
29
+ var _a;
30
+ if (!appSecurityDefinition) {
31
+ return [];
32
+ }
33
+ for (const role of roles) {
34
+ if (!accumulatedRoles.includes(role)) {
35
+ accumulatedRoles.push(role);
36
+ const roleDefinition = (_a = appSecurityDefinition.roles) === null || _a === void 0 ? void 0 : _a[role];
37
+ if (roleDefinition && roleDefinition.inherits) {
38
+ accumulatedRoles.push(...getAppInheritedRoles(appSecurityDefinition, roleDefinition.inherits, accumulatedRoles));
39
+ }
40
+ }
41
+ }
42
+ return Array.from(new Set(accumulatedRoles));
43
+ }
44
+ export function getAppRolePermissions(appSecurityDefinition, roles) {
45
+ var _a;
46
+ const accumulatedPermissions = [];
47
+ const inheritedRoles = getAppInheritedRoles(appSecurityDefinition, roles);
48
+ for (const role of inheritedRoles) {
49
+ const roleDefinition = (_a = appSecurityDefinition.roles) === null || _a === void 0 ? void 0 : _a[role];
50
+ if (roleDefinition) {
51
+ const rolePermissions = roleDefinition.permissions;
52
+ if (rolePermissions) {
53
+ accumulatedPermissions.push(...rolePermissions);
54
+ }
55
+ }
56
+ else {
57
+ const predefinedRolePermissions = predefinedAppRolePermissions[role];
58
+ if (predefinedRolePermissions) {
59
+ accumulatedPermissions.push(...predefinedRolePermissions);
60
+ }
61
+ }
62
+ }
63
+ return Array.from(new Set(accumulatedPermissions));
64
+ }
65
+ export function getGuestAppPermissions(appSecurityDefinition) {
66
+ if (!appSecurityDefinition || !appSecurityDefinition.guest) {
67
+ return [];
68
+ }
69
+ return [
70
+ ...(appSecurityDefinition.guest.permissions || []),
71
+ ...getAppRolePermissions(appSecurityDefinition, appSecurityDefinition.guest.inherits),
72
+ ];
73
+ }
74
+ export function checkGuestAppPermissions(appSecurityDefinition, requiredPermissions) {
75
+ const guestPermissions = getGuestAppPermissions(appSecurityDefinition);
76
+ return checkAppPermissions(guestPermissions, requiredPermissions);
77
+ }
78
+ export function getAppRoles(appSecurityDefinition) {
79
+ return Array.from(new Set([
80
+ ...Object.keys((appSecurityDefinition === null || appSecurityDefinition === void 0 ? void 0 : appSecurityDefinition.roles) || {}),
81
+ ...Object.keys(PredefinedAppRole),
82
+ ]));
83
+ }
84
+ export function getAppPossibleGuestPermissions(appDefinition) {
85
+ const possibleAllViews = {};
86
+ const resourceDefinitions = Object.values(appDefinition.resources || {});
87
+ for (const resourceDefinition of resourceDefinitions) {
88
+ for (const view of Object.keys(resourceDefinition.views || {})) {
89
+ possibleAllViews[view] = true;
90
+ }
91
+ }
92
+ for (const view of Object.keys(possibleAllViews)) {
93
+ if (resourceDefinitions.some((resourceDefinition) => { var _a; return !((_a = resourceDefinition.views) === null || _a === void 0 ? void 0 : _a[view]); })) {
94
+ possibleAllViews[view] = false;
95
+ }
96
+ }
97
+ for (const view in possibleAllViews) {
98
+ if (!possibleAllViews[view]) {
99
+ delete possibleAllViews[view];
100
+ }
101
+ }
102
+ return [
103
+ ...Object.values(AppPermission),
104
+ ...Object.entries(appDefinition.resources || {}).flatMap(([resourceName, resourceDefinition]) => [
105
+ `$resource:${resourceName}:create`,
106
+ `$resource:${resourceName}:query`,
107
+ `$resource:${resourceName}:get`,
108
+ `$resource:${resourceName}:update`,
109
+ `$resource:${resourceName}:patch`,
110
+ `$resource:${resourceName}:delete`,
111
+ ...Object.keys(resourceDefinition.views || {}).flatMap((resourceView) => [
112
+ `$resource:${resourceName}:query:${resourceView}`,
113
+ `$resource:${resourceName}:get:${resourceView}`,
114
+ ]),
115
+ ...Object.keys(possibleAllViews).flatMap((view) => [
116
+ `$resource:all:query:${view}`,
117
+ `$resource:all:get:${view}`,
118
+ ]),
119
+ ]),
120
+ ];
121
+ }
122
+ export function getAppPossiblePermissions(appDefinition) {
123
+ return [
124
+ ...getAppPossibleGuestPermissions(appDefinition),
125
+ ...Object.keys(appDefinition.resources || {}).flatMap((resourceName) => [
126
+ `$resource:${resourceName}:own:query`,
127
+ `$resource:${resourceName}:own:get`,
128
+ `$resource:${resourceName}:own:update`,
129
+ `$resource:${resourceName}:own:patch`,
130
+ `$resource:${resourceName}:own:delete`,
131
+ ]),
132
+ ];
133
+ }
134
+ export function getAppRolesByPermissions(appSecurityDefinition, requiredPermissions) {
135
+ const roles = getAppRoles(appSecurityDefinition);
136
+ const compliantRoles = [];
137
+ for (const role of roles) {
138
+ if (checkAppPermissions(getAppRolePermissions(appSecurityDefinition, [role]), requiredPermissions)) {
139
+ compliantRoles.push(role);
140
+ }
141
+ }
142
+ if (checkAppPermissions(getGuestAppPermissions(appSecurityDefinition), requiredPermissions)) {
143
+ compliantRoles.push('Guest');
144
+ }
145
+ return compliantRoles;
146
+ }
147
+ export function checkAppRoleAppPermissions(appSecurityDefinition, appRole, requiredPermissions) {
148
+ const appRolePermissions = getAppRolePermissions(appSecurityDefinition, [appRole]);
149
+ return checkAppPermissions(appRolePermissions, requiredPermissions);
150
+ }
151
+ export function checkOrganizationRoleAppPermissions(organizationRole, requiredPermissions) {
152
+ if (!organizationRole) {
153
+ return false;
154
+ }
155
+ const organizationRolePermissions = predefinedOrganizationRolePermissions[organizationRole];
156
+ return requiredPermissions.every((p) => {
157
+ let mappedPermission = appOrganizationPermissionMapping[p];
158
+ if (!mappedPermission) {
159
+ const customAppPermission = p;
160
+ if (customAppPermission.startsWith('$resource')) {
161
+ mappedPermission =
162
+ appOrganizationPermissionMapping[p.replace(/:[^:]*:/, ':all:')];
163
+ }
164
+ }
165
+ return organizationRolePermissions.includes(mappedPermission);
166
+ });
167
+ }
168
+ export function checkOrganizationRoleOrganizationPermissions(organizationRole, requiredPermissions) {
169
+ return requiredPermissions.every((p) => predefinedOrganizationRolePermissions[organizationRole].includes(p));
170
+ }
171
+ //# sourceMappingURL=authorization.js.map
@@ -5,5 +5,3 @@ export * from './fonts.js';
5
5
  export * from './locale.js';
6
6
  export * from './scopes.js';
7
7
  export * from './patterns.js';
8
- export * from './roles.js';
9
- export * from './Permission.js';
@@ -5,6 +5,4 @@ export * from './fonts.js';
5
5
  export * from './locale.js';
6
6
  export * from './scopes.js';
7
7
  export * from './patterns.js';
8
- export * from './roles.js';
9
- export * from './Permission.js';
10
8
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * All known OAuth2 scopes for client credentials.
3
3
  */
4
- export declare const scopes: readonly ["apps:export", "apps:write", "apps:delete", "blocks:write", "blocks:delete", "organizations:write", "resources:read", "resources:write", "assets:write", "teams:read", "teams:write"];
4
+ export declare const scopes: readonly ["apps:export", "apps:write", "apps:delete", "blocks:write", "blocks:delete", "organizations:write", "resources:read", "resources:write", "assets:write", "groups:read", "groups:write"];
@@ -11,7 +11,7 @@ export const scopes = [
11
11
  'resources:read',
12
12
  'resources:write',
13
13
  'assets:write',
14
- 'teams:read',
15
- 'teams:write',
14
+ 'groups:read',
15
+ 'groups:write',
16
16
  ];
17
17
  //# sourceMappingURL=scopes.js.map
package/examples.js CHANGED
@@ -27,7 +27,7 @@ export const examples = {
27
27
  },
28
28
  result: 'https://example-app.example-organization.example.com',
29
29
  },
30
- appMember: {
30
+ 'app.member': {
31
31
  input: null,
32
32
  remapper: {},
33
33
  result: {},
@@ -649,12 +649,6 @@ export const examples = {
649
649
  result: {},
650
650
  skip: true,
651
651
  },
652
- user: {
653
- input: null,
654
- remapper: {},
655
- result: {},
656
- skip: true,
657
- },
658
652
  container: {
659
653
  input: null,
660
654
  remapper: {},
@@ -689,18 +683,23 @@ export function createExampleContext(url, lang, userInfo, history) {
689
683
  getVariable: (name) => (name === 'MY_VARIABLE' ? 'variable value' : null),
690
684
  url: String(url),
691
685
  appUrl: `${url.protocol}//example-app.example-organization.${url.host}`,
692
- userInfo: userInfo !== null && userInfo !== void 0 ? userInfo : {
693
- sub: 'default-example-sub',
694
- name: 'default-example-name',
695
- email: 'default@example.com',
696
- email_verified: false,
697
- },
698
686
  context: {},
699
687
  history: history !== null && history !== void 0 ? history : ['Default example value'],
700
688
  appId: 0,
701
689
  locale: 'en',
702
690
  pageData: { default: 'Page data' },
703
- appMember: userInfo === null || userInfo === void 0 ? void 0 : userInfo.appMember,
691
+ appMemberInfo: {
692
+ sub: 'default-example-id',
693
+ email: 'default-app-member@example.com',
694
+ email_verified: true,
695
+ name: 'default-example-name',
696
+ demo: false,
697
+ role: 'Member',
698
+ zoneinfo: 'Europe/Amsterdam',
699
+ properties: {
700
+ completedExamples: [],
701
+ },
702
+ },
704
703
  };
705
704
  }
706
705
  //# sourceMappingURL=examples.js.map
package/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import './types.js';
2
2
  export * from './api/index.js';
3
3
  export * from './appMessages.js';
4
- export * from './appSecurity.js';
5
4
  export * from './blockUtils.js';
6
5
  export * from './compare.js';
7
6
  export * from './constants/index.js';
@@ -11,7 +10,6 @@ export * from './noop.js';
11
10
  export * from './normalize.js';
12
11
  export * from './validateStyle.js';
13
12
  export * from './prefix.js';
14
- export * from './checkAppRole.js';
15
13
  export * from './formatRequestAction.js';
16
14
  export * from './iterApp.js';
17
15
  export * from './jsonschema.js';
@@ -29,6 +27,8 @@ export * from './serverActions.js';
29
27
  export * from './validation.js';
30
28
  export * from './serializeResource.js';
31
29
  export * from './convertToCsv.js';
30
+ export * from './authorization.js';
31
+ export * from './appMembers.js';
32
32
  export * from './assets.js';
33
33
  export * from './validateAppMessages.js';
34
34
  export * from './findPageByName.js';
package/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import './types.js';
2
2
  export * from './api/index.js';
3
3
  export * from './appMessages.js';
4
- export * from './appSecurity.js';
5
4
  export * from './blockUtils.js';
6
5
  export * from './compare.js';
7
6
  export * from './constants/index.js';
@@ -11,7 +10,6 @@ export * from './noop.js';
11
10
  export * from './normalize.js';
12
11
  export * from './validateStyle.js';
13
12
  export * from './prefix.js';
14
- export * from './checkAppRole.js';
15
13
  export * from './formatRequestAction.js';
16
14
  export * from './iterApp.js';
17
15
  export * from './jsonschema.js';
@@ -29,6 +27,8 @@ export * from './serverActions.js';
29
27
  export * from './validation.js';
30
28
  export * from './serializeResource.js';
31
29
  export * from './convertToCsv.js';
30
+ export * from './authorization.js';
31
+ export * from './appMembers.js';
32
32
  export * from './assets.js';
33
33
  export * from './validateAppMessages.js';
34
34
  export * from './findPageByName.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appsemble/utils",
3
- "version": "0.29.10",
3
+ "version": "0.30.1",
4
4
  "description": "Utility functions used in Appsemble internally",
5
5
  "keywords": [
6
6
  "app",
@@ -37,7 +37,7 @@
37
37
  "test": "vitest"
38
38
  },
39
39
  "dependencies": {
40
- "@appsemble/types": "0.29.10",
40
+ "@appsemble/types": "0.30.1",
41
41
  "axios": "^1.0.0",
42
42
  "cron-parser": "^4.0.0",
43
43
  "date-fns": "^2.0.0",
@@ -304,22 +304,34 @@ parameters:
304
304
 
305
305
  `,
306
306
  },
307
- user: {
308
- enum: ['sub', 'name', 'email', 'email_verified', 'picture', 'profile', 'locale', 'properties'],
307
+ 'app.member': {
308
+ enum: [
309
+ 'sub',
310
+ 'name',
311
+ 'email',
312
+ 'email_verified',
313
+ 'picture',
314
+ 'locale',
315
+ 'zoneinfo',
316
+ 'role',
317
+ 'properties',
318
+ ],
309
319
  description: `
310
- > **Note:** For this remapper to work, the user that activated the remapper has to be logged in to
320
+ > **Note:** For this remapper to work, the app member that activated the remapper has to be logged in to
311
321
  > the app
312
322
 
313
- Provides some fields of user information taken from the OpenID user info. These fields are:
323
+ Provides some fields of app member information taken from the OpenID user info. These fields are:
314
324
 
315
- - \`email\`: User’s **primary** email address
316
- - \`email_verified\`: Whether the user’s primary email address is verified or not (\`boolean\`)
317
- - \`locale\`: The user’s default language [\`BCP47\`](https://en.wikipedia.org/wiki/IETF_language_tag)
325
+ - \`sub\`: The app member’s identifier
326
+ - \`name\`: The app member’s name
327
+ - \`email\`: The app member’s **primary** email address
328
+ - \`email_verified\`: Whether the app member’s primary email address is verified or not (\`boolean\`)
329
+ - \`picture\`: Full URL to the app member’s profile picture web address
330
+ - \`locale\`: The app member’s default language [\`BCP47\`](https://en.wikipedia.org/wiki/IETF_language_tag)
318
331
  language tag (ex. \`en\`) (Broken)
319
- - \`name\`: The user’s name
320
- - \`picture\`: Full URL to the user’s profile picture web address
321
- - \`sub\`: The user’s identifier
322
- - \`properties\`: Custom properties defined on the user
332
+ - \`zoneinfo\`: The app member’s timezone
333
+ - \`role\`: The role of the app member in the app
334
+ - \`properties\`: Custom properties defined on the app member
323
335
 
324
336
  Example:
325
337
 
@@ -333,33 +345,6 @@ Example:
333
345
  "sub": "5c6270e2-ad31-414f-bcab-6752a2c4dcfd",
334
346
  "properties": {}
335
347
  }
336
- \`\`\`
337
- `,
338
- },
339
- appMember: {
340
- enum: ['userId', 'memberId', 'name', 'primary_email', 'role'],
341
- description: `
342
- > **Note:** For this remapper to work, the user that activated the remapper has to be logged in to
343
- > the app
344
-
345
- Provides some fields of the appMember object.
346
-
347
- - \`userId\`: The id of the user to which the appMember object belongs.
348
- - \`memberId\`: The id of the appMember object itself. This value should be used when fetching resources created by the current user.
349
- - \`primary_email\`: User’s **primary** email address.
350
- - \`name\`: The user’s name.
351
- - \`role\`: User's role in the context of the app.
352
-
353
- Example:
354
-
355
- \`\`\`json
356
- {
357
- "memberId": "1f433c7a-54ea-466e-89f7-5dbb8f324b12",
358
- "name": "Test User"
359
- "primaryEmail": "example@hotmail.nl",
360
- "role": "Medewerker",
361
- "userId": "5c6270e2-ad31-414f-bcab-6752a2c4dcfd"
362
- }
363
348
  \`\`\`
364
349
  `,
365
350
  },
package/remap.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type AppMember, type Remapper, type UserInfo, type ValueFromProcess } from '@appsemble/types';
1
+ import { type AppMemberInfo, type Remapper, type ValueFromProcess } from '@appsemble/types';
2
2
  import { type IntlMessageFormat } from 'intl-messageformat';
3
3
  export interface IntlMessage {
4
4
  id?: string;
@@ -46,17 +46,13 @@ export interface RemapperContext {
46
46
  */
47
47
  pageData?: unknown;
48
48
  /**
49
- * The OpenID compatible userinfo object for the current user.
49
+ * The OpenID compatible userinfo object for the current app member.
50
50
  */
51
- userInfo: UserInfo;
51
+ appMemberInfo: AppMemberInfo;
52
52
  /**
53
53
  * A custom context passed to the remap function.
54
54
  */
55
55
  context: Record<string, any>;
56
- /**
57
- * The appMember object for the current user in the app.
58
- */
59
- appMember: AppMember;
60
56
  }
61
57
  interface InternalContext extends RemapperContext {
62
58
  root?: unknown;
package/remap.js CHANGED
@@ -413,8 +413,7 @@ const mapperImplementations = {
413
413
  const message = context.getMessage({ id: messageId });
414
414
  return message.format() || `{${messageId}}`;
415
415
  },
416
- user: (property, input, context) => { var _a; return (_a = context.userInfo) === null || _a === void 0 ? void 0 : _a[property]; },
417
- appMember: (property, input, context) => { var _a, _b; return (_b = (_a = context.userInfo) === null || _a === void 0 ? void 0 : _a.appMember) === null || _b === void 0 ? void 0 : _b[property]; },
416
+ 'app.member': (property, input, context) => { var _a; return (_a = context.appMemberInfo) === null || _a === void 0 ? void 0 : _a[property]; },
418
417
  container(property, input, context) {
419
418
  // This value is replaced when the request is made
420
419
  // By using the value of the release name
package/remap.test.js CHANGED
@@ -3,19 +3,18 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
3
3
  import { createExampleContext, examples } from './examples.js';
4
4
  import { remap } from './remap.js';
5
5
  function runTests(tests) {
6
- it.each(Object.entries(tests))('should %s', (name, { context, expected, history, input, mappers, messages, userInfo, variables }) => {
6
+ it.each(Object.entries(tests))('should %s', (name, { appMemberInfo, context, expected, history, input, mappers, messages, variables }) => {
7
7
  const result = remap(mappers, input, {
8
8
  getMessage: ({ defaultMessage, id }) => { var _a, _b; return new IntlMessageFormat((_b = (_a = messages === null || messages === void 0 ? void 0 : messages.messageIds) === null || _a === void 0 ? void 0 : _a[id]) !== null && _b !== void 0 ? _b : defaultMessage); },
9
9
  getVariable: (variableName) => { var _a; return (_a = variables.find((variable) => variable.name === variableName)) === null || _a === void 0 ? void 0 : _a.value; },
10
10
  url: 'https://example.com/en/example',
11
11
  appUrl: 'https://example.com',
12
- userInfo,
13
12
  context,
14
13
  history,
15
14
  appId: 6789,
16
15
  locale: 'en',
17
16
  pageData: { hello: 'Page data' },
18
- appMember: userInfo === null || userInfo === void 0 ? void 0 : userInfo.appMember,
17
+ appMemberInfo,
19
18
  });
20
19
  expect(result).toStrictEqual(expected);
21
20
  });
@@ -271,7 +270,7 @@ describe('log', () => {
271
270
  vi.spyOn(console, 'warn').mockImplementation(null);
272
271
  });
273
272
  function runLogTests(tests) {
274
- it.each(Object.entries(tests))('should %s', (name, { context, expected: expectedInput, history, input, mappers, messages, userInfo, variables, }) => {
273
+ it.each(Object.entries(tests))('should %s', (name, { appMemberInfo, context, expected: expectedInput, history, input, mappers, messages, variables, }) => {
275
274
  const expected = JSON.stringify({
276
275
  input: expectedInput,
277
276
  context: {
@@ -292,13 +291,12 @@ describe('log', () => {
292
291
  getVariable: (variableName) => variables.find((variable) => variable.name === variableName).value,
293
292
  url: 'https://example.com/en/example',
294
293
  appUrl: 'https://example.com',
295
- userInfo,
296
294
  context,
297
295
  history,
298
296
  appId: 6789,
299
297
  locale: 'en',
300
298
  pageData: { hello: 'Page data' },
301
- appMember: userInfo === null || userInfo === void 0 ? void 0 : userInfo.appMember,
299
+ appMemberInfo,
302
300
  });
303
301
  expect(console[mappers.log]).toHaveBeenCalledWith(expected);
304
302
  });
@@ -1284,15 +1282,16 @@ describe('user', () => {
1284
1282
  runTests({
1285
1283
  'insert user info': {
1286
1284
  input: null,
1287
- mappers: { user: 'name' },
1285
+ mappers: { 'app.member': 'name' },
1288
1286
  expected: 'Me',
1289
- userInfo: {
1287
+ appMemberInfo: {
1290
1288
  sub: '1',
1291
1289
  name: 'Me',
1292
1290
  email: 'me@example.com',
1293
1291
  email_verified: true,
1294
1292
  picture: '',
1295
- profile: '',
1293
+ role: 'Member',
1294
+ demo: false,
1296
1295
  },
1297
1296
  },
1298
1297
  });