@appsemble/utils 0.20.28 → 0.20.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/api/components/schemas/AppDefinition.js +1 -0
- package/api/components/schemas/LoopPageActionsDefinition.d.ts +2 -0
- package/api/components/schemas/LoopPageActionsDefinition.js +24 -0
- package/api/components/schemas/LoopPageDefinition.d.ts +1 -0
- package/api/components/schemas/LoopPageDefinition.js +38 -0
- package/api/components/schemas/ObjectRemapperDefinition.js +4 -0
- package/api/components/schemas/index.d.ts +2 -0
- package/api/components/schemas/index.js +2 -0
- package/appMessages.js +4 -1
- package/iterApp.js +3 -0
- package/package.json +2 -2
- package/remap.d.ts +3 -0
- package/remap.js +3 -0
- package/validation.js +7 -7
- package/validation.test.js +1 -1
- package/api/components/index.js.map +0 -1
- package/api/components/index.ts +0 -15
- package/api/components/parameters/$filter.js.map +0 -1
- package/api/components/parameters/$filter.ts +0 -12
- package/api/components/parameters/$orderby.js.map +0 -1
- package/api/components/parameters/$orderby.ts +0 -12
- package/api/components/parameters/$select.js.map +0 -1
- package/api/components/parameters/$select.ts +0 -15
- package/api/components/parameters/$team.js.map +0 -1
- package/api/components/parameters/$team.ts +0 -11
- package/api/components/parameters/$top.js.map +0 -1
- package/api/components/parameters/$top.ts +0 -9
- package/api/components/parameters/appId.js.map +0 -1
- package/api/components/parameters/appId.ts +0 -9
- package/api/components/parameters/appOAuth2SecretId.js.map +0 -1
- package/api/components/parameters/appOAuth2SecretId.ts +0 -9
- package/api/components/parameters/appSamlSecretId.js.map +0 -1
- package/api/components/parameters/appSamlSecretId.ts +0 -12
- package/api/components/parameters/assetId.js.map +0 -1
- package/api/components/parameters/assetId.ts +0 -9
- package/api/components/parameters/blockId.js.map +0 -1
- package/api/components/parameters/blockId.ts +0 -15
- package/api/components/parameters/blockVersion.js.map +0 -1
- package/api/components/parameters/blockVersion.ts +0 -9
- package/api/components/parameters/endpoint.js.map +0 -1
- package/api/components/parameters/endpoint.ts +0 -9
- package/api/components/parameters/index.js.map +0 -1
- package/api/components/parameters/index.ts +0 -18
- package/api/components/parameters/language.js.map +0 -1
- package/api/components/parameters/language.ts +0 -9
- package/api/components/parameters/organizationId.js.map +0 -1
- package/api/components/parameters/organizationId.ts +0 -9
- package/api/components/parameters/resourceId.js.map +0 -1
- package/api/components/parameters/resourceId.ts +0 -9
- package/api/components/parameters/resourceType.js.map +0 -1
- package/api/components/parameters/resourceType.ts +0 -11
- package/api/components/parameters/screenshotId.js.map +0 -1
- package/api/components/parameters/screenshotId.ts +0 -9
- package/api/components/parameters/view.js.map +0 -1
- package/api/components/parameters/view.ts +0 -8
- package/api/components/requestBodies/index.js.map +0 -1
- package/api/components/requestBodies/index.ts +0 -3
- package/api/components/requestBodies/oauth2Consent.js.map +0 -1
- package/api/components/requestBodies/oauth2Consent.ts +0 -31
- package/api/components/requestBodies/resource.js.map +0 -1
- package/api/components/requestBodies/resource.ts +0 -31
- package/api/components/requestBodies/user.js.map +0 -1
- package/api/components/requestBodies/user.ts +0 -12
- package/api/components/responses/app.js.map +0 -1
- package/api/components/responses/app.ts +0 -12
- package/api/components/responses/blockVersion.js.map +0 -1
- package/api/components/responses/blockVersion.ts +0 -12
- package/api/components/responses/default.js.map +0 -1
- package/api/components/responses/default.ts +0 -10
- package/api/components/responses/index.js.map +0 -1
- package/api/components/responses/index.ts +0 -8
- package/api/components/responses/invite.js.map +0 -1
- package/api/components/responses/invite.ts +0 -12
- package/api/components/responses/oauth2AuthorizationCode.js.map +0 -1
- package/api/components/responses/oauth2AuthorizationCode.ts +0 -12
- package/api/components/responses/organization.js.map +0 -1
- package/api/components/responses/organization.ts +0 -12
- package/api/components/responses/resource.js.map +0 -1
- package/api/components/responses/resource.ts +0 -17
- package/api/components/responses/subscriptions.js.map +0 -1
- package/api/components/responses/subscriptions.ts +0 -16
- package/api/components/schemas/ActionDefinition.js.map +0 -1
- package/api/components/schemas/ActionDefinition.ts +0 -82
- package/api/components/schemas/AnalyticsActionDefinition.js.map +0 -1
- package/api/components/schemas/AnalyticsActionDefinition.ts +0 -25
- package/api/components/schemas/App.js.map +0 -1
- package/api/components/schemas/App.ts +0 -107
- package/api/components/schemas/AppAccount.js.map +0 -1
- package/api/components/schemas/AppAccount.ts +0 -39
- package/api/components/schemas/AppDefinition.js.map +0 -1
- package/api/components/schemas/AppDefinition.ts +0 -112
- package/api/components/schemas/AppLayoutDefinition.js.map +0 -1
- package/api/components/schemas/AppLayoutDefinition.ts +0 -39
- package/api/components/schemas/AppMessages.js.map +0 -1
- package/api/components/schemas/AppMessages.ts +0 -17
- package/api/components/schemas/AppOAuth2Secret.js.map +0 -1
- package/api/components/schemas/AppOAuth2Secret.ts +0 -65
- package/api/components/schemas/AppsembleMessages.js.map +0 -1
- package/api/components/schemas/AppsembleMessages.ts +0 -41
- package/api/components/schemas/Asset.js.map +0 -1
- package/api/components/schemas/Asset.ts +0 -33
- package/api/components/schemas/BaseActionDefinition.js.map +0 -1
- package/api/components/schemas/BaseActionDefinition.ts +0 -11
- package/api/components/schemas/BaseJSONSchema.js.map +0 -1
- package/api/components/schemas/BaseJSONSchema.ts +0 -25
- package/api/components/schemas/BasePageDefinition.js.map +0 -1
- package/api/components/schemas/BasePageDefinition.ts +0 -89
- package/api/components/schemas/BlockDefinition.js.map +0 -1
- package/api/components/schemas/BlockDefinition.ts +0 -86
- package/api/components/schemas/BlockVersion.js.map +0 -1
- package/api/components/schemas/BlockVersion.ts +0 -162
- package/api/components/schemas/ConditionActionDefinition.js.map +0 -1
- package/api/components/schemas/ConditionActionDefinition.ts +0 -30
- package/api/components/schemas/CronDefinition.js.map +0 -1
- package/api/components/schemas/CronDefinition.ts +0 -21
- package/api/components/schemas/CustomFontDefinition.js.map +0 -1
- package/api/components/schemas/CustomFontDefinition.ts +0 -21
- package/api/components/schemas/DialogActionDefinition.js.map +0 -1
- package/api/components/schemas/DialogActionDefinition.ts +0 -42
- package/api/components/schemas/DialogErrorActionDefinition.js.map +0 -1
- package/api/components/schemas/DialogErrorActionDefinition.ts +0 -17
- package/api/components/schemas/DialogOkActionDefinition.js.map +0 -1
- package/api/components/schemas/DialogOkActionDefinition.ts +0 -17
- package/api/components/schemas/DownloadActionDefinition.js.map +0 -1
- package/api/components/schemas/DownloadActionDefinition.ts +0 -19
- package/api/components/schemas/EachActionDefinition.js.map +0 -1
- package/api/components/schemas/EachActionDefinition.ts +0 -22
- package/api/components/schemas/EmailActionDefinition.js.map +0 -1
- package/api/components/schemas/EmailActionDefinition.ts +0 -58
- package/api/components/schemas/Error.js.map +0 -1
- package/api/components/schemas/Error.ts +0 -25
- package/api/components/schemas/EventActionDefinition.js.map +0 -1
- package/api/components/schemas/EventActionDefinition.ts +0 -28
- package/api/components/schemas/EventsDefinition.js.map +0 -1
- package/api/components/schemas/EventsDefinition.ts +0 -30
- package/api/components/schemas/FlowBackActionDefinition.js.map +0 -1
- package/api/components/schemas/FlowBackActionDefinition.ts +0 -16
- package/api/components/schemas/FlowFinishActionDefinition.js.map +0 -1
- package/api/components/schemas/FlowFinishActionDefinition.ts +0 -16
- package/api/components/schemas/FlowNextActionDefinition.js.map +0 -1
- package/api/components/schemas/FlowNextActionDefinition.ts +0 -17
- package/api/components/schemas/FlowPageActionsDefinition.js.map +0 -1
- package/api/components/schemas/FlowPageActionsDefinition.ts +0 -20
- package/api/components/schemas/FlowPageDefinition.js.map +0 -1
- package/api/components/schemas/FlowPageDefinition.ts +0 -37
- package/api/components/schemas/FlowToActionDefinition.js.map +0 -1
- package/api/components/schemas/FlowToActionDefinition.ts +0 -21
- package/api/components/schemas/GoogleFontDefinition.js.map +0 -1
- package/api/components/schemas/GoogleFontDefinition.ts +0 -24
- package/api/components/schemas/Health.js.map +0 -1
- package/api/components/schemas/Health.ts +0 -14
- package/api/components/schemas/JSONPointer.js.map +0 -1
- package/api/components/schemas/JSONPointer.ts +0 -20
- package/api/components/schemas/JSONSchema.js.map +0 -1
- package/api/components/schemas/JSONSchema.ts +0 -21
- package/api/components/schemas/JSONSchemaAnyOf.js.map +0 -1
- package/api/components/schemas/JSONSchemaAnyOf.ts +0 -27
- package/api/components/schemas/JSONSchemaArray.js.map +0 -1
- package/api/components/schemas/JSONSchemaArray.ts +0 -47
- package/api/components/schemas/JSONSchemaBoolean.js.map +0 -1
- package/api/components/schemas/JSONSchemaBoolean.ts +0 -37
- package/api/components/schemas/JSONSchemaConst.js.map +0 -1
- package/api/components/schemas/JSONSchemaConst.ts +0 -16
- package/api/components/schemas/JSONSchemaEnum.js.map +0 -1
- package/api/components/schemas/JSONSchemaEnum.ts +0 -36
- package/api/components/schemas/JSONSchemaInteger.js.map +0 -1
- package/api/components/schemas/JSONSchemaInteger.ts +0 -55
- package/api/components/schemas/JSONSchemaMultiType.js.map +0 -1
- package/api/components/schemas/JSONSchemaMultiType.ts +0 -48
- package/api/components/schemas/JSONSchemaNot.js.map +0 -1
- package/api/components/schemas/JSONSchemaNot.ts +0 -23
- package/api/components/schemas/JSONSchemaNull.js.map +0 -1
- package/api/components/schemas/JSONSchemaNull.ts +0 -16
- package/api/components/schemas/JSONSchemaNumber.js.map +0 -1
- package/api/components/schemas/JSONSchemaNumber.ts +0 -66
- package/api/components/schemas/JSONSchemaObject.js.map +0 -1
- package/api/components/schemas/JSONSchemaObject.ts +0 -74
- package/api/components/schemas/JSONSchemaOneOf.js.map +0 -1
- package/api/components/schemas/JSONSchemaOneOf.ts +0 -25
- package/api/components/schemas/JSONSchemaRemapper.js.map +0 -1
- package/api/components/schemas/JSONSchemaRemapper.ts +0 -19
- package/api/components/schemas/JSONSchemaRoot.js.map +0 -1
- package/api/components/schemas/JSONSchemaRoot.ts +0 -23
- package/api/components/schemas/JSONSchemaString.js.map +0 -1
- package/api/components/schemas/JSONSchemaString.ts +0 -116
- package/api/components/schemas/LinkActionDefinition.js.map +0 -1
- package/api/components/schemas/LinkActionDefinition.ts +0 -28
- package/api/components/schemas/LinkBackActionDefinition.js.map +0 -1
- package/api/components/schemas/LinkBackActionDefinition.ts +0 -14
- package/api/components/schemas/LinkNextActionDefinition.js.map +0 -1
- package/api/components/schemas/LinkNextActionDefinition.ts +0 -14
- package/api/components/schemas/LogActionDefinition.js.map +0 -1
- package/api/components/schemas/LogActionDefinition.ts +0 -22
- package/api/components/schemas/Member.js.map +0 -1
- package/api/components/schemas/Member.ts +0 -31
- package/api/components/schemas/MessageActionDefinition.js.map +0 -1
- package/api/components/schemas/MessageActionDefinition.ts +0 -36
- package/api/components/schemas/NoopActionDefinition.js.map +0 -1
- package/api/components/schemas/NoopActionDefinition.ts +0 -17
- package/api/components/schemas/NotificationHookDataDefinition.js.map +0 -1
- package/api/components/schemas/NotificationHookDataDefinition.ts +0 -25
- package/api/components/schemas/NotificationHookDefinition.js.map +0 -1
- package/api/components/schemas/NotificationHookDefinition.ts +0 -33
- package/api/components/schemas/OAuth2AuthorizationCode.js.map +0 -1
- package/api/components/schemas/OAuth2AuthorizationCode.ts +0 -15
- package/api/components/schemas/OAuth2ClientCredentials.js.map +0 -1
- package/api/components/schemas/OAuth2ClientCredentials.ts +0 -39
- package/api/components/schemas/ObjectRemapperDefinition.js.map +0 -1
- package/api/components/schemas/ObjectRemapperDefinition.ts +0 -453
- package/api/components/schemas/Organization.js.map +0 -1
- package/api/components/schemas/Organization.ts +0 -40
- package/api/components/schemas/PageDefinition.js.map +0 -1
- package/api/components/schemas/PageDefinition.ts +0 -23
- package/api/components/schemas/Rating.js.map +0 -1
- package/api/components/schemas/Rating.ts +0 -25
- package/api/components/schemas/RemapperDefinition.js.map +0 -1
- package/api/components/schemas/RemapperDefinition.ts +0 -35
- package/api/components/schemas/RequestActionDefinition.js.map +0 -1
- package/api/components/schemas/RequestActionDefinition.ts +0 -60
- package/api/components/schemas/Resource.js.map +0 -1
- package/api/components/schemas/Resource.ts +0 -20
- package/api/components/schemas/ResourceCountActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceCountActionDefinition.ts +0 -23
- package/api/components/schemas/ResourceCreateActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceCreateActionDefinition.ts +0 -22
- package/api/components/schemas/ResourceDefinition.js.map +0 -1
- package/api/components/schemas/ResourceDefinition.ts +0 -229
- package/api/components/schemas/ResourceDeleteActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceDeleteActionDefinition.ts +0 -22
- package/api/components/schemas/ResourceGetActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceGetActionDefinition.ts +0 -26
- package/api/components/schemas/ResourceHistoryDefinition.js.map +0 -1
- package/api/components/schemas/ResourceHistoryDefinition.ts +0 -15
- package/api/components/schemas/ResourceHooksDefinition.js.map +0 -1
- package/api/components/schemas/ResourceHooksDefinition.ts +0 -11
- package/api/components/schemas/ResourceQueryActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceQueryActionDefinition.ts +0 -26
- package/api/components/schemas/ResourceSubscription.js.map +0 -1
- package/api/components/schemas/ResourceSubscription.ts +0 -42
- package/api/components/schemas/ResourceSubscriptionStatusActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceSubscriptionStatusActionDefinition.ts +0 -23
- package/api/components/schemas/ResourceSubscriptionSubscribeActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceSubscriptionSubscribeActionDefinition.ts +0 -25
- package/api/components/schemas/ResourceSubscriptionToggleActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceSubscriptionToggleActionDefinition.ts +0 -22
- package/api/components/schemas/ResourceSubscriptionUnsubscribeActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceSubscriptionUnsubscribeActionDefinition.ts +0 -25
- package/api/components/schemas/ResourceUpdateActionDefinition.js.map +0 -1
- package/api/components/schemas/ResourceUpdateActionDefinition.ts +0 -22
- package/api/components/schemas/ResourceViewDefinition.js.map +0 -1
- package/api/components/schemas/ResourceViewDefinition.ts +0 -26
- package/api/components/schemas/SSLSecret.js.map +0 -1
- package/api/components/schemas/SSLSecret.ts +0 -17
- package/api/components/schemas/SSOConfiguration.js.map +0 -1
- package/api/components/schemas/SSOConfiguration.ts +0 -22
- package/api/components/schemas/SecurityDefaultDefinition.js.map +0 -1
- package/api/components/schemas/SecurityDefaultDefinition.ts +0 -29
- package/api/components/schemas/SecurityDefinition.js.map +0 -1
- package/api/components/schemas/SecurityDefinition.ts +0 -21
- package/api/components/schemas/SecurityRoleDefinition.js.map +0 -1
- package/api/components/schemas/SecurityRoleDefinition.ts +0 -29
- package/api/components/schemas/ShareActionDefinition.js.map +0 -1
- package/api/components/schemas/ShareActionDefinition.ts +0 -30
- package/api/components/schemas/StaticActionDefinition.js.map +0 -1
- package/api/components/schemas/StaticActionDefinition.ts +0 -20
- package/api/components/schemas/StorageAppendActionDefinition.js.map +0 -1
- package/api/components/schemas/StorageAppendActionDefinition.ts +0 -43
- package/api/components/schemas/StorageDeleteActionDefinition.js.map +0 -1
- package/api/components/schemas/StorageDeleteActionDefinition.ts +0 -31
- package/api/components/schemas/StorageReadActionDefinition.js.map +0 -1
- package/api/components/schemas/StorageReadActionDefinition.ts +0 -32
- package/api/components/schemas/StorageSubtractActionDefinition.js.map +0 -1
- package/api/components/schemas/StorageSubtractActionDefinition.ts +0 -35
- package/api/components/schemas/StorageUpdateActionDefinition.js.map +0 -1
- package/api/components/schemas/StorageUpdateActionDefinition.ts +0 -46
- package/api/components/schemas/StorageWriteActionDefinition.js.map +0 -1
- package/api/components/schemas/StorageWriteActionDefinition.ts +0 -42
- package/api/components/schemas/SubPage.js.map +0 -1
- package/api/components/schemas/SubPage.ts +0 -24
- package/api/components/schemas/TabsPageDefinition.js.map +0 -1
- package/api/components/schemas/TabsPageDefinition.ts +0 -22
- package/api/components/schemas/TeamInviteActionDefinition.js.map +0 -1
- package/api/components/schemas/TeamInviteActionDefinition.ts +0 -27
- package/api/components/schemas/TeamJoinActionDefinition.js.map +0 -1
- package/api/components/schemas/TeamJoinActionDefinition.ts +0 -14
- package/api/components/schemas/TeamListActionDefinition.js.map +0 -1
- package/api/components/schemas/TeamListActionDefinition.ts +0 -14
- package/api/components/schemas/TeamsDefinition.js.map +0 -1
- package/api/components/schemas/TeamsDefinition.ts +0 -30
- package/api/components/schemas/Theme.js.map +0 -1
- package/api/components/schemas/Theme.ts +0 -82
- package/api/components/schemas/ThrowActionDefinition.js.map +0 -1
- package/api/components/schemas/ThrowActionDefinition.ts +0 -17
- package/api/components/schemas/User.js.map +0 -1
- package/api/components/schemas/User.ts +0 -30
- package/api/components/schemas/UserEmail.js.map +0 -1
- package/api/components/schemas/UserEmail.ts +0 -24
- package/api/components/schemas/UserLoginActionDefinition.js.map +0 -1
- package/api/components/schemas/UserLoginActionDefinition.ts +0 -22
- package/api/components/schemas/UserRegisterActionDefinition.js.map +0 -1
- package/api/components/schemas/UserRegisterActionDefinition.ts +0 -33
- package/api/components/schemas/UserUpdateActionDefinition.js.map +0 -1
- package/api/components/schemas/UserUpdateActionDefinition.ts +0 -33
- package/api/components/schemas/index.js.map +0 -1
- package/api/components/schemas/index.ts +0 -108
- package/api/components/schemas/utils.js.map +0 -1
- package/api/components/schemas/utils.ts +0 -43
- package/api/components/securitySchemes/app.js.map +0 -1
- package/api/components/securitySchemes/app.ts +0 -33
- package/api/components/securitySchemes/basic.js.map +0 -1
- package/api/components/securitySchemes/basic.ts +0 -7
- package/api/components/securitySchemes/cli.js.map +0 -1
- package/api/components/securitySchemes/cli.test.js.map +0 -1
- package/api/components/securitySchemes/cli.test.ts +0 -6
- package/api/components/securitySchemes/cli.ts +0 -25
- package/api/components/securitySchemes/index.js.map +0 -1
- package/api/components/securitySchemes/index.ts +0 -4
- package/api/components/securitySchemes/studio.js.map +0 -1
- package/api/components/securitySchemes/studio.ts +0 -8
- package/api/index.js.map +0 -1
- package/api/index.test.js.map +0 -1
- package/api/index.test.ts +0 -196
- package/api/index.ts +0 -44
- package/api/paths/action.js.map +0 -1
- package/api/paths/action.ts +0 -55
- package/api/paths/appMessages.js.map +0 -1
- package/api/paths/appMessages.ts +0 -104
- package/api/paths/appOAuth2Secrets.js.map +0 -1
- package/api/paths/appOAuth2Secrets.ts +0 -152
- package/api/paths/appSSLSecrets.js.map +0 -1
- package/api/paths/appSSLSecrets.ts +0 -40
- package/api/paths/appSamlSecrets.js.map +0 -1
- package/api/paths/appSamlSecrets.ts +0 -85
- package/api/paths/apps.js.map +0 -1
- package/api/paths/apps.ts +0 -1394
- package/api/paths/appsembleMessages.js.map +0 -1
- package/api/paths/appsembleMessages.ts +0 -49
- package/api/paths/assets.js.map +0 -1
- package/api/paths/assets.ts +0 -139
- package/api/paths/blocks.js.map +0 -1
- package/api/paths/blocks.ts +0 -184
- package/api/paths/emails.js.map +0 -1
- package/api/paths/emails.ts +0 -164
- package/api/paths/health.js.map +0 -1
- package/api/paths/health.ts +0 -75
- package/api/paths/index.js.map +0 -1
- package/api/paths/index.ts +0 -45
- package/api/paths/invite.js.map +0 -1
- package/api/paths/invite.ts +0 -26
- package/api/paths/oauth2ClientCredentials.js.map +0 -1
- package/api/paths/oauth2ClientCredentials.ts +0 -79
- package/api/paths/oauth2Login.js.map +0 -1
- package/api/paths/oauth2Login.ts +0 -120
- package/api/paths/oauth2Provider.js.map +0 -1
- package/api/paths/oauth2Provider.ts +0 -73
- package/api/paths/organizations.js.map +0 -1
- package/api/paths/organizations.ts +0 -471
- package/api/paths/resourceHistory.js.map +0 -1
- package/api/paths/resourceHistory.ts +0 -32
- package/api/paths/resources.js.map +0 -1
- package/api/paths/resources.ts +0 -305
- package/api/paths/saml.js.map +0 -1
- package/api/paths/saml.ts +0 -127
- package/api/paths/templates.js.map +0 -1
- package/api/paths/templates.ts +0 -85
- package/api/paths/user.js.map +0 -1
- package/api/paths/user.ts +0 -481
- package/api/schema-tests/AppDefinition/invalid/additional-property.yaml +0 -11
- package/api/schema-tests/AppDefinition/invalid/empty-pages.yaml +0 -4
- package/api/schema-tests/AppDefinition/invalid/missing-default-page.yaml +0 -7
- package/api/schema-tests/AppDefinition/invalid/missing-name.yaml +0 -7
- package/api/schema-tests/AppDefinition/invalid/missing-pages.yaml +0 -2
- package/api/schema-tests/AppDefinition/valid/all-properties.yaml +0 -114
- package/api/schema-tests/AppDefinition/valid/minimal.yaml +0 -9
- package/api/schema-tests/FlowPageDefinition/invalid/missing-subPages.yaml +0 -2
- package/api/schema-tests/FlowPageDefinition/valid/flow.yaml +0 -15
- package/api/schema-tests/PageDefinition/invalid/additional-properties.yaml +0 -5
- package/api/schema-tests/PageDefinition/invalid/missing-blocks.yaml +0 -1
- package/api/schema-tests/PageDefinition/invalid/missing-name.yaml +0 -3
- package/api/schema-tests/PageDefinition/valid/all-properties.yaml +0 -15
- package/api/schema-tests/PageDefinition/valid/minimal.yaml +0 -5
- package/api/schema-tests/TabsPageDefinition/invalid/missing-subPages.yaml +0 -2
- package/api/schema-tests/TabsPageDefinition/valid/tabs.yaml +0 -7
- package/api/tags/app.js.map +0 -1
- package/api/tags/app.ts +0 -6
- package/api/tags/appMember.js.map +0 -1
- package/api/tags/appMember.ts +0 -6
- package/api/tags/asset.js.map +0 -1
- package/api/tags/asset.ts +0 -6
- package/api/tags/auth.js.map +0 -1
- package/api/tags/auth.ts +0 -6
- package/api/tags/index.js.map +0 -1
- package/api/tags/index.ts +0 -9
- package/api/tags/language.js.map +0 -1
- package/api/tags/language.ts +0 -6
- package/api/tags/organization.js.map +0 -1
- package/api/tags/organization.ts +0 -6
- package/api/tags/resource.js.map +0 -1
- package/api/tags/resource.ts +0 -6
- package/api/tags/template.js.map +0 -1
- package/api/tags/template.ts +0 -6
- package/api/tags/user.js.map +0 -1
- package/api/tags/user.ts +0 -6
- package/appMessages.js.map +0 -1
- package/appMessages.test.js.map +0 -1
- package/appMessages.test.ts +0 -432
- package/appMessages.ts +0 -145
- package/appSecurity.js.map +0 -1
- package/appSecurity.test.js.map +0 -1
- package/appSecurity.test.ts +0 -141
- package/appSecurity.ts +0 -48
- package/blockUtils.js.map +0 -1
- package/blockUtils.test.js.map +0 -1
- package/blockUtils.test.ts +0 -94
- package/blockUtils.ts +0 -76
- package/changed/added/.gitkeep +0 -0
- package/changed/changed/.gitkeep +0 -0
- package/changed/deprecated/.gitkeep +0 -0
- package/changed/fixed/.gitkeep +0 -0
- package/changed/removed/.gitkeep +0 -0
- package/changed/security/.gitkeep +0 -0
- package/checkAppRole.js.map +0 -1
- package/checkAppRole.ts +0 -49
- package/compare.js.map +0 -1
- package/compare.ts +0 -10
- package/constants/Permission.js.map +0 -1
- package/constants/Permission.ts +0 -95
- package/constants/asciiLogo.js.map +0 -1
- package/constants/asciiLogo.ts +0 -8
- package/constants/baseTheme.js.map +0 -1
- package/constants/baseTheme.ts +0 -17
- package/constants/date.js.map +0 -1
- package/constants/date.ts +0 -20
- package/constants/fonts.js.map +0 -1
- package/constants/fonts.ts +0 -1291
- package/constants/index.js.map +0 -1
- package/constants/index.ts +0 -9
- package/constants/locale.js.map +0 -1
- package/constants/locale.ts +0 -4
- package/constants/patterns.js.map +0 -1
- package/constants/patterns.test.js.map +0 -1
- package/constants/patterns.test.ts +0 -100
- package/constants/patterns.ts +0 -48
- package/constants/roles.js.map +0 -1
- package/constants/roles.ts +0 -49
- package/constants/scopes.js.map +0 -1
- package/constants/scopes.ts +0 -13
- package/convertToCsv.js.map +0 -1
- package/convertToCsv.test.js.map +0 -1
- package/convertToCsv.test.ts +0 -73
- package/convertToCsv.ts +0 -65
- package/formatRequestAction.js.map +0 -1
- package/formatRequestAction.ts +0 -16
- package/has.js.map +0 -1
- package/has.test.js.map +0 -1
- package/has.test.ts +0 -19
- package/has.ts +0 -10
- package/i18n.js.map +0 -1
- package/i18n.test.js.map +0 -1
- package/i18n.test.ts +0 -81
- package/i18n.ts +0 -55
- package/ics.js.map +0 -1
- package/ics.ts +0 -44
- package/index.js.map +0 -1
- package/index.ts +0 -29
- package/intl-messageformat.js.map +0 -1
- package/intl-messageformat.ts +0 -6
- package/iterApp.js.map +0 -1
- package/iterApp.test.js.map +0 -1
- package/iterApp.test.ts +0 -512
- package/iterApp.ts +0 -174
- package/jest.config.js +0 -3
- package/jsonschema.js.map +0 -1
- package/jsonschema.test.js.map +0 -1
- package/jsonschema.test.ts +0 -320
- package/jsonschema.ts +0 -222
- package/langmap.js.map +0 -1
- package/langmap.ts +0 -23
- package/mapValues.js.map +0 -1
- package/mapValues.test.js.map +0 -1
- package/mapValues.test.ts +0 -15
- package/mapValues.ts +0 -10
- package/miscellaneous.js.map +0 -1
- package/miscellaneous.test.js.map +0 -1
- package/miscellaneous.test.ts +0 -82
- package/miscellaneous.ts +0 -71
- package/noop.js.map +0 -1
- package/noop.ts +0 -5
- package/normalize.js.map +0 -1
- package/normalize.test.js.map +0 -1
- package/normalize.test.ts +0 -24
- package/normalize.ts +0 -23
- package/objectCache.js.map +0 -1
- package/objectCache.test.js.map +0 -1
- package/objectCache.test.ts +0 -19
- package/objectCache.ts +0 -22
- package/pem.js.map +0 -1
- package/pem.ts +0 -11
- package/prefix.js.map +0 -1
- package/prefix.test.js.map +0 -1
- package/prefix.test.ts +0 -11
- package/prefix.ts +0 -10
- package/remap.js.map +0 -1
- package/remap.test.js.map +0 -1
- package/remap.test.ts +0 -1039
- package/remap.ts +0 -455
- package/string.js.map +0 -1
- package/string.test.js.map +0 -1
- package/string.test.ts +0 -29
- package/string.ts +0 -31
- package/theme.js.map +0 -1
- package/theme.test.js.map +0 -1
- package/theme.test.ts +0 -99
- package/theme.ts +0 -38
- package/tsconfig.json +0 -6
- package/types.js.map +0 -1
- package/types.ts +0 -6
- package/validateStyle.js.map +0 -1
- package/validateStyle.test.js.map +0 -1
- package/validateStyle.test.ts +0 -14
- package/validateStyle.ts +0 -19
- package/validation.js.map +0 -1
- package/validation.test.js.map +0 -1
- package/validation.test.ts +0 -1915
- package/validation.ts +0 -767
package/appMessages.ts
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { AppDefinition, AppsembleMessages, BlockDefinition } from '@appsemble/types';
|
|
2
|
-
|
|
3
|
-
import { iterApp, Prefix } from './index.js';
|
|
4
|
-
import { normalize } from './normalize.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Recursively find `string.format` remapper message IDs.
|
|
8
|
-
*
|
|
9
|
-
* @param obj The object to search.
|
|
10
|
-
* @returns All message IDs found
|
|
11
|
-
*/
|
|
12
|
-
export function findMessageIds(obj: unknown): Record<string, string> {
|
|
13
|
-
if (!obj || typeof obj !== 'object') {
|
|
14
|
-
return {};
|
|
15
|
-
}
|
|
16
|
-
if (Array.isArray(obj)) {
|
|
17
|
-
return Object.assign({}, ...obj.map((item) => findMessageIds(item)));
|
|
18
|
-
}
|
|
19
|
-
const entries = Object.entries(obj);
|
|
20
|
-
// Remappers throw if multiple keys are defined, so this means it’s not a remapper.
|
|
21
|
-
if (entries.length === 1) {
|
|
22
|
-
const [[key, value]] = entries;
|
|
23
|
-
if (key === 'string.format' && typeof value?.messageId === 'string') {
|
|
24
|
-
return { [value.messageId]: value.template ?? '', ...findMessageIds(value.values) };
|
|
25
|
-
}
|
|
26
|
-
if (key === 'translate') {
|
|
27
|
-
return { [value]: '' };
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return Object.assign({}, ...entries.map(([, value]) => findMessageIds(value)));
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Extract translatable message IDs from an app definition.
|
|
35
|
-
*
|
|
36
|
-
* @param app The app definition to extract message IDs from
|
|
37
|
-
* @param onBlock A function to extract block messages. This is needed, because block messages may
|
|
38
|
-
* be extracted based on different contexts.
|
|
39
|
-
* @returns A list of message IDs
|
|
40
|
-
*/
|
|
41
|
-
export function extractAppMessages(
|
|
42
|
-
app: AppDefinition,
|
|
43
|
-
onBlock?: (block: BlockDefinition, prefix: Prefix) => void,
|
|
44
|
-
): Pick<AppsembleMessages, 'app' | 'messageIds'> {
|
|
45
|
-
const messages: Pick<AppsembleMessages, 'app' | 'messageIds'> = {
|
|
46
|
-
app: {
|
|
47
|
-
name: app.name,
|
|
48
|
-
description: app.description,
|
|
49
|
-
...Object.fromEntries(
|
|
50
|
-
Object.entries(app.security?.roles ?? {}).flatMap(([role, roleDefinition]) => [
|
|
51
|
-
[`app.roles.${role}`, role],
|
|
52
|
-
[`app.roles.${role}.description`, roleDefinition.description],
|
|
53
|
-
]),
|
|
54
|
-
),
|
|
55
|
-
},
|
|
56
|
-
messageIds: {},
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
iterApp(app, {
|
|
60
|
-
onBlock(block, prefix) {
|
|
61
|
-
Object.assign(
|
|
62
|
-
messages.messageIds,
|
|
63
|
-
findMessageIds(block.header),
|
|
64
|
-
findMessageIds(block.parameters),
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
if (onBlock) {
|
|
68
|
-
const normalizedPrefix = prefix.map((entry, index) =>
|
|
69
|
-
index === 1 ? normalize(app.pages[entry as number].name) : entry,
|
|
70
|
-
);
|
|
71
|
-
onBlock(block, normalizedPrefix);
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
onAction(action) {
|
|
75
|
-
Object.assign(messages.messageIds, findMessageIds(action.remap));
|
|
76
|
-
|
|
77
|
-
switch (action.type) {
|
|
78
|
-
case 'condition':
|
|
79
|
-
Object.assign(messages.messageIds, findMessageIds(action.if));
|
|
80
|
-
break;
|
|
81
|
-
case 'dialog':
|
|
82
|
-
Object.assign(messages.messageIds, findMessageIds(action.title));
|
|
83
|
-
break;
|
|
84
|
-
case 'email':
|
|
85
|
-
Object.assign(
|
|
86
|
-
messages.messageIds,
|
|
87
|
-
findMessageIds(action.attachments),
|
|
88
|
-
findMessageIds(action.bcc),
|
|
89
|
-
findMessageIds(action.body),
|
|
90
|
-
findMessageIds(action.cc),
|
|
91
|
-
findMessageIds(action.subject),
|
|
92
|
-
findMessageIds(action.to),
|
|
93
|
-
);
|
|
94
|
-
break;
|
|
95
|
-
case 'flow.to':
|
|
96
|
-
Object.assign(messages.messageIds, findMessageIds(action.step));
|
|
97
|
-
break;
|
|
98
|
-
case 'message':
|
|
99
|
-
Object.assign(messages.messageIds, findMessageIds(action.body));
|
|
100
|
-
break;
|
|
101
|
-
case 'request':
|
|
102
|
-
case 'resource.count':
|
|
103
|
-
case 'resource.create':
|
|
104
|
-
case 'resource.delete':
|
|
105
|
-
case 'resource.get':
|
|
106
|
-
case 'resource.query':
|
|
107
|
-
case 'resource.update':
|
|
108
|
-
Object.assign(
|
|
109
|
-
messages.messageIds,
|
|
110
|
-
findMessageIds(action.body),
|
|
111
|
-
findMessageIds(action.query),
|
|
112
|
-
findMessageIds(action.url),
|
|
113
|
-
);
|
|
114
|
-
break;
|
|
115
|
-
case 'share':
|
|
116
|
-
Object.assign(
|
|
117
|
-
messages.messageIds,
|
|
118
|
-
findMessageIds(action.text),
|
|
119
|
-
findMessageIds(action.title),
|
|
120
|
-
findMessageIds(action.url),
|
|
121
|
-
);
|
|
122
|
-
break;
|
|
123
|
-
default:
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
onPage(page) {
|
|
127
|
-
const prefix = `pages.${normalize(page.name)}`;
|
|
128
|
-
messages.app[prefix] = page.name;
|
|
129
|
-
|
|
130
|
-
if (page.type === 'tabs') {
|
|
131
|
-
for (const [index, tab] of page.tabs.entries()) {
|
|
132
|
-
messages.app[`${prefix}.tabs.${index}`] = tab.name ?? '';
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
if (page.type === 'flow') {
|
|
137
|
-
for (const [index, step] of page.steps.entries()) {
|
|
138
|
-
messages.app[`${prefix}.steps.${index}`] = step.name ?? '';
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
},
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
return messages;
|
|
145
|
-
}
|
package/appSecurity.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"appSecurity.js","sourceRoot":"","sources":["appSecurity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAoC,EACpC,IAAY;;IAEZ,MAAM,eAAe,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,KAAK,CAAC;IAC7C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAQ,EAAE;QACvC,IAAI,CAAC,CAAC,EAAE;YACN,yBAAyB;YACzB,OAAO;SACR;QACD,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE;YAC5B,kDAAkD;YAClD,OAAO;SACR;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACzB,8DAA8D;YAC9D,OAAO;SACR;QACD,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,IAAI,cAAc,CAAC,QAAQ,EAAE;YAC3B,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE;gBAC9C,YAAY,CAAC,QAAQ,CAAC,CAAC;aACxB;SACF;IACH,CAAC,CAAC;IAEF,IAAI,eAAe,EAAE;QACnB,YAAY,CAAC,IAAI,CAAC,CAAC;KACpB;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
package/appSecurity.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"appSecurity.test.js","sourceRoot":"","sources":["appSecurity.test.ts"],"names":[],"mappings":"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"}
|
package/appSecurity.test.ts
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { resolveRoleInheritance } from './appSecurity.js';
|
|
2
|
-
|
|
3
|
-
describe('resolveRoleInheritance', () => {
|
|
4
|
-
it('should return an empty array if no security definition is defined', () => {
|
|
5
|
-
const result = resolveRoleInheritance({}, 'unknown');
|
|
6
|
-
expect(result).toStrictEqual([]);
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
it('should return an empty array for an unknown role', () => {
|
|
10
|
-
const result = resolveRoleInheritance(
|
|
11
|
-
{
|
|
12
|
-
security: {
|
|
13
|
-
default: { role: 'known' },
|
|
14
|
-
roles: {
|
|
15
|
-
known: {},
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
'unknown',
|
|
20
|
-
);
|
|
21
|
-
expect(result).toStrictEqual([]);
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
it('should resolve a non inherited role', () => {
|
|
25
|
-
const result = resolveRoleInheritance(
|
|
26
|
-
{
|
|
27
|
-
security: {
|
|
28
|
-
default: { role: 'user' },
|
|
29
|
-
roles: {
|
|
30
|
-
user: {},
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
'user',
|
|
35
|
-
);
|
|
36
|
-
expect(result).toStrictEqual([['user', {}]]);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
it('should resolve shallow inheritance', () => {
|
|
40
|
-
const result = resolveRoleInheritance(
|
|
41
|
-
{
|
|
42
|
-
security: {
|
|
43
|
-
default: { role: 'user' },
|
|
44
|
-
roles: {
|
|
45
|
-
admin: { inherits: ['user'] },
|
|
46
|
-
user: {},
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
'admin',
|
|
51
|
-
);
|
|
52
|
-
expect(result).toStrictEqual([
|
|
53
|
-
['admin', { inherits: ['user'] }],
|
|
54
|
-
['user', {}],
|
|
55
|
-
]);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
it('should resolve nested inheritance', () => {
|
|
59
|
-
const result = resolveRoleInheritance(
|
|
60
|
-
{
|
|
61
|
-
security: {
|
|
62
|
-
default: { role: 'user' },
|
|
63
|
-
roles: {
|
|
64
|
-
superadmin: { inherits: ['admin'] },
|
|
65
|
-
admin: { inherits: ['user'] },
|
|
66
|
-
user: {},
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
'superadmin',
|
|
71
|
-
);
|
|
72
|
-
expect(result).toStrictEqual([
|
|
73
|
-
['superadmin', { inherits: ['admin'] }],
|
|
74
|
-
['admin', { inherits: ['user'] }],
|
|
75
|
-
['user', {}],
|
|
76
|
-
]);
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
it('should resolve multiple inheritance', () => {
|
|
80
|
-
const result = resolveRoleInheritance(
|
|
81
|
-
{
|
|
82
|
-
security: {
|
|
83
|
-
default: { role: 'user' },
|
|
84
|
-
roles: {
|
|
85
|
-
superadmin: { inherits: ['admin', 'user'] },
|
|
86
|
-
admin: {},
|
|
87
|
-
user: {},
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
'superadmin',
|
|
92
|
-
);
|
|
93
|
-
expect(result).toStrictEqual([
|
|
94
|
-
['superadmin', { inherits: ['admin', 'user'] }],
|
|
95
|
-
['admin', {}],
|
|
96
|
-
['user', {}],
|
|
97
|
-
]);
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
it('should not include duplicates', () => {
|
|
101
|
-
const result = resolveRoleInheritance(
|
|
102
|
-
{
|
|
103
|
-
security: {
|
|
104
|
-
default: { role: 'user' },
|
|
105
|
-
roles: {
|
|
106
|
-
superadmin: { inherits: ['admin', 'user'] },
|
|
107
|
-
admin: { inherits: ['user'] },
|
|
108
|
-
user: {},
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
'superadmin',
|
|
113
|
-
);
|
|
114
|
-
expect(result).toStrictEqual([
|
|
115
|
-
['superadmin', { inherits: ['admin', 'user'] }],
|
|
116
|
-
['admin', { inherits: ['user'] }],
|
|
117
|
-
['user', {}],
|
|
118
|
-
]);
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
it('should resolve roles in order', () => {
|
|
122
|
-
const result = resolveRoleInheritance(
|
|
123
|
-
{
|
|
124
|
-
security: {
|
|
125
|
-
default: { role: 'user' },
|
|
126
|
-
roles: {
|
|
127
|
-
superadmin: { inherits: ['user', 'admin'] },
|
|
128
|
-
admin: { inherits: ['user'] },
|
|
129
|
-
user: {},
|
|
130
|
-
},
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
'superadmin',
|
|
134
|
-
);
|
|
135
|
-
expect(result).toStrictEqual([
|
|
136
|
-
['superadmin', { inherits: ['user', 'admin'] }],
|
|
137
|
-
['user', {}],
|
|
138
|
-
['admin', { inherits: ['user'] }],
|
|
139
|
-
]);
|
|
140
|
-
});
|
|
141
|
-
});
|
package/appSecurity.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { AppDefinition, RoleDefinition } from '@appsemble/types';
|
|
2
|
-
|
|
3
|
-
import { has } from './has.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Resolve role security inheritance based on priority.
|
|
7
|
-
*
|
|
8
|
-
* @param app The app to resolve role priority for.
|
|
9
|
-
* @param role The role to resolve
|
|
10
|
-
* @returns A list of tuples of role name and role definition. The roles are sorted by priority.
|
|
11
|
-
*/
|
|
12
|
-
export function resolveRoleInheritance(
|
|
13
|
-
app: Pick<AppDefinition, 'security'>,
|
|
14
|
-
role: string,
|
|
15
|
-
): [roleName: string, roleDefinition: RoleDefinition][] {
|
|
16
|
-
const rolesDefinition = app?.security?.roles;
|
|
17
|
-
const roleNames: string[] = [];
|
|
18
|
-
const roles: RoleDefinition[] = [];
|
|
19
|
-
|
|
20
|
-
const resolveRoles = (r: string): void => {
|
|
21
|
-
if (!r) {
|
|
22
|
-
// No role was specified.
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
if (!has(rolesDefinition, r)) {
|
|
26
|
-
// The specified role is unknown, so it’s skipped.
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (roleNames.includes(r)) {
|
|
30
|
-
// The role has already been processed higher up the priority.
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const roleDefinition = rolesDefinition[r];
|
|
34
|
-
roleNames.push(r);
|
|
35
|
-
roles.push(roleDefinition);
|
|
36
|
-
if (roleDefinition.inherits) {
|
|
37
|
-
for (const inherits of roleDefinition.inherits) {
|
|
38
|
-
resolveRoles(inherits);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
if (rolesDefinition) {
|
|
44
|
-
resolveRoles(role);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return roles.map((r, index) => [roleNames[index], r]);
|
|
48
|
-
}
|
package/blockUtils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blockUtils.js","sourceRoot":"","sources":["blockUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,MAAM,MAAM,GAAG,aAAa,CAAC;AAE7B;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAClC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uDAAuD;AACvD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAI,KAAK,EAAE;QACT,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAC;KAC9C;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,UAAyB;IACpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,OAAO,CAAC,UAAU,EAAE;QAClB,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;YACvB,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;aACtC;YACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAwB,EAAE,GAAW;IAClE,OAAO,eAAe,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;AAC1F,CAAC"}
|
package/blockUtils.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blockUtils.test.js","sourceRoot":"","sources":["blockUtils.test.ts"],"names":[],"mappings":"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"}
|
package/blockUtils.test.ts
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getAppBlocks,
|
|
3
|
-
normalizeBlockName,
|
|
4
|
-
parseBlockName,
|
|
5
|
-
prefixBlockURL,
|
|
6
|
-
stripBlockName,
|
|
7
|
-
} from './blockUtils.js';
|
|
8
|
-
|
|
9
|
-
describe('normalizeBlockName', () => {
|
|
10
|
-
it('should prepend @appsemble if no organization is prepended', () => {
|
|
11
|
-
const blockName = 'form';
|
|
12
|
-
const result = normalizeBlockName(blockName);
|
|
13
|
-
|
|
14
|
-
expect(result).toBe(`@appsemble/${blockName}`);
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
it('should leave block name intact if organization is prepended', () => {
|
|
18
|
-
const blockName = '@example/test';
|
|
19
|
-
const result = normalizeBlockName(blockName);
|
|
20
|
-
|
|
21
|
-
expect(result).toBe(blockName);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
describe('stripBlockName', () => {
|
|
26
|
-
it('should strip the @appsemble prefix from official blocks', () => {
|
|
27
|
-
const result = stripBlockName('@appsemble/table');
|
|
28
|
-
expect(result).toBe('table');
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it('should keep other organization prefixes', () => {
|
|
32
|
-
const result = stripBlockName('@other/table');
|
|
33
|
-
expect(result).toBe('@other/table');
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it('should support unprefixed block names', () => {
|
|
37
|
-
const result = stripBlockName('table');
|
|
38
|
-
expect(result).toBe('table');
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
describe('parseBlockName', () => {
|
|
43
|
-
it('should return a tuple of organization id and block id', () => {
|
|
44
|
-
const result = parseBlockName('@example/test');
|
|
45
|
-
expect(result).toStrictEqual(['example', 'test']);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
it('should support numeric values', () => {
|
|
49
|
-
const result = parseBlockName('@123-foo/456-bar');
|
|
50
|
-
expect(result).toStrictEqual(['123-foo', '456-bar']);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it('should support official appsemble blocks', () => {
|
|
54
|
-
const result = parseBlockName('detail-viewer');
|
|
55
|
-
expect(result).toStrictEqual(['appsemble', 'detail-viewer']);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
it('should return undefined for invalid values', () => {
|
|
59
|
-
const result = parseBlockName('FooBar');
|
|
60
|
-
expect(result).toBeUndefined();
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
describe('getAppBlocks', () => {
|
|
65
|
-
it('should find unique block types inside an app', () => {
|
|
66
|
-
const result = getAppBlocks({
|
|
67
|
-
name: '',
|
|
68
|
-
defaultPage: '',
|
|
69
|
-
pages: [
|
|
70
|
-
{
|
|
71
|
-
name: '',
|
|
72
|
-
blocks: [
|
|
73
|
-
{ type: 'foo', version: '0.0.0' },
|
|
74
|
-
{ type: '@appsemble/foo', version: '0.0.0' },
|
|
75
|
-
{ type: 'foo', version: '0.0.1' },
|
|
76
|
-
{ type: 'bar', version: '0.0.1' },
|
|
77
|
-
],
|
|
78
|
-
},
|
|
79
|
-
],
|
|
80
|
-
});
|
|
81
|
-
expect(result).toStrictEqual([
|
|
82
|
-
{ type: '@appsemble/foo', version: '0.0.0' },
|
|
83
|
-
{ type: '@appsemble/foo', version: '0.0.1' },
|
|
84
|
-
{ type: '@appsemble/bar', version: '0.0.1' },
|
|
85
|
-
]);
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
describe('prefixBlockURL', () => {
|
|
90
|
-
it('should populate the API url with block properties', () => {
|
|
91
|
-
const result = prefixBlockURL({ type: '@appsemble/test', version: '1.0.0' }, 'test.css');
|
|
92
|
-
expect(result).toBe('/api/blocks/@appsemble/test/versions/1.0.0/test.css');
|
|
93
|
-
});
|
|
94
|
-
});
|
package/blockUtils.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { AppDefinition, BlockDefinition } from '@appsemble/types';
|
|
2
|
-
|
|
3
|
-
import { blockNamePattern } from './constants/index.js';
|
|
4
|
-
import { iterApp } from './iterApp.js';
|
|
5
|
-
|
|
6
|
-
export type IdentifiableBlock = Pick<BlockDefinition, 'type' | 'version'>;
|
|
7
|
-
|
|
8
|
-
const prefix = '@appsemble/';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Normalize a block name by prefixing it with `@appsemble` if necessary.
|
|
12
|
-
*
|
|
13
|
-
* @param name The input block name.
|
|
14
|
-
* @returns The normalized block name.
|
|
15
|
-
*/
|
|
16
|
-
export function normalizeBlockName(name: string): string {
|
|
17
|
-
if (name.startsWith('@')) {
|
|
18
|
-
return name;
|
|
19
|
-
}
|
|
20
|
-
return `${prefix}${name}`;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Return a block name without the organization prefix.
|
|
25
|
-
*
|
|
26
|
-
* @param name The input block name.
|
|
27
|
-
* @returns The prettified block name.
|
|
28
|
-
*/
|
|
29
|
-
export function stripBlockName(name: string): string {
|
|
30
|
-
if (name.startsWith(prefix)) {
|
|
31
|
-
return name.slice(prefix.length);
|
|
32
|
-
}
|
|
33
|
-
return name;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// eslint-disable-next-line jsdoc/require-returns-check
|
|
37
|
-
/**
|
|
38
|
-
* Parse a block name into a tuple of organization id and block id.
|
|
39
|
-
*
|
|
40
|
-
* @param name The block name to parse.
|
|
41
|
-
* @returns A tuple containing the organization id and block id.
|
|
42
|
-
*/
|
|
43
|
-
export function parseBlockName(name: string): [string, string] {
|
|
44
|
-
const match = blockNamePattern.exec(normalizeBlockName(name));
|
|
45
|
-
if (match) {
|
|
46
|
-
return match.slice(1, 3) as [string, string];
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Find unique block types in an app.
|
|
52
|
-
*
|
|
53
|
-
* @param definition The app definition to find unique blocks for.
|
|
54
|
-
* @returns Partial unique blocks. Only the type and version are returned.
|
|
55
|
-
*/
|
|
56
|
-
export function getAppBlocks(definition: AppDefinition): IdentifiableBlock[] {
|
|
57
|
-
const visited = new Set();
|
|
58
|
-
const result: IdentifiableBlock[] = [];
|
|
59
|
-
|
|
60
|
-
iterApp(definition, {
|
|
61
|
-
onBlock({ type, version }) {
|
|
62
|
-
const name = normalizeBlockName(type);
|
|
63
|
-
const asString = `${name}@${version}`;
|
|
64
|
-
if (!visited.has(asString)) {
|
|
65
|
-
result.push({ type: name, version });
|
|
66
|
-
}
|
|
67
|
-
visited.add(asString);
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
return result;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export function prefixBlockURL(block: IdentifiableBlock, url: string): string {
|
|
75
|
-
return `/api/blocks/${normalizeBlockName(block.type)}/versions/${block.version}/${url}`;
|
|
76
|
-
}
|
package/changed/added/.gitkeep
DELETED
|
File without changes
|
package/changed/changed/.gitkeep
DELETED
|
File without changes
|
|
File without changes
|
package/changed/fixed/.gitkeep
DELETED
|
File without changes
|
package/changed/removed/.gitkeep
DELETED
|
File without changes
|
|
File without changes
|
package/checkAppRole.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkAppRole.js","sourceRoot":"","sources":["checkAppRole.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,kBAA4B,EAC5B,IAAY,EACZ,QAAgB,EAChB,KAAiC;IAEjC,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,EAAE;QAClC,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE;QACjC,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,KAAK,eAAe,EAAE;QAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;KACtD;IAED,IAAI,IAAI,KAAK,cAAc,EAAE;QAC3B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACjD;IAED,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,KAAK,CAAC;KACd;IAED,IAAI,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;QAC/C,OAAO,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CACxE,YAAY,CAAC,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAC7D,CAAC;KACH;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/checkAppRole.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Security, TeamMember } from '@appsemble/types';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Check if the given user has access to any of the given scopes.
|
|
5
|
-
*
|
|
6
|
-
* @param securityDefinition The security definition to use for checking the role.
|
|
7
|
-
* @param role The role the user is checked against.
|
|
8
|
-
* @param userRole The role the user has.
|
|
9
|
-
* @param teams The teams the user is in.
|
|
10
|
-
* @returns Whether or not the user has the role.
|
|
11
|
-
*/
|
|
12
|
-
export function checkAppRole(
|
|
13
|
-
securityDefinition: Security,
|
|
14
|
-
role: string,
|
|
15
|
-
userRole: string,
|
|
16
|
-
teams: Pick<TeamMember, 'role'>[],
|
|
17
|
-
): boolean {
|
|
18
|
-
if (role === userRole) {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
if (role === '$public' && userRole) {
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (role === '$none' && !userRole) {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (role === '$team:manager') {
|
|
31
|
-
return teams.some((team) => team.role === 'manager');
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (role === '$team:member') {
|
|
35
|
-
return Boolean(teams.some((team) => team.role));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (!userRole) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (securityDefinition.roles[userRole].inherits) {
|
|
43
|
-
return securityDefinition.roles[userRole].inherits.some((inheritedRole) =>
|
|
44
|
-
checkAppRole(securityDefinition, role, inheritedRole, teams),
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return false;
|
|
49
|
-
}
|
package/compare.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["compare.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC"}
|
package/compare.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
const collator = new Intl.Collator('en', { numeric: true });
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Default comparison function for strings.
|
|
5
|
-
*
|
|
6
|
-
* @param a The first string to compare.
|
|
7
|
-
* @param b The second string to compare.
|
|
8
|
-
* @returns Number representing whether `a` is less than, equal, or great compared to `b`.
|
|
9
|
-
*/
|
|
10
|
-
export const compareStrings = collator.compare;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Permission.js","sourceRoot":"","sources":["Permission.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,UA2FX;AA3FD,WAAY,UAAU;IACpB;;OAEG;IACH,uDAAU,CAAA;IAEV;;OAEG;IACH,uDAAU,CAAA;IAEV;;OAEG;IACH,iEAAe,CAAA;IAEf;;OAEG;IACH,iEAAe,CAAA;IAEf;;OAEG;IACH,mDAAQ,CAAA;IAER;;OAEG;IACH,mEAAgB,CAAA;IAEhB;;;OAGG;IACH,2DAAY,CAAA;IAEZ;;OAEG;IACH,2DAAY,CAAA;IAEZ;;OAEG;IACH,6DAAa,CAAA;IAEb;;OAEG;IACH,iEAAe,CAAA;IAEf;;OAEG;IACH,0DAAW,CAAA;IAEX;;OAEG;IACH,0DAAW,CAAA;IAEX;;OAEG;IACH,8DAAa,CAAA;IAEb;;OAEG;IACH,sEAAiB,CAAA;IAEjB;;OAEG;IACH,wDAAU,CAAA;IAEV;;OAEG;IACH,8DAAa,CAAA;IAEb;;OAEG;IACH,oDAAQ,CAAA;IAER;;OAEG;IACH,0DAAW,CAAA;AACb,CAAC,EA3FW,UAAU,KAAV,UAAU,QA2FrB"}
|