@gitpod/gitpod-protocol 0.1.5-update-ovsx.0 → 0.1.5-update-yarnlock.0
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 +159 -25
- package/lib/accounting-protocol.d.ts +165 -0
- package/lib/accounting-protocol.d.ts.map +1 -0
- package/lib/accounting-protocol.js +120 -0
- package/lib/accounting-protocol.js.map +1 -0
- package/lib/admin-protocol.d.ts +51 -6
- package/lib/admin-protocol.d.ts.map +1 -1
- package/lib/admin-protocol.js +17 -2
- 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 +25 -0
- package/lib/attribution.d.ts.map +1 -0
- package/lib/attribution.js +58 -0
- package/lib/attribution.js.map +1 -0
- package/lib/auth.d.ts +25 -0
- package/lib/auth.d.ts.map +1 -0
- package/lib/auth.js +16 -0
- package/lib/auth.js.map +1 -0
- 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 +2 -2
- package/lib/encryption/container-module.d.ts.map +1 -1
- package/lib/encryption/container-module.js +8 -6
- package/lib/encryption/container-module.js.map +1 -1
- package/lib/encryption/encryption-engine.d.ts +2 -2
- package/lib/encryption/encryption-engine.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.js +28 -28
- package/lib/encryption/encryption-engine.js.map +1 -1
- package/lib/encryption/encryption-engine.spec.d.ts +3 -3
- package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.spec.js +32 -39
- package/lib/encryption/encryption-engine.spec.js.map +1 -1
- package/lib/encryption/encryption-service.d.ts +2 -2
- package/lib/encryption/encryption-service.d.ts.map +1 -1
- package/lib/encryption/encryption-service.js +33 -46
- package/lib/encryption/encryption-service.js.map +1 -1
- package/lib/encryption/key-provider.d.ts +3 -3
- package/lib/encryption/key-provider.d.ts.map +1 -1
- package/lib/encryption/key-provider.js +34 -40
- package/lib/encryption/key-provider.js.map +1 -1
- package/lib/env.d.ts +2 -8
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +10 -29
- 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 +99 -0
- package/lib/frontend-dashboard-service.d.ts.map +1 -0
- package/lib/frontend-dashboard-service.js +55 -0
- package/lib/frontend-dashboard-service.js.map +1 -0
- package/lib/gitpod-file-parser.d.ts +2 -2
- package/lib/gitpod-file-parser.d.ts.map +1 -1
- package/lib/gitpod-file-parser.js +29 -44
- package/lib/gitpod-file-parser.js.map +1 -1
- package/lib/gitpod-file-parser.spec.d.ts +2 -2
- package/lib/gitpod-file-parser.spec.js +147 -144
- package/lib/gitpod-file-parser.spec.js.map +1 -1
- package/lib/gitpod-service.d.ts +290 -50
- package/lib/gitpod-service.d.ts.map +1 -1
- package/lib/gitpod-service.js +288 -123
- package/lib/gitpod-service.js.map +1 -1
- package/lib/headless-workspace-log.d.ts +11 -13
- package/lib/headless-workspace-log.d.ts.map +1 -1
- package/lib/headless-workspace-log.js +8 -9
- package/lib/headless-workspace-log.js.map +1 -1
- package/lib/ide-frontend-service.d.ts +26 -0
- package/lib/ide-frontend-service.d.ts.map +1 -0
- package/lib/ide-frontend-service.js +8 -0
- package/lib/ide-frontend-service.js.map +1 -0
- 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 +18 -12
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +28 -13
- 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 +9 -2
- package/lib/license-protocol.d.ts.map +1 -1
- package/lib/license-protocol.js +3 -2
- package/lib/license-protocol.js.map +1 -1
- package/lib/messaging/browser/connection.d.ts +6 -4
- package/lib/messaging/browser/connection.d.ts.map +1 -1
- package/lib/messaging/browser/connection.js +188 -48
- package/lib/messaging/browser/connection.js.map +1 -1
- package/lib/messaging/browser/window-connection.d.ts +9 -4
- package/lib/messaging/browser/window-connection.d.ts.map +1 -1
- package/lib/messaging/browser/window-connection.js +48 -59
- 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 +18 -4
- package/lib/messaging/error.d.ts.map +1 -1
- package/lib/messaging/error.js +38 -7
- 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 +2 -1
- package/lib/messaging/handler.js.map +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 -59
- 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 +76 -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 +18 -0
- package/lib/payment-protocol.d.ts.map +1 -0
- package/lib/payment-protocol.js +13 -0
- package/lib/payment-protocol.js.map +1 -0
- package/lib/permission.d.ts +26 -15
- package/lib/permission.d.ts.map +1 -1
- package/lib/permission.js +50 -36
- package/lib/permission.js.map +1 -1
- package/lib/plans.d.ts +213 -0
- package/lib/plans.d.ts.map +1 -0
- package/lib/plans.js +625 -0
- package/lib/plans.js.map +1 -0
- package/lib/protocol.d.ts +338 -111
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +422 -201
- package/lib/protocol.js.map +1 -1
- package/lib/protocol.spec.d.ts +7 -0
- 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 +93 -0
- package/lib/team-subscription-protocol.d.ts.map +1 -0
- package/lib/team-subscription-protocol.js +82 -0
- package/lib/team-subscription-protocol.js.map +1 -0
- package/lib/teams-projects-protocol.d.ts +136 -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 +8 -3
- package/lib/typings/globals.d.ts.map +1 -1
- package/lib/typings/globals.js +2 -2
- 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 +2 -2
- package/lib/util/async-iterator.d.ts.map +1 -1
- package/lib/util/async-iterator.js +60 -137
- package/lib/util/async-iterator.js.map +1 -1
- package/lib/util/cancelable.d.ts +2 -2
- package/lib/util/cancelable.js +20 -61
- package/lib/util/cancelable.js.map +1 -1
- package/lib/util/date-time.d.ts +2 -2
- package/lib/util/date-time.js +14 -13
- 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 +2 -2
- package/lib/util/deep-partial.js +2 -2
- package/lib/util/deferred.d.ts +2 -2
- package/lib/util/deferred.js +13 -14
- package/lib/util/deferred.js.map +1 -1
- package/lib/util/disposable.d.ts +2 -2
- package/lib/util/disposable.d.ts.map +1 -1
- package/lib/util/disposable.js +28 -40
- package/lib/util/disposable.js.map +1 -1
- package/lib/util/event.d.ts +1 -1
- package/lib/util/event.d.ts.map +1 -1
- package/lib/util/event.js +64 -77
- package/lib/util/event.js.map +1 -1
- package/lib/util/garbage-collected-cache.d.ts +3 -2
- package/lib/util/garbage-collected-cache.d.ts.map +1 -1
- package/lib/util/garbage-collected-cache.js +35 -49
- package/lib/util/garbage-collected-cache.js.map +1 -1
- package/lib/util/generate-workspace-id.d.ts +9 -0
- package/lib/util/generate-workspace-id.d.ts.map +1 -0
- package/lib/util/generate-workspace-id.js +491 -0
- package/lib/util/generate-workspace-id.js.map +1 -0
- package/lib/util/generate-workspace-id.spec.d.ts +7 -0
- package/lib/util/generate-workspace-id.spec.d.ts.map +1 -0
- package/lib/util/generate-workspace-id.spec.js +98 -0
- package/lib/util/generate-workspace-id.spec.js.map +1 -0
- 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 +20 -8
- package/lib/util/gitpod-host-url.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.js +143 -85
- package/lib/util/gitpod-host-url.js.map +1 -1
- package/lib/util/gitpod-host-url.spec.d.ts +16 -0
- package/lib/util/gitpod-host-url.spec.d.ts.map +1 -0
- package/lib/util/gitpod-host-url.spec.js +134 -0
- package/lib/util/gitpod-host-url.spec.js.map +1 -0
- 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/util/jaeger-client-types.js +8 -0
- package/lib/util/jaeger-client-types.js.map +1 -0
- package/lib/util/logging.d.ts +58 -35
- package/lib/util/logging.d.ts.map +1 -1
- package/lib/util/logging.js +144 -129
- 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 +2 -2
- package/lib/util/make-link.js +8 -7
- 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 +15 -5
- package/lib/util/parse-workspace-id.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.js +39 -9
- package/lib/util/parse-workspace-id.js.map +1 -1
- package/lib/util/parse-workspace-id.spec.d.ts +10 -2
- package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.spec.js +130 -49
- package/lib/util/parse-workspace-id.spec.js.map +1 -1
- package/lib/util/queue.d.ts +2 -2
- package/lib/util/queue.js +19 -57
- package/lib/util/queue.js.map +1 -1
- package/lib/util/queue.spec.d.ts +2 -2
- package/lib/util/queue.spec.js +149 -288
- 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 +2 -2
- package/lib/util/semaphore.d.ts.map +1 -1
- package/lib/util/semaphore.js +18 -48
- package/lib/util/semaphore.js.map +1 -1
- package/lib/util/skip-if.d.ts +2 -2
- package/lib/util/skip-if.d.ts.map +1 -1
- package/lib/util/skip-if.js +9 -8
- package/lib/util/skip-if.js.map +1 -1
- package/lib/util/timeutil.d.ts +4 -2
- package/lib/util/timeutil.d.ts.map +1 -1
- package/lib/util/timeutil.js +43 -18
- package/lib/util/timeutil.js.map +1 -1
- package/lib/util/timeutil.spec.d.ts +4 -2
- package/lib/util/timeutil.spec.d.ts.map +1 -1
- package/lib/util/timeutil.spec.js +57 -25
- package/lib/util/timeutil.spec.js.map +1 -1
- package/lib/util/tracing.d.ts +55 -8
- package/lib/util/tracing.d.ts.map +1 -1
- package/lib/util/tracing.js +210 -66
- 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 +9 -9
- package/lib/util/workspace-port-authentication.d.ts.map +1 -1
- package/lib/util/workspace-port-authentication.js +13 -14
- 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 +80 -0
- package/lib/workspace-cluster.d.ts.map +1 -0
- package/lib/workspace-cluster.js +36 -0
- package/lib/workspace-cluster.js.map +1 -0
- package/lib/workspace-instance.d.ts +51 -8
- package/lib/workspace-instance.d.ts.map +1 -1
- package/lib/workspace-instance.js +2 -2
- package/lib/wsready.d.ts +8 -2
- package/lib/wsready.d.ts.map +1 -1
- package/lib/wsready.js +4 -3
- package/lib/wsready.js.map +1 -1
- package/package.json +42 -18
- package/pkg-yarn.lock +24 -10
- package/provenance-bundle.jsonl +2 -0
- package/src/accounting-protocol.ts +253 -0
- package/src/admin-protocol.ts +96 -21
- package/src/analytics.ts +52 -0
- package/src/attribution.ts +67 -0
- package/src/auth.ts +27 -0
- 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 +4 -5
- package/src/encryption/encryption-engine.spec.ts +11 -10
- package/src/encryption/encryption-engine.ts +22 -18
- package/src/encryption/encryption-service.ts +6 -7
- package/src/encryption/key-provider.ts +18 -21
- package/src/env.ts +3 -26
- 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 +148 -0
- package/src/gitpod-file-parser.spec.ts +57 -63
- package/src/gitpod-file-parser.ts +18 -19
- package/src/gitpod-service.ts +602 -99
- package/src/headless-workspace-log.ts +14 -16
- package/src/ide-frontend-service.ts +28 -0
- package/src/ide-protocol.ts +147 -0
- package/src/index.ts +18 -12
- package/src/installation-admin-protocol.ts +45 -0
- package/src/license-protocol.ts +14 -8
- package/src/messaging/browser/connection.ts +202 -26
- package/src/messaging/browser/window-connection.ts +45 -29
- package/src/messaging/client-call-metrics.ts +94 -0
- package/src/messaging/error.ts +51 -10
- 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 +20 -0
- package/src/permission.ts +53 -40
- package/src/plans.ts +699 -0
- package/src/protocol.spec.ts +97 -0
- package/src/protocol.ts +790 -302
- package/src/snapshot-url.spec.ts +27 -0
- package/src/snapshot-url.ts +27 -0
- package/src/team-subscription-protocol.ts +153 -0
- package/src/teams-projects-protocol.ts +180 -0
- package/src/typings/globals.ts +13 -5
- package/src/usage.ts +85 -0
- package/src/util/analytics.ts +109 -0
- package/src/util/async-iterator.ts +6 -7
- package/src/util/cancelable.ts +5 -5
- package/src/util/date-time.ts +10 -10
- package/src/util/debug-app.ts +81 -0
- package/src/util/deep-partial.ts +2 -2
- package/src/util/deferred.ts +8 -8
- package/src/util/disposable.ts +3 -6
- package/src/util/event.ts +9 -11
- package/src/util/garbage-collected-cache.ts +18 -10
- package/src/util/generate-workspace-id.spec.ts +58 -0
- package/src/util/generate-workspace-id.ts +481 -0
- package/src/util/gitpod-cookie.ts +38 -0
- package/src/util/gitpod-host-url.spec.ts +76 -0
- package/src/util/gitpod-host-url.ts +119 -40
- 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 +163 -73
- package/src/util/make-link.ts +8 -9
- package/src/util/nice-grpc.ts +96 -0
- package/src/util/parse-workspace-id.spec.ts +62 -12
- package/src/util/parse-workspace-id.ts +40 -10
- package/src/util/queue.spec.ts +30 -28
- package/src/util/queue.ts +2 -2
- package/src/util/repeat.ts +45 -0
- package/src/util/semaphore.ts +8 -10
- package/src/util/skip-if.ts +12 -9
- package/src/util/timeutil.spec.ts +42 -16
- package/src/util/timeutil.ts +33 -17
- package/src/util/tracing.spec.ts +88 -0
- package/src/util/tracing.ts +211 -33
- package/src/util/workspace-port-authentication.ts +12 -15
- package/src/webhook-event.ts +55 -0
- package/src/workspace-class.ts +14 -0
- package/src/workspace-cluster.ts +121 -0
- package/src/workspace-instance.ts +120 -36
- package/src/wsready.ts +11 -4
- package/data/builtin-theia-plugins.json +0 -362
- package/lib/email-protocol.d.ts +0 -49
- package/lib/email-protocol.d.ts.map +0 -1
- package/lib/email-protocol.js +0 -27
- 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 -45
- 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 +0 -8
- package/lib/theia-plugins.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 -117
- 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 -33
- 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/jaeger-client.d.ts +0 -105
- package/src/util/repeater.ts +0 -49
- package/src/util/safe-promise.ts +0 -26
- package/src/util/without.ts +0 -8
|
@@ -1,20 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020 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 { Message } from "vscode-jsonrpc/lib/messages";
|
|
8
|
+
import { AbstractMessageWriter, MessageWriter } from "vscode-jsonrpc/lib/messageWriter";
|
|
9
|
+
import { AbstractMessageReader, MessageReader, DataCallback } from "vscode-jsonrpc/lib/messageReader";
|
|
10
|
+
import { MessageConnection, createMessageConnection } from "vscode-jsonrpc/lib/main";
|
|
11
|
+
import { ConsoleLogger } from "vscode-ws-jsonrpc";
|
|
6
12
|
|
|
7
13
|
interface WindowMessage extends Message {
|
|
8
|
-
serviceId: string
|
|
14
|
+
serviceId: string;
|
|
9
15
|
}
|
|
10
16
|
function isWindowMessage(value: any): value is WindowMessage {
|
|
11
|
-
return
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
return (
|
|
18
|
+
!!value &&
|
|
19
|
+
typeof value === "object" &&
|
|
20
|
+
"jsonrpc" in value &&
|
|
21
|
+
typeof value["jsonrpc"] === "string" &&
|
|
22
|
+
"serviceId" in value &&
|
|
23
|
+
typeof value["serviceId"] === "string"
|
|
24
|
+
);
|
|
14
25
|
}
|
|
15
26
|
|
|
16
27
|
export class WindowMessageWriter extends AbstractMessageWriter implements MessageWriter {
|
|
17
|
-
|
|
18
28
|
constructor(readonly serviceId: string, readonly window: Window, readonly targetOrigin: string) {
|
|
19
29
|
super();
|
|
20
30
|
}
|
|
@@ -23,44 +33,50 @@ export class WindowMessageWriter extends AbstractMessageWriter implements Messag
|
|
|
23
33
|
const { serviceId } = this;
|
|
24
34
|
this.window.postMessage(Object.assign(msg, { serviceId }), this.targetOrigin);
|
|
25
35
|
}
|
|
26
|
-
|
|
27
36
|
}
|
|
28
37
|
|
|
29
38
|
export class WindowMessageReader extends AbstractMessageReader implements MessageReader {
|
|
30
|
-
|
|
31
39
|
protected callback?: DataCallback;
|
|
32
40
|
protected readonly buffer: Message[] = [];
|
|
33
41
|
|
|
34
42
|
constructor(readonly serviceId: string, readonly sourceOrigin: string) {
|
|
35
43
|
super();
|
|
36
|
-
window.addEventListener(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
window.addEventListener(
|
|
45
|
+
"message",
|
|
46
|
+
(event) => {
|
|
47
|
+
if (this.sourceOrigin !== "*" && event.origin !== this.sourceOrigin) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!isWindowMessage(event.data) || event.data.serviceId !== this.serviceId) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (this.callback) {
|
|
54
|
+
this.callback(event.data);
|
|
55
|
+
} else {
|
|
56
|
+
this.buffer.push(event.data);
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
false,
|
|
60
|
+
);
|
|
49
61
|
}
|
|
50
62
|
|
|
51
63
|
listen(callback: DataCallback): void {
|
|
52
64
|
let message;
|
|
53
|
-
while (message = this.buffer.pop()) {
|
|
65
|
+
while ((message = this.buffer.pop())) {
|
|
54
66
|
callback(message);
|
|
55
67
|
}
|
|
56
68
|
Object.freeze(this.buffer);
|
|
57
69
|
this.callback = callback;
|
|
58
70
|
}
|
|
59
|
-
|
|
60
71
|
}
|
|
61
72
|
|
|
62
|
-
export function createWindowMessageConnection(
|
|
73
|
+
export function createWindowMessageConnection(
|
|
74
|
+
serviceId: string,
|
|
75
|
+
window: Window,
|
|
76
|
+
sourceOrigin: string,
|
|
77
|
+
targetOrigin = sourceOrigin,
|
|
78
|
+
): MessageConnection {
|
|
63
79
|
const reader = new WindowMessageReader(serviceId, sourceOrigin);
|
|
64
80
|
const writer = new WindowMessageWriter(serviceId, window, targetOrigin);
|
|
65
81
|
return createMessageConnection(reader, writer, new ConsoleLogger());
|
|
66
|
-
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021 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 { injectable } from "inversify";
|
|
8
|
+
import * as prometheusClient from "prom-client";
|
|
9
|
+
import { IClientCallMetrics, IGrpcCallMetricsLabels, IGrpcCallMetricsLabelsWithCode } from "../util/grpc";
|
|
10
|
+
|
|
11
|
+
@injectable()
|
|
12
|
+
export class PrometheusClientCallMetrics implements IClientCallMetrics {
|
|
13
|
+
readonly startedCounter: prometheusClient.Counter<string>;
|
|
14
|
+
readonly sentCounter: prometheusClient.Counter<string>;
|
|
15
|
+
readonly receivedCounter: prometheusClient.Counter<string>;
|
|
16
|
+
readonly handledCounter: prometheusClient.Counter<string>;
|
|
17
|
+
readonly handledSecondsHistogram: prometheusClient.Histogram<string>;
|
|
18
|
+
|
|
19
|
+
constructor() {
|
|
20
|
+
this.startedCounter = new prometheusClient.Counter({
|
|
21
|
+
name: "grpc_client_started_total",
|
|
22
|
+
help: "Total number of RPCs started on the client.",
|
|
23
|
+
labelNames: ["grpc_service", "grpc_method", "grpc_type"],
|
|
24
|
+
registers: [prometheusClient.register],
|
|
25
|
+
});
|
|
26
|
+
this.sentCounter = new prometheusClient.Counter({
|
|
27
|
+
name: "grpc_client_msg_sent_total",
|
|
28
|
+
help: " Total number of gRPC stream messages sent by the client.",
|
|
29
|
+
labelNames: ["grpc_service", "grpc_method", "grpc_type"],
|
|
30
|
+
registers: [prometheusClient.register],
|
|
31
|
+
});
|
|
32
|
+
this.receivedCounter = new prometheusClient.Counter({
|
|
33
|
+
name: "grpc_client_msg_received_total",
|
|
34
|
+
help: "Total number of RPC stream messages received by the client.",
|
|
35
|
+
labelNames: ["grpc_service", "grpc_method", "grpc_type"],
|
|
36
|
+
registers: [prometheusClient.register],
|
|
37
|
+
});
|
|
38
|
+
this.handledCounter = new prometheusClient.Counter({
|
|
39
|
+
name: "grpc_client_handled_total",
|
|
40
|
+
help: "Total number of RPCs completed by the client, regardless of success or failure.",
|
|
41
|
+
labelNames: ["grpc_service", "grpc_method", "grpc_type", "grpc_code"],
|
|
42
|
+
registers: [prometheusClient.register],
|
|
43
|
+
});
|
|
44
|
+
this.handledSecondsHistogram = new prometheusClient.Histogram({
|
|
45
|
+
name: "grpc_client_handling_seconds",
|
|
46
|
+
help: "Histogram of response latency (seconds) of the gRPC until it is finished by the application.",
|
|
47
|
+
labelNames: ["grpc_service", "grpc_method", "grpc_type", "grpc_code"],
|
|
48
|
+
registers: [prometheusClient.register],
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
started(labels: IGrpcCallMetricsLabels): void {
|
|
53
|
+
this.startedCounter.inc({
|
|
54
|
+
grpc_service: labels.service,
|
|
55
|
+
grpc_method: labels.method,
|
|
56
|
+
grpc_type: labels.type,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
sent(labels: IGrpcCallMetricsLabels): void {
|
|
61
|
+
this.sentCounter.inc({
|
|
62
|
+
grpc_service: labels.service,
|
|
63
|
+
grpc_method: labels.method,
|
|
64
|
+
grpc_type: labels.type,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
received(labels: IGrpcCallMetricsLabels): void {
|
|
69
|
+
this.receivedCounter.inc({
|
|
70
|
+
grpc_service: labels.service,
|
|
71
|
+
grpc_method: labels.method,
|
|
72
|
+
grpc_type: labels.type,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
handled(labels: IGrpcCallMetricsLabelsWithCode): void {
|
|
77
|
+
this.handledCounter.inc({
|
|
78
|
+
grpc_service: labels.service,
|
|
79
|
+
grpc_method: labels.method,
|
|
80
|
+
grpc_type: labels.type,
|
|
81
|
+
grpc_code: labels.code,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
startHandleTimer(
|
|
86
|
+
labels: IGrpcCallMetricsLabelsWithCode,
|
|
87
|
+
): (labels?: Partial<Record<string, string | number>> | undefined) => number {
|
|
88
|
+
return this.handledSecondsHistogram.startTimer({
|
|
89
|
+
grpc_service: labels.service,
|
|
90
|
+
grpc_method: labels.method,
|
|
91
|
+
grpc_type: labels.type,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
package/src/messaging/error.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c) 2020
|
|
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
|
-
|
|
8
|
-
|
|
9
7
|
export namespace ErrorCodes {
|
|
8
|
+
// 400 Unauthorized
|
|
9
|
+
export const BAD_REQUEST = 400;
|
|
10
|
+
|
|
10
11
|
// 401 Unauthorized
|
|
11
12
|
export const NOT_AUTHENTICATED = 401;
|
|
12
13
|
|
|
@@ -25,21 +26,45 @@ export namespace ErrorCodes {
|
|
|
25
26
|
// 410 No User
|
|
26
27
|
export const SETUP_REQUIRED = 410;
|
|
27
28
|
|
|
29
|
+
// 411 No User
|
|
30
|
+
export const NEEDS_VERIFICATION = 411;
|
|
31
|
+
|
|
32
|
+
// 429 Too Many Requests
|
|
33
|
+
export const TOO_MANY_REQUESTS = 429;
|
|
34
|
+
|
|
28
35
|
// 430 Repository not whitelisted (custom status code)
|
|
29
36
|
export const REPOSITORY_NOT_WHITELISTED = 430;
|
|
30
37
|
|
|
31
|
-
//
|
|
32
|
-
export const
|
|
38
|
+
// 440 Prebuilds now always require a project (custom status code)
|
|
39
|
+
export const PROJECT_REQUIRED = 440;
|
|
33
40
|
|
|
34
41
|
// 450 Payment error
|
|
35
42
|
export const PAYMENT_ERROR = 450;
|
|
36
43
|
|
|
44
|
+
// 451 Out of credits
|
|
45
|
+
export const PAYMENT_SPENDING_LIMIT_REACHED = 451;
|
|
46
|
+
|
|
47
|
+
// 451 Error creating a subscription
|
|
48
|
+
export const SUBSCRIPTION_ERROR = 452;
|
|
49
|
+
|
|
50
|
+
// 455 Invalid cost center (custom status code)
|
|
51
|
+
export const INVALID_COST_CENTER = 455;
|
|
52
|
+
|
|
53
|
+
// 460 Context Parse Error (custom status code)
|
|
54
|
+
export const CONTEXT_PARSE_ERROR = 460;
|
|
55
|
+
|
|
56
|
+
// 461 Invalid gitpod yml (custom status code)
|
|
57
|
+
export const INVALID_GITPOD_YML = 461;
|
|
58
|
+
|
|
37
59
|
// 470 User Blocked (custom status code)
|
|
38
60
|
export const USER_BLOCKED = 470;
|
|
39
61
|
|
|
40
|
-
// 471 User
|
|
62
|
+
// 471 User Deleted (custom status code)
|
|
41
63
|
export const USER_DELETED = 471;
|
|
42
64
|
|
|
65
|
+
// 472 Terms Acceptance Required (custom status code)
|
|
66
|
+
export const USER_TERMS_ACCEPTANCE_REQUIRED = 472;
|
|
67
|
+
|
|
43
68
|
// 480 Plan does not allow private repos
|
|
44
69
|
export const PLAN_DOES_NOT_ALLOW_PRIVATE_REPOS = 480;
|
|
45
70
|
|
|
@@ -52,18 +77,34 @@ export namespace ErrorCodes {
|
|
|
52
77
|
// 490 Too Many Running Workspace
|
|
53
78
|
export const TOO_MANY_RUNNING_WORKSPACES = 490;
|
|
54
79
|
|
|
80
|
+
// 500 Internal Server Error
|
|
81
|
+
export const INTERNAL_SERVER_ERROR = 500;
|
|
82
|
+
|
|
55
83
|
// 501 EE Feature
|
|
56
84
|
export const EE_FEATURE = 501;
|
|
57
85
|
|
|
58
86
|
// 555 EE License Required
|
|
59
87
|
export const EE_LICENSE_REQUIRED = 555;
|
|
60
88
|
|
|
89
|
+
// 601 SaaS Feature
|
|
90
|
+
export const SAAS_FEATURE = 601;
|
|
91
|
+
|
|
61
92
|
// 610 Invalid Team Subscription Quantity
|
|
62
93
|
export const TEAM_SUBSCRIPTION_INVALID_QUANTITY = 610;
|
|
63
94
|
|
|
64
95
|
// 620 Team Subscription Assignment Failed
|
|
65
96
|
export const TEAM_SUBSCRIPTION_ASSIGNMENT_FAILED = 620;
|
|
66
97
|
|
|
67
|
-
//
|
|
68
|
-
export const
|
|
69
|
-
|
|
98
|
+
// 630 Snapshot Error
|
|
99
|
+
export const SNAPSHOT_ERROR = 630;
|
|
100
|
+
|
|
101
|
+
// 640 Headless logs are not available (yet)
|
|
102
|
+
export const HEADLESS_LOG_NOT_YET_AVAILABLE = 640;
|
|
103
|
+
|
|
104
|
+
// 650 Invalid Value
|
|
105
|
+
export const INVALID_VALUE = 650;
|
|
106
|
+
|
|
107
|
+
export function isUserError(code: number): boolean {
|
|
108
|
+
return code >= 400 && code < 500;
|
|
109
|
+
}
|
|
110
|
+
}
|
package/src/messaging/handler.ts
CHANGED
|
@@ -7,9 +7,21 @@
|
|
|
7
7
|
|
|
8
8
|
import { MessageConnection } from "vscode-jsonrpc";
|
|
9
9
|
|
|
10
|
-
export const ConnectionHandler = Symbol(
|
|
10
|
+
export const ConnectionHandler = Symbol("ConnectionHandler");
|
|
11
11
|
|
|
12
12
|
export interface ConnectionHandler {
|
|
13
13
|
readonly path: string;
|
|
14
14
|
onConnection(connection: MessageConnection, session?: object): void;
|
|
15
15
|
}
|
|
16
|
+
|
|
17
|
+
export interface ConnectionEventHandler {
|
|
18
|
+
/**
|
|
19
|
+
* Called when the transport underpinning the connection got closed
|
|
20
|
+
*/
|
|
21
|
+
onTransportDidClose(): void;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Called when the transport underpinning the connection is (re-)opened
|
|
25
|
+
*/
|
|
26
|
+
onTransportDidOpen(): void;
|
|
27
|
+
}
|
|
@@ -6,82 +6,35 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import * as ws from "ws";
|
|
9
|
-
import
|
|
10
|
-
import * as https from "https";
|
|
11
|
-
import * as url from "url";
|
|
12
|
-
import * as net from "net";
|
|
13
|
-
import { MessageConnection } from "vscode-jsonrpc";
|
|
14
|
-
import { createWebSocketConnection, IWebSocket } from "vscode-ws-jsonrpc";
|
|
15
|
-
import { log } from '../../util/logging';
|
|
9
|
+
import { IWebSocket } from "vscode-ws-jsonrpc";
|
|
16
10
|
|
|
17
|
-
export
|
|
18
|
-
readonly server: http.Server | https.Server;
|
|
19
|
-
readonly path?: string;
|
|
20
|
-
matches?(request: http.IncomingMessage): boolean;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function createServerWebSocketConnection(options: IServerOptions, onConnect: (connection: MessageConnection) => void): void {
|
|
24
|
-
openJsonRpcSocket(options, socket => {
|
|
25
|
-
onConnect(createWebSocketConnection(socket, console));
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export function openJsonRpcSocket(options: IServerOptions, onOpen: (socket: IWebSocket) => void): void {
|
|
30
|
-
openSocket(options, socket => {
|
|
31
|
-
const webSocket = toIWebSocket(socket);
|
|
32
|
-
onOpen(webSocket);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface OnOpen {
|
|
37
|
-
(webSocket: ws, request: http.IncomingMessage, socket: net.Socket, head: Buffer): void;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function openSocket(options: IServerOptions, onOpen: OnOpen): void {
|
|
41
|
-
const wss = new ws.Server({
|
|
42
|
-
noServer: true,
|
|
43
|
-
perMessageDeflate: {
|
|
44
|
-
// don't compress if a message is less than 256kb
|
|
45
|
-
threshold: 256 * 1024
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
options.server.on('upgrade', (request: http.IncomingMessage, socket: net.Socket, head: Buffer) => {
|
|
49
|
-
const pathname = request.url ? url.parse(request.url).pathname : undefined;
|
|
50
|
-
if (options.path && pathname === options.path || options.matches && options.matches(request)) {
|
|
51
|
-
wss.handleUpgrade(request, socket, head, webSocket => {
|
|
52
|
-
if (webSocket.readyState === webSocket.OPEN) {
|
|
53
|
-
onOpen(webSocket, request, socket, head);
|
|
54
|
-
} else {
|
|
55
|
-
webSocket.on('open', () => onOpen(webSocket, request, socket, head));
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export function toIWebSocket(webSocket: ws) {
|
|
63
|
-
let sendsAfterOpen = 0;
|
|
11
|
+
export function toIWebSocket(ws: ws) {
|
|
64
12
|
return <IWebSocket>{
|
|
65
|
-
send: content => {
|
|
66
|
-
if (
|
|
67
|
-
|
|
68
|
-
log.error(`Repeated try to send on closed web socket (readyState was ${webSocket.readyState})`, { ws });
|
|
69
|
-
}
|
|
13
|
+
send: (content) => {
|
|
14
|
+
if (ws.readyState >= ws.CLOSING) {
|
|
15
|
+
// ws is already CLOSING/CLOSED, send() would just return an error.
|
|
70
16
|
return;
|
|
71
17
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
18
|
+
|
|
19
|
+
// in general send-errors should trigger an 'error' event already, we just make sure it actually happens.
|
|
20
|
+
try {
|
|
21
|
+
ws.send(content, (err) => {
|
|
22
|
+
if (!err) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
ws.emit("error", err);
|
|
26
|
+
});
|
|
27
|
+
} catch (err) {
|
|
28
|
+
ws.emit("error", err);
|
|
29
|
+
}
|
|
77
30
|
},
|
|
78
|
-
onMessage: cb =>
|
|
79
|
-
onError: cb =>
|
|
80
|
-
onClose: cb =>
|
|
31
|
+
onMessage: (cb) => ws.on("message", cb),
|
|
32
|
+
onError: (cb) => ws.on("error", cb),
|
|
33
|
+
onClose: (cb) => ws.on("close", cb),
|
|
81
34
|
dispose: () => {
|
|
82
|
-
if (
|
|
83
|
-
|
|
35
|
+
if (ws.readyState < ws.CLOSING) {
|
|
36
|
+
ws.close();
|
|
84
37
|
}
|
|
85
|
-
}
|
|
38
|
+
},
|
|
86
39
|
};
|
|
87
40
|
}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
import { MessageConnection, ResponseError } from "vscode-jsonrpc";
|
|
9
9
|
import { Event, Emitter } from "../util/event";
|
|
10
10
|
import { Disposable } from "../util/disposable";
|
|
11
|
-
import { ConnectionHandler } from
|
|
12
|
-
import { log } from
|
|
11
|
+
import { ConnectionHandler } from "./handler";
|
|
12
|
+
import { log } from "../util/logging";
|
|
13
13
|
|
|
14
14
|
export type JsonRpcServer<Client> = Disposable & {
|
|
15
15
|
/**
|
|
@@ -27,10 +27,7 @@ export interface JsonRpcConnectionEventEmitter {
|
|
|
27
27
|
export type JsonRpcProxy<T> = T & JsonRpcConnectionEventEmitter;
|
|
28
28
|
|
|
29
29
|
export class JsonRpcConnectionHandler<T extends object> implements ConnectionHandler {
|
|
30
|
-
constructor(
|
|
31
|
-
readonly path: string,
|
|
32
|
-
readonly targetFactory: (proxy: JsonRpcProxy<T>, request?: object) => any
|
|
33
|
-
) { }
|
|
30
|
+
constructor(readonly path: string, readonly targetFactory: (proxy: JsonRpcProxy<T>, request?: object) => any) {}
|
|
34
31
|
|
|
35
32
|
onConnection(connection: MessageConnection, request?: object): void {
|
|
36
33
|
const factory = new JsonRpcProxyFactory<T>();
|
|
@@ -83,7 +80,6 @@ export class JsonRpcConnectionHandler<T extends object> implements ConnectionHan
|
|
|
83
80
|
* @param <T> - The type of the object to expose to JSON-RPC.
|
|
84
81
|
*/
|
|
85
82
|
export class JsonRpcProxyFactory<T extends object> implements ProxyHandler<T> {
|
|
86
|
-
|
|
87
83
|
protected readonly onDidOpenConnectionEmitter = new Emitter<void>();
|
|
88
84
|
protected readonly onDidCloseConnectionEmitter = new Emitter<void>();
|
|
89
85
|
|
|
@@ -101,17 +97,21 @@ export class JsonRpcProxyFactory<T extends object> implements ProxyHandler<T> {
|
|
|
101
97
|
}
|
|
102
98
|
|
|
103
99
|
protected waitForConnection(): void {
|
|
104
|
-
this.connectionPromise = new Promise(resolve =>
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
connection.onClose(() =>
|
|
109
|
-
this.onDidCloseConnectionEmitter.fire(undefined)
|
|
110
|
-
);
|
|
111
|
-
this.onDidOpenConnectionEmitter.fire(undefined);
|
|
100
|
+
this.connectionPromise = new Promise((resolve) => (this.connectionPromiseResolve = resolve));
|
|
101
|
+
this.connectionPromise.then((connection) => {
|
|
102
|
+
connection.onClose(() => this.fireConnectionClosed());
|
|
103
|
+
this.fireConnectionOpened();
|
|
112
104
|
});
|
|
113
105
|
}
|
|
114
106
|
|
|
107
|
+
fireConnectionClosed() {
|
|
108
|
+
this.onDidCloseConnectionEmitter.fire(undefined);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
fireConnectionOpened() {
|
|
112
|
+
this.onDidOpenConnectionEmitter.fire(undefined);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
115
|
/**
|
|
116
116
|
* Connect a MessageConnection to the factory.
|
|
117
117
|
*
|
|
@@ -158,7 +158,9 @@ export class JsonRpcProxyFactory<T extends object> implements ProxyHandler<T> {
|
|
|
158
158
|
* methods calls.
|
|
159
159
|
*/
|
|
160
160
|
protected onNotification(method: string, ...args: any[]): void {
|
|
161
|
-
this.target[method]
|
|
161
|
+
if (this.target[method]) {
|
|
162
|
+
this.target[method](...args);
|
|
163
|
+
}
|
|
162
164
|
}
|
|
163
165
|
|
|
164
166
|
/**
|
|
@@ -196,35 +198,34 @@ export class JsonRpcProxyFactory<T extends object> implements ProxyHandler<T> {
|
|
|
196
198
|
* @returns A callable that executes the JSON-RPC call.
|
|
197
199
|
*/
|
|
198
200
|
get(target: T, p: PropertyKey, receiver: any): any {
|
|
199
|
-
if (p ===
|
|
201
|
+
if (p === "setClient") {
|
|
200
202
|
return (client: any) => {
|
|
201
203
|
this.target = client;
|
|
202
204
|
};
|
|
203
205
|
}
|
|
204
|
-
if (p ===
|
|
206
|
+
if (p === "onDidOpenConnection") {
|
|
205
207
|
return this.onDidOpenConnectionEmitter.event;
|
|
206
208
|
}
|
|
207
|
-
if (p ===
|
|
209
|
+
if (p === "onDidCloseConnection") {
|
|
208
210
|
return this.onDidCloseConnectionEmitter.event;
|
|
209
211
|
}
|
|
210
212
|
const isNotify = this.isNotification(p);
|
|
211
213
|
return (...args: any[]) =>
|
|
212
|
-
this.connectionPromise.then(
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
.catch((err: any) => reject(err))
|
|
222
|
-
|
|
214
|
+
this.connectionPromise.then(
|
|
215
|
+
(connection) =>
|
|
216
|
+
new Promise((resolve, reject) => {
|
|
217
|
+
try {
|
|
218
|
+
if (isNotify) {
|
|
219
|
+
connection.sendNotification(p.toString(), ...args);
|
|
220
|
+
resolve(undefined);
|
|
221
|
+
} else {
|
|
222
|
+
const resultPromise = connection.sendRequest(p.toString(), ...args) as Promise<any>;
|
|
223
|
+
resultPromise.catch((err: any) => reject(err)).then((result: any) => resolve(result));
|
|
224
|
+
}
|
|
225
|
+
} catch (err) {
|
|
226
|
+
reject(err);
|
|
223
227
|
}
|
|
224
|
-
}
|
|
225
|
-
reject(err);
|
|
226
|
-
}
|
|
227
|
-
})
|
|
228
|
+
}),
|
|
228
229
|
);
|
|
229
230
|
}
|
|
230
231
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021 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
|
+
export interface OssAllowList {
|
|
8
|
+
/**
|
|
9
|
+
* A string that identifies a GitHub/GitLab/Bitbucket identity of the form "<host>/<profilename>"
|
|
10
|
+
* E.g., "github.com/geropl"
|
|
11
|
+
*/
|
|
12
|
+
identity: string;
|
|
13
|
+
|
|
14
|
+
deleted?: boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021 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
|
+
export namespace PaymentProtocol {
|
|
8
|
+
export const UPDATE_GITPOD_SUBSCRIPTION_PATH = "/payment/chargebee";
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface PlanCoupon {
|
|
12
|
+
chargebeePlanID: string;
|
|
13
|
+
newPrice: number;
|
|
14
|
+
description: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface GithubUpgradeURL {
|
|
18
|
+
url: string;
|
|
19
|
+
planID: number;
|
|
20
|
+
}
|