@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
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2023 Gitpod GmbH. All rights reserved.
|
|
3
|
+
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { WorkspaceInstancePhase } from "./workspace-instance";
|
|
8
|
+
import { RemoteTrackMessage } from "./analytics";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* IDEFrontendDashboardService enables IDE related communications
|
|
12
|
+
* between the workspace to gitpod origins. Use it to communicate
|
|
13
|
+
* between IDE and dashboard iframes, never use
|
|
14
|
+
* `window.postMessage` directly.
|
|
15
|
+
*
|
|
16
|
+
* **Security Note**: never expose information about other workspaces
|
|
17
|
+
* or sensitive information for the current workspace, i.e. owner token.
|
|
18
|
+
*/
|
|
19
|
+
export namespace IDEFrontendDashboardService {
|
|
20
|
+
/**
|
|
21
|
+
* IClient is the client side which is using in supervisor frontend
|
|
22
|
+
*/
|
|
23
|
+
export interface IClient {
|
|
24
|
+
trackEvent(msg: RemoteTrackMessage): void;
|
|
25
|
+
activeHeartbeat(): void;
|
|
26
|
+
setState(state: SetStateData): void;
|
|
27
|
+
openDesktopIDE(url: string): void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* IServer is the server side which is using in dashboard loading screen
|
|
32
|
+
*/
|
|
33
|
+
export interface IServer {
|
|
34
|
+
sendStatusUpdate(status: Status): void;
|
|
35
|
+
relocate(url: string): void;
|
|
36
|
+
openBrowserIDE(): void;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface Status {
|
|
40
|
+
workspaceID: string;
|
|
41
|
+
loggedUserId: string;
|
|
42
|
+
|
|
43
|
+
instanceId?: string;
|
|
44
|
+
ideUrl?: string;
|
|
45
|
+
statusPhase?: WorkspaceInstancePhase;
|
|
46
|
+
|
|
47
|
+
workspaceDescription: string;
|
|
48
|
+
workspaceType: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface SetStateData {
|
|
52
|
+
ideFrontendFailureCause?: string;
|
|
53
|
+
desktopIDE?: {
|
|
54
|
+
clientID: string;
|
|
55
|
+
link: string;
|
|
56
|
+
label?: string;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* interface for post message that send status update from dashboard to supervisor
|
|
62
|
+
*/
|
|
63
|
+
export interface StatusUpdateEventData {
|
|
64
|
+
// protocol version
|
|
65
|
+
version?: number;
|
|
66
|
+
type: "ide-status-update";
|
|
67
|
+
status: Status;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export interface HeartbeatEventData {
|
|
71
|
+
type: "ide-heartbeat";
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface TrackEventData {
|
|
75
|
+
type: "ide-track-event";
|
|
76
|
+
msg: RemoteTrackMessage;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface RelocateEventData {
|
|
80
|
+
type: "ide-relocate";
|
|
81
|
+
url: string;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface SetStateEventData {
|
|
85
|
+
type: "ide-set-state";
|
|
86
|
+
state: SetStateData;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export interface OpenBrowserIDE {
|
|
90
|
+
type: "ide-open-browser";
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface OpenDesktopIDE {
|
|
94
|
+
type: "ide-open-desktop";
|
|
95
|
+
url: string;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function isStatusUpdateEventData(obj: any): obj is StatusUpdateEventData {
|
|
99
|
+
return obj != null && typeof obj === "object" && obj.type === "ide-status-update";
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export function isHeartbeatEventData(obj: any): obj is HeartbeatEventData {
|
|
103
|
+
return obj != null && typeof obj === "object" && obj.type === "ide-heartbeat";
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export function isTrackEventData(obj: any): obj is TrackEventData {
|
|
107
|
+
return obj != null && typeof obj === "object" && obj.type === "ide-track-event";
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export function isRelocateEventData(obj: any): obj is RelocateEventData {
|
|
111
|
+
return obj != null && typeof obj === "object" && obj.type === "ide-relocate";
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function isSetStateEventData(obj: any): obj is SetStateEventData {
|
|
115
|
+
return obj != null && typeof obj === "object" && obj.type === "ide-set-state";
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export function isOpenBrowserIDE(obj: any): obj is OpenBrowserIDE {
|
|
119
|
+
return obj != null && typeof obj === "object" && obj.type === "ide-open-browser";
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export function isOpenDesktopIDE(obj: any): obj is OpenDesktopIDE {
|
|
123
|
+
return obj != null && typeof obj === "object" && obj.type === "ide-open-desktop";
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
|
|
3
3
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { suite, test } from "mocha-typescript"
|
|
8
|
-
import * as chai from "chai"
|
|
7
|
+
import { suite, test } from "mocha-typescript";
|
|
8
|
+
import * as chai from "chai";
|
|
9
9
|
|
|
10
|
-
import { WorkspaceConfig } from
|
|
11
|
-
import { GitpodFileParser } from
|
|
10
|
+
import { WorkspaceConfig } from "./protocol";
|
|
11
|
+
import { GitpodFileParser } from "./gitpod-file-parser";
|
|
12
12
|
|
|
13
|
-
const expect = chai.expect
|
|
13
|
+
const expect = chai.expect;
|
|
14
14
|
|
|
15
15
|
const DEFAULT_IMAGE = "default-image";
|
|
16
16
|
const DEFAULT_CONFIG = <WorkspaceConfig>{ image: DEFAULT_IMAGE };
|
|
17
17
|
|
|
18
|
-
@suite
|
|
19
|
-
|
|
18
|
+
@suite
|
|
19
|
+
class TestGitpodFileParser {
|
|
20
20
|
protected parser: GitpodFileParser;
|
|
21
21
|
|
|
22
22
|
public before() {
|
|
@@ -24,107 +24,102 @@ const DEFAULT_CONFIG = <WorkspaceConfig>{ image: DEFAULT_IMAGE };
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
@test public testOnlyOnePort() {
|
|
27
|
-
const content =
|
|
28
|
-
`ports:\n` +
|
|
29
|
-
` - port: 5555`;
|
|
27
|
+
const content = `ports:\n` + ` - port: 5555`;
|
|
30
28
|
|
|
31
29
|
const result = this.parser.parse(content, {}, DEFAULT_CONFIG);
|
|
32
30
|
expect(result.config).to.deep.equal({
|
|
33
|
-
ports: [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
ports: [
|
|
32
|
+
{
|
|
33
|
+
port: 5555,
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
image: DEFAULT_IMAGE,
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
@test public testPortRange() {
|
|
41
|
-
const content =
|
|
42
|
-
`ports:\n` +
|
|
43
|
-
` - port: 5555\n` +
|
|
44
|
-
` - port: 3000-3999`; // should be filtered out by default
|
|
41
|
+
const content = `ports:\n` + ` - port: 5555\n` + ` - port: 3000-3999`; // should be filtered out by default
|
|
45
42
|
|
|
46
43
|
const result = this.parser.parse(content, {}, DEFAULT_CONFIG);
|
|
47
44
|
expect(result.config).to.deep.equal({
|
|
48
|
-
ports: [
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
ports: [
|
|
46
|
+
{
|
|
47
|
+
port: 5555,
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
image: DEFAULT_IMAGE,
|
|
52
51
|
});
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
@test public testPortRangeAccepted() {
|
|
56
|
-
const content =
|
|
57
|
-
`ports:\n` +
|
|
58
|
-
` - port: 5555\n` +
|
|
59
|
-
` - port: 3000-3999`; // should be included if explicitly supported
|
|
55
|
+
const content = `ports:\n` + ` - port: 5555\n` + ` - port: 3000-3999`; // should be included if explicitly supported
|
|
60
56
|
|
|
61
57
|
const result = this.parser.parse(content, { acceptPortRanges: true }, DEFAULT_CONFIG);
|
|
62
58
|
expect(result.config).to.deep.equal({
|
|
63
|
-
ports: [
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
ports: [
|
|
60
|
+
{
|
|
61
|
+
port: 5555,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
port: "3000-3999",
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
image: DEFAULT_IMAGE,
|
|
69
68
|
});
|
|
70
69
|
}
|
|
71
70
|
|
|
72
71
|
@test public testSimpleTask() {
|
|
73
|
-
const content =
|
|
74
|
-
`tasks:\n` +
|
|
75
|
-
` - command: yarn`;
|
|
72
|
+
const content = `tasks:\n` + ` - command: yarn`;
|
|
76
73
|
|
|
77
74
|
const result = this.parser.parse(content, {}, DEFAULT_CONFIG);
|
|
78
75
|
expect(result.config).to.deep.equal({
|
|
79
|
-
tasks: [
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
tasks: [
|
|
77
|
+
{
|
|
78
|
+
command: "yarn",
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
image: DEFAULT_IMAGE,
|
|
83
82
|
});
|
|
84
83
|
}
|
|
85
84
|
|
|
86
85
|
@test public testSimpleImage() {
|
|
87
86
|
const imageName = "my-test-org/my-test-image:some-tag";
|
|
88
|
-
const content =
|
|
89
|
-
`image: "${imageName}"\n`;
|
|
87
|
+
const content = `image: "${imageName}"\n`;
|
|
90
88
|
|
|
91
89
|
const result = this.parser.parse(content);
|
|
92
90
|
expect(result.config).to.deep.equal({
|
|
93
|
-
image: imageName
|
|
91
|
+
image: imageName,
|
|
94
92
|
});
|
|
95
93
|
}
|
|
96
94
|
|
|
97
95
|
@test public testComplexImageWithoutContext() {
|
|
98
|
-
const dockerFileName =
|
|
99
|
-
const content =
|
|
100
|
-
`image:\n file: ${dockerFileName}\n`;
|
|
96
|
+
const dockerFileName = "Dockerfile";
|
|
97
|
+
const content = `image:\n file: ${dockerFileName}\n`;
|
|
101
98
|
|
|
102
99
|
const result = this.parser.parse(content);
|
|
103
100
|
expect(result.config).to.deep.equal({
|
|
104
101
|
image: {
|
|
105
|
-
file: dockerFileName
|
|
106
|
-
}
|
|
102
|
+
file: dockerFileName,
|
|
103
|
+
},
|
|
107
104
|
});
|
|
108
105
|
}
|
|
109
106
|
|
|
110
107
|
@test public testComplexImageWithContext() {
|
|
111
|
-
const dockerFileName =
|
|
112
|
-
const dockerContext =
|
|
113
|
-
const content =
|
|
114
|
-
`image:\n file: ${dockerFileName}\n context: ${dockerContext}\n`;
|
|
108
|
+
const dockerFileName = "Dockerfile";
|
|
109
|
+
const dockerContext = "docker";
|
|
110
|
+
const content = `image:\n file: ${dockerFileName}\n context: ${dockerContext}\n`;
|
|
115
111
|
|
|
116
112
|
const result = this.parser.parse(content);
|
|
117
113
|
expect(result.config).to.deep.equal({
|
|
118
114
|
image: {
|
|
119
115
|
file: dockerFileName,
|
|
120
|
-
context: dockerContext
|
|
121
|
-
}
|
|
116
|
+
context: dockerContext,
|
|
117
|
+
},
|
|
122
118
|
});
|
|
123
119
|
}
|
|
124
120
|
|
|
125
121
|
@test public testGitconfig() {
|
|
126
|
-
const content =
|
|
127
|
-
`
|
|
122
|
+
const content = `
|
|
128
123
|
gitConfig:
|
|
129
124
|
core.autocrlf: input
|
|
130
125
|
`;
|
|
@@ -132,20 +127,19 @@ gitConfig:
|
|
|
132
127
|
const result = this.parser.parse(content, {}, DEFAULT_CONFIG);
|
|
133
128
|
expect(result.config).to.deep.equal({
|
|
134
129
|
gitConfig: {
|
|
135
|
-
"core.autocrlf": "input"
|
|
130
|
+
"core.autocrlf": "input",
|
|
136
131
|
},
|
|
137
|
-
image: DEFAULT_IMAGE
|
|
132
|
+
image: DEFAULT_IMAGE,
|
|
138
133
|
});
|
|
139
134
|
}
|
|
140
135
|
|
|
141
136
|
@test public testBrokenConfig() {
|
|
142
|
-
const content =
|
|
143
|
-
`image: 42\n`;
|
|
137
|
+
const content = `image: 42\n`;
|
|
144
138
|
|
|
145
139
|
const result = this.parser.parse(content, {}, DEFAULT_CONFIG);
|
|
146
140
|
expect(result.config).to.deep.equal({
|
|
147
|
-
image: DEFAULT_IMAGE
|
|
141
|
+
image: DEFAULT_IMAGE,
|
|
148
142
|
});
|
|
149
143
|
}
|
|
150
144
|
}
|
|
151
|
-
module.exports = new TestGitpodFileParser()
|
|
145
|
+
module.exports = new TestGitpodFileParser(); // Only to circumvent no usage warning :-/
|
|
@@ -1,46 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
|
|
3
3
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License
|
|
4
|
+
* See License.AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { injectable } from "inversify";
|
|
8
8
|
import * as yaml from "js-yaml";
|
|
9
9
|
import * as Ajv from "ajv";
|
|
10
|
-
import { log } from
|
|
10
|
+
import { log } from "./util/logging";
|
|
11
11
|
import { WorkspaceConfig, PortRangeConfig } from "./protocol";
|
|
12
12
|
|
|
13
|
-
export type MaybeConfig = WorkspaceConfig | undefined
|
|
13
|
+
export type MaybeConfig = WorkspaceConfig | undefined;
|
|
14
14
|
|
|
15
|
-
const schema = require(
|
|
15
|
+
const schema = require("../data/gitpod-schema.json");
|
|
16
16
|
const validate = new Ajv().compile(schema);
|
|
17
17
|
const defaultParseOptions = {
|
|
18
18
|
acceptPortRanges: false,
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export interface ParseResult {
|
|
22
|
-
config: WorkspaceConfig
|
|
23
|
-
parsedConfig?: WorkspaceConfig
|
|
24
|
-
validationErrors?: string[]
|
|
22
|
+
config: WorkspaceConfig;
|
|
23
|
+
parsedConfig?: WorkspaceConfig;
|
|
24
|
+
validationErrors?: string[];
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
@injectable()
|
|
28
28
|
export class GitpodFileParser {
|
|
29
|
-
|
|
30
29
|
public parse(content: string, parseOptions = {}, defaultConfig: WorkspaceConfig = {}): ParseResult {
|
|
31
30
|
const options = {
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
...defaultParseOptions,
|
|
32
|
+
...parseOptions,
|
|
34
33
|
};
|
|
35
34
|
try {
|
|
36
35
|
const parsedConfig = yaml.safeLoad(content) as any;
|
|
37
36
|
validate(parsedConfig);
|
|
38
|
-
const validationErrors = validate.errors ? validate.errors.map(
|
|
37
|
+
const validationErrors = validate.errors ? validate.errors.map((e) => e.message || e.keyword) : undefined;
|
|
39
38
|
if (validationErrors && validationErrors.length > 0) {
|
|
40
39
|
return {
|
|
41
40
|
config: defaultConfig,
|
|
42
41
|
parsedConfig,
|
|
43
|
-
validationErrors
|
|
42
|
+
validationErrors,
|
|
44
43
|
};
|
|
45
44
|
}
|
|
46
45
|
const overrides = {} as any;
|
|
@@ -49,17 +48,17 @@ export class GitpodFileParser {
|
|
|
49
48
|
}
|
|
50
49
|
return {
|
|
51
50
|
config: {
|
|
52
|
-
...
|
|
53
|
-
...
|
|
54
|
-
...
|
|
51
|
+
...defaultConfig,
|
|
52
|
+
...parsedConfig,
|
|
53
|
+
...overrides,
|
|
55
54
|
},
|
|
56
|
-
parsedConfig
|
|
55
|
+
parsedConfig,
|
|
57
56
|
};
|
|
58
57
|
} catch (err) {
|
|
59
|
-
log.error(
|
|
58
|
+
log.error("Unparsable Gitpod configuration", err, { content });
|
|
60
59
|
return {
|
|
61
60
|
config: defaultConfig,
|
|
62
|
-
validationErrors: [
|
|
61
|
+
validationErrors: ["Unparsable Gitpod configuration: " + err.toString()],
|
|
63
62
|
};
|
|
64
63
|
}
|
|
65
64
|
}
|