From 64fbf272ff81e557ad6abe672f1b66783e79c2d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Madis=20N=C3=B5mme?= Date: Wed, 3 Apr 2024 22:48:09 +0200 Subject: [PATCH] Add & integrate open-telemetry --- server/package.json | 6 + server/src/ethlance/server/core.cljs | 1 + server/src/ethlance/server/syncer.cljs | 75 ++- server/src/ethlance/server/tracing/api.cljs | 66 +++ server/src/ethlance/server/tracing/macros.clj | 28 + .../src/ethlance/server/tracing/macros.cljs | 2 + server/src/ethlance/server/tracing/setup.cljs | 57 ++ server/yarn.lock | 498 +++++++++++++++++- 8 files changed, 709 insertions(+), 24 deletions(-) create mode 100644 server/src/ethlance/server/tracing/api.cljs create mode 100644 server/src/ethlance/server/tracing/macros.clj create mode 100644 server/src/ethlance/server/tracing/macros.cljs create mode 100644 server/src/ethlance/server/tracing/setup.cljs diff --git a/server/package.json b/server/package.json index 0c5e1b30..03f9c86d 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,12 @@ { "dependencies": { "@sentry/node": "7.31.1", + "@opentelemetry/context-zone": "^1.22.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.49.1", + "@opentelemetry/resources": "^1.22.0", + "@opentelemetry/sdk-node": "^0.49.1", + "@opentelemetry/sdk-trace-base": "^1.22.0", + "@opentelemetry/semantic-conventions": "^1.22.0", "apollo-server-express": "2.12.0", "axios": "1.3.3", "better-sqlite3": "7.6.2", diff --git a/server/src/ethlance/server/core.cljs b/server/src/ethlance/server/core.cljs index ac3c97e4..6faa3980 100644 --- a/server/src/ethlance/server/core.cljs +++ b/server/src/ethlance/server/core.cljs @@ -7,6 +7,7 @@ [district.server.db.honeysql-extensions] [district.server.logging] [district.server.smart-contracts] + [ethlance.server.tracing.core] [district.server.web3] [district.server.web3-events] [district.shared.async-helpers :as async-helpers :refer [safe-go]] diff --git a/server/src/ethlance/server/syncer.cljs b/server/src/ethlance/server/syncer.cljs index 370e7d3c..26e14053 100644 --- a/server/src/ethlance/server/syncer.cljs +++ b/server/src/ethlance/server/syncer.cljs @@ -11,6 +11,8 @@ [ethlance.server.db :as ethlance-db] [ethlance.server.event-replay-queue :as replay-queue] [ethlance.server.ipfs :as ipfs] + [ethlance.server.tracing.api :as t-api] + [ethlance.server.tracing.macros :refer-macros [go! safe-go!]] [ethlance.server.utils :as server-utils] [ethlance.shared.contract-constants :refer [offered-vec->flat-map enum-val->token-type]] @@ -64,14 +66,16 @@ (defn handle-job-created [conn _ {:keys [args] :as event}] - (safe-go - (log/info (str ">>> Handling event job-created" args)) + (safe-go! + (log/info (str ">>> Handling event job-created" args " | " (t-api/get-active-span))) (println ">>> ipfs-data | type ipfs-data" {:ipfs-data (:ipfs-data args) :event event}) - (let [ipfs-hash (shared-utils/hex->base58 (:ipfs-data args)) + (let [span (t-api/get-active-span) + ipfs-hash (shared-utils/hex->base58 (:ipfs-data args)) ipfs-job-content (flat-map (first (:offered-values args))) token-address (:token-address offered-value) token-type (enum-val->token-type (:token-type offered-value)) + token-amount (:token-amount offered-value) for-the-db (merge {:job/id (:job args) :job/status "active" ; draft -> active -> finished hiring -> closed :job/creator (:creator args) @@ -79,13 +83,24 @@ :job/date-updated (get-timestamp event) :job/token-type token-type - :job/token-amount (:token-amount offered-value) + :job/token-amount token-amount :job/token-address token-address :job/token-id (:token-id offered-value) :invited-arbiters (get args :invited-arbiters [])} (build-ethlance-job-data-from-ipfs-object ipfs-job-content))] - (flat-map funds) job-id (:job args) funding-base {:tx (:transaction-hash event) :job/id job-id :job-funding/created-at (get-timestamp)} - extract-token-info (fn [funds] + extract-token-info (fn [funds] [(-> funds :token-type enum-val->token-type) (:token-address funds)]) tokens-info (map extract-token-info funds-map) funding-updates (map (fn [tv] - (merge funding-base {:job-funding/amount (movement-sign-fn (:token-amount tv)) - :token-detail/id (:token-address tv)})) + (merge + funding-base + {:job-funding/amount (movement-sign-fn (:token-amount tv)) + :token-detail/id (:token-address tv)})) funds-map)] (doseq [[token-type token-address] tokens-info] (ensure-db-token-details token-type token-address conn)) (doseq [funding funding-updates] - (ethlance-db/insert-row! conn :JobFunding funding :ignore-conflict-on [:tx]))))) + (t-api/add-event! span "funding-details" funding) + (t-api/start-active-span + "add-funding-to-db" + (fn [span] + (go! + ( event :contract :contract-key) event-key (-> event :event) handler (get contract-ev->handler [contract-key event-key]) + span (t-api/start-span (str (name contract-key) "." (name event-key))) conn (>> syncer DISPATCHER handling" {:contract-key contract-key :event-key event-key :handler handler :event event}) (try (let [block-timestamp ( event - (update :event camel-snake-kebab/->kebab-case) - (update-in [:args :version] bn/number) - (update-in [:args :timestamp] (fn [timestamp] - (if timestamp - (bn/number timestamp) - block-timestamp)))) + (update ,,, :event camel-snake-kebab/->kebab-case) + (update-in ,,, [:args :version] bn/number) + (update-in ,,, [:args :timestamp] (fn [timestamp] + (if timestamp + (bn/number timestamp) + block-timestamp)))) _ (db/begin-tx conn) - res (handler conn err event) + res (t-api/with-span-context span #(handler conn err event)) _ (db/commit-tx conn)] + (t-api/set-span-ok! span) ;; Calling a handler can throw or return a go block (when using safe-go) ;; in the case of async ones, the go block will return the js/Error. ;; In either cases push the event to the queue, so it can be replayed later (when (satisfies? ReadPort res) (let [r (js {"attributes" attributes}) context))) + +(defn start-nested-span [parent span-name & [attributes]] + (let [ctx (set-span-context! parent) + span (start-span span-name attributes ctx)] + (set-span-attributes! span attributes))) + +(defn end-span! [span] + (.end span)) + +(defn add-event! [span event-name k-v-map] + (.addEvent span event-name (clj->js k-v-map))) + +(defn start-active-span [span-name callback] + (.startActiveSpan tracer span-name callback)) + +(defn with-active-span [span-name callback] + (-> (start-active-span span-name callback) + (end-span! ,,,))) + +(defn get-active-span + ([] + (.getActiveSpan trace))) + +(defn set-span-error! + [span error & [message]] + (doto span + (.setStatus ,,, (clj->js {"code" SPAN_STATUS_ERROR "message" message})) + (.recordException ,,, error))) + +(defn set-span-ok! + [span] + (.setStatus span (clj->js {"code" SPAN_STATUS_OK}))) + +(defn with-context + [provided-context fn-to-call] + (.with context provided-context fn-to-call js/undefined)) + +(defn with-span-context [span fn-to-call] + (with-context (set-span-context! span) fn-to-call)) diff --git a/server/src/ethlance/server/tracing/macros.clj b/server/src/ethlance/server/tracing/macros.clj new file mode 100644 index 00000000..daaea33b --- /dev/null +++ b/server/src/ethlance/server/tracing/macros.clj @@ -0,0 +1,28 @@ +(ns ethlance.server.tracing.macros + (:require + [taoensso.timbre] + [cljs.core.async.impl.ioc-macros :as ioc] + [district.shared.error-handling])) + +(defmacro go! + "just like go, just executes immediately until the first put/take" + [& body] + `(let [c# (cljs.core.async/chan 1) + f# ~(ioc/state-machine body 1 &env ioc/async-custom-terminators) + state# (-> (f#) + (ioc/aset-all! cljs.core.async.impl.ioc-helpers/USER-START-IDX c#))] + (cljs.core.async.impl.ioc-helpers/run-state-machine state#) + c#)) + +(defmacro safe-go! [& body] + `(go! + (try + ~@body + (catch :default e# + (when-let [span# (ethlance.server.tracing.api/get-active-span)] + (ethlance.server.tracing.api/set-span-error! span# e#)) + (taoensso.timbre/error "Go block exception" + (merge {:error e#} + (ex-data e#) + ~(district.shared.error-handling/compiletime-info &env &form *ns*))) + e#)))) diff --git a/server/src/ethlance/server/tracing/macros.cljs b/server/src/ethlance/server/tracing/macros.cljs new file mode 100644 index 00000000..9639cb44 --- /dev/null +++ b/server/src/ethlance/server/tracing/macros.cljs @@ -0,0 +1,2 @@ +(ns ethlance.server.tracing.macros + (:require-macros [ethlance.server.tracing.macros])) diff --git a/server/src/ethlance/server/tracing/setup.cljs b/server/src/ethlance/server/tracing/setup.cljs new file mode 100644 index 00000000..f370a4b2 --- /dev/null +++ b/server/src/ethlance/server/tracing/setup.cljs @@ -0,0 +1,57 @@ +(ns ethlance.server.tracing.setup + (:require + ["@opentelemetry/sdk-node" :refer [NodeSDK]] + ["@opentelemetry/sdk-trace-node" :refer [ConsoleSpanExporter]] + ["@opentelemetry/exporter-trace-otlp-http" :refer [OTLPTraceExporter]] + + ["@opentelemetry/sdk-metrics" :refer [PeriodicExportingMetricReader + ConsoleMetricExporter]] + ["@opentelemetry/resources" :refer [Resource]] + ["@opentelemetry/semantic-conventions" :refer [SEMRESATTRS_SERVICE_NAME + SEMRESATTRS_SERVICE_VERSION]] + ["@opentelemetry/api" :refer [trace]])) + +;; TODO: pass in config via mount +; (def signoz-config +; {:url "https://ingest.us.signoz.cloud:443/v1/traces" +; :headers {"signoz-access-token" "b7d50281-ea48-41fe-be44-48274a3b14c9"}}) + +; (defn get-http-trace-exporter [] +; (new OTLPTraceExporter (clj->js signoz-config))) + +(def exporters + {:OTLPTraceExporter (fn [config] (new OTLPTraceExporter (clj->js config))) + :ConsoleSpanExporter (fn [& [config]] (new ConsoleSpanExporter))}) + +(defn get-exporter [{:keys [name config]}] + ((get exporters name) config)) + +(defn init-sdk [config] + (let [service-name (get-in config [:sdk :name]) + service-version (get-in config [:sdk :version]) + resource (new Resource (clj->js {SEMRESATTRS_SERVICE_NAME service-name + SEMRESATTRS_SERVICE_VERSION service-version})) + trace-exporter (get-exporter (get-in config [:trace-exporter])) + metric-exporter (new ConsoleMetricExporter) + params {:resource resource + :traceExporter trace-exporter + :metricReader (new PeriodicExportingMetricReader (clj->js {:exporter metric-exporter}))}] + (new NodeSDK (clj->js params)))) + +(def sdk (atom nil)) + +(defn start [config] + (let [instance (init-sdk config)] + (.start instance) + (reset! sdk instance))) + +(defn stop [] + (.shutdown @sdk)) + +;; It’s generally recommended to call getTracer in your app when you need it +;; rather than exporting the tracer instance to the rest of your app. +;; This helps avoid trickier application load issues when other required dependencies are involved. +(defn get-tracer [scope-name scope-version] + (.getTracer trace scope-name scope-version)) + +(defonce tracer (get-tracer "syncer" "0.0.1")) diff --git a/server/yarn.lock b/server/yarn.lock index 8fbcab92..95b4a8b7 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -275,11 +275,34 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" +"@grpc/grpc-js@^1.7.1": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.3.tgz#13d7ace7d34190e6adad6de1f5d4e50bc255a78c" + integrity sha512-qiO9MNgYnwbvZ8MK0YLWbnGrNX3zTcj6/Ef7UHu5ZofER3e2nF3Y35GaPo9qNJJ/UJQKa4KL+z/F4Q8Q+uCdUQ== + dependencies: + "@grpc/proto-loader" "^0.7.10" + "@js-sdsl/ordered-map" "^4.4.2" + +"@grpc/proto-loader@^0.7.10": + version "0.7.10" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" + integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.4" + yargs "^17.7.2" + "@josephg/resolvable@^1.0.0": version "1.0.1" resolved "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz" integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== +"@js-sdsl/ordered-map@^4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz#9299f82874bab9e4c7f9c48d865becbfe8d6907c" + integrity sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw== + "@multiformats/base-x@^4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz" @@ -295,6 +318,222 @@ resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== +"@opentelemetry/api-logs@0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.49.1.tgz#51a66ed5eb5eeeafffbd36c1713aa91cbfdd5259" + integrity sha512-kaNl/T7WzyMUQHQlVq7q0oV4Kev6+0xFwqzofryC66jgGMacd0QH5TwfpbUwSTby+SdAdprAe5UKMvBw4tKS5Q== + dependencies: + "@opentelemetry/api" "^1.0.0" + +"@opentelemetry/api@^1.0.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.8.0.tgz#5aa7abb48f23f693068ed2999ae627d2f7d902ec" + integrity sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w== + +"@opentelemetry/context-async-hooks@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.22.0.tgz#80c8037b0dc4ab0b0e9c27e8cc13aa563c35699f" + integrity sha512-Nfdxyg8YtWqVWkyrCukkundAjPhUXi93JtVQmqDT1mZRVKqA7e2r7eJCrI+F651XUBMp0hsOJSGiFk3QSpaIJw== + +"@opentelemetry/context-zone-peer-dep@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-zone-peer-dep/-/context-zone-peer-dep-1.22.0.tgz#459d3879c56b4a762c3c3f7f5df6b75ed1f5e3f6" + integrity sha512-kQ0K6syNQQYj4Pd5Q4yiUAsuthpzWDmVPPqMUSACh9ArRYLq8ZY9JdnkqkT1RyeecpSDh5uG+x5dbx6drpJ79g== + +"@opentelemetry/context-zone@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-zone/-/context-zone-1.22.0.tgz#8aac53fa4de66112fa103b039d2c5441f9022a9a" + integrity sha512-ukPkASKUt9l4P3g7Dggntb3jG3dVL4dPXfDc8FUZ6pOCiLa5NRrRPQPbDdCumytbw5Yor9paiXCg/oQgMyYMHw== + dependencies: + "@opentelemetry/context-zone-peer-dep" "1.22.0" + zone.js "^0.11.0 || ^0.13.0 || ^0.14.0" + +"@opentelemetry/core@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.22.0.tgz#a9f33689acd4703ac780c6595497374e2113c7e5" + integrity sha512-0VoAlT6x+Xzik1v9goJ3pZ2ppi6+xd3aUfg4brfrLkDBHRIVjMP0eBHrKrhB+NKcDyMAg8fAbGL3Npg/F6AwWA== + dependencies: + "@opentelemetry/semantic-conventions" "1.22.0" + +"@opentelemetry/exporter-trace-otlp-grpc@0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.49.1.tgz#97f9c14d5eaa01e8e18f5d7bfc9a0f5a409b5471" + integrity sha512-Zbd7f3zF7fI2587MVhBizaW21cO/SordyrZGtMtvhoxU6n4Qb02Gx71X4+PzXH620e0+JX+Pcr9bYb1HTeVyJA== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.22.0" + "@opentelemetry/otlp-grpc-exporter-base" "0.49.1" + "@opentelemetry/otlp-transformer" "0.49.1" + "@opentelemetry/resources" "1.22.0" + "@opentelemetry/sdk-trace-base" "1.22.0" + +"@opentelemetry/exporter-trace-otlp-http@0.49.1", "@opentelemetry/exporter-trace-otlp-http@^0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.49.1.tgz#032967960815d46bed32e5b231efe5114ab2a73b" + integrity sha512-KOLtZfZvIrpGZLVvblKsiVQT7gQUZNKcUUH24Zz6Xbi7LJb9Vt6xtUZFYdR5IIjvt47PIqBKDWUQlU0o1wAsRw== + dependencies: + "@opentelemetry/core" "1.22.0" + "@opentelemetry/otlp-exporter-base" "0.49.1" + "@opentelemetry/otlp-transformer" "0.49.1" + "@opentelemetry/resources" "1.22.0" + "@opentelemetry/sdk-trace-base" "1.22.0" + +"@opentelemetry/exporter-trace-otlp-proto@0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.49.1.tgz#4d262423eb47a9877aca88e8f90cf49dbfeb6733" + integrity sha512-n8ON/c9pdMyYAfSFWKkgsPwjYoxnki+6Olzo+klKfW7KqLWoyEkryNkbcMIYnGGNXwdkMIrjoaP0VxXB26Oxcg== + dependencies: + "@opentelemetry/core" "1.22.0" + "@opentelemetry/otlp-exporter-base" "0.49.1" + "@opentelemetry/otlp-proto-exporter-base" "0.49.1" + "@opentelemetry/otlp-transformer" "0.49.1" + "@opentelemetry/resources" "1.22.0" + "@opentelemetry/sdk-trace-base" "1.22.0" + +"@opentelemetry/exporter-zipkin@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.22.0.tgz#dd81ca82a8933d106a3a980623d2f6e34494e77c" + integrity sha512-XcFs6rGvcTz0qW5uY7JZDYD0yNEXdekXAb6sFtnZgY/cHY6BQ09HMzOjv9SX+iaXplRDcHr1Gta7VQKM1XXM6g== + dependencies: + "@opentelemetry/core" "1.22.0" + "@opentelemetry/resources" "1.22.0" + "@opentelemetry/sdk-trace-base" "1.22.0" + "@opentelemetry/semantic-conventions" "1.22.0" + +"@opentelemetry/instrumentation@0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.49.1.tgz#1b95e5f9448a96e7af97e03846772829439a9a91" + integrity sha512-0DLtWtaIppuNNRRllSD4bjU8ZIiLp1cDXvJEbp752/Zf+y3gaLNaoGRGIlX4UHhcsrmtL+P2qxi3Hodi8VuKiQ== + dependencies: + "@opentelemetry/api-logs" "0.49.1" + "@types/shimmer" "^1.0.2" + import-in-the-middle "1.7.1" + require-in-the-middle "^7.1.1" + semver "^7.5.2" + shimmer "^1.2.1" + +"@opentelemetry/otlp-exporter-base@0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.49.1.tgz#a99d527e5fd7f02f3cb50f27a97a0ba6d72af2e9" + integrity sha512-z6sHliPqDgJU45kQatAettY9/eVF58qVPaTuejw9YWfSRqid9pXPYeegDCSdyS47KAUgAtm+nC28K3pfF27HWg== + dependencies: + "@opentelemetry/core" "1.22.0" + +"@opentelemetry/otlp-grpc-exporter-base@0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.49.1.tgz#57361ce173bcab701a8c85237acdde2fa9fce6c1" + integrity sha512-DNDNUWmOqtKTFJAyOyHHKotVox0NQ/09ETX8fUOeEtyNVHoGekAVtBbvIA3AtK+JflP7LC0PTjlLfruPM3Wy6w== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.22.0" + "@opentelemetry/otlp-exporter-base" "0.49.1" + protobufjs "^7.2.3" + +"@opentelemetry/otlp-proto-exporter-base@0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.49.1.tgz#ad1f979f94c5a2d114a72dd4813dfc6635b9f4b1" + integrity sha512-x1qB4EUC7KikUl2iNuxCkV8yRzrSXSyj4itfpIO674H7dhI7Zv37SFaOJTDN+8Z/F50gF2ISFH9CWQ4KCtGm2A== + dependencies: + "@opentelemetry/core" "1.22.0" + "@opentelemetry/otlp-exporter-base" "0.49.1" + protobufjs "^7.2.3" + +"@opentelemetry/otlp-transformer@0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.49.1.tgz#ede99939c85ae246f211ca0051cdac802cdcdb3a" + integrity sha512-Z+koA4wp9L9e3jkFacyXTGphSWTbOKjwwXMpb0CxNb0kjTHGUxhYRN8GnkLFsFo5NbZPjP07hwAqeEG/uCratQ== + dependencies: + "@opentelemetry/api-logs" "0.49.1" + "@opentelemetry/core" "1.22.0" + "@opentelemetry/resources" "1.22.0" + "@opentelemetry/sdk-logs" "0.49.1" + "@opentelemetry/sdk-metrics" "1.22.0" + "@opentelemetry/sdk-trace-base" "1.22.0" + +"@opentelemetry/propagator-b3@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.22.0.tgz#f249ce985556b9229680a2e17558ab5714325f7b" + integrity sha512-qBItJm9ygg/jCB5rmivyGz1qmKZPsL/sX715JqPMFgq++Idm0x+N9sLQvWFHFt2+ZINnCSojw7FVBgFW6izcXA== + dependencies: + "@opentelemetry/core" "1.22.0" + +"@opentelemetry/propagator-jaeger@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.22.0.tgz#a8b34e97e1563e289887ba0071b4123121d22a31" + integrity sha512-pMLgst3QIwrUfepraH5WG7xfpJ8J3CrPKrtINK0t7kBkuu96rn+HDYQ8kt3+0FXvrZI8YJE77MCQwnJWXIrgpA== + dependencies: + "@opentelemetry/core" "1.22.0" + +"@opentelemetry/resources@1.22.0", "@opentelemetry/resources@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.22.0.tgz#5b597cdf9fb6e1cd22d7891bd8e72e487929a813" + integrity sha512-+vNeIFPH2hfcNL0AJk/ykJXoUCtR1YaDUZM+p3wZNU4Hq98gzq+7b43xbkXjadD9VhWIUQqEwXyY64q6msPj6A== + dependencies: + "@opentelemetry/core" "1.22.0" + "@opentelemetry/semantic-conventions" "1.22.0" + +"@opentelemetry/sdk-logs@0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.49.1.tgz#dd30d1b05951a0d6bc017d99aaa0965792b357f9" + integrity sha512-gCzYWsJE0h+3cuh3/cK+9UwlVFyHvj3PReIOCDOmdeXOp90ZjKRoDOJBc3mvk1LL6wyl1RWIivR8Rg9OToyesw== + dependencies: + "@opentelemetry/core" "1.22.0" + "@opentelemetry/resources" "1.22.0" + +"@opentelemetry/sdk-metrics@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.22.0.tgz#b94c62403013e4c72b96dc747d71d786073efafc" + integrity sha512-k6iIx6H3TZ+BVMr2z8M16ri2OxWaljg5h8ihGJxi/KQWcjign6FEaEzuigXt5bK9wVEhqAcWLCfarSftaNWkkg== + dependencies: + "@opentelemetry/core" "1.22.0" + "@opentelemetry/resources" "1.22.0" + lodash.merge "^4.6.2" + +"@opentelemetry/sdk-node@^0.49.1": + version "0.49.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-node/-/sdk-node-0.49.1.tgz#40e618f22ba645e73c5a66eccec18a621734ccc3" + integrity sha512-feBIT85ndiSHXsQ2gfGpXC/sNeX4GCHLksC4A9s/bfpUbbgbCSl0RvzZlmEpCHarNrkZMwFRi4H0xFfgvJEjrg== + dependencies: + "@opentelemetry/api-logs" "0.49.1" + "@opentelemetry/core" "1.22.0" + "@opentelemetry/exporter-trace-otlp-grpc" "0.49.1" + "@opentelemetry/exporter-trace-otlp-http" "0.49.1" + "@opentelemetry/exporter-trace-otlp-proto" "0.49.1" + "@opentelemetry/exporter-zipkin" "1.22.0" + "@opentelemetry/instrumentation" "0.49.1" + "@opentelemetry/resources" "1.22.0" + "@opentelemetry/sdk-logs" "0.49.1" + "@opentelemetry/sdk-metrics" "1.22.0" + "@opentelemetry/sdk-trace-base" "1.22.0" + "@opentelemetry/sdk-trace-node" "1.22.0" + "@opentelemetry/semantic-conventions" "1.22.0" + +"@opentelemetry/sdk-trace-base@1.22.0", "@opentelemetry/sdk-trace-base@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.22.0.tgz#7833bf2493a7b49461915ca32aa2884c87afd78c" + integrity sha512-pfTuSIpCKONC6vkTpv6VmACxD+P1woZf4q0K46nSUvXFvOFqjBYKFaAMkKD3M1mlKUUh0Oajwj35qNjMl80m1Q== + dependencies: + "@opentelemetry/core" "1.22.0" + "@opentelemetry/resources" "1.22.0" + "@opentelemetry/semantic-conventions" "1.22.0" + +"@opentelemetry/sdk-trace-node@1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.22.0.tgz#fa9b2063cc39aabc4efe342495c80ed522b4d5cb" + integrity sha512-gTGquNz7ue8uMeiWPwp3CU321OstQ84r7PCDtOaCicjbJxzvO8RZMlEC4geOipTeiF88kss5n6w+//A0MhP1lQ== + dependencies: + "@opentelemetry/context-async-hooks" "1.22.0" + "@opentelemetry/core" "1.22.0" + "@opentelemetry/propagator-b3" "1.22.0" + "@opentelemetry/propagator-jaeger" "1.22.0" + "@opentelemetry/sdk-trace-base" "1.22.0" + semver "^7.5.2" + +"@opentelemetry/semantic-conventions@1.22.0", "@opentelemetry/semantic-conventions@^1.22.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.22.0.tgz#d7502533a7c96e25baab86bac965468e0703a8b4" + integrity sha512-CAOgFOKLybd02uj/GhCdEeeBjOS0yeoDeo/CA7ASBSmenpZHAKGB3iDm/rv3BQLcabb/OprDEsSQ1y0P8A7Siw== + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" @@ -581,6 +820,13 @@ resolved "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz" integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== +"@types/node@>=13.7.0": + version "20.11.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.30.tgz#9c33467fc23167a347e73834f788f4b9f399d66f" + integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw== + dependencies: + undici-types "~5.26.4" + "@types/node@^10.1.0": version "10.17.60" resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" @@ -630,6 +876,11 @@ "@types/mime" "*" "@types/node" "*" +"@types/shimmer@^1.0.2": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/shimmer/-/shimmer-1.0.5.tgz#491d8984d4510e550bfeb02d518791d7f59d2b88" + integrity sha512-9Hp0ObzwwO57DpLFF0InUjUm/II8GmKAvzbefxQTihCb7KI6yc9yzf0nLc4mVdby5N4DRCgQM2wCup9KTieeww== + "@types/ws@^7.0.0": version "7.4.7" resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" @@ -657,6 +908,16 @@ accepts@^1.3.5, accepts@~1.3.7, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" +acorn-import-assertions@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" + integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + +acorn@^8.8.2: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + aes-js@4.0.0-beta.3: version "4.0.0-beta.3" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.3.tgz#da2253f0ff03a0b3a9e445c8cbdf78e7fda7d48c" @@ -679,6 +940,11 @@ ajv@^6.12.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^3.1.0: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" @@ -686,6 +952,13 @@ ansi-styles@^3.1.0: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + apollo-cache-control@^0.15.0: version "0.15.0" resolved "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.15.0.tgz" @@ -1318,11 +1591,25 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjs-module-lexer@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== + class-is@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz" integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-response@^1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" @@ -1337,11 +1624,23 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" @@ -1533,7 +1832,7 @@ debug@2.6.9, debug@^2.2.0: dependencies: ms "2.0.0" -debug@4, debug@^4.3.1: +debug@4, debug@^4.1.1, debug@^4.3.1: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1698,6 +1997,11 @@ elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5 minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" @@ -1810,6 +2114,11 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: d "^1.0.1" ext "^1.1.2" +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" @@ -2215,6 +2524,11 @@ function-bind@^1.1.1: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" @@ -2230,6 +2544,11 @@ functions-have-names@^1.2.2: resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: version "1.2.0" resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" @@ -2464,6 +2783,13 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" @@ -2576,6 +2902,16 @@ ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +import-in-the-middle@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.7.1.tgz#3e111ff79c639d0bde459bd7ba29dd9fdf357364" + integrity sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg== + dependencies: + acorn "^8.8.2" + acorn-import-assertions "^1.9.0" + cjs-module-lexer "^1.2.2" + module-details-from-path "^1.0.3" + inherits@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" @@ -2652,6 +2988,13 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== +is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" @@ -2659,6 +3002,11 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-function@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz" @@ -2912,6 +3260,11 @@ keyv@^4.0.0: dependencies: json-buffer "3.0.1" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" @@ -2942,6 +3295,11 @@ lodash.isstring@^4.0.1: resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" @@ -2962,6 +3320,11 @@ long@^4.0.0: resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +long@^5.0.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" @@ -3116,6 +3479,11 @@ mock-fs@^4.1.0: resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== +module-details-from-path@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" + integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== + ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" @@ -3456,6 +3824,11 @@ path-browserify@0.0.1: resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" @@ -3583,6 +3956,24 @@ process@^0.11.10: resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== +protobufjs@^7.2.3, protobufjs@^7.2.4: + version "7.2.6" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" + integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + proxy-addr@~2.0.5, proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" @@ -3806,11 +4197,34 @@ request@^2.79.0: tunnel-agent "^0.6.0" uuid "^3.3.2" +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-in-the-middle@^7.1.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-7.2.1.tgz#0d1f5e86a69aa14322f5951b924f02ad75f70b6b" + integrity sha512-u5XngygsJ+XV2dBV/Pl4SrcNpUXQfmYmXtuFeHDXfzk4i4NnGnret6xKWkkJHjMHS/16yMV9pEAlAunqmjllkA== + dependencies: + debug "^4.1.1" + module-details-from-path "^1.0.3" + resolve "^1.22.1" + resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== +resolve@^1.22.1: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" @@ -3895,6 +4309,13 @@ semver@^7.3.5: dependencies: lru-cache "^6.0.0" +semver@^7.5.2: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" @@ -4004,6 +4425,11 @@ shadow-cljs@2.26.2: which "^1.3.1" ws "^7.4.6" +shimmer@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" + integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" @@ -4120,6 +4546,15 @@ strict-uri-encode@^1.0.0: resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string.prototype.trimend@^1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" @@ -4152,6 +4587,13 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz" @@ -4182,6 +4624,11 @@ supports-color@^4.0.0: dependencies: has-flag "^2.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + swarm-js@^0.1.40: version "0.1.42" resolved "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz" @@ -4305,6 +4752,11 @@ tslib@^2.1.0: resolved "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== +tslib@^2.3.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" @@ -4408,6 +4860,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + universalify@^0.1.0: version "0.1.2" resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" @@ -4839,6 +5296,15 @@ which@^1.3.1: dependencies: isexe "^2.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" @@ -4939,6 +5405,11 @@ xtend@^4.0.0: resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yaeti@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" @@ -4954,6 +5425,24 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + zen-observable-ts@^0.8.21: version "0.8.21" resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz" @@ -4966,3 +5455,10 @@ zen-observable@^0.8.0: version "0.8.15" resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +"zone.js@^0.11.0 || ^0.13.0 || ^0.14.0": + version "0.14.4" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.14.4.tgz#e0168fe450e3e4313c8efdb4a0ae4b557ac0fdd8" + integrity sha512-NtTUvIlNELez7Q1DzKVIFZBzNb646boQMgpATo9z3Ftuu/gWvzxCW7jdjcUDoRGxRikrhVHB/zLXh1hxeJawvw== + dependencies: + tslib "^2.3.0"