@gitpod/gitpod-protocol 0.1.5-main.648 → 0.1.5-main.6480
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/data/gitpod-schema.json +157 -29
- package/lib/accounting-protocol.d.ts +19 -14
- package/lib/accounting-protocol.d.ts.map +1 -1
- package/lib/accounting-protocol.js +44 -48
- package/lib/accounting-protocol.js.map +1 -1
- package/lib/admin-protocol.d.ts +44 -5
- package/lib/admin-protocol.d.ts.map +1 -1
- package/lib/admin-protocol.js +16 -1
- package/lib/admin-protocol.js.map +1 -1
- package/lib/analytics.d.ts +44 -0
- package/lib/analytics.d.ts.map +1 -0
- package/lib/analytics.js +10 -0
- package/lib/analytics.js.map +1 -0
- package/lib/attribution.d.ts +24 -0
- package/lib/attribution.d.ts.map +1 -0
- package/lib/attribution.js +54 -0
- package/lib/attribution.js.map +1 -0
- package/lib/auth.d.ts +1 -1
- package/lib/auth.d.ts.map +1 -1
- package/lib/auth.js +1 -1
- package/lib/billing-mode.d.ts +45 -0
- package/lib/billing-mode.d.ts.map +1 -0
- package/lib/billing-mode.js +44 -0
- package/lib/billing-mode.js.map +1 -0
- package/lib/blocked-repositories-protocol.d.ts +13 -0
- package/lib/blocked-repositories-protocol.d.ts.map +1 -0
- package/lib/blocked-repositories-protocol.js +8 -0
- package/lib/blocked-repositories-protocol.js.map +1 -0
- package/lib/context-url.d.ts +30 -0
- package/lib/context-url.d.ts.map +1 -0
- package/lib/context-url.js +100 -0
- package/lib/context-url.js.map +1 -0
- package/lib/context-url.spec.d.ts +12 -0
- package/lib/context-url.spec.d.ts.map +1 -0
- package/lib/context-url.spec.js +81 -0
- package/lib/context-url.spec.js.map +1 -0
- package/lib/encryption/container-module.d.ts +1 -1
- package/lib/encryption/container-module.d.ts.map +1 -1
- package/lib/encryption/container-module.js +5 -5
- package/lib/encryption/container-module.js.map +1 -1
- package/lib/encryption/encryption-engine.d.ts +1 -1
- package/lib/encryption/encryption-engine.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.js +26 -27
- package/lib/encryption/encryption-engine.js.map +1 -1
- package/lib/encryption/encryption-engine.spec.d.ts +1 -1
- package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.spec.js +30 -38
- package/lib/encryption/encryption-engine.spec.js.map +1 -1
- package/lib/encryption/encryption-service.d.ts +1 -1
- package/lib/encryption/encryption-service.d.ts.map +1 -1
- package/lib/encryption/encryption-service.js +31 -45
- package/lib/encryption/encryption-service.js.map +1 -1
- package/lib/encryption/key-provider.d.ts +1 -1
- package/lib/encryption/key-provider.d.ts.map +1 -1
- package/lib/encryption/key-provider.js +32 -39
- package/lib/encryption/key-provider.js.map +1 -1
- package/lib/env.d.ts +1 -7
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +8 -28
- package/lib/env.js.map +1 -1
- package/lib/experiments/always-default.d.ts +8 -0
- package/lib/experiments/always-default.d.ts.map +1 -0
- package/lib/experiments/always-default.js +20 -0
- package/lib/experiments/always-default.js.map +1 -0
- package/lib/experiments/configcat-server.d.ts +10 -0
- package/lib/experiments/configcat-server.d.ts.map +1 -0
- package/lib/experiments/configcat-server.js +37 -0
- package/lib/experiments/configcat-server.js.map +1 -0
- package/lib/experiments/configcat.d.ts +21 -0
- package/lib/experiments/configcat.d.ts.map +1 -0
- package/lib/experiments/configcat.js +51 -0
- package/lib/experiments/configcat.js.map +1 -0
- package/lib/experiments/types.d.ts +22 -0
- package/lib/experiments/types.d.ts.map +1 -0
- package/lib/experiments/types.js +10 -0
- package/lib/experiments/types.js.map +1 -0
- package/lib/frontend-dashboard-service.d.ts +90 -0
- package/lib/frontend-dashboard-service.d.ts.map +1 -0
- package/lib/frontend-dashboard-service.js +49 -0
- package/lib/frontend-dashboard-service.js.map +1 -0
- package/lib/gitpod-file-parser.d.ts +1 -1
- package/lib/gitpod-file-parser.d.ts.map +1 -1
- package/lib/gitpod-file-parser.js +27 -43
- package/lib/gitpod-file-parser.js.map +1 -1
- package/lib/gitpod-file-parser.spec.d.ts +1 -1
- package/lib/gitpod-file-parser.spec.js +146 -143
- package/lib/gitpod-file-parser.spec.js.map +1 -1
- package/lib/gitpod-service.d.ts +191 -55
- package/lib/gitpod-service.d.ts.map +1 -1
- package/lib/gitpod-service.js +204 -298
- package/lib/gitpod-service.js.map +1 -1
- package/lib/headless-workspace-log.d.ts +10 -12
- package/lib/headless-workspace-log.d.ts.map +1 -1
- package/lib/headless-workspace-log.js +7 -9
- package/lib/headless-workspace-log.js.map +1 -1
- package/lib/ide-frontend-service.d.ts +2 -2
- package/lib/ide-frontend-service.js +1 -1
- package/lib/ide-protocol.d.ts +126 -0
- package/lib/ide-protocol.d.ts.map +1 -0
- package/lib/ide-protocol.js +18 -0
- package/lib/ide-protocol.js.map +1 -0
- package/lib/index.d.ts +17 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -2
- package/lib/index.js.map +1 -1
- package/lib/installation-admin-protocol.d.ts +30 -0
- package/lib/installation-admin-protocol.d.ts.map +1 -0
- package/lib/installation-admin-protocol.js +31 -0
- package/lib/installation-admin-protocol.js.map +1 -0
- package/lib/license-protocol.d.ts +8 -1
- package/lib/license-protocol.d.ts.map +1 -1
- package/lib/license-protocol.js +1 -1
- package/lib/license-protocol.js.map +1 -1
- package/lib/messaging/browser/connection.d.ts +4 -6
- package/lib/messaging/browser/connection.d.ts.map +1 -1
- package/lib/messaging/browser/connection.js +176 -45
- package/lib/messaging/browser/connection.js.map +1 -1
- package/lib/messaging/browser/window-connection.d.ts +5 -5
- package/lib/messaging/browser/window-connection.d.ts.map +1 -1
- package/lib/messaging/browser/window-connection.js +43 -60
- package/lib/messaging/browser/window-connection.js.map +1 -1
- package/lib/messaging/client-call-metrics.d.ts +21 -0
- package/lib/messaging/client-call-metrics.d.ts.map +1 -0
- package/lib/messaging/client-call-metrics.js +95 -0
- package/lib/messaging/client-call-metrics.js.map +1 -0
- package/lib/messaging/error.d.ts +13 -3
- package/lib/messaging/error.d.ts.map +1 -1
- package/lib/messaging/error.js +25 -5
- package/lib/messaging/error.js.map +1 -1
- package/lib/messaging/handler.d.ts +10 -0
- package/lib/messaging/handler.d.ts.map +1 -1
- package/lib/messaging/handler.js +1 -1
- package/lib/messaging/node/connection.d.ts +1 -17
- package/lib/messaging/node/connection.d.ts.map +1 -1
- package/lib/messaging/node/connection.js +24 -60
- package/lib/messaging/node/connection.js.map +1 -1
- package/lib/messaging/proxy-factory.d.ts +3 -1
- package/lib/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/messaging/proxy-factory.js +75 -162
- package/lib/messaging/proxy-factory.js.map +1 -1
- package/lib/oss-allowlist.d.ts +14 -0
- package/lib/oss-allowlist.d.ts.map +1 -0
- package/lib/oss-allowlist.js +8 -0
- package/lib/oss-allowlist.js.map +1 -0
- package/lib/payment-protocol.d.ts +1 -1
- package/lib/payment-protocol.d.ts.map +1 -1
- package/lib/payment-protocol.js +2 -2
- package/lib/payment-protocol.js.map +1 -1
- package/lib/permission.d.ts +14 -4
- package/lib/permission.d.ts.map +1 -1
- package/lib/permission.js +45 -32
- package/lib/permission.js.map +1 -1
- package/lib/plans.d.ts +6 -5
- package/lib/plans.d.ts.map +1 -1
- package/lib/plans.js +230 -210
- package/lib/plans.js.map +1 -1
- package/lib/protocol.d.ts +261 -105
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +346 -205
- package/lib/protocol.js.map +1 -1
- package/{src/util/without.ts → lib/protocol.spec.d.ts} +3 -4
- package/lib/protocol.spec.d.ts.map +1 -0
- package/lib/protocol.spec.js +127 -0
- package/lib/protocol.spec.js.map +1 -0
- package/lib/snapshot-url.d.ts +14 -0
- package/lib/snapshot-url.d.ts.map +1 -0
- package/lib/snapshot-url.js +26 -0
- package/lib/snapshot-url.js.map +1 -0
- package/lib/snapshot-url.spec.d.ts +7 -0
- package/lib/snapshot-url.spec.d.ts.map +1 -0
- package/lib/snapshot-url.spec.js +41 -0
- package/lib/snapshot-url.spec.js.map +1 -0
- package/lib/team-subscription-protocol.d.ts +24 -5
- package/lib/team-subscription-protocol.d.ts.map +1 -1
- package/lib/team-subscription-protocol.js +36 -18
- package/lib/team-subscription-protocol.js.map +1 -1
- package/lib/teams-projects-protocol.d.ts +137 -0
- package/lib/teams-projects-protocol.d.ts.map +1 -0
- package/lib/teams-projects-protocol.js +41 -0
- package/lib/teams-projects-protocol.js.map +1 -0
- package/lib/typings/globals.d.ts +3 -3
- package/lib/typings/globals.d.ts.map +1 -1
- package/lib/typings/globals.js +1 -1
- package/lib/usage.d.ts +73 -0
- package/lib/usage.d.ts.map +1 -0
- package/lib/usage.js +20 -0
- package/lib/usage.js.map +1 -0
- package/lib/util/analytics.d.ts +8 -0
- package/lib/util/analytics.d.ts.map +1 -0
- package/lib/util/analytics.js +88 -0
- package/lib/util/analytics.js.map +1 -0
- package/lib/util/async-iterator.d.ts +1 -1
- package/lib/util/async-iterator.d.ts.map +1 -1
- package/lib/util/async-iterator.js +58 -136
- package/lib/util/async-iterator.js.map +1 -1
- package/lib/util/cancelable.d.ts +1 -1
- package/lib/util/cancelable.js +18 -60
- package/lib/util/cancelable.js.map +1 -1
- package/lib/util/date-time.d.ts +1 -1
- package/lib/util/date-time.js +12 -12
- package/lib/util/date-time.js.map +1 -1
- package/lib/util/debug-app.d.ts +25 -0
- package/lib/util/debug-app.d.ts.map +1 -0
- package/lib/util/debug-app.js +100 -0
- package/lib/util/debug-app.js.map +1 -0
- package/lib/util/deep-partial.d.ts +1 -1
- package/lib/util/deep-partial.js +1 -1
- package/lib/util/deferred.d.ts +1 -1
- package/lib/util/deferred.js +11 -13
- package/lib/util/deferred.js.map +1 -1
- package/lib/util/disposable.d.ts.map +1 -1
- package/lib/util/disposable.js +27 -40
- package/lib/util/disposable.js.map +1 -1
- package/lib/util/event.d.ts.map +1 -1
- package/lib/util/event.js +63 -77
- package/lib/util/event.js.map +1 -1
- package/lib/util/garbage-collected-cache.d.ts +2 -1
- package/lib/util/garbage-collected-cache.d.ts.map +1 -1
- package/lib/util/garbage-collected-cache.js +33 -48
- package/lib/util/garbage-collected-cache.js.map +1 -1
- package/lib/util/generate-workspace-id.d.ts +6 -1
- package/lib/util/generate-workspace-id.d.ts.map +1 -1
- package/lib/util/generate-workspace-id.js +469 -502
- package/lib/util/generate-workspace-id.js.map +1 -1
- package/lib/util/generate-workspace-id.spec.d.ts +1 -1
- package/lib/util/generate-workspace-id.spec.js +69 -79
- package/lib/util/generate-workspace-id.spec.js.map +1 -1
- package/lib/util/gitpod-cookie.d.ts +20 -0
- package/lib/util/gitpod-cookie.d.ts.map +1 -0
- package/lib/util/gitpod-cookie.js +41 -0
- package/lib/util/gitpod-cookie.js.map +1 -0
- package/lib/util/gitpod-host-url.d.ts +12 -7
- package/lib/util/gitpod-host-url.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.js +132 -110
- package/lib/util/gitpod-host-url.js.map +1 -1
- package/lib/util/gitpod-host-url.spec.d.ts +7 -1
- package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.spec.js +113 -31
- package/lib/util/gitpod-host-url.spec.js.map +1 -1
- package/lib/util/grpc.d.ts +35 -0
- package/lib/util/grpc.d.ts.map +1 -0
- package/lib/util/grpc.js +90 -0
- package/lib/util/grpc.js.map +1 -0
- package/lib/util/jaeger-client-types.d.ts +68 -0
- package/lib/util/jaeger-client-types.d.ts.map +1 -0
- package/lib/{theia-plugins.js → util/jaeger-client-types.js} +2 -2
- package/lib/util/jaeger-client-types.js.map +1 -0
- package/lib/util/logging.d.ts +50 -34
- package/lib/util/logging.d.ts.map +1 -1
- package/lib/util/logging.js +133 -130
- package/lib/util/logging.js.map +1 -1
- package/lib/util/logging.spec.d.ts +7 -0
- package/lib/util/logging.spec.d.ts.map +1 -0
- package/lib/util/logging.spec.js +52 -0
- package/lib/util/logging.spec.js.map +1 -0
- package/lib/util/make-link.d.ts +1 -1
- package/lib/util/make-link.js +6 -6
- package/lib/util/make-link.js.map +1 -1
- package/lib/util/nice-grpc.d.ts +9 -0
- package/lib/util/nice-grpc.d.ts.map +1 -0
- package/lib/util/nice-grpc.js +121 -0
- package/lib/util/nice-grpc.js.map +1 -0
- package/lib/util/parse-workspace-id.d.ts +11 -1
- package/lib/util/parse-workspace-id.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.js +31 -8
- package/lib/util/parse-workspace-id.js.map +1 -1
- package/lib/util/parse-workspace-id.spec.d.ts +5 -1
- package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.spec.js +124 -85
- package/lib/util/parse-workspace-id.spec.js.map +1 -1
- package/lib/util/queue.d.ts +1 -1
- package/lib/util/queue.js +17 -56
- package/lib/util/queue.js.map +1 -1
- package/lib/util/queue.spec.d.ts +1 -1
- package/lib/util/queue.spec.js +148 -289
- package/lib/util/queue.spec.js.map +1 -1
- package/lib/util/repeat.d.ts +15 -0
- package/lib/util/repeat.d.ts.map +1 -0
- package/lib/util/repeat.js +55 -0
- package/lib/util/repeat.js.map +1 -0
- package/lib/util/semaphore.d.ts +1 -1
- package/lib/util/semaphore.d.ts.map +1 -1
- package/lib/util/semaphore.js +16 -47
- package/lib/util/semaphore.js.map +1 -1
- package/lib/util/skip-if.d.ts +1 -1
- package/lib/util/skip-if.d.ts.map +1 -1
- package/lib/util/skip-if.js +7 -7
- package/lib/util/skip-if.js.map +1 -1
- package/lib/util/timeutil.d.ts +3 -1
- package/lib/util/timeutil.d.ts.map +1 -1
- package/lib/util/timeutil.js +30 -18
- package/lib/util/timeutil.js.map +1 -1
- package/lib/util/timeutil.spec.d.ts +3 -1
- package/lib/util/timeutil.spec.d.ts.map +1 -1
- package/lib/util/timeutil.spec.js +55 -24
- package/lib/util/timeutil.spec.js.map +1 -1
- package/lib/util/tracing.d.ts +53 -7
- package/lib/util/tracing.d.ts.map +1 -1
- package/lib/util/tracing.js +198 -65
- package/lib/util/tracing.js.map +1 -1
- package/lib/util/tracing.spec.d.ts +7 -0
- package/lib/util/tracing.spec.d.ts.map +1 -0
- package/lib/util/tracing.spec.js +121 -0
- package/lib/util/tracing.spec.js.map +1 -0
- package/lib/util/workspace-port-authentication.d.ts +8 -8
- package/lib/util/workspace-port-authentication.d.ts.map +1 -1
- package/lib/util/workspace-port-authentication.js +10 -13
- package/lib/util/workspace-port-authentication.js.map +1 -1
- package/lib/webhook-event.d.ts +44 -0
- package/lib/webhook-event.d.ts.map +1 -0
- package/lib/webhook-event.js +8 -0
- package/lib/webhook-event.js.map +1 -0
- package/lib/workspace-class.d.ts +14 -0
- package/lib/workspace-class.d.ts.map +1 -0
- package/lib/workspace-class.js +8 -0
- package/lib/workspace-class.js.map +1 -0
- package/lib/workspace-cluster.d.ts +28 -8
- package/lib/workspace-cluster.d.ts.map +1 -1
- package/lib/workspace-cluster.js +20 -5
- package/lib/workspace-cluster.js.map +1 -1
- package/lib/workspace-instance.d.ts +46 -6
- package/lib/workspace-instance.d.ts.map +1 -1
- package/lib/workspace-instance.js +1 -1
- package/lib/wsready.d.ts +8 -2
- package/lib/wsready.d.ts.map +1 -1
- package/lib/wsready.js +3 -3
- package/package.json +40 -18
- package/pkg-yarn.lock +23 -10
- package/provenance-bundle.jsonl +2 -0
- package/src/accounting-protocol.ts +67 -58
- package/src/admin-protocol.ts +88 -20
- package/src/analytics.ts +52 -0
- package/src/attribution.ts +63 -0
- package/src/auth.ts +3 -3
- package/src/billing-mode.ts +84 -0
- package/src/blocked-repositories-protocol.ts +13 -0
- package/src/context-url.spec.ts +49 -0
- package/src/context-url.ts +107 -0
- package/src/encryption/container-module.ts +3 -4
- package/src/encryption/encryption-engine.spec.ts +10 -9
- package/src/encryption/encryption-engine.ts +21 -17
- package/src/encryption/encryption-service.ts +5 -6
- package/src/encryption/key-provider.ts +17 -20
- package/src/env.ts +2 -25
- package/src/experiments/always-default.ts +24 -0
- package/src/experiments/configcat-server.ts +42 -0
- package/src/experiments/configcat.ts +56 -0
- package/src/experiments/types.ts +34 -0
- package/src/frontend-dashboard-service.ts +125 -0
- package/src/gitpod-file-parser.spec.ts +56 -62
- package/src/gitpod-file-parser.ts +17 -18
- package/src/gitpod-service.ts +369 -146
- package/src/headless-workspace-log.ts +13 -15
- package/src/ide-frontend-service.ts +3 -3
- package/src/ide-protocol.ts +147 -0
- package/src/index.ts +17 -11
- package/src/installation-admin-protocol.ts +45 -0
- package/src/license-protocol.ts +13 -7
- package/src/messaging/browser/connection.ts +187 -28
- package/src/messaging/browser/window-connection.ts +40 -30
- package/src/messaging/client-call-metrics.ts +94 -0
- package/src/messaging/error.ts +36 -8
- package/src/messaging/handler.ts +13 -1
- package/src/messaging/node/connection.ts +23 -70
- package/src/messaging/proxy-factory.ts +35 -34
- package/src/oss-allowlist.ts +15 -0
- package/src/payment-protocol.ts +3 -3
- package/src/permission.ts +47 -34
- package/src/plans.ts +250 -199
- package/src/protocol.spec.ts +97 -0
- package/src/protocol.ts +636 -293
- package/src/snapshot-url.spec.ts +27 -0
- package/src/snapshot-url.ts +27 -0
- package/src/team-subscription-protocol.ts +62 -23
- package/src/teams-projects-protocol.ts +181 -0
- package/src/typings/globals.ts +6 -5
- package/src/usage.ts +85 -0
- package/src/util/analytics.ts +109 -0
- package/src/util/async-iterator.ts +5 -6
- package/src/util/cancelable.ts +4 -4
- package/src/util/date-time.ts +9 -9
- package/src/util/debug-app.ts +81 -0
- package/src/util/deep-partial.ts +1 -1
- package/src/util/deferred.ts +7 -7
- package/src/util/disposable.ts +3 -6
- package/src/util/event.ts +9 -11
- package/src/util/garbage-collected-cache.ts +17 -9
- package/src/util/generate-workspace-id.spec.ts +38 -11
- package/src/util/generate-workspace-id.ts +465 -439
- package/src/util/gitpod-cookie.ts +38 -0
- package/src/util/gitpod-host-url.spec.ts +59 -8
- package/src/util/gitpod-host-url.ts +88 -48
- package/src/util/grpc.ts +107 -0
- package/src/util/jaeger-client-types.ts +102 -0
- package/src/util/logging.spec.ts +23 -0
- package/src/util/logging.ts +157 -75
- package/src/util/make-link.ts +7 -8
- package/src/util/nice-grpc.ts +96 -0
- package/src/util/parse-workspace-id.spec.ts +38 -9
- package/src/util/parse-workspace-id.ts +33 -8
- package/src/util/queue.spec.ts +28 -26
- package/src/util/queue.ts +1 -1
- package/src/util/repeat.ts +45 -0
- package/src/util/semaphore.ts +7 -9
- package/src/util/skip-if.ts +11 -8
- package/src/util/timeutil.spec.ts +41 -15
- package/src/util/timeutil.ts +32 -16
- package/src/util/tracing.spec.ts +88 -0
- package/src/util/tracing.ts +201 -32
- package/src/util/workspace-port-authentication.ts +11 -14
- package/src/webhook-event.ts +55 -0
- package/src/workspace-class.ts +14 -0
- package/src/workspace-cluster.ts +47 -17
- package/src/workspace-instance.ts +106 -32
- package/src/wsready.ts +11 -4
- package/data/builtin-theia-plugins.json +0 -372
- package/lib/email-protocol.d.ts +0 -50
- package/lib/email-protocol.d.ts.map +0 -1
- package/lib/email-protocol.js +0 -28
- package/lib/email-protocol.js.map +0 -1
- package/lib/messaging/connection-error-handler.d.ts +0 -27
- package/lib/messaging/connection-error-handler.d.ts.map +0 -1
- package/lib/messaging/connection-error-handler.js +0 -46
- package/lib/messaging/connection-error-handler.js.map +0 -1
- package/lib/theia-plugins.d.ts +0 -11
- package/lib/theia-plugins.d.ts.map +0 -1
- package/lib/theia-plugins.js.map +0 -1
- package/lib/util/context-url.d.ts +0 -13
- package/lib/util/context-url.d.ts.map +0 -1
- package/lib/util/context-url.js +0 -26
- package/lib/util/context-url.js.map +0 -1
- package/lib/util/context-url.spec.d.ts +0 -10
- package/lib/util/context-url.spec.d.ts.map +0 -1
- package/lib/util/context-url.spec.js +0 -52
- package/lib/util/context-url.spec.js.map +0 -1
- package/lib/util/repeater.d.ts +0 -22
- package/lib/util/repeater.d.ts.map +0 -1
- package/lib/util/repeater.js +0 -118
- package/lib/util/repeater.js.map +0 -1
- package/lib/util/safe-promise.d.ts +0 -11
- package/lib/util/safe-promise.d.ts.map +0 -1
- package/lib/util/safe-promise.js +0 -34
- package/lib/util/safe-promise.js.map +0 -1
- package/lib/util/without.d.ts +0 -7
- package/lib/util/without.d.ts.map +0 -1
- package/lib/util/without.js +0 -8
- package/lib/util/without.js.map +0 -1
- package/src/email-protocol.ts +0 -67
- package/src/messaging/connection-error-handler.ts +0 -62
- package/src/theia-plugins.ts +0 -11
- package/src/util/context-url.spec.ts +0 -25
- package/src/util/context-url.ts +0 -23
- package/src/util/jaeger-client.d.ts +0 -105
- package/src/util/repeater.ts +0 -49
- package/src/util/safe-promise.ts +0 -26
package/lib/plans.js
CHANGED
|
@@ -2,82 +2,62 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Copyright (c) 2021 Gitpod GmbH. All rights reserved.
|
|
4
4
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
5
|
-
* See License
|
|
5
|
+
* See License.AGPL.txt in the project root for license information.
|
|
6
6
|
*/
|
|
7
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
8
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
9
|
-
if (!m) return o;
|
|
10
|
-
var i = m.call(o), r, ar = [], e;
|
|
11
|
-
try {
|
|
12
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
13
|
-
}
|
|
14
|
-
catch (error) { e = { error: error }; }
|
|
15
|
-
finally {
|
|
16
|
-
try {
|
|
17
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
18
|
-
}
|
|
19
|
-
finally { if (e) throw e.error; }
|
|
20
|
-
}
|
|
21
|
-
return ar;
|
|
22
|
-
};
|
|
23
|
-
var __spread = (this && this.__spread) || function () {
|
|
24
|
-
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
25
|
-
return ar;
|
|
26
|
-
};
|
|
27
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
8
|
exports.Plans = exports.ABSOLUTE_MAX_USAGE = exports.Coupons = exports.Coupon = exports.MAX_PARALLEL_WORKSPACES = exports.Plan = exports.Currency = void 0;
|
|
29
9
|
var Currency;
|
|
30
10
|
(function (Currency) {
|
|
31
|
-
Currency.getAll =
|
|
32
|
-
return [
|
|
11
|
+
Currency.getAll = () => {
|
|
12
|
+
return ["USD", "EUR"];
|
|
33
13
|
};
|
|
34
|
-
Currency.getSymbol =
|
|
35
|
-
return c ===
|
|
14
|
+
Currency.getSymbol = (c) => {
|
|
15
|
+
return c === "USD" ? "$" : "€";
|
|
36
16
|
};
|
|
37
17
|
})(Currency = exports.Currency || (exports.Currency = {}));
|
|
38
18
|
var Plan;
|
|
39
19
|
(function (Plan) {
|
|
40
|
-
Plan.is =
|
|
41
|
-
return
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
20
|
+
Plan.is = (o) => {
|
|
21
|
+
return ("chargebeeId" in o &&
|
|
22
|
+
"name" in o &&
|
|
23
|
+
"currency" in o &&
|
|
24
|
+
"pricePerMonth" in o &&
|
|
25
|
+
"hoursPerMonth" in o &&
|
|
26
|
+
"type" in o);
|
|
47
27
|
};
|
|
48
28
|
})(Plan = exports.Plan || (exports.Plan = {}));
|
|
49
29
|
exports.MAX_PARALLEL_WORKSPACES = 16;
|
|
50
30
|
var Coupon;
|
|
51
31
|
(function (Coupon) {
|
|
52
|
-
Coupon.is =
|
|
53
|
-
return
|
|
32
|
+
Coupon.is = (o) => {
|
|
33
|
+
return "id" in o;
|
|
54
34
|
};
|
|
55
35
|
})(Coupon = exports.Coupon || (exports.Coupon = {}));
|
|
56
36
|
var Coupons;
|
|
57
37
|
(function (Coupons) {
|
|
58
38
|
Coupons.INTERNAL_GITPOD_GHSP = {
|
|
59
39
|
id: "INTERNAL_GITPOD_GHSP",
|
|
60
|
-
isGithubStudentCoupon: true
|
|
40
|
+
isGithubStudentCoupon: true,
|
|
61
41
|
};
|
|
62
42
|
Coupons.INTERNAL_GITPOD_GHSP_2 = {
|
|
63
43
|
id: "INTERNAL_GITPOD_GHSP_2",
|
|
64
|
-
isGithubStudentCoupon: true
|
|
44
|
+
isGithubStudentCoupon: true,
|
|
65
45
|
};
|
|
66
46
|
Coupons.GITHUBSTUDENTPACKFORFACULTY = {
|
|
67
47
|
id: "GITHUBSTUDENTPACKFORFACULTY",
|
|
68
|
-
isGithubStudentCoupon: true
|
|
48
|
+
isGithubStudentCoupon: true,
|
|
69
49
|
};
|
|
70
|
-
Coupons.isGithubStudentCoupon =
|
|
71
|
-
|
|
50
|
+
Coupons.isGithubStudentCoupon = (id) => {
|
|
51
|
+
const c = Coupons.getAllCoupons().find((ic) => ic.id === id);
|
|
72
52
|
if (!c) {
|
|
73
53
|
return undefined;
|
|
74
54
|
}
|
|
75
55
|
return !!c.isGithubStudentCoupon;
|
|
76
56
|
};
|
|
77
|
-
Coupons.getAllCoupons =
|
|
57
|
+
Coupons.getAllCoupons = () => {
|
|
78
58
|
return Object.keys(Coupons)
|
|
79
|
-
.map(
|
|
80
|
-
.filter(
|
|
59
|
+
.map((k) => Coupons[k])
|
|
60
|
+
.filter((a) => typeof a === "object" && Coupon.is(a));
|
|
81
61
|
};
|
|
82
62
|
})(Coupons = exports.Coupons || (exports.Coupons = {}));
|
|
83
63
|
// Theoretical maximum of workspace hours: 16 workspaces for 24h a day for 31 days as permitted by the v3 unlimited plan
|
|
@@ -115,249 +95,249 @@ var Plans;
|
|
|
115
95
|
* The old default plan (v1): 100h hours for public repos
|
|
116
96
|
*/
|
|
117
97
|
Plans.FREE = {
|
|
118
|
-
chargebeeId:
|
|
98
|
+
chargebeeId: "free",
|
|
119
99
|
githubId: 2034,
|
|
120
100
|
githubPlanNumber: 1,
|
|
121
|
-
type:
|
|
122
|
-
name:
|
|
123
|
-
currency:
|
|
101
|
+
type: "free",
|
|
102
|
+
name: "Free",
|
|
103
|
+
currency: "USD",
|
|
124
104
|
pricePerMonth: 0,
|
|
125
|
-
hoursPerMonth: 100
|
|
105
|
+
hoursPerMonth: 100,
|
|
126
106
|
};
|
|
127
107
|
/**
|
|
128
108
|
* The new default plan (v3): 50h hours for public repos
|
|
129
109
|
*/
|
|
130
110
|
Plans.FREE_50 = {
|
|
131
|
-
chargebeeId:
|
|
111
|
+
chargebeeId: "free-50",
|
|
132
112
|
githubId: 4902,
|
|
133
113
|
githubPlanNumber: 5,
|
|
134
|
-
type:
|
|
135
|
-
name:
|
|
136
|
-
currency:
|
|
114
|
+
type: "free-50",
|
|
115
|
+
name: "Free",
|
|
116
|
+
currency: "USD",
|
|
137
117
|
pricePerMonth: 0,
|
|
138
|
-
hoursPerMonth: 50
|
|
118
|
+
hoursPerMonth: 50,
|
|
139
119
|
};
|
|
140
120
|
/**
|
|
141
121
|
* Users created after this date get the FREE_50 plan (v3) instead of the (old) FREE plan (v1)
|
|
142
122
|
*/
|
|
143
|
-
Plans.FREE_50_START_DATE =
|
|
123
|
+
Plans.FREE_50_START_DATE = "2019-12-19T00:00:00.000Z";
|
|
144
124
|
/**
|
|
145
125
|
* The 'Professional Open Source' plan was introduced to offer professional open-souce developers unlimited hours.
|
|
146
126
|
*/
|
|
147
127
|
Plans.FREE_OPEN_SOURCE = {
|
|
148
|
-
chargebeeId:
|
|
149
|
-
type:
|
|
150
|
-
name:
|
|
151
|
-
currency:
|
|
128
|
+
chargebeeId: "free-open-source",
|
|
129
|
+
type: "free-open-source",
|
|
130
|
+
name: "Professional Open Source",
|
|
131
|
+
currency: "USD",
|
|
152
132
|
pricePerMonth: 0,
|
|
153
|
-
hoursPerMonth:
|
|
133
|
+
hoursPerMonth: "unlimited",
|
|
154
134
|
};
|
|
155
135
|
/**
|
|
156
136
|
* The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
|
|
157
137
|
*/
|
|
158
138
|
Plans.PROFESSIONAL_STUDENT_EUR = {
|
|
159
|
-
chargebeeId:
|
|
160
|
-
type:
|
|
161
|
-
name:
|
|
162
|
-
currency:
|
|
139
|
+
chargebeeId: "professional-student-eur",
|
|
140
|
+
type: "student",
|
|
141
|
+
name: "Student Unleashed",
|
|
142
|
+
currency: "EUR",
|
|
163
143
|
pricePerMonth: 8,
|
|
164
|
-
hoursPerMonth:
|
|
144
|
+
hoursPerMonth: "unlimited",
|
|
165
145
|
};
|
|
166
146
|
/**
|
|
167
147
|
* The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
|
|
168
148
|
*/
|
|
169
149
|
Plans.PROFESSIONAL_STUDENT_USD = {
|
|
170
|
-
chargebeeId:
|
|
171
|
-
type:
|
|
172
|
-
name:
|
|
173
|
-
currency:
|
|
150
|
+
chargebeeId: "professional-student-usd",
|
|
151
|
+
type: "student",
|
|
152
|
+
name: "Student Unleashed",
|
|
153
|
+
currency: "USD",
|
|
174
154
|
pricePerMonth: 9,
|
|
175
|
-
hoursPerMonth:
|
|
155
|
+
hoursPerMonth: "unlimited",
|
|
176
156
|
};
|
|
177
157
|
/**
|
|
178
158
|
* The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
|
|
179
159
|
*/
|
|
180
160
|
Plans.TEAM_PROFESSIONAL_STUDENT_EUR = {
|
|
181
|
-
chargebeeId:
|
|
182
|
-
type:
|
|
183
|
-
name:
|
|
161
|
+
chargebeeId: "team-professional-student-eur",
|
|
162
|
+
type: "student",
|
|
163
|
+
name: "Team Student Unleashed",
|
|
184
164
|
team: true,
|
|
185
|
-
currency:
|
|
165
|
+
currency: "EUR",
|
|
186
166
|
pricePerMonth: 8,
|
|
187
|
-
hoursPerMonth:
|
|
167
|
+
hoursPerMonth: "unlimited",
|
|
188
168
|
};
|
|
189
169
|
/**
|
|
190
170
|
* The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
|
|
191
171
|
*/
|
|
192
172
|
Plans.TEAM_PROFESSIONAL_STUDENT_USD = {
|
|
193
|
-
chargebeeId:
|
|
194
|
-
type:
|
|
195
|
-
name:
|
|
173
|
+
chargebeeId: "team-professional-student-usd",
|
|
174
|
+
type: "student",
|
|
175
|
+
name: "Team Student Unleashed",
|
|
196
176
|
team: true,
|
|
197
|
-
currency:
|
|
177
|
+
currency: "USD",
|
|
198
178
|
pricePerMonth: 9,
|
|
199
|
-
hoursPerMonth:
|
|
179
|
+
hoursPerMonth: "unlimited",
|
|
200
180
|
};
|
|
201
181
|
/**
|
|
202
182
|
* The 'basic' plan was the original differentiator between FREE and Professional (v1) but got discarded soon.
|
|
203
183
|
*/
|
|
204
184
|
Plans.BASIC_EUR = {
|
|
205
|
-
chargebeeId:
|
|
206
|
-
type:
|
|
207
|
-
name:
|
|
208
|
-
currency:
|
|
185
|
+
chargebeeId: "basic-eur",
|
|
186
|
+
type: "basic",
|
|
187
|
+
name: "Standard",
|
|
188
|
+
currency: "EUR",
|
|
209
189
|
pricePerMonth: 17,
|
|
210
|
-
hoursPerMonth: 100
|
|
190
|
+
hoursPerMonth: 100,
|
|
211
191
|
};
|
|
212
192
|
/**
|
|
213
193
|
* The 'basic' plan was the original differentiator between FREE and Professional (v1) but got discarded soon.
|
|
214
194
|
*/
|
|
215
195
|
Plans.BASIC_USD = {
|
|
216
|
-
chargebeeId:
|
|
196
|
+
chargebeeId: "basic-usd",
|
|
217
197
|
githubId: 2035,
|
|
218
198
|
githubPlanNumber: 2,
|
|
219
|
-
type:
|
|
220
|
-
name:
|
|
221
|
-
currency:
|
|
199
|
+
type: "basic",
|
|
200
|
+
name: "Standard",
|
|
201
|
+
currency: "USD",
|
|
222
202
|
pricePerMonth: 19,
|
|
223
|
-
hoursPerMonth: 100
|
|
203
|
+
hoursPerMonth: 100,
|
|
224
204
|
};
|
|
225
205
|
/**
|
|
226
206
|
* The 'personal' plan was introduced to superseed the 'basic' plan (introduced with v2) to be more attractive to hobbyists.
|
|
227
207
|
*/
|
|
228
208
|
Plans.PERSONAL_EUR = {
|
|
229
|
-
chargebeeId:
|
|
230
|
-
type:
|
|
231
|
-
name:
|
|
232
|
-
currency:
|
|
209
|
+
chargebeeId: "personal-eur",
|
|
210
|
+
type: "personal",
|
|
211
|
+
name: "Personal",
|
|
212
|
+
currency: "EUR",
|
|
233
213
|
pricePerMonth: 8,
|
|
234
|
-
hoursPerMonth: 100
|
|
214
|
+
hoursPerMonth: 100,
|
|
235
215
|
};
|
|
236
216
|
/**
|
|
237
217
|
* The 'personal' plan was introduced to superseed the 'basic' plan (introduced with v2) to be more attractive to hobbyists.
|
|
238
218
|
*/
|
|
239
219
|
Plans.PERSONAL_USD = {
|
|
240
|
-
chargebeeId:
|
|
220
|
+
chargebeeId: "personal-usd",
|
|
241
221
|
githubId: 2274,
|
|
242
222
|
githubPlanNumber: 4,
|
|
243
|
-
type:
|
|
244
|
-
name:
|
|
245
|
-
currency:
|
|
223
|
+
type: "personal",
|
|
224
|
+
name: "Personal",
|
|
225
|
+
currency: "USD",
|
|
246
226
|
pricePerMonth: 9,
|
|
247
|
-
hoursPerMonth: 100
|
|
227
|
+
hoursPerMonth: 100,
|
|
248
228
|
};
|
|
249
229
|
/**
|
|
250
230
|
* This is the 'new' Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
|
|
251
231
|
* Unleashed (39$/35€) on the right.
|
|
252
232
|
*/
|
|
253
233
|
Plans.PROFESSIONAL_NEW_EUR = {
|
|
254
|
-
chargebeeId:
|
|
255
|
-
type:
|
|
256
|
-
name:
|
|
257
|
-
currency:
|
|
234
|
+
chargebeeId: "professional-new-eur",
|
|
235
|
+
type: "professional-new",
|
|
236
|
+
name: "Professional",
|
|
237
|
+
currency: "EUR",
|
|
258
238
|
pricePerMonth: 23,
|
|
259
|
-
hoursPerMonth:
|
|
239
|
+
hoursPerMonth: "unlimited",
|
|
260
240
|
};
|
|
261
241
|
/**
|
|
262
242
|
* This is the 'new' Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
|
|
263
243
|
* Unleashed (39$/35€) on the right.
|
|
264
244
|
*/
|
|
265
245
|
Plans.PROFESSIONAL_NEW_USD = {
|
|
266
|
-
chargebeeId:
|
|
267
|
-
type:
|
|
268
|
-
name:
|
|
269
|
-
currency:
|
|
246
|
+
chargebeeId: "professional-new-usd",
|
|
247
|
+
type: "professional-new",
|
|
248
|
+
name: "Professional",
|
|
249
|
+
currency: "USD",
|
|
270
250
|
pricePerMonth: 25,
|
|
271
|
-
hoursPerMonth:
|
|
251
|
+
hoursPerMonth: "unlimited",
|
|
272
252
|
};
|
|
273
253
|
/**
|
|
274
254
|
* This is the 'new' Team Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
|
|
275
255
|
* Unleashed (39$/35€) on the right.
|
|
276
256
|
*/
|
|
277
257
|
Plans.TEAM_PROFESSIONAL_NEW_EUR = {
|
|
278
|
-
chargebeeId:
|
|
279
|
-
type:
|
|
280
|
-
name:
|
|
281
|
-
currency:
|
|
258
|
+
chargebeeId: "team-professional-new-eur",
|
|
259
|
+
type: "professional-new",
|
|
260
|
+
name: "Team Professional",
|
|
261
|
+
currency: "EUR",
|
|
282
262
|
team: true,
|
|
283
263
|
pricePerMonth: 23,
|
|
284
|
-
hoursPerMonth:
|
|
264
|
+
hoursPerMonth: "unlimited",
|
|
285
265
|
};
|
|
286
266
|
/**
|
|
287
267
|
* This is the 'new' Team Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
|
|
288
268
|
* Unleashed (39$/35€) on the right.
|
|
289
269
|
*/
|
|
290
270
|
Plans.TEAM_PROFESSIONAL_NEW_USD = {
|
|
291
|
-
chargebeeId:
|
|
292
|
-
type:
|
|
293
|
-
name:
|
|
294
|
-
currency:
|
|
271
|
+
chargebeeId: "team-professional-new-usd",
|
|
272
|
+
type: "professional-new",
|
|
273
|
+
name: "Team Professional",
|
|
274
|
+
currency: "USD",
|
|
295
275
|
team: true,
|
|
296
276
|
pricePerMonth: 25,
|
|
297
|
-
hoursPerMonth:
|
|
277
|
+
hoursPerMonth: "unlimited",
|
|
298
278
|
};
|
|
299
279
|
/**
|
|
300
280
|
* This is the 'Unleashed' plan (v1, rebranded v2, v5)
|
|
301
281
|
* It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
|
|
302
282
|
*/
|
|
303
283
|
Plans.PROFESSIONAL_EUR = {
|
|
304
|
-
chargebeeId:
|
|
305
|
-
type:
|
|
306
|
-
name:
|
|
307
|
-
currency:
|
|
284
|
+
chargebeeId: "professional-eur",
|
|
285
|
+
type: "professional",
|
|
286
|
+
name: "Unleashed",
|
|
287
|
+
currency: "EUR",
|
|
308
288
|
pricePerMonth: 35,
|
|
309
|
-
hoursPerMonth:
|
|
289
|
+
hoursPerMonth: "unlimited",
|
|
310
290
|
};
|
|
311
291
|
/**
|
|
312
292
|
* This is the 'Unleashed' plan (v1, rebranded v2, v5)
|
|
313
293
|
* It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
|
|
314
294
|
*/
|
|
315
295
|
Plans.PROFESSIONAL_USD = {
|
|
316
|
-
chargebeeId:
|
|
296
|
+
chargebeeId: "professional-usd",
|
|
317
297
|
githubId: 2036,
|
|
318
298
|
githubPlanNumber: 3,
|
|
319
|
-
type:
|
|
320
|
-
name:
|
|
321
|
-
currency:
|
|
299
|
+
type: "professional",
|
|
300
|
+
name: "Unleashed",
|
|
301
|
+
currency: "USD",
|
|
322
302
|
pricePerMonth: 39,
|
|
323
|
-
hoursPerMonth:
|
|
303
|
+
hoursPerMonth: "unlimited",
|
|
324
304
|
};
|
|
325
305
|
/**
|
|
326
306
|
* This is the Team-'Unleashed' plan (v1, rebranded v2, v5)
|
|
327
307
|
* It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
|
|
328
308
|
*/
|
|
329
309
|
Plans.TEAM_PROFESSIONAL_USD = {
|
|
330
|
-
chargebeeId:
|
|
331
|
-
type:
|
|
332
|
-
name:
|
|
333
|
-
currency:
|
|
310
|
+
chargebeeId: "team-professional-usd",
|
|
311
|
+
type: "professional",
|
|
312
|
+
name: "Team Unleashed",
|
|
313
|
+
currency: "USD",
|
|
334
314
|
team: true,
|
|
335
315
|
pricePerMonth: 39,
|
|
336
|
-
hoursPerMonth:
|
|
316
|
+
hoursPerMonth: "unlimited",
|
|
337
317
|
};
|
|
338
318
|
/**
|
|
339
319
|
* This is the Team-'Unleashed' plan (v1, rebranded v2, v5)
|
|
340
320
|
* It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
|
|
341
321
|
*/
|
|
342
322
|
Plans.TEAM_PROFESSIONAL_EUR = {
|
|
343
|
-
chargebeeId:
|
|
344
|
-
type:
|
|
345
|
-
name:
|
|
346
|
-
currency:
|
|
323
|
+
chargebeeId: "team-professional-eur",
|
|
324
|
+
type: "professional",
|
|
325
|
+
name: "Team Unleashed",
|
|
326
|
+
currency: "EUR",
|
|
347
327
|
team: true,
|
|
348
328
|
pricePerMonth: 35,
|
|
349
|
-
hoursPerMonth:
|
|
329
|
+
hoursPerMonth: "unlimited",
|
|
350
330
|
};
|
|
351
|
-
|
|
331
|
+
const getAllPlans = () => {
|
|
352
332
|
return Object.keys(Plans)
|
|
353
|
-
.map(
|
|
354
|
-
.filter(
|
|
333
|
+
.map((k) => Plans[k])
|
|
334
|
+
.filter((a) => typeof a === "object" && Plan.is(a));
|
|
355
335
|
};
|
|
356
336
|
/**
|
|
357
337
|
* This function returns all individual plans that might be active (= we have subscriptions for) at the moment
|
|
358
338
|
*/
|
|
359
339
|
function getAvailablePlans(currency) {
|
|
360
|
-
|
|
340
|
+
const availablePaidPlans = [
|
|
361
341
|
Plans.BASIC_EUR,
|
|
362
342
|
Plans.BASIC_USD,
|
|
363
343
|
Plans.PERSONAL_EUR,
|
|
@@ -365,67 +345,70 @@ var Plans;
|
|
|
365
345
|
Plans.PROFESSIONAL_NEW_EUR,
|
|
366
346
|
Plans.PROFESSIONAL_NEW_USD,
|
|
367
347
|
Plans.PROFESSIONAL_EUR,
|
|
368
|
-
Plans.PROFESSIONAL_USD
|
|
348
|
+
Plans.PROFESSIONAL_USD,
|
|
369
349
|
];
|
|
370
|
-
return
|
|
371
|
-
Plans.FREE,
|
|
372
|
-
Plans.FREE_50,
|
|
373
|
-
Plans.FREE_OPEN_SOURCE
|
|
374
|
-
], availablePaidPlans.filter(function (p) { return p.currency; }));
|
|
350
|
+
return [Plans.FREE, Plans.FREE_50, Plans.FREE_OPEN_SOURCE, ...availablePaidPlans.filter((p) => p.currency)];
|
|
375
351
|
}
|
|
376
352
|
Plans.getAvailablePlans = getAvailablePlans;
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
return currency ? teamPlans.filter(function (p) { return p.currency === currency; }) : teamPlans;
|
|
353
|
+
Plans.getAvailableTeamPlans = (currency) => {
|
|
354
|
+
const teamPlans = getAllPlans().filter((p) => !!p.team);
|
|
355
|
+
return currency ? teamPlans.filter((p) => p.currency === currency) : teamPlans;
|
|
381
356
|
};
|
|
382
357
|
function getById(id) {
|
|
383
358
|
if (id === undefined) {
|
|
384
359
|
return undefined;
|
|
385
360
|
}
|
|
386
|
-
return getAllPlans()
|
|
387
|
-
.find(function (p) { return p.chargebeeId === id; }) || undefined;
|
|
361
|
+
return getAllPlans().find((p) => p.chargebeeId === id) || undefined;
|
|
388
362
|
}
|
|
389
363
|
Plans.getById = getById;
|
|
390
|
-
;
|
|
391
364
|
function getByTypeAndCurrency(type, currency) {
|
|
392
365
|
return getAllPlans()
|
|
393
|
-
.filter(
|
|
394
|
-
.find(
|
|
366
|
+
.filter((p) => p.type)
|
|
367
|
+
.find((p) => p.currency === currency);
|
|
395
368
|
}
|
|
396
369
|
Plans.getByTypeAndCurrency = getByTypeAndCurrency;
|
|
397
370
|
function getProPlan(currency) {
|
|
398
371
|
switch (currency) {
|
|
399
|
-
case "EUR":
|
|
400
|
-
|
|
372
|
+
case "EUR":
|
|
373
|
+
return Plans.PROFESSIONAL_EUR;
|
|
374
|
+
case "USD":
|
|
375
|
+
return Plans.PROFESSIONAL_USD;
|
|
401
376
|
}
|
|
402
377
|
}
|
|
403
378
|
Plans.getProPlan = getProPlan;
|
|
404
379
|
function getNewProPlan(currency) {
|
|
405
380
|
switch (currency) {
|
|
406
|
-
case "EUR":
|
|
407
|
-
|
|
381
|
+
case "EUR":
|
|
382
|
+
return Plans.PROFESSIONAL_NEW_EUR;
|
|
383
|
+
case "USD":
|
|
384
|
+
return Plans.PROFESSIONAL_NEW_USD;
|
|
408
385
|
}
|
|
409
386
|
}
|
|
410
387
|
Plans.getNewProPlan = getNewProPlan;
|
|
411
388
|
function getStudentProPlan(currency) {
|
|
412
389
|
switch (currency) {
|
|
413
|
-
case "EUR":
|
|
414
|
-
|
|
390
|
+
case "EUR":
|
|
391
|
+
return Plans.PROFESSIONAL_STUDENT_EUR;
|
|
392
|
+
case "USD":
|
|
393
|
+
return Plans.PROFESSIONAL_STUDENT_USD;
|
|
415
394
|
}
|
|
416
395
|
}
|
|
417
396
|
Plans.getStudentProPlan = getStudentProPlan;
|
|
418
397
|
function getBasicPlan(currency) {
|
|
419
398
|
switch (currency) {
|
|
420
|
-
case "EUR":
|
|
421
|
-
|
|
399
|
+
case "EUR":
|
|
400
|
+
return Plans.BASIC_EUR;
|
|
401
|
+
case "USD":
|
|
402
|
+
return Plans.BASIC_USD;
|
|
422
403
|
}
|
|
423
404
|
}
|
|
424
405
|
Plans.getBasicPlan = getBasicPlan;
|
|
425
406
|
function getPersonalPlan(currency) {
|
|
426
407
|
switch (currency) {
|
|
427
|
-
case "EUR":
|
|
428
|
-
|
|
408
|
+
case "EUR":
|
|
409
|
+
return Plans.PERSONAL_EUR;
|
|
410
|
+
case "USD":
|
|
411
|
+
return Plans.PERSONAL_USD;
|
|
429
412
|
}
|
|
430
413
|
}
|
|
431
414
|
Plans.getPersonalPlan = getPersonalPlan;
|
|
@@ -434,17 +417,21 @@ var Plans;
|
|
|
434
417
|
}
|
|
435
418
|
Plans.getFreePlan = getFreePlan;
|
|
436
419
|
function isFreePlan(chargebeeId) {
|
|
437
|
-
return chargebeeId === Plans.FREE.chargebeeId
|
|
438
|
-
|
|
439
|
-
|
|
420
|
+
return (chargebeeId === Plans.FREE.chargebeeId ||
|
|
421
|
+
chargebeeId === Plans.FREE_50.chargebeeId ||
|
|
422
|
+
chargebeeId === Plans.FREE_OPEN_SOURCE.chargebeeId);
|
|
440
423
|
}
|
|
441
424
|
Plans.isFreePlan = isFreePlan;
|
|
425
|
+
function isFreeTier(chargebeeId) {
|
|
426
|
+
return chargebeeId === Plans.FREE.chargebeeId || chargebeeId === Plans.FREE_50.chargebeeId;
|
|
427
|
+
}
|
|
428
|
+
Plans.isFreeTier = isFreeTier;
|
|
442
429
|
function isFreeNonTransientPlan(chargebeeId) {
|
|
443
430
|
return chargebeeId === Plans.FREE_OPEN_SOURCE.chargebeeId;
|
|
444
431
|
}
|
|
445
432
|
Plans.isFreeNonTransientPlan = isFreeNonTransientPlan;
|
|
446
433
|
function getHoursPerMonth(plan) {
|
|
447
|
-
return plan.hoursPerMonth ==
|
|
434
|
+
return plan.hoursPerMonth == "unlimited" ? exports.ABSOLUTE_MAX_USAGE : plan.hoursPerMonth;
|
|
448
435
|
}
|
|
449
436
|
Plans.getHoursPerMonth = getHoursPerMonth;
|
|
450
437
|
/**
|
|
@@ -460,7 +447,7 @@ var Plans;
|
|
|
460
447
|
* @param plan
|
|
461
448
|
*/
|
|
462
449
|
function getParallelWorkspaces(plan) {
|
|
463
|
-
|
|
450
|
+
const DEFAULT = 4;
|
|
464
451
|
if (!plan) {
|
|
465
452
|
return DEFAULT;
|
|
466
453
|
}
|
|
@@ -480,14 +467,14 @@ var Plans;
|
|
|
480
467
|
* The order inside the sub-array carries meaning, too: The first one is the current, preferred plan (we advertise) for the given arity.
|
|
481
468
|
* This is used to be able to get the next "higher" plan (cmp. getNextHigherPlanType).
|
|
482
469
|
*/
|
|
483
|
-
|
|
470
|
+
const planStructure = [
|
|
484
471
|
["free-50", "free", "free-open-source"],
|
|
485
472
|
["personal", "basic"],
|
|
486
473
|
["professional-new"],
|
|
487
|
-
["professional", "student"]
|
|
474
|
+
["professional", "student"],
|
|
488
475
|
];
|
|
489
476
|
function getPlanTypeArity(type) {
|
|
490
|
-
return planStructure.findIndex(
|
|
477
|
+
return planStructure.findIndex((types) => types.includes(type));
|
|
491
478
|
}
|
|
492
479
|
function getPlanTypeForArity(arity) {
|
|
493
480
|
if (arity >= planStructure.length) {
|
|
@@ -500,8 +487,8 @@ var Plans;
|
|
|
500
487
|
* @param type
|
|
501
488
|
*/
|
|
502
489
|
function getNextHigherPlanType(type) {
|
|
503
|
-
|
|
504
|
-
|
|
490
|
+
const arity = getPlanTypeArity(type);
|
|
491
|
+
const nextHigherType = getPlanTypeForArity(arity + 1);
|
|
505
492
|
return nextHigherType || "professional";
|
|
506
493
|
}
|
|
507
494
|
Plans.getNextHigherPlanType = getNextHigherPlanType;
|
|
@@ -511,13 +498,13 @@ var Plans;
|
|
|
511
498
|
* @param planTypeB
|
|
512
499
|
*/
|
|
513
500
|
function compareTypes(planTypeA, planTypeB) {
|
|
514
|
-
|
|
515
|
-
|
|
501
|
+
const va = getPlanTypeArity(planTypeA);
|
|
502
|
+
const vb = getPlanTypeArity(planTypeB);
|
|
516
503
|
return va < vb ? -1 : va > vb ? 1 : 0;
|
|
517
504
|
}
|
|
518
505
|
Plans.compareTypes = compareTypes;
|
|
519
506
|
function subscriptionChange(fromType, toType) {
|
|
520
|
-
|
|
507
|
+
const cmp = Plans.compareTypes(fromType, toType);
|
|
521
508
|
if (cmp < 0) {
|
|
522
509
|
return "upgrade";
|
|
523
510
|
}
|
|
@@ -529,58 +516,91 @@ var Plans;
|
|
|
529
516
|
}
|
|
530
517
|
}
|
|
531
518
|
Plans.subscriptionChange = subscriptionChange;
|
|
532
|
-
|
|
519
|
+
let Feature;
|
|
533
520
|
(function (Feature) {
|
|
534
|
-
Feature.getFeaturesFor =
|
|
521
|
+
Feature.getFeaturesFor = (p) => {
|
|
535
522
|
switch (p.type) {
|
|
536
523
|
case "free":
|
|
537
|
-
return [
|
|
538
|
-
{ title: 'Public repositories' }
|
|
539
|
-
];
|
|
524
|
+
return [{ title: "Public repositories" }];
|
|
540
525
|
case "free-50":
|
|
541
|
-
return [
|
|
542
|
-
{ title: 'Public repositories' }
|
|
543
|
-
];
|
|
526
|
+
return [{ title: "Public repositories" }];
|
|
544
527
|
case "free-open-source":
|
|
545
|
-
return [
|
|
546
|
-
{ title: 'Public repositories' },
|
|
547
|
-
];
|
|
528
|
+
return [{ title: "Public repositories" }];
|
|
548
529
|
case "student":
|
|
549
530
|
return [
|
|
550
|
-
{ title:
|
|
551
|
-
{
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
531
|
+
{ title: "Private & Public repos" },
|
|
532
|
+
{
|
|
533
|
+
title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
|
|
534
|
+
tooltip: "The number of workspaces running at the same time",
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
title: "Team Manageable",
|
|
538
|
+
link: "/teams/",
|
|
539
|
+
tooltip: "Setup Gitpod for an entire Team with a single invoice and credit card",
|
|
540
|
+
},
|
|
541
|
+
{ title: "1h Timeout", tooltip: "Workspaces without user activity are stopped after 1 hour" },
|
|
542
|
+
{
|
|
543
|
+
title: "3h Timeout Boost",
|
|
544
|
+
tooltip: "You can manually boost the timeout to 3 hours within a running workspace",
|
|
545
|
+
},
|
|
555
546
|
];
|
|
556
547
|
case "basic":
|
|
557
548
|
return [
|
|
558
|
-
{ title:
|
|
559
|
-
{
|
|
549
|
+
{ title: "Private & Public repos" },
|
|
550
|
+
{
|
|
551
|
+
title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
|
|
552
|
+
tooltip: "The number of workspaces running at the same time.",
|
|
553
|
+
},
|
|
560
554
|
];
|
|
561
555
|
// Personal
|
|
562
556
|
case "personal":
|
|
563
557
|
return [
|
|
564
|
-
{ title:
|
|
565
|
-
{
|
|
566
|
-
|
|
558
|
+
{ title: "Private & Public repos" },
|
|
559
|
+
{
|
|
560
|
+
title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
|
|
561
|
+
tooltip: "The number of workspaces running at the same time",
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
title: "30min Timeout",
|
|
565
|
+
tooltip: "Workspaces without user activity are stopped after 30 minutes",
|
|
566
|
+
},
|
|
567
567
|
];
|
|
568
568
|
// Professional
|
|
569
569
|
case "professional-new":
|
|
570
570
|
return [
|
|
571
|
-
{ title:
|
|
572
|
-
{
|
|
573
|
-
|
|
574
|
-
|
|
571
|
+
{ title: "Private & Public repos" },
|
|
572
|
+
{
|
|
573
|
+
title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
|
|
574
|
+
tooltip: "The number of workspaces running at the same time",
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
title: "Team Manageable",
|
|
578
|
+
link: "/teams/",
|
|
579
|
+
tooltip: "Setup Gitpod for an entire Team with a single invoice and credit card",
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
title: "30min Timeout",
|
|
583
|
+
tooltip: "Workspaces without user activity are stopped after 30 minutes",
|
|
584
|
+
},
|
|
575
585
|
];
|
|
576
586
|
// Unleashed
|
|
577
587
|
case "professional":
|
|
578
588
|
return [
|
|
579
|
-
{ title:
|
|
580
|
-
{
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
589
|
+
{ title: "Private & Public repos" },
|
|
590
|
+
{
|
|
591
|
+
title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
|
|
592
|
+
tooltip: "The number of workspaces running at the same time",
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
title: "Team Manageable",
|
|
596
|
+
link: "/teams/",
|
|
597
|
+
tooltip: "Setup Gitpod for an entire Team with a single invoice and credit card",
|
|
598
|
+
},
|
|
599
|
+
{ title: "1h Timeout", tooltip: "Workspaces without user activity are stopped after 1 hour" },
|
|
600
|
+
{
|
|
601
|
+
title: "3h Timeout Boost",
|
|
602
|
+
tooltip: "You can manually boost the timeout to 3 hours within a running workspace",
|
|
603
|
+
},
|
|
584
604
|
];
|
|
585
605
|
}
|
|
586
606
|
};
|