@budibase/backend-core 2.9.38 → 2.9.39-alpha.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.
- package/dist/index.js +3027 -3025
- package/dist/index.js.map +4 -4
- package/dist/index.js.meta.json +1 -1
- package/dist/package.json +5 -5
- package/dist/plugins.js +1 -1
- package/dist/plugins.js.map +2 -2
- package/dist/plugins.js.meta.json +1 -1
- package/dist/src/accounts/accounts.js +100 -0
- package/dist/src/accounts/accounts.js.map +7 -0
- package/dist/src/accounts/api.js +78 -0
- package/dist/src/accounts/api.js.map +7 -0
- package/dist/src/accounts/index.js +23 -0
- package/dist/src/accounts/index.js.map +7 -0
- package/dist/src/auth/auth.js +208 -0
- package/dist/src/auth/auth.js.map +7 -0
- package/dist/src/auth/index.js +23 -0
- package/dist/src/auth/index.js.map +7 -0
- package/dist/src/auth/tests/auth.spec.js +37 -0
- package/dist/src/auth/tests/auth.spec.js.map +7 -0
- package/dist/src/blacklist/blacklist.js +88 -0
- package/dist/src/blacklist/blacklist.js.map +7 -0
- package/dist/src/blacklist/index.js +23 -0
- package/dist/src/blacklist/index.js.map +7 -0
- package/dist/src/blacklist/tests/blacklist.spec.js +61 -0
- package/dist/src/blacklist/tests/blacklist.spec.js.map +7 -0
- package/dist/src/cache/appMetadata.js +86 -0
- package/dist/src/cache/appMetadata.js.map +7 -0
- package/dist/src/cache/base/index.js +102 -0
- package/dist/src/cache/base/index.js.map +7 -0
- package/dist/src/cache/generic.js +69 -0
- package/dist/src/cache/generic.js.map +7 -0
- package/dist/src/cache/index.js +51 -0
- package/dist/src/cache/index.js.map +7 -0
- package/dist/src/cache/tests/writethrough.spec.js +132 -0
- package/dist/src/cache/tests/writethrough.spec.js.map +7 -0
- package/dist/src/cache/user.js +99 -0
- package/dist/src/cache/user.js.map +7 -0
- package/dist/src/cache/writethrough.js +144 -0
- package/dist/src/cache/writethrough.js.map +7 -0
- package/dist/src/configs/configs.js +228 -0
- package/dist/src/configs/configs.js.map +7 -0
- package/dist/src/configs/index.js +23 -0
- package/dist/src/configs/index.js.map +7 -0
- package/dist/src/configs/tests/configs.spec.js +182 -0
- package/dist/src/configs/tests/configs.spec.js.map +7 -0
- package/dist/src/constants/db.js +107 -0
- package/dist/src/constants/db.js.map +7 -0
- package/dist/src/constants/index.js +25 -0
- package/dist/src/constants/index.js.map +7 -0
- package/dist/src/constants/misc.js +92 -0
- package/dist/src/constants/misc.js.map +7 -0
- package/dist/src/context/Context.js +36 -0
- package/dist/src/context/Context.js.map +7 -0
- package/dist/src/context/identity.js +87 -0
- package/dist/src/context/identity.js.map +7 -0
- package/dist/src/context/index.js +45 -0
- package/dist/src/context/index.js.map +7 -0
- package/dist/src/context/mainContext.js +320 -0
- package/dist/src/context/mainContext.js.map +7 -0
- package/dist/src/context/tests/index.spec.js +147 -0
- package/dist/src/context/tests/index.spec.js.map +7 -0
- package/dist/src/context/types.js +17 -0
- package/dist/src/context/types.js.map +7 -0
- package/dist/src/db/Replication.js +89 -0
- package/dist/src/db/Replication.js.map +7 -0
- package/dist/src/db/constants.js +39 -0
- package/dist/src/db/constants.js.map +7 -0
- package/dist/src/db/couch/DatabaseImpl.js +224 -0
- package/dist/src/db/couch/DatabaseImpl.js.map +7 -0
- package/dist/src/db/couch/connections.js +103 -0
- package/dist/src/db/couch/connections.js.map +7 -0
- package/dist/src/db/couch/index.js +44 -0
- package/dist/src/db/couch/index.js.map +7 -0
- package/dist/src/db/couch/pouchDB.js +118 -0
- package/dist/src/db/couch/pouchDB.js.map +7 -0
- package/dist/src/db/couch/pouchDump.js +2 -0
- package/dist/src/db/couch/pouchDump.js.map +7 -0
- package/dist/src/db/couch/utils.js +76 -0
- package/dist/src/db/couch/utils.js.map +7 -0
- package/dist/src/db/db.d.ts +1 -1
- package/dist/src/db/db.js +73 -0
- package/dist/src/db/db.js.map +7 -0
- package/dist/src/db/errors.js +43 -0
- package/dist/src/db/errors.js.map +7 -0
- package/dist/src/db/index.js +64 -0
- package/dist/src/db/index.js.map +7 -0
- package/dist/src/db/lucene.d.ts +2 -1
- package/dist/src/db/lucene.js +595 -0
- package/dist/src/db/lucene.js.map +7 -0
- package/dist/src/db/searchIndexes/index.js +23 -0
- package/dist/src/db/searchIndexes/index.js.map +7 -0
- package/dist/src/db/searchIndexes/searchIndexes.js +82 -0
- package/dist/src/db/searchIndexes/searchIndexes.js.map +7 -0
- package/dist/src/db/tests/index.spec.js +24 -0
- package/dist/src/db/tests/index.spec.js.map +7 -0
- package/dist/src/db/tests/lucene.spec.js +312 -0
- package/dist/src/db/tests/lucene.spec.js.map +7 -0
- package/dist/src/db/tests/pouch.spec.js +63 -0
- package/dist/src/db/tests/pouch.spec.js.map +7 -0
- package/dist/src/db/tests/utils.spec.js +50 -0
- package/dist/src/db/tests/utils.spec.js.map +7 -0
- package/dist/src/db/utils.d.ts +1 -1
- package/dist/src/db/utils.js +198 -0
- package/dist/src/db/utils.js.map +7 -0
- package/dist/src/db/views.js +223 -0
- package/dist/src/db/views.js.map +7 -0
- package/dist/src/docIds/conversions.js +83 -0
- package/dist/src/docIds/conversions.js.map +7 -0
- package/dist/src/docIds/ids.js +101 -0
- package/dist/src/docIds/ids.js.map +7 -0
- package/dist/src/docIds/index.js +25 -0
- package/dist/src/docIds/index.js.map +7 -0
- package/dist/src/docIds/newid.js +32 -0
- package/dist/src/docIds/newid.js.map +7 -0
- package/dist/src/docIds/params.js +136 -0
- package/dist/src/docIds/params.js.map +7 -0
- package/dist/src/docUpdates/index.js +61 -0
- package/dist/src/docUpdates/index.js.map +7 -0
- package/dist/src/environment.js +181 -0
- package/dist/src/environment.js.map +7 -0
- package/dist/src/errors/errors.js +126 -0
- package/dist/src/errors/errors.js.map +7 -0
- package/dist/src/errors/index.js +23 -0
- package/dist/src/errors/index.js.map +7 -0
- package/dist/src/events/analytics.js +42 -0
- package/dist/src/events/analytics.js.map +7 -0
- package/dist/src/events/asyncEvents/index.js +25 -0
- package/dist/src/events/asyncEvents/index.js.map +7 -0
- package/dist/src/events/asyncEvents/publisher.js +39 -0
- package/dist/src/events/asyncEvents/publisher.js.map +7 -0
- package/dist/src/events/asyncEvents/queue.js +42 -0
- package/dist/src/events/asyncEvents/queue.js.map +7 -0
- package/dist/src/events/backfill.js +172 -0
- package/dist/src/events/backfill.js.map +7 -0
- package/dist/src/events/documentId.js +51 -0
- package/dist/src/events/documentId.js.map +7 -0
- package/dist/src/events/events.js +63 -0
- package/dist/src/events/events.js.map +7 -0
- package/dist/src/events/identification.js +275 -0
- package/dist/src/events/identification.js.map +7 -0
- package/dist/src/events/index.js +62 -0
- package/dist/src/events/index.js.map +7 -0
- package/dist/src/events/processors/AnalyticsProcessor.js +76 -0
- package/dist/src/events/processors/AnalyticsProcessor.js.map +7 -0
- package/dist/src/events/processors/AuditLogsProcessor.js +97 -0
- package/dist/src/events/processors/AuditLogsProcessor.js.map +7 -0
- package/dist/src/events/processors/LoggingProcessor.js +58 -0
- package/dist/src/events/processors/LoggingProcessor.js.map +7 -0
- package/dist/src/events/processors/Processors.js +57 -0
- package/dist/src/events/processors/Processors.js.map +7 -0
- package/dist/src/events/processors/async/DocumentUpdateProcessor.js +53 -0
- package/dist/src/events/processors/async/DocumentUpdateProcessor.js.map +7 -0
- package/dist/src/events/processors/index.js +57 -0
- package/dist/src/events/processors/index.js.map +7 -0
- package/dist/src/events/processors/posthog/PosthogProcessor.js +126 -0
- package/dist/src/events/processors/posthog/PosthogProcessor.js.map +7 -0
- package/dist/src/events/processors/posthog/index.js +36 -0
- package/dist/src/events/processors/posthog/index.js.map +7 -0
- package/dist/src/events/processors/posthog/rateLimiting.js +105 -0
- package/dist/src/events/processors/posthog/rateLimiting.js.map +7 -0
- package/dist/src/events/processors/posthog/tests/PosthogProcessor.spec.js +154 -0
- package/dist/src/events/processors/posthog/tests/PosthogProcessor.spec.js.map +7 -0
- package/dist/src/events/processors/types.js +29 -0
- package/dist/src/events/processors/types.js.map +7 -0
- package/dist/src/events/publishers/account.js +49 -0
- package/dist/src/events/publishers/account.js.map +7 -0
- package/dist/src/events/publishers/app.js +145 -0
- package/dist/src/events/publishers/app.js.map +7 -0
- package/dist/src/events/publishers/auditLog.js +42 -0
- package/dist/src/events/publishers/auditLog.js.map +7 -0
- package/dist/src/events/publishers/auth.js +80 -0
- package/dist/src/events/publishers/auth.js.map +7 -0
- package/dist/src/events/publishers/automation.js +111 -0
- package/dist/src/events/publishers/automation.js.map +7 -0
- package/dist/src/events/publishers/backfill.js +92 -0
- package/dist/src/events/publishers/backfill.js.map +7 -0
- package/dist/src/events/publishers/backup.js +49 -0
- package/dist/src/events/publishers/backup.js.map +7 -0
- package/dist/src/events/publishers/datasource.js +59 -0
- package/dist/src/events/publishers/datasource.js.map +7 -0
- package/dist/src/events/publishers/email.js +38 -0
- package/dist/src/events/publishers/email.js.map +7 -0
- package/dist/src/events/publishers/environmentVariable.js +53 -0
- package/dist/src/events/publishers/environmentVariable.js.map +7 -0
- package/dist/src/events/publishers/group.js +105 -0
- package/dist/src/events/publishers/group.js.map +7 -0
- package/dist/src/events/publishers/index.js +108 -0
- package/dist/src/events/publishers/index.js.map +7 -0
- package/dist/src/events/publishers/installation.js +56 -0
- package/dist/src/events/publishers/installation.js.map +7 -0
- package/dist/src/events/publishers/layout.js +42 -0
- package/dist/src/events/publishers/layout.js.map +7 -0
- package/dist/src/events/publishers/license.js +78 -0
- package/dist/src/events/publishers/license.js.map +7 -0
- package/dist/src/events/publishers/org.js +53 -0
- package/dist/src/events/publishers/org.js.map +7 -0
- package/dist/src/events/publishers/plugin.js +61 -0
- package/dist/src/events/publishers/plugin.js.map +7 -0
- package/dist/src/events/publishers/query.js +85 -0
- package/dist/src/events/publishers/query.js.map +7 -0
- package/dist/src/events/publishers/role.js +71 -0
- package/dist/src/events/publishers/role.js.map +7 -0
- package/dist/src/events/publishers/rows.js +43 -0
- package/dist/src/events/publishers/rows.js.map +7 -0
- package/dist/src/events/publishers/screen.js +52 -0
- package/dist/src/events/publishers/screen.js.map +7 -0
- package/dist/src/events/publishers/serve.js +53 -0
- package/dist/src/events/publishers/serve.js.map +7 -0
- package/dist/src/events/publishers/table.js +79 -0
- package/dist/src/events/publishers/table.js.map +7 -0
- package/dist/src/events/publishers/user.js +191 -0
- package/dist/src/events/publishers/user.js.map +7 -0
- package/dist/src/events/publishers/view.js +102 -0
- package/dist/src/events/publishers/view.js.map +7 -0
- package/dist/src/{featureFlags → features}/index.d.ts +1 -0
- package/dist/src/features/index.js +105 -0
- package/dist/src/features/index.js.map +7 -0
- package/dist/src/features/installation.d.ts +1 -0
- package/dist/src/features/installation.js +42 -0
- package/dist/src/features/installation.js.map +7 -0
- package/dist/src/features/tests/featureFlags.spec.js +86 -0
- package/dist/src/features/tests/featureFlags.spec.js.map +7 -0
- package/dist/src/helpers.js +31 -0
- package/dist/src/helpers.js.map +7 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.js +154 -0
- package/dist/src/index.js.map +7 -0
- package/dist/src/installation.js +139 -0
- package/dist/src/installation.js.map +7 -0
- package/dist/src/logging/alerts.js +49 -0
- package/dist/src/logging/alerts.js.map +7 -0
- package/dist/src/logging/correlation/correlation.js +41 -0
- package/dist/src/logging/correlation/correlation.js.map +7 -0
- package/dist/src/logging/correlation/index.js +23 -0
- package/dist/src/logging/correlation/index.js.map +7 -0
- package/dist/src/logging/correlation/middleware.js +37 -0
- package/dist/src/logging/correlation/middleware.js.map +7 -0
- package/dist/src/logging/index.js +48 -0
- package/dist/src/logging/index.js.map +7 -0
- package/dist/src/logging/pino/logger.js +197 -0
- package/dist/src/logging/pino/logger.js.map +7 -0
- package/dist/src/logging/pino/middleware.js +77 -0
- package/dist/src/logging/pino/middleware.js.map +7 -0
- package/dist/src/logging/system.js +110 -0
- package/dist/src/logging/system.js.map +7 -0
- package/dist/src/logging/tests/system.spec.js +59 -0
- package/dist/src/logging/tests/system.spec.js.map +7 -0
- package/dist/src/middleware/adminOnly.js +31 -0
- package/dist/src/middleware/adminOnly.js.map +7 -0
- package/dist/src/middleware/auditLog.js +27 -0
- package/dist/src/middleware/auditLog.js.map +7 -0
- package/dist/src/middleware/authenticated.js +178 -0
- package/dist/src/middleware/authenticated.js.map +7 -0
- package/dist/src/middleware/builderOnly.js +48 -0
- package/dist/src/middleware/builderOnly.js.map +7 -0
- package/dist/src/middleware/builderOrAdmin.js +48 -0
- package/dist/src/middleware/builderOrAdmin.js.map +7 -0
- package/dist/src/middleware/csrf.js +60 -0
- package/dist/src/middleware/csrf.js.map +7 -0
- package/dist/src/middleware/errorHandling.js +62 -0
- package/dist/src/middleware/errorHandling.js.map +7 -0
- package/dist/src/middleware/index.js +95 -0
- package/dist/src/middleware/index.js.map +7 -0
- package/dist/src/middleware/internalApi.js +39 -0
- package/dist/src/middleware/internalApi.js.map +7 -0
- package/dist/src/middleware/joi-validator.js +73 -0
- package/dist/src/middleware/joi-validator.js.map +7 -0
- package/dist/src/middleware/matchers.js +62 -0
- package/dist/src/middleware/matchers.js.map +7 -0
- package/dist/src/middleware/passport/datasource/google.js +103 -0
- package/dist/src/middleware/passport/datasource/google.js.map +7 -0
- package/dist/src/middleware/passport/local.js +73 -0
- package/dist/src/middleware/passport/local.js.map +7 -0
- package/dist/src/middleware/passport/sso/google.js +93 -0
- package/dist/src/middleware/passport/sso/google.js.map +7 -0
- package/dist/src/middleware/passport/sso/oidc.js +135 -0
- package/dist/src/middleware/passport/sso/oidc.js.map +7 -0
- package/dist/src/middleware/passport/sso/sso.js +149 -0
- package/dist/src/middleware/passport/sso/sso.js.map +7 -0
- package/dist/src/middleware/passport/sso/tests/google.spec.js +77 -0
- package/dist/src/middleware/passport/sso/tests/google.spec.js.map +7 -0
- package/dist/src/middleware/passport/sso/tests/oidc.spec.js +143 -0
- package/dist/src/middleware/passport/sso/tests/oidc.spec.js.map +7 -0
- package/dist/src/middleware/passport/sso/tests/sso.spec.js +167 -0
- package/dist/src/middleware/passport/sso/tests/sso.spec.js.map +7 -0
- package/dist/src/middleware/passport/utils.js +62 -0
- package/dist/src/middleware/passport/utils.js.map +7 -0
- package/dist/src/middleware/querystringToBody.js +45 -0
- package/dist/src/middleware/querystringToBody.js.map +7 -0
- package/dist/src/middleware/tenancy.js +46 -0
- package/dist/src/middleware/tenancy.js.map +7 -0
- package/dist/src/middleware/tests/builder.spec.js +169 -0
- package/dist/src/middleware/tests/builder.spec.js.map +7 -0
- package/dist/src/middleware/tests/matchers.spec.js +120 -0
- package/dist/src/middleware/tests/matchers.spec.js.map +7 -0
- package/dist/src/migrations/definitions.js +63 -0
- package/dist/src/migrations/definitions.js.map +7 -0
- package/dist/src/migrations/index.js +25 -0
- package/dist/src/migrations/index.js.map +7 -0
- package/dist/src/migrations/migrations.js +178 -0
- package/dist/src/migrations/migrations.js.map +7 -0
- package/dist/src/migrations/tests/migrations.spec.js +78 -0
- package/dist/src/migrations/tests/migrations.spec.js.map +7 -0
- package/dist/src/objectStore/buckets/app.js +65 -0
- package/dist/src/objectStore/buckets/app.js.map +7 -0
- package/dist/src/objectStore/buckets/global.js +63 -0
- package/dist/src/objectStore/buckets/global.js.map +7 -0
- package/dist/src/objectStore/buckets/index.js +27 -0
- package/dist/src/objectStore/buckets/index.js.map +7 -0
- package/dist/src/objectStore/buckets/plugins.js +101 -0
- package/dist/src/objectStore/buckets/plugins.js.map +7 -0
- package/dist/src/objectStore/buckets/tests/app.spec.js +171 -0
- package/dist/src/objectStore/buckets/tests/app.spec.js.map +7 -0
- package/dist/src/objectStore/buckets/tests/global.spec.js +87 -0
- package/dist/src/objectStore/buckets/tests/global.spec.js.map +7 -0
- package/dist/src/objectStore/buckets/tests/plugins.spec.js +123 -0
- package/dist/src/objectStore/buckets/tests/plugins.spec.js.map +7 -0
- package/dist/src/objectStore/cloudfront.js +74 -0
- package/dist/src/objectStore/cloudfront.js.map +7 -0
- package/dist/src/objectStore/index.js +27 -0
- package/dist/src/objectStore/index.js.map +7 -0
- package/dist/src/objectStore/objectStore.js +372 -0
- package/dist/src/objectStore/objectStore.js.map +7 -0
- package/dist/src/objectStore/utils.js +58 -0
- package/dist/src/objectStore/utils.js.map +7 -0
- package/dist/src/platform/index.js +45 -0
- package/dist/src/platform/index.js.map +7 -0
- package/dist/src/platform/platformDb.js +33 -0
- package/dist/src/platform/platformDb.js.map +7 -0
- package/dist/src/platform/tenants.js +123 -0
- package/dist/src/platform/tenants.js.map +7 -0
- package/dist/src/platform/tests/tenants.spec.js +46 -0
- package/dist/src/platform/tests/tenants.spec.js.map +7 -0
- package/dist/src/platform/users.js +104 -0
- package/dist/src/platform/users.js.map +7 -0
- package/dist/src/plugin/index.js +23 -0
- package/dist/src/plugin/index.js.map +7 -0
- package/dist/src/plugin/tests/validation.spec.js +97 -0
- package/dist/src/plugin/tests/validation.spec.js.map +7 -0
- package/dist/src/plugin/utils.js +153 -0
- package/dist/src/plugin/utils.js.map +7 -0
- package/dist/src/queue/constants.js +35 -0
- package/dist/src/queue/constants.js.map +7 -0
- package/dist/src/queue/inMemoryQueue.js +139 -0
- package/dist/src/queue/inMemoryQueue.js.map +7 -0
- package/dist/src/queue/index.js +25 -0
- package/dist/src/queue/index.js.map +7 -0
- package/dist/src/queue/listeners.js +177 -0
- package/dist/src/queue/listeners.js.map +7 -0
- package/dist/src/queue/queue.js +85 -0
- package/dist/src/queue/queue.js.map +7 -0
- package/dist/src/redis/index.js +48 -0
- package/dist/src/redis/index.js.map +7 -0
- package/dist/src/redis/init.js +128 -0
- package/dist/src/redis/init.js.map +7 -0
- package/dist/src/redis/redis.js +277 -0
- package/dist/src/redis/redis.js.map +7 -0
- package/dist/src/redis/redlockImpl.js +145 -0
- package/dist/src/redis/redlockImpl.js.map +7 -0
- package/dist/src/redis/utils.js +136 -0
- package/dist/src/redis/utils.js.map +7 -0
- package/dist/src/security/encryption.js +184 -0
- package/dist/src/security/encryption.js.map +7 -0
- package/dist/src/security/permissions.js +188 -0
- package/dist/src/security/permissions.js.map +7 -0
- package/dist/src/security/roles.d.ts +1 -12
- package/dist/src/security/roles.js +337 -0
- package/dist/src/security/roles.js.map +7 -0
- package/dist/src/security/sessions.js +135 -0
- package/dist/src/security/sessions.js.map +7 -0
- package/dist/src/security/tests/encryption.spec.js +51 -0
- package/dist/src/security/tests/encryption.spec.js.map +7 -0
- package/dist/src/security/tests/permissions.spec.js +154 -0
- package/dist/src/security/tests/permissions.spec.js.map +7 -0
- package/dist/src/security/tests/sessions.spec.js +33 -0
- package/dist/src/security/tests/sessions.spec.js.map +7 -0
- package/dist/src/tenancy/db.js +33 -0
- package/dist/src/tenancy/db.js.map +7 -0
- package/dist/src/tenancy/index.js +25 -0
- package/dist/src/tenancy/index.js.map +7 -0
- package/dist/src/tenancy/tenancy.js +129 -0
- package/dist/src/tenancy/tenancy.js.map +7 -0
- package/dist/src/tenancy/tests/tenancy.spec.js +154 -0
- package/dist/src/tenancy/tests/tenancy.spec.js.map +7 -0
- package/dist/src/timers/index.js +23 -0
- package/dist/src/timers/index.js.map +7 -0
- package/dist/src/timers/timers.js +51 -0
- package/dist/src/timers/timers.js.map +7 -0
- package/dist/src/users/db.d.ts +9 -1
- package/dist/src/users/db.js +381 -0
- package/dist/src/users/db.js.map +7 -0
- package/dist/src/users/events.js +152 -0
- package/dist/src/users/events.js.map +7 -0
- package/dist/src/users/index.js +36 -0
- package/dist/src/users/index.js.map +7 -0
- package/dist/src/users/lookup.js +110 -0
- package/dist/src/users/lookup.js.map +7 -0
- package/dist/src/users/users.js +257 -0
- package/dist/src/users/users.js.map +7 -0
- package/dist/src/users/utils.js +95 -0
- package/dist/src/users/utils.js.map +7 -0
- package/dist/src/utils/hashing.js +53 -0
- package/dist/src/utils/hashing.js.map +7 -0
- package/dist/src/utils/index.js +27 -0
- package/dist/src/utils/index.js.map +7 -0
- package/dist/src/utils/stringUtils.js +33 -0
- package/dist/src/utils/stringUtils.js.map +7 -0
- package/dist/src/utils/tests/utils.spec.js +165 -0
- package/dist/src/utils/tests/utils.spec.js.map +7 -0
- package/dist/src/utils/utils.js +207 -0
- package/dist/src/utils/utils.js.map +7 -0
- package/dist/tests/core/logging.js +57 -0
- package/dist/tests/core/logging.js.map +7 -0
- package/dist/tests/core/utilities/index.js +54 -0
- package/dist/tests/core/utilities/index.js.map +7 -0
- package/dist/tests/core/utilities/jestUtils.js +50 -0
- package/dist/tests/core/utilities/jestUtils.js.map +7 -0
- package/dist/tests/core/utilities/mocks/alerts.js +41 -0
- package/dist/tests/core/utilities/mocks/alerts.js.map +7 -0
- package/dist/tests/core/utilities/mocks/date.js +32 -0
- package/dist/tests/core/utilities/mocks/date.js.map +7 -0
- package/dist/tests/core/utilities/mocks/events.js +133 -0
- package/dist/tests/core/utilities/mocks/events.js.map +7 -0
- package/dist/tests/core/utilities/mocks/fetch.js +39 -0
- package/dist/tests/core/utilities/mocks/fetch.js.map +7 -0
- package/dist/tests/core/utilities/mocks/index.js +55 -0
- package/dist/tests/core/utilities/mocks/index.js.map +7 -0
- package/dist/tests/core/utilities/mocks/licenses.d.ts +2 -0
- package/dist/tests/core/utilities/mocks/licenses.js +145 -0
- package/dist/tests/core/utilities/mocks/licenses.js.map +7 -0
- package/dist/tests/core/utilities/mocks/posthog.js +9 -0
- package/dist/tests/core/utilities/mocks/posthog.js.map +7 -0
- package/dist/tests/core/utilities/structures/Chance.js +48 -0
- package/dist/tests/core/utilities/structures/Chance.js.map +7 -0
- package/dist/tests/core/utilities/structures/accounts.js +148 -0
- package/dist/tests/core/utilities/structures/accounts.js.map +7 -0
- package/dist/tests/core/utilities/structures/apps.js +47 -0
- package/dist/tests/core/utilities/structures/apps.js.map +7 -0
- package/dist/tests/core/utilities/structures/common.js +35 -0
- package/dist/tests/core/utilities/structures/common.js.map +7 -0
- package/dist/tests/core/utilities/structures/db.js +40 -0
- package/dist/tests/core/utilities/structures/db.js.map +7 -0
- package/dist/tests/core/utilities/structures/documents/index.js +23 -0
- package/dist/tests/core/utilities/structures/documents/index.js.map +7 -0
- package/dist/tests/core/utilities/structures/documents/platform/index.js +39 -0
- package/dist/tests/core/utilities/structures/documents/platform/index.js.map +7 -0
- package/dist/tests/core/utilities/structures/documents/platform/installation.js +48 -0
- package/dist/tests/core/utilities/structures/documents/platform/installation.js.map +7 -0
- package/dist/tests/core/utilities/structures/generator.js +40 -0
- package/dist/tests/core/utilities/structures/generator.js.map +7 -0
- package/dist/tests/core/utilities/structures/index.js +81 -0
- package/dist/tests/core/utilities/structures/index.js.map +7 -0
- package/dist/tests/core/utilities/structures/koa.js +42 -0
- package/dist/tests/core/utilities/structures/koa.js.map +7 -0
- package/dist/tests/core/utilities/structures/licenses.js +175 -0
- package/dist/tests/core/utilities/structures/licenses.js.map +7 -0
- package/dist/tests/core/utilities/structures/plugins.js +46 -0
- package/dist/tests/core/utilities/structures/plugins.js.map +7 -0
- package/dist/tests/core/utilities/structures/quotas.js +94 -0
- package/dist/tests/core/utilities/structures/quotas.js.map +7 -0
- package/dist/tests/core/utilities/structures/scim.js +90 -0
- package/dist/tests/core/utilities/structures/scim.js.map +7 -0
- package/dist/tests/core/utilities/structures/shared.js +46 -0
- package/dist/tests/core/utilities/structures/shared.js.map +7 -0
- package/dist/tests/core/utilities/structures/sso.js +144 -0
- package/dist/tests/core/utilities/structures/sso.js.map +7 -0
- package/dist/tests/core/utilities/structures/tenants.js +32 -0
- package/dist/tests/core/utilities/structures/tenants.js.map +7 -0
- package/dist/tests/core/utilities/structures/userGroups.js +36 -0
- package/dist/tests/core/utilities/structures/userGroups.js.map +7 -0
- package/dist/tests/core/utilities/structures/users.js +96 -0
- package/dist/tests/core/utilities/structures/users.js.map +7 -0
- package/dist/tests/core/utilities/testContainerUtils.js +100 -0
- package/dist/tests/core/utilities/testContainerUtils.js.map +7 -0
- package/dist/tests/core/utilities/utils/index.js +39 -0
- package/dist/tests/core/utilities/utils/index.js.map +7 -0
- package/dist/tests/core/utilities/utils/time.js +31 -0
- package/dist/tests/core/utilities/utils/time.js.map +7 -0
- package/dist/tests/extra/DBTestConfiguration.js +61 -0
- package/dist/tests/extra/DBTestConfiguration.js.map +7 -0
- package/dist/tests/extra/index.js +42 -0
- package/dist/tests/extra/index.js.map +7 -0
- package/dist/tests/extra/testEnv.js +106 -0
- package/dist/tests/extra/testEnv.js.map +7 -0
- package/dist/tests/index.js +23 -0
- package/dist/tests/index.js.map +7 -0
- package/dist/tests/jestEnv.js +8 -0
- package/dist/tests/jestEnv.js.map +7 -0
- package/dist/tests/jestSetup.js +41 -0
- package/dist/tests/jestSetup.js.map +7 -0
- package/package.json +5 -5
- package/dist/tests.js +0 -8476
- package/dist/tests.js.map +0 -7
- package/dist/tests.js.meta.json +0 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var platform_exports = {};
|
|
31
|
+
__export(platform_exports, {
|
|
32
|
+
tenants: () => tenants,
|
|
33
|
+
users: () => users
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(platform_exports);
|
|
36
|
+
var users = __toESM(require("./users"));
|
|
37
|
+
var tenants = __toESM(require("./tenants"));
|
|
38
|
+
__reExport(platform_exports, require("./platformDb"), module.exports);
|
|
39
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
40
|
+
0 && (module.exports = {
|
|
41
|
+
tenants,
|
|
42
|
+
users,
|
|
43
|
+
...require("./platformDb")
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/platform/index.ts"],
|
|
4
|
+
"sourcesContent": ["export * as users from \"./users\"\nexport * as tenants from \"./tenants\"\nexport * from \"./platformDb\"\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AACvB,cAAyB;AACzB,6BAAc,yBAFd;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var platformDb_exports = {};
|
|
20
|
+
__export(platformDb_exports, {
|
|
21
|
+
getPlatformDB: () => getPlatformDB
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(platformDb_exports);
|
|
24
|
+
var import_constants = require("../constants");
|
|
25
|
+
var import_db = require("../db/db");
|
|
26
|
+
function getPlatformDB() {
|
|
27
|
+
return (0, import_db.getDB)(import_constants.StaticDatabases.PLATFORM_INFO.name);
|
|
28
|
+
}
|
|
29
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
30
|
+
0 && (module.exports = {
|
|
31
|
+
getPlatformDB
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=platformDb.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/platform/platformDb.ts"],
|
|
4
|
+
"sourcesContent": ["import { StaticDatabases } from \"../constants\"\nimport { getDB } from \"../db/db\"\n\nexport function getPlatformDB() {\n return getDB(StaticDatabases.PLATFORM_INFO.name)\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAgC;AAChC,gBAAsB;AAEf,SAAS,gBAAgB;AAC9B,aAAO,iBAAM,iCAAgB,cAAc,IAAI;AACjD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var tenants_exports = {};
|
|
30
|
+
__export(tenants_exports, {
|
|
31
|
+
addTenant: () => addTenant,
|
|
32
|
+
exists: () => exists,
|
|
33
|
+
getTenantIds: () => getTenantIds,
|
|
34
|
+
removeTenant: () => removeTenant,
|
|
35
|
+
tenacyLockOptions: () => tenacyLockOptions
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(tenants_exports);
|
|
38
|
+
var import_constants = require("../constants");
|
|
39
|
+
var import_platformDb = require("./platformDb");
|
|
40
|
+
var import_types = require("@budibase/types");
|
|
41
|
+
var locks = __toESM(require("../redis/redlockImpl"));
|
|
42
|
+
const TENANT_DOC = import_constants.StaticDatabases.PLATFORM_INFO.docs.tenants;
|
|
43
|
+
const tenacyLockOptions = {
|
|
44
|
+
type: import_types.LockType.DEFAULT,
|
|
45
|
+
name: import_types.LockName.UPDATE_TENANTS_DOC,
|
|
46
|
+
ttl: 10 * 1e3,
|
|
47
|
+
// auto expire after 10 seconds
|
|
48
|
+
systemLock: true
|
|
49
|
+
};
|
|
50
|
+
async function getTenantIds() {
|
|
51
|
+
const tenants = await getTenants();
|
|
52
|
+
return tenants.tenantIds;
|
|
53
|
+
}
|
|
54
|
+
async function getTenants() {
|
|
55
|
+
const db = (0, import_platformDb.getPlatformDB)();
|
|
56
|
+
let tenants;
|
|
57
|
+
try {
|
|
58
|
+
tenants = await db.get(TENANT_DOC);
|
|
59
|
+
} catch (e) {
|
|
60
|
+
if (e.status === 404) {
|
|
61
|
+
tenants = await createTenantsDoc();
|
|
62
|
+
} else {
|
|
63
|
+
throw e;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return tenants;
|
|
67
|
+
}
|
|
68
|
+
async function exists(tenantId) {
|
|
69
|
+
const tenants = await getTenants();
|
|
70
|
+
return tenants.tenantIds.indexOf(tenantId) !== -1;
|
|
71
|
+
}
|
|
72
|
+
function newTenantsDoc() {
|
|
73
|
+
return {
|
|
74
|
+
_id: TENANT_DOC,
|
|
75
|
+
tenantIds: []
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
async function createTenantsDoc() {
|
|
79
|
+
const db = (0, import_platformDb.getPlatformDB)();
|
|
80
|
+
let tenants = newTenantsDoc();
|
|
81
|
+
try {
|
|
82
|
+
const response = await db.put(tenants);
|
|
83
|
+
tenants._rev = response.rev;
|
|
84
|
+
} catch (e) {
|
|
85
|
+
if (e.status === 409) {
|
|
86
|
+
return db.get(TENANT_DOC);
|
|
87
|
+
}
|
|
88
|
+
throw e;
|
|
89
|
+
}
|
|
90
|
+
return tenants;
|
|
91
|
+
}
|
|
92
|
+
async function addTenant(tenantId) {
|
|
93
|
+
const db = (0, import_platformDb.getPlatformDB)();
|
|
94
|
+
await locks.doWithLock(tenacyLockOptions, async () => {
|
|
95
|
+
const tenants = await getTenants();
|
|
96
|
+
if (tenants.tenantIds.indexOf(tenantId) === -1) {
|
|
97
|
+
tenants.tenantIds.push(tenantId);
|
|
98
|
+
await db.put(tenants);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
async function removeTenant(tenantId) {
|
|
103
|
+
try {
|
|
104
|
+
await locks.doWithLock(tenacyLockOptions, async () => {
|
|
105
|
+
const db = (0, import_platformDb.getPlatformDB)();
|
|
106
|
+
const tenants = await getTenants();
|
|
107
|
+
tenants.tenantIds = tenants.tenantIds.filter((id) => id !== tenantId);
|
|
108
|
+
await db.put(tenants);
|
|
109
|
+
});
|
|
110
|
+
} catch (err) {
|
|
111
|
+
console.error(`Error removing tenant ${tenantId} from info db`, err);
|
|
112
|
+
throw err;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
116
|
+
0 && (module.exports = {
|
|
117
|
+
addTenant,
|
|
118
|
+
exists,
|
|
119
|
+
getTenantIds,
|
|
120
|
+
removeTenant,
|
|
121
|
+
tenacyLockOptions
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=tenants.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/platform/tenants.ts"],
|
|
4
|
+
"sourcesContent": ["import { StaticDatabases } from \"../constants\"\nimport { getPlatformDB } from \"./platformDb\"\nimport { LockName, LockOptions, LockType, Tenants } from \"@budibase/types\"\nimport * as locks from \"../redis/redlockImpl\"\n\nconst TENANT_DOC = StaticDatabases.PLATFORM_INFO.docs.tenants\n\nexport const tenacyLockOptions: LockOptions = {\n type: LockType.DEFAULT,\n name: LockName.UPDATE_TENANTS_DOC,\n ttl: 10 * 1000, // auto expire after 10 seconds\n systemLock: true,\n}\n\n// READ\n\nexport async function getTenantIds(): Promise<string[]> {\n const tenants = await getTenants()\n return tenants.tenantIds\n}\n\nasync function getTenants(): Promise<Tenants> {\n const db = getPlatformDB()\n let tenants: Tenants\n\n try {\n tenants = await db.get(TENANT_DOC)\n } catch (e: any) {\n // doesn't exist yet - create\n if (e.status === 404) {\n tenants = await createTenantsDoc()\n } else {\n throw e\n }\n }\n\n return tenants\n}\n\nexport async function exists(tenantId: string) {\n const tenants = await getTenants()\n return tenants.tenantIds.indexOf(tenantId) !== -1\n}\n\n// CREATE / UPDATE\n\nfunction newTenantsDoc(): Tenants {\n return {\n _id: TENANT_DOC,\n tenantIds: [],\n }\n}\n\nasync function createTenantsDoc(): Promise<Tenants> {\n const db = getPlatformDB()\n let tenants = newTenantsDoc()\n\n try {\n const response = await db.put(tenants)\n tenants._rev = response.rev\n } catch (e: any) {\n // don't throw 409 is doc has already been created\n if (e.status === 409) {\n return db.get(TENANT_DOC)\n }\n throw e\n }\n\n return tenants\n}\n\nexport async function addTenant(tenantId: string) {\n const db = getPlatformDB()\n\n // use a lock as tenant creation is conflict prone\n await locks.doWithLock(tenacyLockOptions, async () => {\n const tenants = await getTenants()\n\n // write the new tenant if it doesn't already exist\n if (tenants.tenantIds.indexOf(tenantId) === -1) {\n tenants.tenantIds.push(tenantId)\n await db.put(tenants)\n }\n })\n}\n\n// DELETE\n\nexport async function removeTenant(tenantId: string) {\n try {\n await locks.doWithLock(tenacyLockOptions, async () => {\n const db = getPlatformDB()\n const tenants = await getTenants()\n tenants.tenantIds = tenants.tenantIds.filter(id => id !== tenantId)\n await db.put(tenants)\n })\n } catch (err) {\n console.error(`Error removing tenant ${tenantId} from info db`, err)\n throw err\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAgC;AAChC,wBAA8B;AAC9B,mBAAyD;AACzD,YAAuB;AAEvB,MAAM,aAAa,iCAAgB,cAAc,KAAK;AAE/C,MAAM,oBAAiC;AAAA,EAC5C,MAAM,sBAAS;AAAA,EACf,MAAM,sBAAS;AAAA,EACf,KAAK,KAAK;AAAA;AAAA,EACV,YAAY;AACd;AAIA,eAAsB,eAAkC;AACtD,QAAM,UAAU,MAAM,WAAW;AACjC,SAAO,QAAQ;AACjB;AAEA,eAAe,aAA+B;AAC5C,QAAM,SAAK,iCAAc;AACzB,MAAI;AAEJ,MAAI;AACF,cAAU,MAAM,GAAG,IAAI,UAAU;AAAA,EACnC,SAAS,GAAQ;AAEf,QAAI,EAAE,WAAW,KAAK;AACpB,gBAAU,MAAM,iBAAiB;AAAA,IACnC,OAAO;AACL,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AACT;AAEA,eAAsB,OAAO,UAAkB;AAC7C,QAAM,UAAU,MAAM,WAAW;AACjC,SAAO,QAAQ,UAAU,QAAQ,QAAQ,MAAM;AACjD;AAIA,SAAS,gBAAyB;AAChC,SAAO;AAAA,IACL,KAAK;AAAA,IACL,WAAW,CAAC;AAAA,EACd;AACF;AAEA,eAAe,mBAAqC;AAClD,QAAM,SAAK,iCAAc;AACzB,MAAI,UAAU,cAAc;AAE5B,MAAI;AACF,UAAM,WAAW,MAAM,GAAG,IAAI,OAAO;AACrC,YAAQ,OAAO,SAAS;AAAA,EAC1B,SAAS,GAAQ;AAEf,QAAI,EAAE,WAAW,KAAK;AACpB,aAAO,GAAG,IAAI,UAAU;AAAA,IAC1B;AACA,UAAM;AAAA,EACR;AAEA,SAAO;AACT;AAEA,eAAsB,UAAU,UAAkB;AAChD,QAAM,SAAK,iCAAc;AAGzB,QAAM,MAAM,WAAW,mBAAmB,YAAY;AACpD,UAAM,UAAU,MAAM,WAAW;AAGjC,QAAI,QAAQ,UAAU,QAAQ,QAAQ,MAAM,IAAI;AAC9C,cAAQ,UAAU,KAAK,QAAQ;AAC/B,YAAM,GAAG,IAAI,OAAO;AAAA,IACtB;AAAA,EACF,CAAC;AACH;AAIA,eAAsB,aAAa,UAAkB;AACnD,MAAI;AACF,UAAM,MAAM,WAAW,mBAAmB,YAAY;AACpD,YAAM,SAAK,iCAAc;AACzB,YAAM,UAAU,MAAM,WAAW;AACjC,cAAQ,YAAY,QAAQ,UAAU,OAAO,QAAM,OAAO,QAAQ;AAClE,YAAM,GAAG,IAAI,OAAO;AAAA,IACtB,CAAC;AAAA,EACH,SAAS,KAAK;AACZ,YAAQ,MAAM,yBAAyB,QAAQ,iBAAiB,GAAG;AACnE,UAAM;AAAA,EACR;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var import_tests = require("../../../tests");
|
|
25
|
+
var import_extra = require("../../../tests/extra");
|
|
26
|
+
var tenants = __toESM(require("../tenants"));
|
|
27
|
+
describe("tenants", () => {
|
|
28
|
+
const config = new import_extra.DBTestConfiguration();
|
|
29
|
+
describe("addTenant", () => {
|
|
30
|
+
it("concurrently adds multiple tenants safely", async () => {
|
|
31
|
+
const tenant1 = import_tests.structures.tenant.id();
|
|
32
|
+
const tenant2 = import_tests.structures.tenant.id();
|
|
33
|
+
const tenant3 = import_tests.structures.tenant.id();
|
|
34
|
+
await Promise.all([
|
|
35
|
+
tenants.addTenant(tenant1),
|
|
36
|
+
tenants.addTenant(tenant2),
|
|
37
|
+
tenants.addTenant(tenant3)
|
|
38
|
+
]);
|
|
39
|
+
const tenantIds = await tenants.getTenantIds();
|
|
40
|
+
expect(tenantIds.includes(tenant1)).toBe(true);
|
|
41
|
+
expect(tenantIds.includes(tenant2)).toBe(true);
|
|
42
|
+
expect(tenantIds.includes(tenant3)).toBe(true);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=tenants.spec.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/platform/tests/tenants.spec.ts"],
|
|
4
|
+
"sourcesContent": ["import { structures } from \"../../../tests\"\nimport { DBTestConfiguration } from \"../../../tests/extra\"\nimport * as tenants from \"../tenants\"\n\ndescribe(\"tenants\", () => {\n const config = new DBTestConfiguration()\n\n describe(\"addTenant\", () => {\n it(\"concurrently adds multiple tenants safely\", async () => {\n const tenant1 = structures.tenant.id()\n const tenant2 = structures.tenant.id()\n const tenant3 = structures.tenant.id()\n\n await Promise.all([\n tenants.addTenant(tenant1),\n tenants.addTenant(tenant2),\n tenants.addTenant(tenant3),\n ])\n\n const tenantIds = await tenants.getTenantIds()\n expect(tenantIds.includes(tenant1)).toBe(true)\n expect(tenantIds.includes(tenant2)).toBe(true)\n expect(tenantIds.includes(tenant3)).toBe(true)\n })\n })\n})\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,mBAA2B;AAC3B,mBAAoC;AACpC,cAAyB;AAEzB,SAAS,WAAW,MAAM;AACxB,QAAM,SAAS,IAAI,iCAAoB;AAEvC,WAAS,aAAa,MAAM;AAC1B,OAAG,6CAA6C,YAAY;AAC1D,YAAM,UAAU,wBAAW,OAAO,GAAG;AACrC,YAAM,UAAU,wBAAW,OAAO,GAAG;AACrC,YAAM,UAAU,wBAAW,OAAO,GAAG;AAErC,YAAM,QAAQ,IAAI;AAAA,QAChB,QAAQ,UAAU,OAAO;AAAA,QACzB,QAAQ,UAAU,OAAO;AAAA,QACzB,QAAQ,UAAU,OAAO;AAAA,MAC3B,CAAC;AAED,YAAM,YAAY,MAAM,QAAQ,aAAa;AAC7C,aAAO,UAAU,SAAS,OAAO,CAAC,EAAE,KAAK,IAAI;AAC7C,aAAO,UAAU,SAAS,OAAO,CAAC,EAAE,KAAK,IAAI;AAC7C,aAAO,UAAU,SAAS,OAAO,CAAC,EAAE,KAAK,IAAI;AAAA,IAC/C,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var users_exports = {};
|
|
30
|
+
__export(users_exports, {
|
|
31
|
+
addUser: () => addUser,
|
|
32
|
+
lookupTenantId: () => lookupTenantId,
|
|
33
|
+
removeUser: () => removeUser
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(users_exports);
|
|
36
|
+
var import_platformDb = require("./platformDb");
|
|
37
|
+
var import_constants = require("../constants");
|
|
38
|
+
var import_environment = __toESM(require("../environment"));
|
|
39
|
+
async function lookupTenantId(userId) {
|
|
40
|
+
if (!import_environment.default.MULTI_TENANCY) {
|
|
41
|
+
return import_constants.DEFAULT_TENANT_ID;
|
|
42
|
+
}
|
|
43
|
+
const user = await getUserDoc(userId);
|
|
44
|
+
return user.tenantId;
|
|
45
|
+
}
|
|
46
|
+
async function getUserDoc(emailOrId) {
|
|
47
|
+
const db = (0, import_platformDb.getPlatformDB)();
|
|
48
|
+
return db.get(emailOrId);
|
|
49
|
+
}
|
|
50
|
+
function newUserIdDoc(id, tenantId) {
|
|
51
|
+
return {
|
|
52
|
+
_id: id,
|
|
53
|
+
tenantId
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function newUserEmailDoc(userId, email, tenantId) {
|
|
57
|
+
return {
|
|
58
|
+
_id: email,
|
|
59
|
+
userId,
|
|
60
|
+
tenantId
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async function addUserDoc(emailOrId, newDocFn) {
|
|
64
|
+
const db = (0, import_platformDb.getPlatformDB)();
|
|
65
|
+
let user;
|
|
66
|
+
try {
|
|
67
|
+
await db.get(emailOrId);
|
|
68
|
+
} catch (e) {
|
|
69
|
+
if (e.status === 404) {
|
|
70
|
+
user = newDocFn();
|
|
71
|
+
await db.put(user);
|
|
72
|
+
} else {
|
|
73
|
+
throw e;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function addUser(tenantId, userId, email) {
|
|
78
|
+
await Promise.all([
|
|
79
|
+
addUserDoc(userId, () => newUserIdDoc(userId, tenantId)),
|
|
80
|
+
addUserDoc(email, () => newUserEmailDoc(userId, email, tenantId))
|
|
81
|
+
]);
|
|
82
|
+
}
|
|
83
|
+
async function removeUser(user) {
|
|
84
|
+
const db = (0, import_platformDb.getPlatformDB)();
|
|
85
|
+
const keys = [user._id, user.email];
|
|
86
|
+
const userDocs = await db.allDocs({
|
|
87
|
+
keys,
|
|
88
|
+
include_docs: true
|
|
89
|
+
});
|
|
90
|
+
const toDelete = userDocs.rows.map((row) => {
|
|
91
|
+
return {
|
|
92
|
+
...row.doc,
|
|
93
|
+
_deleted: true
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
await db.bulkDocs(toDelete);
|
|
97
|
+
}
|
|
98
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
99
|
+
0 && (module.exports = {
|
|
100
|
+
addUser,
|
|
101
|
+
lookupTenantId,
|
|
102
|
+
removeUser
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=users.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/platform/users.ts"],
|
|
4
|
+
"sourcesContent": ["import { getPlatformDB } from \"./platformDb\"\nimport { DEFAULT_TENANT_ID } from \"../constants\"\nimport env from \"../environment\"\nimport {\n PlatformUser,\n PlatformUserByEmail,\n PlatformUserById,\n User,\n} from \"@budibase/types\"\n\n// READ\n\nexport async function lookupTenantId(userId: string) {\n if (!env.MULTI_TENANCY) {\n return DEFAULT_TENANT_ID\n }\n\n const user = await getUserDoc(userId)\n return user.tenantId\n}\n\nasync function getUserDoc(emailOrId: string): Promise<PlatformUser> {\n const db = getPlatformDB()\n return db.get(emailOrId)\n}\n\n// CREATE\n\nfunction newUserIdDoc(id: string, tenantId: string): PlatformUserById {\n return {\n _id: id,\n tenantId,\n }\n}\n\nfunction newUserEmailDoc(\n userId: string,\n email: string,\n tenantId: string\n): PlatformUserByEmail {\n return {\n _id: email,\n userId,\n tenantId,\n }\n}\n\n/**\n * Add a new user id or email doc if it doesn't exist.\n */\nasync function addUserDoc(emailOrId: string, newDocFn: () => PlatformUser) {\n const db = getPlatformDB()\n let user: PlatformUser\n\n try {\n await db.get(emailOrId)\n } catch (e: any) {\n if (e.status === 404) {\n user = newDocFn()\n await db.put(user)\n } else {\n throw e\n }\n }\n}\n\nexport async function addUser(tenantId: string, userId: string, email: string) {\n await Promise.all([\n addUserDoc(userId, () => newUserIdDoc(userId, tenantId)),\n addUserDoc(email, () => newUserEmailDoc(userId, email, tenantId)),\n ])\n}\n\n// DELETE\n\nexport async function removeUser(user: User) {\n const db = getPlatformDB()\n const keys = [user._id!, user.email]\n const userDocs = await db.allDocs({\n keys,\n include_docs: true,\n })\n const toDelete = userDocs.rows.map((row: any) => {\n return {\n ...row.doc,\n _deleted: true,\n }\n })\n await db.bulkDocs(toDelete)\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA8B;AAC9B,uBAAkC;AAClC,yBAAgB;AAUhB,eAAsB,eAAe,QAAgB;AACnD,MAAI,CAAC,mBAAAA,QAAI,eAAe;AACtB,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,MAAM,WAAW,MAAM;AACpC,SAAO,KAAK;AACd;AAEA,eAAe,WAAW,WAA0C;AAClE,QAAM,SAAK,iCAAc;AACzB,SAAO,GAAG,IAAI,SAAS;AACzB;AAIA,SAAS,aAAa,IAAY,UAAoC;AACpE,SAAO;AAAA,IACL,KAAK;AAAA,IACL;AAAA,EACF;AACF;AAEA,SAAS,gBACP,QACA,OACA,UACqB;AACrB,SAAO;AAAA,IACL,KAAK;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAKA,eAAe,WAAW,WAAmB,UAA8B;AACzE,QAAM,SAAK,iCAAc;AACzB,MAAI;AAEJ,MAAI;AACF,UAAM,GAAG,IAAI,SAAS;AAAA,EACxB,SAAS,GAAQ;AACf,QAAI,EAAE,WAAW,KAAK;AACpB,aAAO,SAAS;AAChB,YAAM,GAAG,IAAI,IAAI;AAAA,IACnB,OAAO;AACL,YAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,eAAsB,QAAQ,UAAkB,QAAgB,OAAe;AAC7E,QAAM,QAAQ,IAAI;AAAA,IAChB,WAAW,QAAQ,MAAM,aAAa,QAAQ,QAAQ,CAAC;AAAA,IACvD,WAAW,OAAO,MAAM,gBAAgB,QAAQ,OAAO,QAAQ,CAAC;AAAA,EAClE,CAAC;AACH;AAIA,eAAsB,WAAW,MAAY;AAC3C,QAAM,SAAK,iCAAc;AACzB,QAAM,OAAO,CAAC,KAAK,KAAM,KAAK,KAAK;AACnC,QAAM,WAAW,MAAM,GAAG,QAAQ;AAAA,IAChC;AAAA,IACA,cAAc;AAAA,EAChB,CAAC;AACD,QAAM,WAAW,SAAS,KAAK,IAAI,CAAC,QAAa;AAC/C,WAAO;AAAA,MACL,GAAG,IAAI;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,EACF,CAAC;AACD,QAAM,GAAG,SAAS,QAAQ;AAC5B;",
|
|
6
|
+
"names": ["env"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var plugin_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(plugin_exports);
|
|
18
|
+
__reExport(plugin_exports, require("./utils"), module.exports);
|
|
19
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
20
|
+
0 && (module.exports = {
|
|
21
|
+
...require("./utils")
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var import_utils = require("../utils");
|
|
25
|
+
var import_node_fetch = __toESM(require("node-fetch"));
|
|
26
|
+
var import_types = require("@budibase/types");
|
|
27
|
+
const repoUrl = "https://raw.githubusercontent.com/Budibase/budibase-skeleton/master";
|
|
28
|
+
const automationLink = `${repoUrl}/automation/schema.json.hbs`;
|
|
29
|
+
const componentLink = `${repoUrl}/component/schema.json.hbs`;
|
|
30
|
+
const datasourceLink = `${repoUrl}/datasource/schema.json.hbs`;
|
|
31
|
+
async function getSchema(link) {
|
|
32
|
+
const response = await (0, import_node_fetch.default)(link);
|
|
33
|
+
if (response.status > 300) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const text = await response.text();
|
|
37
|
+
return JSON.parse(text);
|
|
38
|
+
}
|
|
39
|
+
async function runTest(opts) {
|
|
40
|
+
let error;
|
|
41
|
+
try {
|
|
42
|
+
let schema = opts.schema;
|
|
43
|
+
if (opts.link) {
|
|
44
|
+
schema = await getSchema(opts.link);
|
|
45
|
+
}
|
|
46
|
+
(0, import_utils.validate)(schema);
|
|
47
|
+
} catch (err) {
|
|
48
|
+
error = err;
|
|
49
|
+
}
|
|
50
|
+
return error;
|
|
51
|
+
}
|
|
52
|
+
describe("it should be able to validate an automation schema", () => {
|
|
53
|
+
it("should return automation skeleton schema is valid", async () => {
|
|
54
|
+
const error = await runTest({ link: automationLink });
|
|
55
|
+
expect(error).toBeUndefined();
|
|
56
|
+
});
|
|
57
|
+
it("should fail given invalid automation schema", async () => {
|
|
58
|
+
const error = await runTest({
|
|
59
|
+
schema: {
|
|
60
|
+
type: import_types.PluginType.AUTOMATION,
|
|
61
|
+
schema: {}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
expect(error).toBeDefined();
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe("it should be able to validate a component schema", () => {
|
|
68
|
+
it("should return component skeleton schema is valid", async () => {
|
|
69
|
+
const error = await runTest({ link: componentLink });
|
|
70
|
+
expect(error).toBeUndefined();
|
|
71
|
+
});
|
|
72
|
+
it("should fail given invalid component schema", async () => {
|
|
73
|
+
const error = await runTest({
|
|
74
|
+
schema: {
|
|
75
|
+
type: import_types.PluginType.COMPONENT,
|
|
76
|
+
schema: {}
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
expect(error).toBeDefined();
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
describe("it should be able to validate a datasource schema", () => {
|
|
83
|
+
it("should return datasource skeleton schema is valid", async () => {
|
|
84
|
+
const error = await runTest({ link: datasourceLink });
|
|
85
|
+
expect(error).toBeUndefined();
|
|
86
|
+
});
|
|
87
|
+
it("should fail given invalid datasource schema", async () => {
|
|
88
|
+
const error = await runTest({
|
|
89
|
+
schema: {
|
|
90
|
+
type: import_types.PluginType.DATASOURCE,
|
|
91
|
+
schema: {}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
expect(error).toBeDefined();
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=validation.spec.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/plugin/tests/validation.spec.ts"],
|
|
4
|
+
"sourcesContent": ["import { validate } from \"../utils\"\nimport fetch from \"node-fetch\"\nimport { PluginType } from \"@budibase/types\"\n\nconst repoUrl =\n \"https://raw.githubusercontent.com/Budibase/budibase-skeleton/master\"\nconst automationLink = `${repoUrl}/automation/schema.json.hbs`\nconst componentLink = `${repoUrl}/component/schema.json.hbs`\nconst datasourceLink = `${repoUrl}/datasource/schema.json.hbs`\n\nasync function getSchema(link: string) {\n const response = await fetch(link)\n if (response.status > 300) {\n return\n }\n const text = await response.text()\n return JSON.parse(text)\n}\n\nasync function runTest(opts: { link?: string; schema?: any }) {\n let error\n try {\n let schema = opts.schema\n if (opts.link) {\n schema = await getSchema(opts.link)\n }\n validate(schema)\n } catch (err) {\n error = err\n }\n return error\n}\n\ndescribe(\"it should be able to validate an automation schema\", () => {\n it(\"should return automation skeleton schema is valid\", async () => {\n const error = await runTest({ link: automationLink })\n expect(error).toBeUndefined()\n })\n\n it(\"should fail given invalid automation schema\", async () => {\n const error = await runTest({\n schema: {\n type: PluginType.AUTOMATION,\n schema: {},\n },\n })\n expect(error).toBeDefined()\n })\n})\n\ndescribe(\"it should be able to validate a component schema\", () => {\n it(\"should return component skeleton schema is valid\", async () => {\n const error = await runTest({ link: componentLink })\n expect(error).toBeUndefined()\n })\n\n it(\"should fail given invalid component schema\", async () => {\n const error = await runTest({\n schema: {\n type: PluginType.COMPONENT,\n schema: {},\n },\n })\n expect(error).toBeDefined()\n })\n})\n\ndescribe(\"it should be able to validate a datasource schema\", () => {\n it(\"should return datasource skeleton schema is valid\", async () => {\n const error = await runTest({ link: datasourceLink })\n expect(error).toBeUndefined()\n })\n\n it(\"should fail given invalid datasource schema\", async () => {\n const error = await runTest({\n schema: {\n type: PluginType.DATASOURCE,\n schema: {},\n },\n })\n expect(error).toBeDefined()\n })\n})\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,mBAAyB;AACzB,wBAAkB;AAClB,mBAA2B;AAE3B,MAAM,UACJ;AACF,MAAM,iBAAiB,GAAG,OAAO;AACjC,MAAM,gBAAgB,GAAG,OAAO;AAChC,MAAM,iBAAiB,GAAG,OAAO;AAEjC,eAAe,UAAU,MAAc;AACrC,QAAM,WAAW,UAAM,kBAAAA,SAAM,IAAI;AACjC,MAAI,SAAS,SAAS,KAAK;AACzB;AAAA,EACF;AACA,QAAM,OAAO,MAAM,SAAS,KAAK;AACjC,SAAO,KAAK,MAAM,IAAI;AACxB;AAEA,eAAe,QAAQ,MAAuC;AAC5D,MAAI;AACJ,MAAI;AACF,QAAI,SAAS,KAAK;AAClB,QAAI,KAAK,MAAM;AACb,eAAS,MAAM,UAAU,KAAK,IAAI;AAAA,IACpC;AACA,+BAAS,MAAM;AAAA,EACjB,SAAS,KAAK;AACZ,YAAQ;AAAA,EACV;AACA,SAAO;AACT;AAEA,SAAS,sDAAsD,MAAM;AACnE,KAAG,qDAAqD,YAAY;AAClE,UAAM,QAAQ,MAAM,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,WAAO,KAAK,EAAE,cAAc;AAAA,EAC9B,CAAC;AAED,KAAG,+CAA+C,YAAY;AAC5D,UAAM,QAAQ,MAAM,QAAQ;AAAA,MAC1B,QAAQ;AAAA,QACN,MAAM,wBAAW;AAAA,QACjB,QAAQ,CAAC;AAAA,MACX;AAAA,IACF,CAAC;AACD,WAAO,KAAK,EAAE,YAAY;AAAA,EAC5B,CAAC;AACH,CAAC;AAED,SAAS,oDAAoD,MAAM;AACjE,KAAG,oDAAoD,YAAY;AACjE,UAAM,QAAQ,MAAM,QAAQ,EAAE,MAAM,cAAc,CAAC;AACnD,WAAO,KAAK,EAAE,cAAc;AAAA,EAC9B,CAAC;AAED,KAAG,8CAA8C,YAAY;AAC3D,UAAM,QAAQ,MAAM,QAAQ;AAAA,MAC1B,QAAQ;AAAA,QACN,MAAM,wBAAW;AAAA,QACjB,QAAQ,CAAC;AAAA,MACX;AAAA,IACF,CAAC;AACD,WAAO,KAAK,EAAE,YAAY;AAAA,EAC5B,CAAC;AACH,CAAC;AAED,SAAS,qDAAqD,MAAM;AAClE,KAAG,qDAAqD,YAAY;AAClE,UAAM,QAAQ,MAAM,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,WAAO,KAAK,EAAE,cAAc;AAAA,EAC9B,CAAC;AAED,KAAG,+CAA+C,YAAY;AAC5D,UAAM,QAAQ,MAAM,QAAQ;AAAA,MAC1B,QAAQ;AAAA,QACN,MAAM,wBAAW;AAAA,QACjB,QAAQ,CAAC;AAAA,MACX;AAAA,IACF,CAAC;AACD,WAAO,KAAK,EAAE,YAAY;AAAA,EAC5B,CAAC;AACH,CAAC;",
|
|
6
|
+
"names": ["fetch"]
|
|
7
|
+
}
|